From 3aad952849248a5b886e82968c20ef6d0080400d Mon Sep 17 00:00:00 2001 From: Frost Date: Tue, 23 Jul 2024 00:19:49 +0800 Subject: [PATCH 01/12] initial commit --- thread/.eslintrc.cjs | 21 ++++++++++++ thread/.gitignore | 24 +++++++++++++ thread/README.md | 8 +++++ thread/index.html | 13 +++++++ thread/package.json | 26 ++++++++++++++ thread/public/vite.svg | 1 + thread/src/App.css | 42 +++++++++++++++++++++++ thread/src/App.jsx | 35 +++++++++++++++++++ thread/src/assets/react.svg | 1 + thread/src/index.css | 68 +++++++++++++++++++++++++++++++++++++ thread/src/main.jsx | 10 ++++++ thread/vite.config.js | 7 ++++ 12 files changed, 256 insertions(+) create mode 100644 thread/.eslintrc.cjs create mode 100644 thread/.gitignore create mode 100644 thread/README.md create mode 100644 thread/index.html create mode 100644 thread/package.json create mode 100644 thread/public/vite.svg create mode 100644 thread/src/App.css create mode 100644 thread/src/App.jsx create mode 100644 thread/src/assets/react.svg create mode 100644 thread/src/index.css create mode 100644 thread/src/main.jsx create mode 100644 thread/vite.config.js diff --git a/thread/.eslintrc.cjs b/thread/.eslintrc.cjs new file mode 100644 index 0000000..3e212e1 --- /dev/null +++ b/thread/.eslintrc.cjs @@ -0,0 +1,21 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + 'eslint:recommended', + 'plugin:react/recommended', + 'plugin:react/jsx-runtime', + 'plugin:react-hooks/recommended', + ], + ignorePatterns: ['dist', '.eslintrc.cjs'], + parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, + settings: { react: { version: '18.2' } }, + plugins: ['react-refresh'], + rules: { + 'react/jsx-no-target-blank': 'off', + 'react-refresh/only-export-components': [ + 'warn', + { allowConstantExport: true }, + ], + }, +} diff --git a/thread/.gitignore b/thread/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/thread/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/thread/README.md b/thread/README.md new file mode 100644 index 0000000..f768e33 --- /dev/null +++ b/thread/README.md @@ -0,0 +1,8 @@ +# React + 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/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh diff --git a/thread/index.html b/thread/index.html new file mode 100644 index 0000000..0c589ec --- /dev/null +++ b/thread/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + + +
+ + + diff --git a/thread/package.json b/thread/package.json new file mode 100644 index 0000000..7775d28 --- /dev/null +++ b/thread/package.json @@ -0,0 +1,26 @@ +{ + "name": "thread", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "eslint": "^8.57.0", + "eslint-plugin-react": "^7.34.3", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-react-refresh": "^0.4.7", + "vite": "^5.3.4" + } +} diff --git a/thread/public/vite.svg b/thread/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/thread/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/thread/src/App.css b/thread/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/thread/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/thread/src/App.jsx b/thread/src/App.jsx new file mode 100644 index 0000000..b8b8473 --- /dev/null +++ b/thread/src/App.jsx @@ -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.jsx and save to test HMR +

+
+

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

+ + ) +} + +export default App diff --git a/thread/src/assets/react.svg b/thread/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/thread/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/thread/src/index.css b/thread/src/index.css new file mode 100644 index 0000000..6119ad9 --- /dev/null +++ b/thread/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: Inter, 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/thread/src/main.jsx b/thread/src/main.jsx new file mode 100644 index 0000000..54b39dd --- /dev/null +++ b/thread/src/main.jsx @@ -0,0 +1,10 @@ +import React from 'react' +import ReactDOM from 'react-dom/client' +import App from './App.jsx' +import './index.css' + +ReactDOM.createRoot(document.getElementById('root')).render( + + + , +) diff --git a/thread/vite.config.js b/thread/vite.config.js new file mode 100644 index 0000000..5a33944 --- /dev/null +++ b/thread/vite.config.js @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}) From 3735257493902ef2a12e3c9a10913f3d336c1529 Mon Sep 17 00:00:00 2001 From: Frost Date: Tue, 23 Jul 2024 13:19:17 +0800 Subject: [PATCH 02/12] add design guide image --- thread/package-lock.json | 4290 +++++++++++++++++ .../public/design/comment_section_desktop.png | Bin 0 -> 42870 bytes .../public/design/comment_section_mobile.png | Bin 0 -> 33949 bytes .../public/design/comment_section_modal.png | Bin 0 -> 3514 bytes 4 files changed, 4290 insertions(+) create mode 100644 thread/package-lock.json create mode 100644 thread/public/design/comment_section_desktop.png create mode 100644 thread/public/design/comment_section_mobile.png create mode 100644 thread/public/design/comment_section_modal.png diff --git a/thread/package-lock.json b/thread/package-lock.json new file mode 100644 index 0000000..91469b6 --- /dev/null +++ b/thread/package-lock.json @@ -0,0 +1,4290 @@ +{ + "name": "thread", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "thread", + "version": "0.0.0", + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "eslint": "^8.57.0", + "eslint-plugin-react": "^7.34.3", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-react-refresh": "^0.4.7", + "vite": "^5.3.4" + } + }, + "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, + "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.9.tgz", + "integrity": "sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.9", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", + "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/generator": { + "version": "7.24.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", + "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", + "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", + "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", + "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", + "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.8", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.8", + "@babel/types": "^7.24.8", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", + "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.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": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "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, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "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, + "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, + "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 + }, + "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, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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, + "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, + "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, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.0.tgz", + "integrity": "sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.0.tgz", + "integrity": "sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.0.tgz", + "integrity": "sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.0.tgz", + "integrity": "sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.0.tgz", + "integrity": "sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.0.tgz", + "integrity": "sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.0.tgz", + "integrity": "sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.0.tgz", + "integrity": "sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.0.tgz", + "integrity": "sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.0.tgz", + "integrity": "sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.0.tgz", + "integrity": "sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.0.tgz", + "integrity": "sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.0.tgz", + "integrity": "sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.0.tgz", + "integrity": "sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.0.tgz", + "integrity": "sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz", + "integrity": "sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "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, + "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.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "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, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", + "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.24.5", + "@babel/plugin-transform-react-jsx-self": "^7.24.5", + "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "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, + "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-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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 + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "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, + "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.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "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 + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", + "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" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001643", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz", + "integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==", + "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" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/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 + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "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.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "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 + }, + "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, + "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, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.832", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.832.tgz", + "integrity": "sha512-cTen3SB0H2SGU7x467NRe1eVcQgcuS6jckKfWJHia2eo0cHIGOqHoAxevIYZD4eRHcWjkvFzo93bi3vJ9W+1lA==", + "dev": true + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.9.tgz", + "integrity": "sha512-QK49YrBAo5CLNLseZ7sZgvgTy21E6NEw22eZqc4teZfH8pxV3yXc9XXOYfUI6JNpw7mfHNkAeWtBxrTyykB6HA==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.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, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.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, + "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, + "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, + "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, + "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 + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/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 + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "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, + "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": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "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, + "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, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "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.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "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 + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "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, + "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, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "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, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.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, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "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 + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "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==" + }, + "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, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-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 + }, + "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 + }, + "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 + }, + "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, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "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", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "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, + "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, + "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 + }, + "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==", + "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", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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, + "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.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "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/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "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/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "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, + "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, + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "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" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "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, + "engines": { + "node": ">= 0.8.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==", + "dev": true, + "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", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "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" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "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==", + "dev": true + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-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, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.0.tgz", + "integrity": "sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.19.0", + "@rollup/rollup-android-arm64": "4.19.0", + "@rollup/rollup-darwin-arm64": "4.19.0", + "@rollup/rollup-darwin-x64": "4.19.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.19.0", + "@rollup/rollup-linux-arm-musleabihf": "4.19.0", + "@rollup/rollup-linux-arm64-gnu": "4.19.0", + "@rollup/rollup-linux-arm64-musl": "4.19.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.19.0", + "@rollup/rollup-linux-riscv64-gnu": "4.19.0", + "@rollup/rollup-linux-s390x-gnu": "4.19.0", + "@rollup/rollup-linux-x64-gnu": "4.19.0", + "@rollup/rollup-linux-x64-musl": "4.19.0", + "@rollup/rollup-win32-arm64-msvc": "4.19.0", + "@rollup/rollup-win32-ia32-msvc": "4.19.0", + "@rollup/rollup-win32-x64-msvc": "4.19.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" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "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, + "bin": { + "semver": "bin/semver.js" + } + }, + "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, + "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, + "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/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "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, + "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-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "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" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.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, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.4.tgz", + "integrity": "sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.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", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "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, + "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.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/thread/public/design/comment_section_desktop.png b/thread/public/design/comment_section_desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..bc19e6408d28aed585c5980ee58c89007e40fe45 GIT binary patch literal 42870 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 literal 0 HcmV?d00001 diff --git a/thread/public/design/comment_section_mobile.png b/thread/public/design/comment_section_mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3be224c024df8482554166500b10d375dbe383 GIT binary patch literal 33949 zcmdSAX*8Q{6gHYpv=n{Ys+OXCTh&suHI^n?T8bKqh*`DNJX8}yB6KixLR&QtsS+d+ zF^7;STB>G|7$a3<5UC15h|l|-^W&WLopsjvan6tPBRebide)P@_I*FkzV_bN_1en9 zSWHA(1ONbtncTf?4FK#Z1pxLH92DAJ5iIx8cE1h<-*tEj0Eiy@@3RMxnSFA1anDn0 zV*@~G_i5JdkNsY^%x?hzGj?gs#Xm}@4tZ`p?LVKWY;dxDXi?Hx?SV#LEmA(`9z z_Z#G!+_vgF(=GI`(Yb~<5%QAX`QJ|7mQMh^2!FIB8T6KyFegd4|8KzQeZ@BcSATv! z8kc&L+ItV!|EP-^F&LCX#)h#$HZ+Wl3y#n4`$Fm-_Ub|GtT`fb$RQDJ0Klu;FZTeB z{PRK-a76O|3zKr84OwdjU=hb#pOFDiun+SXvu@Klb{1bg$k5^!%xBA1#NlVQO zaAkDrZ{oz~zd$K_X6@5&@!(7Gon6C-Ztsw@t<_@BhCN4K`t{@j*A^>#MwS@$0o~cx zL&u)9fw$hp4JKtrZL$>NKeUMJmHe*lZ!uqe>L{*an3{^IuSaZc{|T#GPLYO$W)-U0;6hfru)_M83!LrSJBg0-Oc6|NcpUQ6&mEUpxcBt_tYo}A4 zw)~`A!}AzVdw@}qY0e=geLXCsnBv(hAi;9ds6_O73o=e@@(`-8N`v8Fdoj2VY(=}{cDJ3L=XIjto=$OU$R+&EJ`?9g2;Onp z&`2>P=NX60bB*qgTB@79kR2&$kAo1_6d#l2OfQItl1qU&V;n}F2t=VmUP(+8*mhQlTuV9GF zbQ@vS5v$>-l2TLndtvD*E{!M+=oF$Jb|w>jj5FG zb7k++`Xv(5)I_&@K@oAZah2|*_-U--_#2TH|2dXA>!?L)Gul}*{{>_PJ7Idj?BX3E z5mj*B_tuAucT{P?h8*%dm@qPX zUNw3Z5hjcJll`P9U+OJti{gQiu7NZC>me@Z$>e|yJ50;0U4aCW#0iRiVb5Gt zKhy+r$|Ba$EsldTCqA|GuPUWuQb^o`7afo9O;;&IUvDtg+ssYfdsgG4)!jKg=e&a8 zVb8RL__r2+Hpi3qnkxDp7|n~9(-ipW%8S`1&yC zV{Gr`J1fo@pQuYDfYoQ;Is=m{F%K}DQZNpu;#H*DGn|uTLHY1~_eG=y*!^3!14v{~ zN@O!t{Wka&+*|?YFKUpJE*UIR1~n8FBP2u7$Eusp?Vs>4H9s4E{4y=(R(Zco-7gVv zT%KddH3KW<216G3c`3FnMCAeww)EOuwe|vU>YbSz^`4LD*AnZr_{BJ{6|fCb>f&8f zAdmCFmaTpQSMB39uF4mD2G-PVcHw(BMRRQqK1iKl{Sn>+a|#*GY{E9ah5h^>rds8= zn2!Eb1?U7hTgdNUJ3PgPDQeoCUV2|A7TQ`aMrRm3*pp7a_+$^@OLN+8p1Oaw_WuXQ zr$U-N1bomFF#0I}(IX+i%}Xlg2{j(Kid536fz`!z->M@J5_tyz#opc?16rgP7I`ZXM6v?prY zX|%d%uyL?|prQR{Fx3qb%|JhJ>RS1Um zura09aRo_tN2)gb4V~->tm2G^XNid?t#e{!uMs*D(?{K(>W%tePOC(BqzcX&=7_ATF*h z=Pdh34^IP2kiPwm#(fEaSfbQ?U^UevZxeMpUBkawJLwdS>ZZ#1)?GKlM=brTw^#rf z`Z4!Pvu>nGm_wn_)UlaYf&#?$rFKl?!>XtNfH370*<=7z_|c9aio42FpO5aSP!Pq} zHFf(e`Q#fKrpm+gmjre;W^bpZvn~$~cytBi2$&t>*CU(5ot_$&a%n+;XZx7% z4y5hH!NQ5tkv2zo^74)m@~+CM@}6vb7kzyEvEe=>oh<-f)AfA`91SQ7BG#RM`jYfn zMyBQ}kCb~QJM64>>X!FueBBSR|H}CA%i8eW1u3&wzV(c#^R=0s50z4QoiWf_CV0&< zOfW7z@Sp`Os#Rw_fH797EHq3i?{>*r+=%DYG^L8``AqlK{CSlhxisC{mbNmv+_m6> z!9|zUP+S3k%E5R0Aq(~#5MiS~&D3aVC!usRXyflFbEw}}O^0PWTDR=r z6uxEVAKrFNX1rlM(RI~SrmM~&(9hD;|FywH*S3azRy}iCN$e7A&(}TJC0=c&5q}Jb zoj62Dm=*=cuuC;~jmsrD`&ONE-Snbg4f@c5(ULiJswPh$ z*8%IQ{?H^?w$74AEy3y#52R5`Ihr#@{@0eayIex~cFz-}O;-f5pOV`|5%zCCx<}9XaziX?;UUOBIkV4pV!gIr?5x<6dW5wzA3w-#J$Q z@}O3mZmO(rz$l8?M#mEmFxYD!YwY}dQIGI%#fjsxqimL#r4#jIoBwd0TG{wGo8C_Y zf+%szPb4#c5NmxBr?PMvz)_NCGIIHi$T!&5n-!;eLUnpW==5rEJ2zn7aFd9~2{kH50|ar!R1t zaSPw0ed{?pmWap3glc?r_X#zZhXHTHNZ6)qJYw;m`jsYQHYPVp&zB#nxA>~1U4Qyp6)412iFs^~JCkl!u_S;qF;orP}YA6>0cc2T*pcyLrp!*^Ro%jqd~Uk#4f6SuZlVXWm}{zzP} zGtuG6JK**Zr^F{bNkwl78ip$QbH+7guKz6k7gh`hn@kb`2Z)@>IW4J!0xg@}iKm%> zTjG=R^!xOojmU|4zwLHg#XdhRw`t3CKj$BF-%5{_VY@&J*xnb=>MYX>5u-BFKATPo zH^uUmbW%JjP!fWr{mK z{jZ(#(C(5Kn6-i;!G3uI_Y~2Kv8XueYrEsp(nSXMG~R*IN)yefWjF$P+)j~}l9_~v zMyBoby>_C~XCXyc^*f3IWWvWc<2%i1gjLSMR4!;Dtai{=sXy{~{?WIfd{*2?ZxXa< z(7@a0l!iRov`8eki~@ph%x?J&uYUfjR#R%|b8iKXs5m_ADRGMcTN-R)gl#Z++oV7I zlFFW|0O7(@$Pgot&!@AXPA)f0N_QJr&z{xaDqUTS9FH@4s-=y z-g6+RjM%tbvi#9fCqsE_Z%%fL39=)#*$eiOW&$C^D}Ak+HUYa|#2mny9?R)m-9V08 z77`{j+|n9&FP3i(kvxNfeKt2Q+0jmp^JpQe!M2WnsS&JkR?HKO#$;L(IeG^7Ryd~F z)^_u7$H?fQx;xMtRMqJKcgbt~sq*NctGQbJ;>d*wSb(V8CVWn?9I-$60Tuzy`{^Xs zE|p-|8#CWD4jkQ1o(K|b^ep~}V227&*&gv~b2U37RW0DFGXX0#Ia<*cMXS73hn=!F z)+#kmX9Jydw7tlBS`NIA=eD-Xs~Xfg!BQ?0=Zmb3NRIa)9BinmsKV(STf;*JxAMLs zo*cDeorn_1rJ9N?6_CH>_=77DI(5+nfVr&O`EQo7?eS}N|HNHMK5|%^xU_or;?>xB zEmpA=>;!hOpZEDqSA6OnPW;!4nyOudy;c*``piB}P>?&&-|WD`dSob+t=ayS4g?lk;-U=N?`6`Nj5Va_*LzY18^;f=+&yeBV~V5G8`QSbs>9Z;b3;n79X-CSLHF`9@n3SPdCJ$~@lS1TU2xx7`2Ih!i?IZIxqe07070%KC>f*u}a*1#`W?6COg zpC9SKTKBhNVo4*1l#{B$vY%AsgnWC5h=LFTMrdC3Ym4PTM5t4x)FP}CSzOk z5bAlb&lbf>jo40cC z*7qzGH4ti2N29Z<=BcCscyHOPqL^Vb{GuJ$-Z#_FMog{0xQQuUubb-Hf*Gut%r|(&}&4K8vOGr2l2NrbR3mi^5)Ly z#+JC#&f*EgW4?HpC(~U95$Aj+Vfe4-+koPyxneb;!>DXHDJSH&34PdA$7lL!Eaw&b z)I!Z!ob!Ap*2*;9A6JcuQdP0lr$3dZUX@RY!M3(X8F{N5{D!B?yxPj)mkH?cs4^V`gKm^fc1iZKy_cCkzbbj zVCbywA}Xk^McU=2rnaWjQ@^*Xbx%68^af{ovb@yv15(J|({D@i^7@RPCe*0wGj~y$ z4ZaDyyZMo&P4vK}YCP~IeRj#AE)ysZ%5lk|)B7Hqo5#*9&YutY20kUAs_=$jI|4n# z!ww5Sf1gUmBbBvPd4|7X-D4T(L~4+KFt3aIs_5!yHG&v0UhzG!VOxtooI@lbJds-I zL7ITC&;5+#DiHH#ZUH<-SP^bsru=?b(oe~^C3rGprc-t`dg0W|>r!|3ZSND*#WW&) zaocO{=Knol=FG*+Mvpv|xw$_I>Z>i&jjfB#f!^Umj?OGxQPH4W)M8^vHJ)J+F`Ttq z2K~zX@XOb4p)5aX`y66QqOryZ(rm5xfx%`_u73YfChc|D31N&2kUm{=Ky;QLY(02k zU+HnJuyN-w30#Yiuuuu2@85-|jadwxP2sUCs*3|wx0(iLm$G1&?I#|V_U%>)rKb+5 zMzqMNmC;j;5OWjE^%KuFwu-BXM8~&$pVK}SsWTTwtDh!mYHK@&@owxWOxcmsZUj6E z_xPrb2(mTl*siBB_Q{-5iag{%i&MKH(9oM1vf1_gK~|rlSHnzCH}RN-4g<{5Oo~2R zSD8=EbQ0k;oajVxWCA;L^xI~jVGd9K>L_lnD;WSmrnjaAjDqe9j3gy-%Nxs{p=*BK z+PlFHGJ0v|x-vo>^}%)j-LVU=uK#FbY+PSmRW;ozI|6$S8P=M z*v^2*IFCHtc+AfGaKujxp=^+{q_$hS1*ex|o2%5jBP+X5jo+eHqRNeHI$x(4BoBS$kL9^We-t0QspDkHS74UEv5UlZfHy)Zpz8B{_tw- zas-Zc)Hx;*5WTs`%_oSz?QM&LVGK_-ote9C=5xLW@Z|i_M4gA| zob``sBOlT6$Ls+|${lv54g&!FkGGT60f2Oi{ZfE4O8<`yL=28VEKUe>i0MA3Y68bS z)B~c;iMfT3GQ?w$BD9E*ZPLD_lj)aW5~{MVh)np(dJk0oQ<`(+a|S=FeydUc>4x!Q zt307RBV;m(KIFyFsNUCo9&e};R?eEgdAG3?mhW!1@mmtbUBHiP^sruX)#Z0yxrDLj z-=J_BJ3fv}WoiWhj0&G-(8;K+*DYj-uZx9Ub%(9RP!aZe9$1~@$k7$L@1Qa(5y11K zK*6*YKS#mX^6lwuixrKGC-R5q$MGg8J#Wgq-R9qXJ4Y|Cv;fAu_>YF+-8$i;iYuwp z7rn26SQPwV{-*d&?jf%nWFjmSHvA?ZGIEa^!jrsymhp!Xw8;Z)Z>ViFDyQu2Mp7g0 zw5cw7(V?kR1lD6`u! z?ACpDXhvtP#0hn}{NSBkpdWdTHUAB*oG7-0 zwN{K(cS9!b@VCO8ZU6ofpRDgSuT;N&-FHkoayILZKE!u3a}DO^6yR0oGoIT(U@Zg< zf4syfm<7Aewyr$PIhpL^*Kl^Kf&i`*uc}-iPb<8zRt(HZ=Z__pDr>0t!A}L5mR_hn zJTX=JgohTl3rM@NGh5dqB|6OwQHs=%MOsYK{`%H&ue+H0Mz!dYCTp^`w|wgT7-*s) zd_yxx8shcg0hOo zKfldPEws(~7DK5MLFU>(SG)~gu?tt@RKCo5Ds9BagWP=9&n&iOGP!=6iyP4qeW12s zpTGw9@m&;}SCULt-CNa(ZcRbIeHMJ!+bK;~%CpGHUtoz~b+qwV+|a%nkxzhL?1U zp%uM*q`i%M_k050g}%6?iDZAvOvO^6M`<^TxhE|SW(t$lq+M6A$_QBv-TO!_47_)C z$;@=$bBh7ctFeaEEMfC=?;ye?S3Z644aC?-PVXaXF=dD7433*ItGeNrtmL#UPV>Vq z^+KT^`*buI4u2akN{wCk*~V{g&?Gg$8v^H|YzVhM^nP-5{reP3wi< z>LxUQ`xD?4d`{f_Z1Arm{mI=Wf;d>!{1E6g612_YBt#BMuI4*0nv z+@7w2C#j-*lk}RJq(Vm4fa}D3%L36feY!BKkTssRcVF6=dzxv3d-VwTkYn^A;o!36O1WZt*a+u>FLDR z!wS72D-W*Y;IiJ4${&@xmNyW^e-`r7q64>9CMXYTG9NA!8eHTvhmito^he%eU>ymL{m(+Nv#6 z)qA@?wAz+*gVz;no!a`(nr!rPa>nCYsgD!`RioWW7PYn|3Lot!gAZw}&NalGH=}kh z*@$2k+pm$M3uj#x92e{$Y)AdPk?MYE^|q#10)&H$AtaZBIBJ414GoG~)Kaowzdq$% zVD?CmCewY#26Mio$hw7@dp%bp&|G~nf238$`H*?F*2D|Th4TYK-cij@E{sT2w7H*z zcprHpkd$(`inCt9ZR_vHnZ6pHw4%}~3e9Gp)4_0i*));PmE`Sv3y@KTfqM@^9$&7l z>VqA~-*?r8h?5O*3Q4}+Yb1ddi>^*rQiy$7{xNu(qE&Yt&&o}$c(9V) zG5l)+K$xBv+_n1MgouS6ZpO*IAO}p{b_)AT(2)2}f9@8>tTr);27Pj^RNY!I+j@@O z=+%H;>rAz3ftxUmmFz6_GZ0FS`fYAyVc~exL+~eeWWiuEAIyKWs0t9 zieq4@6mPE7^}t+Huv+}bh5{VS@DN`ewf+M{RVh?gm%s_urzaK2tXg7pSyuTk5lE%( zRbOEcD8fbN>Hw^WwQ5Bx$T>I08M2->H)T&vL_G`jj4T~@cW&nrv zsx9o{ZYwsmJ(ZoPbt)tVJ=5d{^Ab;lYZmsl--5i(gWp9LD6}7HvF^AeeF526dP3R@ zp0O4CR`1f~cK?@FUpBv@kD2M7t*w%u?#>-Y>=k^;>(nSRRlL7_@gVdXSaaaNX5F#4 zOGHa^9+cW1$kdyeP{O-1i#%iEJhel&fb zUy{2sNjrrcW{1CmUyQQqw(WK*?tV8uDFRu>MvDvo${^^rak6#)DTbdJKrFnmgIxL@ zbfZ4ULbwY;D5W^eVW(z_nagjT9p03-nwm#nJARwe6svc$D%sc7P||)VLQ_J3rJ0|T z9hjcEh2kaLE@jkEzE1Zlo?oCrYsqwlu}Yh={;yTs^`2v&`i2#edB4{V4O#m ziY2xIWHYmH);-*%wlH4J&gE3|N|s5x+NZJR1E`rhQpX*Q81bge9#u`%M$}9I%C3lJ zb;)+JuN)I0K_vs91}Ponoukg;zh}Jt`oP5cq4=zLLNecJy378xvQ?j(b`%US|I-*^ zjWlTy>g&$aoe5s$M)888lSczOgAMR&^(VY8(B4dAg?{cvP~p(-+mn+Y;gURd8lsbv zhN`Tv+4f zdxp^qg5KnXj(Ap`2`o8v!YwL<|BVOjQS^!VSNCgmXH*ujDoh8j&Q>20kkb3AG{=LZ zjTH}p5BWsqXr{jEryi#Hxo2j^tNVGgr`skHUzUNIbt+eGP#W|dCV80lr5*QeZ)q&q zo^5J3(wb7JtXsD*w>OT3 zSinf6AgiuxshOc9_+yee@2{P-7wM;lKf;BK)7VT{h<2n#-s4d;hL_FTxHyKT!f6~! z=-6sz>E63iBP6TzPLPT^>>Vda5%26mva&K+2|)FDJ_~ zq4%P%E!@0iT~dCZT%?zQbiC*T_Od%L2(>YM<%os;th=xQGA}PIL&rSkEM^xQ6&qMf zqOtFfJ5ye7pT|9u2*nzRTVlUHceeveS`gv3?ET63y~Vt(UtiHkl^bY}=o_w=Lv60x zJ<4=_=Zjam@%g1F;0k|0+8OG%_y0T|)ZC}EdP$Qid;j0SWLCa^4bCg52QG48+g>*P z%i+@AeZl29*KWjJ?6nbk{3V_l(oa4dUpm~9cCzKzIRnUXVJy^=R^DgR<;NZl*Y$}O zvGhm}oVZ1zVg_m?7=r_o&E}TE8}ADdyhY~hg{L6HTUE?SC71&G*t_V9zJJ40hIh!?~kYUsAEC}uT&QJme*XQ2Miqc_wzyWJ6ZnZgQM)&<8V-inOfdDfS zj{&tr`wS|`UVV&66SKtAw>CJ##gim?sm-}V9qCJ+I?x}p^3eHa)1DwIS4zPpEru1d zMDAEU$oMDs4y3?%&R?x!Q;(aCTb#Ro_h z9)sVti}st?(=oi7l9N=H_;b|}?-Mioz;5(Wkmj3JxC>TzA%uT-NTMbArh(7DT&*R& z+IxwUi{&TRhX3TQmHYQJMIq0-(dnUd-5bggRxq?{vY~#kpza+8#BMeWYJv8**`de3 zwmgwbeEp|)hP$khv64aefdfA|4GLGB!YGvtynQlfU|4mQ`{~)AZ_7}LuX$2KAwU41 z>2gf(_<#=gYwtrKfcgH$>oNUXj+Wm-qoweUoue`1iJD{PnD`uDo6T2R28_*_yC`W!ZUSin{`&N zchz%Tf!tf4SeiU_Nw^|CGCp2N3O935;$PPf+~at5gyG+Tl|Pp$Wm}E}M|p~k`RJ%& zuzjOLp0;PsP&K(aM?-+H0dD$|y+>6n;h!veie?O{E0*(?pvJu0VDpPWGfXZ{@`igO zmFW&LkZ5--eF!|i0PG^xydEEHG=zD=qx&lg5Yy)R0St}|m^!g@n5XmXv3h%iHZ8W!CzMz^LSHbZez3bEci)E{txOfRbonPHpZVbHSC(a z>Z&8m@?noGv2wGiZHb&Ijk@688z~E7H%|AAbYE8<$E|vFd+CAG1Tt7$>Q{rb7#a^xKcm3Gi+@IO(Mn%THGLDN*T}8h|q4Ls|28){` zSNmmWVh1(-Nm4_UDW>j`=EN$6L+`CE+vy>3M-4H!f_84RW2v?Wa|NgOU|?frq(D!o zi@?!hY)6rmpT``F*u3>^SS~?w@8&(y;Mih||J&8$B@qkCA%FYJSlzc*i8aJlf~UiW zc?HNQdgwWZ?NIXO(r8x5T!ap8Nbq@?b-th{<|CHQU?OYRw+n(bbC&8HJHAA$D%ui3 z+}q1sxCmOLeeHerQiNW;x!rm45wFZr4&9DisZm#K4?Z_;!b@k0D zLKuiE`UkA=(lBeLyqVL5Y{ZG+75wDo(POZ3{u3oyj2uxj`g`}Sys*FOHt3;0QA0#n z)6v9?UeT%R&#On@ycI{oY zRtFa1M&4Y>u|kRWosR^{V5Wy>5n(wV_pl39N`W1~pn5BPYut*K<+74zbA61(^eQ>H zOX^9=iJ5RRvd+~W=aBY1G+5R{LU96n?3rLK>4@pf_3U*EWomx;3l~L$9Q&ZVB$tb8 zwrkK!5NMfao1_Ir7to>$AJb$X1&FSNZbR`xvdaJ6DOt%Twu9)#`n;r4I52@o8)BYDj#=KE? zA$5gJi4_iRKiGvMK+ z+FQ@IMeL(_EpnwW5Z^-?cc(Pl!9=Ujvm21V;hmNnwRXM*@HRUVoOzqk_PAb zOBBBbtjfE5+i0icJfFo%i|XulX!BLj#P*cH?1-sqGV%)SGb}SFUJ9$y zdPB&vQvX-PlPy6po|$sBhvyU~wV8rLGt>MP3zF;74@zkdd$JaFYjdL=c}F2##ylyy ze-9Sz9kE4zIU2aOGI(lfwD`>wc=nydG3i+EY^RShO}A=@G|Jti=V4%dQEV+pNfg+~z$B zB36O^3%SM>Nxm7?oS4-QOaC}2boj!R?LTneoG!%oEV%ykdOPN1YqQ;(SA=cVP4-u?i@Wiw84`j@{K{oLnD|Wi;7V@fiQERIHjI zaCe%);l|coHe#{>>~E`m|0H-_>q@L%ba#nM2G_w(NoUXf5>8bY8B$#?m23huw63K{dgJ zXNgnP(6V>^GNRq-mrjq#-Gz(g<8N_fiM-`cj>gAQc?7j#ui7Jy)9^)FsAKs<&px|2 z-Mpxar`&2$)+Mv7-g;tGyb;75cw8^8Ihb_U0o0C#cEvYeS(MUUb4?pNhChFr${KHn zeNiK-G~c;Ly70Sd3KXUzpf1#o{Fkl2yp1b!Yv`suF1fS}w1^F?J=6ch#vg^NHeNc} zHAkKBV>2pq$uC>`C7+j8^aFp-pU;1JfidKcRa#wi3?N>n1r~)+aWI6fV=7A!iO$6p zjpUeDuiW=>u~SdD$mh*aII* ziw$wwE(w@R94Sg9yGs7uSN}Zh)s$-nqLe?HaZsGax0k&h0q`2)6n^lJmp?m3hX_ zy7l|6*c>eNIiBmGFWa2FY-SRsoX4q*QB~_tvc$qhSjKuO3r+Tfc*S|kJ2itY=Damq z?W0#S6M#=FQ#ct9;?(X9z^(YsyUlR&XmYM}aPYsig&*W1R{m(@_)7|*RGxk@<0;{c ze`KdYGq1}6LGe+A{XKq{2Va)w4&|}bP!Cr;a$*AS0{gYf@+x2XVS?_!?R zkDfb^SzV3A5mZK!gUdI%E!1voY24sKMvF6%h6}n}=PWrwjptC(ssoT;ZqFIG1w{O| zAS7Lpn7Gx)lKb9b_|T95m`+RzA+Nt#^K$v-F_`2n-`9d{@f+R-^HI?tuR=w(zr=8q zz6*(WX=ymV)mKn;IFs||JXf637~YHBMK8MnXsa$jXn|?gb1C+E4@i*Tra)|5t~HJ2 zI@kK|jlAKokL$hL3Wx(@z>Y!$Qw-8dvw#>BMNYVrk`?WGv142)pJ|0T=N(q}h zDsiMsM8aBNi%lk*uHcz@!VA3^_w=ZAf-ihF1=>?>T@pY3klgdQ4cwDkO9j3l+=U0z zH!srjYhPSJMy^v@t=o*#IlFO~Uy*IMEJt45|8SEz(X7ZlE;n;aHYAbvo}peo>%(pt zfdn>sGUL6JKf(Gw=f0*&c||S@et~y0!~3YqA2@d7>@k*{N%dr$>uVhA{%V!2TGNCN zb&}jp!d+wDaxaAR27gama-h4(D(+?>s3C`_YZ7B^Od?J}IV~(#$m;dzUJ{Q=6(OH0 zsz>xz4mLNPoL|xp{_Q!5jFw!uQ6^0h_6Z9)2*k&YJK|XX5N*}E(5XNbTgCbPtooOC zElN|0aVOdP;6jf!r))8bZf;*pSM5uDTz{{nK;QdOTGpsFeSB7c?kS3+mV@y3H3^KD z<=A)lezh8v{T%#_WzzV+Ia{9kGT8G5v~GvATy^){0XJJx3yB-@2{CoA_T#{< zFvFRGkFJSaoyd43HCX;z+Sf5l65@{-M()YWvP3NMCsebebP)D%;I&$IRX^Bsx|Pv4 zSZO)?%rZ5DbA=<4=-=`|1>tnF)0i7PNH1Z(=m zSr##eu~S@L+;fU_fFR}elcikMDM}Rwl20s{`6)?UQXwuXP0!!X=fBc@joH^?ip+Of|I&Xk4Ny)}m?Mm}&6v?uRZ zH{X&Ud*YgX;kM>BnmOW`DoZzepO-SRaX-d+hZwZ@B3wMB#2{=|_inTKFW2e>}#iFO=jPVBnDfmXxLksbfyJf1O7gdvvwTrL)VSw z%k=zJlmSCF_@~-+ey);~M?fM#@V+=}UvzGyVTvzF*e_+RKkun||0C#7VIG8eIe?HA zRq?ptQoZi;P7z=PL>fYd{|2f1G#rDM(61h)h}?f8@zF#7@ADwx#jVC`!L%)Pe9*Eso;|B@32lei^I~65iSiSZY9Ll9 zFU*!PCU#aMV?4}|(a2$G(_})>tj9T7w#jqjO^sVqYs=%%mUY{s{p;AgeXcwO?l2cg z^o@0OgT3hATJY85(y<$&9j+x(LymACaq!C#akpwR@S<6rYuL*&6&TY9!rH9g-O0@y zc9X8g($GiS_W1%#PkgHon$+C8z{>rMT!mf;hgz3Dc3z!-?KFCUJ0k-xP#rv1J11}| zcYSJDY&-vb5VC!N)3`f5ZLKer;1ZY0Wl{cvRtKaF?l*_hv`PjHLsM(Yo9$Kzy9kNl zy#@6N3C^Th#-mJ=u$6f{20V#iM;$&Fc%8~HT<{=fn4Tl89}+utp)$y$Xrl25e_XT` zky#4iRHm$@JOu8EpT4JEb`k9g)U<4cmefBSJ-A%F%KB4T@l7%YaWeTnd(ZvA2AhmP zv`<&zOaHIa(sF3OE+4wzP|73gy{kVID>qN9aEA(AfB+&S!J4l<|9DG}ur9|EE9{-elze zADB2I3BM@>IBoks(Z&D0S>vBW>5gXMapdpYf#s<)Mt(lNRrXwo#G&3F#q1^7G8dqs zmX_9Iz_ZPfpeFQJN7Cnxc)OAjr>w1>v2Hsj-RObPMHZ1=FYG@QdkXLw^!P@tw6wJU z@Cyqk4ML0fc_kI4SF>TnQL0m@Q_#-)J%B>yZlB#Zl=e(b$6v5V%F#!pY#;K}o(IvH z<-e>={Jx)EiKLA*{p!8L*d@T#?_NK+%lgI&OQiOS9Cz*dM^kIhvy+{7KNg>D^}u$^ z?P|;(rOuR`0Pc&>&#kga?eSmOX^qR4Er%xJqeFKo?S*ac_NPg!*e-M%8?z_<;ue8k z8pDVl?-~qgGu6F*`T1)+AG93zcvqj6p|ToVDA1q-p0V!p{=J)plPjrd=NINg@c*jC zu_fEIMzo`@|9;{1&3BoUEX{_b5&0;?84Jq(u!&fyP1JvKu}K1Q!HHQ>*#jEgagN%U zuJP*0eKYAWk2To?pyn?%Re!E035j4w>Zee`E|Tsqk%ER3ZX>&%{3HLE-+=|=7C#uv zm3yI(^c_5azcs5L#EIh7vwtcRst`+cZFU4#mnS!N>F%W?@8drKzCzPK9EE6>hAODs z8HjhYDVDPZPbeq)aNP^7M&(uOrj9NwEy?XTon1>MHhdQzWEG*7c908rqTT7FC0Mnr zhnNlEv+I167T72MW6)N}5MxxjGRSpIH_w#QKd3Pr>n2~_F$N^iIKFtDTk?(RxTz=fTO!J46bCn4ly zqM4ie)hT*pS=SC-M~|WJ=i^e`Yn?9!K1Er@|Hqf=#2|uMEY@`Hy5P0;V!)H|@0Rgz zD1?vcrfw;eQS=0e6*q{y3f@OS(!PBc<@J^75<;pUT_W|M5pKSG!g+1R3D0X4IG;?dnVU?N*eseF3PGP0>DUW;Y8Y^jVp)TPJtVEHt zV@QVz(H;Ux1Fm$cA2W5@41}P6NuQ|&Ja8NU*1|XA12A1TG>di^arf&N`Mwr}#w@m) zoq5y~NxSEi7EQ@|gs=2Ps}KcDS~xm50mt4QH-!EjpD~q9$vr~gTUL*~RMPC;zN2yoHQq1^08qVJyxeOvaWP>6*H zN8!KM_I?#;Oq#Q8|62QaKscXOoO)R@fu|2vIg2Q7_i|+c^InbB|EN{f$oyp>i+f5# zdG%d9r|KPPn|pCDd^-==S~B17lu9#cd!J>LGvzCAil#TT?dzo6clEh}5qtixWm3Ch zL1~#EAizynW(V}LGd|O1_Wd0f>a}ybvJ|J6%5!r~$EvY)PR9U%$46Hq0ndt$IRC$4 zG#nB_7v;)kceOu#iPLzyvB|xF+p)j?SA(A6JTZ@Vj_S;8i!1Rg=*ct|#-G*p6?^n3wI@R? zX*!@PZ@5)@)c@P|VNKXcz^`A`ZZFNA(=;nObmPPLUzpyYpdQYU=V;hsmDK6#=1ghn zlJcvwuJYwuKjhST>bgVTFS}f{h6X$ziB6#AM>ws?hYie zE%z@kRmF$fjk)yRC7mEYQ$bOC_>6#?9n;;cw49I*VOaqcj$t?4RS>z=sY?gw^bvOn;QBM*Iv?Rb-PdLxRn}G$H2y#W zBzU*I*i_`d{N?-FaME^yid*@ZQJWDmoMr5;J%c?K?>OraJ!-HI@NJ?X#SDK!eOxCW z$)BXt>)WMW{%A}~k8PI->A~G`_3`G+P^MLeRzk;a) z0O9ASL`!GJ@ul!!o1^xnq@EougkU3}#%D#VLqcq%YgdP%NhI1weQtA&9J^2N*LWBY z)g1Y`B+he0$(YoudB%=({c$2xA6|k^`d2)s*X_C)+;tc19_Z1V8K(c}kwEYX)9G=2 zC%F=+ha!#!*3)tko2Q;;cxG*O&8Ru}28hl$A^hHwfBiWSYTx#171-D(?3(u#T&%=x zLO&t(r@8vDqsNK1`vIqG9~XS1jS;_R8VS3I<%L{3lyyE*+>O$2p|fW1r0exsMQ^2A zYh>&(-leN%d0BXIxhS{toVbIB=n0jYwbJXV*?$Y|rOl+hG)UN1=W7WDuM!+^$`N8! zDpz(XnLb9Q&MH7BqFc-&#ExS`lMzkW6;hiC@5*q z*XPB%P2N@tJ5^pTSmCm#M`>?a^MSWtJimdLHAyI#CD79^ieJ{{6I8iHDq=4lOC6R? z@~?npg$})0TBVQawxyybu9;c({ov1>qNiuJ7E7op+n&OnpTS-*&Qu(1nPC&h7o$)Ca#vC8P zo<%oViLGwwP5xG+RMd{%TB5G?L z7mSo4zKw^^Khe_F@byEDJQ&>J?^~Pdb{*~0^Uez64gY#%Ir2d!xB8s8{s6L~i3sXU zN^s0On94Js*Zf^xfOcQ8;uO4Gz`2or?v!4rg(Kkp3p3_|F#Pcs+5+#caVd&l=mcN2 z{6CeG`S)FYQ3kLsDn~-KU3C!Jt@muCtA06t(p__YucQ#3MuXVZFNhl->Z6LS3@T8NfBi~y91);tXJk0y4yDQU3r^!dF45EczD`OL+Jy? zHvjz(3MwZqa#x;&#F*WxnbBi%o4|oLq}RkDnbs)};N!M%YB=BdN^F1Hf7-Wu2U|eA zIvEPzTwg9>WtVK}@it9W9iZ;l!3X*OkM`a)n$7lY`_@5SrRddG)!bgKYAHGhN<+)l zDr%^qQDaqG^DO4j30JFVDOyUTh7cm=5F{-{6*VRV5lRt5LS;ZCdC&fz_Zil+?zP_g ze%Jl+pAY$v6>FXAJnegq{WyNxwz))5?Ze;YUj*q-2zE5P%#CEzcHfx6aw|r+N5>Uo zzTha!qM!t7el~tm#68Q*K9sT9RDWgTtw8@k`QsJ7g*zX>ta=FfvaYieKTCANHs5F; z1~ePu#$W@d*cWR1F&{Ler07;fhbDNT~E zaEFNB`L50UF2i~y>W*0RW}fsIa7F3{MWP&R?2*&%i=AL?ulj)(ZYt3U*Q>Pm@6DTj z2BLp~OPO8qwI#;W*5kInX-ehIk0;Twm--F5zQZ=Ag3f~Sxs#S}@kzy;?8dd*XU%8# zZ=mCmNtZY57jA8Gf!YAgFo`Zmm@?uR4e9|k;f858T zu#hj-WznY|AmQW}d2YeXL7c>B^D}Y7z-ILY_aXe*Z2#FTbX+W-{(g6lFhU?BSM6AO zq$q=6ruSQ_HS1oOZmoCTZfGkTK54+`!wByqiADWLYX3g#GqiuqOc+hm;^8Ufb>dD*IJ27hwC&&dxE;c07W`T3*Kq&bv$Qc_YyVd2DhPVVZ~YVK;58|5Km zd`(+Fdh1QX!2`sErp}ienE^79u_aP)Goz1(qc#=HPAZhe*j@8{Gm1h~{lRGrqne#4 zv4J$22n%Ht54|??J!EDMexIIeq^4kou%Foo1ct*lllDc=Wqr-51s3oWrfpPSYiq9% z&Rv;@2i@L0RBh(yBSD=DjFs{^V&ZH+omq~lPe{&gau3x$e}3BBQM6*d+^kKx1n9oP2xZ>a5ZB!oo)K!p zA+piznl|t`dr&y;P&Pe+rbyn&jrVe)KLxiam2O)h3j0wnt!Ev#>ovJtds@sL)%V_4 zWaH?ohS+fF^ycreXw0LLRxOLb)3RP8gfGMk{UOaE%Z8je~f5xL7LM$=R!EsWHvfwK1va&^y_?&+kO=K@jy#z99U)g-XIVi5@9%VlQc}AQl61weu(-7TnV80%kENBXHx(2r$j-(((#V>~m zOlNPmzc~Mj9+7ZE>4__(T{M9xFMac)&BR7LKbub#RZVf4-OuUOCNSFhF`kHSJUwOg z3KsWhvmO-_?<~%1u6Q{63~zqO@bg?V#OLopZO}KEWi6Vx)v|_hiqY~&x=y2xe8@+K*2Cvers{6(bF^hAuaxS#q z%*rD-JlYdX^u-UbxvzafcCnLG@*6(?S^t;3Lf}!u`4Z6kf%Fjf3%1vc?(Gs$$yT}>=c_(&Zv_8cZL3uhCqnxGo+5+jYk)rS!3! zylkBtWkX--G5$$nZf8(e?4IB2+*6Ic!r#8OwDab6E?u%?Eu{O}8CKSXE$0zxklF!I zPW25~=KW`4n4 z=kH%9js3!=5VNf}6E*iQZ#5D&f5tliRte>@@~g0q}XV6C8$5l3aZ zP&CH}VajI{UNguJX%Vt=7O=lO$w#>!_=Nj2EFIpKaCon|o43&8XU3G=cIitkYiHzq zSF5sS6uG0h0U^YM?YKMTYTn|~bYErhOJP>!O-*FxN4odfDp9MP{)x$^jg>YIY+x#y zumAr#UMLs3nEP|ajACZa#^2A4I4}mR8-5Z9#G%*b^{0C$rtcw=)2)}5mgo%|nwx6+ z{k$-!6`kuS^mvoV>y{yI6BV#z2EDl}KXT^+AZ3%hYZaIVnv+GBm-l4Jhy0Tl^36NE z^RDN_HxIX)_jXRF z`%$yXC?@&7!LI46Knou-<*}Utrxr{QVT?d}4d94SFy~3wHpJBY)^y|^5dNp+u6kcr zyW~`0{lFDhK(~ZSBnFMf(p2@2c{dkf`+mD7z?*hX-jU2?qs`jl5Y*yM!}q)j*Sc3Z z*=41Vc)pXxsnqBI!o8ZVP<8xflhqxVyp{B-hcnaCmC_6%uYJ*Lo;`{!O}8w62Kv(1a87DCI{__&J!n{*wXt|1^$vIn(D^kQ(wf3H#kY*|mzoaeL4Wn00) zZ~t1prjpQMp0&kNW;sjOXOW;aI~Dq8F?e<~f$+%t?)O;Y<%S=NOARrtUNZHH$d5TJ z0x8b{meNMDh#Q-=(j^n{OAj^SZ(vcsFElK5>D>?92h~*%27!4|-$)vc=4iLDLoAs7MVSkP2W;aG1%KX;0^E`^Qpe3Gn6CX-3+){HL403lx-L-m> zIIPzacr_}ax4v)IwR0U!I0Cw2{F5O-agBsh zDG^eY1r+VUZh6QWCNf>6%U!sa?Lw?OGdn4bNsqn_&btb!lFPl3ljZ3W+dfutr}O zpc!)s-sxz_O&rDJ*a$AVU$}(ykiFSQSDM|J=36Q~>uOnxOzs;J&cvEruKl5yZFU8B zXf(Af9%F%`hZO*lBO}m1+Vj{+%a4a|hc{l;cQN@@xK3j*b$73xo2hkA5^GOJ@$Jm) z&Z^$>-I;5^TR+|DQZu-0fDfyGQ+W{7Vu0-TH5ry@ZZLutDPf#CnS{V^do$*(M3O6q z+K3ET09i|OrqzbLre*Ok)Uq8TBQT*8Y`!jEAL zVK*4@7eIicLhvHbdbhoO766o>N!WRHbGZ1jL)dGd7PX7Y|ChqhUXNH2b@?V%gc@9HjS(LHB_OgKvB=s`yqU`!HgRBy0@GRjN8Vk5rMywTB>`VvnT)w*H*Q!*NK--v99!kGDl79+*iMpPy_I-h7CJGib-{I^ z^6;i~%IlTLa@Xw;eU8P#R$jwN+l0bkudY$cSbX`Tw;?RSxVvTO?BIF#NDC)8MC$ff zb(=)Ue7RWhsnswVXE^Nspwvo&wA&8>iC894XIAGt^F`sQkw|VyF*VL4eEDzInj<}o z_(C#y?)l_G<*RyUN0S^wG}6yL+wgPq&)b#e(@%E8MELAy9 z9)}yLGlc%k?(8aCl`27t?X?hyLEQBDaixbyv0hts^6oCkJV9!5Cla$-y2lRQUFm^V zQRsCCd*@YH(67^K`KM^E6X_rB8LZBOUY(o_6fZun9#h&daxs3fHHPtm2JSO?vDCLy^b(^A7_S9a9@t)jX%3;4G(o>PbfGy~!G8ZG_?CZ&w$D)RWt6 zxgQdVanWuUVJWtV@SF)GtgN9oxD0yO%WXd+33gmwOeFd4pU$*A2Yr|7XQmBCP$yBEXW18-T>6vn=B=ZiO@$`J`jB- z-kl2kU-!`qa$NtAOi|IgH4qJRIRx~)ZX)67V&bX2PlId*KZm~1-%qQh`CPToS9m@y zF{?bM!k%hB@Xg-1IAPsq%D(Nk*O{d$8_{ousb$;(DWE6^HmWtY})AGc{f&!n4| zq*-+o71xI9Pn{Aw-kkHJmoiQ6l9?%4^X?zJwre_u2wWPl9o%yL*t;R zCD#`f7LH(VaCrEN{;K%0ie-%dJWRnlXW_nxPnM+v?jy0zX#XX(*8H%J^756c{5r)U zNXgIVKFGQi>ahA`wp#rZFM7$5hAADcGcf9bBpBhe4n7}cl2`C0!4Y9$tHT3jQ$1=w z+11D2j<*@e$v!wT;aM-aq|5zOoNW;acH!3auQx|A)*)pVEW-1O%A4xt-KoRj){l#P zADSu5&it^N9SSZ+84=AMEEEs%tCinl!`70v@@_%dPmbqk9xs1+6><(YGANa4R5U`Y z4hT>5X;2RE912u8p!Xs%cj2!4rhU9~qwMfnwEE;hqNO8kPR63Z9${rfNma+OC}{G`du;8NK^QtiI*_NghFw|AB+192+fl`-CcJ2!|IohJJRw zGU(R!&zO)rxN9-*q_q^Dlw?r2?gKbVS;Vgn`yI7-VXksf_-g521EzQfZ*z#6Tg$Hu zKB`ma5>&r}5I=4CMNeiql!n^nwi6-e(w-Ef$cQl1TWq(8hn*gQLq7Jq0gxzf|LNF< z@seLTki6GvR$0DVgE0)r1O>=ODXSpkme*hrDk+F+q9O=7>B@|&wz>JPpBaP`Ij(1| zrI2?(GlVFwcVV#zxpfm`u5eyfV`O!?z_$LMHVDHvf0(tdM_Vi^IIng`{Mb{f$iV*M zJvV0u+57E{W<*`#WhD=?U9AwZH{mQqwq^_F;i##Z%Dz?|m%i%yDa;leVlkH1j{9Tc z&SxHR?m;n2h6Ja#K8HCmyqgW1;sVFKt_Y^-PfEJbTpjl)Xw3m`%9J@|BQg0POt^R) z>d;q{HQqH8cCF~RX!}--T^SVE!r6|T%Go;vHEmC0>K$5@_D#2O3RkN5B9c@dF42W& zZ*AB}-}X%O&Sb|~okV3l=)7Yhb z_|biRi-)+Mq`+dRJ~0?segbLR%I>(|gE)+*dn62A3W z+)Bvm4ZCNrPYGGZ4B_&Y8kg%emg+T0IK`4*cUKF6E$^Dsp||X6H6$8r?#N1#J1P(; zRr{0`2J*I0@upAPvr_VwpA>KmE#X{m*SFh-0rQHd7uupp@DxCwbqX-1yo4f6e?%Sp zKh23VW%gH+2WF=1zUWa!E=3nsYJ$-x8dyCB!PCD_@na;nv#@v>*JO0}Nrxq6{W$Ph zqm9;v)Zs6G*RyY+Rbn?y{<0t3^1@*!-Y<4TjQT~$@TxT8P;RhtJ^K%JN4Myu7x@ov zYYtz4-_4*QTG9vFh1eLt1>-KYd$7>E#_9~jgg$@m$imN9q*v$2kQ_Af zYPn*XZ6C*PsFm{F4l|OIiqrWMe0BLr9o{-M?vs@^IC`4Aqs+EW@edg1o!vscLb zdh?fjFM{7fKEmu4UeuPX2|u_6mx&6wvHhY4_iHfw7A$+()T)uTP?+FZk`QpL?%ATM zN$bMWUEk=`Db(Dx4>%hV7po%K!jwD)Re8p=l*(_Gjz+a!AeI&8d*2Dzp>2_N75671 z5lQ_e3zwOr88Aa0IdzWgO=jF*+Y{PDwOCC-SBkLLF63ANR%-P*JmU%T_On5OR+f`L8!RHD38_$? zezT<+diHpQuR;ddKObh*R{bXc0{lAfYylY_2=V42)6#5u%3)`CQ{twKAN8)W9@`_W zC~JL)?t9b4RlC^utMt}2tV9vB-J4Z)Tj5yr1Hp4eZ+$Tsf3Y??Bx=*<9?o-iIq`%CFdN?Jcr>{S|YL_Dc_Xkh+7yruc?PPvb+mq0U4($db0vy=7tBP zQI735kK?dD5L2#y+ z4a25?G39eBRY}Xyb++s|UGh}vuu=A*j_7a19WO<5^$16H=*$de+lgXX#6bqJ6iCp; zZ}_9`N&_Lz*|g8P&3xnjQOAa$4+;6tSy6@Xn{72*`kGtL5HFF=YHv zmC)3ioQo-B55isuuIFWtq^XK6VNbKdY3B3jM?)^*moxRe4zx+xMvoJZ@{F_BXnRhC zT}!9myugdYdFUjRSDrDJETu^-K3!LQOd)bfcA8y$(FvYD6W79S=A^l;?sJTwr80+R zB`D+Z^M{qrUT*Qq(R;t>1Dd#cRlQp)^*-1*X^M(7U&O&TNV5Voadvc#7JMAtjEOPZZZhSD)ZE?VYkj$E~Wo{@OjwlU- znp8g?=8n5(+ikt2g<&NTm%gN`=HD&JbAvoah}hZp9r69UAR`K=LbZ00*`5>K7`lrP z8Cz+A0Kbzc0>-akd2eY3v>{^54{8%W;eEL+B$4ZGWl&wYl=PMaH0ly4|ZL|}hs$2luHa&d3jz5RJ=W{W4ZCl3z;rXaCuO=XxpA4fL( zZv_-^bLUMlUzZZ<#t##_Cc})Zihr8PlJjHRyH8Du{n5VpXqFCA$0%x*J;Y)DzO>|% zB+03-qZ_5wqqc`)%O4;P*)LLbDVM?u`n@M;tyQZ-yADRD5`Wn(T@KfaE+lylgRduX zZ)ciClk=aloZwyYQtcIh1JGpkzM-eNQ8~@+_UemZipZI8qN0J4?2!kUS79v79&JjqSL0~O;XKQ| z9i5mx7nt{DQID8pA8v|`w+UQ)m}pu$wv#kE1l~&Ar!dQCqB^S36m#l7EMzV&#a(RY z=EDgM(QVrTyAaGZL&VQVzwZGz*lU+G3FhE=4FvA8^b8z9=m4(E6x)E}@}D+va}ieu zy7j8OV|R(uo29m^%3CzmCkab+%P9cS~1L$<4D8?qE1EfaIAM#>i^ z$|`3av3+(1PMG|1`)_6t72h3{>6$b+aB5=l`2b3sl5<>i^pr);GD|q*o?ek$>Ee&8 z#YUNDdg^Vy%n@asYf-3!A{x}a_`jj2&pSPL+KnPf7OQ49{DCGX9Fl&tw^i=s=^1>M ztY1~XrJ|tZ^}bAgz-yP$A$wZA|%JE#4ZV4 zh4n@TfwZ*7YJ~F|yj+tMZrVB89qeZWV3F9BhAIAuJwmq#GOb<26<`(#8r#{UQ8#qt zp2+sUpg@n$#p$G%#`9aK`e&aJ$vA)hhj8Hg7#T4Qdr8G}2&pqIIVXMmb_-p2_vX}X z<5%5wdEkc2fnDeN?y5)c`xSS^8+i^+CJ9o+FYDi@$pglO62PCQ0mgJ7$5K*WTIzV$ z=z-rc6*ZjvK|fn4OT9gOcF$oa4(x|`UpU?LlGBoy1<$+UU##!-*V+)UgMS9cLVtt( z)9t{7TB?5?0NH*K?*E7Q18`~|$7lp{43m2EV)xVA#59?PhMS)yJKeY>EdC*|E88Gw z+WFPv55!mP!&ztih$IHi-Q2V*4#bgQ0Usw=#)B0rRm&E9!w!$&!`BR)!P-m*fWhc zK>t_S5}~WDBRoIU&<$nk=Fh5TEa(xnr4eeBIaQ4Dt`Q>`_+$fTZ{<{?WAGK)J{i?A z^*o*G=%8VZT58~#D_N$)ceMjUh)GI<%`TN4-ehRM#UBkJjybXwqe4Q!`DajB-R)Fa zk5~$&-=_V=3aqrU;e%vFa-~98`vHhwMR12z;>!0fwt?mvbmO%4^-|LFc#^wzyx0XjGw7f%|(StE*X$e}LA0%W(3(Bt>Ez`@P%a1VH$cQ|lt;>Q|* zB}>8FlrLoBRbg23cG!?OhI=2iFP4jXkt|Iwbb-45^y#t*gPU{kBS9yfpbp;`$N0Vv zb_ZyWHxN_h=O(OO_AGpbmhYVVyumI8D{|bCH zaD$!ytnwixbb`H!*(3D(L*Z;QB{^;S6|XjPM7>7@;a}1LgBs`JG**8AhnOg$3JbL0 z)Je=e-20g4-I+UHHdj3KwQ}m3Q$xY9&ZO=^ucjk+wh=Uap^^SL-;=Ih{yKBbTx+}kVE*sk-){t2Jr!Rx*-Y4GdU*L}y2SvyM*}SEQ1>DeKSc zSE5LcIB6iIAqmW!-ou_|Fsd_6lsvXRD^B2}o`E+vFR^Py;58k|M<+ZD**Xoe9U&2i z14ojwVYc-qrh5zh%c_`iPiiMy7&VCMo@ZFy zMdb7g=KT7)SXm{+kqhUjOO+22ud$8`echpVgF{T8Kv&*~`B!sYD*YcDS+sj^Mx)GMl#?mL zKC%j7py%H@PWh#;U5?!{)1Mjh@TYxHZdmCZ9rp^&tq%uHbap9Kb-|;*r|Ldmc0N�oA;|YD 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 Date: Tue, 23 Jul 2024 22:23:46 +0800 Subject: [PATCH 03/12] add all the assets images and icons --- thread/public/icons/comment.svg | 3 +++ thread/public/icons/delete.svg | 3 +++ thread/public/icons/downvote.svg | 10 ++++++++++ thread/public/icons/send.svg | 3 +++ thread/public/icons/upvote.svg | 10 ++++++++++ thread/public/images/anonymous.svg | 4 ++++ thread/public/images/person-1.png | Bin 0 -> 2292 bytes thread/public/images/person-2.png | Bin 0 -> 2125 bytes 8 files changed, 33 insertions(+) create mode 100644 thread/public/icons/comment.svg create mode 100644 thread/public/icons/delete.svg create mode 100644 thread/public/icons/downvote.svg create mode 100644 thread/public/icons/send.svg create mode 100644 thread/public/icons/upvote.svg create mode 100644 thread/public/images/anonymous.svg create mode 100644 thread/public/images/person-1.png create mode 100644 thread/public/images/person-2.png diff --git a/thread/public/icons/comment.svg b/thread/public/icons/comment.svg new file mode 100644 index 0000000..2e3e7c6 --- /dev/null +++ b/thread/public/icons/comment.svg @@ -0,0 +1,3 @@ + + + diff --git a/thread/public/icons/delete.svg b/thread/public/icons/delete.svg new file mode 100644 index 0000000..21fa286 --- /dev/null +++ b/thread/public/icons/delete.svg @@ -0,0 +1,3 @@ + + + diff --git a/thread/public/icons/downvote.svg b/thread/public/icons/downvote.svg new file mode 100644 index 0000000..0038625 --- /dev/null +++ b/thread/public/icons/downvote.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/thread/public/icons/send.svg b/thread/public/icons/send.svg new file mode 100644 index 0000000..1576703 --- /dev/null +++ b/thread/public/icons/send.svg @@ -0,0 +1,3 @@ + + + diff --git a/thread/public/icons/upvote.svg b/thread/public/icons/upvote.svg new file mode 100644 index 0000000..480ce34 --- /dev/null +++ b/thread/public/icons/upvote.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/thread/public/images/anonymous.svg b/thread/public/images/anonymous.svg new file mode 100644 index 0000000..9a22d85 --- /dev/null +++ b/thread/public/images/anonymous.svg @@ -0,0 +1,4 @@ + + + + diff --git a/thread/public/images/person-1.png b/thread/public/images/person-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f76593b19dc1b997ec2230e41d4246a69716f807 GIT binary patch literal 2292 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 Date: Tue, 23 Jul 2024 22:25:36 +0800 Subject: [PATCH 04/12] added all the necessary components --- thread/src/components/comment.jsx | 16 ++++++++++++++++ thread/src/components/commentForm.jsx | 15 +++++++++++++++ thread/src/components/commentSection.jsx | 19 +++++++++++++++++++ thread/src/components/commentVote.jsx | 15 +++++++++++++++ thread/src/components/deleteButton.jsx | 10 ++++++++++ thread/src/components/userProfile.jsx | 15 +++++++++++++++ 6 files changed, 90 insertions(+) create mode 100644 thread/src/components/comment.jsx create mode 100644 thread/src/components/commentForm.jsx create mode 100644 thread/src/components/commentSection.jsx create mode 100644 thread/src/components/commentVote.jsx create mode 100644 thread/src/components/deleteButton.jsx create mode 100644 thread/src/components/userProfile.jsx diff --git a/thread/src/components/comment.jsx b/thread/src/components/comment.jsx new file mode 100644 index 0000000..6e7e6ed --- /dev/null +++ b/thread/src/components/comment.jsx @@ -0,0 +1,16 @@ +import UserProfile from "./userProfile"; +import CommentVote from "./commentVote"; + +function Comment({comment}){ + return ( +
  • +
    + +

    {comment.content}

    + +
    +
  • + ) +} + +export default Comment; \ No newline at end of file diff --git a/thread/src/components/commentForm.jsx b/thread/src/components/commentForm.jsx new file mode 100644 index 0000000..565e932 --- /dev/null +++ b/thread/src/components/commentForm.jsx @@ -0,0 +1,15 @@ +function CommentForm({ user }) { + return ( +
    +
    + curret user image + +
    + +
    + ); +} + +export default CommentForm; diff --git a/thread/src/components/commentSection.jsx b/thread/src/components/commentSection.jsx new file mode 100644 index 0000000..5fa5c5c --- /dev/null +++ b/thread/src/components/commentSection.jsx @@ -0,0 +1,19 @@ +import CommentForm from "./commentForm"; +import Comment from "./comment"; + +import commentList from "../data/data.json"; + +function CommentSection() { + const commentListItem = commentList.comments.map(comment => ) + const currentUser = commentList.currentUser; + return ( + <> +
      + {commentListItem} +
    + + + ); +} + +export default CommentSection; diff --git a/thread/src/components/commentVote.jsx b/thread/src/components/commentVote.jsx new file mode 100644 index 0000000..7f9cad1 --- /dev/null +++ b/thread/src/components/commentVote.jsx @@ -0,0 +1,15 @@ +function CommentVote({votes}){ + return ( +
    + + +

    {votes}

    +
    + ) +} + +export default CommentVote; \ No newline at end of file diff --git a/thread/src/components/deleteButton.jsx b/thread/src/components/deleteButton.jsx new file mode 100644 index 0000000..1e7ca8c --- /dev/null +++ b/thread/src/components/deleteButton.jsx @@ -0,0 +1,10 @@ +function DeleteButton(){ + return ( + + ) +} + +export default DeleteButton; \ No newline at end of file diff --git a/thread/src/components/userProfile.jsx b/thread/src/components/userProfile.jsx new file mode 100644 index 0000000..2acb8a6 --- /dev/null +++ b/thread/src/components/userProfile.jsx @@ -0,0 +1,15 @@ +import DeleteButton from "./deleteButton"; + +function UserProfile({author}){ + return ( +
    +
    + user profile +

    {author.userName}

    +
    + +
    + ) +} + +export default UserProfile; \ No newline at end of file From 5ae76e5eb82bb6d9dcc9fc449efd6127676401f6 Mon Sep 17 00:00:00 2001 From: Frost Date: Tue, 23 Jul 2024 22:27:08 +0800 Subject: [PATCH 05/12] add the json data that is used as a initial comments data --- thread/src/data/data.json | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 thread/src/data/data.json diff --git a/thread/src/data/data.json b/thread/src/data/data.json new file mode 100644 index 0000000..d6518a9 --- /dev/null +++ b/thread/src/data/data.json @@ -0,0 +1,27 @@ +{ + "currentUser": { + "id":0, + "userName": "anonyous", + "userProfileUrl": "/images/anonymous.svg" + }, + "comments": [ + { + "id": 1, + "author": { + "userName": "alexander makarov", + "userProfileUrl": "/images/person-1.png" + }, + "content": "Really enjoyed this article! The insights were very helpful and the writing was clear and concise. Looking forward to more content like this. Keep up the great work!", + "votesCount": 12 + }, + { + "id": "2", + "author": { + "userName": "john smith", + "userProfileUrl": "/images/person-2.png" + }, + "content": "This tutorial was exactly what I needed. The step-by-step instructions were easy to follow. Thanks for sharing!", + "votesCount": 12 + } + ] +} \ No newline at end of file From 4489b049c0b94c85022cd650eb868cb07fb5a083 Mon Sep 17 00:00:00 2001 From: Frost Date: Tue, 23 Jul 2024 22:27:41 +0800 Subject: [PATCH 06/12] Remove the unecessary design files styled all the components - remove the app.css files and instead use only one design files the index.css - add a design to all the components using css (mobile first); --- thread/src/App.css | 42 ----------- thread/src/App.jsx | 28 +------ thread/src/index.css | 172 +++++++++++++++++++++++++++++++------------ 3 files changed, 125 insertions(+), 117 deletions(-) delete mode 100644 thread/src/App.css diff --git a/thread/src/App.css b/thread/src/App.css deleted file mode 100644 index b9d355d..0000000 --- a/thread/src/App.css +++ /dev/null @@ -1,42 +0,0 @@ -#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/thread/src/App.jsx b/thread/src/App.jsx index b8b8473..e4337dc 100644 --- a/thread/src/App.jsx +++ b/thread/src/App.jsx @@ -1,33 +1,9 @@ -import { useState } from 'react' -import reactLogo from './assets/react.svg' -import viteLogo from '/vite.svg' -import './App.css' +import CommentSection from "./components/commentSection" function App() { - const [count, setCount] = useState(0) - return ( <> - -

    Vite + React

    -
    - -

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

    -
    -

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

    + ) } diff --git a/thread/src/index.css b/thread/src/index.css index 6119ad9..d81bf4f 100644 --- a/thread/src/index.css +++ b/thread/src/index.css @@ -1,68 +1,142 @@ +@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap'); + :root { - font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; + --primary-clr:#D2DBE8; + --text-clr:#282828; + --red-clr:#F24848; + --white-clr:#ffffff; + + --main-font:"Poppins",sans-serif; +} - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; +*, +html, +body { + margin:0; + padding:0; + box-sizing:border-box; +} - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; +body { + padding:1rem; } -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; +.comment-container { + display:flex; + flex-direction:column; + list-style-type: none; + gap:1rem; } -a:hover { - color: #535bf2; + +.comment { + padding:1rem; + border-radius:2px; + background-color: var(--primary-clr); } -body { - margin: 0; +.comment__head { + display:grid; + grid-template-columns:1fr; + gap:1rem 0rem; +} + +.comment__info { + display:flex; + justify-content:space-between; +} + +.comment__info__wrapper { display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; + align-items:center; + gap:0.8rem; } -h1 { - font-size: 3.2em; - line-height: 1.1; +.comment__info__name { + color:var(--text-clr); + font-family:var(--main-font); + font-size:1rem; + font-weight:700; + text-transform: capitalize; } -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; +.comment__delete-comment-btn { cursor: pointer; - transition: border-color 0.25s; + color:var(--red-clr); + display:flex; + gap:0.5rem; + align-items:center; + font-family:var(--main-font); + font-size:0.8rem; + font-weight:500; + text-transform: capitalize; + border:none; + background-color:transparent; +} + +.comment__content { + color:var(--text-clr); + font-family:var(--main-font); + font-weight:400; + font-size:0.8rem; } -button:hover { - border-color: #646cff; + +.comment__vote-count { + padding:0.4rem 0.8rem; + width:max-content; + font-family:var(--main-font); + font-size:0.8rem; + font-weight: 500; + display:flex; + align-items:center; + justify-content:center; + background-color: var(--white-clr); + border-radius:50px; + gap:0.5rem; } -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; + +.comment__vote-btn { + cursor:pointer; + border:none; + display:flex; + align-items:center; + justify-content:center; + background-color:transparent; +} + +.comment__form { + margin-top:0.5rem; + padding:1rem; + display:flex; + align-items:center; + border-radius:5px; + background-color:var(--primary-clr); + gap:0.5rem; +} + +.comment__form__wrapper { + display: flex; + align-items:center; + flex:1; + gap:0.5rem; } -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } +.comment__form__content { + color:var(--text-clr); + padding:0.5rem; + font-size:0.8rem; + font-family:var(--main-font); + flex:1; + resize:none; + border-radius:5px; + border:none; + background-color:var(--white-clr); } +.comment__post-comment-btn { + cursor:pointer; + padding:0.3rem; + display:flex; + align-items:center; + justify-content:center; + border-radius:50%; + border:none; +} \ No newline at end of file From 14c718addcaffb6a69a1f2ba68c0a0ed0e072b21 Mon Sep 17 00:00:00 2001 From: Frost Date: Wed, 24 Jul 2024 20:22:55 +0800 Subject: [PATCH 07/12] Add a design for desktop using media query --- thread/src/components/comment.jsx | 6 +- thread/src/components/commentForm.jsx | 2 +- thread/src/components/commentVote.jsx | 2 +- thread/src/index.css | 196 +++++++++++++++----------- 4 files changed, 119 insertions(+), 87 deletions(-) diff --git a/thread/src/components/comment.jsx b/thread/src/components/comment.jsx index 6e7e6ed..20778cd 100644 --- a/thread/src/components/comment.jsx +++ b/thread/src/components/comment.jsx @@ -6,8 +6,10 @@ function Comment({comment}){
  • -

    {comment.content}

    - +
    +

    {comment.content}

    + +
  • ) diff --git a/thread/src/components/commentForm.jsx b/thread/src/components/commentForm.jsx index 565e932..6789589 100644 --- a/thread/src/components/commentForm.jsx +++ b/thread/src/components/commentForm.jsx @@ -12,4 +12,4 @@ function CommentForm({ user }) { ); } -export default CommentForm; +export default CommentForm; \ No newline at end of file diff --git a/thread/src/components/commentVote.jsx b/thread/src/components/commentVote.jsx index 7f9cad1..68cbd9d 100644 --- a/thread/src/components/commentVote.jsx +++ b/thread/src/components/commentVote.jsx @@ -7,7 +7,7 @@ function CommentVote({votes}){ -

    {votes}

    +

    {votes}

    ) } diff --git a/thread/src/index.css b/thread/src/index.css index d81bf4f..daa32df 100644 --- a/thread/src/index.css +++ b/thread/src/index.css @@ -1,142 +1,172 @@ -@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap'); +@import url("https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"); :root { - --primary-clr:#D2DBE8; - --text-clr:#282828; - --red-clr:#F24848; - --white-clr:#ffffff; - - --main-font:"Poppins",sans-serif; + --primary-clr: #d2dbe8; + --text-clr: #282828; + --red-clr: #f24848; + --white-clr: #ffffff; + + --main-font: "Poppins", sans-serif; } *, html, body { - margin:0; - padding:0; - box-sizing:border-box; + margin: 0; + padding: 0; + box-sizing: border-box; } body { - padding:1rem; + padding: 1rem; } .comment-container { - display:flex; - flex-direction:column; + display: flex; + flex-direction: column; list-style-type: none; - gap:1rem; + gap: 1rem; } .comment { - padding:1rem; - border-radius:2px; + padding: 1rem; + border-radius: 2px; background-color: var(--primary-clr); } .comment__head { - display:grid; - grid-template-columns:1fr; - gap:1rem 0rem; + display: grid; + grid-template-columns: 1fr; + gap: 1rem 0rem; +} + +.comment__info-wrapper { + display: flex; + flex-direction: column; + gap: 1rem; } .comment__info { - display:flex; - justify-content:space-between; + display: flex; + justify-content: space-between; } .comment__info__wrapper { display: flex; - align-items:center; - gap:0.8rem; + align-items: center; + gap: 0.8rem; } .comment__info__name { - color:var(--text-clr); - font-family:var(--main-font); - font-size:1rem; - font-weight:700; - text-transform: capitalize; + color: var(--text-clr); + font-family: var(--main-font); + font-size: 1rem; + font-weight: 700; + text-transform: capitalize; } .comment__delete-comment-btn { cursor: pointer; - color:var(--red-clr); - display:flex; - gap:0.5rem; - align-items:center; - font-family:var(--main-font); - font-size:0.8rem; - font-weight:500; + color: var(--red-clr); + display: flex; + gap: 0.5rem; + align-items: center; + font-family: var(--main-font); + font-size: 0.8rem; + font-weight: 500; text-transform: capitalize; - border:none; - background-color:transparent; + border: none; + background-color: transparent; } .comment__content { - color:var(--text-clr); - font-family:var(--main-font); - font-weight:400; - font-size:0.8rem; + color: var(--text-clr); + font-family: var(--main-font); + font-weight: 400; + font-size: 0.8rem; } .comment__vote-count { - padding:0.4rem 0.8rem; - width:max-content; - font-family:var(--main-font); - font-size:0.8rem; + padding: 0.4rem 0.8rem; + width: max-content; + font-family: var(--main-font); + font-size: 0.8rem; font-weight: 500; - display:flex; - align-items:center; - justify-content:center; + display: flex; + align-items: center; + justify-content: center; background-color: var(--white-clr); - border-radius:50px; - gap:0.5rem; + border-radius: 50px; + gap: 0.5rem; } .comment__vote-btn { - cursor:pointer; - border:none; - display:flex; - align-items:center; - justify-content:center; - background-color:transparent; + cursor: pointer; + border: none; + display: flex; + align-items: center; + justify-content: center; + background-color: transparent; } .comment__form { - margin-top:0.5rem; - padding:1rem; - display:flex; - align-items:center; - border-radius:5px; - background-color:var(--primary-clr); - gap:0.5rem; + margin-top: 0.5rem; + padding: 1rem; + display: flex; + align-items: center; + border-radius: 5px; + background-color: var(--primary-clr); + gap: 0.5rem; } .comment__form__wrapper { display: flex; - align-items:center; - flex:1; - gap:0.5rem; + align-items: center; + flex: 1; + gap: 0.5rem; } .comment__form__content { - color:var(--text-clr); - padding:0.5rem; - font-size:0.8rem; - font-family:var(--main-font); - flex:1; - resize:none; - border-radius:5px; - border:none; - background-color:var(--white-clr); + color: var(--text-clr); + padding: 0.5rem; + font-size: 0.8rem; + font-family: var(--main-font); + flex: 1; + resize: none; + border-radius: 5px; + border: none; + background-color: var(--white-clr); } + .comment__post-comment-btn { - cursor:pointer; - padding:0.3rem; - display:flex; - align-items:center; - justify-content:center; - border-radius:50%; - border:none; -} \ No newline at end of file + cursor: pointer; + padding: 0.3rem; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + border: none; +} + +@media screen and (min-width: 67.5rem) { + .comment__info-wrapper { + flex-direction: row-reverse; + justify-content: flex-end; + } + + .comment__vote-count { + flex-direction: column; + } + + .vote-count__numbers { + order: 1; + } + + .comment__vote-btn--downvote { + order:2; + } + + .comment__content { + font-size:1rem; + } +} From c3858a734b3870d310a33a081f469fcd60306680 Mon Sep 17 00:00:00 2001 From: Frost Date: Wed, 24 Jul 2024 20:32:18 +0800 Subject: [PATCH 08/12] add a comment section title --- thread/src/components/commentSection.jsx | 2 ++ thread/src/components/commentSectionHead.jsx | 10 ++++++++++ 2 files changed, 12 insertions(+) create mode 100644 thread/src/components/commentSectionHead.jsx diff --git a/thread/src/components/commentSection.jsx b/thread/src/components/commentSection.jsx index 5fa5c5c..bd0929f 100644 --- a/thread/src/components/commentSection.jsx +++ b/thread/src/components/commentSection.jsx @@ -1,3 +1,4 @@ +import CommentSectionHead from "./commentSectionHead"; import CommentForm from "./commentForm"; import Comment from "./comment"; @@ -8,6 +9,7 @@ function CommentSection() { const currentUser = commentList.currentUser; return ( <> +
      {commentListItem}
    diff --git a/thread/src/components/commentSectionHead.jsx b/thread/src/components/commentSectionHead.jsx new file mode 100644 index 0000000..03f1aee --- /dev/null +++ b/thread/src/components/commentSectionHead.jsx @@ -0,0 +1,10 @@ +function CommentSectionHead() { + return ( +
    +

    comments

    + +
    + ); +} + +export default CommentSectionHead; From 0e3b8a3933d0565878a8448da503848807cbad5e Mon Sep 17 00:00:00 2001 From: Frost Date: Sat, 27 Jul 2024 17:01:56 +0800 Subject: [PATCH 09/12] Add all the necessary states to the component - Change all the the props of the other components into a created state - Change all the static value and all the necessary states to the comment section component - Add Functionality to Delete and Add comment and save it to localStorage --- thread/.eslintrc.cjs | 24 ++-- thread/index.html | 4 +- .../public/design/comment_section_modal.png | Bin 3514 -> 0 bytes thread/src/App.jsx | 8 +- thread/src/components/comment.jsx | 30 +++-- thread/src/components/commentForm.jsx | 68 ++++++++++- thread/src/components/commentSection.jsx | 40 ++++-- thread/src/components/commentSectionHead.jsx | 7 +- thread/src/components/commentVote.jsx | 115 ++++++++++++++++-- thread/src/components/deleteButton.jsx | 33 +++-- thread/src/components/userProfile.jsx | 26 ++-- thread/src/context/commentIdContext.jsx | 5 + thread/src/data/data.json | 14 ++- thread/src/index.css | 57 ++++++++- thread/src/main.jsx | 14 +-- 15 files changed, 351 insertions(+), 94 deletions(-) delete mode 100644 thread/public/design/comment_section_modal.png create mode 100644 thread/src/context/commentIdContext.jsx diff --git a/thread/.eslintrc.cjs b/thread/.eslintrc.cjs index 3e212e1..6466c32 100644 --- a/thread/.eslintrc.cjs +++ b/thread/.eslintrc.cjs @@ -2,20 +2,20 @@ module.exports = { root: true, env: { browser: true, es2020: true }, extends: [ - 'eslint:recommended', - 'plugin:react/recommended', - 'plugin:react/jsx-runtime', - 'plugin:react-hooks/recommended', + "eslint:recommended", + "plugin:react/recommended", + "plugin:react/jsx-runtime", + "plugin:react-hooks/recommended", ], - ignorePatterns: ['dist', '.eslintrc.cjs'], - parserOptions: { ecmaVersion: 'latest', sourceType: 'module' }, - settings: { react: { version: '18.2' } }, - plugins: ['react-refresh'], + ignorePatterns: ["dist", ".eslintrc.cjs"], + parserOptions: { ecmaVersion: "latest", sourceType: "module" }, + settings: { react: { version: "18.2" } }, + plugins: ["react-refresh"], rules: { - 'react/jsx-no-target-blank': 'off', - 'react-refresh/only-export-components': [ - 'warn', + "react/jsx-no-target-blank": "off", + "react-refresh/only-export-components": [ + "warn", { allowConstantExport: true }, ], }, -} +}; diff --git a/thread/index.html b/thread/index.html index 0c589ec..e0a9d48 100644 --- a/thread/index.html +++ b/thread/index.html @@ -1,4 +1,4 @@ - + @@ -10,4 +10,4 @@
    - + \ No newline at end of file diff --git a/thread/public/design/comment_section_modal.png b/thread/public/design/comment_section_modal.png deleted file mode 100644 index 9273a46dbe0631f11fbab07dc307a62661503713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3514 zcmeAS@N?(olHy`uVBq!ia0y~yU|h$*z`TTm4Jh*OzDl{`|jy zM|S!awW_l3ybLaP7#jo%87C;|F$5i9b?Dl`;2|i^p!tYN!8L|qNe6d>$f)FKAdIGj z(d;l - + - ) + ); } -export default App +export default App; diff --git a/thread/src/components/comment.jsx b/thread/src/components/comment.jsx index 20778cd..2da5f60 100644 --- a/thread/src/components/comment.jsx +++ b/thread/src/components/comment.jsx @@ -1,18 +1,22 @@ import UserProfile from "./userProfile"; import CommentVote from "./commentVote"; -function Comment({comment}){ - return ( -
  • -
    - -
    -

    {comment.content}

    - -
    -
    -
  • - ) +function Comment({ comment }) { + return ( +
  • +
    + +
    +

    {comment.content}

    + +
    +
    +
  • + ); } -export default Comment; \ No newline at end of file +export default Comment; diff --git a/thread/src/components/commentForm.jsx b/thread/src/components/commentForm.jsx index 6789589..3f1dee9 100644 --- a/thread/src/components/commentForm.jsx +++ b/thread/src/components/commentForm.jsx @@ -1,15 +1,71 @@ -function CommentForm({ user }) { +import { useRef } from "react"; + +function CommentForm({ user, currentId, onSetCurrentId, onSetCommentList }) { + const commentInput = useRef(null); + + const handleCommentInput = () => { + if (!commentInput.current.validity.valueMissing) { + commentInput.current.style = "border:2px solid transparent"; + } + commentInput.current.style = `height:${commentInput.current.scrollHeight}px;`; + }; + + const handleSetCommentList = (event) => { + event.preventDefault(); + + if (commentInput.current.validity.valueMissing) { + commentInput.current.style = "border:2px solid red;"; + commentInput.current.focus(); + return; + } else { + commentInput.current.style = "border:2px solid transparent;"; + } + + const newComment = { + id: currentId, + author: { + userName: user.userName, + userProfileUrl: user.userProfileUrl, + }, + content: commentInput.current.value, + votesCount: 0, + like: false, + dislike: false, + }; + + onSetCommentList((commentInfo) => ({ + ...commentInfo, + comments: [...commentInfo.comments, newComment], + })); + onSetCurrentId((idCount) => ++idCount); + + commentInput.current.value = ""; + commentInput.current.focus(); + }; + return ( -
    +
    curret user image - +
    -
    ); } -export default CommentForm; \ No newline at end of file +export default CommentForm; diff --git a/thread/src/components/commentSection.jsx b/thread/src/components/commentSection.jsx index bd0929f..b7ffc5c 100644 --- a/thread/src/components/commentSection.jsx +++ b/thread/src/components/commentSection.jsx @@ -1,19 +1,45 @@ +import { useState, useEffect } from "react"; + +import { CommentInfoContext } from "../context/commentIdContext"; + import CommentSectionHead from "./commentSectionHead"; import CommentForm from "./commentForm"; import Comment from "./comment"; -import commentList from "../data/data.json"; +import comments from "../data/data.json"; function CommentSection() { - const commentListItem = commentList.comments.map(comment => ) + const saveComments = JSON.parse(localStorage.getItem("commentList")); + const saveId = localStorage.getItem("commentCurrentId"); + + const [commentList, setCommentList] = useState(saveComments || comments); + const [id, setId] = useState(saveId || 3); + + const commentListItem = commentList.comments.map((comment) => ( + + + + )); const currentUser = commentList.currentUser; + + useEffect(() => { + localStorage.setItem("commentList", JSON.stringify(commentList)); + localStorage.setItem("commentCurrentId", id); + }, [commentList, id]); + return ( <> - -
      - {commentListItem} -
    - + +
      {commentListItem}
    + ); } diff --git a/thread/src/components/commentSectionHead.jsx b/thread/src/components/commentSectionHead.jsx index 03f1aee..c06be28 100644 --- a/thread/src/components/commentSectionHead.jsx +++ b/thread/src/components/commentSectionHead.jsx @@ -2,7 +2,12 @@ function CommentSectionHead() { return (

    comments

    - +
    ); } diff --git a/thread/src/components/commentVote.jsx b/thread/src/components/commentVote.jsx index 68cbd9d..28f5ba5 100644 --- a/thread/src/components/commentVote.jsx +++ b/thread/src/components/commentVote.jsx @@ -1,15 +1,106 @@ -function CommentVote({votes}){ - return ( -
    - - -

    {votes}

    +import { useContext, useRef } from "react"; +import { CommentInfoContext } from "../context/commentIdContext"; + +function CommentVote({ votes, like, dislike }) { + const { commentId, onSetCommentList } = useContext(CommentInfoContext); + const upVoteRef = useRef(null); + const downVoteRef = useRef(null); + const updateComment = (comment, dislikeValue, likeValue, voteCountValue) => { + return { + ...comment, + dislike: dislikeValue, + like: likeValue, + votesCount: voteCountValue, + }; + }; + + const newComments = (operation, comments) => { + return comments.map((comment) => { + const targetComment = commentId === comment.id; + + if (targetComment && operation === "upvote" && comment.like) { + return updateComment(comment, false, false, votes - 1); + } else if ( + targetComment && + operation === "upvote" && + comment.dislike && + !comment.like + ) { + return updateComment(comment, false, true, votes + 2); + } else if (targetComment && operation === "upvote" && !comment.like) { + return updateComment(comment, false, true, votes + 1); + } else if (targetComment && operation === "downvote" && comment.dislike) { + return updateComment(comment, false, false, votes + 1); + } else if ( + targetComment && + operation === "downvote" && + !comment.dislike && + comment.like + ) { + return updateComment(comment, true, false, votes - 2); + } else if ( + targetComment && + operation === "downvote" && + !comment.dislike + ) { + return updateComment(comment, true, false, votes - 1); + } + return comment; + }); + }; + + const handleClick = (e) => { + onSetCommentList((commentInfo) => ({ + ...commentInfo, + comments: newComments(e.target.dataset.voteInfo, commentInfo.comments), + })); + }; + + return ( +
    + + +

    {votes}

    +
    + ); } -export default CommentVote; \ No newline at end of file +export default CommentVote; diff --git a/thread/src/components/deleteButton.jsx b/thread/src/components/deleteButton.jsx index 1e7ca8c..d9422a6 100644 --- a/thread/src/components/deleteButton.jsx +++ b/thread/src/components/deleteButton.jsx @@ -1,10 +1,27 @@ -function DeleteButton(){ - return ( - - ) +import { CommentInfoContext } from "../context/commentIdContext"; +import { useContext } from "react"; + +function DeleteButton() { + const { commentId, onSetCommentList } = useContext(CommentInfoContext); + const handleDeleteMessage = () => { + onSetCommentList((commentInfo) => ({ + ...commentInfo, + comments: [ + ...commentInfo.comments.filter((comment) => comment.id !== commentId), + ], + })); + }; + + return ( + + ); } -export default DeleteButton; \ No newline at end of file +export default DeleteButton; diff --git a/thread/src/components/userProfile.jsx b/thread/src/components/userProfile.jsx index 2acb8a6..14ed0f8 100644 --- a/thread/src/components/userProfile.jsx +++ b/thread/src/components/userProfile.jsx @@ -1,15 +1,19 @@ import DeleteButton from "./deleteButton"; -function UserProfile({author}){ - return ( -
    -
    - user profile -

    {author.userName}

    -
    - -
    - ) +function UserProfile({ author }) { + return ( +
    +
    + user profile +

    {author.userName}

    +
    + +
    + ); } -export default UserProfile; \ No newline at end of file +export default UserProfile; diff --git a/thread/src/context/commentIdContext.jsx b/thread/src/context/commentIdContext.jsx new file mode 100644 index 0000000..2a895b2 --- /dev/null +++ b/thread/src/context/commentIdContext.jsx @@ -0,0 +1,5 @@ +import { createContext } from "react"; + +const CommentInfoContext = createContext(null); + +export { CommentInfoContext }; diff --git a/thread/src/data/data.json b/thread/src/data/data.json index d6518a9..aeeee2d 100644 --- a/thread/src/data/data.json +++ b/thread/src/data/data.json @@ -1,27 +1,31 @@ { "currentUser": { "id":0, - "userName": "anonyous", + "userName": "anonymous", "userProfileUrl": "/images/anonymous.svg" }, "comments": [ { - "id": 1, + "id": 0, "author": { "userName": "alexander makarov", "userProfileUrl": "/images/person-1.png" }, "content": "Really enjoyed this article! The insights were very helpful and the writing was clear and concise. Looking forward to more content like this. Keep up the great work!", - "votesCount": 12 + "votesCount": 12, + "like":false, + "dislike":false }, { - "id": "2", + "id": "1", "author": { "userName": "john smith", "userProfileUrl": "/images/person-2.png" }, "content": "This tutorial was exactly what I needed. The step-by-step instructions were easy to follow. Thanks for sharing!", - "votesCount": 12 + "votesCount": 12, + "like":false, + "dislike":false } ] } \ No newline at end of file diff --git a/thread/src/index.css b/thread/src/index.css index daa32df..48b8af4 100644 --- a/thread/src/index.css +++ b/thread/src/index.css @@ -21,6 +21,21 @@ body { padding: 1rem; } +.comment-section-header { + margin-bottom: 1rem; + display: flex; + align-items: center; + gap: 1rem; +} + +.comment-section-header__title { + color: var(--text-clr); + font-size: 1.5rem; + font-family: var(--main-font); + font-weight: 800; + text-transform: uppercase; +} + .comment-container { display: flex; flex-direction: column; @@ -84,20 +99,23 @@ body { font-family: var(--main-font); font-weight: 400; font-size: 0.8rem; + white-space: pre-wrap; + word-break: break-all; } .comment__vote-count { - padding: 0.4rem 0.8rem; + padding: 0.4rem; width: max-content; + height: max-content; font-family: var(--main-font); font-size: 0.8rem; font-weight: 500; display: flex; align-items: center; justify-content: center; - background-color: var(--white-clr); border-radius: 50px; - gap: 0.5rem; + background-color: var(--white-clr); + gap: 0.2rem; } .comment__vote-btn { @@ -109,6 +127,27 @@ body { background-color: transparent; } +.vote-btn__checkbox { + height: 0px; + width: 0px; + opacity: 0; + border: none; + outline: none; +} + +.vote-btn__checkbox-icon { + height: 25px; + width: 25px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; +} + +.vote-btn__checkbox:checked + .vote-btn__checkbox-icon { + background-color: var(--text-clr); +} + .comment__form { margin-top: 0.5rem; padding: 1rem; @@ -129,15 +168,21 @@ body { .comment__form__content { color: var(--text-clr); padding: 0.5rem; + height: 3rem; font-size: 0.8rem; font-family: var(--main-font); flex: 1; resize: none; border-radius: 5px; - border: none; + border: 2px solid transparent; + outline: none; background-color: var(--white-clr); } +.comment__form__content::-webkit-scrollbar { + appearance: none; +} + .comment__post-comment-btn { cursor: pointer; padding: 0.3rem; @@ -163,10 +208,10 @@ body { } .comment__vote-btn--downvote { - order:2; + order: 2; } .comment__content { - font-size:1rem; + font-size: 1rem; } } diff --git a/thread/src/main.jsx b/thread/src/main.jsx index 54b39dd..b91620d 100644 --- a/thread/src/main.jsx +++ b/thread/src/main.jsx @@ -1,10 +1,10 @@ -import React from 'react' -import ReactDOM from 'react-dom/client' -import App from './App.jsx' -import './index.css' +import React from "react"; +import ReactDOM from "react-dom/client"; +import App from "./App.jsx"; +import "./index.css"; -ReactDOM.createRoot(document.getElementById('root')).render( +ReactDOM.createRoot(document.getElementById("root")).render( - , -) + +); From d5361fc01969ee30bc602e2e6bcf9bff766abff7 Mon Sep 17 00:00:00 2001 From: Frost Date: Sat, 27 Jul 2024 17:06:24 +0800 Subject: [PATCH 10/12] change the name of the file commentIdContext into commentInfoContext --- thread/src/components/commentSection.jsx | 2 +- thread/src/components/commentVote.jsx | 2 +- thread/src/components/deleteButton.jsx | 2 +- .../context/{commentIdContext.jsx => commentInfoContext.jsx} | 0 4 files changed, 3 insertions(+), 3 deletions(-) rename thread/src/context/{commentIdContext.jsx => commentInfoContext.jsx} (100%) diff --git a/thread/src/components/commentSection.jsx b/thread/src/components/commentSection.jsx index b7ffc5c..c106002 100644 --- a/thread/src/components/commentSection.jsx +++ b/thread/src/components/commentSection.jsx @@ -1,6 +1,6 @@ import { useState, useEffect } from "react"; -import { CommentInfoContext } from "../context/commentIdContext"; +import { CommentInfoContext } from "../context/commentInfoContext"; import CommentSectionHead from "./commentSectionHead"; import CommentForm from "./commentForm"; diff --git a/thread/src/components/commentVote.jsx b/thread/src/components/commentVote.jsx index 28f5ba5..485ca9d 100644 --- a/thread/src/components/commentVote.jsx +++ b/thread/src/components/commentVote.jsx @@ -1,5 +1,5 @@ import { useContext, useRef } from "react"; -import { CommentInfoContext } from "../context/commentIdContext"; +import { CommentInfoContext } from "../context/commentInfoContext"; function CommentVote({ votes, like, dislike }) { const { commentId, onSetCommentList } = useContext(CommentInfoContext); diff --git a/thread/src/components/deleteButton.jsx b/thread/src/components/deleteButton.jsx index d9422a6..1b25ac6 100644 --- a/thread/src/components/deleteButton.jsx +++ b/thread/src/components/deleteButton.jsx @@ -1,4 +1,4 @@ -import { CommentInfoContext } from "../context/commentIdContext"; +import { CommentInfoContext } from "../context/commentInfoContext"; import { useContext } from "react"; function DeleteButton() { diff --git a/thread/src/context/commentIdContext.jsx b/thread/src/context/commentInfoContext.jsx similarity index 100% rename from thread/src/context/commentIdContext.jsx rename to thread/src/context/commentInfoContext.jsx From 123c25c7c593c11e9348e0cd832536ef463e49f1 Mon Sep 17 00:00:00 2001 From: Frost Date: Sat, 27 Jul 2024 17:12:39 +0800 Subject: [PATCH 11/12] move all the files to the comment-section folder --- day015/comment-section/.eslintrc.cjs | 21 + day015/comment-section/.gitignore | 24 + day015/comment-section/README.md | 8 + day015/comment-section/index.html | 13 + day015/comment-section/package-lock.json | 4290 +++++++++++++++++ day015/comment-section/package.json | 26 + .../public/design/comment_section_desktop.png | Bin 0 -> 42870 bytes .../public/design/comment_section_mobile.png | Bin 0 -> 33949 bytes .../comment-section/public/icons/comment.svg | 3 + .../comment-section/public/icons/delete.svg | 3 + .../comment-section/public/icons/downvote.svg | 10 + day015/comment-section/public/icons/send.svg | 3 + .../comment-section/public/icons/upvote.svg | 10 + .../public/images/anonymous.svg | 4 + .../public/images/person-1.png | Bin 0 -> 2292 bytes .../public/images/person-2.png | Bin 0 -> 2125 bytes day015/comment-section/public/vite.svg | 1 + day015/comment-section/src/App.jsx | 11 + day015/comment-section/src/assets/react.svg | 1 + .../src/components/comment.jsx | 22 + .../src/components/commentForm.jsx | 71 + .../src/components/commentSection.jsx | 47 + .../src/components/commentSectionHead.jsx | 15 + .../src/components/commentVote.jsx | 106 + .../src/components/deleteButton.jsx | 27 + .../src/components/userProfile.jsx | 19 + .../src/context/commentInfoContext.jsx | 5 + day015/comment-section/src/data/data.json | 31 + day015/comment-section/src/index.css | 217 + day015/comment-section/src/main.jsx | 10 + day015/comment-section/vite.config.js | 7 + 31 files changed, 5005 insertions(+) create mode 100644 day015/comment-section/.eslintrc.cjs create mode 100644 day015/comment-section/.gitignore create mode 100644 day015/comment-section/README.md create mode 100644 day015/comment-section/index.html create mode 100644 day015/comment-section/package-lock.json create mode 100644 day015/comment-section/package.json create mode 100644 day015/comment-section/public/design/comment_section_desktop.png create mode 100644 day015/comment-section/public/design/comment_section_mobile.png create mode 100644 day015/comment-section/public/icons/comment.svg create mode 100644 day015/comment-section/public/icons/delete.svg create mode 100644 day015/comment-section/public/icons/downvote.svg create mode 100644 day015/comment-section/public/icons/send.svg create mode 100644 day015/comment-section/public/icons/upvote.svg create mode 100644 day015/comment-section/public/images/anonymous.svg create mode 100644 day015/comment-section/public/images/person-1.png create mode 100644 day015/comment-section/public/images/person-2.png create mode 100644 day015/comment-section/public/vite.svg create mode 100644 day015/comment-section/src/App.jsx create mode 100644 day015/comment-section/src/assets/react.svg create mode 100644 day015/comment-section/src/components/comment.jsx create mode 100644 day015/comment-section/src/components/commentForm.jsx create mode 100644 day015/comment-section/src/components/commentSection.jsx create mode 100644 day015/comment-section/src/components/commentSectionHead.jsx create mode 100644 day015/comment-section/src/components/commentVote.jsx create mode 100644 day015/comment-section/src/components/deleteButton.jsx create mode 100644 day015/comment-section/src/components/userProfile.jsx create mode 100644 day015/comment-section/src/context/commentInfoContext.jsx create mode 100644 day015/comment-section/src/data/data.json create mode 100644 day015/comment-section/src/index.css create mode 100644 day015/comment-section/src/main.jsx create mode 100644 day015/comment-section/vite.config.js diff --git a/day015/comment-section/.eslintrc.cjs b/day015/comment-section/.eslintrc.cjs new file mode 100644 index 0000000..6466c32 --- /dev/null +++ b/day015/comment-section/.eslintrc.cjs @@ -0,0 +1,21 @@ +module.exports = { + root: true, + env: { browser: true, es2020: true }, + extends: [ + "eslint:recommended", + "plugin:react/recommended", + "plugin:react/jsx-runtime", + "plugin:react-hooks/recommended", + ], + ignorePatterns: ["dist", ".eslintrc.cjs"], + parserOptions: { ecmaVersion: "latest", sourceType: "module" }, + settings: { react: { version: "18.2" } }, + plugins: ["react-refresh"], + rules: { + "react/jsx-no-target-blank": "off", + "react-refresh/only-export-components": [ + "warn", + { allowConstantExport: true }, + ], + }, +}; diff --git a/day015/comment-section/.gitignore b/day015/comment-section/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/day015/comment-section/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/day015/comment-section/README.md b/day015/comment-section/README.md new file mode 100644 index 0000000..f768e33 --- /dev/null +++ b/day015/comment-section/README.md @@ -0,0 +1,8 @@ +# React + 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/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh +- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh diff --git a/day015/comment-section/index.html b/day015/comment-section/index.html new file mode 100644 index 0000000..e0a9d48 --- /dev/null +++ b/day015/comment-section/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite + React + + +
    + + + \ No newline at end of file diff --git a/day015/comment-section/package-lock.json b/day015/comment-section/package-lock.json new file mode 100644 index 0000000..91469b6 --- /dev/null +++ b/day015/comment-section/package-lock.json @@ -0,0 +1,4290 @@ +{ + "name": "thread", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "thread", + "version": "0.0.0", + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "eslint": "^8.57.0", + "eslint-plugin-react": "^7.34.3", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-react-refresh": "^0.4.7", + "vite": "^5.3.4" + } + }, + "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, + "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.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.9.tgz", + "integrity": "sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", + "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.9", + "@babel/helper-compilation-targets": "^7.24.8", + "@babel/helper-module-transforms": "^7.24.9", + "@babel/helpers": "^7.24.8", + "@babel/parser": "^7.24.8", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.8", + "@babel/types": "^7.24.9", + "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/generator": { + "version": "7.24.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.10.tgz", + "integrity": "sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.9", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz", + "integrity": "sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.8", + "@babel/helper-validator-option": "^7.24.8", + "browserslist": "^4.23.1", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz", + "integrity": "sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", + "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", + "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", + "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", + "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", + "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz", + "integrity": "sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz", + "integrity": "sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.8.tgz", + "integrity": "sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.8", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.8", + "@babel/types": "^7.24.8", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.24.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", + "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.8", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.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": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "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, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "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, + "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, + "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 + }, + "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, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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, + "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, + "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, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.19.0.tgz", + "integrity": "sha512-JlPfZ/C7yn5S5p0yKk7uhHTTnFlvTgLetl2VxqE518QgyM7C9bSfFTYvB/Q/ftkq0RIPY4ySxTz+/wKJ/dXC0w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.19.0.tgz", + "integrity": "sha512-RDxUSY8D1tWYfn00DDi5myxKgOk6RvWPxhmWexcICt/MEC6yEMr4HNCu1sXXYLw8iAsg0D44NuU+qNq7zVWCrw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.19.0.tgz", + "integrity": "sha512-emvKHL4B15x6nlNTBMtIaC9tLPRpeA5jMvRLXVbl/W9Ie7HhkrE7KQjvgS9uxgatL1HmHWDXk5TTS4IaNJxbAA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.19.0.tgz", + "integrity": "sha512-fO28cWA1dC57qCd+D0rfLC4VPbh6EOJXrreBmFLWPGI9dpMlER2YwSPZzSGfq11XgcEpPukPTfEVFtw2q2nYJg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.19.0.tgz", + "integrity": "sha512-2Rn36Ubxdv32NUcfm0wB1tgKqkQuft00PtM23VqLuCUR4N5jcNWDoV5iBC9jeGdgS38WK66ElncprqgMUOyomw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.19.0.tgz", + "integrity": "sha512-gJuzIVdq/X1ZA2bHeCGCISe0VWqCoNT8BvkQ+BfsixXwTOndhtLUpOg0A1Fcx/+eA6ei6rMBzlOz4JzmiDw7JQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.19.0.tgz", + "integrity": "sha512-0EkX2HYPkSADo9cfeGFoQ7R0/wTKb7q6DdwI4Yn/ULFE1wuRRCHybxpl2goQrx4c/yzK3I8OlgtBu4xvted0ug==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.19.0.tgz", + "integrity": "sha512-GlIQRj9px52ISomIOEUq/IojLZqzkvRpdP3cLgIE1wUWaiU5Takwlzpz002q0Nxxr1y2ZgxC2obWxjr13lvxNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.19.0.tgz", + "integrity": "sha512-N6cFJzssruDLUOKfEKeovCKiHcdwVYOT1Hs6dovDQ61+Y9n3Ek4zXvtghPPelt6U0AH4aDGnDLb83uiJMkWYzQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.19.0.tgz", + "integrity": "sha512-2DnD3mkS2uuam/alF+I7M84koGwvn3ZVD7uG+LEWpyzo/bq8+kKnus2EVCkcvh6PlNB8QPNFOz6fWd5N8o1CYg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.19.0.tgz", + "integrity": "sha512-D6pkaF7OpE7lzlTOFCB2m3Ngzu2ykw40Nka9WmKGUOTS3xcIieHe82slQlNq69sVB04ch73thKYIWz/Ian8DUA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.19.0.tgz", + "integrity": "sha512-HBndjQLP8OsdJNSxpNIN0einbDmRFg9+UQeZV1eiYupIRuZsDEoeGU43NQsS34Pp166DtwQOnpcbV/zQxM+rWA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.19.0.tgz", + "integrity": "sha512-HxfbvfCKJe/RMYJJn0a12eiOI9OOtAUF4G6ozrFUK95BNyoJaSiBjIOHjZskTUffUrB84IPKkFG9H9nEvJGW6A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.19.0.tgz", + "integrity": "sha512-HxDMKIhmcguGTiP5TsLNolwBUK3nGGUEoV/BO9ldUBoMLBssvh4J0X8pf11i1fTV7WShWItB1bKAKjX4RQeYmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.19.0.tgz", + "integrity": "sha512-xItlIAZZaiG/u0wooGzRsx11rokP4qyc/79LkAOdznGRAbOFc+SfEdfUOszG1odsHNgwippUJavag/+W/Etc6Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.19.0.tgz", + "integrity": "sha512-xNo5fV5ycvCCKqiZcpB65VMR11NJB+StnxHz20jdqRAktfdfzhgjTiJ2doTDQE/7dqGaV5I7ZGqKpgph6lCIag==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "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, + "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.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "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, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz", + "integrity": "sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.24.5", + "@babel/plugin-transform-react-jsx-self": "^7.24.5", + "@babel/plugin-transform-react-jsx-source": "^7.24.1", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0" + } + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "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, + "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-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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 + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "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, + "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.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "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 + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.23.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.2.tgz", + "integrity": "sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==", + "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" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001640", + "electron-to-chromium": "^1.4.820", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "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, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001643", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz", + "integrity": "sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg==", + "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" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/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 + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "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.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "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 + }, + "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, + "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, + "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": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.832", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.832.tgz", + "integrity": "sha512-cTen3SB0H2SGU7x467NRe1eVcQgcuS6jckKfWJHia2eo0cHIGOqHoAxevIYZD4eRHcWjkvFzo93bi3vJ9W+1lA==", + "dev": true + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.19.tgz", + "integrity": "sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.35.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz", + "integrity": "sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.19", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz", + "integrity": "sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.9.tgz", + "integrity": "sha512-QK49YrBAo5CLNLseZ7sZgvgTy21E6NEw22eZqc4teZfH8pxV3yXc9XXOYfUI6JNpw7mfHNkAeWtBxrTyykB6HA==", + "dev": true, + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.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, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/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, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.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, + "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, + "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, + "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, + "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 + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/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 + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "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, + "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": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "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, + "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, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "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.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "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 + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "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, + "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, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "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, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", + "integrity": "sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==", + "dev": true, + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.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, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "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 + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "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==" + }, + "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, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-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 + }, + "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 + }, + "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 + }, + "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, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "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", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "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, + "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, + "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 + }, + "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==", + "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", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "dev": true + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "dev": true, + "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, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "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, + "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.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, + "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/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "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/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "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, + "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, + "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, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.39.tgz", + "integrity": "sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==", + "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" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.1", + "source-map-js": "^1.2.0" + }, + "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, + "engines": { + "node": ">= 0.8.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==", + "dev": true, + "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", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "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" + } + ] + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "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==", + "dev": true + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-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, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.19.0.tgz", + "integrity": "sha512-5r7EYSQIowHsK4eTZ0Y81qpZuJz+MUuYeqmmYmRMl1nwhdmbiYqt5jwzf6u7wyOzJgYqtCRMtVRKOtHANBz7rA==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.19.0", + "@rollup/rollup-android-arm64": "4.19.0", + "@rollup/rollup-darwin-arm64": "4.19.0", + "@rollup/rollup-darwin-x64": "4.19.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.19.0", + "@rollup/rollup-linux-arm-musleabihf": "4.19.0", + "@rollup/rollup-linux-arm64-gnu": "4.19.0", + "@rollup/rollup-linux-arm64-musl": "4.19.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.19.0", + "@rollup/rollup-linux-riscv64-gnu": "4.19.0", + "@rollup/rollup-linux-s390x-gnu": "4.19.0", + "@rollup/rollup-linux-x64-gnu": "4.19.0", + "@rollup/rollup-linux-x64-musl": "4.19.0", + "@rollup/rollup-win32-arm64-msvc": "4.19.0", + "@rollup/rollup-win32-ia32-msvc": "4.19.0", + "@rollup/rollup-win32-x64-msvc": "4.19.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" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "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, + "bin": { + "semver": "bin/semver.js" + } + }, + "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, + "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, + "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/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "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, + "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-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/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, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", + "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "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" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.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, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/vite": { + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.4.tgz", + "integrity": "sha512-Cw+7zL3ZG9/NZBB8C+8QbQZmR54GwqIz+WMI4b3JgdYJvX+ny9AjJXqkGQlDXSXRP9rP0B4tbciRMOVEKulVOA==", + "dev": true, + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.39", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.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", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "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, + "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.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "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, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/day015/comment-section/package.json b/day015/comment-section/package.json new file mode 100644 index 0000000..7775d28 --- /dev/null +++ b/day015/comment-section/package.json @@ -0,0 +1,26 @@ +{ + "name": "thread", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0", + "preview": "vite preview" + }, + "dependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + }, + "devDependencies": { + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.1", + "eslint": "^8.57.0", + "eslint-plugin-react": "^7.34.3", + "eslint-plugin-react-hooks": "^4.6.2", + "eslint-plugin-react-refresh": "^0.4.7", + "vite": "^5.3.4" + } +} diff --git a/day015/comment-section/public/design/comment_section_desktop.png b/day015/comment-section/public/design/comment_section_desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..bc19e6408d28aed585c5980ee58c89007e40fe45 GIT binary patch literal 42870 zcmdSBX*k9|q%v<9}y4+lXTmS%o z`{9ForT_r@VeshfV;qNHLEde-hhKmDKd=b|0FLwh`(Xp5e>r;?$rfm;dj|j?Jil`I zf|2$ahNPMwsN|IhyEo8Arc+ykYMJSGpwrcK++A-q(qH#}e-e zF6+En=LnyQpk|eNr;NG( z4gqY>u-*P0%!xS#`0IDj_U!+XNbA?LmGa7;>X0~j7pmXD%{qH9>4H$4N!^+K-8d!PPfWFS_2a{U<(;n;|b? z9alG$1>Uv6HHB6TWNYCax87NqXX>Jemn$HY(!NKRb%le?$K7I33aZ()cX1!`ebSZu z99K425imlson=7UBh&J3LaZ3S65 zfrD4SMS`pxL2k|O)z<4Tv)1Qg;e!~VEAm4*szq9!QW;2%dhhl_p|5v_y|K4_UWCL zBTu=+#Et^#5eQky(p%#plq7&E>JiB>1sEd^ zvhXNtw;@LMU^ltM>Gpqh0Gziin1Y+J$+H*nFX#au69=3rTj{jbKE2t!<8M`NIl1eW>3{FQR8l3E{H=u%+3r{rZRE3%Rw1FGh;%p+I!O;}Y_3 z0i8n(Q~*Wko^t~>D2Yngg)~lv`TQfTRG|y^pb?!yGycZc4Oq(wEQu^UM%pp9!c;J_ zwX!ywQ|@$^w9@b^FM_AwK|ai4AfiQb(>&~h(E#+c@mOP_pm|UnngvAf|CZphuo(}4 z{#=w2Z*EuqJrlDSv6%K$47?E?{IXrSqT8xC<;$WzTEu)nRZ>a$O_2&b>KW@{UO|Ix zU5Zt)$}2i&r4hiA%9B`6he-*{9T=J?Tb!(qq{u2WulW$0vhI=lTzF^XATq) zsq*(?QZwtLOrHN4r1#C@S0&CCUdZHJ7?t>3n3JKjWWlXuXa}$TQh-wDg21>VbK7;~ zkx_w&vAICUh~W&1m&Q09Z6?@Zq%z>aRR+>Xi2QZZC(i)pp8Mr`H(*Ba$n)R&c%3h) z8{F)kc_hHo(BgEx=>_6lQM&Pp8vEuw1mP2SpBAvw;zfa(7#oYSA9xja3lvx||B~7( zENDyDWs(&1C;0163Ch^46w9YS%ac_`Omj2}m9mGmdy?J*PW)Gd|C`lHF=JBGQdWd4 zPZ`bmJXfs`wx-xTkn~O(F2TOSFL5|(HP3L;`8Q3UZ~nNP@ID$USZp;AeR{vtywphh z-uN;~-8Q70KZo3|VD4HW$WHEHack^Z$B&i~l>X^5yI}F+p-(EtV8{9Ewucl)_|4rC zi*t+-IihI)yvEaD!QX=N7#jW!co*ea^0x4KGH3aiyfwbKz$u{1iM^g*!u-PZ^TT&h z(i0XkzhD=>aPkw2yO-G1*_XZkE`g0NmhuC33fg9->P190%}Ejt&(xvzDiK*(XlmLY7GH zkfMm5I!tTR>3v2g!Z7yKpD}R8Kp${2uy0XfIkfw`Nd&~mr-}aF75DX*Q)*^qR66ue zqp6mJ3UlnnEs*w6*wRO#T~Uf^#4g1Q%-vtS|E0*WFh2U*;sQKeeEyxr51$;j|9z9* z|DMU&a0K3Rd3P$7aV?|o+;4?HUtC`Gs3XKOe75!-Gu}yJ08_1jAAX7c{&)C^E1yjS zs~fCnacGjHF8+=Mq|0UW;mk)kFZ@Z>aSU+ecTna%;Qv2T)tl$XLbami-dE-V9Je;2 zEBejJCt?PRyO}byp}(WH5;i2ZHP@F>m#Zy5zo;2|G;d)XW~%$_C$YI)$`~*d2TnvHG^BybjuSQ-fSq z+N8mCKHd(Bdx@|^zX}BZ85zHvZ;1fb`bf3DLRAvm0tax89}yg{=hLA~jp^N=^YPzO zMXNhf`m>*crQ>V*_fMl6oQs8nu|%IsYA(V)?!40xg*G|^P%;{&_&CjA=G8ampNyTq zog>|=P%2D^-ZdGP699kPLVgRN{X_JQ{q(7Cau`0HA}mxLsYtIu*y&oOx?$C>p+;OX zHJDpN(h17pqXA8~T+#Si{2%EJ6kXYFv$Gm|sJ3Dv0axfq<-OE|=;x(Y!cSYKGtoGl ztLx=XML9a?QU+qAJyTJ&8T0jxv%Dw&_5L_JS$b<}o(5e-p!@i7QJFloTmN7<{w#t0 z+uqBw`SuxEQ@b2v?*ym3Jra^u``$*3-o@6|%*09-TH`}ofs-EZ=B;FF39(C)W=1|$ z*;Dk(8FfKv0~yF4kfi~?I&XfZ{mCKLz!{m(Pl2hTd}SB;4xoNGR+#aJ$gR-dBK-1K zy3BT)dvD}a43&$yYh%x59I(ZEE`qR{M;e-`N3#}nsdgD094pI}@sWd$!Bcuf3p1!$E8?(U?*cDI0>1k1UPgp|_+O$zq zL7g199aO|zwp>_W;~wf=O&r!zWhDtkI-2U_g7Wn67=FdUsgIO%s`|E8GYctE^tqaS zup{o>mol(5B;eFIgKpgo{@sqlUhY=_6PZG)%T4u)IbN&x4}e4NKI7l+@1jxhb$AeXs)+0pydfVMwx<7|n*GBvb~OQN-#XnVw;tjN+c5>m zNpD3F_IlTme~9PKR=Qfr)(uMd*ZKKNyxTzFZdA~OiFWn!@2HfCuCDqxl4wnT+mVd3 z(@rJ#&&nBr*%qs}w#Vw6BiuVygG2cNCp758N1vTMQSFLqq2@yl9@IGfZe8Oh&kD8) zPggWrQDyLR?-MR2;0&b7U?`Gk2g;|cMfQr|_w!}4FhC?42hSy992|aY1u{uLHk-<7Q@R*NY4n z_Mld)W6KgBb{gcSPC^f8rCKIjsxfR|OX1Ctrv9enqDi0=|L5(XRjTqbKYObB?Si&c z`eww%WjQ&6*d~>9i0jGoT*4BrWU#zbHYYzL=9&!o!&?IJ~C>#-8f5mq;Z z=}mICWHt~6%Ho`_2BBJU|EcZQusq4|IgUL4EYXQVOSLeY z{t^|$iQOoX^w&(SGuVi<3mChxJ7&+Oz(BUcJ{=QqH8EHH{0(qW=IDQ%VQ zET_&2#IY7!y{JNRrNi%)wLp2>Hl@1Ooj;>xO@X(Z*|Wx=IYy-yhDzqqNi6t<1Wu+b z1W#A~u}qeHz>iiotNd|Po$I7V`sjiM8MImPMK`wnChTf{&ECy{b5`6ZjUf-7^i zjwQ)@sjw$STNuZD_Z$)TR$MjI=?ntm6qxww08GAZWbSq2;*|qc+jViR2vR=5k1M@e zOwzijnWS$M^5bZ}3)zajNnLByi&qTDDV309rI#UB@y~d_IbZ|@cSjPV(xYZuhi{l} zv>LNKa4l&;_3Gt)C_!{sbAxsC<{Fvje1eN{5XxvhEvbMdMf(@Q0swf74oA}oLTohj z!Fm4vdu;6zVRcad3TB@c1jP}GeBwI!KF;txj#c%HNZLSDdC)nt>B(Rs17Ej+f2Pk* z?X!hE?z)z~m?PHKYG0a(>F48ZeF>f{-nCS)i^7JfeZ8H01V~>ycEohHsF5qH{P+=F zk>Qb0k*U#}ozKyYj|c97`9GJSUs|>+;zi2kPI&oBa;SF(mD+gMGnWc?j-ExUj?qtl zL50i&_mG|?J`vz3_>$ftWnBbVT9smJ81E^UgmoWvbGb#T(d6nB48evFK5pybAPXn%D%9dIwgQj@ppQO&_H>BvYX&1Pg-&hU$-uHTUIjyDsR_tGMW?aFVTe1 z9Qhks|LMheu!hQ3M2GrV9@_`C$?_c0IS|6up?sOF@(>0x5+Cm{0Tf_;_YB#Y1MNED zLTn=B2X+NQabIc7T4>nBZbGS-Qz~hu1(R|JBMrlS6#Zy7o*lf%jkIs5+&$@h_Ltc& zeeEWg$psy40d}XK+&ZUB4?^JR#e$M?*do%UdbZN9uJTMKE9J!AN|PRQ_G+O~X|Ok41Ux3B4C+zQPtf@leF`Y$peScl@HM;-UJ$>ALR*$F zQwJVRKxdG>tt=|k&uD)YBy{dv)qRajufM&Q4(NS8J2SdI2g{#H!hP6^EYOUlaPUj! zHY_t`l3q5j@pEGPs{YruUUkH!S_9)!V=#A#&g{K{(t?_+8F3KSt!xQ32N~@vCO+_S zw-X1Y7iCIM8QaDkoevW+C_Tg#feKJ$uz1lU#mDLIj%ByYDr!4t69w3}L z3K~462m>in%&YGbrlbYc2}2dFwKe@-jK_T`t9^2*mI@j?si_7{n6eY(yLlY186{}f z-!|cVRzb_({_vKbnR4MAwvpl0YfcPUf>FV2?M?;vwn6B)~;%DdAq<4J;IHJdloF`5w z>}PObhVlFWz4&!p(e-IP{N--3!qpx*8NUu&_mZswc`vo`{E0fVZ1>^X*I>3r|KX3u z6J^%zeHn))l$|2q5umVy1UX24C;)Y|8+>BSnOQlC7@?M1jcvgo+gC>-TKzgN1Svb* z)ap2uGL-wL*^8X9KtOyQ)rLCZdx&YKPD7Tcq^fcw-1_V(oSNz>URG{n1Q(V&!EmDd zU`yYQno)@BvlRB!=Lje5CF_&YGMmbvIYW*iL4|QTY{*odZ@c@0H<}Kb@KyM*@lw)z zGoxzO%$*Ni8Rrs~)PQ;!UZyGv3Rrjb#m!i zLp*zJkLtYObLv!R1(>O(gu9H4oCs*}wm*J7!>{^A>C9hy@W*Y2ksnU*UZRPgx1NP_ zA=nj=>F>k&oOlIQ*#jbNl%V9>GFl3!(NwM@^yX(I#N%IjM+5T}K;>hF_8R7$*Ukqk zo5PJ7j5u(TE}I))=4$0*ceT$NlqnA1Ki_58n;J0iDlw^I!|46g8k;FQsE-t@bHv}) zvEkIq`4`$>UBw!vEVScp>u&zWM$B)K6aeHj#fTurhnDNgf(K;~mTF#`)4^?ITwMI* z@mo%FUxDfi3OYBwG+Jk0-4$PvhSk5C#@|jG{W5f2u=wGoZ zxxYRi3DbOB-fDIW_fWfd{{4 zNWhFzHs{r35vP!|C&?or7S$+fyGl1nU+Ax^GrNxyA3GJIb8ml5_@yo%mXpvLz_PrZ#>zBu@OiAxeakr<%`3=*^M0TqOe;O3oGUqHaBH-jx|SkD#y}`_H5U`hyG0 zZCuQ595y1Xuy80|YYRiFa@z00s$qRDaqSHdGX;3DH*UbSZ+|bZtH9O9#pC9##$L;g zy%Q!ZtoSLjlKr@VHPkOVF8=*QGfdw{nO=9x_B-pNNBVB9@?IfeZgcYuMaI$aPj3Mn z>wf?+hHMN7*o0a&Y3%NG+}zblm3}7gq?; z&*XzK;z*CU*qpW|_Ey@mA0N8Bpv`rDD@W9eXMa0!u!irEdgpI}0OzlhqMyH<*;5lZ zbhVqYjg4yhmv?um6uYNZxkhc>v1cZSHz9VF9<2k}O3s-i(w02E$kJJpYp0tHxx5q~ zAHT;31{P+~ZPhm71pc6%&wJhF0TO=uq|k{p;LuyB<;lvrCLEm}US3+-cSg>^!_{>@ zCAKvi>HosB>%-vSVEx+)I!j12`%N^Iz7QA#KRy&TP9)V0K~sNY&;aF$_X=!0nZdhu zJ|kZVyC~>^fRG5*H8Ulab8q;$NK1=GEfC{tcO9BV+1a`0f;3Qfeh^`&d-2%WgQ+v@ zCz?ozrDg@5|G}~zC`q&3Rw2|Jxc8KWH!$Zu8tx89Yaw#mr_qz+ZpQ^=Y8=$46D6(* z-{J@3!@7QLRaHqGQ}&&F+giVYL{w;E2KOk{^X>Qls4ywDw^VqYU%ejGq|nKiA^Pnp zl=9MNa=V_nkQK4!CVpN>>0p4+AI?~uywOuuWd&j44(I~BhF z*%kD!Eam__jr_B11pwT7{eQsT{_jz`|7R)7Iv1a_W*%kW@vcW(9MI#Fz9gTtJ%+ce zA49h%Z|EgSSg^rkNIT41g-4LvC zh|v8F*#m9|SN{W8dw&E{nqckGGEFIWL>x`9X>GH-CRiz+HSIRfXY)VM;mms~TfGM) zAv0|4Q)4vrBKr}A{RhL!htX1yLEZV#GTxH zG^3>8Uxep`M=+#}=rmEb7_%;JANqWCkxq7b16-T+{C?!QoLabvnHTFS$gs^FdrG5O zT81wD18T^ekfYzWfX1ildYf~ zs{|1A(7ip&BZI2i2ofE>DP))se;4e_`W{E=R~1j_)FICu0ubKIn%C|2TWw`L7__0t zOROpSblj^|K^fkfsJo=|53pw)kU?em9l|2MqBN~{8!F>wlpHYuJD&H5^`tTRctbfDxhsCGESb%5oF-Vu=7RyD{1>DXaOql z(;{j=*`tZUv8W@mTtJRj%D%Ot{FXZOE_n+{Dfm|@^Gk*eudUd7J}p`7P3|OiWDr&~ z7gKc^29~0A-_y&HpYh_E0gVcmK&;e2OlDmVV;`>OtJKepSZ_*Ct;^dYtZ3`74BJ8NmvU1!=`V7sNMAP>O?;3Ft0Cb=pXCd&|g9y0n(Jx!G`lJ~>Zilxl`F z7%FLqdpTI3_>>1s%5FooZ6aZXIM*178$ z&BLMXcIZ=AR9{AJuL6PT>rr*^SgqTo^VV9#+n&S2Oe<8^G88V-VeZ=Tss_ty_?GIt?jB^;!aHA zac*}RJ!Li>Lgf(FaD?19+}GRAX94CHT<4YiYRbF4T1vlWf4PN+Zl-i;#{iZlaf5ly-+^TPj^B&B^Pd!-# zHd1I|OSy0^tFpwl*{yH!p@7PLYVvnO>I~mdVbB-RfhAC`prn^zab0R}-J9^vqJ0z1 zz3>v4mAbM}0V3sy=|tC9=>zEYtwhmQ^Z9C1kuHI1j|>goPo58bp(@zjrdU5~g@jr& zP(HXMcr}mW0p|MTDOmn=`hMyJctjJrGux4oRI2G1CbS4DBAH&7jVv-yb4)J8w%U#^ zlVPM-ucR}0CDk58v&Eqg-h?~^@h0I3@jaVg8uq|M@o^7>zCalxkY)T}q8G@{_rMbz ze#&_LEY9D(v%>??+(bs6U2C zB}fU6!<}XooIJ-U#Z$q92~7*k{sdGFxo2Z~X5e+LA*jODYK7uzO8qK4qE4ul23@0T zj%~l@7^$k0GL2+su4hK9`1{LpEBWs~V7@ ziup)5VWNV-GTo@MF8BTz0@iEVy@C>)IU30vhgVTbD3FYh_p9fJ6~2z%SY_P9a0=_I zItj@%eIADl@OY-xozCbA2j!WjDK$9E2FBEOCOq}QZO?@?*!GE}e;?u`1^T=mJ%Dvl zx+?C{9}$~=4VYwov9k6Jo1)z;880)Z@6Y5%lzM?;hOT*1DP9;k{9?dTJ^Iu}^y5%o z!eE{)+F?a-e3@oSj6@_+)xjGHtyE7ievjFmz&Qd|qYUF` z#s=))F6sEOssL*qZkDo^@Ug83RTMlES>r&@z&{5XR#5L2xvkvEp#U?-4{@(JD))>T z-6kjxAsmBb7&;OmE|axkExqaw6!lS>mVyX%a7{vD&z(=c9bAiHbVMdAVte8Zbs*%l z?K?w5PA*>4pHB@-)iH{DwLPAFqSmQg>RC!zh1fbPjUbTyF$t=Un1O4(T#_zSgwPYz za>~+{a`J2QnBw=Ceu<$@A#hkfC<~~yd{){jLkE=Xy*LYsz#DOj2~)G2vXtl!eUH{% zB~M%P^~u&H1bYL8J}n_r8Wgx7Df+J$Q3D1&d93jbN8(KxE%^#AZ10hmN>=EA4zdZZ z(9Pq3u1L#~gg^>}`O=5TEkW@`y?1w%kdIbB%cvc+#9Yu-hCaY|D+Ljto1sP(**!A{ zu-e|}zARpPhLajou%O1%mQW6_YTT9ZnN=aO^9vJ`mn$76ohRr*oUSc-((m&kHBo{RHGSX5i zKnhL`WL;bdbG@fnfYr$;sg-Wk$@jJjaH4CT7?L!K-Zs)!)8bie5ot&~eLmsm%|<+3 zWpnv1XYKfmXJQ>?AjWgQ)ok5*ixQ*om%2mxBar!u=DZsK?-%}zUu#15z^k?9+ih6H z>lDI^5B0sHua7gA3xpHFvwcNL#E0qr(~hlMoHodf)Rc2y$m8+&(sy88vA#P5uZ7o< zGkQG`*v+g03d1L_=kYi1S=7}EBM8`Nkgvdkv1!(QL3>+JXy$0aC6IT1GANOurjDND zoXMU_4EH(ZV5RP-xtS)d*Q2B1mb%&MG^C)$pDOo`$|vVH*5tslpT#^pxKfcxNz&*b z6`8wRsyOxNHf+EC`FZxHl!>4s_lcxkkoAnLRl&%OiqunxDNN#0J>11MHN|2Bv_M2Z zTPEZLV2X5xQlHqA+S?SEg5+et*-{*cmbD5HrKKP)J1~|SAsh=iVXi8cxb&nPV?o*& z)n7O?5FF!;GBndI*r)hFZXCfr?%S zeo|Q|&vs-0!=MM5$_v!c>2&>3NFnR=*ukDocMjBW0wNlLcHLG`bzd#I+n{fA4KCjL zLsj3*go^<5D$vUNeC*LEgfVy9%GW5ruu~^D%9NT0&W52srIuaroQ#;G^SV3@+w;K zJFi8z66@Wn^hDv#ONAHB!xh2kbVrA4OqVOymKj0G%Z~+-BfWO3c0*4@Bs6R{9J+lT z&d0nrf+!v{2A3IEK5C*7H(0+EB#+r$v$oWW2)q17H02;aT+N08lzg_GROWLNe{~P7jpE| zsQ>k%r81`?5_CYYN@_)Ih-^~T$scWi#TTteXQe{%!?g@>-e~lLZR`U3Gc|91c}~m5N%cDlzSJA>c5qVJ z*+G51Me#v^Dxp}bIe*%TxxdA#>L4$*I@k0wAOSf#dHPubo;X-D&3q@SU@8PQz~@+~ zu~7qV#4CntysJ~dwpMZ!Iz@kyI~Cc)48vQmsj1Mmui3D+nvXNe$23Qt<#N6__30a=@zz#r_$uUvrqDmIx^| zJ6HQ+pV{PEucLw>NNPG6jwXg9)TxXHbRoqH7W& z7~!ey{qt5Uf>gqx1s>XHCZKTo|DN{HAAZ!I>COAngqPmjseaXFfLp; zWO`T>(njQ}|0URVX=||`+(WSV_aY)AH0ikd@jC<0GbBZ>T%tEGeZ|M}rf)u;*OnIk z>{XJ7r%akenh|1Lk;N-___E}mRo5$F@QX7>AN+6s0|m%pUfUL{SnPxv6>93Iib`C2 znKW40_AF%hrBa+<>7xFbT4wGP>K7EbF%!X~2Mxe_tx#w|v&W3~tN8?II_Hx(yJMYU z@%o5Igc#YI3H*LjTu+jK91GEoR~Rd!k%aX1uv@V3m>yugERz*lH>DuyoS33xaSp?x zf^*-+Jo9-o7wuGJV^KDALU!~ScL|0cg5fsU4~rxeCnh9Tt{7`{U`@9+x|^|r=c#lD z;<)CnQ10#)qmQ3QaIy!He>pBxd2M`Q-uA{wvz}9fdlJN+$Yxi|e_-*eeF!)rq+*0g z$?5gm#@5yBQ8xz)NBK1`m}elTGR!I_|0&Q%g%6yrkeO>g!d&Z%r&?5Tv`@c{|CBgT zxvv_8$>b~`V}Fbfws^j(X39;DdVO}|@vid_m~e7yUq<{ogN8KLII zL?q}8^u?zWZ_0spvYUFDXEhpWH;DLqdr#uEgOa1}iz!1hxYU?NepC$wN+yw5oq*66bS#=B#ZT>{~e# zo2T-LRt+_va~IBi#%Nek5dloW;`gU8theZM>l+q5qD6@1CA0Hy4A%++YN#Vs2|Gf}yER@M-YU0>k9&c}&Ro zc4cM={w>hwOhtL}V5h#ZE;XCFg{f+VSmc+$@CKEl6~HizBO7;#B7z*E_)ARA_h+W zDYGR0lPgPL{Ab%ZoY>0^-f3BS@^b=YHPJ_Mn5}r z_A@!T>AB9o6o`#;1#R>OY|e#ow1wP#RPYP3*i$KUF?H2Bx;R-dk|X zXPT?ZXItru?55xD#s(IzNN{-Ub2~R6n`-K?Ti?jV)v4(hEwDOBn{LEeJ_YY}X~p7e z3KpfeT0Dv6uu1)^V99}&k`eYL`hi8!xnIoMD-7FXw2-8MjhY~e!Y&$1M$SZT(dJm< z$P7m{ZHuZF75iIP$=A}19Q}7nW*)}PTubbjH}qTl#IRAOR?dV; zf?JXMFUsu)6tqO=S;k+5nngH*Wy8%TWV$u2_YIMI11R!^xLRDDTmybJQ)>b7VLyE> z1_af&;i~^@fc?`a+Gq8_{n_F%c`0m&FwkrzavHOO`B_4Z;~E{jH8iiIvjNBWAH|e= z^^wU>Ec8STwh*we6N)8R#JvHX{3(qdRBG+i=KfpYMV+M~mF{&_y%(z_PNh7rUCOsl zm7WRtr{_wOb(>W_aE7a2$S2?7m4|5Y0-LR{6}|Evv<5Z_+-0bz`APqkQv+MzdG&TpMi`&5eh zrM~#_)?QhVh$6kCc7~)UZT1@Th_}eHF@$~-C8d_sbm;T;C#Q^fgeoTg-0ppv*EO0)HRJIhB3n@2Ku2+tb4 z`jSU+_|RY6mfK(D)s@NOVfMj{YD|jP)fMi#sOya$Foi^ls|01jBY-YlUiuI6jTqn`Twf&di+gC{**B>nPP0`K6Pr5W# zEVV*fx{CRo4fDv4=kF?=@w#^p6E3VK@@s^aqz-jY^vl5T@Qi=znc*$0^WAg?O^L5` z@+OI3nU1H>Hy`S$SvF7RrwCKU&p0?Gg3Dfw^`yn0t57kKHnM8K(rhiAVrnAdUh0UP zMfgs?Mx{HoOgMkYF|{eO{WY~@5uTEq_MQAVZ10zAKL3f*TXK=~JEW(jv0iB_^N9Pw zWku*Owm0R8BF4SjrwJ7=Jlo#~5M=$f1xHn2#5bzDT7@04%*IhQZp@k&&Z2MY!?g(W zrjT7L6>*?p=%ky$MY$_7TFoirL6l?%Y*tc@U-`+Rkhm;4M|4rjM)Dvz{HF|}h|s8s zQ@@b1HrIyIO#bF_3+CWDe(9!nl-==-R9hU8Nu$@&!B;1f)Z~lN9>P5ym#H0x9)%Jc zTu0$xCeZSAW>txd?|PG8{^n0Fe9o-xp<#LH>a80vDbN%dI2Dcah!7_3@(H4hGk)K8zcb`f{GFn8V zK2SaRIQI5)T})+4a{Qfu;Y>EMNx%3<`-W6Bx+~Ad??|&;6fri_7Z}0+rg$s}CHGY` zz^?vU+&%0A!JmJV)xQj8WF!&Af1rvkJgAqeali^B{H1W*OZY{DP4mObgzZ&Pm;$_Z zW+6xWvsG)t!MBN^Mtj3re^GIA%SW)iAHCT#6ef6~1SZue5+i(98XCM-V(C0_W#*t2 z@yhj5Fj%4AsrY;OC@d%(Z{dQJU~Qhn??)5AX+j*}F-q0N6hS*_q~9Jumas0AobRyF zoMr%^jN!bMr(P{kShX7p5Q7N5<%QkiU&``hQ-LbIWEoHFSadT{@yA!v9HXkXV{{hiw0fk>qaDTXTY!uma7dRQXh(Z;+w>| z;KW%C%b%obox^$l*^A1^fcgxI;B$d51rP=om^!`dyqkkOn8gm7BA-{^=Z$U*D|Vg} zzc)p_A9QE=FZA0v-uIybN6j7WuB=z?j8b4L=FXO5jMj*av{9Ux=!ttJ;|5!N_YosO zH$iIQabo8~{TsZOI5Re6G_=# zbGfe9%0bDZ6{`Sr-FS2YVWu_A*a!zx-_=x8&(SD$-A-^2(c&K*lhDU<5R$osW{}a_ zQ_(*M)@rOGllpa|HJ@~3qYQo`d7V@}MU7yVsBPzLX+v>=p|pUNQvS$Ip}B&`2a>Ha zutx{6ev6p}Tk|2z2)PoPHP;e`awmpWLz9D#ihnG?gd7qBKPVS%lz2eoo_k?iAOFH- zh@nm2a5YJ7x+&gmAYTXJi|%RL5HdvdMaD4A$-C7Fmo_ltn}XBJidQPAc7>ZaAA;60 zqZrZ6q3tH5@O8gWl;@?7U>2phS*fS6yk6^bp!uaypKf1XDUyKP7dlw{1f+XlJTI_i zWd12=xEOjFmn=U{{OFghbaa=qZuF>s&D3>pZ@{Ni=xBWMcsJaz0~-U;(rDWVZ z%ynLbXwcgC>CgO5H6X{ZEDPy*i#$r0&*w1t!N+aWeIPI26rG+g@KYE+r2A;gWtQER za#;xP$@2NTBf;h!+Gj>RXkcxksEiqS$&*I!;$78-yez*M2`v=9OIIObzY=1GxUcd5P7;B^eQ8O>H7@?E1ttnDz%6Q!Uf*8GV zi%>Cm)o*qlGZGG8$*rk>K6dj1e)ci?==0Y{GCxbb4zc6%h~|-JriKNzV#mbQ-&%Zg{i-S;GCgpP< z#h3%dbmxf93@=Dtar1j!GgMJZx8PY%frU+F1Cfg4_=_+nHgVx5O(*-)YNwWgmI^Fe znum=`cBHAyP~jb7(~6(s`I=U}%#MhsHP4oi-C#ih!91E^Is00SCM>tIUte#@`KDH+ zeD%9NHNwtlANLZ1qr>*aU;-{Y;p&obOyPi&%t=v>rO}y1+MBeWIRD9H9ecxh-sY{l z{(MKVh#94yCNrfGY+5O+y-EtmVGplE2TFbS^=qBFi|V{VMrIewPidw{eAa|bQr%z| zUTruD8~se(6SQ5T>>K4#@*R++ad26#PZGSHu2oY*lugc+VsEQa^9o%@HSw~vdAa-Z z>+1ikNL#T+AT3hML%QVBgbQ)kRv2wmV1v)26t+*)=K%~u+A0$!w#4`$&eJ?L8baGz zLM5%MVH{lJXFI zR9EUtpyTDMB>D;=%XWj!MGKVt5~Is|Bwtv_(`{y<$`Ttd)l-zM; zW>B;EV5hA@qr*c-v|)-ymtE+~=CxCf$eKs&Mqc2o^q)8RuP5~3x&z1ia4u;@GZAES z!{F(-lr*nQxyV_Nn%FJ1s+@`2}8 zb8OSeZ+Ae|Bj0kBgdS<~%9o5PD5_Ub95g_=jMq^Cvx*T7MxZs!WDP^FrKbpA>Q1*; zPkOR_DkJJ&Hq##U-@{9`<&3!pQ&U#a;3B8n%+{@Fjo@)WSxVN5>FUYg`xKrWi{;O& z?Ds4jgY&lQL?|9Qg3aNTIzat*oZ=%HBrZ^{(yMH#R&eQ=vf`^Pt%L3hBy)xI6n9}E z1YCcWn`N0HSMHRTb{)k)o?}c5xtvy&^WOHzxs@gwC!#-)j{IZ`zfag>jZi!r(`zx+ zB*$YG?cafY@{K-bX-b}|aJvBmr_1i!w(1$~tKmttt$KnD5QXr8(%{yW`bUO6&oq;P z&~oyl9wzMLez{wg9%xPObV1|cMte_#=_Br;yX>(PV>sY*W4ULSw~y5=I12TwJbUow zKu|@~2+*{gJYYW44}037)4zDb9H^SkY_{59ipv;^WK8&X*3BV@LTmz5$N8M}Z!LKN zAQ5J0U+{HcbYAtyywkjwMtyqlN&1^IPsEbD6gOdP+cGE1HWZOxH=}e4RXkGDzrbEH z5^Ry-SG(J8uyGKME)@Etq;-ru1PnLOT^c^rftiMHA-O(VPxGb1(Sknnj9`UEp8<8v z0@s6qT}t!mc;?@py64Gp!)Xd|_Y4x%Ox{X4;_~I1q3g^R5ORd|qwj?IwDpH|!WpylF7yC{Bu>Yz!T* z_T#0@JF5;919CY20zr)6I}G+hH}{qUWWxi$wJ~b@q@m!&vYFu0wo1fASN^FPJa^`^ zIse>whXK%7Y8J}^uL$AkzXyF=G<3O}rS^1Q@VJ2h@+srE@u5pACkY z;bQZUCZ%E7a2)`6{aWQT-~{Ji+8~(8cX$6Ti$aKPv%7&z=6=DJ$(_Q|v{TnpUovgN zwRCT0f=@s8N*|Y#xQ@xESV-F^JV(Q}YfH?EoGL1_)kK3o3pfD$_dc6}0g9d86gK5V zcLemUFpldorrdhcpS#V{H<33fFHl#(!(v`1Pr*nR;t-Wq)%9I&Z|r^SP}Vx8VYS%=pFoH{7QBX2Hr|v9X*89o95n0&;9y!cp9D`^H(!< zCW7SePoyeh>H2ct47FN%u7@6;4to`bY_0^`O?tk1#o?p76UsdPUv}56`g=72r%$SH zG?VAD$N#eCKkI!}Zf(MSBaEyPGTtMby~7;-<$V6hDDrhi&HiWUNThiHF;ofr`s;;U z7W;pBe3o`UBxHX|r?nnlY#_~q+dltim-krz{XWaGYx_-+u;2Wr{?mc7fU~2&F0Ary z9^QiBTrBp>pnmn|9hn*sSME<^p(@?4lgPha{rM-yWZH;=cv-?!i9W|b6W@Q64j@2E!V z$FvU0MlN0DG)&E>eOe)Hh)VbjVLep-rCfnm8i8}!$(n{0@?U}u`6+G^ytSGQ4Qq|# z=M@d|Du6_@jCqh&0HLrP>ijEb|HHqeQ-#B$RfHf$+rOI`2m6IuE_SuvSxJgUjL8vA zDj z(ihD(Woot#Sy*_?NC!2&h}1nE_!hESx}P()M&R0JgS-g~d1Y(WgYBtU>rq=pb$ z5|WVQjT`)*@s9VLamF*o`{DWKh-78Wx#pZ}&ilTu-);S(@nXhc{?awKT;f+taeBr| zRt?^SZCk|qnsrITn>KasJIXGN}45Ch4f$( zp04vgO#8}!0>_%NxF}eY!q35Il>DdsN9B33;h%(Pp8UUR7TOSj=};19Zip=eT?@{} zJo}V*)~p{q$Sl^hiTA|Kiwp zaFr^%xo815+|Gj(+-1Z*7NY;@R@p-yrbW6Tu&Lp#S<3;vIe-NH(@#4@nN~Zose>yr z>?*qX7iaRzo?yW`8nW7a@Uqd{Tm|$Ozp4f6Nm5febQ9uBYR*E{nlHi9wV)#TY`b^; zGO)0vNc~_jp}oonF_im$jX-!bVrw7vu%GIKerAWsG0pQn5 zd)JFzsOxs*YVKVP)9FP8H5RQU=1u!k$Tgv2hVhP@5a&ncpqbpYx3Kc!;n3S$WBM7| zwIZ#;Ic@sZx-yL1`@1bWs^=GlXP%E#z9iQx?#BQJ2?}OZ23%{sW+=9 zQR`)*FDk%MS*3oa%Ke$R22*FJ>YmuP?Z!~M2sd0H<{bY>Q{Y@o&iwp(s79%kBb3M| zcMh)4fA7AAIw;(UDec0q=6u4Y&}^`-qI4^P+n7zp9$quGBF96hj7koM+FDG8-aQ;T zc3mj~Oun+B4S93v%tg9e4`iCSlv%?AFEM3HuSOCwS4M@&18j~-?qEM1Pz<99$wb=} zxTGN`^KiVNl~qwxpgySn^hER4Ti53)I!MAWhn4AhCf|aaVXm!cyx-4K^2Y8g7a=L1 z*Mrx2u@BKwRwE(AB%g!jQf_IJ|GSd3@p!S8GRBh$$JDaPxJAl6rp{cHj5jQoX`r_9 zXiwSYUYgXhk>NGJkF2gdA7Y^WV7P6F#C^PFKS)aHwamY5P**q((7&dh1DLhYyEsU9 z_x?3AeSvRS#)63ozYxnc1w98nDrd#I1V|Wejq6t_S6QK6w_|~YW zJqtzhZ3kS6Q$}*!+-Nrf*+OcN!BZUsaPW~m%(Ef63&#&F-`{|@{Z7>@F>$!eT5e;1 z3+kl`P5sw%)vZzO>Q1L_$@ox4Y7rA;$>z=hh4Pz_5>nlDIf`e|*MZkx)^NPeZ7R4D zGchIsdnwm1P7htPYf?`hJERmq9E-MPoB)P;I-d%lV0@TaZJs_u(I9x4(;cK%&b`ty z*tO)v-0fsSa9-9P@jOoD?>Ka)-9(%QDEIk>{7jzo2mA7#yxX6QzHs_TW$You(BAdQ zi8`|;$7uh5k^M@|gUHb?2kZ}Lc*2ux8diJM^PwO zSKj*2%{xLNSYxCOql!nhn)>1ITT4K2fH|XJWfvs=7lsb`*m%QzLFq+D=%e?f&25k$ zJ)?U`y`YVO#s7~eJDR?$*m~>Z(<5^*U_5?~Rsz0%nYK<)3-pRS6|;<~k{g&AK0?NX zG&<2!0WUcxKY)#Nu@El{x*SYrqLkz56B4p+#*f^|(T$AM`G={kTniK zjD7LbY*R2cIxG+|bL$KX<(1nNS2WFg?5S}kbR7Q7@0I8DVFP{}7Z}<<55I@x1?X`7 z3ZR_8xDV-cK+(ZBU09id_oGt{izzZ?hubQEy!mgD+Tf5w|7cOV8WRN`?eGUxXDqM4MJ&&dp)j4BbKYNUWZRqFCUQyAFEsl@9@Ixe44H-O7?AV0qA z-S>egqg|YVLV+uK)@y?hpN{_In={=7_OmRA407WIt`y=?Wv%4Htp=d|mDE|lSNl3_ zEnO_%pJ%H|+>kgLX>Ju4*Z@UB?c#&jIy>?>UPXp*>&SV+?_zfYaE&+Tu134v*zvL3 zX};cx7~5Y*=J$*ey3+l_G4EJ4%E(tIjOeEV+nei$Hbj8#4#?(h18 zzJCcuuRD}GwtXHx5nwZTlQH#m<3`1s-Qnjvn67 z{{gJz|2G@N|4v2u;EfTeT(O+CpEMshYKXL!kyf*~)wFBW3Sr9NNh9+dJ~jL}?eKp? zg!z(xOzlc;Ru@8E19VRu_2y9Er1@;#hd;d=a_&E8AqSh|M_v9udsa91^>moQi&djo1bfff{~$8S?)N2-5xE3W)m=sc5JvYhm{=9V#r<(n2dCWtosQsC?h^x9^1 zq>%rRU=z*0Zh4>chMJ;-QoU;URmQft~(u>r4W;+R;C1Ow9Haf*;nm;##UPzsBh@M5Y<< zkZK2O!U2ZATh@=fEiDCx;i0UcDHa0dt?!YTP!qkXed1r7yA9`!2S#3akGIZ65I z#SV)7+XwVv_C75t%rBvu65un{@?FbB!d{mDs-yF(z8x}Q(lxDOT2V?NU^`+Zd(Mgr z&}Vl8Nc5d;5l#r4RqV!_xaOroLJs>`z4IdzKq=C)qAUpcAr#uOvnQhO zvC&f)RO@%efaV)&w;e>F3-ajoZxxrBr$GHJZL7`m4wqWpOVwO!H)!k4Wy3SWx0Rf8 z0z!{&`P#S7!tF`#_0ZGgk4pag{T+cIuLX+Yw3E4 z{r2DVHKQs~pmicpbP6;T3GVJf<*;Q&Py%Q-6u5!^SuB( zeMeu*Q|EegnD0}Odd650fGsb%tmKp=`<*XJqxr>Y?CNvi##c_A8t&ahP5*Od z+1|%POO~!1nqG!m(E%na^iw3v?&r`@#&4>~HWZdnUK6LIGLshtcOOlZ;|dObT|GnR zq|3kc$QmLa_poer!5n+OlGS}VQYK){8Z1* z6Zj~a?@-eXph(-gG~ZO)j38}EA3q0AbS92mh1VZApiOH2(d^m%Ks7OQpKV!+>JO31 z{T$k?<&AV8bY5$pFkb5BVCrawHZMs4|9OIVtABIzF~ag?a3?2W-?{Hl@1BZrADaENBT|m?BVid=9zuYuT45 zqWuzdw82IY<_1eaG`EA@FHoB1+KRbrdg~qwR*a$?I8`j%pT8zuo^0Gwvt?2><}_Tn zdtYgR4KcAR)ReWZ4C?BF<2FWRUw2-2miUGTSVxkUMmdu1M7O@c2EohJEzIWYO9MnU z`pf+zY01JZr-j6c{DYj5ASMUcH>HfLs_3+ij!+>e}mk z4Q!bHVx!Q!Voqs42I$IQ#;~dM2{qpCRu8za{vrYjc$Xc z48>8jI@u{hCUOdO6ZT9|1$+l#W#+IGuuX=WnFc$}%q!L$9b}howBUpuYe1d3R!2n+ zlCM=Ho&%WUaeU5u1uw;g`s3aQV`IWRn#t4ow zR0Ei6#|-U-#h|hPtt@1*4bdXOE6+N8y!T$EEN5O2*IZp? z#~qc{C(}Vzm1sF829Jom_QsS_`2`0uq9?89J>I*S+$(@zpy~zKxb?kGs#}e#bl$^m zQtskQv6MKq&;i6(m!0+o=3x^eX`Xn@V~JW< z+2;*^412aEnN%iUU@Gi-IMunnnRz1Brox)3xqEu;1GI6JQ)%IfMl%zQB)N@cy-}3p zS~u~gL5=nFIzd`1Xmb#Bk#$eBJ%24xv!jjZ!<`U^zCQMd->OBLnmm%dMyBqrY?Jm< zgN<&w3DdXHL)pQ+w9EPj<+|kZ)2w~>I$9H<2lrrmrzY~m2a$_N%L;Q@AP95;y}I$? z*@W$4<45gZNN3tTxc4cJNh9dCk2j8X5T*iMjPUhy$A%S|oM+-%)N$#AJnVN&g>(et z%xGL3E@$9Q&D#Ao`p4ctG)K{#_^!kfQ633eIdrGgm*ht5H4S|#gYR79GS*KI!8WcE z7N#QOnXib}i_fE+wCf8*Jzo!TP|9>nG55zIV>@#9kj?A+jJ4cCLHi7co9%*Eg9=aq z1bsrgfVtl2gH)Ih>-4B&!L=wCiWc9;giO;gQ);zQpcvI`!Y5;C5B zMcyEYRW14LhyK{{7UMPaEuLSb{JhS|brCxJ-9MimxCx!gQo zOcVJazPvE?=0a51+wZE(QgCydEp2UJD}1Uc!!DH`5z}ar3Kz?F65HS^c${sWEV+A7 z|5UIc+x(`^+CDun`h>O0kLHh-Y%Opek}yw9xaFAi9rH1nlLdU;h^@+UyZs8?jL&?l z)k@=VVy)%nH4cOa^&EWHT8MR8doQ=^MQwIsA=MOxt_E=m7v`l?^OlHvt;0UGaD$X0 zM=aw_6#NY0M^y9r^%#J;b2Z)TEM7C)-@}k81;!wp1D*eQjXK~lYq-gZudPQ;Of=v; zeay79BBNttO{`GL=(UZSL~oaRB`QWRfB>&YZWqUhALoqf58X}j1}419aPiXB*EaCz zX9PQj7XRAAJpk634NTG_&(wmovSY!?n<_(U=@7~Er1S0BXt%SNWcdT``E8z1gr5bj$_1*R`!Y?!bHMN!FP+_FXjyKwq6#Q9Ye& z#}hk}Y?Ru%N?u(#!35ZKpBShbhGuhedgI>mIrmn@!-r>WvM*;3+y8?%`gk z{+ivyIZBYSsb+rkQV(XvmBtuAge*G0_?xF3#=?`dT4IUYp~v+MSm%g8>N6{_syH2= z@w*WhlOYpDR;@X7T3cK{^Y}g+(Ugep)<+LPsmPdTR1U*p{$V20LD89i6CGhR%z$SFWawu_5Zt%?NBKP^sAZ(h)k zODLtA>3f$3-mK9Xcr&g<{8N}6TStp56M2lox)R#B7WU*D1)0ZEQk{L-&)43suuGyS<;!8zuEHn=H14C}B9- z^`(T_v$pjA;}21=$R3sJ`gro#7c;l7UK^z6du9VYw0A&2k%V62~calX^gXDA-+pZnfDjsx-SZJ|?^tLPP|xTkWb>bMDbo>m zBpbj3AF+7}vpiQWvB{*X?Z2CJZHp%;YhpH4jU*R9BJw!@ofw_WTJKfE!;Jg!&97Ch ze{`14)=7C_*Uy?4=1 zpZwF&Vm>XG0b#NaSGb+9k$00P_L})VRUGX0Iduzyx_$T}0I($E^+HCU+)(V^Nwt8> zs5;Qxke~!dV0BuW3(T&EjY3`8$yKE(Dk*7O6%DE}Q5STrg& zB9#|sN{$1rDphpimlGynbdW8w4fs!*AKo$f$8t$=scv=oO_J-Zrk2*?TI;#F_7*?y z`TO8k=&Zr^7UIz*GFqOfPPWxOrH8;>`nTxR`&Vitgc7DuM6ljIZPE!@r{W4q@;3AP z=L}r#rnP;FdtR#7fS)(1y!iLA|8>z@J)>|eZi)LuJw2KB># z{@+t?z&Ns>fzp~P3x)PD`!|;qSI^M#z}p0RWD6e~qm_OFsU-b^4g)xP-s%`T89;-l zO?s)ZvM%fX)wKX7CY;GRZ6(>XT1+!D2r+vEt_JA-ej)))N*mvn*h=b~+s2E%GnUON z9om0KNuzaM{kfo@)GW(f7EuLXm34rXiF^t%rcwA63!hn+NVYT%fVB&x5-+W1AZoQ~E7zn&YacHvE;UbQjbzQQg!^BCi2y==+U2ZIXZfkX$A?`;?^8}V-J9p} z;XoP`W*Dq7Q>d`A3Xg$+xKpP%;0Ed@b%C}A*!4w(arQ#8x4}haI)7r4MFQH%JI_?~ zZ@eQfmma4<&1K*S9LB9q{ddQf1zc5o{>}LRvM(18%D+>)>2pdS@KjynA18TgL)fcpEqZZaI`{&UqtD^|G9_V^-{n`@yStC2e%d|s zH_0Z~#S}mHO5mfUDVd+l>tCj*6;9fs*KP|S+?m>4D4X5;5P9U%=Okr8QWh|y&abIF zLJa-1q>_EC zjnzklhixCH+GoB6_u9^XPFeDjJ0Ajfd+JuIuYZ+kLZZ#H701C1WnIXnGhWwovdXE9^Zu zF(<5#9@{vtcCC2G+s@$IZ%)Ny*OooF{y64e?6JN}8XL;*p_4eXHaQo~>Z*;sF1w=3 zi}N;yjqm){a)^xId{U+_V|x%?BxgqbWnU& zqcY_)CA`#6)N86&ttDn06xkw2N0yQKUc{Y2QNhdpqXB4fJ`v1r4d$T|d(B65Hl-9Z zgqP3Nb0j!Ee>a9&oHEv<21qq)2?b}+F#sG{kBT7~4pg;RyvDvEJhu8(aFmd}(7V~8 zfcf!!olPAX)MS-yb&$lheLs>iwC1Gv^`sufvM*%kh6c$X6sgWnKcNOw5}*HEh9gkT zAplOTM@%+dKQtD;tdOWsJ+^W^bLvgVB*SE7YPY^ZAuJ1ipkyK|c_h6d`h zXCsTY=KmpY4*UO1<(MaCgT}WPdjhBG41dPyPATv&f5xY-q?TPjn}(RL{OWB<-Yy22 zc}+vYcf=cMXgzvlC@nnwu`>U2MV9L)>Sfx%sf4_T#2nzAZ#uye?^i1EdZwzxMl_+_ z6l>P&N9jP7>zhJjj4)lVAbc|tC|Z+*L#kpz{OoUI^1dbatkT_Jfxob#;{z`R1_|8B z&x;E4jxEm1h&85}4lt-C*6>r3TV&r5`7Jr`$$TFvD_mG&5Ez{&9at7E4#j#w6G^qI zeu7TTdqLmQDq1qvT%*e3O!I`WpdjUzWXO(5$*Xq1&s} zqDfTlMaQMPjyu)m#+Q0w#Et4^&&DGR&an=LS2&CRWbvxzoK5sfK?U_-;_%RPv!4M1 z9k7y4meYRwndMSB8DfdF+-UMojC(}(5pRVkXZpjDS^plf|A^^G@qqI+2WnlZVl z36xg|X1i({abD&4s$DM2u|(&v%scb>A39FY-0;#zD2u(y!(FIRZmKM`v}oup1Z1rl z2^sCHOipJ{E6TL;Ko;)Y+uMdHH(e^8M7c?q)^!NI#eL$%BQuvo`={!7p6iMZlw(dL z10B+IxRaM1O`0l;tuY!uOq0D=-vAurERC6Lfnw3l%VB0i>vTC$x!xBnA zCZ`qXo?lL6b$3U79Hz1nzT*(_u6bFhk;E862^QWJ?K|A>u}MrtE^N$Ub0aTN6`vLdIKdd#moXYxFb=wvXVG1T#7hwlM3GF1rR!r+oFZ zxA@`uvG5DB&v(?{;*(+=Q7eyJC!k4rWO~p{95cE#@fUeoPt^&Pn|k?SaLWE~=BJ9{ z)6TpmMa?#Ylg19bsk^-x2iaT`zYGxW<-H!q36!*e;hcd@XxP?tp4?H$Wx!)1L1b+t&sf%f;;@E{FA;zhNz0lOV^Rh?X^vp{;j z9z;ccg={r?g+QNDma|GyzT5h1#vd68!^#k&4jT@tD2OEC2Y$GS2;7!9b1>!pJgbB^ zPt@YrK9Cx2jwr`}7K6q7eU5J4}t|9qIAHmgg! z-`6O1dj|}2Ihf9TuMzeiNw7OMj_-6G~vt*ADZ|9v)ZBatzS&MTXRt=dOsv}i6 zi&|B?1;{rJy7xvpaA&NuZJcCq(LiwolJB7A(5m=0FkLKm&qCSMX3sj~Cx9ZN>Y2D=fQorw#SMBzDAqwnl+~1BIg>G( z_$9|fvCK<wIXybj{9*0q7Dp4`J|gifqQV~)3aNEOh+)lc z&c@WA6U_Q~YJtm}OFUos=HoK`+l3I)WLy2h0_xsIpnl5p8LEx{WHDt#g<$JYZ5 zPo2!QT3Me#x~6~CiRG%7^c(QI_z+S0Dmwp{H_@+T$=rB8?UQhyhuYKUN}4E9@ufQ0 zZuYcyV-3ahdMdV;xVShNi;*j*V^O9*x(Cej8Wx(Q4}@mE&~Dx`r5O#Y=&iK(eutvXRkSi1GQon9#ELKJ(U?ODITCKf)B8& zGz1z;fgj&`aKW+|MyERW^RR?uWA=#3r$6;crc3j=+tl!S=I_aCI`0cRD&FPBZG)sO5fpmjXcu{yuX6M1S{o9f3#25V5jczZ1L;6v5Y z35vy-pMPiW-#6Q~EDf3`q9t{_ zQue*C-^4xmRQD+++ROWWkXX}lx=G0e5jx2xua|MO7w9IAkj7jtwOaBUR>(p3NM_-# zgip*@=AfhUcK@A|H-pC0ILvpZ@d0I4Q2N`iIk-uLAq1iwaH@TFbD(JSU^UT%{4-W$ zW6^c9=JGi%$N~F3jrKvy2~e!-Aks_ie7&is*He`G<)sv%>5pDwxL*Pao6swUiwF-HY`X`P4{?zaM#jR#;Xt`#-_266vZ6Rh|qCgf$tz4*%?p4k2sbG zLDDqhcWEMH4mST+*GSTPUTsSUyvLOrx{=6&mco2lgY2TzF2Rq_1ou@DJ*b6%(lf4i zASnZ}r_>A=cxCCXeR-`f+82XN1)`L)YW8=er)G*4Zk>nEy$3#J?kOF4O*P9ar|DtR zxAw;ei#q0rhJ*B}R0B*yM{yXsqnw8QF0i}B2`e*q1y$7emWi;)7uE>1ye~Xf;=?19 z5|{oex~c~Ft7!pO%k@OQcB`s$P~;(7nwsf`$aUh0U1vY{=FUJ8>{>>ChNU<$r#%uM zxuW0JaH_XG8?W`cSy}frsudS~vuG*OZ?iTbo~P@(=~e2@#OX38GIUyTeO~gi!~=7l zv5(q_X@6$^ZQf^1%U8>B!L8bG#mBPm_fV9Uo!f5&hgwf&l8XmoUxz*@_gY1mGU-q( z=g{CBU!5&q%+-Noh31++c)_-Cpwum0RH!Bpnoe}r zeSAUYiIsSVnnHe`%m6mrhh@dP_H~Q?DGmB2kj``{bZvViz1lNg{}D+qg;;|~msbeM zKZH62GmP_C*J@}Kl>!y7u<-^_;$82|`XrOy?JoPx*7ra0VJ}%HE`(Nm0_TT)=HV&= zCG-3kNkBYs(~tNfnG`?!g%ompfwF!j{AsOooc^4?)jb}64uUwii69R zY})H{zozTNtGO(&j43jn#1(n72V^#Es2asV7gWV%7_@JhpGp2Ffh0vX;K=VjM-|uY+i`pa>kdmJ9oCp()g`4a662SO3t)GFQN?O=w*} z?>5FXf!|zH=7o!sb@Ox)bMh6#CRw@8iy5;bM!}mbxT4G66e6V)A0$TTj_i zhm?t$zQw1uaWGot1~|Gy6VRF$8&Pp-=ov()i4^}^Oaj=j(|Sj8_bWBdFhwxk zm74Y3Zy6zCAw>t9y~bggM)$rHLLVh*k=0x*oBwW|)_triZF0`tGGYAI=aWs}XWZ`f zz%A5Tf<}l&WgG*qA6e}2rw4=HB{#COC+uV<03nutS<#?nq84&6T)8Qp*L=ghaN(BG z^3+7%ZKqr>8T8aiKxDNeU1pFyH`_M+|AH{w4^_ue@|U5v%au4eShE0`PRxSqfv>E& zbrFc~U6(6=$&XoEop;nwUE#Qcn;uJK(boU6?np(qtbN((L7nWbwa*Is;3Hfz zr+eOW9m{vES-VR#!bRo$>LR&Q$(xE^Ep@B{tRwTMj@w9O4i#nG#biG zyQ<@zGj{F6=wnDv6$}x$-=>tEJRg^kyZxi7Cg%oU!P-~Lu-VRn{so784ywxJ{$O_#bz;#!cZ0YoD#@$63E zSRnlvs@5&DnFT5_K##}fzLqp#XWcZM;D{c(b}bP#AD*(x{}FhZdr(8gH{HTMLxU8h zJ--MzxXbYsqHY8e(RrN9qXX$KR}yqS;Ww+THCn7$4=f^ynJ4p|u|$4Rb|sV1gKFh^ zn||4g4nu3uzPw0L{7>F=e?X4A=xVIoD)5*;|p?=|8R z&cgD1G)9C{!uu@iU^~N*|Frn>^H$rcN8~`Ul_#bb+RNo?neQvR)&{|DsDRR-Q!azq z;@|UFBO7=bG+mh zdt9wjdmc`o`azG9#rIGZ#8$pb`t2AR$(@S-nR-|IMpS|YICaT){7ve6PX_hkZ+PMM z@q%R(eL<>_GOYdHA4K40p-jj*dDBJ}lx%FfB?7&gTjd~m+{}I>e0ErDC+b%KXNZ88 zYDqx#IoG0PClLEHr?-g(HcJ9y0iW^>XAf?bhLe-8k4YE)qjU{lpX6R4Ns@C}-!ibd z$>z%Yx25i5JVUnam3n=dCpD5SZpA_K0wN+Ty<3>5xmW0>(5ae~0Ec`e?S7(R4J6^DyXbc(~-eP$Dcxcc-6dFE2 zM03YH;N1xxwo7KQ3;cDTwz@y6DkR42voL^<;t+HkT|2hiQ?{e(7jvZ^70bCqC|U?F zkeeCaX>rUs_TaUdyR;<_VbKHD9bRV-i>nRCftc^Q9UOP|&Y$c$D zah6h8G4F3!+rOA{HWFR+3bA@nFAe)XN z#1Z;@J%{f_%cs8V-TjB)(O}g=X2CISge#Bzec_s@&&iqRnK~V>Tm0;*V4+(iOQ87u zL9^(4e2=d068#s4o6;4Bw59A-kK$P_*Qv!qN@wfrV8mnKI^TKGh3*T;pqu-|c9 z^3@aX(bVi>4(S>%K>%9jq-DtB(v((A$A$)&)>X?wVsd6;Z4!0xpx}XzwAl`XeO@=V ziIZ3!MR@k3DV%;i<4&r17vHpTp!%MgV%Iyb`B=(tnZ9%C&LA#kJTE*VGq5 zN|h5ETakcqW*)qbAyk0-eq~%QqU;yGm|O3Ak#3dCdt5^h*tA7Q^ToXBc^{L$Ky!3Nj?qALFwl89Lx(A{L&+_3Gm87dDCnwzLsjL8?Rpe z&UQiUcjb{iRg(Qq)9a@T6S|~UtHM{RGG`k~yqXVupCTo|@_3A5{v#_;(bcm)Wpu24 z+`#86sp&uCYIfxXdu0nI{p-17pmBnVl#F1ia`b$y<>+egCW7>+-y5dapDFLgAAji} z@a_fiqH%B0l^e1#5?%ZkXOBFlCB!~8bs4> zp@A{P@Ftq>8quBr$0BA&P8FL&J#wL1uEfPNTOT5S z>T>O`%{3cQL0c(^)mnpON#;56yBhJDP9BbF4YWLZ@Ha8vQ&`KhGy-aakNoAPlEyQC zH_>3PiGQQOEPu^inq4E6=b?FUaV+ zP?w{h4}RWPjuqS*E#sLF-hKIxRx-|Z-Sjj*cd7iDq0ZgXQt8?hNk?G# zp5Gd&nGH zcLq57K3#+8t}%V|iJuSu@&-2QElhURo_!p*VpB_*T|KBBSQ%Yw+UN;c2^T_3Y+&oB z{T5(jw=&n98q?#iClg!Su@~m6ig7O?!pd*IkXvRuTw3~g@R6&Cf?wO&iNVxku+a@k z$^s9Q2B2b)ya)Gg!`8f z<7&|(r}3#~Q*R05D4EB;ttEzC=ybPWXfx3FiDmw3MT; zw13-^rEijQBke}sCO^tB7lx5QIiMPErGj>WtNQ0m z4EtSneVdOoKSh05N^VJ8gS2j%IxY9TrNeUz`8lfHUB;V~g(eD2WQ;k+10m74@uohz z*=&x8rRTTDDMR!j(1$1qXeA&K4si#Cd7!*RIe`_p^R$)Sj`CkJQZz_oiQP)i6RX|l z)n>I4+;jTcYi?#OgS*c~XT$*jC#n2nA-t!55mg#TuskUVj)hcONMmR6neovJ3L(q$ z{KuEi3H23yKGVn`9mz5Ai?Ze~6f#SzZ0fr>#{!5>)@NvUQ$GzDy(<&jqAQaKL^70q z@HqX=jLWT|T)qm_%2*9>5X3U-_HTDlPu}lFm>(&y<{lH@(;e`qnVY>^A_H@OU3*BS)$HddlFFU?(ntUi<0yvob zuTGTejY<3TXtkYnBWTkeWiS|Dy}$d@sBL6Ggjl{h;FbPl`=k8+x)eGHAS^mWsH<-+-D`&Y6-7FB zRHaroT|tGl0zxfPYv%~w3eWvxy#P4L*)xW)QXQ>7)dCUSl;cMhrUF#TNr2NHimv~~ z{3Z-^X9JF!=g^meX569|x{m@<3nkTQCIu&syisGWPwAyH+9OFsP8=>@FC=dDPZ{k3 zD`BC^-xZSaAHZtAi^V(~A33@l|06mHA$jyam;d&k;_Cma>*~L^VzDRR{f*P0FA3VD z&DQ@^Fc0bOE2J9+>F8$SD(dpNR|_aCSkay*1+GUDIP5<4pk)Jq?reae7XKc-cK9sa zWB1Qd$4bZix4xzS*{Hb3@~2On=x`qtb+SRF?Xs&qKhjR5E@kqn~n;Mr((t1=#qQcVXXfgX-uodhhO{J71)C%7bZLMm`gB4zqMe-&0M- zBPq_hG~M!7`QG_E^m>6$f0G0mpLe1e*YW-#7+I&}YJ|G&f>kIUwFJLtejeAq^hb)s zFe(J#A2dwWtffjQm5=_eY9WZS{A=M<%r6iH71Iq4z?#(78VFtx_>Xwxw*&E&XI9?Y z*cbsPQiJS~jp^=y4jzm)h;sQZVZBUC@rZ{17!hyL?@Hw^9gh(($*1I;fpnhX(ZZ~l zdAJLO?5>~3)u;V2BSwbPPyFl{q2eiy48C_^LA+eAmW~w%3~|WFz?+UbgtCDP~AA752(UMq9P##B9uIlt07&54GYYDOJ>`-$vj26aC> zvL$SJ2kvaT95=Z6U!tl?Kn95+aA7hP?yRE;E2)juIQ-U}o777N^$QnLE3ByNxp~Jo z40f^G4kqMm+oKusKrWj>UGMZ(uf4an=wAiH!9rljA2ph8|NmfFRAr)iZ}Qo+ANdb6 zH0hOsJb49-(|;=zRxuw{|E)v>0!4gy-)JsTwv->Md4^tE;q#lr6)MC~x|l&-&fw%G zsQ%K?1R7GNi-Im5-gHRP-T$)D{x55p>=M8_fbZ75!*5zEdV1F&4YU>fefB;OwI3c0 z-w;McrKyb{w!6+nw~6omERzpwP=~5lfa(8*CFYGI|J!Qvza{LK6WAvfh^?~R`eh6a zK`R%J+|z)JUM`RS6qAq9{*T^j*Ve-?S&a0juGRlRYkw=nk^%?(tGeK~ZoRN*9KI%& zBn4X$2l~Nms}n%js=(i#Mcf44v$!PnkNDB!HSMEAm_nhU?^WPxZG%&{{g6=b7=6Ih zs0^>HUXHD3o3(`1*P6&eB-C!bnvs3gSeYsdp9PYe&zY8$9vP(oU*&)d?VCY^$b;z& zFE4M?Jn@&bz#a=c4!oasiamN_VxmCYtm?;8#qA}0nhzyY+@xyawO+{0^g%P>#Olpq z4WJOpHG785xd!;hM)x4G_j-}+Z^OF_Zhf|KvWdCgY^D7U8ZA%}DR`hmE{_a$0mi5e z@4O7J1NMyK(_>w0!ELmMXrXVe>0}|JDfgbzy7%Vr9R(SVI(dh0QNe;}O9yg5!h`|c zsyn6bdQ>NEZmS0D*@?TH2Ad-HEADSAp`C&CPxesmQOz6s)nF;s z%_NLp@X$HQbbFY8Ox5tb4Y^*#vZ5SJM&fyl0>?_kHwARJp?5&-Pr93W@Ww0q!AK>n zL$Q&)R&(pd>U}u(5w#|y3rR2Hb)>Z`jqh^+RM->r;j*$^Oq)|T=#}C_5_@eyo^JL1 zW`SR|pZs#ZGHUzsE?HcurN?r&%GPf3R)G6T-8Fn-rL!!(7!SjpN8CKzfAz(hqNoD0 z)6Ff*HKz{_XRCTavD611fm(-08trv;vSvdlZb?|7ccyAJw{c1(z`AFM9X(xNdVU|4 zNUy$y2^>!ITlO<+1W&k727Ex)9U->e1SCvHzI)1f$dLWj##h^@8};C!+ZL2*e8UcT$S0;LYssgP4}UbfCX4qR6)nx>o1Nz}BZ z2`W+FU9FRsa=6^=eeZq0(7XNn3sitd5re~aegN(9_K(im^Q+l|YKIF9zw_|HY*U^U zFVjgKW$%aMw}j7W!Gf07bGP@T95tN)-dIY!*DEdY(LCRmZ4+A0c0I`0P>gV3y@#GfZyqwTL&3Eyz+|%ZL zCWEVVKW}w|6QqE0$RP-krdN1_I#>wTHcuRAM9#qG--Mx%-N1WPYz=T)J?kk{&#w?ZYE+11SyC5*qIhQrDqiJ^Qj3! zLgF9i_?VWta$rm20}3xW8%wlU6U{y-_*7 zTW{)$x}&s-^MftFPUyGO&V<(ao*>GX6)c?-11vA_hGICgWrt0yp7+~b;N|_G+Eo`w zynQqR(TcApTZ%?c#{9xyWwj?j9CjF@ik}ktAMa*6i%VNRbkQh&0?q?!`knM-$HDT| zEedzr?)0mS=Qz6pqoAl;!?r8w-eIj6XsY95P$v~XK*oHw_nGo&j?5}p{WL@Vv4~%N z8Ea-AknB}cZ`Q1NW?Bf&Yq z#>?+S+4tC^N!?MH6e4=*Mks$BKmibeh$=Hw$da*lkxd?*9nzT$4%-kEluq)}XI}uW z^fOLtQll|4z*kF0O!G2D3+@0T5l!xqw|8! z-&+xS7aw9R`~7wt$iH=l20jZ9aDIgKLL{@kKb!$_NoSAFoXIi;3%53qsy=H zifSf}^2+7%z?Y)2@s&Q#9V9DXgPgT#3r{tn=iPnou8&npU<(hr_l1k7^li2D&<&2C0`e&J+2h8+s6G90a5m z7t`*vloHV!u09yHB#-aIwt=v_bg2*-7?-IP-`Sz*tZfXVh_=;U!RP#Y~pvw`nvgfYW zrFF3`6APIe;j_5t)?ZMFPAV`#tk%bS6WLuQf0t1~boaH6YyUH(BLYzR=7@IL+;BY1 zWC!ZQ$b4Yv$ytj#aB;Z#C8M)%Ya)(W*`s|cowU18Xf|Al^Vi6Z$t)q|X0(#hXXlDN+7sKk^+}+!#n(uW2V!4VV!6H3%_IJ`+1u!TPFWH_UoCh z%$J$@%u||eN~Kc5*^6%pTtsOPUsxA?vab7@&gdi0H_LyhEEJysD)~n|E%?j#jcv@} zw)}UV+t;7)K!KDfh^Vku*UD#$+y|RFa?qco+Hl>Vs=i*${a&)`47L71%=Q|Y$6C2* z%S~SStQ%G9%ox83Ivi|@HdVMBb&gOiMMu3Z>B_mSg)w(~e{zE7Y1R_43)I9sFB>Q5@9!~a0wnI;u>9C4Ha z^K3860YSL=FjqCx$!#gYsG!9iyT31xAiFy3K_N<8OZX;)`^8nWYd~rCqd9qop)^&i ztMXkebNtv2heHs%W#hQ!{W1Bx>64%Y(elX~)b8W9WBW{2(kOzOK#U~X!L=~QmHQ;? zr&q3=L5csPU3i9tN9oR@h{8>Vf?7xF9BpW^P7>T zD*ccog-{aNff%tzZ0-2{CvkptK;1jxKvR`Cv5my{^jN>p4V)6jD#PZp;;^$q(Mt~I zml@fO2EWnjX4imjfLxh>Hauu^iE0|3eNa(_L+AI0NhSM|N|6WN@n*~G5V{8=AgryM zbck7BTs%Wmz6=-2io?t$Di$Rd;4>R zKJzImA^r1;(Xq_)pEny{?mwZwCv5y?`h#tmms%MohD%kcdZtR9s^RI5ZC7`X7@6)o zUXf|^#(!V$*}OWF>G;W@jw$gotqs$4hvM%W62V8FK8@@7Fjv44udK!c1SNOvi3tse z@=a8J9S5f(MFt{%mdIcQLGx$^VTtv=B)+0Do*s!Zvo!!BQ@Ugsa2rO|Wz}>pdO3Q~ zkY_FRC&L9dly;nJrjiYi&GNT7nDaFB{BvuAY^gix>Q26>-tG$ZPjSzPy}J5tJPdEG zh2dMmDg>WpmC9upDzX5!;r9fNJ3OI%#0tbzpY_QhaR)#I8R&0;o%|M*T7vAZP) zNS^M*vXkb`5bc z87e9PiUJ&9!aNHcVYi);bYzYQ7%Z$l3?a^>;5i56(_Al6dYyKQ1GH%xnljSNY##@# z4j_`Lw-?4*R0=T3=hfnO=fxuqm@XM^rRNoEV=hp`;Vv35GZOYOM_C_3PFCin4xDW9 z7Nf5^mC7(;8Eg8dV3!%@R?NYzwE-{~krX!-fk0G(#+WdhYCSYxR0|KCoxy^@IiQtz znnqHL>w&1CODQJmep9=M5S^IvACh8_zk#UmUYPNG7Hi4jT40Wn8kq32hNl<`&TsX$ zB4p{1nsi4O`HnhW{AQ41s3#ZSl6Hwc*@ww)tkesCK0mO3LWvTiTy_moyDNzUFbhlt zHVCU#jmjDF)v=zj<@W+_U4Y9W$N&jd1E=96NH_uiDD2*_bVi`!`lM`DgbyM2jX zj*Y)L5p^suFHj@JoS&L%LP-wbJ-N#dJPR&bu1;_gUJoH@zHdvcVA}TJc&NVgd@k-CQq~zTDzr|7TCc!~|C{9c?BC zUYDN${yvSfFX)zDwMYx-k3Y;O3LUo@$R45*`VHvl1tLfPsDGisv&79Yh-S+Q0%La6 zib<>N=`Dj>)&gjkXg{pRsNArNf_DqHY-)TEs(_3$vcZ{eN~L#@9GPKt<$DN*;JZnN zz=To;p>N_9l|FH26yr0m=6fi`_SCL!et7&%`HD@!a^*s^Q7{I0U! zPd*+iT75)GaJWu8gAp2yS{5rpI@bl;vay#D*?aAuHV3K8{Gja%zm|Qv;@!8>0Y3|3 zAr&3?SW`W=P$NUJXVk%<>D<5bk*!&P@@T9eL#R&2g|Y|0Lm#n+R!svU1*bJ4CsBU0 z{qj7i+&qyn15>=t-jQ4d(1iZzhut3Y@l*I{<^m|y25HJd4w)38}DYy-^zq__Z7$!n2c2S2eW(OCXSGsTZ6i!nbc z`MZ%Xa^d;ll;>6hPc1s_YP?`1$T{oXRt=8Q>&-MWzD4-j{_#zkYv-Tevozm+zu|{H z-zw3&RU>p-9zVbJEmoM@npAh5P2yiqY~_t4PNc0G(jc1U+(IfyU}nN52bXUKPaL6r zleGIEmJVrt+b`eTn7Z1`=-ju6TWYY@&ehBH#{b(O)|#$O)0#J}t(-NK_zx_vA>tY$ xt|8+8dqi|QX1&I$))?e}r|kddz75qXt$tU0Nnu6G(bc`c>64x(s*VTW{4W*CoACeu literal 0 HcmV?d00001 diff --git a/day015/comment-section/public/design/comment_section_mobile.png b/day015/comment-section/public/design/comment_section_mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3be224c024df8482554166500b10d375dbe383 GIT binary patch literal 33949 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�oA;|YD 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 + + diff --git a/day015/comment-section/public/icons/delete.svg b/day015/comment-section/public/icons/delete.svg new file mode 100644 index 0000000..21fa286 --- /dev/null +++ b/day015/comment-section/public/icons/delete.svg @@ -0,0 +1,3 @@ + + + diff --git a/day015/comment-section/public/icons/downvote.svg b/day015/comment-section/public/icons/downvote.svg new file mode 100644 index 0000000..0038625 --- /dev/null +++ b/day015/comment-section/public/icons/downvote.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/day015/comment-section/public/icons/send.svg b/day015/comment-section/public/icons/send.svg new file mode 100644 index 0000000..1576703 --- /dev/null +++ b/day015/comment-section/public/icons/send.svg @@ -0,0 +1,3 @@ + + + diff --git a/day015/comment-section/public/icons/upvote.svg b/day015/comment-section/public/icons/upvote.svg new file mode 100644 index 0000000..480ce34 --- /dev/null +++ b/day015/comment-section/public/icons/upvote.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/day015/comment-section/public/images/anonymous.svg b/day015/comment-section/public/images/anonymous.svg new file mode 100644 index 0000000..9a22d85 --- /dev/null +++ b/day015/comment-section/public/images/anonymous.svg @@ -0,0 +1,4 @@ + + + + diff --git a/day015/comment-section/public/images/person-1.png b/day015/comment-section/public/images/person-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f76593b19dc1b997ec2230e41d4246a69716f807 GIT binary patch literal 2292 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