From eadf464a350cd4b05c72d95903b746682521f679 Mon Sep 17 00:00:00 2001 From: maiano Date: Sun, 27 Apr 2025 12:48:35 +0200 Subject: [PATCH 001/225] init: start eCommerce-Application --- package.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 package.json diff --git a/package.json b/package.json new file mode 100644 index 0000000..1734857 --- /dev/null +++ b/package.json @@ -0,0 +1,20 @@ +{ + "name": "ecommerce-application", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/maiano/eCommerce-Application.git" + }, + "keywords": [], + "author": "", + "license": "ISC", + "bugs": { + "url": "https://github.com/maiano/eCommerce-Application/issues" + }, + "homepage": "https://github.com/maiano/eCommerce-Application#readme" +} From ca1a159b6f1b23475516c494a92604888aa2427a Mon Sep 17 00:00:00 2001 From: maiano Date: Sun, 27 Apr 2025 21:20:58 +0200 Subject: [PATCH 002/225] chore: create basic config --- .editorconfig | 13 + .gitignore | 142 +- .prettierrc | 7 + LICENSE | 21 - README.md | 55 +- eslint.config.js | 82 + index.html | 13 + package-lock.json | 5843 ++++++++++++++++++++++++++++++++++++++++++ package.json | 45 +- public/vite.svg | 1 + src/App.css | 42 + src/App.tsx | 35 + src/assets/react.svg | 1 + src/index.css | 68 + src/main.tsx | 10 + src/vite-env.d.ts | 1 + tsconfig.app.json | 31 + tsconfig.json | 7 + tsconfig.node.json | 24 + vite.config.ts | 13 + 20 files changed, 6291 insertions(+), 163 deletions(-) create mode 100644 .editorconfig create mode 100644 .prettierrc delete mode 100644 LICENSE create mode 100644 eslint.config.js create mode 100644 index.html create mode 100644 package-lock.json create mode 100644 public/vite.svg create mode 100644 src/App.css create mode 100644 src/App.tsx create mode 100644 src/assets/react.svg create mode 100644 src/index.css create mode 100644 src/main.tsx create mode 100644 src/vite-env.d.ts create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..b4e3016 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,13 @@ +# Editor configuration, see http://editorconfig.org +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +max_line_length = off +trim_trailing_whitespace = false \ No newline at end of file diff --git a/.gitignore b/.gitignore index 1170717..a547bf3 100644 --- a/.gitignore +++ b/.gitignore @@ -4,133 +4,21 @@ logs npm-debug.log* yarn-debug.log* yarn-error.log* +pnpm-debug.log* lerna-debug.log* -.pnpm-debug.log* -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# Snowpack dependency directory (https://snowpack.dev/) -web_modules/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Optional stylelint cache -.stylelintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variable files -.env -.env.development.local -.env.test.local -.env.production.local -.env.local - -# parcel-bundler cache (https://parceljs.org/) -.cache -.parcel-cache - -# Next.js build output -.next -out - -# Nuxt.js build / generate output -.nuxt +node_modules dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and not Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# vuepress v2.x temp and cache directory -.temp -.cache - -# vitepress build output -**/.vitepress/dist - -# vitepress cache directory -**/.vitepress/cache - -# Docusaurus cache and generated files -.docusaurus - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -# Stores VSCode versions used for testing VSCode extensions -.vscode-test - -# yarn v2 -.yarn/cache -.yarn/unplugged -.yarn/build-state.yml -.yarn/install-state.gz -.pnp.* +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..09cb630 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,7 @@ +{ + "semi": true, + "singleQuote": true, + "trailingComma": "all", + "printWidth": 80, + "tabWidth": 2 + } \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index ecf8ba8..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2025 aleksei - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index d416b84..da98444 100644 --- a/README.md +++ b/README.md @@ -1 +1,54 @@ -# eCommerce-Application \ No newline at end of file +# React + TypeScript + Vite + +This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. + +Currently, two official plugins are available: + +- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh + +## Expanding the ESLint configuration + +If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: + +```js +export default tseslint.config({ + extends: [ + // Remove ...tseslint.configs.recommended and replace with this + ...tseslint.configs.recommendedTypeChecked, + // Alternatively, use this for stricter rules + ...tseslint.configs.strictTypeChecked, + // Optionally, add this for stylistic rules + ...tseslint.configs.stylisticTypeChecked, + ], + languageOptions: { + // other options... + parserOptions: { + project: ['./tsconfig.node.json', './tsconfig.app.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, +}) +``` + +You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: + +```js +// eslint.config.js +import reactX from 'eslint-plugin-react-x' +import reactDom from 'eslint-plugin-react-dom' + +export default tseslint.config({ + plugins: { + // Add the react-x and react-dom plugins + 'react-x': reactX, + 'react-dom': reactDom, + }, + rules: { + // other rules... + // Enable its recommended typescript rules + ...reactX.configs['recommended-typescript'].rules, + ...reactDom.configs.recommended.rules, + }, +}) +``` diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..0cbb401 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,82 @@ +import js from '@eslint/js'; +import globals from 'globals'; +import reactHooks from 'eslint-plugin-react-hooks'; +import reactRefresh from 'eslint-plugin-react-refresh'; +import tsPlugin from '@typescript-eslint/eslint-plugin'; +import tsParser from '@typescript-eslint/parser'; +import importPlugin from 'eslint-plugin-import'; + +export default [ + // Base + { + ignores: ['dist/**', '**/*.d.ts', 'node_modules', 'vite.config.ts'], + }, + + // JS + { + files: ['**/*.js'], + languageOptions: { + ecmaVersion: 2022, + sourceType: 'module', + globals: { + ...globals.browser, + }, + }, + rules: { + ...js.configs.recommended.rules, + }, + }, + + // TS + { + files: ['src/**/*.{ts,tsx}'], + languageOptions: { + parser: tsParser, + parserOptions: { + project: './tsconfig.app.json', + tsconfigRootDir: import.meta.dirname, + ecmaFeatures: { + jsx: true, + }, + ecmaVersion: 2022, + sourceType: 'module', + }, + globals: { + ...globals.browser, + }, + }, + plugins: { + '@typescript-eslint': tsPlugin, + import: importPlugin, + 'react-hooks': reactHooks, + 'react-refresh': reactRefresh, + }, + rules: { + ...tsPlugin.configs.recommended.rules, + ...reactHooks.configs.recommended.rules, + 'react-refresh/only-export-components': 'warn', + 'import/order': [ + 'warn', + { + groups: [ + 'builtin', + 'external', + 'internal', + 'parent', + 'sibling', + 'index', + ], + alphabetize: { order: 'asc', caseInsensitive: true }, + }, + ], + '@typescript-eslint/no-unused-vars': 'warn', + '@typescript-eslint/no-explicit-any': 'error', + + '@typescript-eslint/no-unsafe-argument': 'error', + '@typescript-eslint/no-unsafe-assignment': 'error', + '@typescript-eslint/no-unsafe-call': 'error', + '@typescript-eslint/no-unsafe-member-access': 'error', + '@typescript-eslint/no-unsafe-return': 'error', + }, + }, +]; diff --git a/index.html b/index.html new file mode 100644 index 0000000..e4b78ea --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + TS + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..e050cac --- /dev/null +++ b/package-lock.json @@ -0,0 +1,5843 @@ +{ + "name": "ecommerce-application", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ecommerce-application", + "version": "0.0.0", + "dependencies": { + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@eslint/js": "^9.22.0", + "@types/node": "^22.15.2", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@typescript-eslint/eslint-plugin": "^8.31.0", + "@typescript-eslint/parser": "^8.31.0", + "@vitejs/plugin-react": "^4.3.4", + "eslint": "^9.22.0", + "eslint-config-prettier": "^10.1.2", + "eslint-import-resolver-typescript": "^4.3.4", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-prettier": "^5.2.6", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.19", + "globals": "^16.0.0", + "prettier": "^3.5.3", + "typescript": "~5.7.2", + "typescript-eslint": "^8.26.1", + "vite": "^6.3.1" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz", + "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", + "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.10", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/template": "^7.26.9", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz", + "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz", + "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.8", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz", + "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz", + "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", + "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.27.0", + "@babel/types": "^7.27.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz", + "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.27.0", + "@babel/parser": "^7.27.0", + "@babel/template": "^7.27.0", + "@babel/types": "^7.27.0", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz", + "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", + "integrity": "sha512-4m62DuCE07lw01soJwPiBGC0nAww0Q+RY70VZ+n49yDIO13yyinhbWCeNnaob0lakDtWQzSdtNWzJeOJt2ma+g==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.3.tgz", + "integrity": "sha512-pBPWdu6MLKROBX05wSNKcNb++m5Er+KQ9QkB+WVM+pW2Kx9hoSrVTnu3BdkI5eBLZoKu/J6mW/B6i6bJB2ytXQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.2.tgz", + "integrity": "sha512-5n3nTJblwRi8LlXkJ9eBzu+kZR8Yxcc7ubakyQTFzPMtIhFpUBRbsnc2Dv88IZDIbCDlBiWrknhB4Lsz7mg6BA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.3.tgz", + "integrity": "sha512-W8bFfPA8DowP8l//sxjJLSLkD8iEjMc7cBVyP+u4cEv9sM7mdUCkgsj+t0n/BWPFtv7WWCN5Yzj0N6FJNUUqBQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.3.tgz", + "integrity": "sha512-PuwVXbnP87Tcff5I9ngV0lmiSu40xw1At6i3GsU77U7cjDDB4s0X2cyFuBiDa1SBk9DnvWwnGvVaGBqoFWPb7A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.3.tgz", + "integrity": "sha512-XelR6MzjlZuBM4f5z2IQHK6LkK34Cvv6Rj2EntER3lwCBFdg6h2lKbtRjpTTsdEjD/WSe1q8UyPBXP1x3i/wYQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.3.tgz", + "integrity": "sha512-ogtTpYHT/g1GWS/zKM0cc/tIebFjm1F9Aw1boQ2Y0eUQ+J89d0jFY//s9ei9jVIlkYi8AfOjiixcLJSGNSOAdQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.3.tgz", + "integrity": "sha512-eESK5yfPNTqpAmDfFWNsOhmIOaQA59tAcF/EfYvo5/QWQCzXn5iUSOnqt3ra3UdzBv073ykTtmeLJZGt3HhA+w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.3.tgz", + "integrity": "sha512-Kd8glo7sIZtwOLcPbW0yLpKmBNWMANZhrC1r6K++uDR2zyzb6AeOYtI6udbtabmQpFaxJ8uduXMAo1gs5ozz8A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.3.tgz", + "integrity": "sha512-EJiyS70BYybOBpJth3M0KLOus0n+RRMKTYzhYhFeMwp7e/RaajXvP+BWlmEXNk6uk+KAu46j/kaQzr6au+JcIw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.3.tgz", + "integrity": "sha512-Q+wSjaLpGxYf7zC0kL0nDlhsfuFkoN+EXrx2KSB33RhinWzejOd6AvgmP5JbkgXKmjhmpfgKZq24pneodYqE8Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.3.tgz", + "integrity": "sha512-dUOVmAUzuHy2ZOKIHIKHCm58HKzFqd+puLaS424h6I85GlSDRZIA5ycBixb3mFgM0Jdh+ZOSB6KptX30DD8YOQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.3.tgz", + "integrity": "sha512-xCUgnNYhRD5bb1C1nqrDV1PfkwgbswTTBRbAd8aH5PhYzikdf/ddtsYyMXFfGSsb/6t6QaPSzxtbfAZr9uox4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.3.tgz", + "integrity": "sha512-yplPOpczHOO4jTYKmuYuANI3WhvIPSVANGcNUeMlxH4twz/TeXuzEP41tGKNGWJjuMhotpGabeFYGAOU2ummBw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.3.tgz", + "integrity": "sha512-P4BLP5/fjyihmXCELRGrLd793q/lBtKMQl8ARGpDxgzgIKJDRJ/u4r1A/HgpBpKpKZelGct2PGI4T+axcedf6g==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.3.tgz", + "integrity": "sha512-eRAOV2ODpu6P5divMEMa26RRqb2yUoYsuQQOuFUexUoQndm4MdpXXDBbUoKIc0iPa4aCO7gIhtnYomkn2x+bag==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.3.tgz", + "integrity": "sha512-ZC4jV2p7VbzTlnl8nZKLcBkfzIf4Yad1SJM4ZMKYnJqZFD4rTI+pBG65u8ev4jk3/MPwY9DvGn50wi3uhdaghg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.3.tgz", + "integrity": "sha512-LDDODcFzNtECTrUUbVCs6j9/bDVqy7DDRsuIXJg6so+mFksgwG7ZVnTruYi5V+z3eE5y+BJZw7VvUadkbfg7QA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.3.tgz", + "integrity": "sha512-s+w/NOY2k0yC2p9SLen+ymflgcpRkvwwa02fqmAwhBRI3SC12uiS10edHHXlVWwfAagYSY5UpmT/zISXPMW3tQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.3.tgz", + "integrity": "sha512-nQHDz4pXjSDC6UfOE1Fw9Q8d6GCAd9KdvMZpfVGWSJztYCarRgSDfOVBY5xwhQXseiyxapkiSJi/5/ja8mRFFA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.3.tgz", + "integrity": "sha512-1QaLtOWq0mzK6tzzp0jRN3eccmN3hezey7mhLnzC6oNlJoUJz4nym5ZD7mDnS/LZQgkrhEbEiTn515lPeLpgWA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.3.tgz", + "integrity": "sha512-i5Hm68HXHdgv8wkrt+10Bc50zM0/eonPb/a/OFVfB6Qvpiirco5gBA5bz7S2SHuU+Y4LWn/zehzNX14Sp4r27g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.3.tgz", + "integrity": "sha512-zGAVApJEYTbOC6H/3QBr2mq3upG/LBEXr85/pTtKiv2IXcgKV0RT0QA/hSXZqSvLEpXeIxah7LczB4lkiYhTAQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.3.tgz", + "integrity": "sha512-fpqctI45NnCIDKBH5AXQBsD0NDPbEFczK98hk/aa6HJxbl+UtLkJV2+Bvy5hLSLk3LHmqt0NTkKNso1A9y1a4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.3.tgz", + "integrity": "sha512-ROJhm7d8bk9dMCUZjkS8fgzsPAZEjtRJqCAmVgB0gMrvG7hfmPmz9k1rwO4jSiblFjYmNvbECL9uhaPzONMfgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.3.tgz", + "integrity": "sha512-YWcow8peiHpNBiIXHwaswPnAXLsLVygFwCB3A7Bh5jRkIBFWHGmNQ48AlX4xDvQNoMZlPYzjVOQDYEzWCqufMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.3.tgz", + "integrity": "sha512-qspTZOIGoXVS4DpNqUYUs9UxVb04khS1Degaw/MnfMe7goQ3lTfQ13Vw4qY/Nj0979BGvMRpAYbs/BAxEvU8ew==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.3.tgz", + "integrity": "sha512-ICgUR+kPimx0vvRzf+N/7L7tVSQeE3BYY+NhHRHXS1kBuPO7z2+7ea2HbhDyZdTephgvNvKrlDDKUexuCVBVvg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.6.1.tgz", + "integrity": "sha512-KTsJMmobmbrFLe3LDh0PC2FXpcSYJt/MLjlkh/9LEnmKYLSYmT/0EW9JWANjeoemiuZrmogti0tW5Ch+qNUYDw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.20.0.tgz", + "integrity": "sha512-fxlS1kkIjx8+vy2SjuCB94q3htSNrufYTXubwiBFeaQHbH6Ipi43gFJq2zCMt6PHhImH3Xmr0NksKDvchWlpQQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.6", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.1.tgz", + "integrity": "sha512-RI17tsD2frtDu/3dmI7QRrD4bedNKPM08ziRYaC5AhkGrzIAJelm9kJU1TznK+apx6V+cqRz8tfpEeG3oIyjxw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", + "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.25.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.25.1.tgz", + "integrity": "sha512-dEIwmjntEx8u3Uvv+kr3PDeeArL8Hw07H9kyYxCjnM9pBjfEhk6uLXSchxxzgiwtRhhzVzqmUSDFBOi1TuZ7qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", + "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", + "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.13.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz", + "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.9.tgz", + "integrity": "sha512-OKRBiajrrxB9ATokgEQoG87Z25c67pCpYcCwmXYX8PBftC9pBfN18gnm/fh1wurSLEKIAt+QRFLFCQISrb66Jg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.0", + "@emnapi/runtime": "^1.4.0", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/core": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.4.tgz", + "integrity": "sha512-ROFF39F6ZrnzSUEmQQZUar0Jt4xVoP9WnDRdWwF4NNcXs3xBTLgBUDoOwW141y1jP+S8nahIbdxbFC7IShw9Iw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.40.0.tgz", + "integrity": "sha512-+Fbls/diZ0RDerhE8kyC6hjADCXA1K4yVNlH0EYfd2XjyH0UGgzaQ8MlT0pCXAThfxv3QUAczHaL+qSv1E4/Cg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.40.0.tgz", + "integrity": "sha512-PPA6aEEsTPRz+/4xxAmaoWDqh67N7wFbgFUJGMnanCFs0TV99M0M8QhhaSCks+n6EbQoFvLQgYOGXxlMGQe/6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.40.0.tgz", + "integrity": "sha512-GwYOcOakYHdfnjjKwqpTGgn5a6cUX7+Ra2HeNj/GdXvO2VJOOXCiYYlRFU4CubFM67EhbmzLOmACKEfvp3J1kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.40.0.tgz", + "integrity": "sha512-CoLEGJ+2eheqD9KBSxmma6ld01czS52Iw0e2qMZNpPDlf7Z9mj8xmMemxEucinev4LgHalDPczMyxzbq+Q+EtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.40.0.tgz", + "integrity": "sha512-r7yGiS4HN/kibvESzmrOB/PxKMhPTlz+FcGvoUIKYoTyGd5toHp48g1uZy1o1xQvybwwpqpe010JrcGG2s5nkg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.40.0.tgz", + "integrity": "sha512-mVDxzlf0oLzV3oZOr0SMJ0lSDd3xC4CmnWJ8Val8isp9jRGl5Dq//LLDSPFrasS7pSm6m5xAcKaw3sHXhBjoRw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.40.0.tgz", + "integrity": "sha512-y/qUMOpJxBMy8xCXD++jeu8t7kzjlOCkoxxajL58G62PJGBZVl/Gwpm7JK9+YvlB701rcQTzjUZ1JgUoPTnoQA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.40.0.tgz", + "integrity": "sha512-GoCsPibtVdJFPv/BOIvBKO/XmwZLwaNWdyD8TKlXuqp0veo2sHE+A/vpMQ5iSArRUz/uaoj4h5S6Pn0+PdhRjg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.40.0.tgz", + "integrity": "sha512-L5ZLphTjjAD9leJzSLI7rr8fNqJMlGDKlazW2tX4IUF9P7R5TMQPElpH82Q7eNIDQnQlAyiNVfRPfP2vM5Avvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.40.0.tgz", + "integrity": "sha512-ATZvCRGCDtv1Y4gpDIXsS+wfFeFuLwVxyUBSLawjgXK2tRE6fnsQEkE4csQQYWlBlsFztRzCnBvWVfcae/1qxQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.40.0.tgz", + "integrity": "sha512-wG9e2XtIhd++QugU5MD9i7OnpaVb08ji3P1y/hNbxrQ3sYEelKJOq1UJ5dXczeo6Hj2rfDEL5GdtkMSVLa/AOg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.40.0.tgz", + "integrity": "sha512-vgXfWmj0f3jAUvC7TZSU/m/cOE558ILWDzS7jBhiCAFpY2WEBn5jqgbqvmzlMjtp8KlLcBlXVD2mkTSEQE6Ixw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.40.0.tgz", + "integrity": "sha512-uJkYTugqtPZBS3Z136arevt/FsKTF/J9dEMTX/cwR7lsAW4bShzI2R0pJVw+hcBTWF4dxVckYh72Hk3/hWNKvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.40.0.tgz", + "integrity": "sha512-rKmSj6EXQRnhSkE22+WvrqOqRtk733x3p5sWpZilhmjnkHkpeCgWsFFo0dGnUGeA+OZjRl3+VYq+HyCOEuwcxQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.40.0.tgz", + "integrity": "sha512-SpnYlAfKPOoVsQqmTFJ0usx0z84bzGOS9anAC0AZ3rdSo3snecihbhFTlJZ8XMwzqAcodjFU4+/SM311dqE5Sw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.40.0.tgz", + "integrity": "sha512-RcDGMtqF9EFN8i2RYN2W+64CdHruJ5rPqrlYw+cgM3uOVPSsnAQps7cpjXe9be/yDp8UC7VLoCoKC8J3Kn2FkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.40.0.tgz", + "integrity": "sha512-HZvjpiUmSNx5zFgwtQAV1GaGazT2RWvqeDi0hV+AtC8unqqDSsaFjPxfsO6qPtKRRg25SisACWnJ37Yio8ttaw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.40.0.tgz", + "integrity": "sha512-UtZQQI5k/b8d7d3i9AZmA/t+Q4tk3hOC0tMOMSq2GlMYOfxbesxG4mJSeDp0EHs30N9bsfwUvs3zF4v/RzOeTQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.40.0.tgz", + "integrity": "sha512-+m03kvI2f5syIqHXCZLPVYplP8pQch9JHyXKZ3AGMKlg8dCyr2PKHjwRLiW53LTrN/Nc3EqHOKxUxzoSPdKddA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.40.0.tgz", + "integrity": "sha512-lpPE1cLfP5oPzVjKMx10pgBmKELQnFJXHgvtHCtuJWOv8MxqdEIMNtgHgBFf7Ea2/7EuVwa9fodWUfXAlXZLZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz", + "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", + "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.15.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.15.2.tgz", + "integrity": "sha512-uKXqKN9beGoMdBfcaTY1ecwz6ctxuJAcUlwE55938g0ZJ8lRxwAZqRz2AJ4pzpt5dHdTPMB863UZ0ESiFUcP7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@types/react": { + "version": "19.1.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.2.tgz", + "integrity": "sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.1.2", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.2.tgz", + "integrity": "sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.31.0.tgz", + "integrity": "sha512-evaQJZ/J/S4wisevDvC1KFZkPzRetH8kYZbkgcTRyql3mcKsf+ZFDV1BVWUGTCAW5pQHoqn5gK5b8kn7ou9aFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.31.0", + "@typescript-eslint/type-utils": "8.31.0", + "@typescript-eslint/utils": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.31.0.tgz", + "integrity": "sha512-67kYYShjBR0jNI5vsf/c3WG4u+zDnCTHTPqVMQguffaWWFs7artgwKmfwdifl+r6XyM5LYLas/dInj2T0SgJyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.31.0", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/typescript-estree": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.31.0.tgz", + "integrity": "sha512-knO8UyF78Nt8O/B64i7TlGXod69ko7z6vJD9uhSlm0qkAbGeRUSudcm0+K/4CrRjrpiHfBCjMWlc08Vav1xwcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.31.0.tgz", + "integrity": "sha512-DJ1N1GdjI7IS7uRlzJuEDCgDQix3ZVYVtgeWEyhyn4iaoitpMBX6Ndd488mXSx0xah/cONAkEaYyylDyAeHMHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.31.0", + "@typescript-eslint/utils": "8.31.0", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.31.0.tgz", + "integrity": "sha512-Ch8oSjVyYyJxPQk8pMiP2FFGYatqXQfQIaMp+TpuuLlDachRWpUAeEu1u9B/v/8LToehUIWyiKcA/w5hUFRKuQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.31.0.tgz", + "integrity": "sha512-xLmgn4Yl46xi6aDSZ9KkyfhhtnYI15/CvHbpOy/eR5NWhK/BK8wc709KKwhAR0m4ZKRP7h07bm4BWUYOCuRpQQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/visitor-keys": "8.31.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.31.0.tgz", + "integrity": "sha512-qi6uPLt9cjTFxAb1zGNgTob4x9ur7xC6mHQJ8GwEzGMGE9tYniublmJaowOJ9V2jUzxrltTPfdG2nKlWsq0+Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.31.0", + "@typescript-eslint/types": "8.31.0", + "@typescript-eslint/typescript-estree": "8.31.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.31.0.tgz", + "integrity": "sha512-QcGHmlRHWOl93o64ZUMNewCdwKGU6WItOU52H0djgNmn1EOrhVudrDzXz4OycCRSCPwFCDrE2iIt5vmuUdHxuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.31.0", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.7.2.tgz", + "integrity": "sha512-vxtBno4xvowwNmO/ASL0Y45TpHqmNkAaDtz4Jqb+clmcVSSl8XCG/PNFFkGsXXXS6AMjP+ja/TtNCFFa1QwLRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.7.2.tgz", + "integrity": "sha512-qhVa8ozu92C23Hsmv0BF4+5Dyyd5STT1FolV4whNgbY6mj3kA0qsrGPe35zNR3wAN7eFict3s4Rc2dDTPBTuFQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.7.2.tgz", + "integrity": "sha512-zKKdm2uMXqLFX6Ac7K5ElnnG5VIXbDlFWzg4WJ8CGUedJryM5A3cTgHuGMw1+P5ziV8CRhnSEgOnurTI4vpHpg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.7.2.tgz", + "integrity": "sha512-8N1z1TbPnHH+iDS/42GJ0bMPLiGK+cUqOhNbMKtWJ4oFGzqSJk/zoXFzcQkgtI63qMcUI7wW1tq2usZQSb2jxw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.7.2.tgz", + "integrity": "sha512-tjYzI9LcAXR9MYd9rO45m1s0B/6bJNuZ6jeOxo1pq1K6OBuRMMmfyvJYval3s9FPPGmrldYA3mi4gWDlWuTFGA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.7.2.tgz", + "integrity": "sha512-jon9M7DKRLGZ9VYSkFMflvNqu9hDtOCEnO2QAryFWgT6o6AXU8du56V7YqnaLKr6rAbZBWYsYpikF226v423QA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.7.2.tgz", + "integrity": "sha512-c8Cg4/h+kQ63pL43wBNaVMmOjXI/X62wQmru51qjfTvI7kmCy5uHTJvK/9LrF0G8Jdx8r34d019P1DVJmhXQpA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.7.2.tgz", + "integrity": "sha512-A+lcwRFyrjeJmv3JJvhz5NbcCkLQL6Mk16kHTNm6/aGNc4FwPHPE4DR9DwuCvCnVHvF5IAd9U4VIs/VvVir5lg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.7.2.tgz", + "integrity": "sha512-hQQ4TJQrSQW8JlPm7tRpXN8OCNP9ez7PajJNjRD1ZTHQAy685OYqPrKjfaMw/8LiHCt8AZ74rfUVHP9vn0N69Q==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.7.2.tgz", + "integrity": "sha512-NoAGbiqrxtY8kVooZ24i70CjLDlUFI7nDj3I9y54U94p+3kPxwd2L692YsdLa+cqQ0VoqMWoehDFp21PKRUoIQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.7.2.tgz", + "integrity": "sha512-KaZByo8xuQZbUhhreBTW+yUnOIHUsv04P8lKjQ5otiGoSJ17ISGYArc+4vKdLEpGaLbemGzr4ZeUbYQQsLWFjA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.7.2.tgz", + "integrity": "sha512-dEidzJDubxxhUCBJ/SHSMJD/9q7JkyfBMT77Px1npl4xpg9t0POLvnWywSk66BgZS/b2Hy9Y1yFaoMTFJUe9yg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.7.2.tgz", + "integrity": "sha512-RvP+Ux3wDjmnZDT4XWFfNBRVG0fMsc+yVzNFUqOflnDfZ9OYujv6nkh+GOr+watwrW4wdp6ASfG/e7bkDradsw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.7.2.tgz", + "integrity": "sha512-y797JBmO9IsvXVRCKDXOxjyAE4+CcZpla2GSoBQ33TVb3ILXuFnMrbR/QQZoauBYeOFuu4w3ifWLw52sdHGz6g==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.9" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.7.2.tgz", + "integrity": "sha512-gtYTh4/VREVSLA+gHrfbWxaMO/00y+34htY7XpioBTy56YN2eBjkPrY1ML1Zys89X3RJDKVaogzwxlM1qU7egg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.7.2.tgz", + "integrity": "sha512-Ywv20XHvHTDRQs12jd3MY8X5C8KLjDbg/jyaal/QLKx3fAShhJyD4blEANInsjxW3P7isHx1Blt56iUDDJO3jg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.7.2.tgz", + "integrity": "sha512-friS8NEQfHaDbkThxopGk+LuE5v3iY0StruifjQEt7SLbA46OnfgMO15sOTkbpJkol6RB+1l1TYPXh0sCddpvA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.4.1.tgz", + "integrity": "sha512-IpEm5ZmeXAP/osiBXVVP5KjFMzbWOonMs0NaQQl+xYnUAcq4oHUBsF2+p4MgKWG4YMmFYJU8A6sxRPuowllm6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.26.10", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001715", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz", + "integrity": "sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "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, + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.143", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.143.tgz", + "integrity": "sha512-QqklJMOFBMqe46k8iIOwA9l2hz57V2OKMmP5eSWcUvwx+mASAsbU+wkF1pHjn9ZVSBPrsYWr4/W/95y5SwYg2g==", + "dev": true, + "license": "ISC" + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.3.tgz", + "integrity": "sha512-qKA6Pvai73+M2FtftpNKRxJ78GIjmFXFxd/1DVBqGo/qNhLSfv+G12n9pNoWdytJC8U00TrViOwpjT0zgqQS8Q==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.3", + "@esbuild/android-arm": "0.25.3", + "@esbuild/android-arm64": "0.25.3", + "@esbuild/android-x64": "0.25.3", + "@esbuild/darwin-arm64": "0.25.3", + "@esbuild/darwin-x64": "0.25.3", + "@esbuild/freebsd-arm64": "0.25.3", + "@esbuild/freebsd-x64": "0.25.3", + "@esbuild/linux-arm": "0.25.3", + "@esbuild/linux-arm64": "0.25.3", + "@esbuild/linux-ia32": "0.25.3", + "@esbuild/linux-loong64": "0.25.3", + "@esbuild/linux-mips64el": "0.25.3", + "@esbuild/linux-ppc64": "0.25.3", + "@esbuild/linux-riscv64": "0.25.3", + "@esbuild/linux-s390x": "0.25.3", + "@esbuild/linux-x64": "0.25.3", + "@esbuild/netbsd-arm64": "0.25.3", + "@esbuild/netbsd-x64": "0.25.3", + "@esbuild/openbsd-arm64": "0.25.3", + "@esbuild/openbsd-x64": "0.25.3", + "@esbuild/sunos-x64": "0.25.3", + "@esbuild/win32-arm64": "0.25.3", + "@esbuild/win32-ia32": "0.25.3", + "@esbuild/win32-x64": "0.25.3" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.25.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.25.1.tgz", + "integrity": "sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.20.0", + "@eslint/config-helpers": "^0.2.1", + "@eslint/core": "^0.13.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.25.1", + "@eslint/plugin-kit": "^0.2.8", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.3.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.2.tgz", + "integrity": "sha512-Epgp/EofAUeEpIdZkW60MHKvPyru1ruQJxPL+WIycnaPApuseK0Zpkrh/FwL9oIpQvIhJwV7ptOy0DWUjTlCiA==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-4.3.4.tgz", + "integrity": "sha512-buzw5z5VtiQMysYLH9iW9BV04YyZebsw+gPi+c4FCjfS9i6COYOrEWw9t3m3wA9PFBfqcBCqWf32qrXLbwafDw==", + "dev": true, + "license": "ISC", + "dependencies": { + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^2.0.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.13", + "unrs-resolver": "^1.6.3" + }, + "engines": { + "node": "^16.17.0 || >=18.6.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-import-resolver-typescript" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.2.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz", + "integrity": "sha512-mUcf7QG2Tjk7H055Jk0lGBjbgDnfrvqjhXh9t2xLMSCjZVcw9Rb1V6sVNXO0th3jgeO7zllWPTNRil3JW94TnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.11.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", + "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz", + "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=8.40" + } + }, + "node_modules/eslint-scope": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz", + "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "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, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz", + "integrity": "sha512-iInW14XItCXET01CQFqudPOWP2jYMl7T+QRQT+UNcR/iQncN/F0UNpgd76iFkBPgNQb4+X3LV9tLJYzwh+Gl3A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", + "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.7.1" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "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, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-postinstall": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.2.tgz", + "integrity": "sha512-Wy1VI/hpKHwy1MsnFxHCJxqFwmmxD0RA/EKPL7e6mfbsY01phM2SZyJnRdU0bLvhu0Quby1DCcAZti3ghdl4/A==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, + "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, + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true, + "license": "MIT" + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz", + "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", + "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.1.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz", + "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.26.0" + }, + "peerDependencies": { + "react": "^19.1.0" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", + "integrity": "sha512-Noe455xmA96nnqH5piFtLobsGbCij7Tu+tb3c1vYjNbTkfzGqXqQXG3wJaYXkRZuQ0vEYN4bhwg7QnIrqB5B+w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.7" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.40.0", + "@rollup/rollup-android-arm64": "4.40.0", + "@rollup/rollup-darwin-arm64": "4.40.0", + "@rollup/rollup-darwin-x64": "4.40.0", + "@rollup/rollup-freebsd-arm64": "4.40.0", + "@rollup/rollup-freebsd-x64": "4.40.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.40.0", + "@rollup/rollup-linux-arm-musleabihf": "4.40.0", + "@rollup/rollup-linux-arm64-gnu": "4.40.0", + "@rollup/rollup-linux-arm64-musl": "4.40.0", + "@rollup/rollup-linux-loongarch64-gnu": "4.40.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.40.0", + "@rollup/rollup-linux-riscv64-gnu": "4.40.0", + "@rollup/rollup-linux-riscv64-musl": "4.40.0", + "@rollup/rollup-linux-s390x-gnu": "4.40.0", + "@rollup/rollup-linux-x64-gnu": "4.40.0", + "@rollup/rollup-linux-x64-musl": "4.40.0", + "@rollup/rollup-win32-arm64-msvc": "4.40.0", + "@rollup/rollup-win32-ia32-msvc": "4.40.0", + "@rollup/rollup-win32-x64-msvc": "4.40.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", + "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "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, + "license": "MIT", + "dependencies": { + "has-flag": "^4.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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/synckit": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz", + "integrity": "sha512-Q/XQKRaJiLiFIBNN+mndW7S/RHxvwzuZS6ZwmRzUBqJBv/5QIKCEwkBC8GBf8EQJKYnaFs0wOZbKTXBPj8L9oQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", + "integrity": "sha512-mEwzpUgrLySlveBwEVDMKk5B57bhLPYovRfPAXD5gA/98Opn0rCDj3GtLwFvCvH5RK9uPCExUROW5NjDwvqkxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.4", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/ts-api-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.31.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.31.0.tgz", + "integrity": "sha512-u+93F0sB0An8WEAPtwxVhFby573E8ckdjwUUQUj9QA4v8JAvgtoDdIyYR3XFwFHq2W1KJ1AurwJCO+w+Y1ixyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.31.0", + "@typescript-eslint/parser": "8.31.0", + "@typescript-eslint/utils": "8.31.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/unrs-resolver": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.7.2.tgz", + "integrity": "sha512-BBKpaylOW8KbHsu378Zky/dGh4ckT/4NW/0SHRABdqRLcQJ2dAOjDo9g97p04sWflm0kqPqpUatxReNV/dqI5A==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/JounQin" + }, + "optionalDependencies": { + "@unrs/resolver-binding-darwin-arm64": "1.7.2", + "@unrs/resolver-binding-darwin-x64": "1.7.2", + "@unrs/resolver-binding-freebsd-x64": "1.7.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.7.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.7.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.7.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.7.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.7.2", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.7.2", + "@unrs/resolver-binding-linux-riscv64-musl": "1.7.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.7.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.7.2", + "@unrs/resolver-binding-linux-x64-musl": "1.7.2", + "@unrs/resolver-binding-wasm32-wasi": "1.7.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.7.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.7.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.7.2" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.3.tgz", + "integrity": "sha512-5nXH+QsELbFKhsEfWLkHrvgRpTdGJzqOZ+utSdmPTvwHmvU6ITTm3xx+mRusihkcI8GeC7lCDyn3kDtiki9scw==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/fdir": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", + "integrity": "sha512-1NZP+GK4GfuAv3PqKvxQRDMjdSRZjnkq7KfhlNrCNNlZ0ygQFpebfrnfnq/W7fpUnAv9aGWmY1zKx7FYL3gwhg==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/package.json b/package.json index 1734857..b83a4b0 100644 --- a/package.json +++ b/package.json @@ -1,20 +1,37 @@ { "name": "ecommerce-application", - "version": "1.0.0", - "description": "", - "main": "index.js", + "private": true, + "version": "0.0.0", + "type": "module", "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" + "dev": "vite", + "build": "tsc -b && vite build", + "lint": "eslint .", + "preview": "vite preview" }, - "repository": { - "type": "git", - "url": "git+https://github.com/maiano/eCommerce-Application.git" + "dependencies": { + "react": "^19.0.0", + "react-dom": "^19.0.0" }, - "keywords": [], - "author": "", - "license": "ISC", - "bugs": { - "url": "https://github.com/maiano/eCommerce-Application/issues" - }, - "homepage": "https://github.com/maiano/eCommerce-Application#readme" + "devDependencies": { + "@eslint/js": "^9.22.0", + "@types/node": "^22.15.2", + "@types/react": "^19.0.10", + "@types/react-dom": "^19.0.4", + "@typescript-eslint/eslint-plugin": "^8.31.0", + "@typescript-eslint/parser": "^8.31.0", + "@vitejs/plugin-react": "^4.3.4", + "eslint": "^9.22.0", + "eslint-config-prettier": "^10.1.2", + "eslint-import-resolver-typescript": "^4.3.4", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-prettier": "^5.2.6", + "eslint-plugin-react-hooks": "^5.2.0", + "eslint-plugin-react-refresh": "^0.4.19", + "globals": "^16.0.0", + "prettier": "^3.5.3", + "typescript": "~5.7.2", + "typescript-eslint": "^8.26.1", + "vite": "^6.3.1" + } } diff --git a/public/vite.svg b/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/App.css b/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..3d7ded3 --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,35 @@ +import { useState } from 'react' +import reactLogo from './assets/react.svg' +import viteLogo from '/vite.svg' +import './App.css' + +function App() { + const [count, setCount] = useState(0) + + return ( + <> +
+ + Vite logo + + + React logo + +
+

Vite + React

+
+ +

+ Edit src/App.tsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+ + ) +} + +export default App diff --git a/src/assets/react.svg b/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/index.css b/src/index.css new file mode 100644 index 0000000..08a3ac9 --- /dev/null +++ b/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 0000000..bef5202 --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,10 @@ +import { StrictMode } from 'react' +import { createRoot } from 'react-dom/client' +import './index.css' +import App from './App.tsx' + +createRoot(document.getElementById('root')!).render( + + + , +) diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..db1eb70 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,31 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] +}, + + /* Linting */ + "strict": true, + "noImplicitAny": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["src"] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..1ffef60 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..db0becc --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedSideEffectImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..0e1b4b4 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,13 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; +import path from 'path'; + +// https://vite.dev/config/ +export default defineConfig({ + plugins: [react()], + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + }, + }, +}); From d2e8e2d2b25c53ad179b75f1eb9cc7598e3904e8 Mon Sep 17 00:00:00 2001 From: maiano Date: Sun, 27 Apr 2025 23:45:35 +0200 Subject: [PATCH 003/225] chore: install husky --- .husky/commit-msg | 1 + .husky/pre-commit | 1 + commitlint.config.js | 27 + eslint.config.js | 7 + package-lock.json | 1886 +++++++++++++++++++++++++++++++++++++++++- package.json | 12 +- 6 files changed, 1924 insertions(+), 10 deletions(-) create mode 100644 .husky/commit-msg create mode 100644 .husky/pre-commit create mode 100644 commitlint.config.js diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100644 index 0000000..34eed8b --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1 @@ +npx --no -- commitlint --edit $1 \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000..1524ad6 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +npx --no -- lint-staged diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 0000000..6aee53e --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,27 @@ +export default { + extends: ['@commitlint/config-conventional'], + rules: { + 'scope-case': [2, 'always', 'lower-case'], + 'subject-empty': [2, 'never'], + 'subject-full-stop': [2, 'never', '.'], + 'type-case': [2, 'always', 'lower-case'], + 'type-empty': [2, 'never'], + 'type-enum': [ + 2, + 'always', + [ + 'build', + 'ci', + 'chore', + 'docs', + 'feat', + 'fix', + 'refactor', + 'revert', + 'style', + 'test', + 'init', + ], + ], + }, +}; diff --git a/eslint.config.js b/eslint.config.js index 0cbb401..9e11a5b 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -5,6 +5,7 @@ import reactRefresh from 'eslint-plugin-react-refresh'; import tsPlugin from '@typescript-eslint/eslint-plugin'; import tsParser from '@typescript-eslint/parser'; import importPlugin from 'eslint-plugin-import'; +import jsxA11y from 'eslint-plugin-jsx-a11y'; export default [ // Base @@ -50,6 +51,7 @@ export default [ import: importPlugin, 'react-hooks': reactHooks, 'react-refresh': reactRefresh, + 'jsx-a11y': jsxA11y, }, rules: { ...tsPlugin.configs.recommended.rules, @@ -77,6 +79,11 @@ export default [ '@typescript-eslint/no-unsafe-call': 'error', '@typescript-eslint/no-unsafe-member-access': 'error', '@typescript-eslint/no-unsafe-return': 'error', + + 'jsx-a11y/alt-text': 'warn', + 'jsx-a11y/anchor-is-valid': 'warn', + 'jsx-a11y/aria-props': 'warn', + 'jsx-a11y/click-events-have-key-events': 'warn', }, }, ]; diff --git a/package-lock.json b/package-lock.json index e050cac..23b2be9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,8 @@ "react-dom": "^19.0.0" }, "devDependencies": { + "@commitlint/cli": "^19.8.0", + "@commitlint/config-conventional": "^19.8.0", "@eslint/js": "^9.22.0", "@types/node": "^22.15.2", "@types/react": "^19.0.10", @@ -23,10 +25,13 @@ "eslint-config-prettier": "^10.1.2", "eslint-import-resolver-typescript": "^4.3.4", "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-prettier": "^5.2.6", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^16.0.0", + "husky": "^9.1.7", + "lint-staged": "^15.5.1", "prettier": "^3.5.3", "typescript": "~5.7.2", "typescript-eslint": "^8.26.1", @@ -349,6 +354,425 @@ "node": ">=6.9.0" } }, + "node_modules/@commitlint/cli": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.8.0.tgz", + "integrity": "sha512-t/fCrLVu+Ru01h0DtlgHZXbHV2Y8gKocTR5elDOqIRUzQd0/6hpt2VIWOj9b3NDo7y4/gfxeR2zRtXq/qO6iUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/format": "^19.8.0", + "@commitlint/lint": "^19.8.0", + "@commitlint/load": "^19.8.0", + "@commitlint/read": "^19.8.0", + "@commitlint/types": "^19.8.0", + "tinyexec": "^0.3.0", + "yargs": "^17.0.0" + }, + "bin": { + "commitlint": "cli.js" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-conventional": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-19.8.0.tgz", + "integrity": "sha512-9I2kKJwcAPwMoAj38hwqFXG0CzS2Kj+SAByPUQ0SlHTfb7VUhYVmo7G2w2tBrqmOf7PFd6MpZ/a1GQJo8na8kw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.8.0", + "conventional-changelog-conventionalcommits": "^7.0.2" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-validator": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-19.8.0.tgz", + "integrity": "sha512-+r5ZvD/0hQC3w5VOHJhGcCooiAVdynFlCe2d6I9dU+PvXdV3O+fU4vipVg+6hyLbQUuCH82mz3HnT/cBQTYYuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.8.0", + "ajv": "^8.11.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/config-validator/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@commitlint/config-validator/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/@commitlint/ensure": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-19.8.0.tgz", + "integrity": "sha512-kNiNU4/bhEQ/wutI1tp1pVW1mQ0QbAjfPRo5v8SaxoVV+ARhkB8Wjg3BSseNYECPzWWfg/WDqQGIfV1RaBFQZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.8.0", + "lodash.camelcase": "^4.3.0", + "lodash.kebabcase": "^4.1.1", + "lodash.snakecase": "^4.1.1", + "lodash.startcase": "^4.4.0", + "lodash.upperfirst": "^4.3.1" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/execute-rule": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-19.8.0.tgz", + "integrity": "sha512-fuLeI+EZ9x2v/+TXKAjplBJWI9CNrHnyi5nvUQGQt4WRkww/d95oVRsc9ajpt4xFrFmqMZkd/xBQHZDvALIY7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/format": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-19.8.0.tgz", + "integrity": "sha512-EOpA8IERpQstxwp/WGnDArA7S+wlZDeTeKi98WMOvaDLKbjptuHWdOYYr790iO7kTCif/z971PKPI2PkWMfOxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.8.0", + "chalk": "^5.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/format/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@commitlint/is-ignored": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-19.8.0.tgz", + "integrity": "sha512-L2Jv9yUg/I+jF3zikOV0rdiHUul9X3a/oU5HIXhAJLE2+TXTnEBfqYP9G5yMw/Yb40SnR764g4fyDK6WR2xtpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.8.0", + "semver": "^7.6.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/lint": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-19.8.0.tgz", + "integrity": "sha512-+/NZKyWKSf39FeNpqhfMebmaLa1P90i1Nrb1SrA7oSU5GNN/lksA4z6+ZTnsft01YfhRZSYMbgGsARXvkr/VLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/is-ignored": "^19.8.0", + "@commitlint/parse": "^19.8.0", + "@commitlint/rules": "^19.8.0", + "@commitlint/types": "^19.8.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/load": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-19.8.0.tgz", + "integrity": "sha512-4rvmm3ff81Sfb+mcWT5WKlyOa+Hd33WSbirTVUer0wjS1Hv/Hzr07Uv1ULIV9DkimZKNyOwXn593c+h8lsDQPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^19.8.0", + "@commitlint/execute-rule": "^19.8.0", + "@commitlint/resolve-extends": "^19.8.0", + "@commitlint/types": "^19.8.0", + "chalk": "^5.3.0", + "cosmiconfig": "^9.0.0", + "cosmiconfig-typescript-loader": "^6.1.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "lodash.uniq": "^4.5.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/load/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@commitlint/message": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-19.8.0.tgz", + "integrity": "sha512-qs/5Vi9bYjf+ZV40bvdCyBn5DvbuelhR6qewLE8Bh476F7KnNyLfdM/ETJ4cp96WgeeHo6tesA2TMXS0sh5X4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/parse": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-19.8.0.tgz", + "integrity": "sha512-YNIKAc4EXvNeAvyeEnzgvm1VyAe0/b3Wax7pjJSwXuhqIQ1/t2hD3OYRXb6D5/GffIvaX82RbjD+nWtMZCLL7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/types": "^19.8.0", + "conventional-changelog-angular": "^7.0.0", + "conventional-commits-parser": "^5.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/read": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-19.8.0.tgz", + "integrity": "sha512-6ywxOGYajcxK1y1MfzrOnwsXO6nnErna88gRWEl3qqOOP8MDu/DTeRkGLXBFIZuRZ7mm5yyxU5BmeUvMpNte5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/top-level": "^19.8.0", + "@commitlint/types": "^19.8.0", + "git-raw-commits": "^4.0.0", + "minimist": "^1.2.8", + "tinyexec": "^0.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/resolve-extends": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-19.8.0.tgz", + "integrity": "sha512-CLanRQwuG2LPfFVvrkTrBR/L/DMy3+ETsgBqW1OvRxmzp/bbVJW0Xw23LnnExgYcsaFtos967lul1CsbsnJlzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/config-validator": "^19.8.0", + "@commitlint/types": "^19.8.0", + "global-directory": "^4.0.1", + "import-meta-resolve": "^4.0.0", + "lodash.mergewith": "^4.6.2", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/resolve-extends/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@commitlint/rules": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-19.8.0.tgz", + "integrity": "sha512-IZ5IE90h6DSWNuNK/cwjABLAKdy8tP8OgGVGbXe1noBEX5hSsu00uRlLu6JuruiXjWJz2dZc+YSw3H0UZyl/mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@commitlint/ensure": "^19.8.0", + "@commitlint/message": "^19.8.0", + "@commitlint/to-lines": "^19.8.0", + "@commitlint/types": "^19.8.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/to-lines": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-19.8.0.tgz", + "integrity": "sha512-3CKLUw41Cur8VMjh16y8LcsOaKbmQjAKCWlXx6B0vOUREplp6em9uIVhI8Cv934qiwkbi2+uv+mVZPnXJi1o9A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/top-level": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-19.8.0.tgz", + "integrity": "sha512-Rphgoc/omYZisoNkcfaBRPQr4myZEHhLPx2/vTXNLjiCw4RgfPR1wEgUpJ9OOmDCiv5ZyIExhprNLhteqH4FuQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^7.0.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/top-level/node_modules/find-up": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz", + "integrity": "sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.2.0", + "path-exists": "^5.0.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/top-level/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/@commitlint/top-level/node_modules/yocto-queue": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.1.tgz", + "integrity": "sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@commitlint/types": { + "version": "19.8.0", + "resolved": "https://registry.npmjs.org/@commitlint/types/-/types-19.8.0.tgz", + "integrity": "sha512-LRjP623jPyf3Poyfb0ohMj8I3ORyBDOwXAgxxVPbSD0unJuW2mJWeiRfaQinjtccMqC5Wy1HOMfa4btKjbNxbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/conventional-commits-parser": "^5.0.0", + "chalk": "^5.3.0" + }, + "engines": { + "node": ">=v18" + } + }, + "node_modules/@commitlint/types/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/@emnapi/core": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", @@ -1520,6 +1944,16 @@ "@babel/types": "^7.20.7" } }, + "node_modules/@types/conventional-commits-parser": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.1.tgz", + "integrity": "sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", @@ -2065,6 +2499,35 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansi-escapes": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", + "dev": true, + "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -2088,6 +2551,16 @@ "dev": true, "license": "Python-2.0" }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/array-buffer-byte-length": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", @@ -2105,8 +2578,15 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/array-includes": { - "version": "3.1.8", + "node_modules/array-ify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz", + "integrity": "sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng==", + "dev": true, + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.8", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, @@ -2208,6 +2688,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, "node_modules/async-function": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", @@ -2234,6 +2721,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/axe-core": { + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -2395,6 +2902,127 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "restore-cursor": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz", + "integrity": "sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==", + "dev": true, + "license": "MIT", + "dependencies": { + "slice-ansi": "^5.0.0", + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/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, + "license": "MIT" + }, + "node_modules/cliui/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -2415,6 +3043,34 @@ "dev": true, "license": "MIT" }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", + "dev": true, + "license": "MIT" + }, + "node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/compare-func": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", + "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-ify": "^1.0.0", + "dot-prop": "^5.1.0" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2422,6 +3078,51 @@ "dev": true, "license": "MIT" }, + "node_modules/conventional-changelog-angular": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-7.0.0.tgz", + "integrity": "sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/conventional-changelog-conventionalcommits": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-7.0.2.tgz", + "integrity": "sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==", + "dev": true, + "license": "ISC", + "dependencies": { + "compare-func": "^2.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/conventional-commits-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-5.0.0.tgz", + "integrity": "sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-text-path": "^2.0.0", + "JSONStream": "^1.3.5", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "conventional-commits-parser": "cli.mjs" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -2429,6 +3130,51 @@ "dev": true, "license": "MIT" }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig-typescript-loader": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-6.1.0.tgz", + "integrity": "sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "jiti": "^2.4.1" + }, + "engines": { + "node": ">=v18" + }, + "peerDependencies": { + "@types/node": "*", + "cosmiconfig": ">=9", + "typescript": ">=5" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -2451,6 +3197,26 @@ "dev": true, "license": "MIT" }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/dargs": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-8.1.0.tgz", + "integrity": "sha512-wAV9QHOsNbwnWdNW2FYvE1P56wtgSbM+3SZcdGiWQILwVjACCXDCI3Ai8QlCjMDB8YK5zySiXZYBiwGmNY3lnw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -2579,6 +3345,19 @@ "node": ">=0.10.0" } }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -2601,6 +3380,46 @@ "dev": true, "license": "ISC" }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, "node_modules/es-abstract": { "version": "1.23.9", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", @@ -3047,6 +3866,60 @@ "semver": "bin/semver.js" } }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, "node_modules/eslint-plugin-prettier": { "version": "5.2.6", "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.6.tgz", @@ -3245,15 +4118,46 @@ "node": ">=0.10.0" } }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "dev": true, "license": "MIT" }, - "node_modules/fast-diff": { - "version": "1.3.0", + "node_modules/execa": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", + "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^8.0.1", + "human-signals": "^5.0.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^4.1.0", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": ">=16.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-diff": { + "version": "1.3.0", "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true, @@ -3303,6 +4207,23 @@ "dev": true, "license": "MIT" }, + "node_modules/fast-uri": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", + "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/fastq": { "version": "1.19.1", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", @@ -3459,6 +4380,29 @@ "node": ">=6.9.0" } }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", @@ -3498,6 +4442,19 @@ "node": ">= 0.4" } }, + "node_modules/get-stream": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", + "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-symbol-description": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", @@ -3529,6 +4486,24 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, + "node_modules/git-raw-commits": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-4.0.0.tgz", + "integrity": "sha512-ICsMM1Wk8xSGMowkOmPrzo2Fgmfo4bMHLNX6ytHjajRJUqvHOw/TFapQ+QG75c3X/tTDDhOSRPGC52dDbNM8FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dargs": "^8.0.0", + "meow": "^12.0.1", + "split2": "^4.0.0" + }, + "bin": { + "git-raw-commits": "cli.mjs" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -3542,6 +4517,22 @@ "node": ">=10.13.0" } }, + "node_modules/global-directory": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/global-directory/-/global-directory-4.0.1.tgz", + "integrity": "sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ini": "4.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/globals": { "version": "16.0.0", "resolved": "https://registry.npmjs.org/globals/-/globals-16.0.0.tgz", @@ -3686,6 +4677,32 @@ "node": ">= 0.4" } }, + "node_modules/human-signals": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", + "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=16.17.0" + } + }, + "node_modules/husky": { + "version": "9.1.7", + "resolved": "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", + "dev": true, + "license": "MIT", + "bin": { + "husky": "bin.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" + } + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -3713,6 +4730,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -3723,6 +4751,16 @@ "node": ">=0.8.19" } }, + "node_modules/ini": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", + "integrity": "sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/internal-slot": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", @@ -3756,6 +4794,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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, + "license": "MIT" + }, "node_modules/is-async-function": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", @@ -3909,6 +4954,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-fullwidth-code-point": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", + "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-generator-function": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", @@ -3981,6 +5039,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -4029,6 +5097,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-string": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", @@ -4064,6 +5145,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-text-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", + "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "text-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/is-typed-array": { "version": "1.1.15", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", @@ -4140,6 +5234,16 @@ "dev": true, "license": "ISC" }, + "node_modules/jiti": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", + "integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==", + "dev": true, + "license": "MIT", + "bin": { + "jiti": "lib/jiti-cli.mjs" + } + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -4180,6 +5284,13 @@ "dev": true, "license": "MIT" }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true, + "license": "MIT" + }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -4207,6 +5318,49 @@ "node": ">=6" } }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT" + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -4217,6 +5371,26 @@ "json-buffer": "3.0.1" } }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -4231,6 +5405,85 @@ "node": ">= 0.8.0" } }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "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, + "license": "MIT" + }, + "node_modules/lint-staged": { + "version": "15.5.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-15.5.1.tgz", + "integrity": "sha512-6m7u8mue4Xn6wK6gZvSCQwBvMBR36xfY24nF5bMTf2MHDYG6S3yhJuOgdYVw99hsjyDt2d4z168b3naI8+NWtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^5.4.1", + "commander": "^13.1.0", + "debug": "^4.4.0", + "execa": "^8.0.1", + "lilconfig": "^3.1.3", + "listr2": "^8.2.5", + "micromatch": "^4.0.8", + "pidtree": "^0.6.0", + "string-argv": "^0.3.2", + "yaml": "^2.7.0" + }, + "bin": { + "lint-staged": "bin/lint-staged.js" + }, + "engines": { + "node": ">=18.12.0" + }, + "funding": { + "url": "https://opencollective.com/lint-staged" + } + }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/listr2": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-8.3.2.tgz", + "integrity": "sha512-vsBzcU4oE+v0lj4FhVLzr9dBTv4/fHIa57l+GCwovP8MoFNZJTOhGU8PXd4v2VJCbECAaijBiHntiekFMLvo0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^4.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -4247,6 +5500,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -4254,6 +5528,107 @@ "dev": true, "license": "MIT" }, + "node_modules/lodash.mergewith": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.snakecase": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", + "integrity": "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.upperfirst": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz", + "integrity": "sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==", + "dev": true, + "license": "MIT" + }, + "node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-update/node_modules/is-fullwidth-code-point": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz", + "integrity": "sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-update/node_modules/slice-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz", + "integrity": "sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -4274,6 +5649,26 @@ "node": ">= 0.4" } }, + "node_modules/meow": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-12.1.1.tgz", + "integrity": "sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16.10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT" + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -4298,6 +5693,32 @@ "node": ">=8.6" } }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -4380,6 +5801,35 @@ "dev": true, "license": "MIT" }, + "node_modules/npm-run-path": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", + "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -4474,7 +5924,23 @@ "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/optionator": { @@ -4558,6 +6024,25 @@ "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, + "license": "MIT", + "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/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -4605,6 +6090,19 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pidtree": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz", + "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==", + "dev": true, + "license": "MIT", + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/possible-typed-array-names": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", @@ -4789,6 +6287,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", @@ -4830,6 +6348,39 @@ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, + "node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-function": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/reusify": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", @@ -4841,6 +6392,13 @@ "node": ">=0.10.0" } }, + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true, + "license": "MIT" + }, "node_modules/rollup": { "version": "4.40.0", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.40.0.tgz", @@ -5127,6 +6685,49 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slice-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", + "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.0.0", + "is-fullwidth-code-point": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -5137,6 +6738,16 @@ "node": ">=0.10.0" } }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, "node_modules/stable-hash": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", @@ -5144,6 +6755,56 @@ "dev": true, "license": "MIT" }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/string.prototype.trim": { "version": "1.2.10", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", @@ -5203,6 +6864,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -5213,6 +6890,19 @@ "node": ">=4" } }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -5269,6 +6959,33 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/text-extensions": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", + "integrity": "sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, "node_modules/tinyglobby": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.13.tgz", @@ -5527,6 +7244,19 @@ "dev": true, "license": "MIT" }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/unrs-resolver": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.7.2.tgz", @@ -5819,6 +7549,47 @@ "node": ">=0.10.0" } }, + "node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=10" + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", @@ -5826,6 +7597,103 @@ "dev": true, "license": "ISC" }, + "node_modules/yaml": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz", + "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "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, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/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, + "license": "MIT" + }, + "node_modules/yargs/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index b83a4b0..a1b49dc 100644 --- a/package.json +++ b/package.json @@ -7,13 +7,16 @@ "dev": "vite", "build": "tsc -b && vite build", "lint": "eslint .", - "preview": "vite preview" + "preview": "vite preview", + "prepare": "husky" }, "dependencies": { "react": "^19.0.0", "react-dom": "^19.0.0" }, "devDependencies": { + "@commitlint/cli": "^19.8.0", + "@commitlint/config-conventional": "^19.8.0", "@eslint/js": "^9.22.0", "@types/node": "^22.15.2", "@types/react": "^19.0.10", @@ -25,13 +28,20 @@ "eslint-config-prettier": "^10.1.2", "eslint-import-resolver-typescript": "^4.3.4", "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-prettier": "^5.2.6", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^16.0.0", + "husky": "^9.1.7", + "lint-staged": "^15.5.1", "prettier": "^3.5.3", "typescript": "~5.7.2", "typescript-eslint": "^8.26.1", "vite": "^6.3.1" + }, + "lint-staged": { + "*.{json, md, css, scss}": "prettier --list-different --ignore-unknown", + "*.{cjs,js,mjs,jsx,ts,tsx}": "eslint" } } From f227a9b714e5c782b4b4951895bffc444193ac09 Mon Sep 17 00:00:00 2001 From: maiano Date: Tue, 29 Apr 2025 23:39:13 +0200 Subject: [PATCH 004/225] chore: install libs --- package-lock.json | 638 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 13 +- 2 files changed, 644 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 23b2be9..f782adb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,8 +8,19 @@ "name": "ecommerce-application", "version": "0.0.0", "dependencies": { + "@hookform/resolvers": "^5.0.1", + "@mantine/carousel": "^7.17.5", + "@mantine/core": "^7.17.5", + "@mantine/dates": "^7.17.5", + "@mantine/form": "^7.17.5", + "@mantine/hooks": "^7.17.5", + "@mantine/notifications": "^7.17.5", + "framer-motion": "^12.9.2", "react": "^19.0.0", - "react-dom": "^19.0.0" + "react-dom": "^19.0.0", + "react-hook-form": "^7.56.1", + "swr": "^2.3.3", + "zod": "^3.24.3" }, "devDependencies": { "@commitlint/cli": "^19.8.0", @@ -296,6 +307,18 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/runtime": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz", + "integrity": "sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==", + "license": "MIT", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/template": { "version": "7.27.0", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz", @@ -1418,6 +1441,71 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@floating-ui/core": { + "version": "1.6.9", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz", + "integrity": "sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.13", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.13.tgz", + "integrity": "sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.9" + } + }, + "node_modules/@floating-ui/react": { + "version": "0.26.28", + "resolved": "https://registry.npmjs.org/@floating-ui/react/-/react-0.26.28.tgz", + "integrity": "sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.1.2", + "@floating-ui/utils": "^0.2.8", + "tabbable": "^6.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.9.tgz", + "integrity": "sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==", + "license": "MIT" + }, + "node_modules/@hookform/resolvers": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-5.0.1.tgz", + "integrity": "sha512-u/+Jp83luQNx9AdyW2fIPGY6Y7NG68eN2ZW8FOJYL+M0i4s49+refdJdOp/A9n9HFQtQs3HIDHQvX3ZET2o7YA==", + "license": "MIT", + "dependencies": { + "@standard-schema/utils": "^0.3.0" + }, + "peerDependencies": { + "react-hook-form": "^7.55.0" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -1537,6 +1625,101 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@mantine/carousel": { + "version": "7.17.5", + "resolved": "https://registry.npmjs.org/@mantine/carousel/-/carousel-7.17.5.tgz", + "integrity": "sha512-hyBLyZNoXdXn6/JzLqJ9dmRXp/6TXYRO3QpwHBmyDPoF/oeW+qDlsVyk2RWjWwWehkfKuR2tkDV6bv7ykMlDOA==", + "license": "MIT", + "peerDependencies": { + "@mantine/core": "7.17.5", + "@mantine/hooks": "7.17.5", + "embla-carousel-react": ">=7.0.0", + "react": "^18.x || ^19.x", + "react-dom": "^18.x || ^19.x" + } + }, + "node_modules/@mantine/core": { + "version": "7.17.5", + "resolved": "https://registry.npmjs.org/@mantine/core/-/core-7.17.5.tgz", + "integrity": "sha512-66g/lr281cDPfucjtPw8gFo/yNS9G5iSKqysvPGuDpUBG2bEw8FsJMIsU0bMXtravToIpa3vJRrFUuPndPGnpQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/react": "^0.26.28", + "clsx": "^2.1.1", + "react-number-format": "^5.4.3", + "react-remove-scroll": "^2.6.2", + "react-textarea-autosize": "8.5.9", + "type-fest": "^4.27.0" + }, + "peerDependencies": { + "@mantine/hooks": "7.17.5", + "react": "^18.x || ^19.x", + "react-dom": "^18.x || ^19.x" + } + }, + "node_modules/@mantine/dates": { + "version": "7.17.5", + "resolved": "https://registry.npmjs.org/@mantine/dates/-/dates-7.17.5.tgz", + "integrity": "sha512-8/Qjjb9159rQhxtuHLukNfo3/AEGl7SVSRESN8MkfyP8MCQ7mgm9wqvMADb/9Q75boUA0HIN2pewlzlcd31MHQ==", + "license": "MIT", + "dependencies": { + "clsx": "^2.1.1" + }, + "peerDependencies": { + "@mantine/core": "7.17.5", + "@mantine/hooks": "7.17.5", + "dayjs": ">=1.0.0", + "react": "^18.x || ^19.x", + "react-dom": "^18.x || ^19.x" + } + }, + "node_modules/@mantine/form": { + "version": "7.17.5", + "resolved": "https://registry.npmjs.org/@mantine/form/-/form-7.17.5.tgz", + "integrity": "sha512-24xkjs8486uOoevymHx2xgZ69j8mM9EG01LMOOMmEHV2k+0HwrCvwPL/2ISCnzWfHZBSwrq9ZTw7KZ6HPnU0nQ==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "klona": "^2.0.6" + }, + "peerDependencies": { + "react": "^18.x || ^19.x" + } + }, + "node_modules/@mantine/hooks": { + "version": "7.17.5", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-7.17.5.tgz", + "integrity": "sha512-Q/3AHI1fjl+W7xQ3jEoMmSoTxLqxMI2gPfxIjd73OPmRpPenYWR1zk/diirXXm2t7JOrAbmpA3/O1gzmgqzc/Q==", + "license": "MIT", + "peerDependencies": { + "react": "^18.x || ^19.x" + } + }, + "node_modules/@mantine/notifications": { + "version": "7.17.5", + "resolved": "https://registry.npmjs.org/@mantine/notifications/-/notifications-7.17.5.tgz", + "integrity": "sha512-dLbrSm7ct97fb0Yv8ImVj9mVNkjnD/xkDCP1PANt/shM9xDh0TguqQTvborb+8Wxh1g+RtWVML/an5rVsHbKmg==", + "license": "MIT", + "dependencies": { + "@mantine/store": "7.17.5", + "react-transition-group": "4.4.5" + }, + "peerDependencies": { + "@mantine/core": "7.17.5", + "@mantine/hooks": "7.17.5", + "react": "^18.x || ^19.x", + "react-dom": "^18.x || ^19.x" + } + }, + "node_modules/@mantine/store": { + "version": "7.17.5", + "resolved": "https://registry.npmjs.org/@mantine/store/-/store-7.17.5.tgz", + "integrity": "sha512-HQzy4rBlUFyw+39TgiAV+TGuQivMWYeQlnMctKJlaxwVY5ZTdF2IpJ/JZcjkGrmrZvBwUQ8IOMFvt2eZc20P1Q==", + "license": "MIT", + "peerDependencies": { + "react": "^18.x || ^19.x" + } + }, "node_modules/@napi-rs/wasm-runtime": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.9.tgz", @@ -1888,6 +2071,12 @@ "dev": true, "license": "MIT" }, + "node_modules/@standard-schema/utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@standard-schema/utils/-/utils-0.3.0.tgz", + "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", + "license": "MIT" + }, "node_modules/@tybys/wasm-util": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", @@ -1989,7 +2178,7 @@ "version": "19.1.2", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.2.tgz", "integrity": "sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "csstype": "^3.0.2" @@ -3023,6 +3212,15 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -3194,7 +3392,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, "license": "MIT" }, "node_modules/damerau-levenshtein": { @@ -3271,6 +3468,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/dayjs": { + "version": "1.11.13", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz", + "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==", + "license": "MIT", + "peer": true + }, "node_modules/debug": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", @@ -3332,6 +3536,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, "node_modules/doctrine": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", @@ -3345,6 +3564,16 @@ "node": ">=0.10.0" } }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, "node_modules/dot-prop": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", @@ -3380,6 +3609,37 @@ "dev": true, "license": "ISC" }, + "node_modules/embla-carousel": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel/-/embla-carousel-8.6.0.tgz", + "integrity": "sha512-SjWyZBHJPbqxHOzckOfo8lHisEaJWmwd23XppYFYVh10bU66/Pn5tkVkbkCMZVdbUE5eTCI2nD8OyIP4Z+uwkA==", + "license": "MIT", + "peer": true + }, + "node_modules/embla-carousel-react": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-react/-/embla-carousel-react-8.6.0.tgz", + "integrity": "sha512-0/PjqU7geVmo6F734pmPqpyHqiM99olvyecY7zdweCw+6tKEXnrE90pBiBbMMU8s5tICemzpQ3hi5EpxzGW+JA==", + "license": "MIT", + "peer": true, + "dependencies": { + "embla-carousel": "8.6.0", + "embla-carousel-reactive-utils": "8.6.0" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.1 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + } + }, + "node_modules/embla-carousel-reactive-utils": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/embla-carousel-reactive-utils/-/embla-carousel-reactive-utils-8.6.0.tgz", + "integrity": "sha512-fMVUDUEx0/uIEDM0Mz3dHznDhfX+znCCDCeIophYb1QGVM7YThSWX+wz11zlYwWFOr74b4QLGg0hrGPJeG2s4A==", + "license": "MIT", + "peer": true, + "peerDependencies": { + "embla-carousel": "8.6.0" + } + }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -4153,7 +4413,6 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, "license": "MIT" }, "node_modules/fast-diff": { @@ -4314,6 +4573,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/framer-motion": { + "version": "12.9.2", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.9.2.tgz", + "integrity": "sha512-R0O3Jdqbfwywpm45obP+8sTgafmdEcUoShQTAV+rB5pi+Y1Px/FYL5qLLRe5tPtBdN1J4jos7M+xN2VV2oEAbQ==", + "license": "MIT", + "dependencies": { + "motion-dom": "^12.9.1", + "motion-utils": "^12.8.3", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -4428,6 +4714,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/get-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", @@ -5248,7 +5543,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true, "license": "MIT" }, "node_modules/js-yaml": { @@ -5371,6 +5665,15 @@ "json-buffer": "3.0.1" } }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/language-subtag-registry": { "version": "0.3.23", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", @@ -5629,6 +5932,18 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -5745,6 +6060,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/motion-dom": { + "version": "12.9.1", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.9.1.tgz", + "integrity": "sha512-xqXEwRLDYDTzOgXobSoWtytRtGlf7zdkRfFbrrdP7eojaGQZ5Go4OOKtgnx7uF8sAkfr1ZjMvbCJSCIT2h6fkQ==", + "license": "MIT", + "dependencies": { + "motion-utils": "^12.8.3" + } + }, + "node_modules/motion-utils": { + "version": "12.8.3", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.8.3.tgz", + "integrity": "sha512-GYVauZEbca8/zOhEiYOY9/uJeedYQld6co/GJFKOy//0c/4lDqk0zB549sBYqqV2iMuX+uHrY1E5zd8A2L+1Lw==", + "license": "MIT" + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -5830,6 +6160,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -6181,6 +6520,17 @@ "node": ">=6.0.0" } }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -6233,6 +6583,38 @@ "react": "^19.1.0" } }, + "node_modules/react-hook-form": { + "version": "7.56.1", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.56.1.tgz", + "integrity": "sha512-qWAVokhSpshhcEuQDSANHx3jiAEFzu2HAaaQIzi/r9FNPm1ioAvuJSD4EuZzWd7Al7nTRKcKPnBKO7sRn+zavQ==", + "license": "MIT", + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18 || ^19" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-number-format": { + "version": "5.4.4", + "resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.4.tgz", + "integrity": "sha512-wOmoNZoOpvMminhifQYiYSTCLUDOiUbBunrMrMjA+dV52sY+vck1S4UhR6PkgnoCquvvMSeJjErXZ4qSaWCliA==", + "license": "MIT", + "peerDependencies": { + "react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/react-refresh": { "version": "0.17.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", @@ -6243,6 +6625,108 @@ "node": ">=0.10.0" } }, + "node_modules/react-remove-scroll": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.3.tgz", + "integrity": "sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.7", + "react-style-singleton": "^2.2.3", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.3", + "use-sidecar": "^1.1.3" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.2", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-textarea-autosize": { + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.5.9.tgz", + "integrity": "sha512-U1DGlIQN5AwgjTyOEnI1oCcMuEr1pv1qOtklB2l4nyMGbHzWrI0eFsYK0zos2YWqAolJyG0IWJaqWmWj5ETh0A==", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.13", + "use-composed-ref": "^1.3.0", + "use-latest": "^1.2.1" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -6266,6 +6750,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" + }, "node_modules/regexp.prototype.flags": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", @@ -6942,6 +7432,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/swr": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.3.3.tgz", + "integrity": "sha512-dshNvs3ExOqtZ6kJBaAsabhPdHyeY4P2cKwRCniDVifBMoG/SVI7tfLWqPXriVspf2Rg4tPzXJTnwaihIeFw2A==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.3", + "use-sync-external-store": "^1.4.0" + }, + "peerDependencies": { + "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/synckit": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz", @@ -6959,6 +7462,12 @@ "url": "https://opencollective.com/synckit" } }, + "node_modules/tabbable": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", + "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "license": "MIT" + }, "node_modules/text-extensions": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz", @@ -7087,7 +7596,6 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, "license": "0BSD" }, "node_modules/type-check": { @@ -7103,6 +7611,18 @@ "node": ">= 0.8.0" } }, + "node_modules/type-fest": { + "version": "4.40.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.40.1.tgz", + "integrity": "sha512-9YvLNnORDpI+vghLU/Nf+zSv0kL47KbVJ1o3sKgoTefl6i+zebxbiDQWoe/oWWqPhIgQdRZRT1KA9sCPL810SA==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/typed-array-buffer": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", @@ -7331,6 +7851,103 @@ "punycode": "^2.1.0" } }, + "node_modules/use-callback-ref": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-composed-ref": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/use-composed-ref/-/use-composed-ref-1.4.0.tgz", + "integrity": "sha512-djviaxuOOh7wkj0paeO1Q/4wMZ8Zrnag5H6yBvzN7AKKe8beOaED9SF5/ByLqsku8NP4zQqsvM2u3ew/tJK8/w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-isomorphic-layout-effect": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.2.0.tgz", + "integrity": "sha512-q6ayo8DWoPZT0VdG4u3D3uxcgONP3Mevx2i2b0434cwWBoL+aelL1DzkXI6w3PhTZzUeR2kaVlZn70iCiseP6w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-latest": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.3.0.tgz", + "integrity": "sha512-mhg3xdm9NaM8q+gLT8KryJPnRFOz1/5XPBhmDEVZK1webPzDjrPk7f/mbpeLqTgB9msytYWANxgALOCJKnLvcQ==", + "license": "MIT", + "dependencies": { + "use-isomorphic-layout-effect": "^1.1.1" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", + "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, "node_modules/vite": { "version": "6.3.3", "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.3.tgz", @@ -7706,6 +8323,15 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.24.3", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.3.tgz", + "integrity": "sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/package.json b/package.json index a1b49dc..4a3d8a7 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,19 @@ "prepare": "husky" }, "dependencies": { + "@hookform/resolvers": "^5.0.1", + "@mantine/carousel": "^7.17.5", + "@mantine/core": "^7.17.5", + "@mantine/dates": "^7.17.5", + "@mantine/form": "^7.17.5", + "@mantine/hooks": "^7.17.5", + "@mantine/notifications": "^7.17.5", + "framer-motion": "^12.9.2", "react": "^19.0.0", - "react-dom": "^19.0.0" + "react-dom": "^19.0.0", + "react-hook-form": "^7.56.1", + "swr": "^2.3.3", + "zod": "^3.24.3" }, "devDependencies": { "@commitlint/cli": "^19.8.0", From 454ec7a345657d62589d8b6d89bc6eecf8049bf5 Mon Sep 17 00:00:00 2001 From: maiano Date: Wed, 30 Apr 2025 22:24:29 +0200 Subject: [PATCH 005/225] chore: install and basic config vitest --- package-lock.json | 1161 +++++++++++++++++++++++++++++++++++++++- package.json | 7 +- src/test/setupTests.ts | 1 + vite.config.ts | 36 ++ 4 files changed, 1203 insertions(+), 2 deletions(-) create mode 100644 src/test/setupTests.ts diff --git a/package-lock.json b/package-lock.json index f782adb..939bbc5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,6 +26,9 @@ "@commitlint/cli": "^19.8.0", "@commitlint/config-conventional": "^19.8.0", "@eslint/js": "^9.22.0", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/react": "^16.3.0", + "@testing-library/user-event": "^14.6.1", "@types/node": "^22.15.2", "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", @@ -42,13 +45,22 @@ "eslint-plugin-react-refresh": "^0.4.19", "globals": "^16.0.0", "husky": "^9.1.7", + "jsdom": "^26.1.0", "lint-staged": "^15.5.1", "prettier": "^3.5.3", "typescript": "~5.7.2", "typescript-eslint": "^8.26.1", - "vite": "^6.3.1" + "vite": "^6.3.1", + "vitest": "^3.1.2" } }, + "node_modules/@adobe/css-tools": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.2.tgz", + "integrity": "sha512-baYZExFpsdkBNuvGKTKWCwKH57HRZLVtycZS05WTQNVOiXVSeAki3nU35zlRbToeMW8aHlJfyS+1C4BOv27q0A==", + "dev": true, + "license": "MIT" + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -63,6 +75,27 @@ "node": ">=6.0.0" } }, + "node_modules/@asamuzakjp/css-color": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.1.5.tgz", + "integrity": "sha512-w7AmVyTTiU41fNLsFDf+gA2Dwtbx2EJtn2pbJNAGSRAg50loXy1uLXA3hEpD8+eydcomTurw09tq5/AyceCaGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.3", + "@csstools/css-color-parser": "^3.0.9", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/@babel/code-frame": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", @@ -796,6 +829,121 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@csstools/color-helpers": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", + "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.3.tgz", + "integrity": "sha512-XBG3talrhid44BY1x3MHzUx/aTG8+x/Zi57M4aTKK9RFB4aLlF3TTSzfzn8nWVHWL3FgAXAxmupmDd6VWww+pw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.9.tgz", + "integrity": "sha512-wILs5Zk7BU86UArYBJTPy/FMPPKVKHMj1ycCEyf3VUptol0JNRLFU/BZsJ4aiIHJEbSLiizzRrw8Pc1uAEDrXw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.0.2", + "@csstools/css-calc": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", + "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.3" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", + "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@emnapi/core": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.4.3.tgz", @@ -2077,6 +2225,122 @@ "integrity": "sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g==", "license": "MIT" }, + "node_modules/@testing-library/dom": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz", + "integrity": "sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "lodash": "^4.17.21", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/react": { + "version": "16.3.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.0.tgz", + "integrity": "sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@testing-library/user-event": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, "node_modules/@tybys/wasm-util": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", @@ -2088,6 +2352,14 @@ "tslib": "^2.4.0" } }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -2648,6 +2920,119 @@ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, + "node_modules/@vitest/expect": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.1.2.tgz", + "integrity": "sha512-O8hJgr+zREopCAqWl3uCVaOdqJwZ9qaDwUP7vy3Xigad0phZe9APxKhPcDNqYYi0rX5oMvwJMSCAXY2afqeTSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.1.2", + "@vitest/utils": "3.1.2", + "chai": "^5.2.0", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/mocker": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.1.2.tgz", + "integrity": "sha512-kOtd6K2lc7SQ0mBqYv/wdGedlqPdM/B38paPY+OwJ1XiNi44w3Fpog82UfOibmHaV9Wod18A09I9SCKLyDMqgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/spy": "3.1.2", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.17" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "msw": "^2.4.9", + "vite": "^5.0.0 || ^6.0.0" + }, + "peerDependenciesMeta": { + "msw": { + "optional": true + }, + "vite": { + "optional": true + } + } + }, + "node_modules/@vitest/pretty-format": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.2.tgz", + "integrity": "sha512-R0xAiHuWeDjTSB3kQ3OQpT8Rx3yhdOAIm/JM4axXxnG7Q/fS8XUwggv/A4xzbQA+drYRjzkMnpYnOGAc4oeq8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/runner": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.1.2.tgz", + "integrity": "sha512-bhLib9l4xb4sUMPXnThbnhX2Yi8OutBMA8Yahxa7yavQsFDtwY/jrUZwpKp2XH9DhRFJIeytlyGpXCqZ65nR+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/utils": "3.1.2", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/snapshot": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.1.2.tgz", + "integrity": "sha512-Q1qkpazSF/p4ApZg1vfZSQ5Yw6OCQxVMVrLjslbLFA1hMDrT2uxtqMaw8Tc/jy5DLka1sNs1Y7rBcftMiaSH/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.1.2", + "magic-string": "^0.30.17", + "pathe": "^2.0.3" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/spy": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.1.2.tgz", + "integrity": "sha512-OEc5fSXMws6sHVe4kOFyDSj/+4MSwst0ib4un0DlcYgQvRuYQ0+M2HyqGaauUMnjq87tmUaMNDxKQx7wNfVqPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tinyspy": "^3.0.2" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, + "node_modules/@vitest/utils": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.2.tgz", + "integrity": "sha512-5GGd0ytZ7BH3H6JTj9Kw7Prn1Nbg0wZVrIvou+UWxm54d+WoXXgAgjFJ8wn3LdagWLFSEfpPeyYrByZaGEZHLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/pretty-format": "3.1.2", + "loupe": "^3.1.3", + "tinyrainbow": "^2.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/acorn": { "version": "8.14.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", @@ -2671,6 +3056,16 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/agent-base": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -2877,6 +3272,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/assertion-error": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", + "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + } + }, "node_modules/ast-types-flow": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", @@ -2993,6 +3398,16 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/call-bind": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", @@ -3074,6 +3489,23 @@ ], "license": "CC-BY-4.0" }, + "node_modules/chai": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-5.2.0.tgz", + "integrity": "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "assertion-error": "^2.0.1", + "check-error": "^2.1.1", + "deep-eql": "^5.0.1", + "loupe": "^3.1.0", + "pathval": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -3091,6 +3523,16 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/check-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz", + "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 16" + } + }, "node_modules/cli-cursor": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-5.0.0.tgz", @@ -3388,6 +3830,27 @@ "node": ">= 8" } }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.3.1.tgz", + "integrity": "sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@asamuzakjp/css-color": "^3.1.2", + "rrweb-cssom": "^0.8.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -3414,6 +3877,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/data-view-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", @@ -3493,6 +3970,23 @@ } } }, + "node_modules/decimal.js": { + "version": "10.5.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", + "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "dev": true, + "license": "MIT" + }, + "node_modules/deep-eql": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz", + "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -3564,6 +4058,14 @@ "node": ">=0.10.0" } }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/dom-helpers": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", @@ -3647,6 +4149,19 @@ "dev": true, "license": "MIT" }, + "node_modules/entities": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.0.tgz", + "integrity": "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", @@ -3766,6 +4281,13 @@ "node": ">= 0.4" } }, + "node_modules/es-module-lexer": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz", + "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==", + "dev": true, + "license": "MIT" + }, "node_modules/es-object-atoms": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", @@ -4368,6 +4890,16 @@ "node": ">=4.0" } }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -4409,6 +4941,16 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, + "node_modules/expect-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz", + "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4972,6 +5514,47 @@ "node": ">= 0.4" } }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/human-signals": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", @@ -4998,6 +5581,19 @@ "url": "https://github.com/sponsors/typicode" } }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", @@ -5046,6 +5642,16 @@ "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/ini": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz", @@ -5344,6 +5950,13 @@ "node": ">=8" } }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true, + "license": "MIT" + }, "node_modules/is-regex": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", @@ -5558,6 +6171,46 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/jsdom": { + "version": "26.1.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", + "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssstyle": "^4.2.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.5.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.6", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.16", + "parse5": "^7.2.1", + "rrweb-cssom": "^0.8.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^5.1.1", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.1.1", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^3.0.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", @@ -5803,6 +6456,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true, + "license": "MIT" + }, "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", @@ -5944,6 +6604,13 @@ "loose-envify": "cli.js" } }, + "node_modules/loupe": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.1.3.tgz", + "integrity": "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug==", + "dev": true, + "license": "MIT" + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -5954,6 +6621,27 @@ "yallist": "^3.0.2" } }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "node_modules/math-intrinsics": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", @@ -6034,6 +6722,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -6160,6 +6858,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/nwsapi": { + "version": "2.2.20", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", + "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", + "dev": true, + "license": "MIT" + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -6382,6 +7087,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse5": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^6.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -6409,6 +7127,23 @@ "dev": true, "license": "MIT" }, + "node_modules/pathe": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", + "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", + "dev": true, + "license": "MIT" + }, + "node_modules/pathval": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.0.tgz", + "integrity": "sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.16" + } + }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -6520,6 +7255,55 @@ "node": ">=6.0.0" } }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/prop-types": { "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", @@ -6727,6 +7511,20 @@ "react-dom": ">=16.6.0" } }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", @@ -6929,6 +7727,13 @@ "fsevents": "~2.3.2" } }, + "node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "dev": true, + "license": "MIT" + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -7008,6 +7813,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "license": "MIT" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dev": true, + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, "node_modules/scheduler": { "version": "0.26.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", @@ -7175,6 +8000,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/siginfo": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", + "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", + "dev": true, + "license": "ISC" + }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -7245,6 +8077,20 @@ "dev": true, "license": "MIT" }, + "node_modules/stackback": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", + "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", + "dev": true, + "license": "MIT" + }, + "node_modules/std-env": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", + "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", + "dev": true, + "license": "MIT" + }, "node_modules/string-argv": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", @@ -7393,6 +8239,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -7445,6 +8304,13 @@ "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "license": "MIT" + }, "node_modules/synckit": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.4.tgz", @@ -7488,6 +8354,13 @@ "dev": true, "license": "MIT" }, + "node_modules/tinybench": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", + "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", + "dev": true, + "license": "MIT" + }, "node_modules/tinyexec": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", @@ -7540,6 +8413,56 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/tinypool": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.0.2.tgz", + "integrity": "sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.0.0 || >=20.0.0" + } + }, + "node_modules/tinyrainbow": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-2.0.0.tgz", + "integrity": "sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tinyspy": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz", + "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tldts": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", + "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.86" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", + "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", + "dev": true, + "license": "MIT" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -7553,6 +8476,32 @@ "node": ">=8.0" } }, + "node_modules/tough-cookie": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "tldts": "^6.1.32" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tr46": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/ts-api-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", @@ -8023,6 +8972,29 @@ } } }, + "node_modules/vite-node": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.1.2.tgz", + "integrity": "sha512-/8iMryv46J3aK13iUXsei5G/A3CUlW4665THCPS+K8xAaqrVWiGB4RfXMQXCLjpK9P2eK//BczrVkn5JLAk6DA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cac": "^6.7.14", + "debug": "^4.4.0", + "es-module-lexer": "^1.6.0", + "pathe": "^2.0.3", + "vite": "^5.0.0 || ^6.0.0" + }, + "bin": { + "vite-node": "vite-node.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/vite/node_modules/fdir": { "version": "6.4.4", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.4.tgz", @@ -8051,6 +9023,137 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/vitest": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.2.tgz", + "integrity": "sha512-WaxpJe092ID1C0mr+LH9MmNrhfzi8I65EX/NRU/Ld016KqQNRgxSOlGNP1hHN+a/F8L15Mh8klwaF77zR3GeDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@vitest/expect": "3.1.2", + "@vitest/mocker": "3.1.2", + "@vitest/pretty-format": "^3.1.2", + "@vitest/runner": "3.1.2", + "@vitest/snapshot": "3.1.2", + "@vitest/spy": "3.1.2", + "@vitest/utils": "3.1.2", + "chai": "^5.2.0", + "debug": "^4.4.0", + "expect-type": "^1.2.1", + "magic-string": "^0.30.17", + "pathe": "^2.0.3", + "std-env": "^3.9.0", + "tinybench": "^2.9.0", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.13", + "tinypool": "^1.0.2", + "tinyrainbow": "^2.0.0", + "vite": "^5.0.0 || ^6.0.0", + "vite-node": "3.1.2", + "why-is-node-running": "^2.3.0" + }, + "bin": { + "vitest": "vitest.mjs" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + }, + "peerDependencies": { + "@edge-runtime/vm": "*", + "@types/debug": "^4.1.12", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "@vitest/browser": "3.1.2", + "@vitest/ui": "3.1.2", + "happy-dom": "*", + "jsdom": "*" + }, + "peerDependenciesMeta": { + "@edge-runtime/vm": { + "optional": true + }, + "@types/debug": { + "optional": true + }, + "@types/node": { + "optional": true + }, + "@vitest/browser": { + "optional": true + }, + "@vitest/ui": { + "optional": true + }, + "happy-dom": { + "optional": true + }, + "jsdom": { + "optional": true + } + } + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dev": true, + "license": "MIT", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "^5.1.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -8156,6 +9259,23 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -8197,6 +9317,45 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true, + "license": "MIT" + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/package.json b/package.json index 4a3d8a7..c619c5f 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,9 @@ "@commitlint/cli": "^19.8.0", "@commitlint/config-conventional": "^19.8.0", "@eslint/js": "^9.22.0", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/react": "^16.3.0", + "@testing-library/user-event": "^14.6.1", "@types/node": "^22.15.2", "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", @@ -45,11 +48,13 @@ "eslint-plugin-react-refresh": "^0.4.19", "globals": "^16.0.0", "husky": "^9.1.7", + "jsdom": "^26.1.0", "lint-staged": "^15.5.1", "prettier": "^3.5.3", "typescript": "~5.7.2", "typescript-eslint": "^8.26.1", - "vite": "^6.3.1" + "vite": "^6.3.1", + "vitest": "^3.1.2" }, "lint-staged": { "*.{json, md, css, scss}": "prettier --list-different --ignore-unknown", diff --git a/src/test/setupTests.ts b/src/test/setupTests.ts new file mode 100644 index 0000000..bb02c60 --- /dev/null +++ b/src/test/setupTests.ts @@ -0,0 +1 @@ +import '@testing-library/jest-dom/vitest'; diff --git a/vite.config.ts b/vite.config.ts index 0e1b4b4..f864627 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,3 +1,4 @@ +/// import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import path from 'path'; @@ -10,4 +11,39 @@ export default defineConfig({ '@': path.resolve(__dirname, './src'), }, }, + test: { + coverage: { + all: false, + exclude: [ + 'src/test/**', + '**/types/**', + '**/*.d.ts', + 'src/**/index.ts', + 'src/main.tsx', + ], + extension: ['.ts', '.tsx'], + include: ['src/**/*'], + provider: 'v8', + reporter: ['text', 'json', 'html'], + thresholds: { + lines: 80, + functions: 70, + branches: 60, + }, + }, + typecheck: { + enabled: true, + include: ['**/*.test-d.ts'], + }, + css: { + modules: { classNameStrategy: 'non-scoped' }, + }, + exclude: ['**/node_modules/**', '**/e2e/**'], + include: ['**/*.{test,spec}.{ts,tsx}'], + environment: 'jsdom', + globals: true, + maxConcurrency: 4, + setupFiles: ['./src/test/setupTests.ts'], + cache: { dir: './.vitest-cache' }, + }, }); From b2e12a5296302f0536f1c729d6f842dee131174e Mon Sep 17 00:00:00 2001 From: maiano Date: Wed, 30 Apr 2025 22:38:14 +0200 Subject: [PATCH 006/225] chore: create development scripts --- package.json | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c619c5f..566c20f 100644 --- a/package.json +++ b/package.json @@ -5,10 +5,15 @@ "type": "module", "scripts": { "dev": "vite", + "ci:format": "prettier --check .", + "format": "prettier --write .", "build": "tsc -b && vite build", - "lint": "eslint .", + "lint": "eslint ./src", + "lint:fix": "eslint --fix --color ./src", "preview": "vite preview", - "prepare": "husky" + "prepare": "husky", + "test": "vitest run", + "coverage": "vitest run --coverage" }, "dependencies": { "@hookform/resolvers": "^5.0.1", From 0c76421dae947bb979768f7a9d006fc72b2d482e Mon Sep 17 00:00:00 2001 From: maiano Date: Wed, 30 Apr 2025 22:50:18 +0200 Subject: [PATCH 007/225] chore: install zustand --- package-lock.json | 32 +++++++++++++++++++++++++++++++- package.json | 3 ++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 939bbc5..e296334 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,8 @@ "react-dom": "^19.0.0", "react-hook-form": "^7.56.1", "swr": "^2.3.3", - "zod": "^3.24.3" + "zod": "^3.24.3", + "zustand": "^5.0.3" }, "devDependencies": { "@commitlint/cli": "^19.8.0", @@ -9491,6 +9492,35 @@ "funding": { "url": "https://github.com/sponsors/colinhacks" } + }, + "node_modules/zustand": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.3.tgz", + "integrity": "sha512-14fwWQtU3pH4dE0dOpdMiWjddcH+QzKIgk1cl8epwSE7yag43k/AD/m4L6+K7DytAOr9gGBe3/EXj9g7cdostg==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } } } } diff --git a/package.json b/package.json index 566c20f..5dc05a9 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "react-dom": "^19.0.0", "react-hook-form": "^7.56.1", "swr": "^2.3.3", - "zod": "^3.24.3" + "zod": "^3.24.3", + "zustand": "^5.0.3" }, "devDependencies": { "@commitlint/cli": "^19.8.0", From 4483f33de118156591b97e1202db245e35207f8e Mon Sep 17 00:00:00 2001 From: maiano Date: Wed, 30 Apr 2025 23:25:33 +0200 Subject: [PATCH 008/225] chore: create a pull request template --- .github/pull_request_template.md | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/pull_request_template.md diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..da4b55f --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,33 @@ +# Pull Request Template + +## What's Changed + +- **In 1 sentence**: What this PR does (e.g., "Adds login state management with Zustand") +- **Fixed issues**: `Fixes #123` or `Related to #321` + +### Type of Change + +- [ ] New feature +- [ ] Bug fix +- [ ] Refactoring +- [ ] Other (describe) + +### Testing + +**How to check**: + +1. Step 1 (e.g., "Try logging in with invalid credentials") +2. Step 2 (e.g., "Verify cart updates when adding items") + +**Tested on**: + +- [ ] Desktop (Chrome) +- [ ] Mobile (Safari) + +### Screenshots (if UI changed) + +### Need to Know + +- Any breaking changes? +- Dependencies added (`zod`, `zustand`, etc.) +- Questions From 17e4404b4ed058c88c7d242defaf75aabd1bc6c1 Mon Sep 17 00:00:00 2001 From: maiano Date: Thu, 1 May 2025 19:51:43 +0200 Subject: [PATCH 009/225] docs: create readme --- README.md | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d416b84..73e2ce3 100644 --- a/README.md +++ b/README.md @@ -1 +1,70 @@ -# eCommerce-Application \ No newline at end of file +# Wine not? - Modern Wine E-Commerce + +## About Us + +**Wine not?** brings you premium wines from around the world with: + +- Handpicked wines from top vineyards +- Easy browsing and cart management +- Fast nationwide delivery +- Secure registration and checkout +- Exclusive deals for regular customers + +Discover your next favorite bottle in just a few clicks! + +## Technology Stack + +### Core + +- **Frontend**: React React 18 + TypeScript +- **State**: Zustand Zustand + Zod Zod +- **Data**: SWR SWR (Data fetching) +- **UI**: Mantine Mantine + Framer Motion + +### Tooling + +- **Bundler**: Vite Vite +- **Testing**: Vitest Vitest + Testing Library +- **Linting**: ESLint + Prettier + Husky + +## Quick Start + +> [!NOTE] +> To get started with the development: +> +> 1. Clone the repository. +> 2. Install dependencies. +> 3. Run the development server. + +
+ Scripts + +- `build`: Create production build. + +- `ci:format`: Check code formatting. + +- `dev`: Start development server. + +- `format`: Format code with Prettier. + +- `lint`: Check for linting errors. + +- `lint:fix`: Fix linting errors. + +- `prepare`: Sets up Husky. + +- `preview`: Preview production build. + +- `test`: Run all tests. + +- `coverage`: Generate test coverage report. + +
+ +## Project Team + +The following contributors have worked on this project: + +- **Victoria** - Developer | Designer - [GitHub](https://github.com/blk-thorn) +- **Anna** - Developer | Project manager - [GitHub](https://github.com/ann-sm) +- **Aleksei** - Developer - [GitHub](https://github.com/maiano) From 9cb61c0fae3091fda398e2a7ad1995bbc1467d58 Mon Sep 17 00:00:00 2001 From: maiano Date: Thu, 1 May 2025 19:57:54 +0200 Subject: [PATCH 010/225] docs: change readme --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 73e2ce3..a7640c1 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,8 @@ Discover your next favorite bottle in just a few clicks! ### Core -- **Frontend**: React React 18 + TypeScript +- **Frontend**: React React + TypeScript +- **Routing**: React Router React Router - **State**: Zustand Zustand + Zod Zod - **Data**: SWR SWR (Data fetching) - **UI**: Mantine Mantine + Framer Motion From 92eeeaf6424420021491ee601e4aef4890601fee Mon Sep 17 00:00:00 2001 From: maiano Date: Thu, 1 May 2025 22:24:56 +0200 Subject: [PATCH 011/225] chore: set up folder structure --- src/App.tsx | 34 +++--------------------- src/index.css | 66 +--------------------------------------------- src/main.tsx | 12 ++++----- src/pages/Home.tsx | 7 +++++ 4 files changed, 17 insertions(+), 102 deletions(-) create mode 100644 src/pages/Home.tsx diff --git a/src/App.tsx b/src/App.tsx index 3d7ded3..9b79797 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,35 +1,7 @@ -import { useState } from 'react' -import reactLogo from './assets/react.svg' -import viteLogo from '/vite.svg' -import './App.css' +import { HomePage } from "./pages/Home"; function App() { - const [count, setCount] = useState(0) - - return ( - <> - -

Vite + React

-
- -

- Edit src/App.tsx and save to test HMR -

-
-

- Click on the Vite and React logos to learn more -

- - ) + return } -export default App +export default App \ No newline at end of file diff --git a/src/index.css b/src/index.css index 08a3ac9..b8a8404 100644 --- a/src/index.css +++ b/src/index.css @@ -1,68 +1,4 @@ -:root { - font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - body { margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } + padding: 20px; } diff --git a/src/main.tsx b/src/main.tsx index bef5202..4a1b150 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,10 +1,10 @@ -import { StrictMode } from 'react' -import { createRoot } from 'react-dom/client' +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App' import './index.css' -import App from './App.tsx' -createRoot(document.getElementById('root')!).render( - +ReactDOM.createRoot(document.getElementById('root')!).render( + - , + ) diff --git a/src/pages/Home.tsx b/src/pages/Home.tsx new file mode 100644 index 0000000..af248ab --- /dev/null +++ b/src/pages/Home.tsx @@ -0,0 +1,7 @@ +export function HomePage() { + return ( +
+

Welcome!

+
+ ) +} \ No newline at end of file From 212de12d8739deddfbdc45e1c94b2374c22907af Mon Sep 17 00:00:00 2001 From: maiano Date: Thu, 1 May 2025 23:02:24 +0200 Subject: [PATCH 012/225] docs: add scripts for quick start --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a7640c1..d4d9305 100644 --- a/README.md +++ b/README.md @@ -33,9 +33,10 @@ Discover your next favorite bottle in just a few clicks! > [!NOTE] > To get started with the development: > -> 1. Clone the repository. -> 2. Install dependencies. -> 3. Run the development server. +> 1. Clone the repository using `git clone https://github.com/maiano/eCommerce-Application.git`. +> 2. Install dependencies using `npm install`. +> 3. Run the development server using `npm run dev`. +> 4. Build the project using `npm run build`.
Scripts From 7d4ae610733e576408e2c13561fd007e41824e5c Mon Sep 17 00:00:00 2001 From: maiano Date: Thu, 1 May 2025 23:42:02 +0200 Subject: [PATCH 013/225] fix: remove tsBuildInfoFile from tsconfig.json --- tsconfig.app.json | 5 ++--- tsconfig.node.json | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/tsconfig.app.json b/tsconfig.app.json index db1eb70..1dba74e 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -1,6 +1,5 @@ { "compilerOptions": { - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", "target": "ES2020", "useDefineForClassFields": true, "lib": ["ES2020", "DOM", "DOM.Iterable"], @@ -16,8 +15,8 @@ "jsx": "react-jsx", "baseUrl": ".", "paths": { - "@/*": ["./src/*"] -}, + "@/*": ["./src/*"] + }, /* Linting */ "strict": true, diff --git a/tsconfig.node.json b/tsconfig.node.json index db0becc..9724199 100644 --- a/tsconfig.node.json +++ b/tsconfig.node.json @@ -1,6 +1,5 @@ { "compilerOptions": { - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", "target": "ES2022", "lib": ["ES2023"], "module": "ESNext", From 5bc4018c64cf0d8f829c203f1432da1dce591d7a Mon Sep 17 00:00:00 2001 From: maiano Date: Fri, 2 May 2025 21:57:27 +0200 Subject: [PATCH 014/225] chore: change config files --- .gitignore | 142 +++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- public/_redirects | 1 + src/App.tsx | 6 +- src/main.tsx | 12 ++-- vite.config.ts | 4 ++ 6 files changed, 142 insertions(+), 25 deletions(-) create mode 100644 public/_redirects diff --git a/.gitignore b/.gitignore index a547bf3..b9ed5c4 100644 --- a/.gitignore +++ b/.gitignore @@ -4,21 +4,133 @@ logs npm-debug.log* yarn-debug.log* yarn-error.log* -pnpm-debug.log* lerna-debug.log* +.pnpm-debug.log* -node_modules +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# vitepress build output +**/.vitepress/dist + +# vitepress cache directory +**/.vitepress/cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* \ No newline at end of file diff --git a/package.json b/package.json index 5dc05a9..954dc74 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "dev": "vite", "ci:format": "prettier --check .", "format": "prettier --write .", - "build": "tsc -b && vite build", + "build": "vite build", "lint": "eslint ./src", "lint:fix": "eslint --fix --color ./src", "preview": "vite preview", diff --git a/public/_redirects b/public/_redirects new file mode 100644 index 0000000..f824337 --- /dev/null +++ b/public/_redirects @@ -0,0 +1 @@ +/* /index.html 200 \ No newline at end of file diff --git a/src/App.tsx b/src/App.tsx index 9b79797..b741ff8 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,7 +1,7 @@ -import { HomePage } from "./pages/Home"; +import { HomePage } from '@/pages/Home'; function App() { - return + return ; } -export default App \ No newline at end of file +export default App; diff --git a/src/main.tsx b/src/main.tsx index 4a1b150..9aa52ff 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -1,10 +1,10 @@ -import React from 'react' -import ReactDOM from 'react-dom/client' -import App from './App' -import './index.css' +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import App from './App'; +import './index.css'; ReactDOM.createRoot(document.getElementById('root')!).render( - -) + , +); diff --git a/vite.config.ts b/vite.config.ts index f864627..fdf8668 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,6 +5,10 @@ import path from 'path'; // https://vite.dev/config/ export default defineConfig({ + base: './', + build: { + outDir: 'dist', + }, plugins: [react()], resolve: { alias: { From b16fd025499fcc3ad664f8911dd19593b077ea2f Mon Sep 17 00:00:00 2001 From: maiano Date: Sun, 4 May 2025 11:10:02 +0200 Subject: [PATCH 015/225] chore: add no-non-null-assertion to rules --- eslint.config.js | 2 +- src/main.tsx | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/eslint.config.js b/eslint.config.js index 9e11a5b..fa5990c 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -73,7 +73,7 @@ export default [ ], '@typescript-eslint/no-unused-vars': 'warn', '@typescript-eslint/no-explicit-any': 'error', - + '@typescript-eslint/no-non-null-assertion': 'error', '@typescript-eslint/no-unsafe-argument': 'error', '@typescript-eslint/no-unsafe-assignment': 'error', '@typescript-eslint/no-unsafe-call': 'error', diff --git a/src/main.tsx b/src/main.tsx index 9aa52ff..ead2470 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -3,7 +3,12 @@ import ReactDOM from 'react-dom/client'; import App from './App'; import './index.css'; -ReactDOM.createRoot(document.getElementById('root')!).render( +const root = document.getElementById('root'); +if (!root) { + throw new Error('Root not found'); +} + +ReactDOM.createRoot(root).render( , From f37379b452266988ad791b1cbdbeee92319fec96 Mon Sep 17 00:00:00 2001 From: maiano Date: Sun, 4 May 2025 11:32:28 +0200 Subject: [PATCH 016/225] docs: added a role to a team member --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d4d9305..80e32c4 100644 --- a/README.md +++ b/README.md @@ -69,4 +69,4 @@ The following contributors have worked on this project: - **Victoria** - Developer | Designer - [GitHub](https://github.com/blk-thorn) - **Anna** - Developer | Project manager - [GitHub](https://github.com/ann-sm) -- **Aleksei** - Developer - [GitHub](https://github.com/maiano) +- **Aleksei** - Developer | Team Lead- [GitHub](https://github.com/maiano) From 704ad1b62c0ee2d15be3a97f46cdcdf186cc4a77 Mon Sep 17 00:00:00 2001 From: maiano Date: Mon, 5 May 2025 00:21:10 +0200 Subject: [PATCH 017/225] feat: add commercetools api client --- .env.example | 5 ++ package-lock.json | 102 ++++++++++++++++++++++++++++++++ package.json | 2 + src/main.tsx | 1 + src/shared/lib/commercetools.ts | 80 +++++++++++++++++++++++++ 5 files changed, 190 insertions(+) create mode 100644 .env.example create mode 100644 src/shared/lib/commercetools.ts diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..56969cd --- /dev/null +++ b/.env.example @@ -0,0 +1,5 @@ +VITE_COMMERCETOOLS_PROJECT_KEY=your_project_key +VITE_COMMERCETOOLS_CLIENT_ID=your_client_id +VITE_COMMERCETOOLS_CLIENT_SECRET=your_client_secret +VITE_COMMERCETOOLS_API_URL=https://auth.europe-west1.gcp.commercetools.com +VITE_COMMERCETOOLS_AUTH_URL=https://auth.europe-west1.gcp.commercetools.com \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index e296334..caa52ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,8 @@ "name": "ecommerce-application", "version": "0.0.0", "dependencies": { + "@commercetools/platform-sdk": "^8.8.0", + "@commercetools/sdk-client-v2": "^3.0.0", "@hookform/resolvers": "^5.0.1", "@mantine/carousel": "^7.17.5", "@mantine/core": "^7.17.5", @@ -411,6 +413,42 @@ "node": ">=6.9.0" } }, + "node_modules/@commercetools/platform-sdk": { + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/@commercetools/platform-sdk/-/platform-sdk-8.8.0.tgz", + "integrity": "sha512-fHXx4e/4vU8VEofUhIUSo0jjjOqjPy2RsZGDlEahd60ZCTPOMTtyRq6JExQoBtAucBO++8CKCaEdWAp1hZJkOQ==", + "license": "MIT", + "dependencies": { + "@commercetools/ts-client": "^3.2.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@commercetools/sdk-client-v2": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@commercetools/sdk-client-v2/-/sdk-client-v2-3.0.0.tgz", + "integrity": "sha512-AU0qyd41lv3l7X/e17mwRbtqGUMCJrCP25/ca3CMGvLGYGLx8zFu5zUYggOyEMTkViwG3NlY83zTTG0/YoUo8Q==", + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@commercetools/ts-client": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@commercetools/ts-client/-/ts-client-3.3.0.tgz", + "integrity": "sha512-qqbtvIVcvDS3xd1kUYfYoMUhGLPcY4TCP2WzTvrEHEs/MhrZqUhZUKcblxxY5/d8pROARlbl+XrYnKdFaZxO3g==", + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@commitlint/cli": { "version": "19.8.0", "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-19.8.0.tgz", @@ -3343,6 +3381,26 @@ "dev": true, "license": "MIT" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -3399,6 +3457,30 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/cac": { "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", @@ -5595,6 +5677,26 @@ "node": ">=0.10.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", diff --git a/package.json b/package.json index 954dc74..838fc5c 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,8 @@ "coverage": "vitest run --coverage" }, "dependencies": { + "@commercetools/platform-sdk": "^8.8.0", + "@commercetools/sdk-client-v2": "^3.0.0", "@hookform/resolvers": "^5.0.1", "@mantine/carousel": "^7.17.5", "@mantine/core": "^7.17.5", diff --git a/src/main.tsx b/src/main.tsx index ead2470..31f5c24 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -2,6 +2,7 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; import App from './App'; import './index.css'; +import '@/shared/lib/commercetools'; const root = document.getElementById('root'); if (!root) { diff --git a/src/shared/lib/commercetools.ts b/src/shared/lib/commercetools.ts new file mode 100644 index 0000000..481edf5 --- /dev/null +++ b/src/shared/lib/commercetools.ts @@ -0,0 +1,80 @@ +/* eslint-disable @typescript-eslint/no-unsafe-call */ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ +import { createApiBuilderFromCtpClient } from '@commercetools/platform-sdk'; +import { + ClientBuilder, + + // Import middlewares + type AuthMiddlewareOptions, // Required for auth + type HttpMiddlewareOptions, // Required for sending HTTP requests +} from '@commercetools/sdk-client-v2'; + +// import fetch from 'node-fetch'; + +import { z } from 'zod'; + +const envSchema = z.object({ + VITE_CTP_PROJECT_KEY: z.string().min(1), + VITE_CTP_CLIENT_ID: z.string().min(1), + VITE_CTP_CLIENT_SECRET: z.string().min(1), + VITE_CTP_API_URL: z.string().url(), + VITE_CTP_AUTH_URL: z.string().url(), +}); + +const env = envSchema.parse(import.meta.env); + +const projectKey = env.VITE_CTP_PROJECT_KEY; + +// for unauthorized users +const scopes = [ + 'view_published_products:', + 'view_categories:', +].map((scope) => scope.replace('', projectKey)); + +// Configure authMiddlewareOptions +const authMiddlewareOptions: AuthMiddlewareOptions = { + host: env.VITE_CTP_AUTH_URL, + projectKey, + credentials: { + clientId: env.VITE_CTP_CLIENT_ID, + clientSecret: env.VITE_CTP_CLIENT_SECRET, + }, + scopes, + // httpClient: fetch, +}; + +// Configure httpMiddlewareOptions +const httpMiddlewareOptions: HttpMiddlewareOptions = { + host: env.VITE_CTP_API_URL, + // httpClient: fetch, +}; + +// Export the ClientBuilder +const ctpClient = new ClientBuilder() + .withProjectKey(projectKey) // .withProjectKey() is not required if the projectKey is included in authMiddlewareOptions + .withClientCredentialsFlow(authMiddlewareOptions) + .withHttpMiddleware(httpMiddlewareOptions) + .withLoggerMiddleware() // Include middleware for logging + .build(); + +const apiRoot = createApiBuilderFromCtpClient(ctpClient).withProjectKey({ + projectKey, +}); + +// Example call to return categories +// This code has the same effect as sending a GET request to the commercetools Composable Commerce API without any endpoints. +const getCategories = () => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return apiRoot.categories().get().execute(); +}; + +// Retrieve 'category' information and output the result to the log +getCategories() + .then((response) => { + response.body.results.forEach((category) => { + const name = category.name['en-US']; + console.log(name); + }); + }) + .catch(console.error); From 02028cd9e44cce189682f3f3223b69ebcfbaa01d Mon Sep 17 00:00:00 2001 From: ann-sm Date: Mon, 5 May 2025 17:24:33 +0300 Subject: [PATCH 018/225] chore: add isomorphic-fetch --- package-lock.json | 171 ++++++++++++++++++++++++++++++++ package.json | 3 + src/shared/lib/commercetools.ts | 6 +- 3 files changed, 177 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index caa52ab..b4c2018 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,6 +32,7 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", + "@types/isomorphic-fetch": "^0.0.39", "@types/node": "^22.15.2", "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", @@ -48,8 +49,10 @@ "eslint-plugin-react-refresh": "^0.4.19", "globals": "^16.0.0", "husky": "^9.1.7", + "isomorphic-fetch": "^3.0.0", "jsdom": "^26.1.0", "lint-staged": "^15.5.1", + "node-fetch": "^3.3.2", "prettier": "^3.5.3", "typescript": "~5.7.2", "typescript-eslint": "^8.26.1", @@ -2461,6 +2464,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/isomorphic-fetch": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/isomorphic-fetch/-/isomorphic-fetch-0.0.39.tgz", + "integrity": "sha512-I0gou/ZdA1vMG7t7gMzL7VYu2xAKU78rW9U1l10MI0nn77pEHq3tQqHQ8hMmXdMpBlkxZOorjI4sO594Z3kKJw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -3960,6 +3970,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/data-urls": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", @@ -5118,6 +5138,30 @@ "reusify": "^1.0.4" } }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/file-entry-cache": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", @@ -5198,6 +5242,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/framer-motion": { "version": "12.9.2", "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.9.2.tgz", @@ -6245,6 +6302,63 @@ "dev": true, "license": "ISC" }, + "node_modules/isomorphic-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", + "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-fetch": "^2.6.1", + "whatwg-fetch": "^3.4.1" + } + }, + "node_modules/isomorphic-fetch/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/isomorphic-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isomorphic-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/isomorphic-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/jiti": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz", @@ -6925,6 +7039,46 @@ "dev": true, "license": "MIT" }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", @@ -9210,6 +9364,16 @@ "node": ">=18" } }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -9233,6 +9397,13 @@ "node": ">=18" } }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==", + "dev": true, + "license": "MIT" + }, "node_modules/whatwg-mimetype": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", diff --git a/package.json b/package.json index 838fc5c..8dd0ad8 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "@testing-library/jest-dom": "^6.6.3", "@testing-library/react": "^16.3.0", "@testing-library/user-event": "^14.6.1", + "@types/isomorphic-fetch": "^0.0.39", "@types/node": "^22.15.2", "@types/react": "^19.0.10", "@types/react-dom": "^19.0.4", @@ -56,8 +57,10 @@ "eslint-plugin-react-refresh": "^0.4.19", "globals": "^16.0.0", "husky": "^9.1.7", + "isomorphic-fetch": "^3.0.0", "jsdom": "^26.1.0", "lint-staged": "^15.5.1", + "node-fetch": "^3.3.2", "prettier": "^3.5.3", "typescript": "~5.7.2", "typescript-eslint": "^8.26.1", diff --git a/src/shared/lib/commercetools.ts b/src/shared/lib/commercetools.ts index 481edf5..021985f 100644 --- a/src/shared/lib/commercetools.ts +++ b/src/shared/lib/commercetools.ts @@ -10,7 +10,7 @@ import { type HttpMiddlewareOptions, // Required for sending HTTP requests } from '@commercetools/sdk-client-v2'; -// import fetch from 'node-fetch'; +import fetch from 'isomorphic-fetch'; import { z } from 'zod'; @@ -41,13 +41,13 @@ const authMiddlewareOptions: AuthMiddlewareOptions = { clientSecret: env.VITE_CTP_CLIENT_SECRET, }, scopes, - // httpClient: fetch, + fetch: fetch, }; // Configure httpMiddlewareOptions const httpMiddlewareOptions: HttpMiddlewareOptions = { host: env.VITE_CTP_API_URL, - // httpClient: fetch, + fetch: fetch, }; // Export the ClientBuilder From 5b552ad2cf4fccd48b9583373523260c79b7a505 Mon Sep 17 00:00:00 2001 From: Victoria Ternovaya Date: Mon, 5 May 2025 20:06:46 +0300 Subject: [PATCH 019/225] refactor: break commercetools api client into modules --- src/shared/lib/commercetools.ts | 67 +-------------------- src/shared/lib/commercetools/api.ts | 12 ++++ src/shared/lib/commercetools/client.ts | 23 +++++++ src/shared/lib/commercetools/config.ts | 32 ++++++++++ src/shared/lib/commercetools/environment.ts | 11 ++++ 5 files changed, 79 insertions(+), 66 deletions(-) create mode 100644 src/shared/lib/commercetools/api.ts create mode 100644 src/shared/lib/commercetools/client.ts create mode 100644 src/shared/lib/commercetools/config.ts create mode 100644 src/shared/lib/commercetools/environment.ts diff --git a/src/shared/lib/commercetools.ts b/src/shared/lib/commercetools.ts index 021985f..0059af6 100644 --- a/src/shared/lib/commercetools.ts +++ b/src/shared/lib/commercetools.ts @@ -1,73 +1,8 @@ /* eslint-disable @typescript-eslint/no-unsafe-call */ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ -import { createApiBuilderFromCtpClient } from '@commercetools/platform-sdk'; -import { - ClientBuilder, - // Import middlewares - type AuthMiddlewareOptions, // Required for auth - type HttpMiddlewareOptions, // Required for sending HTTP requests -} from '@commercetools/sdk-client-v2'; - -import fetch from 'isomorphic-fetch'; - -import { z } from 'zod'; - -const envSchema = z.object({ - VITE_CTP_PROJECT_KEY: z.string().min(1), - VITE_CTP_CLIENT_ID: z.string().min(1), - VITE_CTP_CLIENT_SECRET: z.string().min(1), - VITE_CTP_API_URL: z.string().url(), - VITE_CTP_AUTH_URL: z.string().url(), -}); - -const env = envSchema.parse(import.meta.env); - -const projectKey = env.VITE_CTP_PROJECT_KEY; - -// for unauthorized users -const scopes = [ - 'view_published_products:', - 'view_categories:', -].map((scope) => scope.replace('', projectKey)); - -// Configure authMiddlewareOptions -const authMiddlewareOptions: AuthMiddlewareOptions = { - host: env.VITE_CTP_AUTH_URL, - projectKey, - credentials: { - clientId: env.VITE_CTP_CLIENT_ID, - clientSecret: env.VITE_CTP_CLIENT_SECRET, - }, - scopes, - fetch: fetch, -}; - -// Configure httpMiddlewareOptions -const httpMiddlewareOptions: HttpMiddlewareOptions = { - host: env.VITE_CTP_API_URL, - fetch: fetch, -}; - -// Export the ClientBuilder -const ctpClient = new ClientBuilder() - .withProjectKey(projectKey) // .withProjectKey() is not required if the projectKey is included in authMiddlewareOptions - .withClientCredentialsFlow(authMiddlewareOptions) - .withHttpMiddleware(httpMiddlewareOptions) - .withLoggerMiddleware() // Include middleware for logging - .build(); - -const apiRoot = createApiBuilderFromCtpClient(ctpClient).withProjectKey({ - projectKey, -}); - -// Example call to return categories -// This code has the same effect as sending a GET request to the commercetools Composable Commerce API without any endpoints. -const getCategories = () => { - // eslint-disable-next-line @typescript-eslint/no-unsafe-return - return apiRoot.categories().get().execute(); -}; +import { getCategories } from './commercetools/api.ts'; // Retrieve 'category' information and output the result to the log getCategories() diff --git a/src/shared/lib/commercetools/api.ts b/src/shared/lib/commercetools/api.ts new file mode 100644 index 0000000..e8c9ff5 --- /dev/null +++ b/src/shared/lib/commercetools/api.ts @@ -0,0 +1,12 @@ +/* eslint-disable @typescript-eslint/no-unsafe-call */ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ + +import { apiRoot } from './client'; + +// Example call to return categories +// This code has the same effect as sending a GET request to the commercetools Composable Commerce API without any endpoints. +export const getCategories = () => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return apiRoot.categories().get().execute(); +}; diff --git a/src/shared/lib/commercetools/client.ts b/src/shared/lib/commercetools/client.ts new file mode 100644 index 0000000..5bc5b8a --- /dev/null +++ b/src/shared/lib/commercetools/client.ts @@ -0,0 +1,23 @@ +/* eslint-disable @typescript-eslint/no-unsafe-call */ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ +/* eslint-disable @typescript-eslint/no-unsafe-argument*/ + +import { ClientBuilder } from '@commercetools/sdk-client-v2'; +import { createApiBuilderFromCtpClient } from '@commercetools/platform-sdk'; +import { authMiddlewareOptions, httpMiddlewareOptions } from './config'; +import { env } from './environment.ts'; + +const projectKey = env.VITE_CTP_PROJECT_KEY; + +// Export the ClientBuilder +export const ctpClient = new ClientBuilder() + .withProjectKey(projectKey) // .withProjectKey() is not required if the projectKey is included in authMiddlewareOptions + .withClientCredentialsFlow(authMiddlewareOptions) + .withHttpMiddleware(httpMiddlewareOptions) + .withLoggerMiddleware() // Include middleware for logging + .build(); + +export const apiRoot = createApiBuilderFromCtpClient(ctpClient).withProjectKey({ + projectKey, +}); diff --git a/src/shared/lib/commercetools/config.ts b/src/shared/lib/commercetools/config.ts new file mode 100644 index 0000000..41f6e79 --- /dev/null +++ b/src/shared/lib/commercetools/config.ts @@ -0,0 +1,32 @@ +/* eslint-disable @typescript-eslint/no-unsafe-call */ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ + +import fetch from 'isomorphic-fetch'; +import { env } from './environment.ts'; + +const projectKey = env.VITE_CTP_PROJECT_KEY; + +// for unauthorized users +const scopes = [ + 'view_published_products:', + 'view_categories:', +].map((scope) => scope.replace('', projectKey)); + +// Configure authMiddlewareOptions +export const authMiddlewareOptions = { + host: env.VITE_CTP_AUTH_URL, + projectKey, + credentials: { + clientId: env.VITE_CTP_CLIENT_ID, + clientSecret: env.VITE_CTP_CLIENT_SECRET, + }, + scopes, + fetch: fetch, +}; + +// Configure httpMiddlewareOptions +export const httpMiddlewareOptions = { + host: env.VITE_CTP_API_URL, + fetch: fetch, +}; diff --git a/src/shared/lib/commercetools/environment.ts b/src/shared/lib/commercetools/environment.ts new file mode 100644 index 0000000..388ce8e --- /dev/null +++ b/src/shared/lib/commercetools/environment.ts @@ -0,0 +1,11 @@ +import { z } from 'zod'; + +const envSchema = z.object({ + VITE_CTP_PROJECT_KEY: z.string().min(1), + VITE_CTP_CLIENT_ID: z.string().min(1), + VITE_CTP_CLIENT_SECRET: z.string().min(1), + VITE_CTP_API_URL: z.string().url(), + VITE_CTP_AUTH_URL: z.string().url(), +}); + +export const env = envSchema.parse(import.meta.env); From 80f53a587638a7d76f0f4fa29b5edad2f8f56aae Mon Sep 17 00:00:00 2001 From: Victoria Ternovaya Date: Mon, 5 May 2025 20:24:58 +0300 Subject: [PATCH 020/225] refactor: extract authentication into separate module --- eslint.config.js | 2 +- .../lib/commercetools/{config.ts => auth-config.ts} | 11 +---------- src/shared/lib/commercetools/client.ts | 5 +++-- src/shared/lib/commercetools/http-config.ts | 12 ++++++++++++ 4 files changed, 17 insertions(+), 13 deletions(-) rename src/shared/lib/commercetools/{config.ts => auth-config.ts} (67%) create mode 100644 src/shared/lib/commercetools/http-config.ts diff --git a/eslint.config.js b/eslint.config.js index fa5990c..ec34a87 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -10,7 +10,7 @@ import jsxA11y from 'eslint-plugin-jsx-a11y'; export default [ // Base { - ignores: ['dist/**', '**/*.d.ts', 'node_modules', 'vite.config.ts'], + ignores: ['dist/**', '**/*.d.ts', 'node_modules', 'vite.http-config.ts'], }, // JS diff --git a/src/shared/lib/commercetools/config.ts b/src/shared/lib/commercetools/auth-config.ts similarity index 67% rename from src/shared/lib/commercetools/config.ts rename to src/shared/lib/commercetools/auth-config.ts index 41f6e79..2c90144 100644 --- a/src/shared/lib/commercetools/config.ts +++ b/src/shared/lib/commercetools/auth-config.ts @@ -1,9 +1,6 @@ -/* eslint-disable @typescript-eslint/no-unsafe-call */ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ -/* eslint-disable @typescript-eslint/no-unsafe-assignment */ - +import { env } from './environment'; import fetch from 'isomorphic-fetch'; -import { env } from './environment.ts'; const projectKey = env.VITE_CTP_PROJECT_KEY; @@ -24,9 +21,3 @@ export const authMiddlewareOptions = { scopes, fetch: fetch, }; - -// Configure httpMiddlewareOptions -export const httpMiddlewareOptions = { - host: env.VITE_CTP_API_URL, - fetch: fetch, -}; diff --git a/src/shared/lib/commercetools/client.ts b/src/shared/lib/commercetools/client.ts index 5bc5b8a..b0bbadf 100644 --- a/src/shared/lib/commercetools/client.ts +++ b/src/shared/lib/commercetools/client.ts @@ -5,8 +5,9 @@ import { ClientBuilder } from '@commercetools/sdk-client-v2'; import { createApiBuilderFromCtpClient } from '@commercetools/platform-sdk'; -import { authMiddlewareOptions, httpMiddlewareOptions } from './config'; -import { env } from './environment.ts'; +import { httpMiddlewareOptions } from './http-config.ts'; +import { authMiddlewareOptions } from './auth-config.ts'; +import { env } from './environment'; const projectKey = env.VITE_CTP_PROJECT_KEY; diff --git a/src/shared/lib/commercetools/http-config.ts b/src/shared/lib/commercetools/http-config.ts new file mode 100644 index 0000000..a4a7da1 --- /dev/null +++ b/src/shared/lib/commercetools/http-config.ts @@ -0,0 +1,12 @@ +/* eslint-disable @typescript-eslint/no-unsafe-call */ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ + +import fetch from 'isomorphic-fetch'; +import { env } from './environment.ts'; + +// Configure httpMiddlewareOptions +export const httpMiddlewareOptions = { + host: env.VITE_CTP_API_URL, + fetch: fetch, +}; From 833d14f3d52597b8e52b3b6a5a0877a0a1c9a140 Mon Sep 17 00:00:00 2001 From: Victoria Ternovaya Date: Mon, 5 May 2025 23:27:15 +0300 Subject: [PATCH 021/225] feat: add anonymous customer access --- src/shared/lib/commercetools/api.ts | 4 +--- src/shared/lib/commercetools/auth-config.ts | 8 +++++++- .../{client.ts => create-anonymous-client.ts} | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) rename src/shared/lib/commercetools/{client.ts => create-anonymous-client.ts} (87%) diff --git a/src/shared/lib/commercetools/api.ts b/src/shared/lib/commercetools/api.ts index e8c9ff5..7941eab 100644 --- a/src/shared/lib/commercetools/api.ts +++ b/src/shared/lib/commercetools/api.ts @@ -2,10 +2,8 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ -import { apiRoot } from './client'; +import { apiRoot } from './create-anonymous-client.ts'; -// Example call to return categories -// This code has the same effect as sending a GET request to the commercetools Composable Commerce API without any endpoints. export const getCategories = () => { // eslint-disable-next-line @typescript-eslint/no-unsafe-return return apiRoot.categories().get().execute(); diff --git a/src/shared/lib/commercetools/auth-config.ts b/src/shared/lib/commercetools/auth-config.ts index 2c90144..6c7ef70 100644 --- a/src/shared/lib/commercetools/auth-config.ts +++ b/src/shared/lib/commercetools/auth-config.ts @@ -1,22 +1,28 @@ /* eslint-disable @typescript-eslint/no-unsafe-member-access */ import { env } from './environment'; import fetch from 'isomorphic-fetch'; +// import { string } from 'zod'; const projectKey = env.VITE_CTP_PROJECT_KEY; + +const anonymousId = crypto.randomUUID(); + // for unauthorized users const scopes = [ 'view_published_products:', 'view_categories:', + 'create_anonymous_token:' ].map((scope) => scope.replace('', projectKey)); // Configure authMiddlewareOptions -export const authMiddlewareOptions = { +export const AnonymousAuthMiddlewareOptions = { host: env.VITE_CTP_AUTH_URL, projectKey, credentials: { clientId: env.VITE_CTP_CLIENT_ID, clientSecret: env.VITE_CTP_CLIENT_SECRET, + anonymousId: anonymousId, }, scopes, fetch: fetch, diff --git a/src/shared/lib/commercetools/client.ts b/src/shared/lib/commercetools/create-anonymous-client.ts similarity index 87% rename from src/shared/lib/commercetools/client.ts rename to src/shared/lib/commercetools/create-anonymous-client.ts index b0bbadf..472899b 100644 --- a/src/shared/lib/commercetools/client.ts +++ b/src/shared/lib/commercetools/create-anonymous-client.ts @@ -6,7 +6,7 @@ import { ClientBuilder } from '@commercetools/sdk-client-v2'; import { createApiBuilderFromCtpClient } from '@commercetools/platform-sdk'; import { httpMiddlewareOptions } from './http-config.ts'; -import { authMiddlewareOptions } from './auth-config.ts'; +import { AnonymousAuthMiddlewareOptions } from './auth-config.ts'; import { env } from './environment'; const projectKey = env.VITE_CTP_PROJECT_KEY; @@ -14,7 +14,7 @@ const projectKey = env.VITE_CTP_PROJECT_KEY; // Export the ClientBuilder export const ctpClient = new ClientBuilder() .withProjectKey(projectKey) // .withProjectKey() is not required if the projectKey is included in authMiddlewareOptions - .withClientCredentialsFlow(authMiddlewareOptions) + .withAnonymousSessionFlow(AnonymousAuthMiddlewareOptions) .withHttpMiddleware(httpMiddlewareOptions) .withLoggerMiddleware() // Include middleware for logging .build(); From cbd88ceb322dbfab470e6d23ad460f656a5439f8 Mon Sep 17 00:00:00 2001 From: maiano Date: Thu, 8 May 2025 10:27:13 +0200 Subject: [PATCH 022/225] chore: test pre-push-hook --- .husky/pre-push | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .husky/pre-push diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100644 index 0000000..cf22276 --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,4 @@ +echo 'Running test...' +echo 'If there are no tests, you need to write them' + +npm test From d209d67a7c29a53cffafd3658d0ed6ebd66b784f Mon Sep 17 00:00:00 2001 From: maiano Date: Thu, 8 May 2025 12:07:27 +0200 Subject: [PATCH 023/225] feat: add initial test suite for home-page --- .gitignore | 16 +++++++++++++++- src/pages/Home.test.tsx | 10 ++++++++++ vite.config.ts | 2 +- 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 src/pages/Home.test.tsx diff --git a/.gitignore b/.gitignore index b9ed5c4..cafae85 100644 --- a/.gitignore +++ b/.gitignore @@ -133,4 +133,18 @@ dist .yarn/unplugged .yarn/build-state.yml .yarn/install-state.gz -.pnp.* \ No newline at end of file +.pnp.* + +# Vitest +.vitest-cache/ +.vitest/ +test-results.xml + +# IDE +.idea/ +.vscode/ +*.swp +*.swo + +# macOS +.DS_Store \ No newline at end of file diff --git a/src/pages/Home.test.tsx b/src/pages/Home.test.tsx new file mode 100644 index 0000000..86ff943 --- /dev/null +++ b/src/pages/Home.test.tsx @@ -0,0 +1,10 @@ +import { render, screen } from '@testing-library/react'; +import { describe, it, expect } from 'vitest'; +import { HomePage } from '@/pages/Home'; + +describe('HomePage Component', () => { + it('renders welcome message', () => { + render(); + expect(screen.getByText('Welcome!')).toBeInTheDocument(); + }); +}); diff --git a/vite.config.ts b/vite.config.ts index fdf8668..a391e79 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -48,6 +48,6 @@ export default defineConfig({ globals: true, maxConcurrency: 4, setupFiles: ['./src/test/setupTests.ts'], - cache: { dir: './.vitest-cache' }, + cache: { dir: './node_modules/.vite/.vitest-cache' }, }, }); From e0ef6da64d80d3b6807e57d0b69635dbf191be8d Mon Sep 17 00:00:00 2001 From: maiano Date: Thu, 8 May 2025 19:21:29 +0200 Subject: [PATCH 024/225] feat: implement provider and basic router --- package-lock.json | 54 +++++++++++++++++++ package.json | 1 + src/App.tsx | 4 +- src/app/providers.tsx | 13 +++++ src/app/router.tsx | 12 +++++ .../{Home.test.tsx => HomePage.test.tsx} | 2 +- src/pages/{Home.tsx => HomePage.tsx} | 0 src/pages/NotFoundPage.tsx | 7 +++ 8 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 src/app/providers.tsx create mode 100644 src/app/router.tsx rename src/pages/{Home.test.tsx => HomePage.test.tsx} (86%) rename src/pages/{Home.tsx => HomePage.tsx} (100%) create mode 100644 src/pages/NotFoundPage.tsx diff --git a/package-lock.json b/package-lock.json index b4c2018..f46c87c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,6 +21,7 @@ "react": "^19.0.0", "react-dom": "^19.0.0", "react-hook-form": "^7.56.1", + "react-router-dom": "^7.6.0", "swr": "^2.3.3", "zod": "^3.24.3", "zustand": "^5.0.3" @@ -3863,6 +3864,15 @@ "dev": true, "license": "MIT" }, + "node_modules/cookie": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-1.0.2.tgz", + "integrity": "sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/cosmiconfig": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", @@ -7713,6 +7723,44 @@ } } }, + "node_modules/react-router": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-7.6.0.tgz", + "integrity": "sha512-GGufuHIVCJDbnIAXP3P9Sxzq3UUsddG3rrI3ut1q6m0FI6vxVBF3JoPQ38+W/blslLH4a5Yutp8drkEpXoddGQ==", + "license": "MIT", + "dependencies": { + "cookie": "^1.0.1", + "set-cookie-parser": "^2.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + }, + "peerDependenciesMeta": { + "react-dom": { + "optional": true + } + } + }, + "node_modules/react-router-dom": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-7.6.0.tgz", + "integrity": "sha512-DYgm6RDEuKdopSyGOWZGtDfSm7Aofb8CCzgkliTjtu/eDuB0gcsv6qdFhhi8HdtmA+KHkt5MfZ5K2PdzjugYsA==", + "license": "MIT", + "dependencies": { + "react-router": "7.6.0" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "react": ">=18", + "react-dom": ">=18" + } + }, "node_modules/react-style-singleton": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", @@ -8109,6 +8157,12 @@ "node": ">=10" } }, + "node_modules/set-cookie-parser": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz", + "integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==", + "license": "MIT" + }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", diff --git a/package.json b/package.json index 8dd0ad8..7be3531 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "react": "^19.0.0", "react-dom": "^19.0.0", "react-hook-form": "^7.56.1", + "react-router-dom": "^7.6.0", "swr": "^2.3.3", "zod": "^3.24.3", "zustand": "^5.0.3" diff --git a/src/App.tsx b/src/App.tsx index b741ff8..6d6ffaf 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,7 +1,7 @@ -import { HomePage } from '@/pages/Home'; +import { AppProvider } from '@/app/providers'; function App() { - return ; + return ; } export default App; diff --git a/src/app/providers.tsx b/src/app/providers.tsx new file mode 100644 index 0000000..f9397eb --- /dev/null +++ b/src/app/providers.tsx @@ -0,0 +1,13 @@ +import { MantineProvider } from '@mantine/core'; +import { BrowserRouter } from 'react-router-dom'; +import { AppRoutes } from '@/app/router'; + +export const AppProvider = () => { + return ( + + + + + + ); +}; diff --git a/src/app/router.tsx b/src/app/router.tsx new file mode 100644 index 0000000..0c9238e --- /dev/null +++ b/src/app/router.tsx @@ -0,0 +1,12 @@ +import { Route, Routes } from 'react-router'; +import { HomePage } from '@/pages/HomePage'; +import { NotFoundPage } from '@/pages/NotFoundPage'; + +export const AppRoutes = () => { + return ( + + } /> + } /> + + ); +}; diff --git a/src/pages/Home.test.tsx b/src/pages/HomePage.test.tsx similarity index 86% rename from src/pages/Home.test.tsx rename to src/pages/HomePage.test.tsx index 86ff943..eb62f35 100644 --- a/src/pages/Home.test.tsx +++ b/src/pages/HomePage.test.tsx @@ -1,6 +1,6 @@ import { render, screen } from '@testing-library/react'; import { describe, it, expect } from 'vitest'; -import { HomePage } from '@/pages/Home'; +import { HomePage } from '@/pages/HomePage'; describe('HomePage Component', () => { it('renders welcome message', () => { diff --git a/src/pages/Home.tsx b/src/pages/HomePage.tsx similarity index 100% rename from src/pages/Home.tsx rename to src/pages/HomePage.tsx diff --git a/src/pages/NotFoundPage.tsx b/src/pages/NotFoundPage.tsx new file mode 100644 index 0000000..f85ff9c --- /dev/null +++ b/src/pages/NotFoundPage.tsx @@ -0,0 +1,7 @@ +export function NotFoundPage() { + return ( +
+

404

+
+ ); +} From aef8bbb3f154dd608095c50f8227e97affecf22a Mon Sep 17 00:00:00 2001 From: Victoria Ternovaya Date: Fri, 9 May 2025 00:29:30 +0300 Subject: [PATCH 025/225] feat: add home page and components --- .env.example | 2 +- src/assets/avatar_1.png | Bin 0 -> 21527 bytes src/assets/avatar_2.png | Bin 0 -> 147653 bytes src/assets/avatar_3.jpeg | Bin 0 -> 34237 bytes src/assets/rsschool-logo.png | Bin 0 -> 35823 bytes src/assets/wine.png | Bin 0 -> 1803464 bytes src/assets/wine1.png | Bin 0 -> 1008502 bytes src/assets/wine2.png | Bin 0 -> 612086 bytes src/assets/wine3.png | Bin 0 -> 807054 bytes src/assets/wine4.png | Bin 0 -> 869018 bytes src/components/Footer/Footer.tsx | 46 +++ src/components/Header/Header.tsx | 124 ++++++++ src/index.css | 509 ++++++++++++++++++++++++++++++- src/pages/HomePage.css | 315 +++++++++++++++++++ src/pages/HomePage.test.tsx | 11 +- src/pages/HomePage.tsx | 169 +++++++++- 16 files changed, 1166 insertions(+), 10 deletions(-) create mode 100644 src/assets/avatar_1.png create mode 100644 src/assets/avatar_2.png create mode 100644 src/assets/avatar_3.jpeg create mode 100644 src/assets/rsschool-logo.png create mode 100644 src/assets/wine.png create mode 100644 src/assets/wine1.png create mode 100644 src/assets/wine2.png create mode 100644 src/assets/wine3.png create mode 100644 src/assets/wine4.png create mode 100644 src/components/Footer/Footer.tsx create mode 100644 src/components/Header/Header.tsx create mode 100644 src/pages/HomePage.css diff --git a/.env.example b/.env.example index 56969cd..fd04bda 100644 --- a/.env.example +++ b/.env.example @@ -2,4 +2,4 @@ VITE_COMMERCETOOLS_PROJECT_KEY=your_project_key VITE_COMMERCETOOLS_CLIENT_ID=your_client_id VITE_COMMERCETOOLS_CLIENT_SECRET=your_client_secret VITE_COMMERCETOOLS_API_URL=https://auth.europe-west1.gcp.commercetools.com -VITE_COMMERCETOOLS_AUTH_URL=https://auth.europe-west1.gcp.commercetools.com \ No newline at end of file +VITE_COMMERCETOOLS_AUTH_URL=https://auth.europe-west1.gcp.commercetools.com diff --git a/src/assets/avatar_1.png b/src/assets/avatar_1.png new file mode 100644 index 0000000000000000000000000000000000000000..1321ba5fe34927fd3ef36a42109e640760d93c64 GIT binary patch literal 21527 zcmV*ZKvutrP)U-$N;n4qF$aWX9#uFIV@ePJ0RU@K z5Nni_a9SjHV;EOL2ZXh?MM+6xl$3i~7<;v~guT6ly|s+S-fG@tXq1a%N(j(HP5?O$ zE1V{DiI{7glmI0Jb6OZwIR$f45GXG!Yf2E6BrSwm7|(8X0woniI1(-{3~N#vYKD|Y zQ%HNgy>n6+S49$gy|peFSWkf;;jlIe}I3{aK8l2AIbefwPMotzs1JQbXR9IJgS`c`Jh5P=^aOiDK z(??Z@i$f_6W!hUV7Xd+zG5G$nA2k$DODRNkc^yY;L0DxOAp~f3coQfuQF)7uy|kRp z)oYxbVp|}0E+x51Ol66PgnoBbRYh}iaCfGdLrPOwV_{@xWs%O_kjA@~y}D!PVoMSQ zewd}zIZkVooJ~nQhCwxrct}-*ctRosRcdvL#>GTwcY3w0fZ24mZfO@mID?asfowQM zW@uL@5}n518Dbl+oPDa$*rhl=cBrajT2D@AQ(%#w;Onw=9Unkd7pRzUQL9Bmdbuxn zBxNNNoYv%H5)yBlr&3D@Yg!MJ&elV7X;pW5p2gFKs;6peZDu_ljcVbX+z zr@OaxNEu^X5SFZ`g^)peQV_(=dzPY9l&!ej=9cmQnEjJ)fB*nc)k#D_RCt{1y$Mts zSDHVnHL(OI!jw>Hsgf1HBmN-SnNbO$4Upi0gp2_pBrIgflJWriLFllrb}&1{GcjPivOxLHd-33$c1em=&OnM#?@mxt?|ZI`YK ze119mn6vG?_B`o+7x~=6=lqD&dV#u9dz^hNXWPeZ+ftvKeShISF4jL+VhitMC7)Z# zewS|B(%UY*uSLf4R%DO2ho!fE+_tS`zbpGrR$`CKx8;AQD{I@*+b(Bc|2u2Ta`u}v zr!HklE2xjVkEK2riv2zw|NnQlX#uiXHhE0sc76H~nEEh4`gAw@_@qR^JDX`wbQ zg(gf&)ez5b*|PPwF_ctplA6Y1F=%n1Jv7>PG&v;{3S+*bLkEl&BYZ})<^6ZwdFMyJ z-tybZEKSs=XE#Mfu^Fip3N4lV_ExjP{6t8j(AH35D9=%5__LaApgfmEp*{DDEpP4E zv18qSfXwp*u~oB)!{bFo$r!0|-;vx1g|yVvgXXNtgQ?F^V!o3WJY(4M){b>AuUq#5 zz~-Izf4+qvwkAhuc)X~mWDE*zl?%|4HP10p%?itaN>x$GrDQ{uS$-}2fk`!oTza96p~glj0o{Ry!cz#=xODk+rIRc!-}yY;>Ovs?-CW!?TQ z`!>E&uHo=_8h{^dRV$4mq^OhsoFmQ==a@|58{?JaH@Iq*Mv46S{ux~f_Msgwzx>m( zjT_(Cr{VE_!CQ4t1ir5|+@D^{0l0{NCqCV(q0rW>%CTcWv{d}ubIHG6H|v952S|kV#?H zGzymzS4{hbW&e&DrUV~f*zqG`*T#(-H@;G?iRZ=hR$W_CLHnMgdu~qN$nkn_Bv^LF zWTyrg9%hXJ8R8mBdD(mKtOJql%P-8vEj!)^sJt4`7T$NFEi_s&C9C3U-<{jjRsM=p z+8Q#Z5C*=}a21$0Q`Gz3e3SF<@4fZOet-;#%?mqzMsj82#@EU@{{1^%etF%?>%M+#>#n_k zD;r;Z{kzc?8kZJFi(6AH6mqwm8#d+KkX9U|&?s?m>?PdV5*I_Gafw&guV4StORw(T z^=9Rd-hW~LjvYJR+VaZAfW5I#^Exk*M_Kh=BqYZdo-+?LHHmY?P1ed(8Z9O+CJ>*; zgzd;c*J;@?Wv{MZ|I+&P>({^g(wDp5RWdy$M(E+r29m%M zUQMM@gllLqlxMP3AoLesKdnkmU6o@~;B$-ubfSR$7_ue+$*UXp?kUq~IGcEzAX`?| z;)D!gc5(I^idl6XM7h87juBiM3;ZX{M^56#(XwfA$-79V%yQki)q4QP89~2PN9XbK@=J-jzUZ2Y+OIb05-3^MzZCVeVk34 zO*~%wv(K&$EI{v|0Y(6SKob^csgAnE;vBKbJ4mD!3mG&n&>adR@DWDH8^I8AX-Ptg zX4ktvUjO3&V<0ZONVdGTFH!@T694Q|ajOE0kV^wT0Q^M*UI(BOll5K`KqW`q{b$ck zVKMj*^itellZ2se1^j+eHLtuomoDpn{CB$mTV8!_Py8khh;XBrsbS>oJj~pP&1woa#H~o8BnfH4Bq4?JCg=6ncfI=MO95@!`^Mgld-iB}&pykH3+UhKXbVHg z5Eg?-_L)>JH#IdiCN(v6r{%Nj0bC}HL{_T0xOh!=kSj4^XayPP3WYJ;RPHagz4`j4 zU3*`Bcm2ET|L)b-Homd%&0idcT#bRpUKLp4;#k6@|CGh#CldtWA>@RIP$)cqKP5Ja zbKGLLxapMKLLB7I#U%`uM2n*(34wlbg-H|&o9 zS$169>Ubh<{u-fBovMj!y?nLg;>E$i!Sh$2Hx4!20Mg#x7QXCH@4gSr#kZgpUZ<1&OaN@Vi+OO1_<4#%)#*ga)E zebax;d)=EeF`-W{&GDYD@f_rmSEA6=uz!cz6LF!&CD9lV6BoL)A)s>^(X;=F6?VHmLuIZc;V(*z;LZPV4;&OjU zNu>yji?d@wj0=S($z(s3;H9yZdXJPKcYjO>VKt zo0B8Xap&lrys2EiPuOs#lblsMTYTF}NOgO!-UQH@sdGFt7KhyVNDZ@H|X} zi?BpY-`M-rxvTXmi-(&^6EbG=r0^PKW*mhP)+jd{#tIB!5{+iAZATMD+Pp+jVxAW2 zOCol`<+^ew&uuadyYp_BI-R4R<>lcbktk7=C(??rGj@N=*u_?&G8OD06xy=1fs72O zPj*bWzXmRd5mJdmy;!0)4@<=JfVyBPiekgqbd}xdtg5PVI-OTOAI32emY0Zv|6*F~ zj@{{t9UE&uRFRcRj>3lD0^?vp+B0DvhFZfA7E{bbU!w>G9LWO}2UV}fhOyBLpO==F zettoe*odPjCen*=5sIRB&W+mbzUEj7B53a<%rV);p&xx&z~G2S5{;J1QG^*5A&3*W z$<|)T5m0ax(+4VwqA<3@92kb;B215oa1_3O?vUMw#3G15BJdsZaAS(Ym=nw~7_Tr= zIj{UbVb+%HHH_kHE>VI3Elm_9icp|2B2aOWR)hj}z}F~z4}*V;9D@fC#D^dPfJ^%U zMQV1aBi@CL0s7H%S>^xl{}t{|l)Z))W48PmLop0+B*+I?^Du3YL*N}e4?`10Se_Q0 zI?xgu3)mvLC`pNx5a!hyaprR4D3r*`-Qi>lIVP7)qa~|)MQ9#4b3OD$I9WxBz!#JL zNt>uo%mZ-^j-oj3KjiaC5CI}VB#1!ZJ4B?0vz0SONuuQolPJ%>|7%YeVF9~NrNyvP ziSrIT5z8ZE+&S8!pXCach-)EtwD_o_)EetU5J{{c7D12{K{H~}q{fjsTsX#I=Cqhg zqX`*X-g@W#@X`}zHA>{SYcTM&V%x-r&pgC)RV=l7Ca}4Fvp;^9U+w^MUny@5uc?JIM29nrvQ{V3Si66 z-u}PCtSwwxc1+|U2k<*Hn)0ZMVrZj(uo?JfQdtlLks!XSL@J{=F0jwA860g^Gl-x4 zb2wpvI+K31Mq-1yB0&Tx5=0Pth@c2rG@3BH(QXnPyL&#Y zY>A`A#l*!iV$7a1q;4!(MVJ=DZuwh~SV=7838=6jl8T))T6Q>Rk%BY9;bsfKB`!{w zlx4w0iRkjQ1s7qZ*4O}7AYVWqN)aHjhZLy{1}!l67&a@;rm2&NpZ)Vchc#}AiHi|Z zIENhAGBgDzM`9dKXFFg^utLsA5MPUj8$+YSg;`sKF*ITEmiJ!>CoCjexQeTeW$Fr0 zAd!DiAW4x35J3uLi$szlkO)!)K1=e>a7S}+PBSTn*z&V?!W_=gl2R2V*fMk_P#uDw zknzflw!n&{G+!oS7~xNiifJ?&m)P>_g^sk+qf-|C3_0V#^++8cKU`kif>qg@NuJEn z7oattBL}ilm(Z5SZTHOQ$QfvE>Myn~uq*Ofvz6_Cq3z)uRWW7D{l?|!3J&rjy~92j z3;huCK<#h0dr|??p;MQ+*VWB?pCP1#ke95$j9kz_FH}+maZg}S}s|aH+2G?^7U$(a3?S3DUA_&H}b1D)G@@N`k74(G` zYFOrf0}Ps)#t>$CZeh#Ql{{R84ceQb50X607hjEnTdWp7I0wL*^SlrPX!BSw_nn2? zzY25E#o08P*#gILm(mqDPN#KLjkiCnD`bsrso)0Zj99e!mG%f+zwoEX%MsR<`W9tO3Vz$69dgb3ZxWzhH?S%-|LmKa5H^ER3+w z;uwq=N~Pr*x{R1bi|H|RxYX`L7SR?2_@c_x@HKayJ-)U;d&CBDjN&Aka%-){jV?o5 zK=zC}O0DgSa77|P1U{>W%TPaVgI8pauPrPVi}nyK*(?Sln*p!RW3bd*jiU0tQGhyd zOoXAJ;wZkLw!k8~HZtyeC?App$LJ8>)rwSB@e`l&axB!HC|jKkwY*ry;Hn9E$>iy2 zSCs(89C{Shi*PMDe+F`-d3h4}Tcme5Pc9tef>=g^G@qB7xiZFohPcTKS%_iD&dz2O zv$7e*G8*?+maG3gIUzP(D|OmS1tR^h+o6YJx`}gmGFM+vhy7ISV%m}-h)wZXD!Ijw zp>d&Y_Cpq8SXkMtY#D=*En~ELEMuo9++wl#+R@>uD!boV_4yPg!Z1vak1jG-bk4pg zTM$8tq(63?NR@>f5ojTXB@V;{>S9)ErRC5cCnm%>;%>2N_(aoDQ(mdlWw%#V2`-4R zVR(f?KvT5AIU*de1&+2Xq%E-sB51CYbA^A4umDrj@>44<=bLhJ#3p#{I=pMB`$o4Z z@7R?pr`_eO5*!;vG0cHs7$!pVpw{H!T2ybZTAVG2L?S>cvMAY)a(|(+(6c2;$Vg4L zoH;5siMz#Ou}OSFEC!qrn@nEsjiX-o=ya*m>2f+tOFzFY(mODCg$s`1nEsk`&*o#DTko0*`<*6TJ{wh+$FF;)-d% zvh<3(hl9ET?{SOEBy!}u~e=G zDxro&$cU2(lMm&Hy-g;sX~N`f@=kcY-khe1?woFuDW{v{3e=qw;uGMn-d`LSr$6 zl*p6a-8E|imb*4Lx4vGd8$XrMcg}r!qN%AV$7>?{6J$%EcLmmp^4_+$BeU~~bH-cx zKL?Cy@tA397K5RFqVOe2$cSUa&5M`g=0(n-j&kD|LSdxSd#8Tw!ytnV}T z#KaAg$z+emDacT*XCC4bwN>lTDKoO(v+o;_Epxe6d$GBjmL$563N%Sl=Nc zmBC;YKUr1;M?T|%Bb0G*thfhu7jkW3F_JX)8x0GPW$i3dfH^knNWvNY>4^!G$xYrT zE*6{Irlx*>vjka)EwBJ_VaT4GElFywnxSSW8GtA7oq2i{a&5_G2sMXplr9bnsW(Av zIug$O@$_U)j`%tm)0n(&SIb2tR`Ad~5t$buEfwatYzE_rGsZXucP`^taryJKWyw*t zz{eKcY=L)K3>r`MD7HLk8S5JSZx3|yQys)-N;P`(-#!gbhl#k!cBsER5mH3sCkwjC2edPnr%jRrA zA;)Bwu0dPuebN}R?0niUk|)wu1WNAOwMbJSb}^Yue#ygmQ9xT#kY+?)8KY*Yvmt|* z*Y*c1BZ*7=7U)I!bIx(OY$6*REY#z8sy&{Va!EaUnxiJeH`$QL1GbNZDBFgNwR$6 zwi`ydA8h|k`Leho|EWcC!W|5Dk6A&K+rL=kGFY*bAkc7+Wsjq6QwMuDQnlR zeg4Bw4{yJJvYX5Ty2af$T`jQ-j=7Nf;yX~u$Y!k=6;?hoU!Bj&PclFM{*E0lybMuU zw{FL}ulK+6{;#+E_E#}VwG2Q4`dO&i!jiFMsYJsKJ9*-&k3O=dn zO*3OwChOoraZ9lH>;&y`l!bL%re+>znV)}u|NIq%*X{Uv-CIBZ$rf%czGQtZwJ=l2F%&9jA{ZhZ2a z%EeIm=^wX$^g%7zp+3tA=F;8M+2IGf_5*bEjcSqf z^fzB6xM~>v%hWPf1dGX1GM8?edf%7tez~ix@`L^R_mjN{ux9@|&(AD5y+;wr<8b0R zk-X5eMaGaZ^7G?%CMzoJEjQhh-lLO8-Dv5E-n~wS)aTN zu!R$Pwmi*JJ}qM@nM|fRF5j#m2un@N8BYkfv;?z|qAyVmyEg!sDH zWNP}%YHM$9hU2yiYfG#k#rK|vE6bK;%a}5mESm|Aw_(l2*${{6r9 z@7S?_%j+A1>yy8_>y=2LESti>mZzC;TqBwp&6KfZEG2`>H4_%6-&NDluXi79@=kas zyiKQX9%~r49>|!bPHxL2h*(TV@3=;+Er2bL$e{(k&WfE}rR-Z~v`ofgl6+aRVY0Ga zffbe4uYYO%FaPw)Z$J2C=WGw!xbgLU$?+V>mQZU8q)P-G%VDw#WHJVeA)_hIpFoe5 zI_-YDv-GyxbfVkaeZqUx>oxV>?2{%84UG?t*WI4X$q{#(j$W{rUbCO_Jv0YBry@vm ztmN-Kt*KlFD_h270iVQJx?M6_+1`0;w!i!3-o1P0pt5lfXDjK4Hifzqk>47V6`_t` z%9s%>HABf_XjE=^rJSg_)M@oQtETU`n{Hg6$noan2rJBZMMDBt-c`2}N`;XVJ-}~BJRQ3T(B4I=q zVpsw`0k-ov^Jy5vaI>t9jVLO@M^S7zakO;MZudJ!68b*Vo0_~Qj(U%FpD>+nn)FUK z>7C9y4zx#LN07yIB{=5dY)Gq-%Pm}P9PC4^rQ;T6apa%YKVWbv`@O+6{>d0Op2yoj z4?SA|Usw@p8B4}|`e_-9m2cn@=kK3uY{c==Q4uo@KR{z%5IJ^La#@w|9W{3Z=s%?fqgA`7r3g2jZ)VP+rC=T;IH)z!iFGrf&Hj%#j* zqY-Pwd+^bzW2L24C!J2G)9&)yUCss+Lq#}>WA;T;%S-u(MxX+v^( zWvZGXV=luJ(G+h!$d-+7%>GJ7GLN$=uy$=l*o;VP(3<|iiVxz%@6V;C2)NU=v^18s?z}~ zX}?d~oR+SWo0TAjT&h7#Wmfs#_3s9M3j+G2SNH4<>PqC+cwYP_Droc55#fV{3}Et^ zOcsO1U~uzOcOLvzrQ)ZGEgzi!;QaZwF5bHI%{SlleAV02+v8|NK@USki71X@A}v;G zZ5O1ZEO1YeAQnl9ZLg}Xy1jYx<}^^!rqd48av8#<*}`I|-`w-sm+!9syIHop`UcdM zjeGtD=nAiZ6^xd{2Mc735=JjFVEM}YeD2QFogW?k=&O%Exqtrr)vJS&^Y<_HUb=Se zo1UJY9^8RyM{yJv>8E}oKm-qsxWKhJB$8Nv^_8^En~!WhvUzjbmCX${7op+GWD!fY zh905*(<^)4*!AVR!Pw=;U%nCaLGkgtP2@KjepmqZEQkw3c3j5#mMLS=j{jl%i`!q^ zzJ2@Q!+-hs(kB=H^1%myJ@+qN`l{!fZ+dVX$47Bj3nE!?yahp;t*+APG{BV2o72)h zPq&Tq@sqi-rE?-U2gFrxd*zka_Xbz_|MHDp0bSv3h+wdup5a{hU{TM+pK6E;cvQ<` z-us6a1GfFsPa!%Vef06izxm+3znnk+{#*CI>A7?Zcbs%Ccy+D>L4XT_nz9+f;<8m; z@Esz!GS-r80hyXCf~n*x-~5+XUW31X@Z*;NEPM7v@-%EE>)Sb5c=%v}e(1Q2C3~91 zk`>EjAa9WsbKg@PesMbq%l~}5J;0pp+duty`}V^h{pOR4_j?)}drIvO-B*-?G)oZQ zv_Bm(h18WRw(8R6*!DvT?$Z%VYYR7m#RT~im&@I@>0e&o_|p1!UwUKL-aY#`QB*aH z#he={hp`jE7zWPgz-K1lj$3*$yCP0so#8M&+B_%dhNA6`!*?M z>Zh49_0y{Y3zNlUu;8pNg9h@J{8TQNn<`JgeMt4z{*Mj=lKk}}$QDoz|K>1>(f0eF z^fWfw2jMz}bFa&lNSaG+BWXZwNv@38s*XvJ6oK!uhpS%N6Tx210(!^Hm%*rk^U9t* zIxPx|KbB^E)N2W?dl6;f8JZ4J#}n||axVOB4lK|d{nxJ0O#OeISV z+my6z(>5hjsa68jQ_t;(;e#cDp=POBGA4`7O*Lx>Ibo^nwA81i`32v6^Ub{vJ_Snq zUw`=I%^afjgE1*Em+RP(wCYkfKH7Nc{`MDv#vcAF(BH$`KLO5~MCuP0 zzrh{W7GF?XfKNi2NBn>*BvYmvs$HKW5&^txB&Asb=cJd@qM2tF{QEfhQkFmGf24&G z7ACWR$>N&J%H{md5@}{aLWAwf=HG8lcRFreu%EQw+YbHF9}bf-%*WdgZ$C_GZu_v- zanji?3Hl(wm2`g~R{8zrD`^cj*9CYVeIV|ws8lj#A#HgWVPVJ^Os-kcy1Q;%S3M+6 zkW_=1V{=;dnI61daCPuLB*#MS*1>%*> zn{SueT*u&=Kt2TCA02B+=7zZK;e&-0t(I{)MAuk}R4N^^)%1<~)6#ywIjteL%7NiM z*Lv<>JpXU^Ke_~BIuOGg4#vKNJ*ZYRTN6u+qH`=kDwQVmWp;Gf(x-to*cx08T#Gs!Jzsrw>8@I1ga=aF?Ym%eU~s63slG zMRbkTNfV?A(iW-IW}61zcXic`8hbl-&4J!RFZJ|%)pP0M`N8vl`S_EI_YU7X{OND5 zw)fy7R5WZK4_xCS@QwHz0&2T?b6SJVd2A-54&3jmQgCH|E7}sBpI>%xEJ2#kFHK13 zm-gwvx!t}}?QYUn`R!Fx`d-X|Ha7Nvyt#4o;`yuZgG~DTr5^bE5SS#m#Nr$EDvkDaaX8Ll zD3+IqCZZ1OU@Rg*d?WrVn}a?m?TF2F0mQbXss!$iPHC#m>0mvMya=Dy>n>`K(iosuqAXlc=iu8GU$4Ps;L~_h&I|6+WnFsk@ z&4@%0OX33Ak|IHn=F5cnZ-p(#HI*d^4Rzyn3H{QsguWVA8q8#Fd*MCMIi~A5CX=`6 z^qo?d-C5d<_w?YSqd1CUaFq@{rpNlNNbIp$UD>?(SX#BU9Z3NJf5Jrx0-_d4U`0A2 ztg9u@~y>VPYD zbery!*0}u6(kX1%fr<1eDoR9AkzR!QPqjC|JSYwD@vHnm>)1^81MOVN`ORtzok@=f)Ft{Rtif#~ z7XE($=$qhsV-Sa=C6Fx%kTF(ULwb68wYB%0zPZ%t@~2O`o4idXH@OZ)j+Ca=kT`GZO0?InbX_62KbJPB3%dUMO8h4wQ+IG;cy%)b=qB3$K2kd z-k@J1S6XQDI@6EMawRR@H3jmc11%sllu85plqR$c)z`Q9d@4`=OuH6m%SyB*B7zuRhvtIKGs^Bp39wy+~2=u9PZ zwvF@air5k{#}>tTrYvV$R>N<2IbqOU%|EcuE7FTZqgoUn6^-JbInHPNy%YALV|rASn1|}|Q541DI=Mh+5`og-*p#5k>2g-x zNq5097BY8sx!OT4gp^vxAX5?&`l_vP)UPBHzLZ+axn`yTuq9&AKC~ixY*-%9_=pH4 zJA%oKP^y(`C0m`PxP@x5o}M18r_s^aGm78p{cx@I3J~4&VNs$U)9Xc;2*8r6N^aYg{luS7XdT93I%CbtZ z%;}3tGc$rsS1Q?TCOZQ911@p3x91i(KfC>;v#NB|(R1t18Ne5fxcql;kv0!=I4}%F zMcSEyYjG_uO4Q<*{v2j?rC(_{as}v1TD7ZLB7rlA2kZ%BAQq~#HApjOFiA*A80(aq z&An?;NSB8mu}Aun{!&d=T(O0t^#j z7fuegqr(nIA})gKpXR~!xJ6KF(8eCSzajlf`jzw}SB^AP548(oB`FAkv{6c2zbjdp*TiD+@TV`_&15>G_M?^50`QV8j&5E=fvf5Ai>YOgSeb9$U z22a|pE%)WNbQcI+hEY^>q2BIy*-Jl1v0)sCtNbU5;4jgmAPnxY`yqs2`*d3ayk8_1 z@a0s^0n2!cEulo3Py)w@1Ab|D7qQbor85m|c4%N>Kf=gO=KMMP8uXrEQRcHFlx$^w zmU$d+D+1Qu{c9AZL(4>mk+Or>Cbk)cB_`J%&{co)Zk(U4G}_ z1$5ZaC_>@txmt4NTt}7vN_x<2C&}LxL6GKtU#wurRqq-Dhy*f=0AD;BrXl))mdd_P>nHZX&oRd^`76MB6u)2_nSsS>g>%jD z_n{Fa7V-5B`Ntp{C7>rs`+-jyDMJJb+XY@@> zG}X9G;@@@uuBpN9blwrW-KCaV!sf4O8M4_?y&k>bpF(jF3SwM%?}**+9Gt=(XkwmT zkKOdU(rW^+RQqRsXOa9hLBwYr2mW~s&MO3XQ$(1lR61za_kb->ag|(7ZN`8~#aHq9 z{MJI%fWo?jhW&f-1-o1N&JZWvjP|SI<2gOI>%Jy0Z z<~RfTlk<*SkLexgu&a7bFA~7nXhe{Lq#!9N%}D!rhjggM)lt(?Q&SgEmk$Xg&=xvV zHV=kXXA7GiL64wE8`#RM@>C(9Fyt$fYdw{%1Ar?=zLC%8 zs|xwH(^}YaNtylbPUeUB{bCNYNS$WC&490pd!?d zdrEWcv0>KLQQjlh!OieB;(W zX-ROLPFiQRHuM=4W_mPp8`}^9P@Vu5WpB$*Sjw9rJOK_~Ny4K8& zj-a!ZN+t8Vgk>9>s^nyNq28;M?iPT_@;wz>@XG@ zRaSXL{Q*nODWv_JqX)-t;i5)=DGCzDb2gj5+ExRyD5onox8CZvj<@%squNn)6d!e* z>$j4)K!vHvt;i?U)}Rc9>OQ_FqO+;WePw$;{9^a+-I=@FzUVCC>mY9i_^QGp73ftR z9e@=bq#i@OjNlPgz#F5=s4{kR0JW($>ldA&t7DCzre`{1>6y{E?S z-J863@20KVHgenTKJ7l{Kjjy3S^1?#|3?`{J%jCkNOBlvu?N*4a|XFDwj3I{>Kx zzEM@A>d+miKVUP;544==wO`sk`O)M@_nfxd-bs_mbb4~iFPOUEv|n(bIPh5_^s|u~ za(1z%zQ$G-0k{$Y+7*IcM4>Ow9{M22Ken;Av6cB|ZY8m{+#{Fkbo|bj<#P$XBUUR=}Hjxh3P`A1A-MckhzZJ$c=o{DH&5@*OQ zkT-=;VLAegQO&Dl+(T|*EadBSa(QmeX%oEGuKVccuG`)lrc%Gp?{uJdv?494J=bFG zmk#CntE;Q4GqxF`3!r8XUOGzz6yAsfWFMtomu@Mvj`*K*il$$^G%Y!8*$^dE6+P2 z?mk*-Z}yiq-V)&=48_{*(xLk5YFD+Zn%Ksq%cAK9(7RU;mWSCAO=q*|tg>>_EA#oS zMwLY;AF&{f)wt|G`4osMrTD&$)%@{9}u;1s~d0_3I*@}})_r%|WNfZG-psYpEu#xusC z)~G;STnOW3Tiv~{di(2!Mr_mG98-?CyW3k;)qc|6Bf|6;ir=x-TdQ3Vl~#H|bU{IM zNI+QuEDstrno8e5S1LR}U3b@=?JNp%p|DlO_kh0vZ;FcULbZ|W3X9IxLEfD0DuP~0 zuA9f3!T?|9Wr$rHi?j7m2ssY}{7p4o<)vg5*shiOxWwu4eMYQB%Lm zpX)bu!!^un?C1V?s2=jlXe=DimDLjEM7c)Eq{|{gaYiA51se4!DxIO^n#~#xL6plq z1KR>>({>hko?H;?4HUK(g6Kw`Q7_k7RI0m00{|L18Qtv8%)AV{R0hOmzzB1xLcU5q zGTGbjs<&0w-#Pj_vDoCDw%X4~>S1hS?Ev1auysI}TV8HfMpM6Mus|y?&<$KJ*PO+P zB+7_@67PmeTr?0E#WNa*6A7@X zJQVO!ZCx|!swy(705$~lL#ocZoqU*sTUx=kK#4oa_!&6x0b`NQXcCLNCnnDrb8FVh zAy>%QPbcShm1OSzP|o=t#4QUN+rT!ksbsXtj-s2D=ACA9WimmO6Y|P|t`A9dJ=+O< zQH9(CasVUbO$NjUoVIu zXeEd&Gn>l%-gu&UW>C`UbWmk{$_XDm9vJFff%$vst5nUJ58N2y@$p4)RI=ZLt&<29+50u%gZ)_zLu{vt&%% zYPs2RU~PsCc<@3<6_q?ALv=Q@F0*T(ysR=m%Rr@W2+4Vbnk`gipwi8BGkk`;0r4=E zN;d=EWN{P(L3joZ-fe3uDJjXE8~2f33i{{_xvsV7Zc!`fB)Y<)uDacsoffOHOBGOJ zzG{Fkms{F)XV$fyl@nPz*-u3q3JMBBLYI(tqHTdn4Lon4gSZpq+jKhBkVU1l4f$qs zmZq$1Us;BZUo=z)v&^=G#sC%|CI(S4$r~NNs0f647P%bc4wp-S+;qVV0_3D;Gc((| z+UmM8%$4RWb5!*AD$0G7vFS2;v>`eg2t*1$2{jCv6H z6&+Mr$Winmpv1bnnMJw`zTa54Tb^4^5FUc_3+jewLkOB4R#<|gdF*ZUZGj5%rvkFF zm1P5C(mrXQG@)+D*rDsFcHOPJ4Cf5G0<*VpR9pq;49F1(OCdRmu9Nc%yW|#Ky{@RM zLzkJ!mk)U4YsbzN5t z8TSDtHX7kv6Zsk_aA((DOIPNQu`{y`M0836=&4U^lvz$MqdbAJ1LHE$fpI-Ly`X@* z@8FoUVW`8Zv+AtY4y)Cs%gs{K>0Gl}lUzn*fSCA;%l`nCxU*wsyf1J)L||M?ZprAX z%go&UMJu7m%8y#koZ&KHp{~T>M^=L495g|u1g#*N9$f(5XYN#3#(=IQBn%DJjMoee zB}jE1=7w)K6cj|8^Wn%%AYb@`^vOjQ8#xxkH^P{>!(yq=U8@_qT$kBeR<1FdK|Z$a zp<@SIzx=W?Sg5ndSg8dfIx?3u7z_p~-MlkdUJ|(W4Hl`ik58CcZ1#o%D!t%%wAl<} z;G+N}A&dkiqA9@JIPJ@BUHWV0?^mz@YK2DQY$QD>u zY*ExGY8E|;8nrDdD=JD8rO|MBJRVO|X<1trxY8?de~`3uEkP)^fe436H9TdAG8mX< zb5<575-9PT2M@Nj!7Ni{sfP|cLvGB>-2Gu?IZ?UOK!56~C_0t8Ap|X6DO(=r7*wU1 zo<+^tq}jxSzq$~~i;R!tL?$O!R9Nj}v+FPiK2ZEszzB9a%$(`Yo${vs+0U~HhWH*DL$HkfNW19w0S zb?EAIb9F;wnYF)QKD%MVh7I$3&l6erVA)3BMx`3EqImI<$+JBtaw~k)aBA(nw{R_v zqYYM@vF21mLV~mP6a7%yJK(eSc7ghwSWkxDZmyT~<`q*8gAnM$Q@*zgn` z@MUGHx0r@&fXi06kJ`+yP+WwGYHZFrL^>udNkF7hDKb)zT+?Hy zB_lbWr-_O(P|Z($&)LEw{Rn4X1&>6}41#uv@Lpk-CPKQw>AoeygDOre1{k>In|?SsKk#QPeDI)DyNnY_LQ}@d7c* zgC)8A&^f>gc+VMNN*<<%D=VPndK{25d3wDTR}le*aftd`4y`s3^gPG4sTQZ*YV}+F zR(mNrEYhN=Xn3$fLHctZXH%3JWTY$(#SIM{&5; zjb1c7SgQbG&(_G~+QCLNF;N8k6e_|T*qx~hQ&XcNhZ_^2dAJBghgF0E?j3THr=dpC zvz|a>!UhXn1NgsH!BK2|KwFY)FZV)kqlbLaL(XUeJkbU;M}+AycY7`Q86IIdhlxlP z!r_X;n06Q&hIdTE{fIEkm*G)xX8fK;la*zFvo4Qk;bV&idXXSU=Ef~V#id)KJSQehtK<5UgIH%A$bf%Bq#pa?T{oRHsL=#)}yW1^7&I`Q=7b54C5m z4&~uw+ymdk^u2aMG52`!JnFW`=1Um0Wou;og4(i`vz1du9BOaGK}3tq#w&?f9+sG> zCBJ{H@nQwR0Wr^31u@o`hzE59RQ-&mz-OpB*hRoC@>mK^JTIP?#eVEw6h5{@k=f5f z+5+EEC~7P0?dKdQ2Kga^JkbM{$b&f&?)dYm3PM4Crp$5)t{tV#TS$w76>F~`B4>^j z9~mE?74NUr2?=I{z^MG&7{YSe>RCg8VbYN80wgR5eqS92ALz??!P@PV2v^Alu6l!wke zWT;T7QBk~wW0!e3QY2^IsOFrp-=JD^{(tJOpEZ&jid!tG8qlk>g}rc79l~2g18Wox zqslB96-gkzW>|j#v*2b4TctQI#Bg1T>#n@QZK}W(7f2d&#nt&NDZ+cw%t+(0*B-O} z^B(U!-qGkZZ+`l{_cUT%9R2g(@sF=|$Kh{{9AK?I-rJpgdq6qyE>P=QY(pnA_}y?~>Z{`ODsKFTQ)Zs487$ zRTGPp0&r|TaO7Kb3rBuoQU;E=t*OrXOo&>`quJ+A$FIh_2aVGAr;gX_KYx0;I@DFP zDk?%9?S{taExP43w|q25zx1uTbSotxdh(l)BUi}Ix>#LY{`>d&nAY*=dy^)U$*1!- zmp`x0&?`D4yhQUz!q8cixaFp|%bU-2l=ErM0r^EX7`TpKbg}}Te%9nVVzFEu%`RWO zd;fL4K3|_7ufM*3_sb7w-|R19R?$&3GSEM^jk?3PCg>T<8CYk8$^2Sfbq%)&&n-#) z)aJxZ8@(us)&Bm)?Bmf+qg19g@=IGg>8!~`bRVu-4rwtalH5hY zz!5))TNq#-K60)sqqr3FjOgPMdS8uLsdUXhhy;Hf9_dU5FU0Q{Fdl{K;c24 zW>w!g(V2a*`uIFd9^5U!VM@lp7$ZcqM=A>(p>O1$8Z)V-qDYP5&ju}=kH{Ds&F8fL z(olWi@8xc>>N+K_C!>!f5GiAhvALVmPs>IpBWE4` zj`1BhxYCuS0aKEaoc& zr(`Jixt8-A+SDyJ^s}?^ncl)qBD;5gx5Zk&c|2`6pJWHU?fwq{0RR7+4d#DZOg1I} O0000C`ZozP?%632ap{pY1hkYCX4U+G|l19W`}zT$SaurY??}sywPHySDSizje)? zY)`iLxkdJ5d$PTQEr8z@K+~0|iGMAC-j@Y-?J39su>A3DYmal|>qQY>vu#Y@@Uy;} z#_FQ5x~{AOG6FR5h2Pc9QPsAu)s`GB%KDENadK3p*=y+}eeEkReD%nlY)`gFY)`=P z$#&lc5M*TcW#9`Vz+V#pI{0ndN4!M@+_u)g1&noVby)%kYk?!b^Y;KoTU7*0v!bf4 zNMb9pf#tovHA!k!93SOv^xCSm*UGASJ+8~wtg_d>{*@=7`D8oYo`B=e@%C0A#MSWP z*(mVcZj2f|!n^Lc3ZS^`4Qzq$ zMVnZOtG>Z&H2~2V&&>d;X;E6*RIkNNb*-(ce>$nF*HRn2_LZ-G{Rv?HoNiCR@#km@ zVEAIw#J?Fu&5OW?FWU#WJ$`U(^wj_u+hS#9nOlX3v1KYPfJ6jY@$Y7fva-Cy;}9v9 z1jhc*rcs6fF~%2?ZGh^KUwCYS$2O}RuUQIo8IdyVjPbg?$X-dJ=(UrR**`t9<5#}^ zcfa)nEPqb6C*b%g-cBRK_;0^^Fl@s2$WAX4)cc}XKfe|9-a8Ps*0D49{WiRozk8&p zQU7b0N~6YzsIf&9S*g~DpQ{%CZt%MZX?1H0)FH9AR>!HWlAbNHp5;-(mqD~xS+XiE z$#aXAxs~(6R(EBB!qbtNu1VUepWQ_gE|R+Ma`9?5_<_i2yK<9~_&X{q0$B zY&-Y_09K_n04@zl$R{XV>)o@YJcy3tHbk>)Au<8j%VM4 z+Xn@Xad=6BA^%q)+G_xi1g!$mV@aUn-@1q~FRehD%m`AEW7O(z4I<0BZ1niLs4brr zc64xJ2YZLugV;94V-_NnxyN|DgZ%?57At_}u}$~)ERC3IukhTtWf|D1oekT$xNR4n zxn!fAU9*1Q(q8Yi!D#c9@o@ByzVh|I_liB)KGE9~aQuXB0z{&}yLW75jz=_!YL)Y2M2ewU~uH`Vtahs!@)5Mht-gwW<3!E z4COjq)Y$17dH77N^SpBD4nVTt-|z>LDqvs$gq6)vSDYQs?C9RqrU!Go_2wNrJUFs^ zwM0Z(0(c#KBRnU?@$xA7`?xNVp(8qtN!S#MBGUwQ%YJO*$=FhYT@O09f1XaADVfdc)ql`lcP-IY!Dn7w9)2bn@j&=Mg1JCx8He38Pj-q7l#)1Ps1d z$E-lopazMMHtRE+?pvG!xKXEUfTk0q*uVN0|B_w!%yZWEGyHvMJLfN0lx6_z0(H;o zwe8J~fAI8$r(fCm;#aTPlkH=>Jpsp$>Bh9VX`;V_d-rSh2m$to2aXTl&ek>G@BaAn z>+l1B2a#J#xs8P04uS;5R_S#Mup}TB;X8nk(c==eMG!Z}`s1Rto3G!qKl``exBWYZ zs2f(coUg2h;$aQ&oXw8}wlPxa7$6q`c-Z#J@@&~+UI`xmu+%x*P>qE&Rx2Qnq+E=P!_m!@x1NqYJQ=pNvtzx{ z*slE27wv^#`elpz1KWM-Jbu>)qYh#SV7|M%ZI><~s!ZZ*sN#ORw)ppUp0qZ8Y_=!h z_%YZ*-}2wV{r(N4blY!bf#1< z92^-nBE?>TU^%&cWH)|r)2@C0O}qW(fmKY=@x1d$eF=znZ`}6uJQkkWWSk)yBrq~1 zU*h!%kd?@vDBLPh94k7k3EFsUoJ9Jb^)l-rjb=JuHn~w9IUa9XgtU9-ndj^azxrhx zZ*AK7r+00F?_}Rgq}f|r8+QJ}F2EHOcpP7AB6|fD)Nk*+@Wedhqu!o?<43qLb;f=6 z%`QrO(Dq3J$M?J4pH7RWmX@&vI1&u!vuTJdn{^MhzzvkNcgM7<5t2l?d+nAT-#oTA z|NNHy^apR+A;2>2^=vdA+xhe7>_AChQR_$mF040bt)GFI z0eEshrXX|X(Lub-m+&dKVw&~{?w)?Q|tE<8xDF_BSmIJ%1E&;krp>Au+Lzi2OwOs z2H#`b+}yT4KyG=mu)B8;Y_&u**~VT*0I0UE!c8!9M3(~_ZtvI^ z{^GCM_W51g*xa!3Xk@EmX`^9J;6B0ccJa5-XaFWWLqv<3XgYYMh?3v^%nN_*yY^)J zP`4-G_#tj*LGi7%xp$J1J_=3 z{_uVA6(f4<_sljohWP3Uz$T+1em9U|#mRIEpqz;)!ZR&RJ(7$gw@j-7+ulbl5=aLC z%}{sjBZAzvU-}EbirVAQ2E&0>#mWxv-2pf@lKotI_9=Vjh39NM!F!E2Eba}hNixeL zyH+*Lw?F@dzwuprvVADq6L9tlT|M(SIK zs8OIvN1di|QU*Wg?05kUZe6=$`*%-lmDjd&ao2{MBm2>h ze`Is8$~jWsRk?J#GcwUh*NxNaJ@~~aHA@>C5Bs(;8HvPU>OCY#CaLA~6Pq0$E4poI zX`vQyCyUsA$o);zjDm0hV}G)NC^bdx@ti&LnP(NX9`4_@H~!>L)YY^5)YEqPv(MYc zg&n(a`J(M!xQHlnVksg_)-G8D0A^onR?BaH{;&K`ziUsn4|GfH$@YP51jTRu@BTO6 z!F~TNqe(38xbCal-Yqb`-{*bYwukLEWjl-!FVhLOxh=g+%zItQK_U{uWKRvsbn7ZJy)t0LF%Z76}sloB|MIeNXT` zRc(>JkaY`IdbnkAwu$E<4F=_sWn;W{3Ic{;h+8R10zi7y+r=I=UaN;NbTAwN7K&m1(rFsG1^O#(p=o11+My9-_y|*0yb2yex?i^^w)=#LC$b;I*&?{>|1! zwm&B6$Ugszzhom2G(Z0F>i~GV3B@WauuF-;^BgtP+2Nt#39qzi@>~DsAKiEYl8<>y z?aB7oHcD~;ir;xV_W4oU2Q_BkLGSTFzt4N!*89|YYTDGNQCK54@HPm*QQHG}E~Ya( z-k;hLqDFSX^lhMMj%nxuHN6B;;}kW*sxASPIikQyFDD>uDOq%Y?BOc~;w7=C)JbIP z7RDA2j*vbd9qro~kzg{|!tYW5IQA*(Au`=$42j2|DB6shW0V96M3#5}0GuGszV3K7 z2Qjp*$oSr!o0e27r0t1KP}A(U1B*`PmZQG<+8_QK?8gAW%VSM!Fc@huVE;GCrwlt8 z;~f!SzgQRbtN-gO&wY0|7=QbBzW@De_GEi3+Y@kn44eBV#(y6-?6=;{^OVm;4Wy6#B@^{>b6?UXwqZ0jCfzk6$Tp$O$YjQAv{mEpPL6DQwh3@V zw0LrC;}oC?@Q?d^PqU2?80wRyRW!(00_gi&V79lkFRCHXthZv9P@zaSGCxm1_m^_3 zUix4D;%9%SiJE`#-S1z!W>2>FwLPghzR#^a{9}Nk{T}}LpS-&#c0I~n6nFOL*iLO; zqqP9}!vV+WE#E)9txx2P-Tg@at%^*x&j@JfKv^zcOW#l!1|c5w3q05h<| zgJY!BE2QFuj$;a7%&Xk;w$K;Bnb9Iim0^a64X1mApSR<_T>=5JJD%7Wb-^B3<}AZk z+GFS_vPJJt8Bva^W75O>_2dZD)cAYZ%7{0Ul@I{Ba-t_fgz3?GtL_~3hv!J`>wE?v zMH-!W|8|5_-;I5dEu-eRSRpm9siZ{Yh!mT5E2T>{2`N4UZ%ko3quLgL&XEv!rC-NV z^0hBLb^iEI?;Sizwcp3~q~`b@xAySgp|04XuGqY2?`3P>y@5k}wtM7#Y!5Q3{h+pY znzsAnnn1vK_XvTJ#o1L@=c^l-_S4K3$DBeV0@h0Ti;nz{W_xN zZ6rqTW_uLr@}PZUZLtkEeIgdR32lPS>3-?Kh?0<&&Zi42K)5WxQZKoE{7poI+iBk>h`KJ02X<~SK}|8T1!{u}JnjGl%iR-@ zI%N)kY80Ktq1ZvmH-q?Mc5H_rNrt;mfsGymkA~JmTHgaWB`wlur0|QJecOl#du%5h zYQGsN4$?+IoYFuTktD)S09`K6NVZHSQHIEtb;Zmort~D9SSHBga1J81FfPNanoo4zr%jU$rT$7uKvCM*?;;w{qyJk!SDQEzkAJ|Z0~q`l2*Tqt=)U|Ylt4chpY2H zvG+k0cr@>y+p-q`-}RDh8H%m%%lJNe)^=XB`7 z?q?jdJ?Ps-q|Z-{1^~vPZQyYL5?cbOj`8BxP7sM69oQUcZce=-@rJ3ZSejVCLw1`a z4rkiri@BAn1z;>jDxQe#9)e&|Z+5-%7DxOpLs2nK@jQTFf{1a5pOZ8aILdRKZa-wr z<3^tcpC>>E9J8&E&u8(~KRU8Wp01O4;&=$A-@c!T0Mz@&6Wh9Q;n%bA@N56+|KvYD z{wM$BUpz^*-{JNoa(o9{dw6xbZI8i1M_;q|Q}%1$Ex0`18l!4?yx~+Nb5PQ>Jt3%(k^td_2Q=`-?y54Il6;PmAO5L=DY4Gt%L{f17It^=`p^JPPmU zHN}+-9yDSV`#VQ%a*lMoVzda5su~9v3cWK#i)5dXpxVWaEdb-l#yIW)j-TWU9lTKm zwAYW1?FKcIVf|7toshwHJ2OI~EYw)wi)!^oClsvD3p+%Ov)I_Nt?f=3NXJ(J1P7M&0E%g0`$xGUIMp;ni-&mJ0LR9* z!btXPWX2Ol#;QNolKg1bg9IrxXY>zl+`dw_)p!2O|L6bdH=n!m+_%5_8(+U>Pqw$+ zo!?vyS?}&CN|8GhAqcXL#}1Nwsdl&a zO#0gK;VSAgbtFi}uIr0JTVHpC1kv?#&XDN-UJn4mrVR!XU0Yrg05BX@)U^Vhc}@qA zUF{KREgwQlusZUzn6BVA?x3c3ytE!TmwiNzG3s(R@9o?1a*o$_QbR|8H_8E+1RqLw zHc{_;;oN!KB2WV4Xe<#Sy*>fZ+&Gxpof$QdG=6AhZzh1@FsYAZ%B%|iKQG4WSRZFfDA(d_$nqMFSY<+x# zS|n9lEY0J23!fPln3%B*YoxJ0W{Tmt$dNeWamQrc`vB?9O)%}T-MF`BckANIyHB70 z+TZ)%{?Cv9;s4|R^CXIVo9#*D_>j$`#p!o&1AOi6ANc^(`p{%I57`uf)LlsDwqF3m zXgzK9w655MJ~>52j27clRyM?N;lCXn6#0tUMj^6m^~iP&n2nv0DXQ1_^rl|#p#SDf zl-PY=r`6%#sy}w(?>5n1@G$bc)N`0NbDV10j5KwS0HJaKcv3X@zl$1X&_+ycVLe9-_eE&L*O{fmQRlMlsO;kq$s? zTa0??T6V-pd_Ft0X0LDk!DSFh6HA6$)-G%7@$Yy}trL?O6Xv*a*1ReKaHWsFO%rd8 zWG9Zrg^e~C1rx9VngGy3gTe}(f7TkahE>p1$F8#z`x*BhZ`NEQeH~L|rjDA4pweM4IV%Vw2rnfeY(oEMfFfQ>5h?J7Cm(!zeig+0riY z*xX|JMS>NN@VG&n+NxqFVP*4WF0v*Ht&5cYMBd}0-t;8sMLohzWrFeQwOjT>>`&Fi zFa3=do_X=#{I~z*xBuc_`(J$5o^1DRPr&ia7R20OqML8LKQ=jf+~q=T@2Z=nUCYNs zDEJTV>Ka9BoC~v=y%U8RyjoUZwIWS|RA=&V-+Q;V7N<*@$TmNMNzfrOg{55=BR)l= z8b1)-$AEXw@8}<|05~uW5Quty-!DN~RI*g!? z*XtvSjgrXS&F2e?5XCmw-?mTJo=r_jT+L>x!BT`?FBnyN^v@0W}H?I@4zvLjZuO@yk-y z=W_KjH-f2Hp{(3-%rwe?^+17ilxbfQI&TAr3INZ%Mf67^nqW@Z4iJ+4%Y5BDc8L*t zyCa^1g9D53{z>gM)mpVbyk3ylXudY3H2^?bp=~gNN3>S!1=TeIWi>V1C zyoQqxaWl4Fzl?%2kiQ@Zny9pF2+|1PH|5N2M3Q-h^GSnV5KDt?M7I-wHcA6&zp^EO za=G-`-6XXaVCqXQ0_MJxih5D!{L#_E{^^Z7Ru*IX((bu${NW$`S6`bSO~3lpCleC2 zJpo7Sx?I|C;f4xn^hXG6_ibk)(1+D9Y3p_NM_&GQyCzT0eko0E+A~x8T7ij!Y3yuv zU8G`Y=ORA1pW7kxaI5nCE-Uui2Q#$M+i&jXQ_?|F*KbItcHBL^_0u5s(BE%z^R zVyg*t)?-9;uq>nPuey0ptqN?#iP^{FUIyF2S@HX#{K(QR34``NSGB z#pRRUNTY0uBC$DMV~&zQHtOMc`ZnCi5aHt7;62*RJA}$|X*L4{14Nt5MfGv*i^CzJ z?SFl^M2cS87E<GY&Op|HeU7`gi!9fH0)2-Ot@ilei!lGF9a$06w=uWOTAx2s6pJUVP@Vd<8ip zMQwZnq+0V+ly=)GS>1%%AVEwFcofVc!VYm?37{m0L@IXx7sTFeecC1C0O_L=61MOW zknp4>-D%9bLkQS8N4AD)Ca=hvob;uRK z2>_QAp+PY*Z~Y6Ab+MT1{0;l~Wr4cqsuC!gqSIKcbA(8FCc`4eP8&{MY^z9mPd@j~;nXf}UbLU=9of^*Um~l$ z4Z#2H@Bh(%_57vt<8SZ0@b#bDfnPtj;J8ksTf6c>nJhdmd$9KHUbnUTqeB8gcupHY z(SO(82daz^R{$9j1KsOUY)#)pMuD5>XxBeh^ruLVt#}03wpmvTo%8XitOHz$mTBg| z8XkeEbw{1JlkLQ0yIVakj!skUCe%9P+6C$aGdIW7a%lFEK=sM{^NP zBq$2U8;($mT-H-D&*HhXU{vApnaiZiBTW8#g-Exzvt|9Lua?9kgnkXu_DurT$!#0( zGe88{7KQ4hWWj5eDw0}lhOqz`HC9IF0L{KpMDF0Zk9BZ`?-kyck$Fv49_ei^EqGp z=Mo&%>C#5uF|pAf$7t~_+nS6x-PFmV=&D|)(5C>^uA{|{$mjruzjqK^2BCFp3q%&I z8}_rFZSS5_ov;a=7#$Q^0NMK-bvo2$v=fYIeQ1;~Hicw0mG3JVSb`3law1QwJq?c) z0oJvTLuf;tP(L>=4{FyDlpiIb}Dkv(}6n z3A|Yu+YZy`0RXlS5^2%{Gfj1NnGVqZ6geE?r>OYG##NRCvtwQ7Jg)NR@VK(pkm?b{bjW z{b{LNyE9QAuiejDb?8)x4msVS$|F6e?W)ju(X;Zj5cl^AfvwK9pasBx(C{^~TG;m44={zh^&Z+s_?1qQ3ae`>e&* zhJBA8BtJ;6L`EbQOa};T+}2T8>#5`#y#lx}eI}W~#}gnINb~4%xUs!y8|OA~BO?`y zGim*P#+;(nt-hwYqtHR)v0aGn0-M~CKBu&}Z;5r9b_c+U1F2#m!rFyLBuXdY3D0B7 z8P~PyfSNHKHL?jSDUZQ%L|Nhyt=bJM5iKtF^O8i~R_Yuf7=yOa?-n=*6A~gx2H>a# ztXVH{qJ;ZKa8^%sqq}5lb0YF%dXm`PyC(pz)F!)Iwm3ckfC0QXxv+7E9B;t{h>I%k zo2tUIxox%_xscfarHU0uk{l^_*=9B#Z&*T$$->3&l|=lBPgUg5FXA*8ot#pkT1o)6 z5^f}|%q)Psb_fuiEpU8f&l5!aI2LsUCA4JA!D54`!E1vGvK1CV6g#a?^A5b`Vup18 zsSP_>=5~JECn{@U;JM7w{*@+*zL#JBr{C&7_nY6gpQG*P1{}S<82vVGpqJkAm$y9f zakcop)7R-}$?mnH`(E3z=>GR`HrdN&e7POGf`iK-wMXq*~@=oN1t;a+}L9AUM zl2b(3`tRy+Je?5+UzY$*U}Q8#c9;<}BeBD~2i7B)P=Avqj>Q_SkT@&bhWXM|_{APo zR;&{OV3=~oln8b2LkP=UbJ&3SX6=vCCe|=(0P$izw?6I6&W-eO+`4^e@2zAU$r*9<{UnTFw5iq_M1mesOwpIQi%nNwl&u497J}mO z$+4#4QJylMY^+Tj*j^?!SaOss0Bm5BqcgQkyr%pRmn&PMCb`U4Vy~M}7mPxL7zYg{ zUxoe3d>_Ii({ckQL70k&bmP$Xtb;nnMd=(5shUMu`9D;Kwyji>W6mY{Bs zLNQ`#dt}4Od0U)6Z}YaVn&_Zh$!e`c1Xtkq8Ojt-_qQzr zp~E)99@1S(cb3x=R03*gEti!3L?Jb2mkeu*abFHTJile*WeW<{OOiHas?r3#AXyV0 z;`arPV*-}DU<>0CAWLac!nrpi$%By5+W^rsO@LdJ6XrDb#d9c6Y5|aBt`BNgFlg;_ zcMY{{Mv-3!I5*#j>mKTm{}^@1zje(%<=dwo90iO``7-XYEAQm-AK8qRbpZLZz~~#> z)e4DuHR#?#Tb)ILG41f!^^FyP=jh}_!f4JzCNSz%f^N`*vq*)m_)Hgzz_50PxWsF$ z0EP?PYz4lTbraI~N`!#`5>Zfv8;dtS-?LQO?%xaiE=ybx&i!P+GEEaSQ7;|1=O6%- zsbeqc+1A#k?Or%%TRR)5v8f?XZGs2;hj#JYMg6;^pqZ}PwCbW0I3gYn&zcc@YOh6# zotE>Dx!$quynq_j5IHxC5fwcnlQI*-Jew90PZJzeE(nVo!I?(3W!1C0`wO+`HNC=m zs88;o?s)HLYV%7k*uC@5*b(4rax%4ToUbK7>+t+VfYR8Wp;-hLmj>TCIAQ19Iomrp zusUA=%)mHfKYDSgt{t`&a^Dkm{}2RutdY(;4;wHC03BK{!)xJq2PBMG65!|ryv{i7 zYq2Zwxs+g+%3do|UcNt5=G!>VimO47_GTXOv(8#B@Hz9^!g*qZ&<90-{@h`bf0a85~)D?+5eyNe79fZbv`w-dbX z$a4k>fNF(QBzje>!{Yu^4k-s1IezLJ+&wu`N_Jv>l zl5KB{?C@~k{`^n>R7MjQFYelBU$|oT03rk2)J44lm^3y$I`K3ZsrJdyflUCkBz|%L zGWCuwjEUEsKZ01bW#eX#+#sR{FsVe$AewAa)kkNue0^dRk;|C24t>gqpkfd!lnl*V z{l0Gt+a7Jm<@@S%--o0%(@^fE(#XhCmrxqOB!$18yNXx!!pWu!4vnKd0>V|C^9}1-b z@^Pq1c|EV|p(cp3J~kSUz=o!4y`buod7-F6vzo(jD(M@YM4JpzM-p zL^b^w#L5alG4QA`Ow4K|j6YKv=yLtUztdT#q1{;I-7l=-6*);8CwyFdUaP-ZG98X* zjRuxyV_N};sE6DI(4?z{T^NjT9uYO)yKV=YJ63(}7p)v`ncdstCun^d-lD8=0TEq> zx8_<47i>U^WxkKs zp5rK1IQ-hiJU*KmF^UO2PQ25*!gRvOoG;@8&rVt~Wj?ihMV9 z$u>|d(c3@bEGJ`LYg0=fM+KKRv*n5F}l1LNU>YNSWv!T!FzarF(m3sB@NsIhN@yfpbN3hG4no zu0E%q)_odKM34!Jn9acLvKARB;v6$dK z=u0q8jU}hvRH!#nVpF4xFaoJEVCjRP-zdYjJO*n%0KYhS%6dq<2kcZ@9)Nv50-(-x zRZIp>(6AIzh0Y@KRzoJ{I5;jbxKNy#uD$Mff`8whF74uEqHBw3cNG*0va(B@t|K@$ zkuT8ri`7wolpisRKs`#`iD<@L>RUHWhz2gw0wa#P1Kc&1{3K%zeLO z%Ub2d_)f1FhiP~+rHwrOi`O^3lQR@_GqGe5U1@UZX%TCRWTt!61M;<)T~-dHQ`E># z4i5o@cfkJciR6k>ljbsXdhoH?Hl%ox*>D2E01h^76u!ecD#Qgu;lBea>$O?%)9<2-UY86)dCq%xniOT zhHQUa%u0Q>RY_q|?B_T379OSONT~_-D=^9}QrsCL;6tRu;}L+%W~77cnXN6`-@j-3 zZ(Oz2_BpfNU48C{2ZweWi_7^thxYssaURH}nB-DLUq^mbwlzjg5?~mU8OM99dK)%v z3)z^d{nA*PP^A#ShzJvr@)D8g3ZH3|jTD6rX~lMw*_NT68_oFv+laN;!oiWC+b8qQ znkTM}dx#L5E!3geYfecRfcX1I3oMkSeQ7IF_Y?cgE0hIV4jL2b7t{!At!pgv4gB+4 zuitsqp1<^!PZdCZs=%>5{FC2a&vyBkY|&e^esA64_SBW8BTG6KxJ!vOEstz(aO*bf zq9Gq@&rzL9ovYK17>TH9%Ic5S{ocn-O48vDfbjOsn*zofpjR^rTr6#h`rZ_EzXCtY zGms{&l=;Q%k&Z>Ku!ADal5lJ;+3Dlwo`l!6SZ|5P=eb%ElVHS3;%1&7+cKKk5K&~5 zayCjO8?Yg2cYLh1K2m_k0Ti*DKl!okA);IyAKSApTv2+*Nc8aDzJPIz2!{mK040PT zfGSdZOYKr5I~9#v&+Q^nSJ$~dU;?C^gXAin zcqAUWbK1}%AeZ(g`qtIEf4cp`#b5cUvxB)X-hv7930D9No zxNdv*?jhnU74_waV&;e%tLY3WGKW+hTRuCMKVegO>lw{z1vZQ#;zU51E6|Q4@lZXV zpc7JB{0ooiA+iIIQd`Gpuyh+Qb-dsh<|i{9Pj4^;NVo3X>X#AdhX^u`^<2p<69s?rZi_o=kgfQ<7nG@ zhydFM~K+d;U>tP6YC+W zov<$5)>_a?5pQWAp|D5-BnMUQ%>zm1*$A&aM2-i`Z2+)ok&}doVl1_0W=?QnLFT!k z%Ujj@b?ny4l>H>%__O^VZ+~g`^MBVq1>2_r96uCb^mnqiinQO`tMGY&IqpUYF!B;P z;yT8v?kvQpMJ)8ZCUSwW183pH3T^h}=9|}%8qehV zLL2{MM2_`p4tA67F8~Lm%PRrnLb5**DXmLk#9?^gpqq`YbefM`2YqA{DKc5D2_Xu* z!>}g-QYs>$E?t__3S|);CNyPOy3;mNa~e7D^=SB-pk5Y(mF3Obv`$3bxOxr8@upq6 zblGl!7^1|8eZ*W`vdgJ$?`+s;v#)c(RJ3V)AM0)$ghcT!O3%_v=P*ZwDC!7x_whv(IBT5`|v7+-hK&^}cT~)V` z`op~++Fv>Ug-<*{e&WILQNVcC5Afr#d9QPO`tJZjBm$V`NU}kOu?q4XiI&6Ig4nf< zVxG%V9)?R?EhllzV5?tRb2?+PjO_&n3I*A@Ye4L6RVu z9-ja-YcZk05ZqGNiHC`YUWRiKdL24i9Mf6DOU_(HOu16r=(82TzNmc;N)!2j!Nm2I zGK-+Cng-cNk^?bnqL`f`=nTPPU#}+i^qotRw63C{)6vJw@EQOon~eLD^3~g zq4u`1iO6nA-6cx`wU}oKm>YMyVY!inQ;WreGg_3s1FZXfq^Qf%!8}|m0uwxkQF7S> zvy4)}68kYhdP`FcmIE3-2KB*WHPs1WPx`9Di95d|GRE!!ATOLpx{Lk7-)>JT+vfSe zXO>5`X4~`zeKGuZrz^WS+Cr+_x5Z$~_HcgA5BrK7ivo2~M2!`|b06p9O&o7U;N{p@ zfY@!Er|0n4e2Ih@wZ}RggYcQE4_louO{d-ENZ7Y?Iebmf2R$$4wDW!L$!~wVY@5ZNqu1`rU=F+hv4S=bkg@L~ar9I~|Xl2Ga z9S$sJS*v1Sck6SuqCkGN-k;q%KB?vyAqvZ~p~xbpp6r~F2pP{fckVonZw^-Y&`z)z zupjusrHcZ;>E0g5o{7#&q`^{=Y|GAcmxs5EMEaZ@&20j}q75XEH^UAT0H3t=o@Ti~ z#H~ww5LwM9o3=tU$WD|oif|bKC#e(7mZqsKyK8jK_3)W7ghTz%&g0z==MIurp2N@Q zY#-_M9KfD}KPuBXqW40&!2}Vhx`LvC9U<-CM;v;L5<`mjyxdC#?o*T>a*lG{p4bjf z$N`U$(+#H!TLDPt4I@4Fa(mn22}&#HQ+Cm~VeyI+uxWLM1KvnDLp!n0Uj*RaJF(mK zhN5Slti__T9~>?1Gn<9|3ic~wgosp{kz(rF2tUWIh1Stlz3!Bo#kH3(nK$6~Fa7zO z|JuIz>|grC0^}za9N#WtJlpN@mcN_M|whbAnX@Y z8;F;-?oz*2vJwGilmzqHMg)SBF13sV2uKtXlVK!F$=>6uKm92f-kV4hbIEL$ATcPz z;h?C5nmr;xNg?%8)>ygh%4!Q8i0i{ooa|L}*Jb=|kdTOXPhH{>HK#+f+V;%pZQS^R z`^)H%z}6ea0Hc`PgeL9LX@(4Hy{@;KA~A{0i#c8o$JO5ifSWo+7@Cq$$&hl7Kyt*< zQd+@#w{M~5cwRf)6fQ|&bQH_lD^ab}t<54V7Ku+KWREkRJ3u688l!+ZU)cy4=|og> zrNKEaY4w#3tlm0r6+nW$*%tr;L+nS&R!fvR5`uplYi^6P;*D`=0xi)DHA*`GI0D2q zRuy2pLgaaf_nkfsC5is821EoeBA+JdQm))SCZhY+c2CAZ6C zM20xOC$veU;RXA(5jFPl`m0%PJDZzU-aD4)y-)i%FzmS;$q_5APHc<8ElLnOPjA}o z*;JNphwQ{*xnWh>okeZeP`aSj^-E6;u~xX}rW0=dQPb)q4yz%LJy9fCYixs;izw@A zU;4qDe`vq>>|gmr0^}zW9NWX!-d~L|xTff}!c4vQv>)whdi+jP_r{B10=l&ymw6i( z*;88Bv;I{!tx`j#nI+8u>Oy2p%o-$9(#q>hho~!FzjoDThz<)}=(D2()DBUUr=tpi zA1N16h6GMqtUOw+oaJuM%*k?FG1ueOA>^vhsF9N3TS!8KvJ$r5@wpnOZ2tGq;%#1O zY%M5<*5Y*#$^bnAU@QE{OZII0a|kpEHHf89kJ!ljS%US#RXEPrh!CeIq?t zYt0V#tSFh;0v zE+*Ty1V97dZNM%dI%&7wp)>%Q5y>?t(wrB*cE%bh(tkt!QK2c%KkAIOwXGWD9e~Fr z9K`^COF@LK5V=RRR6}}w4^i8&hngYJAm>~+Jv+g*Fvj~|!0T;d;agD0nzJ80wV&eO zhd7oV4S(mASZiHQsM%Hk)fpB;rtF-&$P}6%ScYhvRl>{X#`gUA4g3E0msXGZ_D8rj za@w8YGkNo5VQ-cf)RojbJhlxiK%=-(4|^}TEqM!SBr=T|juVAdh&4Lt8Z(3Dr60fX zhxYl;eDVPD69I!(G$vh5c%pfZaT**oD8Xh7Rz#nR06ZyboFsBPzo~ zJ|TA3utC48Q<@V!kvm)?W5kWuA_}9Cg48TwW=-ot?!>>EYJp?-^HHHTI$})~H~kz@ zFC*w7Zgjd5H96p<@PYRfqsv*l3bUOXXIA?l8FX$n_@2@t)Ch+IuI* z65(9n=O1g_LM(&Z*~#3tQ9qn6j$~K1;D|zi=VX#smtNiO%e_{uF_Yf3w!_02qDc0y^rcyxFAMv@B(V`n4I9bIM%4<} zL8++ug3N3aJ3zg3goWaOpoGti%>W6n0f2IbXm!OpbLz$6gcArGEEI@(DM-JxJFz21 z^h5%J-pbkZ`Qee>1-t%lP|y7ylBa0pCS2xcnSXz z7NhA!U*}-hBQss7{>EE)XA||mHqk5^wiQxNRLXoe7BQ5^k%aIRw)X*|EmKf@4##TG zM0SiJM`pwz-6rcMh7rv@d#7B)|yg?VE zMyiJxgitmaYW7S@{)UFW_{S92+7>?7&5aT2)4=k*r5Bq~YFP38!Gc>fLzIii^x_Pu zexv9<4xew^wXnur78Prp1Gm(ih~omuMgp1T2B-JDoPFyDum0b!{o+^tSHEi?^X+2~ zj_u*AF9J~9^&@g2@y|+bKIDCB&oI{=>HUBd`)3AUb>9)Cu-hSDxcLDYO9D<3QaIk2 z6f*bwsUj<~)vsTB(|-Ju9|F`08vtQ)0OLyJ%gpAenXPj6JZI`qY3PK_G*C54wKhxU z(v-2h76ott49KF;NVSoHMI|622o7jKoA$$Fysx`6k|lG@w4Wmvc+>ghykLD+TX=n+ z9W5srIpw6@=gkfad?%TN!xL$fg^n9Wq0C5=3@mE`a$+zMbL|WfQp?`JyGm9|l^(do z>P`2^gzP;BT=j6%XW7V>RilWBecepoCDXyz=Jt+AuIb6K*UxBb%f9T;rWvox2~5Aa zFvP0g61@o!ebfPyqF7&tO#SmvYKY3((`^D1Nh{V7YA>1iv@A|91o_d@Pca3_lGqTB z-xv=qSt6aC9@;J1*y7w%$7%GvWa$z>`XI499^VfDVL3Y@X4DjTRHszIrx zjn7$`_~(}M10ey&KJA7i9j+0)_8~y?nP)deL?L!Xy;G@-MTlG@n&on#ru+*vY=V4` zQN9*RcRV6Y#z9o?GOq6T{&_G{pd*vYEUlA_BJ`Sp-Mq8^-Iu@je|Y_?U;jV8Vjtt} zV-1dBLg4q_^4qsGseCvf=_SXvf3LS=tkMijd> z9)Z06`s;S>>NS8OM+wxnIzF();XVkMJ?Z`gN=Vb_O~|>P>;q<77)=#OSVgQ=`cm3TIYxzqzo{EoljW`~LCL_ACfpIo?7I*?7(XuQ#RL8f&bL z8VYpGj370)y9slJ{JUQX?xLOqiH~Gj7UucjTn&fY_A9^o>sZ|8-&@{#`76WAA78`V zk1aT^N2h8+-~%5KzQ0d!Y~O3D{+5^N9JbHMdw%vYk%ZSX6yF*5FwJ9tl?kMr$)-bf z(+#M{4R+(kb-R7zriRcX+yp4@*&IdkgFAN+`OH--W2DH@oQyIW+;qITIbVd}Mt2+r zU#tf7Wh(U z8_y!5wgHG44TK5@)ylmZZ1!M?j5HE3(uAQPkm5!^M*4a(KT^7vnp?ZEdnf899-5D? z)$lE{{)qBeFC`P+DxG)7q^fl^FDN(SsDjeP(pwyVI-5#_uPKYusb+y|9xB0Qw)7Sx z?DsLieh>|9h&1`q2I`8NBP*Aw9pf5Vj6*8U$KrfUmzn(l1&QuzUP%joL zQRD#F7UB4ui|=ID>htGq18jEMNw}ziZ3uL!7B0li_Je!J_OEBiL>QssZK7&n&tBTG z*JmeK>>9g>Mexez7-gJNqId6>iZw%9lC97=)tP+w-Q?F4S@bsiUW$jtGYQsp2czM3 z-PSKJZ~ehnhnIijntcqnk0m&A7*+trEA}zm90WUp#ko3eXMyoS+DArCxtw59T|BH4 zF`vjMFhN&o{iRxreb;hH6`!+qE%VJ-X?ND2bK{N;;kxnaO zWIA3|ZZ9SoP$n~1F|SP%+5&ymXVH8x?5Q4=C6UrCdy;3Qvhqq| zH^5*Wvyy%?v_0y8{U%{_$BlrNWYKz(VJ~A%&q6KGU4=T?DNiLw9}GsBjmDeO@{K`Y z^hcXE0?-^D9^(B`dn0RIES2VQzk}(RlR;bzDxYj9nw*45%~7PsIyX$W>$tV9LDL6d zM?M~aDQy^R#qW$HNn&tpK@_VQ-aSU#}Zd1g0OCpMaJ{!A@H z|40Z22(ZD|)0P7b1 zzS(E=j7o0S+S5q)F9RGUWr|!?5Q1&LhAmj`#oY|@==1~R-(oq3TXz8j-;{91lPgtI zelLt%_}C5Y`j|$J$v1IwublmjGsWTGXQHwXI;nP$bFxKH*w$y>IeEZi#p#)=s6!YO zQddfLbWudk#Hvp^j5+8NCDesr8tM6Cq|tNK6jQAHbC53e@>oNej`j}i@MsEP1lR$b z=#&#tm`yYUFiP^nG_#^BG))*hf@33@o8+3Co3^!5BLW2VeyR(ZlPKIuMw8}glxm7W z72ee=`3WRscQf8t0}&jiPM=ET2c2%3#^<>-fv{oulE<7V@`!EFPZTN3NEN`iLJCI% zjjC``h`T};?E#|TzMRctrI>vH#fU%#_BLOQWE30Y#I5EzZobeR6K-4{XF>CXWQbji zwD`;r74eLe7P@rwk%b$Xx<>q54#0r3=a_@CSg%ABT2XVjTnS_tk@8Ad0(hq?hoD@- z{a}mV@v$tyQVlNyvt7Z808AIIik=Wi0X58s#dZ`*DVeRQV1&g)rScSalj&0{19FktJ5 zfRVRO~gQvNRid zbQXt{N-jCLSyGoJbsMANK5BgfjwsEX`4+gQ9#z!gCS&T#I@;m>ZCR<+hzKbzKRCE6 z_I12_Ns(hjcNvmRcwL(2iU^@Er{K>dr?xi4yxSb)4nTbYK&z4FGiD>Z-RiT8MUXT|V|m^Q+GNBx z5fL5(aN1p@(;(t#AlwI$wO|NGZ_IdPs1n*97SEkQCW2%IGD^~)35RBL&NQ!e0Oh%h zcJKIxox67n=V4(R{Vio8)Riv5FfZ|$EV919T<$=18W!Y4C4`K1Vnp6Y_)LF{KOZ0i z!AbRga%2NNyzd*+H!a3~d|_i?zwry7w~f?+v8x*M}E<$@KFt+xy_S$Dc z{&%u3A@J{f7w`XL`0GPoE^?P{3rw}X_*$u3aOoi~=^3ewBvLf8#EtaBAN<&60EPtV z;?bMeteNfu7*{r(7XZc+WMq+CS5SmQq%c+uj12DP1Su!LW)89@7>22fM(L`^gGNlP zr}W*$OAX#q(UZ;&`>@T^fA;V=(bHYzxR9$@k)bZ_oJ@KnB8i&A6wwQ#rVQyl`;}!j zK~oDvECjitUVx-c5TI;YHrZB9l)ymH_F9%llcVtjK(uA$(J{&gH*9fqSBu68N(ys; z&c^oB0KrXZJSC*3AQ^yH;8-&08VBM`dw9LPazkLIf{a3Q`d_j>>i4(+l(H!TB&9=4 zNlStvj%Ov{MI8~x(`-!an2P}3bIh4IC)csv;vU)g1fRhO z$3HqgvN>IP<~7)6nu0LzuRNRvn6bI&M!vEgkUPg9Y7PmGTbpJ(eW&x)oyW)bZ9cgG z(&dizPu@UuwrBO$7z@)t3rGX{zuOW;BxrYR+zYD4#o&!O?4 zp!Er8UUz37ep7#I@9KZ^$LC-8AO4&u#A?3WGV+VECUf3fX#cmWjU99X!Km38M0E{haV*9sVM~(4NI<~xM?BH-}3ox%t z^^$C?*0TsVG}{TckUov@S`>y;14%HdaHCOn(T0hD1h7P`Y~|X%$TeuH{zEiYlu3#1b51%wbcC_DqiD2gP*+I!s50D&MtoEMF=T zB!~?0I(lu4UO7xdiglDUN_rcvhzTM7wqoKIch{L+DEj$=N-!n0(DN#;WO zK8|Nc9)_mpEOic8f^ag5i;pM?=~OEX$dViepZhiziUmp{)GYQ{Tkgs-Jn^a5{0_5; z{d>I35o(j=CcyCm7Qu1qb6zM6MGepv9ILu%hr{!>wYY0JN-d>CotfGkPq-km9Kh88 zi%E*QZBIEv?biZ6!xMbn;`#pKFPZJ{dDKWl5=6ttSj@f%66~*?+pxd>x#v-T%tTzd zv8`8hStg+dcWtnwi$2n|-iD}L3m3~Nv8Ufr>#df&{&k&cVQYijE3n#8`<=t9|M<0? zkI78zj|Di2fN6@CafYwFlgGa&f5xy<`5T@F|Brf)_95Y^ivDl;-F^DU_3t8m<(%`( zT3Q>V53w`CyxdLzj6b>h2AF81Uh_jczWuu8h%^cm@ukO`t!!B`x=ck1#E6bq?-R=$ z<2AuZ&kmP1qpXMHQWY(54)anSF9XyR-Dl4`K1k50Lom45wgDgsau$61n7S4$mA17A z8-k7#HRkD1<=|hF1WGa&ZYQma#hE(O83zE>@9nrn8wJ1|@&(2{&lfnZncaKy1OR#2 zHg+!r@3T}9F2}&mQQISVlJrKwkI~1_=J`^u!AOQ}d!_8n5H*sSX2hGfh+b>;8r!-Q zkjS}6-jYUMWGKtC40Sa+{mi+bRCp}}TQz_&XXJ=|Um%@6p=cZDiM$9sGg%MLg7ujI zHVIlkM%Ix#`|y0yfxV%3rgt9$SeG_LEwU{UiKY`xC=O27`Gn6p54h6rLR%9>Ji+7+VS=*ZJ(PpQ2VMz&+CJha-tZ35}JBu#! zT5}P3q9S{vuACI)MGrSQQ%qWFF^cqdMX!5Ovc&W?Tc$P#`I6x=^SxVkjGAK7LpqH} zF~#%e^CfDoSR7V!Fup6L`Z#K}2a52~SlL#?zNmGSpT=y4_shkyBF4jWS1vDXNLXZ= zaL6bw3ogDq|3kLw5j3e$WQ{VTdF=q~Gsqn*2s54^Eh;z`>~H_*$fE5{-86aS=adY$ zraqFeNcw6cY=Z}9*Cr})Il|mgT8N!aLnfifNta*aPTXTe#A6&S*kJ+V79z@-N9S6V zMx=YG=R_F+3(`S7^%4O7dQy=E0au7*8^Pc=B+y_nYBbDY;?(dCj zXBmaF>nQenf!f>*1R+aB@`X&)XsG9q0Mk5d*F!LixDrPb;=xC5Qt^?4qgn%-kH$>m zEby(%DAq-b?IWMljYGA-K!;gbfq)64G^@tPht^Hduea(Q=0!9EFur*U9jAyEvhV1m2g6(t5HXBVJDFLph;|+>M3-o?MI)CnYp*r|~wzI&~)3f{}yV zd-y4^k8%`<6o#r~=LezroL|cBOYhUhbC<{pN<@_z&SMYP8BJ_2>}=Q_M5)xs#u_-* zilrw&vnIX7&oi9!&s~1bp2z#N(b)d<*-JK>rS`>*zCDjc906Jo&mXO}W zcvmXT$geS+&)WO#S#!mCEZI&;f{2SENipp2kZ$jFm?gx>G7ve^y)w!ct4Ed_*IOHX z<4=F``>+4X=l5`U1dc4b+j698LV7Hc@1YCrcIty6(&!1+xmKJ1g0X zaS(lrG%TmJe-XNN!h9C-mFz!8>NVMnR5Ea#-B2|zW_E%jM!A9f;OjFjKBhxC*j3gp z83oFkjQdMBovf#Hl_h~loj-YS=4r&jQxwi{vCl|y5UV>!K{FkG*msPGi4h$4CyiXL z!;(P(kS7kYEiy%fSSs?5#PpLHj{EM0J>;2L;QZ217w3JBv`ULsba@}y4A<8TR}H~D6T57x8}i)c0P-oa00AH}i(kNN z{usygxk+Z9iE{hGD7MRB=F>PV_ylui74az$Ms^O-RvsB}xj!36DL^p{dlrEg#5lzIyfL-}}l7A6*B{M+=S=dbiQGeGuDQ z8I!1e^i$r_2~)3*9i0|^uMW3gD+9);Wo2e#U~ zXZNoC$nwK`AROlE{y03D`V3{h7bPcjQK6iIX*qR+)T-rk+}IT!j}(w~Mqac6Kkp4@ ztx&Cr7JhDAOBn~jwM5%>FuGub5W5eeM#Hw=Ric^1iTBg8XPGx8!LhSaQ{YqkeLFwi zL+JputmOa^??ml~l+h6UikxkH3jw?LP&ab&W<9m>!ku*%)4l%CCL3Fl`S5-6Wvli; z)w39(F*+gYvZopVLyyant%G60A)SX<(^Ox&Ip{E;A+l!Gu%Edd+!25=x_I7p&z-XYff>jBi{r6v;(hwq=Zo10<;T9< zd{`%R8#41ipzUgdJ}FbAqw0@=jB3MBIQCz&6oJ?1VWG;{DHImtItuksNxrZzc&`SF zInOdtvIKt6hF*Z=K|B)CIs3 zB0K*|mCCn?GrA0sqL{36y)GN*Ov@b{@4@sK$Hwssi*#iJ3ew4_vp<_fr6%!~NZxRC z=4M2cdb?pQVR#=kz_D%Y?0^L5Yf>T^-vWd|u^Pzng{1-#C~PaN3AQ0CjgdY#0Ia5) z`h_%I={9$;X*7Y4<4r|KBm)slow1faM;v<$LWe0~BM-Ng2(OaqDBg?p%L?_$Oz(w# zQvH~7U@|L_O3%mJw&3Ve4GUYioT>D&3>l?CrITTd-_eBVzvol$u>?D9qlxU+Y!~Rrx!6gq;aYPLbjuu{BLJ1-F_@AMb~hvpS3nGqV(TBx zG8*jT9o+I;pS^;`i|<(~Ti=c{l{Rvo-*HcqB>C~uG?@D7ZH67{?m-8YR*Lq6b;&&M$2hNb; z#aI^3QnMeJL`-+BshpmAPb@)2`DRf^;rwc^|zEmrZ{y)t~_+eapH(Z zxa=EmC=KE$Q3;Y`iRc^kUYkcf*hRV8VBbqDM2u*1yzdS__qz7^IdP`Qr#IQQBU++y zel^ZvPkqoH;d6oFXTg$$X85o)AeSI^s+0~2OyyaNlu9OYEhEu^t~m1()i*&&doxze z$dS^YQcc^9=4eSKyY zkrP)X&ND}?#!U5V7aYmNxIH6k^RjHHFh%Q*mqe$pQk_x9P`TqhuUgvTae1KWN$r() zUFUTGM)!t{Gy)_#b6+Ep|HdEv==cB8U;c%^`HFqW+lLO0LC^Tj#}Y9Hmh1Gz*S~zw zJKN*fPV0D$M_?pJDjJ_Koo?4t0=;$@SZiE?9A$9t&TYGU{Y}e{4(#OiOYQK{!=Q_^n6p;VRZ-+B?hi&BMY;(#I~TCh?=j^K+T&P&%F|AD z#(2w@_A7E*E>Ecw874TGm)_y%wltDxFiP|kJ@cE8q(+#Cs94$aLOq}9vB|eDM3Z#7 z;CBLUkt=PKrZNh8%E-dp5$~%W<2WW;TQX^78G>VHNt8r#w?SGMIrt91qV@)vT&#_Q z#psFM&Tv?fG?BcYhr(AA|9wJi2VC)9guh zL)LmlNmAR2`QO{zvJ!Q;O_Vz{+nPx>K`!Iqt&xFeN1Za2j*vjZg^Mkm?rE4Rdv16R z$nM58%(W1P`DfxnZH7vzn_5oTxLJq4uiWf%frDH0IETS&l=v*NmSj<>QU^;ov?PnL z=tlb^+ddB_8~d|~-)+z(4bkxrasEzrpE5&qPBU9}cjx%bPxv^z-%g){yzn+^H?5R* z%c!UJ8awZ-T5YCL7vx#jL+zh?t7A=q@Pi8uqvB4s<0YHcyJ|z*VHAKlm=UT*do~DR zFo1~tdsnZ1?}ZOr-t*x{jsnIHQMU6Ax3`NJyUjZRd?ckDkqMA>=!dR7YKlUEUmw06 zk5n3~`QDA2cK610o9|P&dtl3xeX+{|w`HN%VI4+MABE3NCzGh8AtWoz8izN1#Od&WNudi8XfjZ!+5wzmw>~=fgT;zP+i@rMYrFo-dX;=yy5P>x~mXXi9*F zjJ(N)1AqtYya_r|mI&lO7sggFsuKXR?kiu8G*}Xai_A17%+qe^@&S^wBR9d7hI6S= zyD1`crMe_d#LDCAcxvYWvID#aVYb9#`zEfJtI3A7pLy2aKvr@NHA-p`m#zCRa`p_* zADaf1%V`(MK z_4SIE_t5wj#wlIBeH>^{LskM23-1m{UON2QPQpx=KvGG+S9_{%Cee2s%0&|ZQ$O?JVFV0vCRC(w&Xi1T`_4V^?aG#ewPMM6 zD#Tnxgwg%%o@6|+6scu4?%OURoxx~qCvqt|!eSF{RY{p5 z+c`HF0Rx9m?JApI?KG2Jyu3rel9@XS$DZ0W1WCr0jS zL|IfHsk9=!nq>=LC@H$8+=%{))S~thKko!CHO>SFCP{Qe`PMS6rE^e|68uY#AX%gA z``A?*CJv5;ROkrxLiZ1;HaZJQp-_ho6lapt+06R5u9iDvyS}+=E4<&e-HQM{d>|Ju z*c4gDZM@GAk6++CpQFr&gWJ?v7%6&;!+@+rwQO7mjaMCgaF&JlbD*~{g4ercS|?mc zu>z}ul#2pn!M*j z1IN>J`s2O59b3(+A57DC) z-$yz?m+Cl?omk`D4(`j?u3PI|)SIjY>=x2-b@5QJ9Hu5_DP6EfvMh^8T7&`b8E(GG zD3;JzfXw=98D>`ZI0J_cJRQM<)R=>_0FJa+MdL~yP#(d>cb7M4` zcCckzY4ECKKX>UaF!RGHqUy@k>^iPUz|L+WX+djt&>%8gmeSx+NxG013j4JCWObxsJBH`#(gYjq6i2 zLKpk8IG)+nE6-RCa0fMQ4ayeA*)*FIyNvhW#7pi1xCX3k%X=}m6_aT!7zOs3K+ey8 z5&Sp_Ua5JDAm5L%YqX9Y{qM>!0ywg4(I}p^v$G%l2(Lg7Y> zV;x?vlJ9E#&6lr!@4H|9kkac9FLL~trql0aQw=243d6T>15FS1 z?e^V!wtw?YyM66Pw)f^W5HGmN5xo$s3JQspeRxBEmh}a!tWPq6id4F+6?s%(K)Yf! z*=~*wa3fmtbhpkW4p%~)M4@I^DO#%4G~=B*McahS&Ql+D*qqi#!zhC;#g2SZpIW^* zM2aaJgCjg{6Tq@LO3lrL{1uyK5m;y^RcT%za;QI)aGU?;v_KLWWKCILRaZ^Y7un)2 z{eJWDm>5|%B%Ugtd$YBD-gcjP!N$Aim3BK>-fFPclr`6iQTkFK(d&C@fTK%!i8D%+ z=OPDA@qNVLXZm-BdSZ=eow`%9s|_8^ac&FEsKzmK{xluHvCs_KHVgvue&Akkr=d3_ z2Wll@y5yKrq2)@3u*ISX5;5{=7{tKP_*_=3r{ipWC%x-yABl*y8Akj2-fg zB13}YG?b01$a}+C^K}9$QFb9wzj;(Aa;>RDsoy;=*Nij8;8H-KJVBAS_rxd|umI{x z$J;tc{>@GqpK#yl_}xv4bAH+?+D`NKLrbqe6ma~wrqd6K5+4>d`oO8it*}C^ks!m! zjLya^lI!Eg&-d=#wY^(6G!<}maMuoQ-Lf3%Q?+sjY1awX9^vuE18}hQi~2p08gd2C z^}Z$QajnJ}gb0rNoy5V-WD!OfBm%Iq=B(mYG8e7Vjk*makme1nqIc|Gl3o__sf3;< z#UUo}YP!EwC5GDjUo+`D8Fd|jInVJvTkLY%NHqgFR?(;yE6gachX^y(%$HP=0wao2 zK7W}slMUrHBzxFRQTtpPMZaxmw*#pXA^j!53;{M9+q;PN2JSpf!v~%sfW^td9`*bkni1A4m#?iRxL8J$%XUw%j2>A za51&s@nY=d z7N0cet&^>eiz056NvLg2X!XW<-(y+p2^`t|VrHGXR1*p7+<_Na5WBIGuC5vTwWv&9 z`pMR7;cU-r%CG&)AOHWp_E$guAAjKPJs&tYew@?kcS6Ff$%-cQkOp8>y|E0Qfw5O; zm=Ycz9NHez=;Na!M2T}d0zj6!P@O$yD#jGIyRf7oV_}-E(MhcIxi0321X}?H}j`B zymkU#pC(2tA`}`~bLM)$q^WNaZ}nv-6w&nR;=tdih9H4 z9$xs38g5vhgvd^o1oc*sEQ5g)JT%iqgjaHo4pQWk>Bp8L8>zLj-6v>lOqtZmy&^K~~kH%Rsdjh+2D7AWO)56M*9Y#yOW>`;e;`X;+z54PiAGA39Lx>#9 zzi%O(j?PpUJ}H|^cf2s{)Aa)D+nTxvqEMvgjZU%fjBYwi(NHsEt!#F3ECX8BooJ(9 z$_*h7{mbU=$^_kNrLhTQR@oNFo2p@*%{-EnpqBz)TJ4*s_%YqU*>+bu5mIV@qP6)c z6}|*x2OL{l)a!jCXGGm*%7Sh)l*uE<1l~aEFp0a0kVi6QX!T>dN?kZ-C@bxwW|77d zWM2?9N!s_jWs%=tLRa{^$au$yh0$1^a_dFl}~S!(>gq=OF_@5$zl6f)}HW<$lU~(!H=2wyTxAVOz)*qp^+TcB@sXRP5(K!yDBr@ILqS9M% zdLS1uS#e1Fr(AiX?=qe&7*VjsNS2z{429tYNPr`ad-^ELY*g&r$pzG!anp+xe6~I8 z2ir$kTA{oMFaO*CwZ_Rr%(?_JiT6npe2U1)7=E_wTxWY_UN2RKVCuY$^G`!L?q}J0 zDzDnKz|M_DB=V*qMv>SY1RHy}Y4ygQbE*K;c@#3WEV%TrCflPaMeEK*k_|cBdwC%0 zqUN9%=5;2cEtpQ}#vHabgL!0S;Cj9ou-07qU& zWyekjcWu_bIM1Y_cOj!Z{7j&1RI8)sU?BkYl4L1hNK!A%(^@uC?WXoiLx{}6QmvN3 z3^yK!MMaFrV%MJ4k?Rcea;4F&^6JyRn6sn20NH=+5;O1Kslws$KaCf{lh{r*X04~j zz97`65B5WK&7_z}2UMPm*}}=1NS%7MfH`Z2Dm5^5l@^$Oi3CLwLpTow#poh=x)~%6 z?j#))L1@ea2$Ja(=_$?*Mdv8wNBtcfH*Z`-C>4wSebwU>KSf@fDtNAi+=(p4reJqh z^lgXx$p6Bu^z{B$R(^~dQ0%meTW!|EK(*trqpSp&xSW_ z1!Ss8ETae;;TQ-;lwDC{Nk*S-o=Oo3OjsCbbgP-!sn>{Ahh?<5JMk4P4Ywsl?P|Gf z^;#*<56;^Nz&HSN-9v_vwku71r9zV?y0u0MC9ZSDwXvXyEq>g_zKvX9>S-`vKlV}( z=@Mq^1U}Y2Ib>^quX8xYahiJ1y3TLn-jN*z!*)vZHcdu=jIc{vh-ho@3wGKdSzwG9 zx_N{4mr*V2M5UuRKCRtbCl>My<}~<}{OlWlboJ$b^p{`w>MQmEZ67Q+ zHs#Cj$$Rlb*d8;A2=Zm7LSS8bSy(z>Qm=~bc#BUX!StQ)_TFuYQ~^K!970FWut zvZxbHS0W=dsL0$X*3D&WuPw&Gy@wJvvcpKBM~D_FsVL1mKB7Rx*To#CK zn$N74_auIfQjfGG-C%bJBOz+@)Vf!T^y%1X&ehi7FSTLjk^_WMUo0Bg(X1JIS0Tx0!f8X74^=(&5!Senc5-p&wQ>5K_nK7 zl1kIb_fdW@8HNul$XR4Y5ji=->48xrjUdlmpWv0F^n&OvjZ3*9B^>-EQMgCqJ<58> zzBA(VJQ%gr+8u_1l~^58pvc@%WWkzpIkoM2X3ya@pT+TxxDYY8p>CF)Qh^BTvJKU* zLq^EbLqF$S^eJkpw1C6;r;s0Ij7ELbnYU50=33>NapX~B?1s>>t!L4MqIk$weDloH z2Ye}}OdCdzuh<8)ePG}iNSG_{q^|dv-`U>x*1GPm4O%Xx)WJH7wW+FdGDff&Y~rZ| zC+Sjf<_aCK=L@-vaL`muXB)1%rE3jcPiWSL=rD=A@0L=SUglDVs&PYzK0O>`zbG^_ zn9sn4waQ%v#2Zz5vZe`(FOQfpuQEXC==m?~E0Gu6d3KW+Fh4 zRwKo$8=Bf;k%>7^dkbJP0=dH3(OuuVv;G9(qGj|L$+C;>oCVWq0yqgQ))0qdTd|iI z(O^12M6dEm9T&Z(_ZBpQ<8q!B%}qA3NVLe0nNBXVnO*yA+7 zIRLp)e>1P4qH+zVrW`hY0vY)$1E5O{7sRcRYajU;r=deiGhkvDiuW?_C?WYmQw*fr z?2e(lD(mLMsQ;bgAxh1$iE%!erZTEzdYv~xN)*%5scF5aG|)yEY{6LU?j^&w`+>5S9lzyccrd(L@y-) zHc_-GyQZcHuH3EK&143f_GARQ;>FEXH5n_yloJh&9mvuuQfn2FvR#m^TFb&C01c_) z3XWWw_Z2T8>i^`WV16+NeD&2g3X(Zf5T^7j4UHPyI?xng1_5_h0`g8EM^Eib8mYEQ z56LWyhh+rSqyJ*mO>p!UK0dcBkjB;nTMd^so6S+1U25@3(xFNSsu4DshKZHP`4-sm z1zG4g*BF3YAd(4m)af&KKT8rRtY1$Nvi%UrBF zAwhS^h;h>Q4@iRdz)Vp=&peh=9!?+@j!2qK*~T z(~455?uzWFc|n?`_fn~Js+6b21;}1$+IlexRC>cc;Q+u*K%i8v)ybMwWDB7*m2ncJ zJr2sOYid3+0g3H(DdUA)QJAmpk)oF})EpTQF&d>zM&>vKxY!ezE_#f+)Fq_coguCT z>7BHZd=2_9;x*X1NPu+az6@T5jou>)t(4066g{=_J#51W2Kqs^lUSm60s-r@%SB@| z00HZZ^8))1pk!T)=a=JV83ob0tz1>Axhld7qaZYAn$~L01UbfOo=L26wiei0xy$h1 zX{!{QQv|v2kbqYKfd@>fR#i%NlW3Mss|ddUFcOqodP4%J>8CiNt`FA%fr}rtMoE}= zi^O4diNZ;2L(64_&#D1Y;^BIzFS6^U7yE1%T^gCjDA;%m!n)9W9-H|Hg;w)tXlStt zAm%mc9$te(y{=#Vq5bn-W0%iu+GkOcIIq|AHbX|CJNPi40;zNXPkIV<(hb_Z;d_Q- z>q$EsyYX6MT|2$br^>nk7%4@fVFlgES1e})!&`M^G4hNo%u;GpMxwV9^|BPJEpWaE z_`IX(zNN^v#<(CS9Kbf-P&&@}I;{lsa@q}sE@up2qG)>++c)sTx9l-*j~yI462?A) z?a_6_pMCt#{46vH2A`oXnZ!eh8?|N;y^Vu_m0KiD8O;?~{3lSY7ISq=(3g>LQ-xtv zE>CI2>}ty1u&?^!s`6fCxg)byn7D%u(@EX9fymP88Fj^JCth;Y_n4j%$mo1SP)y{_ znCQk<&901O@KV-i>WD0n0Rd!a8cbA^wUL0A*y`|DJCkzjF-g!NvQ3dA8vtmG^f-1k zUa#yX1KT97LJOk5IEC+}W_MQtb_%iUCX84hu*U-}EHwv%G5WyGumTg!QK;;!VE2!4 z^eA>>*}6!*u~14-aN>%BSZ!}iU2C16Ds*OOge{`;u1ifBLF_}HT+-Ysvg_mLSpZzF ziUYb>6C7hFA?R_*Rzp>bDF(;tKsJ|T$rRT>O_C*ylIT)?%_l4A2kFDOV$=_5PgXEG z+#GmHO&`bDeLPhFc1eI)6u=P+P>t*6ke?SNIUt)7PASYAnH|$OgXR+gB1D4Q<+0uS z>7Uu1gPV3|dt!gOyJcT}_Oku;i|1^U=EKY~aD1Bp$#eJ|wmCAk@dks0(kOg(y~HE^ zHgX#?E;S|D?Iv`skYHpcfX{G&-)n|V>t!JBI_ICe`E93l4NU{)B5yXLw!M)JHX8*O z`N5vej`n3BvbB9qlPaVB1d-&}7q%dKkArSh@gt(gKe+YscYovZ<2A;8{E_1)phfUu zTN}i6RNatkjdKqn}svdUt*7d2iiEOP)0mgZFv zB1Y*38Krq$hY?-pkke_9nbB3Dwj&}XI!(XDf|}`ONyif#Z*AEKkqpyjG3dNtrBySr zk&Ie79)gixr&jQCTO{CS0~%8-%^G3n4Qsk|631&SYS#Y%Vxtl5V{MT1#FmP{a8V`} zgIbYRBneZl(nJ*qpR)0K1|v`n6-!)iNnk8BfZo>R4F#x%Rd%{oB_Kv_zIG?C16iu9K)f!&s*oXu@7N|g7cJd9Z_N-OiP~j!reT5C1a0_$!r#G5f7Kr2_E^EOJ$&`cxZYl}_q07M z6^`EiDbc%+80~G|$qC<6*B$*nazV0U0M*M1pP^zd^j#rJEIC;(_lbG4*;GT2YEBzu z`&$Fny2+JljYdN`=a8L^WciP1K&);r)KpT{dBkRmxasE6c;7I|p5<~WkYJQK=p{D6 zje;NkcXgdT}WEh2XUcb=zg@09Iqc z;S`4|>gEq7<^#vP&)Y%KTQ_r&PO->KT~Cd-403@Y`##`zM&NxAZo5xeg~eqFfLtvQ zWK2(_AMWAb!wUq-%id`uX;CC8RU?+Ee(|4Q{pTn#3@_-;G_9vx9k8$nQv&cfmzhM#atVeKg=}`i6!V!y zWD5b92_r}pyyL94{*b-Ko-UDTWsQ!jA5%*9)OHRyj`N{Wzd1cM1Vl!u>N2DDaWt^W zpeL7W_94^hI!Ba1JsxX2tOu%H&}x)@sEs0YHGsIkz(+&dMJ_#JS$aLU4q|dGT5O?9T{B5{qoNM(G)=o^H(Rx6MjD5}{YdB( zPPbmS6FfF`3Jxo;ntb;+U1M)Hmtk?x{7 zv`H}URfI)(48W-eqGduu*SJ7xg_|7V)*@pK*Ij?=+O>xS!jVMNtu3)DM`e9FPrCI5 zg@DM3hphzTp^3W609l0!mYL-L^Q2!Fb!m_m=U^p)aXv?UQ^4-l5_DH^Z|&q zd?nM0b;w3Hy;6R2qAV2y?GqHWL=8rGKGM#ORHc)rPwv>$s1Hs6ns*W5ISb}>W9=8s zkJCo4Nt54Br<$;>a#?_c8_21hL%!5s&c$rV{Rfbk_xqQ#R_3)AcFyVg>IKHU4ykUZ zS#3gNLlmx2{Vk?AK5?OV;slF3CpD6=c^hh?qBLLArx1pP-@G9qX`(QuHByB@d^1Z< za;C4H*!11dy}(J3qg_P1lXI4z>|>#vYUWXX`-bKZC6{ph40hyi$?^b&`Ek;|`0}kk zc=4;3f8!N<4BO)a$H>0<_78Zk;MScoTZd5hrO}TGGozp^?Zz8)WJve7Hbh+Ng>79c zW_4#5g%1ih&&mEh&4WqUTZ?EyGoBOC%PQJyBA<5I-F6(jBDWdi+!0=1v>-DR05l;D zWs1!DWaZ=eRR83KT$PAWBaR&CDPq#>nS?V}3f1v+p>?OJU2B1L!$yHzVYz0VxtW8b zQokldk|9uTl3KN$mZMBr(^a!SP6@=6KSicGC~M@)n}aTwOkPY{64sEk%ljWg3zc>Jk zjB{5a!ObqXY=_yzs&W>LLh!aYy;x&cDzHs6nxbSw%`2}%wm-`Kr}f#`M#2v@MVue@ zrDvKy4PdVtvCvV#-&&5`sXOnO`Iyv3Z2@{O{+;P`5sYj#3ygL5!b>MgrxQ<`T{h+A z3N-++>Ogip;M+ce?Q~AdV?fCOjM3Tlr8dY0Vpn)ots4}y zPD2Xxs2O8AoufX&LF!pxP`x$3R(i`;K{d+Y^_Fx#0hrJ=Mq0Dhr8%81pN39V&RSM- z&2H3LBiC-$IwOy++=V_>B(r36K!z|cm0q^paabMXBb@_Q9BN;tdB)N*HX#iSJ>%=) zSr%kJLEghQMn%jhA*^VdMh3oEirLR=7bkO83L{&W0J(z=aUe$&vzX7-I>?d&Z*E2q zyzgU9GhlkG6gia%ZJlfZyi#?gWOTLWCn4Qb^%1)1dm}S zO38k1%5zqwuVh*1yT-o=WN{Pd>kEJV47!wD=A~9GB}89f8#JQE^!~oSm~q_5i01%O?U$fOpH!| z8yB3B?!@tFr;MUYT#R)QDUvJ}E(DLI$@B|93Q{6sd$C%ItXeVh)eVvA*vVk?011o? zkXkQMg&|Uvpoujo&nAINXP$VLPfW!~a?-&UwqQVxD3Y~Y9at5OXvb0O?10y`X zncTP=ITCRmkAQJ~t#Yo`Qo76D_60jcTDuQ+qkZ;ifPQW}^$h7WiJ(M;k;obvmvER? zD7lbqqhBOxa$2Kp98bk;9}O}^#L3DX$SJXkgE0i7ygVI)>;nNfqH}p>`SFSUXqh#s04&({MU=AfIV?fRctiztWDS+-t5h2BesrCr-**X!Cou0D% zu8#LDI(N~k&8Lz6i^zN|(c}9D#|lv+ZrCgDJ92C9Po3}EqUJu%`fR#;_UHGzbr$dZ z&^6b%Y1T5DwyTNM9u0^PXelwPLg!4Ow2)3MO#PU;6u6kka`W+SE0qLuT)t8&`+m-f z>Ge~+u2#{g4O0VCMTZ<-Li#)xO)#Tpg0b*K3GrV>(MqU z3GBO_Ryj0UJw6=;Er!JLhs^bF*jjYIO&Zjw+@xlsG z>|)tU3@jp>5}(?q1h5@B>1z0P8l|dbnS@m}!%eV|_?S^$uLEj&E!LFnxQTBRPee|| zl1)|a?2>xza7k91OgFs+5qZ$7F$WqiDBi}4(Y%)RKz{MFp>UerCNreH{2J2fn?2#x zO8Z7g$TQYH`?f-w*UF6?nZg1@0i$ZJAnY6F(5om{oi>pe8V5fZTeG`uQ(Q}{E!4_J zeH+j2+EaM!PyiGu3(y!>4OWYtl;NV%IrA_|r1#+h%rr_jIil1h`<9n=DC0CD&RS*< ztbuM!Y=2(axeH?((4zy#cL?D9!4I$6yf?8+(ZD`~>tt($(gdQjF#(c~)<|=|;B!SK~j~uqe;ZZ%!C}FfZFDj)!1W)Pt z;ySeJWx6RVEyO)u%J&{`=l zr7gHwNwV-f5WL(aU1L?iu=@l9zE>8Xe$r{;?TSk0JQ()Lq_wBpoH*zvwxKJ>OtYG) z#Vk2GAReG5wS)H>YT@AdbNBI)I$jE%Z+a=l6p{}BY(1o2BzsdYVbq0NWyO(8wN{O{ z6LS13qbV*dEPt#!GE5BbY%sBAyrG@$vF?el0T_3h&dM3Pae;LdWGnI^M3lG0!OgL6 z?Nhs!AOiag81M}sL9g zr#3#Ju_57AxIwO3do>rk(BhHeoXoC&AB%3!n$2fWmg&9k=<$7l;|Ee}Y$JP^tmmyj z`PK-s+aC0oceGHf+H}H8%rR2)ZR9Jn_F@TX0AD<(=G43mhY1GRa zX%v7(oPsx3P$2I`jXx>99WV8ZLp{5Z*KjDEA+Tk5Y`@2^o-G$so6hFAZ(_9>@^uA3 zfm7}r$643x^+sMVQ?`vg=TtmAr#~2~9?F}Uk7xQvtF=gsZ7HpyrJnMkboP?!nC28-kb9N0PWIj7>TMxj* zrnU-^Oqz~>q8o@%5zPUd*{+#L3pkRyPTO~Te$@#P3C^(-dn6bbX(GZK2KVVfKXIoZ zd>{pNr>Of;^qrC{zzxZnIgD`F3RfkF8Yi318Y61yaW;2w1()Ws^15phI;r?SMwCp; zmx$=9XD;YKHx`HXtg+UJ1+fS4W#c zk23G-l2j%N(=;vHavJWFsPUS-80@g1Ne#wDo*!uL5o4-z-!06n7Z>WZ z;&HOPlnyg3bpHHSMjA5H2poVSP7+>>C`(4)Sj52iFK+%oI$;nsFaE=;zyIQY{=$2o zcm4jrF}A<64)h+SV|)zTgCfWeuKsvR#ze{}8p%^s&Wn@4tok5x&1z8{CRQ3Z1u(LG z&ZmU>^HinLc!DH!*@O!(PQ6gimcsE^qXk&oqA4nc#*xzFMk7a6qoY0!H_0)L8p=d- zSr&QY{l#WZ{=~kYl+g4vnmxPXcQ8_6mA%IckR%2YCz_wwMWn{tac*OrywP}w$QB@1^-RiYmOnJRI``0< zAP^rNSdVpUGU-T*DZ?VWTZQYDcc6D!d5J@od&$t=ymw^3`s{PIcm0O4l0G80 zq24bV@l7mo`V!(H>%_j^cs{kXbg9=s<} z*c(qpt1hjMJ*D99$(rTM<$73EzA9yZuki=cE{0;VQVm!0lb~Ri2qVF6RKXCD!*J{d z1k{hsIVrF9)K&9?gT9P|la7w4`ARh_rM6B4ADeYj9TwKrG8b-Yw!;BbCy024o12o~ zsP&OUk|=u-nUSr9x%8rxO%>u2!a8mL3BHU@*nT+TM8VXBy*`^-nr0p2B5x%h>7qsT zWeXGm0z)4!&~ma>6;iP@$oY5>v2zfT7?F7tP`h;%TQ}KF#G9Ud=OX}Sj@svP-q%L^cWoBm?~5kAs9LPF?@N3>Gmer)DTzAD zY!eIjkjBoLlm$$k)D9WBv5NMmvyc-obJn{nHaPK77Mv#_X$bUN&%XE%fAqZ<|MOq? z`YZMxw)Y-6HtpZ({`vSl8>3*<5Zy1v{y^UAbbIS-d%eTw<`Ni5y!e3jj_GY|fz&n% z@&!6j(;7;VO<2u*)pgeget@h6l|`+XQ{yXnk>kT9FtXODDSFEV2#p}5R-wM9Xzpk_ zw-coMY2S;|4vdU@}s}u{78>s3MZkvA`3Uda2K9d@2^WP z^N|BfL`P*_D$)aiYujT)xC5qpAkT3OD7Fdwl_u^I$tBDU&%!$_S#n< z23V8q8p=t+@Lco~x1VFlfS!}Qok`5}0bp&pP}fl_YcoXbNTpj4D++B10`ob5gnB_g zmu0c?PNb+?w0&Y>Vrx(mj#QJ6(YCX4-?1ArsYeBN-tso0}&U`7B-q6 z+ZGnX;qkFGU}hOfN{5(vk8xa|Y7JZJ1L+&dNRz~hoH0I`_fz`11TKR?F$rDh&Qo}zOBL>)BIh>bAHms1e=ejL_D(2txH)ncc7 ztd^%`EhR^$`Y=sGs@V~0j~7^~c+b(}djiMcyz`QMAloTG-6z6616*$f%D0Oi-z%sp z(9``MqDIbu4x{^7!)XX9#BsTp3CKc=mGLgqMX?trrI_ zQS(MKSb`_MW(zlfRXry4TG8xeuJ$P!?Miz~H~PHQX0UQs{n=qi%|*Z;&8btoCR zZ)#%!KFb>w_H6^HSL@4xX51v2>pik1&n?C9Md%y~X&yU^D%qNI4+8nbiX>lC1XHZq z8+Dts?6Q0Y;BjeIOU4^fOU^nV=i_KxVvf{wiu01G_Q<(GVpPp#Q%xu{wFqaa!8@63 z+ltbk&|}ULK?_1AZCnGpV9O-;?cApHqMJyeHxKq~aB^hH!I8B`hZakC&kq`lLhQQP zOyebd%m!`gdSJm>L2bh{$ApDwfYE4o%dYJm+h3}lwilj%3j4dTe}Da^GL-2XZ`jVS zo|79=iED+iGAA{%j>_vHZr%M}XxjLgS>7SM1`?JM*jLUkf?$|NsPP!)<9>;*Twoh4 zv~&TF$x4TyLmgqLV-E0n4z@Nep?rtde0r-eK7os6>$AJHl(j3Jb57>uSTEJ3nJrMV z#Wa9@|63Q-UI?In@q1VQ@s+Q?@VBnnyWHMe(2nVebf_Ej{oFMNAWZMo@KE+v`}hNdw;r*gs9Y0&3Q4>C1y$Ze6c8K zW`G-3u!t}FG1eHtBBcPyv>V6EK5BeM<#6I5uEf|NY5AqcR3|aP`E8I^m(zs}p56uNv9x>pGduUpwten}%Qi(6ck_5^ zs~daPT)1Q7=bq8x!RxDNU70`^sjPJql!o=|%8f?cb;s1%!VZ@-kK}8qaT3h5R1ZuQ zm9q}1`Pa;bP^TuzB!Uq&+zB$K1dC2H=t;014g0~{vemJ)k&Dwgc#d`9x}m%H+*XTy zVDdZ|#4v?H=7s1y8*Es$v4w?bf#u2Mp^zZ+@4DstTvdOwx+tE z+`Mstt(KL3<_)Jh6>mmLKt!7KlrB?hLGa{7!{<>*J)2H_!XR%~uE>oq3KG?}?sY@3 z=noR57!gySP#aSE8u?5&lUt1i%d*fm$cMQ_p6>aT*uu{95fLLvApE&cQ&JjMzh!bL zGgTSaQbN?61g&NT5KK|SYGv6*(}OZ~8Bae;)rT$iIzhBZdoPYHXhQdnh1zN3{+Zlu z)*44RA4jtjMbUkL6r+-rh^>14xso|&DS~B$xN^A%-?YK|%(2icyHTr+e+GlhZ(e~6 zi6Q_mXG-_j{z#dRR+L!wX~($fO7%6jy1A3Z)OOSpk85MGkZ?K*I$2#aYBvHQgu31F zQ z^-piu0Wy+pIILH%6gtnS@*HE@J&V4bu{N9xCr(;kD6X0nAZ5tXNOy zLeHp;M#n5aAY$Z#6Qeeq1vBDg$QnDqY`CFpq1PX%1EyukqIDKL3Uz(eh$Y#X3KZvH z`m1^o%yxPIjBK)b$@-hSDqSp4kDdY)<2v>zI%)s@_pW~LcfS6@*WZ;}_`8oB>*QnrvlZtut0``!Fq>2fz&qwS*EQ-4Qq$FpFMRp~+?Nav^xb1VadtfQYxIh>+k(rn;XkOd6mm_OG0EZJ?*i31-0x}&ZNVaE>B~ZLk z=egKHfnrKGm4VlZLW)APaaoa_5;#F-%Rtg2+}O5nu3MX4tJSSkPOrvVrn^HORc zV+Jz8WgT>?o3)RXe0Ot8MAMWbYUfMeY3dGJ&ki~RgQi6^K{|qw1|?GfCK*dG`oVeF z#_N!EW?3QbZ!4N85!#$gb8r@6T&{V2x>+Az9ppehH~ECVncUIXXFHSV%CbaSK6NjJ zsIgBGckLZ7Jm=I^mZ%x#gD$0}coQu3?9jFl!I9Nx4K(f8_b6H$e{i17YP@B4cXpk` zkl$pbIo~UM?tjwc0Q|Xvf*Dxw499=rE{K!6_iV(H1X63x)Mn(>s3p-IqA016u|wy* z*aX2feHF{rd#7V}+o4SzTMK7*4{Qvwgwp6y2xpWO>ttY*`Cd32O7*Kr*T}{ zqtUKyY+bT+xCJt8tcx+>Y$2{gV%&MY((R`1zl2wNSF>i`edPGKTLnXVpue~eo(lZ% zgCB0m{Xf4?qUQb?Gwo@_=zrAj6}1IN8*}xvh!0xjvvx9@&vi5Vh}2epBeKW^i?u^K zL{FD;qlv<&PCecxR`?{##4gV$tvH%_Dxt9odSd`^Ehbs>`quuEQMV@+gor*~fj5xE zlXQq4DR(X8bx65K7C=3sXM<9}HZaWu5tioiFl$Dpwvk7V)FE#Sd@x==ax#@$5}4&C zJ~far0W#TFq)N%eyHEfsss*lYp!CHt5KBe6gT6<-O%P0z24bIc8zM)S_GGrTaRHz_ zvcubNs$*z48EB5r40W`F;{{&V2c8ie<%8R{;d84b3sJd(T2hiw5>|Svi;6NNteS2V z25xMcOH}OrF5K9o@ft9DsoNlaW_^tj&?eJKkZUUtWCSACa9yGsT)_D}N?rhrE2hhG zgRQ+4kS7~8w0+K=sT&y;lVsVXB^QpV2f!_kj;ux`Mv{Z13k^@Wki@CiEP2wq#XAa3 z@m{0z9(hK4E#2DttU(q&QUm8KM%4Xp|LjM0aq`QyJsQ|kyW6^ct9z(x9?x+A`)XiV zZH+D6+OYBY=WKF;<2Ob)&Yt(AckQ)7@UBQ1pKXt7hQ`zCjCO6Du>)XiQ0E@w;@Q|l zU2(#i;!va(3AZGTWI3iul(mmhNTia;yry1JJ9+{#aSsdPOl6D)3tkWVGMeDpn4HI{ z;B>>DF2D@?Fv4rjaj(r|zmFBuC)wY&4-y=MeCLWi)=kBeb=QV>skk!VtTV~t)&$6` z!|(2|FFpt)A6SD7AMDu)_x?C1S)y*2WxiV zg-!sMpAan5#NES-!f!-*9O6wTTe~P<4atovl|I}*Q9B`{AP$6QKk0H->h-Bx(@k7^ z{W1>crU~bbHzUa$rKEAIl%0~7vhrxQCuZ1Jbj>pkT|9)MJan3)rc&8h$rVN1A$Hm&F?jpoVbBnyv>odbkI{6RVB>|LCmprvS|99&P zizPc)Jhp5LMfxd97W-H@8X9%r4G$L;e$H+0xUgmABnxY$Dt!n@N@sMrh;e~Pe7=bW zR`K9gbFtNpbekZ*sO7_FNr{cdhPHKxWY~5%vU{9yP1~@7M9thrs6Py86frx-%~-2n zomWLB$x5xyrC@I|YKqI@Ict}BP_#EQ_H}?9pQ4*J9H82N8wnQHCLEm!yuf6j+idV~5fJrJDlfnIYi6HY zzi{Qe?O^4*xV^1`WQQkg#Ve$q=u^|n004`^6pK>=K$DXXKR=n{q6UaMXf;2w`0x() z`5@Sr;riuZE_T6`?lC$6Nw<4`3w7g6_1{SCrga!LR)=UfmSF~KopqH20uNCqYK(P` zY`9vgPhPSjiv9bW_$d1!`{B*DvV^iH+TWqRn|AehdU*1lt{MYGf0V&T3B9(hbQ#+jIn!Lyp!swHocl|)h@KP_; zV8L<*$Qghu&jDxBY;W&s?7;22Zz!tm^(P<|TAKoF_HoYgGS;kY`PN8o3dV7cY`#m6Ji% zc#p6TuA(zGU3a!D-@IT4JZZBf9bUz)_p7-*jq8Ks4A_s&tAz^l2O4)gqyU_qMP9_@oL+Lz-GwF5(S z>@;d0C9^z0&3Oya;^yWM5p1fOvT4`aGo_&_+%tjQR|_WFauEg6fTX6;$=rsNh_Ot> z&ztp7rZ6-VE?SKvVW!ZiTPp{LbyMy~$p#1}x~WI3&#I(C{CdUS;r5Qf@o~v_oT}&w zG|dD1qE92k2P5L?Yna&sneB%GWB0!8+w7kOU<~uB>-vm^m)Gq0d(~91uLV}x*~x5O z3v5D_fa4B$FP0LAJG&>pK-^f{=g#SIQ>0`E_vX3@Wlg4T3fGnKW-S6J2Sa$>T)vR_ z-dJGh^?sVKQmQL~7Yi>yX=qy?xRfMAvDvc)hksQ9zB46D)y#13tVg<%4{M3t^y|?8 zX&s`LyLWFRLIi7@?INn^X)59VNg=U0L8uDzk}2`2y@|r7GcuCKj-``{ivR1BK)OHx zQ|kh1Mr0anrj@SH&Fbxy)(L{t(s=9M>d}HK)9ru zEE#DOajy1H>R{dc*zY9^!9>$~#-*|d9^2D}hkZswI7z*YRo9&a=={8Jok`LYhu;3u zR(Op$pN2(LJ@aA8-=AB25b@}2uQP@0k()$+L@u(i5_SrKC5l3$i1> zxwT4?>1%SgoNrx^x3RS)U&IB{xZ~rc2pEq*z0mIZ$;O>&q9~;C1d~Pp-PQrARI5y9lS3(}JiW%AbT=Ew7fi(NtE9WEB6IAvaZF=EOuOF-qPy>^bDl@ zDsdY#*1ZUHawe+XN{v2(ntTX=lIsm`X3BODA#Ej%TV<(}$^8_QsPJsbH+N|Y{h3SZG=p;-HULP-~G$(D!$`yfPmV=(2rm+j#0b^Ehx zx9yp8BSelvG5uUD7N~!(N_In~0CX%;_)ua-kt#(M`rL>*7->bt~-+AO1MStI{wa2rykN9hICbjR#FHt&*QRKNjS zIWBZEt;=Plf`1b(7Ny3#$;)beY-*EAYF&K1KvuMp()fkgg|U&JFZl>YF7F}OsFNVf zZXt-X%~8N$PM{1z2~GwOj>+N*7!(mWIS_9$auBS8i&hgDY`zGyzpT=IYbY(*tfr}~ zgD5jeTJ^Ii&gq9ddPb!?)J(>1oZGb(rhQz@Sm~#D^6~N*IJaT_-jT=PUCY)H3|ZGI(6$ex@~VV!U2F1aO1iOi&rC?I^D38xgd={LOtvRH>zKS zNH@#5U2c!<{9px8@hON?)bM`X+qL6#S1ZmP)ESV7+hscLfRU~1L{kh|duZsqPN#AK zMB}~cZ5bK>YOmU=G}3Aa85apoPwa+`@%rUHvxTp|cOdCOyt8E+7oV}|@f~|(e`a?; z$ZQQflwZ-&sG2GxI3bv_nE>y-1v2acBJr%B=~`%zmh(CqgRR@%0@*T3yxvVv%tC6O zC2D<*k}xo?4x}PGmb!bfaj6_jQ2Y#fcurIJM9DDkhK`e9U zhO>U=TL=_Sz0KAGPu_0dTW@817@OVwK8`}V-QEw5{2;0(Fu{@cjIIETCF_XT&tuk; ztPRGpNtkfg=whgHpF-C#K|{@H1ag4|XWq<=;AlRfYo&F*wrSlBThTz|^ILrCV67hH zG_75HE}2VD5x7#Q;No5L3B53jCUQZroVQsUi%v(e%DO)BmcPV3DNyuo6<9IC!!>R@ z2w29!PK;@O9cqny{utNgFjg5&^~hD>j{b|GL^G8lUycE7ISPWkzB2Bxpe?F2xGB-N z1Mg6x4H*fO9sGL>=j51{P|hW zTIvuj;pcwnz{z@UG)qZU83#QSem_KNxLX{8@m~p~nLZz9WBc*wf*k{HDPE>rg*A+0 zM5=TX+5*$xN1ZfP>j(c|2%OpHowbD++%$4ihk_z_l1q{20bHyYsfu``WQi9Bvy*~W zcXW)$!hY}2HnDJ|o2U?8IH!SdCD`$koA)%UT11e1Njb%EC5h1nKr$H*^Fud zPY1L##zLG52upxsjxS1pI8>KWBJW3fQ&z>D5B#nOOVcckce#m;dg?FTG}u*xnI1 zHcj!3hbO=xH@ffV2W-)U|MqZ@jP85PdyQG6sH@H0|GGc(erJDfPt)lt7)to>-H>)M zTPOvfIVoij{`){I$*R8gl~Iumql(%#x3-lQXl!cHtXbbCkUwGGpHF|I+ceUZlCy}( zc*m?~k%4Y?!AOLy`5w+(l89()&xhHy!waZL{HBnmFACBdku8x#-LYB|ouFXn4pUR6 zpZyS3YMt&FZ1V`R34q90Dt7gVS{XUXun7M~Fl;1eODD!17y*jA2&A@w18jg$XARPy zx*ez+;{<8=(F{>^w1wTtP=`ITTZc=OE(VHXR@Djiu@bOxo``BxO{89Gt+~vp%UYU9 zX(MT?ui;!co-kQ(2S;?%%&JhmU2)KpW@Wdb{Ot}ln)}nZI)U{qj%B4+C1JA1(XC{G zLkE;@#l|(HNnoTh{Cf;W`Us#%Albrgyb&(|j6RlOiHPx9|GXVAVr&(!I=HiYhn;>% z4~N56EuRVQ>|V)PF)Ll3toddnkrV;vK2kz+zdd5+%`7`PGR}ikHA-d$SsWHg9Cv?X zY%4lC9nL_G4Q+FR$O|>u4Ew{6`{eGPT!vD4gL>^%T|zw0lp_pUzm6#L0@K|?(V4~& zO&6%p){T48xRoEfzBG2X38{4K*SJP7h~%u4ny)G!M#jd9gubP6^mZ+$JW?6OVKvM zOSVs`c-#mSWYB7^Pt#f&`^qSNqbBS*=xXqSSQnGU}JA|lDOV6u_!QxZAj5v(>M&KFg`%c)9E&xGWDT2K4}xrP`jij4-q3O1vV{w z#xX&Zu3Hxo96fsx-_OT553%--Z@_+QBxNX~kL>2*f!zVgQpl5Xg_|X{{TTpkS%_#+ z(Y|$HZ{&DWiPi0D#FSAb`dnkN`x?+h#+y+jQ!~8oFhW|48s1@(tV=Qsg*h?Nou}Ki zMV3iy?E~%mWvRaU3EnRQz>M%14*HT)B%(=1ab#4RFb)?LS9|U$+tBV%oo(R<8NKqFClg}QB7coax4M+*Hpm?zG> zGfJr@!Gr*TMIys>Ht2Z@%Z0GV2p1)U8Az3goim8omxoguV9_37sp~1+#M#^4(xSgQ zJj4RrcO?X`Me{6Rv05PF1WDDz>gvh{?3QU<^euQuG&`F!a5%o9(d>&XMA31O@WcYp zRrp_!bd?VI~c}$vP9_hm5+Fdm6=3aoPtLQhtNRV@ZVxM;COhR%7C%ojK zs5(r4jFFLW(JrC}CBjFy6Fw3gKL~B(I|0B)KEHh@k8Q2%z3vDd)%MN=yAO(3J36MR z&&*^Av@N4Km+>@f;8Yh(Q#sg#TAv6U3WLogl~}2@u#phDs9o3P(l-Z2-teq5HKARx z4WeI0e(rpYf_IGz2k8)}*|nT7Sd#3?RO8|31Xw_b{vDN0To%tObPk5`a6GDobb zU2lbm8PQ$o{-+{IuEv%iBm1aQ1L*1X^Z@DwyI!$;0 zZhJ(GGyBoCySUl0Kk3K^gdwe75h&T&6Kb5!c7_^o;~hgfKQc{ibOSM#>mf4iWkaI>s8@?V#7Vy} zp-XrjMrJUrj}VO&bT4PUnBf=!fSorurf198 zKD$6ddcx?ivB9#m9%`%^+Xq*3o7B{b=3buzs4h7UIE*iiD0GgzK23*kirjnENS=*7 zoX-I+j4??z6p@=LYPZv48=b$PS~SbBF+S`8&K3LoN4S`eaZVN_ybu*L+GnX{JjCL% zJ+NoaZy^g9<2;i%$;9l_Uz1~{quKmVb7xUZ!saETxXK(kH<7C}tU0CGz6JG_H4O8n^>}|G3 zM~?OglZmtX!S}kIjRMcM6TaQ1w|r~8^I;D?1;*AM{*-mw;QHs#Ibz`^jTj-hghwp4 zBp{wf%L>1nK*u*If}?|O=t#h`3gDw?5;qOSvg!wJI#UaeR_Hw#sX`P~*OAwf=43vs zk^>Gm&RD5J?T-a)U3>&jY8>(SF`|aeAtDCOO(x(4W}96sO6PIo6a)ws$hrSb*RA5O zsaa2@M~9J%hz&^^oRDgPFPEh9c?M2`4A4{E}xaiUtY8!9?9c%o5WoQdBHgZyZnt zVCx~=?JMPPHD85fO=La-LAMXduqF@&BD!jqI<+p5QEzkNRV{tW0&OSYL;GKnN?(&YE+Z@>#nFv(?ta&EcK;W!K14+jssVaEw>+>`3 z%u>HUgGZDgjt}qJVzH0?0+{!DxUO;4Av#S!`ZT?s2(2b|2Xepf;xl)zgC_r0x9$4; zs{5;JwCLJv!?=c8okc#KlNWHRZlj1n-#6@Swzmbx`%~)ZA^3MTA`6ds4>iZrJoh1g z{+Zb_Z^w-L>)qdn9Z;^bID5;Zn=?dB({;zxZ4jOYb2LVP)HH@0mu3U03haC2a zYDLo+N=g_i9|1y9aqEnAY~L^$o<0Mudm+N-rt_Df*NyK}chZs*z|tOPxH@E;g;F)wY|^jCI7FR|N0dC{J={nexWlF;qJkFbAfhIYTz=!mKGM!0(a?)A zG<9d9CX5(hgfSSTVIFg==$nJActg?Dp{`hR@KF=P-Uh&TB(kE#vB?yq9*Jn78+ad& z>jTLrbT$tjI*ca!?4xeo=D+U5{&BQE2a=`GS-tU5772Tmb5|~?;U=gINOMJfzY$l9 zLeAx#TQ*-e2apumrs-_1+-QTH8|w3Jop?!Sr6wN6NM94A=V>{&A%L-mlQL4K(AWt+ z08UTrNtqvqB@~|@Yj#!T0L2KGB6VdCEUn=6QOn)RSmr5gj`MSSdVmtdu4;R8d?1JM zkqw{Pupv`?3e8(Yhj`B%QRogL#^;{ev8Q&o5JBR)0x-HgU84C#lo@&Zsw)LFxswY` z>V5OE{5&hk-)6I8T*FBF)dkR(XgfwtzBk^G{3lL&x*t**YsBl)L8nY zBTIMkZUabm`{ia6jtH8~OlA%2V$8478}Z}FU6`Y|BYC=cz3#oIi@B{sYTlmt@)Uuc zG#bLiM3IbgXqBRtu9qb8AXE)5_NjTXn8;F&$wQ<-1FZN1JZ8{K!vb1s=JPhvOil_c z5iRD3Qs&E*`{1p7gn$-;G!y7^Ms_v#z?TJmmQ*G9_7bR=X$xt$_>0grlUFX`AtA%F z)Ef;g9q#}bOPlWJIvy7MPfm{22F5N7)(4v~0++8Lva1eSOhjJxTf;9w+qC-d_Oew^8Uh_FGCMxYGSG;N0%rbOEjcGwKM z`Q#4{{StokCx;>&4qM@Hgvqc%mLOUJWs)Wu0tG@8hytqWRrk8vWOw@AEX^_IT>G57 z_r9)Pbwu$1S@*uYnWx!%t-0nLbIdXHx=KQn^N|_Etu8jQTQ8-UpKFXB%i~Aa znh}<4-i`D<&FFhE;l0OoSu9RvF`uvs7;<*MF&db5<}3Z2L&(k%zwIa@0ioeUp%Hkx zZ}e-+kc9gPay#&Eh%T=YOovk$j^}Lhl$}95#0T>zmQR5h7?$lBf|<|ZkPOjvK)vDT z592m!5);8rNX&G(52N=4TH3t)w!F{d1B0W!mEXu4H{)U~1Jg$or2Q#+{2(3f*5%kO z${60&x+5RXvCVeN&BDy4GXgD5?L+82nn6|u5gb$q2EES8!M4AyZEyF=oHAO8oRVdp z)KnZs3zE^eH74HRoybbFtJreEo@jd*WM6csQ)@1P9Yq(h5HuUXNnWBE02wX?{)Z*Y z@|tQWLf$1ja3BYUhRe_eD9G5e=`^P~NqHtXG$ zW(-?qbKn9Z$X8GfhuToG@h)5&(3~h@#sMYsX&y!Q!;YhfyA@_>3z<%4 z+W5Jz*I-C>Ye?}k!-e?kYD*eU*tN8r9d@AhfX7+Uz^mXyNb>2DR=`*bZ@HTB-8`jbAM=Yh6AuiNU{~A83mT* zjb^N~6J3Y;={J)oZ)(}xDGpj{u-fT*d+U3TWm4WHhjF4nBj__jeU6KZx6Der1U_w= zn0OWlKto7*zu6h4r=NAhwOkuigtd+)7;te?$0|atYY@$G?{zJ98W;x!vd_vY6!+}G zbHO>YbLv&+M(RzMT>RF8XFLj=U1nD}rJ~5isKZjZ5tN%Zdi(y4d_dRweS_mM@!Qf` z|NalV^YW~~#K(Q)sPYMewKb&EQD@0;!b2PYhp;x2EwN41(rednFCH3{n^8P(56gtc zCn#*rH{)319c_~gD@?c0xptJC(&wmR;kE}2J9nTraNhwxL6D1q6Eh_Jip?5ZqD&_)V_ z#)SBL?Sd(3Q#BmMU%(jk&xyYOdz$T@>n)##THe;5Uwg^;NDr&!d@Mh=x{U%cNjygAowuWdy(ilJxta-ObUM#<5M2g38ggnqrl(0Y}XonkjW1z*RZs0 z9*){(_BT`vMBRw}MrM@WQR5^LxT?r(tr#eXJ=TWmzw!6p{*yQU{g=M@=8Iy&`)7{N z%~GdB{7I#bUv4BsXoiG!o)_K)`-L{ zO^2dMC$%;qAb!{cr}6ZogD$N?Y7VAc#JbN}DW`3Xe}@h-Yzx4>8!Es!fn_PX&Q^+3 zgaI`%hVI+af{>wX8W^?2fH^w2V+oTwja*$X$)n@QZ!p>pKQe@dS__JRh}iYBCb0#> z;7uE`Y!SBr;;Pg6oJM1$J!v_GUw|SIpM#J|>l&FFJdp*~ftwXPy{VSclgWsI7XOVb zvf0}-2m<#F-s=vf-CXXR-qmtb%dx#TS@h?z5z%DAX54B(L3bvlk`$*(e}9Vd6F-Xv z85GKakCpbpNC`p^F3rokO~{^Fjs+q}LztB;0p8A%3PKIZ`PM*aiEkMOnxHWlV5l{+ ztWtk=svl#nU*j6(Wv7jmU}RFvaUz@3=l(9b$_nP5)=Ryx+Bj)f(nQ4`C-8^SYZ0s& zlPPIfpKQE%XO`T=;5^op3}J;HWo!2fP{7&LL@n-3hk7kLd1rgA@X(Yz!zWL#<@6Nq zxud#!(#(CnIFpN;x8+I?rpE)!jz5&m`76@k#BMccuO3UG&w)~&rLEqRZgQg4$($pa z$oj|nS*H3~h7^MsaGIsyl5eRm8Z{qASfw(OxvZJ^bf(|n7Fo)86n65S?_4+B8hBhQ z$-YlGLD%A>NH$#)?ceB2Bh)NF*ZPIygzq05i}-h>%gu|NO*vrg4Fx~8B+GMIpn5@O z$u#%BwhSb5s;-TCV2(=i*Z(!zi!}(_`<1Gks zL=qEqrgcGFEsLl)cbesRMoU953Xk!y1ATDN4Q)Fs?`8~ORdPgCzz>*mUO{>>zuNc^7cde!T zlF$S3IAl`r*NMnl2QtxU_*kDy#~eMOfNm$0ny2w@Opy|loWRe>sC%=EUjj9XuR3!Qqq$K?f-J4tpn}k zj@ldTFl!ktmvT02DdZ zHp4u2D*VA->*#k}@PQL5IV%mhe74tM$?8sPwADm80g^ZD5cUl_)BSw5A2L)F5j(Ni zG|;oG^0(VDs|p0sM?-W3OAVA2OCyW~?%>=;$@+rX)o9R~K~?E<-B6xJ&}yu)&?O@o zCjQxRfsyjVHxjAmczJy-tM!g}j`27<7gv?Oxz8q&W2|{Y-p)pW87w=%UFBG~^y?}$Cd~!DDwRV4U4XZU zrW`Z?z}Ezb3|OUE^ME}+U1(W-1^Ytjw9|j{JyZ`R2Nu@*9S``a9#)A8R9cpvEo7;O zZ8bc%AR31bu|&R}5o+>+u$h1GNK4LlvzO1q1=bUs^Jh}k_6cAIds`nuFxOA({F`#V zxD1=UUM6{`Bt2Bs+f(4rK&)@U2iWrZ!jnSemU}3d6y1>F!Laf zu9|hSTcb(P!Zr!`L-*`NfyLa!(a8#O_i+=4%-6>4D zNU=zaM2^S0DK#s*cm6(2POqNI$;}fv(eiVlUFC%a$Wwj) zu&CH`=Dwl`Y~6V(?gw=uTVc-t07!rbgI+^Oj)fXBa4QY2JH195Hs*pJ3}7?dohjZ7 zHDkS&pM5ZqfA#$vg%D0Sk_dlvOwzPk`fnAB9-WMs?QeBGop9t5Fob2?nKFm-wD7Kf z;Rh-*M6hZZBt10o@nXN!;auJIsF(H)i1eVLuVlN_ev^SSgNgK9}S zQ0G%m=oVydBs;V?0Ym3QU<-~ zJUY1GjZEer^p+8*LAt;z2GoYs2y~VQ<hh z#k|?pw92Ha4lz%>R%s_|u+q2l&r*0`%)u`>O(%K-Cikq^Bgsv=_He7(lvPxcsZ~2U zoKr-aCYK{44a3l>)=dh>ySw-AY7=H;La4kRk)7S$KFWn+U^qC2nlT0i_s80VnGN;t ztCptn(EEcg&Ev~Uy3(*s); zqy}GbG3mXl8Kq{8_ph{DtigSvneJ5Y^Q3e+G=jAw@<3~jR2EKCQ zH#z#Po4gsCQYP#B_e17CiinF(n9Yg(fWgU!>hGAMr$7F}X_*%WNB!mBkRSTv2gMxw zt8xgC&op0NY_)0_M8-l*I{!mn>!@4Zwufd+?na|i8eRFN@i}Jx8iF7EO_1eSipgUX z!LaqLf-`rW;T~+d_{0D>jNl8Cg9t@wY7DlPv6bd6jg2r=Ae<6hSo~0$@i`6n)^wd= zoFw70VWWSJJM*~S>?oPW>GRe>L$8>2F!=`g5?qOe8m_1MZmb zRf;}AQkYWspfF{W!7z}#9rbfuYv#7oEE`UAckeyWjBsGhq|zJ#abRH7@kRsQTFXsP zO{&3&_}+XvBf}hX(Pe^_#EmSsPqak5R{Zixuh*W>F;blH{G^aizjjXpFz(|}p58QU zsx=IFSx-JYN{ZEV4*CaQ3!HlI3?JUZK#C0)%x{-u6Oh?cjWjz%LjfiMP>&hdJTc77 z(5ceT(&?#*shuLYlDuYxh2oExhM6fwyI3zZYrK?Uz0rnLrPV=6H64(+VZ#bTHq`gf z4wd=%DY)e!V64R}Ln`<0k# zDYXH#A!&V}f$~gotjP!^T1_fSg-x$dyw~9O=+P7HkYYkeGtFwq>pC7!Sq?)sENZuP zqfM86r*J}Zp~3Wqp;QO*p~>QKUocbgX%FFFxYUoVav^4v!&WHFkR>? z1d?6HOkz~o>1qq6;VBC|j$YXAJ_o5Xis?2C@hlIeurjRk_r!$=yr{LT)SL}7bYPb@ zb)G$nAKXq*U`&rr?-B7y5^)NJncSm%9%!bFkwpk)Q1?+w*KKRT1#`J4vzd0|Q9iGY zoZAkVb#1i4@|T$DQ{BW0DQF1@hrniksn4s8gL*?+3a$k*tqPq< zJ%k?KpUC;yOoMLA_q*F&`1M*52guz@Hi$T`2Ge?%{{l48W&z{KfYxB*1n&`9q?lC! z_^1f#p>gU6poH4ACN0zM2#a(Y><9Y!Czzmt@{lB63tX$=&5aaLz|q6B^e7QsXoJ^z zSoY#0Xl!@HacwdLl}jod>glX`gzph*aleZQ(khIpV35_7RCmI3)O4$vyB-v{CV*^i z_7LyY&h$hN+{>+OHM`&I7p6)8eLT^>N7yGQ%u#KZ3TfQ2*FVk%lTQx0ZDlt8V%`?Q z(YE!{*1{&c{p59|GH+czA7=fdA5xYl`3Zd#n}XXp_fS_;`rISRCw=bD%WA92 zE%m41gqYg&P}3s#abV-LZfbM^r#A8*w-%Ig#>(2&uG0%nn{{4%PFTgP^`iLE*7 z*`&BQXl6&HLm9)XTDXCqgYBhr8=KCubBaV@ilQo5Qd2aB2SLHf7yJx#B_X#z8A0u4 zt#4AB5nA#B_}_GUxmb1@AYtD*rT;ZcSpB^@%4*$|WviH2q1U&%k$SzQw3bjcx*%<* z)L?jiR>{i`PDpvGVxq}et<5SN9Ps`j9@iQvhXE)gpQZ@pDB{Bvo?U~o15pIfsW1x< z{I{S)9X76w5_XMUECT)nc1s_%?C3jPYG4^_P=XNdPJe$5H5?owEA5!;fjZCwZiLC8 z&ICd#c4;vh7#-v6#Fk6owXmU#oHcny6|%T;vhhBBtroM{kRZeHt)F4N!eM-_-RP&< zIK+H6veJ?V1889z#UJOI4PR?Oh1}Y5xn_1>L0F<$YR0&il?F$MV#s{W0fj1xgriI? z*I&W+O-^FWQrHzl{qQB;okLl&QaC3nAsKfyCMSD)_{n3PmVMfF-~?B&Y_jmIv=gIo zweCDX4l4dT`Ac|pz!^xBr~9gWcyJ6~em+@CA2CV%IHm6=e0Wm$K@&U2Lbf0EDQ!Hm zHSZRu4CKJlxkMEdw8si`Po{e_5DL2+872*mVZ|w*rrXGJwWjz4 zGe0U@wsJNP8W_iVh*+QonYq@I7Nz_i%?FM^8XgsV+M-D5sNZV1K+r=h0UE(o0r?w# z&>HBb^kUI_FtC|$+%q(f*cfTWbuw*007Uabp96vrX#ZfOZdWCW=N4Ei8Z-xcOmK7* zi2z}le8HH=TEJX+QP#ZP(IGA>(_10U0AQ9G-h_$XL_)JqYw%V-ZyI;r7z+w(=obWr zL0!@=b*BfT#2J`pw_k(ATP6cRvbPQ@Fni@@Z;Ln}PCC1r+D-||pTWH`k zEXGbs@b<9Tcw5_!dX99*LlA{p2xvNb1VagXTL&BM!y_7d4C?}$yKRgc7Co3@6SZki ziLWM^sv(HagXklQwD=R#pb5##JqJpBoRL(UF7>yV<%i>sj1$q4UK%I))CHe2(q5SX zvhh+rW9R4{Ky?LpDe@_ly(Fwp#+((8)F$jG0F3TFT^batYtZG@z$nFpx{Lz~pQ5Ru z*>ITU&ngVoFvS>V3eQe_(BoUn)mvOqRLvdjga zyW(V%W_r=z`o{)VgtwnbS6E&g82foidLbLJ%*}@U352(lAK?3Lolk~E3Z5ST`ogi-!+~PgloD%hxe)TizPl_+ zaJR)6T!}^u$MSjJ!fhAkCnHXutXH*UeGYug(TJg68!Jm@$e6jU257u!=NuRz=coe% z;x1vCg8njKHy!h~FxeVt0|#CrusjW|HWRuFeXR>pP%dv;E%{6@u!uG`33;v4MPv|$ zeqk)f%z}5gcAc4ktyYa}wt-VNoljWNf|e`*;D>=@k)(iNgmW;oTnGeWWP+s$-Ud8@ zHhD@MZpo}E4)S=uA;qAN!mn9Y>p|X!F;Yxy;CVQGC1TAH{jJm4SWdJQo+|7B;SXAT zH8#0~`aSaqDJqibD}Za9MG5+V4V2(9?0HZZ(;@Lk zQphT6u&gx*K7IUDM*5ymp0BS~WIwEcSL%Aeve+lan_ldq9D-w% z4}3VkFJp^%w5{1$a-NpN(w0N}))BKNM${-U0v2|nr>bT|D+QCw$;3LESR@c7*qHzT ztT>TX1_%J`^!fH{4Ul`yYIF-}@Jae-tKZ*ltt7^htu@7I6=!VPL)RUffIeD$4~0*q z z&SsV3hVUgel_E4k#^Z`X52X__R*GnNz$7dIAzQHRS_G#`1J+1(n!)U0z*J3%tyaaD z0f)`w=7xA=tl`CSqp!PRiHxC=Cr@^~CfPv|!5x!^C%VB4l)&Hw7U=%(X??rZ2F_~T zk!!uB7gw?#s?$9X_)UH+GJ9-D)zW_(S_7ugz};zJZ`}i;+igjLrZYIijiZf~Cg&X5 zx!U&O64w=1l}>>;SQ-=1=-7D{24=kWO#ksr-}hKw2g0;v^d<$|7NM42H@wyuS*=;N z7Oq+76DgtSOJG>YHhQo`Vrr1=(rZP9CbQr$%MO(IdzJ>n;g~@rYCx^xj0XYk-=p`Q z%Gtw*GMMW%eR@S(;k`CyMkq&h?+x|;w!t7Ly#LIx%&vhb-7(J(J_G47Aa}H* z9rE0z5T1a`qRX{0IA+5%F-wHt6KSpnNCj})=H9&Vd)mfB>jmo>f)|i?W8*5Cc4`TM z6|D1mD|I!JH9G6DdjH_40RL}%U@mq{jrnmt-X{sP63^dpaQe=zAN=t5d2|%?4^!s0 z45GJZb@gwe7s)i?K)+d>oXFyIA*<$ECbPL*-)yM*L7hiyeOi#ET0x{@42;KNd5J}1 z(%OOLA587{`rP25?WnhSz*Zvpb+PxD3EtT>>G|l*AB^K!=NvBwYGn&6O&T%TsgCLk zD&#b%DzWK@)L!JwE;bZ25MkYbc~~AYJ1UN|EMdl|*c7w{@mnb6@v#O*W9pVmmPg1e zlbt1p>>HjX4amMj*=g5z-x((mbeNJ09uoiBiEdXm8?L2zf}eD`(K5Xu>`*rYdFRpE z>>EfCs%T{Z97z)!eGj_mAx2wO{46!6L!#X1W?pT9%SHxg%*~U5N84TNR2yByocb6z zIqne-%{{g&#%WN5+QPc=|wVc@E20vC_V6 z?OkH7ydg6>YBs&2{l}Re^rMl!@2j0G=5tx=T3)SJa&>hrccvpQD8$!|W{+pwFg663 z^CTR|NGEJL1{aQqbXJ5=bd9DFnmgDNG$U(`?t|;1pC2?Wvy*KIX{27wN(_eb10L5n zdO>M{F!ZM|1ElklOWwqW!JmabAfMzaPpBBcaM1OzsL%`~rRU4XvEer6DDsB zZ@=?|Hwt`25N%s1hl^1e*s#FqPQQ&I4V%DSgPD2l4tATmAxAQGM^J*8`(EnX$iY8* zbgjYG@kzE9xB=jcjqx_h4AKP5x|sBdw{Z>9I^e%dgLKN$SL{pzZ%cK_ECQY=6J7Ms zl$;F3^$+*lkXAyK%%Ik*rPZTzN4)hvK>1b8~ z-9*w~^!u=NokDF$u}9pKM~^_^N$xHv6tcx;f>(_u?F^zr=s!YgYY+ZslAGm~W{lb) z-f8v%^R9-2n_^5nF}FwW0;Aj|e-N|soH{B<9w#dbSv$Q>Dz@i=xdrk*(M`5h()#B# zT8hx$r;*O7H$E9f0(wK`?vVzqiLQl-zQ$Oy^D{lL7S&z@BuMTxOJiV(c)zgEH7ZZZ z0f2;ZRD-JN6dH4ZqjLKGni9H-4V8|Vp+<~K4#~-cN;t^&c;C4H;M4;C0sf1#Uz4v)S zyLgrv1{a*=Fa61lX3!SFy*7g{9x%Y{ zLUL$2*{nG?5&{J#eJb)hQ7U)a8!e$JVs8*fXB}`1b_^l%OF@q)PcQbG-B_kdD+izK zgfg|BNo)>{CyIM1?u*x3Z)$n^^pbYCP(R-&Y=FSL1BaCx%1Y9FU|F=RSy~#gyCr@M zMIAcmL6Qug9fwD(xegFi^7tG%2<^e>Dbq&~uv+(jiEh7u>oN?$M+e&d9x5KE@QnU> zrl0p@P}9=3B-JF6&)B%$B@F9f+=eU=>fy}7kh!;(MUoCSgu1p>0ek>k12wE|%y)+v zoy*vf&2KZ?keI`@KG74f(B>ELYG9AU;YhBpZ)B%U$Ed*(0|#qB4-&b449qj}m4hHe z@_=^GUaTcE5gnt27)A?~b6jtT`+`TRcztVLJ#2>J;B=F&m@eT=?bi zbK*&lPw99fQw1Z;H~voYz#%jr6;zPxF1>LqLUEiqeqdny#1F^CKEV_8oV(-f5tzm8 zX2VB)jf3SXMQdAAu3__~O+F#va!}&D$FB3me!wXatU%(P0ef6(IW(+Xwb;rn2)>5S zo)6d)1askYfRK#i7S!U)FHxwg?oa`Ctwj0V?OKA?o1vHfQx`A8G8bNz#*lA2h6%5~EO2qGa z51DkhSIF9cw6SZh*I+n3CFTXu*$~mSe5$Xh*lW~=%fL;&I{V1OK`>tiv8?*)TJgeF zXPx09^_@w;X-%rXy`OuH z_N}lTXgSSfACy!x$2M>6S5HicfhTKJ(U+$&dx{afWE5U1v}zjQtFBoJ2X8cSI3Oig zO0pB#%+Nw+*!h@d;{8d!=NK40Gvt8~Ez2#a%5Hy0;3Jj^;=caeNZ;F(ma+#Ciat0h z{_&Omqy3LwFO?Hq54z6h9UvJ)sI=t7zdhE|`tdq>`Tbfx8;mLB`ofoWI#29}4>Lp^mdZ{1bbl-gxr#^m}l_q7heVn+CrZwlsSm{yJ;T$V zh0@O1*0U3ZWa!F&SV04i&;EmRr22fq! z>*n7_%QhOtCZKhQpai~OU70K~>-4TLkyumOU^Z9BhS#fc>}Cj@RfF|N)7~-6(lk)u z&vDu6!9eRox;{3*Ws&u6_L}u7cB;YpLf_Z6(oQ^F`pBKt1Fy8ogxZWOu?-q3y%TPw zPirHuY^()xF(Dg=p#=tTwkHA|2+tQ992F)S>gT*!Sy%q?qepV~=~tMg!GJ5WOb!HU z;X6|}pT_hRTQO8Ou(`%8y0d^->KYj8dzt7ys1#E!bUmU;Q@Okuno10Qtbi>T=KX5z zXjjJa?d|8a)6$BbbxPcl>W-wbs!^70EO&BAQ9%AT8VdYwMAV1HLvLR#s z(xf)*8za<;O}K>q|BM@kP9f%R2O-)FH>M?^UkLso%6t=)^s&I;jUE#S;N%O0E~=Ir z3Ao>=vfv0h2^PCeBnT-cjBC*{cxe1l4XCkZ1UlIF&hPR7*wxp}W=T}{@k2*7NdLh^ z4FV%Oz$n|;m9FVx=)DGl_GQfQf#PGp8a2zDPo^AKB;maQWoJ$54mgziO(&N(od!qi zjJJHB#bKn3EOtAb%4kH90NhLAf^xs}!&ggK;G>WPqpHq;Z@Se@y+_kTvDpFiDXACN z5W7vKi98U8#9AwS+>aAE17e#TAJx|f>tTXxpqV^qNx%uACcke?8t-P?$XdHXSNd9O z2tmY=23!O)y!YCgGTK}NOCr(dsCG=Wae9srHmV?JRv1~oO)eQ0OkF3BDwPP&a>Bu&$-`31>sImg8WTg#)g9{ln1Kf0*jN#5Sbb=L>z{O`h9V*88V~h-4KztW zwpeK92)q<)@c?Uu!#)m2SzwnA2bworl4qmze;3odE*?YQl<9-xizj0~#^cuS7XFP4%>OV0)wM2yU+y#*~7bcK?2ZzdnD#~p%y+|Sl9$lDbHlY+|HMqtDEzQ9P zHCZvd{u0e35UzJEvFuANjj!~*tT9enj+ni2qJ$e>gD@L6<`W&Y}2*KL)vz=t-p6AUvyac#i2gQ}Zz3m>ou0HPGK&E@k`b%kl`vynvE*=-l%<*y}b-x8+4xxma!~9h zV{f{QjiSU!oM_Y{d}b)6LwN_PM*C#PCmIg;`$qqSyIx!Prgn8{gAfYCJ6j9hbeP=j z$rHr=B28vrN}<=E4J?d9!fuo}Zb`hdRC0nDQEN&Rp0LnzV9nwQv%-jkAGV1#%fiKb-QTIaIdJ_iz+8rrIwDHNi+xMnX z^-SikNQbJHsZH_&p6kk$lb9F;S`3pD42Y~8apEe3jEQ!RN9NH)hcof49qCmS4bFt7SvgZhXOZ6{X2^GNBD8$M@Q7%?bg7 zy^Lp8=HY=XZ=}0+F&oQ!8gTZ(_=@}0jf;JD9QEp47!+l9?Ue&mtsl02V0;>ezV=(3o;XUvgN zgv4Y}QMSmo){&gX8;EP`;j`9FyWvc6$?h&aMG89zY(l6<6_YO}F$exD#aDMV{~f(umVe;lBn@ubz^RLhbeN@PgqVbB z%0O(gErGdeAk<%ZtdS9hVT~?|YyAw@`kGr3(u;m`GpULL@?+8Q9W)xm^$XbRdR>2a zt%pF3C=MDGC|(HAKzH>$3|n-i_Y8ys61))W zj17LA!1aR0$5CXzHBxx|D=1^`H?zWvf6sBNqdxW}*cdY@<- zkLhhF3C$FjoCLFQUBVZKL02me-8=|}1C-Cm5b=fU1iBQ)_fRG$&)9q)Cnt@Qwb(ae zY*Dg;bI#+f9E&s^n~}yL!NG=dqW5LQjJiW$4275F$$nq#eiP3OdCjAFX_GyAFukGQ zdefVh-B-df5c+-rCUZIZH}=fWJ@?R#5%m0GU6c4T2rNuiVr9Xs>%1Sl7&N zJR#mwRy$Lk!G?waX|&*w=c|#`>~=M^6ob}~Mng0*EHa0gW}8=2?Gvwc15`um;t2!? zT@n3c6gyFQmKai78>LV|c9c$gl7f+$(Qn2BT%O42{7>#j zF~B~{nq}OwGp?;&&(=7WtqGwpQ_Qc2pJ)H02n>pKFs;H=z*7bTY5Jb8-{bRx>o+Ql z)-xU_2H^TIEymvi$r%A0S=_1~%lF^i%F}D(TcWeR+GxkR8*4zBXfT@acUv*?I%hdL z$Bg~3u!s(+ubTHDI1Yx$9)Oi?H7hKvoZO+r#*`6xtu7zu5^>zKGHdg9nBdBNujYl+e8xKrS7u;K#z@dTwj*c~thKhK3t>1g= zy{Gc)NF-3*=x2JWFwwlUhKPxxG;}*0YbjIKD=BxF&=GoIBSWOrUNWq-@a9U&&q`k-+7BYzwQ{_`X2b~twNA;N@G)C?%56; zKWW@-2|*M(i>gq6X@y&@Q2#z1%jZA+lKi`W^S>|u&;Qr|Ti$#3 zk{JUs70k~9c7eJL7echF!=Qp#uoZrO7m((I!BPC~dQVNFwb}ZgiRLP5RcKxZL43TO zxRy8$SyI{z^bDImX<&3e7%OHwF;X=qF0^djt}Z#M2=R#XlOX4dQl{fXMQl&XoT(8= zj7CRy*JuD~rtTVBSn#E)4T2s8g4X(t@0GEEjKB_?6-zg;73T8xTE! zJ1geCncZoyztPfqqxTS{H|C=2U??!F4qaooeyzUtHWgH}fdFu12e@I$8a>ef_BV8^ z3amY_CYU(`V+N5NIALiT0;rC#w(xQJZ|$DVr4lx}dXP0xmb!aS9*k!)75hBz=|KWN zYp?~-RD-z0Sl`EReIxPesUWRKHX6ng>tY9+Q}N*`=@*G74Iwut#qjeY`*plvAM;>k znN_l!?!Tg0U2+)0p{2r4RcLVH@Mt~K24C=a8sNa7&g-XU|AoO(H|v*gy>|L2Wo?g! z{=@>~?Z;72%t1V}>iv;!VWH1F{08x)g^(?HWP4j=fn2{#oNe8kqB9HVfCe}@6#iMrVsS^CU}OEgMnV3kvbw(16?vnjmS!P(=%3F-?wv=)drJl<&`vn- z+)$2}<@ahA*o9sx{`u%)B~PBVd_T-PaL9BhQ4z>Mo}4hVKm&rj(7mbCu(ZRq$X)9F zmZ>ghkYnsAM64E&m0@43jMzV(mh_#b=Z)o|Mg<~Kzj2z03nmBm5(mY<-?%1vLF-p2 zlmiwh(IrnTt(Slb^yfGR*qIh1N_u3#$b@&A6>T*~!_>?eg2CFIt{~JwHSmsOdT6LX z4GA{CL(p8HXbvn=%W%+<%E6cl?G$U!pWi}ZM-Pwa=SF^tlE_Eyn{JPmZbNg~c^$*RdDMPEl@& z;K(7_Nque+t*kCw#T|hW5@>9smc}FY-zT9;?>QSkUO{!ein(52Tx*P7wjBOk;J305 z_cNK}M+uHeUWhIJ#2$VbQl_~)J2vP74Puw-`1?r=`$*ny1<*d#0JL+Ei~&=-7**-h zII-iD1qt2V&^w>r>D0vn$*JAd#UW7P@Fir_hCrrbbiSOmwAz6eD#jfc|2v z{?C5)Gi(lY8btr#pZ%`VUE&1>MjlV9Z5AVxB7v9;! zd-99F_;Ygo+I12#)OVZ|{`3>c7*uJ5NVTDjWV#CNT~vqXgeyf>62S|hpNfi9z6;&!}{ zjpCKNYDD1*z!(9(I&c?6x!oCE3+Xy4iqm^j8jQg@0&APSbq&xUa#QxKvvJm%a%Lt@ zyQ?eGeQJz#qQQZ~3G4rj*X0YZy)1Ji5iR_TOrWF&z6s4n{ahs^`&QT5bvM~CLT5UPyJ5OkB>6o) z3JW+3heB)Euf=5JneNL-@9`zN@ySf-iXt2`NBKxJodD~ZSQaw5>2#*}`;MgsGRBbxxWRBhT!y66A}i!{u0CT~=hfwv zVmJd@r~<>nrfV9rM8MqjXc)NwFq*a9*4)epj!?sCefApfZE?1+_oIvJkN@b8=w65T z^YW{&$}j!OS7ftW%Xi=Wru_at`~S}#@F zLmgW|bGZMZTbr!3oC3on&r%_PX(OwZ2A)-7;{;!j|D&{g4*X()GIyU*NjEM_#lElWvc7mC&COHIrf+1bf$@BO{FV)+x2Voz}#T^MKRK)X0@0DuMrps$-*IQ!R5G01YUzex93gdPnP(vl&#t!Wo zXSE!Ty>e^1uaP$?dx+;~8(V4Z+nE8iu_jw8+}9`CJtNlHaQ#~&sPOU2fm{+h)tnhD z24>NT$>Iw!M;AMn_YE%3QF0Dt><>=Y`9XtYc;>%8{CWCdcvNO5kwbeQnShq6BP~Zb zGsF2~-2j>qmM#o|GPv~V3T{jXl55R2SDPKPC(Jo_`<>gTw&bCXbi*cq;<^~elOa!k zGyvACE%DPfnNLYMFoG(w%cqYoWTS!M?7^x0+rRPaa`*ln;zzG*ApG9jZ^@e)B!7OU zUB?r}H#M-o{<+V{uU=ot#k-H?&;Ixl8|Fz=*tQN1RN%T*oWr$l-$0>-$=!!Cz5B9E7N^Xh;oP{qx}X%> z?nXQLmyflZc_pWlB=;BamCQ>{ym@tQ!L?b~r%VWXeDT<9xW0xn@&0`zt!{L20Nc%$_19SE+XA zJc9WgGc>%CqO**+ES;D7?|!>-0YyvxYm%R?lPLr<-yAjsiah+kq5Z4 zHk)3lMpQFrI}?q&b=1JA)rZbwxl&uONio!WdPh&L&3kXl69mP@oW9_L z4%LqSx!cKP50bYAz$GS!l3cF$3|??G9BKJ7((0xF9}AdiY1Xo~ejM-y91)ze=mhpG z2Gf^keqb?8%TSMq&tccxL&RXAM=Fi;7h4AM!23{hQ9~UZ%X+E%_=(<|4HkCi%I-0~ zfmbcl#UH+rI{C3YdQaJ7fb$2=7(d~A;r~3}uwgcZc~LDpO1*H@09in$zuyDlR{^y7 z+yV<0J5J&OK{Q7@j9NCcV#f0$jxRgkKTP-UY&lHxMI|-_w&E- z1-W_rM4mpmkV`E+@10NSn=u+xv>@1P2Vk?=*cfCrrf+t*V~cMC{X;D9EoRQO=>bvH z)~4f_JtlEQ8z<00iM#3yi_`LXcB*Cm$(e3|O0&@=`EtmN_d9)F#iAN*yiC$c?k+Si zo(^RK(s)_(38~M=KvZ#~Lcmv(H2B_Y^JStqV~}^>yCy8bW?F0Z4}p_R9UDIrXqb^} z2>cg;KtCURX`lu~!PuILIE4lTDDU8)LMG2Coh}D{6YcWzyLUJmz)_Jv}CH zqfF-ig3U)oZU{5@vL@M|L%h+X>WF=s7%*p%qfxei0aDTnWhy3X#4yTK*-S9?6_6$B z;kDHu+3Gzjwkw(G&m%An*w_=QC=K)wT+B6?O$*sAAIUh{EDX4=q11{*s|*myL79So z_yDnAIgp)xZf(`t;?s0tf+HU9*U82vsYXMRq&W`fl#A(fs&L^>gT}_h7Dx&4nb2eeadho)8y~&( zmIlWuHxy_&Ls+X0E0a1aN~-U`cjfYWC1y=yV~OA~BJi#^#xXE5W!esulX7VIC|4cE32WV4D^BHX^nFl-m$aGAu+qjm)yas|96{7fyV6oF78CMy z*6WotnnB}wfZw*gxt7({W5vhTa$X@@9LQp-nMT+V>m(l%o0z6ja~CTRP9kk;G*>X0 zBbq5cVX&s1Q+H5FXZAXTwL!(nm73W|#rHD=Rj8bivsgi&Qa>k1(ePjHG(aMAM#h2? zo0wtVfM~K5CSm8Ow3TQOXvG1k&o^^r>cTs#oWG7Xx0@WZY$&jy0S{i+&|9n>|Hbd3 zv@~lXHfNyfgTtXNOdO)75VGN*rje+br&cha_MGbL58-=_!(8v<5H_ooja1%SR5I0j zy{eZCB#>)cCw=XcJ5rt9m)+_{57iYjJ@|M-699y1;>hqrZ_Sotq=(n|!5v8&AUi$i z21|Y3let`f`@2%ihH`H{;mGMmVV~V<&uRqO@spdCr14137h2Jr&5_I+eWtKUfppZ2 z;pNF0A%hnVj^?>m#-YKI|Jy`FI0y-`2|^+}{u@;rSzZU@nezGtpMr@L5!vXyT_ScC zHkS_}VZ0?UQS@e>mU=Ru#vfyR`uKCuKmG@U&S1zU$*yRvG$MUQ%f;D*fsD4BWC2ITb}scPFLm)OS34`6(AI5R0{XzYkXGeHVophD2+xbxs;ZP0u{ zzVnT5Q86gJqPQta%>c>ONZ!SB_&8KLll(ru)#6`&}yx=;*iC3DSGrsE)s2`ETf8fq5Qc*Ruuw2Wv8 zocy`bl?E2KZ9wkc$oJn_GccNbr7ItanE&$_jWnmFuw>NCO5fXLa;i{+mZT&}YWW%9 zAc$;lt7Z9$9@{0!>f#m?awzA5t%YntW`L7rl6>3x^RS^Pyv8d^Q>*bsWIa-5ERpyj zi0Bd18?~wSH2OYC7c%xG?HEv!Q|~jFpezC-ngqx`G22lOM+^`ng+<2oj!l?hh4Ow! zGB>c~#R8t)a|#ec%ob{yml_yv?wm?`^>v2%?ebE8$A%GhHKuC{CIfqz18drQttEB^ zKXvWO&(3Cw-BNW$ZWO916>~XP3_0EGgWS}{N95^+RGz$tmhxb@Nyrj!v^fL9@kp~ODiJrivN7`E;A9AH+jhee z5l(mz0KjwtIh7ieUj6K+ZCkm<2~L z*G}gcvh>9M=JN2Bhw_zQ{*3(NfBZGY{I+uU>_h`K!tkCWgc0_o-03AtvWu-YOIA-c z6NsD_W*HeGrz%$aR@PfkBJ9LQb`9Hs^=hS%-QMKV5KKX4-X$wZ^>t2w0gWx7FvEgy zD@M(o;e)Kg$6ncy2O89-5j|;^+9Z1C(Nf-d(lCoknO)!+1Eu9R(yzkK?Bc;Dv%EghR7mOHfJ2c8+q|PRz za6Iv|4lUD%jGYD4*7OFWnV1hCPC>?+bMtmVdZlPxh^6B+tOvsz@+HJ(qOdkZxl zJ#035Z!xPq)vRxV8R`LC7h%7khaCdHRyU<)=2zNLUv6sp@+|e>eS18U>xZw&Hx!Hf zj2`SS>+_8EOU^a2xn7yw?=zO2Z6UDJ1;&5GG$@1}yRwok~ zpD%dW7cGP-uH{Pc! zg^2|R*K`a9UGRAvuH&q9XJL@A1d%E$+j+PkD8gGv_t;IaL!&Ls7n}kf)I5L^|C(aK zrIu1}e7rI`JX?hy;fSH{%)Rg91sLOxCn)CE2uF>R`jVsDY^rWIOF#* zC9qJ8@-v_RIr-Cn`R9slDpsd~?@R&mA+nfo#rGb8&gepfgI_h%g`%J1F%(WgK;F3C zq6m3?R9iy{qk*PvOhv|&U2N`oNLs$d>@GAV2h9G3`P7@z;9T4jY&?!=6;>Wy|%x11h< z#F-XUTB2XDDFx4&RKy++XOjt~70dLBn=959K$36rn8(p@Z;}5X*kQIDfzCU;)~ZU5 ztyP@bKoezyi=gWVgQCb*hTIRvoo%cLkqsOJ_cpD90J4QfrUtVbv?$%YQ!QZ!(8CPS zfrQ;c%Mm@SyB+9d%~Y{QJ=DvoT0b{xU@V*{M zLB9Xwk(?-W^6>o3vOSk<^H67dE?PN^1CwIYP>nKUapxd9_3o%wk!g^|q6lOkAk#MA zn4HyHv$b<|AgbmEbCA5&>$B1feS>jQt!|PN{_%_8-Ac38jC>{2Aix}d5W$J?A^-M1 z!S01qHb1Gyi{9fA=~OTLSeqsxUiiP5rXn&aIJIHwrA~D}4@#Rvdefjm@{O>517RXx*8YF@3J6qLl(% z8h0?xN)|wC5Yn}z9*oZQxhre8ql=2HK6X?%-)*k6;q*kWJ)HI`F%G0zgJxY-G{T1C zDFsM+vDIKc-?T%W0>vrq<*x*{0dPut~W4T*Np&fsAsZmB3rFB@DWtBGa+9)ieYvM}Z|F>Vd zFYC{|BCmY$7v-1l-XhY}aPo2s_n<>}0 z_r+fB-kq^>dh4AhaOp zxZHG#r|bPU%UsNQ>)z9Scej8TZ*z+J>h#AFuYRfmT5>_*0p^{g&L(47%K#k8{C_C9qn7 zfG>Pw9zHykH(tFbX`=5}VU)*fXha4o-M{|XS7p72Q|mS19F(F%#gZqwXio3mmwRVZ zxp(KBm}60xZ?#DT8n-ffww!H0kS!u>?DVj*QND_SK4tn&zb!-mXUK=F(N6lT-=a*i z*TBAP-9H=y8Uc-~4le1mzPO|JZy(3RATj?w)PEmq!)~li*I{ZGx|hQ1^24rbe?s(} z4|{wd30;ohfn*mMokvW|?Ds2EL_R_k@Ne8CZSX%^|M^l*Pfy7igO(%yn@&W9VD}o}_??&T%D?+R{af-6{{DX~|Ji@` zTk=2qU;Qt9{Hih?L7tpWCP&azP;W4qY4-R)UU}_-y!EX&Wv%gc1|qb6j)4nFL}NJ6 zkI3B%*hm5yEQ`|S24kjEq-cQ)0R_Qs3FYm^rOZm3sA;Sr$p;oPWXzz|n12TuCZZ&M z2fqv24zB57P>{$?RqNKqIOiuNH7SGGCSvxPjO4wqfzv_0XCZ^>eGSlbCDx$6*1)BW zivSI6Js8$n3hr+>!_ABvxMH$nfvpLgYHe@oc=g45NcvCD4hAw32>F-RnDga9$ZY=AkX`8O0-DED`(1yvAf9sd!*FN{U+=rJ0 zTK(Vnwk-bepUW%I_k?QEo`@%*70|jcB?DH)LNmlyUpbeVcBr?=+7rf8hjO!Pczu!v zQTT*^`r%kkrf2#dw9M9opoChFuIY((si8v(S{40lkp1HxIg8u4!X_VvpoqhZi;o9P zVPt*e!$sb=xA$)A)mop4`o>JIkR^Er-S={C)_`(_QA3=E5a}TBt@qEeS!a3I>$>T)<$Z@`(g1~vpCGCA4h9w4`qHB!xdHSADre3n$!zFDDbYWmr3!pe`S~sg3 z%7G2GrDvZtJC(yBCKyV3bD#@6n@#LF6qkDN@SbLibK+E;M9$j6?tM~88 zr#}0J{CgT8|LH&Z|H<2Ly(O={_NvJ?1*=z48qu@2G<~};n8|RykT3kg=jFTK{*GL% zofI6|htbl^0$uWI24Cbb@=f_i&%!cZI#-=3a^rW9MF5M$gc^i8Y!uUk6827Y+G<2x zEj=R~@FMnNx1G~wY?j%^Crxy?CC&(C9;gxxN}FE<)|W>c@mdf7*=|9i9%(svpR^y7 ziqnQev!T%H05W0Cl^$A}J!v-`=3fx;rJ{FZBcdh^tk~~p%JDi{^tSomI%Zg)F5%3m z^w8Y7TKpCYHK1uJ=JvEL%Xg&s-QSakH#cVNR@*E(4wh!Kr@sx9&d(Qfx%co~?%h3ANM@v! z!%(x+Iav-<{k;XoER#7Yf_65y}bhif20e>I%};vNr~$?rXEvkx~}i0 zfrf+9W2y`HbZ3agV1QZbEi;XJU$|&)$G|w9>Y~%d3@+qM7vQ;Kj2I`hQNw{rd|@GK za|M9$)2kb~r)BahZ@eO39se~w{r5(gMK`3Ym<1)$5n5{$;rP|XT4`{6?Q@@%#hu^N z#?Xaafez+y8%k^rF1S%rG>;<#zdOqS0SD!?jZGFuNwzziY36JzyWfh(%87oq0h>g? zu`ZszCs!9We-EZuon2yHGh&&IeWOi>djRq`ED^xx9t=1;#O$3-r@prq$-i7~G!QDj zI2g_JXQ$+R>W-JVzory_mA0hrtk;hOeP4Vqe8zHQJVqkeqEo_xwDi2qhFZ)Z+4xc_aQsSf$Hp^c{nJZv<~ zRnKNq&g)`x?FVoq9LrQY!JxgY6gL835B2f0^Eu1MQUfCzIhd*ezig}}%6JIB=*ohr zzQ#;(u$v17)b(d38fES(*#7wOW6t7EVA+7qZDR`Ns8`t~)$*~SW86e$XLsd|Prod0 z{>cSY?X_Q_i)4nGT`m7Kh-@J;tC>cnok#?OuDRj!)yV(wJl;Ub7&xnLGH@gH1&a<= zOL`z6kZY#6(G9)QOat78mq=!Gg41 zK9#gt(Z-;0K3<`R*-)`bSXShVjCBT~5ganXyRe{oozKSt#v{fTF@$%0aZUYCTK%3Z zWcT2K2J23)6q;!+o=Ez$uggMHd^CH6_^sX##ZVf>HujA%O$y+wvlA-R1gM3h($Q>n zFomM{ko$IrdVu#^^E<^gF`*T-V!|K-PV%-0E+ky=P&Z*S3qF`_j>r~)!E328*z2`` z-wkK0D>kdTVn_>HYsNHQPUpboc%uLY@&VxF*=Qc~^YRAwFM5|7kJ4-OR2U7+mz+_q zk~Kn zu=`qOul3}Iek979r~wh#L`kH+I8-JoD5dK?#esWLZ;(@8h zh;iLeULly)3JdJFOMxUhID&-&<|tKJ+QQ?vwPEYFLFtc(HrCBw$i?M_cGaJ-3kz&@ zHcFnEnb>dZUe^e4@Pq---?~m_X{--sv-taXWJ0Y2n-t_1`03kyphC}PAJ{;FA5N&R zG&5V;$QYReDF2|kvjJ+W<)N?%QUXIjv#o@hj(!e2k2Y$6?TzPi#SKfFq}VskbrfQg zRARy%)=X-v8R`bt2x7CagViR|5*$PgA{9h~H=Saz3M-5hy9_gQR*0(=>4qh8qaAr8 zJe%(c8VI1mVEBNOAi?ljV4B3UgZZeVl6a`q#ZUoZ%J*tTvVD3h-BLV@6=y64Jq* z0{l`3tH!#*^d$ogI$OdHDF?lyoyx%3TB3E!%RbKniU+`O_`OUbFZ}n7x+k|Zyn-K0 zKfd6YasnIVVK?kaRZ>dONYwb%kR$3-+}W{_YZv#T5f8P zf(eSuMUy9OuGqPM2DKh`L>*Vt#Rr-W^&cUXrkNZz$QUZkG`32nJPS&KW_ry4IMznq z)H3N8KKmKXE{80gVSbP1Pb^z{WFrVr$r%d`BXGzRG$7o)`+#(eB5oOkkhKjoTNuw4 zjxh!X=|VH2$-P%(d7~Xk&3040p&n(_(>`g*isnG0S^0adG0{`o2;)?<@Pr@^oknmkgS`$3!O*h=-qaQBYJ+!*k`RyXX`vbU6!L7q zlPkj#Fz$ErRGRBY^lT2~HwMywCYrT@B8E*#$4FghYb`k`y#_-y>P+tC>|`XT8rWvw zJL)@ItyfZOvkr|E#B``f-PZ{E*{6@>N(0bK`a5_2{F}14SuxYDATnGTUR-Zi9ATvz zvNn~#VXY1gCr{CfILjbok*f{M5SbZTPI{*jLkkc#BSj_q?$r{0hs+am|YpL|p1#SbIyq7nYycD-zt;gx|42PfsZbqF$eE-lze zfx3z|E%bG^y7?*Lw7Zhc^@YBN6HWzTBBb}7(m-)CJ&}zz4O-nu?M9md+FaUP*NUOu z*jV7!xOp8$1~EaT8)gEr;L#}|fz)BrXG2cp2-$1MNM2Sfi5P%C#j5JzTRa*9Aju;K& z)l!4DmgU{}Osezyx-miDQ6K>?*mgY!sd1$qY+RtHP~qmRG&Zq5e?_S`g-t+0M_|;? zk5Ndbe+dqhH!`?>R~D;xWdu=LUu`%5fl*g@-DFKNbX2zr$!wrD4xtL*i5grcm`R^2 z{GvGHRJ-4e2K7cuZwc~KP7=5xO7P&jh30} z)`dp`O8I+tW%25#H0#v&y}4ppjWt)%6T_tUSUxL89x%eFYo(xC^s7THp@mx!7DH|66I#o@qMfm zCtJdyP=V8dW^X8ETV7M)=PiepF|f?DBSW@e!R&EewPeIZbOZ}wO`XV{2FjUc)DV*m ztN?e+zM<@$*8(vqc*X#WCB3Jh<|V;@7&}p%R?F)FC_r;#yTkILfoJ)R%$IM=Vs{|} z@GUXLB0>S>@nFaR(sicPjS_pOL4Ko|8iNspJv3N=9dM>=WvsR4n7lB}!j~InoRxOs zK@)=j2xiMC5RA}&J5gvOUO%M|c&GP@R2F)oHzc{ENr*-Wr0(u2+%h^pBi|K#!xGt| zz7Co+d;AXgq8edPCsJ%lVgWl<28t8T1 zktnaw!{|hxe@rre!OW!KEPvU#=tp#_O>h!zZrYI9bJ);UeH{M#{pfq0|E{Fe_f2}= zY-=QSF9;G*ew2@&%nWtv+pWRLddY)Fe&hxVHYhTMJx?X5^9+4@!h&Ax{GtN#Z;cpT z@K?2bEKJ>*vWF-S(5TTTMAv)2-}ROXn2ecgS9CD+1r2Z;q~nz6Q^LhlH{{QW<02gi zyT+w_aQ|HXi|>6`{@@S(Kz`*f{i>Xy!zeyRh58Cv4>FEsXmijOw;71wkVu~zedB`w zFYUG5TwO?|r8PtZ8U$MUatPmBsU>Sb=B%3rmJGvsF5T{&-As7hAVY(B5}FB}28O+6 zc55xWG2`6qVewfpv!L>GzQ#d%!!4SC8AHT_lP6q4F=@!&Dwf#NE&x+Bn=OK*W=R8J zUQ^nlqMMEKeX4;Gx|QVoVRp7HHJC=ZT7$=S!b$)g^(EDQkg1KOTIlDVXvTz05C&E7 z>7i?5?1}yumxIW@jX>HxMl@()bOmftgY7D6Ne)J_HXAAkJLmxgQQe_-&CxN3bt*iZ zNk*<yJ%qD`-B z^N7*=niS(qdN`rc(5#d3RCNsl=1JQPd5sgmGm3fQ0DxNi`0iaf(*_RxTJ+RpAjAE_ zL5YBk3=hrcF(!S`k)FCq+1^AVbPdJUc92PjwcKm?3COxZ`x1u&C{)_U(tAH(W@z)y z3P~t_iy3$*4&lojHur916qqEGv`sKBYEEL^}~umWC0V<2R5@aIT5xThXFjr{?X91OP1 z1^+$J%m61eg4#sEehAw_@n)zC1YR&$d{7uCz8JEQMPi1@8x8u%QTmTZ>0%WRA3T&d z|NPIj6dlN~{@Sm}MAI-fjokLN){J2Qu1wb8Vri0yZDF}=cZpLm5DCSwJ>KU~0|n?H zARu>ibSvnq4Q)nvC?i*7DG1@;aL1;Fw8W<5{%x0u+?X;r|L%5MvBD=wm7$}s$cNjt#HoV@zVi8*g zx}K(b&#$hxT%%)!P3Cv+NHrbvu!1DtSiCbHtYqQ31b1;@l5_}Om`>`_j*~$!7AveU z>8mGQ=vGp*JH6v)K;{~|%9OrCBG+^emq5+7kui#!-37Or=OISLYb$8 z8P$TPT0CUm2qx@sL$VBGhx!Ga1d|0QgV7PqpmwBWz1b>^sTd;iEI*Sje!4jpixc_Y zcfT*!Pp{-Z{J;L+;rC;GHreh+dc*U&8pA21?yDBM=(n%tqgI z1Jp?|OKn1+3Da1z$xB6=rd>jhn8KBrZC^q(t|a;f=uRU*2F?5m4UCZg%4*%PQCysA zmNf!iS97d!xhXX;!YFjkEX??uEnm6?cB^ zMA+#@Bh&@@4i=sUNCdf}Ho19}C#_!}kkU`@za$%ARTqym_<$yZC|8l>D^Z&RAT+~J zKKYDnvd;)1Rp3Yi-MmeG!%jLn&#b;o*Yp4%c{~O+aKw~nN+FHCJ}(q@kTJ#~{Ah+I zZc1DWmJ>;46TId|1A%6F8kASCZH)^(jAkaRfNUq&XibYTJ}p0MOew*pl%lAub*Vwv zm)K9xbifbMaYoaC!{VjQBLkx0!1-FU#T|{)0;WB1*idrIjHEhHXEa-f2rOooh2-Rh zG$YFPYnfY22h7&ZJx?)4;Llo)&NUmptJiPXt{E8jn;iu&W+x}a524u@G;5q{kYliJ z>@bHsS~s)%4YlsLwGaccMBFc#5sx&>9L#5AMu2_L?pF!}n4m?{_lAQF!3?x53=#+_ zHjNmeNh=WCQxM{tEny9m(;(fOAaF<407eK)?t#PxTPhOqTC<8sHjb!pQ;K_L$-<_~ zfY-qut`sf?TLpK3<4kod`oQRIP=3*TA;n&kGv=}yy@7Z{`|;ro@68;=0t=Qu_RR64 zcuD^x9|penSBjaGl~N^j_6!f{sCC#;Zb^tuX1pSV1Lu+Rx)QvbXIwnmA4KyIjy|iK zuSTzHDZ)t`lx!^ZaT@o8b5~2&2etbk)1{koteMnr{nmdXfB7%}s&x+YiJ6UHn5o&~ zp}CNr zTv3v~a+}mWN?y)9Y$<>n%X2D6x2`lTCFJ#6Y8v*=hsoaVdJ9Zwt)+CLmotk!@DfW3 zg;7udrQN97%ftI8^5Cq}jCG=!V<}&MOS4?vLEGUS4XRMvzG22xMu$5_6H-_Lc!jV% z(EJja)B5^~*R2$zV-?9I^cl23*)eB6c2k?i5?#d<1G>57YGzfLQfw9zu*rl_MJIk5 zU}!z;6|>c5*0>}IA6aZk%K*JQ6Np~uXHm@Zfp&+7+C4^K*zQ0|hhY^&hD*7GNtqsK zlf{TxAZ{~MpsM?tgzCW=ic>u_wuC*Z{e11fLR_-sMvG-XtTzjTwpxHB#yqtKXUmfaoOzCH#b5}fhGlgBg=%Fo{A~b`m*uPN#SIk9?PplctzHYdY zAHVyyy!+O>^4h2FvTW}f`yG7I(}dB-wtnLVT9715i-wJe0Z;dmxdBwTG2UnZdm=EX zc@CQ+>{O4ZT(C5+W!JVKWrpN#>Pg!J(_`$$lhS`&~^!cM(dC%+cz$ zwK>IoYuBTJ1t^3YkehI}(c0I{%AhhG*7C}Ok^JHt543Zu&)W^<`kkdbzS3+n+}DjZ zvFu;V-;%~x4dU>>mIbGzDiPJL+&o3kr?#Qz0=IH87B@ zNn2Al;BsMA_@y9A$7B!$Fd#Tm7Qp^$&N~Nf9CZ_Gm?2YdK-mc9er|Hdd(XzEoqeoCu*@LanS#i0vMn?Sf>*aBzW3R+d5oFUOC zFEX!tF?PhQEywD>BFz8}h6t!-OAFWmeS;dg(tx{@DTQcptvSx;Y9GOgH;lZ#xkwUs zu4M3rN@O&4cT8@5)8kD39J#tlenkH6#m5|qXT z<)@<4P!bmz2)RPXxmrxty|cM$=fX)k1poZ+hr`BC%-{i3@+e%!IHZ4`)Hl`axojEO z$w{uH*eK&}x3`Q2bO~5H=;r$VcfT#4dga{jWwKdRWJdTqCwhd=cDsE?>~F1!-fD%7 zaie9`ns5Q;aT|=5K@A7xh5N2j4575S=cYm9Kug?qMjWuiTsQoP$+Fm!^Veur2PzK^ z0f=7^OLJ}`MjF>zDlXRzM=#L{$F-Xbfr*+BEK90XFk^?BPb%D)iI^Bf@3(R~3-bBb zU(ybI;C21Z_aDjEzq6F9-9o|sIUNX1UAp4?8VpPc37IR(X5fPe-j|n8WO;Q->@aB{ zM8HNN+H&r@XCleV1=WfQFg$HT8i5;`Pfm3XP%d$ni4k+P~O>TFWQm#i*f?)xQk7ARB zX7yuq@`EtY;Xp3pahYm?k>1#yB@5x!l#6L~QXM`7=Nh&wi7ml!3=#LQwY|#f!S_tY z^>ejXI3~skon(nlpCwAB>*W0@&%}bGz3Xof*W%6eVUNI?Tz;L&NCr;47P-{j6Yzf>!G>mp6Xt&HPN4y66 ze$gYq67xm24gMc&NHrrJ4|lQ{Lb?1#v)%{tr{DUn{K=a)a^2jOO}MLB<6JSt5l0^@ zQG88*r>e}igrkj6xIy66M%4AAx5*tO$1a#B&z>WgrDVB&bo5C(N2jPX&L_kT(3mh8 zO{4cv^#w-v`#tB~xkeyKhe;ubKERS!JJ#@!LFw3F7I~-;$>}LALrcx5r?^ib-Xj?6 z0X+lO%Fk{JJ~%ALD7nXpB{oke@nt!!=Z86DI(5#H@c1_wx3Uxr%4kY)LzQ2Ok z0-RQg33KMybS)94DmW#=l2`-hoXIn~;*Y5S56m1q$PpyiN+bSbO#pHVM@t8@GKh&!xELO9`b~*GGZ0j62wk|UPUFGRyVYIZCvJLYXk^!y%(mW-N_gLg&nA6` zB<982Uw{71TbSbqX&wGWd%URc#2L%Z_2N(xFo==RVUP=@*3Ez?xKDN0r9(%V!LaSW zcPxa<+^@eAhi=*N&FQay$iwjFVi%KPG$98Ily&;N%hlTH2i9c3zk}YwY-D`2C+H8aWDOq%h_+v3pxHDe zuITlH+0`Y@S?Rs_`Vk zM1XRZ?O59CRNu&mUG~r!{u3PP>b$zMJ#xq%gLl}OIU2dKFN6<1^@s02yZ`!NDOTBq zuJ|`po@XEI%!c4)Mdk-47omuBS7V?_K6KRi@5n(G$?lMq6Q)@0C)h2FGXuvW;rRP8 z^v#bDjzkuDs~qgdS&QI!vow2BWSOlwA3k{SfLIzw4?*W};%oFphD{FP+>MrM{FbX< zTc#W>o5Us@4QL|@4MhfHsI=I4g3%+e;gT^`NEBCm3*5XK6A#+d=!mJd#MvO2vF)y? zUx-gZ?+{p$#w|Uq8*Tzd4g50fv5o3r{>(L-oj5%!3 z>7g*k=i|5yMmtejCkhg`yPaos!T>ot(NbAocQhUm&s}SW9nB!WSdY*t$b` zeZVkNkKcBg&D>{}(Mu1X@$`Q#vg))MViV)?V#5aVp)P~$E*dQX69Ie8c3OgXR(9UG zb5~}Q3CHwUY83V%6Ibh=96S)5Z!k8uPtqT@#CB}dF8INayXeRSpw)*lt{P=sGEAzA zc1<9&)iu^!!nrZg3WYZ9Q)h_My^ntwjy(jYCO_WWV$~tKmy_(bX9`>Nvj%=W{2p(HA zKg0c`Tc74#-~g7w%nQ4(buVmm!@(FpK7~qRub z)|~*A2iY=I!XeEM+%K{5Qn9(T2VYe0Gsa67+NA}S2dWQ3HL_;5gqcb0jnll^^ zWjfQYyhamn9TDKR*E_DGQeSrfH$w0}71kKfN;ZvP_keqfNhxqaaoBeHMu(6^;xtO& z_#qp=cpVMU;MqccPk6W(=MgrsI2f6=c~gUf6UnX}l{Y(UR07)uc^?!kaY`DmeF}Z> zf>fE&$%Iap1<2s~^Nlu-UU_R9=01)EO%CzfY1p{olL5=YNZH*Xv&1G{oSn(LZ$HvKsHKSFWncW|pVO1KrkV(x zdQnc{fea^syQtX(rY4?TZm4F1Okt>!1P+-$i~_WJMdJ-+0qA~HbWifheysadGceR?+44Y`$TeNRm?T#93o zNMfS~5-9NiV=FCec5bAF*I(@_`QvY0%6m_d+1-ZpKOiZD)E|U?nakyaO z1S&WhMP`dLcBw}gYpqIlcv77og|4ICmx_mfjO}TcmmKjT;kEr6H5lW1IC!2 zuREHU$pX6G3+Dr6|K-nM-uS`?@8MCMo3p4uQ*|>ma;Z(p3O==1iT&L3e8_8Al4>2f zTvj7{%)ghtl>65TMNjd8P9gsJ{!0(!&;I03ZR2Q(_zPeBd3TYsjo`d>ir*qrLZ^MV zYvkhUhEy5gNLk`UT8~00geK2JN z2b?DxEuA+*1@Wh{QH*gtIF;4#O!2%EW*Ea}B?J8`>J6_Kt}oe&m`>3y6zEGJzmrVP z1IVyf`T~`fNdr>A#1aoKa1jYDfUN+BN3%mk>WRPzQ3kV_FiH;~TR;f{l^@P>Yo>pC zCh-k@pVfe~(IZ?_y^aeFL?gwJ&&Q==jyRSvv)ssb1OB0j?g}TV4FAS-O>(;e=uVP? zq)-L4Kwo*~C7GX0y}@EQs5MNCbR}t14`b9|+fGX^Zc-&f;(`WFi#JEE(-C&g=Ktv$*2?q0H-~ z?aOl#y+fw=ShA4^I&vkL2Pcxqt)%SPzxP$+(f%(rdS3lF8!zqn=P$pV@ffQV=@npNE_cOG-PoH!v4m5= z2c^~B``Unb??O(_7xIz@%Ruc!ZD>>@yT`4WH=*OV*K&8c+RNjM4aE(H(U(>7CQCGa zpGnpiJtr)sL;o?k?+CiyRD5>R`u6Cvfk!x9+>z_mmO=TYS3V`z*GqZl?RVG+swhCw z%JuTb7B^(!^z)paj1>>vlA=V{QaJO8QI9aM4TP_wN;Y&4N2J_93}P3ivK^kvZhS|3 zKT~QwR#Xwv*V0Xli4_v3_1@9%8NssAjxIXKye$V7fJktLu833#Kk9 z9$+i+-_KQD7MgfL4Djs8)cytC>L8c$Zytw-*SSoyyTj}>Z#3oLwL=SQRi1j;yxjyH z49Mk^h#YmKd(1IEj_?rsA#1+at7Pt0U=~BRU$F8OQz+(!*P4>g$y~nh#V^PoT>ZX0 zeD$HxHc(I}8_}}Uv$f8;0^3{7)-G-~a=qSJFcVY70ZmCkG4k5%cMcP&#!vI62^JRs za!fpk0pv_ZkTDd&$0;p9!t;ANozr`}T`uM4KL2@+E57^AJA@`ir4yeq&kQ29SZ5PL zzk|Vq)Sewopa|TLwRths-~~>eUVp_EAyd|Q84MGsq`%Yp*&%NTCc6%E$8=OKvn%SUp7Rz~gh`K1X!8A&XXT$y}gbV=>^NQ|bK*L+we! zE*H2psAII1)r@g;#(8fvuM&K~$y|Vnxrx%Y$$XWJhv)!ZK%&256`nv4pAANT%c8a@ zi-ASr&|#*DsWbk4;8go?$O2PlD4GfnyWJ^|`E_1WdqU%QWZuK}yT`%Nw_s1@@x2{_ z4}N$VALAA3lb`9}*k`i-$D!?i6uq2UgCK^Ct!D6W)o{Oo2O7?80654YqdKJThi6aT z;E*1RJ#=h4ZY<+D+M!msZ32MnLIaSNP_MrxkKcPFFTeEA${bg0;fP&-L>hGm>Nsz| z`$#+0-aAA#<1^evX;}kvVEQ=cOx71(^zk-siiR{6^H=E@xQjeq=-p>1u)sKMeSNJs z=bGi`FMjD4i93Gt&%drs8;CmSYbss}RUmA3ItC(%2u3JI2nO{eYG6zeecUa}0M zff8B%dZoc~K!xnstz~ubwlv!-D~U7qt0nMcF_j_a)HQfwCcB6uD)Mj&N1uBK?;))w z3KvPXu|F~Tl)m?Y2IfY;4@wec^*H;jpLsHq>hzAp*_k$sV3CmcnfI8#*Z+p(88W#6 z85bQ1>u9J2L#jEk6?~sWinNrxhrEVt4km9#n*3Np)$o$l07O^V`6tJ>w1fb}d>n3G zIkj>)oJ}(@@L=lKXC4`h2D@}FLs%roC2s}C^xXbW4lP-Sr{Bw$dccG?e{heh=K;{4 z-bXrguU=T%AEsrJcgKqU7YqRAMW-OC@WxS@Sma>PlNtJb;Iz}I%e8Tcd1k=MQ=cXf zCvKAp;lI}%Vy$~)`{WE39yc!LgCkX$fAuf_w-g_W#6H{F%X!kXIZY_g`nG__yAl}hzSIoi+ z#ZJ-uU^9)%;-;%c1@=4?(3%ljTbQpj?>)GT2mpG0!+e3huMA-ZrU%CmnUetO&M+ir> zH=v&o^eVxAs5%CnN)Oob{GOB=7(t=Iyg58{GZ4p^V|P;_;+q_ zChvGemJVI=?ixC>$pB$Gmr?4bv#Z>Nz8p{anSvc2#Ibz5?11}b+KgYsWY~ z^7L$sDuRrWxh=@I0}EUe#oNYwIm=k`bLP2dd=I*TPp__JsaXn0!xjW>ju~=Q;H~l1 z-Oq((dG4r7whb+awRQe^#3@cBX;axpd@}^%a2@Ot!0m$qx&}wc@*^mJ=@-8wJ1w=} z`QG=8B#-WI+c}r6W1up18lwm8Vdv0V7J!KreE2q68IKq2O8BCTj35mRP`l8W3!hB! z`hm8rEtGROVbrntAjm`!c)3{z6g;3>CGbip_2?yBDkK2<_6#DjWgwQDlFd~km{F93 zmW&O*Z)>b2+(Mow{u?|?El1-_%U&)0!SB4II58(#v@tf-_dLdC)NE00Q6XWrHJYkBR6XPvDd1NJJM#|h;nYN@Z~6!qUcJQrp;WV8{ed^gE>Tf9m|X_<&uu{D1ENkYUg`d(4 zi8kQRjM`eJS|S;&5LpIWN1a4(AV&(1jV5EhCpMaPoop0ioGEVi<*$5Mw##d(;Gn#t zP(~-*&~%j3AO*jet_kMpL+O3PVTA@+C8<@|kYzQK2xS|AqR>Wzjb>IOZFY>{#jUvI z>V^T0jhBIEH@Y!lL7I>?Yt}?LHPB%cPs8}+8g`}{P-o+c&_kmc*LL6dIR?86&8>E8 zcE5SM^Y|c3J8K-F1jfO$!~3p=e`v$+CfWm`Bb*6$DB$UA!zsk zJJK@z&fPoIYg}Gy@VvQ}seV=lN)4#f`CQgG5W%F-bo1qqdQF3ynHo=u(nQ@9Er-B*I zEy?s8(b;E)pD5C%>t#&!bq2^_7&j{|2)yX^95|Pj(4;qG7~_InV>ItVjJ+^Sa0B(= zJmF_hvcta44u;R|_x1pF1^2TCO|9)TILiLgI7%YN8iYR!k6RZj$!%N$8y^&&&L%fW zYDU%wDnzidw@pVUns^5~7!VF|hW<+SRlqY?rdSY+F=vVF&5HQh82aeynWzg^B+uGV zZY9ctiDh@e8aSpkDE$|FS85HAm&=U|CJRX$_=7Z*<3iRk(2}tj&4jje?z_@9*7P~Z zsKq0p4C@P8rstCj!9f9UXmu2Kh}^_G*o(qF53|cHGRQUcEr02ke_8(U_kTx&=2lE; z$2!+2=S!5&Z9$At=pj-tyBlb>L!z*5W}#9Jh}8o-STsYNRJBZCIS{nzQnys8X*FAh zw@oZgsAANSj--KWt{L~~IU70BoxNbSqLvJ>elhYa97DM4|bl`Yo zzL%t6b>w=&_-#hdZ3INJAgIJs_ynHKKVv;s$-IML@la{Ah{3Dbn}`V;Vq&A8$Qs#H zY|T!Dd&p=~s3KY%yfQSuo#>P}-+!=C2%HDsaJ(>i*60>#42-QeOsG$p)h&Ea@UOA- z=A|&QX1Wj_)L(VqCd*N*QcFG9DBfj=7I=xTYqvU_{mPr&lYb$9(H|eH@=u3ymQx9i zA`*7ifB^$|oO$BeS+7_eEKr)Bj7U#C!0&r`kRScedj^RI`I0!{vhob;gF}YN?jeIf z!2n{kqGS!5+}J@ts~jx}CL94l(WT;4Yslx|-%Bf72DECJXm)3++Q@Ri=cDYrBu7AP zp<2T>8ZJ}Zo=-K0L>n~|hZRWpM%f8js?tt-eh-Zy4Ma7Z6vspP%x6C@-~9TYG8m(j zZk=xlmq2u%qhfVvCbUVhv0}pP3)d1@8)v?QleqQuXAsbiMuma0xjk%Vx{VXtlp1hq zunx4GoWAlYE$#G^tuxV7k=o4Ppuv`J>Hdt9V$)al`G-z`10um7181CJe;1et6yKQc!n?qPmj(@`(oZg38}{EmRtm z;Y2yt1`7l)_D~Fht!Zg62dp+=N4tXpJ4#9|&tG}t70yc+S)>CEJj{X@218Jr5hXBT zlz~?)6u_e)S|rias5Nb`=4}&3Y#b${DJ6Ghq#c9nDW<-GXL~2Qj9BYIunq$%xbs1O z-Nr>yfCnqCtDlkObTB#@u*KFD_OcQWIk#E;yU3FhM;$f{m$>H{zD8-bH12j#lP|tjrTk zA2NCq2+uc$uShKHb&~Nku@4_Ty`rEjFt4WEQI4k{C0a|j(^x7%!GjJYL7KgVt|X+Po?2YX-&5J8x;1dqZ+MvOWgbU2TwsUgR~q$sMylba_!lz?PyT z6-F~~4UCoIle^tYZnP{P>Ghn!PkS&jj;tO46NMRuI5hSvmhBtus^c?2It=y{)?A4C z-<1ZxAr*A!8;*`Y zTo-mY3A^~hpQEr#1F_=`vs06HcC428zL(VaZx??~@esuL{pg4|M_B_iSEKJ(7dw-? zxi^E?=i(wNouxfC_>mJRJ~tUWrES?4&sTpqVf!ygU=(kFkR+Q-+8&2wFn6@Q-k23s zPtXa52M83pcMcjeWaKBy0n&n)R~CLFQ?5AsW=qUpsXyPWG|!@`R%=^hh1pv$xI5qQ z92gm71Ah-f5h;hPlwpA=@4WYfGG&;em_ZsJnTc-Hv$L6EV-u|g2UM%BFx`UE(?{ow zJ&{lCXdP5MdrUb^aP?&&{i9&{E1aT$FzQq{{mtbyN!|gRzILJ|dpl7QNqEgvGh6g6l?k-LntypXOLEq=&ILz&jopz zwQUy6BWnZeM6tcJy_VfO@5y`L{f4v{Y1GdGp;;=@?DxzFhuGWjq}lG+Yen6ML!hJ% zVj(+y{k>k(3gWVQ{kGb~+1^~pM4w|enQ@a>`aEMjASe=nAk*$R>kfkWRKH*8{g@)d z?1cW%_*_F+?6x-Y88tA%n*~H}qm-E<&w8(oHk7TCQeOMQ>qaA@Fofx8M(4XWeqaGR zrG0B*JPhK|Ub&Df2-}O~HV9x1kgC%%qpQ%!5>FtCA@6s`KvnugOlv~L4y~Y67vEE< z1UGYFjmy?UXKPYqI4}l~kV_m~HQJ6hS+XcDW&9A3OM9)DaYe?u!n)eXj2paOYZVXp znDo2x22OMiNpJ*4tP$fu!1t~x{pgc^4d1rln7TjGAn_IX8Gcxdv=fFF0fm}n}G*0O4>H+sKiht1OdLn9~VS>!$oPhO@Q_pI$Xk{%$l7t9gbbnK$}2nP$?>&>3iD(pToD4xh%OWN6VOhb8CdLlTYS;Ne@ zunC#y?~empSiGhArlihJU+fcFC?xT)ZDqK4Pz7~lIIL((yTT@ikbyRT5V1j+#ymJU zI+!uWxM7<#7|Mipw-_T#Vp3LEupHm>(j1=4Rw1=w+8WlBf?1VuErn&e{k!Qm3WZ~9 zX24^8ozdbI6>z`VkYqm44>N(* zA~0Iua2oUr7X#U9#syCv99Ap6uWSA9Pk-iR#TsF43R(9(yZmABP~N&HRVhy@tX&v?xij zGJ-q@3G_!nX@UV*nFA^^TgTNAm~h`4CWVFLxi-nvQ^JuU#-a~yfKZU>^0RP1*+`S| zD`Sr_=H_+hTwNQ&DEjhTpZ7{6yAS>an3DOhW>SV4j-i6%pU<#t^3oWpH}vimGcgAi zw$dL*mY^$9_N%1=^rnV`r>iCRU9x|RpGMIJ+^s}ESRUZi2BjpV)R*Q)y>SwHp4wpJ z!{$)40`fs9SFCG{0D!}>wUd^wov|7H`_s!SI`W}23E!F1lLcG)?N zQkc+2t=D3t_Ym@95cXIr{x^SkM?Uw3&**h)O&_tf1_TN9H4g9*FHu=ohEGpvpG)p? zBZGWctl-9ITw-M@cp1pyN4~CE7PBE~%b+WwkLGp0_Qabemff~&eht~pu9z|IEqlZm zVP`w7LmQ-qBPkc=!9j6T_y9q)S-lnn7^N ztTAa!eu6uh7L6{D168Tb9nBU4_=mJJjiw#g zn1W7LQ9?t@2@pE z^f=aZ19uN-ODzVviyMcd)T$FKJtxv)Tx-2D>H)GxNODQybOO;9&+@peVzyj8WMPtS zW4bx``49Nvb_h%;^@=1;@3Cf0#vVP{}|T;1$!+zBDBpm89?kvYM1>y#+HEbbf)$4WUp3>3)E#bxorA z>gGl>tDOgPkj4uuA=%X(QmU)e;HVuG*`nO785;S22;L>lp7gz}cG@Z4IaNe4XJmMt zVQtA9Rv7+9V8A8>!M&sfZfSuA>Cbl05yB0;u=SEn&rf7>M>EyQfZHF|we!JDgQKpV z?T!^mQcM=*ES?h$G~&SueGK(|l?sJi>7lXFe>-{YzI^HzK0~X55+r$CrfsBRdNl$8 zTpK(3CzO-`Cp2X)p~WYgYyzrt+Dr7jjDb;1(I+OG4L|rqTejAE)*g9KHFT~deI{B0 z(Xc}fPDg3amJH{lClNlk1ZJg0C?rp1aqR>PzI?fqDdjd~kvvQ7Jp08OVAcz0M%T=Q z@Jc6ZSaL)!?R%Wx)~CTu-WUzmP-T}s2T3Lba>yJt=YLZ_k^IGe=s zonFzcF2t37E%m0t_pNm!p{@S+5}QD~tnfHyUzi-LhP*oJh^7NJXqaMaxLLmb;$wuK ztw#UZex6yZ6t~WxQ;MjJjrrZem6LPknXJqSCh4CSvC(Jk1g{h$L)ZB9bgpIeu(x~w zW=Y%<83Ay=vheXzqX(IYgl%@qsI6SGfavatVp&yQY&oze2e_#QqrtI+ELjUX+sJGX zG4K50LO1YGn=nD{X?ghG#rN5`*>@&>TR`hjanQVFX?qIn56Uv=X=}H)+31&chm)35 zP%Eb>PG{3dpwNJ54B|~e?ZXkf@*uuLSe29`%ot-L212mm}_Nr++` zQ#RyJGAPCAaj0p5Ih2#(HmL@IeIKZ6e}av&}{{d3Pn zQ^`gz+>^#M=7?FK0Yb4+y+JTv*MPGhUP-Z8bKaEPM*SbyC}6Rb9_aFHY*x#$fOEUy z(m#$$>fYZsWfbvvoY10AVu@+z8+&g-yrj1i6?CAX2A@xV`qQ#ruBp6DL5CtbR8W$K zC>cMDSwP|-f|0pp(u<4Q`^iQ}MgzA4hnQ$4_U7QtEVR`3G1lyt=EE*t5N^TtDz(GaR6O6&3(KKPh zBx7sc9zHromjUYlS>hNxMBHB}t6#5WeRHXSX35}SSZCn-YLg|$Sw0H~1T7p87^7t% zq&GLN7!HAu(ydJ~X`-(&1qT&GZVg^l6^VypDyP$f7K-1c&wXR_Pv%pZE$(o_sj5sl ze5-HZa#YI0FMU?-z4}1kPi^?9UPpNMfF4!O&!kdZyqf8sqdV*_H)O_GsU0<-1WdW$ z9%wh>DRG1o@j#3o;l(W_c?NMfeRA}?&y>l3^T?$g`x=L>ROB> znrw)87MDxvaFo0teV`*@vO_tqEAAVe7yZ*V6s zSG}YU&aG_S3O3^|!B1?*O^RR{2Qp7KC3I7qpP%tPLeG%kcd(3(lq8;*_Gj*N=j#%@ zdslF(A)53SvL%VVyIZd$l%fj=SZNe{n8NVefi``hP;Ev?j#*0QV{*E=Cu13%pUc&w zYlXi+>)G-e6k{Ab73hZa;YPWSy)&~mf!eq87}1!)0XJP}a8rzPv)l3j4ElL5wfw(QjJSIJfxN20 z5kAwP_&}ux+{&xvg`No$8K2#i!Q!sQ#1m6f$IEwH(uYdmzIzSA?bb?IDx4Rt$0<$= zBX`P5?_hyCcwlT(&bwT)&D`0{GX|4KaUkaSY)}SS4s;PjWz~=)T4n4p2PMx|d+1N3 z&n6H1)>sD=Q^B}oV{_PwWXnVYr( z6LKoVGhT4wh6A&0rD97k^0-aI7#)bfzb~BpT2|QD=vm4G|DpBqEOubz@C%mJwXOMe z=hOqwBRH+iI+ zexJrBdW#Ln41A$MRT%it6tc~3IAz-HNfn|H2Qp~Q*q}~>^15UuYeZ;tinr@E?O8{9 zSd3;f`ZpsZ-7lNog)q9O56Iw{*ePIGh52B5EVq_Tw?=UHYR%-`EL3p+VP+el1H3^5 zW7-l>+?ElTQe6nvBQ2$I=&iIWDFQ!UnyqO-93??`_kv+e5&s?v*QanI%~5N7}-^en`5VD~aZ6^;VdmNDw* zLTA77P}*=3r{bJ9ve#a3m5MuFfw@vv%GFO!U?lkGYyK$jyYeVzAY%R<`5Akd7;Ho8 zgT))8W@EFJk$S|2Hzhm0keQ*prs-0bxR_z=o|*daWPyxT3rD_~dYV9XHS8o$o%m$J z^Y5sqCFM?Fwx1-nM-$-I*KXCY=< z&LI#RZsVsaCEH4;=?Il=@*6rJ0l^`IXrQ@oD!vkYc#2k_(+WfQt!7LVW2m+3s`cJ? zG%&um(%%`MXrn?8o14he8*0}rbq&R)Su_*d`;0YabUEjadsaXXvhADYFss6Ks)iE{ ziWQj#xKEW!#$~@792mf*hI;>ja}Kb1IU=Wxk&SUjVdskGRZFrU{yyXsOw^JchbdhW z+te$@(^tB)H0eR?q-RpX4bUk9M6AiMZ zzPB|dW6l@y;1@nE_fMy?fb{|BI-vBduQ}N?x%-k7Q;5>eCG~{r8o;OB7fiF1FdK_( zc(J5$OG5@H76G>Y4-Lgb6Y&VGv&zL4=JO%gl5k$KsfB9{HTDt|CC$9iu^&;0*w&5- zzz9Y{X+lNl$bis#<6#V?6=awD4VyGrz-?jtx*<=njwSjqdB@F$ zuNin5TsTAODgHB$Jj$49I>AS>NQCtO-L@va3PqsgpCh=XL+hUrQz24<DZxG#8EeNBiD-Qe*bzW?=5vvm!{q`oeia37gDeEd)6-3d!gOyO+zwtRZM`cp_tM# zZpdt%GHYVO7=!`P{K4T?7~vTi2R9Msw>zf>wZ0A-!{9*9F12YAwT!K`W87|U=ueGO zvVhl0FjFcvZ!q5-tc#0m3Yi&BvwFg~C_|k;gT*jyOw3Drw zcR3?AX&vZ{4T>=?I3BAFs%Aj)IQ^na6P?HzqOHNhSH8b(el90r6OTm|5P&n9G7sjn z%j5?(X0a8b7-{ex>wO)fgD!GlSoB!6QNwC+sEBXCGQB#qwy#)$HC7qX+M?#Z!1`PR zlELAGg9@K}0IkT||Fs`R$NDx-@Ol^i(S2pUIO z07Zjg51gwkTzctnh*{KG@pkENxCU zS_a&#w{|*Krg+0nHFf_A_vg+eSX1zc!LmvF%I`UPN$;6w$`H1_f9pyfilP|y+2wwno;64fiu=SFl4Zg9hf(f=AZ|vr^Lc1rqbJ)^Z2|AhgsF z1TIE@91Z-_xrx_aT`k!>0%xzKfg+q1w{mrJrJLb|(=BZ^wG2SZXl97CkKHpcqJ%Ao z>(y*XAnSk!P@@5^-9r3fN1i0%l4P2dXrAF90Z!a?X1hx@AsA+nY+rD`+nQdj1&z)( z8DmlM{T5lOK~oV->QcMRg*H}z^L1KkR;8^au02Yf0n5}4K7yUXM4IVD!h9fiU%Mlp zdikzaB^p$htu+xe5DZVxG-JG@&v`=?fRy1oRFf zEpBwx?o8AZ-XfiyXsk{l#Z?)f4zsZ+7jcO(<_t@MTFVMdgupu*RG;ks9P9->wU_7V z67qa-UE-IqJ}7o?D3U=htss(DR4Fq*Lh`Cd9E;DSdaKTu_xg(?({A1K$JF#qa*Z?F zg(WBqq|wG-34`&ycYT?TXX^amhEX?w2RrRx1t{j%4w*suxug* z*xCsv-hMd>GU1u`@S?ztM=$B#|GEWRme(#U8hX6u@SM@PeB|0yg)dAC0tuO+>o4B= zrI1ItqHX-HlYGvzs~rzipTo=L(k=Oh1Z8Q@lE(I#@h_7^U~|PFV_d1m?uF#WnN1imFk%KBBF65D*m*^ei!UAyK6=RNBv|?CVxcw? znHdtvekPd*0R?Fyck01Bq8lt_|ex*Q=;xt-`ji`z^4u^hcHp z_zJ2?`0T9WEK%Sbb*`Yi+YxW=u=GqGbp&BKw59OZZy*1}t>E~vnlcAOUOtSPbNuhm z{p=?mTRbHH&lS_*2sG(02LC~x%{W=?>c$uZ7cS5R0*~WK+%an*v0GqS87X!vq-+?4 z28|BLe6=7g>!#i-j)gQI8AnqzEL)4>7;(8B{L-`U<~UXzXOsB}oaxUpr4|N1sKp%o zrE@)HSqw{`!kQ()Ox$Q7g-^_G{Z#M6m;sVjF|a75D1%G(N4svpiO#?gqD2V?GK}-#eWT;ei9~%h zdND`q;xc3GYzCON4To**utKIu>EAUY#Teg6vp~#TccHdzQ&>Qh(Eu%Y*;jD1)J%D? zkfGv>uYUH^^3rP$H4X&&PjifLIOW6-ex8zHC?7o_+PyP_dro6X>O)R}zzC=a0THwv zG;qAUxZb;tzYa1)U^V$o>gG|0Jm|2n*WC7Fci}e7~9~&s_FwkmgOoY}(5KTTJ zb9ucu@dKV!iCE*LliSlbMj3LN4YESO2BoREqw6lwEN1i7&oEK)wVm>~ZVE0f7!R}6 zp0S2#jQ(uQrBC>^<8635bNm=hnVd0vobvjI^|&2ikNzG$;Agr1Jp&8z)(_{PN&X*4 z@ET?m2#%)jmMAGT!p~`Ngy`*7H!&9ml%+9sLCTDlO@oeI)ID7BpbCSGpmXo&a3Fmf zrgL1X-acshZu{})U>OtrUz4dF*Pt+LE#skBstF4uIm+ztKYf{P3#KLc7-gCm?MDvd zTU_+{qVZ5^j}G3V7oF%`=NMokP3{AU%-TbAx2<&eXdZ|ypl&tG*renP*ZQ*=3F3u9t3xS!_hB#>5RU-BTg^Lsqx#j0KR)dbP!K>@-Yc+&B}^%iv?=o%CQ_ z$Ol0p85$Eiv9Npt#!-Mp_VCVb@Qy2!XzNkp!1tZ=pnM;T!fa&&2=|&XPR>s>uzBa2 ztgDh!0^LM6w+6db*H6*_3ZnkqS6`9`nk~-fQ@%db(h(GCeukh}I_DH5=PcdDOf?sy zCURn9g0v^I=7{2|h3hBc`UTGjZGBnLD4I-XOFRHc3QzX@oMiFR88#REtz^7Hfx1xv z!444Sjj}^c;glJSetklwv2}7x5$fD#f}F#ZP5?j&pt?5YSt#r}tusMJk>B89KW)?;z&|Ry4 z-)T^6Xb*`1KugP_IDYB=5uVAybAWo`XLIMFln+J(7)*%h>s2G$gx-JYu|Sl7WuAa> zf;sUUh@GOGP0=e!mztM+O{_G_`jL`sN+lrh@uM6Tp1(Vmbsc-phl7C2-#=gU>=cSS zTiJ7Jh~0b;g%t|~HLC4Q9u3B3t#@%LtlAZhd6||ZGIwY&g6qd-lz5jKrDS8JToKccg1kes+*RhYiP9C;zt zd@S?Rg^Z^o3iUR6m?B_8Y_^<@wZyi}aX6c5W939X_1QP%&VxIoK;7WIR~6^Zg_?+! zWlm@iMZ=Yu$Hw60bmQyS=u>QLK|mICA!LdzELH7r&2nNkSM02a&Zk|HbtpRsz*_K%Wt}L3j~-bj+vq0^JL6YZ@`=ad@lfGsf0^ zaX66Rv(ULLPJZm>iLGoSoHJJ6Tzxb+PCWc)e*3r?gU55$toj!Jkv{c@2FG-~nZx^) zvp>AYN13cSyeGrSB%gks&iA~_6 zP~z!KoLig2t(hpNgmQ9HVJLBdu^TT?Dx)3_^z*?b{gGN?sf+gaggHD02 z^v>)KL7&h<*Uv9^`95bXyG=f|W#fb5>(DyZEnjD>w_~Egc@ho74bk_VNRKmG6~e`9 zlT7JAEXO&-HD6dZNa?cD49g&v+g0X_XxMHZiZJ?6%1Y6Fs1_9Y z?7csFHl92m98>sh{hj}#e8k6(g2erzAoy`!$6>icHkO0+afv5~36<wf8X>6gpcZeH^@r1yVe@@H>x-^I z{uY8my@QMwOq$G}8KZM;YxIX+Cnh@`TJAyYluFqc83Sj~KYM?{QpTTR{~kyRu6?)xWV6-l2ayW=3Ta7J+CqMd zpA{I`%4||c$i#Twb%ra6^GF?*2*m3u4K_oY4$|+J0~3q@28!vXc8{jnrVsiVX6YP` z!02F6*!UpBHVKbLqDG*do=)WM-E;FLhYi7ECiNh)>D5)HV2*~^a5|KSFW;3rckjtq zGsdR14t+TvlJJd&3+Bavmj>z~nur4_I{dP-v+UedthGi6N@wJFWu_%L?WOPoJ==}a z2n)|!+Q_Ihb`Ofq5kFQPh9BDj>YT#vuqO*&58}TE59^73Z=#3C5U@qt9=2JqaymmR zM!K*C+j{xjNbtWWcl8X0=TiF2vgQU%5Yp00TZ`P3rRxdUI`wevuk5s{Tmeb0Bo7K$ zw>J@DK=Ir1%;UM>SQPDVr;kAf&kc@4Kzsk}?uA+Ai+@s{Ek2(QnD75O$BAn{A&~!` zGqiMQJorc821a%PT91$@Y*{8d*!-E+y`v4G!$?2WPRfwOY)2{xTw1}AP8YjoK8TN8IM5nwZM^GvT-&773L9ff zmc_wUj@?+OfxGXZ|McM(3s*Yv<`BA{UB)F@3VGRz;;yv-$Wn)7dGnn{XMY1b0R7Ez zv~kPrc28;zy2{X+gb7u1xnnS*&;fk60ZqUIy95!~=Ee8Gw?LCAESo4YAWu-z2=K;{ z9LorLl6=2=%TC|`h~MEsw%4k@Vz!S42$LS4%{5w%O=-};On+|&{~)|(VOFsxcjw-; zfkfm`YW)n&c)&7xdgnyT>zOR>Eac}t^SYcZrlg7Cx)vM~u!fIGs!fbSgrExYKE0g_ zgLJYSU1x_vnQTe~IAX~_Rg=$&rdB1nOcl#EIpt(TZR=8*R9`@doD-`T2~Z+s_q7wARB0cv?#V53<9PiWSV9) zLCFs^B>@QA;c)n&yIroEqQvjhUJIoKvVOpm47QcI~tGUMpAT%sIy#;~U@j2IxN^cSERciTg%5V;0`Y zDH8KE2wqY9UxMhZDTJp%tPy*3Xk^L(32G0LoJ|+^FAiz#ja}Esh#7`?G)osuVx7V< zOJl7(xXgTB9<5)r2abn~<9ov$FJ8_gU-2%n!bc}rE{2p-XssjxgWps}9Atd$1;bgd zEssW|hJpc4*u?7+i5iM643UQ++C}ON2tg5Q?;0gNmZkH5?`(ze8-5PL?X;kA74H$^ z6|HUA3%by|B0;(+6I`v9+9&YIOLB{osE=?^*L7i2sd$cw@LSb&1{%mM|3(prK2&`2 ztP5Lgq9mrEQiAu@%aAerm!@N1x(gxw=yBF@j<%N~)gna3&eF$*y)bnwPU^G6$}e3j z#B5K|>J$qK9;=&f<_xmSXo-6#`8|LBDq$j#a57`itUu~2g-ycU$1 zj<|9g)hv5FfA8mCxZyU`Kd)ETyC-@0#1;FsPkhXt{pg20XK~J9Idmh9XSEmAPCXw< z%eDaE=(X)yUSgXVj-yVQ*BSbqnFgq^P3j8x><)5yQm1JtN2Ww#j_?--XW+H3!~qNy zZ{UZ>T0<>o7QY0X66}Le^{)Oz$u*DMOHR(OYcGit3`4!pmM#3bQ6&_83(oD9V~JD_ zSRiV{B?HZ55-(yA(T)Gl=ViZl$i${K>K#L&VoS47Y4QfEy(qzD9Bl{*`i&eC!bswM zj?rT{7rv{0^V1LDjW`}MjymnT!yW52JoKxXp?Z+mJpbGL=Zi=4$PcRR24Q4C^rcvwOw z{INWM1s9fQb#Z?p+oqvq&F{3Q*5@=IXS1b9<&5-Xlad zK&FPW5O6~z$|y(X1`@9&)dl*ELBqn6!-UoKddD2X{K zS9kIh>Gg#{jJkFhGVnkbp14{K$O>=$`&K=rNpZ?!$jHr=A@ov4F~W1{Z4Rn8FQVnB z7QW`+8|skOAhj)Z15{Li{jdp28$HD$#i2H)3uB^2dIYj#%~-u9esJNIuQe602l=Qn zL_LfbBd>kym%eGWduCD5719{oxRjlLaOFPgXhi(3)mwo>jy55UNyC5fsCPfoI5xTY zT4~C=#vR}8_@DL*4Q;S00T+}<`QO}n4 zuuPjrZMsEL_4pd$c=VL`%-a})L{Duf!Z>qC!xKwtw0R_(d7_c|OI5@aq34jILP43s z$w20DGpdv!5i|mSWJj#1G(pdkB3>a%?Y6^x$3(Ywidtehv9@(@O{8S^gjU6#e(Z`J z9IWjvl=b<-?pEUSk&dz*xNy5Bh{TXVb8qclcQ5*kBznxi7IP>WF@p^wiI%hAfi`N) z1-wxhV)z|{8#iE|An-%{b}jK*TzAKsd4~c}+kJlKVgJgWe&!>#K03CSUU}6v4x5~; z7k23*PuO4oTc5IDdiEoZgSM=~03Mj>kd=ZKxVdFm17Io$yH=Bbh)fQI!T*#>c2%9eNVx&@4n> zV&%sj^ftE=kFqh-uO4B4QeEA%zn1(pd&Kcb;~0F$cdZOQ4`WAuU3&M~WnHe>lsCzf z(I{{8iKPa|JGsw!%W#vADpay?HBQ%7R0x)RvC_u0tA{NfE32m+Y#a@GR>8}hSNPOOVDh{zI^#7J zEEvh##MUca#YA4_cF;DXr^+-2cT)*5(w`3w>LH?o_yK2kN@qzVIOv*_{3vZZNH=0 zlZT4gsfR#e++{0*Ir#{YAi)L=_3SNQD?_(1;klecQD(Ye1(AoeZWtFmx(aUCdZ1RS z;Gk+0<`#QA%VQh`NlJz-0tqm=!NJVwO{LEY{DA>tY^(&LM)y zP6&c4^9Zuq0;8!wf29lj#(F%`I1+b!>kq!^XZ(!4$72rSUif`@a}OW+q2G*26b{2jLwdNnV<`KWF227JkyniE* z-bLde{C3Zc3`(fzsb+;0Y#%um>_=}5^et&c>v?GW0AxU$zh*{Had)2J3GCRd3>Q6x z@a}fNwBV{lm5S_?i02AnQhWu0)~0jt%2N|cJ2{MPAD)0Q+n#_wmTrU?EJCg(u8ED> zsqTa9BF4KX-U$j6@UY!E`n&Y%!IHzE!%+EBfy&H*U(&BW_cWVjZPBC0y-TjGEYXO^ z_7`^b!2NH>+4cZRIv#cPvNRQ6PZFaA_Y%5|Fw`qIoE-+*!`Q>)L)&+whO$M_a1yCa zLEY&@*#e#C`05oqUR;q7FN9@JPUzXf1K({=C^)h4&GG*2JGQ|Mct-lK{*C|0o_O}d zcH~KxB{++%JRmf}YMP)c;k8H#QQxx>b`~Cylz05R5aJ+QlUZnhu7AK1>9K{8>PXuu zjx%m4h{6O6$@9~y;#@<7LfT7+D$qLhV>OUxok;dhRlW_wl%z^Uqn@;Z(#KV$x=l)*OVY^~;XNR@v*WUXkg06*3iXl=+ zb#-atXr8L1@STr{aKaTKmR!=z@nMAY5Wle=-P@kFlz;B0`OJeK_HY4J{mPg%L5^iFU{*x*JO{#0;Cl>#fK##z%Q2w76Nl2o5fs-dGobCTN2WAtQ`#*Vb#l1H466SGlxndq5q**<_oXAV^!`Gq+Q5IaDAqwsVg$F#*xD zI;XG=!a)mV=&k+g(~sNbgB6X!>Ak_Wr>H;1R5-I^Plf*K)7Py(xkJMEq5t8)F~6(s z?VY(-TOc?Q7&E;dBzjgVU<0#YeRN>g9>4A(^On7{cV{QWMiHK?&?j+E*`bOA;V^o5 zyVrWzy-n~i(IVk&({tQ^^;4g;#&OY?@87p4pL^D>UUyFsMiHj~6$c#%Av8g+U$h|5 zy4Ez7Ar}`y!%Woqn4bA-PRqaq3L3SdCV5FA*Ivf42yg77)hg=tk$9o!$LApGl{k=X z=reX!ClHYiQ_VCIPgEYynnR+2OUIC17flfWo&z^msyqesgQzIj32lX~=&a;mEKF+< zjzE#)s88@eZ!n9ZbQOx=2iPn+HKxNn0~u+%JS5K81RFz3KXI**q*I2lGm-5Nn=|(* z6%iFV6(uT#daZeQ)oqQsBGKjl|6O~V<86&&)8wy}-2O9rl%;v(@5=bk$++Z;@5#y( zkUYu-Ugh*<^m0)nqEt5FJyz0aZ6`T%m#bHa%q+acw2E-r9*Jevcgi@6{EFQ*jel$^ z*vB1~*kvVqTa;df%sl^|C!Eu2i6K;_{hw#iQ$`;Mkc&|fl7$e3|ZN6gvyr|gFSKSl6~m< zC5gECbG-G&ckIx;z~lWrhJcS>KC-LJ!S3C2tj#gk17De!QLo&Hro_q`;)C*DfVp*! zJ02V!*}0F&0eaK80b2qR@wsvimKHKrSUBvs*s)?}0lwri>T|P5%D^x8J#&8G_u(k0 zUG}i~%tQON;1+h}Z5WsoDiu23OIrgv^U^?J6ovQ&g0=E|^7^J2C-92zolvj*)_ zwbemcj9Kc3vc7R$;Yx?`7!i%>UTR+q0&+9VBI_%Mo1VtdKaDsG!X^l`L**H9v#J?d zt0ahuD-yIGLeVZg+Mt(5JoIWyY2>Ph8Jx7t21Yrug^AeV1^07)&IrY(zeGk6m}DCS zVQv7sxM!+F$g4(J*ec_XzSqD~D@hpRGz>K{Rv5;hv=Q{39Yi>!JjG3N-{an^ZU8^} z*kx7^fhKe3_I=ylean9J$;a(zy|NSc(2n+j^A5h@oKiy*iroh=WW;$3YpE$?mNXaO z5uiQk@#SM{PVRdKyLIE(NxBW(O8+;EBf@O-a|Uh+Hx(WumP5aVx7a%ruw(eVgvKIz zM*9$*p5C`>AAZ^vZqPyY1~q5Zkyfsn>ZYCcwMNgMJiZcj#f@lP=kDR(@i9Jyu|of8 z|Bjx^tKBI%iz&Fwl-G)$&}>pwlo+vDT{SCRD8vwHlO**Z#$IxYWo)w?0+8;3eXm-z zZcr-^VcBiy8itA@H&o8t3(36D>}`&>HI5pF^1J@=U$S?7guxrJK81b2I2eu=arcOIL@$XPa_cahtgwhl#HQ|M zqX(46hY=4X)zG@8Dn`H zX0;|j-Sq}e@YZTlMB09ng7}c@7|eEm)4~mot_(16$VGourC{xX8y@PJK}TYO22?9}bsaqHmE((& z_`*0Y-8e7y_VkQ2;#A1lvZS!5qWjK``{w?MUH{03?8zq{w>|eH4-b!RaR5PxCGWSd z5K;<7_F`0SB7r@J3lQo^=f3&e^Vi+SoP~D@BD;U`vfs%t!cpi|iw{G>#0C1X*i@P+ zPrnUjKWIQPSI32`WCvGRBw>Ixg7ULY$}%sLj3YztrUV&0$NGI3qMGyyDheMnc7$5w zu9Vb_5s$2abWVp9rLI0^rw|zFHRtXF%UvAV4jJlJ9A8zzO9_e*QY4MbU)c9KzOQj?a`U2NVDHj6YA9kP<9BJq3any#wQy+i zj=8&_rDnw_WC){NP3}tU7Wz%a4uwAy8aOqipTOzyxlVEObntgt_ZE%g>AALY z??>!Z9-CyR6ee|D^d|}JK;StmsC&3KamTT$I(g+gr?GQesUGJz;msbt!14(1F*1Q! z<4FfDl>qv+n^MIa3vrOlJPmbHfD>?B!SA7xo`jrYVWS&hmsMB?&r1uDhjYVY0^J9-&(K&zw?aSXqLD&=|D?fJ0fJnghpokzuo8>ZTiI@GHiL)`G)tipkB z(1e$t)Yg_%L8NwOdsSB(cg zqA1f-7fDs!0DlCtpb0l!z1MQA35AYKh_Kpa2%>h-ze+QDYjiux#b?R$#qXG?qZ*HU z(wLJ8nD{Ic9Zo>S4oAb7gkkgAP0SF@ec}IT`=Ira#w9*huA~&Xo>D(WkV0Iv6v2V@ zxj{5#qKDe7!O51hC)KC7-*dV4$B2&&DenfGdOFO$bu!XVQfXyZj}Z9x{m zjZb~@pS)<_=lH(HQTL9}+J4KvkJ8Rm-xzq>%yZ0aNY!ydl<0V7u^ZG+(0}7G=W*+c z)9h?6L!{MQv*1x@90PN~s8x4==B3TAS2MY1#=7ptQV)qvb+g+Yy}Ot=4RMrsEocz5 z>EYrVitx>j9Js%?#p;z&#aXN2P{Bcvo=8}J03#hIc)eil$OB8a(im>jp2x(Q+P=yg zAZ;m1?}$M%A=5KFP9-!T&LyokR|ZB8Lp3moyxJywwzf`Y}EOmm3gb}N;1hPyGh`24zt zLb{;v?63Bi5Fxq$_C0&+mDfFF-?x=xjZ60+QN&(Gg(WTGXtg4big;Nlk~T6x>N%=Hm*%m(Xzy^mqj6NVOn%#HnMY-Y zFUGcI+SwvoRZ7J+uw%3~C1~_Q>I#$U{(RL9y4l=Tpw|#9rp>`M5oaXpj z30_xiZa$UE%^q5nd`Eq33ZD$wMeNib+MS-AGOW!>SHosajY6kLaF52Q_L#BwxoSW1 z)g#HfiOJEL`d$ZeZ<0X+g`^Kprm2!pgVb%#?Geer^tO>%td|Ft*;vCrMu^o&wj&&tA_B57 zd`-YVwfI5g^_g3PxmOns4PgmSHypIl#hP*hsnQ2?J(2jiZa9C}-r;yh1VcjtH~T3^t))&=El7BNV~N|tyVyg=~Mr9{}NI%^Cz^;C1ssHdssyGU_n<=EMo<8B4j8K%&do$Npg zP7*~cLDcSQVZGVdr=?za8AG2m?(ijx@LbvdbyA4B6F3r>E<0gg%}SIKwGg$@+it4i zx8MoJ$cmO(pSOe%)+ZcPP;`HGi(Gw~v4^tnnB<~dbPt-dv7rg(I(^C?w(SiUB zg~zX7wP&7uf{pB(fF|%-A_p5`pD?(4j_+;Ui^PJ4xUK5J2fOdtXs`ibkhf4i^7kDd z9Z`sap*RT5Z3>4=&zbY4;>@E5FNh>7cBMho>+~$J8C<)1$?o4fu{U3Sjhx1n8^^`b zap(_DW2n1F{~3hf_ucxPkb<-1U)-qTc`pjRaU@cJL+0(N?ZL|%Htder1T~3`hWHos>Esn&*W2&HWww@Ym8jLY4MKH$h0yZZ4}21yoU5MT)bR} zKms2jDf_~(7;`@bqp1CS=pUfl`$xIy+EN(-x%7P^^eNJLSHbRjIC zZyS}coJ$@JQYq74<-|{+bQ!O!Zecd=9%(cLIV7s$EKQ81m9fPoA40AerI~6)s}QRA zeA((Gi16BXtbO-f&fOr09%IqGNjvBe553kub0Rcp#D5xV9y0#KaVoH!%xWU3&hY#0=gMF=V{U!)eqn z%L_0XVT7m9QUvU{acmJ%Uz_cQ8o9t1pS*sB97UOZV0<3N=gxXJpyV2Ef{%y`gwk}k zkdjc6tlT{}m;mz6&(3`V5DEIygyfk75)fviFc9*?s%p*&AE@f2iBi2SHw7d} z7Oajj+fUL!JObBns9pASy}M#j5mmiMf;0TS%xK+_)IG6P;u9}L2AZV!NH~)Go%=CN zN#h!rRed!zIhSSzk2u8S#m(l3rPxTP=oC0}O#?HTw}y zw?vP^5=PBfo*&OF=sY2_HiRPAXd|eUj&X`ko4delhv;|B3njDTpWC}Q-j#7AA-udB zO3yet8s_kcYtLL(r0~IYR;BY(nkrOC%ZXzAYRu+bs)xeb2Rz6*-!kI(@MvS_7!5#r z;JURqWvNogEH&Y^w?BGet4x@k;1 z>yYzg3~8)m*ADMluNkZsEC_pwowG`|WxYpO-z?ODx9SO!w2(TE)Xvk)JDPa_W5}(# z95OI6B7uUas4CAVA>c`nIgie{(sKdeGs;q8_US9(*sUg=Yt66 zVe+_M(2h2@&3K+>7J*gI(MHcPPxlvwvch08)Gaa46j2#rprOk4#nY$rvHP;Ui{o7x z$8_b>-^_1)^F{yXXWs5L^WBC&bDRcx7W9Lfpzp*alA!8L95YWL^Qdna_{2QSoLKor z15w@k@pn9CV!csDbitFH8QpBNL=G28)(*$hx1sGP43d){5IQ;wav?|@ps`RD39@*q zf&lOgeC^yhIrDk2PrOl~b(U(hRhFSexUTSypO>PQQ?U^XYzSJ1=g8Oc6rzko*ipi8 z4YhnKhU?r7&2qhyo?cc%Do(l*LawzIxEkpqJTr%P0nb<}F@9XUF@X*%#`<7PWNhM_5s|LD+bIH)D$uKJssA%)XK|FGtD}&k_ z;MF8t7q(M{Av^V~^_{nF+WN{B)ypICSg5h1d*OJfM3t=|k~p+-2nHEkOQQ-7RkBl% zyo)>~YL5>=W^O_V!{_LN-eDSzYc*ceJTXNKL-ew?%Bxk`>exppAO@Wy@uE4mqWuM< z0}~cs*Pi0HCZeh|!cX-rmOroi?6_~u{#^#A3Cy^G^r8OONTf9`|vnbEa= z;CMI$)C`gFtLnpzdSCFh0$?S0X*5bo&G&j=?Zx|$m-q1JK736In<~X(3PAH{R4Y-eecfy9cWue4bousVg_V4HJsS;xZf!pu(`t`@`=y0DRx8q%= zc^_=u9r%YHgJj|dAq*{(+qpydOTN{|LhH7mzebFE=$kMI~q>h%77g{~Gn#H1Fyyr+mB zFlRJ2c{V+ZYUnEh6z9e(+h9R-Ma&LlnSnvJZ5cOFJqvAqB{r`V*qyv332Wr2RvM`` zB}m$N!Wd}~i^619w@_wG8)iy%wgqH0TjTRYjv^-;)#kO&;M!VVAM?sX^uiA30tqfC z8&@%l5(!3?Iu@&h?o?-ei0$Tz9ba%*(`Xn|E&pYiufp_sbm{;4ioMI@T^mQgpRfAo ze97L0jF}#W{>Ar}5>ib*Fi4$|qR>ROMH;aMa+d=18-~cj)pDdX!xkcmhK-aUC_d^9kkkoy|ocOdy-%&iT+Z~ z?Qq`>@_-8%M3A=A=cMQ`*aQYUl78o5e<(VGtUqQ^vCgn);q?wZu}#)tV~c~) z@sRWQXl<7+9eQ{hWnoESqb6-Nj4{@O!crLToo8_O_SPP{o^l+3(QVvwhG&Rna^}Vt zuU#w}CWdgiPzNV|$n3LG1R~XE-H02>&x`JcFyd&vx>!y-r07WvGxT|oF{P`D1J{9M zO|*!;ck`AdWa}Fd)Dttqoje_?lJ^t@sk4;xlrT+W?QAxt@H$b-2cx${XiX1UT?SLI zDY)^ZGH#mU5vueOzha{`@H=;k0Lr))lht~v5*RLxPuq+!Rt~PPvem)R$W`ajVougg zY>EQ)@A?@fA}#5l3U7?|yD7>)0O>6EtnB$b>NFnh=(*Q5k)~cXrQWX=ViV4b?myB# z>4A03MKVdbRon(f*XQ1g_AZZiZ5$zEHoW=!|J*dS}|E3u9z%Fo) z(IHOZKpAhQmi?4a1tG~f2LNGF7WX!uD?j!D?D2uW+6Am-zM~`y&R1ZQ&5Y-mn&8S7 zYV+-)MP-VRi1EUp$qQrCMN0%sY+zbg@aLPA-9NkQyQdZ?H;E!#M3p$26xDl^_TDgg zju9%88)qeGHbsikk)&Z)JYVQJ3?xHGVrQL*zizXjkUhA!HMHtMoRca>IPVAw5P@~G?l$q)U#~UYFdAJJ>Vu_MLdSR_R3BVOYQdz1p z!I{RJMjy)Q=UV$8(+L( z@A7!p#?ds;U-e!0^L1!19`m0kg7*{}S5Ga{^Nsk7b-)=eL|L3b)~ISIlZIf;X6pgB z_IBK>M;Xuu4d>9zfM_nze%x)wgoa6XSS3(}eW-^3uA3;AV{dDe&4GN})C7Y{_b};? z+|xNb+j;1wp2`vkjmAR(8ftU|IMb^l?P5S0Qyj?L&^yWF9wdyY)U2y11QY=~$4;3> z1?a@Z<2apXe>aX1LK(X!uS{doJp$9MC4uAb2AfEpC45XDD&3cpoRhzLnj8e3oVj%_X%OWB-=LXZgB7MqPlKrT>xUoUO%{=!cDnojTB zw#B8(6n{vpya|0n-fEH_qbB>f;gU#{goPsFpgK84lnckNZ8YB_$1BY$K7u9Zt-D?x zq3roavB!G`X4~)1Y;$r)#*GopGR8fy=m*wAEfZxA=+;L3Hyk(h`nD2lu&%Q-!~e^L zbJc_j@$@WdIye&NMV>vH&LLrDt-R6{jk>fY2mID(6R^6j<0HoOREdx|BCN@O3HKt_ zeF}p=MkG1 ztd+$>p%OelZF}Hn=Df2q%7`^Q z35%HgE#S}r+#Z6ME)mdVBS{q=L+x1-+`nC`2JFxTKXRjVc=w)dJ+x+~72G`BVq0su zMQ$Zk2@kZb#8p|tAsQ!P7B_KE470)m!Gz0INH&WmkpsL>p*9V}jpz}y7Z{s%wTN@6 zYh2S#WcMKyX*r%l9>b|pKd+JZimdX2pV3Kh!pE@jj5t+S!eiv4=l(O$X2URUJR`kx z1GskF3FL2KOAUelb2r{l^4a&W>-=m(j}zqZ)!xz#;1zi(J`T4$Tg>pe6_)roLTW;N z(Z>d2#x-K;HOD&k!InX9R)t2GFvOtHuPc=-F5?IQA6OX-Et5XcdSZosGoWc9RqS6XPp#NeefB1!$??t+X?5Hf+7=U<`snlqLWfs%<#9Vb@mh5t+-`+u zb!ks}jPWr@a*+F&M7c@aNCx}JGaq7IG$uW2ukSm4x@4EgL>v;C>Rr^);y&xxGr`nn z68gEh1V<9bYTc6JbauXRjB{W@Z4S32wvHW0;8tW==$Wx^c^AnKbS-qlmq6EPBC(Uo zm_lnPisGK;!6jQoBC>|v;E|F*@9{}nYrMmA!?RfWGvP+lsbz$P9ub}^HkW?m39l_U zp<9bqU3?kp*{cX~O+D82SU*Z6Hz)v7?x(( zhXerV-;G?gRB?*{&ba&JsM!vWM$bS?6rTjV1R8{~_r@9Z`NZ%_QOQ}O#U@X*!T^1! zQa3c5jb~biD}^Epcl`^5YO??z8uf1xE+qAmHn>_G)hr)^(rG)a^$a>*3%Jc41-06! zGj3P|o+)hH5E8)q2sLCSKz6;n+&sjt9^(s|(AnvIwnC_-g3w)j`srtE?ZyuV9?xdu zo+WvgTk$ThKK2+rFli>Hz!g&zMifeqp?yPBrUlc4v1#|zs~d2`#tr4lA&0gRUI~wp z8_eu~Epbba2%zwjWXwN=vPXEJX{)|1$S?yI8e{qCxA)<*w-1QM3!yI;v6bNC>C zae8yODDvb=bUHL`L=?64`^5&>6KIB1+(PRSe8V)-KDarwaczTDj&Jm)flY~CH+4K% zwh)Q6Df_IJt7^Ymv*U#hl?-?_`sv0|S$tmwo<|+;**G#W^Ts#6;^Eqt9%U5YHepiA zLw|eNu+}C5%3iUK7nGhx;!G?rvTCa0&MV$gD{I2du10mF!SHjV$$Y8(GwPOQRAihyp)znio>#R*DfEsm+}TPm@T=I>Z3ug zm}Q7N?d*bI`D&>vwJ(x2qjR z8p8AuD_Yc?>X@jiiL*$aB)j;$N<*s9z;Wn8Xh6>*#YAnJHij8Samx({_0_Cc=q55c zZWf6c9OyUQdu)b`?Uid!*x{vP8b*vtPmtf}?Xh3A8{(tGBPPJmk7ep%u0$2+KD%u% z{$NO*rP+O8aY5w=*L`|=N>B6P;DBQf;SDI8=U(dTrH&Jy>4M{TcK_7Yn42j7BlRm` z{}Igz8>D^0=)BoBHi?Ap zH14ApA|qL9r5h=Jnbk)1GHRbFZODbsb~Meo)@ziYeNkPTZM9ACanm2Q>&sZGSqx89P+idL+n&SRRW z9F}6-l4rHgG?(DvF9KsLN`zEz4Ias!8!-I)zI%cj&+4z&YhD|(+0e`^_57jn2|U@o zOsEsB*qWkeGcY7zEW&oG3q>#O6anFUzD^Zi56s|{Y%EzQ!Xu4P%1(;!2$#{$VymWH z><(D%Uxc8|nA9laJeYq_jRfY5jWI+PgJc50ft^_UD}jd;`|7nt)9y>F@|6Q~X6#=%gjdbYZELNQq)&VVOKzsiB5Vm`E? zPE{%mtZ+TC7M?kTtwynFzWV7;zkB-5{P=;4BgbS&FL<2)8T%oQheGgivkPN5`_6~j zOpCQvlS~+T>REnEhuXX`#vlNjY zty=wAQG~ZqvIg(JbbP>??7O~!ow%1@?%dV0Ty-JvD+7d3e(l%zrf1GSa(txCVY!m{ zZ(wWT<8z~{)S)s)NWv=GTpn5*CE^!i#{mHWp%{FlVL4)v^hvIfN)k7+&r{vAp3{s@ zM=K=**A{UsX%v$R7qVx;7wgM@ABXY+S-a>P-1%L9+a`hreHM*fQglT=XN)`U1$lJP zt9D^P!`w;SqYY`bMn<)1s*#?Ym=PeN(;<02s(}Kx=9Q_Ui^(o*RBps~@G_9W@Ala9 zi0W=+RixjwAMp6WjU%MYehBaJp%A-PW>i_C@$X|$FuqUTS`(bEcJu;e4x2HQsJo-i z(u^%DoAHsQvE~W8P#e6*W@a3DM)85h=2}fNKF$XY^=`IQt9BHY#chX^Wbger0b{SSyR`{XcjJrygefykEVhh=p=Ruz@HT#F-#*DtW?lkhOK(b z0J`zDJv*_LV{56?0#sNYlK4f)ul!bdpEVgaF77gUAoVfT-Mt!3@dEpiros|Sztoc6Z;`r98XZ=nUTSYp=g%`)l`VdSta%c6@y7o}4_# z1(^e_Rmm%h#aluggLlIc%RV5B!hYApk0-={1_RWg%h8?k_U*g&*6rJN>F~hz-BU%I z29WM??gLM@z5Kmb?3X_JVOyc6Oe@*FoTs^(v!aWKF#3`&DBH~ExXfeJwKPgRsOl;7 zB2xsYsf_RkH=!Ke_C`Fj8AT_Qh?0>Mfjm)J$w3akU(co=Tp?wMT@SL-&uH1(?D<=^ zr#@`w3X>y@XZD$wFd2N{&uvuvEJBGs)FV_&J`&vJRMgcOk4q_;BKG4hn$WSz1`Y_R zSe*(f+Q{6e2{wa+P?~5V40>5fFMj%0|FakE2RwdYDU1@(|{%YnI}o*J5phwDRTZ1<_%7`#^)#@OKMJZUKm)Y7wHHa~@tip@8qRfCq5 zxTiHW0fsr_=UzLenU4!au7}}wZr`)RgX0jTojkV(X67{i zOPP`Nt8bM?2cgU|>nUod5#kd|Tqt!01I>Bc&*wuFS)>Ug&MM8B<~zf0-;kRHI|8l_ zueir}NnRp_O`?xWq?OS27*t0*qwJfKXfh$rQiOSHU52r1Vq>UDgkmF5&@^@Fl&B)A z@Ie}JOjOu_E4kG`DH9D-ymYT{bwC41A&^=i!am+2ltV|eA*&rQ(t9I)KY09b#_ z(;F%koQ~J$N*ouZplNCqZGhBncsg;}Sx&d4$~0<(SN6nXSMB9jUgr);`iZFr2pd$H zB=QjwvXUk>A-FqGjYKNn<$~d=J8mB3w}M#SM%Wph0oQ&_x7=%mZsG!5!K|iP2wRz@ zM|LzsTy3n=sKYpUp%uS+)N@r!SI3teuj*Q~GEiw<7j_k4?%-kcxf`6NheLZuOV(6h zyL6Qam@?b6>QuPvP{exgfJuPE^};jRmu1|saN@bMiP@lLSYsY3p0{XN4OQFW(U-uo zNr4=KqJm)B*Nh+b^8ktvh#k%}1d+j_Y~-^;hlq=)f*r-wSUrl51)5 zAm<(u_g6wi_4iZ7$HPSx@g0>;{=D+guwM`pi;QR)m2@xT$V*W#Tci-r46(n_J22J#>M}EH@FoaMg-I*J}}ZbD`YH;#Kp#Lh*IM{*A^!&cD%)#3-?pQ*X=H-F`GU$r0N_@Rs= zZ|{f29=XFrrZm{|IZxdRFTPZ`V_{~r4M)9teA6y9!HQLFrVZCVjoI$>z=EHvj9i$U zr7oFz!}^`PQ6(d|Q+2|uD*ZQ>wNzT_=N2~t9ul(J28Q73B|AOcl3&-Cz+OUqqzR52 z7jNqs*>z#|4|rk*zYPl{sfuV~!)Z~Vk|GBmk+ddEYH-fb`jQx>!p%FkZrRd}4TKgb z2of=%aLCBnmnoIdrHjwP(%aCs7{2<1MQ>sxdEDA8eKT7G^r6iAh8{A-A=V3eV97TO zKo6-Mfele(iWbdlZ`>qN8+4X^f8Ft=V>_iHx|%dmsx1fk-jpQ6B@ZFRrk>==WOhwO zw|Z5L(2C_yg-J247MayVC3{|%ht){jK)jcn)K=A0Z@Tvjk8-)UwzV4^J_~q;-Msxp z4KH;N!_I2%;a3-sOm4# zX0-INSZ@q7RN) z&`ylWBH^zyZ*cS|f^o)2qHK5FR3sG6l!YxyCNw~*NfyA)u+y`<4T#_*PeT<4&$=Ux zCq=u>io2yKhr4~})Ha@thml9A*wNv!dvkks4s~)Ee;QC_F7cY0t;fw!v4{+h2?NA) zTPEocs(e%xG#CZ(=w%pS6k7_8?3f|1eYwHKWEBt6Gt1V#_wr49>WQc9mG6DWo_^ZT zySLJO9i+mf)($p8BQ%9HcXD+;%3o)tJMDQk)amfNCpWe@*U$dB!?#t zS_KAvy^hmD{%sl5C04AYSO+;*c+hGxvIGtdVgSjrP-RF45>VH zRi*0g6b0dY*rd?ca)WUtCL*DUj5!a%iWIDaT3$<%cxWOtX)33+a^us_{cpZ%KjiU4 z8%G=udykJYjuC2|`>pvo8mmoc=dZ3xsdveKR7tmEb-4^LQ6Epf_^xQ6L_ zdc>8^DHcLPnRouphip?1$|tf*E4BL#|x|NG!@-_A}jEmZQC z0~e}tdfXf=jVj&1*(h=VvN}58WsUjBRcybxpw7rbP+kDlTGcwM|8y=3)_#b1-eH zz(v~-Jjs!PuBps1iDxN3N4!MzwHdZ2B%h0$6CT=ZHPO)4`tX#h_hwT+ba}Ny^a`$- z1lsc?+`KQ!a`z;Vx8x}cu0ke#5fxY}gy6F!Jxt8x_&_Eo{TDCT`*6HJ#_=7n$Eo;R z1KL#FuH*p6hxm$6XWE9WCO^0f&N9LL+%$Q7`kg2v^ZMADeSO<&k8@mH`sopdHA3#d zhWaQOp*N9&Fk4?&$|JUiS}~){HM{o}Rod(WyYlmF&(3YwsPct1)F`1$VXQD|f|pp~ z0!%ngi%=!$DM7DYv;_7<>JcU;B+Uk8+M)5d^YOg=)Q9ZGOW(7@$9DAEs(3|;45#Xq zMA?wSR2`?vq0D1Oex#4^9co6OJf!ZbA_{t|6miy223JLGFSs2M3Rhz*`_pq|lt=Jiv5G<3YQG-PpCUZoFLjU;~7Q6U%@k zg|KZJ_tEkCt;EJsluX0i4`T_w3^(W^W0gw@mW6~(Dke;C5yB&@BU}2lkUt2>gX>JZ z%RI-5OPb-znV93lYGw3X(*yUU&sE>! zV(B5Qa;!R-dt5=(#r+IX*+NXpuW=7xyHAXrCoaxUQ2mhU9jY7+ZA`ZmL6Fz8BezVd z+ceRv5*bS6St={vhEkB~PZNpaSmWCU1YMtq9?v%WNA~jTw>(?9j{Yo(3zCyB#7yN$ zHsctx$rq9yO&T|$QRbd40F2=uRe0&bDS^QEhC1_v^Cqi}8PVQ2tLYHe5=&tl!c*H#D$i^ z+ZN$;3{TNW<*_Qx_*06kJn>c}VP;rpVw;Hag1t}2`)3^ARpwgWBE{0-rypkW=62o-!x-;RHMAdH_VG{S!ftDePkX=!+GHH3=%Yla zsMo^S(Tl7eR~PEl9+vGb8}bl`jeC;YtTIR#;+;=!G`VVI03m+Rh9b}+y692exeeop za5@Fa*QAPr1%dkH`)4~hI)hy;oqgxKuiC-w6I*r1ejbG7^UWZQ#!Q}KGlMc_0~QG( zZBuz9DeEHdP`wJVErJdG+--JR0051q$!Ke0=QpE$>i;9gC2b z%d_%6Q}RU*O9qIBzgEPUunITil1rKeh}Xp-7GjNW4reG4V1=k77){+x+Y zDM^X_Krb~#>0i+5cwdoR;d30qTg>uCYl3jzbyQhpi>O0cpaea^3R$Hl#>BX3*JoNc zZ}mu0)TRKldGT+&4_IS8-Z$fj<00>H3}+{@Cvb^on5;h)No+DA#U{6#gz8p?F=l{G zWmR?WdZ%Mx&5GBdJaxW)%%7vEYFM#Ox=<$qMjUdF@_HLq15Z)x-f&d<+3`RM(1dmDZ(D z1z<%>it4kt zZ&;yF`Jq0hMk2hvn&=Qti&94R_-RC#&ou;vchkgTx7t?T$N+Ufiof+!3*I;fxsviZnA@_bxrc(dvGm*XyZWIAwakJ;IMec#us6*GJmU!$;i?RH7J} z-9b&A&d#=>G1-K`Xp}->7wmSPMNO2;$It84f#pm4%tT`6msmqg>QRuu0?!HQGiqQ8 zOM+b2Ae%UjGwD7N%Az|T+6$bV75mPccWrNV*_NQyv=ust-XBGjmK^w3rG8lTW|}Z8 zkw_A5Sq=9%sN=>#J|zrm*Nu-gaxb>^|GaVgPPB7q2*4lvhOqD~f45N7fLdPanMQxM{ z^6rK$jo%PBBWPL8axDmI+>Fi2NYn*o9~z@LTU0vYh;$H{}2Ig zL|540c0Qpt@D$UMSJ>8QFxR`2%pOjFKHErOExPcCRjA1Fz!9>+{UeInbQk(_=psZ#&cR3jak#qu`SqkB)|zb$HH*`^fl zYeey=c#|eyFU4-O-=x*4J)sk;9I#<%ooFJ}(GZ8vR7%Ks-$kViB+E8d)pKfy!$kQI zm{~Fsi$NcI^{tzBw70ayV~1`e+weJ5F;m925`i7l(5S;*8+}uzu?$QvO@^_CgIw|n ztviJy!#L8Lqu1cZ&RxLMjeE%JeLM7PL9b}UXySj?K+;NX1bM&4P$_3cP~f`Ifs}!7`5X@R z)*jBT?T`N5pV_7V=x@4rl&R9)?GF8RhiJtxQ_8P|#4-+`Lieg2U^YSyd`&a)Xj{h- zcW4mipVzs!NL8e21V`W0Y%U-|(hsO$tf<p7V~7l7mWE&8jHSB9bGJUq?8s+=A+ThV zrt*aKeP1tdel6+kNXk50oHJi|y@hueuF>q(HIo{Z2D9t>K38D#l1S7>qsf&u$|f># z!f*vvt7lnVM+vdm4x)Mh2T0PSJw+0v%9e5DNPS3wlPL^?$A~&*9PqGk?VBC7CEVK? z?96xKGbnQBBF_T`a(%^KxphL}1$d6DRtAtQ}$4+u^kpVV-v^-vlWSpPT3nbmde}{GnwJif6 zfXj!6_U7xa+Dk8e&p!6C4^vZe&kbv{9#m^=5fWP6kb|aH>f@GEP|NS;(tV{itOv@0 z-Z$$bYuqq~>k)q%YN&8=HYSZT$>i|3fGI-0u7tAuP`R~8N@Z~`XCbjQm4m8HmOY>Z zod|}0 z%2%%Z`aij0@AL6)R``2AX=7jZ8@Me(lXe3t0Y{&fTF+WhqCi}kolWy3hgCcE?u_As z$J-l53#;;|zgI+PI#_=a{4$0(5eI(X^P7!ERL0E1D-T!LD7|UMWC zKAwC2{X#&l-4}X%J_$QFK%m!v=P2B-kl;b_Pt;#GA*z}p{0oiAQd>TxW;D|JdkRg& zCJc8>dtOUR@2&SRdl>K?b-<0C``5-T9{PMB#6E`?i59Yc*$9YkqomOn`liq7Ih+Fv z8WRL@n=uyfV5mwy^r7w};{~98=b`=S79hVkZs1tLP-YmQ<*_erPq6GAyXWeQ+_Sm} zgO>}nR4r8*rnJObAud}p?@V;n4JyWj&m#>#_gr&%Xti+i_+v4u6* zs)~L4!j(__V0w-3biD6jbv>5X{(~>)oB!rFeXu`6@@Q6O+ENXqQ-lFgRu_$9P@0w-8_F{7FK!#2?D-Cc8&x6^ zO7d?LkFxS6DHj$clpMK6J#&m9S!Yv?xG+XGVl!2gC}SPOcpo^nK&_c#?xTg9DKf6z zx?|FerUe^~dv@!?V|(kZ+xF^fo}hW+x@}MIv9=zKxKh9YRd>Ed!MvWgby;H51V6PC zEh(sl54^0*-l6eGOxEp0X2)!BEPA^+p;1&<#VV0Dt(UPRw5j#sD%Wbp>`cW7gJn@f z=fUrm&B(O_D{cRKceGDW*l*( z-R1?qqtBFzyQK-UDi)dA=&dn&BQ}55@4~Tt+dA$?{I-<04bj8QagvlUb|tcL%EUIY zh|C^5MVW;k58VZEsvXt27u|w19b$ki@lxwlR9c|cy3^cOOVtZvy(6mj@cr5*tc% zp)8E`WrTE&)`B`2Vi{%T@yPJN2*O)OLWO-vOjRAq2nS~}ThLo3f-{UNT1l{ZSJAa% z&Qeg;LPR6R97(i-=bIF|q94u**Y1YwPygi4DW2OouG<}e_qg`+MH4akv@vUQJmY4D z8D5NVl$1-;Tu$E)+L4#YsAZ?*iR&4{=3>bga-71m`-7TJ7V#b{5^%nNgvS^ zdXITb6jpCh#PDF?h(Uolk2bTI14R;JV}r1I&2bh*N;c0`8F~{jQ;p}>Z$E24!sAD4 z9H06-FAgvN%dhxU{;e8Lrx;L4_se6%aUtuQE}F;-6XBtFqu6^n=0@zIK`Ud1dc@Cc zPWFC8VyIsE1-m%0?UGg?RksnYELQt8hGXd(7DtY(x}i^~@IzNG!0PnD z#7whmW+KKz;_U#1ah4lX5^Xm~;tT|E>dSgE@m^JM3Vg|#ip z)|N%h=HY$7b0R7n3g`&0maT+<^T^p$IEraZ;x!gdBWW>)L#Yb_Fve=6k5ydm6AUbf&Z6T)Fp;3I-1#w(Pu}xL&-9}uG-30emvCyj0df^G#JAAeX zORdO?GC6q6xDSkB!+T26!@7jH2qe%{e8~2^Z5UVg%wQn*_V(@m{d@L@fAH_@uYBTH zrP>2>c2kvQqB~Nmu!$gyX?_LGXPRL8?>ph}MK#DUjQ#G^)DM2(Gi2zzQ#;oRPfi={ zH0SE)$aA#F@Y{rw26V&3P1CWDOKH@$x3#H6Six_>^O=HK)|dRF*C5QOK3aXv7iBw}_^ zVB*ooyElw)pFGKRRg90rLI{H%W70!SrMd8N!LGAW)o1n)Wx(YT!QWGNsr=$VC1vwME>*BT2%{j~}^lOjka8yZ`oo`#XN`|FsN{ zMc21U38W6n#A&P;!}p`&n7yOzd^blBnQM3=ii##vlP1~@GljWaz)4EVZ+~GacE2nY zniX^ilR`Od5|OPeA|Y3i-D+}~)lXg2u2yf=0^ba8g6m|ks&=kWvSsDMRN)hoxJcz2 zL}qFpwn5VFRh>W+fRZ$Har3a}?ztPGqJA$+O2-umI?l#i0>CzQEL8Lrl&3HhT9YAw zL63~pxjYRFVh52bZVZh`4I!qnE9!wPc`;*E4RFgXnuLLi*+-{DmJNz1J|@aWPG&6R zS??j#k7Ls~Jppgh!`|gWVP+&-Mv+{bkM|VpsdtYyPfgu8H(oqQJzVNYq86QRw*KrJ zJ35dD`6vJWPdEqu+OL1oE?>RouUUjcFgJ@cBgJR;AiNYmzs>yPv%oy-t6_|dHBH9e z;(67IG3IjsUk}eOIR8`T3z#C6Yf)i zQ174(F%#oxgm^qwcN! z+OL1g9)Icyn48eC3>EnjP06f@gw@5UWsXJi`8F!k<9$YUmrd73!;`{mZ0LgLzW%MA zL$4#2nKj-c6CwraJk@^v~sWDj5A_%1vN|zN$k-@kK<7va|j1Gl7a`5p*eYL+2{jkB?eDmf_`@?VkPxgt;$L-0dKSaJ{#gv&q%L5H_v#31BY3%05 zc#qZLAYrGrYo#4(F^_75QOA#-e-lZwx|U*7u4bb|!e%OTXjL;$ z$vwdqg3o;1fqOQ)Fx)$bH$WfSkj+su-}9(Uw;He#%S16I>BcU-|CKOrcl_9lV|wnh zx3}N@?_ThM{%1AJtAM%90>E*lyvLaN!SMUh;kXdIR4dzySbNTJ^d`UJyh z?5G)}>l#wqh*q-g5OBf{Ic+yQ5SvBec2Q04##jD57>0u*d+LeD?efveGpn5)9Ua-` zZ^X8`8%WLs4*)PO!+5hQ3S&(gXsw?Sz$uGbu_*QAQQm?8b4|{^Zn#^K(nPEyubz}Lc{@1Qv=Cizi z`z`y{U;G(y<7ykPEGiQ{{6<7@dqg58%{J3AdnlC?E0{)el}CQ9}=&79{-1uS4g!PGYK9Of6KxJ3Gq=mj|gT z`-X7t<%OgqHL+NOFwM;&g-y`d!dTX>bs}#o z6Ho7B?3*3el~UklDqo|>u!qjgL7`yrIqIYDyU$AbF^sBvK5ih-+_M?Z9WOleBm%;1 zWV_>k9e2@|i+5l>@;2}>ZEWz~dEYju_PJGM!l+vKvi*j!lJhSW#0{rdXP4dT0byXK!{V7zbf1_qisUB&y@FB|<6+y@lLWov5olLLFLZDTjBfOO@D2rSj zwu5crT(Q9A;p*Bz?nYL6*TZ8(eXx383#J8G*>O9cxNn@F*z0E-eV$28{KWCba}Sl5 zNBj1eFMi-b==8SpMclcOKuzoJ&RsjXbI*puD>OthMx6w82@Dmqf zEh-p;|L|`4KC~`4>}-Y4++f?l7IUelM4K(h;TSJaxd5%K-N5e7PTe5hw^zz5_R(jbaxZR@JD;A({c)!whM14A4ViS+Hsl@PDCyaDJE~fy6464>knXNzGls$B$3QNgLjTLf3 z6?Z@0oSSu+;3t!2Y8p`2e2Bik{iN3a(4LSEwj}L)nCy%2{f$1oCVbxm=CB?F! zftc!+<8Bc`4>gn)*}G0up2rvE*1fXV?riO~vux{Y&xlsz6W)C$+Z%+@DVd`LLl@&u zZ`Z?25H5O8SXjC0ose<& zPg7a)xxZ+uj)bWV8cFo8HW>wZ(bHxZdx}P&)C#2_gU>>5DbPeR1w2VN5C@O76gW7& z`KI6VDd&ckr5giJoSbKe7j`}I$h?%QcY#+Q!WDRa3sRKYF)V}!%cRiK?`+#L5reT_ zxq(DoG(5)dywuw-f9#jsXztmGhw|V3&Ufu2AAQc2Yi&k?5~kUx`;!+>6eh{5EaSR} zw!RVC^ICEl#c2_ph)&j!;strLH3T$>jb|1r9P%i?k05X5H;iy1M zElmWb2!=))Bcv4TF5s;3spp4QX&TQ~U&AcU3r~Ie#}`i5l^)?IKFQa=c%L zu+|0VA&d-xcjGxh$2oIjcJp*&m#$p5L&wc_94S#|SSb^_^%w_ulVYh!^ke70yL7m3 z-#R^UJLw6Gb;}TR2%Nag>bb`jviR_joRMH{imZGa6-E`u4Wq-XrLeR%@U@0v=&2i` zb6c$%EX$dRhX1}X)co3-Zkaq9N6>=ZX-+YUh zV?XTV@3bs7r$LGLu1&iT_m|2tI2VA*<#qS3dpuui8)G_=y-tesH^ZzU+qIbc6M* zev=-0&4ns}a?!I>^-8fvIgW2vQ6=6Xg$%7sewNM}28}zUC7Y^LNF?xY?#=YK?R*23 zmrK_9S7Co=^}#{XfmH%+#d7+PbgES?nLDziKOt|mApU4W^#~)Gk(4aiQSz%9MMZO| ztwt5D4|(d7Qrkxme@l8FJj>+S*F86kgvb)Rx$>6Uk)k0YdKZndFc^JggAdkw+_=vi zf4j6kqVOOwNe%@BgEdCuXqkXLIiKF8FI+4DrLutw*g*S%wtEN+v{#f@?j zYz=ZeYsg}ejUm1af_RPbbmd%4zD=}4sI|KIJz6a^OTV7=zT>ZMzx)lSC-;fJEm-PU zqZwb~=TZsU!7wiO+^{AS0lJmZrsN#-9~%mZs27jMp-uZtMccSrIs|4D1b83>&YokR;M^&g&8{C!Zxi{l{Pf?0kvGg=q!TDub%{P=XR$A-1 zqJBO0I*Ob$>Bix&{TIJ&KcV9%W*nj1Q*QmV-5XOKs67utD=xRiLOyE?aaQ;2rpK_>l1KnBmS5|-%xE^ z3k6<-P+pW(ZYX%G6)rWK$VgHIsEujZ09AriSez`~YvHULk5&v2enp zEo@hi8Llljxfe3ZL!J^C#M=tnEgv{0cXsc-?JnrBp3=Q z@B=0CG^S}lS)Ps24>wPAc}(I+<{Fum$uL#p$nmI&z)&bcw<; z;G^}=v}oprFg@xW_O42&9yprt&Z;jm63AzgCe>@K67)5!uJn_h4}Xt4^a^bM6m0+K z52KK#8g1>MBnwvqUzEHkNo3~gwGdlO^57&!(b=P9s77iI!X13!cd29lk?Jv0eTOhX zl=FqBm#vo9C1#>)hrWu{(YTF2H{mH2d*bRRwmIY8h*$WYS1eP3jE<)tk<7z};r2y6qCw>Zs}fWP^o+YcKtVDnqOu8WgUg z3TM4qnyMD%NoIuNzT@=nGPaIet`66B|Moq*d+QeG6rzl8efQh;#Q9ab;vxR6n>X#2 z|Lr4gARl|;35^Y~zQ|UO&BUxiB;aYTAsML!3co=>5 zZmNIPf!B9+y@U@#CG}QZPEfp`T8dCqS4DWDcJNWDk|cB!RJGJfJKsNoO-{6VF^^CR_sWgD-%OoIA(d}%8|YH z-5Z{_-iLD3d|fj$xR1*cT}*RY9h0r!c;aaFHRN*#vD{WKJVNBjXs^;0OuT@X6{Me)>sP_MjES%ENgm{8-z?)ii9HRx5pKy}PAJ)FnkNb7eEk zpV4SMONtWN+R(1I$~nX{o*Fky>!OJ9$qYW#EQg8rIfqj!jz2e)C18&laHSCmNnhFf zwg2OfymtDXj-R-3#Nm_Zc^{nL^jY@oqdms?QSpi@nmgE}-XEqi$-}7+bz<<_NT>~# z1Dh|EP*N$g2PjM>0&ovcyZtNd+*U$aTS*mx^;%TXh>2b*DlpEe`a;E))J&LIngkI@ zkR3_WVK}prEPbhohv43!k<)N)>gcCZyxay&ob4&qlSaBR#%$`jpXUHq$?!0biUUWzuQKm|q2RuhF35%bt#H9|Rf8m&ba zzuH0p#&N5xD6l&i%pLCUydzN^y}K7_NiN=y+9-J|fnf&RfKbk}$mqk3>u$r-Pt*}? zN6&~;0b|`(3`~o-M7s`hBTdTMqxEbg`QHbu(S~P3?;hucYLM)LHN8}BhBH;QpcU#8 z@@TCRTYMiWFecS;Qx=(x%?Pz%4A*we4eHLv_|DyXo;+LG;qjW!g75dsy5nBt=Kfv# z(1)J1_5RX&C}6vR+&et>4SO$)peM7oryQdNRd1#WA?*rb{CS(x2Fm0Z=ai^z6CJ9S zh02*I@p5jnQPDQhrY6rF&=N&j0L?V<`)p$bHp~*JRo$o$S$E=&jxQV>H_zKo!SPdJ z9ECrA^&0w)27BvQwQi!F zrm2Ba69H`PZ(|X@RgV!#7T!s(K03$@p>KEPJIdp8qX?`E*dLTy=rP7vrO6wuwasX3 z#eO{FxTYu>lqX%aC&!#XQii?cY5p+z)<@fd5ihPiQRd#c3463qWS<2gG$1gT=l;x_ zb2m)ESYM6@6j!RSXCMi4ZUgr&mXFr>s`{Hf;DL8&Aj3W*- z<|;S;;EPc2c~5VwVxiRlS~ZZ`2}?Bd8r^uaDO8C4ox574LyVId{~coEZDZZcLiCvc z24By~Gf;NEhnwX_0N52K(uBKBi!H|@uTo!`Ed|O1q+2Z0Xm~WXnZWPcP8b}Fpc`&V zn5H(82U51#xM4g1?uErdr*x`zm^&0Oisx>;&fQ?0xIsK~52p98W_Mz1|Lm(*kL-=t z-tg@8f*e2SJ#Ly9Z@Uf*pla+&?L)U_Yxtut1<}-6}K6 zd^Mfy84M9PBibO)F#7o_)x?sGMv)=jEYm&bK#t+G$&;l%NSTrb6l<_411yCjcs-p+ z&vL-5`lVx&GyI-7@4)(NTpKdGskT}u3d@aS5*voeuv7&f2!gcD9>)xlYPUTh1Io^N zwQmOpE83&&`Cxb7x?}4nt}FTBXW5+Hl`{BhF}859;Hqk$YR4&C>!mA%P#fN{7;;S7 zgtuT~SI{VqhEbm4Fi4E0ic{FQMznyq&QOIz*kYsktewQvz_*N^dK%^LD46m)S3dQ> zzhOTm$4`xM#F4Il>TAOrzyE>{*q7e!HOhKUK3CS`PN zHZ`eO4P}6N6|2>pmiL&O>TL&;An@%xfL66N6)@Cu1qBRa+qAQ_VYBE=oJg+4Zpr>X zsNaqmXQ(l^Q0`&k#w3B}u*D0KGGmItJ^plQ~Q zGGAw#fgS?O?y6T@ZRBXYl!0YG7Qfy*zQFE#b{6L=e%?cbWxhy}8NYu0al3!-+}6Ol z_F6k9@~V(N%Q<8wIYs!MqfdeoLOb447vnT?2D!*8ZiOB*1HHmUx3&HCnjt2i4!q8O z7wsJsGD@{3#=Vi(SVQ_L>ppD)Ib6ru4wdp*eLsrinw9a%!plVq*FKUb`~vA2Q9wM$ z#3~d~dRPh?bBd*s(9HDEc)4Ct2CffPp&{@aR3ZGfn-H4&pRv9Z+G}lX1sMxG!F4`q< z8en`$Tn|O8aV?mzaFjeor3}u|&**Ix3Xxa*KoQ2s0toY*pw_;kLm>yEAs%0%EP!Q- z#lEuo_&?78w!I1YTUn>GS5t1&0^!70t0}CR2fG=Si1?qsBe+CHbar+`L6R zc+p+A*I#?no_Xdeo`2`bI?#D&Zi*6MO8iXow-yno!bx0F3n(UBN^Vy4{)^OfD%pP+ zrTV7t^Vo@%I*p<>_5W!iLdYiRzbR>Fxwc-8C?lsE?PBkF`zbtrDve_#Xg=o?^XvZ8 zv;5tN`OUFDg~FnfL@5<%IzvsnSc>k3Ij|989(f9_YetTc%=jRi2}vKP!5plfJQSK7 zgdfqwD91#vq;O_9xu_{U8{S8#)WpK8pHUMfFf1uT7iF{cdGr_|h~P<{vjPpqmK?bu zdc%OubBV&H#2XPTd^ zY(gm_JZbmZPw(Hiw;XdE+@L@8#5J~Gxc2x}NrqLUMV5t{h-t&$X{}J3F{nSS`uR*o zu6of`{qwt|R34$zTP%kEKg5z3hM4;~&%VE4n8~NUVPAHy{*gxrpM_ivxAOGA> zMFQr*AI7$_WFot6S>RTDx%p*D@4(k7d-?z5nn6S}VRS&`(&2^KHk)c5b##&fzTIWBimRRy?!fvOv5r(zY zFy6xZoHmgO-imu+bFqB8S!~@f{*xQ_Q+oW=8b=&7kZ=6q=Sow)F2_+bvX&X)U=4Hh z-koZjwDSV%NP+zc1BrU-=!}Fiy4*O0)~y|5t2bO5q)K{>a$sm5|t^{@HK%iGK?OS zaA3$5yS0QW+*@7S#ZSQnrOb97a5>ib=?0%2CRg1N&8dy7c_AN;bnF z^&rDXB@B&RGc8t&4Q>)0(SHZR65+9;E*=#(jf^XdB*z@$zHKi-20DTR6?T>@d4cih zRh5&X-%N?rRL!u5sX=Isd))WriA5qt9PB1G=!F;+Ewav@3_Ck@uXD@Ia@ooYUsMvW zQu8E%r@cKY``q(T``a&l+n)XS$9)cN>Dj@sDO!PXAEKPE&`3g1IJAla3aZ}r#re)| zJid0?z|7gBhhwb}TyRw_IaO6msydUCOKtNSYQ8R{)JVB1-RIJC|LG0;DL#IxjU$fq z*e72E#m7ha|E}L)dR0lKEaMo7i*WvB{3y{Lts+Yf0KBlV56{c+t|JNDDu)e!n~N4a z>Zm|JdSt*bZcjN;xu|n98t5@7=Ok&zkOTNs?IT@T)2YnifJ8iKM-s3mSB};RpzUmm zv>HkB9lbN9i@3;;WW{i%DLXXj^3`YaJv`?W1Q@gOl*$*uNRpWZ*S`*%<6r9c0cefVP^q0q%* zacGro(WEpQZ<5~aoNESpjAcx)*f_3J)lpm{%Q=gP@uBM|At13cuz@1`{-8*R?r-7} z>qE2#!^Zzk^V~mt(SFL0pL*knBVGU0SBE!#|5;zNU!vKn?mWVVfn*Sdr6WZL^Z=As zHEsMnaU3TIY9X&OrPx9F+c~oMHdiB$ks%8R)011B33A@aT(HdS(C z*SD&;34@nsLIio_rG}xap(aVpnMi@`hcpUnXTUa8ve~L2s!w$Km=o~!QW?F}CaN@) zv@L;kPMcV%AvnDwqc=>2Yn*@4ada1s9b%>E`N%th{v&0}K(r@qCq*0IL>?+Vv#3?x zoJve~<(cLcRLH}NELGnUIC4@mG#EgH$y@*T=Hx^)sKMu%d$dbj4`2X96OIAjxpl{0 zb1#x?fxq~cJ^Qg=@vC!h)UntSod#V$SF=xOu=(hQNPLLW*}!DB}j zKC}1vPEl6v>X=6Mtmax%XR(c#e2E-@9%uhT_uS`x;-!J_=J=T~jyOp1x%Caqs4v9~ z7uMFylPux2L87GTA{!PsWPr+yNIkX!={S$Bf4pE;J<4NbgjewaeJ(S3@QSu)q&%nx zutGV8khO#@C?;5p0;gknC1FBCoR_%kZLXRH^VYeQ{D~v8B%8^61c-#}4dr`Cr=~ z{EHXu^n7QBP}9k3PH$P5QyyD9z>8@~QOUa@GO@W@ylES%Mhn?l@FFMgicC$^^x#Nk>zcd?m44wdNpw_+mXkd zMtrklNv1<3t>#J|;=IhHELcNblP_$}6?NDod_xB^rEz1&HD%N%W1q$Qm+;&VsZI_9 z+yl?<(ITSfGb3Mem+a;%Z%{~N>#z>G8$R_B6&_G@Vho*=sm-q{vQqS6m+6WPnIUmv z)*CPtHhi!vs+W&>s;-I(`P&i4ubXk@n3_$67wV9S_0lNG^+NmH=bpEpk>h8^IO1rp zeERv}&HwSTkNR(sYnJ3yjX)6P!5}?_CgbwFs*zv=ansH(ie1BrGR%B19btGUVxWGT z(zPE;rp$R!AU+`^Izm8Bl85h_9Bf)Y#HIIT~BeKK^$(RVmIQ1(9#`f&^ zW6#>FfB7Lh?eDoqQ!9sJxU2AO@a1@3RP*$CS~%l4g|{)oO962#m+DEf>q99fGObKx z6?xTNnX;=@C462XBOybxdAX(_2AWGzq>{YC9ZL$!M8{#|T)26rFrxBWttO+b8eMBt z@lq2;h(rWcB-QL!rKKD=n~BP!;lXoUj4%Q35niqv&W<|leod&&N7F4B87crd&gzB> ztb`RCWfgAzufF_>J)NGm@7?&e9UdRs@iokkrC_D-1W9|s$HHk~yV-Vpa8xWMaXnM` z7)d(y10O~PBsQ)tNs3KdQ~V{OAG0Z;h-fYsRg6h|m~CypviRlSeBOSBj-M&xh@-vs zH-Ec-{eQUZ^X~If(vGsYM&3pPaR|1!Ok-F!dMRAU4Z-#)D_vK1eTOI+3Me9xVp>$x zMMM|1?YZ@*r!r10RZImlo8A-|(3*KTUM`jVCx7+x4 zM4}Ng8NEr?Lsw#Su}S&bL<6ZUOmi6`(2EVCldx$ei!V{%oT{9ePmH2ICM!=CRD6#$ zyYA6^{F8sh{^-B|S9Z+}8N$BRs#Ex!NKo9lpMm=y<4IgtwCBgNO#n9~i}CBMhQSpc;-Q_R;=1)wt_6I$F=8Pkb z?(zTd3vM8>@IGHXz0?Db!m3{JHDwmI>02~uVmK9kTWV~~Ci8o*>KMm(kj;f*BfFnH zetY%V#U%2{S(qJ6BtUZpH0mu<0e8_M+7aj$kgXu5X=a(!aJ@K*l6aN_6EqT(Kv0&O z=npeRFx=s{ZWzwNafIPWA+BpGL*rz|Inj4niC`|+N{GifVPuy6?^UCwOX{d2XF_DiDuHVV&GKc|3jtA0ERPzY} zI|(&8M{QHQuSl2!8RN6Fb7FDbemk-ZWcPy8$tzY%3{^CxxVAp{i4p;>oJM|JQ5m7` zIZ-;TjG_^}DyfKtC_1t6ZxzB(R-M}%=E!Et%=#WGbGCloh3=^bkFbe?1vT8UGW(xJ z;wdeVuB?`S-0M^o3G!r>rX1mXqWrroXj)Nz3N(W z$Rff?JB80(*7%|PRGxfbhOyabQ!8rMFbK;WqRf>B+=kevIO%?O`759Mg8d90Ka<80 z2MlDn`ET)%J}=<0>HpQ+<`{C04^Y52j@v#n&1<`+V0!<}+W^Yt8$t761&V zA+@zTQ=*_qrG?GUA)FA4i(JF59Yt5?l%RmPV}j-J_lmZg5fg+_fZ^?n!gOY`BV48j zSb~HNRHs%~BpG0EA0HhNx8(f@|{n#u$vSC=RO7aRc@e5&va z+5mGspTcg88!$s8HYj8cqY9ZkK9mwWmnl0Q;|y=Lir5k-?6j#hLtyFt_ue<-?fnyf z-A2aU|NiPLuiK@oSM2!mCC|9zS?*O**6%4;7G!CC|_JGLgEgu@2o;4 zQ|YOCSqm@fSwY19=#@!g^hn(>{^Kv$&*;H={^f&(ptb)(0b6%}29XB~s z%Ypj1MC;+7YP`(94Krg2O2?t?`4@STSY9-W8=sgPHhx!4ty&VGw5mgYl{QNJB1r&S zFhpX6%t8&dBMc(8$%aWX zw%e?7H5ipuQbK{}X5TEoj|g^`Py4{?fP{)W?!Rw)~@||A(8>l)+)>t6sNG2sK7}pRl`(j&M4eb zCrlB=iW&y})LFAsnoj(icx1MpX~T%)XWBU8=&pN+{Tf2-^!bvK{V+!f(0Z{tjB-V( zDm27gb{-y~?dopI01~hB>@E~rP-ol<{m?lf+$3u!pRtc>7i5u-iG07 zA{9XFpXQDsA;uE|4M;4|gKTW{k_Zblf+})RnPSa^^KNsc`?T>~l;vkz+(sKhPcKlf z=Vk=&KgYF}pi!BPp}flbCvS^5>UQIvcM$kZ-5{IT;FN*(<%l*mA+Vu))V<;PbVUX& zC*5=7Auq&~yUUmD^xi#spm@%=-+asd;?KTiA76f)J#LWkPIg8LQ0Y3GBflla*vL(- zNtTPz&iGmke_xY(rQ#QgyW)3rga^kMKmN0A7;*f}8%G@76aV2C1`o0QNqzpEUQ165 z4XRRmAvsVRW|UAF&uKDN^hu*0b*Pd|%#+^5rO7e)hp-l)RMdlhTo6|^WUBM*C~004o!JhGcSrgX>=D5E*NXM_=N(6}Ca; zhGfH-ZD(Lw$EO!BSJ~{28w|7BCXo>;dAo6M(BaTGz|D5Y&q0UC(h3{S(KM_=(C{8t z{wy#M=wE}eeD&2g2)BId)1R_~X5}8|HmFbQs0gz$qipEc-$r0JXFP) zVaOpEn^}F6142M;{DSmm;c|T5@bdBg+Nw6fJ|>}%!9U;F=5%B0{WW=oN=8H_2y2&B z#HljAz!7t_yd8w~kxM!ZA!VocRL(2MCnzsDs*zL(5c;BhXmuuK{VNnHsk*2QPew&` zo&#PrIu^!;02B|c%#YMByxmkql$)+u9iEH#UIL#*2`_0}7A>@WZPTlR@h{#9a# zn12nbq?*N4ofYF!#Z5*!Q}n&9-gOfgv|y`gQ>_V}IKHy{rGNZ0mz93IG=p2)gOm7o@ml-;l!nkmMdc$APUV~0Qs zqr@bo5(CX_qo_(mm7dWtWUFO?tq=C1VkvY4Z6ZO(1hHCqB{qSCB8c@3Auv}g zgp_lrW9JbP7|&7L+~yJGR+c?zJv$oDh4qyW3OWs>=5~&3ZXvXhspiu}IcJ0Y7x#$1 zJKQOTQAne$@Wi0{a(J5X7WelLN9CiNufJjUZr`=*>vbgO)H5d8Y%cI0dhQk_lQv?L zS_4h7aX#xS7{ZmwknM%lbN}#p`#Cy(u8bp&_S&bP-@Wk-OzO5tKd2I|4E1a$ zPL<;o)fUPquzs67F3>tq;Q&en3+Us#(LaNUnPg+)qN?mvBcRWe=a?=m&$=5AG)4=n zwWu|mvA}ph@fm0oAQ-O@QD6ZqPsbz&D8F^}fCN?QhvJO6=Ak;LA{Bag#U5TN4%weMcmP`tw2x z&T7B61X<&;7iMfK%jAsmav+bFC zk@rq*&kf{ie~*a_9??@qtotUU%0%Cp+Sv+QY(oN!)Ro*b38gytG0+g+*5?tgWvhtj z?*q{gsIH&yN|bLF_8fvCWJ#YN8(#Z4Jz~&kR`_bAvV`PdE>XDxdAMZCX5*UsJ}^Jy zrjQpqlD1h*TmeJbo^XBaZgkuYb9`@rU2^Y%Ush zUDmXpH5-~?g0+}0B557r4v@Z5<(d4K%f*`7c4pK2D)pf>%{YmwH_?oSM#?Qp^h{0Z z72%dKoUPZ?)J17FVLvJS%lLp=s3#P&SZ$JtZ0*wVAwhb0+DH_j z(xYpIX$~{(z!aOvusfmP?2>{Et(tDZJBO-LBm4}W81I<|WEctCIj#wm9EjjrDDhCh zfv`YgU-8NdNvKPIrsbMpl#Zdf7-w+FRJVQ?zg{dS1w<&gQEj&AP##Zh6EyqTgZ*2 z`ML;bL7S7JuM`XfKW_Wx^SR|m{@#oBb9(&T8b=(IJG=FbPnX<$-G6#^{QZ1a9Iau# zkQ=dT2qKBX+S$fEvE`n?`&c-Y$SdsY0pW@Ot>rmJy>G>d<{m443RNE)d78CJQpK>6 zLee5xFVa}%9%>jr7&2tg4?I)b1*X_USgp)+7{)=3q1x)L;`&B)g*1kktnf}sw!oO? z&8hYG-m=$U`g7aezh`^CS$yIXziuD-(68Db{<}Z0Z@=_iJ3d;wca4?-=k6Jv(|cWX z&FEdjAc(pm;Rgo=SaF2PkCp~qrI;3+(Iz}F^&v5~qQJNU0zjBMoS)HKBQ?q7y)y|E z+(9VW!0?i$BaqMyMqvr)cDGPlSak3UAr5|CE`@241y6`+L}tEdQRxYa!mtLY9^SO)Y()D zqf(E`8myuZ6<3s(DD1JSVav0LdhfvMreG~-6QMqoLr4M#B?tp5g6{{cZ{HITdsyfp zC=vM=6I2%zU>H%V{OlNZf)Z5Qsn);OrBP}|b$4pz-fg>i)4O<{kwZ|0x_Q2Xu?+wLi z!V_xMO2GvG94IYyQJbwQHI=Fj8>k~GSs{Ulj^i*i66auv8=lvqQD!L|^y<$eIz{4# zjnT+AY$;Jj15SNRh2=yFSwdP=#+QXnh8sLa10;Lr$g&$BiqOkJMF7b9^K)R-{NFnm z+cfyNgi23f%;VzYYHyF_ePdM+ZQLM?xUCgE@?sr` zv|Df8vX{U6J$vROAGSJ>H29Ee>(Xcj1-*yt*eE&ID*`F`o2kj4OHciL8%7*I_r?)N z7|2iiJb2!J`mKw9jd*qZv2y4Helt7BlB$*ZY6Q;2ot9g?78%VS69mn;1B*;MMBQoV zf2S#&W=NKUM4eS8I2y)MJzV|VTN$Z8wfR#$4U#r2D~DpW8zczTvic=8q1{^|fnj5^ zN%S3v9SqTAOk%r3REbpLcoRt*Dy^J3w)ow@wEJ(}WHx>2W3pZ!QuZD?g=-Jl{>tSm z_R)|2vc2^BYj(pI;`d&A&EC58h7Fz+*-QTAhH~FSM3iSP+*(5pO?^xJTDDLlR~<6c z&)Ke^UBq{Vl^Aq-mL4{4PflnYv58Un2cr)jCBjMfoIzp2`#_6go7_s$kHb9qLBdWTem z9Qx8DUsG}<91u?LG-sJmf_`cu`oroe5mU=%vb z%V-pGMaZvkQwbPqIr=MhC6sAq*F0irW(=pG)Up`E=|rv`?rDf#&B&gD0=!Hiw*@^$ zwZ~L)AQgu02pOU6Nb|V!Eb#e#d+X(w?Bwn(M&C=vG}r4(4xt^`>HwbO0bdIvwdY3j z@oSG;zc{eNk9^#2-oI~u^6&rHUjNRY*=l#s)}ClM-h*JQG2C9@JHp!3F?(B@+V)k= z(QxhXD)UbDzi1bGe(xT$(}Fz$X+_w6+S2PnyMxs#l0EM6qe)nDNCZN;qu>ZCVggq! zWSzI+DMvLDyvm}kevy3V^XYJY_AeS3Vf3L8RCakZxD0gzx0Be3agz~lD%uwdUs}+Y zEEo!Hunkajko`G2zUcFg>7}E_b{Lz@`B<5g*?&e=F_=4D+eSzqp#tv#T96)AZ+0BR zySID$%Rl=|`^2aITGWll20jGqtJp{}tFcRTF?^wY`tLq(zd*+?jB%_7GTHsjZ+z3A zKQh_Rax%ejsd!4SX6999-xyBsafi-fl^(^DY@(jJW>wWMcrJK=?;;ZC@cz&rI)~c# zl;9C2$vqpH%Sa~RP>r^(3D=FPafZWqe=FsdF6blR#6X_vt@D3$Tl>PXDccXae(qkT0U$#9@Y%qL}3x%iMZwJzv z_B}!K)MJm^<)=Sn|Nh@zw;O->Z{4W9>W*C|9tP^krkn@%CF8iiK2ZBo1^B#vc2lG> zx7mqfo!he$aSe0rv=_uEUP43c?W{c`QJ-A^9cox2OTAk2Jn)*7B9lswRI|&Za2>ca zJ-{5?$1LwpJy6069Ms;GQ3Gq4mrN=_X*)-J0fW7x`@ zVtsTT#xgpEiszP3@4GQN6^7|v*xEh9O9xl%@aUTD?Hwp%8fAZ5&l=x%ukI8wU2d3~ zWy{_vYd20G{+pk+_R^94@xS{2*pc7);bP}mT2JugmAG_SJ-1NpHM`LXiK>uLJF)FZug6rzcEm!MH6~`))8-tRNz@DoHmJ)krj) zY@^XJyk{6Z1n(6u-VO8uYx@awgG}wp5r9SLdHQ>nD~0i(3(;80n_skv{bCUMulM)e z`#zxIUHBX$z>tGrzT2{!<=LHEc6$4kkLxM1)D_lJnwVn zw`hX0rvMIbIsgo6Un>PDS=;S*S0H8D32V)n%pU=mcvDo24!|^#%&{BVA5ckiCs#$WGN)7pLX zUV-7-aLo2Dw|3>1p0bbI|H}UK|MxFFHXqz*x)E^$3GQTzEU>BDUvC{t1SRk`Nr4Hk zTlo03Dy5|Oh4E)JAKPKP*Z$d8uG{gGPpCDjLjl`cuiMhY-u~n+g<{X`9;Me79(q#> z%){>t4k9)re_lQ6k%4{sHT1+Em)s<|0gz8=%osy?+dMnJJ_NjQV0#WPtmvUGNM)+V z2hWOSeViDYCoF$Nr5ZHH}$@Z01Zl6!j{9@pX zk2-!~jU$eVLvG*r?{E0x{gSV(%i4jp%M)izl0s9vP|-P5ml~}ov#_d=Vzu-@nVxhE zG0Z!4{KN83;wBCe7TKuTD1tXkG^V)ZwIb<~jjAeJ8qypkUYf?zKs2_~L_%f(tWg{z zns0b~OH|7gWlSlMnj&hYdbqf^zp|sFE4E%9@MpXid^#A66Bx$( zrxcgy+#|}KJlUf6annG}e{Rjm9mfezCRH1w(&Og!bI9a~_5za2)ow&$}1)KKl25CYoUVD34!g<5-X7V}JY0<(1$2T29^9 zed<5ku+N4JTO~K7T1y*k5Q@!2D#$5oro=!Tic$(ea|kJHX><}73;R!}z|=~WtG6mi zA>oCZq$w7X^O;6&nWDKC3`0_bt%Z9(2OSziE%@&?I4f8aD}enWfZJBS;8+qi%b+(^ zatc8Ij^S;arKecn!MJC%+S_N=9wlrDq0wgZ0vk7*r{9LZL1a$ zYV#QsqC+=YA9ft_naACjt8RGn)@?g`dC4CNjPx|Cc?HCmz3ff*b9oPXLzPSMhMe%YA3vI4(#TgJFHAvFI&~Y z<3oqWPVa7PcmK8<(GyP)ZfwbjLXISAkQRPTyUk$t-h9hWZ{4xWk6$K5tMPOC)!o?J zYkpzF=m(DvjAI<>so%Ka-=5oj_g{Y5!;Igm3O2Q(gMn-SGpqwn6DQ0bsBo!C84KD4 z4PpewS|Z}_RWFt2#)55>sf35Q8}v$s-64$2+zCRwhI%pN$RQNNVmk8h@REBmXqeZg zsGl|^X0WWAXh>H1ebGD0Y+R%=>H7aF#Nq6CpSKBtT(2_Lz|Q(r(eAG6lc_0c{# zJ12I!#XB9ZJn6T5qNv5*+dr~v2bb*4S6Vx}xpA+#*L7soa*OGpWX*lYGXMCG{>VP` zv5&G{Luz(kIb8M6r>FjtU)V7E!Q%tt_`tDv=I{J=dF5Y!(`TuN+38uaCXzDErjjpv zRJPit+GZNWlElE5{uHmF1ca6 za&Tz-Q2#cSz0o+9G71Ycacx%d&B~)JRe4Bt!%+988qTmC$-oRJ-3Xnx3i%LL?x29} zi}k)6$Ww4a-GkY6YF@VSwZHMOc;klUG!M$g<8x32;~v)54O3s#lnXkP2m=p1(XiJF z16&^LF>%xSXROc_FKUW6@TT3+?9rp8iB>Do(nN!+ojkHe1`TvUaK90v9(?p^`_yB< zX(x9))CBZ!eA&{WJk8xQ5#z-gmL$8{%Sjik#Q_!?f3AQ zs}grW11%)?*tm+&gOYq($6q@;5V5`JTAOIt)u`Kp5>BX@ch4Neb6}iEs<2s?p-s}- zG2e9vF8MWs-osK$VaL}TQ@rIjzkB5+>pY>>lo-Pz?Z;)j?l1rJPdv2#%8sWFH)lJkDPEy=NC~^L&~K=rUWKWZ1^vRpXWAB?w!Rq2nZn5P*lB+ua}u zFJg(!sJgA!n%Wznq%EsbckKOAq#6!m3niX2-}O(2LJLszxdSj z`Dgyw_o1W{_3+33K_7Ah{ze>O zHM0D1OM#6HNj4<2avn4Dz>5i!MA>B;Ijm6&4Z=R)26V!#97Q*XyEosk?|$>&*zxAJ zEz3rgGZ<@R=sV59GqbNf_Sc^K;uoL)+6Ug^BaRP@<2xMX^?&mPpL6sgON7CXs?DZx zgdo9Cdr3whsV4FyvG{{xbLQ{Z&`263%CNEz zJ(S*eF9bN`BBxr(K*QSP68Kg;XqCv=*b^o^M_f0I;@R0LrNkgDhGSIiwy5SXRr4T2 zdtc&#&bWA#kHm^JEx8 z@I!_*Rf>rztgSWbtS@)N&;&e(GCXAKslx!H5=~MF9U!6QhVkyTYfP2AsY~`UNgbr9@a4&Y3g^|LGY)J`H zD+_>tc=ibWAri3%9MZpIb6bEu)~algP=tH5P*>V>W4h(<%dUd;P7BBpt{~zD{g-^PCzvF|j`W=q+ z_}}`fCu?3T?do}Buk86zX5UK?X+^pn`?rvC6Kyf0?5{*Sml9z#@Wl<)UeZ`HSmOOf zJYFScDo%({*Uz~|Z8NH3kmRrw4W%*{%D_fXDz%GG3u1d1^9ZlGs5~@A`%rj{_+kU4 zE+{A#Jj{RykX$<3^b9|R%ANsThH6T7;s$-wiWI(~$cHw&Hk8Ki`rmIsCgc3Bz2)b7!VMPcg8JRL%3YwV zIH+j$dS(N06e^uV^3sz-zzA?Z zGWvy*Yfz%^s1WZEgk!=dj@6!eLJQEryJj>r#oXN^)%y^VC8b=AI+Gs~}mPjdD39$dm zpw^-}`a_RG5tc@5lNA+B3fhijy7qlhtU(+uq0g9P#)x&g=hGIo9!;eiy+sHZFkFL2 zH|Uyo146Pb8&km(VX0(0lVK|oO2B~-_r#4TGPFCC^}$ng<8X#sMdi#wf(=ddzEN0T zC{S^T1PU^}elhrxQg_d=J4(jcc@IVrlaei{LJ^0F5bzC~>E9^Tq`{=o6N{kmHJ(U8 z|DL6KF2ew!_LyS`+|qxyh0Y-`KXy3G^v+<|4w51OB$^7kO-3>b8yh+i!l-q#cm))gODe2tL9*Qe zXcb$8lM;p9F>J1x@Ceg`5meFxTH!^Fr1sD}$_>+s8Sg3K(!}St!Ocv8!>Qt>_Bv4( zJ;Yz!bBm-w5a20}+p6kfl5=ZBenvtB7$Q8d21MzFox$KV>MsrM9P5t#o)&&jz(Eht zq5zrUsMiI@kYcg^;VV-H9`(zE8|Ti$&_#r~RhKBmjZ<7B3CCTqEowuOG_%SJBzcye zSXuek(mgFVipwRl;hPvgY*N*zQ@o;6j~>dBu}_coFQ}^{p@PKEIlNTpQ7%>1=P4XJ zbFUE_2_OML2lumZT&noM<76pcqBmz`C)7$Q<7S7=VB@d7=i~GjC`onW_?VyTDFUY( zTe#6}C>4~2qayUql0E~CrwuU+77f-p6Lqb*QNQ$Ms0!V=cgL@1VOM_T6JK%2;=mIkkw`17nAvbw@4mjcr7*AQc5LtM~PjL+DwjmTM8E-6x=Cp zR|eZgaoC8)XC20${Y83&wPx@VXwJ8obt!;P0wzS2*K!<6xaT?j7Cp+%TTFVY%lheO;KRvk?Hi~To09za!9NFRCAzMP=nZ53J{ib`2uuxmz zsZ{z|sNt6xd8qgZjB68P$!EYyDe)9HsA}&UB2#Gp96Yhi0ONI|tJR)uaw%{ge7Og7-5rIIK5 z5Gf>i^av|QP6?ep^dxI!ucQb*J8#t{cBr!cHae}W;!#ylA{7Ol4dEpsj6QcmfbSWC zwF?+)$3Ol0FEP}IvFYgLQQ866AvTN9U#y)Mhe%WmFpj7brWICQH*v+1L;kIyN5nd1 zG^JmztzRF~7~b{Ig2d9ff9?|M?46Xd$;)h_lV1*tp9Bl!r~rcZ8sat~USTv|d+-$V zf$gEmnU6IDHlQ-Jazh5%5#-rGQG$VHZy3;m(vny!1U+&H^ukN6l}S=mS1mhh-u?Yx z8C+>pB6)@}BBjTl1w3A2#tV|omy12$WY#QS1UD%U>c7n`wP+p;QHa3X5xwZPKf4$H z^UwX~A0%9Uh~op}_(L8w)OLL5w|x=(R#o7UHliEEK_u`zs_`hn(nlLo^;^jk#ux^Y zOE`obslttgLLlBoh3-H*`QIkI!y4ezFf%crFm=Q)Lm&cSEdI_Cwz!rw>Pf2Q0y%^` zh0~4%*ohm2QID8Fop9iFfD?dE#lUiYNRy~RQqU-*4)gbw{$mLaskq?BpXp)6a#6}4@U z#%E_19{U0Y2i^XHW>ZBtM4^!~I1)c76TGs%WM@!ra$^Y(9*x%4i?!!PI=&W3v4)f( zCCKna;ba(AVu@LQqbHtez;k5U7rb$Y3A#v8k@vap8_<&8Ga!)4spL~1G4C0B!qN-7 z6Z`V#KKGw~5JLZu#|OsoeK=~UefF)df7vJX^S;nOKNL?66tw}URW-o`7nytXFl*wa zjLoQ`OR&6|(u9nb=pAOY%0VS+wcs!-)5GKm%ndk`HAj>}sT$c=cpeavkWt)42fHww z;nk8`h|__GxDh{d*GdwL*=b^RExof#j&B{gVOV#GS?4CgVbO1DcwDhV3p!B9b;U-~ zFl_IwRu-Z1j}tR3X^6QMxCH?r`;L#zE&sab|K9V@KSXPQq-0ek>BFcEtV0SpH}FVJ z9i_)^fZevd!LsJbb*r3Bo>klP%!_;FRZk=i(rOY~IPsqxTmc-OftT zq%ysCJj1s3{$>bX2u0utV%*jaE37=(wdd~vJb@Z0;FEW@8`(ef*r7+Q_tcGswKNG@ zq3Olcw_p4RfB$ng?1STdIX*Cs@8hw4jy0)Yc>PcRn=gCJ`On;I`i%N|I4;*KOdXCO2t&FXw(>0d zK?w@J#zNE46AN3lhk)&cD$UlQe;3wu7Pl5%jD5UZYz~|WF(tNtaQX5VGL2ShfOA@X5^C6 zQHV@*mv`~K-UT4;L z`RBgaW_#fu{{8>#Mf>1*Uyl!rB?DEU>Q(uT?{QSZy} zwqkwsJ`?$J=bH`Hqe~;H1Y~^gyAi$DZf&{t474XLuI+pF*1x*&b4h}ZEOZ;mfiaIF za*GUeP+ou!cF5)qOZHP>Yu zyvQb1fT4`uV@k?cm#Ah*xmKfqULz3+7&;`6jNK2#^K7GG6+QzV-HHh@_fU&G{H;x- zbO?e7!yTB7=lDb)7pbf_EW6wl5$KV8dE7Uf1Ajj~VaFUVwH~HN^-slDY9IA8)ZHWD z<;fP$j=%6v{{H{&Mf>3RksQfBIDX{ExBlo~f8q4Jd}-TnpUt7tb6$d~=hSrKNcR1rrPRV)@|Y81M#@TQ`&g?MLH8`Gi4 ztfN9mnQ9-Cvr{|S+;>QzmtkDUC^58+vjMNWxjMAhuRUgOI{t`|7M|WRIvO@1y+*0F z@B-P~3K!7GtK0SGZqc^vV#vCm#_>$lY10e!`|OsKt82qR);`WG@p!Z^~% zXM1tC>tFakeP9%S zMn>j5NeTP3oQrpv(uBhnwT-}4FA@P!>KR%jG0^G(VQfwzaTeVNdwy7Ekb*3t#CK4)bRN|C)h7u5wH&0QIr2a76uwdvahKcKH6EWL!CSVG&S%m|M7$>kt zc%YX(6MZ$IGRD1P*7y`As8Zn68Ag&&1LVxgi~fff{)_+kb1&Kl$B*Usz;pZw9RKED z|94;Lhu!BrMEp!IF3;$lK#hgO+1do6DFaKYkDW&~_FW}GDM8Z^I z6I}~Ka3Ket2=5EVv6i*y@q1OsiErd1u00OJI(RGHYM~{X&RU^h%g8W8HMDR)MH5Tf>^fj>#!SVk~G@6~3@| zRy}cCNQ(9L#;v#LX6%(5 z$nvow)T@SqBgYY5B$E!qSmRww3z?`vO*JsbA;L{~S8OJw*Y2;EcIDDBRlkv`9;}uf zD%5O4Zf#o|Vo}3z7tP7Gx(;A)i>h@vb+}`A9c^RjEoE^(gZoay(J}ig5eCYw!7!pi zBn$J~A?XCX7PuU6K`3^E3&<)G^;}GWJBoLz4`6+@=^QYCD8J01{=?8bNkyCjj(2HZVJO(KWW#}^ew(6n^C^o|?H#O7aHX7?MvCiIg*QY%sT!KlpL1gl^RgDHL! z4}Z<=JoH~#w%u31_?ZtVIX~&+1LOEpaQwz+MFINy*Z=FwZq@#gFTgLkNqRPg!DG^Z zgl5rGI;->;snxI%RZ_XyXdwGOddvLJ?OnZY9Oo6iGxNLheOAebk7y@f?y}^c&)6{4^kXT>P_mJ$!r~rVC8*)OyOm4$+hS ztm!6G^_~`5h#CMZ%{*o3;i4qudVEh}u$LIwf&CoJ6^ercp6MmgixHg}q$&u67iXh1 z7-Gm$V86wv1Txen=W$}fZ#eHv^z&~dg=q{E+gIkyXco(Y-e1sgUTv8d4p;GYwUu36 zn#~sgj6quoyD{8yZ}s_I=-0W>&UUMhMxS${V{8${*n7(|7~f`O#^W9~cCIzZ6)@F4 z%6US(RKgXK8|!0qtv|(cWdIi5lp-TdSq{?t@X#*t)zy`(Uc8iA!4X83Img>R7q8>E zD3r*WXh%Mg5yxzr2(J#(>`|6w5ANRi(Wwme*3|%xZ+Sg?^81Bk#gTSvKhytR%hw5k z)C@PujTbQ> zJ21AwU7NOK*w2yVX=SJ14|`6U&GzvsB{2fzAc2(@&K@1f8|*4MQrqEp%xnxC+rjdd z3W^(jRNf3{DM3oji5$DqN;|0U13os^pY&N7lp+ebc2w_ z&@ebL5q1$*2Y6k4y=CO7AOR7bDcIrZp>)%^z6mHBhU$20HlAAk1Q&?UabHGtzg zRL`ECEb=b>Leb}k+UYE)*-Jun`Dtj&Un$dDH>GTMJL>s@xA1rF?Rw;xc#gEZDoOJw zdC5#`iQC{@yRaNy+b()GDxe*Vl&r8DV+W&JNw5FnAe_m!mgf?pfkKGv^MQWd0|g2= z3E?CTx7aC}TVsvQ$;k70gQbSf5oAmo8C$A>QtLXgr`syftl@>|VLYo{vjP}^yi*oE z12}32*=Prepsd!J?$KR$s(5~03I#7b+G;J?t4m2=J{NcSFUo7W;AAtoA?uI7C*|SC z5=K)wEM{_u%M|QX^|>XDGScfUQxd(7(_UY1u-|Q|U1W)lvW=vc=QR$+4aaK(N7GJ* zo?bd}H)-}+fhMsjBMe|zo1ybUczu!+7z09_+J92L+pKBH6YV!S{|qR&uo#u{C8GRK|~UWqupTPxsR;lwdA z-yD}yOVbKU&VY4Bj!o&1XOnZBpFmrvZw|f#vs_EQxsch{U(5LAg%mBl%%xT|-s&2l zoJ{4L=}mc|9pv-zp-im5y<9kqld3tix`uY=v$J>psmfK1Rf^y4X_W;5G&fvY-MnI%O z3qo!QGg_(HL0@X)G`dC_*%nA+QYLspa6}hIQ-{o5-)y@q%4NX7_OE3~WUncJhMdTx zE9rim7Sji!!`;+7-Tl>eH4`<2{XQSOx4kHNa_$h#_yRp@ssG&KrwMjxB6L0nA%*aI zxY_7KK|RqO96w*8fZEj?1xID5H}!eh_y<+npZ@j!!&4dRovr~K z-?KV7`OTv5{n4(je(am_C}0$%@hUWZjb&PMuFV(~+mV!s=CIi9(bNGktJ*P+r;_U< zp|CnLf&(V3bfivc)0IS5$u#C`8v)*N+y=nGc_xWc9msdk0V3rPBJZ7!{e7^=QAY;7 zyJn)vpU2zDgnQ5|UdafTnh3-Ku~J9jdy4cuC3CW1Czfe$T1?(kr-4FmFxX_k*RLeK zxR6BOLc)pWdjMz$EDaTT&1T*6(oQVkIIw)h)#rzbVWy4sM?LImoMoyrU1Q@oS>jST2E@eOzf+k7=WxUo25U7KdrhW-F zY&uqZTLEmLl_ZPr^!X?#c6PsQmx6)klmKs^86l*fa^|wpmzf(s(r)_f{@vq&RC!Np z0LKrg?%n%h?m9VA$T-qL^_KqbAEBAbqQ8ERQ99L8RL97m#00|Qvot3dT4+3&<2*hx z#-JwhT3Tc$kit{ODu#AZMnt!az>yZ@%~r?#vNmSD^$kCcX3^x^_I$E9zGp5*$l9qk z%iPiXXd@OFe9su%rlGiYjo0LKrwP82MwR+cVJmpbs?RuX2>r3cH9PZb@Vr&{mATpp}OhEC*{&8Q7Smn+4{%Xd=+%{@=bOkEoMM(o9#>0^tS0hpI zj$LN%VhUm!zwch$9?Yz_HK%dsQX8?O5WQ63&=C+<7glZww~EF9)`53 zcDTC3Y;kXniyt{}>iV?z?N>^GE34d|4Pf};)&Pz}eXCA%6yLb%GMODNoy!-xQ@d3) zrGlr-!8VVTxt&aAa*!WTyU0xFw= zA3v`Xr(L0ZrQis8&Dq_%LptA3uWJCuq5h}3ck-)wTe;=9D3;UNWPW3O^OnnV1x&Yu zDL9?DCB__(UAEw^(pLn?MnQ3_BuuUQzDAi{jIJo&g~Qk(7|0SFfqGfE?j-jCwdg|k z7G}JOjwgNqVvOr>HSc(rj?=#GJPG~ENq3ef-IaEdXI)#Ji#|U8<->CsYN-EG12_)# zoz$~uPZrv*Ekc^lmD-&LX%@PBoHtE*b6b~-s@%%1s$j~npl6{mUx?qTgS&ypUY4~{h#%3 XN0cv*M0}{Y00000NkvXXu0mjf_9zyn literal 0 HcmV?d00001 diff --git a/src/assets/avatar_3.jpeg b/src/assets/avatar_3.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..b212812b8d9160163c54be9d6c825097e9242ee2 GIT binary patch literal 34237 zcmbTdWmFu|w>{XgCf;$A);O?#o?hxE*hTnTL zZ@u~UpSf%8st+ZrcGaqL_c>?Zm&KPAKrjFm1qFnHj0ysQ(9lrPF$u6RF)%Pm@$hj7 zD9Na)D9I=&Xc#z|Xz1AKDJYl)S=hO_`S|##nS{lKc*Hn)`FIe}(9ke3FiEhmNO))| zXnFoWkC#pWE-Jz(!YB}d4uFV@0K`Rj=|%Vn03aYE{MP{d-va>=h=hy+LPbNzcmqI0 z00I$_fXK*5NUvx5y&eM~;UeSFa!aD%s~CgmoCtWn#{WR2|4`FKs5*7Vz-!_hh=xu? zOhQWbmXV2>g_VzAKu}0nbwTr8pyN9QjcTjLh z=(n)&h=j!NNy#axY3V=n@(T)!ic3m=)z;NFG&VK2bocc3^$!dV4NuR^&do0@E-i0t zZf)=E?(H8Oo?l#EUEkc^-9I1zfd5VBb^G6h{udwIS3ZbHNI)defA}CEdb|RNi-b(e zje;ks0y1{Or{npGO7J26M@<(RJ+JB+p^5VpIuQfk#@qA%Q2H-M|7U~(|9>(1A431b z=Vcjy2}F4PU_e{|7;yW*{4)Uk{}i7u6?D9>j~mGN=Vobr7q>(OF{2VtAl2hea;IX zTvi{hDFZgEuPId(6?^0?tUzMyxJUzyzZdvN#2_pSm>jp_^W?=$%9CRh0k>KxMPt7E zKRt8&+Gnd9yz}0`ME2{dC~eYJ5KS6u5CSRU77H*<4WnGTR{_yqnou9&_6W>nyO zJ(UO6vLYeX^nsW`Pga+ovgOFsH9V_0_LQd}p{toZjBQqmU;mO87fG5MM3V;Q|7zVAa) zhg||_KiogbP**TcuUZKlN9&(Uxy;hNZps+v~hp8 zoCIRM6>5*XaXEIqLf_RJ@J8J`nK~I4bk7IB5fh+bv*xb!$^L$yqWR83VnE3|;?jZ2 zGuhm#&PQPBYj|c(n^RUt&wPtzn@#Qnd7F1Z4Mujk%q7J_*pcA$p-9DQIBk#Y7(MOd z>djT9t(0k=sq4mmhs_W{;qSmnq@V;?^g~XCX470{172#^(F9#>J%MSHt170fzdrVF zHI2DtuGS7yCi=+*ykOl{k<|hhX>sop>OJMHHAfry6@$jCr)HUiwMHtOO&fuE4AFZc zT6%_ZN5aJ~ITbq1lW)U481;asLfg++ENUSUQQNj&^E1Ha*=KF@)EjwWpyNRo&B8m3 za_4&<{{I86)f2XvRhrb~VwD1LNNuL6dv2om)o=OZ8{9O0KukFMJ z{B*-zF-!T;&4ZR*M^}Vdlzpp<7nQ~yz*CVE*yTS}1^)f6toP!;GIS+XU3~&IKKho9 zP|2OOmBHML*o(xw7#shI{+8VgDpi_ECgoEK>LSugzO}U?5N3O1U)Pgl8SWuB!sDU_ zq*UVX<^7y={-#0^sQIu3+(*f?^TC>X$V&LAju}0S$8%E?-#z`Ol;>phGMVL(03a8~^Y(I8H+RI-_AN9E>ri#jR7|_)9)$ET)hj8{|<(Yw5+W zl6_Ysh11ISI@gI>UOlroDPH0~cBjuU@4Lu%nJY+rVleSPWqt3tSAk$``7y7iol>Ea#FgLPaJ?Lu3fWMInq) z{YOdk3rK!A6%fUKMFn8uY`wxi%yBXe!3G{@{c5eKShdM*Xr+ic>?}uHUI4>qfBOpc z+x1$+;a;HdCimxv^Z3AuLH-?TTs}Kq`3tF<#1ju;v^QX8AT{^X5$UCj`gpn${;g>} z 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

Vu!LYd1N`=whoPBAtVCYBW9A9`>n( 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