From fa6936dd4f5bd8ed47dfd6f6c946ce181af09d64 Mon Sep 17 00:00:00 2001
From: "[GitHub" <[Github>
Date: Sat, 22 Mar 2025 16:47:51 +0900
Subject: [PATCH 1/4] initial commit
---
.gitignore | 24 ++++++++++++++++
README.md | 14 +++++++--
eslint.config.js | 33 +++++++++++++++++++++
index.html | 13 +++++++++
package.json | 27 ++++++++++++++++++
public/vite.svg | 1 +
src/App.css | 42 +++++++++++++++++++++++++++
src/App.jsx | 35 +++++++++++++++++++++++
src/assets/react.svg | 1 +
src/index.css | 68 ++++++++++++++++++++++++++++++++++++++++++++
src/main.jsx | 10 +++++++
vite.config.js | 7 +++++
12 files changed, 273 insertions(+), 2 deletions(-)
create mode 100644 .gitignore
create mode 100644 eslint.config.js
create mode 100644 index.html
create mode 100644 package.json
create mode 100644 public/vite.svg
create mode 100644 src/App.css
create mode 100644 src/App.jsx
create mode 100644 src/assets/react.svg
create mode 100644 src/index.css
create mode 100644 src/main.jsx
create mode 100644 vite.config.js
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a547bf3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/README.md b/README.md
index 09c2750..fd3b758 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,12 @@
-# study-frontend
-프론트엔드 스터디를 위한 레포지토리입니다.
+# React + Vite
+
+This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
+
+Currently, two official plugins are available:
+
+- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
+- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
+
+## Expanding the ESLint configuration
+
+If you are developing a production application, we recommend using TypeScript and enable type-aware lint rules. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
diff --git a/eslint.config.js b/eslint.config.js
new file mode 100644
index 0000000..ec2b712
--- /dev/null
+++ b/eslint.config.js
@@ -0,0 +1,33 @@
+import js from '@eslint/js'
+import globals from 'globals'
+import reactHooks from 'eslint-plugin-react-hooks'
+import reactRefresh from 'eslint-plugin-react-refresh'
+
+export default [
+ { ignores: ['dist'] },
+ {
+ files: ['**/*.{js,jsx}'],
+ languageOptions: {
+ ecmaVersion: 2020,
+ globals: globals.browser,
+ parserOptions: {
+ ecmaVersion: 'latest',
+ ecmaFeatures: { jsx: true },
+ sourceType: 'module',
+ },
+ },
+ plugins: {
+ 'react-hooks': reactHooks,
+ 'react-refresh': reactRefresh,
+ },
+ rules: {
+ ...js.configs.recommended.rules,
+ ...reactHooks.configs.recommended.rules,
+ 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }],
+ 'react-refresh/only-export-components': [
+ 'warn',
+ { allowConstantExport: true },
+ ],
+ },
+ },
+]
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..0c589ec
--- /dev/null
+++ b/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + React
+
+
+
+
+
+
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..b9404e5
--- /dev/null
+++ b/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "apptive",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "lint": "eslint .",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0"
+ },
+ "devDependencies": {
+ "@eslint/js": "^9.21.0",
+ "@types/react": "^19.0.10",
+ "@types/react-dom": "^19.0.4",
+ "@vitejs/plugin-react": "^4.3.4",
+ "eslint": "^9.21.0",
+ "eslint-plugin-react-hooks": "^5.1.0",
+ "eslint-plugin-react-refresh": "^0.4.19",
+ "globals": "^15.15.0",
+ "vite": "^6.2.0"
+ }
+}
diff --git a/public/vite.svg b/public/vite.svg
new file mode 100644
index 0000000..e7b8dfb
--- /dev/null
+++ b/public/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/App.css b/src/App.css
new file mode 100644
index 0000000..b9d355d
--- /dev/null
+++ b/src/App.css
@@ -0,0 +1,42 @@
+#root {
+ max-width: 1280px;
+ margin: 0 auto;
+ padding: 2rem;
+ text-align: center;
+}
+
+.logo {
+ height: 6em;
+ padding: 1.5em;
+ will-change: filter;
+ transition: filter 300ms;
+}
+.logo:hover {
+ filter: drop-shadow(0 0 2em #646cffaa);
+}
+.logo.react:hover {
+ filter: drop-shadow(0 0 2em #61dafbaa);
+}
+
+@keyframes logo-spin {
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+}
+
+@media (prefers-reduced-motion: no-preference) {
+ a:nth-of-type(2) .logo {
+ animation: logo-spin infinite 20s linear;
+ }
+}
+
+.card {
+ padding: 2em;
+}
+
+.read-the-docs {
+ color: #888;
+}
diff --git a/src/App.jsx b/src/App.jsx
new file mode 100644
index 0000000..f67355a
--- /dev/null
+++ b/src/App.jsx
@@ -0,0 +1,35 @@
+import { useState } from 'react'
+import reactLogo from './assets/react.svg'
+import viteLogo from '/vite.svg'
+import './App.css'
+
+function App() {
+ const [count, setCount] = useState(0)
+
+ return (
+ <>
+
+ Vite + React
+
+
+
+ Edit src/App.jsx
and save to test HMR
+
+
+
+ Click on the Vite and React logos to learn more
+
+ >
+ )
+}
+
+export default App
diff --git a/src/assets/react.svg b/src/assets/react.svg
new file mode 100644
index 0000000..6c87de9
--- /dev/null
+++ b/src/assets/react.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/index.css b/src/index.css
new file mode 100644
index 0000000..08a3ac9
--- /dev/null
+++ b/src/index.css
@@ -0,0 +1,68 @@
+:root {
+ font-family: system-ui, Avenir, Helvetica, Arial, sans-serif;
+ line-height: 1.5;
+ font-weight: 400;
+
+ color-scheme: light dark;
+ color: rgba(255, 255, 255, 0.87);
+ background-color: #242424;
+
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+a {
+ font-weight: 500;
+ color: #646cff;
+ text-decoration: inherit;
+}
+a:hover {
+ color: #535bf2;
+}
+
+body {
+ margin: 0;
+ display: flex;
+ place-items: center;
+ min-width: 320px;
+ min-height: 100vh;
+}
+
+h1 {
+ font-size: 3.2em;
+ line-height: 1.1;
+}
+
+button {
+ border-radius: 8px;
+ border: 1px solid transparent;
+ padding: 0.6em 1.2em;
+ font-size: 1em;
+ font-weight: 500;
+ font-family: inherit;
+ background-color: #1a1a1a;
+ cursor: pointer;
+ transition: border-color 0.25s;
+}
+button:hover {
+ border-color: #646cff;
+}
+button:focus,
+button:focus-visible {
+ outline: 4px auto -webkit-focus-ring-color;
+}
+
+@media (prefers-color-scheme: light) {
+ :root {
+ color: #213547;
+ background-color: #ffffff;
+ }
+ a:hover {
+ color: #747bff;
+ }
+ button {
+ background-color: #f9f9f9;
+ }
+}
diff --git a/src/main.jsx b/src/main.jsx
new file mode 100644
index 0000000..b9a1a6d
--- /dev/null
+++ b/src/main.jsx
@@ -0,0 +1,10 @@
+import { StrictMode } from 'react'
+import { createRoot } from 'react-dom/client'
+import './index.css'
+import App from './App.jsx'
+
+createRoot(document.getElementById('root')).render(
+
+
+ ,
+)
diff --git a/vite.config.js b/vite.config.js
new file mode 100644
index 0000000..8b0f57b
--- /dev/null
+++ b/vite.config.js
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react'
+
+// https://vite.dev/config/
+export default defineConfig({
+ plugins: [react()],
+})
From 79036dc92a57ca786dc25629e3d2b2fccfbfdbcb Mon Sep 17 00:00:00 2001
From: "[GitHub" <[Github>
Date: Sat, 29 Mar 2025 15:54:47 +0900
Subject: [PATCH 2/4] =?UTF-8?q?=EB=A6=AC=EC=95=A1=ED=8A=B8=20=ED=8F=B4?=
=?UTF-8?q?=EB=8D=94=EA=B5=AC=EC=A1=B0=20=EB=A7=8C=EB=93=A4=EA=B8=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
package-lock.json | 2733 +++++++++++++++++++++++++++++++++++++++
src/components/.gitkeep | 0
src/features/.gitkeep | 0
src/hooks/.gitkeep | 0
src/pages/.gitkeep | 0
5 files changed, 2733 insertions(+)
create mode 100644 package-lock.json
create mode 100644 src/components/.gitkeep
create mode 100644 src/features/.gitkeep
create mode 100644 src/hooks/.gitkeep
create mode 100644 src/pages/.gitkeep
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..0094583
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,2733 @@
+{
+ "name": "apptive",
+ "version": "0.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "apptive",
+ "version": "0.0.0",
+ "dependencies": {
+ "react": "^19.0.0",
+ "react-dom": "^19.0.0"
+ },
+ "devDependencies": {
+ "@eslint/js": "^9.21.0",
+ "@types/react": "^19.0.10",
+ "@types/react-dom": "^19.0.4",
+ "@vitejs/plugin-react": "^4.3.4",
+ "eslint": "^9.21.0",
+ "eslint-plugin-react-hooks": "^5.1.0",
+ "eslint-plugin-react-refresh": "^0.4.19",
+ "globals": "^15.15.0",
+ "vite": "^6.2.0"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+ "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.26.8",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz",
+ "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.26.10",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz",
+ "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.26.2",
+ "@babel/generator": "^7.26.10",
+ "@babel/helper-compilation-targets": "^7.26.5",
+ "@babel/helper-module-transforms": "^7.26.0",
+ "@babel/helpers": "^7.26.10",
+ "@babel/parser": "^7.26.10",
+ "@babel/template": "^7.26.9",
+ "@babel/traverse": "^7.26.10",
+ "@babel/types": "^7.26.10",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz",
+ "integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.27.0",
+ "@babel/types": "^7.27.0",
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz",
+ "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.26.8",
+ "@babel/helper-validator-option": "^7.25.9",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
+ "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
+ "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz",
+ "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
+ "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz",
+ "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.27.0",
+ "@babel/types": "^7.27.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz",
+ "integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.27.0"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-self": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz",
+ "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-react-jsx-source": {
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz",
+ "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz",
+ "integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.26.2",
+ "@babel/parser": "^7.27.0",
+ "@babel/types": "^7.27.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz",
+ "integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.26.2",
+ "@babel/generator": "^7.27.0",
+ "@babel/parser": "^7.27.0",
+ "@babel/template": "^7.27.0",
+ "@babel/types": "^7.27.0",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse/node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz",
+ "integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz",
+ "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz",
+ "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz",
+ "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz",
+ "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz",
+ "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz",
+ "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz",
+ "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz",
+ "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz",
+ "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz",
+ "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz",
+ "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz",
+ "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz",
+ "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz",
+ "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz",
+ "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz",
+ "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz",
+ "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz",
+ "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz",
+ "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz",
+ "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz",
+ "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz",
+ "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz",
+ "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz",
+ "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/config-array": {
+ "version": "0.19.2",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz",
+ "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/object-schema": "^2.1.6",
+ "debug": "^4.3.1",
+ "minimatch": "^3.1.2"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/config-helpers": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.2.0.tgz",
+ "integrity": "sha512-yJLLmLexii32mGrhW29qvU3QBVTu0GUmEf/J4XsBtVhp4JkIUFN/BjWqTF63yRvGApIDpZm5fa97LtYtINmfeQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/core": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.12.0.tgz",
+ "integrity": "sha512-cmrR6pytBuSMTaBweKoGMwu3EiHiEC+DoyupPmlZ0HxBJBtIxwe+j/E4XPIKNx+Q74c8lXKPwYawBf5glsTkHg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/json-schema": "^7.0.15"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
+ "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^10.0.1",
+ "globals": "^14.0.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
+ "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "9.23.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.23.0.tgz",
+ "integrity": "sha512-35MJ8vCPU0ZMxo7zfev2pypqTwWTofFZO6m4KAtdoFhRpLJUpHTZZ+KB3C7Hb1d7bULYwO4lJXGCi5Se+8OMbw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/object-schema": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz",
+ "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/plugin-kit": {
+ "version": "0.2.7",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.7.tgz",
+ "integrity": "sha512-JubJ5B2pJ4k4yGxaNLdbjrnk9d/iDz6/q8wOilpIowd6PJPgaxCuHBnBszq7Ce2TyMrywm5r4PnKm6V3iiZF+g==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/core": "^0.12.0",
+ "levn": "^0.4.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@humanfs/core": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
+ "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18.0"
+ }
+ },
+ "node_modules/@humanfs/node": {
+ "version": "0.16.6",
+ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz",
+ "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@humanfs/core": "^0.19.1",
+ "@humanwhocodes/retry": "^0.3.0"
+ },
+ "engines": {
+ "node": ">=18.18.0"
+ }
+ },
+ "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz",
+ "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/retry": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.2.tgz",
+ "integrity": "sha512-xeO57FpIu4p1Ri3Jq/EXq4ClRm86dVF2z/+kvFnyqVYRavTZmaFaUBbWCOuuTh0o/g7DSsk6kc2vrS4Vl5oPOQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
+ "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
+ "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.38.0.tgz",
+ "integrity": "sha512-ldomqc4/jDZu/xpYU+aRxo3V4mGCV9HeTgUBANI3oIQMOL+SsxB+S2lxMpkFp5UamSS3XuTMQVbsS24R4J4Qjg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.38.0.tgz",
+ "integrity": "sha512-VUsgcy4GhhT7rokwzYQP+aV9XnSLkkhlEJ0St8pbasuWO/vwphhZQxYEKUP3ayeCYLhk6gEtacRpYP/cj3GjyQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.38.0.tgz",
+ "integrity": "sha512-buA17AYXlW9Rn091sWMq1xGUvWQFOH4N1rqUxGJtEQzhChxWjldGCCup7r/wUnaI6Au8sKXpoh0xg58a7cgcpg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.38.0.tgz",
+ "integrity": "sha512-Mgcmc78AjunP1SKXl624vVBOF2bzwNWFPMP4fpOu05vS0amnLcX8gHIge7q/lDAHy3T2HeR0TqrriZDQS2Woeg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.38.0.tgz",
+ "integrity": "sha512-zzJACgjLbQTsscxWqvrEQAEh28hqhebpRz5q/uUd1T7VTwUNZ4VIXQt5hE7ncs0GrF+s7d3S4on4TiXUY8KoQA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.38.0.tgz",
+ "integrity": "sha512-hCY/KAeYMCyDpEE4pTETam0XZS4/5GXzlLgpi5f0IaPExw9kuB+PDTOTLuPtM10TlRG0U9OSmXJ+Wq9J39LvAg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.38.0.tgz",
+ "integrity": "sha512-mimPH43mHl4JdOTD7bUMFhBdrg6f9HzMTOEnzRmXbOZqjijCw8LA5z8uL6LCjxSa67H2xiLFvvO67PT05PRKGg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.38.0.tgz",
+ "integrity": "sha512-tPiJtiOoNuIH8XGG8sWoMMkAMm98PUwlriOFCCbZGc9WCax+GLeVRhmaxjJtz6WxrPKACgrwoZ5ia/uapq3ZVg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.38.0.tgz",
+ "integrity": "sha512-wZco59rIVuB0tjQS0CSHTTUcEde+pXQWugZVxWaQFdQQ1VYub/sTrNdY76D1MKdN2NB48JDuGABP6o6fqos8mA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.38.0.tgz",
+ "integrity": "sha512-fQgqwKmW0REM4LomQ+87PP8w8xvU9LZfeLBKybeli+0yHT7VKILINzFEuggvnV9M3x1Ed4gUBmGUzCo/ikmFbQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loongarch64-gnu": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.38.0.tgz",
+ "integrity": "sha512-hz5oqQLXTB3SbXpfkKHKXLdIp02/w3M+ajp8p4yWOWwQRtHWiEOCKtc9U+YXahrwdk+3qHdFMDWR5k+4dIlddg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.38.0.tgz",
+ "integrity": "sha512-NXqygK/dTSibQ+0pzxsL3r4Xl8oPqVoWbZV9niqOnIHV/J92fe65pOir0xjkUZDRSPyFRvu+4YOpJF9BZHQImw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.38.0.tgz",
+ "integrity": "sha512-GEAIabR1uFyvf/jW/5jfu8gjM06/4kZ1W+j1nWTSSB3w6moZEBm7iBtzwQ3a1Pxos2F7Gz+58aVEnZHU295QTg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.38.0.tgz",
+ "integrity": "sha512-9EYTX+Gus2EGPbfs+fh7l95wVADtSQyYw4DfSBcYdUEAmP2lqSZY0Y17yX/3m5VKGGJ4UmIH5LHLkMJft3bYoA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.38.0.tgz",
+ "integrity": "sha512-Mpp6+Z5VhB9VDk7RwZXoG2qMdERm3Jw07RNlXHE0bOnEeX+l7Fy4bg+NxfyN15ruuY3/7Vrbpm75J9QHFqj5+Q==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.38.0.tgz",
+ "integrity": "sha512-vPvNgFlZRAgO7rwncMeE0+8c4Hmc+qixnp00/Uv3ht2x7KYrJ6ERVd3/R0nUtlE6/hu7/HiiNHJ/rP6knRFt1w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.38.0.tgz",
+ "integrity": "sha512-q5Zv+goWvQUGCaL7fU8NuTw8aydIL/C9abAVGCzRReuj5h30TPx4LumBtAidrVOtXnlB+RZkBtExMsfqkMfb8g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.38.0.tgz",
+ "integrity": "sha512-u/Jbm1BU89Vftqyqbmxdq14nBaQjQX1HhmsdBWqSdGClNaKwhjsg5TpW+5Ibs1mb8Es9wJiMdl86BcmtUVXNZg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.38.0.tgz",
+ "integrity": "sha512-mqu4PzTrlpNHHbu5qleGvXJoGgHpChBlrBx/mEhTPpnAL1ZAYFlvHD7rLK839LLKQzqEQMFJfGrrOHItN4ZQqA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.38.0.tgz",
+ "integrity": "sha512-jjqy3uWlecfB98Psxb5cD6Fny9Fupv9LrDSPTQZUROqjvZmcCqNu4UMl7qqhlUUGpwiAkotj6GYu4SZdcr/nLw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.6.8",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz",
+ "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.20.7",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.7.tgz",
+ "integrity": "sha512-dkO5fhS7+/oos4ciWxyEyjWe48zmG6wbCheo/G2ZnHx4fs3EU6YC6UM8rk56gAjNJ9P3MTH2jo5jb92/K6wbng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.20.7"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz",
+ "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/react": {
+ "version": "19.0.12",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.12.tgz",
+ "integrity": "sha512-V6Ar115dBDrjbtXSrS+/Oruobc+qVbbUxDFC1RSbRqLt5SYvxxyIDrSC85RWml54g+jfNeEMZhEj7wW07ONQhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "csstype": "^3.0.2"
+ }
+ },
+ "node_modules/@types/react-dom": {
+ "version": "19.0.4",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.0.4.tgz",
+ "integrity": "sha512-4fSQ8vWFkg+TGhePfUzVmat3eC14TXYSsiiDSLI0dVLsrm9gZFABjPy/Qu6TKgl1tq1Bu1yDsuQgY3A3DOjCcg==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "@types/react": "^19.0.0"
+ }
+ },
+ "node_modules/@vitejs/plugin-react": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz",
+ "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.26.0",
+ "@babel/plugin-transform-react-jsx-self": "^7.25.9",
+ "@babel/plugin-transform-react-jsx-source": "^7.25.9",
+ "@types/babel__core": "^7.20.5",
+ "react-refresh": "^0.14.2"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.2.0 || ^5.0.0 || ^6.0.0"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.14.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz",
+ "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
+ "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001688",
+ "electron-to-chromium": "^1.5.73",
+ "node-releases": "^2.0.19",
+ "update-browserslist-db": "^1.1.1"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001707",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz",
+ "integrity": "sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/debug": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.128",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.128.tgz",
+ "integrity": "sha512-bo1A4HH/NS522Ws0QNFIzyPcyUUNV/yyy70Ho1xqfGYzPUme2F/xr4tlEOuM6/A538U1vDA7a4XfCd1CKRegKQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/esbuild": {
+ "version": "0.25.1",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz",
+ "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.1",
+ "@esbuild/android-arm": "0.25.1",
+ "@esbuild/android-arm64": "0.25.1",
+ "@esbuild/android-x64": "0.25.1",
+ "@esbuild/darwin-arm64": "0.25.1",
+ "@esbuild/darwin-x64": "0.25.1",
+ "@esbuild/freebsd-arm64": "0.25.1",
+ "@esbuild/freebsd-x64": "0.25.1",
+ "@esbuild/linux-arm": "0.25.1",
+ "@esbuild/linux-arm64": "0.25.1",
+ "@esbuild/linux-ia32": "0.25.1",
+ "@esbuild/linux-loong64": "0.25.1",
+ "@esbuild/linux-mips64el": "0.25.1",
+ "@esbuild/linux-ppc64": "0.25.1",
+ "@esbuild/linux-riscv64": "0.25.1",
+ "@esbuild/linux-s390x": "0.25.1",
+ "@esbuild/linux-x64": "0.25.1",
+ "@esbuild/netbsd-arm64": "0.25.1",
+ "@esbuild/netbsd-x64": "0.25.1",
+ "@esbuild/openbsd-arm64": "0.25.1",
+ "@esbuild/openbsd-x64": "0.25.1",
+ "@esbuild/sunos-x64": "0.25.1",
+ "@esbuild/win32-arm64": "0.25.1",
+ "@esbuild/win32-ia32": "0.25.1",
+ "@esbuild/win32-x64": "0.25.1"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "9.23.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.23.0.tgz",
+ "integrity": "sha512-jV7AbNoFPAY1EkFYpLq5bslU9NLNO8xnEeQXwErNibVryjk67wHVmddTBilc5srIttJDBrB0eMHKZBFbSIABCw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.12.1",
+ "@eslint/config-array": "^0.19.2",
+ "@eslint/config-helpers": "^0.2.0",
+ "@eslint/core": "^0.12.0",
+ "@eslint/eslintrc": "^3.3.1",
+ "@eslint/js": "9.23.0",
+ "@eslint/plugin-kit": "^0.2.7",
+ "@humanfs/node": "^0.16.6",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@humanwhocodes/retry": "^0.4.2",
+ "@types/estree": "^1.0.6",
+ "@types/json-schema": "^7.0.15",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.6",
+ "debug": "^4.3.2",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^8.3.0",
+ "eslint-visitor-keys": "^4.2.0",
+ "espree": "^10.3.0",
+ "esquery": "^1.5.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^8.0.0",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://eslint.org/donate"
+ },
+ "peerDependencies": {
+ "jiti": "*"
+ },
+ "peerDependenciesMeta": {
+ "jiti": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-react-hooks": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz",
+ "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "peerDependencies": {
+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-react-refresh": {
+ "version": "0.4.19",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.19.tgz",
+ "integrity": "sha512-eyy8pcr/YxSYjBoqIFSrlbn9i/xvxUFa8CjzAYo9cFjgGXqq1hyjihcpZvxRLalpaWmueWR81xn7vuKmAFijDQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "eslint": ">=8.40"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.3.0.tgz",
+ "integrity": "sha512-pUNxi75F8MJ/GdeKtVLSbYg4ZI34J6C0C7sbL4YOp2exGwen7ZsuBqKzUhXd0qMQ362yET3z+uPwKeg/0C2XCQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
+ "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/espree": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
+ "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "acorn": "^8.14.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^4.2.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/file-entry-cache": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
+ "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
+ "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.4"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
+ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/globals": {
+ "version": "15.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-15.15.0.tgz",
+ "integrity": "sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/optionator": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/postcss": {
+ "version": "8.5.3",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
+ "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.8",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/react": {
+ "version": "19.1.0",
+ "resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
+ "integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/react-dom": {
+ "version": "19.1.0",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
+ "integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
+ "license": "MIT",
+ "dependencies": {
+ "scheduler": "^0.26.0"
+ },
+ "peerDependencies": {
+ "react": "^19.1.0"
+ }
+ },
+ "node_modules/react-refresh": {
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz",
+ "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.38.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.38.0.tgz",
+ "integrity": "sha512-5SsIRtJy9bf1ErAOiFMFzl64Ex9X5V7bnJ+WlFMb+zmP459OSWCEG7b0ERZ+PEU7xPt4OG3RHbrp1LJlXxYTrw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.7"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.38.0",
+ "@rollup/rollup-android-arm64": "4.38.0",
+ "@rollup/rollup-darwin-arm64": "4.38.0",
+ "@rollup/rollup-darwin-x64": "4.38.0",
+ "@rollup/rollup-freebsd-arm64": "4.38.0",
+ "@rollup/rollup-freebsd-x64": "4.38.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.38.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.38.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.38.0",
+ "@rollup/rollup-linux-arm64-musl": "4.38.0",
+ "@rollup/rollup-linux-loongarch64-gnu": "4.38.0",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.38.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.38.0",
+ "@rollup/rollup-linux-riscv64-musl": "4.38.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.38.0",
+ "@rollup/rollup-linux-x64-gnu": "4.38.0",
+ "@rollup/rollup-linux-x64-musl": "4.38.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.38.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.38.0",
+ "@rollup/rollup-win32-x64-msvc": "4.38.0",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/scheduler": {
+ "version": "0.26.0",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz",
+ "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
+ "license": "MIT"
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
+ "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/vite": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.3.tgz",
+ "integrity": "sha512-IzwM54g4y9JA/xAeBPNaDXiBF8Jsgl3VBQ2YQ/wOY6fyW3xMdSoltIV3Bo59DErdqdE6RxUfv8W69DvUorE4Eg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.25.0",
+ "postcss": "^8.5.3",
+ "rollup": "^4.30.1"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || ^20.0.0 || >=22.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0",
+ "jiti": ">=1.21.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.16.0",
+ "tsx": "^4.8.1",
+ "yaml": "^2.4.2"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "jiti": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ },
+ "tsx": {
+ "optional": true
+ },
+ "yaml": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ }
+}
diff --git a/src/components/.gitkeep b/src/components/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/features/.gitkeep b/src/features/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/hooks/.gitkeep b/src/hooks/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/pages/.gitkeep b/src/pages/.gitkeep
new file mode 100644
index 0000000..e69de29
From 9210f3ff8a9fc81c66d86f5ebdfbdfa0187db335 Mon Sep 17 00:00:00 2001
From: "[GitHub" <[Github>
Date: Sat, 29 Mar 2025 16:15:35 +0900
Subject: [PATCH 3/4] update README.md
---
README.md | 34 +++++++++++++++++++++++++++-------
1 file changed, 27 insertions(+), 7 deletions(-)
diff --git a/README.md b/README.md
index fd3b758..78f2632 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,32 @@
-# React + Vite
+## Apptive 과제 1
-This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
-Currently, two official plugins are available:
+트랜스파일링 (Transpiling) : 최신 JavaScript(ES6+) 코드를 구버전(ES5)으로 변환하는 과정
+이유: 브라우저마다 지원하는 JavaScript 버전이 다름 → 구버전 브라우저에서도 코드가 실행되도록 변환해야 함
-- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
-- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
+번들링 (Bundling) : 여러 개의 JavaScript 파일을 하나로 묶어주는 과정
+이유: 모듈 시스템(import, export)을 사용하면 파일이 많아짐 → 파일 요청을 줄여 웹사이트 속도를 빠르게 하기 위해 번들링이 필요함
-## Expanding the ESLint configuration
+폴리필 (Polyfill) : 구버전 브라우저에서 최신 JavaScript 기능을 사용할 수 있도록 도와주는 코드
+이유: 구형 브라우저(예: Internet Explorer)는 최신 JavaScript 기능을 지원하지 않음
-If you are developing a production application, we recommend using TypeScript and enable type-aware lint rules. Check out the [TS template](https://github.com/vitejs/vite/tree/main/packages/create-vite/template-react-ts) to integrate TypeScript and [`typescript-eslint`](https://typescript-eslint.io) in your project.
+
+패키지 매니저 특징 npm보다 장점
+npm Node.js 기본 패키지 매니저 -
+Yarn 페이스북에서 개발 속도가 빠름, 병렬 설치 가능
+pnpm 하드 링크 방식 사용 디스크 공간 절약, 더 빠름
+Bun 초고속 JS 런타임 npm, Yarn보다 더 빠름
+
+
+<프로젝트를 생성했을때 나오는 파일들>
+package.json 프로젝트 정보, 설치된 패키지 목록
+package-lock.json 패키지 버전 고정 (일관된 환경 유지)
+node_modules/ 설치된 패키지 저장소
+public/ HTML, 정적 파일(css, 이미지) 위치
+src/ 실제 개발하는 코드(React, Vue 등)
+
+
+
+기본 구조 → components/, styles/
+중규모 → pages/, hooks/ 추가
+대규모 → api/, store/, utils/까지 포함
\ No newline at end of file
From e5617fa276e0f65be1d2d72dc25df2228f9d7316 Mon Sep 17 00:00:00 2001
From: "[GitHub" <[Github>
Date: Fri, 4 Apr 2025 17:56:14 +0900
Subject: [PATCH 4/4] Update Readme, App.jsx
---
README.md | 47 ++++++++++++++---
image.png | Bin 0 -> 186651 bytes
src/App.css | 5 +-
src/App.jsx | 61 +++++++++++-----------
src/Header.jsx | 14 +++++
src/index.css | 136 ++++++++++++++++++++++++++++++-------------------
6 files changed, 175 insertions(+), 88 deletions(-)
create mode 100644 image.png
create mode 100644 src/Header.jsx
diff --git a/README.md b/README.md
index 78f2632..db0e8e0 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,18 @@
## Apptive 과제 1
-트랜스파일링 (Transpiling) : 최신 JavaScript(ES6+) 코드를 구버전(ES5)으로 변환하는 과정
-이유: 브라우저마다 지원하는 JavaScript 버전이 다름 → 구버전 브라우저에서도 코드가 실행되도록 변환해야 함
+- 트랜스파일링 (Transpiling) : 최신 JavaScript(ES6+) 코드를 구버전(ES5)으로 변환하는 과정
-번들링 (Bundling) : 여러 개의 JavaScript 파일을 하나로 묶어주는 과정
-이유: 모듈 시스템(import, export)을 사용하면 파일이 많아짐 → 파일 요청을 줄여 웹사이트 속도를 빠르게 하기 위해 번들링이 필요함
+ 이유: 브라우저마다 지원하는 JavaScript 버전이 다름 → 구버전 브라우저에서도 코드가 실행되도록 변환해야 함
-폴리필 (Polyfill) : 구버전 브라우저에서 최신 JavaScript 기능을 사용할 수 있도록 도와주는 코드
-이유: 구형 브라우저(예: Internet Explorer)는 최신 JavaScript 기능을 지원하지 않음
+
+- 번들링 (Bundling) : 여러 개의 JavaScript 파일을 하나로 묶어주는 과정
+
+ 이유: 모듈 시스템(import, export)을 사용하면 파일이 많아짐 → 파일 요청을 줄여 웹사이트 속도를 빠르게 하기 위해 번들링이 필요함
+
+- 폴리필 (Polyfill) : 구버전 브라우저에서 최신 JavaScript 기능을 사용할 수 있도록 도와주는 코드
+
+ 이유: 구형 브라우저(예: Internet Explorer)는 최신 JavaScript 기능을 지원하지 않음
패키지 매니저 특징 npm보다 장점
@@ -29,4 +33,33 @@ src/ 실제 개발하는 코드(React, Vue 등)
기본 구조 → components/, styles/
중규모 → pages/, hooks/ 추가
-대규모 → api/, store/, utils/까지 포함
\ No newline at end of file
+대규모 → api/, store/, utils/까지 포함
+
+
+## Apptive 과제 2
+
+- 리액트란? JavaScript의 라이브러리로써 복잡한 웹사이트를 더 쉽게 만들수 있도록 도와준다
+- 리액트 사용 이유 : 기존의 HTML + CSS + JS 개발 방식은
+ 1. 상태(state) 관리가 어렵다
+ 2. 데이터 바뀔때 화면 다시 그리는게 복잡하다
+ 3. DOM을 직접 수정해야해서 코드가 길어진다 라는 단점 존재
+
+ 리액트를 사용하면 1. 컴포넌트 기반 개발로서 작은 UI (버튼, 네비게이션 등) 조각을 독립적으로 만들고 조합가능
+ 2. 버튼 클릭했을때 숫자 변하듯이, 변하는 데이터를 쉽게 관리 가능 3. 가상 DOM으로 변경된 부분만 빠르게
+ 업데이트 해서 성능을 높여준다 라는 장점들이 존재함
+
+ DOM이란? 자바스크립트에서 웹 페이지의 요소를 (HTML 태그) 선택, 수정, 추가 또는 제거할 때 사용된다.
+
+
+- 명령형 프로그래밍 : 프로그래밍의 데이터와 상태를 변경시키는 구문의 관점에서 연산을 설명하는 프로그래밍 (How의 관점)
+- 선언형 프로그래밍 : 프로그램이 어떤 방법으로 해야 하는지를 나타내기보다 무엇과 같은지를 설명하는 프로그래밍 (What의 관점)
+
+
+- 브라우저 렌더링 순서
+
+(HTML,JS,CSS) -> DOM -> Render Tree -> Layout -> Paint
+
+- 랜더링이란 : HTML, CSS, JS로 작성된 문서를 해석하여 브라우저에 시각적으로 출력하는 것
+
+- Server side Rendering : 서버쪽에서 렌더링을 하여 완성된 html을 보내서 화면을 보여주는 방식. 브라우저는 완성된 html을 그대로 받아서 화면에 표시하기에 화면 로딩 속도가 빠르다
+- Client side Rendering : 서버에서 받은 데이터를 클라이언트쪽 (브라우저)에서 렌더링 후 화면을 보여주는 방식. 서버는 빈 HTML + JavaScript 파일을 보내고 브라우저가 JS를 실행해서 화면을 띄우기에 화면 로딩 속도가 느리다.
\ No newline at end of file
diff --git a/image.png b/image.png
new file mode 100644
index 0000000000000000000000000000000000000000..2fd5a60682822eeb00b440875eeaff4e39c3b25f
GIT binary patch
literal 186651
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∈ro@K(sm>
z-k2+y;_YBdbhFibS1F7(YNW>4WDMC-G+RPAMtN%_#<-SGHPOh1tT~Gl<%FNC#W%sa
zdXe^;xU83Ip64*hskB7s!~W8J!aA%~KWjAi<`h?bHJY=23CdE6P=U;o!VoOyEHS36
z3H{|8;TH`JIQ4RC^{|or^nZotPuWwBY9UA1i55t@&@!LCQkD-d+o~de!IEI43>C-}
z3aAF)2Ej#(&}yHK1`+^Wj>`sey^qS|K8mO}4vLqTPNUBT^N7`d3;n>Mb>GK4VI<)Z
z4FRJC_F>(Ww~;D-i*X#^<2=Uoz^r~N@obftUn0hFqJ6&9<3)50Z{(L16es(UWzo?X%c{~7Cg
zsS#UOh}kyMr}2{%I$C%#cXdT@SVIiPxH9bgbZ688~v+VylqXlyBb2g|lXbeXIzqBexR(zy9^OTh{t-+R};5blb4IRS6?BR`m)14#P
zGpx58YK?=@{wuye(w!2mwDQ*`YwZk8Vi+c`wuv*H&Ztol*uyS7O}Eq{W3IB8V~b$6
zy0Rk}^DPo3{(@`nm+$@InyjIu5om7?vE7*OxYFu4u66K#5|yl>@Jg!h<7>jcBAp{K
zSoes(*!ra9KZKu)2{YLQyGQ8g}}?
zdTfz*wK;?F5%+Vt^a87%jr4LtiTTG~^oZup0@u-L+H)u}yMgUm=Gv(Z}M!?kEyUBgo!-jF&
zTmEF@V0zPRLs*j-E#u}2+~2mjh5}oIVu_U;cAgvsJ3vCTrG*n=^EKazs+R4RX08w2
zpwC*u$`#)M&+A=Zk_`Y{s5QC>rCNynA52W79mO|+ZGb)xkJ6ENMTwgs3s$+(VV9Mf
zWFk*_g+B8dC3EB|ok%RMn3HKrTrchhG<+nJFjRJYi{y{}ZL`~E5u4T$bCaPJY^Wpy
z=!7wCM8>(UKZpukA_BSX2yk39ZBu`wv6v!Jq%{97TsD98D#FshX)JlKK)-7$o+^Ui
zQ(AA%NSLoBz@Q@BHJ0gv4_6yOIfrITiux{V(VG;wGt8UJysW>>y7L`Q3pbFT0Ri_y
z!0ZiGcg*wne@Kik=8c0G9G&s}U%c+5JL#8Oo%)i#CObXr{HYtS@*$}*<;utX1;B?A
zpfMAOD%=QuZ0@*%R#awhZN1P9w8{;MeTHdvY=^qFL#OR6oSL8?29kn=n*1{ww>OVi
z$gP~7`K^Y7T$_%5|EZ(18xE>#3bbCk&+WZaND2g3k$jgBc(CX@UZ@kZgZ`-)^{Z<>
z8g?P8DR+E-1Fh=KI7HeN9NF&+J!m8j{JgJ;LW8wzJUAAxc;}bou$qw2t@fwRc+d-~
z$1(2uK?sw-$v>^$qgv!8xS%cJDI*n)7UoeZ$cOb6)*4N`5<^)~UDzw)$)0%PsaC+A
z@?FcY%SW%bOj9Nzht@q8Y|Siell2&Oi*lDoy=|K{jO1<>q+SAD8hsjujMMP)lSkN;
zv-KwB>@A9TY2_B70SkR{6tJ(LCb@l!&13(wBimek=lzAGS?cnSL$*N?Q|1?qVa91v
z2^AE2;ZJbwx6Ux+3=pO!WSC5$staRV*V?RYzPh-!qe9l&j8Z!-0tI{~bdCxa2_77W
zC3S*VxJ<$ptV^PGEXVEVBjG8IFNFoL?-T5$4i4JuQ+>kuH!CU_DFu!-6`(o?PPrsl
ziJ0^w6wW>_lk2b1QH3sn7yKYqv(+O*-X>igKKpJ#xX_zr4`;my61}pok+$HzcmtGQ
zWpXR`cO9BSjySyI!|#(sAF?`p)~MJ5g>PzC#WtIiH=&N3e9F7?YP)l*{gs(L)tPH@m()d0w)gH*%FPW%bN!c=u*s<(8MjpoZ-tFhn8D+EDrX=RA3tPK@I6eP#5{Sp@9BC(hm&buSw^-Zr+i_&gBHJK`4Ic*W
z>I>Y6g+*9i*MBlsSMj)SHIn@+D6CG?>1KFtCVE>bMkZ&HwWLk$
z?V!i|ljDt1wm(AWr9S!O*>2kj(1A|p7mwwF)S#EqUNV|u_vIl@ZPglz@)fKhbbTH1(3RSwSE@xuybbaDt$ys$ep=Cl@M*^1b4>X|~11o>5E=Rh|EH7JawU!oi
zp9aQAoM%S@%`C4-MT$@NS_7)n(giKGvTK`f+HC)T54rFvd}S8SoLqXl@hcXxM7O(M
zE8mcc91dj*w_K)bAM1AP
zx?Q|fn;muTe~QsqQ5JiDs(f&2+_@s;s$RQ=cOz-zadHyLO+WLm@_KHk|KmIV9nd8V
z$4)+zyTa;5Sv5mB#tX!aYH^jiANmns{&3)x)so&W=y0ytxof=m5cjRq67!V9OZux1
zmEQ>YqStRCu2{RJ=1jG
zCcLg(Q{_Ul!pal0-PrrA_}V5PKla4KO>by+HBI%vK6RyXQSH7lTZmSr#pCfbNjYHm
z_rr?f*m)?)W#SHy^<2sD(O#;5M=q$z`Qx}i{=-OD-A(mL+jX??GKUoNz-QyZ!NO%m
zu!O;8;5Warki8$m%}^5DUFDwFc*3Z|$kFt-E(0t?)fA`7tN49=Cl>
z>vI~^fre~dF3g&?Ycap(r$dDdXb61tQ}W3My-%uFX+^B}`O9{54vR!?y~o;KGN}&3
zs(xEfduS*oPdW%1PZmu>cuA+1-3g~URE(9NCrOru>CMV2Hhcvt18*2IBbxVJWfbS%
zRJO(Ji<T-1mTL>!sb;
zEVaF`U_SA>J#{B=folC{qP#&(VdnnW=4Xob>c5aYmMT-mf58W(a=60wWmj)R8mjynh^;PBWX_QXReLX)NGzO8QfD
zHG$y}+3dvC5inG9%@DR!c&T8sm@hL;hBrKsn1pE{B<(e_nm|Y9vYmKnsxvHXVxGka
z2_2f^j1@DAH#DfZNT?i!*5e5~uhzVANWZkRB>X;Q`mxy4tlfiTz7zUmRS^APrb|t+
z{6r-^=4jz^oj9_y>%NQa;?^wft?Tbx;9ZHy3rJYsSnx{4RlGs(7q&dzq&-!X3@V%j?DfOa5#09u*00~
z-|l^UymHlS^@kn0erPE=;dR@{vUKAx*=DsSfz!X%u-CR+`N6T-P$)T@f0_5h^L(j2
z+u&lPs-olT7Ee(6aA*9KOMIb^pHh8dVqEE_W7k7&vC*&=rh=_Yl14_MI075P+9voy
z$#Wafyu-$~ny}2{P|-J)t1x}7qJQ0XkMZz*ts}GWB)L&)YA488Ol)APLBC$B^aJ^0
zp~sWlyB0MwQrZST=q;mlJPk40W?HjnSl%xqqPd6Mm0w8KRH0^g^tj-g
zxpVkIz0OzR@9??dEcq*EIMo4RsP0&KL8OtWt^w7LQ>l&ClF60K$Sst1ZRIy&TTzzO;+h8|U5ZlMeQ3?GJUF5$$
za__o)p^+>C(5<$|mEA!O*hk);%;_gxZQ97RA{$Ea)U;I`=EYMYj<)c=Q9V447F|9<
zYN?Zi2*t8aB+HS4XoDx`qQ_;v!?D)`!YB!Ny&Xdjl3(Krx5M)ISpQ-$$P{+VB~T~A
zR}wU0j_WHE-$kRIg0I{oiq)*DHdpjj&LE(;Z>lI@p3?2M@$nw>$o3nA8Jj!1BpFE$
z8Ix>Kv|X>oVA0C&I`hvaKDUEdf%g5@K4#UB(Tny&|5whemxtc&`(CPUf3JPEwXw%p
z{W;?p_A{~!;hnON`X&1R4-1uue<3AQoUw$u`H%U{F1r3
z!d4Lw)N~b|hylyYvZSNe;FvVk3I!vhz9z0tV=VBL+@}{N@+X?IE7}>oXQ*R(NPfOP
zrko#fTFo_{wmjBvI+<#)_-eN^g!$s>mDHuC(H+klq=-#I51#faJ#PceDYJZ^a
zOD@E#Qvc7j1^}>S?Q^qdx8Hwqakz&nOh%9pUY@LMgF88K4hjwXcH4w-+CaafLlvVo
zFok|!n;3b=Oov!11DsZC&ht<}q+B4A+*OoOA{dE5MD*Gb3o*T#k(Z$lcX8pHf_#Uo
zGn{@GgZRJTg942nm+O^Yo{#c_{5_lJ{q>_$*ROlps1s~zv)r`|5xV7hYztbPl?v5B(tFRge%0%ptF48>s(phpetII}
z=$POc=3A_mdJfr)y9ye9k6~VVVn3S>n{L&rmr@?sWP2!9ot2$1WoMum*^}TH0NUqb
zt7gAmxEepc4~%qSAEtM=4#y~@S33WHxO%IgHW;l7G`Q1J+@-i{aW77B2o~Jk-L-g&
zySuwP#ob+sySv_e|J-xWcWz!X0}mN8i=DNX?5Hn#v5&S=7VLDJRID}~&9#6Q1;%-h
z)9){7{c=2TQsZB4;14lG*ui-pE$DG(^2PRgkewYC>i}C#F$;N
z4et!CN&=C^Ax_`0AaR)V8}~FJ(#y^=hC8MVcgNRfL#UvcXS-#eSzoZJ0k@wx8oKwI
zMua=I;71<#uRV-w0#P*1AA+0akN>F!0El+
z)}`qH-fF%qhIdt=6>u-QS{fX!udrq-r$L-)g5nnLDmItaJZw^a6HaAQ+6@gsGntKh
zXk&gdE6en_Z1g`%yFXc@tWb{7si4nmbzY<2e9|Cl6*4R-lA-ehHz!#gB)g0tBI)=-
zcX#1!wvrHIPBi_v#@t7a4(+xteLEomTnOdwy>NLT;4P9`74Dd=%6OlO
zyGQwODh~bLPer4rl^Fk}Z5s?#`pws#{3kliht%X5`@1+q%0(Fr|JG9eoGw20$tSwtozn;=ahyfx+7zp|@
za7oFopwpJ}!QcT+@WcdhOIa2-;B)aqpm6Nn1jr_I>|RS%)p*6zu;%#qSb_R>FG-h(
z--G=#{C8Sf@J$VnDhgstYb!0d1ADMHkGPct%mI59)PAD&NOtYdzj6F#I)C9kCy)B<
zJ_rKOkOo{KkuEzpqrBe^9(>KYdKJE7heC6NH?xX9mXaL!IWA-Ujm|VlT`yQa
zp~HG?TfRz4W7&-DUrsr>AzN>~h*8LxqzyB;RKA0ICZ8i@7$a|K@i|5I;
z3_Yl*6I>@rvem-+_UBgw(y>h6aUL4QO|s3$=tZ+ck?w4na|FJ`1F>MW;YZ_-WWYv~
z6g@+AD46<4-ILiMAYJ~`b8SwEn`w(ANWTZKPlYgC7I+?{a9HYI!hpP~ep7+Nm&i?c
zHfbE+F4n+H-zQZW+y4=0v{9kKGSvOB-f8d;mA7L52=~kDI|E9irs7ty15)?d(7qnX
zwHogjw7MsbwN_v5deK$E@FF2
z@iIBl!F6WGSCrXRSNtWuf{S^_x}?{AQ0RS2u{Wjl+v1(;3d4^!cFSqYl{a|=%gsrp
zHB_qPHkMj!#pL67m}d{;ep6t$@lcDiy7-4(IbnbMpvJFD&WXTa`+mEM?B*0eBk!ku
zix-nCOAj4)M-f0;>NlzLUPfL%Elgb-M4Z7sa02&IOGD%7{pG@Tz18_<5tz0^fb7^TQEe0|-r!^$@A%eGSx#r`ZOp9PXV4oyB`3W$%6Rx3I{tI>9BL?^S
z_oiUw@?B*?66x+xigE5Bk8>CZE^n
znhQZs+hv)1R#C1}UYBy6*Qq;TA%|t`LjCaMMay1Z)QsXfnuC;n;HNgL-;i3(-B?p>
zBMk)*<5)6pH&uy7;{<})pcBR)X?%8lhw|Te5a%&{K~z$Xl^3&ftofi>2~!a7
z$G{cTN`uE`A>I3JS*Uc=9yEugkQSbcu^L_q+PcekS1ac=mb22^_ly;WjE6Wa@jGex
z8twTC!_2pd4z1mt)!I=O0GE+=D!KY#<3VMeTo!Zn4fPl#$hnkNQ#m-SikSnCvMoH|
zgAHD9pHKGz_^m}~aZgy{Uv(!lcxXl_2;`iK>#9*IUcwX9%5}<=eh*Z}3IL
zXe9mhi#g3L92b*~9aDvdzA_Om=r-+V5KqG{{Da>vSlq8)Rk^hUrI2
zwyYF2jh?K0YHM+SA!Wn5nZ@FpY1Hz#iLa+|-Q~MI`LHjBBR@kjAAMPzYyxln<_qnE
z6%YJ0m2bdCrTD$uCCu3|x_|;aGe6>HgU*$Ve(?Y6GzK!`b~4O!TdUA$E4Gqd4h+~U
zXck%LjqpS>@S6>}aI7?vm*Zr0?z;Pjp$nh=Brt?f`ZT}^L$no#
z#ZAqL)9PpFopD$Dfoa^c3*l1f^15ML``e%PomEF^l%s08mwpMGr=wq)P?{WBEaj`C
zbXd<(#s#T33s3OKBy7ckV90$(WbGZ8sZPZG7NoSU6Mx}$SMxGh*mz-8BTKye(XfZ~
z!0Y(o+5zg^d7h(8%&ABd$Y_!5v^24}p#(mde~g3&4>mC%1(0&G85n)P9rK$=Xm(H=
z%dit$R0G}~w^F(e=bnTh+gP`hdKU4$1n{Tr8LrlX?+nbjkBxaEnwF{|=avwb0bi*ZQzs>be=HDlUSo{3`XBy{UhKEAZKSmUZYswQg
zL$_XLznh-qh0(ry0LG7C1c+=O}^PIR)Q;y1eYFs
z_&RPi#1RnhJuu9Leyma5W{3k$v!qi&jX!M|ID@KmbgYMND4nem7v`?F~y2A1tj~?Em<2F6;`t&MJy(Y7RJG)DL%V&GH?o3%g9g2rMPTKhGd+k*m-pe}LxGH<7fVaXIVX3P|A?77*^tDRKoG`w9m6v%fxA1YTF@x58>
zSLuvC?p?5Dx)0w+UI|THJV(E3+%yIzBh?QCmi|-xY-0s)AKSSVC_^zvB%wu8e4c*EA{p;M6r;J6smtt{tn8Te$PYl4_vD
zf9NLHDXzW#F2-C|A+CC?P1jY=a`zq?|HNU*mj4h0BSQq-7kK_Iozyd~b=PJxaUJUW
zR%BH$Rf#d;P7D%U^oMLdsDJUDsCWqlF~m(y
zSEkLD%0|K^`L>1radTA?D($h`qYH?R^Bqmb0*l5=Q5hbn+hQ-N9F_}}pf;QJ*1P74
zz$}#J3f(T3bq}`#hYt<>4~;;>K85}z$A
z;ueJ%e{qYr?TXL83;EmZ*Xw{PDRsvZds~h{~1B*N29|^NxoQ#gZTNzy|C6_D({ac327vU-VluG=AR~I>{e8u#$S!>`3zBqxR^Xn
zL<`o&jDv8N&HbFn#8WKBvPtoK$`Ws;v&UVP<293=on8H`g<{J5oON4L_6yBDftpR)
zE~}~^4`ckgN6~(a!6?P}r<=VUbsjy|q8^_vmQ050!+ck+cW1JqaaVd-J3WiW?_siR
z;-gz?MPXP|+gc)yV8%tF19@DnJkLE=BN3o@QShgDeP=yf|Mt|*>`>9ks~HNpt?g~f
z2Efov8k*+fV2$0gD6*H~%liKKS6f{O8V}iDhQZHLW+iprk7DeVo=y)Xgc&&gl?JY^
z$&2~AwT(Ve?nkP#^}MIVACT}L74*!fJ!)+))vyG?+zUZ$-Ely$OFAZMP$lk;P8
zdR+6Nj{Ruaa;u?<{}IW2N06f8*J1}`vhRAp`EOZ>*WvsYLEH74)_ByfRI=Vq!^*b%
zW})AUnN`RvLMiU5%b$e-Wny4%JyHA4SfJcmpc)g#MpRqn?%HZ?-2}nuBu(f$&evA`
zZtJqnfJc$LKRU6=J9*zGoL5-jgvV`u?r^o-v~SF}UU;UolgeQg`}W_l;#xgPQjf
z7}?->`v?iYzSak)h9Gr`m>J+9BD-4#x&num$ehbctpt9qDyG11--$ZmkN$`m#Opv;
z@N=+C_Wc)VfGDPc#vORE%G7v`;1_?b*C?yBUUfdj_&6fiJen&(vdQ3eJ&t#(y+0du
ztYV8?d^HD;S}^%#*q5KB{E^yVHeCy9bMbz@Z8>XPE!=dF0V|p?hMrwD*Av9r0DNjc
zl+WqKp--Pp3c}40Alg@|17Vt()cqvRywWxND)b;0z@Z*zSETM(FKx7Fyq1gC>%WmD
z=+El(eW@I)Wb}N`D{&Iqqo~xQSaP`20|vM=1#hr63!PD3?!sz9=wv)V{Y(9EEEU$T
zAr-ZN$R=TqyqSJgEIWVe=npH5U~b^2i|M0qmvPogIbUDH^Q=V%*Rdxlk2uO5Ee_Q>
zB9DjQgi$P6{ONDT8<-%~RR)Sm%t2>~6dNXv+Aeil@4uNei+2{jvs?9>4oDySUIQLC
zhx!Z*J8iBLlbt7Z0*};3utd)wlUiZ42rropE
zwu7alLD3v|a`CdtUU=78$aDgzv3n^1XL6SVyTZRlF*#auJ!JCmH?^=qq!8Vu*2pd!LnVy;a&;s|=f_@>HIwzUBoHs%YH
zGxYN_Wb+0`8=hP9Y(%fY?SF}DU4AXDh0dX8?_%uGEg|gkQp7{+g~eMnvS|sg08>B%!rYp;j=9^NfScg^v$F6znSY
z3y3^vaRv10e7n
zvK3w=n?f2wHC+-rUvfe|>Sd{Ek&Bm#7;AJwI_#tFV|A6c_LM-K-V^-bb#y#J?9Oa#={BM
z`PckqK5y|IUT#f3jQ2>Hc*!?Xy^}LhHR!On_Wqv_&w5+1XJO_w3^;-mGmU`Voe?@`xx{XwplLZk;Wu;{&`1np99X;8c!uEP!OWz{$veHff
zai7i71S#^RFh~$T!~BH&4v`B`%=V_fga$ANy^}puVf<#UCtbkyr-s}bTl;gX3%=DD
z+V9}%auxH_%VwwxD=PW%cqptY%I&=YZL)*qx+NKHau7M|a^Mo7DkiM|Ld*NMpN
zU~V31GP7Pta*s-~lKkw|a5tT!GDD)x{eh6@sbLS^@2UDTkR~8N
zNK7G1N~yc(+OY8zum5SR!cacZGD&~dK-uMuam~YHDhN|+7G=_n@~0a+}x
zJD<(sk?^F+t|&&Ji+>?o`n`F?INIG@tT1qqk@0~aWCZU`?0udg61U;-F^6Fu*%PkK~u=3L}vXYRCxAnjEk&&OF=H6Fn##_g)p>_%+G}dv+Ie@}T&V-4t+9Pr
z^d4{f3c7bW{WG*tSx)-Cu?p?TSa@UM67ji16t7xB6BfZOts-}4^daBI$J@YGPy*=r
zSU5PnQE8bpF|9besog|Mbs*`VTdk=&J7p(RwTKr5%f^>Y|AjUvNNVW|MbuKW_iHOv
z9{GO(?ME$y;r0rM6vTKRF2^CQ{FM
z?>h!j0nZ=p=cAR&TwmLH-VWw&v(ySdnq3aMVA5&>LS*eP52srO4@``@R2n+9W1LcnUBxtuVE2T+kqha#9YnM+TB_p;q
ze~YGv%dzD}^W&Y9(;1IP9+zkR`?&0-;(55VShw&)X6clJc7u)#^PS-MLw~3*tM)_
z)R_ba1y%oAU7Vg?9&IyJSAPsTpeo<2ez$YEf3fXCpX*uIgr(X0n;={ZX~%c%+k31#
zL?YJXaANrUpDY067LU;OqjXC3?I=pyA0$|3Cm{fz)yK23@ilZjS9n>WJ1s6Su3ve0
zTNT3y)JcO)tobl=eFYVGst&bI=yHu6@AY)=>~2BYU^09tNsLtnl!%GZ&A41VU`f!(
zwZLO#2F|8i-~t&A=B2prFxun>VACfI$_|$-xIfmu>735#cf9f3-q=U_GM*mX#v86G
zan)s_)Ec6=IA^2l(5`%J*qW1FEO>mgy`ceIFHczL
z?m_SSJ2bey6vnR!$@YvaJ6;Y0Px+BI2yO4uBaem&yTFZ5xK@;`qp2LzqH0shyw7H6
z2}p-@ikB49q#*iuEO=Lta5B
z>&U-Yv%V-_0@|Dizi}`cFD?fW9_VO@q2RT3FSpso)Ks;%zelLf5nrXn2zEUFsLGxO
zdGPbz-Tml2>#EFWl5^kj#{Lk9wgK}Cw65nKPLX4>P@YK`09Nhk+bO6`R=ZPx@eJdW
zc=2Zi3NLdS&bpv91QZAuB0Y#-3@Wsc!c(Onj3#8JzjAg50XMHY8QoX_aU{P4uhOMf
z*hdkJmsvlb$rq=vUo+PMuU-@$7&HlD(zp5aYSa-4h{k9umu2$Tbs{;`^zw0%MAONyJB<237NSGR_{>PW{&~1oD
znhz)$-`_7ujuGMD;Jq*&Ep)fBuJw?tI`h(CP8q-D5qOMuwcPSB6vx%z?_M<>a&cfH
z-O`zs`TOtKj`TZiuW5Ysbat-BpIw$>%yfN=;G{DOGp+$&PW;)?3SLVw
z3_MeZS|c!$VoEsoeHoEM8&6?n{Nt-f#Wa1Yh&|iS+39w3$XiwErY{*(bP~?;H*{f)
zZsld)*n{w)#m75CL-ehq>Bdx7?x5J^hTTb)LG$DFr)ajNxjGcGRP}Zt3ep|w`P|hJ
zny80Z5bqK%7Y`RVZ<~k9(Xc0o`a4A=l$wgC&rbb_5>}&zUE1`sV`7S0-j!RAiM%
zV%dluy*0NPpPjg?|BsyfgZIZ!y2~YqC8Yx_fVxs|!itd~tgSUf%*cUErSO;XX-9Q>
zPWi6OV$O|-%~!*K+tTC-Olilbl*ORfwePJ$vIk)l*l`rT4gwQLd|s8HP#r+`C?|Yl
z29}h=(-(@l^+;RSHVU)Gev0PlG>Oq$V;#Tc2+USdEu!n;s%c=+?#{bLtgjX}%BL
zjl^L%6!$L9`lJo4ZttT{I2^GWXs(q;-bnE>QF^_<)j5i}WOnceX1dd`Sm&K$-+RKf
zMr)pK@#a4qiqUOsOm02_S)J{V@rj#ZZylXZ-sfbe>C&PRi$}Ge5lt5-C&$oh30_Y@
zJo1{2q>N{#M7x_x>SXC`{{B5s$jwL*xzjR2JKE5##VV}F-&?Bm+%NfOnWk9dVDR)^
z*Z_Gv-RQ4v4^Pi}E*0XlKZ$rM)ZjjxG%Gq4%ND;KJ4F>2DMoy9gUo8sq}C~4JaJ~W
za%2DYtyHBHtOClXePiI`^P1l7Pvi8xA8#6D)a}$%RaMo}($Y|DVPjyxnTMFLVGR7^
zgX8SS!7Aw$Ed4IR&T3Sj3*mQSjt_Xh9!LKBN-7Wy?*~V$-c`>hqb2u^Fec(2%V;0>#TWlW<)E{Ardy
z^X5C-SEjRE1#LjxxQf3~7mJH%rv90p?z~zQ2Mg0ION(zy04|@EA?8g1{dEDihl+ZJ
zEJmH?YON%jXjD0RtkLE90<8y|oq?zyQc^q)pr
zGKc7(do1mbKZky#kT%KxXNv#Bz_*4Kx2_UxX!nI;EiU66vrn0eL)o}LTmg|&sSrmdfM^5X6&eQvJ;|=q^gI+4
zltlTP&j5?3U$%d0vds|4eeS}%I|*g#HP0@(J~9&%8_j16`$8QNF~ux?fDH2{^q3Ew
zcp9WLYP=aJ9wXc>Gn&2^Phv886h3{jU_6BXcLPt&M|w@DIKkuU(B
z*my06*NKm3HM7sIx0l8>Is|w=+v~vVqx`HHw*U>pz*7w(R&Woy?O%$C
zhDP?Co+y(q`dPz7uRFQwphQ0|$`K_kHiv@dEJ{s-W~?o<^3P;0VFZP?d4!^*)H^+`
zzMvbmXiL*%N3h50?0>ewA@&cl_zxY*&3@|&N6X(J`ml#
zwkNfmV3kYWpW+&X|}&VBKu9wB<3MN>*J{Rfsi5cd_eG~RyMDRGh;OzXlcVL
z%A!I^`gs@1Lxk8wr6dI6OC%X=pm2fG{M=me{PD`lN(gL)ob4a~a>}?8wY=fA-_d;C
zpW0CEyeg2%vgX-!VE~c*-B*!t>R%0kBSDJ~9a3TYQHO_9Uj^6B8aA
zEzU<{@|rJk;_J2uQx#KJhHsbb1+>x&2gc8mgmqCw0cY3J>Z`wZUU!%FBZUTsH1mWu
z^B_=tVv48482#e=nm(Sz!m~uQfHV39TX(aqG8`*mH1=E9eQ$Fn==s^hTAfv@^E%_TNo%E33472TpGnLi}9K&MJ}F
z(ogYtM+BnavlL>S%X{!Bi976VCf1AnnrRn&K8%$)X{b^y1!AOqcmpY&(%sh~cT4ToXs4Sn93JDR
za97lyC6@NMFxuY}v|E#@=!|8$`v~gx#_AvCNugI7Mu$r5>0C3>O?Sg7fJt4xrz!m>
zYml%`7aR_^H*A9ff`j8_rd9TICRMK@BptNbi0CC{%A1ef70SL6i#GC;pBa1)c=g4J
zy3e8=KT@LrOEh{jv8t!?UD(Fjl4I@Z$?g;^JJKTin2H0Kij*t)i;uB7VYO2r%KthK-cd;53K
zvLzPZ7^|cjAVf*rOC5?n5M!#TxY>iYGTNlfcnvY7`8L8?>F?U_PC&Oz7XJNw2r!`y
zxEW8SHr%i3U>~flEglwewCm+DACq;dLyS&zbT-pBZzG<+c_hEloJmohI9PVHgx8WS
znb{i0=IxZN{4?(DvtW^G9a#C6?3ANQ7)2j7-jrMCJlZFbQFk!BNK>t^CZl8V?5j;0Kta8+
zbGKIs(p#9F7XA9{e5>7N_L?%egz2fa@vCTeWWjOp;o|HM-tk4;M3ygUl-5`5Ia6T~
z6BOyu*P$=Mc^;!!069a6sPM~(Q_O4Y3DUsI9=$2fHH+fn;^&jomJHmsLNNSXdq&
zFyrRt;ca_gLU~I9
z)_@H+I^jo4nk!SH*3?h4iQ_ROgslpOt->sC7LDT#^XfYJYF~wm3DUQWwZJS;`?vc#
zWiN9^`Pd{`-4v`Fe@i`LiKa^VNsP|t^CpB8_ues)>FArCeexQ00aQ5wHnn_m+Yg(l
z(=p9uVoUIq+Jv_j@%sad<*c&9F13+~f)OV2Q6{RH#XnA+3Z+{n7}w&I)LG<AHDW4|o
zq&pC}xsZo;Z{v*jeo}kd;3(xUQ_-MN^;E+$DIoH;g|QtN`n&Gkwp2sLf3~6fy!K>$
zIzn%sBJ1RU1SgWMQSM)f>VW3vM`zRVUsk`SB($
zv7>MExeT7KTa3&c%@*kYixz8E`uA=)^;=VpBaqkCbD+WSqet0LciD{#B34fHmS#IzwWrN^8CyN03>RSMN0cVk$9aN`-!;{hK{2OOg5)1`;_1
znBmPFbOLawdIDq@f0>s3WCGg~Du69{s26$o??iePjc5YnP^2p=LSlP5sj^%+&tX2B
z%+v-a&;uFBm|7z(ngI2TnsLbP<#E94uUa9|FXfu4dB25^^0ZXE2nj<0I9Ra2uYk_?
zd00(8+vXTiQ_r@duK_w~tS&orY@43k&mF+Ru9xdu6s8|C$-MecH(#?Z&a#a
z7|FNJV0I>KBA5!?RUM)cX`dY|jl5J7tH0B7z2Dbj?!Y~qE#;Jbwfv5K(L6lqb?Y&g
z8UM5iZWQ)u$#m(qnfY#?j#vF~Gu+4CY_4+gJr`An#P&3Dx0x2K55_!rrYhR%K%79eAUI3$O*uhplcXW^k-G1T
zu2i~(i}slpn~T95eBD$Tf-f_2I`c&K9E4Sgb@r^)5~5vZ>&}kwPI$Z)M#;7xKeKI7
ziKi@2&;Wf-oT;)r9q(#=6*5UoCMM^aonFgRIeq;69qRPFyu6{PgzcH``?vyGR7tbg
zOgiP2l{RK(Qx*-f%+PE-IOIOLo8(4z|3lc{r4acL0LYjz^c#|w%_1W7+BgXAToEu|
z3d{~#d<=C=YIxkAKc!i8&F;5d@R8Bva9RnV}GAW&Yjy<>tzMGbchrM-;M;
z>WB8d0MpqgG?Yp?8xshoIw2u!1Y_x(Tg~mtu8?u9i#6-^vWqQ$P%y{{<2|Ly^%o-z*bQz19jYXL|^0r33zTjj{E2KE{M@(DiPVPA6MTAcugrrYj{Ul
z{Pvbo_V7j=F8Uq9^teO&>MZ3GJ&6;wh!ZV!d8__1dLK-H?o?xM!_{M{3d6t8eDN_s
z^6)7F>rdOk!c@Ey7rnOF8_`ci@7~0cG#1sVM)qcCY
z`K`<6tBiJsmcrMAxgoA&df_vh9PxpQ!j@p%_P&eu=ass^5E!S!qy44zXpXT>dzXCO
z*GHXzgJ*|<`*dPl=H5wxIe*OkefHdl#j=lM@8h^;rIcpPfvTJ(PV@JaNgesjE0v&*
z_1R2R-JjU&Yi*6JGTNl*@fRR>r}Y3#dAK_}=Ud~NkVkGR+3@E0iK?|Y^#(0FHab%I
zM$JpBF8_)0qPGsV=4qgdgT;NgYBl0B3)E$?-R4kc502kBW!^C0hR~PFfEmw;$J)B$
z`1Q&0qf22S2q7*YK!lHhbK6yASbjKT1?4=
z;kkz4D|0#F9S{#HeurKk9r1fwmb)tT_|65_OV!f};ra`=`>o6E;mIy{_psxyxEDaZ
z7?1m{>oGIn+oZpokGvnNXMlmS^Bsa*uY|zi-Asl_K_1YuTuM$MBAAYHSFcbq&844;kbqsCgYcmyol0C0
zWG}*U_k-{&dE^NP$qeR|%DhUaT<)Ledj}lFL2AFWaEJ2piZyfH+1sB-d|SggJmwqN
zbngLt+|`8=dpiynRGcayRE6)CfEkBTI-VWVjRol@YrLA$aI>_u-E|zNfcIGoHXQWr
zgVWK`_R`=u%}ifIR;Y~brzD;83AE}HR$sfON!>KCrv17tYhR#}pX2WAAasb7mej>>
zImZkvLfEL(rJ|?btZP-Ggyu_(VDzfB8jUp-fAk39;hs2L)xdiwH^2r`U>EPT)3zv(
zO34y#e&BKr4ujr0KZ_sO#8kxISQM+HM2U0~tG+tYeY#Y0nH#d(gy<0M;&m9xwr0jd
zrVOOm>WMvCGnzWWi4hYU
zdvSgq7g;YLjHww3VTZ=!MK_c8ZqtYSi1fc~`yU~t83;o}2iSpZtX{+Z&CKQF?}G~)
z65La~`$_O-B>Ya7X}5?$YV7CJE}YH)rU2+qfi(9FD>WfK!(WAdZ4DMU2TI+Yf{&KN
zai|;gd>LieL7zu{!5i8n#_g$oZO!34Oum#@2^#3w_CI5ERUID}Ff^W6&egAMq9tSL{DMa)_@rsZ+DG0_cW37K
zZ=Q}K;!2V~MLW(iU1cjNrU+@qlZ;2b>=wb$T)XFvVO|jLobpW;-N2~$GvADyTo7uJ
z$m){IYLPG9fAM{h2_R&;a;3*SS0`I)Ozv|2O=A7qZdGLZ9wsd12IxDy@oWj1Ko^U3
z&4%eE#iFa(8;2oU%c%Z6idIrX?Pg<^RS)AnG8{RNr|+|Jlt^|D6v2|Oh>#svCbXp|
z1%Lf?>oQbidUv&DZGK4SqWObav?B*03~N+b_j$jb;XS(bGVu^^P(T{}d0_mK3lHaY3v7NCZAi3;Hgd;DAiY?_}5p#j#
zuKHA-E=>=girZeE`VJ|OwnT>RSMH_|o+j|m5i8wj!dl5QVazbxAZINK2{(=ZwV$NMIu6_cH*v@^$Zj+u~i}=|M+~10qGUD<r};K9RbBGUrKZ-?QRl@jkDGy{
zlgbM%&z&-q#jX{F`@I$XmxYa21J$RE_)>nUc@45CZ3U`>`H>}yEmb*&mANgg=(3`m
zc5t?#a$;NUT&lUn)i{U#C`n$Iw^hFfNOy29qx0)+|Jv6V!6h5O-*ICry?4G#+oCRZGl$WpGtdH)hql<-^Mdb}ec<4FZeFg4sHh!RePE#I!}&T`
z`s=XY8L;hq63h;zeb
zxK)KOfH~A`5s}IS=%`-mVcN5lj+cE_*KI&eYw_q*h@}%rQ;&^kv_wb@DIf-+tp-_u
zyGOzGlMG3+n{3Ykc{nJaWWg!EP&Eg|5f*?R1|%U4Hw#I)|ha{zW}3&JSXh*ZQ}P
z1RO|+Cj7b_a&?OYJX3$zPnX9qn4Z;ekE9em0rivB)4x!V)^h5Nh09@|8Ei}wBDENH
zR7ao_9O{RmrxFq9c6$-$lqt}KKG#Nu9wRvRz+aOt1_&=H_|V9-fTAKR5`|65X|0%L
z)Ke%*$E3^0q$~XxYRJIU5?gKbi8d8{=k&Y-tI>^5gkxMRtikOu{E`-Y*wP6sDbwP1
zeTjn0u+iAoLK59BHPb<{=9WP@s$#+4O#8ThcQju1@N4Rq;K$tO{X9ZK$bN|T`CPNM
zqi2jcB~5mK64tMW(CQmb)ZN`3*v91M4&B)?ghR&JIsjYar(*^+>FMcYWMpdP>ZEbQ
z6Y1Q_nwpwGVA1T+W$)H%V6HXjPoqCVqjl`}*0(nw(y#v`kg09iLsbX+E1p*Nf3n(v
z5Kj+LKv_H$-ZC9eo{t>)3AoZ%V+G(j4Ugc37R=)mfK*NmXfcAEy0B*HFm~CBs3eJ7cXGUR&_srE2*>`@ZAlYjaim*;65F2zKMBd=1(z7=H4?=ju@OfC
z$BHEY3r7nDvX&J;JhhP9V&B1xe2HY=kzM4(&8iaq{%>ny#7gwkmkEZxpv`UV2)6r+
zeuhoK2Ue^V=&g&-fVA#SOKuh;PnCd|N8k(103<8>1GXtuT;ATUnLLD4V-|=Qm7%2g_
z8%q}3=Lz+`!w4O*bISp%vL3x4aoFEfxO^L~ZLT3eVz;~>fB_;s^heKeN@~QY*mTix
zO9DugHyl3}Y%RGJf^?dJ>>ynUq5d6PdQv8imD#!SCs!9NB%F0*%<&kB#&3#Q`5lI
zMxoW#H_lI%!e2d;(&!35+-I6H{c!IMB_GdG_8&i%
zn%f9pkJqEtj&KI9Gr;HP*G3}`hyY7QA&;iTkeTN`|j^jCBzH4<(bW^1*9@>Dgi)jxj=U#xBnh^qqB))}hNwAqilO
z=<4o$@U;n|89`OVLN36VIW>}+dKsP`S+!a*m^=awCzK8!88%8hE-5J~F0RgGJasxx
z0t}tn{}X_SiL-`=hFTmC3X6(9o({6WZNi3z29J&nu={=ILAjrT;7N((w|Z8E#cKC2
z{A8NJzytpI%Ok@{`7>E1W2n&P-VBXi8tiNVYtVm(#Z`!x-~o{{hBe&_^m*9U9Pym3?gY5q24fzP4$;f@6YQLm4MkHoq`8_jq3bTIK~RyN$pbhx@NAK
z-4^%HE#N_f%|^JYSp4AMXW6H59G_}3KI3{-8=!!pz>Q+u-O)NlLeaxnJhi*KvokO-
zaR2Aw{@qjT)BU-r?(XjP_V)h%{?5)^kBb8|LZ;}~)ZpGa_;T#)^#k)?9
zrM*dl^k3PyU|1hznE$?k{}`e=L@IkY9BEpKema(5a5brVNV~hvqJl@GY)V~KHC@O<
zjU}nKtLt=Y6pk*~*}(x79i5EJLPcA9K1t6zIVq_?sfd&mBv{Dd#=;o_Lv1h6*Ot!E
znGFT+Q+*(P2LHPDy*Vm2FoCy_&k#14WdT^Wcvu^DF5hvYp|~#~w`I~7W882kKqNp_e>HRz11>|dVRa8`zmHnu4NZyq(
zBXUsx_*m1w=t4>Cmhi84E~56=Bj55sh@TR3_rT2?Awo>F%WA9xme_F>rsQsWBF3oapSHGi2UhHCET3!~ly
zs+EOm#g2}S7yENOmXqH=s~IS&tp>E~>gtLIVamzL2|4d+czb&r8ykChHOm)tCRbSP
zB65sa%68N(d>}Il`ulN#ygvW$>$bzObvBm}6R@I}mX)!-cp>0+ye>`Yg-<}RvAt~`
zMUjz_v9huPatq!U3oh?6g}v^soj_r9!XkNZgxJs8y5=^)X2!5|akDrt?(gfg{rj~-
zVW!VnQB4&0D!VZazLZQ@JU-9fOs7eubOh#u)anwu6W4rk6
zKcp=jk623|SAnB$kn<4cN9Dfj>(qZ=>HXgehz&!mTsULJO&akw(A31ZOuj(5NTt5M
zKGXA91{j2$U3pMYP+S~dST``C>#5dzU_!R!d=Be76U6|SIXOAGH)rrAwd>3!^t`2u
zdvl$6OB6XT@GnoHhN=OXo`*+=6v?kRaqM-(;dq&F{F+>xt&rW^SrGcT74IfPf^w>g
zsoEFEc!^7+r`eSY>d-#)QpZK-?rVq2x$%N;`two#
zb(QMRkL;dlmYi=6rM3crz|Egl5zk9ITU%S{Q#%)zKOo|K{CEm}`7@0#SAkxIF+r`^
zSd{dM)tO~_J*Q2Td%_;>-==m+_W}Y5r*uKo&n1BRL7;J3u;u;`yGA46?k;6BH%$Rs
zVJ}kM3E!XdYZfGoL>|zs%=++iz=A}NYR$|nQnN>KaHg8GF*33&q1)2TxrC`j?Ho(2
z_aP#6qHj5<@XHL~=>NmM4O4d@d0E*H>1|e*P_#Rxt?I!!qTcrwtKb+2<0Zu&48i
z5Xwh7ZH;96`}>1vz2?vk7(2OuGZ~wHTSowzG5bsa8WH1*7a(vOvk`|&QLSwnvlw}p
zf3d#fdUsFvce3j6ojSA|0v=?1xKh33EOt8&Dh=doNNwaqGqjoxl3l%7(eLtXjPC1M6~=6?D|9-J&9I+
zHBVk)UFx%wOjr;gE=y81n3m}(RMe6{Vf=j4S9iDSH2EoJ*>B$x*9kF<&_aBI9s`DE
z2!4Twlxma$(QHs5G3QD9zC|GE>pD!kC-1Xfx@nfQyS$iI4a-fkPqklU&-bz~qK=R{
z*)41JzTPeXo_cGcv9_|3<3Ay6>sQhEdVidflr@4fdMIjfrw3P)06m)iejz%
z$3%D}oPQZ6)_WL;{w*J-NT)R4B_zNw%O1I^rRH4inq_vO(eiSHXp?ULO;)LW-kVa1
z{>mG+B6WWT>peAZ8jc4;3LS
z*^)uZndGU$q|>b=I`%^#4?JY`4`(`65Pj!g$}8S*9teh5Y>4_*@bF2u0V%C)`zyti
z60MgaXg2J&pK4$}8!UhMLc6I&9q2^zw!6pbMvhk5(9qD>c%wg#E-o%E6TCP1bpHCf
zI*_oRo0&mCKp0BqFa-i>k=sK*vFyTQBPf~)-mZenwL|NbTT1HQ^pt6vjezp~dB1h~2}kxcIQ4Y;X#DA^%%
z@_H9tYJJpBXR3*eEK2CM*y4@&A=X;=Dq}7T_U&Vh&RwNW1k;y$hZF*3F0_;hf_f8y
z1Hgv7J}ap$cE@cE$NktOc$>jZ&YV(Hwpuf4_G|YH__#Ou>~wT=w6wH>g7XUt3m}H}
z_ZNX^VqjoU)_gvjA>>i2U9Y68>%BY4oJKZCm{(DxmK7#I67{iIT?;*I@85c8Jr$_2
zl?8hihBoU}PJNZ}3c9H`E1qpWP=Os!bV
zcuCu@_{K*D(b1L+Y&eYOzP7u1S^qS2O)yXa<*^Bi!NI|Y+mm-865oybV?lfcP@+PE
ziHHb*riO454k>C}av}GstSr%dB`$7maKr}fKB3|KCnhad)0)btjEjnhA%o(QWD`*y
z6Mm(03&YSUygJC`9S5Y-I;+T*JvqX?`c1Xv&G}Pg--C=wckk}SU#Rt2Qkca)y9(FE
z{K&qMpmIn$-^$E`sY^GX6UP^BzFhfP#|-L~TEZ-l2&YNjZ$lw9=d77*?5s7jG9O0X
z^ID6_)?TkhdeNKhWM}_k&O)$8T66A4KuW%)alwR;=DYX`E>3AlN5=EgE(jS4#1k8)
zoFZpsG|A^jEH<)NkBy$m7~6|w$}SaCed6YdlqCt*DJ$+LBWoar0nDZYhy)sI(+E)F
z|A)s^tC#7X{QkLAWj-E)M+eX?C#hUdwhSMfAaC>>U^MGMRBRdE@
z7o|);an(%iC)imu;lkNPw7!cvS{iFdgck$R@N2vw)p0Ve2vT;;kFy5@ycWE;nB`Wk
zQ=1Z21!o~8du`ixe1nMfMa+#L$HKc~4kj)L4t1K@6C3uj%X^~LE(JS5e%#dvS#5gT
zcTUO=!rUSWTq0WAjBlQglE3fmpY{#h-}tPvWp&R`XvPA&T&TEmA0uQ9nT~yEi(Nq-
zWkYp0VW(kx;X^s{!v+sZVqvU5Va7Q*F`?7y?X}e61t|FLLZeG>BzbyT+TPw?T6#Ja
z6;-|VL5tUo_ru-A?o`=Y@RmS+NDnuO`XO8c)`!5qah>Rm0u*5-Q_g+*hkMoYG5BwO
zN{Oov7*cUxYCr=F6IR&)j<~KFIHCtARe-`V8=veeGS^}0S+W|Z%Ns3&cTF!{);LK9jv}P*E-<_}#`wbAnwS=V;CRGY8@KX%#b2LsK&1Jlv39p{``s`pzsI^}@-kON1}a
zOV;X>?7wpkz38Ryo8<8B_M69nu=pJ{_-yGh%kP
zSF5GeJB+BlEUQ4XiK}skmYn&Ntbv#-)D0gWNve@vij*cSP=}1&n(qgx@Pc#e{&rs$
z%{=Luh^v5Fr5%+E1>Jo7ew&rexI^pYxYo46X*ps7}n)99CRxRPPmjlS;
zSV)|IU>TR1^~OD$_Q7tnvypv-M*YT@02&Zm
z%>5yR=G@x+MoG~=2XyG
zfwO>BlB|9&`6fTDEVfdy<%Ot1*hTE7g&Bpv=y>pfzJZ-5Gh-AyM%5r^7UfqY@m2&_
z=H5<*w>~FF?DUntnk>1d2js)xW~<<)tZNJ%Jx^S-DrbbNjtrQ4-H-&foUMLn+RQtr
zG4It1wp>YU*-{h?xgKy13!Em`#7k5#VnELK}C
zAtU0059sVsScjRkz?j@AoV+v*MmBDe2@aWCxPe_k!~7WF^hc@^<@tl0RGeo1Vm-NF
z8=CaTpSnV2p0*Y=M!q)ZGC61Yt{cp*P(?1yAJNl7VcK2Lc;+W1&dG4Id$poP6HIk6
zC5Ur^6fUzAJ!Dbf7k?aXn`eEV_KFnVG!qGs^0&;u%?oUCLs~jXmyx=fe>~YdKn`6p
zE+O1yPj^2ZG2={P)w|!yjrt;&N{ElY4g?S55;vEZ;ebYte~|+rXK-k!q_h;|GTaLxY>TbI-zVp(!>QdNgU!tdLacn(9jUYTeY!dbBs%YD_{uhH?)ZW0#{
zl26V2oGhWUB7??@iy-}VT}jdt|L})2#__x^J{0yfc0tLy(xLdeBB;`0!yMLcxq{l(
zEb9}RcCk1(uh%t9epM!3frY+E81PYB3xPoqEw{e)k+-cTpfaddWa(nFG`cWoIC_}1
zr;5gS{!PLOYJd4s^G?=Lh2171tvFWPgb4$~yrPX6-M81Z!g8=@|IV7CN5jlX(Dm~i
z`(U21jni%V^}`o(&(9@tbKDe0scYs=#Et?kB=1uB1x3Mkx}loHSD~MWuYS1-Iq^)3;4AVn`y~;ZmKo~6SWRxu~vScdemhHg0EB_+YEju3(!p_
z9*BN)bo9TvilgK1SpHy>+X*n!2at&d|IC6j1+Y^@FD(Qy4x(<1xv<5>af>#iq`wVT
z)I$-9F#56Y58AuWcG$>NwUkB=T*Pt~XpjqJa?%LMCA(fqZw#T>a~kc}gttLPmOiM5
z^udO|Ux(ExA^Q{hA$^8f?h}`eny_@DN2uB;#<661dMRi%LqUx%_}wLf0BX>)#@R4Dap!GtNJ02H0F*L9NWn*wwyif@SV*j$p*V86MoTz`9#rXP5N<&YTjz?N^r&y4DCa^>%
z1jwcmss>6p9@ok@_4Rr$1}M9UeW6lmmA^Cr9K=-jJ&h325F%E&-s=Z&fQdSmO!-@>
z!URhzP(H=RZ)+>tD2_Y-jf4o1!nWlUKVyX(_ORh>CtVKT7ZA(Bw6i<^8UPv>CPq3m
zQ*@-eJ554p0=XKhziVJT4}Y8IArquNaWLMF9%F?`=dqmHOLfS
z0RsYzeJ)oT3y@O6u#NTgUnN?#pp~H7a*9IG6*LQgZh?l1ikKtnwOY6}k{)$~y;}b8
zZCgI6@6!L2GyXF=q^)Di@(31gBrM10p$aK<(d#JGSFj8-vjwoRuqyrU0sRWV4dCTqwGYIyP5eJCz|>Xsn25=Dk)2-;
zd`r>7NRbrH`Ic;-F{C)~2gDL`Fz6*He6&7rzrrXvCq{^X5X*U0qR{f;!}(#G#YyE4
z%-1k?4H~W-F8dV|E=*T`QA*6pxhlM6!WS2NB28mhYz$^*2>Oc;UQRf?ig>FK!EM&Z
zyuax^Z#W)>RhpQMXMO$0D2R`Ol)IPXuB6nXz`I9SI7^B}0z)_)zWN0Nh0RnSf-2|f
z+FrQ3c=OYZCTONTeHp%By-FZf
zC@%WMSUgOlFAoW_jcevi{Jgtbx0%Ji>k@cCNsPEiBS4jPwCydW@eUO?YJLFqgQDZf;_`$)GS;MxIFgMDwMepYZyI8B%1zmIR
z!fGFwX3x=PW=mjOLu(#r-`uD+oh5aZ6vWn~X;j`_ew&(d*%zQ?%bW5|>#VJ+1yK;i
zGp|siN-jY~8?){XmMwIJn>!g@?I$;+Tr+3PrLkgNscm$+4Nq8qo~H
zKkG
z_ScW)3CbLEnU7Wf=+c%^qDY9Plj-R6yZNv;
zJ#ke9P63Oo3sA}Y4_`J-RRwuS(4qw3XwQIqBvxleS
zdbF;(E&EQ1gy~5&rYBu62i0=F&B++mZMV(tO?Q%UR{V-88NM|e@u|C)j!wE#(d|xg
zSt8SWTr#pfki`$CAP4Sfs*EzK_vU)HtW3Ar9dsmsQbqHk!&d&=BM^$
zEgPZx#_-Ca-5Ql5H$j(!)^RX4?jFk-v3=R#2|hcy&`)A3a|sNTCuFNjGjoOt54uYa
zOFXpkFlYiQBvqYxNMX=qqbs(3J6LRsn^%u)-h@2n>61vPUV$4Ko3w_?af?=ysX)5l@{&%#;}V+vOh^3guHgpJ|I!KN
z0ap5*0yNqu+XhQz_rWH3MDqMp_eN&rax~zaj&`*
zF!afuMCFJ+yB}}Btm9)m9hINIX(nw!x@_tFWdu7g_2jL4Tz$L#tk0I&Lm$kmbT~iQ
zCJ%U5NqAT3OOGHV*C2%JQ{+8j(k&v=WlGX5@R_1&<6+98n)U2}ojoDk8t-g1EX;Jl
z^2t1Gi`>!$|M}AYdd=CRh07A
zkaVl}9oQ=0-A*t2m7s1RC~+-IJXC!DhTv2x&;Y?FhwYe2
z&H=O1mwpuT(P)bzoh4e;1wPjdlF{Xt-I5$RCX#ZgB;;Hk*Qf6lN5^w>a&mJ`AKx`L
z0l5&y1Af7~Ol~gso^U=6lOJB@M`IU@Gp<)1@2w4+&l+(qo3J>c9dJzWb{^WBRB4SD
zP7G)hobP3!?Ik2bCUVW^UHy7)9sWeWhtgkq9fxlbnMl4%ClGS#IV}QZ$%u@X%<_vPXAxU;J;fzu@Ml-Kq!Yo79*8r6E+SVd;*Gq#u-$SS$Se#F3;^te
zjtEytLHwkmnNWP{hwR0fJT=|FqeT^JdCFT_l_O+TSgBHB6{2dC5|qIBR@%yX#o`w)
z8n153e8?Zpd#Qq=D2Iiew?@%)`egT~cO5*>7Gp
zx3cFKghk%A_LI+ZYoxubb@5@t_fBuqh*Hpj_r~tL{oKRS$8=rV@%zKw-I1j_>y(8G
z$fiJurTIkTMO4Il`*E=MJH#NbeIs)zGTP}4*wkNM=_or^uA11tkIBg^EZjq!9S9wG69zuAWkk6sdZCmw`NlLf
z`T5<4+DcaD@q|f<@$oYUt8gQZCr9};y;NwEox}ph`UMy_%-7a?@d;H`hLv+xNP(t&
z=shSRSFy3HInVP~FP4VM_&hJ?>swKePeQ}uX=o%bnKmy4^lB&ed9ZSacE#u%^|;qw
z-B}Mhmv&Bo9uV5)Yb339Ryd*{kb(VmD0FWiqtF>7G)3(XT$@lm7$;rq-6dnOO1u(J7
z>wLzv_2J&b&CLx2Y*4$u*G0^;?_k!t!8&G^vBLSgitBobT0R1+uQET;u#9na&Ia*2
z`H7s`Z)C$xn({G%RwwsW0pLZ~h}MRFYIB9-yM2@L1S7jn?mB+*;71DsODq4HY#8gl
zi!gSHmFM*}me5fbYO~F!_%%J^BDdSuPs<>=h*d9B<**T99@;JRL5qy}M<;h{znW~_
zx#>cVEV-zzQ41&jDs!g>sVZ{=JyS0e(yYRbOw4}Eh3fOw%5Tm5M!C!amkEUDqnNi{
z<;*4$i8_KkYUj*;Ekl@Oh*LI&w)D)*F@qbhEz7@(;_~zJNh7}Cyu;Wf*V^YMXwsnIj4hMAOhuQ%>p~^{c#W7VV;VrUE@#M26(c2}2r;1a
zjO`WCyzI{nSAh7_US7j_Ep~gexxyeJWvRAF$r?~gAeiL{_f$t;+)A}m2sY)+1b^Xe
zc<uGxZHe!li`W+>?8-IleZ
z#{>EP{EDmKoK5Yx1@RD)zQFP*(xokX%3F+xSv-;3I;*SD;9%WM+Zp$RTZC%O++M|Y
z`t6E+Yt3FC+cgPO0~;%$a)IqhlZW&@Hr@gBpR;COeDhJQcWgj)PxZsGt={BIKnT_X
z{W?i=C=4+z+I9NOs?>qo{lW!GB24ZDop=HI!3R-mf>Ntp5}=#`$;pO>Yar5k!fo}L
z*ZzZoLUdzeBgjmqr|STfRGv(n@aVPUONBv4dl_zHFcTVme}0Nao(;Dn9*x0)5c3VNF@7H6uY7MC$n>6Y>E->1c*a~3
zEYuCsV8&3_ADqfYNer!J*^%uC)d?=!(xs8ccOsOOOC%g7
zcOvI4aOGd0?~0(Hr2DUqsi4atbTu>_?9`T8{vmH?$rF1`^)aa_cB|n{T%!7O{TU~M
zXFCVArPn2>)cOlf?bM>PFJvGX%y~^I4-aXMf0|Nnj>nK0*1L8M59aHYy_FAcH`Dk|
z7Hjqi5~O!_(rvUacd|Dugy(WHJFc<9T@Hh!+G%>Cnn<|dsB3n|?+X?n$NU{LmIW||
ziH>NpTNGZP5UU{ca*XL8Crweiqj@D9rCnpZjm`
zD}lD@(Kmg^ks}@bbjOHy{F9yrzfWXD`QdP{6PXP*975Ih_)WC;Ikv=@P|AJwB1cFF
z^yzEo^1S41e0XE1{tMFWmob!@_kUzy+aeJvf_i9EPud%#Cf*srvT@O@e6B)&UX5^?
zv{^F3T?o_1UP%!GBXb)}YtX;m45`cW(-FmW7_ey*Ygx83dj9YUImA?`&3EE$M`udP
zEU=h+a16&Ep#9U(SVCi|d&+UreJ677di;x_;2Q@F0U
zVi;5eYvRvrHO5T|4WA@}pAf_(A~$}UQFbOEfUPI2?U2JXW>IBrSg;A|vS!vcQ*tpX)-XLR7#}`$m
z;^@N@!$?6NzxlFAKYjf}&EWdeOw4cJb>E*GGTHcI8OW-R_4=b*n0+_NcekdQR>A`}bN}yR1i4vsAY$H6Do-
z`P#2^lqM_GvOiVCdT}wMPS%x#(nR$v>NrbtiS^$!hJ=Z&9KPFl%Aqb_Q2F)i4zLl|
ztBoW|_pR)swcaqt*q(?dE}(*E$(ho6w{NRfduQb-BPJ|w0vN&Z<1C&)0(d{>g)}uYkKv^PkG4E*Gbkw7+=Ve?u0|X}dW5H?%F9~11aC~j^izA4$
z+uHK`fWiMQ@Z&mf(StLgkU~q6i!vPeiMO22MS^g!F_yI%4LLA$Ro^P!W;75!r4Jo4
z85|y_5OB7#vt!$CK}13d3JhHI_|yDw`&*<$?Zpg?+L%tx+pg-_t~!;c$JSHNMYUD1
z6>$*+$RdH>@ew&JxGdd0ctBa34m)7r5dA@p7Tk7F(7R-IWUiFm0OE
z{1p-cf?PVk6Ns8O=ljK_rGatT+AQs^30<3H5(Px~GAj8NI)0>qbNi*m#g%jWdR}J<
z?fR~lD?wDxpT8D>h8r$8&sp=Qv+(dtf&K^p^X{%pipuM8BVdv{i
zrK#;~)i%&v2|KI@j|3CSi4mm6Uevs(yv6;mKl`s+Blm;gEl0M;7#hI4W5a%e5D^iX
znwZFcW&<;a5;&Y-8EF&&IU#R691iA~+g-NjPvj1^{(-(~o6+YeKB1t+9|uhDRg
zM_5t9HXjRdXM#aNLKr|lP_&@%IvoXe23Cp}{vi;ZSFEczI^!tHhn7SNgB_*|F~a0h53a0o9$8ykl6ySLJl~pj?2Q?tYz88=4N6-
z0;suwPJelGD$NA6(Q}o1&%u9eEL`;W(>C}zN4rfGVqY77=+kF_>XsH3($mvVgSI_j
z%K#3~m+7?v-T3M0>ElTWKsf+(xgUEkAza)dEH*tkvhx6fWu_C2EHo)vK(h=L75o1ax>Lq>DdGKC4|JKog}Y
zBO~MFRNc99Xxe(p66VwBcvth8=c`1%yvI|X7=x(ZHHZ2%c~d8+v)U!^Mlk&i=|z&nT_VSEP2(Immh){OB-R9&Ga;HAZH&X$V~Rz(}fS+_K^RE
zjQ`x5IQ(Zw<}>ImKh+2o4)$|l(81_X?|pyu8z|gj;a$h_WB{~%!ORR!^?UX#qjxP^
z?3yEy;{By=rn%zHr&Cn(lF%=VwjpqFoRXFzh|wpG(>+jGz#@
zj*+IAsk2`L_X7meA6L6j5~Qlk6n`bcpAn!ikTgTdv@qTm-+6QGt8H#%Ai<
zZ~)71HTmuRCkR-@#SazH$Cb!Zn2af73sk6s$yT^9#zLW?Htc!J`9?1WSL{^O)zwv0
zZr3OuUdzj8066IC>I&-9W@cNaM^nLz$LHh8+WH7XCrjgHj+mKIR!~65rO2U4_pG0wqV&X8>^o5#1-XICt#uC5q
z!-;aL*9JHdb!@17VV%0cs#Id
z^eimiCqq1xo`>y%Ww6OKtWkarG4-+rhl0!;?o>Q{~cn)14
z8B2Fr$N8l}qLJx;vW!MkVBR%~>Q~EdTlg?fgnYAI?8-5F!h$$6$kPCW3iou7S{S
z!TqTwK8-ZoRlMIn;8sn;fi`~&!0a+E^(E{pV
zaP<2fu*+{>zvei`rpXt~?SJ_kAfDHU`S%lnosbC0A00-S|D>^xO*i7W^6Yu0T+
zv^7-;wSebU$eYfM#l^)wz<~hld@!M|2PSb{M?Vwq=;#2}jz>ty?S8uDaZqmxs=c6b
zqxQbXG~R#AFwOGOZ%$dn4|XC~;et(A0w3ykMfG&LDEbaH!g#cl
zJ{-V;vN93py=kEFez^MS!=hQW1#mMaFhrpD#=s!wwweY4zYNdgex5~e!j{NGUknxK
zVZsa&XSi3D+RDUBz@mARahk&jS^DRVin2;ST81q|`*tx5x=ip5cERIGJ4w8D6{Sy5
zZ~{e){Wl=2cu;XywzU%k)IPM>&B&xJb}|#)b+dHU(psk;5;I+uWl%GnfWc$!yJtlh@tH*;{=sulw}n5
z9O}t1d%?DT)anE6`l9Pv1W0nCf+s~md29_aG6K6_*qn{n`Ol(`rsf;&oP=J4;=G~f
z-tE2tQDgQ!`RmC4V9Dh)u}70sP1h!t$~t@8fqc%D;bRwp!2CfT*32lmt9)oH0}F+`dD7
zd;v=cB2(0s=
zTs_UqG+W8ee7x5s=BV@+^jmne*agerlV0RB8hCgEeOS*#>`gNSA{st6MYZEoS3#TF
z#+sT*o7#tcTOW^=03w^_vq{h{0zx!!q!^@}W`OvBU8!AdF+rr~sR)$Ipu-XPL0s4{
zvjog%7HVI*RsTa)|HoOOs9;SQMK2R^wwS>yK49iraN3|wH+qJu_Quj&yligYnLizX
z5J^c%TR=9z^6>#oWzZQ2X3WEbD-yFUgODLBBjX18VgO6N0qd}{W5LfT(rJyqR!99`
zMAya_fKnSpj5HLftP>pUAO0wIzx{k{3g|ECfFDX>Bzq3Uog
zQ2!hcvi@0W^#Kqcbnbx;E1$Dsz3$##FudgIvG>LO)Xd3=3&oegWP)4&&BlCSifr#c
z7}NSOR%qd@9fr5@eFE2a%zNHw{8C~Um$nRkTlHXyhQRD77#4saupu5BTTM(h$zA4O
z+OKxq-`xQF3G(+xrxd=86gcSn@#D5va#hIU`hOOxS)u_A6kQ`GQ
zyg=~RZEOy{8xI01zzrAy03m0?4
zxS!clpyp-&%ajQpO_^|_EmxVzTc@C7DC8yV0us39LIDde-92*f
zxeUDO-X=}6F$got%7(RbBG+5FBDX78wet>xz-s!0C)<4C3f?9kcj3MJrd10l{sq{!
z1@h@&&WcODc6?|o%1tAK_rq;D)?d5i$>T2J*@=;DN3J4)dBp}G(a`h}nkflPyX>80
z_4-Mn=N?LYtodYB!-36DT{_KZ{zprR+XP4@k6V4DiZ#a4fEk}g(9`8J?#t3ImTD?lwc<*9-(Po0
zWTMz5O~BBRL129N-!x6F9YqJ2#*X8r0{P%QFcef&RB*bV2S5{8Pq@P)(H@ZtAamBW
z3pMU%I{>!l%Ztc=X{M#32
zOBdPIOIdGJ&YwzDP0O8Pnd{sH9+qmPLnUoi8_)MM1gWQL=pFuLtn$j}X5VE1i)h=f
zo?(P1>4N_Ktyja-x&60FZ|{;JwRr8NK0`i6w)WnmAE2eI35-a(W$JF