From 495ce002d51e1ec2cb9a39d4b367eadbf99d4973 Mon Sep 17 00:00:00 2001 From: PandeCode Date: Fri, 3 Mar 2023 14:41:56 +0300 Subject: [PATCH] Init --- .firebaserc | 5 + .gitignore | 27 + .prettierrc | 1 + firebase.json | 12 + index.html | 36 + manifest.webmanifest | 25 + package.json | 47 + pnpm-lock.yaml | 7463 +++++++++++++++++++++++++++++ public/android-chrome-192x192.png | Bin 0 -> 10451 bytes public/android-chrome-512x512.png | Bin 0 -> 29020 bytes public/apple-touch-icon.png | Bin 0 -> 9298 bytes public/favicon-16x16.png | Bin 0 -> 539 bytes public/favicon-32x32.png | Bin 0 -> 1112 bytes public/favicon.ico | Bin 0 -> 15406 bytes public/pwa-192x192.png | Bin 0 -> 10451 bytes public/pwa-512x512.png | Bin 0 -> 29020 bytes public/robots.txt | 2 + src/App.tsx | 65 + src/assets/react.svg | 1 + src/components/About.tsx | 5 + src/components/Header.tsx | 208 + src/components/Home.tsx | 172 + src/components/NotFound.tsx | 85 + src/components/Settings.tsx | 202 + src/components/ThemeProvider.tsx | 36 + src/components/Tree.tsx | 198 + src/context/Settings.ts | 67 + src/hooks/useD3.ts | 21 + src/hooks/useWindowDimensions.ts | 22 + src/main.tsx | 10 + src/styles/index.css | 0 src/svg/img404.svg | 1 + src/types/Settings.ts | 13 + src/types/anime.ts | 38 + src/types/node.ts | 12 + src/utils/anime.ts | 93 + src/utils/examples.ts | 34 + src/utils/node.ts | 63 + src/vite-env.d.ts | 1 + tsconfig.json | 21 + tsconfig.node.json | 9 + vite.config.ts | 54 + 42 files changed, 9049 insertions(+) create mode 100644 .firebaserc create mode 100644 .gitignore create mode 120000 .prettierrc create mode 100644 firebase.json create mode 100644 index.html create mode 100644 manifest.webmanifest create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 public/android-chrome-192x192.png create mode 100644 public/android-chrome-512x512.png create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon-16x16.png create mode 100644 public/favicon-32x32.png create mode 100644 public/favicon.ico create mode 100644 public/pwa-192x192.png create mode 100644 public/pwa-512x512.png create mode 100644 public/robots.txt create mode 100644 src/App.tsx create mode 100644 src/assets/react.svg create mode 100644 src/components/About.tsx create mode 100644 src/components/Header.tsx create mode 100644 src/components/Home.tsx create mode 100644 src/components/NotFound.tsx create mode 100644 src/components/Settings.tsx create mode 100644 src/components/ThemeProvider.tsx create mode 100644 src/components/Tree.tsx create mode 100644 src/context/Settings.ts create mode 100644 src/hooks/useD3.ts create mode 100644 src/hooks/useWindowDimensions.ts create mode 100644 src/main.tsx create mode 100644 src/styles/index.css create mode 100644 src/svg/img404.svg create mode 100644 src/types/Settings.ts create mode 100644 src/types/anime.ts create mode 100644 src/types/node.ts create mode 100644 src/utils/anime.ts create mode 100644 src/utils/examples.ts create mode 100644 src/utils/node.ts create mode 100644 src/vite-env.d.ts create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.firebaserc b/.firebaserc new file mode 100644 index 0000000..c767011 --- /dev/null +++ b/.firebaserc @@ -0,0 +1,5 @@ +{ + "projects": { + "default": "anode-0" + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d2c603d --- /dev/null +++ b/.gitignore @@ -0,0 +1,27 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +dev-dist +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +.firebase diff --git a/.prettierrc b/.prettierrc new file mode 120000 index 0000000..1c61ad7 --- /dev/null +++ b/.prettierrc @@ -0,0 +1 @@ +/home/shawn/.config/nvim/dotfiles/.prettierrc \ No newline at end of file diff --git a/firebase.json b/firebase.json new file mode 100644 index 0000000..76b5a72 --- /dev/null +++ b/firebase.json @@ -0,0 +1,12 @@ +{ + "hosting": { + "public": "dist", + "ignore": ["firebase.json", "**/.*", "**/node_modules/**"], + "rewrites": [ + { + "source": "**", + "destination": "/index.html" + } + ] + } +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..4f423eb --- /dev/null +++ b/index.html @@ -0,0 +1,36 @@ + + + + + + + Anode + + + + + + + + +
+ + + diff --git a/manifest.webmanifest b/manifest.webmanifest new file mode 100644 index 0000000..0a70201 --- /dev/null +++ b/manifest.webmanifest @@ -0,0 +1,25 @@ +{ + "name": "Anode", + "short_name": "Anode", + "start_url": "/", + "display": "standalone", + "background_color": "#ffffff", + "lang": "en", + "scope": "/", + "description": "calm mental health", + "theme_color": "#55FF55", + "icons": [ + { "src": " favicon-32x32.png", "sizes": "32x32", "type": "image/png" }, + { "src": " favicon-16x16.png", "sizes": "16x16", "type": "image/png" }, + { + "src": "android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + } + ] +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..877fe07 --- /dev/null +++ b/package.json @@ -0,0 +1,47 @@ +{ + "name": "anode", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "preview": "vite preview" + }, + "devDependencies": { + "@emotion/react": "^11.10.5", + "@mantine/carousel": "^5.10.3", + "@mantine/core": "^5.10.3", + "@mantine/dates": "^5.10.3", + "@mantine/dropzone": "^5.10.3", + "@mantine/ds": "^5.10.3", + "@mantine/form": "^5.10.3", + "@mantine/hooks": "^5.10.3", + "@mantine/modals": "^5.10.3", + "@mantine/notifications": "^5.10.3", + "@mantine/nprogress": "^5.10.3", + "@mantine/prism": "^5.10.3", + "@mantine/spotlight": "^5.10.3", + "@mantine/tiptap": "^5.10.3", + "@tabler/icons": "1.119.0", + "@tiptap/extension-link": "2.0.0-beta.217", + "@tiptap/react": "2.0.0-beta.217", + "@tiptap/starter-kit": "2.0.0-beta.217", + "@types/d3": "^7.4.0", + "@types/react": "^18.0.27", + "@types/react-dom": "^18.0.10", + "@vitejs/plugin-react": "^3.1.0", + "d3": "^7.8.2", + "dayjs": "^1.11.7", + "embla-carousel-react": "^7.0.9", + "firebase": "^9.17.1", + "lottie-react": "^2.3.1", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router": "^6.8.1", + "react-router-dom": "^6.8.1", + "typescript": "^4.9.3", + "vite": "^4.1.0", + "vite-plugin-pwa": "^0.14.4" + } +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..15940d2 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,7463 @@ +lockfileVersion: 5.4 + +specifiers: + "@emotion/react": ^11.10.5 + "@mantine/carousel": ^5.10.3 + "@mantine/core": ^5.10.3 + "@mantine/dates": ^5.10.3 + "@mantine/dropzone": ^5.10.3 + "@mantine/ds": ^5.10.3 + "@mantine/form": ^5.10.3 + "@mantine/hooks": ^5.10.3 + "@mantine/modals": ^5.10.3 + "@mantine/notifications": ^5.10.3 + "@mantine/nprogress": ^5.10.3 + "@mantine/prism": ^5.10.3 + "@mantine/spotlight": ^5.10.3 + "@mantine/tiptap": ^5.10.3 + "@tabler/icons": 1.119.0 + "@tiptap/extension-link": 2.0.0-beta.217 + "@tiptap/react": 2.0.0-beta.217 + "@tiptap/starter-kit": 2.0.0-beta.217 + "@types/d3": ^7.4.0 + "@types/react": ^18.0.27 + "@types/react-dom": ^18.0.10 + "@vitejs/plugin-react": ^3.1.0 + d3: ^7.8.2 + dayjs: ^1.11.7 + embla-carousel-react: ^7.0.9 + firebase: ^9.17.1 + lottie-react: ^2.3.1 + react: ^18.2.0 + react-dom: ^18.2.0 + react-router: ^6.8.1 + react-router-dom: ^6.8.1 + typescript: ^4.9.3 + vite: ^4.1.0 + vite-plugin-pwa: ^0.14.4 + +devDependencies: + "@emotion/react": 11.10.6_pmekkgnqduwlme35zpnqhenc34 + "@mantine/carousel": 5.10.4_vnm3gwkgebougyg6u4olvdu7wu + "@mantine/core": 5.10.4_xgfpbscinl7gpxk3zixgsno7yu + "@mantine/dates": 5.10.4_cshids4fm2bh7nhcqqy7euof4e + "@mantine/dropzone": 5.10.4_zvr3twhaqlaxovla5vk46k3pgm + "@mantine/ds": 5.10.4_c3pncipcnbh4oolz24j7sitquy + "@mantine/form": 5.10.4_react@18.2.0 + "@mantine/hooks": 5.10.4_react@18.2.0 + "@mantine/modals": 5.10.4_zvr3twhaqlaxovla5vk46k3pgm + "@mantine/notifications": 5.10.4_zvr3twhaqlaxovla5vk46k3pgm + "@mantine/nprogress": 5.10.4_zvr3twhaqlaxovla5vk46k3pgm + "@mantine/prism": 5.10.4_zvr3twhaqlaxovla5vk46k3pgm + "@mantine/spotlight": 5.10.4_zvr3twhaqlaxovla5vk46k3pgm + "@mantine/tiptap": 5.10.4_p7uw3npspt5pizhw5two4in4pi + "@tabler/icons": 1.119.0_biqbaboplfbrettd7655fr4n2y + "@tiptap/extension-link": 2.0.0-beta.217 + "@tiptap/react": 2.0.0-beta.217_biqbaboplfbrettd7655fr4n2y + "@tiptap/starter-kit": 2.0.0-beta.217 + "@types/d3": 7.4.0 + "@types/react": 18.0.28 + "@types/react-dom": 18.0.11 + "@vitejs/plugin-react": 3.1.0_vite@4.1.4 + d3: 7.8.2 + dayjs: 1.11.7 + embla-carousel-react: 7.0.9_react@18.2.0 + firebase: 9.17.1 + lottie-react: 2.4.0_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-router: 6.8.1_react@18.2.0 + react-router-dom: 6.8.1_biqbaboplfbrettd7655fr4n2y + typescript: 4.9.5 + vite: 4.1.4 + vite-plugin-pwa: 0.14.4_vite@4.1.4 + +packages: + /@ampproject/remapping/2.2.0: + resolution: + { + integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@jridgewell/gen-mapping": 0.1.1 + "@jridgewell/trace-mapping": 0.3.17 + dev: true + + /@apideck/better-ajv-errors/0.3.6_ajv@8.12.0: + resolution: + { + integrity: sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==, + } + engines: { node: ">=10" } + peerDependencies: + ajv: ">=8" + dependencies: + ajv: 8.12.0 + json-schema: 0.4.0 + jsonpointer: 5.0.1 + leven: 3.1.0 + dev: true + + /@babel/code-frame/7.18.6: + resolution: + { + integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/highlight": 7.18.6 + dev: true + + /@babel/compat-data/7.21.0: + resolution: + { + integrity: sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==, + } + engines: { node: ">=6.9.0" } + dev: true + + /@babel/core/7.21.0: + resolution: + { + integrity: sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@ampproject/remapping": 2.2.0 + "@babel/code-frame": 7.18.6 + "@babel/generator": 7.21.1 + "@babel/helper-compilation-targets": 7.20.7_@babel+core@7.21.0 + "@babel/helper-module-transforms": 7.21.0 + "@babel/helpers": 7.21.0 + "@babel/parser": 7.21.1 + "@babel/template": 7.20.7 + "@babel/traverse": 7.21.0 + "@babel/types": 7.21.0 + convert-source-map: 1.9.0 + debug: 4.3.4 + gensync: 1.0.0-beta.2 + json5: 2.2.3 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/generator/7.21.1: + resolution: + { + integrity: sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.21.0 + "@jridgewell/gen-mapping": 0.3.2 + "@jridgewell/trace-mapping": 0.3.17 + jsesc: 2.5.2 + dev: true + + /@babel/helper-annotate-as-pure/7.18.6: + resolution: + { + integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.21.0 + dev: true + + /@babel/helper-builder-binary-assignment-operator-visitor/7.18.9: + resolution: + { + integrity: sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/helper-explode-assignable-expression": 7.18.6 + "@babel/types": 7.21.0 + dev: true + + /@babel/helper-compilation-targets/7.20.7_@babel+core@7.21.0: + resolution: + { + integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + dependencies: + "@babel/compat-data": 7.21.0 + "@babel/core": 7.21.0 + "@babel/helper-validator-option": 7.21.0 + browserslist: 4.21.5 + lru-cache: 5.1.1 + semver: 6.3.0 + dev: true + + /@babel/helper-create-class-features-plugin/7.21.0_@babel+core@7.21.0: + resolution: + { + integrity: sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-annotate-as-pure": 7.18.6 + "@babel/helper-environment-visitor": 7.18.9 + "@babel/helper-function-name": 7.21.0 + "@babel/helper-member-expression-to-functions": 7.21.0 + "@babel/helper-optimise-call-expression": 7.18.6 + "@babel/helper-replace-supers": 7.20.7 + "@babel/helper-skip-transparent-expression-wrappers": 7.20.0 + "@babel/helper-split-export-declaration": 7.18.6 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-create-regexp-features-plugin/7.21.0_@babel+core@7.21.0: + resolution: + { + integrity: sha512-N+LaFW/auRSWdx7SHD/HiARwXQju1vXTW4fKr4u5SgBUTm51OKEjKgj+cs00ggW3kEvNqwErnlwuq7Y3xBe4eg==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-annotate-as-pure": 7.18.6 + regexpu-core: 5.3.1 + dev: true + + /@babel/helper-define-polyfill-provider/0.3.3_@babel+core@7.21.0: + resolution: + { + integrity: sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==, + } + peerDependencies: + "@babel/core": ^7.4.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-compilation-targets": 7.20.7_@babel+core@7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + debug: 4.3.4 + lodash.debounce: 4.0.8 + resolve: 1.22.1 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-environment-visitor/7.18.9: + resolution: + { + integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==, + } + engines: { node: ">=6.9.0" } + dev: true + + /@babel/helper-explode-assignable-expression/7.18.6: + resolution: + { + integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.21.0 + dev: true + + /@babel/helper-function-name/7.21.0: + resolution: + { + integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/template": 7.20.7 + "@babel/types": 7.21.0 + dev: true + + /@babel/helper-hoist-variables/7.18.6: + resolution: + { + integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.21.0 + dev: true + + /@babel/helper-member-expression-to-functions/7.21.0: + resolution: + { + integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.21.2 + dev: true + + /@babel/helper-module-imports/7.18.6: + resolution: + { + integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.21.0 + dev: true + + /@babel/helper-module-transforms/7.21.0: + resolution: + { + integrity: sha512-eD/JQ21IG2i1FraJnTMbUarAUkA7G988ofehG5MDCRXaUU91rEBJuCeSoou2Sk1y4RbLYXzqEg1QLwEmRU4qcQ==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/helper-environment-visitor": 7.18.9 + "@babel/helper-module-imports": 7.18.6 + "@babel/helper-simple-access": 7.20.2 + "@babel/helper-split-export-declaration": 7.18.6 + "@babel/helper-validator-identifier": 7.19.1 + "@babel/template": 7.20.7 + "@babel/traverse": 7.21.0 + "@babel/types": 7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-module-transforms/7.21.2: + resolution: + { + integrity: sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/helper-environment-visitor": 7.18.9 + "@babel/helper-module-imports": 7.18.6 + "@babel/helper-simple-access": 7.20.2 + "@babel/helper-split-export-declaration": 7.18.6 + "@babel/helper-validator-identifier": 7.19.1 + "@babel/template": 7.20.7 + "@babel/traverse": 7.21.2 + "@babel/types": 7.21.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-optimise-call-expression/7.18.6: + resolution: + { + integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.21.0 + dev: true + + /@babel/helper-plugin-utils/7.20.2: + resolution: + { + integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==, + } + engines: { node: ">=6.9.0" } + dev: true + + /@babel/helper-remap-async-to-generator/7.18.9_@babel+core@7.21.0: + resolution: + { + integrity: sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-annotate-as-pure": 7.18.6 + "@babel/helper-environment-visitor": 7.18.9 + "@babel/helper-wrap-function": 7.20.5 + "@babel/types": 7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-replace-supers/7.20.7: + resolution: + { + integrity: sha512-vujDMtB6LVfNW13jhlCrp48QNslK6JXi7lQG736HVbHz/mbf4Dc7tIRh1Xf5C0rF7BP8iiSxGMCmY6Ci1ven3A==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/helper-environment-visitor": 7.18.9 + "@babel/helper-member-expression-to-functions": 7.21.0 + "@babel/helper-optimise-call-expression": 7.18.6 + "@babel/template": 7.20.7 + "@babel/traverse": 7.21.0 + "@babel/types": 7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helper-simple-access/7.20.2: + resolution: + { + integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.21.0 + dev: true + + /@babel/helper-skip-transparent-expression-wrappers/7.20.0: + resolution: + { + integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.21.0 + dev: true + + /@babel/helper-split-export-declaration/7.18.6: + resolution: + { + integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/types": 7.21.0 + dev: true + + /@babel/helper-string-parser/7.19.4: + resolution: + { + integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==, + } + engines: { node: ">=6.9.0" } + dev: true + + /@babel/helper-validator-identifier/7.19.1: + resolution: + { + integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==, + } + engines: { node: ">=6.9.0" } + dev: true + + /@babel/helper-validator-option/7.21.0: + resolution: + { + integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==, + } + engines: { node: ">=6.9.0" } + dev: true + + /@babel/helper-wrap-function/7.20.5: + resolution: + { + integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/helper-function-name": 7.21.0 + "@babel/template": 7.20.7 + "@babel/traverse": 7.21.0 + "@babel/types": 7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/helpers/7.21.0: + resolution: + { + integrity: sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/template": 7.20.7 + "@babel/traverse": 7.21.0 + "@babel/types": 7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/highlight/7.18.6: + resolution: + { + integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/helper-validator-identifier": 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: true + + /@babel/parser/7.21.1: + resolution: + { + integrity: sha512-JzhBFpkuhBNYUY7qs+wTzNmyCWUHEaAFpQQD2YfU1rPL38/L43Wvid0fFkiOCnHvsGncRZgEPyGnltABLcVDTg==, + } + engines: { node: ">=6.0.0" } + hasBin: true + dependencies: + "@babel/types": 7.21.0 + dev: true + + /@babel/parser/7.21.2: + resolution: + { + integrity: sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==, + } + engines: { node: ">=6.0.0" } + hasBin: true + dependencies: + "@babel/types": 7.21.2 + dev: true + + /@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.20.7_@babel+core@7.21.0: + resolution: + { + integrity: sha512-sbr9+wNE5aXMBBFBICk01tt7sBf2Oc9ikRFEcem/ZORup9IMUdNhW7/wVLEbbtlWOsEubJet46mHAL2C8+2jKQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.13.0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-skip-transparent-expression-wrappers": 7.20.0 + "@babel/plugin-proposal-optional-chaining": 7.21.0_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-async-generator-functions/7.20.7_@babel+core@7.21.0: + resolution: + { + integrity: sha512-xMbiLsn/8RK7Wq7VeVytytS2L6qE69bXPB10YCmMdDZbKF4okCqY74pI/jJQ/8U0b/F6NrT2+14b8/P9/3AMGA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-environment-visitor": 7.18.9 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-remap-async-to-generator": 7.18.9_@babel+core@7.21.0 + "@babel/plugin-syntax-async-generators": 7.8.4_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-properties/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-create-class-features-plugin": 7.21.0_@babel+core@7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-class-static-block/7.21.0_@babel+core@7.21.0: + resolution: + { + integrity: sha512-XP5G9MWNUskFuP30IfFSEFB0Z6HzLIUcjYM4bYOPHXl7eiJ9HFv8tWj6TXTN5QODiEhDZAeI4hLok2iHFFV4hw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.12.0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-create-class-features-plugin": 7.21.0_@babel+core@7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/plugin-syntax-class-static-block": 7.14.5_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-dynamic-import/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/plugin-syntax-dynamic-import": 7.8.3_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-export-namespace-from/7.18.9_@babel+core@7.21.0: + resolution: + { + integrity: sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/plugin-syntax-export-namespace-from": 7.8.3_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-json-strings/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/plugin-syntax-json-strings": 7.8.3_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-logical-assignment-operators/7.20.7_@babel+core@7.21.0: + resolution: + { + integrity: sha512-y7C7cZgpMIjWlKE5T7eJwp+tnRYM89HmRvWM5EQuB5BoHEONjmQ8lSNmBUwOyy/GFRsohJED51YBF79hE1djug==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/plugin-syntax-logical-assignment-operators": 7.10.4_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-nullish-coalescing-operator/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-numeric-separator/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/plugin-syntax-numeric-separator": 7.10.4_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.21.0: + resolution: + { + integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/compat-data": 7.21.0 + "@babel/core": 7.21.0 + "@babel/helper-compilation-targets": 7.20.7_@babel+core@7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/plugin-syntax-object-rest-spread": 7.8.3_@babel+core@7.21.0 + "@babel/plugin-transform-parameters": 7.20.7_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-optional-catch-binding/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/plugin-syntax-optional-catch-binding": 7.8.3_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-optional-chaining/7.21.0_@babel+core@7.21.0: + resolution: + { + integrity: sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-skip-transparent-expression-wrappers": 7.20.0 + "@babel/plugin-syntax-optional-chaining": 7.8.3_@babel+core@7.21.0 + dev: true + + /@babel/plugin-proposal-private-methods/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-create-class-features-plugin": 7.21.0_@babel+core@7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-private-property-in-object/7.21.0_@babel+core@7.21.0: + resolution: + { + integrity: sha512-ha4zfehbJjc5MmXBlHec1igel5TJXXLDDRbuJ4+XT2TJcyD9/V1919BA8gMvsdHcNMBy4WBUBiRb3nw/EQUtBw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-annotate-as-pure": 7.18.6 + "@babel/helper-create-class-features-plugin": 7.21.0_@babel+core@7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/plugin-syntax-private-property-in-object": 7.14.5_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-proposal-unicode-property-regex/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==, + } + engines: { node: ">=4" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-create-regexp-features-plugin": 7.21.0_@babel+core@7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.21.0: + resolution: + { + integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-class-properties/7.12.13_@babel+core@7.21.0: + resolution: + { + integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-class-static-block/7.14.5_@babel+core@7.21.0: + resolution: + { + integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.21.0: + resolution: + { + integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.21.0: + resolution: + { + integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-import-assertions/7.20.0_@babel+core@7.21.0: + resolution: + { + integrity: sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.21.0: + resolution: + { + integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.21.0: + resolution: + { + integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.21.0: + resolution: + { + integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.21.0: + resolution: + { + integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.21.0: + resolution: + { + integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.21.0: + resolution: + { + integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.21.0: + resolution: + { + integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.21.0: + resolution: + { + integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-syntax-top-level-await/7.14.5_@babel+core@7.21.0: + resolution: + { + integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-arrow-functions/7.20.7_@babel+core@7.21.0: + resolution: + { + integrity: sha512-3poA5E7dzDomxj9WXWwuD6A5F3kc7VXwIJO+E+J8qtDtS+pXPAhrgEyh+9GBwBgPq1Z+bB+/JD60lp5jsN7JPQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-async-to-generator/7.20.7_@babel+core@7.21.0: + resolution: + { + integrity: sha512-Uo5gwHPT9vgnSXQxqGtpdufUiWp96gk7yiP4Mp5bm1QMkEmLXBO7PAGYbKoJ6DhAwiNkcHFBol/x5zZZkL/t0Q==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-module-imports": 7.18.6 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-remap-async-to-generator": 7.18.9_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-block-scoped-functions/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-block-scoping/7.21.0_@babel+core@7.21.0: + resolution: + { + integrity: sha512-Mdrbunoh9SxwFZapeHVrwFmri16+oYotcZysSzhNIVDwIAb1UV+kvnxULSYq9J3/q5MDG+4X6w8QVgD1zhBXNQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-classes/7.21.0_@babel+core@7.21.0: + resolution: + { + integrity: sha512-RZhbYTCEUAe6ntPehC4hlslPWosNHDox+vAs4On/mCLRLfoDVHf6hVEd7kuxr1RnHwJmxFfUM3cZiZRmPxJPXQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-annotate-as-pure": 7.18.6 + "@babel/helper-compilation-targets": 7.20.7_@babel+core@7.21.0 + "@babel/helper-environment-visitor": 7.18.9 + "@babel/helper-function-name": 7.21.0 + "@babel/helper-optimise-call-expression": 7.18.6 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-replace-supers": 7.20.7 + "@babel/helper-split-export-declaration": 7.18.6 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-computed-properties/7.20.7_@babel+core@7.21.0: + resolution: + { + integrity: sha512-Lz7MvBK6DTjElHAmfu6bfANzKcxpyNPeYBGEafyA6E5HtRpjpZwU+u7Qrgz/2OR0z+5TvKYbPdphfSaAcZBrYQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/template": 7.20.7 + dev: true + + /@babel/plugin-transform-destructuring/7.20.7_@babel+core@7.21.0: + resolution: + { + integrity: sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-dotall-regex/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-create-regexp-features-plugin": 7.21.0_@babel+core@7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-duplicate-keys/7.18.9_@babel+core@7.21.0: + resolution: + { + integrity: sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-exponentiation-operator/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-builder-binary-assignment-operator-visitor": 7.18.9 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-for-of/7.21.0_@babel+core@7.21.0: + resolution: + { + integrity: sha512-LlUYlydgDkKpIY7mcBWvyPPmMcOphEyYA27Ef4xpbh1IiDNLr0kZsos2nf92vz3IccvJI25QUwp86Eo5s6HmBQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-function-name/7.18.9_@babel+core@7.21.0: + resolution: + { + integrity: sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-compilation-targets": 7.20.7_@babel+core@7.21.0 + "@babel/helper-function-name": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-literals/7.18.9_@babel+core@7.21.0: + resolution: + { + integrity: sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-member-expression-literals/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-modules-amd/7.20.11_@babel+core@7.21.0: + resolution: + { + integrity: sha512-NuzCt5IIYOW0O30UvqktzHYR2ud5bOWbY0yaxWZ6G+aFzOMJvrs5YHNikrbdaT15+KNO31nPOy5Fim3ku6Zb5g==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-module-transforms": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-commonjs/7.21.2_@babel+core@7.21.0: + resolution: + { + integrity: sha512-Cln+Yy04Gxua7iPdj6nOV96smLGjpElir5YwzF0LBPKoPlLDNJePNlrGGaybAJkd0zKRnOVXOgizSqPYMNYkzA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-module-transforms": 7.21.2 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-simple-access": 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-systemjs/7.20.11_@babel+core@7.21.0: + resolution: + { + integrity: sha512-vVu5g9BPQKSFEmvt2TA4Da5N+QVS66EX21d8uoOihC+OCpUoGvzVsXeqFdtAEfVa5BILAeFt+U7yVmLbQnAJmw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-hoist-variables": 7.18.6 + "@babel/helper-module-transforms": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-validator-identifier": 7.19.1 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-modules-umd/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-module-transforms": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-named-capturing-groups-regex/7.20.5_@babel+core@7.21.0: + resolution: + { + integrity: sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-create-regexp-features-plugin": 7.21.0_@babel+core@7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-new-target/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-object-super/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-replace-supers": 7.20.7 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/plugin-transform-parameters/7.20.7_@babel+core@7.21.0: + resolution: + { + integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-property-literals/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-react-jsx-self/7.21.0_@babel+core@7.21.0: + resolution: + { + integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-react-jsx-source/7.19.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-regenerator/7.20.5_@babel+core@7.21.0: + resolution: + { + integrity: sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + regenerator-transform: 0.15.1 + dev: true + + /@babel/plugin-transform-reserved-words/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-shorthand-properties/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-spread/7.20.7_@babel+core@7.21.0: + resolution: + { + integrity: sha512-ewBbHQ+1U/VnH1fxltbJqDeWBU1oNLG8Dj11uIv3xVf7nrQu0bPGe5Rf716r7K5Qz+SqtAOVswoVunoiBtGhxw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-skip-transparent-expression-wrappers": 7.20.0 + dev: true + + /@babel/plugin-transform-sticky-regex/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-template-literals/7.18.9_@babel+core@7.21.0: + resolution: + { + integrity: sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-typeof-symbol/7.18.9_@babel+core@7.21.0: + resolution: + { + integrity: sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-unicode-escapes/7.18.10_@babel+core@7.21.0: + resolution: + { + integrity: sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/plugin-transform-unicode-regex/7.18.6_@babel+core@7.21.0: + resolution: + { + integrity: sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-create-regexp-features-plugin": 7.21.0_@babel+core@7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + dev: true + + /@babel/preset-env/7.20.2_@babel+core@7.21.0: + resolution: + { + integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==, + } + engines: { node: ">=6.9.0" } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/compat-data": 7.21.0 + "@babel/core": 7.21.0 + "@babel/helper-compilation-targets": 7.20.7_@babel+core@7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/helper-validator-option": 7.21.0 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": 7.20.7_@babel+core@7.21.0 + "@babel/plugin-proposal-async-generator-functions": 7.20.7_@babel+core@7.21.0 + "@babel/plugin-proposal-class-properties": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-proposal-class-static-block": 7.21.0_@babel+core@7.21.0 + "@babel/plugin-proposal-dynamic-import": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-proposal-export-namespace-from": 7.18.9_@babel+core@7.21.0 + "@babel/plugin-proposal-json-strings": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-proposal-logical-assignment-operators": 7.20.7_@babel+core@7.21.0 + "@babel/plugin-proposal-nullish-coalescing-operator": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-proposal-numeric-separator": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-proposal-object-rest-spread": 7.20.7_@babel+core@7.21.0 + "@babel/plugin-proposal-optional-catch-binding": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-proposal-optional-chaining": 7.21.0_@babel+core@7.21.0 + "@babel/plugin-proposal-private-methods": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-proposal-private-property-in-object": 7.21.0_@babel+core@7.21.0 + "@babel/plugin-proposal-unicode-property-regex": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-syntax-async-generators": 7.8.4_@babel+core@7.21.0 + "@babel/plugin-syntax-class-properties": 7.12.13_@babel+core@7.21.0 + "@babel/plugin-syntax-class-static-block": 7.14.5_@babel+core@7.21.0 + "@babel/plugin-syntax-dynamic-import": 7.8.3_@babel+core@7.21.0 + "@babel/plugin-syntax-export-namespace-from": 7.8.3_@babel+core@7.21.0 + "@babel/plugin-syntax-import-assertions": 7.20.0_@babel+core@7.21.0 + "@babel/plugin-syntax-json-strings": 7.8.3_@babel+core@7.21.0 + "@babel/plugin-syntax-logical-assignment-operators": 7.10.4_@babel+core@7.21.0 + "@babel/plugin-syntax-nullish-coalescing-operator": 7.8.3_@babel+core@7.21.0 + "@babel/plugin-syntax-numeric-separator": 7.10.4_@babel+core@7.21.0 + "@babel/plugin-syntax-object-rest-spread": 7.8.3_@babel+core@7.21.0 + "@babel/plugin-syntax-optional-catch-binding": 7.8.3_@babel+core@7.21.0 + "@babel/plugin-syntax-optional-chaining": 7.8.3_@babel+core@7.21.0 + "@babel/plugin-syntax-private-property-in-object": 7.14.5_@babel+core@7.21.0 + "@babel/plugin-syntax-top-level-await": 7.14.5_@babel+core@7.21.0 + "@babel/plugin-transform-arrow-functions": 7.20.7_@babel+core@7.21.0 + "@babel/plugin-transform-async-to-generator": 7.20.7_@babel+core@7.21.0 + "@babel/plugin-transform-block-scoped-functions": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-transform-block-scoping": 7.21.0_@babel+core@7.21.0 + "@babel/plugin-transform-classes": 7.21.0_@babel+core@7.21.0 + "@babel/plugin-transform-computed-properties": 7.20.7_@babel+core@7.21.0 + "@babel/plugin-transform-destructuring": 7.20.7_@babel+core@7.21.0 + "@babel/plugin-transform-dotall-regex": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-transform-duplicate-keys": 7.18.9_@babel+core@7.21.0 + "@babel/plugin-transform-exponentiation-operator": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-transform-for-of": 7.21.0_@babel+core@7.21.0 + "@babel/plugin-transform-function-name": 7.18.9_@babel+core@7.21.0 + "@babel/plugin-transform-literals": 7.18.9_@babel+core@7.21.0 + "@babel/plugin-transform-member-expression-literals": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-transform-modules-amd": 7.20.11_@babel+core@7.21.0 + "@babel/plugin-transform-modules-commonjs": 7.21.2_@babel+core@7.21.0 + "@babel/plugin-transform-modules-systemjs": 7.20.11_@babel+core@7.21.0 + "@babel/plugin-transform-modules-umd": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-transform-named-capturing-groups-regex": 7.20.5_@babel+core@7.21.0 + "@babel/plugin-transform-new-target": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-transform-object-super": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-transform-parameters": 7.20.7_@babel+core@7.21.0 + "@babel/plugin-transform-property-literals": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-transform-regenerator": 7.20.5_@babel+core@7.21.0 + "@babel/plugin-transform-reserved-words": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-transform-shorthand-properties": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-transform-spread": 7.20.7_@babel+core@7.21.0 + "@babel/plugin-transform-sticky-regex": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-transform-template-literals": 7.18.9_@babel+core@7.21.0 + "@babel/plugin-transform-typeof-symbol": 7.18.9_@babel+core@7.21.0 + "@babel/plugin-transform-unicode-escapes": 7.18.10_@babel+core@7.21.0 + "@babel/plugin-transform-unicode-regex": 7.18.6_@babel+core@7.21.0 + "@babel/preset-modules": 0.1.5_@babel+core@7.21.0 + "@babel/types": 7.21.0 + babel-plugin-polyfill-corejs2: 0.3.3_@babel+core@7.21.0 + babel-plugin-polyfill-corejs3: 0.6.0_@babel+core@7.21.0 + babel-plugin-polyfill-regenerator: 0.4.1_@babel+core@7.21.0 + core-js-compat: 3.28.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/preset-modules/0.1.5_@babel+core@7.21.0: + resolution: + { + integrity: sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-plugin-utils": 7.20.2 + "@babel/plugin-proposal-unicode-property-regex": 7.18.6_@babel+core@7.21.0 + "@babel/plugin-transform-dotall-regex": 7.18.6_@babel+core@7.21.0 + "@babel/types": 7.21.0 + esutils: 2.0.3 + dev: true + + /@babel/regjsgen/0.8.0: + resolution: + { + integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==, + } + dev: true + + /@babel/runtime/7.21.0: + resolution: + { + integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==, + } + engines: { node: ">=6.9.0" } + dependencies: + regenerator-runtime: 0.13.11 + dev: true + + /@babel/template/7.20.7: + resolution: + { + integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/code-frame": 7.18.6 + "@babel/parser": 7.21.1 + "@babel/types": 7.21.0 + dev: true + + /@babel/traverse/7.21.0: + resolution: + { + integrity: sha512-Xdt2P1H4LKTO8ApPfnO1KmzYMFpp7D/EinoXzLYN/cHcBNrVCAkAtGUcXnHXrl/VGktureU6fkQrHSBE2URfoA==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/code-frame": 7.18.6 + "@babel/generator": 7.21.1 + "@babel/helper-environment-visitor": 7.18.9 + "@babel/helper-function-name": 7.21.0 + "@babel/helper-hoist-variables": 7.18.6 + "@babel/helper-split-export-declaration": 7.18.6 + "@babel/parser": 7.21.1 + "@babel/types": 7.21.0 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/traverse/7.21.2: + resolution: + { + integrity: sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/code-frame": 7.18.6 + "@babel/generator": 7.21.1 + "@babel/helper-environment-visitor": 7.18.9 + "@babel/helper-function-name": 7.21.0 + "@babel/helper-hoist-variables": 7.18.6 + "@babel/helper-split-export-declaration": 7.18.6 + "@babel/parser": 7.21.2 + "@babel/types": 7.21.2 + debug: 4.3.4 + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + + /@babel/types/7.21.0: + resolution: + { + integrity: sha512-uR7NWq2VNFnDi7EYqiRz2Jv/VQIu38tu64Zy8TX2nQFQ6etJ9V/Rr2msW8BS132mum2rL645qpDrLtAJtVpuow==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/helper-string-parser": 7.19.4 + "@babel/helper-validator-identifier": 7.19.1 + to-fast-properties: 2.0.0 + dev: true + + /@babel/types/7.21.2: + resolution: + { + integrity: sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==, + } + engines: { node: ">=6.9.0" } + dependencies: + "@babel/helper-string-parser": 7.19.4 + "@babel/helper-validator-identifier": 7.19.1 + to-fast-properties: 2.0.0 + dev: true + + /@emotion/babel-plugin/11.10.6: + resolution: + { + integrity: sha512-p2dAqtVrkhSa7xz1u/m9eHYdLi+en8NowrmXeF/dKtJpU8lCWli8RUAati7NcSl0afsBott48pdnANuD0wh9QQ==, + } + dependencies: + "@babel/helper-module-imports": 7.18.6 + "@babel/runtime": 7.21.0 + "@emotion/hash": 0.9.0 + "@emotion/memoize": 0.8.0 + "@emotion/serialize": 1.1.1 + babel-plugin-macros: 3.1.0 + convert-source-map: 1.9.0 + escape-string-regexp: 4.0.0 + find-root: 1.1.0 + source-map: 0.5.7 + stylis: 4.1.3 + dev: true + + /@emotion/cache/11.10.5: + resolution: + { + integrity: sha512-dGYHWyzTdmK+f2+EnIGBpkz1lKc4Zbj2KHd4cX3Wi8/OWr5pKslNjc3yABKH4adRGCvSX4VDC0i04mrrq0aiRA==, + } + dependencies: + "@emotion/memoize": 0.8.0 + "@emotion/sheet": 1.2.1 + "@emotion/utils": 1.2.0 + "@emotion/weak-memoize": 0.3.0 + stylis: 4.1.3 + dev: true + + /@emotion/hash/0.9.0: + resolution: + { + integrity: sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==, + } + dev: true + + /@emotion/memoize/0.8.0: + resolution: + { + integrity: sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA==, + } + dev: true + + /@emotion/react/11.10.6_pmekkgnqduwlme35zpnqhenc34: + resolution: + { + integrity: sha512-6HT8jBmcSkfzO7mc+N1L9uwvOnlcGoix8Zn7srt+9ga0MjREo6lRpuVX0kzo6Jp6oTqDhREOFsygN6Ew4fEQbw==, + } + peerDependencies: + "@types/react": "*" + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + dependencies: + "@babel/runtime": 7.21.0 + "@emotion/babel-plugin": 11.10.6 + "@emotion/cache": 11.10.5 + "@emotion/serialize": 1.1.1 + "@emotion/use-insertion-effect-with-fallbacks": 1.0.0_react@18.2.0 + "@emotion/utils": 1.2.0 + "@emotion/weak-memoize": 0.3.0 + "@types/react": 18.0.28 + hoist-non-react-statics: 3.3.2 + react: 18.2.0 + dev: true + + /@emotion/serialize/1.1.1: + resolution: + { + integrity: sha512-Zl/0LFggN7+L1liljxXdsVSVlg6E/Z/olVWpfxUTxOAmi8NU7YoeWeLfi1RmnB2TATHoaWwIBRoL+FvAJiTUQA==, + } + dependencies: + "@emotion/hash": 0.9.0 + "@emotion/memoize": 0.8.0 + "@emotion/unitless": 0.8.0 + "@emotion/utils": 1.2.0 + csstype: 3.1.1 + dev: true + + /@emotion/sheet/1.2.1: + resolution: + { + integrity: sha512-zxRBwl93sHMsOj4zs+OslQKg/uhF38MB+OMKoCrVuS0nyTkqnau+BM3WGEoOptg9Oz45T/aIGs1qbVAsEFo3nA==, + } + dev: true + + /@emotion/unitless/0.8.0: + resolution: + { + integrity: sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==, + } + dev: true + + /@emotion/use-insertion-effect-with-fallbacks/1.0.0_react@18.2.0: + resolution: + { + integrity: sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==, + } + peerDependencies: + react: ">=16.8.0" + dependencies: + react: 18.2.0 + dev: true + + /@emotion/utils/1.2.0: + resolution: + { + integrity: sha512-sn3WH53Kzpw8oQ5mgMmIzzyAaH2ZqFEbozVVBSYp538E06OSE6ytOp7pRAjNQR+Q/orwqdQYJSe2m3hCOeznkw==, + } + dev: true + + /@emotion/weak-memoize/0.3.0: + resolution: + { + integrity: sha512-AHPmaAx+RYfZz0eYu6Gviiagpmiyw98ySSlQvCUhVGDRtDFe4DBS0x1bSjdF3gqUDYOczB+yYvBTtEylYSdRhg==, + } + dev: true + + /@esbuild/android-arm/0.16.17: + resolution: + { + integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==, + } + engines: { node: ">=12" } + cpu: [arm] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-arm64/0.16.17: + resolution: + { + integrity: sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/android-x64/0.16.17: + resolution: + { + integrity: sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [android] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-arm64/0.16.17: + resolution: + { + integrity: sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/darwin-x64/0.16.17: + resolution: + { + integrity: sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-arm64/0.16.17: + resolution: + { + integrity: sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/freebsd-x64/0.16.17: + resolution: + { + integrity: sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [freebsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm/0.16.17: + resolution: + { + integrity: sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==, + } + engines: { node: ">=12" } + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-arm64/0.16.17: + resolution: + { + integrity: sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ia32/0.16.17: + resolution: + { + integrity: sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==, + } + engines: { node: ">=12" } + cpu: [ia32] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-loong64/0.16.17: + resolution: + { + integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==, + } + engines: { node: ">=12" } + cpu: [loong64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-mips64el/0.16.17: + resolution: + { + integrity: sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==, + } + engines: { node: ">=12" } + cpu: [mips64el] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-ppc64/0.16.17: + resolution: + { + integrity: sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==, + } + engines: { node: ">=12" } + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-riscv64/0.16.17: + resolution: + { + integrity: sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==, + } + engines: { node: ">=12" } + cpu: [riscv64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-s390x/0.16.17: + resolution: + { + integrity: sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==, + } + engines: { node: ">=12" } + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/linux-x64/0.16.17: + resolution: + { + integrity: sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@esbuild/netbsd-x64/0.16.17: + resolution: + { + integrity: sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [netbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/openbsd-x64/0.16.17: + resolution: + { + integrity: sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [openbsd] + requiresBuild: true + dev: true + optional: true + + /@esbuild/sunos-x64/0.16.17: + resolution: + { + integrity: sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [sunos] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-arm64/0.16.17: + resolution: + { + integrity: sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==, + } + engines: { node: ">=12" } + cpu: [arm64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-ia32/0.16.17: + resolution: + { + integrity: sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==, + } + engines: { node: ">=12" } + cpu: [ia32] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@esbuild/win32-x64/0.16.17: + resolution: + { + integrity: sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==, + } + engines: { node: ">=12" } + cpu: [x64] + os: [win32] + requiresBuild: true + dev: true + optional: true + + /@firebase/analytics-compat/0.2.3_5qoz5voa527ucsvtk67mpz25ru: + resolution: + { + integrity: sha512-HmvbB4GMgh8AUlIDIo/OuFENLCGRXxMvtOueK+m8+DcfqBvG+mkii0Mi9ovo0TnMM62cy3oBYG7PHdjIQNLSLA==, + } + peerDependencies: + "@firebase/app-compat": 0.x + dependencies: + "@firebase/analytics": 0.9.3_@firebase+app@0.9.3 + "@firebase/analytics-types": 0.8.0 + "@firebase/app-compat": 0.2.3 + "@firebase/component": 0.6.3 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + transitivePeerDependencies: + - "@firebase/app" + dev: true + + /@firebase/analytics-types/0.8.0: + resolution: + { + integrity: sha512-iRP+QKI2+oz3UAh4nPEq14CsEjrjD6a5+fuypjScisAh9kXKFvdJOZJDwk7kikLvWVLGEs9+kIUS4LPQV7VZVw==, + } + dev: true + + /@firebase/analytics/0.9.3_@firebase+app@0.9.3: + resolution: + { + integrity: sha512-XdYHBi6RvHYVAHGyLxXX0uRPwZmGeqw1JuWS1rMEeRF/jvbxnrL81kcFAHZVRkEvG9bXAJgL2fX9wmDo3e622w==, + } + peerDependencies: + "@firebase/app": 0.x + dependencies: + "@firebase/app": 0.9.3 + "@firebase/component": 0.6.3 + "@firebase/installations": 0.6.3_@firebase+app@0.9.3 + "@firebase/logger": 0.4.0 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + dev: true + + /@firebase/app-check-compat/0.3.3_5qoz5voa527ucsvtk67mpz25ru: + resolution: + { + integrity: sha512-25AQ4W7WUL8OWas40GsABuNU622Dm1ojbfeZ03uKtLj5Af7FerJ25u7zkgm+11pc6rpr5v8E5oxEG9vmNRndEA==, + } + peerDependencies: + "@firebase/app-compat": 0.x + dependencies: + "@firebase/app-check": 0.6.3_@firebase+app@0.9.3 + "@firebase/app-check-types": 0.5.0 + "@firebase/app-compat": 0.2.3 + "@firebase/component": 0.6.3 + "@firebase/logger": 0.4.0 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + transitivePeerDependencies: + - "@firebase/app" + dev: true + + /@firebase/app-check-interop-types/0.2.0: + resolution: + { + integrity: sha512-+3PQIeX6/eiVK+x/yg8r6xTNR97fN7MahFDm+jiQmDjcyvSefoGuTTNQuuMScGyx3vYUBeZn+Cp9kC0yY/9uxQ==, + } + dev: true + + /@firebase/app-check-types/0.5.0: + resolution: + { + integrity: sha512-uwSUj32Mlubybw7tedRzR24RP8M8JUVR3NPiMk3/Z4bCmgEKTlQBwMXrehDAZ2wF+TsBq0SN1c6ema71U/JPyQ==, + } + dev: true + + /@firebase/app-check/0.6.3_@firebase+app@0.9.3: + resolution: + { + integrity: sha512-T9f9ceFLs7x4D2T6whu5a6j7B3qPuYHiZHZxW6DkMh/FoMmRA4/q/HVyu01i9+LyJJx2Xdo6eCcj6ofs9YZjqA==, + } + peerDependencies: + "@firebase/app": 0.x + dependencies: + "@firebase/app": 0.9.3 + "@firebase/component": 0.6.3 + "@firebase/logger": 0.4.0 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + dev: true + + /@firebase/app-compat/0.2.3: + resolution: + { + integrity: sha512-sX6rD1KFX6K2CuCnQvc9jZLOgAFZ+sv2jKKahIl4SbTM561D682B8n4Jtx/SgDrvcTVTdb05g4NhZOws9hxYxA==, + } + dependencies: + "@firebase/app": 0.9.3 + "@firebase/component": 0.6.3 + "@firebase/logger": 0.4.0 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + dev: true + + /@firebase/app-types/0.9.0: + resolution: + { + integrity: sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q==, + } + dev: true + + /@firebase/app/0.9.3: + resolution: + { + integrity: sha512-G79JUceVDaHRZ4WkA11GyVldVXhdyRJRwWVQFFvAAVfQJLvy2TA6lQjeUn28F6FmeUWxDGwPC30bxCRWq7Op8Q==, + } + dependencies: + "@firebase/component": 0.6.3 + "@firebase/logger": 0.4.0 + "@firebase/util": 1.9.2 + idb: 7.0.1 + tslib: 2.5.0 + dev: true + + /@firebase/auth-compat/0.3.3_2nquphbz2k7fjevr4yz5c7cjmi: + resolution: + { + integrity: sha512-9asUuGtkzUVELH3LYXdiom1nVVV9bqEPqzHohanoofHL/oVTNcHZ4AQ5CXjNATfb6c1WH32U+nEuPiYg26UUIw==, + } + peerDependencies: + "@firebase/app-compat": 0.x + dependencies: + "@firebase/app-compat": 0.2.3 + "@firebase/auth": 0.21.3_@firebase+app@0.9.3 + "@firebase/auth-types": 0.12.0_rls6ojzmqtv4do6kouxcb5gfn4 + "@firebase/component": 0.6.3 + "@firebase/util": 1.9.2 + node-fetch: 2.6.7 + tslib: 2.5.0 + transitivePeerDependencies: + - "@firebase/app" + - "@firebase/app-types" + - encoding + dev: true + + /@firebase/auth-interop-types/0.2.1: + resolution: + { + integrity: sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg==, + } + dev: true + + /@firebase/auth-types/0.12.0_rls6ojzmqtv4do6kouxcb5gfn4: + resolution: + { + integrity: sha512-pPwaZt+SPOshK8xNoiQlK5XIrS97kFYc3Rc7xmy373QsOJ9MmqXxLaYssP5Kcds4wd2qK//amx/c+A8O2fVeZA==, + } + peerDependencies: + "@firebase/app-types": 0.x + "@firebase/util": 1.x + dependencies: + "@firebase/app-types": 0.9.0 + "@firebase/util": 1.9.2 + dev: true + + /@firebase/auth/0.21.3_@firebase+app@0.9.3: + resolution: + { + integrity: sha512-HPbcwgArLBVTowFcn4qaQr6LCx7BidI9yrQ5MRbQNv4PsgK/3UGpzCYaNPPbvgr9fe+0jNdJO+uC0+dk4xIzCQ==, + } + peerDependencies: + "@firebase/app": 0.x + dependencies: + "@firebase/app": 0.9.3 + "@firebase/component": 0.6.3 + "@firebase/logger": 0.4.0 + "@firebase/util": 1.9.2 + node-fetch: 2.6.7 + tslib: 2.5.0 + transitivePeerDependencies: + - encoding + dev: true + + /@firebase/component/0.6.3: + resolution: + { + integrity: sha512-rnhq5SOsB5nuJphZF50iwqnBiuuyg9kdnlUn1rBrKfu7/cUVJZF5IG1cWrL0rXXyiZW1WBI/J2pmTvVO8dStGQ==, + } + dependencies: + "@firebase/util": 1.9.2 + tslib: 2.5.0 + dev: true + + /@firebase/database-compat/0.3.3: + resolution: + { + integrity: sha512-r+L9jTbvsnb7sD+xz6UKU39DgBWqB2pyjzPNdBeriGC9Ssa2MAZe0bIqjCQg51RRXYc/aa/zK1Q2/4uesZeVgQ==, + } + dependencies: + "@firebase/component": 0.6.3 + "@firebase/database": 0.14.3 + "@firebase/database-types": 0.10.3 + "@firebase/logger": 0.4.0 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + dev: true + + /@firebase/database-types/0.10.3: + resolution: + { + integrity: sha512-Hu34CDhHYZsd2eielr0jeaWrTJk8Hz0nd7WsnYDnXtQX4i49ppgPesUzPdXVBdIBLJmT0ZZRvT7qWHknkOT+zg==, + } + dependencies: + "@firebase/app-types": 0.9.0 + "@firebase/util": 1.9.2 + dev: true + + /@firebase/database/0.14.3: + resolution: + { + integrity: sha512-J76W6N7JiVkLaAtPyjaGRkrsIu9pi6iZikuGGtGjqvV19vkn7oiL4Hbo5uTYCMd4waTUWoL9iI08eX184W+5GQ==, + } + dependencies: + "@firebase/auth-interop-types": 0.2.1 + "@firebase/component": 0.6.3 + "@firebase/logger": 0.4.0 + "@firebase/util": 1.9.2 + faye-websocket: 0.11.4 + tslib: 2.5.0 + dev: true + + /@firebase/firestore-compat/0.3.3_2nquphbz2k7fjevr4yz5c7cjmi: + resolution: + { + integrity: sha512-fMTsSC0s2cF5w2+JoB0dWD/o4kXtLrUCPGnZPuz4S0bqTN2t0vHr3gdAsQLtnadgwB78ACtinYmf4Udwx7TzDg==, + } + peerDependencies: + "@firebase/app-compat": 0.x + dependencies: + "@firebase/app-compat": 0.2.3 + "@firebase/component": 0.6.3 + "@firebase/firestore": 3.8.3_@firebase+app@0.9.3 + "@firebase/firestore-types": 2.5.1_rls6ojzmqtv4do6kouxcb5gfn4 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + transitivePeerDependencies: + - "@firebase/app" + - "@firebase/app-types" + - encoding + dev: true + + /@firebase/firestore-types/2.5.1_rls6ojzmqtv4do6kouxcb5gfn4: + resolution: + { + integrity: sha512-xG0CA6EMfYo8YeUxC8FeDzf6W3FX1cLlcAGBYV6Cku12sZRI81oWcu61RSKM66K6kUENP+78Qm8mvroBcm1whw==, + } + peerDependencies: + "@firebase/app-types": 0.x + "@firebase/util": 1.x + dependencies: + "@firebase/app-types": 0.9.0 + "@firebase/util": 1.9.2 + dev: true + + /@firebase/firestore/3.8.3_@firebase+app@0.9.3: + resolution: + { + integrity: sha512-4xR3Mqj95bxHg3hZnz0O+LQrHkjq+siT2y+B9da6u68qJ8bzzT42JaFgd1vifhbBpVbBzpFaS2RuCq2E+kGv9g==, + } + engines: { node: ">=10.10.0" } + peerDependencies: + "@firebase/app": 0.x + dependencies: + "@firebase/app": 0.9.3 + "@firebase/component": 0.6.3 + "@firebase/logger": 0.4.0 + "@firebase/util": 1.9.2 + "@firebase/webchannel-wrapper": 0.9.0 + "@grpc/grpc-js": 1.7.3 + "@grpc/proto-loader": 0.6.13 + node-fetch: 2.6.7 + tslib: 2.5.0 + transitivePeerDependencies: + - encoding + dev: true + + /@firebase/functions-compat/0.3.3_5qoz5voa527ucsvtk67mpz25ru: + resolution: + { + integrity: sha512-UIAJ2gzNq0p/61cXqkpi9DnlQt0hdlGqgmL5an7KuJth2Iv5uGpKg/+OapAZxPuiUNZgTEyZDB7kNBHvnxWq5w==, + } + peerDependencies: + "@firebase/app-compat": 0.x + dependencies: + "@firebase/app-compat": 0.2.3 + "@firebase/component": 0.6.3 + "@firebase/functions": 0.9.3_@firebase+app@0.9.3 + "@firebase/functions-types": 0.6.0 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + transitivePeerDependencies: + - "@firebase/app" + - encoding + dev: true + + /@firebase/functions-types/0.6.0: + resolution: + { + integrity: sha512-hfEw5VJtgWXIRf92ImLkgENqpL6IWpYaXVYiRkFY1jJ9+6tIhWM7IzzwbevwIIud/jaxKVdRzD7QBWfPmkwCYw==, + } + dev: true + + /@firebase/functions/0.9.3_@firebase+app@0.9.3: + resolution: + { + integrity: sha512-tPJgYY2ROQSYuzvgxZRoHeDj+Ic07/bWHwaftgTriawtupmFOkt5iikuhJSJUhaOpFh9TB335OvCXJw1N+BIlQ==, + } + peerDependencies: + "@firebase/app": 0.x + dependencies: + "@firebase/app": 0.9.3 + "@firebase/app-check-interop-types": 0.2.0 + "@firebase/auth-interop-types": 0.2.1 + "@firebase/component": 0.6.3 + "@firebase/messaging-interop-types": 0.2.0 + "@firebase/util": 1.9.2 + node-fetch: 2.6.7 + tslib: 2.5.0 + transitivePeerDependencies: + - encoding + dev: true + + /@firebase/installations-compat/0.2.3_2nquphbz2k7fjevr4yz5c7cjmi: + resolution: + { + integrity: sha512-K9rKM/ym06lkpaKz7bMLxzHK/HEk65XfLJBV+dJkIuWeO0EqqC9VFGrpWAo0QmgC4BqbU58T6VBbzoJjb0gaFw==, + } + peerDependencies: + "@firebase/app-compat": 0.x + dependencies: + "@firebase/app-compat": 0.2.3 + "@firebase/component": 0.6.3 + "@firebase/installations": 0.6.3_@firebase+app@0.9.3 + "@firebase/installations-types": 0.5.0_@firebase+app-types@0.9.0 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + transitivePeerDependencies: + - "@firebase/app" + - "@firebase/app-types" + dev: true + + /@firebase/installations-types/0.5.0_@firebase+app-types@0.9.0: + resolution: + { + integrity: sha512-9DP+RGfzoI2jH7gY4SlzqvZ+hr7gYzPODrbzVD82Y12kScZ6ZpRg/i3j6rleto8vTFC8n6Len4560FnV1w2IRg==, + } + peerDependencies: + "@firebase/app-types": 0.x + dependencies: + "@firebase/app-types": 0.9.0 + dev: true + + /@firebase/installations/0.6.3_@firebase+app@0.9.3: + resolution: + { + integrity: sha512-20JFWm+tweNoRjRbz8/Y4I7O5pUJGZsFKCkLl1qNxfNYECSfrZUuozIDJDZC/MeVn5+kB9CwjThDlgQEPrfLdg==, + } + peerDependencies: + "@firebase/app": 0.x + dependencies: + "@firebase/app": 0.9.3 + "@firebase/component": 0.6.3 + "@firebase/util": 1.9.2 + idb: 7.0.1 + tslib: 2.5.0 + dev: true + + /@firebase/logger/0.4.0: + resolution: + { + integrity: sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA==, + } + dependencies: + tslib: 2.5.0 + dev: true + + /@firebase/messaging-compat/0.2.3_5qoz5voa527ucsvtk67mpz25ru: + resolution: + { + integrity: sha512-MmuuohXV2YRzIoJmDngI5qqO/cF2q7SdAaw7k4r61W3ReJy7x4/rtqrIvwNVhM6X/X8NFGBbsYKsCfRHWjFdkg==, + } + peerDependencies: + "@firebase/app-compat": 0.x + dependencies: + "@firebase/app-compat": 0.2.3 + "@firebase/component": 0.6.3 + "@firebase/messaging": 0.12.3_@firebase+app@0.9.3 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + transitivePeerDependencies: + - "@firebase/app" + dev: true + + /@firebase/messaging-interop-types/0.2.0: + resolution: + { + integrity: sha512-ujA8dcRuVeBixGR9CtegfpU4YmZf3Lt7QYkcj693FFannwNuZgfAYaTmbJ40dtjB81SAu6tbFPL9YLNT15KmOQ==, + } + dev: true + + /@firebase/messaging/0.12.3_@firebase+app@0.9.3: + resolution: + { + integrity: sha512-a3ZKcGDiV2sKmQDB56PpgL1yjFxXCtff2+v1grnAZZ4GnfNQ74t2EHCbmgY7xRX7ThzMqug54oxhuk4ur0MIoA==, + } + peerDependencies: + "@firebase/app": 0.x + dependencies: + "@firebase/app": 0.9.3 + "@firebase/component": 0.6.3 + "@firebase/installations": 0.6.3_@firebase+app@0.9.3 + "@firebase/messaging-interop-types": 0.2.0 + "@firebase/util": 1.9.2 + idb: 7.0.1 + tslib: 2.5.0 + dev: true + + /@firebase/performance-compat/0.2.3_5qoz5voa527ucsvtk67mpz25ru: + resolution: + { + integrity: sha512-I3rqZsIhauXn4iApfj1ttKQdlti/r8OZBG4YK10vxKSdhAzTIDWDKEsdoCXvvKLwplcMv36sM3WPAPGQLqY5MQ==, + } + peerDependencies: + "@firebase/app-compat": 0.x + dependencies: + "@firebase/app-compat": 0.2.3 + "@firebase/component": 0.6.3 + "@firebase/logger": 0.4.0 + "@firebase/performance": 0.6.3_@firebase+app@0.9.3 + "@firebase/performance-types": 0.2.0 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + transitivePeerDependencies: + - "@firebase/app" + dev: true + + /@firebase/performance-types/0.2.0: + resolution: + { + integrity: sha512-kYrbr8e/CYr1KLrLYZZt2noNnf+pRwDq2KK9Au9jHrBMnb0/C9X9yWSXmZkFt4UIdsQknBq8uBB7fsybZdOBTA==, + } + dev: true + + /@firebase/performance/0.6.3_@firebase+app@0.9.3: + resolution: + { + integrity: sha512-NQmQN6Ete7i9jz1mzULJZEGvsOmwwdUy6vpqnhUxSFMYPnlBKjX+yypCUUJDDN5zff5+kfwSD1qCyUAaS0xWUA==, + } + peerDependencies: + "@firebase/app": 0.x + dependencies: + "@firebase/app": 0.9.3 + "@firebase/component": 0.6.3 + "@firebase/installations": 0.6.3_@firebase+app@0.9.3 + "@firebase/logger": 0.4.0 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + dev: true + + /@firebase/remote-config-compat/0.2.3_5qoz5voa527ucsvtk67mpz25ru: + resolution: + { + integrity: sha512-w/ZL03YgYaXq03xIRyJ5oPhXZi6iDsY/v0J9Y7I7SqxCYytEnHVrL9nvBqd9R94y5LRAVNPCLokJeeizaUz4VQ==, + } + peerDependencies: + "@firebase/app-compat": 0.x + dependencies: + "@firebase/app-compat": 0.2.3 + "@firebase/component": 0.6.3 + "@firebase/logger": 0.4.0 + "@firebase/remote-config": 0.4.3_@firebase+app@0.9.3 + "@firebase/remote-config-types": 0.3.0 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + transitivePeerDependencies: + - "@firebase/app" + dev: true + + /@firebase/remote-config-types/0.3.0: + resolution: + { + integrity: sha512-RtEH4vdcbXZuZWRZbIRmQVBNsE7VDQpet2qFvq6vwKLBIQRQR5Kh58M4ok3A3US8Sr3rubYnaGqZSurCwI8uMA==, + } + dev: true + + /@firebase/remote-config/0.4.3_@firebase+app@0.9.3: + resolution: + { + integrity: sha512-Q6d4jBWZoNt6SYq87bjtDGUHFkKwAmGnNjWyRjl14AZqE1ilgd9NZHmutharlYJ3LvxMsid80HdK5SgGEpIPfg==, + } + peerDependencies: + "@firebase/app": 0.x + dependencies: + "@firebase/app": 0.9.3 + "@firebase/component": 0.6.3 + "@firebase/installations": 0.6.3_@firebase+app@0.9.3 + "@firebase/logger": 0.4.0 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + dev: true + + /@firebase/storage-compat/0.3.1_2nquphbz2k7fjevr4yz5c7cjmi: + resolution: + { + integrity: sha512-6HaTvWsT5Yy3j4UpCZpMcFUYEkJ2XYWukdyTl02u6VjSBRLvkhOXPzEfMvgVWqhnF/rYVfPdjrZ904wk5OxtmQ==, + } + peerDependencies: + "@firebase/app-compat": 0.x + dependencies: + "@firebase/app-compat": 0.2.3 + "@firebase/component": 0.6.3 + "@firebase/storage": 0.11.1_@firebase+app@0.9.3 + "@firebase/storage-types": 0.8.0_rls6ojzmqtv4do6kouxcb5gfn4 + "@firebase/util": 1.9.2 + tslib: 2.5.0 + transitivePeerDependencies: + - "@firebase/app" + - "@firebase/app-types" + - encoding + dev: true + + /@firebase/storage-types/0.8.0_rls6ojzmqtv4do6kouxcb5gfn4: + resolution: + { + integrity: sha512-isRHcGrTs9kITJC0AVehHfpraWFui39MPaU7Eo8QfWlqW7YPymBmRgjDrlOgFdURh6Cdeg07zmkLP5tzTKRSpg==, + } + peerDependencies: + "@firebase/app-types": 0.x + "@firebase/util": 1.x + dependencies: + "@firebase/app-types": 0.9.0 + "@firebase/util": 1.9.2 + dev: true + + /@firebase/storage/0.11.1_@firebase+app@0.9.3: + resolution: + { + integrity: sha512-Xv8EG2j52ugF2xayBz26U9J0VBXHXPMVxSN+ph3R3BSoHxvMLaPu+qUYKHavSt+zbcgPH2GyBhrCdJK6SaDFPA==, + } + peerDependencies: + "@firebase/app": 0.x + dependencies: + "@firebase/app": 0.9.3 + "@firebase/component": 0.6.3 + "@firebase/util": 1.9.2 + node-fetch: 2.6.7 + tslib: 2.5.0 + transitivePeerDependencies: + - encoding + dev: true + + /@firebase/util/1.9.2: + resolution: + { + integrity: sha512-9l0uMGPGw3GsoD5khjMmYCCcMq/OR/OOSViiWMN+s2Q0pxM+fYzrii1H+r8qC/uoMjSVXomjLZt0vZIyryCqtQ==, + } + dependencies: + tslib: 2.5.0 + dev: true + + /@firebase/webchannel-wrapper/0.9.0: + resolution: + { + integrity: sha512-BpiZLBWdLFw+qFel9p3Zs1jD6QmH7Ii4aTDu6+vx8ShdidChZUXqDhYJly4ZjSgQh54miXbBgBrk0S+jTIh/Qg==, + } + dev: true + + /@floating-ui/core/1.2.1: + resolution: + { + integrity: sha512-LSqwPZkK3rYfD7GKoIeExXOyYx6Q1O4iqZWwIehDNuv3Dv425FIAE8PRwtAx1imEolFTHgBEcoFHm9MDnYgPCg==, + } + dev: true + + /@floating-ui/dom/1.2.1: + resolution: + { + integrity: sha512-Rt45SmRiV8eU+xXSB9t0uMYiQ/ZWGE/jumse2o3i5RGlyvcbqOF4q+1qBnzLE2kZ5JGhq0iMkcGXUKbFe7MpTA==, + } + dependencies: + "@floating-ui/core": 1.2.1 + dev: true + + /@floating-ui/react-dom/1.3.0_biqbaboplfbrettd7655fr4n2y: + resolution: + { + integrity: sha512-htwHm67Ji5E/pROEAr7f8IKFShuiCKHwUC/UY4vC3I5jiSvGFAYnSYiZO5MlGmads+QqvUkR9ANHEguGrDv72g==, + } + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + dependencies: + "@floating-ui/dom": 1.2.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@floating-ui/react/0.19.2_zula6vjvt3wdocc4mwcxqa6nzi: + resolution: + { + integrity: sha512-JyNk4A0Ezirq8FlXECvRtQOX/iBe5Ize0W/pLkrZjfHW9GUV7Xnq6zm6fyZuQzaHHqEnVizmvlA96e1/CkZv+w==, + } + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + dependencies: + "@floating-ui/react-dom": 1.3.0_biqbaboplfbrettd7655fr4n2y + aria-hidden: 1.2.2_pmekkgnqduwlme35zpnqhenc34 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + tabbable: 6.1.1 + transitivePeerDependencies: + - "@types/react" + dev: true + + /@grpc/grpc-js/1.7.3: + resolution: + { + integrity: sha512-H9l79u4kJ2PVSxUNA08HMYAnUBLj9v6KjYQ7SQ71hOZcEXhShE/y5iQCesP8+6/Ik/7i2O0a10bPquIcYfufog==, + } + engines: { node: ^8.13.0 || >=10.10.0 } + dependencies: + "@grpc/proto-loader": 0.7.5 + "@types/node": 18.14.0 + dev: true + + /@grpc/proto-loader/0.6.13: + resolution: + { + integrity: sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==, + } + engines: { node: ">=6" } + hasBin: true + dependencies: + "@types/long": 4.0.2 + lodash.camelcase: 4.3.0 + long: 4.0.0 + protobufjs: 6.11.3 + yargs: 16.2.0 + dev: true + + /@grpc/proto-loader/0.7.5: + resolution: + { + integrity: sha512-mfcTuMbFowq1wh/Rn5KQl6qb95M21Prej3bewD9dUQMurYGVckGO/Pbe2Ocwto6sD05b/mxZLspvqwx60xO2Rg==, + } + engines: { node: ">=6" } + hasBin: true + dependencies: + "@types/long": 4.0.2 + lodash.camelcase: 4.3.0 + long: 4.0.0 + protobufjs: 7.2.2 + yargs: 16.2.0 + dev: true + + /@jridgewell/gen-mapping/0.1.1: + resolution: + { + integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@jridgewell/set-array": 1.1.2 + "@jridgewell/sourcemap-codec": 1.4.14 + dev: true + + /@jridgewell/gen-mapping/0.3.2: + resolution: + { + integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==, + } + engines: { node: ">=6.0.0" } + dependencies: + "@jridgewell/set-array": 1.1.2 + "@jridgewell/sourcemap-codec": 1.4.14 + "@jridgewell/trace-mapping": 0.3.17 + dev: true + + /@jridgewell/resolve-uri/3.1.0: + resolution: + { + integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==, + } + engines: { node: ">=6.0.0" } + dev: true + + /@jridgewell/set-array/1.1.2: + resolution: + { + integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==, + } + engines: { node: ">=6.0.0" } + dev: true + + /@jridgewell/source-map/0.3.2: + resolution: + { + integrity: sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==, + } + dependencies: + "@jridgewell/gen-mapping": 0.3.2 + "@jridgewell/trace-mapping": 0.3.17 + dev: true + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: + { + integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==, + } + dev: true + + /@jridgewell/trace-mapping/0.3.17: + resolution: + { + integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==, + } + dependencies: + "@jridgewell/resolve-uri": 3.1.0 + "@jridgewell/sourcemap-codec": 1.4.14 + dev: true + + /@mantine/carousel/5.10.4_vnm3gwkgebougyg6u4olvdu7wu: + resolution: + { + integrity: sha512-TNWCeAsApGSzaCnzf7No6a2ugQaVPEIkJkkqS+8tbSoAhGMX4mF1xV6GaLSZxpzwLHcJvJW2aWR90NPFEY3YCQ==, + } + peerDependencies: + "@mantine/core": 5.10.4 + "@mantine/hooks": 5.10.4 + embla-carousel-react: ^7.0.0 + react: ">=16.8.0" + dependencies: + "@mantine/core": 5.10.4_xgfpbscinl7gpxk3zixgsno7yu + "@mantine/hooks": 5.10.4_react@18.2.0 + "@mantine/utils": 5.10.4_react@18.2.0 + embla-carousel-react: 7.0.9_react@18.2.0 + react: 18.2.0 + dev: true + + /@mantine/core/5.10.4_xgfpbscinl7gpxk3zixgsno7yu: + resolution: + { + integrity: sha512-HdkAfZUFDEZ+aStoxT/2ohxV0gLl2I2q32+35XpH/z6qqyhjKqI7lA7E5SB6oddIFOjCesOhIE9ob2L56dgktg==, + } + peerDependencies: + "@mantine/hooks": 5.10.4 + react: ">=16.8.0" + react-dom: ">=16.8.0" + dependencies: + "@floating-ui/react": 0.19.2_zula6vjvt3wdocc4mwcxqa6nzi + "@mantine/hooks": 5.10.4_react@18.2.0 + "@mantine/styles": 5.10.4_keyspdss4kub3atek752gc6fle + "@mantine/utils": 5.10.4_react@18.2.0 + "@radix-ui/react-scroll-area": 1.0.2_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-textarea-autosize: 8.3.4_pmekkgnqduwlme35zpnqhenc34 + transitivePeerDependencies: + - "@emotion/react" + - "@types/react" + dev: true + + /@mantine/dates/5.10.4_cshids4fm2bh7nhcqqy7euof4e: + resolution: + { + integrity: sha512-x9nUMyxnhcjGjJUS7TVYDRJkkl/hj7bN5ihGMtLoOR83c5c8XohvZ0u+Z3BbM+OF8S3GT6uHiVrBAN3c6Hcy3A==, + } + peerDependencies: + "@mantine/core": 5.10.4 + "@mantine/hooks": 5.10.4 + dayjs: ">=1.0.0" + react: ">=16.8.0" + dependencies: + "@mantine/core": 5.10.4_xgfpbscinl7gpxk3zixgsno7yu + "@mantine/hooks": 5.10.4_react@18.2.0 + "@mantine/utils": 5.10.4_react@18.2.0 + dayjs: 1.11.7 + react: 18.2.0 + dev: true + + /@mantine/dropzone/5.10.4_zvr3twhaqlaxovla5vk46k3pgm: + resolution: + { + integrity: sha512-+xCX5ghE6WsQe+aBe300BivVeVGZgfnYUeVpCUAzr08NxIcNHxOnMMnDiVninclWrkRPiL7roSR6NVe2KOL3zQ==, + } + peerDependencies: + "@mantine/core": 5.10.4 + "@mantine/hooks": 5.10.4 + react: ">=16.8.0" + react-dom: ">=16.8.0" + dependencies: + "@mantine/core": 5.10.4_xgfpbscinl7gpxk3zixgsno7yu + "@mantine/hooks": 5.10.4_react@18.2.0 + "@mantine/utils": 5.10.4_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-dropzone: 14.2.3_react@18.2.0 + dev: true + + /@mantine/ds/5.10.4_c3pncipcnbh4oolz24j7sitquy: + resolution: + { + integrity: sha512-nJy0uiN6bJ6Qa85GeK8dbAkwikIfq7dmqZ5i543dZCSin6wTFgOMQeFhg0MkIV7Ke4cPpnHEpj+KrQKRSZ2BnQ==, + } + peerDependencies: + "@mantine/core": 5.10.4 + "@mantine/hooks": 5.10.4 + "@mantine/prism": 5.10.4 + "@tabler/icons": "*" + react: ">=16.8.0" + react-dom: ">=16.8.0" + dependencies: + "@mantine/core": 5.10.4_xgfpbscinl7gpxk3zixgsno7yu + "@mantine/hooks": 5.10.4_react@18.2.0 + "@mantine/prism": 5.10.4_zvr3twhaqlaxovla5vk46k3pgm + "@mantine/utils": 5.10.4_react@18.2.0 + "@tabler/icons": 1.119.0_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@mantine/form/5.10.4_react@18.2.0: + resolution: + { + integrity: sha512-gf/aNwvWzJwqo1C98yxLK0nJJxYIxYTI7nVQ/spFlaWY+arvXgybwPsdphxdo0j3aM4xJXjC52gDMme3gQrwNw==, + } + peerDependencies: + react: ">=16.8.0" + dependencies: + fast-deep-equal: 3.1.3 + klona: 2.0.6 + react: 18.2.0 + dev: true + + /@mantine/hooks/5.10.4_react@18.2.0: + resolution: + { + integrity: sha512-HkdJWJgZvm9zkIv0gQpnobSdZ8SlGWWZwyORw3+b5SCbAn/VHq0hmGUL5uvCZ7FoFuaWC/ZTCDhospa5YVjkpg==, + } + peerDependencies: + react: ">=16.8.0" + dependencies: + react: 18.2.0 + dev: true + + /@mantine/modals/5.10.4_zvr3twhaqlaxovla5vk46k3pgm: + resolution: + { + integrity: sha512-kpkB+GQ6ZEdjSBJeKNbNTtv9j7OpM/wvnSIhE+o5k60td/5tO4uGMPpU4OfyA3cfVjHpfWxACHZAQ8xpzieJHA==, + } + peerDependencies: + "@mantine/core": 5.10.4 + "@mantine/hooks": 5.10.4 + react: ">=16.8.0" + react-dom: ">=16.8.0" + dependencies: + "@mantine/core": 5.10.4_xgfpbscinl7gpxk3zixgsno7yu + "@mantine/hooks": 5.10.4_react@18.2.0 + "@mantine/utils": 5.10.4_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@mantine/notifications/5.10.4_zvr3twhaqlaxovla5vk46k3pgm: + resolution: + { + integrity: sha512-2OyEilPfAFd/+bmYeJwLwJmY36X52kNIsnpkH4iUyDllXOVjoy1MOJTvNE1vWUP8OxbuneNIwr02xfpQ4maIfQ==, + } + peerDependencies: + "@mantine/core": 5.10.4 + "@mantine/hooks": 5.10.4 + react: ">=16.8.0" + react-dom: ">=16.8.0" + dependencies: + "@mantine/core": 5.10.4_xgfpbscinl7gpxk3zixgsno7yu + "@mantine/hooks": 5.10.4_react@18.2.0 + "@mantine/utils": 5.10.4_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-transition-group: 4.4.2_biqbaboplfbrettd7655fr4n2y + dev: true + + /@mantine/nprogress/5.10.4_zvr3twhaqlaxovla5vk46k3pgm: + resolution: + { + integrity: sha512-MB/k3hu4mu3a61RQ6rSCug8nYPabs0gBpdE+9GHjao1hlILKIdh+dE6O59VY+X3+Ls+TmG+1ebeJ2lzg9t2soA==, + } + peerDependencies: + "@mantine/core": 5.10.4 + "@mantine/hooks": 5.10.4 + react: ">=16.8.0" + react-dom: ">=16.8.0" + dependencies: + "@mantine/core": 5.10.4_xgfpbscinl7gpxk3zixgsno7yu + "@mantine/hooks": 5.10.4_react@18.2.0 + "@mantine/utils": 5.10.4_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@mantine/prism/5.10.4_zvr3twhaqlaxovla5vk46k3pgm: + resolution: + { + integrity: sha512-5JMFTj7JNvhCQmV75/TmUGOyxHS3zxadr1+273CSOj3gsZK0jfh3FwoAsMG3ziWy8vCEDPEGvHmhlzLOfiREAQ==, + } + peerDependencies: + "@mantine/core": 5.10.4 + "@mantine/hooks": 5.10.4 + react: ">=16.8.0" + react-dom: ">=16.8.0" + dependencies: + "@mantine/core": 5.10.4_xgfpbscinl7gpxk3zixgsno7yu + "@mantine/hooks": 5.10.4_react@18.2.0 + "@mantine/utils": 5.10.4_react@18.2.0 + prism-react-renderer: 1.3.5_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@mantine/spotlight/5.10.4_zvr3twhaqlaxovla5vk46k3pgm: + resolution: + { + integrity: sha512-gtEVWIPrFHDyGNRx5iKOQMFZiY3BHPAx/vZT3JhWfb+hzA9reMi9UY8s9vpqGOZcLHrvf8YM4IQt6phQkKighA==, + } + peerDependencies: + "@mantine/core": 5.10.4 + "@mantine/hooks": 5.10.4 + react: ">=16.8.0" + react-dom: ">=16.8.0" + dependencies: + "@mantine/core": 5.10.4_xgfpbscinl7gpxk3zixgsno7yu + "@mantine/hooks": 5.10.4_react@18.2.0 + "@mantine/utils": 5.10.4_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@mantine/styles/5.10.4_keyspdss4kub3atek752gc6fle: + resolution: + { + integrity: sha512-THJ9biAFwh3mxRkmSGMf1SDcgDyeIA1obs53W/HEiHAgbkU8HwgoJo1Vrq4aYQfEACU7KNnoRn9ICaVjMjrF/A==, + } + peerDependencies: + "@emotion/react": ">=11.9.0" + react: ">=16.8.0" + react-dom: ">=16.8.0" + dependencies: + "@emotion/react": 11.10.6_pmekkgnqduwlme35zpnqhenc34 + clsx: 1.1.1 + csstype: 3.0.9 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@mantine/tiptap/5.10.4_p7uw3npspt5pizhw5two4in4pi: + resolution: + { + integrity: sha512-9EXrolNl2bB9FA1ScISPrwk5FjWX5b+FXrtCtiEQFEfOQ4pwuW+J9LTt8FOV3qEQBeCd+U07VjSCtEyjflqnjA==, + } + peerDependencies: + "@mantine/core": 5.10.4 + "@mantine/hooks": 5.10.4 + "@tabler/icons": ^1.119.0 + "@tiptap/extension-link": ^2.0.0-beta.202 + "@tiptap/react": ^2.0.0-beta.202 + react: ">=16.8.0" + dependencies: + "@mantine/core": 5.10.4_xgfpbscinl7gpxk3zixgsno7yu + "@mantine/hooks": 5.10.4_react@18.2.0 + "@mantine/utils": 5.10.4_react@18.2.0 + "@tabler/icons": 1.119.0_biqbaboplfbrettd7655fr4n2y + "@tiptap/extension-link": 2.0.0-beta.217 + "@tiptap/react": 2.0.0-beta.217_biqbaboplfbrettd7655fr4n2y + react: 18.2.0 + dev: true + + /@mantine/utils/5.10.4_react@18.2.0: + resolution: + { + integrity: sha512-Xrx7Pk+GOwk/0P0qa/JEknZ5AzUBRnD+Ghz1Wu3z4w32NwsNSgq/8YvFVhvxAP7FMbi7Z5xicHzHmhXy1BvZrw==, + } + peerDependencies: + react: ">=16.8.0" + dependencies: + react: 18.2.0 + dev: true + + /@nodelib/fs.scandir/2.1.5: + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: ">= 8" } + dependencies: + "@nodelib/fs.stat": 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat/2.0.5: + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: ">= 8" } + dev: true + + /@nodelib/fs.walk/1.2.8: + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: ">= 8" } + dependencies: + "@nodelib/fs.scandir": 2.1.5 + fastq: 1.15.0 + dev: true + + /@popperjs/core/2.11.6: + resolution: + { + integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==, + } + dev: true + + /@protobufjs/aspromise/1.1.2: + resolution: + { + integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==, + } + dev: true + + /@protobufjs/base64/1.1.2: + resolution: + { + integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==, + } + dev: true + + /@protobufjs/codegen/2.0.4: + resolution: + { + integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==, + } + dev: true + + /@protobufjs/eventemitter/1.1.0: + resolution: + { + integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==, + } + dev: true + + /@protobufjs/fetch/1.1.0: + resolution: + { + integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==, + } + dependencies: + "@protobufjs/aspromise": 1.1.2 + "@protobufjs/inquire": 1.1.0 + dev: true + + /@protobufjs/float/1.0.2: + resolution: + { + integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==, + } + dev: true + + /@protobufjs/inquire/1.1.0: + resolution: + { + integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==, + } + dev: true + + /@protobufjs/path/1.1.2: + resolution: + { + integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==, + } + dev: true + + /@protobufjs/pool/1.1.0: + resolution: + { + integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==, + } + dev: true + + /@protobufjs/utf8/1.1.0: + resolution: + { + integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==, + } + dev: true + + /@radix-ui/number/1.0.0: + resolution: + { + integrity: sha512-Ofwh/1HX69ZfJRiRBMTy7rgjAzHmwe4kW9C9Y99HTRUcYLUuVT0KESFj15rPjRgKJs20GPq8Bm5aEDJ8DuA3vA==, + } + dependencies: + "@babel/runtime": 7.21.0 + dev: true + + /@radix-ui/primitive/1.0.0: + resolution: + { + integrity: sha512-3e7rn8FDMin4CgeL7Z/49smCA3rFYY3Ha2rUQ7HRWFadS5iCRw08ZgVT1LaNTCNqgvrUiyczLflrVrF0SRQtNA==, + } + dependencies: + "@babel/runtime": 7.21.0 + dev: true + + /@radix-ui/react-compose-refs/1.0.0_react@18.2.0: + resolution: + { + integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + "@babel/runtime": 7.21.0 + react: 18.2.0 + dev: true + + /@radix-ui/react-context/1.0.0_react@18.2.0: + resolution: + { + integrity: sha512-1pVM9RfOQ+n/N5PJK33kRSKsr1glNxomxONs5c49MliinBY6Yw2Q995qfBUUo0/Mbg05B/sGA0gkgPI7kmSHBg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + "@babel/runtime": 7.21.0 + react: 18.2.0 + dev: true + + /@radix-ui/react-direction/1.0.0_react@18.2.0: + resolution: + { + integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + "@babel/runtime": 7.21.0 + react: 18.2.0 + dev: true + + /@radix-ui/react-presence/1.0.0_biqbaboplfbrettd7655fr4n2y: + resolution: + { + integrity: sha512-A+6XEvN01NfVWiKu38ybawfHsBjWum42MRPnEuqPsBZ4eV7e/7K321B5VgYMPv3Xx5An6o1/l9ZuDBgmcmWK3w==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + "@babel/runtime": 7.21.0 + "@radix-ui/react-compose-refs": 1.0.0_react@18.2.0 + "@radix-ui/react-use-layout-effect": 1.0.0_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/react-primitive/1.0.1_biqbaboplfbrettd7655fr4n2y: + resolution: + { + integrity: sha512-fHbmislWVkZaIdeF6GZxF0A/NH/3BjrGIYj+Ae6eTmTCr7EB0RQAAVEiqsXK6p3/JcRqVSBQoceZroj30Jj3XA==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + "@babel/runtime": 7.21.0 + "@radix-ui/react-slot": 1.0.1_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/react-scroll-area/1.0.2_biqbaboplfbrettd7655fr4n2y: + resolution: + { + integrity: sha512-k8VseTxI26kcKJaX0HPwkvlNBPTs56JRdYzcZ/vzrNUkDlvXBy8sMc7WvCpYzZkHgb+hd72VW9MqkqecGtuNgg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + "@babel/runtime": 7.21.0 + "@radix-ui/number": 1.0.0 + "@radix-ui/primitive": 1.0.0 + "@radix-ui/react-compose-refs": 1.0.0_react@18.2.0 + "@radix-ui/react-context": 1.0.0_react@18.2.0 + "@radix-ui/react-direction": 1.0.0_react@18.2.0 + "@radix-ui/react-presence": 1.0.0_biqbaboplfbrettd7655fr4n2y + "@radix-ui/react-primitive": 1.0.1_biqbaboplfbrettd7655fr4n2y + "@radix-ui/react-use-callback-ref": 1.0.0_react@18.2.0 + "@radix-ui/react-use-layout-effect": 1.0.0_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@radix-ui/react-slot/1.0.1_react@18.2.0: + resolution: + { + integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + "@babel/runtime": 7.21.0 + "@radix-ui/react-compose-refs": 1.0.0_react@18.2.0 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-callback-ref/1.0.0_react@18.2.0: + resolution: + { + integrity: sha512-GZtyzoHz95Rhs6S63D2t/eqvdFCm7I+yHMLVQheKM7nBD8mbZIt+ct1jz4536MDnaOGKIxynJ8eHTkVGVVkoTg==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + "@babel/runtime": 7.21.0 + react: 18.2.0 + dev: true + + /@radix-ui/react-use-layout-effect/1.0.0_react@18.2.0: + resolution: + { + integrity: sha512-6Tpkq+R6LOlmQb1R5NNETLG0B4YP0wc+klfXafpUCj6JGyaUc8il7/kUZ7m59rGbXGczE9Bs+iz2qloqsZBduQ==, + } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + dependencies: + "@babel/runtime": 7.21.0 + react: 18.2.0 + dev: true + + /@remix-run/router/1.3.2: + resolution: + { + integrity: sha512-t54ONhl/h75X94SWsHGQ4G/ZrCEguKSRQr7DrjTciJXW0YU1QhlwYeycvK5JgkzlxmvrK7wq1NB/PLtHxoiDcA==, + } + engines: { node: ">=14" } + dev: true + + /@rollup/plugin-babel/5.3.1_4tnfxcmsyr7y5qv3uwkivwqysm: + resolution: + { + integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==, + } + engines: { node: ">= 10.0.0" } + peerDependencies: + "@babel/core": ^7.0.0 + "@types/babel__core": ^7.1.9 + rollup: ^1.20.0||^2.0.0 + peerDependenciesMeta: + "@types/babel__core": + optional: true + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-module-imports": 7.18.6 + "@rollup/pluginutils": 3.1.0_rollup@2.79.1 + rollup: 2.79.1 + dev: true + + /@rollup/plugin-node-resolve/11.2.1_rollup@2.79.1: + resolution: + { + integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==, + } + engines: { node: ">= 10.0.0" } + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + "@rollup/pluginutils": 3.1.0_rollup@2.79.1 + "@types/resolve": 1.17.1 + builtin-modules: 3.3.0 + deepmerge: 4.3.0 + is-module: 1.0.0 + resolve: 1.22.1 + rollup: 2.79.1 + dev: true + + /@rollup/plugin-replace/2.4.2_rollup@2.79.1: + resolution: + { + integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==, + } + peerDependencies: + rollup: ^1.20.0 || ^2.0.0 + dependencies: + "@rollup/pluginutils": 3.1.0_rollup@2.79.1 + magic-string: 0.25.9 + rollup: 2.79.1 + dev: true + + /@rollup/plugin-replace/5.0.2_rollup@3.17.2: + resolution: + { + integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==, + } + engines: { node: ">=14.0.0" } + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + "@rollup/pluginutils": 5.0.2_rollup@3.17.2 + magic-string: 0.27.0 + rollup: 3.17.2 + dev: true + + /@rollup/pluginutils/3.1.0_rollup@2.79.1: + resolution: + { + integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, + } + engines: { node: ">= 8.0.0" } + peerDependencies: + rollup: ^1.20.0||^2.0.0 + dependencies: + "@types/estree": 0.0.39 + estree-walker: 1.0.1 + picomatch: 2.3.1 + rollup: 2.79.1 + dev: true + + /@rollup/pluginutils/5.0.2_rollup@3.17.2: + resolution: + { + integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==, + } + engines: { node: ">=14.0.0" } + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + "@types/estree": 1.0.0 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 3.17.2 + dev: true + + /@surma/rollup-plugin-off-main-thread/2.2.3: + resolution: + { + integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==, + } + dependencies: + ejs: 3.1.8 + json5: 2.2.3 + magic-string: 0.25.9 + string.prototype.matchall: 4.0.8 + dev: true + + /@tabler/icons/1.119.0_biqbaboplfbrettd7655fr4n2y: + resolution: + { + integrity: sha512-Fk3Qq4w2SXcTjc/n1cuL5bccPkylrOMo7cYpQIf/yw6zP76LQV9dtLcHQUjFiUnaYuswR645CnURIhlafyAh9g==, + } + peerDependencies: + react: ^16.x || 17.x || 18.x + react-dom: ^16.x || 17.x || 18.x + peerDependenciesMeta: + react: + optional: true + react-dom: + optional: true + dependencies: + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@tiptap/core/2.0.0-beta.218: + resolution: + { + integrity: sha512-RCrT4AYgH+2mQtt26EkFjIkGZGsuT7vKTbknEhpXdhWgbxy/fg65WyPs8hQMyocjOqPX2vbike4PfqWi9nBqCw==, + } + peerDependencies: + "@tiptap/pm": ^2.0.0-beta.209 + dev: true + + /@tiptap/extension-blockquote/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-cQ1mjWjSqe6ztglfRRBIAzZ+6Ro5jN7QpSstVMravqW3lu52omXqYx5SfDNycoO6574BoSw2Wijz36RwQLeAsQ==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.1 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-bold/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-XKQ9QiXspGLY9LyZVhPTQFfJQEDzrwCigILG+QwM3WAp/hKNDJsUy4GXRl/Rdtx+5mfqGyh+Zlo41xF2WhoKUg==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-bubble-menu/2.0.0-beta.218: + resolution: + { + integrity: sha512-NXVaRSoweM54AGCJCJWkY3D9CfYlARtC04+7T8EF0Dwz99RcVzDHCXaNJGk+rMH7vGxsJop4RxHEQO/D2pgADw==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + "@tiptap/pm": ^2.0.0-beta.209 + dependencies: + lodash: 4.17.21 + tippy.js: 6.3.7 + dev: true + + /@tiptap/extension-bullet-list/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-pf4MMcM65tYLauogxfIsvmFf5pqV9hlTAsgsQhPw2L3ayceOr6JvmiGHBVlZifhNcIuSDY/3i2Ft/O4tKFncbQ==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-code-block/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-ajmHrZ2xDgCjLaokvmdiI7fETqRyvI/qHD4jzmzMTKdIiwLzwCgTVmbU73TmZSdR1+fO+pyDTp48YIxDy9zRdA==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + "@tiptap/pm": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-code/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-i/gJuY78+QWTc4LeSHM613IxKCC63oqGKounl+xlBqtH6b/w9Rx8R6WJQIz78Mth5dQHKTSUPwjR5+UcmKhFRA==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-document/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-bpNhUEho8sbjLVYGX+jkqZv//2OVFs0RhiNtMJ1SUbdr9LDJu+KMo86KUkTkRPPgoJPDkEViIgNrYcc66MFxmQ==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-dropcursor/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-RvYB0koNJs3ETcVnzwda0hhDxCa2hoKW1C3WiRKg1+pYA5oW12NtiNWqViQKkSn1ugQXXzhdxMHGCSr4BczmAA==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + "@tiptap/pm": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-floating-menu/2.0.0-beta.218: + resolution: + { + integrity: sha512-OzmucdEJOK7Geq6C3oBZg1m1lBrAAm6SyMPn+0fN83ijixYJAChi7c20A+mrR6aeTlmjASi2CXFkrrVmNV7ZDQ==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + "@tiptap/pm": ^2.0.0-beta.209 + dependencies: + tippy.js: 6.3.7 + dev: true + + /@tiptap/extension-gapcursor/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-buawfpYb+wgXj+01qLb58Cv9x6dhcM4oHoFggBRo8E3mj561plfDKWK45OZIbyqRQeE8U3bbwfSYgail5wd7JA==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + "@tiptap/pm": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-hard-break/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-mAtjRjkEQ2I+WGTOn90SefRvpF/HVVLRji9jidPTCnTVOJzEYax5xPlr5vFh2N4wcprWWi/T5qcwybs1oV3uig==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-heading/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-JYkDLk19wFdjHG1prUfNV6EzZuDt9P5psaPaiwGoAujUMHKBJTllSC+UZ4H7YL87RpUIPs5GHQMWL91HP+0RYQ==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-history/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-4xfEKWGHU2785vUXXaIguxIaKKQ3b+z7463QhF2qhcpm5Ip6eupYbbE0jy8S12wSujhrjk88W0Ud6n3puV73xA==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + "@tiptap/pm": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-horizontal-rule/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-JlKMzqgheujKkx0ZQvUCO+WkIUQQKkWMiUSEsTaAvgIfzI97dKuP/r7CsgZczurtJ9edRPmQqMRwxZ4XLtC/aQ==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + "@tiptap/pm": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-italic/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-+/NRGoLQXi+CCziVT7MixB10jC72c5BCG6w15H4hfHkD+eJc/DfzLCuIaePzYCZC/xqjNI/EBNh6BP3HTMHCpQ==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-link/2.0.0-beta.217: + resolution: + { + integrity: sha512-pC1UnK1OrbW+NDdBdHE8sfmZ+tOpIOsHVAeeX6pg1fkdP/FlbPFFvcvILgJc20dr7DiM6dRqYq16H473G9vyEg==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + "@tiptap/pm": ^2.0.0-beta.209 + dependencies: + linkifyjs: 3.0.5 + dev: true + + /@tiptap/extension-list-item/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-ZqSA0dZAzACYgfFAM+RWCRhMPUcZiWT8JhpN/2on0egI+b1gtt2RAA4niBaNFp4skGQS8a4bCy5cttIHUNO7FA==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-ordered-list/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-Oe/Kl6+mNSBOpF4fXeQxFXu7/fMFPwn3UZ2hR+DTIJkoLbviKehcxSInqWmUV0n5FbEr3usErPDYDDrCH+zEVw==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-paragraph/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-qBNGJl0r/uufPoC02fqdjRQBmafE3zd+uPevtN+Nozze4kBc5VIlkLMw6VR83jMMeWKNhbQ97aCCYQYjCabaDw==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-strike/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-PZ3FGmh3XkdQqRIfMZrHApFVerf/2vQu0V1IWTxUDpaUSD/TL5A1dp3R/O/dlVauhKV3zDs/XGfepXJ99fyXAg==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/extension-text/2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4: + resolution: + { + integrity: sha512-Z14dRRIjQwPGJD3+joD3nEs6NcQUORuPXa2BDWsFcAb6R+yPz7j9Wpn4nkcWCw2CIqnMm17ERs+KSSvKvzWY6Q==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + dependencies: + "@tiptap/core": 2.0.0-beta.218 + dev: true + + /@tiptap/react/2.0.0-beta.217_biqbaboplfbrettd7655fr4n2y: + resolution: + { + integrity: sha512-aNyvte3fuY97SFilldaz36g2D36D86UZSb/jjxTEAhYc6F4pY8O/4sh20fw6zvoeKAW4DTH/r8v0BRc18+Vm3g==, + } + peerDependencies: + "@tiptap/core": ^2.0.0-beta.209 + "@tiptap/pm": ^2.0.0-beta.209 + react: ^17.0.0 || ^18.0.0 + react-dom: ^17.0.0 || ^18.0.0 + dependencies: + "@tiptap/extension-bubble-menu": 2.0.0-beta.218 + "@tiptap/extension-floating-menu": 2.0.0-beta.218 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /@tiptap/starter-kit/2.0.0-beta.217: + resolution: + { + integrity: sha512-9FPH8lOP0AfRMKm2OUy2OQKEdcIo2ic7MNO2Jtd5vcUz1skfaQPjYLJYHbhkw2iH0ILUOPPbGpZuIlV8uqSu/g==, + } + dependencies: + "@tiptap/core": 2.0.0-beta.218 + "@tiptap/extension-blockquote": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-bold": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-bullet-list": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-code": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-code-block": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-document": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-dropcursor": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-gapcursor": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-hard-break": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-heading": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-history": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-horizontal-rule": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-italic": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-list-item": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-ordered-list": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-paragraph": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-strike": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + "@tiptap/extension-text": 2.0.0-beta.218_xixjdlstfbsoyvyes7aewz3ng4 + transitivePeerDependencies: + - "@tiptap/pm" + dev: true + + /@types/d3-array/3.0.4: + resolution: + { + integrity: sha512-nwvEkG9vYOc0Ic7G7kwgviY4AQlTfYGIZ0fqB7CQHXGyYM6nO7kJh5EguSNA3jfh4rq7Sb7eMVq8isuvg2/miQ==, + } + dev: true + + /@types/d3-axis/3.0.2: + resolution: + { + integrity: sha512-uGC7DBh0TZrU/LY43Fd8Qr+2ja1FKmH07q2FoZFHo1eYl8aj87GhfVoY1saJVJiq24rp1+wpI6BvQJMKgQm8oA==, + } + dependencies: + "@types/d3-selection": 3.0.4 + dev: true + + /@types/d3-brush/3.0.2: + resolution: + { + integrity: sha512-2TEm8KzUG3N7z0TrSKPmbxByBx54M+S9lHoP2J55QuLU0VSQ9mE96EJSAOVNEqd1bbynMjeTS9VHmz8/bSw8rA==, + } + dependencies: + "@types/d3-selection": 3.0.4 + dev: true + + /@types/d3-chord/3.0.2: + resolution: + { + integrity: sha512-abT/iLHD3sGZwqMTX1TYCMEulr+wBd0SzyOQnjYNLp7sngdOHYtNkMRI5v3w5thoN+BWtlHVDx2Osvq6fxhZWw==, + } + dev: true + + /@types/d3-color/3.1.0: + resolution: + { + integrity: sha512-HKuicPHJuvPgCD+np6Se9MQvS6OCbJmOjGvylzMJRlDwUXjKTTXs6Pwgk79O09Vj/ho3u1ofXnhFOaEWWPrlwA==, + } + dev: true + + /@types/d3-contour/3.0.2: + resolution: + { + integrity: sha512-k6/bGDoAGJZnZWaKzeB+9glgXCYGvh6YlluxzBREiVo8f/X2vpTEdgPy9DN7Z2i42PZOZ4JDhVdlTSTSkLDPlQ==, + } + dependencies: + "@types/d3-array": 3.0.4 + "@types/geojson": 7946.0.10 + dev: true + + /@types/d3-delaunay/6.0.1: + resolution: + { + integrity: sha512-tLxQ2sfT0p6sxdG75c6f/ekqxjyYR0+LwPrsO1mbC9YDBzPJhs2HbJJRrn8Ez1DBoHRo2yx7YEATI+8V1nGMnQ==, + } + dev: true + + /@types/d3-dispatch/3.0.2: + resolution: + { + integrity: sha512-rxN6sHUXEZYCKV05MEh4z4WpPSqIw+aP7n9ZN6WYAAvZoEAghEK1WeVZMZcHRBwyaKflU43PCUAJNjFxCzPDjg==, + } + dev: true + + /@types/d3-drag/3.0.2: + resolution: + { + integrity: sha512-qmODKEDvyKWVHcWWCOVcuVcOwikLVsyc4q4EBJMREsoQnR2Qoc2cZQUyFUPgO9q4S3qdSqJKBsuefv+h0Qy+tw==, + } + dependencies: + "@types/d3-selection": 3.0.4 + dev: true + + /@types/d3-dsv/3.0.1: + resolution: + { + integrity: sha512-76pBHCMTvPLt44wFOieouXcGXWOF0AJCceUvaFkxSZEu4VDUdv93JfpMa6VGNFs01FHfuP4a5Ou68eRG1KBfTw==, + } + dev: true + + /@types/d3-ease/3.0.0: + resolution: + { + integrity: sha512-aMo4eaAOijJjA6uU+GIeW018dvy9+oH5Y2VPPzjjfxevvGQ/oRDs+tfYC9b50Q4BygRR8yE2QCLsrT0WtAVseA==, + } + dev: true + + /@types/d3-fetch/3.0.2: + resolution: + { + integrity: sha512-gllwYWozWfbep16N9fByNBDTkJW/SyhH6SGRlXloR7WdtAaBui4plTP+gbUgiEot7vGw/ZZop1yDZlgXXSuzjA==, + } + dependencies: + "@types/d3-dsv": 3.0.1 + dev: true + + /@types/d3-force/3.0.4: + resolution: + { + integrity: sha512-q7xbVLrWcXvSBBEoadowIUJ7sRpS1yvgMWnzHJggFy5cUZBq2HZL5k/pBSm0GdYWS1vs5/EDwMjSKF55PDY4Aw==, + } + dev: true + + /@types/d3-format/3.0.1: + resolution: + { + integrity: sha512-5KY70ifCCzorkLuIkDe0Z9YTf9RR2CjBX1iaJG+rgM/cPP+sO+q9YdQ9WdhQcgPj1EQiJ2/0+yUkkziTG6Lubg==, + } + dev: true + + /@types/d3-geo/3.0.3: + resolution: + { + integrity: sha512-bK9uZJS3vuDCNeeXQ4z3u0E7OeJZXjUgzFdSOtNtMCJCLvDtWDwfpRVWlyt3y8EvRzI0ccOu9xlMVirawolSCw==, + } + dependencies: + "@types/geojson": 7946.0.10 + dev: true + + /@types/d3-hierarchy/3.1.2: + resolution: + { + integrity: sha512-9hjRTVoZjRFR6xo8igAJyNXQyPX6Aq++Nhb5ebrUF414dv4jr2MitM2fWiOY475wa3Za7TOS2Gh9fmqEhLTt0A==, + } + dev: true + + /@types/d3-interpolate/3.0.1: + resolution: + { + integrity: sha512-jx5leotSeac3jr0RePOH1KdR9rISG91QIE4Q2PYTu4OymLTZfA3SrnURSLzKH48HmXVUru50b8nje4E79oQSQw==, + } + dependencies: + "@types/d3-color": 3.1.0 + dev: true + + /@types/d3-path/3.0.0: + resolution: + { + integrity: sha512-0g/A+mZXgFkQxN3HniRDbXMN79K3CdTpLsevj+PXiTcb2hVyvkZUBg37StmgCQkaD84cUJ4uaDAWq7UJOQy2Tg==, + } + dev: true + + /@types/d3-polygon/3.0.0: + resolution: + { + integrity: sha512-D49z4DyzTKXM0sGKVqiTDTYr+DHg/uxsiWDAkNrwXYuiZVd9o9wXZIo+YsHkifOiyBkmSWlEngHCQme54/hnHw==, + } + dev: true + + /@types/d3-quadtree/3.0.2: + resolution: + { + integrity: sha512-QNcK8Jguvc8lU+4OfeNx+qnVy7c0VrDJ+CCVFS9srBo2GL9Y18CnIxBdTF3v38flrGy5s1YggcoAiu6s4fLQIw==, + } + dev: true + + /@types/d3-random/3.0.1: + resolution: + { + integrity: sha512-IIE6YTekGczpLYo/HehAy3JGF1ty7+usI97LqraNa8IiDur+L44d0VOjAvFQWJVdZOJHukUJw+ZdZBlgeUsHOQ==, + } + dev: true + + /@types/d3-scale-chromatic/3.0.0: + resolution: + { + integrity: sha512-dsoJGEIShosKVRBZB0Vo3C8nqSDqVGujJU6tPznsBJxNJNwMF8utmS83nvCBKQYPpjCzaaHcrf66iTRpZosLPw==, + } + dev: true + + /@types/d3-scale/4.0.3: + resolution: + { + integrity: sha512-PATBiMCpvHJSMtZAMEhc2WyL+hnzarKzI6wAHYjhsonjWJYGq5BXTzQjv4l8m2jO183/4wZ90rKvSeT7o72xNQ==, + } + dependencies: + "@types/d3-time": 3.0.0 + dev: true + + /@types/d3-selection/3.0.4: + resolution: + { + integrity: sha512-ZeykX7286BCyMg9sH5fIAORyCB6hcATPSRQpN47jwBA2bMbAT0s+EvtDP5r1FZYJ95R8QoEE1CKJX+n0/M5Vhg==, + } + dev: true + + /@types/d3-shape/3.1.1: + resolution: + { + integrity: sha512-6Uh86YFF7LGg4PQkuO2oG6EMBRLuW9cbavUW46zkIO5kuS2PfTqo2o9SkgtQzguBHbLgNnU90UNsITpsX1My+A==, + } + dependencies: + "@types/d3-path": 3.0.0 + dev: true + + /@types/d3-time-format/4.0.0: + resolution: + { + integrity: sha512-yjfBUe6DJBsDin2BMIulhSHmr5qNR5Pxs17+oW4DoVPyVIXZ+m6bs7j1UVKP08Emv6jRmYrYqxYzO63mQxy1rw==, + } + dev: true + + /@types/d3-time/3.0.0: + resolution: + { + integrity: sha512-sZLCdHvBUcNby1cB6Fd3ZBrABbjz3v1Vm90nysCQ6Vt7vd6e/h9Lt7SiJUoEX0l4Dzc7P5llKyhqSi1ycSf1Hg==, + } + dev: true + + /@types/d3-timer/3.0.0: + resolution: + { + integrity: sha512-HNB/9GHqu7Fo8AQiugyJbv6ZxYz58wef0esl4Mv828w1ZKpAshw/uFWVDUcIB9KKFeFKoxS3cHY07FFgtTRZ1g==, + } + dev: true + + /@types/d3-transition/3.0.3: + resolution: + { + integrity: sha512-/S90Od8Id1wgQNvIA8iFv9jRhCiZcGhPd2qX0bKF/PS+y0W5CrXKgIiELd2CvG1mlQrWK/qlYh3VxicqG1ZvgA==, + } + dependencies: + "@types/d3-selection": 3.0.4 + dev: true + + /@types/d3-zoom/3.0.2: + resolution: + { + integrity: sha512-t09DDJVBI6AkM7N8kuPsnq/3d/ehtRKBN1xSiYjjMCgbiw6HM6Ged5VhvswmhprfKyGvzeTEL/4WBaK9llWvlA==, + } + dependencies: + "@types/d3-interpolate": 3.0.1 + "@types/d3-selection": 3.0.4 + dev: true + + /@types/d3/7.4.0: + resolution: + { + integrity: sha512-jIfNVK0ZlxcuRDKtRS/SypEyOQ6UHaFQBKv032X45VvxSJ6Yi5G9behy9h6tNTHTDGh5Vq+KbmBjUWLgY4meCA==, + } + dependencies: + "@types/d3-array": 3.0.4 + "@types/d3-axis": 3.0.2 + "@types/d3-brush": 3.0.2 + "@types/d3-chord": 3.0.2 + "@types/d3-color": 3.1.0 + "@types/d3-contour": 3.0.2 + "@types/d3-delaunay": 6.0.1 + "@types/d3-dispatch": 3.0.2 + "@types/d3-drag": 3.0.2 + "@types/d3-dsv": 3.0.1 + "@types/d3-ease": 3.0.0 + "@types/d3-fetch": 3.0.2 + "@types/d3-force": 3.0.4 + "@types/d3-format": 3.0.1 + "@types/d3-geo": 3.0.3 + "@types/d3-hierarchy": 3.1.2 + "@types/d3-interpolate": 3.0.1 + "@types/d3-path": 3.0.0 + "@types/d3-polygon": 3.0.0 + "@types/d3-quadtree": 3.0.2 + "@types/d3-random": 3.0.1 + "@types/d3-scale": 4.0.3 + "@types/d3-scale-chromatic": 3.0.0 + "@types/d3-selection": 3.0.4 + "@types/d3-shape": 3.1.1 + "@types/d3-time": 3.0.0 + "@types/d3-time-format": 4.0.0 + "@types/d3-timer": 3.0.0 + "@types/d3-transition": 3.0.3 + "@types/d3-zoom": 3.0.2 + dev: true + + /@types/estree/0.0.39: + resolution: + { + integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, + } + dev: true + + /@types/estree/1.0.0: + resolution: + { + integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==, + } + dev: true + + /@types/geojson/7946.0.10: + resolution: + { + integrity: sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==, + } + dev: true + + /@types/long/4.0.2: + resolution: + { + integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==, + } + dev: true + + /@types/node/18.14.0: + resolution: + { + integrity: sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A==, + } + dev: true + + /@types/parse-json/4.0.0: + resolution: + { + integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==, + } + dev: true + + /@types/prop-types/15.7.5: + resolution: + { + integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==, + } + dev: true + + /@types/react-dom/18.0.11: + resolution: + { + integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==, + } + dependencies: + "@types/react": 18.0.28 + dev: true + + /@types/react/18.0.28: + resolution: + { + integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==, + } + dependencies: + "@types/prop-types": 15.7.5 + "@types/scheduler": 0.16.2 + csstype: 3.1.1 + dev: true + + /@types/resolve/1.17.1: + resolution: + { + integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==, + } + dependencies: + "@types/node": 18.14.0 + dev: true + + /@types/scheduler/0.16.2: + resolution: + { + integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==, + } + dev: true + + /@types/trusted-types/2.0.3: + resolution: + { + integrity: sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g==, + } + dev: true + + /@vitejs/plugin-react/3.1.0_vite@4.1.4: + resolution: + { + integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==, + } + engines: { node: ^14.18.0 || >=16.0.0 } + peerDependencies: + vite: ^4.1.0-beta.0 + dependencies: + "@babel/core": 7.21.0 + "@babel/plugin-transform-react-jsx-self": 7.21.0_@babel+core@7.21.0 + "@babel/plugin-transform-react-jsx-source": 7.19.6_@babel+core@7.21.0 + magic-string: 0.27.0 + react-refresh: 0.14.0 + vite: 4.1.4 + transitivePeerDependencies: + - supports-color + dev: true + + /acorn/8.8.2: + resolution: + { + integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==, + } + engines: { node: ">=0.4.0" } + hasBin: true + dev: true + + /ajv/8.12.0: + resolution: + { + integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, + } + dependencies: + fast-deep-equal: 3.1.3 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + uri-js: 4.4.1 + dev: true + + /ansi-regex/5.0.1: + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: ">=8" } + dev: true + + /ansi-styles/3.2.1: + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: ">=4" } + dependencies: + color-convert: 1.9.3 + dev: true + + /ansi-styles/4.3.0: + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: ">=8" } + dependencies: + color-convert: 2.0.1 + dev: true + + /aria-hidden/1.2.2_pmekkgnqduwlme35zpnqhenc34: + resolution: + { + integrity: sha512-6y/ogyDTk/7YAe91T3E2PR1ALVKyM2QbTio5HwM+N1Q6CMlCKhvClyIjkckBswa0f2xJhjsfzIGa1yVSe1UMVA==, + } + engines: { node: ">=10" } + peerDependencies: + "@types/react": ^16.9.0 || ^17.0.0 || ^18.0.0 + react: ^16.9.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + dependencies: + "@types/react": 18.0.28 + react: 18.2.0 + tslib: 2.5.0 + dev: true + + /async/3.2.4: + resolution: + { + integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==, + } + dev: true + + /at-least-node/1.0.0: + resolution: + { + integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, + } + engines: { node: ">= 4.0.0" } + dev: true + + /attr-accept/2.2.2: + resolution: + { + integrity: sha512-7prDjvt9HmqiZ0cl5CRjtS84sEyhsHP2coDkaZKRKVfCDo9s7iw7ChVmar78Gu9pC4SoR/28wFu/G5JJhTnqEg==, + } + engines: { node: ">=4" } + dev: true + + /available-typed-arrays/1.0.5: + resolution: + { + integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==, + } + engines: { node: ">= 0.4" } + dev: true + + /babel-plugin-macros/3.1.0: + resolution: + { + integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==, + } + engines: { node: ">=10", npm: ">=6" } + dependencies: + "@babel/runtime": 7.21.0 + cosmiconfig: 7.1.0 + resolve: 1.22.1 + dev: true + + /babel-plugin-polyfill-corejs2/0.3.3_@babel+core@7.21.0: + resolution: + { + integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/compat-data": 7.21.0 + "@babel/core": 7.21.0 + "@babel/helper-define-polyfill-provider": 0.3.3_@babel+core@7.21.0 + semver: 6.3.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-corejs3/0.6.0_@babel+core@7.21.0: + resolution: + { + integrity: sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-define-polyfill-provider": 0.3.3_@babel+core@7.21.0 + core-js-compat: 3.28.0 + transitivePeerDependencies: + - supports-color + dev: true + + /babel-plugin-polyfill-regenerator/0.4.1_@babel+core@7.21.0: + resolution: + { + integrity: sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==, + } + peerDependencies: + "@babel/core": ^7.0.0-0 + dependencies: + "@babel/core": 7.21.0 + "@babel/helper-define-polyfill-provider": 0.3.3_@babel+core@7.21.0 + transitivePeerDependencies: + - supports-color + dev: true + + /balanced-match/1.0.2: + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } + dev: true + + /brace-expansion/1.1.11: + resolution: + { + integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==, + } + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + + /brace-expansion/2.0.1: + resolution: + { + integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==, + } + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces/3.0.2: + resolution: + { + integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==, + } + engines: { node: ">=8" } + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist/4.21.5: + resolution: + { + integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + hasBin: true + dependencies: + caniuse-lite: 1.0.30001457 + electron-to-chromium: 1.4.305 + node-releases: 2.0.10 + update-browserslist-db: 1.0.10_browserslist@4.21.5 + dev: true + + /buffer-from/1.1.2: + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, + } + dev: true + + /builtin-modules/3.3.0: + resolution: + { + integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==, + } + engines: { node: ">=6" } + dev: true + + /call-bind/1.0.2: + resolution: + { + integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==, + } + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.2.0 + dev: true + + /callsites/3.1.0: + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + } + engines: { node: ">=6" } + dev: true + + /caniuse-lite/1.0.30001457: + resolution: + { + integrity: sha512-SDIV6bgE1aVbK6XyxdURbUE89zY7+k1BBBaOwYwkNCglXlel/E7mELiHC64HQ+W0xSKlqWhV9Wh7iHxUjMs4fA==, + } + dev: true + + /chalk/2.4.2: + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: ">=4" } + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: true + + /chalk/4.1.2: + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, + } + engines: { node: ">=10" } + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + dev: true + + /cliui/7.0.4: + resolution: + { + integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==, + } + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + dev: true + + /clsx/1.1.1: + resolution: + { + integrity: sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==, + } + engines: { node: ">=6" } + dev: true + + /color-convert/1.9.3: + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } + dependencies: + color-name: 1.1.3 + dev: true + + /color-convert/2.0.1: + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: ">=7.0.0" } + dependencies: + color-name: 1.1.4 + dev: true + + /color-name/1.1.3: + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } + dev: true + + /color-name/1.1.4: + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } + dev: true + + /commander/2.20.3: + resolution: + { + integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, + } + dev: true + + /commander/7.2.0: + resolution: + { + integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, + } + engines: { node: ">= 10" } + dev: true + + /common-tags/1.8.2: + resolution: + { + integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==, + } + engines: { node: ">=4.0.0" } + dev: true + + /concat-map/0.0.1: + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } + dev: true + + /convert-source-map/1.9.0: + resolution: + { + integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, + } + dev: true + + /core-js-compat/3.28.0: + resolution: + { + integrity: sha512-myzPgE7QodMg4nnd3K1TDoES/nADRStM8Gpz0D6nhkwbmwEnE0ZGJgoWsvQ722FR8D7xS0n0LV556RcEicjTyg==, + } + dependencies: + browserslist: 4.21.5 + dev: true + + /cosmiconfig/7.1.0: + resolution: + { + integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, + } + engines: { node: ">=10" } + dependencies: + "@types/parse-json": 4.0.0 + import-fresh: 3.3.0 + parse-json: 5.2.0 + path-type: 4.0.0 + yaml: 1.10.2 + dev: true + + /crypto-random-string/2.0.0: + resolution: + { + integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==, + } + engines: { node: ">=8" } + dev: true + + /csstype/3.0.9: + resolution: + { + integrity: sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==, + } + dev: true + + /csstype/3.1.1: + resolution: + { + integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==, + } + dev: true + + /d3-array/3.2.2: + resolution: + { + integrity: sha512-yEEyEAbDrF8C6Ob2myOBLjwBLck1Z89jMGFee0oPsn95GqjerpaOA4ch+vc2l0FNFFwMD5N7OCSEN5eAlsUbgQ==, + } + engines: { node: ">=12" } + dependencies: + internmap: 2.0.3 + dev: true + + /d3-axis/3.0.0: + resolution: + { + integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==, + } + engines: { node: ">=12" } + dev: true + + /d3-brush/3.0.0: + resolution: + { + integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==, + } + engines: { node: ">=12" } + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1_d3-selection@3.0.0 + dev: true + + /d3-chord/3.0.1: + resolution: + { + integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==, + } + engines: { node: ">=12" } + dependencies: + d3-path: 3.1.0 + dev: true + + /d3-color/3.1.0: + resolution: + { + integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==, + } + engines: { node: ">=12" } + dev: true + + /d3-contour/4.0.2: + resolution: + { + integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==, + } + engines: { node: ">=12" } + dependencies: + d3-array: 3.2.2 + dev: true + + /d3-delaunay/6.0.2: + resolution: + { + integrity: sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ==, + } + engines: { node: ">=12" } + dependencies: + delaunator: 5.0.0 + dev: true + + /d3-dispatch/3.0.1: + resolution: + { + integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==, + } + engines: { node: ">=12" } + dev: true + + /d3-drag/3.0.0: + resolution: + { + integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==, + } + engines: { node: ">=12" } + dependencies: + d3-dispatch: 3.0.1 + d3-selection: 3.0.0 + dev: true + + /d3-dsv/3.0.1: + resolution: + { + integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==, + } + engines: { node: ">=12" } + hasBin: true + dependencies: + commander: 7.2.0 + iconv-lite: 0.6.3 + rw: 1.3.3 + dev: true + + /d3-ease/3.0.1: + resolution: + { + integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==, + } + engines: { node: ">=12" } + dev: true + + /d3-fetch/3.0.1: + resolution: + { + integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==, + } + engines: { node: ">=12" } + dependencies: + d3-dsv: 3.0.1 + dev: true + + /d3-force/3.0.0: + resolution: + { + integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==, + } + engines: { node: ">=12" } + dependencies: + d3-dispatch: 3.0.1 + d3-quadtree: 3.0.1 + d3-timer: 3.0.1 + dev: true + + /d3-format/3.1.0: + resolution: + { + integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==, + } + engines: { node: ">=12" } + dev: true + + /d3-geo/3.1.0: + resolution: + { + integrity: sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==, + } + engines: { node: ">=12" } + dependencies: + d3-array: 3.2.2 + dev: true + + /d3-hierarchy/3.1.2: + resolution: + { + integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==, + } + engines: { node: ">=12" } + dev: true + + /d3-interpolate/3.0.1: + resolution: + { + integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==, + } + engines: { node: ">=12" } + dependencies: + d3-color: 3.1.0 + dev: true + + /d3-path/3.1.0: + resolution: + { + integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==, + } + engines: { node: ">=12" } + dev: true + + /d3-polygon/3.0.1: + resolution: + { + integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==, + } + engines: { node: ">=12" } + dev: true + + /d3-quadtree/3.0.1: + resolution: + { + integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==, + } + engines: { node: ">=12" } + dev: true + + /d3-random/3.0.1: + resolution: + { + integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==, + } + engines: { node: ">=12" } + dev: true + + /d3-scale-chromatic/3.0.0: + resolution: + { + integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==, + } + engines: { node: ">=12" } + dependencies: + d3-color: 3.1.0 + d3-interpolate: 3.0.1 + dev: true + + /d3-scale/4.0.2: + resolution: + { + integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==, + } + engines: { node: ">=12" } + dependencies: + d3-array: 3.2.2 + d3-format: 3.1.0 + d3-interpolate: 3.0.1 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + dev: true + + /d3-selection/3.0.0: + resolution: + { + integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==, + } + engines: { node: ">=12" } + dev: true + + /d3-shape/3.2.0: + resolution: + { + integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==, + } + engines: { node: ">=12" } + dependencies: + d3-path: 3.1.0 + dev: true + + /d3-time-format/4.1.0: + resolution: + { + integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==, + } + engines: { node: ">=12" } + dependencies: + d3-time: 3.1.0 + dev: true + + /d3-time/3.1.0: + resolution: + { + integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==, + } + engines: { node: ">=12" } + dependencies: + d3-array: 3.2.2 + dev: true + + /d3-timer/3.0.1: + resolution: + { + integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==, + } + engines: { node: ">=12" } + dev: true + + /d3-transition/3.0.1_d3-selection@3.0.0: + resolution: + { + integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==, + } + engines: { node: ">=12" } + peerDependencies: + d3-selection: 2 - 3 + dependencies: + d3-color: 3.1.0 + d3-dispatch: 3.0.1 + d3-ease: 3.0.1 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-timer: 3.0.1 + dev: true + + /d3-zoom/3.0.0: + resolution: + { + integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==, + } + engines: { node: ">=12" } + dependencies: + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-interpolate: 3.0.1 + d3-selection: 3.0.0 + d3-transition: 3.0.1_d3-selection@3.0.0 + dev: true + + /d3/7.8.2: + resolution: + { + integrity: sha512-WXty7qOGSHb7HR7CfOzwN1Gw04MUOzN8qh9ZUsvwycIMb4DYMpY9xczZ6jUorGtO6bR9BPMPaueIKwiDxu9uiQ==, + } + engines: { node: ">=12" } + dependencies: + d3-array: 3.2.2 + d3-axis: 3.0.0 + d3-brush: 3.0.0 + d3-chord: 3.0.1 + d3-color: 3.1.0 + d3-contour: 4.0.2 + d3-delaunay: 6.0.2 + d3-dispatch: 3.0.1 + d3-drag: 3.0.0 + d3-dsv: 3.0.1 + d3-ease: 3.0.1 + d3-fetch: 3.0.1 + d3-force: 3.0.0 + d3-format: 3.1.0 + d3-geo: 3.1.0 + d3-hierarchy: 3.1.2 + d3-interpolate: 3.0.1 + d3-path: 3.1.0 + d3-polygon: 3.0.1 + d3-quadtree: 3.0.1 + d3-random: 3.0.1 + d3-scale: 4.0.2 + d3-scale-chromatic: 3.0.0 + d3-selection: 3.0.0 + d3-shape: 3.2.0 + d3-time: 3.1.0 + d3-time-format: 4.1.0 + d3-timer: 3.0.1 + d3-transition: 3.0.1_d3-selection@3.0.0 + d3-zoom: 3.0.0 + dev: true + + /dayjs/1.11.7: + resolution: + { + integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==, + } + dev: true + + /debug/4.3.4: + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: ">=6.0" } + peerDependencies: + supports-color: "*" + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + + /deepmerge/4.3.0: + resolution: + { + integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==, + } + engines: { node: ">=0.10.0" } + dev: true + + /define-properties/1.2.0: + resolution: + { + integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==, + } + engines: { node: ">= 0.4" } + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: true + + /delaunator/5.0.0: + resolution: + { + integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==, + } + dependencies: + robust-predicates: 3.0.1 + dev: true + + /dom-helpers/5.2.1: + resolution: + { + integrity: sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==, + } + dependencies: + "@babel/runtime": 7.21.0 + csstype: 3.1.1 + dev: true + + /ejs/3.1.8: + resolution: + { + integrity: sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==, + } + engines: { node: ">=0.10.0" } + hasBin: true + dependencies: + jake: 10.8.5 + dev: true + + /electron-to-chromium/1.4.305: + resolution: + { + integrity: sha512-WETy6tG0CT5gm1O+xCbyapWNsCcmIvrn4NHViIGYo2AT8FV2qUCXdaB+WqYxSv/vS5mFqhBYnfZAAkVArjBmUg==, + } + dev: true + + /embla-carousel-react/7.0.9_react@18.2.0: + resolution: + { + integrity: sha512-KGnnZWukN+N2H6VjQf6C9mWmInqtCIiInhkGsJ9ckxri3m3Ks6wRDz+RRlV1kcuPHtRoxyFuBBGNwftWqMO9Pw==, + } + peerDependencies: + react: ^16.8.0 || ^17.0.1 || ^18.0.0 + dependencies: + embla-carousel: 7.0.9 + react: 18.2.0 + dev: true + + /embla-carousel/7.0.9: + resolution: + { + integrity: sha512-g8pGPd1BxexiZgw8F1aNM1KL3x3eEcz6TGTz20AuqCCynASBV7/h1+aS2rySDc/hHkXqbU8dk7TDhW71LCqVkQ==, + } + dev: true + + /emoji-regex/8.0.0: + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } + dev: true + + /error-ex/1.3.2: + resolution: + { + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, + } + dependencies: + is-arrayish: 0.2.1 + dev: true + + /es-abstract/1.21.1: + resolution: + { + integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==, + } + engines: { node: ">= 0.4" } + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + es-set-tostringtag: 2.0.1 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.2.0 + get-symbol-description: 1.0.0 + globalthis: 1.0.3 + gopd: 1.0.1 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-proto: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + is-array-buffer: 3.0.1 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-typed-array: 1.1.10 + is-weakref: 1.0.2 + object-inspect: 1.12.3 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + typed-array-length: 1.0.4 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.9 + dev: true + + /es-set-tostringtag/2.0.1: + resolution: + { + integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==, + } + engines: { node: ">= 0.4" } + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-to-primitive/1.2.1: + resolution: + { + integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==, + } + engines: { node: ">= 0.4" } + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: true + + /esbuild/0.16.17: + resolution: + { + integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==, + } + engines: { node: ">=12" } + hasBin: true + requiresBuild: true + optionalDependencies: + "@esbuild/android-arm": 0.16.17 + "@esbuild/android-arm64": 0.16.17 + "@esbuild/android-x64": 0.16.17 + "@esbuild/darwin-arm64": 0.16.17 + "@esbuild/darwin-x64": 0.16.17 + "@esbuild/freebsd-arm64": 0.16.17 + "@esbuild/freebsd-x64": 0.16.17 + "@esbuild/linux-arm": 0.16.17 + "@esbuild/linux-arm64": 0.16.17 + "@esbuild/linux-ia32": 0.16.17 + "@esbuild/linux-loong64": 0.16.17 + "@esbuild/linux-mips64el": 0.16.17 + "@esbuild/linux-ppc64": 0.16.17 + "@esbuild/linux-riscv64": 0.16.17 + "@esbuild/linux-s390x": 0.16.17 + "@esbuild/linux-x64": 0.16.17 + "@esbuild/netbsd-x64": 0.16.17 + "@esbuild/openbsd-x64": 0.16.17 + "@esbuild/sunos-x64": 0.16.17 + "@esbuild/win32-arm64": 0.16.17 + "@esbuild/win32-ia32": 0.16.17 + "@esbuild/win32-x64": 0.16.17 + dev: true + + /escalade/3.1.1: + resolution: + { + integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==, + } + engines: { node: ">=6" } + dev: true + + /escape-string-regexp/1.0.5: + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: ">=0.8.0" } + dev: true + + /escape-string-regexp/4.0.0: + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + } + engines: { node: ">=10" } + dev: true + + /estree-walker/1.0.1: + resolution: + { + integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==, + } + dev: true + + /estree-walker/2.0.2: + resolution: + { + integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, + } + dev: true + + /esutils/2.0.3: + resolution: + { + integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, + } + engines: { node: ">=0.10.0" } + dev: true + + /fast-deep-equal/3.1.3: + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + } + dev: true + + /fast-glob/3.2.12: + resolution: + { + integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, + } + engines: { node: ">=8.6.0" } + dependencies: + "@nodelib/fs.stat": 2.0.5 + "@nodelib/fs.walk": 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fast-json-stable-stringify/2.1.0: + resolution: + { + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, + } + dev: true + + /fastq/1.15.0: + resolution: + { + integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==, + } + dependencies: + reusify: 1.0.4 + dev: true + + /faye-websocket/0.11.4: + resolution: + { + integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==, + } + engines: { node: ">=0.8.0" } + dependencies: + websocket-driver: 0.7.4 + dev: true + + /file-selector/0.6.0: + resolution: + { + integrity: sha512-QlZ5yJC0VxHxQQsQhXvBaC7VRJ2uaxTf+Tfpu4Z/OcVQJVpZO+DGU0rkoVW5ce2SccxugvpBJoMvUs59iILYdw==, + } + engines: { node: ">= 12" } + dependencies: + tslib: 2.5.0 + dev: true + + /filelist/1.0.4: + resolution: + { + integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==, + } + dependencies: + minimatch: 5.1.6 + dev: true + + /fill-range/7.0.1: + resolution: + { + integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==, + } + engines: { node: ">=8" } + dependencies: + to-regex-range: 5.0.1 + dev: true + + /find-root/1.1.0: + resolution: + { + integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==, + } + dev: true + + /firebase/9.17.1: + resolution: + { + integrity: sha512-MSZaTRaaRLgDFLqoEnoPYK8zkLwQNvYeLZ3YSKdcQxG8hDifNO22ywS1cSA1ZCGHlQeOsDtfDwBejKcANf/RQw==, + } + dependencies: + "@firebase/analytics": 0.9.3_@firebase+app@0.9.3 + "@firebase/analytics-compat": 0.2.3_5qoz5voa527ucsvtk67mpz25ru + "@firebase/app": 0.9.3 + "@firebase/app-check": 0.6.3_@firebase+app@0.9.3 + "@firebase/app-check-compat": 0.3.3_5qoz5voa527ucsvtk67mpz25ru + "@firebase/app-compat": 0.2.3 + "@firebase/app-types": 0.9.0 + "@firebase/auth": 0.21.3_@firebase+app@0.9.3 + "@firebase/auth-compat": 0.3.3_2nquphbz2k7fjevr4yz5c7cjmi + "@firebase/database": 0.14.3 + "@firebase/database-compat": 0.3.3 + "@firebase/firestore": 3.8.3_@firebase+app@0.9.3 + "@firebase/firestore-compat": 0.3.3_2nquphbz2k7fjevr4yz5c7cjmi + "@firebase/functions": 0.9.3_@firebase+app@0.9.3 + "@firebase/functions-compat": 0.3.3_5qoz5voa527ucsvtk67mpz25ru + "@firebase/installations": 0.6.3_@firebase+app@0.9.3 + "@firebase/installations-compat": 0.2.3_2nquphbz2k7fjevr4yz5c7cjmi + "@firebase/messaging": 0.12.3_@firebase+app@0.9.3 + "@firebase/messaging-compat": 0.2.3_5qoz5voa527ucsvtk67mpz25ru + "@firebase/performance": 0.6.3_@firebase+app@0.9.3 + "@firebase/performance-compat": 0.2.3_5qoz5voa527ucsvtk67mpz25ru + "@firebase/remote-config": 0.4.3_@firebase+app@0.9.3 + "@firebase/remote-config-compat": 0.2.3_5qoz5voa527ucsvtk67mpz25ru + "@firebase/storage": 0.11.1_@firebase+app@0.9.3 + "@firebase/storage-compat": 0.3.1_2nquphbz2k7fjevr4yz5c7cjmi + "@firebase/util": 1.9.2 + transitivePeerDependencies: + - encoding + dev: true + + /for-each/0.3.3: + resolution: + { + integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==, + } + dependencies: + is-callable: 1.2.7 + dev: true + + /fs-extra/9.1.0: + resolution: + { + integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, + } + engines: { node: ">=10" } + dependencies: + at-least-node: 1.0.0 + graceful-fs: 4.2.10 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs.realpath/1.0.0: + resolution: + { + integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, + } + dev: true + + /fsevents/2.3.2: + resolution: + { + integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + os: [darwin] + requiresBuild: true + dev: true + optional: true + + /function-bind/1.1.1: + resolution: + { + integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, + } + dev: true + + /function.prototype.name/1.1.5: + resolution: + { + integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + functions-have-names: 1.2.3 + dev: true + + /functions-have-names/1.2.3: + resolution: + { + integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, + } + dev: true + + /gensync/1.0.0-beta.2: + resolution: + { + integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, + } + engines: { node: ">=6.9.0" } + dev: true + + /get-caller-file/2.0.5: + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + } + engines: { node: 6.* || 8.* || >= 10.* } + dev: true + + /get-intrinsic/1.2.0: + resolution: + { + integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==, + } + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: true + + /get-own-enumerable-property-symbols/3.0.2: + resolution: + { + integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==, + } + dev: true + + /get-symbol-description/1.0.0: + resolution: + { + integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + dev: true + + /glob-parent/5.1.2: + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: ">= 6" } + dependencies: + is-glob: 4.0.3 + dev: true + + /glob/7.2.3: + resolution: + { + integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, + } + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + + /globals/11.12.0: + resolution: + { + integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==, + } + engines: { node: ">=4" } + dev: true + + /globalthis/1.0.3: + resolution: + { + integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==, + } + engines: { node: ">= 0.4" } + dependencies: + define-properties: 1.2.0 + dev: true + + /gopd/1.0.1: + resolution: + { + integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==, + } + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /graceful-fs/4.2.10: + resolution: + { + integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, + } + dev: true + + /has-bigints/1.0.2: + resolution: + { + integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==, + } + dev: true + + /has-flag/3.0.0: + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: ">=4" } + dev: true + + /has-flag/4.0.0: + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + } + engines: { node: ">=8" } + dev: true + + /has-property-descriptors/1.0.0: + resolution: + { + integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==, + } + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /has-proto/1.0.1: + resolution: + { + integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==, + } + engines: { node: ">= 0.4" } + dev: true + + /has-symbols/1.0.3: + resolution: + { + integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==, + } + engines: { node: ">= 0.4" } + dev: true + + /has-tostringtag/1.0.0: + resolution: + { + integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==, + } + engines: { node: ">= 0.4" } + dependencies: + has-symbols: 1.0.3 + dev: true + + /has/1.0.3: + resolution: + { + integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, + } + engines: { node: ">= 0.4.0" } + dependencies: + function-bind: 1.1.1 + dev: true + + /hoist-non-react-statics/3.3.2: + resolution: + { + integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==, + } + dependencies: + react-is: 16.13.1 + dev: true + + /http-parser-js/0.5.8: + resolution: + { + integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==, + } + dev: true + + /iconv-lite/0.6.3: + resolution: + { + integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, + } + engines: { node: ">=0.10.0" } + dependencies: + safer-buffer: 2.1.2 + dev: true + + /idb/7.0.1: + resolution: + { + integrity: sha512-UUxlE7vGWK5RfB/fDwEGgRf84DY/ieqNha6msMV99UsEMQhJ1RwbCd8AYBj3QMgnE3VZnfQvm4oKVCJTYlqIgg==, + } + dev: true + + /import-fresh/3.3.0: + resolution: + { + integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==, + } + engines: { node: ">=6" } + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + dev: true + + /inflight/1.0.6: + resolution: + { + integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, + } + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } + dev: true + + /internal-slot/1.0.5: + resolution: + { + integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==, + } + engines: { node: ">= 0.4" } + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + side-channel: 1.0.4 + dev: true + + /internmap/2.0.3: + resolution: + { + integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==, + } + engines: { node: ">=12" } + dev: true + + /is-array-buffer/3.0.1: + resolution: + { + integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==, + } + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-typed-array: 1.1.10 + dev: true + + /is-arrayish/0.2.1: + resolution: + { + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, + } + dev: true + + /is-bigint/1.0.4: + resolution: + { + integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, + } + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-boolean-object/1.1.2: + resolution: + { + integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-callable/1.2.7: + resolution: + { + integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, + } + engines: { node: ">= 0.4" } + dev: true + + /is-core-module/2.11.0: + resolution: + { + integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==, + } + dependencies: + has: 1.0.3 + dev: true + + /is-date-object/1.0.5: + resolution: + { + integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==, + } + engines: { node: ">= 0.4" } + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-extglob/2.1.1: + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: ">=0.10.0" } + dev: true + + /is-fullwidth-code-point/3.0.0: + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: ">=8" } + dev: true + + /is-glob/4.0.3: + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: ">=0.10.0" } + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-module/1.0.0: + resolution: + { + integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==, + } + dev: true + + /is-negative-zero/2.0.2: + resolution: + { + integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==, + } + engines: { node: ">= 0.4" } + dev: true + + /is-number-object/1.0.7: + resolution: + { + integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==, + } + engines: { node: ">= 0.4" } + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-number/7.0.0: + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: ">=0.12.0" } + dev: true + + /is-obj/1.0.1: + resolution: + { + integrity: sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==, + } + engines: { node: ">=0.10.0" } + dev: true + + /is-regex/1.1.4: + resolution: + { + integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: true + + /is-regexp/1.0.0: + resolution: + { + integrity: sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==, + } + engines: { node: ">=0.10.0" } + dev: true + + /is-shared-array-buffer/1.0.2: + resolution: + { + integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==, + } + dependencies: + call-bind: 1.0.2 + dev: true + + /is-stream/2.0.1: + resolution: + { + integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, + } + engines: { node: ">=8" } + dev: true + + /is-string/1.0.7: + resolution: + { + integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==, + } + engines: { node: ">= 0.4" } + dependencies: + has-tostringtag: 1.0.0 + dev: true + + /is-symbol/1.0.4: + resolution: + { + integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==, + } + engines: { node: ">= 0.4" } + dependencies: + has-symbols: 1.0.3 + dev: true + + /is-typed-array/1.1.10: + resolution: + { + integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==, + } + engines: { node: ">= 0.4" } + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + dev: true + + /is-weakref/1.0.2: + resolution: + { + integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==, + } + dependencies: + call-bind: 1.0.2 + dev: true + + /jake/10.8.5: + resolution: + { + integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==, + } + engines: { node: ">=10" } + hasBin: true + dependencies: + async: 3.2.4 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + dev: true + + /jest-worker/26.6.2: + resolution: + { + integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==, + } + engines: { node: ">= 10.13.0" } + dependencies: + "@types/node": 18.14.0 + merge-stream: 2.0.0 + supports-color: 7.2.0 + dev: true + + /js-tokens/4.0.0: + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + } + dev: true + + /jsesc/0.5.0: + resolution: + { + integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==, + } + hasBin: true + dev: true + + /jsesc/2.5.2: + resolution: + { + integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==, + } + engines: { node: ">=4" } + hasBin: true + dev: true + + /json-parse-even-better-errors/2.3.1: + resolution: + { + integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, + } + dev: true + + /json-schema-traverse/1.0.0: + resolution: + { + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, + } + dev: true + + /json-schema/0.4.0: + resolution: + { + integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==, + } + dev: true + + /json5/2.2.3: + resolution: + { + integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, + } + engines: { node: ">=6" } + hasBin: true + dev: true + + /jsonfile/6.1.0: + resolution: + { + integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==, + } + dependencies: + universalify: 2.0.0 + optionalDependencies: + graceful-fs: 4.2.10 + dev: true + + /jsonpointer/5.0.1: + resolution: + { + integrity: sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==, + } + engines: { node: ">=0.10.0" } + dev: true + + /klona/2.0.6: + resolution: + { + integrity: sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==, + } + engines: { node: ">= 8" } + dev: true + + /leven/3.1.0: + resolution: + { + integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, + } + engines: { node: ">=6" } + dev: true + + /lines-and-columns/1.2.4: + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } + dev: true + + /linkifyjs/3.0.5: + resolution: + { + integrity: sha512-1Y9XQH65eQKA9p2xtk+zxvnTeQBG7rdAXSkUG97DmuI/Xhji9uaUzaWxRj6rf9YC0v8KKHkxav7tnLX82Sz5Fg==, + } + dev: true + + /lodash.camelcase/4.3.0: + resolution: + { + integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, + } + dev: true + + /lodash.debounce/4.0.8: + resolution: + { + integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, + } + dev: true + + /lodash.sortby/4.7.0: + resolution: + { + integrity: sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==, + } + dev: true + + /lodash/4.17.21: + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } + dev: true + + /long/4.0.0: + resolution: + { + integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==, + } + dev: true + + /long/5.2.1: + resolution: + { + integrity: sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==, + } + dev: true + + /loose-envify/1.4.0: + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, + } + hasBin: true + dependencies: + js-tokens: 4.0.0 + dev: true + + /lottie-react/2.4.0_biqbaboplfbrettd7655fr4n2y: + resolution: + { + integrity: sha512-pDJGj+AQlnlyHvOHFK7vLdsDcvbuqvwPZdMlJ360wrzGFurXeKPr8SiRCjLf3LrNYKANQtSsh5dz9UYQHuqx4w==, + } + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + lottie-web: 5.10.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /lottie-web/5.10.2: + resolution: + { + integrity: sha512-d0PFIGiwuMsJYaF4uPo+qG8dEorlI+xFI2zrrFtE1bGO4WoLIz+NjremxEq1swpR7juR10aeOtmNh3d6G3ub0A==, + } + dev: true + + /lru-cache/5.1.1: + resolution: + { + integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, + } + dependencies: + yallist: 3.1.1 + dev: true + + /magic-string/0.25.9: + resolution: + { + integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, + } + dependencies: + sourcemap-codec: 1.4.8 + dev: true + + /magic-string/0.27.0: + resolution: + { + integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==, + } + engines: { node: ">=12" } + dependencies: + "@jridgewell/sourcemap-codec": 1.4.14 + dev: true + + /merge-stream/2.0.0: + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, + } + dev: true + + /merge2/1.4.1: + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: ">= 8" } + dev: true + + /micromatch/4.0.5: + resolution: + { + integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, + } + engines: { node: ">=8.6" } + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /minimatch/3.1.2: + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } + dependencies: + brace-expansion: 1.1.11 + dev: true + + /minimatch/5.1.6: + resolution: + { + integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, + } + engines: { node: ">=10" } + dependencies: + brace-expansion: 2.0.1 + dev: true + + /ms/2.1.2: + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, + } + dev: true + + /nanoid/3.3.4: + resolution: + { + integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + hasBin: true + dev: true + + /node-fetch/2.6.7: + resolution: + { + integrity: sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==, + } + engines: { node: 4.x || >=6.0.0 } + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: true + + /node-releases/2.0.10: + resolution: + { + integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==, + } + dev: true + + /object-assign/4.1.1: + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: ">=0.10.0" } + dev: true + + /object-inspect/1.12.3: + resolution: + { + integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==, + } + dev: true + + /object-keys/1.1.1: + resolution: + { + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, + } + engines: { node: ">= 0.4" } + dev: true + + /object.assign/4.1.4: + resolution: + { + integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: true + + /once/1.4.0: + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } + dependencies: + wrappy: 1.0.2 + dev: true + + /parent-module/1.0.1: + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + } + engines: { node: ">=6" } + dependencies: + callsites: 3.1.0 + dev: true + + /parse-json/5.2.0: + resolution: + { + integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, + } + engines: { node: ">=8" } + dependencies: + "@babel/code-frame": 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + + /path-is-absolute/1.0.1: + resolution: + { + integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, + } + engines: { node: ">=0.10.0" } + dev: true + + /path-parse/1.0.7: + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } + dev: true + + /path-type/4.0.0: + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: ">=8" } + dev: true + + /picocolors/1.0.0: + resolution: + { + integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, + } + dev: true + + /picomatch/2.3.1: + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: ">=8.6" } + dev: true + + /postcss/8.4.21: + resolution: + { + integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==, + } + engines: { node: ^10 || ^12 || >=14 } + dependencies: + nanoid: 3.3.4 + picocolors: 1.0.0 + source-map-js: 1.0.2 + dev: true + + /pretty-bytes/5.6.0: + resolution: + { + integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==, + } + engines: { node: ">=6" } + dev: true + + /pretty-bytes/6.1.0: + resolution: + { + integrity: sha512-Rk753HI8f4uivXi4ZCIYdhmG1V+WKzvRMg/X+M42a6t7D07RcmopXJMDNk6N++7Bl75URRGsb40ruvg7Hcp2wQ==, + } + engines: { node: ^14.13.1 || >=16.0.0 } + dev: true + + /prism-react-renderer/1.3.5_react@18.2.0: + resolution: + { + integrity: sha512-IJ+MSwBWKG+SM3b2SUfdrhC+gu01QkV2KmRQgREThBfSQRoufqRfxfHUxpG1WcaFjP+kojcFyO9Qqtpgt3qLCg==, + } + peerDependencies: + react: ">=0.14.9" + dependencies: + react: 18.2.0 + dev: true + + /prop-types/15.8.1: + resolution: + { + integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, + } + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: true + + /protobufjs/6.11.3: + resolution: + { + integrity: sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==, + } + hasBin: true + requiresBuild: true + dependencies: + "@protobufjs/aspromise": 1.1.2 + "@protobufjs/base64": 1.1.2 + "@protobufjs/codegen": 2.0.4 + "@protobufjs/eventemitter": 1.1.0 + "@protobufjs/fetch": 1.1.0 + "@protobufjs/float": 1.0.2 + "@protobufjs/inquire": 1.1.0 + "@protobufjs/path": 1.1.2 + "@protobufjs/pool": 1.1.0 + "@protobufjs/utf8": 1.1.0 + "@types/long": 4.0.2 + "@types/node": 18.14.0 + long: 4.0.0 + dev: true + + /protobufjs/7.2.2: + resolution: + { + integrity: sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==, + } + engines: { node: ">=12.0.0" } + requiresBuild: true + dependencies: + "@protobufjs/aspromise": 1.1.2 + "@protobufjs/base64": 1.1.2 + "@protobufjs/codegen": 2.0.4 + "@protobufjs/eventemitter": 1.1.0 + "@protobufjs/fetch": 1.1.0 + "@protobufjs/float": 1.0.2 + "@protobufjs/inquire": 1.1.0 + "@protobufjs/path": 1.1.2 + "@protobufjs/pool": 1.1.0 + "@protobufjs/utf8": 1.1.0 + "@types/node": 18.14.0 + long: 5.2.1 + dev: true + + /punycode/2.3.0: + resolution: + { + integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==, + } + engines: { node: ">=6" } + dev: true + + /queue-microtask/1.2.3: + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } + dev: true + + /randombytes/2.1.0: + resolution: + { + integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, + } + dependencies: + safe-buffer: 5.2.1 + dev: true + + /react-dom/18.2.0_react@18.2.0: + resolution: + { + integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==, + } + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: true + + /react-dropzone/14.2.3_react@18.2.0: + resolution: + { + integrity: sha512-O3om8I+PkFKbxCukfIR3QAGftYXDZfOE2N1mr/7qebQJHs7U+/RSL/9xomJNpRg9kM5h9soQSdf0Gc7OHF5Fug==, + } + engines: { node: ">= 10.13" } + peerDependencies: + react: ">= 16.8 || 18.0.0" + dependencies: + attr-accept: 2.2.2 + file-selector: 0.6.0 + prop-types: 15.8.1 + react: 18.2.0 + dev: true + + /react-is/16.13.1: + resolution: + { + integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, + } + dev: true + + /react-refresh/0.14.0: + resolution: + { + integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==, + } + engines: { node: ">=0.10.0" } + dev: true + + /react-router-dom/6.8.1_biqbaboplfbrettd7655fr4n2y: + resolution: + { + integrity: sha512-67EXNfkQgf34P7+PSb6VlBuaacGhkKn3kpE51+P6zYSG2kiRoumXEL6e27zTa9+PGF2MNXbgIUHTVlleLbIcHQ==, + } + engines: { node: ">=14" } + peerDependencies: + react: ">=16.8" + react-dom: ">=16.8" + dependencies: + "@remix-run/router": 1.3.2 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + react-router: 6.8.1_react@18.2.0 + dev: true + + /react-router/6.8.1_react@18.2.0: + resolution: + { + integrity: sha512-Jgi8BzAJQ8MkPt8ipXnR73rnD7EmZ0HFFb7jdQU24TynGW1Ooqin2KVDN9voSC+7xhqbbCd2cjGUepb6RObnyg==, + } + engines: { node: ">=14" } + peerDependencies: + react: ">=16.8" + dependencies: + "@remix-run/router": 1.3.2 + react: 18.2.0 + dev: true + + /react-textarea-autosize/8.3.4_pmekkgnqduwlme35zpnqhenc34: + resolution: + { + integrity: sha512-CdtmP8Dc19xL8/R6sWvtknD/eCXkQr30dtvC4VmGInhRsfF8X/ihXCq6+9l9qbxmKRiq407/7z5fxE7cVWQNgQ==, + } + engines: { node: ">=10" } + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + "@babel/runtime": 7.21.0 + react: 18.2.0 + use-composed-ref: 1.3.0_react@18.2.0 + use-latest: 1.2.1_pmekkgnqduwlme35zpnqhenc34 + transitivePeerDependencies: + - "@types/react" + dev: true + + /react-transition-group/4.4.2_biqbaboplfbrettd7655fr4n2y: + resolution: + { + integrity: sha512-/RNYfRAMlZwDSr6z4zNKV6xu53/e2BuaBbGhbyYIXTrmgu/bGHzmqOs7mJSJBHy9Ud+ApHx3QjrkKSp1pxvlFg==, + } + peerDependencies: + react: ">=16.6.0" + react-dom: ">=16.6.0" + dependencies: + "@babel/runtime": 7.21.0 + dom-helpers: 5.2.1 + loose-envify: 1.4.0 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: true + + /react/18.2.0: + resolution: + { + integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==, + } + engines: { node: ">=0.10.0" } + dependencies: + loose-envify: 1.4.0 + dev: true + + /regenerate-unicode-properties/10.1.0: + resolution: + { + integrity: sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==, + } + engines: { node: ">=4" } + dependencies: + regenerate: 1.4.2 + dev: true + + /regenerate/1.4.2: + resolution: + { + integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, + } + dev: true + + /regenerator-runtime/0.13.11: + resolution: + { + integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==, + } + dev: true + + /regenerator-transform/0.15.1: + resolution: + { + integrity: sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==, + } + dependencies: + "@babel/runtime": 7.21.0 + dev: true + + /regexp.prototype.flags/1.4.3: + resolution: + { + integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==, + } + engines: { node: ">= 0.4" } + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + functions-have-names: 1.2.3 + dev: true + + /regexpu-core/5.3.1: + resolution: + { + integrity: sha512-nCOzW2V/X15XpLsK2rlgdwrysrBq+AauCn+omItIz4R1pIcmeot5zvjdmOBRLzEH/CkC6IxMJVmxDe3QcMuNVQ==, + } + engines: { node: ">=4" } + dependencies: + "@babel/regjsgen": 0.8.0 + regenerate: 1.4.2 + regenerate-unicode-properties: 10.1.0 + regjsparser: 0.9.1 + unicode-match-property-ecmascript: 2.0.0 + unicode-match-property-value-ecmascript: 2.1.0 + dev: true + + /regjsparser/0.9.1: + resolution: + { + integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==, + } + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + + /require-directory/2.1.1: + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: ">=0.10.0" } + dev: true + + /require-from-string/2.0.2: + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + } + engines: { node: ">=0.10.0" } + dev: true + + /resolve-from/4.0.0: + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: ">=4" } + dev: true + + /resolve/1.22.1: + resolution: + { + integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==, + } + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /reusify/1.0.4: + resolution: + { + integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==, + } + engines: { iojs: ">=1.0.0", node: ">=0.10.0" } + dev: true + + /robust-predicates/3.0.1: + resolution: + { + integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==, + } + dev: true + + /rollup-plugin-terser/7.0.2_rollup@2.79.1: + resolution: + { + integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==, + } + deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser + peerDependencies: + rollup: ^2.0.0 + dependencies: + "@babel/code-frame": 7.18.6 + jest-worker: 26.6.2 + rollup: 2.79.1 + serialize-javascript: 4.0.0 + terser: 5.16.5 + dev: true + + /rollup/2.79.1: + resolution: + { + integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==, + } + engines: { node: ">=10.0.0" } + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /rollup/3.17.2: + resolution: + { + integrity: sha512-qMNZdlQPCkWodrAZ3qnJtvCAl4vpQ8q77uEujVCCbC/6CLB7Lcmvjq7HyiOSnf4fxTT9XgsE36oLHJBH49xjqA==, + } + engines: { node: ">=14.18.0", npm: ">=8.0.0" } + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-parallel/1.2.0: + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } + dependencies: + queue-microtask: 1.2.3 + dev: true + + /rw/1.3.3: + resolution: + { + integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==, + } + dev: true + + /safe-buffer/5.2.1: + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } + dev: true + + /safe-regex-test/1.0.0: + resolution: + { + integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==, + } + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-regex: 1.1.4 + dev: true + + /safer-buffer/2.1.2: + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, + } + dev: true + + /scheduler/0.23.0: + resolution: + { + integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==, + } + dependencies: + loose-envify: 1.4.0 + dev: true + + /semver/6.3.0: + resolution: + { + integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==, + } + hasBin: true + dev: true + + /serialize-javascript/4.0.0: + resolution: + { + integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==, + } + dependencies: + randombytes: 2.1.0 + dev: true + + /side-channel/1.0.4: + resolution: + { + integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==, + } + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + object-inspect: 1.12.3 + dev: true + + /source-map-js/1.0.2: + resolution: + { + integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, + } + engines: { node: ">=0.10.0" } + dev: true + + /source-map-support/0.5.21: + resolution: + { + integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, + } + dependencies: + buffer-from: 1.1.2 + source-map: 0.6.1 + dev: true + + /source-map/0.5.7: + resolution: + { + integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, + } + engines: { node: ">=0.10.0" } + dev: true + + /source-map/0.6.1: + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + } + engines: { node: ">=0.10.0" } + dev: true + + /source-map/0.8.0-beta.0: + resolution: + { + integrity: sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==, + } + engines: { node: ">= 8" } + dependencies: + whatwg-url: 7.1.0 + dev: true + + /sourcemap-codec/1.4.8: + resolution: + { + integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, + } + deprecated: Please use @jridgewell/sourcemap-codec instead + dev: true + + /string-width/4.2.3: + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: ">=8" } + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string.prototype.matchall/4.0.8: + resolution: + { + integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==, + } + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + get-intrinsic: 1.2.0 + has-symbols: 1.0.3 + internal-slot: 1.0.5 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + dev: true + + /string.prototype.trimend/1.0.6: + resolution: + { + integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==, + } + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + dev: true + + /string.prototype.trimstart/1.0.6: + resolution: + { + integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==, + } + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.1 + dev: true + + /stringify-object/3.3.0: + resolution: + { + integrity: sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==, + } + engines: { node: ">=4" } + dependencies: + get-own-enumerable-property-symbols: 3.0.2 + is-obj: 1.0.1 + is-regexp: 1.0.0 + dev: true + + /strip-ansi/6.0.1: + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: ">=8" } + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-comments/2.0.1: + resolution: + { + integrity: sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==, + } + engines: { node: ">=10" } + dev: true + + /stylis/4.1.3: + resolution: + { + integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==, + } + dev: true + + /supports-color/5.5.0: + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: ">=4" } + dependencies: + has-flag: 3.0.0 + dev: true + + /supports-color/7.2.0: + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + } + engines: { node: ">=8" } + dependencies: + has-flag: 4.0.0 + dev: true + + /supports-preserve-symlinks-flag/1.0.0: + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: ">= 0.4" } + dev: true + + /tabbable/6.1.1: + resolution: + { + integrity: sha512-4kl5w+nCB44EVRdO0g/UGoOp3vlwgycUVtkk/7DPyeLZUCuNFFKCFG6/t/DgHLrUPHjrZg6s5tNm+56Q2B0xyg==, + } + dev: true + + /temp-dir/2.0.0: + resolution: + { + integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==, + } + engines: { node: ">=8" } + dev: true + + /tempy/0.6.0: + resolution: + { + integrity: sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==, + } + engines: { node: ">=10" } + dependencies: + is-stream: 2.0.1 + temp-dir: 2.0.0 + type-fest: 0.16.0 + unique-string: 2.0.0 + dev: true + + /terser/5.16.5: + resolution: + { + integrity: sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==, + } + engines: { node: ">=10" } + hasBin: true + dependencies: + "@jridgewell/source-map": 0.3.2 + acorn: 8.8.2 + commander: 2.20.3 + source-map-support: 0.5.21 + dev: true + + /tippy.js/6.3.7: + resolution: + { + integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==, + } + dependencies: + "@popperjs/core": 2.11.6 + dev: true + + /to-fast-properties/2.0.0: + resolution: + { + integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==, + } + engines: { node: ">=4" } + dev: true + + /to-regex-range/5.0.1: + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: ">=8.0" } + dependencies: + is-number: 7.0.0 + dev: true + + /tr46/0.0.3: + resolution: + { + integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, + } + dev: true + + /tr46/1.0.1: + resolution: + { + integrity: sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==, + } + dependencies: + punycode: 2.3.0 + dev: true + + /tslib/2.5.0: + resolution: + { + integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==, + } + dev: true + + /type-fest/0.16.0: + resolution: + { + integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==, + } + engines: { node: ">=10" } + dev: true + + /typed-array-length/1.0.4: + resolution: + { + integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==, + } + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + dev: true + + /typescript/4.9.5: + resolution: + { + integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==, + } + engines: { node: ">=4.2.0" } + hasBin: true + dev: true + + /unbox-primitive/1.0.2: + resolution: + { + integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==, + } + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: true + + /unicode-canonical-property-names-ecmascript/2.0.0: + resolution: + { + integrity: sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==, + } + engines: { node: ">=4" } + dev: true + + /unicode-match-property-ecmascript/2.0.0: + resolution: + { + integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==, + } + engines: { node: ">=4" } + dependencies: + unicode-canonical-property-names-ecmascript: 2.0.0 + unicode-property-aliases-ecmascript: 2.1.0 + dev: true + + /unicode-match-property-value-ecmascript/2.1.0: + resolution: + { + integrity: sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==, + } + engines: { node: ">=4" } + dev: true + + /unicode-property-aliases-ecmascript/2.1.0: + resolution: + { + integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==, + } + engines: { node: ">=4" } + dev: true + + /unique-string/2.0.0: + resolution: + { + integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==, + } + engines: { node: ">=8" } + dependencies: + crypto-random-string: 2.0.0 + dev: true + + /universalify/2.0.0: + resolution: + { + integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==, + } + engines: { node: ">= 10.0.0" } + dev: true + + /upath/1.2.0: + resolution: + { + integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==, + } + engines: { node: ">=4" } + dev: true + + /update-browserslist-db/1.0.10_browserslist@4.21.5: + resolution: + { + integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==, + } + hasBin: true + peerDependencies: + browserslist: ">= 4.21.0" + dependencies: + browserslist: 4.21.5 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /uri-js/4.4.1: + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, + } + dependencies: + punycode: 2.3.0 + dev: true + + /use-composed-ref/1.3.0_react@18.2.0: + resolution: + { + integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==, + } + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + react: 18.2.0 + dev: true + + /use-isomorphic-layout-effect/1.1.2_pmekkgnqduwlme35zpnqhenc34: + resolution: + { + integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==, + } + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + dependencies: + "@types/react": 18.0.28 + react: 18.2.0 + dev: true + + /use-latest/1.2.1_pmekkgnqduwlme35zpnqhenc34: + resolution: + { + integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==, + } + peerDependencies: + "@types/react": "*" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + dependencies: + "@types/react": 18.0.28 + react: 18.2.0 + use-isomorphic-layout-effect: 1.1.2_pmekkgnqduwlme35zpnqhenc34 + dev: true + + /vite-plugin-pwa/0.14.4_vite@4.1.4: + resolution: + { + integrity: sha512-M7Ct0so8OlouMkTWgXnl8W1xU95glITSKIe7qswZf1tniAstO2idElGCnsrTJ5NPNSx1XqfTCOUj8j94S6FD7Q==, + } + peerDependencies: + vite: ^3.1.0 || ^4.0.0 + dependencies: + "@rollup/plugin-replace": 5.0.2_rollup@3.17.2 + debug: 4.3.4 + fast-glob: 3.2.12 + pretty-bytes: 6.1.0 + rollup: 3.17.2 + vite: 4.1.4 + workbox-build: 6.5.4 + workbox-window: 6.5.4 + transitivePeerDependencies: + - "@types/babel__core" + - supports-color + dev: true + + /vite/4.1.4: + resolution: + { + integrity: sha512-3knk/HsbSTKEin43zHu7jTwYWv81f8kgAL99G5NWBcA1LKvtvcVAC4JjBH1arBunO9kQka+1oGbrMKOjk4ZrBg==, + } + engines: { node: ^14.18.0 || >=16.0.0 } + hasBin: true + peerDependencies: + "@types/node": ">= 14" + less: "*" + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + dependencies: + esbuild: 0.16.17 + postcss: 8.4.21 + resolve: 1.22.1 + rollup: 3.17.2 + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /webidl-conversions/3.0.1: + resolution: + { + integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, + } + dev: true + + /webidl-conversions/4.0.2: + resolution: + { + integrity: sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==, + } + dev: true + + /websocket-driver/0.7.4: + resolution: + { + integrity: sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==, + } + engines: { node: ">=0.8.0" } + dependencies: + http-parser-js: 0.5.8 + safe-buffer: 5.2.1 + websocket-extensions: 0.1.4 + dev: true + + /websocket-extensions/0.1.4: + resolution: + { + integrity: sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==, + } + engines: { node: ">=0.8.0" } + dev: true + + /whatwg-url/5.0.0: + resolution: + { + integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, + } + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + dev: true + + /whatwg-url/7.1.0: + resolution: + { + integrity: sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==, + } + dependencies: + lodash.sortby: 4.7.0 + tr46: 1.0.1 + webidl-conversions: 4.0.2 + dev: true + + /which-boxed-primitive/1.0.2: + resolution: + { + integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==, + } + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: true + + /which-typed-array/1.1.9: + resolution: + { + integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==, + } + engines: { node: ">= 0.4" } + dependencies: + available-typed-arrays: 1.0.5 + call-bind: 1.0.2 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.0 + is-typed-array: 1.1.10 + dev: true + + /workbox-background-sync/6.5.4: + resolution: + { + integrity: sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==, + } + dependencies: + idb: 7.0.1 + workbox-core: 6.5.4 + dev: true + + /workbox-broadcast-update/6.5.4: + resolution: + { + integrity: sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==, + } + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-build/6.5.4: + resolution: + { + integrity: sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==, + } + engines: { node: ">=10.0.0" } + dependencies: + "@apideck/better-ajv-errors": 0.3.6_ajv@8.12.0 + "@babel/core": 7.21.0 + "@babel/preset-env": 7.20.2_@babel+core@7.21.0 + "@babel/runtime": 7.21.0 + "@rollup/plugin-babel": 5.3.1_4tnfxcmsyr7y5qv3uwkivwqysm + "@rollup/plugin-node-resolve": 11.2.1_rollup@2.79.1 + "@rollup/plugin-replace": 2.4.2_rollup@2.79.1 + "@surma/rollup-plugin-off-main-thread": 2.2.3 + ajv: 8.12.0 + common-tags: 1.8.2 + fast-json-stable-stringify: 2.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + lodash: 4.17.21 + pretty-bytes: 5.6.0 + rollup: 2.79.1 + rollup-plugin-terser: 7.0.2_rollup@2.79.1 + source-map: 0.8.0-beta.0 + stringify-object: 3.3.0 + strip-comments: 2.0.1 + tempy: 0.6.0 + upath: 1.2.0 + workbox-background-sync: 6.5.4 + workbox-broadcast-update: 6.5.4 + workbox-cacheable-response: 6.5.4 + workbox-core: 6.5.4 + workbox-expiration: 6.5.4 + workbox-google-analytics: 6.5.4 + workbox-navigation-preload: 6.5.4 + workbox-precaching: 6.5.4 + workbox-range-requests: 6.5.4 + workbox-recipes: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + workbox-streams: 6.5.4 + workbox-sw: 6.5.4 + workbox-window: 6.5.4 + transitivePeerDependencies: + - "@types/babel__core" + - supports-color + dev: true + + /workbox-cacheable-response/6.5.4: + resolution: + { + integrity: sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==, + } + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-core/6.5.4: + resolution: + { + integrity: sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==, + } + dev: true + + /workbox-expiration/6.5.4: + resolution: + { + integrity: sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==, + } + dependencies: + idb: 7.0.1 + workbox-core: 6.5.4 + dev: true + + /workbox-google-analytics/6.5.4: + resolution: + { + integrity: sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==, + } + dependencies: + workbox-background-sync: 6.5.4 + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + dev: true + + /workbox-navigation-preload/6.5.4: + resolution: + { + integrity: sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==, + } + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-precaching/6.5.4: + resolution: + { + integrity: sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==, + } + dependencies: + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + dev: true + + /workbox-range-requests/6.5.4: + resolution: + { + integrity: sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==, + } + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-recipes/6.5.4: + resolution: + { + integrity: sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==, + } + dependencies: + workbox-cacheable-response: 6.5.4 + workbox-core: 6.5.4 + workbox-expiration: 6.5.4 + workbox-precaching: 6.5.4 + workbox-routing: 6.5.4 + workbox-strategies: 6.5.4 + dev: true + + /workbox-routing/6.5.4: + resolution: + { + integrity: sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==, + } + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-strategies/6.5.4: + resolution: + { + integrity: sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==, + } + dependencies: + workbox-core: 6.5.4 + dev: true + + /workbox-streams/6.5.4: + resolution: + { + integrity: sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==, + } + dependencies: + workbox-core: 6.5.4 + workbox-routing: 6.5.4 + dev: true + + /workbox-sw/6.5.4: + resolution: + { + integrity: sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==, + } + dev: true + + /workbox-window/6.5.4: + resolution: + { + integrity: sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==, + } + dependencies: + "@types/trusted-types": 2.0.3 + workbox-core: 6.5.4 + dev: true + + /wrap-ansi/7.0.0: + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: ">=10" } + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrappy/1.0.2: + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } + dev: true + + /y18n/5.0.8: + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: ">=10" } + dev: true + + /yallist/3.1.1: + resolution: + { + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, + } + dev: true + + /yaml/1.10.2: + resolution: + { + integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, + } + engines: { node: ">= 6" } + dev: true + + /yargs-parser/20.2.9: + resolution: + { + integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==, + } + engines: { node: ">=10" } + dev: true + + /yargs/16.2.0: + resolution: + { + integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==, + } + engines: { node: ">=10" } + dependencies: + cliui: 7.0.4 + escalade: 3.1.1 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + dev: true diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..ad4a01537e72ef822d670fc7d4e7dae220ba8788 GIT binary patch literal 10451 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 literal 0 HcmV?d00001 diff --git a/public/android-chrome-512x512.png b/public/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..037378284b4780330ca9f9435c98cb1f66ba6760 GIT binary patch literal 29020 zcmYhj1yt1E^FIFCWoZytT0lSnrAr!NL68n8_=_l#*5fN$FCARZ3})?vU9yPo*vO2wyX4ZBwRAH}gsl1xjtCKK_2)2tGjDlltE*bvjL}??ln%+{Y;3pLTl*BRA`!q{%Rt!=EjW*ORDQ@Wk!1KP&**GFv>QSuLi{UCCMD?? z8I+p%KAlE^)O~HdJV2fT0Y}OJFQo436Xwc7dx7*2nFp}D3>HuF3g5wNrE{^MBMF5; zNwdhA9TE+lNqc7lAd>uz$E2V#X){CTOCdNzpfEA96V$?sLl?)UG= znE+mbfyNq9*~l$cMxRO3O-4*-#{9}1ZN|KWLIQ@07YI9O8w=y#0%Y4WVA)@6l=ogA)TodWVw%Oa2!mVGTQ@mpQK|R=(i} zcM5Sb(1k?2N9u7h>Q3e9VKUul=p;3_&#yf9gAWKmuz;`bM9KW{z}a~F&E<+{472KO zqIm>j2RqV_G2tbXnCqvK5K8GA*t{I-B#U_Qa+G53l!j~fqYlZqJQ8-F2?a1nBb%m! zU@J;Kb8P+16%%)A869z$?gSBsLx0sV#CoQcp3wOc20CC=_yr^8H{B-sa(Il-mOc=4 zGC@AUO#xG_{^z@CBx?rxBWh;`@nk=p(qv2vi5E?Q*SwlY49usw#)^%G<8~&BExYWm z)y{m4q)sMHxh&}66>Q-7b&kci-=w0D*t*QMEMnm(t~d$}TFhSy0LOLKEJ`yU4$qON zkq9;MPapXEqV6L7`^axBK{x{hAOM63IaG2_kB(X6Vvbq^Q8+kGv`8~RgOjkmsY3`j zgKGFb!e}PCK2}i@RNnq$ZS3-z8rM}B2?4AkYH_An?9ct!i12Zy6p-T2VUA28>Z{8W zrOyz{LKVOJncKbzz7F_o=eMGp#sbx8Mfj8{At6XNKL_e=AIZkD)K9XR_d}_ek?(+= zuKJk6r~Je0fgT}A(SDH!WrV2*HB#1R<5Si!DuAl@<**PARO4^5cN_u{LoOWy{mUq2 z*v7?FK?B*3O>*Y7b2jq|birj{B1uHP$Ke5Z-U)HqDea!~F@Nard7I=+8)E;M;hO;! zw#ry0avVzSX@s+{VQbkZM$>`6LpPAgi`kJ5U?BBKS3T27#y{8G|AblhJP^5U$oN+t zpiamA%m5$f57cLE&k!^)mAVg&4&YkTSJGoLm4OlfF>3<&o72aMW$Wv>Cxb(8#OSNG zKlIaGQe+c}@_dI#H?dv?T5alIm+Kl%l&NBiKF5UPM1i~I@>FVy<8B2^c|^K>_s%x2 zHVaD9@EcQ$|13e90h@flkY7qF%|QU;5%OCqsP|8EH^o;-L}ugi00Y$?9A7eQb&eN? zc3Y^VGaoX1)1$@i6(WYK0TaAH zC1A@6mR0ls*HwC64o95XPeCn3P2n=RMjpWps(Y=SRA+R_Z{4x%%iRZ|9B@<-u%*)> zHKn42;tmuFA#2}(Ohh|2?Y$q>xNC_6Du7^t#f5D>ecKH;=h55yJh%uV7kz~i`CKDt zMrcLvTfrAw*=b8G58x5l;92%_-|X`qDwfFMuD9T!tfN2Wo-^g*G;xJqFB}Awwzo+^ zD{o&^N)4yD&RnCm$VVwvxU?}OHz)M@fGd0)15){{3-yw3M8b9^#EzRc5m5swBtpQ+fF1{%^!#Fta*7YYs^r>ZmH{izK!W$z>v<5WHcCV$5~${du-8 zRE&0Un0X!B8bhtnP(rf%3@tR=A1X_7tj5Y6|2EJZJBIr*Xu&pJ`vc@Jya} zxa*O%7_PMh3+>vA32sBVOV*RfCytst0uE*;c4nyg_gXTjI5)pJl@hG~EVG-M{d z4~yf}avQVN+_?E|;rpMJoP^>>~Pl&|-|2Ar~%t-XGC;sbL`4DBf>0$o9hI05wsve5F{Pijm> z%GHXJ^mbq9LwB2>_CqThn#Wd%8#;vQ=j(|;P@x}TA(W_=>CI|%cRzF`2UL&p&XPZW zJt5)v7C+z>@mnR|3ly48LOeGPy8$U~zRejG^d|@%D;?y&nLlY;)ARBMW6R#e_op$4TK|j9e5tblB5uF=?oQ zw6^Xq=KYw&i~fiz{Tu~fMSgii0IZEd-Ye_duk)B2*H6zrfaW1)AP zciu3o=$RX6MP)?<6yJ_-f1~Q-5hshlAl#A{;Hk*C>?;=SWWgYk`WPPAo4WyC{23EN zg$RS4Zh1!1brZ?R=RN=fz~~EVb}4b*QaPB@=z?Mtt0gOd5@itb&o|V_g-SCL%A9d3 zs3UGyiYOILejewa=HkIdWdG3m{1p_r!mPfN+TiI&@&}jZcRLv17RwmEBE~e90SM_`>ky#LL#kX?jQTqysFOEFzAqX5L` z=5-DI#6+%bG!~ESXEqH^&~os#7*vetLW`M!)YxR7=)rE~L-3uS^oY?_&hTM1Ta^~pGT`;sTzniZgP9;{E7O?3kTSerCqI7QD|NHUo&|JXXndjk)a>=Mt2E z)5-}sT7ypMNlcu;$KddYyX!mmy;c|HQD{Ur?b;JRzo-Z7+You>xM(PC5)5>pBWZ+b zLHXC4NkYxb#~ZTDC2K#(kyJik)n3c0Ww`+RAo7k2tmX&t+5qJ(C?)J z^3j6{v|+arW1i*StDyXfU!5(GzW8i76@nmWT4CFthRyF#5wtUcE96lGus80MqPx7o zjNWyD5X9r}F1K;#L<03!VlYH`0#u+SQ|?==WUKEkbRF@h8G{l}#@he}MPsTx*H@Od z@6sM3d7s}6G6!8-9yJVOs`$0j83L+$q(JboY6mZ9!LugnV;@|D!wh07GR%E4gv@zs{< ztrR9=Stz{WQ`5kC{i8c(qJsp0v|~|8+ozQGH+O$BZz=v;BL?+o#Lud4dn5cZ9<-x8 zdVhhQ>5=;b@aBPMa8qJprT{EJ3b|MnK%6ih`k!A)BXcl@3$&P z=)xL!D>OZLfHi<5{=!W(U>r;opc^Y86<#Rso)4^IX0TBUXLgK$b zSnJw=KVIB7P?!rX-Jo17Yu~y3cy0hx1v1`Im9)1TXAbPqL|>Wro3ieaAUUr4U)sq3 zyERsz4WpAC=pM3EW9d7fNr4OT=Oc4F_`cBG@O5$J;M*G^VeTvy6T203)i-Jrwxx0H z2N1+;=EZjzm&4D%L74=#wdAc6>4hNPA3dZql3?D}jUJ!+@;>DbaM8PGfoXR}1r070 z#|44e?Xoyzo1$ElxaF~Iqd-dawNP*w4bYS0&|f05P7aBwEIxcK^xwMoNEk(OdA|tV z9~o2>Ee8$om)z$b8C2I`aJ}aJ?WyEV#UQNv>RyS5ci9grEP(m{p70xX(M-X2|GD*5 zAgXsqdi9CUl6fP5($?^km=EZ%i7WX2PrY;`6(;jsJ>H{=F&yN;5o^(tfw)m-V5s!3 z#pFM)7+?+bmW0RYnWXI-eSV@c^n(wA$Qg>tc7Lr)gqC30r|bRqG6qsm-Yt9dmCd=E zEcWdin(53?8sAIxIDjqho2-#(74HOdUPtW z&9tHRwg>|$!94qNTiPGM)toA7c`X}zyB}&E2Fo*vBH6@u(MlB76#OGWb=kXjL?~QA z_7>A$S;XZv*{!Z+GLR_C45IMztVKi0?GKBLb4d`St^13rBddV>4B>4UY+x;X`?`6s zL5sMOq@ zdkjIO4n@TrA-CCac-7g3lm1JIpblC{6IzBNQD#$kUq{meqh5nrj9hgB3e=`e!xZFb z{<}R2X4!zBl}fFLMi;$_0$pI^nlvxd9xHqR>))BONE4jjetR^w*H7Du4frXQTufM) zQX}oM)ToQ){(B;(cc9u3Gn%R|3_fLvy}Ygfk42brVU3RjHmv`W#*0G3<5m(6Eu@iS zY**ZQf^5)6cqBk`d;o&*uUx&u>KOfeLDS*iZcA`txJL@Ph=V{eW*8xGLFN-Sg{hqJ zX`+xc%KO&x$Yh)|<~SphzgOcCf;4=7$gFfcY#~#qT!TAYnan2%P8oItiNAkGlydfuk&Kw>VB>J=4bn!>Rwd zA*u-m6`X3^WO*g&z=Tgo4vH9aORY;;=GeE*V|`}yU($lYV1m(z#UHO^*9~IK%RWGn zP4IqSNTw}W!|=O*Vno5bmfJKSGW&>vh6QjW_u)dK#6KbPv;X-h1rvkQhg&pB!XYFB z44{i9-`r5l;UV0GpjsRMA`qCz%%h(S@_P0%QyUzsqKF~Ll3{)#IOQ50%kgdSz5T)w zU*d8!F7$wZ1z&=q_)A!Y`YuBe{jKMMUt0_eftAaleX`yxA2)&AIRZ5uR9rG}u||F0 z?SB#iXK+gE&v~u4$*gLPf3JxGj>$T+M66#%*u^(Mfc#&w@nK?E#@P8dy?LZ4Uk^dF zyq^jK-IMzWFV6cm+JavQE0|p%>ee@XCtkF8UK!;;K)UX>Bp_!Xio_<1`!9uq(k6+C z=NiVW=)+#$&y5w|&RgRHH}ovW`0KjelLun=|E?853E>?vN^=QldN%i`;VV9Hk)(4} zqtxkv>=~rt*!Vv;HzVG=2t}igF^z;mo$QCX25+C%;`;~4=#Q4XnE%2>0wM-iet!Kx zdbOSRUR~>gD`?RE6M|HK-@J#2;s25q=oK{#3|qo=b{`L4a$3A*d@2b+Om#@^3ISNQ zW>l~Ksqz--l{$hkSB9Gg>P8CuP4@f(M?DpFp%?+Hy#LPKiz7e30q)eAjvIqW;DREJ z)kgoa)Li((1_Yo6o~-{f%32me);8#6OKhs8PKUvBBN*VtJbMZIJM7syfA&w|OvLt3 zxVg8NS>N&Cz0dsTPDFrrsuqzW!`>4HQZdbxfQSFva*33fQ)2wixO!TxXm(xOlUrpP zLma)u86EBZPno=dx-+4D{N~~-T&?W_z%T9z@6wQ^R!`{s`2X!j1cf#)b>V$$-(K@E z!~k>^mNgIr(b%5<&umW23>Cvh^Wyi7McX)mU+lB)Da3V@i?4(`ng5;SHazh;x_doO zrCj6Tmi~rvy`@ei*TSp@ky%GVx=BU z_x^2Mx=jQgFc_Byr7(SbtuZfn@!QJYrk{;bru_fE$N`qu_AEfBZF;SZvn2`@8c0MD@e+62?*~|Ek94$MF&ZUz2n!@|3375U%n0iL}xGZ3iAo1@T4! z9{By18>3-=^71ZtC~+Z3gP2Z-6Yc-B$U_{M0cz35Jl~-Qii8m9SY8a-l`y=j*Q4%q z`rmFS9$3iuMj_GG_lxxDbiFm&Y5?hgu5^6Z`OmF+gagycplwXR+QqNYqZ*mZyEs4U z1A_aNi`D)?4q2$in=*&})AEKY10yoI*Q9jsz*`NAY0Ll4LJyv>EdTRqs%#|L;>AHw zW?>Fagf}psZj?e0FnSkwLbywQ_rC`V+I8?@1@6hl%}(UG${;P<1q2akg@;VD5{_bd z+{FTc4}>Av|Abv}h#m0R$vfkCW-t|}W7wm;GnhxmE(W*8EIAYzAumZPj8?dMvPo33 zKG6X3tOttUTX0Mfk7ILhook6$-VG%;0l18n<0!gP8ri>PznM0qjR&J$Xx!EsWN2_|3hox?+YysXAvyF9Gp zk1A;}hlN~U_mR!dfpNV@&2$K&aCS*j^ql`FqfBD@Qu{&5RTqN6CV^F00+xsN^msl- z^pV$d7>c~o*tON@svJ~L=L0_(^K`z(Kho1w=C0lI%i8m-_HY{gDQF-)TcgW>Fn>t8 zy9@%SvZ9n>wZ>XKs*CfziGF2#(n-$84?M5lA}4UiF$W&>hGlQG9Brd5nWF0Q4=u10 z%;#>(FXqH8X`i|c?Y@VQvb~VvZazcpR8yr)m>yrTX3?>UQ$xpjk z_MP3Itr!Ft*(3$FRWVy&#>O*2-&*WYbsdlHTAf77U%Ea;;GmmdVHyRD>VGJlPX4mk zMNMp8HQJ?d4>v6oq52l(-{^kSUxnUfoI9ydtN-9rOvr{4A!|zr7-%B~h*2I>S7$cS zL^dLR!B}G3@3v6*pI|z6*L0;NM(TvFy0kxT!N`BpWqv|t-VX_^hi!KuKeNwM-4DmHsXw}W|)2nL_ zcc>3-&XaJH$NM57EV5%Maj5AsWfjPlO%?HtyAUxBv%z4kYjPv4`fjFVy(-;{foxjr z+6*N|4{9iM-G_W4mRBMcF8++s>cecRPAPWsyYeY#Kh5_>Tc~I2Opwq_nV#|B`7^Os zm(ibJ{rvDwSZ?`F!%nNWZ)2m&OzaN(hJz|pBdR5da@jgv!{pF}MK{tzfZ;OZ4`xji z>_*-cZ3rGcKxP+4JJ}o8rdKxC`I}lSC{WhcVDjxz&Dct8A1cwuE%Wcg(T$R85_EkH ziHpBo-0=WyJeYDSMvc~nk0y#=gIP=eiK0AuQ(sS!nkiQo`aTjWx3!G=?GeU;IQK2SSw>apKv3IW8xvRzS*vG<~wg&gjukaKhvx};ZdC_W0+_eZK*~#EC=8NcB z4TV1-rdxagGp*6-dVU9YEflHWK|k9a=z`6%u$FyClVj8Nw~il$=hYO8Z%t*b{Zh{4 zYVPXER)6o==0ienoy4z+2p^cS2c>AIb?CEd03|TB8Dx_3I-hDe0nvn8Na*|Yo0#M1 zY@{$VH_3!T`V7~;Ag9ez`Im#2h`MI_8?l%G4=Gt1YW7YsTtTk4z1F&%huBFG)$ zNJSuw_8>rfHFvj>36TNJ-_rd1U$6(B;^#jKhAm2&mOrN9nh3ZI&T+Wh-$VFz815nCFN>s9 zwX}efP!wK>jOj`j%k(j(5LOs0Hfu=^5e53PNV!Zgk_CbQ3C9n>_qUTN7upq{S z)Yq-C;rXUX>?G3f#2C|_Pso+S?itU9TzZNk%6C2(i;*OtJ|0M0wbi=cznSR%ucIMU zvK;Vo>uTX~m3UyLMIdYN+o_bx-h{l)gF7R{sDNghwg+>9uOB6TlxJXrT@B?7fA&?J zEKih=7Y4Ju_nWXbqr^u)Y!w(NU|Mf3qED4NUSTsc3cb&`H2*Pe{jzXKO1Ie{zI}({ zQ<17)*)zmq`Of{-nZz_YFF<|q9D?%y_vuNPYM&CS_o?OpcQn5CpryU*`A9E(m7_FN zbm-SJs3^YHsc!SG_N#&VUqkg=;B*mdN_vEJM&F(u#XA|zonL)0kV7R(JU6E z-NpwcM5GjB_j8-^D-w}+aOETAx}r06Lre6>A*h>rzf`@s&tuOZ6U@^;yy$Rcf)Ono zG&`a!gst9dB~&Vp?ecrp;AwSv5H;WaMXAAj<@E)40`b()sKeHAYYj&0WDVRM81N{t zD(wv$`>CBdmWUjM4YRa-l=|J^>&T};`ZIe{zeLsxi)G&at?+UFT|0Xms&TyHH&kdBxmpt&c(NLPI42@S5b!u+xTXTwggH>a!y z#qD2Tczieva)gDE1Fn7+w%#@$uXPzi{B8Zio(7Lmy+t)*kUDKvXjxS1#WP-8!ScEF z4WreBWHY@+a0)c!g24)QRG{YUv=~GJzhpUo;sFO%I&rCj`UgQ`^7H^N+O?}x_79V8evlyTq%ib zEj3^DOXK`>C``OuX zw)qjiz&BRu5lDPM`<+_NuSX@<<11nHvx1kqb~^_`^`DRJXYfnX_fzBV9+ffGRx?3Z z+YgszMOMSiedQqtuzlM8d}#*C@E}QQJQZwLIeHRd-xFmdG}1i#4ssSvg3eG7nFy~m zZv4W04#l-r%NBd+)+SgC74>;JphcMyo zhum^sJ69h`+SxN)^GTB#0|lWPeeRUYs(2~Sa3DysFK>%YAQMmi+j4>UmkNdFT8Jxc zBc;oEcx(KaOe*SUEoZ}ppCwid*DFP$c;xsZSI;ayu~c#eo+yaN%fvP0_g{D_?z6#h z;t;1=G%Inca%he>C-`xCM?SS!$Q*GAj=7CatCqUOCcn2lAM4$^*|}%7TF;}UMeWJ` z9y-C`XR%1KgTjNL>Hc5{+!s*aYJ7?_4UbVjVGMM{Da^WYk$aWvz#?=R+NxG!d)F5Z zLbUy5OOvU9xi^O&zIt8ahfYRS{te=At=tRisU7jpJoAm!XIH+YLETCrJi zcFkx;LiSH}vgUi4Y^@t=?Y*i9-zBadk;hc*!FYi8e|`CpI!3C%t*6ir@bUiFotmEu z3@*y}v@G?HbREte8VoANXQHY$=G|-KX%ZsVJM&-jHkrLD{c^DMm$CtBs)wzQa59n3 zJq=U(X1CQdoC~rhPRlYlye0f*S7Nv!it}LF>=9?BE5emhX;*KrM!$ji7aqN={Duk2 z{&3IYLtOxUMwrVT?G z!-)_g!J7NIKMvU*zA&8#v2(roMDnHMqGhL&T&3Z(JD0R2lEMrfoYp%OPj%R*`pT|A>>o{eWvE<#+<&B z?zPEpei;XWYFt1wR>p?tl}as&<5T1_1_ol`rqYUTN)k*E^Jg1`w9!4|NfX`3LFL?$ z|7kB*@wR3(`#?}Z{L+Pg5xm@Dz_5~wr!-namrKO?PXi&-QOK7fj4`A9k~0R6}P6}xw3xB&gEC#$9EVV zmX1Uw#WqidO@qywEvG+<;T|rtF;PpQGdJ0|>H{IdaP@B;IrJHUkMA8vkK?wegdhWFp|xku(cC%>B6o1DpCY1`KnzRJog=uk;)YOqkVNbZrv(T+9kt(b3yfi)(#--I z8oZ2X0%K$XtvW4C1MnZlM!K?Ht?e(xGuBp<0m&GZ1dRjL%Aodv~Gl(do(5r@7ioZ!#Do z*J2;@8>_|C_4+{CRtMnlEV;8==0J!=a+!eS!u^F5|LW_!W3|m%zY63Iy96gR=%!LU zXEh=POFY&zSEO5iwA^B*wz1?FbYXKDZMm^NSpSSszS@+{N?WgN`Wfz2ey}ZRi4sxQ z!jTW8>Bi4Q-(kI_@{Ge!)XxVaq*atmuTV_W{Fx@P(ry)#e}!CRNkPsBu_Z_s-8urw^C_^SxxWu|y|?-B{2bd_--T(n0`ZO~V4!Ar;4`_0$blF<{IoiH|#hv1U>f0S%&9N|YB(FY01 zkM<6zsU2VG*J~ISay|ciHsW=I_Md^dHJg;H|tz==R28Osr_Pyk|Pn=26 zvv;6xoDo`HJ^4nxnX!j%0J7(4QwNY;U_jO z6U)29FI}E)kzRy+Ivv8V%5@gi%P)!z=#m4^a~G;1KF`(F$W;jP9SsMhjBSGjyxCzg zu_!5{5v)pArit?zNvdCJR|7FV&DMx_{(|Qog>@G-)mP@5nSiI25qs3^%2WW4%X`0= zrwGOK*Iv(ec(bs9!~7ZTr7|p3m3_y)gW==txA*tD*59waf0I?;>L?|2&a`u0MZyN~ zXlTl2QpD7D;3C1$HlAu*`L&B-@O>f++$~lp(A&dOm7*ish~<>tc&2YFf{D_po^Tnz z(BUpqt}QeWDegG)cY4=D=O7*=W=_p%{%U@$3+ZalLTO_^T)JQ^h0nZy5OeZ9z{BSa zbxP1jsTH-2zaTbUZnv?s9o~H%)3bJhmtzR>^lAisEBJp{&s|PcZ&s52aV+k>`YblQ`o2^5G3KWJ$pZ)mJmK^kzRPEK zT7XQq8J|&=C)Z6&1PeAiguddX28kV#;K3NNwtw}=U3B2VV_h0l5%*~B zU}t^6(yY^PlO|N7d6lc{N##3oAf6KGR(I{L7)$5Q!n2NIy2_Hf5zQn+8xA2S=4foI z=dua({htd~z3uV)xm0|*S!r#L@8AmO5esDV_`q)ks%5vc?%0`WTre#Qx{V)?=zmOO zOrQGt0$bYCwa&!t@ZquNj+KkJG9M{sv%onC>Xm`7uoa``%`?7LuQDf`GkuKjLWZ-i zmhQxQ;BFr(m8d52?G-rnd?=`7Qg>DqRo!YeLT~e?!p{z|k3D;39Nu28PFAk<^ysNp zrp3FR*w%h6`$6nNMLTc>gC1y|{+&iYS@OUI44G#)0g;(2GHbI!Sl?Ps1okr?0U4iZ zeGJrJkBz;+-y0qAJxZvhhxy^6+5~@0Fm1=0OdP2EiXP$0s3MfzC|9QEcJM%BRgn?D zyH6hi?~!2;dQro9ZNN%rS8=0>>(Ax=>5dKSgk5hBYc`EO^Rs5HV8YrC`A)mKMp>Ul zSwxRBJKY=2jN)zz} z$%HxmBb~}e7Q+=?B(BJ#hd?(E!aeoXdW_}Rg)dNOvr^fjz9N1JCcKa_qra{uG4OT8!TE2PAin5dXtfuv!qR&bpF8+@@ zc~uUlpVu(yz(SO_o`dtPvazQvD#-Kp>;;YaPkO9BoQ~AyfBL<1>>M2Zg+U)Bv~%&1 zgkSfraO9BFS-aB42h#Wzz4$L6Tle6;7P51C!1` z%QK8H?ww4O9@UGzZx-(^Y1EDj5jg1ZuT`zZF(LaFI1O48}K**b|Qn2rbwb( z>6>J}Wz=_Id%ETiAhM_)F;wgEp3kPi^Su-Sn|Au?-oR8<{;^r2GzdB05Fr|DGvt%M?Yw+x(_ zR}-yrnvY7(4v(@hFj9hB$IWp9d;Y8pMAd?K^~-Vo;jfr{e~+FplT8fa)mnYK;`+Yu zCHxbWpIIzZ=>6&b-iCA1!+_?6aw=R`8H8eEY15%9?F-xR;t1vrZ7L_ z!ndHjGS!lf>&6MU;x29HHa@&}YU|Kp;^)X$aEDiy*t+1p%IHn<$Kyoe1Zk}l%D=AX zCIHX;Iyk}iZoacpzA*jo(dHGo&7k@I`&Kxm>fM@=?>Oq6J z!f#)VZbUoVPU?Ux{t1EeS>?~QXV1~Uz-nS{H#4i98L|g8Jzgx-aTN+~8%6S3m&X;b5iXE1>F= zk2T9;YZ;v(B#I%ov&_@khBfdvbsYVht*|&2%r9D>t02K_ySkY`!fSz-is8)YAKNH?xu{;_SHHtn~JgCP8^0UbksALeMOgyW@uC#yHf24Qp zTGV#!mpfk@eBXZevXjQ@RXSd4S&pFTJwIEvoT0QmT=`$SUHC58_H!8Oi)9H3_K}eB zQdv_(9bNHO3D2OjgYdnp{dzVhiA|=uio0t_>GDwFt#%Noc7E=Z(839^Re5gDugNV~g)pMrV#&4!0z~o7}(g@l7v!6T!

vL;g3atwhcA;cC)mM=( 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 O2q?&@JT8(kdiQ@eTB7#= literal 0 HcmV?d00001 diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ac997371cc4c2788b72ee435058acb62885fc635 GIT binary patch literal 9298 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

kVD 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 literal 0 HcmV?d00001 diff --git a/public/favicon-32x32.png b/public/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..86cadff9625023fcfd669d98d7bf2e8bd4d83529 GIT binary patch literal 1112 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 literal 0 HcmV?d00001 diff --git a/public/pwa-192x192.png b/public/pwa-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..ad4a01537e72ef822d670fc7d4e7dae220ba8788 GIT binary patch literal 10451 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 literal 0 HcmV?d00001 diff --git a/public/pwa-512x512.png b/public/pwa-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..037378284b4780330ca9f9435c98cb1f66ba6760 GIT binary patch literal 29020 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

vL;g3atwhcA;cC)mM=( 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 O2q?&@JT8(kdiQ@eTB7#= literal 0 HcmV?d00001 diff --git a/public/robots.txt b/public/robots.txt new file mode 100644 index 0000000..c2a49f4 --- /dev/null +++ b/public/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Allow: / diff --git a/src/App.tsx b/src/App.tsx new file mode 100644 index 0000000..f316968 --- /dev/null +++ b/src/App.tsx @@ -0,0 +1,65 @@ +import { Flex } from "@mantine/core"; +import { + IconBrandGithub, + IconHome, + IconInfoCircle, + IconSettings, +} from "@tabler/icons"; + +import { BrowserRouter, Route, Routes } from "react-router-dom"; +import Header from "./components/Header"; +import Home from "./components/Home"; +import Settings from "./components/Settings"; +import About from "./components/About"; +import NotFound from "./components/NotFound"; +import ThemeProvider from "./components/ThemeProvider"; +import SettingsContext, { getSettings } from "./context/Settings"; +import { useState } from "react"; + +export default function App() { + const settings = useState(getSettings()); + const [settingsOpened, setSettingsOpened] = useState(false); + + return ( + + + + +

About ), } + { + label: "Source", + icon: IconBrandGithub, + link: () => { + window.open( + "https://github.com/PandeCode/anode", + ); + }, + }, + // { + // label: "Settings", + // icon: IconSettings, + // link: () => + // setSettingsOpened(!settingsOpened), + // }, + ]} + /> + +
+ + } path="/" /> + } path="/about" /> + } path="*" /> + +
+ + + + + ); +} diff --git a/src/assets/react.svg b/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/About.tsx b/src/components/About.tsx new file mode 100644 index 0000000..3d2f82c --- /dev/null +++ b/src/components/About.tsx @@ -0,0 +1,5 @@ +interface AboutProps {} + +export default function About({}: AboutProps) { + return <>PandeCode D3.js React Typescript; +} diff --git a/src/components/Header.tsx b/src/components/Header.tsx new file mode 100644 index 0000000..355d60b --- /dev/null +++ b/src/components/Header.tsx @@ -0,0 +1,208 @@ +import { + ActionIcon, + Burger, + Text, + Container, + createStyles, + Flex, + Group, + Header, + Menu, + useMantineColorScheme, +} from "@mantine/core"; +import { useDisclosure } from "@mantine/hooks"; +import { IconMoonStars, IconSun, TablerIcon } from "@tabler/icons"; +import { ReactNode, useState } from "react"; +import { useNavigate } from "react-router-dom"; + +const useStyles = createStyles((theme) => ({ + header: { + display: "flex", + justifyContent: "space-between", + alignItems: "center", + height: "100%", + }, + + links: { + [theme.fn.smallerThan("xs")]: { + display: "none", + }, + }, + + burger: { + [theme.fn.largerThan("xs")]: { + display: "none", + }, + }, + + item_dropdown: { + [theme.fn.largerThan("xs")]: { + display: "none", + }, + }, + + link: { + display: "block", + lineHeight: 1, + padding: "8px 12px", + borderRadius: theme.radius.sm, + textDecoration: "none", + color: + theme.colorScheme === "dark" + ? theme.colors.dark[0] + : theme.colors.gray[7], + fontSize: theme.fontSizes.sm, + fontWeight: 500, + + "&:hover": { + backgroundColor: + theme.colorScheme === "dark" + ? theme.colors.dark[6] + : theme.colors.gray[0], + }, + }, + + linkActive: { + "&, &:hover": { + backgroundColor: theme.fn.variant({ + variant: "light", + color: theme.primaryColor, + }).background, + color: theme.fn.variant({ + variant: "light", + color: theme.primaryColor, + }).color, + }, + }, +})); + +interface HeaderSimpleProps { + links: { link: string | (() => any); label: string; icon: TablerIcon }[]; +} + +export default function HeaderSimple({ links }: HeaderSimpleProps) { + const navigator = useNavigate(); + + const { colorScheme, toggleColorScheme } = useMantineColorScheme(); + const dark = colorScheme === "dark"; + + const [opened, { toggle }] = useDisclosure(false); + const [active, setActive] = useState(links[0].link); + const { classes, cx } = useStyles(); + + return ( +
+ + + + {links.map((link) => ( + { + event.preventDefault(); + if (typeof link.link == "function") { + link.link(); + } else { + setActive(link.link); + navigator(link.link); + } + }} + > + + {" "} + {link.label} + + + ))} + + toggleColorScheme()} + title="Toggle color scheme" + > + {dark ? ( + + ) : ( + + )} + + + + + + + + + + {links.map((link) => ( + { + event.preventDefault(); + if (typeof link.link == "function") { + link.link(); + } else { + setActive(link.link); + navigator(link.link); + } + toggle(); + }} + > + + {" "} + {link.label} + + + ))} + + { + toggleColorScheme(); + toggle(); + }} + title="Toggle color scheme" + > + {dark ? ( + + {" "} + Light{" "} + + ) : ( + + {" "} + Dark{" "} + + )} + + + + +
+ ); +} diff --git a/src/components/Home.tsx b/src/components/Home.tsx new file mode 100644 index 0000000..74d5ae1 --- /dev/null +++ b/src/components/Home.tsx @@ -0,0 +1,172 @@ +import { + ActionIcon, + Center, + Flex, + LoadingOverlay, + Popover, + Text, + TextInput, +} from "@mantine/core"; +import { + IconArrowLeft, + IconBook, + IconDeviceTv, + IconGrowth, + IconTree, +} from "@tabler/icons"; +import { useEffect, useRef, useState } from "react"; +import Tree from "../components/Tree"; +import { Media, Type } from "../types/anime"; +import { getMediaAndRecommendationsFromSearch } from "../utils/anime"; +import { animeExamples, mangaExamples } from "../utils/examples"; + +interface HomeProps { } + +export default function Home({ }: HomeProps) { + const inputRef = useRef(null); + const [data, setData] = useState(); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(); + const [placeholder, setPlaceholder] = useState(animeExamples[0]); + + const [shouldUseCluster, setShouldUseCluster] = useState(false); + + const [typeChooserOpen, setTypeChooserOpen] = useState(false); + const [type, setType] = useState("ANIME"); + const toggleTypeChooser = () => { + setTypeChooserOpen(!typeChooserOpen); + }; + + useEffect(() => { + inputRef.current && inputRef.current.focus(); + }, []); + + useEffect(() => { + const interval = setInterval(() => { + const examples = type == "ANIME" ? animeExamples : mangaExamples + const newIndex = examples.indexOf(placeholder) + 1; + if (newIndex < examples.length) { + setPlaceholder(examples[newIndex]); + } else { + setPlaceholder(examples[0]); + } + }, 150); + return () => { + clearInterval(interval); + }; + }, [placeholder]); + + const getData = async (e: any) => { + e.preventDefault(); + if (inputRef.current) { + setLoading(true); + try { + setData( + await getMediaAndRecommendationsFromSearch( + inputRef.current.value, + type, + 5, + ), + ); + } catch { + setError("Failed to fetch anime"); + } + setLoading(false); + } + }; + + return ( +
+ + {data ? ( + <> + setData(undefined)} + style={{ position: "absolute", right: 20, top: 80 }} + variant="filled" + size={30} + radius="xl" + > + + + setShouldUseCluster(!shouldUseCluster)} + style={{ position: "absolute", right: 20, top: 130 }} + variant="filled" + size={30} + radius="xl" + > + {shouldUseCluster ? ( + + ) : ( + + )} + + + + ) : ( +
+ + + + + {type == "ANIME" ? ( + + ) : ( + + )} + + + + + { + setType("ANIME"); + setTypeChooserOpen(false); + }} + > + {" "} + + { + setType("MANGA"); + setTypeChooserOpen(false); + }} + > + {" "} + + + + + + + +
+ )} +
+ ); +} diff --git a/src/components/NotFound.tsx b/src/components/NotFound.tsx new file mode 100644 index 0000000..0a1751c --- /dev/null +++ b/src/components/NotFound.tsx @@ -0,0 +1,85 @@ +import { + createStyles, + Image, + Container, + Title, + Text, + Button, + SimpleGrid, +} from "@mantine/core"; +import { useNavigate } from "react-router-dom"; +import image from "../svg/img404.svg"; + +const useStyles = createStyles((theme) => ({ + root: { + paddingTop: 80, + paddingBottom: 80, + }, + + title: { + fontWeight: 900, + fontSize: 34, + marginBottom: theme.spacing.md, + fontFamily: `Greycliff CF, ${theme.fontFamily}`, + + [theme.fn.smallerThan("sm")]: { + fontSize: 32, + }, + }, + + control: { + [theme.fn.smallerThan("sm")]: { + width: "100%", + }, + }, + + mobileImage: { + [theme.fn.largerThan("sm")]: { + display: "none", + }, + }, + + desktopImage: { + [theme.fn.smallerThan("sm")]: { + display: "none", + }, + }, +})); + +export default function NotFoundImage() { + const { classes } = useStyles(); + const navigate = useNavigate(); + + return ( + + + +
+ + Something is not right... + + + Page you are trying to open does not exist. You may have + mistyped the address, or the page has been moved to + another URL. If you think this is an error contact + support. + + +
+ +
+
+ ); +} diff --git a/src/components/Settings.tsx b/src/components/Settings.tsx new file mode 100644 index 0000000..699ad5a --- /dev/null +++ b/src/components/Settings.tsx @@ -0,0 +1,202 @@ +import { + ColorInput, + Text, + Drawer, + Flex, + NumberInput, + Radio, +} from "@mantine/core"; +import { useContext } from "react"; +import SettingsContext, { defaultSettings } from "../context/Settings"; + +export default function Settings({ + opened, + setOpened, +}: { + opened: boolean; + setOpened: (arg0: boolean) => void; +}) { + const [settings, setSettings] = useContext(SettingsContext); + const handleClose = () => setOpened(false); + + return ( + + + Settings + + + setSettings((o) => { + o.fill = e; + localStorage.setItem("settings-fill", o.fill); + return o; + }) + } + /> + + setSettings((o) => { + o.stroke = e; + localStorage.setItem("settings-stroke", o.stroke); + return o; + }) + } + /> + + setSettings((o) => { + o.pathColor = e; + localStorage.setItem( + "settings-pathColor", + o.pathColor, + ); + return o; + }) + } + /> + + + setSettings((o) => { + o.circleOutlineThickness = + e ?? defaultSettings.circleOutlineThickness; + localStorage.setItem( + "settings-circleOutlineThickness", + o.circleOutlineThickness.toString(), + ); + + return o; + }) + } + /> + + setSettings((o) => { + o.circleRadius = e ?? defaultSettings.circleRadius; + localStorage.setItem( + "settings-circleRadius", + o.circleRadius.toString(), + ); + return o; + }) + } + /> + + setSettings((o) => { + o.labelFontSize = + e ?? defaultSettings.labelFontSize; + localStorage.setItem( + "settings-labelFontSize", + o.labelFontSize.toString(), + ); + return o; + }) + } + /> + + setSettings((o) => { + o.nodeHeight = e ?? defaultSettings.nodeHeight; + localStorage.setItem( + "settings-nodeHeight", + o.nodeHeight.toString(), + ); + return o; + }) + } + /> + + setSettings((o) => { + o.nodeWidth = e ?? defaultSettings.nodeWidth; + localStorage.setItem( + "settings-nodeWidth", + o.nodeWidth.toString(), + ); + return o; + }) + } + /> + + setSettings((o) => { + o.numNodes = Number(e ?? defaultSettings.numNodes); + localStorage.setItem( + "settings-numNodes", + o.numNodes.toString(), + ); + return o; + }) + } + /> + + setSettings((o) => { + o.transitionDuration = + e ?? defaultSettings.transitionDuration; + localStorage.setItem( + "settings-transitionDuration", + o.transitionDuration.toString(), + ); + return o; + }) + } + /> + + setSettings((o) => { + o.titleType = e as any; + localStorage.setItem( + "settings-titleType", + o.titleType, + ); + return o; + }) + } + > + + + + + + + ); +} diff --git a/src/components/ThemeProvider.tsx b/src/components/ThemeProvider.tsx new file mode 100644 index 0000000..34c0a10 --- /dev/null +++ b/src/components/ThemeProvider.tsx @@ -0,0 +1,36 @@ +import { + MantineProvider, + ColorSchemeProvider, + ColorScheme, +} from "@mantine/core"; +import { useColorScheme, useHotkeys, useLocalStorage } from "@mantine/hooks"; + +export default function ThemeProvider({ children }: { children: any }) { + const preferredColorScheme = useColorScheme(); + + const [colorScheme, setColorScheme] = useLocalStorage({ + key: "mantine-color-scheme", + defaultValue: preferredColorScheme, + getInitialValueInEffect: true, + }); + + const toggleColorScheme = (value?: ColorScheme) => + setColorScheme(value || (colorScheme === "dark" ? "light" : "dark")); + + // useHotkeys([['mod+J', () => toggleColorScheme()]]); + + return ( + + + {children} + + + ); +} diff --git a/src/components/Tree.tsx b/src/components/Tree.tsx new file mode 100644 index 0000000..e913ac6 --- /dev/null +++ b/src/components/Tree.tsx @@ -0,0 +1,198 @@ +import { useContext, useEffect, useState } from "react"; + +import { LoadingOverlay, useMantineColorScheme } from "@mantine/core"; + +import * as d3 from "d3"; + +import { Media } from "../types/anime"; +import { Node } from "../types/node"; + +import { mediaToNode, toggleChildren } from "../utils/node"; + +import useD3 from "../hooks/useD3"; +import useWindowDimensions from "../hooks/useWindowDimensions"; + +import SettingsContext from "../context/Settings"; + +interface TreeProps { + data: Media; + shouldUseCluster: boolean; +} + +export default function Tree({ data, shouldUseCluster }: TreeProps) { + const settings = useContext(SettingsContext)[0]; + + const windowDimensions = useWindowDimensions(); + const { colorScheme } = useMantineColorScheme(); + + const [prepedData, setPrepedData] = useState(mediaToNode(data)); + const [alreadFound, setAlreadyFound] = useState>(); + const [loading, setLoading] = useState(false); + + const [transform, setTransform] = useState(); + + const [animateChildren, setAnimateChildren] = useState(); + + const toggleNodeChildren = async (_: any, d: d3.HierarchyNode) => { + setLoading(true); + const alreadFoundClone = new Set(alreadFound); + // await toggleChildren(d.data, alreadFoundClone, settings.numNodes); + await toggleChildren(d.data, alreadFoundClone, settings.numNodes); + setAlreadyFound(alreadFoundClone); + setLoading(false); + }; + + useEffect(() => { + setAnimateChildren(prepedData.data.id); + setAlreadyFound( + new Set([ + prepedData.data.id, + ...(prepedData.children + ? prepedData.children.map((d) => d.data.id) + : []), + ]), + ); + }, [prepedData]); + + const d3ref = useD3( + (container, _dom) => { + const { + pathColor, + circleOutlineThickness, + circleRadius, + stroke, + labelFontSize, + fill, + nodeHeight, + nodeWidth, + titleType, + transitionDuration, + } = settings; + container.selectAll("*").remove(); + + const root = d3.hierarchy(prepedData); + + const treeLayout = shouldUseCluster ? d3.cluster() : d3.tree(); + treeLayout.nodeSize([nodeHeight, nodeWidth]); + + const links = treeLayout(root as any).links(); + const linkPathGenerator = d3 + .linkHorizontal() + .x(({ y }: any) => y) + .y(({ x }: any) => x); + + const svg = container + .append("svg") + .attr("width", windowDimensions.width) + .attr("height", windowDimensions.height) + .attr("style", "width: 100%; height: auto;"); + + const g = svg + .append("g") + .attr("width", windowDimensions.width) + .attr("height", windowDimensions.height); + + g.append("g") + .selectAll("path") + .data(links) + .join("path") + .attr("d", linkPathGenerator as any) + .attr("fill", "none") + .attr("stroke", pathColor) + .attr("stroke-linejoin", "round") + .attr("stroke-width", 3); + + const node = g + .append("g") + .selectAll("g") + .data(root.descendants()) + .join("g") + .on("click", toggleNodeChildren); + + node.transition() + .duration(transitionDuration) + .attr("transform", (d: any) => { + return `translate(${d.y}, ${d.x})`; + }); + + // node.attr("transform", (d: any) => { + // return `translate(${d.y}, ${d.x})`; + // }); + + node.append("text") + .style("fill", colorScheme == "light" ? "black" : "white") + .attr("text-anchor", "middle") + .attr("dy", "0.32em") + .attr( + "y", + circleRadius + circleOutlineThickness + labelFontSize, + ) + .text((d) => { + if (d.data.data.title[titleType]) { + return d.data.data.title[titleType]; + } else if (titleType == "english") { + if (d.data.data.title.romaji) + return d.data.data.title.romaji; + else if (d.data.data.title.native) + return d.data.data.title.native; + } else if (titleType == "romaji") { + if (d.data.data.title.english) + return d.data.data.title.english; + else if (d.data.data.title.native) + return d.data.data.title.native; + } else if (titleType == "native") { + if (d.data.data.title.english) + return d.data.data.title.english; + else if (d.data.data.title.romaji) + return d.data.data.title.romaji; + } + + return "NULL"; + }); + + node.append("clipPath") + .attr("id", (d) => `clipPath${d.data.data.id}`) + .append("circle") + .attr("fill", (d) => (d.children ? stroke : fill)) + .attr("r", circleRadius); + + node.append("circle") + // .attr("fill", (d) => (d.children ? stroke : fill)) + .attr("fill", (d) => d.data.data.coverImage.color) + .attr("r", circleRadius + circleOutlineThickness); + + node.append("image") + .attr("href", (d) => d.data.data.coverImage.medium) + .attr("clip-path", (d) => `url(#clipPath${d.data.data.id})`) + .attr("x", "-50px") + .attr("y", "-75px"); + + if (transform) g.attr("transform", transform); + container.call( + d3.zoom().on( + "zoom" as any, + ((e: any) => { + setTransform(e.transform); + g.attr("transform", e.transform); + }) as any, + ) as any, + ); + }, + [ + data, + windowDimensions, + colorScheme, + prepedData, + alreadFound, + settings, + shouldUseCluster, + ], + ) as any; + + return ( + <> + +
+ + ); +} diff --git a/src/context/Settings.ts b/src/context/Settings.ts new file mode 100644 index 0000000..1a5dc6d --- /dev/null +++ b/src/context/Settings.ts @@ -0,0 +1,67 @@ +import { createContext, useState } from "react"; +import Settings from "../types/Settings"; + +export const defaultSettings: Settings = { + circleOutlineThickness: 3, + circleRadius: 50, + stroke: "#555", + fill: "#999", + pathColor: "#000", + nodeHeight: 200, + nodeWidth: 200, + numNodes: 10, + labelFontSize: 10, + transitionDuration: 750, + titleType: "english", +}; + +export function getSettings(): Settings { + return { + circleOutlineThickness: Number( + localStorage.getItem("settings-circleOutlineThickness") ?? + defaultSettings.circleOutlineThickness, + ), + circleRadius: Number( + localStorage.getItem("settings-circleRadius") ?? + defaultSettings.circleRadius, + ), + stroke: + localStorage.getItem("settings-stroke") ?? defaultSettings.stroke, + fill: localStorage.getItem("settings-fill") ?? defaultSettings.fill, + pathColor: + localStorage.getItem("settings-pathColor") ?? + defaultSettings.pathColor, + nodeHeight: Number( + localStorage.getItem("settings-nodeHeight") ?? + defaultSettings.nodeHeight, + ), + nodeWidth: Number( + localStorage.getItem("settings-nodeWidth") ?? + defaultSettings.nodeWidth, + ), + numNodes: Number( + localStorage.getItem("settings-numNodes") ?? + defaultSettings.numNodes, + ), + labelFontSize: Number( + localStorage.getItem("settings-labelFontSize") ?? + defaultSettings.labelFontSize, + ), + transitionDuration: Number( + localStorage.getItem("settings-transitionDuration") ?? + defaultSettings.transitionDuration, + ), + titleType: + (() => { + const type = localStorage.getItem("settings-titleType"); + if (type == "english" || type == "romaji" || type == "native") + return type; + })() ?? defaultSettings.titleType, + }; +} + +const SettingsContext = createContext< + [Settings, React.Dispatch>] +>(null as any); + +export default SettingsContext; diff --git a/src/hooks/useD3.ts b/src/hooks/useD3.ts new file mode 100644 index 0000000..0a76b9e --- /dev/null +++ b/src/hooks/useD3.ts @@ -0,0 +1,21 @@ +import React from "react"; +import * as d3 from "d3"; +import { Selection } from "d3"; + +export default function useD3( + renderFunction: ( + d3Container: Selection, + dom: HTMLElement, + ) => void, + dependencies: React.DependencyList, +) { + const ref = React.useRef(); + + React.useEffect(() => { + if (ref.current) { + renderFunction(d3.select(ref.current), ref.current); + } + return () => {}; + }, [...dependencies, ref.current]); + return ref; +} diff --git a/src/hooks/useWindowDimensions.ts b/src/hooks/useWindowDimensions.ts new file mode 100644 index 0000000..1649d62 --- /dev/null +++ b/src/hooks/useWindowDimensions.ts @@ -0,0 +1,22 @@ +import { useState, useEffect } from "react"; + +export default function useWindowDimensions(): { + width: number; + height: number; +} { + const [windowDimensions, setWindowDimentions] = useState({ + width: window.innerWidth, + height: window.innerHeight, + }); + useEffect( + () => + window.addEventListener("resize", () => + setWindowDimentions({ + width: window.innerWidth, + height: window.innerHeight, + }), + ), + [], + ); + return windowDimensions; +} diff --git a/src/main.tsx b/src/main.tsx new file mode 100644 index 0000000..e8baadb --- /dev/null +++ b/src/main.tsx @@ -0,0 +1,10 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import App from "./App"; +import "./styles/index.css"; + +ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render( + + + , +); diff --git a/src/styles/index.css b/src/styles/index.css new file mode 100644 index 0000000..e69de29 diff --git a/src/svg/img404.svg b/src/svg/img404.svg new file mode 100644 index 0000000..5bb68e8 --- /dev/null +++ b/src/svg/img404.svg @@ -0,0 +1 @@ + diff --git a/src/types/Settings.ts b/src/types/Settings.ts new file mode 100644 index 0000000..8839d46 --- /dev/null +++ b/src/types/Settings.ts @@ -0,0 +1,13 @@ +export default interface Settings { + circleOutlineThickness: number; + circleRadius: number; + stroke: string; + fill: string; + pathColor: string; + nodeHeight: number; + nodeWidth: number; + numNodes: number; + labelFontSize: number; + transitionDuration: number; + titleType: "english" | "romaji" | "native"; +} diff --git a/src/types/anime.ts b/src/types/anime.ts new file mode 100644 index 0000000..5054121 --- /dev/null +++ b/src/types/anime.ts @@ -0,0 +1,38 @@ +export type Type = "ANIME" | "MANGA"; +export interface Welcome { + data: Data; +} + +export interface Data { + Media: Media; +} + +export interface CoverImage { + medium: string; + color: string; +} + +export interface Title { + romaji: string; + english: string; + native: string; +} +export interface Media { + id: number; + title: Title; + coverImage: CoverImage; + type: Type; + recommendations: { + edges: { + node: { + rating: number; + mediaRecommendation: { + id: number; + type: Type; + title: Title; + coverImage: CoverImage; + }; + }; + }[]; + } | null; +} diff --git a/src/types/node.ts b/src/types/node.ts new file mode 100644 index 0000000..e237a87 --- /dev/null +++ b/src/types/node.ts @@ -0,0 +1,12 @@ +import { CoverImage, Title, Type } from "./anime"; + +export interface Node { + data: { + title: Title; + coverImage: CoverImage; + type: Type; + id: number; + }; + children: Node[] | null; + children_hidden: Node[] | null; +} diff --git a/src/utils/anime.ts b/src/utils/anime.ts new file mode 100644 index 0000000..0148b7f --- /dev/null +++ b/src/utils/anime.ts @@ -0,0 +1,93 @@ +import type { Welcome, Type, Media } from "../types/anime"; + +async function anilist(query: string, variables: object) { + const response = await fetch("https://graphql.anilist.co", { + method: "POST", + body: JSON.stringify({ query, variables }), + headers: { + "Content-Type": "application/json", + Accept: "application/json", + }, + }); + + const data: Welcome = await response.json(); + return data.data; +} + +export async function getRecommendationsFromId( + id: number, + type: Type = "ANIME", + max: number = 1, +): Promise< + { + rating: number; + mediaRecommendation: { + id: number; + type: Type; + title: { english: string; native: string; romaji: string }; + coverImage: { medium: string; color: string }; + }; + }[] +> { + const data = await anilist( + ` +query ($id: Int, $type: MediaType, $max: Int) { +Media(id: $id, type: $type) { + recommendations(sort: RATING_DESC, page: 1, perPage: $max) { + edges { + node { + rating + mediaRecommendation { + id + type + title { english romaji native } + coverImage { medium color } + } + } + } + } +} +} +`, + { id, type, max }, + ); + + return data.Media.recommendations + ? (data.Media.recommendations.edges.map((e) => e.node) as any) + : []; +} + +export async function getMediaAndRecommendationsFromSearch( + search: string, + type: Type = "ANIME", + max: number = 10, +): Promise { + const data = await anilist( + ` +query ($search: String, $type: MediaType, $max: Int) { + Media(search: $search, type: $type) { + id + title { english romaji native } + coverImage { medium color } + recommendations(sort: RATING_DESC, page: 1, perPage: $max) { + edges { + node { + rating + mediaRecommendation { + id + type + title { english native romaji } + coverImage { medium color } + } + } + } + } + } +} +`, + { search, type, max }, + ); + + data.Media.type = type; + return data.Media as any; +} diff --git a/src/utils/examples.ts b/src/utils/examples.ts new file mode 100644 index 0000000..17c0ed4 --- /dev/null +++ b/src/utils/examples.ts @@ -0,0 +1,34 @@ +function genList(list: string[]) { + const ret = []; + for (let str of list) { + const l = []; + for (let i = 1; i <= str.length; i++) { + l.push(str.substring(0, i) + "|"); + } + l.push(str + "| "); + l.push(str + " "); + l.push(str + "| "); + l.push(str + " "); + + ret.push(...l); + } + + return ret; +} + +export const animeExamples = genList([ + "Bleach", + "One Piece", + "Naruto", + "Attack On Titan", + "Black Clover", + "Chainsaw Man", +]); + +export const mangaExamples = genList([ + "Dandadan", + "Vagabond", + "Record of Ragnarok", + "Chainsaw Man", + "Monster", +]); diff --git a/src/utils/node.ts b/src/utils/node.ts new file mode 100644 index 0000000..490f50a --- /dev/null +++ b/src/utils/node.ts @@ -0,0 +1,63 @@ +import { Media, Type } from "../types/anime"; +import { Node } from "../types/node"; +import { getRecommendationsFromId } from "./anime"; + +export async function toggleChildren( + node: Node, + alreadyFound: Set, + numNodes: number = 10, +) { + if (node.children) { + node.children_hidden = node.children; + node.children = null; + } else if (node.children_hidden) { + node.children = node.children_hidden; + } else { + const newData = await getRecommendationsFromId( + node.data.id, + node.data.type, + numNodes, + ); + node.children = newData + .filter(({ mediaRecommendation: { id } }) => !alreadyFound.has(id)) + .map(({ mediaRecommendation }) => { + alreadyFound.add(mediaRecommendation.id); + return { + data: { + coverImage: mediaRecommendation.coverImage, + id: mediaRecommendation.id, + title: mediaRecommendation.title, + type: mediaRecommendation.type, + }, + children: null, + children_hidden: null, + }; + }); + } +} + +export function mediaToNode(media: Media, type: Type = "ANIME"): Node { + return { + data: { + id: media.id, + coverImage: media.coverImage, + title: media.title, + type: type, + }, + children_hidden: null, + children: media.recommendations + ? media.recommendations.edges.map((e) => { + return { + data: { + id: e.node.mediaRecommendation.id, + coverImage: e.node.mediaRecommendation.coverImage, + title: e.node.mediaRecommendation.title, + type: e.node.mediaRecommendation.type, + }, + children: null, + children_hidden: null, + }; + }) + : null, + }; +} diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..eb60c8e --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": ["DOM", "DOM.Iterable", "ESNext"], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..d3bf4b8 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,9 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..cda7533 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,54 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; +import { VitePWA } from "vite-plugin-pwa"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + react(), + VitePWA({ + registerType: "autoUpdate", + injectRegister: "auto", + includeAssets: [ + "favicon.ico", + "apple-touch-icon.png", + "android-chrome-512x512.png", + "android-chrome-192x192.png ", + ], + manifest: { + name: "Anode", + short_name: "Anode", + description: "Use nodes to search for similar anime.", + theme_color: "#209CEE", + icons: [ + { + src: " favicon-32x32.png", + sizes: "32x32", + type: "image/png", + }, + { + src: " favicon-16x16.png", + sizes: "16x16", + type: "image/png", + }, + { + src: "android-chrome-512x512.png", + sizes: "512x512", + type: "image/png", + }, + { + src: "android-chrome-192x192.png", + sizes: "192x192", + type: "image/png", + }, + ], + }, + workbox: { + globPatterns: ["**/*.{js,css,html,ico,png,svg}"], + }, + devOptions: { + enabled: true, + }, + }), + ], +});