diff --git a/.eslintrc.cjs b/.eslintrc.cjs
new file mode 100644
index 0000000..6617ed2
--- /dev/null
+++ b/.eslintrc.cjs
@@ -0,0 +1,26 @@
+/* eslint-env node */
+require('@rushstack/eslint-patch/modern-module-resolution')
+
+module.exports = {
+ root: true,
+ 'extends': [
+ 'plugin:vue/vue3-essential',
+ 'eslint:recommended',
+ '@vue/eslint-config-typescript',
+ '@vue/eslint-config-prettier/skip-formatting'
+ ],
+ overrides: [
+ {
+ files: [
+ 'cypress/e2e/**/*.{cy,spec}.{js,ts,jsx,tsx}',
+ 'cypress/support/**/*.{js,ts,jsx,tsx}'
+ ],
+ 'extends': [
+ 'plugin:cypress/recommended'
+ ]
+ }
+ ],
+ parserOptions: {
+ ecmaVersion: 'latest'
+ }
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d74b9e8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,30 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+
+node_modules
+.DS_Store
+dist
+dist-ssr
+coverage
+*.local
+
+/cypress/videos/
+/cypress/screenshots/
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
+
+*.tsbuildinfo
+
+nuntia
+wwwroot
+
diff --git a/.prettierrc.json b/.prettierrc.json
new file mode 100644
index 0000000..66e2335
--- /dev/null
+++ b/.prettierrc.json
@@ -0,0 +1,8 @@
+{
+ "$schema": "https://json.schemastore.org/prettierrc",
+ "semi": false,
+ "tabWidth": 2,
+ "singleQuote": true,
+ "printWidth": 100,
+ "trailingComma": "none"
+}
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e7656c5
--- /dev/null
+++ b/README.md
@@ -0,0 +1,61 @@
+# StructorVerborum
+
+This template should help get you started developing with Vue 3 in Vite.
+
+## Recommended IDE Setup
+
+[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur).
+
+## Type Support for `.vue` Imports in TS
+
+TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) to make the TypeScript language service aware of `.vue` types.
+
+## Customize configuration
+
+See [Vite Configuration Reference](https://vitejs.dev/config/).
+
+## Project Setup
+
+```sh
+npm install
+```
+
+### Compile and Hot-Reload for Development
+
+```sh
+npm run dev
+```
+
+### Type-Check, Compile and Minify for Production
+
+```sh
+npm run build
+```
+
+### Run Unit Tests with [Vitest](https://vitest.dev/)
+
+```sh
+npm run test:unit
+```
+
+### Run End-to-End Tests with [Cypress](https://www.cypress.io/)
+
+```sh
+npm run test:e2e:dev
+```
+
+This runs the end-to-end tests against the Vite development server.
+It is much faster than the production build.
+
+But it's still recommended to test the production build with `test:e2e` before deploying (e.g. in CI environments):
+
+```sh
+npm run build
+npm run test:e2e
+```
+
+### Lint with [ESLint](https://eslint.org/)
+
+```sh
+npm run lint
+```
diff --git a/cypress.config.ts b/cypress.config.ts
new file mode 100644
index 0000000..0f66080
--- /dev/null
+++ b/cypress.config.ts
@@ -0,0 +1,8 @@
+import { defineConfig } from 'cypress'
+
+export default defineConfig({
+ e2e: {
+ specPattern: 'cypress/e2e/**/*.{cy,spec}.{js,jsx,ts,tsx}',
+ baseUrl: 'http://localhost:4173'
+ }
+})
diff --git a/env.d.ts b/env.d.ts
new file mode 100644
index 0000000..11f02fe
--- /dev/null
+++ b/env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..e3b40c4
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,9381 @@
+{
+ "name": "structorverborum",
+ "version": "0.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "structorverborum",
+ "version": "0.0.0",
+ "dependencies": {
+ "@neoncitylights/sets": "^1.1.0",
+ "@types/deep-equal": "^1.0.4",
+ "@types/file-fetch": "^1.6.6",
+ "@types/js-roman-numerals": "^1.1.3",
+ "comma-separated-values": "^3.6.4",
+ "list-files-in-dir": "^0.1.5",
+ "new-tab-opener": "^1.0.2",
+ "pinia": "^2.1.7",
+ "pleasejs": "^0.4.2",
+ "tslib": "^2.6.3",
+ "turbo-ts": "^7.3.1",
+ "vue": "^3.4.21",
+ "vuetify": "^3.6.9",
+ "winston": "^3.13.0",
+ "winston-daily-rotate-file": "^5.0.0"
+ },
+ "devDependencies": {
+ "@eslint-types/prettier": "^5.1.3",
+ "@rushstack/eslint-patch": "^1.8.0",
+ "@tsconfig/node20": "^20.1.4",
+ "@types/jsdom": "^21.1.6",
+ "@types/node": "^20.12.5",
+ "@types/pleasejs": "^0.0.33",
+ "@vitejs/plugin-vue": "^5.0.4",
+ "@vitejs/plugin-vue-jsx": "^3.1.0",
+ "@vue/eslint-config-prettier": "^9.0.0",
+ "@vue/eslint-config-typescript": "^13.0.0",
+ "@vue/test-utils": "^2.4.5",
+ "@vue/tsconfig": "^0.5.1",
+ "@vueuse/core": "^10.11.0",
+ "codeql-agent": "^0.3.4",
+ "cypress": "^13.7.2",
+ "eslint": "^8.57.0",
+ "eslint-plugin-cypress": "^2.15.1",
+ "eslint-plugin-vue": "^9.23.0",
+ "jsdom": "^24.0.0",
+ "npm-run-all2": "^6.1.2",
+ "prettier": "^3.3.2",
+ "start-server-and-test": "^2.0.3",
+ "tsconfig-paths": "^4.2.0",
+ "typescript": "~5.4.0",
+ "typescript-cookie": "^1.0.6",
+ "vite": "^5.2.8",
+ "vite-plugin-vue-devtools": "^7.0.25",
+ "vitest": "^1.4.0",
+ "vue-tsc": "^2.0.11"
+ }
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@antfu/utils": {
+ "version": "0.7.8",
+ "resolved": "https://registry.npmjs.org/@antfu/utils/-/utils-0.7.8.tgz",
+ "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
+ "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.24.7",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz",
+ "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz",
+ "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==",
+ "dev": true,
+ "dependencies": {
+ "@ampproject/remapping": "^2.2.0",
+ "@babel/code-frame": "^7.24.7",
+ "@babel/generator": "^7.24.7",
+ "@babel/helper-compilation-targets": "^7.24.7",
+ "@babel/helper-module-transforms": "^7.24.7",
+ "@babel/helpers": "^7.24.7",
+ "@babel/parser": "^7.24.7",
+ "@babel/template": "^7.24.7",
+ "@babel/traverse": "^7.24.7",
+ "@babel/types": "^7.24.7",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz",
+ "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.24.7",
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.25",
+ "jsesc": "^2.5.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-annotate-as-pure": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz",
+ "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz",
+ "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/compat-data": "^7.24.7",
+ "@babel/helper-validator-option": "^7.24.7",
+ "browserslist": "^4.22.2",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-create-class-features-plugin": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz",
+ "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.24.7",
+ "@babel/helper-environment-visitor": "^7.24.7",
+ "@babel/helper-function-name": "^7.24.7",
+ "@babel/helper-member-expression-to-functions": "^7.24.7",
+ "@babel/helper-optimise-call-expression": "^7.24.7",
+ "@babel/helper-replace-supers": "^7.24.7",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7",
+ "@babel/helper-split-export-declaration": "^7.24.7",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-environment-visitor": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz",
+ "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-function-name": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz",
+ "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.24.7",
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-hoist-variables": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz",
+ "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-member-expression-to-functions": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz",
+ "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/traverse": "^7.24.7",
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz",
+ "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/traverse": "^7.24.7",
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz",
+ "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.24.7",
+ "@babel/helper-module-imports": "^7.24.7",
+ "@babel/helper-simple-access": "^7.24.7",
+ "@babel/helper-split-export-declaration": "^7.24.7",
+ "@babel/helper-validator-identifier": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-optimise-call-expression": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz",
+ "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz",
+ "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-replace-supers": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz",
+ "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-environment-visitor": "^7.24.7",
+ "@babel/helper-member-expression-to-functions": "^7.24.7",
+ "@babel/helper-optimise-call-expression": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-simple-access": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz",
+ "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/traverse": "^7.24.7",
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz",
+ "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/traverse": "^7.24.7",
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-split-export-declaration": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz",
+ "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz",
+ "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+ "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz",
+ "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz",
+ "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/template": "^7.24.7",
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
+ "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.24.7",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz",
+ "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==",
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-proposal-decorators": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.24.7.tgz",
+ "integrity": "sha512-RL9GR0pUG5Kc8BUWLNDm2T5OpYwSX15r98I0IkgmRQTXuELq/OynH8xtMTMvTJFjXbMWFVTKtYkTaYQsuAwQlQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-create-class-features-plugin": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/plugin-syntax-decorators": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-decorators": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.24.7.tgz",
+ "integrity": "sha512-Ui4uLJJrRV1lb38zg1yYTmRKmiZLiftDEvZN2iq3kd9kUFU+PttmzTbAFC2ucRk/XJmtek6G23gPsuZbhrT8fQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz",
+ "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz",
+ "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz",
+ "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-typescript": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz",
+ "integrity": "sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.24.7",
+ "@babel/helper-create-class-features-plugin": "^7.24.7",
+ "@babel/helper-plugin-utils": "^7.24.7",
+ "@babel/plugin-syntax-typescript": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz",
+ "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.24.7",
+ "@babel/parser": "^7.24.7",
+ "@babel/types": "^7.24.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz",
+ "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.24.7",
+ "@babel/generator": "^7.24.7",
+ "@babel/helper-environment-visitor": "^7.24.7",
+ "@babel/helper-function-name": "^7.24.7",
+ "@babel/helper-hoist-variables": "^7.24.7",
+ "@babel/helper-split-export-declaration": "^7.24.7",
+ "@babel/parser": "^7.24.7",
+ "@babel/types": "^7.24.7",
+ "debug": "^4.3.1",
+ "globals": "^11.1.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz",
+ "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.24.7",
+ "@babel/helper-validator-identifier": "^7.24.7",
+ "to-fast-properties": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "dev": true,
+ "optional": true,
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "node_modules/@cypress/request": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.1.tgz",
+ "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==",
+ "dev": true,
+ "dependencies": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "http-signature": "~1.3.6",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "performance-now": "^2.1.0",
+ "qs": "6.10.4",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "^4.1.3",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^8.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@cypress/request/node_modules/form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+ "dev": true,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ }
+ },
+ "node_modules/@cypress/xvfb": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz",
+ "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^3.1.0",
+ "lodash.once": "^4.1.1"
+ }
+ },
+ "node_modules/@cypress/xvfb/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/@dabh/diagnostics": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
+ "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==",
+ "dependencies": {
+ "colorspace": "1.1.x",
+ "enabled": "2.0.x",
+ "kuler": "^2.0.0"
+ }
+ },
+ "node_modules/@discordjs/builders": {
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/@discordjs/builders/-/builders-0.16.0.tgz",
+ "integrity": "sha512-9/NCiZrLivgRub2/kBc0Vm5pMBE5AUdYbdXsLu/yg9ANgvnaJ0bZKTY8yYnLbsEc/LYUP79lEIdC73qEYhWq7A==",
+ "deprecated": "no longer supported",
+ "dev": true,
+ "dependencies": {
+ "@sapphire/shapeshift": "^3.5.1",
+ "discord-api-types": "^0.36.2",
+ "fast-deep-equal": "^3.1.3",
+ "ts-mixer": "^6.0.1",
+ "tslib": "^2.4.0"
+ },
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
+ "node_modules/@discordjs/collection": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.7.0.tgz",
+ "integrity": "sha512-R5i8Wb8kIcBAFEPLLf7LVBQKBDYUL+ekb23sOgpkpyGT+V4P7V83wTxcsqmX+PbqHt4cEHn053uMWfRqh/Z/nA==",
+ "deprecated": "no longer supported",
+ "dev": true,
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
+ "node_modules/@discordjs/rest": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@discordjs/rest/-/rest-0.5.0.tgz",
+ "integrity": "sha512-S4E1YNz1UxgUfMPpMeqzPPkCfXE877zOsvKM5WEmwIhcpz1PQV7lzqlEOuz194UuwOJLLjQFBgQELnQfCX9UfA==",
+ "deprecated": "no longer supported",
+ "dev": true,
+ "dependencies": {
+ "@discordjs/collection": "^0.7.0",
+ "@sapphire/async-queue": "^1.3.1",
+ "@sapphire/snowflake": "^3.2.2",
+ "discord-api-types": "^0.33.3",
+ "tslib": "^2.4.0",
+ "undici": "^5.4.0"
+ },
+ "engines": {
+ "node": ">=16.9.0"
+ }
+ },
+ "node_modules/@discordjs/rest/node_modules/discord-api-types": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.33.5.tgz",
+ "integrity": "sha512-dvO5M52v7m7Dy96+XUnzXNsQ/0npsYpU6dL205kAtEDueswoz3aU3bh1UMoK4cQmcGtB1YRyLKqp+DXi05lzFg==",
+ "dev": true
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz",
+ "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz",
+ "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz",
+ "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz",
+ "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz",
+ "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz",
+ "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz",
+ "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz",
+ "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz",
+ "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz",
+ "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz",
+ "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz",
+ "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz",
+ "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz",
+ "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz",
+ "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz",
+ "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz",
+ "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz",
+ "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz",
+ "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz",
+ "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz",
+ "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
+ "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.10.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.1.tgz",
+ "integrity": "sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint-types/prettier": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/@eslint-types/prettier/-/prettier-5.1.3.tgz",
+ "integrity": "sha512-jJHwCAdqj+iw2ahrFrA9FSDrYJSAEShWS6s/X/6fmD8xpdaKUpFqG/ecTnUlO6Iyxhkt3lj79Nfu4MWUpo7k6Q==",
+ "dev": true
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz",
+ "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz",
+ "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@fastify/busboy": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
+ "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@hapi/hoek": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz",
+ "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==",
+ "dev": true
+ },
+ "node_modules/@hapi/topo": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz",
+ "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==",
+ "dev": true,
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.14",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz",
+ "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==",
+ "deprecated": "Use @eslint/config-array instead",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/@humanwhocodes/config-array/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz",
+ "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==",
+ "deprecated": "Use @eslint/object-schema instead",
+ "dev": true
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "dev": true,
+ "dependencies": {
+ "@sinclair/typebox": "^0.27.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.15",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
+ "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg=="
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@neoncitylights/sets": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@neoncitylights/sets/-/sets-1.1.0.tgz",
+ "integrity": "sha512-Ou3bLvERC/sICRVrdFO63UrJPV081Nt5l36+gPLOgi1VHsuMG0IMZmGT9qFPsCV41V5qGuxIT+eNETM1Xynpbg==",
+ "funding": {
+ "type": "individual",
+ "url": "https://github.com/sponsors/neoncitylights"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@one-ini/wasm": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@one-ini/wasm/-/wasm-0.1.1.tgz",
+ "integrity": "sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==",
+ "dev": true
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@pkgr/core": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz",
+ "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
+ }
+ },
+ "node_modules/@polka/url": {
+ "version": "1.0.0-next.25",
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz",
+ "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==",
+ "dev": true
+ },
+ "node_modules/@rollup/pluginutils": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
+ "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz",
+ "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz",
+ "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz",
+ "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz",
+ "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz",
+ "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz",
+ "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz",
+ "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz",
+ "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz",
+ "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz",
+ "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz",
+ "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz",
+ "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz",
+ "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz",
+ "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz",
+ "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz",
+ "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rushstack/eslint-patch": {
+ "version": "1.10.3",
+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.3.tgz",
+ "integrity": "sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==",
+ "dev": true
+ },
+ "node_modules/@sapphire/async-queue": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.2.tgz",
+ "integrity": "sha512-7X7FFAA4DngXUl95+hYbUF19bp1LGiffjJtu7ygrZrbdCSsdDDBaSjB7Akw0ZbOu6k0xpXyljnJ6/RZUvLfRdg==",
+ "dev": true,
+ "engines": {
+ "node": ">=v14.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/@sapphire/shapeshift": {
+ "version": "3.9.7",
+ "resolved": "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.9.7.tgz",
+ "integrity": "sha512-4It2mxPSr4OGn4HSQWGmhFMsNFGfFVhWeRPCRwbH972Ek2pzfGRZtb0pJ4Ze6oIzcyh2jw7nUDa6qGlWofgd9g==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "lodash": "^4.17.21"
+ },
+ "engines": {
+ "node": ">=v16"
+ }
+ },
+ "node_modules/@sapphire/snowflake": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.3.tgz",
+ "integrity": "sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=v14.0.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/@sideway/address": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz",
+ "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==",
+ "dev": true,
+ "dependencies": {
+ "@hapi/hoek": "^9.0.0"
+ }
+ },
+ "node_modules/@sideway/formula": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz",
+ "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==",
+ "dev": true
+ },
+ "node_modules/@sideway/pinpoint": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz",
+ "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==",
+ "dev": true
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+ "dev": true
+ },
+ "node_modules/@tsconfig/node20": {
+ "version": "20.1.4",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.4.tgz",
+ "integrity": "sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==",
+ "dev": true
+ },
+ "node_modules/@types/deep-equal": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@types/deep-equal/-/deep-equal-1.0.4.tgz",
+ "integrity": "sha512-tqdiS4otQP4KmY0PR3u6KbZ5EWvhNdUoS/jc93UuK23C220lOZ/9TvjfxdPcKvqwwDVtmtSCrnr0p/2dirAxkA=="
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
+ "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
+ "dev": true
+ },
+ "node_modules/@types/file-fetch": {
+ "version": "1.6.6",
+ "resolved": "https://registry.npmjs.org/@types/file-fetch/-/file-fetch-1.6.6.tgz",
+ "integrity": "sha512-DvVqgVRx5+Fcy9VfOA0+bNuDSmcyN9ahN3Wms83szdqYQeDQIerTxdaoVo4Ghnnm1kdUsYRVy23LMfzhkOuIZA==",
+ "dependencies": {
+ "@types/node-fetch": "*"
+ }
+ },
+ "node_modules/@types/js-roman-numerals": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@types/js-roman-numerals/-/js-roman-numerals-1.1.3.tgz",
+ "integrity": "sha512-iF/pPujpCHRkREdqpJuuexzzVh1pRzc/yUg/3cQ5dMF+aSSJscpm3EzZUoY7f+LFB1ImCS0BiQAUoWUhaU4AzQ=="
+ },
+ "node_modules/@types/jsdom": {
+ "version": "21.1.7",
+ "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.7.tgz",
+ "integrity": "sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*",
+ "@types/tough-cookie": "*",
+ "parse5": "^7.0.0"
+ }
+ },
+ "node_modules/@types/node": {
+ "version": "20.14.2",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz",
+ "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@types/node-fetch": {
+ "version": "2.6.11",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz",
+ "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==",
+ "dependencies": {
+ "@types/node": "*",
+ "form-data": "^4.0.0"
+ }
+ },
+ "node_modules/@types/pleasejs": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/@types/pleasejs/-/pleasejs-0.0.33.tgz",
+ "integrity": "sha512-KWyfyYQlx65ixvFW8LdkQxxEY5zbpQeGwcEixWG4O1e/5CRJ5XsEkQYooK3perQPGiE2qR67ZIECduQ1EPzbbw==",
+ "dev": true
+ },
+ "node_modules/@types/sinonjs__fake-timers": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
+ "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==",
+ "dev": true
+ },
+ "node_modules/@types/sizzle": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz",
+ "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==",
+ "dev": true
+ },
+ "node_modules/@types/tough-cookie": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
+ "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
+ "dev": true
+ },
+ "node_modules/@types/triple-beam": {
+ "version": "1.3.5",
+ "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz",
+ "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw=="
+ },
+ "node_modules/@types/web-bluetooth": {
+ "version": "0.0.20",
+ "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
+ "integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==",
+ "dev": true
+ },
+ "node_modules/@types/ws": {
+ "version": "8.5.10",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz",
+ "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/yauzl": {
+ "version": "2.10.3",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz",
+ "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.13.0.tgz",
+ "integrity": "sha512-FX1X6AF0w8MdVFLSdqwqN/me2hyhuQg4ykN6ZpVhh1ij/80pTvDKclX1sZB9iqex8SjQfVhwMKs3JtnnMLzG9w==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "7.13.0",
+ "@typescript-eslint/type-utils": "7.13.0",
+ "@typescript-eslint/utils": "7.13.0",
+ "@typescript-eslint/visitor-keys": "7.13.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.3.1",
+ "natural-compare": "^1.4.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^7.0.0",
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.13.0.tgz",
+ "integrity": "sha512-EjMfl69KOS9awXXe83iRN7oIEXy9yYdqWfqdrFAYAAr6syP8eLEFI7ZE4939antx2mNgPRW/o1ybm2SFYkbTVA==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "7.13.0",
+ "@typescript-eslint/types": "7.13.0",
+ "@typescript-eslint/typescript-estree": "7.13.0",
+ "@typescript-eslint/visitor-keys": "7.13.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz",
+ "integrity": "sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.13.0",
+ "@typescript-eslint/visitor-keys": "7.13.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.13.0.tgz",
+ "integrity": "sha512-xMEtMzxq9eRkZy48XuxlBFzpVMDurUAfDu5Rz16GouAtXm0TaAoTFzqWUFPPuQYXI/CDaH/Bgx/fk/84t/Bc9A==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "7.13.0",
+ "@typescript-eslint/utils": "7.13.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.13.0.tgz",
+ "integrity": "sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.0.tgz",
+ "integrity": "sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.13.0",
+ "@typescript-eslint/visitor-keys": "7.13.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+ "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.13.0.tgz",
+ "integrity": "sha512-jceD8RgdKORVnB4Y6BqasfIkFhl4pajB1wVxrF4akxD2QPM8GNYjgGwEzYS+437ewlqqrg7Dw+6dhdpjMpeBFQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@typescript-eslint/scope-manager": "7.13.0",
+ "@typescript-eslint/types": "7.13.0",
+ "@typescript-eslint/typescript-estree": "7.13.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "7.13.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.0.tgz",
+ "integrity": "sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.13.0",
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
+ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
+ "dev": true
+ },
+ "node_modules/@vitejs/plugin-vue": {
+ "version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz",
+ "integrity": "sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==",
+ "dev": true,
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^5.0.0",
+ "vue": "^3.2.25"
+ }
+ },
+ "node_modules/@vitejs/plugin-vue-jsx": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue-jsx/-/plugin-vue-jsx-3.1.0.tgz",
+ "integrity": "sha512-w9M6F3LSEU5kszVb9An2/MmXNxocAnUb3WhRr8bHlimhDrXNt6n6D2nJQR3UXpGlZHh/EsgouOHCsM8V3Ln+WA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.23.3",
+ "@babel/plugin-transform-typescript": "^7.23.3",
+ "@vue/babel-plugin-jsx": "^1.1.5"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.0.0 || ^5.0.0",
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/@vitest/expect": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-1.6.0.tgz",
+ "integrity": "sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==",
+ "dev": true,
+ "dependencies": {
+ "@vitest/spy": "1.6.0",
+ "@vitest/utils": "1.6.0",
+ "chai": "^4.3.10"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/runner": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-1.6.0.tgz",
+ "integrity": "sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==",
+ "dev": true,
+ "dependencies": {
+ "@vitest/utils": "1.6.0",
+ "p-limit": "^5.0.0",
+ "pathe": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/runner/node_modules/p-limit": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-5.0.0.tgz",
+ "integrity": "sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@vitest/runner/node_modules/yocto-queue": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.0.0.tgz",
+ "integrity": "sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.20"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@vitest/snapshot": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz",
+ "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==",
+ "dev": true,
+ "dependencies": {
+ "magic-string": "^0.30.5",
+ "pathe": "^1.1.1",
+ "pretty-format": "^29.7.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/spy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-1.6.0.tgz",
+ "integrity": "sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==",
+ "dev": true,
+ "dependencies": {
+ "tinyspy": "^2.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/utils": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-1.6.0.tgz",
+ "integrity": "sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==",
+ "dev": true,
+ "dependencies": {
+ "diff-sequences": "^29.6.3",
+ "estree-walker": "^3.0.3",
+ "loupe": "^2.3.7",
+ "pretty-format": "^29.7.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/utils/node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/@volar/language-core": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.3.0.tgz",
+ "integrity": "sha512-pvhL24WUh3VDnv7Yw5N1sjhPtdx7q9g+Wl3tggmnkMcyK8GcCNElF2zHiKznryn0DiUGk+eez/p2qQhz+puuHw==",
+ "dev": true,
+ "dependencies": {
+ "@volar/source-map": "2.3.0"
+ }
+ },
+ "node_modules/@volar/source-map": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.3.0.tgz",
+ "integrity": "sha512-G/228aZjAOGhDjhlyZ++nDbKrS9uk+5DMaEstjvzglaAw7nqtDyhnQAsYzUg6BMP9BtwZ59RIw5HGePrutn00Q==",
+ "dev": true,
+ "dependencies": {
+ "muggle-string": "^0.4.0"
+ }
+ },
+ "node_modules/@volar/typescript": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.3.0.tgz",
+ "integrity": "sha512-PtUwMM87WsKVeLJN33GSTUjBexlKfKgouWlOUIv7pjrOnTwhXHZNSmpc312xgXdTjQPpToK6KXSIcKu9sBQ5LQ==",
+ "dev": true,
+ "dependencies": {
+ "@volar/language-core": "2.3.0",
+ "path-browserify": "^1.0.1",
+ "vscode-uri": "^3.0.8"
+ }
+ },
+ "node_modules/@vue/babel-helper-vue-transform-on": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.2.2.tgz",
+ "integrity": "sha512-nOttamHUR3YzdEqdM/XXDyCSdxMA9VizUKoroLX6yTyRtggzQMHXcmwh8a7ZErcJttIBIc9s68a1B8GZ+Dmvsw==",
+ "dev": true
+ },
+ "node_modules/@vue/babel-plugin-jsx": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.2.2.tgz",
+ "integrity": "sha512-nYTkZUVTu4nhP199UoORePsql0l+wj7v/oyQjtThUVhJl1U+6qHuoVhIvR3bf7eVKjbCK+Cs2AWd7mi9Mpz9rA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-module-imports": "~7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/plugin-syntax-jsx": "^7.23.3",
+ "@babel/template": "^7.23.9",
+ "@babel/traverse": "^7.23.9",
+ "@babel/types": "^7.23.9",
+ "@vue/babel-helper-vue-transform-on": "1.2.2",
+ "@vue/babel-plugin-resolve-type": "1.2.2",
+ "camelcase": "^6.3.0",
+ "html-tags": "^3.3.1",
+ "svg-tags": "^1.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vue/babel-plugin-jsx/node_modules/@babel/helper-module-imports": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@vue/babel-plugin-resolve-type": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@vue/babel-plugin-resolve-type/-/babel-plugin-resolve-type-1.2.2.tgz",
+ "integrity": "sha512-EntyroPwNg5IPVdUJupqs0CFzuf6lUrVvCspmv2J1FITLeGnUCuoGNNk78dgCusxEiYj6RMkTJflGSxk5aIC4A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.23.5",
+ "@babel/helper-module-imports": "~7.22.15",
+ "@babel/helper-plugin-utils": "^7.22.5",
+ "@babel/parser": "^7.23.9",
+ "@vue/compiler-sfc": "^3.4.15"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@vue/babel-plugin-resolve-type/node_modules/@babel/helper-module-imports": {
+ "version": "7.22.15",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz",
+ "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.22.15"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@vue/compiler-core": {
+ "version": "3.4.29",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz",
+ "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==",
+ "dependencies": {
+ "@babel/parser": "^7.24.7",
+ "@vue/shared": "3.4.29",
+ "entities": "^4.5.0",
+ "estree-walker": "^2.0.2",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/@vue/compiler-dom": {
+ "version": "3.4.29",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz",
+ "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==",
+ "dependencies": {
+ "@vue/compiler-core": "3.4.29",
+ "@vue/shared": "3.4.29"
+ }
+ },
+ "node_modules/@vue/compiler-sfc": {
+ "version": "3.4.29",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz",
+ "integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==",
+ "dependencies": {
+ "@babel/parser": "^7.24.7",
+ "@vue/compiler-core": "3.4.29",
+ "@vue/compiler-dom": "3.4.29",
+ "@vue/compiler-ssr": "3.4.29",
+ "@vue/shared": "3.4.29",
+ "estree-walker": "^2.0.2",
+ "magic-string": "^0.30.10",
+ "postcss": "^8.4.38",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/@vue/compiler-ssr": {
+ "version": "3.4.29",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz",
+ "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.4.29",
+ "@vue/shared": "3.4.29"
+ }
+ },
+ "node_modules/@vue/devtools-api": {
+ "version": "6.6.3",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz",
+ "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw=="
+ },
+ "node_modules/@vue/devtools-core": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-core/-/devtools-core-7.3.0.tgz",
+ "integrity": "sha512-J5nmaYadJvDgH9zsQI9vSLlWjfZn/TdKWEKMcc9xjbF3OvdhQwRrojvFax1G+WPoQ/X67EZKeUVY/ovCCyLo7A==",
+ "dev": true,
+ "dependencies": {
+ "@vue/devtools-kit": "^7.3.0",
+ "@vue/devtools-shared": "^7.3.0",
+ "mitt": "^3.0.1",
+ "nanoid": "^3.3.4",
+ "pathe": "^1.1.2",
+ "vite-hot-client": "^0.2.3"
+ }
+ },
+ "node_modules/@vue/devtools-kit": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.3.0.tgz",
+ "integrity": "sha512-J9C+ue3Ka8cumQY/hMsNTcbb1tczqVBBXFMw4isa5YvPjyIBgEtJBfDSUVIK3nE+YWk7UNliUuCcE1GHEKaGcw==",
+ "dev": true,
+ "dependencies": {
+ "@vue/devtools-shared": "^7.3.0",
+ "birpc": "^0.2.17",
+ "hookable": "^5.5.3",
+ "mitt": "^3.0.1",
+ "perfect-debounce": "^1.0.0",
+ "speakingurl": "^14.0.1",
+ "superjson": "^2.2.1"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/@vue/devtools-shared": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.3.0.tgz",
+ "integrity": "sha512-bYw4BtZclxzVrYBeYYHzNOcLlvVZbe9tutwtrixTtdgynHvuSJa5KI2MqWiumpGYm2feFI5sHlC8Vt61v4z18g==",
+ "dev": true,
+ "dependencies": {
+ "rfdc": "^1.3.1"
+ }
+ },
+ "node_modules/@vue/eslint-config-prettier": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz",
+ "integrity": "sha512-z1ZIAAUS9pKzo/ANEfd2sO+v2IUalz7cM/cTLOZ7vRFOPk5/xuRKQteOu1DErFLAh/lYGXMVZ0IfYKlyInuDVg==",
+ "dev": true,
+ "dependencies": {
+ "eslint-config-prettier": "^9.0.0",
+ "eslint-plugin-prettier": "^5.0.0"
+ },
+ "peerDependencies": {
+ "eslint": ">= 8.0.0",
+ "prettier": ">= 3.0.0"
+ }
+ },
+ "node_modules/@vue/eslint-config-typescript": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-13.0.0.tgz",
+ "integrity": "sha512-MHh9SncG/sfqjVqjcuFLOLD6Ed4dRAis4HNt0dXASeAuLqIAx4YMB1/m2o4pUKK1vCt8fUvYG8KKX2Ot3BVZTg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/eslint-plugin": "^7.1.1",
+ "@typescript-eslint/parser": "^7.1.1",
+ "vue-eslint-parser": "^9.3.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0",
+ "eslint-plugin-vue": "^9.0.0",
+ "typescript": ">=4.7.4"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vue/language-core": {
+ "version": "2.0.21",
+ "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.21.tgz",
+ "integrity": "sha512-vjs6KwnCK++kIXT+eI63BGpJHfHNVJcUCr3RnvJsccT3vbJnZV5IhHR2puEkoOkIbDdp0Gqi1wEnv3hEd3WsxQ==",
+ "dev": true,
+ "dependencies": {
+ "@volar/language-core": "~2.3.0-alpha.15",
+ "@vue/compiler-dom": "^3.4.0",
+ "@vue/shared": "^3.4.0",
+ "computeds": "^0.0.1",
+ "minimatch": "^9.0.3",
+ "path-browserify": "^1.0.1",
+ "vue-template-compiler": "^2.7.14"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vue/reactivity": {
+ "version": "3.4.29",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz",
+ "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==",
+ "dependencies": {
+ "@vue/shared": "3.4.29"
+ }
+ },
+ "node_modules/@vue/runtime-core": {
+ "version": "3.4.29",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz",
+ "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==",
+ "dependencies": {
+ "@vue/reactivity": "3.4.29",
+ "@vue/shared": "3.4.29"
+ }
+ },
+ "node_modules/@vue/runtime-dom": {
+ "version": "3.4.29",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz",
+ "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==",
+ "dependencies": {
+ "@vue/reactivity": "3.4.29",
+ "@vue/runtime-core": "3.4.29",
+ "@vue/shared": "3.4.29",
+ "csstype": "^3.1.3"
+ }
+ },
+ "node_modules/@vue/server-renderer": {
+ "version": "3.4.29",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz",
+ "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==",
+ "dependencies": {
+ "@vue/compiler-ssr": "3.4.29",
+ "@vue/shared": "3.4.29"
+ },
+ "peerDependencies": {
+ "vue": "3.4.29"
+ }
+ },
+ "node_modules/@vue/shared": {
+ "version": "3.4.29",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz",
+ "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA=="
+ },
+ "node_modules/@vue/test-utils": {
+ "version": "2.4.6",
+ "resolved": "https://registry.npmjs.org/@vue/test-utils/-/test-utils-2.4.6.tgz",
+ "integrity": "sha512-FMxEjOpYNYiFe0GkaHsnJPXFHxQ6m4t8vI/ElPGpMWxZKpmRvQ33OIrvRXemy6yha03RxhOlQuy+gZMC3CQSow==",
+ "dev": true,
+ "dependencies": {
+ "js-beautify": "^1.14.9",
+ "vue-component-type-helpers": "^2.0.0"
+ }
+ },
+ "node_modules/@vue/tsconfig": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.5.1.tgz",
+ "integrity": "sha512-VcZK7MvpjuTPx2w6blwnwZAu5/LgBUtejFOi3pPGQFXQN5Ela03FUtd2Qtg4yWGGissVL0dr6Ro1LfOFh+PCuQ==",
+ "dev": true
+ },
+ "node_modules/@vueuse/core": {
+ "version": "10.11.0",
+ "resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.11.0.tgz",
+ "integrity": "sha512-x3sD4Mkm7PJ+pcq3HX8PLPBadXCAlSDR/waK87dz0gQE+qJnaaFhc/dZVfJz+IUYzTMVGum2QlR7ImiJQN4s6g==",
+ "dev": true,
+ "dependencies": {
+ "@types/web-bluetooth": "^0.0.20",
+ "@vueuse/metadata": "10.11.0",
+ "@vueuse/shared": "10.11.0",
+ "vue-demi": ">=0.14.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@vueuse/core/node_modules/vue-demi": {
+ "version": "0.14.8",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
+ "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vueuse/metadata": {
+ "version": "10.11.0",
+ "resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.11.0.tgz",
+ "integrity": "sha512-kQX7l6l8dVWNqlqyN3ePW3KmjCQO3ZMgXuBMddIu83CmucrsBfXlH+JoviYyRBws/yLTQO8g3Pbw+bdIoVm4oQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@vueuse/shared": {
+ "version": "10.11.0",
+ "resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.11.0.tgz",
+ "integrity": "sha512-fyNoIXEq3PfX1L3NkNhtVQUSRtqYwJtJg+Bp9rIzculIZWHTkKSysujrOk2J+NrRulLTQH9+3gGSfYLWSEWU1A==",
+ "dev": true,
+ "dependencies": {
+ "vue-demi": ">=0.14.8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/@vueuse/shared/node_modules/vue-demi": {
+ "version": "0.14.8",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
+ "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/abbrev": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
+ "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==",
+ "dev": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz",
+ "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.3.3",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz",
+ "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.11.0"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/agent-base": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
+ "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "dev": true,
+ "dependencies": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/arch": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
+ "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==",
+ "dev": true
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/asn1": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+ "dev": true,
+ "dependencies": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "node_modules/assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz",
+ "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg=="
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "node_modules/at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/aws4": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz",
+ "integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==",
+ "dev": true
+ },
+ "node_modules/axios": {
+ "version": "1.7.2",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz",
+ "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
+ "dev": true,
+ "dependencies": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
+ "node_modules/axios/node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
+ "dev": true
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
+ "dev": true,
+ "dependencies": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/birpc": {
+ "version": "0.2.17",
+ "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.17.tgz",
+ "integrity": "sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/blob-util": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz",
+ "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==",
+ "dev": true
+ },
+ "node_modules/bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
+ "dev": true
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
+ "dev": true
+ },
+ "node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.23.1",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz",
+ "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001629",
+ "electron-to-chromium": "^1.4.796",
+ "node-releases": "^2.0.14",
+ "update-browserslist-db": "^1.0.16"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/bundle-name": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz",
+ "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==",
+ "dev": true,
+ "dependencies": {
+ "run-applescript": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cac": {
+ "version": "6.7.14",
+ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
+ "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cachedir": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz",
+ "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "dev": true,
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001636",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz",
+ "integrity": "sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ]
+ },
+ "node_modules/caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
+ "dev": true
+ },
+ "node_modules/chai": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz",
+ "integrity": "sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==",
+ "dev": true,
+ "dependencies": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.3",
+ "deep-eql": "^4.1.3",
+ "get-func-name": "^2.0.2",
+ "loupe": "^2.3.6",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/check-error": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz",
+ "integrity": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
+ "dev": true,
+ "dependencies": {
+ "get-func-name": "^2.0.2"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/check-more-types": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
+ "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/clear": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/clear/-/clear-0.1.0.tgz",
+ "integrity": "sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-table3": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz",
+ "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": "10.* || >= 12.*"
+ },
+ "optionalDependencies": {
+ "@colors/colors": "1.5.0"
+ }
+ },
+ "node_modules/cli-truncate": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+ "dev": true,
+ "dependencies": {
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/codeql-agent": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/codeql-agent/-/codeql-agent-0.3.4.tgz",
+ "integrity": "sha512-xmuXn6JjCb1g3OtvzOGLE+4VZDkDAcF5Lk6oPyGy/Q0XCqzmlTeBhboRMOmFZEAjXeFt0q56Z7gNN4ygjxtz7g==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.2",
+ "clear": "^0.1.0",
+ "commander": "^10.0.0",
+ "figlet": "^1.5.2",
+ "linguist-js": "^2.5.4",
+ "p-limit": "^3.1.0",
+ "path": "^0.12.7",
+ "which": "^3.0.0",
+ "winston": "^3.8.2",
+ "winston-daily-rotate-file": "^4.7.1",
+ "winston-transport-discord": "^1.0.3"
+ },
+ "bin": {
+ "codeql-agent": "cli.js"
+ }
+ },
+ "node_modules/codeql-agent/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/codeql-agent/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/codeql-agent/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/codeql-agent/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/codeql-agent/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/codeql-agent/node_modules/object-hash": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
+ "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/codeql-agent/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/codeql-agent/node_modules/winston-daily-rotate-file": {
+ "version": "4.7.1",
+ "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-4.7.1.tgz",
+ "integrity": "sha512-7LGPiYGBPNyGHLn9z33i96zx/bd71pjBn9tqQzO3I4Tayv94WPmBNwKC7CO1wPHdP9uvu+Md/1nr6VSH9h0iaA==",
+ "dev": true,
+ "dependencies": {
+ "file-stream-rotator": "^0.6.1",
+ "object-hash": "^2.0.1",
+ "triple-beam": "^1.3.0",
+ "winston-transport": "^4.4.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "peerDependencies": {
+ "winston": "^3"
+ }
+ },
+ "node_modules/color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "dependencies": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/colorette": {
+ "version": "2.0.20",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
+ "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==",
+ "dev": true
+ },
+ "node_modules/colorspace": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
+ "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
+ "dependencies": {
+ "color": "^3.1.3",
+ "text-hex": "1.0.x"
+ }
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/comma-separated-values": {
+ "version": "3.6.4",
+ "resolved": "https://registry.npmjs.org/comma-separated-values/-/comma-separated-values-3.6.4.tgz",
+ "integrity": "sha512-B0mjBHUfu4JqzYM5NurRTBl2QuNqQ9/O62EUfL4+bo2KN81fGsFOFOHbHn5SP65n3lmFPzGLkdg8wfuLKk9HOQ=="
+ },
+ "node_modules/commander": {
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
+ "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/common-path-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz",
+ "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==",
+ "dev": true
+ },
+ "node_modules/common-tags": {
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz",
+ "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/computeds": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz",
+ "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==",
+ "dev": true
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "node_modules/confbox": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz",
+ "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==",
+ "dev": true
+ },
+ "node_modules/config-chain": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
+ "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
+ "dev": true,
+ "dependencies": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
+ },
+ "node_modules/config-chain/node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "dev": true
+ },
+ "node_modules/copy-anything": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz",
+ "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==",
+ "dev": true,
+ "dependencies": {
+ "is-what": "^4.1.8"
+ },
+ "engines": {
+ "node": ">=12.13"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mesqueeb"
+ }
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
+ "dev": true
+ },
+ "node_modules/cross-fetch": {
+ "version": "3.1.8",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz",
+ "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
+ "dev": true,
+ "dependencies": {
+ "node-fetch": "^2.6.12"
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/cross-spawn/node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cssstyle": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz",
+ "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==",
+ "dev": true,
+ "dependencies": {
+ "rrweb-cssom": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/cssstyle/node_modules/rrweb-cssom": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz",
+ "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==",
+ "dev": true
+ },
+ "node_modules/csstype": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ },
+ "node_modules/cypress": {
+ "version": "13.11.0",
+ "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.11.0.tgz",
+ "integrity": "sha512-NXXogbAxVlVje4XHX+Cx5eMFZv4Dho/2rIcdBHg9CNPFUGZdM4cRdgIgM7USmNYsC12XY0bZENEQ+KBk72fl+A==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "@cypress/request": "^3.0.0",
+ "@cypress/xvfb": "^1.2.4",
+ "@types/sinonjs__fake-timers": "8.1.1",
+ "@types/sizzle": "^2.3.2",
+ "arch": "^2.2.0",
+ "blob-util": "^2.0.2",
+ "bluebird": "^3.7.2",
+ "buffer": "^5.7.1",
+ "cachedir": "^2.3.0",
+ "chalk": "^4.1.0",
+ "check-more-types": "^2.24.0",
+ "cli-cursor": "^3.1.0",
+ "cli-table3": "~0.6.1",
+ "commander": "^6.2.1",
+ "common-tags": "^1.8.0",
+ "dayjs": "^1.10.4",
+ "debug": "^4.3.4",
+ "enquirer": "^2.3.6",
+ "eventemitter2": "6.4.7",
+ "execa": "4.1.0",
+ "executable": "^4.1.1",
+ "extract-zip": "2.0.1",
+ "figures": "^3.2.0",
+ "fs-extra": "^9.1.0",
+ "getos": "^3.2.1",
+ "is-ci": "^3.0.1",
+ "is-installed-globally": "~0.4.0",
+ "lazy-ass": "^1.6.0",
+ "listr2": "^3.8.3",
+ "lodash": "^4.17.21",
+ "log-symbols": "^4.0.0",
+ "minimist": "^1.2.8",
+ "ospath": "^1.2.2",
+ "pretty-bytes": "^5.6.0",
+ "process": "^0.11.10",
+ "proxy-from-env": "1.0.0",
+ "request-progress": "^3.0.0",
+ "semver": "^7.5.3",
+ "supports-color": "^8.1.1",
+ "tmp": "~0.2.1",
+ "untildify": "^4.0.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "cypress": "bin/cypress"
+ },
+ "engines": {
+ "node": "^16.0.0 || ^18.0.0 || >=20.0.0"
+ }
+ },
+ "node_modules/cypress/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/cypress/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/cypress/node_modules/chalk/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cypress/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/cypress/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/cypress/node_modules/commander": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/cypress/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cypress/node_modules/semver": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+ "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/cypress/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/data-urls": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz",
+ "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.11",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz",
+ "integrity": "sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==",
+ "dev": true
+ },
+ "node_modules/de-indent": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz",
+ "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==",
+ "dev": true
+ },
+ "node_modules/debug": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
+ "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decimal.js": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz",
+ "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==",
+ "dev": true
+ },
+ "node_modules/deep-eql": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.4.tgz",
+ "integrity": "sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
+ },
+ "node_modules/default-browser": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz",
+ "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==",
+ "dev": true,
+ "dependencies": {
+ "bundle-name": "^4.1.0",
+ "default-browser-id": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-browser-id": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz",
+ "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dev": true,
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/define-lazy-prop": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz",
+ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/detect-browser": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.3.0.tgz",
+ "integrity": "sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w=="
+ },
+ "node_modules/diff-sequences": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
+ "dev": true,
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/discord-api-types": {
+ "version": "0.36.3",
+ "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.36.3.tgz",
+ "integrity": "sha512-bz/NDyG0KBo/tY14vSkrwQ/n3HKPf87a0WFW/1M9+tXYK+vp5Z5EksawfCWo2zkAc6o7CClc0eff1Pjrqznlwg==",
+ "dev": true
+ },
+ "node_modules/discord.js": {
+ "version": "13.17.1",
+ "resolved": "https://registry.npmjs.org/discord.js/-/discord.js-13.17.1.tgz",
+ "integrity": "sha512-h13kUf+7ZaP5ZWggzooCxFutvJJvugcAO54oTEIdVr3zQWi0Sf/61S1kETtuY9nVAyYebXR/Ey4C+oWbsgEkew==",
+ "dev": true,
+ "dependencies": {
+ "@discordjs/builders": "^0.16.0",
+ "@discordjs/collection": "^0.7.0",
+ "@sapphire/async-queue": "^1.5.0",
+ "@types/node-fetch": "^2.6.3",
+ "@types/ws": "^8.5.4",
+ "discord-api-types": "^0.33.5",
+ "form-data": "^4.0.0",
+ "node-fetch": "^2.6.7",
+ "ws": "^8.13.0"
+ },
+ "engines": {
+ "node": ">=16.6.0",
+ "npm": ">=7.0.0"
+ }
+ },
+ "node_modules/discord.js/node_modules/discord-api-types": {
+ "version": "0.33.5",
+ "resolved": "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.33.5.tgz",
+ "integrity": "sha512-dvO5M52v7m7Dy96+XUnzXNsQ/0npsYpU6dL205kAtEDueswoz3aU3bh1UMoK4cQmcGtB1YRyLKqp+DXi05lzFg==",
+ "dev": true
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/duplexer": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
+ "dev": true
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true
+ },
+ "node_modules/ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
+ "dev": true,
+ "dependencies": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "node_modules/editorconfig": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz",
+ "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==",
+ "dev": true,
+ "dependencies": {
+ "@one-ini/wasm": "0.1.1",
+ "commander": "^10.0.0",
+ "minimatch": "9.0.1",
+ "semver": "^7.5.3"
+ },
+ "bin": {
+ "editorconfig": "bin/editorconfig"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/editorconfig/node_modules/minimatch": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz",
+ "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/editorconfig/node_modules/semver": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+ "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.803",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz",
+ "integrity": "sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g==",
+ "dev": true
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/enabled": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
+ "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enquirer": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-colors": "^4.1.1",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/error-stack-parser-es": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/error-stack-parser-es/-/error-stack-parser-es-0.1.4.tgz",
+ "integrity": "sha512-l0uy0kAoo6toCgVOYaAayqtPa2a1L15efxUMEnQebKwLQX2X0OpS6wMMQdc4juJXmxd9i40DuaUHq+mjIya9TQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/esbuild": {
+ "version": "0.21.5",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz",
+ "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.21.5",
+ "@esbuild/android-arm": "0.21.5",
+ "@esbuild/android-arm64": "0.21.5",
+ "@esbuild/android-x64": "0.21.5",
+ "@esbuild/darwin-arm64": "0.21.5",
+ "@esbuild/darwin-x64": "0.21.5",
+ "@esbuild/freebsd-arm64": "0.21.5",
+ "@esbuild/freebsd-x64": "0.21.5",
+ "@esbuild/linux-arm": "0.21.5",
+ "@esbuild/linux-arm64": "0.21.5",
+ "@esbuild/linux-ia32": "0.21.5",
+ "@esbuild/linux-loong64": "0.21.5",
+ "@esbuild/linux-mips64el": "0.21.5",
+ "@esbuild/linux-ppc64": "0.21.5",
+ "@esbuild/linux-riscv64": "0.21.5",
+ "@esbuild/linux-s390x": "0.21.5",
+ "@esbuild/linux-x64": "0.21.5",
+ "@esbuild/netbsd-x64": "0.21.5",
+ "@esbuild/openbsd-x64": "0.21.5",
+ "@esbuild/sunos-x64": "0.21.5",
+ "@esbuild/win32-arm64": "0.21.5",
+ "@esbuild/win32-ia32": "0.21.5",
+ "@esbuild/win32-x64": "0.21.5"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.57.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz",
+ "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-prettier": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz",
+ "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==",
+ "dev": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-cypress": {
+ "version": "2.15.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.2.tgz",
+ "integrity": "sha512-CtcFEQTDKyftpI22FVGpx8bkpKyYXBlNge6zSo0pl5/qJvBAnzaD76Vu2AsP16d6mTj478Ldn2mhgrWV+Xr0vQ==",
+ "dev": true,
+ "dependencies": {
+ "globals": "^13.20.0"
+ },
+ "peerDependencies": {
+ "eslint": ">= 3.2.1"
+ }
+ },
+ "node_modules/eslint-plugin-cypress/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-plugin-cypress/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-plugin-prettier": {
+ "version": "5.1.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz",
+ "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==",
+ "dev": true,
+ "dependencies": {
+ "prettier-linter-helpers": "^1.0.0",
+ "synckit": "^0.8.6"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint-plugin-prettier"
+ },
+ "peerDependencies": {
+ "@types/eslint": ">=8.0.0",
+ "eslint": ">=8.0.0",
+ "eslint-config-prettier": "*",
+ "prettier": ">=3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/eslint": {
+ "optional": true
+ },
+ "eslint-config-prettier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-plugin-vue": {
+ "version": "9.26.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.26.0.tgz",
+ "integrity": "sha512-eTvlxXgd4ijE1cdur850G6KalZqk65k1JKoOI2d1kT3hr8sPD07j1q98FRFdNnpxBELGPWxZmInxeHGF/GxtqQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "globals": "^13.24.0",
+ "natural-compare": "^1.4.0",
+ "nth-check": "^2.1.1",
+ "postcss-selector-parser": "^6.0.15",
+ "semver": "^7.6.0",
+ "vue-eslint-parser": "^9.4.2",
+ "xml-name-validator": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-vue/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-plugin-vue/node_modules/semver": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+ "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/eslint-plugin-vue/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz",
+ "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/eslint/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/eslint/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/eslint/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/eslint/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/globals": {
+ "version": "13.24.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
+ "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/eslint/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/eslint/node_modules/type-fest": {
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/espree": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/event-stream": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
+ "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==",
+ "dev": true,
+ "dependencies": {
+ "duplexer": "~0.1.1",
+ "from": "~0",
+ "map-stream": "~0.1.0",
+ "pause-stream": "0.0.11",
+ "split": "0.3",
+ "stream-combiner": "~0.0.4",
+ "through": "~2.3.1"
+ }
+ },
+ "node_modules/eventemitter2": {
+ "version": "6.4.7",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz",
+ "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==",
+ "dev": true
+ },
+ "node_modules/execa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/executable": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
+ "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "node_modules/extract-zip": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ },
+ "engines": {
+ "node": ">= 10.17.0"
+ },
+ "optionalDependencies": {
+ "@types/yauzl": "^2.9.1"
+ }
+ },
+ "node_modules/extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ]
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "node_modules/fast-diff": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz",
+ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
+ "dev": true
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+ "dev": true,
+ "dependencies": {
+ "pend": "~1.2.0"
+ }
+ },
+ "node_modules/fecha": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
+ "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="
+ },
+ "node_modules/figlet": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.7.0.tgz",
+ "integrity": "sha512-gO8l3wvqo0V7wEFLXPbkX83b7MVjRrk1oRLfYlZXol8nEpb/ON9pcKLI4qpBv5YtOTfrINtqb7b40iYY2FTWFg==",
+ "dev": true,
+ "bin": {
+ "figlet": "bin/index.js"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/file-stream-rotator": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.6.1.tgz",
+ "integrity": "sha512-u+dBid4PvZw17PmDeRcNOtCP9CCK/9lRN2w+r1xIS7yOL9JFrIBKTvrYsxT4P0pGtThYTn++QS5ChHaUov3+zQ==",
+ "dependencies": {
+ "moment": "^2.29.1"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
+ "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
+ "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==",
+ "dev": true
+ },
+ "node_modules/fn.name": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
+ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.15.6",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+ "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/foreground-child": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz",
+ "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/foreground-child/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/from": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
+ "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==",
+ "dev": true
+ },
+ "node_modules/fs-extra": {
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "dev": true,
+ "dependencies": {
+ "at-least-node": "^1.0.0",
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "dev": true
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-func-name": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz",
+ "integrity": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "dev": true,
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/getos": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz",
+ "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==",
+ "dev": true,
+ "dependencies": {
+ "async": "^3.2.0"
+ }
+ },
+ "node_modules/getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "node_modules/glob": {
+ "version": "10.4.1",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz",
+ "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/global-dirs": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
+ "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
+ "dev": true,
+ "dependencies": {
+ "ini": "2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globals": {
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dev": true,
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true
+ },
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "dev": true
+ },
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dev": true,
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/he": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+ "dev": true,
+ "bin": {
+ "he": "bin/he"
+ }
+ },
+ "node_modules/hookable": {
+ "version": "5.5.3",
+ "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz",
+ "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==",
+ "dev": true
+ },
+ "node_modules/html-encoding-sniffer": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz",
+ "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-encoding": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/html-tags": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.3.1.tgz",
+ "integrity": "sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/http-proxy-agent": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz",
+ "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "^7.1.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/http-signature": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz",
+ "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^2.0.2",
+ "sshpk": "^1.14.1"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/https-proxy-agent": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz",
+ "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "^7.0.2",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.12.0"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "dev": true,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/ignore": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz",
+ "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw=="
+ },
+ "node_modules/ini": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
+ },
+ "node_modules/is-ci": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz",
+ "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==",
+ "dev": true,
+ "dependencies": {
+ "ci-info": "^3.2.0"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ }
+ },
+ "node_modules/is-docker": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz",
+ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==",
+ "dev": true,
+ "bin": {
+ "is-docker": "cli.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-inside-container": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
+ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==",
+ "dev": true,
+ "dependencies": {
+ "is-docker": "^3.0.0"
+ },
+ "bin": {
+ "is-inside-container": "cli.js"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-installed-globally": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+ "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
+ "dev": true,
+ "dependencies": {
+ "global-dirs": "^3.0.0",
+ "is-path-inside": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
+ "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-potential-custom-element-name": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz",
+ "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
+ "dev": true
+ },
+ "node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
+ "dev": true
+ },
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/is-what": {
+ "version": "4.1.16",
+ "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz",
+ "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.13"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mesqueeb"
+ }
+ },
+ "node_modules/is-wsl": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz",
+ "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==",
+ "dev": true,
+ "dependencies": {
+ "is-inside-container": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/isbinaryfile": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz",
+ "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/gjtorikian/"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "node_modules/isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
+ "dev": true
+ },
+ "node_modules/jackspeak": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz",
+ "integrity": "sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==",
+ "dev": true,
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/joi": {
+ "version": "17.13.1",
+ "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.1.tgz",
+ "integrity": "sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg==",
+ "dev": true,
+ "dependencies": {
+ "@hapi/hoek": "^9.3.0",
+ "@hapi/topo": "^5.1.0",
+ "@sideway/address": "^4.1.5",
+ "@sideway/formula": "^3.0.1",
+ "@sideway/pinpoint": "^2.0.0"
+ }
+ },
+ "node_modules/js-beautify": {
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.15.1.tgz",
+ "integrity": "sha512-ESjNzSlt/sWE8sciZH8kBF8BPlwXPwhR6pWKAw8bw4Bwj+iZcnKW6ONWUutJ7eObuBZQpiIb8S7OYspWrKt7rA==",
+ "dev": true,
+ "dependencies": {
+ "config-chain": "^1.1.13",
+ "editorconfig": "^1.0.4",
+ "glob": "^10.3.3",
+ "js-cookie": "^3.0.5",
+ "nopt": "^7.2.0"
+ },
+ "bin": {
+ "css-beautify": "js/bin/css-beautify.js",
+ "html-beautify": "js/bin/html-beautify.js",
+ "js-beautify": "js/bin/js-beautify.js"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/js-cookie": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz",
+ "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
+ "dev": true
+ },
+ "node_modules/jsdom": {
+ "version": "24.1.0",
+ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.0.tgz",
+ "integrity": "sha512-6gpM7pRXCwIOKxX47cgOyvyQDN/Eh0f1MeKySBV2xGdKtqJBLj8P25eY3EVCWo2mglDDzozR2r2MW4T+JiNUZA==",
+ "dev": true,
+ "dependencies": {
+ "cssstyle": "^4.0.1",
+ "data-urls": "^5.0.0",
+ "decimal.js": "^10.4.3",
+ "form-data": "^4.0.0",
+ "html-encoding-sniffer": "^4.0.0",
+ "http-proxy-agent": "^7.0.2",
+ "https-proxy-agent": "^7.0.4",
+ "is-potential-custom-element-name": "^1.0.1",
+ "nwsapi": "^2.2.10",
+ "parse5": "^7.1.2",
+ "rrweb-cssom": "^0.7.0",
+ "saxes": "^6.0.0",
+ "symbol-tree": "^3.2.4",
+ "tough-cookie": "^4.1.4",
+ "w3c-xmlserializer": "^5.0.0",
+ "webidl-conversions": "^7.0.0",
+ "whatwg-encoding": "^3.1.1",
+ "whatwg-mimetype": "^4.0.0",
+ "whatwg-url": "^14.0.0",
+ "ws": "^8.17.0",
+ "xml-name-validator": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "peerDependencies": {
+ "canvas": "^2.11.2"
+ },
+ "peerDependenciesMeta": {
+ "canvas": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jsdom/node_modules/xml-name-validator": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz",
+ "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==",
+ "dev": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/json-schema": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+ "dev": true
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
+ },
+ "node_modules/json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
+ "dev": true
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "dev": true,
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "dev": true,
+ "dependencies": {
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "node_modules/jsprim": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz",
+ "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "dependencies": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.4.0",
+ "verror": "1.10.0"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/kolorist": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz",
+ "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
+ "dev": true
+ },
+ "node_modules/kuler": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
+ "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
+ },
+ "node_modules/lazy-ass": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
+ "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==",
+ "dev": true,
+ "engines": {
+ "node": "> 0.8"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/linguist-js": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/linguist-js/-/linguist-js-2.7.1.tgz",
+ "integrity": "sha512-MlkT7rcRxpDYV+JAG0jFPOrSKaygAzQ8kNT1mI9kYECSs2jU3CKmpqdQdEv/sumL8CxtA4DYYe/yLS852i1Elg==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.2.0 <3",
+ "commander": "^9.5.0 <10",
+ "common-path-prefix": "^3.0.0",
+ "cross-fetch": "^3.1.8 <4",
+ "ignore": "^5.3.1",
+ "isbinaryfile": "^4.0.10 <5",
+ "js-yaml": "^4.1.0",
+ "node-cache": "^5.1.2"
+ },
+ "bin": {
+ "linguist": "bin/index.js",
+ "linguist-js": "bin/index.js"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/linguist-js/node_modules/commander": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
+ "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || >=14"
+ }
+ },
+ "node_modules/list-files-in-dir": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/list-files-in-dir/-/list-files-in-dir-0.1.5.tgz",
+ "integrity": "sha512-DRSxn9ckPWIDnEvw5TJZGnqq2WjP+FTwdcFolRV6dTr0d2k6C0r++QnUJg+FBtLoQhzlCs+IqfXYf+HlbFtIBA==",
+ "dependencies": {
+ "@types/node": "^10.0.0"
+ }
+ },
+ "node_modules/list-files-in-dir/node_modules/@types/node": {
+ "version": "10.17.60",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz",
+ "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw=="
+ },
+ "node_modules/listr2": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
+ "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
+ "dev": true,
+ "dependencies": {
+ "cli-truncate": "^2.1.0",
+ "colorette": "^2.0.16",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rfdc": "^1.3.0",
+ "rxjs": "^7.5.1",
+ "through": "^2.3.8",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "enquirer": ">= 2.3.0 < 3"
+ },
+ "peerDependenciesMeta": {
+ "enquirer": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/listr2/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/listr2/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/listr2/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/listr2/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/local-pkg": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz",
+ "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+ "dev": true,
+ "dependencies": {
+ "mlly": "^1.4.2",
+ "pkg-types": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
+ },
+ "node_modules/lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
+ "dev": true
+ },
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-symbols/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/log-symbols/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/log-symbols/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/log-symbols/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/log-symbols/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/log-symbols/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/log-update": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/log-update/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/log-update/node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/logform": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz",
+ "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==",
+ "dependencies": {
+ "@colors/colors": "1.6.0",
+ "@types/triple-beam": "^1.3.2",
+ "fecha": "^4.2.0",
+ "ms": "^2.1.1",
+ "safe-stable-stringify": "^2.3.1",
+ "triple-beam": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ }
+ },
+ "node_modules/logform/node_modules/@colors/colors": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz",
+ "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==",
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "node_modules/loupe": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz",
+ "integrity": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
+ "dev": true,
+ "dependencies": {
+ "get-func-name": "^2.0.1"
+ }
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.10",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz",
+ "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.15"
+ }
+ },
+ "node_modules/map-stream": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz",
+ "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==",
+ "dev": true
+ },
+ "node_modules/memorystream": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz",
+ "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
+ "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
+ "dev": true,
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true,
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/mitt": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz",
+ "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==",
+ "dev": true
+ },
+ "node_modules/mlly": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz",
+ "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.11.3",
+ "pathe": "^1.1.2",
+ "pkg-types": "^1.1.1",
+ "ufo": "^1.5.3"
+ }
+ },
+ "node_modules/moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/mrmime": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz",
+ "integrity": "sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/muggle-string": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz",
+ "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==",
+ "dev": true
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.7",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
+ "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "node_modules/new-tab-opener": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/new-tab-opener/-/new-tab-opener-1.0.2.tgz",
+ "integrity": "sha512-hMKU1n8HuauAaqdH3JW1WPXCEPxfCIEGEWoChR2A9So1GO+CjGOMEhTHcsFpOxH3pqzHdRY/+9VnY4qnWQYQZw==",
+ "dependencies": {
+ "detect-browser": "5.3.0"
+ }
+ },
+ "node_modules/node-cache": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz",
+ "integrity": "sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==",
+ "dev": true,
+ "dependencies": {
+ "clone": "2.x"
+ },
+ "engines": {
+ "node": ">= 8.0.0"
+ }
+ },
+ "node_modules/node-fetch": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
+ "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
+ "dev": true,
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/node-fetch/node_modules/tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
+ "dev": true
+ },
+ "node_modules/node-fetch/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
+ "dev": true
+ },
+ "node_modules/node-fetch/node_modules/whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "dev": true,
+ "dependencies": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.14",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
+ "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
+ "dev": true
+ },
+ "node_modules/nopt": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz",
+ "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==",
+ "dev": true,
+ "dependencies": {
+ "abbrev": "^2.0.0"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm-normalize-package-bin": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz",
+ "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==",
+ "dev": true,
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/npm-run-all2": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/npm-run-all2/-/npm-run-all2-6.2.0.tgz",
+ "integrity": "sha512-wA7yVIkthe6qJBfiJ2g6aweaaRlw72itsFGF6HuwCHKwtwAx/4BY1vVpk6bw6lS8RLMsexoasOkd0aYOmsFG7Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.2.1",
+ "cross-spawn": "^7.0.3",
+ "memorystream": "^0.3.1",
+ "minimatch": "^9.0.0",
+ "pidtree": "^0.6.0",
+ "read-package-json-fast": "^3.0.2",
+ "shell-quote": "^1.7.3"
+ },
+ "bin": {
+ "npm-run-all": "bin/npm-run-all/index.js",
+ "npm-run-all2": "bin/npm-run-all/index.js",
+ "run-p": "bin/run-p/index.js",
+ "run-s": "bin/run-s/index.js"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0",
+ "npm": ">= 8"
+ }
+ },
+ "node_modules/npm-run-all2/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dev": true,
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/nwsapi": {
+ "version": "2.2.10",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz",
+ "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==",
+ "dev": true
+ },
+ "node_modules/object-hash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz",
+ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/one-time": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
+ "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
+ "dependencies": {
+ "fn.name": "1.x.x"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/open": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz",
+ "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==",
+ "dev": true,
+ "dependencies": {
+ "default-browser": "^5.2.1",
+ "define-lazy-prop": "^3.0.0",
+ "is-inside-container": "^1.0.0",
+ "is-wsl": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
+ "dev": true,
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/ospath": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz",
+ "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==",
+ "dev": true
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dev": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "dev": true,
+ "dependencies": {
+ "aggregate-error": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse5": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "dev": true,
+ "dependencies": {
+ "entities": "^4.4.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/path": {
+ "version": "0.12.7",
+ "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz",
+ "integrity": "sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q==",
+ "dev": true,
+ "dependencies": {
+ "process": "^0.11.1",
+ "util": "^0.10.3"
+ }
+ },
+ "node_modules/path-browserify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
+ "dev": true
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.2.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz",
+ "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==",
+ "dev": true,
+ "engines": {
+ "node": "14 || >=16.14"
+ }
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pathe": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
+ "dev": true
+ },
+ "node_modules/pathval": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
+ "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/pause-stream": {
+ "version": "0.0.11",
+ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
+ "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
+ "dev": true,
+ "dependencies": {
+ "through": "~2.3"
+ }
+ },
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+ "dev": true
+ },
+ "node_modules/perfect-debounce": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
+ "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==",
+ "dev": true
+ },
+ "node_modules/performance-now": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
+ "dev": true
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
+ "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew=="
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pidtree": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz",
+ "integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
+ "dev": true,
+ "bin": {
+ "pidtree": "bin/pidtree.js"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/pify": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/pinia": {
+ "version": "2.1.7",
+ "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.1.7.tgz",
+ "integrity": "sha512-+C2AHFtcFqjPih0zpYuvof37SFxMQ7OEG2zV9jRI12i9BOy3YQVAHwdKtyyc8pDcDyIc33WCIsZaCFWU7WWxGQ==",
+ "dependencies": {
+ "@vue/devtools-api": "^6.5.0",
+ "vue-demi": ">=0.14.5"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/posva"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.4.0",
+ "typescript": ">=4.4.4",
+ "vue": "^2.6.14 || ^3.3.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/pinia/node_modules/vue-demi": {
+ "version": "0.14.8",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.8.tgz",
+ "integrity": "sha512-Uuqnk9YE9SsWeReYqK2alDI5YzciATE0r2SkA6iMAtuXvNTMNACJLJEXNXaEy94ECuBe4Sk6RzRU80kjdbIo1Q==",
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/pkg-types": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.1.1.tgz",
+ "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==",
+ "dev": true,
+ "dependencies": {
+ "confbox": "^0.1.7",
+ "mlly": "^1.7.0",
+ "pathe": "^1.1.2"
+ }
+ },
+ "node_modules/pleasejs": {
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/pleasejs/-/pleasejs-0.4.2.tgz",
+ "integrity": "sha512-nHsHKvdOiKgFrYXp3bBIHpiSLf723Ra36HRI1Y7shY5utkTmvlRzZCnDtFUbiAWCIIZN6hHm+ximnyOJgeGwXA=="
+ },
+ "node_modules/postcss": {
+ "version": "8.4.38",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz",
+ "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.2.0"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz",
+ "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==",
+ "dev": true,
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz",
+ "integrity": "sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin/prettier.cjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "dependencies": {
+ "fast-diff": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/pretty-bytes": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
+ "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "dev": true,
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/pretty-format/node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/proto-list": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
+ "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==",
+ "dev": true
+ },
+ "node_modules/proxy-from-env": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
+ "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==",
+ "dev": true
+ },
+ "node_modules/ps-tree": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz",
+ "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==",
+ "dev": true,
+ "dependencies": {
+ "event-stream": "=3.3.4"
+ },
+ "bin": {
+ "ps-tree": "bin/ps-tree.js"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/psl": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
+ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
+ "dev": true
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "dev": true,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.10.4",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.4.tgz",
+ "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==",
+ "dev": true,
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/querystringify": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz",
+ "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==",
+ "dev": true
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/react-is": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
+ "dev": true
+ },
+ "node_modules/read-package-json-fast": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz",
+ "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==",
+ "dev": true,
+ "dependencies": {
+ "json-parse-even-better-errors": "^3.0.0",
+ "npm-normalize-package-bin": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/request-progress": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz",
+ "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==",
+ "dev": true,
+ "dependencies": {
+ "throttleit": "^1.0.0"
+ }
+ },
+ "node_modules/requires-port": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
+ "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
+ "dev": true
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rfdc": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
+ "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
+ "dev": true
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rimraf/node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/rimraf/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rimraf/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.18.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz",
+ "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "1.0.5"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.18.0",
+ "@rollup/rollup-android-arm64": "4.18.0",
+ "@rollup/rollup-darwin-arm64": "4.18.0",
+ "@rollup/rollup-darwin-x64": "4.18.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.18.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.18.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.18.0",
+ "@rollup/rollup-linux-arm64-musl": "4.18.0",
+ "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.18.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.18.0",
+ "@rollup/rollup-linux-x64-gnu": "4.18.0",
+ "@rollup/rollup-linux-x64-musl": "4.18.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.18.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.18.0",
+ "@rollup/rollup-win32-x64-msvc": "4.18.0",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/rrweb-cssom": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz",
+ "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==",
+ "dev": true
+ },
+ "node_modules/run-applescript": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz",
+ "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/safe-stable-stringify": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz",
+ "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "dev": true
+ },
+ "node_modules/saxes": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
+ "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==",
+ "dev": true,
+ "dependencies": {
+ "xmlchars": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=v12.22.7"
+ }
+ },
+ "node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "dev": true,
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "dev": true,
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shell-quote": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
+ "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/siginfo": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
+ "dev": true
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
+ },
+ "node_modules/sirv": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.4.tgz",
+ "integrity": "sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==",
+ "dev": true,
+ "dependencies": {
+ "@polka/url": "^1.0.0-next.24",
+ "mrmime": "^2.0.0",
+ "totalist": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slice-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
+ "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/speakingurl": {
+ "version": "14.0.1",
+ "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz",
+ "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/split": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
+ "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==",
+ "dev": true,
+ "dependencies": {
+ "through": "2"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/sshpk": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
+ "dev": true,
+ "dependencies": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ },
+ "bin": {
+ "sshpk-conv": "bin/sshpk-conv",
+ "sshpk-sign": "bin/sshpk-sign",
+ "sshpk-verify": "bin/sshpk-verify"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/stack-trace": {
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/stackback": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
+ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
+ "dev": true
+ },
+ "node_modules/start-server-and-test": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-2.0.4.tgz",
+ "integrity": "sha512-CKNeBTcP0hVqIlNismHMudb9q3lLdAjcVPO13/7gfI66fcJpeIb/o4NzQd1JK/CD+lfWVqr10ZH9Y14+OwlJuw==",
+ "dev": true,
+ "dependencies": {
+ "arg": "^5.0.2",
+ "bluebird": "3.7.2",
+ "check-more-types": "2.24.0",
+ "debug": "4.3.5",
+ "execa": "5.1.1",
+ "lazy-ass": "1.6.0",
+ "ps-tree": "1.2.0",
+ "wait-on": "7.2.0"
+ },
+ "bin": {
+ "server-test": "src/bin/start.js",
+ "start-server-and-test": "src/bin/start.js",
+ "start-test": "src/bin/start.js"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/start-server-and-test/node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/start-server-and-test/node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/start-server-and-test/node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/std-env": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz",
+ "integrity": "sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==",
+ "dev": true
+ },
+ "node_modules/stream-combiner": {
+ "version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
+ "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==",
+ "dev": true,
+ "dependencies": {
+ "duplexer": "~0.1.1"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/strip-literal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-2.1.0.tgz",
+ "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==",
+ "dev": true,
+ "dependencies": {
+ "js-tokens": "^9.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/strip-literal/node_modules/js-tokens": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-9.0.0.tgz",
+ "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==",
+ "dev": true
+ },
+ "node_modules/superjson": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.1.tgz",
+ "integrity": "sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==",
+ "dev": true,
+ "dependencies": {
+ "copy-anything": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/svg-tags": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
+ "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==",
+ "dev": true
+ },
+ "node_modules/symbol-tree": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
+ "dev": true
+ },
+ "node_modules/synckit": {
+ "version": "0.8.8",
+ "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz",
+ "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==",
+ "dev": true,
+ "dependencies": {
+ "@pkgr/core": "^0.1.0",
+ "tslib": "^2.6.2"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/unts"
+ }
+ },
+ "node_modules/text-hex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
+ "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true
+ },
+ "node_modules/throttleit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz",
+ "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
+ "node_modules/tinybench": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.8.0.tgz",
+ "integrity": "sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==",
+ "dev": true
+ },
+ "node_modules/tinypool": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-0.8.4.tgz",
+ "integrity": "sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/tinyspy": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-2.2.1.tgz",
+ "integrity": "sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/tmp": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
+ "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/to-fast-properties": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/totalist": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
+ "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tough-cookie": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
+ "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
+ "dev": true,
+ "dependencies": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tough-cookie/node_modules/universalify": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz",
+ "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/triple-beam": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz",
+ "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==",
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/ts-api-utils": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz",
+ "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
+ }
+ },
+ "node_modules/ts-mixer": {
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.4.tgz",
+ "integrity": "sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==",
+ "dev": true
+ },
+ "node_modules/tsconfig-paths": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz",
+ "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==",
+ "dev": true,
+ "dependencies": {
+ "json5": "^2.2.2",
+ "minimist": "^1.2.6",
+ "strip-bom": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
+ "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
+ },
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/turbo-ts": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/turbo-ts/-/turbo-ts-7.3.1.tgz",
+ "integrity": "sha512-7juyj7A3jYv1/h/G55SMU8ohNcqggjeY8bXUpd9aaNgPzc1ms1wsziYXqUNNuDuwk3wOReEd+xO7EPDqoW3aRQ==",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
+ "dev": true
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.4.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz",
+ "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==",
+ "devOptional": true,
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/typescript-cookie": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/typescript-cookie/-/typescript-cookie-1.0.6.tgz",
+ "integrity": "sha512-s+BZr7/9BUG6Kg7jGGcOY/4XJcP+iZRFdF3q4FPTfRSP83ivLWF94OcH8PrzGmnS8Ab9qP7ENu/ikLwNFsIafA==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/ufo": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz",
+ "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==",
+ "dev": true
+ },
+ "node_modules/undici": {
+ "version": "5.28.4",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz",
+ "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==",
+ "dev": true,
+ "dependencies": {
+ "@fastify/busboy": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.0"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA=="
+ },
+ "node_modules/universalify": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
+ "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
+ "node_modules/untildify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
+ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.16",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz",
+ "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "escalade": "^3.1.2",
+ "picocolors": "^1.0.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/url-parse": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
+ "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
+ "dev": true,
+ "dependencies": {
+ "querystringify": "^2.1.1",
+ "requires-port": "^1.0.0"
+ }
+ },
+ "node_modules/util": {
+ "version": "0.10.4",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
+ "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==",
+ "dev": true,
+ "dependencies": {
+ "inherits": "2.0.3"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "dev": true,
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
+ "node_modules/vite": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz",
+ "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==",
+ "dev": true,
+ "dependencies": {
+ "esbuild": "^0.21.3",
+ "postcss": "^8.4.38",
+ "rollup": "^4.13.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-hot-client": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/vite-hot-client/-/vite-hot-client-0.2.3.tgz",
+ "integrity": "sha512-rOGAV7rUlUHX89fP2p2v0A2WWvV3QMX2UYq0fRqsWSvFvev4atHWqjwGoKaZT1VTKyLGk533ecu3eyd0o59CAg==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "vite": "^2.6.0 || ^3.0.0 || ^4.0.0 || ^5.0.0-0"
+ }
+ },
+ "node_modules/vite-node": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-1.6.0.tgz",
+ "integrity": "sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==",
+ "dev": true,
+ "dependencies": {
+ "cac": "^6.7.14",
+ "debug": "^4.3.4",
+ "pathe": "^1.1.1",
+ "picocolors": "^1.0.0",
+ "vite": "^5.0.0"
+ },
+ "bin": {
+ "vite-node": "vite-node.mjs"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/vite-plugin-inspect": {
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/vite-plugin-inspect/-/vite-plugin-inspect-0.8.4.tgz",
+ "integrity": "sha512-G0N3rjfw+AiiwnGw50KlObIHYWfulVwaCBUBLh2xTW9G1eM9ocE5olXkEYUbwyTmX+azM8duubi+9w5awdCz+g==",
+ "dev": true,
+ "dependencies": {
+ "@antfu/utils": "^0.7.7",
+ "@rollup/pluginutils": "^5.1.0",
+ "debug": "^4.3.4",
+ "error-stack-parser-es": "^0.1.1",
+ "fs-extra": "^11.2.0",
+ "open": "^10.1.0",
+ "perfect-debounce": "^1.0.0",
+ "picocolors": "^1.0.0",
+ "sirv": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "vite": "^3.1.0 || ^4.0.0 || ^5.0.0-0"
+ },
+ "peerDependenciesMeta": {
+ "@nuxt/kit": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-plugin-inspect/node_modules/fs-extra": {
+ "version": "11.2.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
+ "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
+ "dev": true,
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/vite-plugin-vue-devtools": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/vite-plugin-vue-devtools/-/vite-plugin-vue-devtools-7.3.0.tgz",
+ "integrity": "sha512-XnxQzTloGkQUTpsRdWVsEBzyh9F6i8NBmuPo8lotx4lSUnWYJ+jUlXvfftzmOf14hFgsTOySLJCr9nhaqOzgOA==",
+ "dev": true,
+ "dependencies": {
+ "@vue/devtools-core": "^7.3.0",
+ "@vue/devtools-kit": "^7.3.0",
+ "@vue/devtools-shared": "^7.3.0",
+ "execa": "^8.0.1",
+ "sirv": "^2.0.4",
+ "vite-plugin-inspect": "^0.8.4",
+ "vite-plugin-vue-inspector": "^5.1.2"
+ },
+ "engines": {
+ "node": ">=v14.21.3"
+ },
+ "peerDependencies": {
+ "vite": "^3.1.0 || ^4.0.0-0 || ^5.0.0-0"
+ }
+ },
+ "node_modules/vite-plugin-vue-devtools/node_modules/execa": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/vite-plugin-vue-devtools/node_modules/get-stream": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vite-plugin-vue-devtools/node_modules/human-signals": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16.17.0"
+ }
+ },
+ "node_modules/vite-plugin-vue-devtools/node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vite-plugin-vue-devtools/node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vite-plugin-vue-devtools/node_modules/npm-run-path": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vite-plugin-vue-devtools/node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vite-plugin-vue-devtools/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vite-plugin-vue-devtools/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/vite-plugin-vue-devtools/node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vite-plugin-vue-inspector": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/vite-plugin-vue-inspector/-/vite-plugin-vue-inspector-5.1.2.tgz",
+ "integrity": "sha512-M+yH2LlQtVNzJAljQM+61CqDXBvHim8dU5ImGaQuwlo13tMDHue5D7IC20YwDJuWDODiYc/cZBUYspVlyPf2vQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.23.0",
+ "@babel/plugin-proposal-decorators": "^7.23.0",
+ "@babel/plugin-syntax-import-attributes": "^7.22.5",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@babel/plugin-transform-typescript": "^7.22.15",
+ "@vue/babel-plugin-jsx": "^1.1.5",
+ "@vue/compiler-dom": "^3.3.4",
+ "kolorist": "^1.8.0",
+ "magic-string": "^0.30.4"
+ },
+ "peerDependencies": {
+ "vite": "^3.0.0-0 || ^4.0.0-0 || ^5.0.0-0"
+ }
+ },
+ "node_modules/vitest": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-1.6.0.tgz",
+ "integrity": "sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==",
+ "dev": true,
+ "dependencies": {
+ "@vitest/expect": "1.6.0",
+ "@vitest/runner": "1.6.0",
+ "@vitest/snapshot": "1.6.0",
+ "@vitest/spy": "1.6.0",
+ "@vitest/utils": "1.6.0",
+ "acorn-walk": "^8.3.2",
+ "chai": "^4.3.10",
+ "debug": "^4.3.4",
+ "execa": "^8.0.1",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.5",
+ "pathe": "^1.1.1",
+ "picocolors": "^1.0.0",
+ "std-env": "^3.5.0",
+ "strip-literal": "^2.0.0",
+ "tinybench": "^2.5.1",
+ "tinypool": "^0.8.3",
+ "vite": "^5.0.0",
+ "vite-node": "1.6.0",
+ "why-is-node-running": "^2.2.2"
+ },
+ "bin": {
+ "vitest": "vitest.mjs"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "@edge-runtime/vm": "*",
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "@vitest/browser": "1.6.0",
+ "@vitest/ui": "1.6.0",
+ "happy-dom": "*",
+ "jsdom": "*"
+ },
+ "peerDependenciesMeta": {
+ "@edge-runtime/vm": {
+ "optional": true
+ },
+ "@types/node": {
+ "optional": true
+ },
+ "@vitest/browser": {
+ "optional": true
+ },
+ "@vitest/ui": {
+ "optional": true
+ },
+ "happy-dom": {
+ "optional": true
+ },
+ "jsdom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vitest/node_modules/execa": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz",
+ "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==",
+ "dev": true,
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^8.0.1",
+ "human-signals": "^5.0.0",
+ "is-stream": "^3.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^5.1.0",
+ "onetime": "^6.0.0",
+ "signal-exit": "^4.1.0",
+ "strip-final-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16.17"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/vitest/node_modules/get-stream": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz",
+ "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vitest/node_modules/human-signals": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz",
+ "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=16.17.0"
+ }
+ },
+ "node_modules/vitest/node_modules/is-stream": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
+ "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vitest/node_modules/mimic-fn": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
+ "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vitest/node_modules/npm-run-path": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
+ "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
+ "dev": true,
+ "dependencies": {
+ "path-key": "^4.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vitest/node_modules/onetime": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
+ "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
+ "dev": true,
+ "dependencies": {
+ "mimic-fn": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vitest/node_modules/path-key": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
+ "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vitest/node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/vitest/node_modules/strip-final-newline": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
+ "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/vscode-uri": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz",
+ "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==",
+ "dev": true
+ },
+ "node_modules/vue": {
+ "version": "3.4.29",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz",
+ "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==",
+ "dependencies": {
+ "@vue/compiler-dom": "3.4.29",
+ "@vue/compiler-sfc": "3.4.29",
+ "@vue/runtime-dom": "3.4.29",
+ "@vue/server-renderer": "3.4.29",
+ "@vue/shared": "3.4.29"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vue-component-type-helpers": {
+ "version": "2.0.21",
+ "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.0.21.tgz",
+ "integrity": "sha512-3NaicyZ7N4B6cft4bfb7dOnPbE9CjLcx+6wZWAg5zwszfO4qXRh+U52dN5r5ZZfc6iMaxKCEcoH9CmxxoFZHLg==",
+ "dev": true
+ },
+ "node_modules/vue-eslint-parser": {
+ "version": "9.4.3",
+ "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz",
+ "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4",
+ "eslint-scope": "^7.1.1",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.3.1",
+ "esquery": "^1.4.0",
+ "lodash": "^4.17.21",
+ "semver": "^7.3.6"
+ },
+ "engines": {
+ "node": "^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=6.0.0"
+ }
+ },
+ "node_modules/vue-eslint-parser/node_modules/semver": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+ "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vue-template-compiler": {
+ "version": "2.7.16",
+ "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.16.tgz",
+ "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==",
+ "dev": true,
+ "dependencies": {
+ "de-indent": "^1.0.2",
+ "he": "^1.2.0"
+ }
+ },
+ "node_modules/vue-tsc": {
+ "version": "2.0.21",
+ "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.21.tgz",
+ "integrity": "sha512-E6x1p1HaHES6Doy8pqtm7kQern79zRtIewkf9fiv7Y43Zo4AFDS5hKi+iHi2RwEhqRmuiwliB1LCEFEGwvxQnw==",
+ "dev": true,
+ "dependencies": {
+ "@volar/typescript": "~2.3.0-alpha.15",
+ "@vue/language-core": "2.0.21",
+ "semver": "^7.5.4"
+ },
+ "bin": {
+ "vue-tsc": "bin/vue-tsc.js"
+ },
+ "peerDependencies": {
+ "typescript": "*"
+ }
+ },
+ "node_modules/vue-tsc/node_modules/semver": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+ "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/vuetify": {
+ "version": "3.6.9",
+ "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.6.9.tgz",
+ "integrity": "sha512-LVIZL0OCwzg3Aw2F8nT1rK/renpTPOcDEPe5E002Vj+VjXwsCNqwwxNteGfrcNlp0vgIJ8WusMvaxp69UJ3NJg==",
+ "engines": {
+ "node": "^12.20 || >=14.13"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/johnleider"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.7",
+ "vite-plugin-vuetify": ">=1.0.0",
+ "vue": "^3.3.0",
+ "vue-i18n": "^9.0.0",
+ "webpack-plugin-vuetify": ">=2.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ },
+ "vite-plugin-vuetify": {
+ "optional": true
+ },
+ "vue-i18n": {
+ "optional": true
+ },
+ "webpack-plugin-vuetify": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/w3c-xmlserializer": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz",
+ "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==",
+ "dev": true,
+ "dependencies": {
+ "xml-name-validator": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/w3c-xmlserializer/node_modules/xml-name-validator": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz",
+ "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/wait-on": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-7.2.0.tgz",
+ "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==",
+ "dev": true,
+ "dependencies": {
+ "axios": "^1.6.1",
+ "joi": "^17.11.0",
+ "lodash": "^4.17.21",
+ "minimist": "^1.2.8",
+ "rxjs": "^7.8.1"
+ },
+ "bin": {
+ "wait-on": "bin/wait-on"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/whatwg-encoding": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz",
+ "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==",
+ "dev": true,
+ "dependencies": {
+ "iconv-lite": "0.6.3"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/whatwg-mimetype": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz",
+ "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==",
+ "dev": true,
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/whatwg-url": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz",
+ "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==",
+ "dev": true,
+ "dependencies": {
+ "tr46": "^5.0.0",
+ "webidl-conversions": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/which": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz",
+ "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^14.17.0 || ^16.13.0 || >=18.0.0"
+ }
+ },
+ "node_modules/why-is-node-running": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.2.2.tgz",
+ "integrity": "sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==",
+ "dev": true,
+ "dependencies": {
+ "siginfo": "^2.0.0",
+ "stackback": "0.0.2"
+ },
+ "bin": {
+ "why-is-node-running": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/winston": {
+ "version": "3.13.0",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-3.13.0.tgz",
+ "integrity": "sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ==",
+ "dependencies": {
+ "@colors/colors": "^1.6.0",
+ "@dabh/diagnostics": "^2.0.2",
+ "async": "^3.2.3",
+ "is-stream": "^2.0.0",
+ "logform": "^2.4.0",
+ "one-time": "^1.0.0",
+ "readable-stream": "^3.4.0",
+ "safe-stable-stringify": "^2.3.1",
+ "stack-trace": "0.0.x",
+ "triple-beam": "^1.3.0",
+ "winston-transport": "^4.7.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ }
+ },
+ "node_modules/winston-daily-rotate-file": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-5.0.0.tgz",
+ "integrity": "sha512-JDjiXXkM5qvwY06733vf09I2wnMXpZEhxEVOSPenZMii+g7pcDcTBt2MRugnoi8BwVSuCT2jfRXBUy+n1Zz/Yw==",
+ "dependencies": {
+ "file-stream-rotator": "^0.6.1",
+ "object-hash": "^3.0.0",
+ "triple-beam": "^1.4.1",
+ "winston-transport": "^4.7.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "peerDependencies": {
+ "winston": "^3"
+ }
+ },
+ "node_modules/winston-transport": {
+ "version": "4.7.0",
+ "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.7.0.tgz",
+ "integrity": "sha512-ajBj65K5I7denzer2IYW6+2bNIVqLGDHqDw3Ow8Ohh+vdW+rv4MZ6eiDvHoKhfJFZ2auyN8byXieDDJ96ViONg==",
+ "dependencies": {
+ "logform": "^2.3.2",
+ "readable-stream": "^3.6.0",
+ "triple-beam": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 12.0.0"
+ }
+ },
+ "node_modules/winston-transport-discord": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/winston-transport-discord/-/winston-transport-discord-1.0.3.tgz",
+ "integrity": "sha512-pKF3Sie6haNk+MjyF60nkex1AdskJ6Ep2Oxym1oh1Te1Vgs162qoVg91W9Tb4doHivYBmPJZ90z7gHXarRxd2A==",
+ "dev": true,
+ "dependencies": {
+ "@discordjs/rest": "^0.5.0",
+ "discord-api-types": "^0.36.1",
+ "discord.js": "^13.8.1",
+ "triple-beam": "^1.3.0",
+ "tslib": "^2.4.0",
+ "winston-transport": "^4.5.0"
+ }
+ },
+ "node_modules/winston/node_modules/@colors/colors": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz",
+ "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==",
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz",
+ "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz",
+ "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "node_modules/ws": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz",
+ "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": ">=5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/xml-name-validator": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
+ "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/xmlchars": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz",
+ "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
+ "dev": true
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+ "dev": true,
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..c96e005
--- /dev/null
+++ b/package.json
@@ -0,0 +1,66 @@
+{
+ "name": "structorverborum",
+ "version": "0.0.0",
+ "private": true,
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "run-p type-check \"build-only {@}\" --",
+ "preview": "vite preview",
+ "test:unit": "vitest",
+ "test:e2e": "start-server-and-test preview http://localhost:4173 'cypress run --e2e'",
+ "test:e2e:dev": "start-server-and-test 'vite dev --port 4173' http://localhost:4173 'cypress open --e2e'",
+ "build-only": "vite build",
+ "type-check": "vue-tsc --build --force",
+ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
+ "format": "prettier --write src/"
+ },
+ "dependencies": {
+ "@neoncitylights/sets": "^1.1.0",
+ "@types/deep-equal": "^1.0.4",
+ "@types/file-fetch": "^1.6.6",
+ "@types/js-roman-numerals": "^1.1.3",
+ "comma-separated-values": "^3.6.4",
+ "list-files-in-dir": "^0.1.5",
+ "new-tab-opener": "^1.0.2",
+ "pinia": "^2.1.7",
+ "pleasejs": "^0.4.2",
+ "tslib": "^2.6.3",
+ "turbo-ts": "^7.3.1",
+ "vue": "^3.4.21",
+ "vuetify": "^3.6.9",
+ "winston": "^3.13.0",
+ "winston-daily-rotate-file": "^5.0.0"
+ },
+ "devDependencies": {
+ "@eslint-types/prettier": "^5.1.3",
+ "@rushstack/eslint-patch": "^1.8.0",
+ "@tsconfig/node20": "^20.1.4",
+ "@types/jsdom": "^21.1.6",
+ "@types/node": "^20.12.5",
+ "@types/pleasejs": "^0.0.33",
+ "@vitejs/plugin-vue": "^5.0.4",
+ "@vitejs/plugin-vue-jsx": "^3.1.0",
+ "@vue/eslint-config-prettier": "^9.0.0",
+ "@vue/eslint-config-typescript": "^13.0.0",
+ "@vue/test-utils": "^2.4.5",
+ "@vue/tsconfig": "^0.5.1",
+ "@vueuse/core": "^10.11.0",
+ "codeql-agent": "^0.3.4",
+ "cypress": "^13.7.2",
+ "eslint": "^8.57.0",
+ "eslint-plugin-cypress": "^2.15.1",
+ "eslint-plugin-vue": "^9.23.0",
+ "jsdom": "^24.0.0",
+ "npm-run-all2": "^6.1.2",
+ "prettier": "^3.3.2",
+ "start-server-and-test": "^2.0.3",
+ "tsconfig-paths": "^4.2.0",
+ "typescript": "~5.4.0",
+ "typescript-cookie": "^1.0.6",
+ "vite": "^5.2.8",
+ "vite-plugin-vue-devtools": "^7.0.25",
+ "vitest": "^1.4.0",
+ "vue-tsc": "^2.0.11"
+ }
+}
diff --git "a/res/lemmae/actus/adip\304\253sc\304\253.csv" "b/res/lemmae/actus/adip\304\253sc\304\253.csv"
new file mode 100644
index 0000000..54b397a
--- /dev/null
+++ "b/res/lemmae/actus/adip\304\253sc\304\253.csv"
@@ -0,0 +1,2 @@
+infinitivus,perfectum,supinum,versio
+adipīscī,,adeptus,terti//deponens
diff --git "a/res/lemmae/actus/am\304\201re.csv" "b/res/lemmae/actus/am\304\201re.csv"
new file mode 100644
index 0000000..16cbf3a
--- /dev/null
+++ "b/res/lemmae/actus/am\304\201re.csv"
@@ -0,0 +1,2 @@
+infinitivus,perfectum,supinum,versio
+amāre,amāvisse,amātum,prima
diff --git "a/res/lemmae/actus/c\304\223ns\304\223re.csv" "b/res/lemmae/actus/c\304\223ns\304\223re.csv"
new file mode 100644
index 0000000..0e0ae8b
--- /dev/null
+++ "b/res/lemmae/actus/c\304\223ns\304\223re.csv"
@@ -0,0 +1,2 @@
+infinitivus,perfectum,supinum,versio
+cēnsēre,cēnsēvisse,cēnsētum,secunda
diff --git "a/res/lemmae/actus/c\305\215nsect\304\201r\304\253.csv" "b/res/lemmae/actus/c\305\215nsect\304\201r\304\253.csv"
new file mode 100644
index 0000000..7a15613
--- /dev/null
+++ "b/res/lemmae/actus/c\305\215nsect\304\201r\304\253.csv"
@@ -0,0 +1,2 @@
+infinitivus,perfectum,supinum,versio
+cōnsectārī,,cōnsectātum,prima//deponens
diff --git "a/res/lemmae/actus/d\304\223l\304\223re.csv" "b/res/lemmae/actus/d\304\223l\304\223re.csv"
new file mode 100644
index 0000000..dc887af
--- /dev/null
+++ "b/res/lemmae/actus/d\304\223l\304\223re.csv"
@@ -0,0 +1,2 @@
+infinitivus,perfectum,supinum,versio
+dēlēre,dēlēvisse,dēlētum,secunda
diff --git a/res/lemmae/actus/incidere.csv b/res/lemmae/actus/incidere.csv
new file mode 100644
index 0000000..ba004f7
--- /dev/null
+++ b/res/lemmae/actus/incidere.csv
@@ -0,0 +1,2 @@
+infinitivus,perfectus,supinus,versio
+incidere,incidisse,incāsum,tertius/semideponens
diff --git "a/res/lemmae/actus/plac\304\223re.csv" "b/res/lemmae/actus/plac\304\223re.csv"
new file mode 100644
index 0000000..676a48f
--- /dev/null
+++ "b/res/lemmae/actus/plac\304\223re.csv"
@@ -0,0 +1,2 @@
+infinitivus,perfectum,supinum,versio
+placēre,placuisse,placitum,secunda
diff --git a/res/lemmae/actus/quaerere.csv b/res/lemmae/actus/quaerere.csv
new file mode 100644
index 0000000..93feb05
--- /dev/null
+++ b/res/lemmae/actus/quaerere.csv
@@ -0,0 +1,2 @@
+infinitivus,perfectum,supinum,versio
+quaerere,quaesīvisse,quaesītum,tertia
diff --git "a/res/lemmae/adiectiva/Lat\304\253num.csv" "b/res/lemmae/adiectiva/Lat\304\253num.csv"
new file mode 100644
index 0000000..9fa9530
--- /dev/null
+++ "b/res/lemmae/adiectiva/Lat\304\253num.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+Latīnum,Latīnius,Latīnissimum,positivusAutPrimusAutSecundus
diff --git a/res/lemmae/adiectiva/bonum.csv b/res/lemmae/adiectiva/bonum.csv
new file mode 100644
index 0000000..dbbb34a
--- /dev/null
+++ b/res/lemmae/adiectiva/bonum.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+bonum,melius,optimum,positivusAutPrimusAutSecundus
diff --git a/res/lemmae/adiectiva/centum.csv b/res/lemmae/adiectiva/centum.csv
new file mode 100644
index 0000000..8d42c92
--- /dev/null
+++ b/res/lemmae/adiectiva/centum.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+centum,,indeclinabilis
diff --git a/res/lemmae/adiectiva/decem.csv b/res/lemmae/adiectiva/decem.csv
new file mode 100644
index 0000000..aa082ce
--- /dev/null
+++ b/res/lemmae/adiectiva/decem.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+decem,,indeclinabilis
diff --git a/res/lemmae/adiectiva/duodecim.csv b/res/lemmae/adiectiva/duodecim.csv
new file mode 100644
index 0000000..a530fc1
--- /dev/null
+++ b/res/lemmae/adiectiva/duodecim.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+duodecim,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/duod\304\223n\305\215n\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223n\305\215n\304\201gint\304\201.csv"
new file mode 100644
index 0000000..fa9be15
--- /dev/null
+++ "b/res/lemmae/adiectiva/duod\304\223n\305\215n\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+duodēnōnāgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/duod\304\223oct\305\215gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223oct\305\215gint\304\201.csv"
new file mode 100644
index 0000000..074b53d
--- /dev/null
+++ "b/res/lemmae/adiectiva/duod\304\223oct\305\215gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+duodēoctōgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/duod\304\223quadr\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223quadr\304\201gint\304\201.csv"
new file mode 100644
index 0000000..a08f10b
--- /dev/null
+++ "b/res/lemmae/adiectiva/duod\304\223quadr\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+duodēquadrāgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/duod\304\223qu\304\253nqu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223qu\304\253nqu\304\201gint\304\201.csv"
new file mode 100644
index 0000000..b82c9b5
--- /dev/null
+++ "b/res/lemmae/adiectiva/duod\304\223qu\304\253nqu\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+duodēquīnquāgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/duod\304\223septu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223septu\304\201gint\304\201.csv"
new file mode 100644
index 0000000..a139f12
--- /dev/null
+++ "b/res/lemmae/adiectiva/duod\304\223septu\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+duodēseptuāgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/duod\304\223sex\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223sex\304\201gint\304\201.csv"
new file mode 100644
index 0000000..2673793
--- /dev/null
+++ "b/res/lemmae/adiectiva/duod\304\223sex\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+duodēsexāgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/duod\304\223tr\304\253gint\304\201.csv" "b/res/lemmae/adiectiva/duod\304\223tr\304\253gint\304\201.csv"
new file mode 100644
index 0000000..7a33fcf
--- /dev/null
+++ "b/res/lemmae/adiectiva/duod\304\223tr\304\253gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+duodētrīgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/duod\304\223v\304\253gint\304\253.csv" "b/res/lemmae/adiectiva/duod\304\223v\304\253gint\304\253.csv"
new file mode 100644
index 0000000..a9e03e6
--- /dev/null
+++ "b/res/lemmae/adiectiva/duod\304\223v\304\253gint\304\253.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+duodēvīgintī,,indeclinabilis
diff --git a/res/lemmae/adiectiva/incomparabilia/alterum.csv b/res/lemmae/adiectiva/incomparabilia/alterum.csv
new file mode 100644
index 0000000..d1aebfe
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/alterum.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+alterum,alterī,pronominalis/nominativusDirectus
diff --git a/res/lemmae/adiectiva/incomparabilia/centuplex.csv b/res/lemmae/adiectiva/incomparabilia/centuplex.csv
new file mode 100644
index 0000000..0aecc9c
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/centuplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+centuplex,centuplicis,tertia
diff --git "a/res/lemmae/adiectiva/incomparabilia/cent\305\253plum.csv" "b/res/lemmae/adiectiva/incomparabilia/cent\305\253plum.csv"
new file mode 100644
index 0000000..b771a41
--- /dev/null
+++ "b/res/lemmae/adiectiva/incomparabilia/cent\305\253plum.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+centūplum,centūplī,autPrimusAutSecundus
diff --git a/res/lemmae/adiectiva/incomparabilia/decemplex.csv b/res/lemmae/adiectiva/incomparabilia/decemplex.csv
new file mode 100644
index 0000000..9693720
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/decemplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+decemplex,decemplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/decimplex.csv b/res/lemmae/adiectiva/incomparabilia/decimplex.csv
new file mode 100644
index 0000000..a2caa20
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/decimplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+decimplex,decimplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/decuplex.csv b/res/lemmae/adiectiva/incomparabilia/decuplex.csv
new file mode 100644
index 0000000..c501ead
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/decuplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+decuplex,decuplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/ducenta.csv b/res/lemmae/adiectiva/incomparabilia/ducenta.csv
new file mode 100644
index 0000000..9f33aa6
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/ducenta.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+ducenta,ducentōrum,autPrimusAutSecundus//pluralis
diff --git a/res/lemmae/adiectiva/incomparabilia/duodecemplex.csv b/res/lemmae/adiectiva/incomparabilia/duodecemplex.csv
new file mode 100644
index 0000000..676383f
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/duodecemplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+duodecemplex,duodecemplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/duodecemplum.csv b/res/lemmae/adiectiva/incomparabilia/duodecemplum.csv
new file mode 100644
index 0000000..3cc964e
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/duodecemplum.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+duodecemplum,duodecemplī,autPrimusAutSecundus
diff --git a/res/lemmae/adiectiva/incomparabilia/duodecimplex.csv b/res/lemmae/adiectiva/incomparabilia/duodecimplex.csv
new file mode 100644
index 0000000..b467b5d
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/duodecimplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+duodecimplex,duodecimplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/duodecimplum.csv b/res/lemmae/adiectiva/incomparabilia/duodecimplum.csv
new file mode 100644
index 0000000..91baf7c
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/duodecimplum.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+duodecimplum,duodecimplī,autPrimusAutSecundus
diff --git a/res/lemmae/adiectiva/incomparabilia/duodecuplex.csv b/res/lemmae/adiectiva/incomparabilia/duodecuplex.csv
new file mode 100644
index 0000000..a63be51
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/duodecuplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+duodecuplex,duodecuplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/duodecuplum.csv b/res/lemmae/adiectiva/incomparabilia/duodecuplum.csv
new file mode 100644
index 0000000..67d3d47
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/duodecuplum.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+duodecuplum,duodecuplī,autPrimusAutSecundus
diff --git "a/res/lemmae/adiectiva/incomparabilia/duod\304\223centum.csv" "b/res/lemmae/adiectiva/incomparabilia/duod\304\223centum.csv"
new file mode 100644
index 0000000..b963c59
--- /dev/null
+++ "b/res/lemmae/adiectiva/incomparabilia/duod\304\223centum.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+duodēcentum,duodēcentī,autPrimusAutSecundus
diff --git a/res/lemmae/adiectiva/incomparabilia/duplex.csv b/res/lemmae/adiectiva/incomparabilia/duplex.csv
new file mode 100644
index 0000000..2964031
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/duplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+duplex,duplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/meum.csv b/res/lemmae/adiectiva/incomparabilia/meum.csv
new file mode 100644
index 0000000..4be7ca3
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/meum.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+meum,meī,autPrimusAutSecundus
diff --git "a/res/lemmae/adiectiva/incomparabilia/milli\305\215.csv" "b/res/lemmae/adiectiva/incomparabilia/milli\305\215.csv"
new file mode 100644
index 0000000..5cc97f6
--- /dev/null
+++ "b/res/lemmae/adiectiva/incomparabilia/milli\305\215.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+milliō,milliōnis,tertius/nominativusDirectus/cumTruncoVario
diff --git a/res/lemmae/adiectiva/incomparabilia/neutrum.csv b/res/lemmae/adiectiva/incomparabilia/neutrum.csv
new file mode 100644
index 0000000..30fecfe
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/neutrum.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+neutrum,neutrī,pronominalis/cumLitteraR
diff --git a/res/lemmae/adiectiva/incomparabilia/noncuplex.csv b/res/lemmae/adiectiva/incomparabilia/noncuplex.csv
new file mode 100644
index 0000000..17d7486
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/noncuplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+noncuplex,noncuplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/nostrum.csv b/res/lemmae/adiectiva/incomparabilia/nostrum.csv
new file mode 100644
index 0000000..5d212da
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/nostrum.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+nostrum,nostrī,autPrimusAutSecundus/cumLitteraR
diff --git a/res/lemmae/adiectiva/incomparabilia/novemcuplex.csv b/res/lemmae/adiectiva/incomparabilia/novemcuplex.csv
new file mode 100644
index 0000000..5bfbf3e
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/novemcuplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+novemcuplex,novemcuplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/novemplex.csv b/res/lemmae/adiectiva/incomparabilia/novemplex.csv
new file mode 100644
index 0000000..e543195
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/novemplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+novemplex,novemplicis,tertia
diff --git "a/res/lemmae/adiectiva/incomparabilia/n\305\215ngenta.csv" "b/res/lemmae/adiectiva/incomparabilia/n\305\215ngenta.csv"
new file mode 100644
index 0000000..dfe44bb
--- /dev/null
+++ "b/res/lemmae/adiectiva/incomparabilia/n\305\215ngenta.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+nōngenta,nōngentōrum,autPrimusAutSecundus//pluralis
diff --git "a/res/lemmae/adiectiva/incomparabilia/n\305\215nuplex.csv" "b/res/lemmae/adiectiva/incomparabilia/n\305\215nuplex.csv"
new file mode 100644
index 0000000..ab8650a
--- /dev/null
+++ "b/res/lemmae/adiectiva/incomparabilia/n\305\215nuplex.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+nōnuplex,nōnuplicis,tertia
diff --git "a/res/lemmae/adiectiva/incomparabilia/n\305\253llum.csv" "b/res/lemmae/adiectiva/incomparabilia/n\305\253llum.csv"
new file mode 100644
index 0000000..b76e135
--- /dev/null
+++ "b/res/lemmae/adiectiva/incomparabilia/n\305\253llum.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+nūllum,nūllī,pronominalis/nominativusDirectus
diff --git a/res/lemmae/adiectiva/incomparabilia/octingenta.csv b/res/lemmae/adiectiva/incomparabilia/octingenta.csv
new file mode 100644
index 0000000..a0aa85d
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/octingenta.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+octingenta,octingentōrum,autPrimusAutSecundus//pluralis
diff --git a/res/lemmae/adiectiva/incomparabilia/octuplex.csv b/res/lemmae/adiectiva/incomparabilia/octuplex.csv
new file mode 100644
index 0000000..064522c
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/octuplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+octuplex,octuplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/quadruplex.csv b/res/lemmae/adiectiva/incomparabilia/quadruplex.csv
new file mode 100644
index 0000000..ef4cc69
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/quadruplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+quadruplex,quadruplicis,tertia
diff --git "a/res/lemmae/adiectiva/incomparabilia/qu\304\253ngenta.csv" "b/res/lemmae/adiectiva/incomparabilia/qu\304\253ngenta.csv"
new file mode 100644
index 0000000..7def27c
--- /dev/null
+++ "b/res/lemmae/adiectiva/incomparabilia/qu\304\253ngenta.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+quīngenta,quīngentōrum,autPrimusAutSecundus//pluralis
diff --git "a/res/lemmae/adiectiva/incomparabilia/qu\304\253nquiplex.csv" "b/res/lemmae/adiectiva/incomparabilia/qu\304\253nquiplex.csv"
new file mode 100644
index 0000000..29f9405
--- /dev/null
+++ "b/res/lemmae/adiectiva/incomparabilia/qu\304\253nquiplex.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+quīnquiplex,quīnquiplicis,tertia
diff --git "a/res/lemmae/adiectiva/incomparabilia/qu\304\253ntuplex.csv" "b/res/lemmae/adiectiva/incomparabilia/qu\304\253ntuplex.csv"
new file mode 100644
index 0000000..0c1fcd1
--- /dev/null
+++ "b/res/lemmae/adiectiva/incomparabilia/qu\304\253ntuplex.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+quīntuplex,quīntuplex,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/seplex.csv b/res/lemmae/adiectiva/incomparabilia/seplex.csv
new file mode 100644
index 0000000..36c7801
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/seplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+seplex,seplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/septemplex.csv b/res/lemmae/adiectiva/incomparabilia/septemplex.csv
new file mode 100644
index 0000000..0f917c1
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/septemplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+septemplex,septemplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/septimplex.csv b/res/lemmae/adiectiva/incomparabilia/septimplex.csv
new file mode 100644
index 0000000..16f4012
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/septimplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+septimplex,septimplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/septingenta.csv b/res/lemmae/adiectiva/incomparabilia/septingenta.csv
new file mode 100644
index 0000000..0099a50
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/septingenta.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+septingenta,septingentōrum,autPrimusAutSecundus//pluralis
diff --git a/res/lemmae/adiectiva/incomparabilia/sescenta.csv b/res/lemmae/adiectiva/incomparabilia/sescenta.csv
new file mode 100644
index 0000000..2c4136f
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/sescenta.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+sescenta,sescentōrum,autPrimusAutSecundus//pluralis
diff --git a/res/lemmae/adiectiva/incomparabilia/sexcenta.csv b/res/lemmae/adiectiva/incomparabilia/sexcenta.csv
new file mode 100644
index 0000000..ef3d247
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/sexcenta.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+sexcenta,sexcentōrum,autPrimusAutSecundus//pluralis
diff --git a/res/lemmae/adiectiva/incomparabilia/sextuplex.csv b/res/lemmae/adiectiva/incomparabilia/sextuplex.csv
new file mode 100644
index 0000000..1c9e9c7
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/sextuplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+sextuplex,sextuplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/sexuplex.csv b/res/lemmae/adiectiva/incomparabilia/sexuplex.csv
new file mode 100644
index 0000000..8566bfd
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/sexuplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+sexuplex,sexuplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/simplum.csv b/res/lemmae/adiectiva/incomparabilia/simplum.csv
new file mode 100644
index 0000000..fe88418
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/simplum.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+simplum,simplī,autPrimusAutSecundus/cumLitteraR
diff --git a/res/lemmae/adiectiva/incomparabilia/suum.csv b/res/lemmae/adiectiva/incomparabilia/suum.csv
new file mode 100644
index 0000000..26c7329
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/suum.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+suum,suī,autPrimusAutSecundus/cumLitteraR
diff --git "a/res/lemmae/adiectiva/incomparabilia/s\305\215lum.csv" "b/res/lemmae/adiectiva/incomparabilia/s\305\215lum.csv"
new file mode 100644
index 0000000..ab9fc4a
--- /dev/null
+++ "b/res/lemmae/adiectiva/incomparabilia/s\305\215lum.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+sōlum,sōlī,pronominalis/nominativusDirectus
diff --git a/res/lemmae/adiectiva/incomparabilia/terdecuplex.csv b/res/lemmae/adiectiva/incomparabilia/terdecuplex.csv
new file mode 100644
index 0000000..33be76d
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/terdecuplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+terdecuplex,terdecuplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/ternum.csv b/res/lemmae/adiectiva/incomparabilia/ternum.csv
new file mode 100644
index 0000000..4a671af
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/ternum.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+ternum,ternī,autPrimusAutSecundus/cumLitteraR
diff --git a/res/lemmae/adiectiva/incomparabilia/trecenta.csv b/res/lemmae/adiectiva/incomparabilia/trecenta.csv
new file mode 100644
index 0000000..08aae91
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/trecenta.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+trecenta,trecentōrum,autPrimusAutSecundus//pluralis
diff --git a/res/lemmae/adiectiva/incomparabilia/triplex.csv b/res/lemmae/adiectiva/incomparabilia/triplex.csv
new file mode 100644
index 0000000..fd2255e
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/triplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+triplex,triplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/tuum.csv b/res/lemmae/adiectiva/incomparabilia/tuum.csv
new file mode 100644
index 0000000..556ab4b
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/tuum.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+tuum,tuī,autPrimusAutSecundus/cumLitteraR
diff --git "a/res/lemmae/adiectiva/incomparabilia/t\305\215tum.csv" "b/res/lemmae/adiectiva/incomparabilia/t\305\215tum.csv"
new file mode 100644
index 0000000..7bf9b26
--- /dev/null
+++ "b/res/lemmae/adiectiva/incomparabilia/t\305\215tum.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+tōtum,tōtī,pronominalis/nominativusDirectus
diff --git a/res/lemmae/adiectiva/incomparabilia/ultrum.csv b/res/lemmae/adiectiva/incomparabilia/ultrum.csv
new file mode 100644
index 0000000..2ce2242
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/ultrum.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+ultrum,ultrī,pronominalis/cumLitteraR
diff --git a/res/lemmae/adiectiva/incomparabilia/undecemplex.csv b/res/lemmae/adiectiva/incomparabilia/undecemplex.csv
new file mode 100644
index 0000000..0f7473e
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/undecemplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+undecemplex,undecemplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/undecimplex.csv b/res/lemmae/adiectiva/incomparabilia/undecimplex.csv
new file mode 100644
index 0000000..4d03368
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/undecimplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+undecimplex,undecimplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/undecuplex.csv b/res/lemmae/adiectiva/incomparabilia/undecuplex.csv
new file mode 100644
index 0000000..3130c66
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/undecuplex.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+undecuplex,undecuplicis,tertia
diff --git a/res/lemmae/adiectiva/incomparabilia/vestrum.csv b/res/lemmae/adiectiva/incomparabilia/vestrum.csv
new file mode 100644
index 0000000..506eea8
--- /dev/null
+++ b/res/lemmae/adiectiva/incomparabilia/vestrum.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+vestrum,vestrī,autPrimusAutSecundus/cumLitteraR
diff --git "a/res/lemmae/adiectiva/incomparabilia/\305\253llum.csv" "b/res/lemmae/adiectiva/incomparabilia/\305\253llum.csv"
new file mode 100644
index 0000000..acc2391
--- /dev/null
+++ "b/res/lemmae/adiectiva/incomparabilia/\305\253llum.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+ūllum,ūllī,pronominalis/nominativusDirectus
diff --git "a/res/lemmae/adiectiva/incomparabilia/\305\253num.csv" "b/res/lemmae/adiectiva/incomparabilia/\305\253num.csv"
new file mode 100644
index 0000000..ce7514c
--- /dev/null
+++ "b/res/lemmae/adiectiva/incomparabilia/\305\253num.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+ūnum,ūnī,pronominalis
diff --git a/res/lemmae/adiectiva/magnum.csv b/res/lemmae/adiectiva/magnum.csv
new file mode 100644
index 0000000..44e8cee
--- /dev/null
+++ b/res/lemmae/adiectiva/magnum.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+magnum,maius,maximum,positivusAutPrimusAutSecundus
diff --git a/res/lemmae/adiectiva/novem.csv b/res/lemmae/adiectiva/novem.csv
new file mode 100644
index 0000000..cf14ad5
--- /dev/null
+++ b/res/lemmae/adiectiva/novem.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+novem,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/n\305\215n\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/n\305\215n\304\201gint\304\201.csv"
new file mode 100644
index 0000000..97a704c
--- /dev/null
+++ "b/res/lemmae/adiectiva/n\305\215n\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+nōnāgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/oct\305\215.csv" "b/res/lemmae/adiectiva/oct\305\215.csv"
new file mode 100644
index 0000000..e1c5ba8
--- /dev/null
+++ "b/res/lemmae/adiectiva/oct\305\215.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+octō,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/oct\305\215gint\304\201.csv" "b/res/lemmae/adiectiva/oct\305\215gint\304\201.csv"
new file mode 100644
index 0000000..d948a17
--- /dev/null
+++ "b/res/lemmae/adiectiva/oct\305\215gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+octōgintā,,indeclinabilis
diff --git a/res/lemmae/adiectiva/quadrigenta.csv b/res/lemmae/adiectiva/quadrigenta.csv
new file mode 100644
index 0000000..6992467
--- /dev/null
+++ b/res/lemmae/adiectiva/quadrigenta.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+quadrigenta,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/quadr\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/quadr\304\201gint\304\201.csv"
new file mode 100644
index 0000000..739a4c1
--- /dev/null
+++ "b/res/lemmae/adiectiva/quadr\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+quadrāgintā,,indeclinabilis
diff --git a/res/lemmae/adiectiva/quattuor.csv b/res/lemmae/adiectiva/quattuor.csv
new file mode 100644
index 0000000..794d881
--- /dev/null
+++ b/res/lemmae/adiectiva/quattuor.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+quattuor,,indeclinabilis
diff --git a/res/lemmae/adiectiva/quattuordecim.csv b/res/lemmae/adiectiva/quattuordecim.csv
new file mode 100644
index 0000000..8bc93db
--- /dev/null
+++ b/res/lemmae/adiectiva/quattuordecim.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+quattuordecim,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/qu\304\253ndecim.csv" "b/res/lemmae/adiectiva/qu\304\253ndecim.csv"
new file mode 100644
index 0000000..04250c5
--- /dev/null
+++ "b/res/lemmae/adiectiva/qu\304\253ndecim.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+quīndecim,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/qu\304\253nque.csv" "b/res/lemmae/adiectiva/qu\304\253nque.csv"
new file mode 100644
index 0000000..40d1734
--- /dev/null
+++ "b/res/lemmae/adiectiva/qu\304\253nque.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+quīnque,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/qu\304\253nqu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/qu\304\253nqu\304\201gint\304\201.csv"
new file mode 100644
index 0000000..d3cf384
--- /dev/null
+++ "b/res/lemmae/adiectiva/qu\304\253nqu\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+quīnquāgintā,,indeclinabilis
diff --git a/res/lemmae/adiectiva/septem.csv b/res/lemmae/adiectiva/septem.csv
new file mode 100644
index 0000000..d36cb2f
--- /dev/null
+++ b/res/lemmae/adiectiva/septem.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+septem,,indeclinabilis
diff --git a/res/lemmae/adiectiva/septemdecem.csv b/res/lemmae/adiectiva/septemdecem.csv
new file mode 100644
index 0000000..52a972a
--- /dev/null
+++ b/res/lemmae/adiectiva/septemdecem.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+septemdecem,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/septu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/septu\304\201gint\304\201.csv"
new file mode 100644
index 0000000..4c895b7
--- /dev/null
+++ "b/res/lemmae/adiectiva/septu\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+septuāgintā,,indeclinabilis
diff --git a/res/lemmae/adiectiva/sex.csv b/res/lemmae/adiectiva/sex.csv
new file mode 100644
index 0000000..72b30e3
--- /dev/null
+++ b/res/lemmae/adiectiva/sex.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+sex,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/sex\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/sex\304\201gint\304\201.csv"
new file mode 100644
index 0000000..c3d0802
--- /dev/null
+++ "b/res/lemmae/adiectiva/sex\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+sexāgintā,,indeclinabilis
diff --git a/res/lemmae/adiectiva/simplex.csv b/res/lemmae/adiectiva/simplex.csv
new file mode 100644
index 0000000..fa0566e
--- /dev/null
+++ b/res/lemmae/adiectiva/simplex.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+simplex,simplicius,simplicissimus,postivusTertius
diff --git "a/res/lemmae/adiectiva/s\304\223decim.csv" "b/res/lemmae/adiectiva/s\304\223decim.csv"
new file mode 100644
index 0000000..7e8bcdc
--- /dev/null
+++ "b/res/lemmae/adiectiva/s\304\223decim.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+sēdecim,,indeclinabilis
diff --git a/res/lemmae/adiectiva/trecentum.csv b/res/lemmae/adiectiva/trecentum.csv
new file mode 100644
index 0000000..6823ef3
--- /dev/null
+++ b/res/lemmae/adiectiva/trecentum.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+trecentum,,indeclinabilis
diff --git a/res/lemmae/adiectiva/tredecim.csv b/res/lemmae/adiectiva/tredecim.csv
new file mode 100644
index 0000000..1246c28
--- /dev/null
+++ b/res/lemmae/adiectiva/tredecim.csv
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+tredecim,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/tr\304\253gint\304\201.csv" "b/res/lemmae/adiectiva/tr\304\253gint\304\201.csv"
new file mode 100644
index 0000000..79646ab
--- /dev/null
+++ "b/res/lemmae/adiectiva/tr\304\253gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+trīgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/v\304\253gint\304\253.csv" "b/res/lemmae/adiectiva/v\304\253gint\304\253.csv"
new file mode 100644
index 0000000..a5bb9b0
--- /dev/null
+++ "b/res/lemmae/adiectiva/v\304\253gint\304\253.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+vīgintī,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/\305\253ndecim.csv" "b/res/lemmae/adiectiva/\305\253ndecim.csv"
new file mode 100644
index 0000000..01b16f8
--- /dev/null
+++ "b/res/lemmae/adiectiva/\305\253ndecim.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+ūndecim,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223centum.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223centum.csv"
new file mode 100644
index 0000000..a052768
--- /dev/null
+++ "b/res/lemmae/adiectiva/\305\253nd\304\223centum.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+ūndēcentum,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223n\305\215n\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223n\305\215n\304\201gint\304\201.csv"
new file mode 100644
index 0000000..27075c8
--- /dev/null
+++ "b/res/lemmae/adiectiva/\305\253nd\304\223n\305\215n\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+ūndēnōnāgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223oct\305\215gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223oct\305\215gint\304\201.csv"
new file mode 100644
index 0000000..96e0e33
--- /dev/null
+++ "b/res/lemmae/adiectiva/\305\253nd\304\223oct\305\215gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+ūndēoctōgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223quadr\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223quadr\304\201gint\304\201.csv"
new file mode 100644
index 0000000..241518b
--- /dev/null
+++ "b/res/lemmae/adiectiva/\305\253nd\304\223quadr\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+ūndēquadrāgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223qu\304\253nqu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223qu\304\253nqu\304\201gint\304\201.csv"
new file mode 100644
index 0000000..9b608b5
--- /dev/null
+++ "b/res/lemmae/adiectiva/\305\253nd\304\223qu\304\253nqu\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+ūndēquīnquāgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223sex\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223sex\304\201gint\304\201.csv"
new file mode 100644
index 0000000..3e6c10e
--- /dev/null
+++ "b/res/lemmae/adiectiva/\305\253nd\304\223sex\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+ūndēsexāgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223tr\304\253gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223tr\304\253gint\304\201.csv"
new file mode 100644
index 0000000..d485a44
--- /dev/null
+++ "b/res/lemmae/adiectiva/\305\253nd\304\223tr\304\253gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+ūndētrīgintā,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/\305\253nd\304\223v\304\253gint\304\253.csv" "b/res/lemmae/adiectiva/\305\253nd\304\223v\304\253gint\304\253.csv"
new file mode 100644
index 0000000..a4327f0
--- /dev/null
+++ "b/res/lemmae/adiectiva/\305\253nd\304\223v\304\253gint\304\253.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+ūndēvīgintī,,indeclinabilis
diff --git "a/res/lemmae/adiectiva/\305\253nseptu\304\201gint\304\201.csv" "b/res/lemmae/adiectiva/\305\253nseptu\304\201gint\304\201.csv"
new file mode 100644
index 0000000..854be3b
--- /dev/null
+++ "b/res/lemmae/adiectiva/\305\253nseptu\304\201gint\304\201.csv"
@@ -0,0 +1,2 @@
+postivus,comparativus,superlativus,versio
+ūnseptuāgintā,,indeclinabilis
diff --git a/res/lemmae/adverbia/bis.csv b/res/lemmae/adverbia/bis.csv
new file mode 100644
index 0000000..563e130
--- /dev/null
+++ b/res/lemmae/adverbia/bis.csv
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,bis
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/centi\304\223ns.csv" "b/res/lemmae/adverbia/centi\304\223ns.csv"
new file mode 100644
index 0000000..c869a29
--- /dev/null
+++ "b/res/lemmae/adverbia/centi\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,centiēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/centi\304\223s.csv" "b/res/lemmae/adverbia/centi\304\223s.csv"
new file mode 100644
index 0000000..d9991fd
--- /dev/null
+++ "b/res/lemmae/adverbia/centi\304\223s.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,centiēs
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/c\304\223terum.csv" "b/res/lemmae/adverbia/c\304\223terum.csv"
new file mode 100644
index 0000000..81bb235
--- /dev/null
+++ "b/res/lemmae/adverbia/c\304\223terum.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,cēterum
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/deci\304\223ns.csv" "b/res/lemmae/adverbia/deci\304\223ns.csv"
new file mode 100644
index 0000000..b0b927d
--- /dev/null
+++ "b/res/lemmae/adverbia/deci\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,deciēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/deci\304\223s.csv" "b/res/lemmae/adverbia/deci\304\223s.csv"
new file mode 100644
index 0000000..4d59335
--- /dev/null
+++ "b/res/lemmae/adverbia/deci\304\223s.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,deciēs
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/duodeci\304\223ns.csv" "b/res/lemmae/adverbia/duodeci\304\223ns.csv"
new file mode 100644
index 0000000..3e77d0f
--- /dev/null
+++ "b/res/lemmae/adverbia/duodeci\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,duodeciēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/duodeci\304\223s.csv" "b/res/lemmae/adverbia/duodeci\304\223s.csv"
new file mode 100644
index 0000000..cb53ef9
--- /dev/null
+++ "b/res/lemmae/adverbia/duodeci\304\223s.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,duodeciēs
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/duod\304\223tr\304\253gi\304\223ns.csv" "b/res/lemmae/adverbia/duod\304\223tr\304\253gi\304\223ns.csv"
new file mode 100644
index 0000000..b5a1e91
--- /dev/null
+++ "b/res/lemmae/adverbia/duod\304\223tr\304\253gi\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,duodētrīgiēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/m\304\253lli\304\223ns.csv" "b/res/lemmae/adverbia/m\304\253lli\304\223ns.csv"
new file mode 100644
index 0000000..6f1c981
--- /dev/null
+++ "b/res/lemmae/adverbia/m\304\253lli\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,mīlliēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/m\304\253lli\304\223s.csv" "b/res/lemmae/adverbia/m\304\253lli\304\223s.csv"
new file mode 100644
index 0000000..860f477
--- /dev/null
+++ "b/res/lemmae/adverbia/m\304\253lli\304\223s.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,mīlliēs
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/n\305\215n.csv" "b/res/lemmae/adverbia/n\305\215n.csv"
new file mode 100644
index 0000000..65f927c
--- /dev/null
+++ "b/res/lemmae/adverbia/n\305\215n.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,nōn
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/n\305\215ni\304\223ns.csv" "b/res/lemmae/adverbia/n\305\215ni\304\223ns.csv"
new file mode 100644
index 0000000..9d8a7e5
--- /dev/null
+++ "b/res/lemmae/adverbia/n\305\215ni\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,nōniēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/n\305\215ni\304\223s.csv" "b/res/lemmae/adverbia/n\305\215ni\304\223s.csv"
new file mode 100644
index 0000000..a0a31ad
--- /dev/null
+++ "b/res/lemmae/adverbia/n\305\215ni\304\223s.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,nōniēs
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/n\305\215nnumquam.csv" "b/res/lemmae/adverbia/n\305\215nnumquam.csv"
new file mode 100644
index 0000000..95d1d82
--- /dev/null
+++ "b/res/lemmae/adverbia/n\305\215nnumquam.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,nōnnumquam
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/n\305\215n\304\201gi\304\223ns.csv" "b/res/lemmae/adverbia/n\305\215n\304\201gi\304\223ns.csv"
new file mode 100644
index 0000000..64def6a
--- /dev/null
+++ "b/res/lemmae/adverbia/n\305\215n\304\201gi\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,nōnāgiēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/octi\304\223ns.csv" "b/res/lemmae/adverbia/octi\304\223ns.csv"
new file mode 100644
index 0000000..d971f87
--- /dev/null
+++ "b/res/lemmae/adverbia/octi\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,octiēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/oct\305\215gi\304\223ns.csv" "b/res/lemmae/adverbia/oct\305\215gi\304\223ns.csv"
new file mode 100644
index 0000000..5ba7287
--- /dev/null
+++ "b/res/lemmae/adverbia/oct\305\215gi\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,octōgiēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/ovi\304\223ns.csv" "b/res/lemmae/adverbia/ovi\304\223ns.csv"
new file mode 100644
index 0000000..8640b5e
--- /dev/null
+++ "b/res/lemmae/adverbia/ovi\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,oviēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/quadr\304\201gi\304\223ns.csv" "b/res/lemmae/adverbia/quadr\304\201gi\304\223ns.csv"
new file mode 100644
index 0000000..349aff9
--- /dev/null
+++ "b/res/lemmae/adverbia/quadr\304\201gi\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,quadrāgiēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/qu\304\253nqui\304\223ns.csv" "b/res/lemmae/adverbia/qu\304\253nqui\304\223ns.csv"
new file mode 100644
index 0000000..e51663c
--- /dev/null
+++ "b/res/lemmae/adverbia/qu\304\253nqui\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,quīnquiēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/septi\304\223ns.csv" "b/res/lemmae/adverbia/septi\304\223ns.csv"
new file mode 100644
index 0000000..5efac7c
--- /dev/null
+++ "b/res/lemmae/adverbia/septi\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,septiēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/sexi\304\223ns.csv" "b/res/lemmae/adverbia/sexi\304\223ns.csv"
new file mode 100644
index 0000000..6df6909
--- /dev/null
+++ "b/res/lemmae/adverbia/sexi\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,sexiēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/sex\304\201gi\304\223ns.csv" "b/res/lemmae/adverbia/sex\304\201gi\304\223ns.csv"
new file mode 100644
index 0000000..f0a539a
--- /dev/null
+++ "b/res/lemmae/adverbia/sex\304\201gi\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,sexāgiēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/terdeci\304\223ns.csv" "b/res/lemmae/adverbia/terdeci\304\223ns.csv"
new file mode 100644
index 0000000..8aeb3da
--- /dev/null
+++ "b/res/lemmae/adverbia/terdeci\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,terdeciēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/terdeci\304\223s.csv" "b/res/lemmae/adverbia/terdeci\304\223s.csv"
new file mode 100644
index 0000000..9958a20
--- /dev/null
+++ "b/res/lemmae/adverbia/terdeci\304\223s.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,terdeciēs
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/trecenti\304\223ns.csv" "b/res/lemmae/adverbia/trecenti\304\223ns.csv"
new file mode 100644
index 0000000..bf2c8ac
--- /dev/null
+++ "b/res/lemmae/adverbia/trecenti\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,trecentiēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/trecenti\304\223s.csv" "b/res/lemmae/adverbia/trecenti\304\223s.csv"
new file mode 100644
index 0000000..27e985d
--- /dev/null
+++ "b/res/lemmae/adverbia/trecenti\304\223s.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,trecentiēs
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/tredeci\304\223ns.csv" "b/res/lemmae/adverbia/tredeci\304\223ns.csv"
new file mode 100644
index 0000000..068d8d6
--- /dev/null
+++ "b/res/lemmae/adverbia/tredeci\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,tredeciēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/tredeci\304\223s.csv" "b/res/lemmae/adverbia/tredeci\304\223s.csv"
new file mode 100644
index 0000000..ce11a98
--- /dev/null
+++ "b/res/lemmae/adverbia/tredeci\304\223s.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,tredeciēs
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/tr\304\253ci\304\223s.csv" "b/res/lemmae/adverbia/tr\304\253ci\304\223s.csv"
new file mode 100644
index 0000000..4326d2a
--- /dev/null
+++ "b/res/lemmae/adverbia/tr\304\253ci\304\223s.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,trīciēs
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/v\304\253ci\304\223ns.csv" "b/res/lemmae/adverbia/v\304\253ci\304\223ns.csv"
new file mode 100644
index 0000000..e79be10
--- /dev/null
+++ "b/res/lemmae/adverbia/v\304\253ci\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,vīciēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/\305\253ndeci\304\223ns.csv" "b/res/lemmae/adverbia/\305\253ndeci\304\223ns.csv"
new file mode 100644
index 0000000..2436c4f
--- /dev/null
+++ "b/res/lemmae/adverbia/\305\253ndeci\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,ūndeciēns
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/\305\253ndeci\304\223s.csv" "b/res/lemmae/adverbia/\305\253ndeci\304\223s.csv"
new file mode 100644
index 0000000..259e6d9
--- /dev/null
+++ "b/res/lemmae/adverbia/\305\253ndeci\304\223s.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,ūndeciēs
\ No newline at end of file
diff --git "a/res/lemmae/adverbia/\305\253nd\304\223quadr\304\201gi\304\223ns.csv" "b/res/lemmae/adverbia/\305\253nd\304\223quadr\304\201gi\304\223ns.csv"
new file mode 100644
index 0000000..f01ee7a
--- /dev/null
+++ "b/res/lemmae/adverbia/\305\253nd\304\223quadr\304\201gi\304\223ns.csv"
@@ -0,0 +1,2 @@
+gradus,scriptum
+positivus,ūndēquadrāgiēns
\ No newline at end of file
diff --git "a/res/lemmae/nomina/Carth\304\201g\305\215.csv" "b/res/lemmae/nomina/Carth\304\201g\305\215.csv"
new file mode 100644
index 0000000..33676e5
--- /dev/null
+++ "b/res/lemmae/nomina/Carth\304\201g\305\215.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+Carthāgō,Carthāginis,tertiaAnimata//singularis
diff --git a/res/lemmae/nomina/adeptor.csv b/res/lemmae/nomina/adeptor.csv
new file mode 100644
index 0000000..501f2fd
--- /dev/null
+++ b/res/lemmae/nomina/adeptor.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+adeptor,adeptōris,tertiaAnimata
diff --git "a/res/lemmae/nomina/adeptr\304\253x.csv" "b/res/lemmae/nomina/adeptr\304\253x.csv"
new file mode 100644
index 0000000..a63ae61
--- /dev/null
+++ "b/res/lemmae/nomina/adeptr\304\253x.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+adeptrīx,adeptrīcis,tertiaAnimata
diff --git "a/res/lemmae/nomina/am\304\201tor.csv" "b/res/lemmae/nomina/am\304\201tor.csv"
new file mode 100644
index 0000000..8c51f50
--- /dev/null
+++ "b/res/lemmae/nomina/am\304\201tor.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+amātor,amātōris,tertiaAnimata
diff --git "a/res/lemmae/nomina/am\304\201tr\304\253x.csv" "b/res/lemmae/nomina/am\304\201tr\304\253x.csv"
new file mode 100644
index 0000000..97573df
--- /dev/null
+++ "b/res/lemmae/nomina/am\304\201tr\304\253x.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+amātrīx,amātrīcis,tertiaAnimata
diff --git a/res/lemmae/nomina/bes.csv b/res/lemmae/nomina/bes.csv
new file mode 100644
index 0000000..9eda0c7
--- /dev/null
+++ b/res/lemmae/nomina/bes.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+bes,bessis,tertiaAnimata
diff --git "a/res/lemmae/nomina/cent\304\223simus.csv" "b/res/lemmae/nomina/cent\304\223simus.csv"
new file mode 100644
index 0000000..e4a2c77
--- /dev/null
+++ "b/res/lemmae/nomina/cent\304\223simus.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+centēsimus,centēsimī,secundusMasculinus
diff --git "a/res/lemmae/nomina/c\304\223nsor.csv" "b/res/lemmae/nomina/c\304\223nsor.csv"
new file mode 100644
index 0000000..cf2bdb5
--- /dev/null
+++ "b/res/lemmae/nomina/c\304\223nsor.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+cēnsor,cēnsōris,tertiaAnimata
diff --git "a/res/lemmae/nomina/c\304\223nstr\304\253x.csv" "b/res/lemmae/nomina/c\304\223nstr\304\253x.csv"
new file mode 100644
index 0000000..860c06b
--- /dev/null
+++ "b/res/lemmae/nomina/c\304\223nstr\304\253x.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+cēnstrīx,cēnstrīcis,tertiaAnimata
diff --git "a/res/lemmae/nomina/c\305\215nsect\304\201tor.csv" "b/res/lemmae/nomina/c\305\215nsect\304\201tor.csv"
new file mode 100644
index 0000000..2b2fab0
--- /dev/null
+++ "b/res/lemmae/nomina/c\305\215nsect\304\201tor.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+cōnsectātor,cōnsectātōris,tertiaAnimata
diff --git "a/res/lemmae/nomina/c\305\215nsect\304\201tr\304\253x.csv" "b/res/lemmae/nomina/c\305\215nsect\304\201tr\304\253x.csv"
new file mode 100644
index 0000000..684f475
--- /dev/null
+++ "b/res/lemmae/nomina/c\305\215nsect\304\201tr\304\253x.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+cōnsectātrīx,cōnsectātrīcis,tertiaAnimata
diff --git a/res/lemmae/nomina/decima.csv b/res/lemmae/nomina/decima.csv
new file mode 100644
index 0000000..725e990
--- /dev/null
+++ b/res/lemmae/nomina/decima.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+decima,decimae,prima
diff --git a/res/lemmae/nomina/decimus.csv b/res/lemmae/nomina/decimus.csv
new file mode 100644
index 0000000..4ffb0cf
--- /dev/null
+++ b/res/lemmae/nomina/decimus.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+decimus,decimī,secundusMasculinus
diff --git a/res/lemmae/nomina/decunx.csv b/res/lemmae/nomina/decunx.csv
new file mode 100644
index 0000000..feb1413
--- /dev/null
+++ b/res/lemmae/nomina/decunx.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+decunx,decuncis,tertiaAnimata
diff --git a/res/lemmae/nomina/deunx.csv b/res/lemmae/nomina/deunx.csv
new file mode 100644
index 0000000..4e8ef1c
--- /dev/null
+++ b/res/lemmae/nomina/deunx.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+deunx,deuncis,tertiaAnimata
diff --git a/res/lemmae/nomina/dolor.csv b/res/lemmae/nomina/dolor.csv
new file mode 100644
index 0000000..12595b9
--- /dev/null
+++ b/res/lemmae/nomina/dolor.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+dolor,dolōris,tertiaAnimata
diff --git "a/res/lemmae/nomina/d\304\223l\304\223tor.csv" "b/res/lemmae/nomina/d\304\223l\304\223tor.csv"
new file mode 100644
index 0000000..8ed8fac
--- /dev/null
+++ "b/res/lemmae/nomina/d\304\223l\304\223tor.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+dēlētor,dēlētōris,tertiaAnimata
diff --git "a/res/lemmae/nomina/d\304\223l\304\223tr\304\253x.csv" "b/res/lemmae/nomina/d\304\223l\304\223tr\304\253x.csv"
new file mode 100644
index 0000000..c9b16fd
--- /dev/null
+++ "b/res/lemmae/nomina/d\304\223l\304\223tr\304\253x.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+dēlētrīx,dēlētrīcis,tertiaAnimata
diff --git "a/res/lemmae/nomina/d\304\253midius.csv" "b/res/lemmae/nomina/d\304\253midius.csv"
new file mode 100644
index 0000000..ab9121f
--- /dev/null
+++ "b/res/lemmae/nomina/d\304\253midius.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+dīmidius,dīmidiī,secundusMasculinus
diff --git "a/res/lemmae/nomina/d\305\215dr\304\201ns.csv" "b/res/lemmae/nomina/d\305\215dr\304\201ns.csv"
new file mode 100644
index 0000000..fa36bba
--- /dev/null
+++ "b/res/lemmae/nomina/d\305\215dr\304\201ns.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+dōdrāns,dōdrantis,tertiaAnimata
diff --git a/res/lemmae/nomina/labor.csv b/res/lemmae/nomina/labor.csv
new file mode 100644
index 0000000..30e49c4
--- /dev/null
+++ b/res/lemmae/nomina/labor.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+labor,labōris,tertiaAnimata
diff --git a/res/lemmae/nomina/lingua.csv b/res/lemmae/nomina/lingua.csv
new file mode 100644
index 0000000..debef65
--- /dev/null
+++ b/res/lemmae/nomina/lingua.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+lingua,linguae,prima
diff --git a/res/lemmae/nomina/nihil.csv b/res/lemmae/nomina/nihil.csv
new file mode 100644
index 0000000..48ecd40
--- /dev/null
+++ b/res/lemmae/nomina/nihil.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+nihil,,indeclinabilis
diff --git "a/res/lemmae/nomina/n\305\215nus.csv" "b/res/lemmae/nomina/n\305\215nus.csv"
new file mode 100644
index 0000000..eabbf56
--- /dev/null
+++ "b/res/lemmae/nomina/n\305\215nus.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+nōnus,nōnī,secundusMasculinus
diff --git "a/res/lemmae/nomina/oct\304\201ns.csv" "b/res/lemmae/nomina/oct\304\201ns.csv"
new file mode 100644
index 0000000..b33ff97
--- /dev/null
+++ "b/res/lemmae/nomina/oct\304\201ns.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+octāns,octantis,tertiaAnimata
diff --git a/res/lemmae/nomina/placitor.csv b/res/lemmae/nomina/placitor.csv
new file mode 100644
index 0000000..c02da8f
--- /dev/null
+++ b/res/lemmae/nomina/placitor.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+placitor,placitōris,tertiaAnimata
diff --git "a/res/lemmae/nomina/placitr\304\253x.csv" "b/res/lemmae/nomina/placitr\304\253x.csv"
new file mode 100644
index 0000000..3382819
--- /dev/null
+++ "b/res/lemmae/nomina/placitr\304\253x.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+placitrīx,placitrīcis,tertiaAnimata
diff --git a/res/lemmae/nomina/puer.csv b/res/lemmae/nomina/puer.csv
new file mode 100644
index 0000000..07e6b69
--- /dev/null
+++ b/res/lemmae/nomina/puer.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+puer,puerī,secundusMasculinus/nominativusDirectus
diff --git "a/res/lemmae/nomina/quadr\304\201ns.csv" "b/res/lemmae/nomina/quadr\304\201ns.csv"
new file mode 100644
index 0000000..32f8eff
--- /dev/null
+++ "b/res/lemmae/nomina/quadr\304\201ns.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+quadrāns,quadrantis,tertiaAnimata
diff --git "a/res/lemmae/nomina/quaes\304\253tor.csv" "b/res/lemmae/nomina/quaes\304\253tor.csv"
new file mode 100644
index 0000000..ac09c6a
--- /dev/null
+++ "b/res/lemmae/nomina/quaes\304\253tor.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+quaesītor,quaesītōris,tertiaAnimata
diff --git "a/res/lemmae/nomina/quaes\304\253tr\304\253x.csv" "b/res/lemmae/nomina/quaes\304\253tr\304\253x.csv"
new file mode 100644
index 0000000..144ca56
--- /dev/null
+++ "b/res/lemmae/nomina/quaes\304\253tr\304\253x.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+quaesītrīx,quaesītrīcis,tertiaAnimata
diff --git "a/res/lemmae/nomina/qu\304\253nt\304\201ns.csv" "b/res/lemmae/nomina/qu\304\253nt\304\201ns.csv"
new file mode 100644
index 0000000..daafcb0
--- /dev/null
+++ "b/res/lemmae/nomina/qu\304\253nt\304\201ns.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+quīntāns,quīntantis,tertiaAnimata
diff --git a/res/lemmae/nomina/septunx.csv b/res/lemmae/nomina/septunx.csv
new file mode 100644
index 0000000..83a7c80
--- /dev/null
+++ b/res/lemmae/nomina/septunx.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+septunx,septuncis,tertiaAnimata
diff --git "a/res/lemmae/nomina/sept\304\201ns.csv" "b/res/lemmae/nomina/sept\304\201ns.csv"
new file mode 100644
index 0000000..9ad57ce
--- /dev/null
+++ "b/res/lemmae/nomina/sept\304\201ns.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+sextāns,sextantis,tertiaAnimata
diff --git "a/res/lemmae/nomina/sext\304\201ns.csv" "b/res/lemmae/nomina/sext\304\201ns.csv"
new file mode 100644
index 0000000..b544f70
--- /dev/null
+++ "b/res/lemmae/nomina/sext\304\201ns.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+septāns,septantis,tertiaAnimata
diff --git "a/res/lemmae/nomina/s\304\223mis.csv" "b/res/lemmae/nomina/s\304\223mis.csv"
new file mode 100644
index 0000000..79ee0cc
--- /dev/null
+++ "b/res/lemmae/nomina/s\304\223mis.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+sēmis,sēmissis,tertiaAnimata
diff --git a/res/lemmae/nomina/tempus.csv b/res/lemmae/nomina/tempus.csv
new file mode 100644
index 0000000..3173cd7
--- /dev/null
+++ b/res/lemmae/nomina/tempus.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+tempus,temporis,tertiaNeutra
diff --git "a/res/lemmae/nomina/tri\304\223ns.csv" "b/res/lemmae/nomina/tri\304\223ns.csv"
new file mode 100644
index 0000000..0d22761
--- /dev/null
+++ "b/res/lemmae/nomina/tri\304\223ns.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+triēns,trientis,tertiaAnimata
diff --git "a/res/lemmae/nomina/vic\304\223nsimus.csv" "b/res/lemmae/nomina/vic\304\223nsimus.csv"
new file mode 100644
index 0000000..b040805
--- /dev/null
+++ "b/res/lemmae/nomina/vic\304\223nsimus.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+vicēnsimus,vicēnsimī,secundusMasculinus
diff --git "a/res/lemmae/nomina/vic\304\223nsumus.csv" "b/res/lemmae/nomina/vic\304\223nsumus.csv"
new file mode 100644
index 0000000..dafd29e
--- /dev/null
+++ "b/res/lemmae/nomina/vic\304\223nsumus.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+vicēnsumus,vicēnsumī,secundusMasculinus
diff --git "a/res/lemmae/nomina/vic\304\223simus.csv" "b/res/lemmae/nomina/vic\304\223simus.csv"
new file mode 100644
index 0000000..0ac4946
--- /dev/null
+++ "b/res/lemmae/nomina/vic\304\223simus.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+vicēsimus,vicēsimī,secundusMasculinus
diff --git "a/res/lemmae/nomina/vig\304\223nsimus.csv" "b/res/lemmae/nomina/vig\304\223nsimus.csv"
new file mode 100644
index 0000000..bb1fd1f
--- /dev/null
+++ "b/res/lemmae/nomina/vig\304\223nsimus.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+vigēnsimus,vigēnsimī,secundusMasculinus
diff --git "a/res/lemmae/nomina/vig\304\223simus.csv" "b/res/lemmae/nomina/vig\304\223simus.csv"
new file mode 100644
index 0000000..dd719d2
--- /dev/null
+++ "b/res/lemmae/nomina/vig\304\223simus.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+vigēsimus,vigēsimī,secundusMasculinus
diff --git a/res/lemmae/nomina/vir.csv b/res/lemmae/nomina/vir.csv
new file mode 100644
index 0000000..5231b4e
--- /dev/null
+++ b/res/lemmae/nomina/vir.csv
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+vir,virī,secundusMasculinus
diff --git "a/res/lemmae/nomina/volupt\304\201s.csv" "b/res/lemmae/nomina/volupt\304\201s.csv"
new file mode 100644
index 0000000..6256da8
--- /dev/null
+++ "b/res/lemmae/nomina/volupt\304\201s.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+voluptās,voluptatis,tertiaAnimata
diff --git "a/res/lemmae/nomina/\304\200d\304\201m.csv" "b/res/lemmae/nomina/\304\200d\304\201m.csv"
new file mode 100644
index 0000000..de3978d
--- /dev/null
+++ "b/res/lemmae/nomina/\304\200d\304\201m.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+Ādām,,indeclinabilis
diff --git "a/res/lemmae/nomina/\305\253ndecimus.csv" "b/res/lemmae/nomina/\305\253ndecimus.csv"
new file mode 100644
index 0000000..94ca1c9
--- /dev/null
+++ "b/res/lemmae/nomina/\305\253ndecimus.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+ūndecimus,ūndecimī,secundusMasculinus
diff --git "a/res/lemmae/nomina/\305\253nica.csv" "b/res/lemmae/nomina/\305\253nica.csv"
new file mode 100644
index 0000000..3735a88
--- /dev/null
+++ "b/res/lemmae/nomina/\305\253nica.csv"
@@ -0,0 +1,2 @@
+nominativus,genitivus,versio
+ūnica,ūnicae,prima
diff --git a/res/lemmae/numeramina/C.csv b/res/lemmae/numeramina/C.csv
new file mode 100644
index 0000000..3edbf6c
--- /dev/null
+++ b/res/lemmae/numeramina/C.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+C,centum,centēsimum,centiēs,centēnum,centuplex,centēsimus
diff --git a/res/lemmae/numeramina/CC.csv b/res/lemmae/numeramina/CC.csv
new file mode 100644
index 0000000..c3c0a52
--- /dev/null
+++ b/res/lemmae/numeramina/CC.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+CC,ducenta,ducentēsimum,,ducēnum,,
diff --git a/res/lemmae/numeramina/CCC.csv b/res/lemmae/numeramina/CCC.csv
new file mode 100644
index 0000000..b7a4366
--- /dev/null
+++ b/res/lemmae/numeramina/CCC.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+CCC,trecenta,trecentēsimum,,trecēnum,,
diff --git a/res/lemmae/numeramina/CD.csv b/res/lemmae/numeramina/CD.csv
new file mode 100644
index 0000000..b50ca36
--- /dev/null
+++ b/res/lemmae/numeramina/CD.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+CD,quadringenta,quadringentēsimum,,quadringentēnum,,
diff --git a/res/lemmae/numeramina/CM.csv b/res/lemmae/numeramina/CM.csv
new file mode 100644
index 0000000..ea47f36
--- /dev/null
+++ b/res/lemmae/numeramina/CM.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum, multiplicativum,fractionale
+CM,nōngenta,nōngentēsimum,,nōngēnum,,
diff --git a/res/lemmae/numeramina/D.csv b/res/lemmae/numeramina/D.csv
new file mode 100644
index 0000000..681aa34
--- /dev/null
+++ b/res/lemmae/numeramina/D.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+D,quīngenta,quīngentēsimum,,quīngēnum,,
diff --git a/res/lemmae/numeramina/DC.csv b/res/lemmae/numeramina/DC.csv
new file mode 100644
index 0000000..937d505
--- /dev/null
+++ b/res/lemmae/numeramina/DC.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+DC,sescenta,sescentēsimum,,sescēnum,,
diff --git a/res/lemmae/numeramina/DCC.csv b/res/lemmae/numeramina/DCC.csv
new file mode 100644
index 0000000..5f0ec6f
--- /dev/null
+++ b/res/lemmae/numeramina/DCC.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+DCC,septingenta,septingentēsimum,,septingēnum,,
diff --git a/res/lemmae/numeramina/DCCC.csv b/res/lemmae/numeramina/DCCC.csv
new file mode 100644
index 0000000..ac9b029
--- /dev/null
+++ b/res/lemmae/numeramina/DCCC.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum, fractionale
+DCCC,octogenta,octingentēsimum,,octingēnum,,
diff --git a/res/lemmae/numeramina/I.csv b/res/lemmae/numeramina/I.csv
new file mode 100644
index 0000000..46b773f
--- /dev/null
+++ b/res/lemmae/numeramina/I.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+I,ūnum,prīmum,semel,singulum,simplex,
diff --git a/res/lemmae/numeramina/II.csv b/res/lemmae/numeramina/II.csv
new file mode 100644
index 0000000..951e6bc
--- /dev/null
+++ b/res/lemmae/numeramina/II.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+II,duo,secundum,bis,bīnum,duplex,sēmis
diff --git a/res/lemmae/numeramina/III.csv b/res/lemmae/numeramina/III.csv
new file mode 100644
index 0000000..6d6be1d
--- /dev/null
+++ b/res/lemmae/numeramina/III.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distrivutivum,multiplicativum,fractionale
+III,tria,tertium,ter,ternum,triplex,triēns
diff --git a/res/lemmae/numeramina/IV.csv b/res/lemmae/numeramina/IV.csv
new file mode 100644
index 0000000..8ad0d94
--- /dev/null
+++ b/res/lemmae/numeramina/IV.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+IV,quattuor,quārtum,quater,quaternum,quadruplex,quadrāns
diff --git a/res/lemmae/numeramina/IX.csv b/res/lemmae/numeramina/IX.csv
new file mode 100644
index 0000000..25815b8
--- /dev/null
+++ b/res/lemmae/numeramina/IX.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+IX,novem,nōnum,noviēns,novēnum,novemplex,nōnus
diff --git a/res/lemmae/numeramina/L.csv b/res/lemmae/numeramina/L.csv
new file mode 100644
index 0000000..9439794
--- /dev/null
+++ b/res/lemmae/numeramina/L.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+L,quīnquāgintā,quīnquāgēsimum,quīnquāgiēs,quīnquāgēnum,,
diff --git a/res/lemmae/numeramina/LIX.csv b/res/lemmae/numeramina/LIX.csv
new file mode 100644
index 0000000..529db57
--- /dev/null
+++ b/res/lemmae/numeramina/LIX.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+LIX,ūndēsexāgintā,ūndēsexāgēsimum,,,,
diff --git a/res/lemmae/numeramina/LVIII.csv b/res/lemmae/numeramina/LVIII.csv
new file mode 100644
index 0000000..c540608
--- /dev/null
+++ b/res/lemmae/numeramina/LVIII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+LVIII,duodēsexāgintā,duodēsexāgēsimum,,,,
diff --git a/res/lemmae/numeramina/LX.csv b/res/lemmae/numeramina/LX.csv
new file mode 100644
index 0000000..d0314ce
--- /dev/null
+++ b/res/lemmae/numeramina/LX.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+LX,sexāgintā,sexāgēsimum,sexāgiēs,sexāgēnum,,
diff --git a/res/lemmae/numeramina/LXVIII.csv b/res/lemmae/numeramina/LXVIII.csv
new file mode 100644
index 0000000..88c2cbb
--- /dev/null
+++ b/res/lemmae/numeramina/LXVIII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,adverbium,distributivum,multiplicativum,fractionale
+LXVIII,duodēseptuāgintā,duodēseptuāgēsimum,,,,
diff --git a/res/lemmae/numeramina/LXX.csv b/res/lemmae/numeramina/LXX.csv
new file mode 100644
index 0000000..a0414f6
--- /dev/null
+++ b/res/lemmae/numeramina/LXX.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+LXX,septuāgintā,septuāgēsimum,septuāgiēs,septuāgēnum,,
diff --git a/res/lemmae/numeramina/LXXIX.csv b/res/lemmae/numeramina/LXXIX.csv
new file mode 100644
index 0000000..8883fd6
--- /dev/null
+++ b/res/lemmae/numeramina/LXXIX.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+LXXIX,ūndeoctōgintā,,,,,
diff --git a/res/lemmae/numeramina/LXXVIII.csv b/res/lemmae/numeramina/LXXVIII.csv
new file mode 100644
index 0000000..62d51ce
--- /dev/null
+++ b/res/lemmae/numeramina/LXXVIII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+LXXVIII,duodeoctōginta,,,,,
diff --git a/res/lemmae/numeramina/LXXX.csv b/res/lemmae/numeramina/LXXX.csv
new file mode 100644
index 0000000..aa7edfa
--- /dev/null
+++ b/res/lemmae/numeramina/LXXX.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+LXXX,octōgintā,octōgēsimum,octōgiēs,octōgēnum,,
diff --git a/res/lemmae/numeramina/LXXXIX.csv b/res/lemmae/numeramina/LXXXIX.csv
new file mode 100644
index 0000000..022dccf
--- /dev/null
+++ b/res/lemmae/numeramina/LXXXIX.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+LXXXIX,ūndēnōnāgintā,,,,,
diff --git a/res/lemmae/numeramina/LXXXVIII.csv b/res/lemmae/numeramina/LXXXVIII.csv
new file mode 100644
index 0000000..9ff3525
--- /dev/null
+++ b/res/lemmae/numeramina/LXXXVIII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+LXXXVIII,duodēnōnāginta,,,,,
diff --git a/res/lemmae/numeramina/M.csv b/res/lemmae/numeramina/M.csv
new file mode 100644
index 0000000..ba0ddc5
--- /dev/null
+++ b/res/lemmae/numeramina/M.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+M,mīlle,mīllēsimum,mīlliēs,mīllēnum,,
diff --git a/res/lemmae/numeramina/N.csv b/res/lemmae/numeramina/N.csv
new file mode 100644
index 0000000..40165b5
--- /dev/null
+++ b/res/lemmae/numeramina/N.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+N,nūllum,nōn,,,nihil
diff --git a/res/lemmae/numeramina/V.csv b/res/lemmae/numeramina/V.csv
new file mode 100644
index 0000000..3446045
--- /dev/null
+++ b/res/lemmae/numeramina/V.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+V,quīnque,quīntum,quīnquiēs,quīnum,quīnquiplex,quīntāns
diff --git a/res/lemmae/numeramina/VI.csv b/res/lemmae/numeramina/VI.csv
new file mode 100644
index 0000000..8944dd8
--- /dev/null
+++ b/res/lemmae/numeramina/VI.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+VI,sex,sextum,sexiēs,sēnum,sexuplex,sextāns
diff --git a/res/lemmae/numeramina/VII.csv b/res/lemmae/numeramina/VII.csv
new file mode 100644
index 0000000..b009158
--- /dev/null
+++ b/res/lemmae/numeramina/VII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+VII,septem,septeimum,septiēs,septēnum,septuplex,septāns
diff --git a/res/lemmae/numeramina/VIII.csv b/res/lemmae/numeramina/VIII.csv
new file mode 100644
index 0000000..c9c9a0c
--- /dev/null
+++ b/res/lemmae/numeramina/VIII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+VIII,octō,octāvum,octiēs,octōnum,octuplex,octāns
diff --git a/res/lemmae/numeramina/X.csv b/res/lemmae/numeramina/X.csv
new file mode 100644
index 0000000..58d993a
--- /dev/null
+++ b/res/lemmae/numeramina/X.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+X,decem,decimum,deciēs,dēnum,decemplex,decima
diff --git a/res/lemmae/numeramina/XC.csv b/res/lemmae/numeramina/XC.csv
new file mode 100644
index 0000000..54c9544
--- /dev/null
+++ b/res/lemmae/numeramina/XC.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XC,nōnāgintā,nōnāgēsimum,nōnāgiēns,nōnāgēnum,,
diff --git a/res/lemmae/numeramina/XCIX.csv b/res/lemmae/numeramina/XCIX.csv
new file mode 100644
index 0000000..c949122
--- /dev/null
+++ b/res/lemmae/numeramina/XCIX.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XCIX,ūndēcentum,ūndēcentēsimum,,,,
diff --git a/res/lemmae/numeramina/XCVIII.csv b/res/lemmae/numeramina/XCVIII.csv
new file mode 100644
index 0000000..9d064af
--- /dev/null
+++ b/res/lemmae/numeramina/XCVIII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XCVIII,duodēcentum,duodēcentēsimum,,,,
diff --git a/res/lemmae/numeramina/XI.csv b/res/lemmae/numeramina/XI.csv
new file mode 100644
index 0000000..5fe73d9
--- /dev/null
+++ b/res/lemmae/numeramina/XI.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XI,ūndecim,ūndecimum,ūndeciēs,ūndēnum,ūndecemplex,ūndecimus
diff --git a/res/lemmae/numeramina/XII.csv b/res/lemmae/numeramina/XII.csv
new file mode 100644
index 0000000..1a4f038
--- /dev/null
+++ b/res/lemmae/numeramina/XII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XII,duodecim,duodecimum,duodeciēs,duodēnum,duodecimplex,uncia
diff --git a/res/lemmae/numeramina/XIII.csv b/res/lemmae/numeramina/XIII.csv
new file mode 100644
index 0000000..2cf7f3c
--- /dev/null
+++ b/res/lemmae/numeramina/XIII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XIII,tredecim,tertiumdecimum,terdeciēs,terdēnum,terdecemplex,tertiusdecimus
diff --git a/res/lemmae/numeramina/XIV.csv b/res/lemmae/numeramina/XIV.csv
new file mode 100644
index 0000000..0ecabc1
--- /dev/null
+++ b/res/lemmae/numeramina/XIV.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XIV,quattuordecim,quārtumdecimum,,,,
diff --git a/res/lemmae/numeramina/XIX.csv b/res/lemmae/numeramina/XIX.csv
new file mode 100644
index 0000000..3b5fecc
--- /dev/null
+++ b/res/lemmae/numeramina/XIX.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XIX,ūndēvīgintī,ūndēvīcēsimum,,,,
diff --git a/res/lemmae/numeramina/XL.csv b/res/lemmae/numeramina/XL.csv
new file mode 100644
index 0000000..21cefc4
--- /dev/null
+++ b/res/lemmae/numeramina/XL.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XL,quadrāgintā,quadrāgēsimum,quadrāgiēs,quadrāgēnum,,
diff --git a/res/lemmae/numeramina/XLIX.csv b/res/lemmae/numeramina/XLIX.csv
new file mode 100644
index 0000000..e5c73e6
--- /dev/null
+++ b/res/lemmae/numeramina/XLIX.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XLIX,ūndēquīnquāgintā,ūndēquīnquāgēsimum,,,,
diff --git a/res/lemmae/numeramina/XLVIII.csv b/res/lemmae/numeramina/XLVIII.csv
new file mode 100644
index 0000000..fc7dd76
--- /dev/null
+++ b/res/lemmae/numeramina/XLVIII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XLVIII,duodēquīnquāgintā,duodēquīnquāgēsimum,,duodēquīnquāgēnum,,
diff --git a/res/lemmae/numeramina/XV.csv b/res/lemmae/numeramina/XV.csv
new file mode 100644
index 0000000..aa689d8
--- /dev/null
+++ b/res/lemmae/numeramina/XV.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XV,quīndecim,quīntumdecimum,,,,
diff --git a/res/lemmae/numeramina/XVI.csv b/res/lemmae/numeramina/XVI.csv
new file mode 100644
index 0000000..89940ae
--- /dev/null
+++ b/res/lemmae/numeramina/XVI.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XVI,sēdecim,sextumdecimum,,,,
diff --git a/res/lemmae/numeramina/XVII.csv b/res/lemmae/numeramina/XVII.csv
new file mode 100644
index 0000000..5a8f6eb
--- /dev/null
+++ b/res/lemmae/numeramina/XVII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XVII,septemdecem,septimumdecimum,,,,
diff --git a/res/lemmae/numeramina/XVIII.csv b/res/lemmae/numeramina/XVIII.csv
new file mode 100644
index 0000000..38a4939
--- /dev/null
+++ b/res/lemmae/numeramina/XVIII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XVIII,duodēvīgintī,duodēvīcēsimum,,duodēvīcēnum,,
diff --git a/res/lemmae/numeramina/XX.csv b/res/lemmae/numeramina/XX.csv
new file mode 100644
index 0000000..ccb2a82
--- /dev/null
+++ b/res/lemmae/numeramina/XX.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XX,vīgintī,vīgēsimum,vīciēs,vīgēnum,,vīgēsimus
diff --git a/res/lemmae/numeramina/XXIX.csv b/res/lemmae/numeramina/XXIX.csv
new file mode 100644
index 0000000..ce5fa53
--- /dev/null
+++ b/res/lemmae/numeramina/XXIX.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XXIX,ūndētrīgintā,ūndētrīcēsimum,,,,
diff --git a/res/lemmae/numeramina/XXVIII.csv b/res/lemmae/numeramina/XXVIII.csv
new file mode 100644
index 0000000..d19b3d1
--- /dev/null
+++ b/res/lemmae/numeramina/XXVIII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XXVIII,duodētrīgintā,duodētrīgēsimum,duodētrīgiēns,,,
diff --git a/res/lemmae/numeramina/XXX.csv b/res/lemmae/numeramina/XXX.csv
new file mode 100644
index 0000000..e6661fe
--- /dev/null
+++ b/res/lemmae/numeramina/XXX.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XXX,trīgintā,trīcēsimum,trīciēs,trīgēnum,,
diff --git a/res/lemmae/numeramina/XXXIV.csv b/res/lemmae/numeramina/XXXIV.csv
new file mode 100644
index 0000000..1cd7078
--- /dev/null
+++ b/res/lemmae/numeramina/XXXIV.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XXXIX,ūndēquadrāgintā,ūndēquadrāgēsimum,ūndēquadrāgiēns,,,
diff --git a/res/lemmae/numeramina/XXXVIII.csv b/res/lemmae/numeramina/XXXVIII.csv
new file mode 100644
index 0000000..9b20471
--- /dev/null
+++ b/res/lemmae/numeramina/XXXVIII.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+XXXVIII,duodēquadrāgintā,duodēquadrāgēsimum,,duodēquādrāgēnum,,
diff --git a/res/lemmae/numeramina/|M|.csv b/res/lemmae/numeramina/|M|.csv
new file mode 100644
index 0000000..0df5f3f
--- /dev/null
+++ b/res/lemmae/numeramina/|M|.csv
@@ -0,0 +1,2 @@
+numerus,cardinale,ordinale,adverbium,distributivum,multiplicativum,fractionale
+|M|,milliō,milliōnēsimum
diff --git a/res/lemmae/verba/abante.csv b/res/lemmae/verba/abante.csv
new file mode 100644
index 0000000..d4c9d44
--- /dev/null
+++ b/res/lemmae/verba/abante.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,abante
diff --git a/res/lemmae/verba/absque.csv b/res/lemmae/verba/absque.csv
new file mode 100644
index 0000000..0c7c1ff
--- /dev/null
+++ b/res/lemmae/verba/absque.csv
@@ -0,0 +1,3 @@
+categoria,scriptum
+praepositio,absque
+
diff --git a/res/lemmae/verba/abusque.csv b/res/lemmae/verba/abusque.csv
new file mode 100644
index 0000000..5fdd5b3
--- /dev/null
+++ b/res/lemmae/verba/abusque.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,abusque
diff --git a/res/lemmae/verba/ad.csv b/res/lemmae/verba/ad.csv
new file mode 100644
index 0000000..42c400c
--- /dev/null
+++ b/res/lemmae/verba/ad.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,ad
diff --git a/res/lemmae/verba/ante.csv b/res/lemmae/verba/ante.csv
new file mode 100644
index 0000000..0dc12f5
--- /dev/null
+++ b/res/lemmae/verba/ante.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,ante
diff --git a/res/lemmae/verba/apud.csv b/res/lemmae/verba/apud.csv
new file mode 100644
index 0000000..72f9b51
--- /dev/null
+++ b/res/lemmae/verba/apud.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,apud
diff --git a/res/lemmae/verba/cata.csv b/res/lemmae/verba/cata.csv
new file mode 100644
index 0000000..489d951
--- /dev/null
+++ b/res/lemmae/verba/cata.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,cata
diff --git a/res/lemmae/verba/circiter.csv b/res/lemmae/verba/circiter.csv
new file mode 100644
index 0000000..eb7b4c8
--- /dev/null
+++ b/res/lemmae/verba/circiter.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,circiter
diff --git a/res/lemmae/verba/circum.csv b/res/lemmae/verba/circum.csv
new file mode 100644
index 0000000..3b5e9ea
--- /dev/null
+++ b/res/lemmae/verba/circum.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,circum
diff --git a/res/lemmae/verba/cis.csv b/res/lemmae/verba/cis.csv
new file mode 100644
index 0000000..bfea144
--- /dev/null
+++ b/res/lemmae/verba/cis.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,cis
diff --git a/res/lemmae/verba/clam.csv b/res/lemmae/verba/clam.csv
new file mode 100644
index 0000000..37cb1fc
--- /dev/null
+++ b/res/lemmae/verba/clam.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,clam
diff --git a/res/lemmae/verba/cum.csv b/res/lemmae/verba/cum.csv
new file mode 100644
index 0000000..1250f4b
--- /dev/null
+++ b/res/lemmae/verba/cum.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,cum
diff --git "a/res/lemmae/verba/c\305\215ram.csv" "b/res/lemmae/verba/c\305\215ram.csv"
new file mode 100644
index 0000000..7991996
--- /dev/null
+++ "b/res/lemmae/verba/c\305\215ram.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,cōram
\ No newline at end of file
diff --git "a/res/lemmae/verba/d\304\223.csv" "b/res/lemmae/verba/d\304\223.csv"
new file mode 100644
index 0000000..513a76d
--- /dev/null
+++ "b/res/lemmae/verba/d\304\223.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,dē
\ No newline at end of file
diff --git a/res/lemmae/verba/ecce.csv b/res/lemmae/verba/ecce.csv
new file mode 100644
index 0000000..67d5cfc
--- /dev/null
+++ b/res/lemmae/verba/ecce.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+interiectio,ecce
diff --git "a/res/lemmae/verba/erg\304\201.csv" "b/res/lemmae/verba/erg\304\201.csv"
new file mode 100644
index 0000000..e476690
--- /dev/null
+++ "b/res/lemmae/verba/erg\304\201.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+contiunctio,ergā
diff --git "a/res/lemmae/verba/erg\305\215.csv" "b/res/lemmae/verba/erg\305\215.csv"
new file mode 100644
index 0000000..98110f9
--- /dev/null
+++ "b/res/lemmae/verba/erg\305\215.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+contiunctio,ergō
diff --git a/res/lemmae/verba/et.csv b/res/lemmae/verba/et.csv
new file mode 100644
index 0000000..8a12e62
--- /dev/null
+++ b/res/lemmae/verba/et.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+coniunctio,et
diff --git "a/res/lemmae/verba/extr\304\201.csv" "b/res/lemmae/verba/extr\304\201.csv"
new file mode 100644
index 0000000..b206176
--- /dev/null
+++ "b/res/lemmae/verba/extr\304\201.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,extrā
\ No newline at end of file
diff --git a/res/lemmae/verba/in.csv b/res/lemmae/verba/in.csv
new file mode 100644
index 0000000..f12736e
--- /dev/null
+++ b/res/lemmae/verba/in.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,in
diff --git a/res/lemmae/verba/inter.csv b/res/lemmae/verba/inter.csv
new file mode 100644
index 0000000..aabd9d3
--- /dev/null
+++ b/res/lemmae/verba/inter.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,inter
diff --git "a/res/lemmae/verba/intr\304\201.csv" "b/res/lemmae/verba/intr\304\201.csv"
new file mode 100644
index 0000000..839965c
--- /dev/null
+++ "b/res/lemmae/verba/intr\304\201.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,intrā
\ No newline at end of file
diff --git "a/res/lemmae/verba/i\305\253xt\304\201.csv" "b/res/lemmae/verba/i\305\253xt\304\201.csv"
new file mode 100644
index 0000000..bd2455c
--- /dev/null
+++ "b/res/lemmae/verba/i\305\253xt\304\201.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,iūxtā
\ No newline at end of file
diff --git a/res/lemmae/verba/ly.csv b/res/lemmae/verba/ly.csv
new file mode 100644
index 0000000..3f32972
--- /dev/null
+++ b/res/lemmae/verba/ly.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+articulum,ly
diff --git a/res/lemmae/verba/ob.csv b/res/lemmae/verba/ob.csv
new file mode 100644
index 0000000..771a3f7
--- /dev/null
+++ b/res/lemmae/verba/ob.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,ob
diff --git a/res/lemmae/verba/palam.csv b/res/lemmae/verba/palam.csv
new file mode 100644
index 0000000..0382cb7
--- /dev/null
+++ b/res/lemmae/verba/palam.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,palam
diff --git a/res/lemmae/verba/penes.csv b/res/lemmae/verba/penes.csv
new file mode 100644
index 0000000..796fa64
--- /dev/null
+++ b/res/lemmae/verba/penes.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,penes
diff --git a/res/lemmae/verba/per.csv b/res/lemmae/verba/per.csv
new file mode 100644
index 0000000..de6bfbf
--- /dev/null
+++ b/res/lemmae/verba/per.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,per
diff --git a/res/lemmae/verba/post.csv b/res/lemmae/verba/post.csv
new file mode 100644
index 0000000..2e367f9
--- /dev/null
+++ b/res/lemmae/verba/post.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,post
diff --git a/res/lemmae/verba/prae.csv b/res/lemmae/verba/prae.csv
new file mode 100644
index 0000000..73eb390
--- /dev/null
+++ b/res/lemmae/verba/prae.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,prae
diff --git a/res/lemmae/verba/prope.csv b/res/lemmae/verba/prope.csv
new file mode 100644
index 0000000..fe6ce64
--- /dev/null
+++ b/res/lemmae/verba/prope.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,prope
diff --git a/res/lemmae/verba/propter.csv b/res/lemmae/verba/propter.csv
new file mode 100644
index 0000000..d8091d6
--- /dev/null
+++ b/res/lemmae/verba/propter.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,propter
diff --git "a/res/lemmae/verba/pr\305\215.csv" "b/res/lemmae/verba/pr\305\215.csv"
new file mode 100644
index 0000000..532044d
--- /dev/null
+++ "b/res/lemmae/verba/pr\305\215.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,prō
\ No newline at end of file
diff --git "a/res/lemmae/verba/p\305\215ne.csv" "b/res/lemmae/verba/p\305\215ne.csv"
new file mode 100644
index 0000000..6bbea0d
--- /dev/null
+++ "b/res/lemmae/verba/p\305\215ne.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,pōne
\ No newline at end of file
diff --git a/res/lemmae/verba/quia.csv b/res/lemmae/verba/quia.csv
new file mode 100644
index 0000000..8a4bad6
--- /dev/null
+++ b/res/lemmae/verba/quia.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+coniunctio,quia
diff --git a/res/lemmae/verba/secundum.csv b/res/lemmae/verba/secundum.csv
new file mode 100644
index 0000000..ebc8160
--- /dev/null
+++ b/res/lemmae/verba/secundum.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,secundum
diff --git a/res/lemmae/verba/sed.csv b/res/lemmae/verba/sed.csv
new file mode 100644
index 0000000..04a79a5
--- /dev/null
+++ b/res/lemmae/verba/sed.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+coniunctio,sed
diff --git a/res/lemmae/verba/sine.csv b/res/lemmae/verba/sine.csv
new file mode 100644
index 0000000..7a82e4d
--- /dev/null
+++ b/res/lemmae/verba/sine.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,sine
diff --git a/res/lemmae/verba/sub.csv b/res/lemmae/verba/sub.csv
new file mode 100644
index 0000000..4f84c05
--- /dev/null
+++ b/res/lemmae/verba/sub.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,sub
diff --git a/res/lemmae/verba/subter.csv b/res/lemmae/verba/subter.csv
new file mode 100644
index 0000000..9861cbd
--- /dev/null
+++ b/res/lemmae/verba/subter.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,subter
diff --git a/res/lemmae/verba/super.csv b/res/lemmae/verba/super.csv
new file mode 100644
index 0000000..e0fc2a9
--- /dev/null
+++ b/res/lemmae/verba/super.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,super
diff --git "a/res/lemmae/verba/supr\304\201.csv" "b/res/lemmae/verba/supr\304\201.csv"
new file mode 100644
index 0000000..cb53a59
--- /dev/null
+++ "b/res/lemmae/verba/supr\304\201.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,suprā
\ No newline at end of file
diff --git a/res/lemmae/verba/tenus.csv b/res/lemmae/verba/tenus.csv
new file mode 100644
index 0000000..7115203
--- /dev/null
+++ b/res/lemmae/verba/tenus.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,tenus
diff --git "a/res/lemmae/verba/tr\304\201ns.csv" "b/res/lemmae/verba/tr\304\201ns.csv"
new file mode 100644
index 0000000..70f97b4
--- /dev/null
+++ "b/res/lemmae/verba/tr\304\201ns.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,trāns
\ No newline at end of file
diff --git "a/res/lemmae/verba/ultr\304\201.csv" "b/res/lemmae/verba/ultr\304\201.csv"
new file mode 100644
index 0000000..edb136a
--- /dev/null
+++ "b/res/lemmae/verba/ultr\304\201.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,ultrā
\ No newline at end of file
diff --git a/res/lemmae/verba/versus.csv b/res/lemmae/verba/versus.csv
new file mode 100644
index 0000000..f879751
--- /dev/null
+++ b/res/lemmae/verba/versus.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,versus
\ No newline at end of file
diff --git a/res/lemmae/verba/vice.csv b/res/lemmae/verba/vice.csv
new file mode 100644
index 0000000..10f230e
--- /dev/null
+++ b/res/lemmae/verba/vice.csv
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,vice
\ No newline at end of file
diff --git "a/res/lemmae/verba/\304\201.csv" "b/res/lemmae/verba/\304\201.csv"
new file mode 100644
index 0000000..c9451f9
--- /dev/null
+++ "b/res/lemmae/verba/\304\201.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,ā
\ No newline at end of file
diff --git "a/res/lemmae/verba/\304\223.csv" "b/res/lemmae/verba/\304\223.csv"
new file mode 100644
index 0000000..a7dc460
--- /dev/null
+++ "b/res/lemmae/verba/\304\223.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,ē
\ No newline at end of file
diff --git "a/res/lemmae/verba/\304\253nfr\304\201.csv" "b/res/lemmae/verba/\304\253nfr\304\201.csv"
new file mode 100644
index 0000000..f3d1341
--- /dev/null
+++ "b/res/lemmae/verba/\304\253nfr\304\201.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,īnfrā
\ No newline at end of file
diff --git "a/res/lemmae/verba/\305\215.csv" "b/res/lemmae/verba/\305\215.csv"
new file mode 100644
index 0000000..79eba96
--- /dev/null
+++ "b/res/lemmae/verba/\305\215.csv"
@@ -0,0 +1,2 @@
+categoria,scriptum
+praepositio,ō
\ No newline at end of file
diff --git a/res/picta/favicon.png b/res/picta/favicon.png
new file mode 100644
index 0000000..683e189
Binary files /dev/null and b/res/picta/favicon.png differ
diff --git a/res/picta/spqr.png b/res/picta/spqr.png
new file mode 100644
index 0000000..e633bbb
Binary files /dev/null and b/res/picta/spqr.png differ
diff --git a/res/picta/uk.png b/res/picta/uk.png
new file mode 100644
index 0000000..d041eca
Binary files /dev/null and b/res/picta/uk.png differ
diff --git a/res/scapales/actus/aiere.csv b/res/scapales/actus/aiere.csv
new file mode 100644
index 0000000..13c6ea0
--- /dev/null
+++ b/res/scapales/actus/aiere.csv
@@ -0,0 +1,19 @@
+modus,vox,tempus,numeralis,persona,scriptum
+infintivus,,,,,aiere
+imperativus,,,,,ai
+participalis,,,,,aiēns
+subiunctivus,,,,secunda,aiās
+subiunctivus,,,singularis,tertia,aiat
+subiunctivus,,,pluralis,tertia,aiant
+indicativus,,perfectum,,secunda,aistī
+indicativus,,perfectum,,tertia,ait
+indicativus,,praesens,,prima,aiō
+indicativus,,praesens,,secunda,ais
+indicativus,,praesens,singularis,tertia,ait
+indicativus,,praesens,pluralis,tertia,aiunt
+indicativus,,infectum,singularis,prima,aiēbam
+indicativus,,infectum,singularis,secunda,aiēbās
+indicativus,,infectum,singularis,tertia,aiēbat
+indicativus,,infectum,pluralis,prima,aiēbāmus
+indicativus,,infectum,pluralis,secunda,aiēbātis
+indicativus,,infectum,pluralis,tertia,aiēbant
diff --git a/res/scapales/actus/coepisse.csv b/res/scapales/actus/coepisse.csv
new file mode 100644
index 0000000..9ec7705
--- /dev/null
+++ b/res/scapales/actus/coepisse.csv
@@ -0,0 +1,3 @@
+modus,vox,tempus,numeralis,persona,scriptum
+participalis,,perfectum,,coeptum
+participalis,,futurum,,coeptūrum
diff --git a/res/scapales/actus/dare.csv b/res/scapales/actus/dare.csv
new file mode 100644
index 0000000..00c3a7c
--- /dev/null
+++ b/res/scapales/actus/dare.csv
@@ -0,0 +1,52 @@
+modus,vox,tempus,numeralis,persona,scriptum
+infinitivus,activa,praesens,,,dare
+infinitivus,passiva,praesens,,,darī
+imperativus,activa,praesens,pluralis,,date
+imperativus,activa,futurum,singularis,,datō
+imperativus,activa,futurum,pluralis,,datōte
+imperativus,passiva,praesens,singularis,,dare
+imperativus,passiva,praesens,pluralis,,daminī
+imperativus,passiva,futurum,singularis,,dator
+imperativus,passiva,futurum,pluralis,,dantor
+indicativus,activa,praesens,pluralis,prima,damus
+indicativus,activa,praesens,pluralis,secunda,datis
+indicativus,activa,infectum,singularis,prima,dabam
+indicativus,activa,infectum,singularis,secunda,dabās
+indicativus,activa,infectum,singularis,tertia,dabat
+indicativus,activa,infectum,pluralis,prima,dabāmus
+indicativus,activa,infectum,pluralis,secunda,dabātis
+indicativus,activa,infectum,pluralis,tertia,dabant
+indicativus,activa,futurum,singularis,prima,dabō
+indicativus,activa,infectum,singularis,secunda,dabis
+indicativus,activa,infectum,singularis,tertia,dabit
+indicativus,activa,infectum,pluralis,prima,dabimus
+indicativus,activa,infectum,pluralis,secunda,dabitis
+indicativus,activa,infectum,pluralis,tertia,dabunt
+indicativus,passiva,praesens,singularis,secunda,daris
+indicativus,passiva,praesens,singularis,tertia,datur
+indicativus,passiva,praesens,pluralis,prima,damur
+indicativus,passiva,praesens,pluralis,secunda,daminī
+indicativus,passiva,infectum,singularis,prima,dabar
+indicativus,passiva,infectum,singularis,secunda,dabāris
+indicativus,passiva,infectum,singularis,tertia,dabātur
+indicativus,passiva,infectum,pluralis,prima,dabāmur
+indicativus,passiva,infectum,pluralis,secunda,dabāminī
+indicativus,passiva,infectum,pluralis,tertia,dabantur
+indicativus,passiva,futurum,singularis,prima,dabor
+indicativus,passiva,futurum,singularis,secunda,daberis
+indicativus,passiva,futurum,singularis,tertia,dabitur
+indicativus,passiva,futurum,pluralis,prima,dabimur
+indicativus,passiva,futurum,pluralis,secunda,dabiminī
+indicativus,passiva,futurum,pluralis,tertia,dabuntur
+subiunctivus,activa,infectum,singularis,prima,darem
+subiunctivus,activa,infectum,singularis,secunda,darēs
+subiunctivus,activa,infectum,singularis,secunda,daret
+subiunctivus,activa,infectum,pluralis,prima,darēmus
+subiunctivus,activa,infectum,pluralis,secunda,darētis
+subiunctivus,activa,infectum,pluralis,tertia,darent
+subiunctivus,passiva,infectum,singularis,prima,darer
+subiunctivus,passiva,infectum,singularis,secunda,darēris
+subiunctivus,passiva,infectum,singularis,tertia,darētur
+subiunctivus,passiva,infectum,pluralis,prima,darēmur
+subiunctivus,passiva,infectum,pluralis,secunda,darēminī
+subiunctivus,passiva,infectum,pluralis,tertia,darentur
diff --git a/res/scapales/actus/esse.csv b/res/scapales/actus/esse.csv
new file mode 100644
index 0000000..dfeaa4a
--- /dev/null
+++ b/res/scapales/actus/esse.csv
@@ -0,0 +1,61 @@
+modus,vox,tempus,numeralis,persona,scriptum
+particpalis,,,,,futūrum
+infinitivus,,praesens,,,esse
+infinitivus,,perfectum,,,fuisse
+imperativus,,,singularis,,estō
+imperativus,,,pluralis,,estōte
+indicativus,,praesens,singularis,prima,sum
+indicativus,,praesens,singularis,secunda,es
+indicativus,,praesens,singularis,tertia,est
+indicativus,,praesens,pluralis,prima,sumus
+indicativus,,praesens,pluralis,secunda,estis
+indicativus,,praesens,pluralis,tertia,sunt
+indicativus,,infectum,singularis,prima,eram
+indicativus,,infectum,singularis,secunda,erās
+indicativus,,infectum,singularis,tertia,erat
+indicativus,,infectum,pluralis,prima,erāmus
+indicativus,,infectum,pluralis,secunda,erātis
+indicativus,,infectum,pluralis,tertia,erant
+indicativus,,futurum,singularis,prima,,erō
+indicativus,,futurum,singularis,secunda,eris
+indicativus,,futurum,singularis,tertia,erit
+indicativus,,futurum,pluralis,prima,erimus
+indicativus,,futurum,pluralis,secunda,eritis
+indicativus,,futurum,pluralis,tertia,erunt
+indicativus,,perfectum,singularis,prima,fuī
+indicativus,,perfectum,singularis,secunda,fuistī
+indicativus,,perfectum,singularis,tertia,fuit
+indicativus,,perfectum,pluralis,prima,fuimus
+indicativus,,perfectum,pluralis,secunda,fuitis
+indicativus,,perfectum,pluralis,tertia,fuērunt
+indicativus,,pluperfectum,singularis,prima,fueram
+indicativus,,pluperfectum,singularis,secunda,fuerās
+indicativus,,pluperfectum,singularis,tertia,fuerat
+indicativus,,pluperfectum,pluralis,prima,fuerāmus
+indicativus,,pluperfectum,pluralis,secunda,fuerātis
+indicativus,,pluperfectum,pluralis,tertia,fuerant
+indicativus,,exigendum,singularis,prima,,fuerō
+indicativus,,exigendum,singularis,secunda,fueris
+indicativus,,exigendum,singularis,tertia,fuerit
+indicativus,,exigendum,pluralis,prima,fuerimus
+indicativus,,exigendum,pluralis,secunda,fueritis
+indicativus,,exigendum,pluralis,tertia,fuerint
+subiunctivus,,praesens,singularis,prima,sim
+subiunctivus,,praesens,singularis,secunda,sīs
+subiunctivus,,praesens,singularis,tertia,sit
+subiunctivus,,praesens,pluralis,prima,sīmus
+subiunctivus,,praesens,pluralis,secunda,sītis
+subiunctivus,,praesens,pluralis,tertia,sint
+subiunctivus,,infectum,singularis,prima,essem
+subiunctivus,,infectum,singularis,secunda,essēs
+subiunctivus,,infectum,singularis,tertia,esset
+subiunctivus,,infectum,pluralis,prima,essēmus
+subiunctivus,,infectum,pluralis,secunda,essētis
+subiunctivus,,infectum,pluralis,tertia,essent
+subiunctivus,,perfectum,singularis,prima,fuerim
+subiunctivus,,perfectum,singularis,secunda,fuerīs
+subiunctivus,,perfectum,singularis,tertia,fuerit
+subiunctivus,,perfectum,pluralis,prima,fuerīmus
+subiunctivus,,perfectum,pluralis,secunda,fuerītis
+subiunctivus,,perfectum,pluralis,tertia,fuerint
+
diff --git a/res/scapales/actus/facere.csv b/res/scapales/actus/facere.csv
new file mode 100644
index 0000000..557ab00
--- /dev/null
+++ b/res/scapales/actus/facere.csv
@@ -0,0 +1,37 @@
+modus,vox,tempus,numeralis,persona,scriptum
+infinitivus,passiva,,,,fierī
+participalis,passiva,,,,factum
+imperativus,passiva,praesens,singularis,,fī
+imperativus,passiva,praesens,pluralis,,fīte
+imperativus,passiva,futurum,singularis,,fītō
+imperativus,passiva,futurum,pluralis,,fītōte
+indicativus,passiva,praesens,singularis,prima,fīō
+indicativus,passiva,praesens,singularis,secunda,fīs
+indicativus,passiva,praesens,singularis,tertia,fit
+indicativus,passiva,praesens,pluralis,prima,fīmus
+indicativus,passiva,praesens,pluralis,secunda,fītis
+indicativus,passiva,praesens,pluralis,tertia,fīunt
+indicativus,passiva,infectum,singularis,prima,fīēbam
+indicativus,passiva,infectum,singularis,secunda,fīēbās
+indicativus,passiva,infectum,singularis,tertia,fīēbat
+indicativus,passiva,infectum,pluralis,prima,fīēbāmus
+indicativus,passiva,infectum,pluralis,secunda,fīēbātis
+indicativus,passiva,infectum,pluralis,tertia,fīēbant
+indicativus,passiva,futurum,singularis,prima,fīam
+indicativus,passiva,futurum,singularis,secunda,fīēs
+indicativus,passiva,futurum,singularis,tertia,fīet
+indicativus,passiva,futurum,pluralis,prima,fīēmus
+indicativus,passiva,futurum,pluralis,secunda,fīēis
+indicativus,passiva,futurum,pluralis,tertia,fīent
+subiunctivus,passiva,praesens,singularis,prima,fīam
+subiunctivus,passiva,praesens,singularis,secunda,fīās
+subiunctivus,passiva,praesens,singularis,tertia,fīat
+subiunctivus,passiva,praesens,pluralis,prima,fīāmus
+subiunctivus,passiva,praesens,pluralis,secunda,fīātis
+subiunctivus,passiva,praesens,pluralis,tertia,fīant
+subiunctivus,passiva,infectum,singularis,prima,fīerem
+subiunctivus,passiva,infectum,singularis,secunda,fīerēs
+subiunctivus,passiva,infectum,singularis,tertia,fīeret
+subiunctivus,passiva,infectum,pluralis,prima,fīerēmus
+subiunctivus,passiva,infectum,pluralis,secunda,fīerētis
+subiunctivus,passiva,infectum,pluralis,tertia,fīerent
diff --git "a/res/scapales/actus/fier\304\253.csv" "b/res/scapales/actus/fier\304\253.csv"
new file mode 100644
index 0000000..2639c8d
--- /dev/null
+++ "b/res/scapales/actus/fier\304\253.csv"
@@ -0,0 +1,37 @@
+modus,vox,tempus,numeralis,persona,scriptum
+infinitivus,,,,,fierī
+participalis,,,,,factum
+imperativus,,praesens,singularis,,fī
+imperativus,,praesens,pluralis,,fīte
+imperativus,,futurum,singularis,,fītō
+imperativus,,futurum,pluralis,,fītōte
+indicativus,,praesens,singularis,prima,fīō
+indicativus,,praesens,singularis,secunda,fīs
+indicativus,,praesens,singularis,tertia,fit
+indicativus,,praesens,pluralis,prima,fīmus
+indicativus,,praesens,pluralis,secunda,fītis
+indicativus,,praesens,pluralis,tertia,fīunt
+indicativus,,infectum,singularis,prima,fīēbam
+indicativus,,infectum,singularis,secunda,fīēbās
+indicativus,,infectum,singularis,tertia,fīēbat
+indicativus,,infectum,pluralis,prima,fīēbāmus
+indicativus,,infectum,pluralis,secunda,fīēbātis
+indicativus,,infectum,pluralis,tertia,fīēbant
+indicativus,,futurum,singularis,prima,fīam
+indicativus,,futurum,singularis,secunda,fīēs
+indicativus,,futurum,singularis,tertia,fīet
+indicativus,,futurum,pluralis,prima,fīēmus
+indicativus,,futurum,pluralis,secunda,fīēis
+indicativus,,futurum,pluralis,tertia,fīent
+subiunctivus,,praesens,singularis,prima,fīam
+subiunctivus,,praesens,singularis,secunda,fīās
+subiunctivus,,praesens,singularis,tertia,fīat
+subiunctivus,,praesens,pluralis,prima,fīāmus
+subiunctivus,,praesens,pluralis,secunda,fīātis
+subiunctivus,,praesens,pluralis,tertia,fīant
+subiunctivus,,infectum,singularis,prima,fīerem
+subiunctivus,,infectum,singularis,secunda,fīerēs
+subiunctivus,,infectum,singularis,tertia,fīeret
+subiunctivus,,infectum,pluralis,prima,fīerēmus
+subiunctivus,,infectum,pluralis,secunda,fīerētis
+subiunctivus,,infectum,pluralis,tertia,fīerent
diff --git "a/res/scapales/actus/inqui\304\253.csv" "b/res/scapales/actus/inqui\304\253.csv"
new file mode 100644
index 0000000..a631b14
--- /dev/null
+++ "b/res/scapales/actus/inqui\304\253.csv"
@@ -0,0 +1,18 @@
+modus,vox,tempus,numeralis,persona,scriptum
+infintivus,,,,,inquiī
+particpalis,,,,,inquiēns
+subiunctivus,,,,,inquiat
+imperativus,,praesens,,,inquie
+imperativus,,futurum,,,inquitō
+indicativus,,infectum,,,inquiēbat
+indicativus,,futurum,,secunda,inquiēs
+indicativus,,futurum,,tertia,inquiet
+indicativus,,perfectum,,prima,inquiī
+indicativus,,perfectum,,secunda,inquistī
+indicativus,,perfectum,,tertia,inquit
+indicativus,,praesens,singularis,prima,inquam
+indicativus,,praesens,singularis,secunda,inquis
+indicativus,,praesens,singularis,tertia,inquitō
+indicativus,,praesens,pluralis,prima,inquimus
+indicativus,,praesens,pluralis,secunda,inquitis
+indicativus,,praesens,pluralis,tertia,inquiunt
diff --git a/res/scapales/actus/meminisse.csv b/res/scapales/actus/meminisse.csv
new file mode 100644
index 0000000..b5f0e0a
--- /dev/null
+++ b/res/scapales/actus/meminisse.csv
@@ -0,0 +1,3 @@
+modus,vox,tempus,numeralis,persona,scriptum
+imperativus,,,singularis,,mementō
+imperativus,,,pluralis,,mementōte
diff --git "a/res/scapales/actus/m\304\201lle.csv" "b/res/scapales/actus/m\304\201lle.csv"
new file mode 100644
index 0000000..8a4eff2
--- /dev/null
+++ "b/res/scapales/actus/m\304\201lle.csv"
@@ -0,0 +1,5 @@
+modus,vox,tempus,numeralis,persona,scriptum
+indicativus,,praesens,singularis,secunda,māvīs
+indicativus,,praesens,singularis,tertia,māvult
+indicativus,,praesens,pluralis,prima,mālumus
+indicativus,,praesens,pluralis,secunda,māvultis
diff --git "a/res/scapales/actus/n\305\215lle.csv" "b/res/scapales/actus/n\305\215lle.csv"
new file mode 100644
index 0000000..0789ffc
--- /dev/null
+++ "b/res/scapales/actus/n\305\215lle.csv"
@@ -0,0 +1,5 @@
+modus,vox,tempus,numeralis,persona,scriptum
+imperativus,,praesens,singularis,,nōlī
+imperativus,,praesens,pluralis,,nōlīte
+imperativus,,futurum,singularis,,nōlitō
+imperativus,,futurum,pluralis,,nōlitōte
diff --git a/res/scapales/actus/velle.csv b/res/scapales/actus/velle.csv
new file mode 100644
index 0000000..88d078a
--- /dev/null
+++ b/res/scapales/actus/velle.csv
@@ -0,0 +1,10 @@
+modus,vox,tempus,numeralis,persona,scriptum
+participalis,,,,,volēns
+infinitivus,,praesens,,,velle
+infinitivus,,perfectum,,,voluisse
+indicativus,,praesens,singularis,prima,volō
+indicativus,,praesens,singularis,secunda,vīs
+indicativus,,praesens,singularis,terta,vult
+indicativus,,praesens,singularis,prima,volumus
+indicativus,,praesens,singularis,secunda,vultis
+indicativus,,praesens,singularis,terta,volunt
diff --git "a/res/scapales/actus/\304\253nfier\304\253.csv" "b/res/scapales/actus/\304\253nfier\304\253.csv"
new file mode 100644
index 0000000..8e5128f
--- /dev/null
+++ "b/res/scapales/actus/\304\253nfier\304\253.csv"
@@ -0,0 +1,8 @@
+modus,vox,tempus,numeralis,persona,scriptum
+infinitivus,,,,,īnfierī
+imperativus,,,,,īnfītō
+participalis,,,,,īnfiendum
+indicativus,,praesens,,,īnfit
+indicativus,,infectum,,,īnfīēbat
+subiunctivus,,praesens,,,īnfīat
+subiunctivus,,infectum,,,īnfieret
diff --git "a/res/scapales/actus/\305\215disse.csv" "b/res/scapales/actus/\305\215disse.csv"
new file mode 100644
index 0000000..ec4ed5a
--- /dev/null
+++ "b/res/scapales/actus/\305\215disse.csv"
@@ -0,0 +1,2 @@
+modus,vox,tempus,numeralis,persona,scriptum
+participalis,,futurum,,ōsūrum
diff --git a/res/scapales/adiectiva/aliud.csv b/res/scapales/adiectiva/aliud.csv
new file mode 100644
index 0000000..34271ce
--- /dev/null
+++ b/res/scapales/adiectiva/aliud.csv
@@ -0,0 +1,2 @@
+genus,gradus,numeralis,casus,scriptum
+neutrum,,singularis,nominatvus,aliud
diff --git "a/res/scapales/adiectiva/amb\305\215.csv" "b/res/scapales/adiectiva/amb\305\215.csv"
new file mode 100644
index 0000000..162a091
--- /dev/null
+++ "b/res/scapales/adiectiva/amb\305\215.csv"
@@ -0,0 +1,15 @@
+genus,gradus,numeralis,casus,scriptum
+masculinus,,,nominativus,ambō
+masculinus,,,vocativus,ambō
+neutrum,,,nominativus,ambō
+neutrum,,,accusativus,ambō
+neutrum,,,vocativus,ambō
+masculinus,,,dativus,ambōbus
+masculinus,,,ablativus,ambōbus
+masculinus,,,locativus,ambōbus
+neutrum,,,dativus,ambōbus
+neutrum,,,ablativus,ambōbus
+neutrum,,,locativus,ambōbus
+feminum,,,dativus,ambābus
+feminum,,,ablativus,ambābus
+feminum,,,locativus,ambābus
diff --git "a/res/scapales/adiectiva/fr\305\253g\304\253.csv" "b/res/scapales/adiectiva/fr\305\253g\304\253.csv"
new file mode 100644
index 0000000..088fb91
--- /dev/null
+++ "b/res/scapales/adiectiva/fr\305\253g\304\253.csv"
@@ -0,0 +1,4 @@
+genus,gradus,numeralis,casus,scriptum
+positivus,,,,frūgī
+comparativus,,,,frūgālior
+superlativus,,,,frūgālissimus
diff --git a/res/scapales/adiectiva/meum.csv b/res/scapales/adiectiva/meum.csv
new file mode 100644
index 0000000..615c8e7
--- /dev/null
+++ b/res/scapales/adiectiva/meum.csv
@@ -0,0 +1,2 @@
+genus,gradus,numeralis,casus,scriptum
+masculinus,,singularis,vocativus,mī
diff --git a/res/scapales/adiectiva/multum.csv b/res/scapales/adiectiva/multum.csv
new file mode 100644
index 0000000..095c2b8
--- /dev/null
+++ b/res/scapales/adiectiva/multum.csv
@@ -0,0 +1,18 @@
+gradus,genus,numeralis,casus,scriptum
+comparativus,,singularis,nominativus,plūs
+comparativus,,singularis,genitivus,plūrium
+comparativus,,singularis,accusativus,plūs
+comparativus,,singularis,vocativus,plūs
+comparativus,,pluralis,dativus,plūribus
+comparativus,,pluralis,ablativus,plūribus
+comparativus,,pluralis,locativus,plūribus
+comparativus,,pluralis,genitivus,plūris
+comparativus,neutrum,pluralis,nominativus,plūra
+comparativus,neutrum,pluralis,accusativus,plūra
+comparativus,neutrum,pluralis,vocativus,plūra
+comparativus,masculinum,pluralis,nominativus,plūrēs
+comparativus,masculinum,pluralis,accusativus,plūrēs
+comparativus,masculinum,pluralis,vocativus,plūrēs
+comparativus,femininum,pluralis,nominativus,plūrēs
+comparativus,femininum,pluralis,accusativus,plūrēs
+comparativus,femininum,pluralis,vocativus,plūrēs
diff --git "a/res/scapales/adiectiva/m\304\253lle.csv" "b/res/scapales/adiectiva/m\304\253lle.csv"
new file mode 100644
index 0000000..bd0cae4
--- /dev/null
+++ "b/res/scapales/adiectiva/m\304\253lle.csv"
@@ -0,0 +1,8 @@
+numeralis,genus,gradus,casus,scriptum
+singularis,,,,mīlle
+pluralis,,,nominativus,mīlia
+pluralis,,,genitivus,mīlium
+pluralis,,,dativus,mīlibus
+pluralis,,,accusativus,mīlia
+pluralis,,,ablativus,mīlibus
+pluralis,,,locativus,mīlibus
diff --git "a/res/scapales/adiectiva/n\304\223quam.csv" "b/res/scapales/adiectiva/n\304\223quam.csv"
new file mode 100644
index 0000000..80f3a13
--- /dev/null
+++ "b/res/scapales/adiectiva/n\304\223quam.csv"
@@ -0,0 +1,4 @@
+genus,gradus,numeralis,casus,scriptum
+positivus,,,,nēquam
+comparativus,,,,nēquior
+superlativus,,,,nēquissimus
diff --git a/res/scapales/adiectiva/satis.csv b/res/scapales/adiectiva/satis.csv
new file mode 100644
index 0000000..5322d2c
--- /dev/null
+++ b/res/scapales/adiectiva/satis.csv
@@ -0,0 +1,3 @@
+genus,gradus,numeralis,casus,scriptum
+positivus,,,,satis
+comparativus,,,,satius
diff --git "a/res/scapales/nomina/Ath\305\215s.csv" "b/res/scapales/nomina/Ath\305\215s.csv"
new file mode 100644
index 0000000..fe9d60b
--- /dev/null
+++ "b/res/scapales/nomina/Ath\305\215s.csv"
@@ -0,0 +1,8 @@
+casus,numeralis,scriptum
+nominativus,,Athōs
+genitivus,,Athō
+dativus,,Athō
+accusativus,,Athōn
+ablativus,,Athō
+locativus,,Athō
+vocativus,,Athō
diff --git "a/res/scapales/nomina/I\304\223s\305\253s.csv" "b/res/scapales/nomina/I\304\223s\305\253s.csv"
new file mode 100644
index 0000000..0664a1c
--- /dev/null
+++ "b/res/scapales/nomina/I\304\223s\305\253s.csv"
@@ -0,0 +1,8 @@
+casus,numeralis,scriptum
+nominativus,,Iēsūs
+genitivus,,Iēsū
+dativus,,Iēsū
+accusativus,,Iēsūm
+ablativus,,Iēsū
+locativus,,Iēsū
+vocativus,,Iēsū
diff --git a/res/scapales/nomina/dare.csv b/res/scapales/nomina/dare.csv
new file mode 100644
index 0000000..54f0bc7
--- /dev/null
+++ b/res/scapales/nomina/dare.csv
@@ -0,0 +1,2 @@
+factum,casus,scriptum
+infinituvum,,dare
diff --git a/res/scapales/nomina/dea.csv b/res/scapales/nomina/dea.csv
new file mode 100644
index 0000000..785d7e1
--- /dev/null
+++ b/res/scapales/nomina/dea.csv
@@ -0,0 +1,4 @@
+numeralis,casus,scriptum
+pluralis,dativus,deābus
+pluralis,ablativus,deābus
+pluralis,locativus,deābus
diff --git a/res/scapales/nomina/domus.csv b/res/scapales/nomina/domus.csv
new file mode 100644
index 0000000..1951a12
--- /dev/null
+++ b/res/scapales/nomina/domus.csv
@@ -0,0 +1,5 @@
+numeralis,casus,scriptum
+singularis,ablativus,domō
+singularis,locativus,domī
+pluralis,genitivus,domōrum
+pluralis,accusativus,domōs
diff --git "a/res/scapales/nomina/i\305\253gerum.csv" "b/res/scapales/nomina/i\305\253gerum.csv"
new file mode 100644
index 0000000..bad8d79
--- /dev/null
+++ "b/res/scapales/nomina/i\305\253gerum.csv"
@@ -0,0 +1,4 @@
+numeralis,casus,scriptum
+pluralis,dativus,iūgeribus
+pluralis,ablativus,iūgeribus
+pluralis,locativus,iūgeribus
diff --git a/res/scapales/nomina/lexis.csv b/res/scapales/nomina/lexis.csv
new file mode 100644
index 0000000..b70b4fc
--- /dev/null
+++ b/res/scapales/nomina/lexis.csv
@@ -0,0 +1,4 @@
+casus,numeralis,scriptum
+nominativus,,lexis
+genitivus,,lexeōs
+accusativus,,lexīs
diff --git "a/res/scapales/nomina/vic\304\223s.csv" "b/res/scapales/nomina/vic\304\223s.csv"
new file mode 100644
index 0000000..aa3df0b
--- /dev/null
+++ "b/res/scapales/nomina/vic\304\223s.csv"
@@ -0,0 +1,9 @@
+numeralis,casus,scriptum
+singularis,genitivus,vicis
+singularis,dativus,vicī
+singularis,accusativus,vicem
+singularis,ablativus,vice
+pluralis,nominativus,vicēs
+pluralis,dativus,vicibus
+pluralis,accusativus,vicēs
+pluralis,ablativus,viribus
diff --git "a/res/scapales/nomina/v\304\253s.csv" "b/res/scapales/nomina/v\304\253s.csv"
new file mode 100644
index 0000000..71f1abc
--- /dev/null
+++ "b/res/scapales/nomina/v\304\253s.csv"
@@ -0,0 +1,11 @@
+numeralis,casus,scriptum
+singular,nominativus,vīs
+singular,accusativus,vim
+singular,ablativus,vī
+singular,vocativus,vīs
+pluralis,nominativus,vīrēs
+pluralis,genitivus,virium
+pluralis,dativus,viribus
+pluralis,accusativus,vīrēs
+pluralis,ablativus,viribus
+pluralis,vocativus,vīs
diff --git "a/res/scapales/nomina/\304\253re.csv" "b/res/scapales/nomina/\304\253re.csv"
new file mode 100644
index 0000000..a06cc90
--- /dev/null
+++ "b/res/scapales/nomina/\304\253re.csv"
@@ -0,0 +1,8 @@
+factum,casus,scriptum
+infinituvum,,īre
+gerundium,genitivus,eundī
+gerundium,dativus,eundō
+gerundium,accusativus,eundum
+gerundium,ablativus,eundō
+supinum,accusativus,itum
+supinum,ablativus,itū
diff --git a/res/scapales/pronomina/ego.csv b/res/scapales/pronomina/ego.csv
new file mode 100644
index 0000000..1fc537f
--- /dev/null
+++ b/res/scapales/pronomina/ego.csv
@@ -0,0 +1,11 @@
+casus,genus,numeralis,scriptum
+nominativus,,singularis,ego
+genitivus,,singularis,meī
+dativus,,singularis,mihi
+accusativus,,singularis,mē
+ablativus,,singularis,mē
+nominativus,,pluralis,nōs
+genitivus,,pluralis,nostrum
+dativus,,pluralis,nōbīs
+accusativus,,pluralis,nōs
+ablativus,,pluralis,nōbīs
diff --git a/res/scapales/pronomina/hoc.csv b/res/scapales/pronomina/hoc.csv
new file mode 100644
index 0000000..c90ad4a
--- /dev/null
+++ b/res/scapales/pronomina/hoc.csv
@@ -0,0 +1,33 @@
+numeralis,genus,casus,scriptum
+singularis,,genitivus,huius
+singularis,,dativus,huic
+pluralis,,dativus,hīs
+pluralis,,ablativus,hīs
+pluralis,,locativus,hīs
+singularis,neutrum,nominativus,hoc
+singularis,neutrum,accusativus,hoc
+singularis,neutrum,ablativus,hōc
+singularis,neutrum,locativus,hōc
+singularis,neutrum,vocativus,hoc
+pluralis,neutrum,nominativus,haec
+pluralis,neutrum,genitivus,hōrum
+pluralis,neutrum,accusativus,haec
+pluralis,neutrum,vocativus,haec
+singularis,masculinum,nominativus,hic
+singularis,masculinum,accusativus,hunc
+singularis,masculinum,ablativus,hōc
+singularis,masculinum,locativus,hōc
+singularis,masculinum,vocativus,hic
+pluralis,masculinum,nominativus,hī
+pluralis,masculinum,genitivus,hōrum
+pluralis,masculinum,accusativus,hōs
+pluralis,masculinum,vocativus,hī
+singularis,femininum,nominativus,haec
+singularis,femininum,accusativus,hanc
+singularis,femininum,ablativus,hāc
+singularis,femininum,locativus,hāc
+singularis,femininum,vocativus,haec
+pluralis,femininum,nominativus,haec
+pluralis,femininum,genitivus,hārum
+pluralis,femininum,accusativus,hās
+pluralis,femininum,vocativus,haec
diff --git a/res/scapales/pronomina/id.csv b/res/scapales/pronomina/id.csv
new file mode 100644
index 0000000..96d9bb5
--- /dev/null
+++ b/res/scapales/pronomina/id.csv
@@ -0,0 +1,33 @@
+numeralis,genus,casus,scriptum
+singularis,,genitivus,eius
+singularis,,dativus,eī
+pluralis,,dativus,eīs
+pluralis,,ablativus,eīs
+pluralis,,locativus,eīs
+singularis,neutrum,nominativus,id
+singularis,neutrum,accusativus,id
+singularis,neutrum,ablativus,eō
+singularis,neutrum,locativus,eō
+singularis,neutrum,vocativus,id
+pluralis,neutrum,nominativus,ea
+pluralis,neutrum,genitivus,eōrum
+pluralis,neutrum,accusativus,ea
+pluralis,neutrum,vocativus,ea
+singularis,masculinum,nominativus,is
+singularis,masculinum,accusativus,eum
+singularis,masculinum,ablativus,eō
+singularis,masculinum,locativus,eō
+singularis,masculinum,vocativus,is
+pluralis,masculinum,nominativus,eī
+pluralis,masculinum,genitivus,eōrum
+pluralis,masculinum,accusativus,eōs
+pluralis,masculinum,vocativus,eī
+singularis,femininum,nominativus,eae
+singularis,femininum,accusativus,eam
+singularis,femininum,ablativus,eā
+singularis,femininum,locativus,eā
+singularis,femininum,vocativus,ea
+pluralis,femininum,nominativus,eae
+pluralis,femininum,genitivus,eārum
+pluralis,femininum,accusativus,eās
+pluralis,femininum,vocativus,eae
diff --git a/res/scapales/pronomina/illud.csv b/res/scapales/pronomina/illud.csv
new file mode 100644
index 0000000..87f9ace
--- /dev/null
+++ b/res/scapales/pronomina/illud.csv
@@ -0,0 +1,33 @@
+numeralis,genus,casus,scriptum
+singularis,,genitivus,illīus
+singularis,,dativus,illī
+pluralis,,dativus,illīs
+pluralis,,ablativus,illīs
+pluralis,,locativus,illīs
+singularis,neutrum,nominativus,illud
+singularis,neutrum,accusativus,illud
+singularis,neutrum,ablativus,illō
+singularis,neutrum,locativus,illō
+singularis,neutrum,vocativus,illud
+pluralis,neutrum,nominativus,illa
+pluralis,neutrum,genitivus,illōrum
+pluralis,neutrum,accusativus,illa
+pluralis,neutrum,vocativus,illa
+singularis,masculinum,nominativus,ille
+singularis,masculinum,accusativus,illum
+singularis,masculinum,ablativus,illō
+singularis,masculinum,locativus,illō
+singularis,masculinum,vocativus,ille
+pluralis,masculinum,nominativus,illī
+pluralis,masculinum,genitivus,illōrum
+pluralis,masculinum,accusativus,illōs
+pluralis,masculinum,vocativus,illī
+singularis,femininum,nominativus,illa
+singularis,femininum,accusativus,illam
+singularis,femininum,ablativus,illā
+singularis,femininum,locativus,illā
+singularis,femininum,vocativus,illa
+pluralis,femininum,nominativus,illae
+pluralis,femininum,genitivus,illārum
+pluralis,femininum,accusativus,illās
+pluralis,femininum,vocativus,illae
diff --git a/res/scapales/pronomina/ipsum.csv b/res/scapales/pronomina/ipsum.csv
new file mode 100644
index 0000000..ac99579
--- /dev/null
+++ b/res/scapales/pronomina/ipsum.csv
@@ -0,0 +1,6 @@
+genus,numeralis,casus,scriptum
+masculinum,singularis,nominativus,ipse
+masculinum,singularis,vocativus,ipse
+neutrum,singularis,nominativus,ipsum
+neutrum,singularis,accusativus,ipsum
+neutrum,singularis,vocativus,ipsum
diff --git "a/res/scapales/pronomina/s\304\223.csv" "b/res/scapales/pronomina/s\304\223.csv"
new file mode 100644
index 0000000..e5fe5fc
--- /dev/null
+++ "b/res/scapales/pronomina/s\304\223.csv"
@@ -0,0 +1,5 @@
+casus,genus,numeralis,scriptum
+genitivus,,,suī
+dativus,,,sibi
+accusativus,,,sē
+ablativus,,,sē
diff --git "a/res/scapales/pronomina/t\305\253.csv" "b/res/scapales/pronomina/t\305\253.csv"
new file mode 100644
index 0000000..ecd0660
--- /dev/null
+++ "b/res/scapales/pronomina/t\305\253.csv"
@@ -0,0 +1,11 @@
+casus,genus,numeralis,scriptum
+nominativus,,singularis,tū
+genitivus,,singularis,tuī
+dativus,,singularis,tibi
+accusativus,,singularis,tē
+ablativus,,singularis,tē
+nominativus,,pluralis,vōs
+genitivus,,pluralis,vestrum
+dativus,,pluralis,vōbīs
+accusativus,,pluralis,vōs
+ablativus,,pluralis,vōbīs
diff --git a/res/tabula/actus/primus.csv b/res/tabula/actus/primus.csv
new file mode 100644
index 0000000..d18b33d
--- /dev/null
+++ b/res/tabula/actus/primus.csv
@@ -0,0 +1,106 @@
+modus,vox,tempus,numeralis,persona,scriptum
+infinitivus,activa,praesens,,,āre
+infinitivus,activa,perfectum,,,isse
+infinitivus,passiva,praesens,,,ārī
+participalis,activa,praesens,,,āns
+participalis,passiva,perfectum,,,um
+participalis,passiva,futurum,,,andum
+participalis,activa,futurum,,,ūrum
+imperativus,activa,praesens,singularis,ā
+imperativus,activa,praesens,pluralis,āte
+imperativus,activa,futurum,singularis,ātō
+imperativus,activa,futurum,pluralis,ātōte
+imperativus,passiva,praesens,singularis,āre
+imperativus,passiva,praesens,pluralis,āminī
+imperativus,passiva,futurum,singularis,ātor
+imperativus,passiva,futurum,pluralis,antor
+indicativus,activa,praesens,singularis,prima,ō
+indicativus,activa,praesens,singularis,secunda,ās
+indicativus,activa,praesens,singularis,tertia,at
+indicativus,activa,praesens,pluralis,prima,āmus
+indicativus,activa,praesens,pluralis,secunda,ātis
+indicativus,activa,praesens,pluralis,tertia,ant
+indicativus,activa,infectum,singularis,prima,ābam
+indicativus,activa,infectum,singularis,secunda,ābās
+indicativus,activa,infectum,singularis,tertia,ābat
+indicativus,activa,infectum,pluralis,prima,ābāmus
+indicativus,activa,infectum,pluralis,secunda,ābātis
+indicativus,activa,infectum,pluralis,tertia,ābant
+indicativus,activa,futurum,singularis,prima,ābō
+indicativus,activa,futurum,singularis,secunda,ābis
+indicativus,activa,futurum,singularis,tertia,ābit
+indicativus,activa,futurum,pluralis,prima,ābimus
+indicativus,activa,futurum,pluralis,secunda,ābitis
+indicativus,activa,futurum,pluralis,tertia,ābunt
+indicativus,activa,perfectum,singularis,prima,ī
+indicativus,activa,perfectum,singularis,secunda,istī
+indicativus,activa,perfectum,singularis,tertia,it
+indicativus,activa,perfectum,pluralis,prima,imus
+indicativus,activa,perfectum,pluralis,secunda,itis
+indicativus,activa,perfectum,pluralis,tertia,ērunt
+indicativus,activa,pluperfectum,singularis,prima,eram
+indicativus,activa,pluperfectum,singularis,secunda,erās
+indicativus,activa,pluperfectum,singularis,tertia,erat
+indicativus,activa,pluperfectum,pluralis,prima,erāmus
+indicativus,activa,pluperfectum,pluralis,secunda,erātis
+indicativus,activa,pluperfectum,pluralis,tertia,ērant
+indicativus,activa,exigendum,singularis,prima,erō
+indicativus,activa,exigendum,singularis,secunda,erim
+indicativus,activa,exigendum,singularis,tertia,erit
+indicativus,activa,exigendum,pluralis,prima,erimus
+indicativus,activa,exigendum,pluralis,secunda,eritis
+indicativus,activa,exigendum,pluralis,tertia,ērint
+indicativus,perfectum,praesens,singularis,prima,or
+indicativus,perfectum,praesens,singularis,secunda,āris
+indicativus,perfectum,praesens,singularis,tertia,ātur
+indicativus,perfectum,praesens,pluralis,prima,āmur
+indicativus,perfectum,praesens,pluralis,secunda,āminī
+indicativus,perfectum,praesens,pluralis,tertia,antur
+indicativus,perfectum,infectum,singularis,prima,ābar
+indicativus,perfectum,infectum,singularis,secunda,ābāris
+indicativus,perfectum,infectum,singularis,tertia,ābātur
+indicativus,perfectum,infectum,pluralis,prima,ābāmur
+indicativus,perfectum,infectum,pluralis,secunda,ābāminī
+indicativus,perfectum,infectum,pluralis,tertia,ābantur
+indicativus,perfectum,futurum,singularis,prima,ābor
+indicativus,perfectum,futurum,singularis,secunda,āberis
+indicativus,perfectum,futurum,singularis,tertia,ābitur
+indicativus,perfectum,futurum,pluralis,prima,ābimur
+indicativus,perfectum,futurum,pluralis,secunda,ābiminī
+indicativus,perfectum,futurum,pluralis,tertia,ābuntur
+subiunctivus,activa,praesens,singularis,prima,em
+subiunctivus,activa,praesens,singularis,secunda,ēs
+subiunctivus,activa,praesens,singularis,tertia,et
+subiunctivus,activa,praesens,pluralis,prima,ēmus
+subiunctivus,activa,praesens,pluralis,secunda,ētis
+subiunctivus,activa,praesens,pluralis,tertia,ent
+subiunctivus,activa,infectum,singularis,prima,ārem
+subiunctivus,activa,infectum,singularis,secunda,ārēs
+subiunctivus,activa,infectum,singularis,tertia,āret
+subiunctivus,activa,infectum,pluralis,prima,ārēmus
+subiunctivus,activa,infectum,pluralis,secunda,ārētis
+subiunctivus,activa,infectum,pluralis,tertia,ārent
+subiunctivus,activa,perfectum,singularis,prima,erim
+subiunctivus,activa,perfectum,singularis,secunda,erīs
+subiunctivus,activa,perfectum,singularis,tertia,erit
+subiunctivus,activa,perfectum,pluralis,prima,erīmus
+subiunctivus,activa,perfectum,pluralis,secunda,erītis
+subiunctivus,activa,perfectum,pluralis,tertia,erint
+subiunctivus,activa,pluperfectum,singularis,prima,issem
+subiunctivus,activa,pluperfectum,singularis,secunda,issēs
+subiunctivus,activa,pluperfectum,singularis,tertia,isset
+subiunctivus,activa,pluperfectum,pluralis,prima,issēmus
+subiunctivus,activa,pluperfectum,pluralis,secunda,issētis
+subiunctivus,activa,pluperfectum,pluralis,tertia,issent
+subiunctivus,passiva,praesens,singularis,prima,er
+subiunctivus,passiva,praesens,singularis,secunda,ēris
+subiunctivus,passiva,praesens,singularis,tertia,ētur
+subiunctivus,passiva,praesens,pluralis,prima,ēmur
+subiunctivus,passiva,praesens,pluralis,secunda,ēminī
+subiunctivus,passiva,praesens,pluralis,tertia,entur
+subiunctivus,passiva,infectum,singularis,prima,ārer
+subiunctivus,passiva,infectum,singularis,secunda,ārēris
+subiunctivus,passiva,infectum,singularis,tertia,ārētur
+subiunctivus,passiva,infectum,pluralis,prima,ārēmur
+subiunctivus,passiva,infectum,pluralis,secunda,ārēminī
+subiunctivus,passiva,infectum,pluralis,tertia,ārentur
diff --git a/res/tabula/actus/quartus.csv b/res/tabula/actus/quartus.csv
new file mode 100644
index 0000000..132ffa8
--- /dev/null
+++ b/res/tabula/actus/quartus.csv
@@ -0,0 +1,106 @@
+modus ,vox ,tempus ,numeralis ,persona ,scriptum
+infinitivus ,activa ,praesens , , ,īre
+infinitivus ,activa ,perfectum , , ,isse
+infinitivus ,passiva ,praesens , , ,īrī
+participalis ,activa ,praesens , , ,iēns
+participalis ,passiva ,perfectum , , ,um
+participalis ,passiva ,futurum , , ,iendum
+participalis ,activa ,futurum , , ,ūrum
+imperativus ,activa ,praesens ,singularis , ,ī
+imperativus ,activa ,praesens ,pluralis , ,īte
+imperativus ,activa ,futurum ,singularis , ,ītō
+imperativus ,activa ,futurum ,pluralis , ,ītōte
+imperativus ,passiva ,praesens ,singularis , ,īre
+imperativus ,passiva ,praesens ,pluralis , ,īminī
+imperativus ,passiva ,futurum ,singularis , ,ītor
+imperativus ,passiva ,futurum ,pluralis , ,iuntor
+indicativus ,activa ,praesens ,singularis ,prima ,iō
+indicativus ,activa ,praesens ,singularis ,secunda ,īs
+indicativus ,activa ,praesens ,singularis ,tertia ,it
+indicativus ,activa ,praesens ,pluralis ,prima ,īmus
+indicativus ,activa ,praesens ,pluralis ,secunda ,ītis
+indicativus ,activa ,praesens ,pluralis ,tertia ,iunt
+indicativus ,activa ,infectum ,singularis ,prima ,iēbam
+indicativus ,activa ,infectum ,singularis ,secunda ,iēbās
+indicativus ,activa ,infectum ,singularis ,tertia ,iēbat
+indicativus ,activa ,infectum ,pluralis ,prima ,iēbāmus
+indicativus ,activa ,infectum ,pluralis ,secunda ,iēbātis
+indicativus ,activa ,infectum ,pluralis ,tertia ,iēbant
+indicativus ,activa ,futurum ,singularis ,prima ,iam
+indicativus ,activa ,futurum ,singularis ,secunda ,iēs
+indicativus ,activa ,futurum ,singularis ,tertia ,iet
+indicativus ,activa ,futurum ,pluralis ,prima ,iēmus
+indicativus ,activa ,futurum ,pluralis ,secunda ,iētis
+indicativus ,activa ,futurum ,pluralis ,tertia ,ient
+indicativus ,activa ,perfectum ,singularis ,prima ,ī
+indicativus ,activa ,perfectum ,singularis ,secunda ,istī
+indicativus ,activa ,perfectum ,singularis ,tertia ,it
+indicativus ,activa ,perfectum ,pluralis ,prima ,imus
+indicativus ,activa ,perfectum ,pluralis ,secunda ,istis
+indicativus ,activa ,perfectum ,pluralis ,tertia ,ērunt
+indicativus ,activa ,pluperfectum ,singularis ,prima ,eram
+indicativus ,activa ,pluperfectum ,singularis ,secunda ,erās
+indicativus ,activa ,pluperfectum ,singularis ,tertia ,erat
+indicativus ,activa ,pluperfectum ,pluralis ,prima ,erāmus
+indicativus ,activa ,pluperfectum ,pluralis ,secunda ,erāstis
+indicativus ,activa ,pluperfectum ,pluralis ,tertia ,erant
+indicativus ,activa ,exigendum ,singularis ,prima ,erō
+indicativus ,activa ,exigendum ,singularis ,secunda ,eris
+indicativus ,activa ,exigendum ,singularis ,tertia ,erit
+indicativus ,activa ,exigendum ,pluralis ,prima ,erimus
+indicativus ,activa ,exigendum ,pluralis ,secunda ,eristis
+indicativus ,activa ,exigendum ,pluralis ,tertia ,erint
+indicativus ,passiva ,praesens ,singularis ,prima ,ior
+indicativus ,passiva ,praesens ,singularis ,secunda ,eris
+indicativus ,passiva ,praesens ,singularis ,tertia ,ītur
+indicativus ,passiva ,praesens ,pluralis ,prima ,īmur
+indicativus ,passiva ,praesens ,pluralis ,secunda ,iminī
+indicativus ,passiva ,praesens ,pluralis ,tertia ,iuntur
+indicativus ,passiva ,infectum ,singularis ,prima ,iēbar
+indicativus ,passiva ,infectum ,singularis ,secunda ,iēbāris
+indicativus ,passiva ,infectum ,singularis ,tertia ,iēbātur
+indicativus ,passiva ,infectum ,pluralis ,prima ,iēbāmur
+indicativus ,passiva ,infectum ,pluralis ,secunda ,iēbāminī
+indicativus ,passiva ,infectum ,pluralis ,tertia ,iēbantur
+indicativus ,passiva ,futurum ,singularis ,prima ,iar
+indicativus ,passiva ,futurum ,singularis ,secunda ,iēris
+indicativus ,passiva ,futurum ,singularis ,tertia ,iētur
+indicativus ,passiva ,futurum ,pluralis ,prima ,iēmur
+indicativus ,passiva ,futurum ,pluralis ,secunda ,iēminī
+indicativus ,passiva ,futurum ,pluralis ,tertia ,ientur
+subiunctivus ,activa ,praesens ,singularis ,prima ,iam
+subiunctivus ,activa ,praesens ,singularis ,secunda ,iās
+subiunctivus ,activa ,praesens ,singularis ,tertia ,iat
+subiunctivus ,activa ,praesens ,pluralis ,prima ,iāmus
+subiunctivus ,activa ,praesens ,pluralis ,secunda ,iātis
+subiunctivus ,activa ,praesens ,pluralis ,tertia ,iant
+subiunctivus ,activa ,infectum ,singularis ,prima ,īrem
+subiunctivus ,activa ,infectum ,singularis ,secunda ,īrēs
+subiunctivus ,activa ,infectum ,singularis ,tertia ,īret
+subiunctivus ,activa ,infectum ,pluralis ,prima ,īrēmus
+subiunctivus ,activa ,infectum ,singularis ,secunda ,īrētis
+subiunctivus ,activa ,infectum ,pluralis ,tertia ,īrent
+subiunctivus ,activa ,perfectum ,singularis ,prima ,erim
+subiunctivus ,activa ,perfectum ,singularis ,secunda ,erīs
+subiunctivus ,activa ,perfectum ,singularis ,tertia ,erit
+subiunctivus ,activa ,perfectum ,pluralis ,prima ,erīmus
+subiunctivus ,activa ,perfectum ,singularis ,secunda ,erītis
+subiunctivus ,activa ,perfectum ,pluralis ,tertia ,erint
+subiunctivus ,activa ,pluperfectum ,singularis ,prima ,issem
+subiunctivus ,activa ,pluperfectum ,singularis ,secunda ,issēs
+subiunctivus ,activa ,pluperfectum ,singularis ,tertia ,isset
+subiunctivus ,activa ,pluperfectum ,pluralis ,prima ,issēmus
+subiunctivus ,activa ,pluperfectum ,pluralis ,secunda ,issētis
+subiunctivus ,activa ,pluperfectum ,pluralis ,tertia ,issent
+subiunctivus ,passiva ,praesens ,singularis ,prima ,iar
+subiunctivus ,passiva ,praesens ,singularis ,secunda ,iāris
+subiunctivus ,passiva ,praesens ,singularis ,tertia ,iātur
+subiunctivus ,passiva ,praesens ,pluralis ,prima ,iāmur
+subiunctivus ,passiva ,praesens ,pluralis ,secunda ,iāminī
+subiunctivus ,passiva ,praesens ,pluralis ,tertia ,iantur
+subiunctivus ,passiva ,infectum ,singularis ,prima ,īrer
+subiunctivus ,passiva ,infectum ,singularis ,secunda ,īrēris
+subiunctivus ,passiva ,infectum ,singularis ,tertia ,īrētur
+subiunctivus ,passiva ,infectum ,pluralis ,prima ,īrēmur
+subiunctivus ,passiva ,infectum ,pluralis ,secunda ,īrēminī
+subiunctivus ,passiva ,infectum ,pluralis ,tertia ,īrentur
diff --git a/res/tabula/actus/secundus.csv b/res/tabula/actus/secundus.csv
new file mode 100644
index 0000000..e036489
--- /dev/null
+++ b/res/tabula/actus/secundus.csv
@@ -0,0 +1,106 @@
+modus,vox,tempus,numeralis,persona,scriptum
+infinitivus,activa,praesens,,,ēre
+infinitivus,activa,perfectum,,,ēvissem
+infinitivus,passiva,praesens,,,ērī
+participalis,activa,praesens,,,ēns
+participalis,passiva,perfectum,,,um
+participalis,passiva,futurum,,,endum
+participalis,activa,futurum,,,ūrum
+imperativus,activa,praesens,singularis,ē
+imperativus,activa,praesens,pluralis,ēte
+imperativus,activa,futurum,singularis,ētō
+imperativus,activa,futurum,pluralis,ētōte
+imperativus,passiva,praesens,singularis,ēre
+imperativus,passiva,praesens,pluralis,ēminī
+imperativus,passiva,futurum,singularis,ētor
+imperativus,passiva,futurum,pluralis,entor
+indicativus,activa,praesens,singularis,prima,eō
+indicativus,activa,praesens,singularis,secunda,ēs
+indicativus,activa,praesens,singularis,tertia,et
+indicativus,activa,praesens,pluralis,prima,ēmus
+indicativus,activa,praesens,pluralis,secunda,ētis
+indicativus,activa,praesens,pluralis,tertia,ent
+indicativus,activa,infectum,singularis,prima,ēbam
+indicativus,activa,infectum,singularis,secunda,ēbās
+indicativus,activa,infectum,singularis,tertia,ēbat
+indicativus,activa,infectum,pluralis,prima,ēbāmus
+indicativus,activa,infectum,pluralis,secunda,ēbātis
+indicativus,activa,infectum,pluralis,tertia,ēbant
+indicativus,activa,futurum,singularis,prima,ēbō
+indicativus,activa,futurum,singularis,secunda,ēbis
+indicativus,activa,futurum,singularis,tertia,ēbit
+indicativus,activa,futurum,pluralis,prima,ēbimus
+indicativus,activa,futurum,pluralis,secunda,ēbitis
+indicativus,activa,futurum,pluralis,tertia,ēbunt
+indicativus,activa,perfectum,singularis,prima,ī
+indicativus,activa,perfectum,singularis,secunda,istī
+indicativus,activa,perfectum,singularis,tertia,it
+indicativus,activa,perfectum,pluralis,prima,imus
+indicativus,activa,perfectum,pluralis,secunda,itis
+indicativus,activa,perfectum,pluralis,tertia,ērunt
+indicativus,activa,pluperfectum,singularis,prima,eram
+indicativus,activa,pluperfectum,singularis,secunda,erās
+indicativus,activa,pluperfectum,singularis,tertia,erat
+indicativus,activa,pluperfectum,pluralis,prima,erāmus
+indicativus,activa,pluperfectum,pluralis,secunda,erātis
+indicativus,activa,pluperfectum,pluralis,tertia,ērant
+indicativus,activa,exigendum,singularis,prima,erō
+indicativus,activa,exigendum,singularis,secunda,erim
+indicativus,activa,exigendum,singularis,tertia,erit
+indicativus,activa,exigendum,pluralis,prima,erimus
+indicativus,activa,exigendum,pluralis,secunda,eritis
+indicativus,activa,exigendum,pluralis,tertia,ērint
+indicativus,perfectum,praesens,singularis,prima,eor
+indicativus,perfectum,praesens,singularis,secunda,ēris
+indicativus,perfectum,praesens,singularis,tertia,ētur
+indicativus,perfectum,praesens,pluralis,prima,ēmur
+indicativus,perfectum,praesens,pluralis,secunda,ēminī
+indicativus,perfectum,praesens,pluralis,tertia,entur
+indicativus,perfectum,infectum,singularis,prima,ēbar
+indicativus,perfectum,infectum,singularis,secunda,ēbāris
+indicativus,perfectum,infectum,singularis,tertia,ēbātur
+indicativus,perfectum,infectum,pluralis,prima,ēbāmur
+indicativus,perfectum,infectum,pluralis,secunda,ēbāminī
+indicativus,perfectum,infectum,pluralis,tertia,ēbantur
+indicativus,perfectum,futurum,singularis,prima,ēbor
+indicativus,perfectum,futurum,singularis,secunda,ēberis
+indicativus,perfectum,futurum,singularis,tertia,ēbitur
+indicativus,perfectum,futurum,pluralis,prima,ēbimur
+indicativus,perfectum,futurum,pluralis,secunda,ēbiminī
+indicativus,perfectum,futurum,pluralis,tertia,ēbuntur
+subiunctivus,activa,praesens,singularis,prima,eam
+subiunctivus,activa,praesens,singularis,secunda,eās
+subiunctivus,activa,praesens,singularis,tertia,eat
+subiunctivus,activa,praesens,pluralis,prima,eāmus
+subiunctivus,activa,praesens,pluralis,secunda,eātis
+subiunctivus,activa,praesens,pluralis,tertia,eant
+subiunctivus,activa,infectum,singularis,prima,ērem
+subiunctivus,activa,infectum,singularis,secunda,ērēs
+subiunctivus,activa,infectum,singularis,tertia,ēret
+subiunctivus,activa,infectum,pluralis,prima,ērēmus
+subiunctivus,activa,infectum,pluralis,secunda,ērētis
+subiunctivus,activa,infectum,pluralis,tertia,ērent
+subiunctivus,activa,perfectum,singularis,prima,erim
+subiunctivus,activa,perfectum,singularis,secunda,erīs
+subiunctivus,activa,perfectum,singularis,tertia,erit
+subiunctivus,activa,perfectum,pluralis,prima,erīmus
+subiunctivus,activa,perfectum,pluralis,secunda,erītis
+subiunctivus,activa,perfectum,pluralis,tertia,erint
+subiunctivus,activa,pluperfectum,singularis,prima,issem
+subiunctivus,activa,pluperfectum,singularis,secunda,issēs
+subiunctivus,activa,pluperfectum,singularis,tertia,isset
+subiunctivus,activa,pluperfectum,pluralis,prima,issēmus
+subiunctivus,activa,pluperfectum,pluralis,secunda,issētis
+subiunctivus,activa,pluperfectum,pluralis,tertia,issent
+subiunctivus,passiva,praesens,singularis,prima,ear
+subiunctivus,passiva,praesens,singularis,secunda,eāris
+subiunctivus,passiva,praesens,singularis,tertia,eātur
+subiunctivus,passiva,praesens,pluralis,prima,eāmur
+subiunctivus,passiva,praesens,pluralis,secunda,eāminī
+subiunctivus,passiva,praesens,pluralis,tertia,eantur
+subiunctivus,passiva,infectum,singularis,prima,ērer
+subiunctivus,passiva,infectum,singularis,secunda,ērēris
+subiunctivus,passiva,infectum,singularis,tertia,ērētur
+subiunctivus,passiva,infectum,pluralis,prima,ērēmur
+subiunctivus,passiva,infectum,pluralis,secunda,ērēminī
+subiunctivus,passiva,infectum,pluralis,tertia,ērentur
diff --git a/res/tabula/actus/tertius.csv b/res/tabula/actus/tertius.csv
new file mode 100644
index 0000000..e4b99dd
--- /dev/null
+++ b/res/tabula/actus/tertius.csv
@@ -0,0 +1,106 @@
+modus,vox,tempus,numeralis,persona,scriptum
+indicativus,activa,praesens,,,ere
+indicativus,activa,perfectum,,,isse
+infinitivus,passiva,praesens,,,ī
+participalis,activa,praesens,,,iēns
+participalis,activa,perfectum,um
+participalis,activa,futurum,,,endum
+participalis,passiva,futurum,,,ūrum
+imperativus,activa,praesens,singularis,,e
+imperativus,activa,praesens,pluralis,,ite
+imperativus,activa,futurum,singularis,,itō
+imperativus,activa,futurum,pluralis,,itōte
+imperativus,passiva,praesens,singularis,,ere
+imperativus,passiva,praesens,pluralis,,iminī
+imperativus,passiva,futurum,singularis,,itor
+imperativus,passiva,futurum,pluralis,,untor
+indicativus,activa,praesens,singularis,prima,ō
+indicativus,activa,praesens,singularis,secunda,is
+indicativus,activa,praesens,singularis,tertia,it
+indicativus,activa,praesens,pluralis,prima,imus
+indicativus,activa,praesens,pluralis,secunda,itis
+indicativus,activa,praesens,pluralis,tertia,unt
+indicativus,activa,infectum,singularis,prima,ēbam
+indicativus,activa,infectum,singularis,secunda,ēbās
+indicativus,activa,infectum,singularis,tertia,ēbat
+indicativus,activa,infectum,pluralis,prima,ēbāmus
+indicativus,activa,infectum,pluralis,secunda,ēbātis
+indicativus,activa,infectum,pluralis,tertia,ēbant
+indicativus,activa,futurum,singularis,prima,am
+indicativus,activa,futurum,singularis,secunda,ēs
+indicativus,activa,futurum,singularis,tertia,et
+indicativus,activa,futurum,pluralis,prima,ēmus
+indicativus,activa,futurum,pluralis,secunda,ētis
+indicativus,activa,futurum,pluralis,tertia,ent
+indicativus,activa,perfectum,singularis,prima,ī
+indicativus,activa,perfectum,singularis,secunda,istī
+indicativus,activa,perfectum,singularis,tertia,it
+indicativus,activa,perfectum,pluralis,prima,imus
+indicativus,activa,perfectum,pluralis,secunda,istis
+indicativus,activa,perfectum,pluralis,tertia,ērunt
+indicativus,activa,pluperfectum,singularis,prima,eram
+indicativus,activa,pluperfectum,singularis,secunda,erās
+indicativus,activa,pluperfectum,singularis,tertia,erat
+indicativus,activa,pluperfectum,pluralis,prima,erāmus
+indicativus,activa,pluperfectum,pluralis,secunda,erātis
+indicativus,activa,pluperfectum,pluralis,tertia,erant
+indicativus,activa,exigendum,singularis,prima,erō
+indicativus,activa,exigendum,singularis,secunda,eris
+indicativus,activa,exigendum,singularis,tertia,erit
+indicativus,activa,exigendum,pluralis,prima,erimus
+indicativus,activa,exigendum,pluralis,secunda,eritis
+indicativus,activa,exigendum,pluralis,tertia,erint
+indicativus,passiva,praesens,singularis,prima,or
+indicativus,passiva,praesens,singularis,secunda,eris
+indicativus,passiva,praesens,singularis,tertia,itur
+indicativus,passiva,praesens,pluralis,prima,imur
+indicativus,passiva,praesens,pluralis,secunda,iminī
+indicativus,passiva,praesens,pluralis,tertia,untur
+indicativus,passiva,infectum,singularis,prima,ēbar
+indicativus,passiva,infectum,singularis,secunda,ēbāris
+indicativus,passiva,infectum,singularis,tertia,ēbātur
+indicativus,passiva,infectum,pluralis,prima,ēbāmur
+indicativus,passiva,infectum,pluralis,secunda,ēbāminī
+indicativus,passiva,infectum,pluralis,tertia,ēbantur
+indicativus,passiva,futurum,singularis,prima,ar
+indicativus,passiva,futurum,singularis,secunda,ēris
+indicativus,passiva,futurum,singularis,tertia,ētur
+indicativus,passiva,futurum,pluralis,prima,ēmur
+indicativus,passiva,futurum,pluralis,secunda,ēminī
+indicativus,passiva,futurum,pluralis,tertia,entur
+subiunctivus,activa,praesens,singularis,prima,am
+subiunctivus,activa,praesens,singularis,secunda,ās
+subiunctivus,activa,praesens,singularis,tertia,at
+subiunctivus,activa,praesens,pluralis,prima,āmus
+subiunctivus,activa,praesens,pluralis,secunda,ātis
+subiunctivus,activa,praesens,pluralis,tertia,ant
+subiunctivus,activa,infectum,singularis,prima,erem
+subiunctivus,activa,infectum,singularis,secunda,erēs
+subiunctivus,activa,infectum,singularis,tertia,eret
+subiunctivus,activa,infectum,pluralis,prima,erēmus
+subiunctivus,activa,infectum,pluralis,secunda,erētis
+subiunctivus,activa,infectum,pluralis,tertia,erent
+subiunctivus,activa,perfectum,singularis,prima,erim
+subiunctivus,activa,perfectum,singularis,secunda,erīs
+subiunctivus,activa,perfectum,singularis,tertia,erit
+subiunctivus,activa,perfectum,pluralis,prima,erīmus
+subiunctivus,activa,perfectum,pluralis,secunda,erītis
+subiunctivus,activa,perfectum,pluralis,tertia,erint
+subiunctivus,activa,pluperfectum,singularis,prima,issem
+subiunctivus,activa,pluperfectum,singularis,secunda,issēs
+subiunctivus,activa,pluperfectum,singularis,tertia,isset
+subiunctivus,activa,pluperfectum,pluralis,prima,issēmus
+subiunctivus,activa,pluperfectum,pluralis,secunda,issētis
+subiunctivus,activa,pluperfectum,pluralis,tertia,issent
+subiunctivus,passiva,praesens,singularis,prima,ar
+subiunctivus,passiva,praesens,singularis,secunda,āris
+subiunctivus,passiva,praesens,singularis,tertia,ātur
+subiunctivus,passiva,praesens,pluralis,prima,āmur
+subiunctivus,passiva,praesens,pluralis,secunda,āminī
+subiunctivus,passiva,praesens,pluralis,tertia,antur
+subiunctivus,passiva,infectum,singularis,prima,erer
+subiunctivus,passiva,infectum,singularis,secunda,erēris
+subiunctivus,passiva,infectum,singularis,tertia,erētur
+subiunctivus,passiva,infectum,pluralis,prima,erēmur
+subiunctivus,passiva,infectum,pluralis,secunda,erēminī
+subiunctivus,passiva,infectum,pluralis,tertia,erentur
diff --git a/res/tabula/actus/tertiusVarius.csv b/res/tabula/actus/tertiusVarius.csv
new file mode 100644
index 0000000..19cfe0c
--- /dev/null
+++ b/res/tabula/actus/tertiusVarius.csv
@@ -0,0 +1,106 @@
+modus,vox,tempus,numeralis,persona,scriptum
+indicativus,activa,praesens,,,ere
+indicativus,activa,perfectum,,,isse
+infinitivus,passiva,praesens,,,ī
+participalis,activa,praesens,,,iēns
+participalis,activa,perfectum,um
+participalis,activa,futurum,,,iendum
+participalis,passiva,futurum,,,ūrum
+imperativus,activa,praesens,singularis,,e
+imperativus,activa,praesens,pluralis,,ite
+imperativus,activa,futurum,singularis,,itō
+imperativus,activa,futurum,pluralis,,itōte
+imperativus,passiva,praesens,singularis,,ere
+imperativus,passiva,praesens,pluralis,,iminī
+imperativus,passiva,futurum,singularis,,itor
+imperativus,passiva,futurum,pluralis,,iuntor
+indicativus,activa,praesens,singularis,prima,iō
+indicativus,activa,praesens,singularis,secunda,is
+indicativus,activa,praesens,singularis,tertia,it
+indicativus,activa,praesens,pluralis,prima,imus
+indicativus,activa,praesens,pluralis,secunda,itis
+indicativus,activa,praesens,pluralis,tertia,iunt
+indicativus,activa,infectum,singularis,prima,iēbam
+indicativus,activa,infectum,singularis,secunda,iēbās
+indicativus,activa,infectum,singularis,tertia,iēbat
+indicativus,activa,infectum,pluralis,prima,iēbāmus
+indicativus,activa,infectum,pluralis,secunda,iēbātis
+indicativus,activa,infectum,pluralis,tertia,iēbant
+indicativus,activa,futurum,singularis,prima,iam
+indicativus,activa,futurum,singularis,secunda,iēs
+indicativus,activa,futurum,singularis,tertia,iet
+indicativus,activa,futurum,pluralis,prima,iēmus
+indicativus,activa,futurum,pluralis,secunda,iētis
+indicativus,activa,futurum,pluralis,tertia,ient
+indicativus,activa,perfectum,singularis,prima,ī
+indicativus,activa,perfectum,singularis,secunda,istī
+indicativus,activa,perfectum,singularis,tertia,it
+indicativus,activa,perfectum,pluralis,prima,imus
+indicativus,activa,perfectum,pluralis,secunda,istis
+indicativus,activa,perfectum,pluralis,tertia,ērunt
+indicativus,activa,pluperfectum,singularis,prima,eram
+indicativus,activa,pluperfectum,singularis,secunda,erās
+indicativus,activa,pluperfectum,singularis,tertia,erat
+indicativus,activa,pluperfectum,pluralis,prima,erāmus
+indicativus,activa,pluperfectum,pluralis,secunda,erātis
+indicativus,activa,pluperfectum,pluralis,tertia,erant
+indicativus,activa,exigendum,singularis,prima,erō
+indicativus,activa,exigendum,singularis,secunda,eris
+indicativus,activa,exigendum,singularis,tertia,erit
+indicativus,activa,exigendum,pluralis,prima,erimus
+indicativus,activa,exigendum,pluralis,secunda,eritis
+indicativus,activa,exigendum,pluralis,tertia,erint
+indicativus,passiva,praesens,singularis,prima,ior
+indicativus,passiva,praesens,singularis,secunda,eris
+indicativus,passiva,praesens,singularis,tertia,itur
+indicativus,passiva,praesens,pluralis,prima,imur
+indicativus,passiva,praesens,pluralis,secunda,iminī
+indicativus,passiva,praesens,pluralis,tertia,untur
+indicativus,passiva,infectum,singularis,prima,iēbar
+indicativus,passiva,infectum,singularis,secunda,iēbāris
+indicativus,passiva,infectum,singularis,tertia,iēbātur
+indicativus,passiva,infectum,pluralis,prima,iēbāmur
+indicativus,passiva,infectum,pluralis,secunda,iēbāminī
+indicativus,passiva,infectum,pluralis,tertia,iēbantur
+indicativus,passiva,futurum,singularis,prima,iar
+indicativus,passiva,futurum,singularis,secunda,iēris
+indicativus,passiva,futurum,singularis,tertia,iētur
+indicativus,passiva,futurum,pluralis,prima,iēmur
+indicativus,passiva,futurum,pluralis,secunda,iēminī
+indicativus,passiva,futurum,pluralis,tertia,ientur
+subiunctivus,activa,praesens,singularis,prima,iam
+subiunctivus,activa,praesens,singularis,secunda,iās
+subiunctivus,activa,praesens,singularis,tertia,iat
+subiunctivus,activa,praesens,pluralis,prima,iāmus
+subiunctivus,activa,praesens,pluralis,secunda,iātis
+subiunctivus,activa,praesens,pluralis,tertia,iant
+subiunctivus,activa,infectum,singularis,prima,erem
+subiunctivus,activa,infectum,singularis,secunda,erēs
+subiunctivus,activa,infectum,singularis,tertia,eret
+subiunctivus,activa,infectum,pluralis,prima,erēmus
+subiunctivus,activa,infectum,pluralis,secunda,erētis
+subiunctivus,activa,infectum,pluralis,tertia,erent
+subiunctivus,activa,perfectum,singularis,prima,erim
+subiunctivus,activa,perfectum,singularis,secunda,erīs
+subiunctivus,activa,perfectum,singularis,tertia,erit
+subiunctivus,activa,perfectum,pluralis,prima,erīmus
+subiunctivus,activa,perfectum,pluralis,secunda,erītis
+subiunctivus,activa,perfectum,pluralis,tertia,erint
+subiunctivus,activa,pluperfectum,singularis,prima,issem
+subiunctivus,activa,pluperfectum,singularis,secunda,issēs
+subiunctivus,activa,pluperfectum,singularis,tertia,isset
+subiunctivus,activa,pluperfectum,pluralis,prima,issēmus
+subiunctivus,activa,pluperfectum,pluralis,secunda,issētis
+subiunctivus,activa,pluperfectum,pluralis,tertia,issent
+subiunctivus,passiva,praesens,singularis,prima,iar
+subiunctivus,passiva,praesens,singularis,secunda,iāris
+subiunctivus,passiva,praesens,singularis,tertia,iātur
+subiunctivus,passiva,praesens,pluralis,prima,iāmur
+subiunctivus,passiva,praesens,pluralis,secunda,iāminī
+subiunctivus,passiva,praesens,pluralis,tertia,iantur
+subiunctivus,passiva,infectum,singularis,prima,erer
+subiunctivus,passiva,infectum,singularis,secunda,erēris
+subiunctivus,passiva,infectum,singularis,tertia,erētur
+subiunctivus,passiva,infectum,pluralis,prima,erēmur
+subiunctivus,passiva,infectum,pluralis,secunda,erēminī
+subiunctivus,passiva,infectum,pluralis,tertia,erentur
diff --git a/res/tabula/adiectiva/incomparabilia/autPrimusAutSecundus.csv b/res/tabula/adiectiva/incomparabilia/autPrimusAutSecundus.csv
new file mode 100644
index 0000000..a574a25
--- /dev/null
+++ b/res/tabula/adiectiva/incomparabilia/autPrimusAutSecundus.csv
@@ -0,0 +1,37 @@
+numeralis,gradus,genus,casus,scriptum
+pluralis,,,dativus,īs
+pluralis,,,ablativus,īs
+pluralis,,,locativus,īs
+singularis,,neutrum,nominativus,um
+singularis,,neutrum,genitivus,ī
+singularis,,neutrum,dativus,ō
+singularis,,neutrum,accusativus,um
+singularis,,neutrum,ablativus,ō
+singularis,,neutrum,locativus,ō
+singularis,,neutrum,vocativus,um
+pluralis,,neutrum,nominativus,a
+pluralis,,neutrum,genitivus,ōrum
+pluralis,,neutrum,accusativus,a
+pluralis,,neutrum,vocativus,a
+singularis,,masculinum,nominativus,us
+singularis,,masculinum,genitivus,ī
+singularis,,masculinum,dativus,ō
+singularis,,masculinum,accusativus,um
+singularis,,masculinum,ablativus,ō
+singularis,,masculinum,locativus,ō
+singularis,,masculinum,vocativus,e
+pluralis,,masculinum,nominativus,ī
+pluralis,,masculinum,genitivus,ōrum
+pluralis,,masculinum,accusativus,ōs
+pluralis,,masculinum,vocativus,ī
+singularis,,femininum,nominativus,a
+singularis,,femininum,genitivus,ae
+singularis,,femininum,dativus,ae
+singularis,,femininum,accusativus,am
+singularis,,femininum,ablativus,ā
+singularis,,femininum,locativus,ā
+singularis,,femininum,vocativus,a
+pluralis,,femininum,nominativus,ae
+pluralis,,femininum,genitivus,ārum
+pluralis,,femininum,accusativus,ās
+pluralis,,femininum,vocativus,ae
diff --git a/res/tabula/adiectiva/incomparabilia/pronominalis.csv b/res/tabula/adiectiva/incomparabilia/pronominalis.csv
new file mode 100644
index 0000000..78d2547
--- /dev/null
+++ b/res/tabula/adiectiva/incomparabilia/pronominalis.csv
@@ -0,0 +1,33 @@
+numeralis,gradus,genus,casus,scriptum
+singularis,,,genitivus,īus
+singularis,,,dativus,ī
+pluralis,,,dativus,īs
+pluralis,,,ablativus,īs
+pluralis,,,locaivus,īs
+singularis,,neutrum,nominativus,um
+singularis,,neutrum,accusativus,um
+singularis,,neutrum,ablativus,ō
+singularis,,neutrum,locaivus,ō
+singularis,,neutrum,vocativus,um
+pluralis,,neutrum,nominativus,a
+pluralis,,neutrum,genitivus,ōrum
+pluralis,,neutrum,accusativus,a
+pluralis,,neutrum,vocativus,a
+singularis,,masculinum,nominativus,us
+singularis,,masculinum,accusativus,um
+singularis,,masculinum,ablativus,ō
+singularis,,masculinum,locaivus,ō
+singularis,,masculinum,vocativus,e
+pluralis,,masculinum,nominativus,ī
+pluralis,,masculinum,genitivus,ōrum
+pluralis,,masculinum,accusativus,ōs
+pluralis,,masculinum,vocativus,ī
+singularis,,femininum,nominativus,a
+singularis,,femininum,accusativus,am
+singularis,,femininum,ablativus,ā
+singularis,,femininum,locaivus,ā
+singularis,,femininum,vocativus,a
+pluralis,,femininum,nominativus,ae
+pluralis,,femininum,genitivus,ārum
+pluralis,,femininum,accusativus,ās
+pluralis,,femininum,vocativus,ae
diff --git a/res/tabula/adiectiva/incomparabilia/tertius.csv b/res/tabula/adiectiva/incomparabilia/tertius.csv
new file mode 100644
index 0000000..5b60917
--- /dev/null
+++ b/res/tabula/adiectiva/incomparabilia/tertius.csv
@@ -0,0 +1,27 @@
+numeralis,genus,gradus,casus,scriptum
+singularis,,,genitivus,is
+singularis,,,dativus,ī
+singularis,,,ablativus,e
+singularis,,,locaivus,e
+pluralis,,,genitivus,um
+pluralis,,,dativus,ibus
+pluralis,,,ablativus,ibus
+pluralis,,,locaivus,ibus
+singularis,neutrum,,nominativus,e
+singularis,neutrum,,accusativus,e
+singularis,neutrum,,vocativus,e
+pluralis,neutrum,,nominativus,a
+pluralis,neutrum,,accusativus,a
+pluralis,neutrum,,vocativus,a
+,singularis,masculinum,,nominativus,
+singularis,masculinum,,accusativus,em
+singularis,masculinum,,vocativus,
+pluralis,masculinum,,nominativus,ēs
+pluralis,masculinum,,accusativus,ēs
+pluralis,masculinum,,vocativus,
+singularis,femininum,,nominativus,
+singularis,femininum,,accusativus,em
+singularis,femininum,,vocativus,
+pluralis,femininum,,nominativus,ēs
+pluralis,femininum,,accusativus,ēs
+pluralis,femininum,,vocativus,
diff --git a/res/tabula/adiectiva/positivusAutPrimusAutSecundus.csv b/res/tabula/adiectiva/positivusAutPrimusAutSecundus.csv
new file mode 100644
index 0000000..520977e
--- /dev/null
+++ b/res/tabula/adiectiva/positivusAutPrimusAutSecundus.csv
@@ -0,0 +1,127 @@
+gradus ,genus ,numeralis ,casus ,scriptum
+positivus ,neutrum ,singularis ,nominativus ,um
+positivus ,neutrum ,singularis ,genitivus ,ī
+positivus ,neutrum ,singularis ,dativus ,ō
+positivus ,neutrum ,singularis ,accusativus ,um
+positivus ,neutrum ,singularis ,ablativus ,ō
+positivus ,neutrum ,singularis ,locaivus ,ō
+positivus ,neutrum ,singularis ,vocativus ,um
+positivus ,neutrum ,pluralis ,nominativus ,a
+positivus ,neutrum ,pluralis ,genitivus ,ōrum
+positivus ,neutrum ,pluralis ,dativus ,īs
+positivus ,neutrum ,pluralis ,accusativus ,a
+positivus ,neutrum ,pluralis ,ablativus ,īs
+positivus ,neutrum ,pluralis ,locaivus ,īs
+positivus ,neutrum ,pluralis ,vocativus ,a
+positivus ,masculinum ,singularis ,nominativus ,us
+positivus ,masculinum ,singularis ,genitivus ,ī
+positivus ,masculinum ,singularis ,dativus ,ō
+positivus ,masculinum ,singularis ,accusativus ,um
+positivus ,masculinum ,singularis ,ablativus ,ō
+positivus ,masculinum ,singularis ,locaivus ,ō
+positivus ,masculinum ,singularis ,vocativus ,e
+positivus ,masculinum ,pluralis ,nominativus ,ī
+positivus ,masculinum ,pluralis ,genitivus ,ōrum
+positivus ,masculinum ,pluralis ,dativus ,īs
+positivus ,masculinum ,pluralis ,accusativus ,ōs
+positivus ,masculinum ,pluralis ,ablativus ,īs
+positivus ,masculinum ,pluralis ,locaivus ,īs
+positivus ,masculinum ,pluralis ,vocativus ,ī
+positivus ,femininum ,singularis ,nominativus ,a
+positivus ,femininum ,singularis ,genitivus ,ae
+positivus ,femininum ,singularis ,dativus ,ae
+positivus ,femininum ,singularis ,accusativus ,am
+positivus ,femininum ,singularis ,ablativus ,ā
+positivus ,femininum ,singularis ,locaivus ,ā
+positivus ,femininum ,singularis ,vocativus ,a
+positivus ,femininum ,pluralis ,nominativus ,ae
+positivus ,femininum ,pluralis ,genitivus ,ārum
+positivus ,femininum ,pluralis ,dativus ,īs
+positivus ,femininum ,pluralis ,accusativus ,ās
+positivus ,femininum ,pluralis ,ablativus ,īs
+positivus ,femininum ,pluralis ,locaivus ,īs
+positivus ,femininum ,pluralis ,vocativus ,ae
+comparativus ,neutrum ,singularis ,nominativus ,ius
+comparativus ,neutrum ,singularis ,genitivus ,iōris
+superlativus ,neutrum ,singularis ,dativus ,iōrī
+superlativus ,neutrum ,singularis ,accusativus ,ius
+superlativus ,neutrum ,singularis ,ablativus ,iōre
+superlativus ,neutrum ,singularis ,locaivus ,iōre
+comparativus ,neutrum ,singularis ,vocaivus ,ius
+comparativus ,neutrum ,pluralis ,nominativus ,iōra
+comparativus ,neutrum ,pluralis ,genitivus ,iōrum
+superlativus ,neutrum ,pluralis ,dativus ,iōribus
+superlativus ,neutrum ,pluralis ,accusativus ,iōra
+superlativus ,neutrum ,pluralis ,ablativus ,iōribus
+superlativus ,neutrum ,pluralis ,locaivus ,iōribus
+comparativus ,neutrum ,pluralis ,vocaivus ,iōra
+comparativus ,masculinum ,singularis ,nominativus ,ior
+comparativus ,masculinum ,singularis ,genitivus ,iōris
+superlativus ,masculinum ,singularis ,dativus ,iōrī
+superlativus ,masculinum ,singularis ,accusativus ,iōrem
+superlativus ,masculinum ,singularis ,ablativus ,iōre
+superlativus ,masculinum ,singularis ,locaivus ,iōre
+comparativus ,masculinum ,singularis ,vocaivus ,ior
+comparativus ,masculinum ,pluralis ,nominativus ,iōrēs
+comparativus ,masculinum ,pluralis ,genitivus ,iōrum
+superlativus ,masculinum ,pluralis ,dativus ,iōribus
+superlativus ,masculinum ,pluralis ,accusativus ,iōrēs
+superlativus ,masculinum ,pluralis ,ablativus ,iōribus
+superlativus ,masculinum ,pluralis ,locaivus ,iōribus
+comparativus ,masculinum ,pluralis ,vocaivus ,iōrēs
+comparativus ,femininum ,singularis ,nominativus ,ior
+comparativus ,femininum ,singularis ,genitivus ,iōris
+superlativus ,femininum ,singularis ,dativus ,iōrī
+superlativus ,femininum ,singularis ,accusativus ,iōrem
+superlativus ,femininum ,singularis ,ablativus ,iōre
+superlativus ,femininum ,singularis ,locaivus ,iōre
+comparativus ,femininum ,singularis ,vocaivus ,ior
+comparativus ,femininum ,pluralis ,nominativus ,iōrēs
+comparativus ,femininum ,pluralis ,genitivus ,iōrum
+superlativus ,femininum ,pluralis ,dativus ,iōribus
+superlativus ,femininum ,pluralis ,accusativus ,iōrēs
+superlativus ,femininum ,pluralis ,ablativus ,iōribus
+superlativus ,femininum ,pluralis ,locaivus ,iōribus
+comparativus ,femininum ,pluralis ,vocaivus ,iōrēs
+superlativus ,neutrum ,singularis ,nominativus ,um
+superlativus ,neutrum ,singularis ,genitivus ,ī
+superlativus ,neutrum ,singularis ,dativus ,ō
+superlativus ,neutrum ,singularis ,accusativus ,um
+superlativus ,neutrum ,singularis ,ablativus ,ō
+superlativus ,neutrum ,singularis ,locaivus ,ō
+superlativus ,neutrum ,singularis ,vocativus ,um
+superlativus ,neutrum ,pluralis ,nominativus ,a
+superlativus ,neutrum ,pluralis ,genitivus ,ōrum
+superlativus ,neutrum ,pluralis ,dativus ,īs
+superlativus ,neutrum ,pluralis ,accusativus ,a
+superlativus ,neutrum ,pluralis ,ablativus ,īs
+superlativus ,neutrum ,pluralis ,locaivus ,īs
+superlativus ,neutrum ,pluralis ,vocativus ,a
+superlativus ,masculinum ,singularis ,nominativus ,us
+superlativus ,masculinum ,singularis ,genitivus ,ī
+superlativus ,masculinum ,singularis ,dativus ,ō
+superlativus ,masculinum ,singularis ,accusativus ,um
+superlativus ,masculinum ,singularis ,ablativus ,ō
+superlativus ,masculinum ,singularis ,locaivus ,ō
+superlativus ,masculinum ,singularis ,vocativus ,e
+superlativus ,masculinum ,pluralis ,nominativus ,ī
+superlativus ,masculinum ,pluralis ,genitivus ,ōrum
+superlativus ,masculinum ,pluralis ,dativus ,īs
+superlativus ,masculinum ,pluralis ,accusativus ,ōs
+superlativus ,masculinum ,pluralis ,ablativus ,īs
+superlativus ,masculinum ,pluralis ,locaivus ,īs
+superlativus ,masculinum ,pluralis ,vocativus ,ī
+superlativus ,femininum ,singularis ,nominativus ,a
+superlativus ,femininum ,singularis ,genitivus ,ae
+superlativus ,femininum ,singularis ,dativus ,ae
+superlativus ,femininum ,singularis ,accusativus ,am
+superlativus ,femininum ,singularis ,ablativus ,ā
+superlativus ,femininum ,singularis ,locaivus ,ā
+superlativus ,femininum ,singularis ,vocativus ,a
+superlativus ,femininum ,pluralis ,nominativus ,ae
+superlativus ,femininum ,pluralis ,genitivus ,ārum
+superlativus ,femininum ,pluralis ,dativus ,īs
+superlativus ,femininum ,pluralis ,accusativus ,ās
+superlativus ,femininum ,pluralis ,ablativus ,īs
+superlativus ,femininum ,pluralis ,locaivus ,īs
+superlativus ,femininum ,pluralis ,vocativus ,ae
diff --git a/res/tabula/adiectiva/postiivusTertius.csv b/res/tabula/adiectiva/postiivusTertius.csv
new file mode 100644
index 0000000..ec80137
--- /dev/null
+++ b/res/tabula/adiectiva/postiivusTertius.csv
@@ -0,0 +1,79 @@
+gradus,genus,numeralis,casus,scriptum
+positivus,,singularis,genitivus,is
+positivus,,singularis,dativus,ī
+positivus,,singularis,ablativus,e
+positivus,,singularis,locativus,e
+positivus,,pluralis,genitivus,um
+positivus,,pluralis,dativus,ibus
+positivus,,pluralis,ablativus,ibus
+positivus,,pluralis,locativus,ibus
+positivus,neutrum,singularis,nominativus,e
+positivus,neutrum,singularis,accusativus,e
+positivus,neutrum,singularis,vocativus,e
+positivus,neutrum,pluralis,nominativus,a
+positivus,neutrum,pluralis,accusativus,a
+positivus,neutrum,pluralis,vocativus,a
+positivus,masculinum,singularis,nominativus,
+positivus,masculinum,singularis,accusativus,em
+positivus,masculinum,singularis,vocativus,
+positivus,masculinum,pluralis,nominativus,ēs
+positivus,masculinum,pluralis,accusativus,ēs
+positivus,masculinum,pluralis,vocativus,
+positivus,femininum,singularis,nominativus,
+positivus,femininum,singularis,accusativus,em
+positivus,femininum,singularis,vocativus,
+positivus,femininum,pluralis,nominativus,ēs
+positivus,femininum,pluralis,accusativus,ēs
+positivus,femininum,pluralis,vocativus,
+
+comparativus,,singularis,genitivus,iōris
+comparativus,,singularis,dativus,iōrī
+comparativus,,singularis,ablativus,iōre
+comparativus,,singularis,locativus,iōre
+comparativus,,pluralis,genitivus,iōrum
+comparativus,,pluralis,dativus,iōribus
+comparativus,,pluralis,ablativus,iōribus
+comparativus,,pluralis,locativus,iōribus
+comparativus,neutrum,singularis,nominativus,ius
+comparativus,neutrum,singularis,vocaivus,ius
+comparativus,neutrum,pluralis,nominativus,iōra
+comparativus,neutrum,pluralis,vocaivus,iōra
+comparativus,masculinum,singularis,nominativus,ior
+comparativus,masculinum,singularis,vocaivus,ior
+comparativus,masculinum,pluralis,nominativus,iōrēs
+comparativus,masculinum,pluralis,vocaivus,iōrēs
+comparativus,femininum,singularis,nominativus,ior
+comparativus,femininum,singularis,vocaivus,ior
+comparativus,femininum,pluralis,nominativus,iōrēs
+comparativus,femininum,pluralis,vocaivus,iōrēs
+
+superlativus,,pluralis,dativus,īs
+superlativus,,pluralis,ablativus,īs
+superlativus,,pluralis,locativus,īs
+superlativus,neutrum,singularis,nominativus,um
+superlativus,neutrum,singularis,genitivus,ī
+superlativus,neutrum,singularis,dativus,ō
+superlativus,neutrum,singularis,accusativus,um
+superlativus,neutrum,singularis,ablativus,ō
+superlativus,neutrum,singularis,locativus,ō
+superlativus,neutrum,pluralis,nominativus,a
+superlativus,neutrum,pluralis,genitivus,ōrum
+superlativus,neutrum,pluralis,accusativus,a
+superlativus,masculinum,singularis,nominativus,us
+superlativus,masculinum,singularis,genitivus,ī
+superlativus,masculinum,singularis,dativus,ō
+superlativus,masculinum,singularis,accusativus,um
+superlativus,masculinum,singularis,ablativus,ō
+superlativus,masculinum,singularis,locativus,ō
+superlativus,masculinum,pluralis,nominativus,ī
+superlativus,masculinum,pluralis,genitivus,ōrum
+superlativus,masculinum,pluralis,accusativus,ōs
+superlativus,femininum,singularis,nominativus,a
+superlativus,femininum,singularis,genitivus,ae
+superlativus,femininum,singularis,dativus,ae
+superlativus,femininum,singularis,accusativus,am
+superlativus,femininum,singularis,ablativus,ā
+superlativus,femininum,singularis,locativus,ā
+superlativus,femininum,pluralis,nominativus,ae
+superlativus,femininum,pluralis,genitivus,ārum
+superlativus,femininum,pluralis,accusativus,ās
diff --git a/res/tabula/nomina/facta/prima.csv b/res/tabula/nomina/facta/prima.csv
new file mode 100644
index 0000000..e913442
--- /dev/null
+++ b/res/tabula/nomina/facta/prima.csv
@@ -0,0 +1,8 @@
+factum,casus,scriptum
+infinitivum,,āre
+gerundium,genitivus,andī
+gerundium,dativus,andō
+gerundium,ablativus,andō
+gerundium,accusativus,andum
+supinum,accusativus,um
+supinum,ablativus,ū
diff --git a/res/tabula/nomina/facta/quarta.csv b/res/tabula/nomina/facta/quarta.csv
new file mode 100644
index 0000000..881e81d
--- /dev/null
+++ b/res/tabula/nomina/facta/quarta.csv
@@ -0,0 +1,8 @@
+factum,casus,scriptum
+infinitivum,,īre
+gerundium,genitivus,iendī
+gerundium,dativus,iendō
+gerundium,ablativus,iendō
+gerundium,accusativus,iendum
+supinum,accusativus,um
+supinum,ablativus,ū
diff --git a/res/tabula/nomina/facta/secunda.csv b/res/tabula/nomina/facta/secunda.csv
new file mode 100644
index 0000000..0157ce7
--- /dev/null
+++ b/res/tabula/nomina/facta/secunda.csv
@@ -0,0 +1,8 @@
+factum,casus,scriptum
+infinitivum,,ēre
+gerundium,genitivus,endī
+gerundium,dativus,endō
+gerundium,ablativus,endō
+gerundium,accusativus,endum
+supinum,accusativus,um
+supinum,ablativus,ū
diff --git a/res/tabula/nomina/facta/tertia.csv b/res/tabula/nomina/facta/tertia.csv
new file mode 100644
index 0000000..d081953
--- /dev/null
+++ b/res/tabula/nomina/facta/tertia.csv
@@ -0,0 +1,8 @@
+factum,casus,scriptum
+infinitivum,,ere
+gerundium,genitivus,endī
+gerundium,dativus,endō
+gerundium,ablativus,endō
+gerundium,accusativus,endum
+supinum,accusativus,um
+supinum,ablativus,ū
diff --git a/res/tabula/nomina/facta/tertiaVaria.csv b/res/tabula/nomina/facta/tertiaVaria.csv
new file mode 100644
index 0000000..1feab71
--- /dev/null
+++ b/res/tabula/nomina/facta/tertiaVaria.csv
@@ -0,0 +1,8 @@
+factum,casus,scriptum
+infinitivum,,ere
+gerundium,genitivus,iendī
+gerundium,dativus,iendō
+gerundium,ablativus,iendō
+gerundium,accusativus,iendum
+supinum,accusativus,um
+supinum,ablativus,ū
diff --git a/res/tabula/nomina/prima.csv b/res/tabula/nomina/prima.csv
new file mode 100644
index 0000000..a1a5669
--- /dev/null
+++ b/res/tabula/nomina/prima.csv
@@ -0,0 +1,15 @@
+numeralis,casus,scriptum
+singularis,nominatius,a
+singularis,genitivus,ae
+singularis,dativus,ae
+singularis,accusativus,am
+singularis,ablativus,ā
+singularis,locativus,ā
+singularis,vocativus,a
+pluralis,nominatius,ae
+pluralis,genitivus,ārum
+pluralis,dativus,īs
+pluralis,accusativus,ās
+pluralis,ablativus,īs
+pluralis,locativus,īs
+pluralis,vocativus,ae
diff --git a/res/tabula/nomina/quartaVaria.csv b/res/tabula/nomina/quartaVaria.csv
new file mode 100644
index 0000000..970f10d
--- /dev/null
+++ b/res/tabula/nomina/quartaVaria.csv
@@ -0,0 +1,15 @@
+numeralis,casus,scriptum
+singularis,nominativs,ū
+singularis,genitivus,ūs
+singularis,dativus,uī
+singularis,accustativus,ū
+singularis,ablativus,ū
+singularis,locativus,ū
+singularis,vocativus,ū
+pluralis,nominativs,ua
+pluralis,genitivus,uum
+pluralis,dativus,ibus
+pluralis,accustativus,ua
+pluralis,ablativus,ibus
+pluralis,locativus,ibus
+pluralis,vocativus,ua
diff --git a/res/tabula/nomina/quartus.csv b/res/tabula/nomina/quartus.csv
new file mode 100644
index 0000000..d429071
--- /dev/null
+++ b/res/tabula/nomina/quartus.csv
@@ -0,0 +1,15 @@
+numeralis,casus,scriptum
+singularis,nominativs,us
+singularis,genitivus,ūs
+singularis,dativus,uī
+singularis,accustativus,um
+singularis,ablativus,ū
+singularis,locativus,ū
+singularis,vocativus,us
+pluralis,nominativs,ūs
+pluralis,genitivus,ūs
+pluralis,dativus,ibus
+pluralis,accustativus,ūs
+pluralis,ablativus,ibus
+pluralis,locativus,ibus
+pluralis,vocativus,ūs
diff --git a/res/tabula/nomina/quinta.csv b/res/tabula/nomina/quinta.csv
new file mode 100644
index 0000000..81e9b06
--- /dev/null
+++ b/res/tabula/nomina/quinta.csv
@@ -0,0 +1,15 @@
+numeralis,casus,scriptum
+singularis,nominatuvs,ēs
+singularis,genituvs,eī
+singularis,dativus,eī
+singularis,accusativus,em
+singularis,ablativus,ē
+singularis,locativus,ē
+singularis,vocativus,ēs
+pluralis,nominatuvs,ēs
+pluralis,genituvs,ērum
+pluralis,dativus,ēbus
+pluralis,accusativus,ēs
+pluralis,ablativus,ēbus
+pluralis,locativus,ēbus
+pluralis,vocativus,ēs
diff --git a/res/tabula/nomina/secundaMasculina.csv b/res/tabula/nomina/secundaMasculina.csv
new file mode 100644
index 0000000..0950233
--- /dev/null
+++ b/res/tabula/nomina/secundaMasculina.csv
@@ -0,0 +1,15 @@
+numeralis,casus,scriptum
+singularis,nominativus,us
+singularis,genitivus,ī
+singularis,dativus,ō
+singularis,accusativus,um
+singularis,ablativus,ō
+singularis,locativus,ō
+singularis,vocativus,e
+pluralis,nominativus,ī
+pluralis,genitivus,ōrum
+pluralis,dativus,īs
+pluralis,accusativus,ōs
+pluralis,ablativus,īs
+pluralis,locativus,īs
+pluralis,vocativus,ī
diff --git a/res/tabula/nomina/secundaNeutra.csv b/res/tabula/nomina/secundaNeutra.csv
new file mode 100644
index 0000000..a451466
--- /dev/null
+++ b/res/tabula/nomina/secundaNeutra.csv
@@ -0,0 +1,15 @@
+numeralis,casus,scriptum
+singularis,nominativus,um
+singularis,genitivus,ī
+singularis,dativus,ō
+singularis,accusativus,um
+singularis,ablativus,ō
+singularis,locativus,ō
+singularis,vocativus,um
+pluralis,nominativus,a
+pluralis,genitivus,ōrum
+pluralis,dativus,īs
+pluralis,accusativus,a
+pluralis,ablativus,īs
+pluralis,locativus,īs
+pluralis,vocativus,a
diff --git a/res/tabula/nomina/tertiaAnimata.csv b/res/tabula/nomina/tertiaAnimata.csv
new file mode 100644
index 0000000..044eb9c
--- /dev/null
+++ b/res/tabula/nomina/tertiaAnimata.csv
@@ -0,0 +1,15 @@
+numeralis,casus,scriptum
+singularis,nominativus,
+singularis,genitivus,is
+singularis,dativus,ī
+singularis,accusativus,em
+singularis,ablativus,e
+singularis,locativus,e
+singularis,vocativus,
+pluralis,nominativus,ēs
+pluralis,genitivus,um
+pluralis,dativus,ibus
+pluralis,accusativus,ēs
+pluralis,ablativus,ibus
+pluralis,locativus,ibus
+pluralis,vocativus,ēs
diff --git a/res/tabula/nomina/tertiaNeutra.csv b/res/tabula/nomina/tertiaNeutra.csv
new file mode 100644
index 0000000..28ffd28
--- /dev/null
+++ b/res/tabula/nomina/tertiaNeutra.csv
@@ -0,0 +1,15 @@
+numeralis,casus,scriptum
+singularis,nominativus,
+singularis,genitivus,is
+singularis,dativus,ī
+singularis,accusativus,
+singularis,ablativus,e
+singularis,locativus,e
+singularis,vocativus,
+pluralis,nominativus,a
+pluralis,genitivus,um
+pluralis,dativus,ibus
+pluralis,accusativus,a
+pluralis,ablativus,ibus
+pluralis,locativus,ibus
+pluralis,vocativus,a
diff --git a/res/vices/actus/tertia/cumImperativoBrevi.csv b/res/vices/actus/tertia/cumImperativoBrevi.csv
new file mode 100644
index 0000000..b14ad1f
--- /dev/null
+++ b/res/vices/actus/tertia/cumImperativoBrevi.csv
@@ -0,0 +1,2 @@
+modus,vox,tempus,numeralis,persona,scriptum
+imperativus,activa,praesens,singularis,,
diff --git a/res/vices/adiectiva/incomparabilia/autPrimaAutSecunda/nominativusDirectus.csv b/res/vices/adiectiva/incomparabilia/autPrimaAutSecunda/nominativusDirectus.csv
new file mode 100644
index 0000000..d3e9d65
--- /dev/null
+++ b/res/vices/adiectiva/incomparabilia/autPrimaAutSecunda/nominativusDirectus.csv
@@ -0,0 +1,3 @@
+genus,gradus,numeralis,casus,scriptum
+masculinum,,singularis,nominativus,
+masculinum,,singularis,vocativus,
diff --git a/res/vices/adiectiva/incomparabilia/pronominalis/nominativusDirectus.csv b/res/vices/adiectiva/incomparabilia/pronominalis/nominativusDirectus.csv
new file mode 100644
index 0000000..d3e9d65
--- /dev/null
+++ b/res/vices/adiectiva/incomparabilia/pronominalis/nominativusDirectus.csv
@@ -0,0 +1,3 @@
+genus,gradus,numeralis,casus,scriptum
+masculinum,,singularis,nominativus,
+masculinum,,singularis,vocativus,
diff --git a/res/vices/adiectiva/incomparabilia/tertia/cumAblativoVario.csv b/res/vices/adiectiva/incomparabilia/tertia/cumAblativoVario.csv
new file mode 100644
index 0000000..d0b86e9
--- /dev/null
+++ b/res/vices/adiectiva/incomparabilia/tertia/cumAblativoVario.csv
@@ -0,0 +1,3 @@
+numeralis,gradus,genus,casus,scriptum
+singularis,,,ablativus,ī
+singularis,,,locativus,ī
diff --git a/res/vices/adiectiva/incomparabilia/tertia/cumGenitivoAblativoque.csv b/res/vices/adiectiva/incomparabilia/tertia/cumGenitivoAblativoque.csv
new file mode 100644
index 0000000..a1b69ad
--- /dev/null
+++ b/res/vices/adiectiva/incomparabilia/tertia/cumGenitivoAblativoque.csv
@@ -0,0 +1,4 @@
+numeralis,gradus,genus,casus,scriptum
+singularis,,,ablativus,ī
+singularis,,,locativus,ī
+pluralis,,,genitivus,ium
diff --git a/res/vices/adiectiva/incomparabilia/tertia/cumGenitivoVario.csv b/res/vices/adiectiva/incomparabilia/tertia/cumGenitivoVario.csv
new file mode 100644
index 0000000..d0b86e9
--- /dev/null
+++ b/res/vices/adiectiva/incomparabilia/tertia/cumGenitivoVario.csv
@@ -0,0 +1,3 @@
+numeralis,gradus,genus,casus,scriptum
+singularis,,,ablativus,ī
+singularis,,,locativus,ī
diff --git a/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigener.csv b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigener.csv
new file mode 100644
index 0000000..45299fa
--- /dev/null
+++ b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigener.csv
@@ -0,0 +1,8 @@
+numeralis,gradus,genus,casus,scriptum
+singularis,,neutrum,nominativus,
+singularis,,neutrum,accusativus,
+singularis,,neutrum,vocativus,
+singularis,,masculinum,nominativus,
+singularis,,masculinum,vocativus,
+singularis,,femininum,nominativus,
+singularis,,femininum,vocativus,
diff --git a/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumAblativoVario.csv b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumAblativoVario.csv
new file mode 100644
index 0000000..b007249
--- /dev/null
+++ b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumAblativoVario.csv
@@ -0,0 +1,10 @@
+numeralis,gradus,genus,casus,scriptum
+singularis,,,ablativus,ī
+singularis,,,locativus,ī
+singularis,,neutrum,nominativus,
+singularis,,neutrum,accusativus,
+singularis,,neutrum,vocativus,
+singularis,,masculinum,nominativus,
+singularis,,masculinum,vocativus,
+singularis,,femininum,nominativus,
+singularis,,femininum,vocativus,
diff --git a/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoAblativoque.csv b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoAblativoque.csv
new file mode 100644
index 0000000..fddf399
--- /dev/null
+++ b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoAblativoque.csv
@@ -0,0 +1,11 @@
+numeralis,gradus,genus,casus,scriptum
+singularis,,,ablativus,ī
+singularis,,,locativus,ī
+pluralis,,,genitivus,ium
+singularis,,neutrum,nominativus,
+singularis,,neutrum,accusativus,
+singularis,,neutrum,vocativus,
+singularis,,masculinum,nominativus,
+singularis,,masculinum,vocativus,
+singularis,,femininum,nominativus,
+singularis,,femininum,vocativus,
diff --git a/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoVario.csv b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoVario.csv
new file mode 100644
index 0000000..b007249
--- /dev/null
+++ b/res/vices/adiectiva/incomparabilia/tertia/nominativusUnigenerCumGenitivoVario.csv
@@ -0,0 +1,10 @@
+numeralis,gradus,genus,casus,scriptum
+singularis,,,ablativus,ī
+singularis,,,locativus,ī
+singularis,,neutrum,nominativus,
+singularis,,neutrum,accusativus,
+singularis,,neutrum,vocativus,
+singularis,,masculinum,nominativus,
+singularis,,masculinum,vocativus,
+singularis,,femininum,nominativus,
+singularis,,femininum,vocativus,
diff --git a/res/vices/adiectiva/nominativusUnigener.csv b/res/vices/adiectiva/nominativusUnigener.csv
new file mode 100644
index 0000000..958c42d
--- /dev/null
+++ b/res/vices/adiectiva/nominativusUnigener.csv
@@ -0,0 +1,8 @@
+gradus,genus,numeralis,casus,scriptum
+positivus,neutrum,singularis,nominativus,
+positivus,neutrum,singularis,accusativus,
+positivus,neutrum,singularis,vocativus,
+positivus,masculinum,singularis,nominativus,
+positivus,masculinum,singularis,vocativus,
+positivus,femininum,singularis,nominativus,
+positivus,femininum,singularis,vocativus,
diff --git a/res/vices/adiectiva/positivaTertia/cumAblativoVario.csv b/res/vices/adiectiva/positivaTertia/cumAblativoVario.csv
new file mode 100644
index 0000000..0619bde
--- /dev/null
+++ b/res/vices/adiectiva/positivaTertia/cumAblativoVario.csv
@@ -0,0 +1,3 @@
+gradus,genus,numeralis,casus,scriptum
+positivus,,singularis,ablativus,ī
+positivus,,ingularis,locativus,ī
diff --git a/res/vices/adiectiva/positivaTertia/cumGenitivoAblativoque.csv b/res/vices/adiectiva/positivaTertia/cumGenitivoAblativoque.csv
new file mode 100644
index 0000000..24f3d9f
--- /dev/null
+++ b/res/vices/adiectiva/positivaTertia/cumGenitivoAblativoque.csv
@@ -0,0 +1,4 @@
+gradus,genus,numeralis,casus,scriptum
+positivus,,singularis,ablativus,ī
+positivus,,singularis,locativus,ī
+positivus,,pluralis,genitivus,ium
diff --git a/res/vices/adiectiva/positivaTertia/cumGenitivoVario.csv b/res/vices/adiectiva/positivaTertia/cumGenitivoVario.csv
new file mode 100644
index 0000000..e0543a5
--- /dev/null
+++ b/res/vices/adiectiva/positivaTertia/cumGenitivoVario.csv
@@ -0,0 +1,3 @@
+gradus,genus,numeralis,casus,scriptum
+positivus,,singularis,ablativus,ī
+positivus,,singularis,locativus,ī
diff --git a/res/vices/adiectiva/positivaTertia/cumTruncoVario.csv b/res/vices/adiectiva/positivaTertia/cumTruncoVario.csv
new file mode 100644
index 0000000..6936cbe
--- /dev/null
+++ b/res/vices/adiectiva/positivaTertia/cumTruncoVario.csv
@@ -0,0 +1,8 @@
+gradus,genus,numeralis,casus,scriptum
+positivus,,singularis,ablativus,ī
+positivus,,singularis,locativus,ī
+positivus,,pluralis,genitivus,ium
+positivus,neutrum,pluralis,nominativus,ia
+positivus,neutrum,pluralis,accusativus,ia
+positivus,neutrum,pluralis,vocativus,ia
+
diff --git a/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumAblativoVario.csv b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumAblativoVario.csv
new file mode 100644
index 0000000..5416215
--- /dev/null
+++ b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumAblativoVario.csv
@@ -0,0 +1,10 @@
+gradus,genus,numeralis,casus,scriptum
+positivus,,singularis,ablativus,ī
+positivus,,singularis,locativus,ī
+positivus,neutrum,singularis,nominativus,
+positivus,neutrum,singularis,accusativus,
+positivus,neutrum,singularis,vocativus,
+positivus,masculinum,singularis,nominativus,
+positivus,masculinum,singularis,vocativus,
+positivus,femininum,singularis,nominativus,
+positivus,femininum,singularis,vocativus,
diff --git a/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoAblativoque.csv b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoAblativoque.csv
new file mode 100644
index 0000000..5ae2703
--- /dev/null
+++ b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoAblativoque.csv
@@ -0,0 +1,11 @@
+gradus,genus,numeralis,casus,scriptum
+postiivus,,singularis,ablativus,ī
+postiivus,,singularis,locativus,ī
+postiivus,,pluralis,genitivus,ium
+postiivus,neutrum,singularis,nominativus,
+postiivus,neutrum,singularis,accusativus,
+postiivus,neutrum,singularis,vocativus,
+postiivus,masculinum,singularis,nominativus,
+postiivus,masculinum,singularis,vocativus,
+postiivus,femininum,singularis,nominativus,
+postiivus,femininum,singularis,vocativus,
diff --git a/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoVario.csv b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoVario.csv
new file mode 100644
index 0000000..5416215
--- /dev/null
+++ b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumGenitivoVario.csv
@@ -0,0 +1,10 @@
+gradus,genus,numeralis,casus,scriptum
+positivus,,singularis,ablativus,ī
+positivus,,singularis,locativus,ī
+positivus,neutrum,singularis,nominativus,
+positivus,neutrum,singularis,accusativus,
+positivus,neutrum,singularis,vocativus,
+positivus,masculinum,singularis,nominativus,
+positivus,masculinum,singularis,vocativus,
+positivus,femininum,singularis,nominativus,
+positivus,femininum,singularis,vocativus,
diff --git a/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumTruncoVario.csv b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumTruncoVario.csv
new file mode 100644
index 0000000..1a11b93
--- /dev/null
+++ b/res/vices/adiectiva/positivaTertia/nominativusUnigenerCumTruncoVario.csv
@@ -0,0 +1,14 @@
+gradus,genus,numeralis,casus,scriptum
+positivus,,singularis,ablativus,ī
+positivus,,singularis,locativus,ī
+positivus,,pluralis,genitivus,ium
+positivus,neutrum,singularis,nominativus,
+positivus,neutrum,singularis,accusativus,
+positivus,neutrum,singularis,vocativus,
+positivus,masculinum,singularis,nominativus,
+positivus,masculinum,singularis,vocativus,
+positivus,femininum,singularis,nominativus,
+positivus,femininum,singularis,vocativus,
+positivus,neutrum,pluralis,nominativus,ia
+positivus,neutrum,pluralis,accusativus,ia
+positivus,neutrum,pluralis,vocativus,ia
diff --git a/res/vices/nomina/secundaMasculina/nominativusDirectus.csv b/res/vices/nomina/secundaMasculina/nominativusDirectus.csv
new file mode 100644
index 0000000..4d39a73
--- /dev/null
+++ b/res/vices/nomina/secundaMasculina/nominativusDirectus.csv
@@ -0,0 +1,3 @@
+numeralis,casus,scriptum
+singularis,nominativus,
+singularis,vocativus,
diff --git a/res/vices/nomina/tertia/cumAblativoVario.csv b/res/vices/nomina/tertia/cumAblativoVario.csv
new file mode 100644
index 0000000..446bd34
--- /dev/null
+++ b/res/vices/nomina/tertia/cumAblativoVario.csv
@@ -0,0 +1,3 @@
+numeralis,casus,scriptum
+singularis,ablativus,ī
+ingularis,locativus,ī
diff --git a/res/vices/nomina/tertia/cumGenitivoAblativoque.csv b/res/vices/nomina/tertia/cumGenitivoAblativoque.csv
new file mode 100644
index 0000000..8bafb25
--- /dev/null
+++ b/res/vices/nomina/tertia/cumGenitivoAblativoque.csv
@@ -0,0 +1,4 @@
+numeralis,casus,scriptum
+singularis,ablativus,ī
+singularis,locativus,ī
+pluralis,genitivus,ium
diff --git a/res/vices/nomina/tertia/cumGenitivoVario.csv b/res/vices/nomina/tertia/cumGenitivoVario.csv
new file mode 100644
index 0000000..70335cd
--- /dev/null
+++ b/res/vices/nomina/tertia/cumGenitivoVario.csv
@@ -0,0 +1,3 @@
+numeralis,casus,scriptum
+singularis,ablativus,ī
+singularis,locativus,ī
diff --git a/res/vices/nomina/tertiaNeutra/cumTruncoVario.csv b/res/vices/nomina/tertiaNeutra/cumTruncoVario.csv
new file mode 100644
index 0000000..b097d69
--- /dev/null
+++ b/res/vices/nomina/tertiaNeutra/cumTruncoVario.csv
@@ -0,0 +1,8 @@
+numeralis,casus,scriptum
+singularis,ablativus,ī
+singularis,locativus,ī
+pluralis,genitivus,ium
+pluralis,nominativus,ia
+pluralis,accusativus,ia
+pluralis,vocativus,ia
+
diff --git a/src/anomala/actus.ts b/src/anomala/actus.ts
new file mode 100644
index 0000000..23fe822
--- /dev/null
+++ b/src/anomala/actus.ts
@@ -0,0 +1,824 @@
+import Anomala, { Mantela } from './anomala';
+import Ignavum from '../miscella/ignavum';
+import { ActusAgendus } from '../praebeunda/agenda';
+import Structor from '../praebeunda/structor';
+import { Actus as Anomalon } from '../praebeunda/verba';
+import TabulaCollata from '../tabulae/collata';
+import TabulaImpersonalis from '../tabulae/defectae/impersonalis';
+import TabulaPerfecta from '../tabulae/defectae/perfecta';
+import TabulaFissa from '../tabulae/fissa';
+import TabulaPraefixa from '../tabulae/rescriptae/praefixa';
+import TabulaRescripta from '../tabulae/rescriptae/rescripta';
+import TabulaSuffixa from '../tabulae/rescriptae/suffixa';
+import TabulaScapalis from '../tabulae/scapalis';
+import type Tabula from '../tabulae/tabula';
+
+export default class Actus extends Anomala {
+ static se: Ignavum = new Ignavum(() => new Actus);
+
+ protected override async numeretur (): Promise {
+ const aiere: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/aiere', positor: Anomalon.positor }));
+ const esse: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/esse', positor: Anomalon.positor }));
+ const fieri: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/fierī', positor: Anomalon.positor }));
+ const infieri: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/īnfierī', positor: Anomalon.positor }));
+ const inquii: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/inquiī', positor: Anomalon.positor }));
+
+ const coesse: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/coepisse', positor: Anomalon.positor })),
+ new Ignavum(() => new TabulaFissa({
+ relata: new Ignavum(() =>
+ new TabulaRescripta({
+ relata: esse,
+ rescriptor: scriptum => scriptum.startsWith('f') ? 'cōn' : 'co'
+ })),
+ tabula: TabulaPerfecta.apponatur()
+ }))
+ ));
+
+ const dare: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/dare', positor: Anomalon.positor })),
+ new Ignavum(() => new Structor(() => new ActusAgendus)
+ .ponatur(actus => actus.infinitivum = 'dare')
+ .ponatur(actus => actus.perfectum = 'dedisse')
+ .ponatur(actus => actus.supinum = 'dātum')
+ .ponatur(actus => actus.versio = 'prima')
+ .struatur().putetur())
+ ));
+
+ const ferre: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/ferre', positor: Anomalon.positor })),
+ new Ignavum(() => new Structor(() => new ActusAgendus)
+ .ponatur(actus => actus.infinitivum = 'ferre')
+ .ponatur(actus => actus.perfectum = 'tulisse')
+ .ponatur(actus => actus.supinum = 'lātum')
+ .ponatur(actus => actus.versio = 'tertia')
+ .struatur().putetur())
+ ));
+
+ const facere: Ignavum> = new Ignavum(() => new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/facere', positor: Anomalon.positor })),
+ new Ignavum(() => new Structor(() => new ActusAgendus)
+ .ponatur(actus => actus.infinitivum = 'facere')
+ .ponatur(actus => actus.perfectum = 'fēcisse')
+ .ponatur(actus => actus.supinum = 'factum')
+ .ponatur(actus => actus.versio = 'tertiaVaria/cumImperativoBrevi')
+ .struatur().putetur())
+ ));
+
+ const ire: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/ferre', positor: Anomalon.positor })),
+ new Ignavum(() => new Structor(() => new ActusAgendus)
+ .ponatur(actus => actus.infinitivum = 'īre')
+ .ponatur(actus => actus.perfectum = 'īsse')
+ .ponatur(actus => actus.supinum = 'itum')
+ .ponatur(actus => actus.versio = 'secunda')
+ .struatur().putetur())
+ ));
+
+ const perire: Ignavum> = new Ignavum(() =>
+ new TabulaFissa({
+ relata: new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: ire,
+ praefixum: 'per'
+ })),
+ tabula: TabulaImpersonalis.apponatur('passivo')
+ }));
+
+ const velle: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/velle', positor: Anomalon.positor })),
+ new Ignavum(() => new Structor(() => new ActusAgendus)
+ .ponatur(actus => actus.infinitivum = 'volere')
+ .ponatur(actus => actus.perfectum = 'voluisse')
+ .ponatur(actus => actus.versio = 'tertia//semideponens')
+ .struatur().putetur())
+ ));
+
+ const malle: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/mālle', positor: Anomalon.positor })),
+ new Ignavum(() => new TabulaRescripta({
+ relata: velle, rescriptor: scriptum => scriptum.replace('ve', 'mā'),
+ }))
+ ));
+
+ const meminisse: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/meminisse', positor: Anomalon.positor })),
+ new Ignavum(() => new Structor(() => new ActusAgendus)
+ .ponatur(actus => actus.perfectum = 'meminisse')
+ .ponatur(actus => actus.versio = 'tertia//perfecta')
+ .struatur().putetur())
+ ));
+
+ const abdare: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: dare, praefixum: 'ab' }));
+ const abesse: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({ relata: dare, rescriptor: scriptum => scriptum.startsWith('f') ? 'ā' : 'ab' }));
+ const abire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'ab' }));
+ const afferre: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({ relata: ferre, rescriptor: scriptum => 'a'.concat(scriptum.at(0) ?? '', scriptum) }));
+
+ const auferre: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: ferre,
+ rescriptor (scriptum) {
+ switch (scriptum.at(0)) {
+ case 'f':
+ return 'au'.concat(scriptum);
+ case 't':
+ return 'abs'.concat(scriptum);
+ case 'l':
+ return 'ab'.concat(scriptum);
+ default:
+ return scriptum;
+ }
+ },
+ }));
+
+ const nolle: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/nōlle', positor: Anomalon.positor })),
+ new Ignavum(() => new TabulaRescripta({
+ relata: velle,
+ rescriptor (scriptum) {
+ switch (scriptum) {
+ case 'vīs':
+ case 'vult':
+ case 'vultis':
+ return '';
+ default:
+ return scriptum.replace('ve', 'nō');
+ }
+ },
+ }))
+ ));
+
+ const coepisse: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/coepisse', positor: Anomalon.positor })),
+ new Ignavum((() => new Structor(() => new ActusAgendus)
+ .ponatur(actus => actus.perfectum = 'coepisse')
+ .ponatur(actus => actus.versio = 'tertia//perfecta')
+ .struatur().putetur())
+ )));
+
+ const coire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'co' }));
+ const collabefieri: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: fieri, praefixum: 'collabe' }));
+ const confieri: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: fieri, praefixum: 'cōn' }));
+
+ const conferre: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: ferre,
+ rescriptor (scriptum) {
+ switch (scriptum.at(0)) {
+ case 'f':
+ return 'cōn'.concat(scriptum);
+ case 't':
+ return 'con'.concat(scriptum);
+ case 'l':
+ return 'col'.concat(scriptum);
+ default:
+ return scriptum;
+ }
+ },
+ }));
+
+ const dedare: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: dare, praefixum: 'dē' }));
+ const deesse: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: esse, praefixum: 'dē' }));
+ const deferre: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ferre, praefixum: 'dē' }));
+ const defieri: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: fieri, praefixum: 'dē' }));
+ const deire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'de' }));
+
+ const differre: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: ferre,
+ rescriptor (scriptum) {
+ switch (scriptum.at(0)) {
+ case 'f':
+ return 'dif'.concat(scriptum);
+ case 't':
+ return 'dis'.concat(scriptum);
+ case 'l':
+ return 'dī'.concat(scriptum);
+ default:
+ return scriptum;
+ }
+ },
+ }));
+
+ const disperire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'disper' }));
+ const didare: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: dare, praefixum: 'dī' }));
+
+ const efferre: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: ferre,
+ rescriptor (scriptum) {
+ switch (scriptum.at(0)) {
+ case 'f':
+ return 'ef'.concat(scriptum);
+ case 't':
+ return 'ex'.concat(scriptum);
+ case 'l':
+ return 'ē'.concat(scriptum);
+ default:
+ return scriptum;
+ }
+ },
+ }));
+
+ const exire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'ex' }));
+ const inesse: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: esse, praefixum: 'īn' }));
+
+ const inferre: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: ferre,
+ rescriptor (scriptum) {
+ switch (scriptum.at(0)) {
+ case 'f':
+ return 'īn'.concat(scriptum);
+ case 't':
+ return 'in'.concat(scriptum);
+ case 'l':
+ return 'il'.concat(scriptum);
+ default:
+ return scriptum;
+ }
+ },
+ }));
+
+ const interesse: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: esse, praefixum: 'inter' }));
+ const interferre: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ferre, praefixum: 'inter' }));
+ const introferre: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ferre, praefixum: 'intrō' }));
+ const inire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'in' }));
+ const interire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'inter' }));
+ const introire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'intro' }));
+ const nequire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'nequ' }));
+ const obesse: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: esse, praefixum: 'ob' }));
+ const obire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'ob' }));
+ const obsolefieri: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: fieri, praefixum: 'obsole' }));
+
+ const odisse: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/actus/ōdisse', positor: Anomalon.positor })),
+ new Ignavum(() => new Structor(() => new ActusAgendus)
+ .ponatur(actus => actus.perfectum = 'ōdisse')
+ .ponatur(actus => actus.versio = 'quarta//perfecta')
+ .struatur().putetur())
+ ));
+
+ const offerre: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: ferre,
+ rescriptor: scriptum => (scriptum.startsWith('f') ? 'of' : 'ob').concat(scriptum),
+ }));
+
+ const perferre: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ferre, praefixum: 'per' }));
+ const pervelle: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: velle, praefixum: 'per' }));
+
+ const posse: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: esse,
+ rescriptor (scriptum) {
+ switch (true) {
+ case scriptum === 'esse':
+ return 'posse';
+ case scriptum === 'estō':
+ return '';
+ case scriptum.startsWith('s'):
+ return 'pos'.concat(scriptum);
+ case scriptum.startsWith('e'):
+ return 'pot'.concat(scriptum);
+ case scriptum.startsWith('f'):
+ return 'pot'.concat(scriptum.substring(1));
+ default:
+ return '';
+ }
+ },
+ }));
+
+ const postferre: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ferre, praefixum: 'post' }));
+ const praeesse: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: esse, praefixum: 'prae' }));
+ const praeterferre: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ferre, praefixum: 'praeter' }));
+
+ const prodesse: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: esse,
+ rescriptor: scriptum => (scriptum.startsWith('e') ? 'prō' : 'prōd').concat(scriptum),
+ }));
+
+ const prodire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'prōd' }));
+ const proferre: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ferre, praefixum: 'prō' }));
+ const quire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'qu' }));
+ const redire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'red' }));
+
+ const referre: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: esse,
+ rescriptor: scriptum => (scriptum.startsWith('t') ? 'ret' : 're').concat(scriptum),
+ }));
+
+ const subesse: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: esse, praefixum: 'sub' }));
+ const subire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'sub' }));
+ const sufferre: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ferre, praefixum: 'suf' }));
+ const superesse: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: esse, praefixum: 'super' }));
+ const suffieri: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: fieri, praefixum: 'suf' }));
+ const superfieri: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: fieri, praefixum: 'super' }));
+ const transabire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'trānsab' }));
+ const transire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'trāns' }));
+ const venire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'vēn' }));
+
+ const venireRectum: Ignavum> = new Ignavum(() =>
+ new Structor(() => new ActusAgendus)
+ .ponatur(actus => actus.infinitivum = 'venīre')
+ .ponatur(actus => actus.perfectum = 'vēnīsse')
+ .ponatur(actus => actus.supinum = 'ventum')
+ .ponatur(actus => actus.versio = 'quartus//impersonalis//passivo')
+ .struatur().putetur());
+
+ const arefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'āre'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const arfacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'ār'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const benefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'bene'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const calfacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'cal'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const calefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'cale'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const commonefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'commone'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const condocfacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'condoce'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const consuefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'cōnsuē'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const expergefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'expergē'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const fervefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'fervē'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const infervefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'inferve'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const labefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'labe'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const liquifacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'liqui'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const madefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'made'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const malefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'male'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const mollifacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'molli'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const multifacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'multi'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const mansuefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'mānsuē'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const olfacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'ol'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const patefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'pate'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const pavefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'pave'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const putrefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'putre'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const satisfacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'satis'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const stupefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'stupe'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const tepefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'tepe'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const tremefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'treme'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const tumefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'tume'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const vacuefacere: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: facere,
+ rescriptor: scriptum => 'vacuē'.concat(scriptum === 'fac' ? 'face' : scriptum)
+ }));
+
+ const incalfacere: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({ relata: calfacere, suffixum: 'in' }));
+ const percalfacere: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({ relata: calfacere, suffixum: 'per' }));
+ const recalfacere: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({ relata: calfacere, suffixum: 're' }));
+ const permadefacere: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({ relata: madefacere, suffixum: 'per' }));
+ const subolfacere: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({ relata: olfacere, suffixum: 'sub' }));
+ const confervefacere: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({ relata: fervefacere, suffixum: 'con' }));
+ const defervefacere: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({ relata: calfacere, suffixum: 'dē' }));
+ const obstupefacere: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({ relata: stupefacere, suffixum: 'ob' }));
+ const rarefacere: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({ relata: arefacere, suffixum: 'r' }));
+
+ const advenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'ad'
+ }));
+
+ const adinvenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'adin'
+ }));
+
+ const antevenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'ante'
+ }));
+
+ const circumvenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'circum'
+ }));
+
+ const convenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'con'
+ }));
+
+ const contravenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'contrā'
+ }));
+
+ const disconvenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'discon'
+ }));
+
+ const devenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'dē'
+ }));
+
+ const evenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'ē'
+ }));
+
+ const invenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'in'
+ }));
+
+ const intervenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'inter'
+ }));
+
+ const obvenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'ob'
+ }));
+
+ const pervenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'per'
+ }));
+
+ const praevenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'prae'
+ }));
+
+ const provenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'prō'
+ }));
+
+ const subvenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'sub'
+ }));
+
+ const supervenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'super'
+ }));
+
+ const transvenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'trāns'
+ }));
+
+ this.contenta.set('abdare', new Mantela(abdare));
+ this.contenta.set('abesse', new Mantela(abesse));
+ this.contenta.set('advenīre', new Mantela(advenire));
+ this.contenta.set('adinvenīre', new Mantela(adinvenire));
+ this.contenta.set('afferre', new Mantela(afferre));
+ this.contenta.set('antevenīre', new Mantela(antevenire));
+ this.contenta.set('ārefacere', new Mantela(arefacere));
+ this.contenta.set('ārfacere', new Mantela(arfacere));
+ this.contenta.set('auferre', new Mantela(auferre));
+ this.contenta.set('abīre', new Mantela(abire));
+ this.contenta.set('aiere', new Mantela(aiere));
+ this.contenta.set('benefacere', new Mantela(benefacere));
+ this.contenta.set('calfacere', new Mantela(calfacere));
+ this.contenta.set('calefacere', new Mantela(calefacere));
+ this.contenta.set('circumvenīre', new Mantela(circumvenire));
+ this.contenta.set('coepisse', new Mantela(coepisse));
+ this.contenta.set('coesse', new Mantela(coesse));
+ this.contenta.set('coīre', new Mantela(coire));
+ this.contenta.set('collabefierī', new Mantela(collabefieri));
+ this.contenta.set('commonefacere', new Mantela(commonefacere));
+ this.contenta.set('condocefacere', new Mantela(condocfacere));
+ this.contenta.set('confervēfacere', new Mantela(confervefacere));
+ this.contenta.set('cōnsuēfacere', new Mantela(consuefacere));
+ this.contenta.set('conferre', new Mantela(conferre));
+ this.contenta.set('cōnfierī', new Mantela(confieri));
+ this.contenta.set('convenīre', new Mantela(convenire));
+ this.contenta.set('contrāvenīre', new Mantela(contravenire));
+ this.contenta.set('dare', new Mantela(dare));
+ this.contenta.set('dēdare', new Mantela(dedare));
+ this.contenta.set('dēferre', new Mantela(deferre));
+ this.contenta.set('dēfervēfacere', new Mantela(defervefacere));
+ this.contenta.set('dēfierī', new Mantela(defieri));
+ this.contenta.set('dēesse', new Mantela(deesse));
+ this.contenta.set('dēīre', new Mantela(deire));
+ this.contenta.set('dēvenīre', new Mantela(devenire));
+ this.contenta.set('dīdare', new Mantela(didare));
+ this.contenta.set('differre', new Mantela(differre));
+ this.contenta.set('disconvenīre', new Mantela(disconvenire));
+ this.contenta.set('disperīre', new Mantela(disperire));
+ this.contenta.set('diferre', new Mantela(differre));
+ this.contenta.set('efferre', new Mantela(efferre));
+ this.contenta.set('esse', new Mantela(esse));
+ this.contenta.set('ēvenīre', new Mantela(evenire));
+ this.contenta.set('expergēfacere', new Mantela(expergefacere));
+ this.contenta.set('exīre', new Mantela(exire));
+ this.contenta.set('facere', new Mantela(facere));
+ this.contenta.set('ferre', new Mantela(ferre));
+ this.contenta.set('fervēfacere', new Mantela(fervefacere));
+ this.contenta.set('fierī', new Mantela(fieri));
+ this.contenta.set('incalfacere', new Mantela(incalfacere));
+ this.contenta.set('infervefacere', new Mantela(infervefacere));
+ this.contenta.set('īnfierī', new Mantela(infieri));
+ this.contenta.set('inquiī', new Mantela(inquii));
+ this.contenta.set('interesse', new Mantela(interesse));
+ this.contenta.set('interferre', new Mantela(interferre));
+ this.contenta.set('intrōferre', new Mantela(introferre));
+ this.contenta.set('īnesse', new Mantela(inesse));
+ this.contenta.set('īnferre', new Mantela(inferre));
+ this.contenta.set('inīre', new Mantela(inire));
+ this.contenta.set('interīre', new Mantela(interire));
+ this.contenta.set('introīre', new Mantela(introire));
+ this.contenta.set('invenīre', new Mantela(invenire));
+ this.contenta.set('intervenīre', new Mantela(intervenire));
+ this.contenta.set('īre', new Mantela(ire));
+ this.contenta.set('labefacere', new Mantela(labefacere));
+ this.contenta.set('liquifacere', new Mantela(liquifacere));
+ this.contenta.set('madefacere', new Mantela(madefacere));
+ this.contenta.set('malefacere', new Mantela(malefacere));
+ this.contenta.set('mālle', new Mantela(malle));
+ this.contenta.set('mānsuēfacere', new Mantela(mansuefacere));
+ this.contenta.set('meminisse', new Mantela(meminisse));
+ this.contenta.set('mollifacere', new Mantela(mollifacere));
+ this.contenta.set('multifacere', new Mantela(multifacere));
+ this.contenta.set('nōlle', new Mantela(nolle));
+ this.contenta.set('nequīre', new Mantela(nequire));
+ this.contenta.set('obesse', new Mantela(obesse));
+ this.contenta.set('obīre', new Mantela(obire));
+ this.contenta.set('obstupefacere', new Mantela(obstupefacere));
+ this.contenta.set('obvenīre', new Mantela(obvenire));
+ this.contenta.set('ōdisse', new Mantela(odisse));
+ this.contenta.set('offerre', new Mantela(offerre));
+ this.contenta.set('olfacere', new Mantela(olfacere));
+ this.contenta.set('obsolefierī', new Mantela(obsolefieri));
+ this.contenta.set('patefacere', new Mantela(patefacere));
+ this.contenta.set('pavefacere', new Mantela(pavefacere));
+ this.contenta.set('percalfacere', new Mantela(percalfacere));
+ this.contenta.set('perferre', new Mantela(perferre));
+ this.contenta.set('perīre', new Mantela(perire));
+ this.contenta.set('permadefacere', new Mantela(permadefacere));
+ this.contenta.set('pervelle', new Mantela(pervelle));
+ this.contenta.set('pervenīre', new Mantela(pervenire));
+ this.contenta.set('posse', new Mantela(posse));
+ this.contenta.set('postferre', new Mantela(postferre));
+ this.contenta.set('praeesse', new Mantela(praeesse));
+ this.contenta.set('praeterferre', new Mantela(praeterferre));
+ this.contenta.set('praevenīre', new Mantela(praevenire));
+ this.contenta.set('prōdesse', new Mantela(prodesse));
+ this.contenta.set('prōferre', new Mantela(proferre));
+ this.contenta.set('prōdīre', new Mantela(prodire));
+ this.contenta.set('prōvenīre', new Mantela(provenire));
+ this.contenta.set('putrefacere', new Mantela(putrefacere));
+ this.contenta.set('quīre', new Mantela(quire));
+ this.contenta.set('rārefacere', new Mantela(rarefacere));
+ this.contenta.set('redīre', new Mantela(redire));
+ this.contenta.set('referre', new Mantela(referre));
+ this.contenta.set('recalfacere', new Mantela(recalfacere));
+ this.contenta.set('satisfacere', new Mantela(satisfacere));
+ this.contenta.set('stupefacere', new Mantela(stupefacere));
+ this.contenta.set('subesse', new Mantela(subesse));
+ this.contenta.set('subīre', new Mantela(subire));
+ this.contenta.set('subolfacere', new Mantela(subolfacere));
+ this.contenta.set('subvenīre', new Mantela(subvenire));
+ this.contenta.set('sufferre', new Mantela(sufferre));
+ this.contenta.set('suffierī', new Mantela(suffieri));
+ this.contenta.set('superesse', new Mantela(superesse));
+ this.contenta.set('superfierī', new Mantela(superfieri));
+ this.contenta.set('supervenīre', new Mantela(supervenire));
+ this.contenta.set('tepefacere', new Mantela(tepefacere));
+ this.contenta.set('trānsabīre', new Mantela(transabire));
+ this.contenta.set('trānsīre', new Mantela(transire));
+ this.contenta.set('trānsvenīre', new Mantela(transvenire));
+ this.contenta.set('tremefacere', new Mantela(tremefacere));
+ this.contenta.set('tumefacere', new Mantela(tumefacere));
+ this.contenta.set('vacuēfacere', new Mantela(vacuefacere));
+ this.contenta.set('velle', new Mantela(velle));
+ this.contenta.set('vēnīre', new Mantela(venire));
+ this.contenta.set('venīre', new Mantela(venireRectum));
+ }
+}
diff --git a/src/anomala/adiectiva.ts b/src/anomala/adiectiva.ts
new file mode 100644
index 0000000..0047b25
--- /dev/null
+++ b/src/anomala/adiectiva.ts
@@ -0,0 +1,192 @@
+import Anomala, { Mantela } from './anomala';
+import { Encliticum } from '../miscella/enumerationes';
+import Ignavum from '../miscella/ignavum';
+import { AdiectivumAgendum, Incomparabile } from '../praebeunda/agenda';
+import Structor from '../praebeunda/structor';
+import { Adiectivum } from '../praebeunda/verba';
+import TabulaCollata from '../tabulae/collata';
+import TabulaConiuncta from '../tabulae/coniuncta';
+import TabulaRescripta from '../tabulae/rescriptae/rescripta';
+import TabulaSuffixa from '../tabulae/rescriptae/suffixa';
+import TabulaScapalis from '../tabulae/scapalis';
+
+export default class Adiectiva extends Anomala {
+ static se: Ignavum = new Ignavum(() => new Adiectiva);
+
+ protected override async numeretur (): Promise {
+ const frugi: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/adiectiva/frūgī', positor: Adiectivum.positor }));
+ const mille: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/adiectiva/mīlle', positor: Adiectivum.positor }));
+ const nequam: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/adiectiva/nēquam', positor: Adiectivum.positor }));
+ const satis: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/adiectiva/satis', positor: Adiectivum.positor }));
+
+ const decimum: Ignavum = new Ignavum(() => new Structor(() => new Incomparabile)
+ .ponatur(adiectivum => adiectivum.nominativum = 'decimum')
+ .ponatur(adiectivum => adiectivum.nominativum = 'decimī')
+ .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda')
+ .struatur());
+
+ const utrum: Ignavum = new Ignavum(() => new Structor(() => new Incomparabile)
+ .ponatur(adiectivum => adiectivum.nominativum = 'utrum')
+ .ponatur(adiectivum => adiectivum.nominativum = 'utrī')
+ .ponatur(adiectivum => adiectivum.versio = 'pronominalis//cumLitteraR')
+ .struatur());
+
+ const aliud: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/adiectiva/aliud', positor: Adiectivum.positor })),
+ new Ignavum(() => new Structor(() => new Incomparabile)
+ .ponatur(adiectivum => adiectivum.nominativum = 'alium')
+ .ponatur(adiectivum => adiectivum.nominativum = 'aliī')
+ .ponatur(adiectivum => adiectivum.versio = 'pronominalis')
+ .struatur().putetur())
+ ));
+ const ambo: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/adiectiva/ambō', positor: Adiectivum.positor })),
+ new Ignavum(() => new Structor(() => new Incomparabile)
+ .ponatur(adiectivum => adiectivum.nominativum = 'ambum')
+ .ponatur(adiectivum => adiectivum.nominativum = 'ambī')
+ .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda//pluralis')
+ .struatur().putetur())
+ ));
+ const meum: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/adiectiva/meum', positor: Adiectivum.positor })),
+ new Ignavum(() => new Structor(() => new Incomparabile)
+ .ponatur(adiectivum => adiectivum.nominativum = 'meum')
+ .ponatur(adiectivum => adiectivum.nominativum = 'meī')
+ .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda')
+ .struatur().putetur())
+ ));
+ const multum: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/adiectiva/multum', positor: Adiectivum.positor })),
+ new Ignavum(() => new Structor(() => new AdiectivumAgendum)
+ .ponatur(adiectivum => adiectivum.positivum = 'multum')
+ .ponatur(adiectivum => adiectivum.superlativum = 'maximum')
+ .ponatur(adiectivum => adiectivum.versio = 'positivaAutPrimaAutSecunda')
+ .struatur().putetur())
+ ));
+
+ const nonumdecimum: Ignavum> = new Ignavum(() =>
+ new TabulaConiuncta({
+ positor: Adiectivum.positor,
+ prima: new Ignavum(() => new Structor(() => new Incomparabile)
+ .ponatur(adiectivum => adiectivum.nominativum = 'nōnum')
+ .ponatur(adiectivum => adiectivum.nominativum = 'nōnī')
+ .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda')
+ .struatur().putetur()),
+ secunda: new Ignavum(() => decimum.ipse().putetur())
+ }));
+ const octavumdecimum: Ignavum> = new Ignavum(() =>
+ new TabulaConiuncta({
+ positor: Adiectivum.positor,
+ prima: new Ignavum(() => new Structor(() => new Incomparabile)
+ .ponatur(adiectivum => adiectivum.nominativum = 'octāvum')
+ .ponatur(adiectivum => adiectivum.nominativum = 'octāvī')
+ .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda')
+ .struatur().putetur()),
+ secunda: new Ignavum(() => decimum.ipse().putetur())
+ }));
+ const quartumdecimum: Ignavum> = new Ignavum(() =>
+ new TabulaConiuncta({
+ positor: Adiectivum.positor,
+ prima: new Ignavum(() => new Structor(() => new Incomparabile)
+ .ponatur(adiectivum => adiectivum.nominativum = 'quārtum')
+ .ponatur(adiectivum => adiectivum.nominativum = 'quārtī')
+ .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda')
+ .struatur().putetur()),
+ secunda: new Ignavum(() => decimum.ipse().putetur())
+ }));
+ const quintumdecimum: Ignavum> = new Ignavum(() =>
+ new TabulaConiuncta({
+ positor: Adiectivum.positor,
+ prima: new Ignavum(() => new Structor(() => new Incomparabile)
+ .ponatur(adiectivum => adiectivum.nominativum = 'quīntum')
+ .ponatur(adiectivum => adiectivum.nominativum = 'quīntī')
+ .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda')
+ .struatur().putetur()),
+ secunda: new Ignavum(() => decimum.ipse().putetur())
+ }));
+ const septimumdecimum: Ignavum> = new Ignavum(() =>
+ new TabulaConiuncta({
+ positor: Adiectivum.positor,
+ prima: new Ignavum(() => new Structor(() => new Incomparabile)
+ .ponatur(adiectivum => adiectivum.nominativum = 'septimum')
+ .ponatur(adiectivum => adiectivum.nominativum = 'septimī')
+ .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda')
+ .struatur().putetur()),
+ secunda: new Ignavum(() => decimum.ipse().putetur())
+ }));
+ const sextumdecimum: Ignavum> = new Ignavum(() =>
+ new TabulaConiuncta({
+ positor: Adiectivum.positor,
+ prima: new Ignavum(() => new Structor(() => new Incomparabile)
+ .ponatur(adiectivum => adiectivum.nominativum = 'sextum')
+ .ponatur(adiectivum => adiectivum.nominativum = 'sextī')
+ .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda')
+ .struatur().putetur()),
+ secunda: new Ignavum(() => decimum.ipse().putetur())
+ }));
+ const tertiumdecimum: Ignavum> = new Ignavum(() =>
+ new TabulaConiuncta({
+ positor: Adiectivum.positor,
+ prima: new Ignavum(() => new Structor(() => new Incomparabile)
+ .ponatur(adiectivum => adiectivum.nominativum = 'tertium')
+ .ponatur(adiectivum => adiectivum.nominativum = 'tertiī')
+ .ponatur(adiectivum => adiectivum.versio = 'autPrimaAutSecunda')
+ .struatur().putetur()),
+ secunda: new Ignavum(() => decimum.ipse().putetur())
+ }));
+
+ const duo: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: ambo,
+ rescriptor: scriptum => scriptum.replace('amb', 'du')
+ }));
+
+ const utrumque: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({
+ relata: new Ignavum(() => utrum.ipse()?.putetur()),
+ suffixum: Encliticum.Coniugans
+ }));
+ const utrumcumque: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({
+ relata: new Ignavum(() => utrum.ipse()?.putetur()),
+ suffixum: 'cum'.concat(Encliticum.Coniugans.concat())
+ }));
+ const utrumvis: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({
+ relata: new Ignavum(() => utrum.ipse()?.putetur()),
+ suffixum: 'vīs'
+ }));
+
+ this.contenta.set('aliud', new Mantela(aliud));
+ this.contenta.set('ambō', new Mantela(ambo));
+ this.contenta.set('duō', new Mantela(duo));
+ this.contenta.set('frūgī', new Mantela(frugi));
+ this.contenta.set('meum', new Mantela(meum));
+ this.contenta.set('mīlle', new Mantela(mille));
+ this.contenta.set('multum', new Mantela(multum));
+ this.contenta.set('nēquam', new Mantela(nequam));
+ this.contenta.set('nōnumdecimum', new Mantela(nonumdecimum));
+ this.contenta.set('octāvumdecimum', new Mantela(octavumdecimum));
+ this.contenta.set('quārtumdecimum', new Mantela(quartumdecimum));
+ this.contenta.set('quīntumdecimum', new Mantela(quintumdecimum));
+ this.contenta.set('satis', new Mantela(satis));
+ this.contenta.set('septimumdecimum', new Mantela(septimumdecimum));
+ this.contenta.set('sextumdecimum', new Mantela(sextumdecimum));
+ this.contenta.set('tertiumdecimum', new Mantela(tertiumdecimum));
+ this.contenta.set('utrumcumque', new Mantela(utrumcumque));
+ this.contenta.set('utrumque', new Mantela(utrumque));
+ this.contenta.set('utrumvīs', new Mantela(utrumvis));
+ }
+}
diff --git a/src/anomala/anomala.ts b/src/anomala/anomala.ts
new file mode 100644
index 0000000..99f453c
--- /dev/null
+++ b/src/anomala/anomala.ts
@@ -0,0 +1,48 @@
+import Ignavum from '../miscella/ignavum';
+import Nuntius from '../miscella/nuntius';
+import { Multiplex } from '../praebeunda/verba';
+import type { Faciendum } from '../praebeunda/interfecta';
+import type Tabula from '../tabulae/tabula';
+
+export class Mantela implements Faciendum {
+ private readonly _tabula: Ignavum>;
+ constructor (tabula: Ignavum>) {
+ this._tabula = tabula;
+ }
+
+ putetur (): Tabula {
+ return this._tabula.ipse();
+ }
+}
+
+export default abstract class Anomala implements Disposable {
+ protected readonly contenta: Map> = new Map;
+ protected abstract numeretur (): Promise;
+
+ @Nuntius.futurus('Anomala')
+ async omnia (): Promise {
+ if (!this.contenta.size) {
+ this.numeretur();
+ }
+
+ return [ ...this.contenta.keys() ].sort();
+ }
+
+ @Nuntius.futurus('Anomala')
+ async feratur (lemma: string): Promise | undefined> {
+ if (!this.contenta.size) {
+ this.numeretur();
+ }
+
+ return this.contenta.get(lemma);
+ }
+
+ async forsFerat (): Promise | undefined> {
+ return this.feratur((await this.omnia()).random());
+ }
+
+ @Nuntius.finitus('Anomala')
+ [ Symbol.dispose ] (): void {
+ this.contenta.clear();
+ }
+}
diff --git a/src/anomala/nomina.ts b/src/anomala/nomina.ts
new file mode 100644
index 0000000..2aef2cb
--- /dev/null
+++ b/src/anomala/nomina.ts
@@ -0,0 +1,308 @@
+import Anomala, { Mantela } from './anomala';
+import Ignavum from '../miscella/ignavum';
+import { NomenAgendum, NomenFactum } from '../praebeunda/agenda';
+import Structor from '../praebeunda/structor';
+import { Nomen } from '../praebeunda/verba';
+import TabulaBifissa from '../tabulae/bifissa';
+import TabulaCollata from '../tabulae/collata';
+import TabulaPraefixa from '../tabulae/rescriptae/praefixa';
+import TabulaScapalis from '../tabulae/scapalis';
+import type Tabula from '../tabulae/tabula';
+
+export default class Nomina extends Anomala {
+ static se: Ignavum = new Ignavum(() => new Nomina);
+ protected override async numeretur (): Promise {
+ const Athos: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/nomina/Athōs', positor: Nomen.positor }));
+ const dare: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/nomina/dare', positor: Nomen.positor }));
+ const Iesus: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/nomina/Iēsūs', positor: Nomen.positor }));
+ const ire: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/nomina/ire', positor: Nomen.positor }));
+ const lexis: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/nomina/lexis', positor: Nomen.positor }));
+ const vices: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/nomina/vices', positor: Nomen.positor }));
+ const vis: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/nomina/vis', positor: Nomen.positor }));
+
+ const balneum: Ignavum = new Ignavum(() => new TabulaBifissa({
+ singularis: new Structor(() => new NomenAgendum)
+ .ponatur(nomen => nomen.nominativum = 'balneum')
+ .ponatur(nomen => nomen.genitivum = 'balneī')
+ .ponatur(nomen => nomen.versio = 'secundaNeutra')
+ .struatur(),
+ pluralis: new Structor(() => new NomenAgendum)
+ .ponatur(nomen => nomen.nominativum = 'balnea')
+ .ponatur(nomen => nomen.genitivum = 'balneae')
+ .ponatur(nomen => nomen.versio = 'prima')
+ .struatur()
+ }));
+
+ const caelum: Ignavum = new Ignavum(() => new TabulaBifissa({
+ singularis: new Structor(() => new NomenAgendum)
+ .ponatur(nomen => nomen.nominativum = 'caelum')
+ .ponatur(nomen => nomen.genitivum = 'caelī')
+ .ponatur(nomen => nomen.versio = 'secundaNeutra')
+ .struatur(),
+ pluralis: new Structor(() => new NomenAgendum)
+ .ponatur(nomen => nomen.nominativum = 'caelus')
+ .ponatur(nomen => nomen.genitivum = 'caelī')
+ .ponatur(nomen => nomen.versio = 'secundaMasculina')
+ .struatur()
+ }));
+
+ const dea: Ignavum> = new Ignavum(() => new TabulaCollata(
+ new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/nomina/dea', positor: Nomen.positor })),
+ new Ignavum(() =>
+ new Structor(() => new NomenAgendum)
+ .ponatur(nomen => nomen.nominativum = 'dea')
+ .ponatur(nomen => nomen.genitivum = 'deae')
+ .ponatur(nomen => nomen.versio = 'prima')
+ .struatur().putetur())
+ ));
+
+ const domus: Ignavum> = new Ignavum(() => new TabulaCollata(
+ new Ignavum(() => new TabulaScapalis({
+ via: '/res/scapales/nomina/domus',
+ positor: Nomen.positor
+ })),
+ new Ignavum(() => new Structor(() =>
+ new NomenAgendum)
+ .ponatur(nomen => nomen.nominativum = 'domus')
+ .ponatur(nomen => nomen.genitivum = 'domūs')
+ .ponatur(nomen => nomen.versio = 'quarta')
+ .struatur().putetur())
+ ));
+
+ const iugerum: Ignavum> = new Ignavum(() => new TabulaCollata(
+ new Ignavum(() => new TabulaScapalis({
+ via: '/res/scapales/nomina/iūgerum',
+ positor: Nomen.positor
+ })),
+ new Ignavum(() => new Structor(() =>
+ new NomenAgendum)
+ .ponatur(nomen => nomen.nominativum = 'iūgerum')
+ .ponatur(nomen => nomen.genitivum = 'iūgerī')
+ .ponatur(nomen => nomen.versio = 'secundaNeutra')
+ .struatur().putetur())
+ ));
+
+ const semidea: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: dea, praefixum: 'sēmi' }));
+
+ const abire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'ab' }));
+ const circumire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'circum' }));
+ const coire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'co' }));
+ const deire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'de' }));
+ const disperire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'disper' }));
+ const exire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'ex' }));
+ const inire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'in' }));
+ const interire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'inter' }));
+ const introire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'intro' }));
+ const nequire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'nequ' }));
+ const obire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'ob' }));
+ const perire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'per' }));
+ const prodire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'prōd' }));
+ const quire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'qu' }));
+ const redire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'red' }));
+ const subire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'sub' }));
+ const transabire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'trānsab' }));
+ const transire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'trāns' }));
+ const venire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: ire, praefixum: 'vēn' }));
+ const dedare: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: dare, praefixum: 'dē' }));
+ const edare: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: dare, praefixum: 'ē' }));
+
+ const venireRectum: Ignavum> = new Ignavum(() =>
+ new Structor(() => new NomenFactum)
+ .ponatur(nomen => nomen.infinitivum = 'venīre')
+ .ponatur(nomen => nomen.supinum = 'ventum')
+ .ponatur(nomen => nomen.versio = 'quartus')
+ .struatur().putetur());
+
+ const advenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'ad'
+ }));
+
+ const adinvenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'adin'
+ }));
+
+ const antevenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'ante'
+ }));
+
+ const circumvenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'circum'
+ }));
+
+ const convenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'con'
+ }));
+
+ const contravenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'contrā'
+ }));
+
+ const disconvenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'discon'
+ }));
+
+ const devenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'dē'
+ }));
+
+ const evenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'ē'
+ }));
+
+ const invenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'in'
+ }));
+
+ const intervenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'inter'
+ }));
+
+ const obvenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'ob'
+ }));
+
+ const pervenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'per'
+ }));
+
+ const praevenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'prae'
+ }));
+
+ const provenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'prō'
+ }));
+
+ const subvenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'sub'
+ }));
+
+ const supervenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'super'
+ }));
+
+ const transvenire: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({
+ relata: new Ignavum(() => venireRectum.ipse()),
+ praefixum: 'trāns'
+ }));
+
+ this.contenta.set('abīre', new Mantela(abire));
+ this.contenta.set('advenīre', new Mantela(advenire));
+ this.contenta.set('adinvenīre', new Mantela(adinvenire));
+ this.contenta.set('antevenīre', new Mantela(antevenire));
+ this.contenta.set('Athōs', new Mantela(Athos));
+ this.contenta.set('balneum', new Mantela(balneum));
+ this.contenta.set('caelum', new Mantela(caelum));
+ this.contenta.set('circumīre', new Mantela(circumire));
+ this.contenta.set('circumvenīre', new Mantela(circumvenire));
+ this.contenta.set('coīre', new Mantela(coire));
+ this.contenta.set('convenīre', new Mantela(convenire));
+ this.contenta.set('contrāvenīre', new Mantela(contravenire));
+ this.contenta.set('dare', new Mantela(dare));
+ this.contenta.set('dēdare', new Mantela(dedare));
+ this.contenta.set('dea', new Mantela(dea));
+ this.contenta.set('deīre', new Mantela(deire));
+ this.contenta.set('dēvenīre', new Mantela(devenire));
+ this.contenta.set('disconvenīre', new Mantela(disconvenire));
+ this.contenta.set('disperīre', new Mantela(disperire));
+ this.contenta.set('domus', new Mantela(domus));
+ this.contenta.set('ēdare', new Mantela(edare));
+ this.contenta.set('ēvenīre', new Mantela(evenire));
+ this.contenta.set('exīre', new Mantela(exire));
+ this.contenta.set('Iēsūs', new Mantela(Iesus));
+ this.contenta.set('inīre', new Mantela(inire));
+ this.contenta.set('interīre', new Mantela(interire));
+ this.contenta.set('intervenīre', new Mantela(intervenire));
+ this.contenta.set('invenīre', new Mantela(invenire));
+ this.contenta.set('introīre', new Mantela(introire));
+ this.contenta.set('īre', new Mantela(ire));
+ this.contenta.set('iūgerum', new Mantela(iugerum));
+ this.contenta.set('lexis', new Mantela(lexis));
+ this.contenta.set('nequīre', new Mantela(nequire));
+ this.contenta.set('obīre', new Mantela(obire));
+ this.contenta.set('obvenīre', new Mantela(obvenire));
+ this.contenta.set('perīre', new Mantela(perire));
+ this.contenta.set('prōvenīre', new Mantela(provenire));
+ this.contenta.set('prōdīre', new Mantela(prodire));
+ this.contenta.set('pervenīre', new Mantela(pervenire));
+ this.contenta.set('praevenīre', new Mantela(praevenire));
+ this.contenta.set('quīre', new Mantela(quire));
+ this.contenta.set('redīre', new Mantela(redire));
+ this.contenta.set('sēmidea', new Mantela(semidea));
+ this.contenta.set('subīre', new Mantela(subire));
+ this.contenta.set('subvenīre', new Mantela(subvenire));
+ this.contenta.set('supervenīre', new Mantela(supervenire));
+ this.contenta.set('trānsabīre', new Mantela(transabire));
+ this.contenta.set('trānsīre', new Mantela(transire));
+ this.contenta.set('trānsvenīre', new Mantela(transvenire));
+ this.contenta.set('venīre', new Mantela(venireRectum));
+ this.contenta.set('vēnīre', new Mantela(venire));
+ this.contenta.set('vicēs', new Mantela(vices));
+ this.contenta.set('vīs', new Mantela(vis));
+ }
+}
diff --git a/src/anomala/pronomina.ts b/src/anomala/pronomina.ts
new file mode 100644
index 0000000..65a5d19
--- /dev/null
+++ b/src/anomala/pronomina.ts
@@ -0,0 +1,181 @@
+import Anomala, { Mantela } from './anomala';
+import { Encliticum } from '../miscella/enumerationes';
+import Ignavum from '../miscella/ignavum';
+import Nuntius from '../miscella/nuntius';
+import { Pronomen } from '../praebeunda/verba';
+import TabulaCollata from '../tabulae/collata';
+import TabulaCircumfixa from '../tabulae/rescriptae/circumfixa';
+import TabulaPraefixa from '../tabulae/rescriptae/praefixa';
+import TabulaRescripta from '../tabulae/rescriptae/rescripta';
+import TabulaSuffixa from '../tabulae/rescriptae/suffixa';
+import TabulaScapalis from '../tabulae/scapalis';
+
+export default class Pronomina extends Anomala {
+ static se: Ignavum = new Ignavum(() => new Pronomina);
+
+ protected async numeretur (): Promise {
+ const ego: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/pronomina/ego', positor: Pronomen.positor }));
+ const hoc: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/pronomina/hoc', positor: Pronomen.positor }));
+ const id: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/pronomina/id', positor: Pronomen.positor }));
+ const illud: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/pronomina/illud', positor: Pronomen.positor }));
+ const se: Ignavum> = new Ignavum(() =>
+ new TabulaScapalis({ via: '/res/scapales/pronomina/sē', positor: Pronomen.positor }));
+
+ const egomet: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({ relata: ego, suffixum: 'met' }));
+
+ const idem: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: id,
+ rescriptor (scriptum: string): string {
+ switch (scriptum) {
+ case 'is':
+ case 'eī':
+ return 'īdem';
+ default:
+ return scriptum.concat('dem');
+ }
+ },
+ }));
+
+ const ipsum: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum>(() =>
+ new TabulaScapalis({ via: '/res/scapales/pronomina/ipsum', positor: Pronomen.positor })),
+ new Ignavum>(() =>
+ new TabulaRescripta({
+ relata: illud,
+ rescriptor: scriptum => scriptum.replace('ill', 'ips')
+ }))
+ ));
+
+ const istud: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: illud,
+ rescriptor: scriptum => scriptum.replace('ll', 'st')
+ }));
+
+ const quid: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: id,
+ rescriptor (scriptum: string): string {
+ switch (scriptum) {
+ case 'ea':
+ case 'eae':
+ return 'quae';
+ case 'eum':
+ return 'quem';
+ case 'eius':
+ return 'cuius';
+ default:
+ return scriptum.replace('e', 'qu');
+ }
+ },
+ }));
+
+ const quod: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: quid,
+ rescriptor (scriptum: string): string {
+ switch (scriptum) {
+ case 'quid':
+ return 'quod';
+ case 'quis':
+ return 'quī';
+ default:
+ return scriptum;
+ }
+ },
+ }));
+
+ const tu: Ignavum> = new Ignavum(() =>
+ new TabulaCollata(
+ new Ignavum>(() =>
+ new TabulaScapalis({ via: '/res/scapales/pronomina/tū', positor: Pronomen.positor })),
+ new Ignavum>(() =>
+ new TabulaRescripta({
+ relata: se,
+ rescriptor: scriptum => scriptum.replace('s', 't')
+ }))
+ ));
+
+ const aliquid: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: quid, praefixum: 'ali' }));
+ const aliquod: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: quod, praefixum: 'ali' }));
+ const aliquodpiam: Ignavum> = new Ignavum(() =>
+ new TabulaCircumfixa({ relata: quod, praefixum: 'ali', suffixum: 'piam' }));
+
+ const ecquid: Ignavum> = new Ignavum(() =>
+ new TabulaRescripta({
+ relata: quid,
+ rescriptor: scriptum => scriptum === 'cuius' ? 'ecculus' : 'ec'.concat(scriptum)
+ }));
+
+ const ecquod: Ignavum> = new Ignavum(() =>
+ new TabulaPraefixa({ relata: quod, praefixum: 'ec' }));
+ const quidnam: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({ relata: quid, suffixum: 'nam' }));
+ const quidpiam: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({ relata: quid, suffixum: 'piam' }));
+ const quidquam: Ignavum> = new Ignavum(() =>
+ new TabulaSuffixa({ relata: quid, suffixum: 'quam' }));
+ const quidque: Ignavum