diff --git a/README.md b/README.md index 89773290..23ef648e 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,10 @@ the future. - Pokémon Sun/Moon - Pokémon Ultra Sun/Ultra Moon +### Supported ROM Hack formats + +- Pokémon Radical Red + ## Alterations to transferred Pokémon When moving Pokémon to an older game, some compromises have to be made. OpenHome will diff --git a/credits.md b/credits.md new file mode 100644 index 00000000..1e5c7795 --- /dev/null +++ b/credits.md @@ -0,0 +1,4 @@ +# Credits + +* [Radical Red Team](https://www.pokecommunity.com/threads/pok%C3%A9mon-radical-red-version-4-1-released-gen-9-dlc-pokemon-character-customization-now-available.437688/): For the Radical Red image used for identifying RR saves + diff --git a/generate/_rename_rr_sprites.js b/generate/_rename_rr_sprites.js new file mode 100644 index 00000000..9af06a72 --- /dev/null +++ b/generate/_rename_rr_sprites.js @@ -0,0 +1,74 @@ +const fs = require('fs'); +const path = require('path'); +const sharp = require('sharp'); + +const sourceFolder = 'rr'; +const destinationFolder = __dirname; + +function extractSuffixFromFilename(filename) { + const match = filename.match(/gFrontSprite\d+(.*)\.png$/i); // Match the part after gFrontSprite### until .png + return match ? match[1] : null; +} + +function formatSuffix(suffix) { + if (suffix.length === 0) return suffix; + return suffix[0].toUpperCase() + suffix.slice(1).toLowerCase(); // Capitalize first letter, lowercase the rest +} + +function removeBackgroundBasedOnTopLeftPixel(sourcePath, destinationPath) { + sharp(sourcePath) + .ensureAlpha() + .toBuffer() + .then((data) => { + return sharp(data).raw().toBuffer({ resolveWithObject: true }); + }) + .then(({ data, info }) => { + const [r, g, b] = [data[0], data[1], data[2]]; + + for (let i = 0; i < data.length; i += 4) { + if (data[i] === r && data[i + 1] === g && data[i + 2] === b) { + data[i + 3] = 0; + } + } + + return sharp(data, { raw: { width: info.width, height: info.height, channels: 4 } }) + .png() + .toFile(destinationPath); + }) + .then(() => { + console.log(`Processed and saved: ${destinationPath}`); + }) + .catch(error => { + console.error(`Error processing ${sourcePath}:`, error); + }); +} + +function deleteExistingImages() { + const files = fs.readdirSync(destinationFolder); + files.forEach(file => { + const filePath = path.join(destinationFolder, file); + if (file.match(/\.(png|jpg|jpeg|gif)$/i) && fs.lstatSync(filePath).isFile()) { + fs.unlinkSync(filePath); // Delete the file + console.log(`Deleted existing image: ${filePath}`); + } + }); +} + +function processImages() { + deleteExistingImages(); + + const files = fs.readdirSync(sourceFolder); + files.forEach(file => { + const suffix = extractSuffixFromFilename(file); + if (suffix) { + const formattedSuffix = formatSuffix(suffix); // Format the suffix + const sourcePath = path.join(sourceFolder, file); + const destinationPath = path.join(destinationFolder, `${formattedSuffix}.png`); + removeBackgroundBasedOnTopLeftPixel(sourcePath, destinationPath); + } else { + console.log(`Skipped file (no suffix found): ${file}`); + } + }); +} + +processImages(); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ebee5c90..b1697629 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,11 +21,10 @@ "dayjs": "^1.11.12", "electron-updater": "^6.3.0", "fp-ts": "^2.16.9", - "hex-editor-react": "^0.1.0", "hexy": "^0.3.5", "lodash": "^4.17.21", "pokemon-files": "^0.3.5", - "pokemon-resources": "^1.0.10", + "pokemon-resources": "^1.0.11", "pokemon-species-data": "^0.4.2", "prando": "^6.0.1", "react": "^18.2.0", @@ -61,6 +60,7 @@ "jest": "^29.7.0", "prettier": "^3.0.2", "react-dom": "^18.2.0", + "sharp": "^0.33.5", "ts-jest": "^29.2.5", "typescript": "^5.6.3", "vite": "^4.5.5" @@ -68,18 +68,16 @@ }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/@ampproject/remapping": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -90,8 +88,6 @@ }, "node_modules/@babel/code-frame": { "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", - "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.25.9", @@ -104,8 +100,6 @@ }, "node_modules/@babel/compat-data": { "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, "license": "MIT", "engines": { @@ -114,8 +108,6 @@ }, "node_modules/@babel/core": { "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", - "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, "license": "MIT", "dependencies": { @@ -145,17 +137,14 @@ }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@babel/generator": { "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "license": "MIT", "dependencies": { "@babel/parser": "^7.26.2", @@ -170,8 +159,6 @@ }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", - "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, "license": "MIT", "dependencies": { @@ -183,8 +170,6 @@ }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", - "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", "dev": true, "license": "MIT", "dependencies": { @@ -197,8 +182,6 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", - "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, "license": "MIT", "dependencies": { @@ -214,8 +197,6 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -224,8 +205,6 @@ }, "node_modules/@babel/helper-create-class-features-plugin": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", - "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", "dev": true, "license": "MIT", "dependencies": { @@ -246,8 +225,6 @@ }, "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -256,8 +233,6 @@ }, "node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", - "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", "dev": true, "license": "MIT", "dependencies": { @@ -274,8 +249,6 @@ }, "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -284,8 +257,6 @@ }, "node_modules/@babel/helper-define-polyfill-provider": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz", - "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==", "dev": true, "license": "MIT", "dependencies": { @@ -301,8 +272,6 @@ }, "node_modules/@babel/helper-define-polyfill-provider/node_modules/resolve": { "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "license": "MIT", "dependencies": { @@ -319,8 +288,6 @@ }, "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", - "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -333,8 +300,6 @@ }, "node_modules/@babel/helper-module-imports": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", - "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "license": "MIT", "dependencies": { "@babel/traverse": "^7.25.9", @@ -346,8 +311,6 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", - "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, "license": "MIT", "dependencies": { @@ -364,8 +327,6 @@ }, "node_modules/@babel/helper-optimise-call-expression": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", - "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, "license": "MIT", "dependencies": { @@ -377,8 +338,6 @@ }, "node_modules/@babel/helper-plugin-utils": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", - "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, "license": "MIT", "engines": { @@ -387,8 +346,6 @@ }, "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", - "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "dev": true, "license": "MIT", "dependencies": { @@ -405,8 +362,6 @@ }, "node_modules/@babel/helper-replace-supers": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", - "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", "dev": true, "license": "MIT", "dependencies": { @@ -423,8 +378,6 @@ }, "node_modules/@babel/helper-simple-access": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", - "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", "dev": true, "license": "MIT", "dependencies": { @@ -437,8 +390,6 @@ }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", - "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, "license": "MIT", "dependencies": { @@ -451,8 +402,6 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", - "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -460,8 +409,6 @@ }, "node_modules/@babel/helper-validator-identifier": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", - "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -469,8 +416,6 @@ }, "node_modules/@babel/helper-validator-option": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", - "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, "license": "MIT", "engines": { @@ -479,8 +424,6 @@ }, "node_modules/@babel/helper-wrap-function": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", - "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "dev": true, "license": "MIT", "dependencies": { @@ -494,8 +437,6 @@ }, "node_modules/@babel/helpers": { "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", - "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, "license": "MIT", "dependencies": { @@ -508,8 +449,6 @@ }, "node_modules/@babel/parser": { "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", - "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "license": "MIT", "dependencies": { "@babel/types": "^7.26.0" @@ -523,8 +462,6 @@ }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", - "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", "dev": true, "license": "MIT", "dependencies": { @@ -540,8 +477,6 @@ }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", - "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", "dev": true, "license": "MIT", "dependencies": { @@ -556,8 +491,6 @@ }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", - "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", "dev": true, "license": "MIT", "dependencies": { @@ -572,8 +505,6 @@ }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", "dev": true, "license": "MIT", "dependencies": { @@ -590,8 +521,6 @@ }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", - "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", "dev": true, "license": "MIT", "dependencies": { @@ -607,8 +536,6 @@ }, "node_modules/@babel/plugin-proposal-private-property-in-object": { "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, "license": "MIT", "engines": { @@ -620,8 +547,6 @@ }, "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "license": "MIT", "dependencies": { @@ -633,8 +558,6 @@ }, "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "license": "MIT", "dependencies": { @@ -646,8 +569,6 @@ }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "license": "MIT", "dependencies": { @@ -659,8 +580,6 @@ }, "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "license": "MIT", "dependencies": { @@ -675,8 +594,6 @@ }, "node_modules/@babel/plugin-syntax-import-assertions": { "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", - "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", "dev": true, "license": "MIT", "dependencies": { @@ -691,8 +608,6 @@ }, "node_modules/@babel/plugin-syntax-import-attributes": { "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", - "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", "dev": true, "license": "MIT", "dependencies": { @@ -707,8 +622,6 @@ }, "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, "license": "MIT", "dependencies": { @@ -720,8 +633,6 @@ }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "license": "MIT", "dependencies": { @@ -733,8 +644,6 @@ }, "node_modules/@babel/plugin-syntax-jsx": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz", - "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==", "dev": true, "license": "MIT", "dependencies": { @@ -749,8 +658,6 @@ }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "license": "MIT", "dependencies": { @@ -762,8 +669,6 @@ }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "license": "MIT", "dependencies": { @@ -775,8 +680,6 @@ }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "license": "MIT", "dependencies": { @@ -788,8 +691,6 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "license": "MIT", "dependencies": { @@ -801,8 +702,6 @@ }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -814,8 +713,6 @@ }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "license": "MIT", "dependencies": { @@ -827,8 +724,6 @@ }, "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "license": "MIT", "dependencies": { @@ -843,8 +738,6 @@ }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "license": "MIT", "dependencies": { @@ -859,8 +752,6 @@ }, "node_modules/@babel/plugin-syntax-typescript": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz", - "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==", "dev": true, "license": "MIT", "dependencies": { @@ -875,8 +766,6 @@ }, "node_modules/@babel/plugin-syntax-unicode-sets-regex": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, "license": "MIT", "dependencies": { @@ -892,8 +781,6 @@ }, "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", - "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "dev": true, "license": "MIT", "dependencies": { @@ -908,8 +795,6 @@ }, "node_modules/@babel/plugin-transform-async-generator-functions": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", - "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", "dev": true, "license": "MIT", "dependencies": { @@ -926,8 +811,6 @@ }, "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", - "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", "dev": true, "license": "MIT", "dependencies": { @@ -944,8 +827,6 @@ }, "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", - "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", "dev": true, "license": "MIT", "dependencies": { @@ -960,8 +841,6 @@ }, "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", - "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "dev": true, "license": "MIT", "dependencies": { @@ -976,8 +855,6 @@ }, "node_modules/@babel/plugin-transform-class-properties": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", - "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -993,8 +870,6 @@ }, "node_modules/@babel/plugin-transform-class-static-block": { "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", - "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1010,8 +885,6 @@ }, "node_modules/@babel/plugin-transform-classes": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", - "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "dev": true, "license": "MIT", "dependencies": { @@ -1031,8 +904,6 @@ }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", - "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "dev": true, "license": "MIT", "dependencies": { @@ -1048,8 +919,6 @@ }, "node_modules/@babel/plugin-transform-destructuring": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", - "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1064,8 +933,6 @@ }, "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", - "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", "dev": true, "license": "MIT", "dependencies": { @@ -1081,8 +948,6 @@ }, "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", - "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", "dev": true, "license": "MIT", "dependencies": { @@ -1097,8 +962,6 @@ }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", "dev": true, "license": "MIT", "dependencies": { @@ -1114,8 +977,6 @@ }, "node_modules/@babel/plugin-transform-dynamic-import": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", - "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", "dev": true, "license": "MIT", "dependencies": { @@ -1130,8 +991,6 @@ }, "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", - "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", "dev": true, "license": "MIT", "dependencies": { @@ -1147,8 +1006,6 @@ }, "node_modules/@babel/plugin-transform-export-namespace-from": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", - "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "dev": true, "license": "MIT", "dependencies": { @@ -1163,8 +1020,6 @@ }, "node_modules/@babel/plugin-transform-for-of": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", - "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "dev": true, "license": "MIT", "dependencies": { @@ -1180,8 +1035,6 @@ }, "node_modules/@babel/plugin-transform-function-name": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", - "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "dev": true, "license": "MIT", "dependencies": { @@ -1198,8 +1051,6 @@ }, "node_modules/@babel/plugin-transform-json-strings": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", - "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", "dev": true, "license": "MIT", "dependencies": { @@ -1214,8 +1065,6 @@ }, "node_modules/@babel/plugin-transform-literals": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", - "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1230,8 +1079,6 @@ }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", - "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", "dev": true, "license": "MIT", "dependencies": { @@ -1246,8 +1093,6 @@ }, "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", - "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "dev": true, "license": "MIT", "dependencies": { @@ -1262,8 +1107,6 @@ }, "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", - "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", "dev": true, "license": "MIT", "dependencies": { @@ -1279,8 +1122,6 @@ }, "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", - "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", "dev": true, "license": "MIT", "dependencies": { @@ -1297,8 +1138,6 @@ }, "node_modules/@babel/plugin-transform-modules-systemjs": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", - "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", "dev": true, "license": "MIT", "dependencies": { @@ -1316,8 +1155,6 @@ }, "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", - "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", "dev": true, "license": "MIT", "dependencies": { @@ -1333,8 +1170,6 @@ }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", - "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "dev": true, "license": "MIT", "dependencies": { @@ -1350,8 +1185,6 @@ }, "node_modules/@babel/plugin-transform-new-target": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", - "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1366,8 +1199,6 @@ }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", - "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", "dev": true, "license": "MIT", "dependencies": { @@ -1382,8 +1213,6 @@ }, "node_modules/@babel/plugin-transform-numeric-separator": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", - "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "dev": true, "license": "MIT", "dependencies": { @@ -1398,8 +1227,6 @@ }, "node_modules/@babel/plugin-transform-object-rest-spread": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", - "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "dev": true, "license": "MIT", "dependencies": { @@ -1416,8 +1243,6 @@ }, "node_modules/@babel/plugin-transform-object-super": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", - "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", "dev": true, "license": "MIT", "dependencies": { @@ -1433,8 +1258,6 @@ }, "node_modules/@babel/plugin-transform-optional-catch-binding": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", - "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "dev": true, "license": "MIT", "dependencies": { @@ -1449,8 +1272,6 @@ }, "node_modules/@babel/plugin-transform-optional-chaining": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", - "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "dev": true, "license": "MIT", "dependencies": { @@ -1466,8 +1287,6 @@ }, "node_modules/@babel/plugin-transform-parameters": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", - "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "dev": true, "license": "MIT", "dependencies": { @@ -1482,8 +1301,6 @@ }, "node_modules/@babel/plugin-transform-private-methods": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", - "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", "dev": true, "license": "MIT", "dependencies": { @@ -1499,8 +1316,6 @@ }, "node_modules/@babel/plugin-transform-private-property-in-object": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", - "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", "dev": true, "license": "MIT", "dependencies": { @@ -1517,8 +1332,6 @@ }, "node_modules/@babel/plugin-transform-property-literals": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", - "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", "dev": true, "license": "MIT", "dependencies": { @@ -1533,9 +1346,8 @@ }, "node_modules/@babel/plugin-transform-react-jsx-self": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz", - "integrity": "sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1548,9 +1360,8 @@ }, "node_modules/@babel/plugin-transform-react-jsx-source": { "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz", - "integrity": "sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/helper-plugin-utils": "^7.22.5" }, @@ -1563,8 +1374,6 @@ }, "node_modules/@babel/plugin-transform-regenerator": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", - "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "dev": true, "license": "MIT", "dependencies": { @@ -1580,8 +1389,6 @@ }, "node_modules/@babel/plugin-transform-regexp-modifiers": { "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", - "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", "dev": true, "license": "MIT", "dependencies": { @@ -1597,8 +1404,6 @@ }, "node_modules/@babel/plugin-transform-reserved-words": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", - "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", "dev": true, "license": "MIT", "dependencies": { @@ -1613,8 +1418,6 @@ }, "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", - "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dev": true, "license": "MIT", "dependencies": { @@ -1629,8 +1432,6 @@ }, "node_modules/@babel/plugin-transform-spread": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", - "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dev": true, "license": "MIT", "dependencies": { @@ -1646,8 +1447,6 @@ }, "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", - "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "dev": true, "license": "MIT", "dependencies": { @@ -1662,8 +1461,6 @@ }, "node_modules/@babel/plugin-transform-template-literals": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", - "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", "dev": true, "license": "MIT", "dependencies": { @@ -1678,8 +1475,6 @@ }, "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", - "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", "dev": true, "license": "MIT", "dependencies": { @@ -1694,8 +1489,6 @@ }, "node_modules/@babel/plugin-transform-typescript": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.9.tgz", - "integrity": "sha512-7PbZQZP50tzv2KGGnhh82GSyMB01yKY9scIjf1a+GfZCtInOWqUH5+1EBU4t9fyR5Oykkkc9vFTs4OHrhHXljQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1714,8 +1507,6 @@ }, "node_modules/@babel/plugin-transform-unicode-escapes": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", - "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "dev": true, "license": "MIT", "dependencies": { @@ -1730,8 +1521,6 @@ }, "node_modules/@babel/plugin-transform-unicode-property-regex": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", - "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", "dev": true, "license": "MIT", "dependencies": { @@ -1747,8 +1536,6 @@ }, "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", - "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", "dev": true, "license": "MIT", "dependencies": { @@ -1764,8 +1551,6 @@ }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", - "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1781,8 +1566,6 @@ }, "node_modules/@babel/preset-env": { "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", - "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", "dev": true, "license": "MIT", "dependencies": { @@ -1865,8 +1648,6 @@ }, "node_modules/@babel/preset-env/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -1875,8 +1656,6 @@ }, "node_modules/@babel/preset-modules": { "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "license": "MIT", "dependencies": { @@ -1890,8 +1669,6 @@ }, "node_modules/@babel/preset-typescript": { "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz", - "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==", "dev": true, "license": "MIT", "dependencies": { @@ -1910,8 +1687,6 @@ }, "node_modules/@babel/runtime": { "version": "7.25.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", - "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -1922,8 +1697,6 @@ }, "node_modules/@babel/template": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", - "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.25.9", @@ -1936,8 +1709,6 @@ }, "node_modules/@babel/traverse": { "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.25.9", @@ -1954,8 +1725,6 @@ }, "node_modules/@babel/types": { "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.25.9", @@ -1967,16 +1736,13 @@ }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true, "license": "MIT" }, "node_modules/@develar/schema-utils": { "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", - "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "^6.12.0", "ajv-keywords": "^3.4.1" @@ -1991,8 +1757,6 @@ }, "node_modules/@electron-toolkit/eslint-config-prettier": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@electron-toolkit/eslint-config-prettier/-/eslint-config-prettier-2.0.0.tgz", - "integrity": "sha512-L+uG1FvJcAZkPZpSi6B1pmdpyJFyOxWDTjr1Vs47vSryxv/EX1Ch6o4HVsachlDq3fMEkDgojuP2F3ZvVZMoLw==", "dev": true, "license": "MIT", "dependencies": { @@ -2006,8 +1770,6 @@ }, "node_modules/@electron-toolkit/eslint-config-ts": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@electron-toolkit/eslint-config-ts/-/eslint-config-ts-2.0.0.tgz", - "integrity": "sha512-NGXadMyWH9+ZsgYe/u5E0mqK2qTDq01kKKnyo7oiq/7v/dWoMoPhqSkn69NZvt7WmnFNOm57l71fv6128mAx3Q==", "dev": true, "license": "MIT", "dependencies": { @@ -2026,8 +1788,6 @@ }, "node_modules/@electron-toolkit/eslint-config-ts/node_modules/@typescript-eslint/eslint-plugin": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", "dev": true, "license": "MIT", "dependencies": { @@ -2060,8 +1820,6 @@ }, "node_modules/@electron-toolkit/eslint-config-ts/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/type-utils": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", "dev": true, "license": "MIT", "dependencies": { @@ -2088,8 +1846,6 @@ }, "node_modules/@electron-toolkit/eslint-config-ts/node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", "dev": true, "license": "MIT", "dependencies": { @@ -2111,8 +1867,6 @@ }, "node_modules/@electron-toolkit/eslint-config-ts/node_modules/@typescript-eslint/parser": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -2140,34 +1894,30 @@ }, "node_modules/@electron-toolkit/preload": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@electron-toolkit/preload/-/preload-2.0.0.tgz", - "integrity": "sha512-zpZDzbqJTZQC5d4LRs2EKruKWnqah+T75s+niBYFemYLtiW5TTZcWi3Q8UxHqnwTudDMuWJb233aaS2yjx3Xiw==", + "license": "MIT", "peerDependencies": { "electron": ">=13.0.0" } }, "node_modules/@electron-toolkit/tsconfig": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@electron-toolkit/tsconfig/-/tsconfig-1.0.1.tgz", - "integrity": "sha512-M0Mol3odspvtCuheyujLNAW7bXq7KFNYVMRtpjFa4ZfES4MuklXBC7Nli/omvc+PRKlrklgAGx3l4VakjNo8jg==", "dev": true, + "license": "MIT", "peerDependencies": { "@types/node": "*" } }, "node_modules/@electron-toolkit/utils": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@electron-toolkit/utils/-/utils-2.0.1.tgz", - "integrity": "sha512-3nnjd3D1NIjxdzNrvR5fkJ3kbJNbRkpHppv0/pSbMX6I0DaBzpPXeSfDYuJJKzZrAc3CmGcJa0MU4+AjEOlT4g==", + "license": "MIT", "peerDependencies": { "electron": ">=13.0.0" } }, "node_modules/@electron/asar": { "version": "3.2.10", - "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.10.tgz", - "integrity": "sha512-mvBSwIBUeiRscrCeJE1LwctAriBj65eUDm0Pc11iE5gRwzkmsdbS7FnZ1XUWjpSeQWL1L5g12Fc/SchPM9DUOw==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^5.0.0", "glob": "^7.1.6", @@ -2182,9 +1932,8 @@ }, "node_modules/@electron/asar/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2192,9 +1941,8 @@ }, "node_modules/@electron/asar/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2204,8 +1952,7 @@ }, "node_modules/@electron/get": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", - "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "license": "MIT", "dependencies": { "debug": "^4.1.1", "env-paths": "^2.2.0", @@ -2224,17 +1971,15 @@ }, "node_modules/@electron/get/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/@electron/notarize": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.2.1.tgz", - "integrity": "sha512-aL+bFMIkpR0cmmj5Zgy0LMKEpgy43/hw5zadEArgmAMWWlKc5buwFvFT9G/o/YJkvXAJm5q3iuTuLaiaXW39sg==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.1", "fs-extra": "^9.0.1", @@ -2246,9 +1991,8 @@ }, "node_modules/@electron/notarize/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, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -2261,9 +2005,8 @@ }, "node_modules/@electron/notarize/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, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -2273,18 +2016,16 @@ }, "node_modules/@electron/notarize/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, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/@electron/osx-sign": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.5.tgz", - "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "compare-version": "^0.1.2", "debug": "^4.3.4", @@ -2303,9 +2044,8 @@ }, "node_modules/@electron/osx-sign/node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -2317,9 +2057,8 @@ }, "node_modules/@electron/osx-sign/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, + "license": "MIT", "engines": { "node": ">= 8.0.0" }, @@ -2329,9 +2068,8 @@ }, "node_modules/@electron/osx-sign/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, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -2341,18 +2079,16 @@ }, "node_modules/@electron/osx-sign/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, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/@electron/universal": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.5.1.tgz", - "integrity": "sha512-kbgXxyEauPJiQQUNG2VgUeyfQNFk6hBF11ISN2PNI6agUgPl55pv4eQmaqHzTAzchBvqZ2tQuRVaPStGf0mxGw==", "dev": true, + "license": "MIT", "dependencies": { "@electron/asar": "^3.2.1", "@malept/cross-spawn-promise": "^1.1.0", @@ -2368,9 +2104,8 @@ }, "node_modules/@electron/universal/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2378,9 +2113,8 @@ }, "node_modules/@electron/universal/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, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -2393,9 +2127,8 @@ }, "node_modules/@electron/universal/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, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -2405,9 +2138,8 @@ }, "node_modules/@electron/universal/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -2417,17 +2149,25 @@ }, "node_modules/@electron/universal/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, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@emotion/babel-plugin": { "version": "11.12.0", - "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.12.0.tgz", - "integrity": "sha512-y2WQb+oP8Jqvvclh8Q55gLUyb7UFvgv7eJfsj7td5TToBrIUtPay2kMrZi4xjq9qw2vD0ZR5fSho0yqoFgX7Rw==", "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.16.7", @@ -2445,14 +2185,10 @@ }, "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "license": "MIT" }, "node_modules/@emotion/babel-plugin/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==", "license": "MIT", "engines": { "node": ">=10" @@ -2463,8 +2199,6 @@ }, "node_modules/@emotion/babel-plugin/node_modules/source-map": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -2472,8 +2206,6 @@ }, "node_modules/@emotion/cache": { "version": "11.13.1", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.1.tgz", - "integrity": "sha512-iqouYkuEblRcXmylXIwwOodiEK5Ifl7JcX7o6V4jI3iW4mLXX3dmt5xwBtIkJiQEXFAI+pC8X0i67yiPkH9Ucw==", "license": "MIT", "dependencies": { "@emotion/memoize": "^0.9.0", @@ -2485,14 +2217,10 @@ }, "node_modules/@emotion/hash": { "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.2.tgz", - "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==", "license": "MIT" }, "node_modules/@emotion/is-prop-valid": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.3.0.tgz", - "integrity": "sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==", "license": "MIT", "dependencies": { "@emotion/memoize": "^0.9.0" @@ -2500,14 +2228,10 @@ }, "node_modules/@emotion/memoize": { "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.9.0.tgz", - "integrity": "sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==", "license": "MIT" }, "node_modules/@emotion/react": { "version": "11.13.3", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.3.tgz", - "integrity": "sha512-lIsdU6JNrmYfJ5EbUCf4xW1ovy5wKQ2CkPRM4xogziOxH1nXxBSjpC9YqbFAP7circxMfYp+6x676BqWcEiixg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", @@ -2530,8 +2254,6 @@ }, "node_modules/@emotion/serialize": { "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.3.1.tgz", - "integrity": "sha512-dEPNKzBPU+vFPGa+z3axPRn8XVDetYORmDC0wAiej+TNcOZE70ZMJa0X7JdeoM6q/nWTMZeLpN/fTnD9o8MQBA==", "license": "MIT", "dependencies": { "@emotion/hash": "^0.9.2", @@ -2543,14 +2265,10 @@ }, "node_modules/@emotion/sheet": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.4.0.tgz", - "integrity": "sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==", "license": "MIT" }, "node_modules/@emotion/styled": { "version": "11.13.0", - "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.13.0.tgz", - "integrity": "sha512-tkzkY7nQhW/zC4hztlwucpT8QEZ6eUzpXDRhww/Eej4tFfO0FxQYWRyg/c5CCXa4d/f174kqeXYjuQRnhzf6dA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", @@ -2572,14 +2290,10 @@ }, "node_modules/@emotion/unitless": { "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.10.0.tgz", - "integrity": "sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==", "license": "MIT" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz", - "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==", "license": "MIT", "peerDependencies": { "react": ">=16.8.0" @@ -2587,23 +2301,78 @@ }, "node_modules/@emotion/utils": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.4.0.tgz", - "integrity": "sha512-spEnrA1b6hDR/C68lC2M7m6ALPUHZC0lIY7jAS/B/9DuuO1ZP04eov8SMv/6fwRd8pzmsn2AuJEznRREWlQrlQ==", "license": "MIT" }, "node_modules/@emotion/weak-memoize": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz", - "integrity": "sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==", "license": "MIT" }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/darwin-arm64": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", "cpu": [ "arm64" ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], "optional": true, "os": [ "darwin" @@ -2612,11 +2381,250 @@ "node": ">=12" } }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "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, + "license": "MIT", "dependencies": { "eslint-visitor-keys": "^3.3.0" }, @@ -2629,8 +2637,6 @@ }, "node_modules/@eslint-community/regexpp": { "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", "dev": true, "license": "MIT", "engines": { @@ -2639,8 +2645,6 @@ }, "node_modules/@eslint/config-array": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", - "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2654,8 +2658,6 @@ }, "node_modules/@eslint/config-array/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { @@ -2665,8 +2667,6 @@ }, "node_modules/@eslint/config-array/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -2678,8 +2678,6 @@ }, "node_modules/@eslint/core": { "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", - "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2688,8 +2686,6 @@ }, "node_modules/@eslint/eslintrc": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", - "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2712,8 +2708,6 @@ }, "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { @@ -2723,8 +2717,6 @@ }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", "engines": { @@ -2736,8 +2728,6 @@ }, "node_modules/@eslint/eslintrc/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -2749,8 +2739,6 @@ }, "node_modules/@eslint/js": { "version": "9.14.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz", - "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==", "dev": true, "license": "MIT", "engines": { @@ -2759,8 +2747,6 @@ }, "node_modules/@eslint/object-schema": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", - "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2782,16 +2768,14 @@ }, "node_modules/@floating-ui/core": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", - "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "license": "MIT", "dependencies": { "@floating-ui/utils": "^0.1.3" } }, "node_modules/@floating-ui/dom": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", - "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", + "license": "MIT", "dependencies": { "@floating-ui/core": "^1.4.2", "@floating-ui/utils": "^0.1.3" @@ -2799,8 +2783,6 @@ }, "node_modules/@floating-ui/react-dom": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.1.tgz", - "integrity": "sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==", "license": "MIT", "dependencies": { "@floating-ui/dom": "^1.0.0" @@ -2812,13 +2794,10 @@ }, "node_modules/@floating-ui/utils": { "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", - "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + "license": "MIT" }, "node_modules/@humanfs/core": { "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2827,8 +2806,6 @@ }, "node_modules/@humanfs/node": { "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -2841,8 +2818,6 @@ }, "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2855,9 +2830,8 @@ }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=12.22" }, @@ -2868,8 +2842,6 @@ }, "node_modules/@humanwhocodes/retry": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.0.tgz", - "integrity": "sha512-xnRgu9DxZbkWak/te3fcytNyp8MTbuiZIaueg2rgEvBuN55n04nwLYLU9TX/VVlusc9L2ZNXi99nUFNkHXtr5g==", "dev": true, "license": "Apache-2.0", "engines": { @@ -2880,14 +2852,393 @@ "url": "https://github.com/sponsors/nzakas" } }, - "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==", + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "dev": true, + "license": "ISC", + "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", @@ -2899,9 +3250,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2911,9 +3261,8 @@ }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -2923,15 +3272,13 @@ }, "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 + "dev": true, + "license": "MIT" }, "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, + "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -2946,9 +3293,8 @@ }, "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, + "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -2961,9 +3307,8 @@ }, "node_modules/@isaacs/cliui/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, + "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -2978,8 +3323,6 @@ }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "license": "ISC", "dependencies": { @@ -2995,8 +3338,6 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", "dependencies": { @@ -3005,8 +3346,6 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { @@ -3019,8 +3358,6 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "license": "MIT", "dependencies": { @@ -3033,8 +3370,6 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { @@ -3046,8 +3381,6 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { @@ -3062,8 +3395,6 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { @@ -3075,8 +3406,6 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { @@ -3085,15 +3414,11 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, "license": "BSD-3-Clause" }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "license": "MIT", "engines": { @@ -3102,8 +3427,6 @@ }, "node_modules/@jest/console": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", "dev": true, "license": "MIT", "dependencies": { @@ -3120,8 +3443,6 @@ }, "node_modules/@jest/core": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", "dev": true, "license": "MIT", "dependencies": { @@ -3168,8 +3489,6 @@ }, "node_modules/@jest/environment": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", "dev": true, "license": "MIT", "dependencies": { @@ -3184,8 +3503,6 @@ }, "node_modules/@jest/expect": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3198,9 +3515,8 @@ }, "node_modules/@jest/expect-utils": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", "dev": true, + "license": "MIT", "dependencies": { "jest-get-type": "^29.6.3" }, @@ -3210,8 +3526,6 @@ }, "node_modules/@jest/fake-timers": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3228,8 +3542,6 @@ }, "node_modules/@jest/globals": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3244,8 +3556,6 @@ }, "node_modules/@jest/reporters": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", "dev": true, "license": "MIT", "dependencies": { @@ -3288,9 +3598,8 @@ }, "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, + "license": "MIT", "dependencies": { "@sinclair/typebox": "^0.27.8" }, @@ -3300,8 +3609,6 @@ }, "node_modules/@jest/source-map": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", "dev": true, "license": "MIT", "dependencies": { @@ -3315,8 +3622,6 @@ }, "node_modules/@jest/test-result": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", "dev": true, "license": "MIT", "dependencies": { @@ -3331,8 +3636,6 @@ }, "node_modules/@jest/test-sequencer": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", "dev": true, "license": "MIT", "dependencies": { @@ -3347,8 +3650,6 @@ }, "node_modules/@jest/transform": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", "dev": true, "license": "MIT", "dependencies": { @@ -3374,9 +3675,8 @@ }, "node_modules/@jest/types": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -3391,8 +3691,6 @@ }, "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==", "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -3405,16 +3703,13 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/set-array": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "license": "MIT", "engines": { "node": ">=6.0.0" @@ -3422,13 +3717,10 @@ }, "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==" + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -3437,13 +3729,10 @@ }, "node_modules/@kurkle/color": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@kurkle/color/-/color-0.3.2.tgz", - "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + "license": "MIT" }, "node_modules/@malept/cross-spawn-promise": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", - "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", "dev": true, "funding": [ { @@ -3455,6 +3744,7 @@ "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" } ], + "license": "Apache-2.0", "dependencies": { "cross-spawn": "^7.0.1" }, @@ -3464,9 +3754,8 @@ }, "node_modules/@malept/flatpak-bundler": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", - "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.1.1", "fs-extra": "^9.0.0", @@ -3479,9 +3768,8 @@ }, "node_modules/@malept/flatpak-bundler/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, + "license": "MIT", "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", @@ -3494,9 +3782,8 @@ }, "node_modules/@malept/flatpak-bundler/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, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -3506,17 +3793,14 @@ }, "node_modules/@malept/flatpak-bundler/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, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/@mui/base": { "version": "5.0.0-beta.40", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", - "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", @@ -3547,8 +3831,6 @@ }, "node_modules/@mui/core-downloads-tracker": { "version": "5.16.7", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.7.tgz", - "integrity": "sha512-RtsCt4Geed2/v74sbihWzzRs+HsIQCfclHeORh5Ynu2fS4icIKozcSubwuG7vtzq2uW3fOR1zITSP84TNt2GoQ==", "license": "MIT", "funding": { "type": "opencollective", @@ -3557,8 +3839,6 @@ }, "node_modules/@mui/joy": { "version": "5.0.0-beta.48", - "resolved": "https://registry.npmjs.org/@mui/joy/-/joy-5.0.0-beta.48.tgz", - "integrity": "sha512-OhTvjuGl9I5IvpBr0BQyDehIW/xb2yteW6YglHJMdOb/279nItn76X1NBtPV9ImldNlBjReGwvpOXmBTTGER9w==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", @@ -3598,8 +3878,6 @@ }, "node_modules/@mui/private-theming": { "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.6.tgz", - "integrity": "sha512-rAk+Rh8Clg7Cd7shZhyt2HGTTE5wYKNSJ5sspf28Fqm/PZ69Er9o6KX25g03/FG2dfpg5GCwZh/xOojiTfm3hw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", @@ -3625,8 +3903,6 @@ }, "node_modules/@mui/styled-engine": { "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.6.tgz", - "integrity": "sha512-zaThmS67ZmtHSWToTiHslbI8jwrmITcN93LQaR2lKArbvS7Z3iLkwRoiikNWutx9MBs8Q6okKvbZq1RQYB3v7g==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", @@ -3657,8 +3933,6 @@ }, "node_modules/@mui/system": { "version": "5.16.7", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.7.tgz", - "integrity": "sha512-Jncvs/r/d/itkxh7O7opOunTqbbSSzMTHzZkNLM+FjAOg+cYAZHrPDlYe1ZGKUYORwwb2XexlWnpZp0kZ4AHuA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", @@ -3697,8 +3971,6 @@ }, "node_modules/@mui/types": { "version": "7.2.16", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.16.tgz", - "integrity": "sha512-qI8TV3M7ShITEEc8Ih15A2vLzZGLhD+/UPNwck/hcls2gwg7dyRjNGXcQYHKLB5Q7PuTRfrTkAoPa2VV1s67Ag==", "license": "MIT", "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -3711,8 +3983,6 @@ }, "node_modules/@mui/utils": { "version": "5.16.6", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.6.tgz", - "integrity": "sha512-tWiQqlhxAt3KENNiSRL+DIn9H5xNVK6Jjf70x3PnfQPz1MPBdh7yyIcAyVBT9xiw7hP3SomRhPR7hzBMBCjqEA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", @@ -3741,15 +4011,12 @@ }, "node_modules/@mui/utils/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==", "license": "MIT" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "2.0.5", "run-parallel": "^1.1.9" @@ -3760,18 +4027,16 @@ }, "node_modules/@nodelib/fs.stat": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 8" } }, "node_modules/@nodelib/fs.walk": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.scandir": "2.1.5", "fastq": "^1.6.0" @@ -3782,9 +4047,8 @@ }, "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, + "license": "MIT", "optional": true, "engines": { "node": ">=14" @@ -3792,8 +4056,6 @@ }, "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, "license": "MIT", "engines": { @@ -3805,8 +4067,7 @@ }, "node_modules/@popperjs/core": { "version": "2.11.8", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -3814,8 +4075,6 @@ }, "node_modules/@rollup/plugin-inject": { "version": "5.0.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.5.tgz", - "integrity": "sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg==", "license": "MIT", "dependencies": { "@rollup/pluginutils": "^5.0.1", @@ -3836,8 +4095,6 @@ }, "node_modules/@rollup/pluginutils": { "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", - "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", @@ -3858,8 +4115,6 @@ }, "node_modules/@rollup/pluginutils/node_modules/picomatch": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", - "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "license": "MIT", "engines": { "node": ">=12" @@ -3870,14 +4125,12 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/@sindresorhus/is": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -3887,8 +4140,6 @@ }, "node_modules/@sinonjs/commons": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3897,8 +4148,6 @@ }, "node_modules/@sinonjs/fake-timers": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3907,8 +4156,7 @@ }, "node_modules/@szmarczak/http-timer": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "license": "MIT", "dependencies": { "defer-to-connect": "^2.0.0" }, @@ -3918,18 +4166,16 @@ }, "node_modules/@tootallnate/once": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10" } }, "node_modules/@types/babel__core": { "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.2.tgz", - "integrity": "sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.20.7", "@babel/types": "^7.20.7", @@ -3940,18 +4186,16 @@ }, "node_modules/@types/babel__generator": { "version": "7.6.5", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.5.tgz", - "integrity": "sha512-h9yIuWbJKdOPLJTbmSpPzkF67e659PbQDba7ifWm5BJ8xTv+sDmS7rFmywkWOvXedGTivCdeGSIIX8WLcRTz8w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.0.0" } }, "node_modules/@types/babel__template": { "version": "7.4.2", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.2.tgz", - "integrity": "sha512-/AVzPICMhMOMYoSx9MoKpGDKdBRsIXMNByh1PXSZoa+v6ZoLa8xxtsT/uLQ/NJm0XVAWl/BvId4MlDeXJaeIZQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -3959,22 +4203,19 @@ }, "node_modules/@types/babel__traverse": { "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.2.tgz", - "integrity": "sha512-ojlGK1Hsfce93J0+kn3H5R73elidKUaZonirN33GSmgTUMpzI/MIFfSpF3haANe3G1bEBS9/9/QEqwTzwqFsKw==", "dev": true, + "license": "MIT", "dependencies": { "@babel/types": "^7.20.7" } }, "node_modules/@types/base16": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/base16/-/base16-1.0.5.tgz", - "integrity": "sha512-OzOWrTluG9cwqidEzC/Q6FAmIPcnZfm8BFRlIx0+UIUqnuAmi5OS88O0RpT3Yz6qdmqObvUhasrbNsCofE4W9A==" + "license": "MIT" }, "node_modules/@types/cacheable-request": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "license": "MIT", "dependencies": { "@types/http-cache-semantics": "*", "@types/keyv": "^3.1.4", @@ -3984,32 +4225,26 @@ }, "node_modules/@types/debug": { "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/ms": "*" } }, "node_modules/@types/estree": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "license": "MIT" }, "node_modules/@types/fs-extra": { "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", "dev": true, + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/graceful-fs": { "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4018,37 +4253,31 @@ }, "node_modules/@types/http-cache-semantics": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz", - "integrity": "sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw==" + "license": "MIT" }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-gPQuzaPR5h/djlAv2apEG1HVOyj1IUs7GpfMZixU0/0KXT3pm64ylHuMUI1/Akh+sq/iikxg6Z2j+fcMDXaaTQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-coverage": "*" } }, "node_modules/@types/istanbul-reports": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.2.tgz", - "integrity": "sha512-kv43F9eb3Lhj+lr/Hn6OcLCs/sSM8bt+fIaP11rCYngfV6NVjzWXJ17owQtDQTL9tQ8WSLUrGsSJ6rJz0F1w1A==", "dev": true, + "license": "MIT", "dependencies": { "@types/istanbul-lib-report": "*" } }, "node_modules/@types/jest": { "version": "29.5.14", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", - "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4058,34 +4287,27 @@ }, "node_modules/@types/json-schema": { "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, "license": "MIT" }, "node_modules/@types/keyv": { "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/lodash": { "version": "4.14.199", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", - "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==" + "license": "MIT" }, "node_modules/@types/ms": { "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/node": { "version": "22.9.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", - "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", "license": "MIT", "dependencies": { "undici-types": "~6.19.8" @@ -4093,21 +4315,16 @@ }, "node_modules/@types/node/node_modules/undici-types": { "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "license": "MIT" }, "node_modules/@types/parse-json": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", - "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==", "license": "MIT" }, "node_modules/@types/plist": { "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.5.tgz", - "integrity": "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "@types/node": "*", @@ -4116,14 +4333,11 @@ }, "node_modules/@types/prop-types": { "version": "15.7.12", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", - "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==", "license": "MIT" }, "node_modules/@types/react": { "version": "18.2.28", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.28.tgz", - "integrity": "sha512-ad4aa/RaaJS3hyGz0BGegdnSRXQBkd1CCYDCdNjBPg90UUpLgo+WlJqb9fMYUxtehmzF3PJaTWqRZjko6BRzBg==", + "license": "MIT", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -4132,58 +4346,50 @@ }, "node_modules/@types/react-dom": { "version": "18.2.13", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.13.tgz", - "integrity": "sha512-eJIUv7rPP+EC45uNYp/ThhSpE16k22VJUknt5OLoH9tbXoi8bMhwLf5xRuWMywamNbWzhrSmU7IBJfPup1+3fw==", "dev": true, + "license": "MIT", "dependencies": { "@types/react": "*" } }, "node_modules/@types/responselike": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.1.tgz", - "integrity": "sha512-TiGnitEDxj2X0j+98Eqk5lv/Cij8oHd32bU4D/Yw6AOq7vvTk0gSD2GPj0G/HkvhMoVsdlhYF4yqqlyPBTM6Sg==", + "license": "MIT", "dependencies": { "@types/node": "*" } }, "node_modules/@types/scheduler": { "version": "0.16.4", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.4.tgz", - "integrity": "sha512-2L9ifAGl7wmXwP4v3pN4p2FLhD0O1qsJpvKmNin5VA8+UvNVb447UDaAEV6UdrkA+m/Xs58U1RFps44x6TFsVQ==" + "license": "MIT" }, "node_modules/@types/stack-utils": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/verror": { "version": "1.10.10", - "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.10.tgz", - "integrity": "sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/@types/yargs": { "version": "17.0.28", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.28.tgz", - "integrity": "sha512-N3e3fkS86hNhtk6BEnc0rj3zcehaxx8QWhCROJkqpl5Zaoi7nAic3jH8q94jVD3zu5LGk+PUB6KAiDmimYOEQw==", "dev": true, + "license": "MIT", "dependencies": { "@types/yargs-parser": "*" } }, "node_modules/@types/yargs-parser": { "version": "21.0.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-axdPBuLuEJt0c4yI5OZssC19K2Mq1uKdrfZBzuxLvaztgqUtFYZUNw7lETExPYJR9jdEoIg4mb7RQKRQzOkeGQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@types/yauzl": { "version": "2.10.1", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.1.tgz", - "integrity": "sha512-CHzgNU3qYBnp/O4S3yv2tXPlvMTq0YWSTVg2/JYLqWZGHwwgJGAwd00poay/11asPq8wLFwHzubyInqHIFmmiw==", + "license": "MIT", "optional": true, "dependencies": { "@types/node": "*" @@ -4191,8 +4397,6 @@ }, "node_modules/@typescript-eslint/scope-manager": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", "dev": true, "license": "MIT", "dependencies": { @@ -4209,8 +4413,6 @@ }, "node_modules/@typescript-eslint/types": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", "dev": true, "license": "MIT", "engines": { @@ -4223,8 +4425,6 @@ }, "node_modules/@typescript-eslint/typescript-estree": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4252,8 +4452,6 @@ }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -4268,8 +4466,6 @@ }, "node_modules/@typescript-eslint/visitor-keys": { "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", "dev": true, "license": "MIT", "dependencies": { @@ -4286,9 +4482,8 @@ }, "node_modules/@vitejs/plugin-react": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.1.0.tgz", - "integrity": "sha512-rM0SqazU9iqPUraQ2JlIvReeaxOoRj6n+PzB1C0cBzIbd8qP336nC39/R9yPi3wVcah7E7j/kdU1uCUqMEU4OQ==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.22.20", "@babel/plugin-transform-react-jsx-self": "^7.22.5", @@ -4305,23 +4500,19 @@ }, "node_modules/@xmldom/xmldom": { "version": "0.8.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", - "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } }, "node_modules/7zip-bin": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz", - "integrity": "sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/acorn": { "version": "8.14.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", - "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, "license": "MIT", "bin": { @@ -4333,8 +4524,6 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -4343,9 +4532,8 @@ }, "node_modules/agent-base": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "4" }, @@ -4355,9 +4543,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, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4371,17 +4558,14 @@ }, "node_modules/ajv-keywords": { "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } }, "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, "license": "MIT", "dependencies": { @@ -4396,8 +4580,6 @@ }, "node_modules/ansi-escapes/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, "license": "(MIT OR CC0-1.0)", "engines": { @@ -4409,17 +4591,14 @@ }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { @@ -4434,8 +4613,6 @@ }, "node_modules/ansi-styles/node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4447,15 +4624,11 @@ }, "node_modules/ansi-styles/node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "license": "ISC", "dependencies": { @@ -4468,15 +4641,13 @@ }, "node_modules/app-builder-bin": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz", - "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/app-builder-lib": { "version": "24.13.3", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.13.3.tgz", - "integrity": "sha512-FAzX6IBit2POXYGnTCT8YHFO/lr5AapAII6zzhQO3Rw4cEDOgK+t1xhLc5tNcKlicTHlo9zxIwnYCX9X2DLkig==", "dev": true, + "license": "MIT", "dependencies": { "@develar/schema-utils": "~2.6.5", "@electron/notarize": "2.2.1", @@ -4516,9 +4687,8 @@ }, "node_modules/app-builder-lib/node_modules/builder-util-runtime": { "version": "9.2.4", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz", - "integrity": "sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4", "sax": "^1.2.4" @@ -4529,9 +4699,8 @@ }, "node_modules/app-builder-lib/node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -4543,9 +4712,8 @@ }, "node_modules/app-builder-lib/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, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -4555,18 +4723,16 @@ }, "node_modules/app-builder-lib/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, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/archiver": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.2.tgz", - "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "archiver-utils": "^2.1.0", @@ -4583,9 +4749,8 @@ }, "node_modules/archiver-utils": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "glob": "^7.1.4", @@ -4605,16 +4770,14 @@ }, "node_modules/archiver-utils/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/archiver-utils/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "core-util-is": "~1.0.0", @@ -4628,16 +4791,14 @@ }, "node_modules/archiver-utils/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/archiver-utils/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "safe-buffer": "~5.1.0" @@ -4645,13 +4806,10 @@ }, "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==" + "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "license": "MIT", "dependencies": { @@ -4667,8 +4825,6 @@ }, "node_modules/array-includes": { "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4688,8 +4844,6 @@ }, "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, "license": "MIT", "engines": { @@ -4698,8 +4852,6 @@ }, "node_modules/array.prototype.findlast": { "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", - "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", "dev": true, "license": "MIT", "dependencies": { @@ -4719,9 +4871,8 @@ }, "node_modules/array.prototype.flat": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -4737,9 +4888,8 @@ }, "node_modules/array.prototype.flatmap": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -4755,8 +4905,6 @@ }, "node_modules/array.prototype.tosorted": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", - "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", "dev": true, "license": "MIT", "dependencies": { @@ -4772,8 +4920,6 @@ }, "node_modules/arraybuffer.prototype.slice": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", "dev": true, "license": "MIT", "dependencies": { @@ -4795,8 +4941,6 @@ }, "node_modules/asn1.js": { "version": "4.10.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", - "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "license": "MIT", "dependencies": { "bn.js": "^4.0.0", @@ -4806,14 +4950,10 @@ }, "node_modules/asn1.js/node_modules/bn.js": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "license": "MIT" }, "node_modules/assert": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", - "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -4825,9 +4965,8 @@ }, "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, + "license": "MIT", "optional": true, "engines": { "node": ">=0.8" @@ -4835,9 +4974,8 @@ }, "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, + "license": "MIT", "optional": true, "engines": { "node": ">=8" @@ -4845,38 +4983,32 @@ }, "node_modules/async": { "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/async-exit-hook": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", - "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/asynckit": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "dev": true, + "license": "MIT" }, "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, + "license": "ISC", "engines": { "node": ">= 4.0.0" } }, "node_modules/available-typed-arrays": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" @@ -4890,8 +5022,6 @@ }, "node_modules/babel-jest": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, "license": "MIT", "dependencies": { @@ -4912,8 +5042,6 @@ }, "node_modules/babel-plugin-istanbul": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -4929,8 +5057,6 @@ }, "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -4946,8 +5072,6 @@ }, "node_modules/babel-plugin-istanbul/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -4956,8 +5080,6 @@ }, "node_modules/babel-plugin-jest-hoist": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "license": "MIT", "dependencies": { @@ -4972,8 +5094,6 @@ }, "node_modules/babel-plugin-macros": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", - "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5", @@ -4987,8 +5107,6 @@ }, "node_modules/babel-plugin-macros/node_modules/resolve": { "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", @@ -5004,8 +5122,6 @@ }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.4.12", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz", - "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==", "dev": true, "license": "MIT", "dependencies": { @@ -5019,8 +5135,6 @@ }, "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", "bin": { @@ -5029,8 +5143,6 @@ }, "node_modules/babel-plugin-polyfill-corejs3": { "version": "0.10.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", - "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "dev": true, "license": "MIT", "dependencies": { @@ -5043,8 +5155,6 @@ }, "node_modules/babel-plugin-polyfill-regenerator": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz", - "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5056,8 +5166,6 @@ }, "node_modules/babel-preset-current-node-syntax": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", "dev": true, "license": "MIT", "dependencies": { @@ -5083,8 +5191,6 @@ }, "node_modules/babel-preset-jest": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "license": "MIT", "dependencies": { @@ -5100,19 +5206,15 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/base16": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base16/-/base16-1.0.0.tgz", - "integrity": "sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==" + "license": "MIT" }, "node_modules/base64-js": { "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "funding": [ { "type": "github", @@ -5126,21 +5228,20 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/big-integer": { "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "license": "Unlicense", "engines": { "node": ">=0.6" } }, "node_modules/bl": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "buffer": "^5.5.0", @@ -5150,8 +5251,6 @@ }, "node_modules/bl/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": [ { @@ -5167,6 +5266,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "peer": true, "dependencies": { "base64-js": "^1.3.1", @@ -5175,45 +5275,38 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/bluebird-lst": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", - "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", "dev": true, + "license": "MIT", "dependencies": { "bluebird": "^3.5.5" } }, "node_modules/bn.js": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "license": "MIT" }, "node_modules/boolean": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "license": "MIT", "optional": 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, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/braces": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -5223,14 +5316,10 @@ }, "node_modules/brorand": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "license": "MIT" }, "node_modules/browser-resolve": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", - "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", "license": "MIT", "dependencies": { "resolve": "^1.17.0" @@ -5238,8 +5327,6 @@ }, "node_modules/browser-resolve/node_modules/resolve": { "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", @@ -5255,8 +5342,6 @@ }, "node_modules/browserify-aes": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "license": "MIT", "dependencies": { "buffer-xor": "^1.0.3", @@ -5269,8 +5354,6 @@ }, "node_modules/browserify-cipher": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "license": "MIT", "dependencies": { "browserify-aes": "^1.0.4", @@ -5280,8 +5363,6 @@ }, "node_modules/browserify-des": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "license": "MIT", "dependencies": { "cipher-base": "^1.0.1", @@ -5292,8 +5373,6 @@ }, "node_modules/browserify-rsa": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", - "integrity": "sha512-YBjSAiTqM04ZVei6sXighu679a3SqWORA3qZTEqZImnlkDIFtKc6pNutpjyZ8RJTjQtuYfeetkxM11GwoYXMIQ==", "license": "MIT", "dependencies": { "bn.js": "^5.2.1", @@ -5306,8 +5385,6 @@ }, "node_modules/browserify-sign": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.3.tgz", - "integrity": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==", "license": "ISC", "dependencies": { "bn.js": "^5.2.1", @@ -5327,14 +5404,10 @@ }, "node_modules/browserify-sign/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "license": "MIT" }, "node_modules/browserify-sign/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", @@ -5348,14 +5421,10 @@ }, "node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "license": "MIT" }, "node_modules/browserify-sign/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" @@ -5363,14 +5432,10 @@ }, "node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "license": "MIT" }, "node_modules/browserify-zlib": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "license": "MIT", "dependencies": { "pako": "~1.0.5" @@ -5378,8 +5443,6 @@ }, "node_modules/browserslist": { "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "dev": true, "funding": [ { @@ -5411,8 +5474,6 @@ }, "node_modules/bs-logger": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, "license": "MIT", "dependencies": { @@ -5424,8 +5485,6 @@ }, "node_modules/bser": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -5434,8 +5493,6 @@ }, "node_modules/buffer": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "funding": [ { "type": "github", @@ -5450,6 +5507,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -5457,17 +5515,15 @@ }, "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==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/buffer-equal": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", - "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4" }, @@ -5477,21 +5533,17 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/buffer-xor": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", "license": "MIT" }, "node_modules/builder-util": { "version": "24.13.1", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.13.1.tgz", - "integrity": "sha512-NhbCSIntruNDTOVI9fdXz0dihaqX2YuE1D6zZMrwiErzH4ELZHE6mdiB40wEgZNprDia+FghRFgKoAqMZRRjSA==", "dev": true, + "license": "MIT", "dependencies": { "@types/debug": "^4.1.6", "7zip-bin": "~5.2.0", @@ -5513,8 +5565,6 @@ }, "node_modules/builder-util-runtime": { "version": "9.2.5", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.5.tgz", - "integrity": "sha512-HjIDfhvqx/8B3TDN4GbABQcgpewTU4LMRTQPkVpKYV3lsuxEJoIfvg09GyWTNmfVNSUAYf+fbTN//JX4TH20pg==", "license": "MIT", "dependencies": { "debug": "^4.3.4", @@ -5526,9 +5576,8 @@ }, "node_modules/builder-util/node_modules/builder-util-runtime": { "version": "9.2.4", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz", - "integrity": "sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4", "sax": "^1.2.4" @@ -5539,9 +5588,8 @@ }, "node_modules/builder-util/node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -5553,9 +5601,8 @@ }, "node_modules/builder-util/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, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -5565,40 +5612,34 @@ }, "node_modules/builder-util/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, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/builtin-status-codes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "license": "MIT" }, "node_modules/cac": { "version": "6.7.14", - "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", - "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cacheable-lookup": { "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "license": "MIT", "engines": { "node": ">=10.6.0" } }, "node_modules/cacheable-request": { "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "license": "MIT", "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -5614,8 +5655,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==", "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -5633,16 +5672,13 @@ }, "node_modules/callsites": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "license": "MIT", "engines": { @@ -5651,8 +5687,6 @@ }, "node_modules/caniuse-lite": { "version": "1.0.30001680", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001680.tgz", - "integrity": "sha512-rPQy70G6AGUMnbwS1z6Xg+RkHYPAi18ihs47GH0jcxIG7wArmPgY3XbS2sRdBbxJljp3thdT8BIqv9ccCypiPA==", "dev": true, "funding": [ { @@ -5672,8 +5706,6 @@ }, "node_modules/chalk": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { @@ -5689,8 +5721,6 @@ }, "node_modules/char-regex": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, "license": "MIT", "engines": { @@ -5699,8 +5729,7 @@ }, "node_modules/chart.js": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.4.0.tgz", - "integrity": "sha512-vQEj6d+z0dcsKLlQvbKIMYFHd3t8W/7L2vfJIbYcfyPcRx92CsHqECpueN8qVGNlKyDcr5wBrYAYKnfu/9Q1hQ==", + "license": "MIT", "dependencies": { "@kurkle/color": "^0.3.0" }, @@ -5710,23 +5739,19 @@ }, "node_modules/chownr": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/chromium-pickle-js": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", - "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", - "dev": true + "dev": true, + "license": "MIT" }, "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": [ { @@ -5734,14 +5759,13 @@ "url": "https://github.com/sponsors/sibiraj-s" } ], + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/cipher-base": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "license": "MIT", "dependencies": { "inherits": "^2.0.1", @@ -5750,16 +5774,13 @@ }, "node_modules/cjs-module-lexer": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz", - "integrity": "sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==", "dev": true, "license": "MIT" }, "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, + "license": "MIT", "optional": true, "dependencies": { "slice-ansi": "^3.0.0", @@ -5774,9 +5795,8 @@ }, "node_modules/cliui": { "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, + "license": "ISC", "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -5788,8 +5808,7 @@ }, "node_modules/clone-response": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "license": "MIT", "dependencies": { "mimic-response": "^1.0.0" }, @@ -5799,8 +5818,6 @@ }, "node_modules/clsx": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", - "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", "license": "MIT", "engines": { "node": ">=6" @@ -5808,8 +5825,6 @@ }, "node_modules/co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "license": "MIT", "engines": { @@ -5819,15 +5834,12 @@ }, "node_modules/collect-v8-coverage": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", "dev": true, "license": "MIT" }, "node_modules/color": { "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "license": "MIT", "dependencies": { "color-convert": "^1.9.3", "color-string": "^1.6.0" @@ -5835,21 +5847,18 @@ }, "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==", + "license": "MIT", "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==" + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" @@ -5857,9 +5866,8 @@ }, "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==", "dev": true, + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -5869,27 +5877,24 @@ }, "node_modules/commander": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/compare-version": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", - "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/compress-commons": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.2.tgz", - "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "buffer-crc32": "^0.2.13", @@ -5903,15 +5908,13 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/config-file-ts": { "version": "0.2.6", - "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.6.tgz", - "integrity": "sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==", "dev": true, + "license": "MIT", "dependencies": { "glob": "^10.3.10", "typescript": "^5.3.3" @@ -5919,9 +5922,8 @@ }, "node_modules/config-file-ts/node_modules/glob": { "version": "10.4.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz", - "integrity": "sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==", "dev": true, + "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -5942,9 +5944,8 @@ }, "node_modules/config-file-ts/node_modules/minimatch": { "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -5957,34 +5958,26 @@ }, "node_modules/config-file-ts/node_modules/minipass": { "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, + "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + "version": "1.2.0" }, "node_modules/constants-browserify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "license": "MIT" }, "node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/core-js-compat": { "version": "3.39.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", - "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", "dev": true, "license": "MIT", "dependencies": { @@ -5997,13 +5990,10 @@ }, "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==" + "license": "MIT" }, "node_modules/cosmiconfig": { "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", "license": "MIT", "dependencies": { "@types/parse-json": "^4.0.0", @@ -6018,9 +6008,8 @@ }, "node_modules/crc": { "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "buffer": "^5.1.0" @@ -6028,9 +6017,8 @@ }, "node_modules/crc-32": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", "dev": true, + "license": "Apache-2.0", "peer": true, "bin": { "crc32": "bin/crc32.njs" @@ -6041,8 +6029,6 @@ }, "node_modules/crc/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": [ { @@ -6058,6 +6044,7 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "optional": true, "dependencies": { "base64-js": "^1.3.1", @@ -6066,9 +6053,8 @@ }, "node_modules/crc32-stream": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.3.tgz", - "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "crc-32": "^1.2.0", @@ -6080,8 +6066,6 @@ }, "node_modules/create-ecdh": { "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "license": "MIT", "dependencies": { "bn.js": "^4.1.0", @@ -6090,14 +6074,10 @@ }, "node_modules/create-ecdh/node_modules/bn.js": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "license": "MIT" }, "node_modules/create-hash": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "license": "MIT", "dependencies": { "cipher-base": "^1.0.1", @@ -6109,8 +6089,6 @@ }, "node_modules/create-hmac": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "license": "MIT", "dependencies": { "cipher-base": "^1.0.3", @@ -6123,8 +6101,6 @@ }, "node_modules/create-jest": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, "license": "MIT", "dependencies": { @@ -6145,8 +6121,6 @@ }, "node_modules/create-require": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "license": "MIT" }, "node_modules/cross-spawn": { @@ -6166,8 +6140,6 @@ }, "node_modules/crypto-browserify": { "version": "3.12.1", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", - "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", "license": "MIT", "dependencies": { "browserify-cipher": "^1.0.1", @@ -6192,14 +6164,10 @@ }, "node_modules/csstype": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", "license": "MIT" }, "node_modules/data-view-buffer": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", "dev": true, "license": "MIT", "dependencies": { @@ -6216,8 +6184,6 @@ }, "node_modules/data-view-byte-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "dev": true, "license": "MIT", "dependencies": { @@ -6234,8 +6200,6 @@ }, "node_modules/data-view-byte-offset": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", "dev": true, "license": "MIT", "dependencies": { @@ -6252,14 +6216,11 @@ }, "node_modules/dayjs": { "version": "1.11.12", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.12.tgz", - "integrity": "sha512-Rt2g+nTbLlDWZTwwrIXjy9MeiZmSDI375FvZs72ngxx8PDC6YXOeR3q5LAuPzjZQxhiWdRKac7RKV+YyQYfYIg==", "license": "MIT" }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "license": "MIT", "dependencies": { "ms": "2.1.2" }, @@ -6274,8 +6235,7 @@ }, "node_modules/decompress-response": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -6288,8 +6248,7 @@ }, "node_modules/decompress-response/node_modules/mimic-response": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -6299,8 +6258,6 @@ }, "node_modules/dedent": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -6314,14 +6271,11 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/deepmerge": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "license": "MIT", "engines": { @@ -6330,16 +6284,13 @@ }, "node_modules/defer-to-connect": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "license": "MIT", "engines": { "node": ">=10" } }, "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==", "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", @@ -6355,8 +6306,7 @@ }, "node_modules/define-properties": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -6371,27 +6321,32 @@ }, "node_modules/delayed-stream": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/des.js": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", - "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", "license": "MIT", "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, "node_modules/detect-newline": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, "license": "MIT", "engines": { @@ -6400,23 +6355,19 @@ }, "node_modules/detect-node": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "license": "MIT", "optional": true }, "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, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/diffie-hellman": { "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "license": "MIT", "dependencies": { "bn.js": "^4.1.0", @@ -6426,15 +6377,12 @@ }, "node_modules/diffie-hellman/node_modules/bn.js": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "license": "MIT" }, "node_modules/dir-compare": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz", - "integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==", "dev": true, + "license": "MIT", "dependencies": { "buffer-equal": "^1.0.0", "minimatch": "^3.0.4" @@ -6442,9 +6390,8 @@ }, "node_modules/dir-compare/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6452,9 +6399,8 @@ }, "node_modules/dir-compare/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -6464,8 +6410,6 @@ }, "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, "license": "MIT", "dependencies": { @@ -6477,9 +6421,8 @@ }, "node_modules/dmg-builder": { "version": "24.13.3", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.13.3.tgz", - "integrity": "sha512-rcJUkMfnJpfCboZoOOPf4L29TRtEieHNOeAbYPWPxlaBw/Z1RKrRA86dOI9rwaI4tQSc/RD82zTNHprfUHXsoQ==", "dev": true, + "license": "MIT", "dependencies": { "app-builder-lib": "24.13.3", "builder-util": "24.13.1", @@ -6494,9 +6437,8 @@ }, "node_modules/dmg-builder/node_modules/builder-util-runtime": { "version": "9.2.4", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz", - "integrity": "sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4", "sax": "^1.2.4" @@ -6507,9 +6449,8 @@ }, "node_modules/dmg-builder/node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -6521,9 +6462,8 @@ }, "node_modules/dmg-builder/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, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -6533,18 +6473,16 @@ }, "node_modules/dmg-builder/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, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/dmg-license": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", - "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -6568,8 +6506,6 @@ }, "node_modules/domain-browser": { "version": "4.23.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.23.0.tgz", - "integrity": "sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA==", "license": "Artistic-2.0", "engines": { "node": ">=10" @@ -6580,30 +6516,26 @@ }, "node_modules/dotenv": { "version": "9.0.2", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", - "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=10" } }, "node_modules/dotenv-expand": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", - "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", - "dev": true + "dev": true, + "license": "BSD-2-Clause" }, "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 + "dev": true, + "license": "MIT" }, "node_modules/ejs": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, + "license": "Apache-2.0", "dependencies": { "jake": "^10.8.5" }, @@ -6616,8 +6548,6 @@ }, "node_modules/electron": { "version": "31.1.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-31.1.0.tgz", - "integrity": "sha512-TBOwqLxSxnx6+pH6GMri7R3JPH2AkuGJHfWZS0p1HsmN+Qr1T9b0IRJnnehSd/3NZAmAre4ft9Ljec7zjyKFJA==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -6634,9 +6564,8 @@ }, "node_modules/electron-builder": { "version": "24.13.3", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.13.3.tgz", - "integrity": "sha512-yZSgVHft5dNVlo31qmJAe4BVKQfFdwpRw7sFp1iQglDRCDD6r22zfRJuZlhtB5gp9FHUxCMEoWGq10SkCnMAIg==", "dev": true, + "license": "MIT", "dependencies": { "app-builder-lib": "24.13.3", "builder-util": "24.13.1", @@ -6660,9 +6589,8 @@ }, "node_modules/electron-builder-squirrel-windows": { "version": "24.13.3", - "resolved": "https://registry.npmjs.org/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-24.13.3.tgz", - "integrity": "sha512-oHkV0iogWfyK+ah9ZIvMDpei1m9ZRpdXcvde1wTpra2U8AFDNNpqJdnin5z+PM1GbQ5BoaKCWas2HSjtR0HwMg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "app-builder-lib": "24.13.3", @@ -6673,9 +6601,8 @@ }, "node_modules/electron-builder-squirrel-windows/node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -6688,9 +6615,8 @@ }, "node_modules/electron-builder-squirrel-windows/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, + "license": "MIT", "peer": true, "dependencies": { "universalify": "^2.0.0" @@ -6701,9 +6627,8 @@ }, "node_modules/electron-builder-squirrel-windows/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, + "license": "MIT", "peer": true, "engines": { "node": ">= 10.0.0" @@ -6711,9 +6636,8 @@ }, "node_modules/electron-builder/node_modules/builder-util-runtime": { "version": "9.2.4", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz", - "integrity": "sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4", "sax": "^1.2.4" @@ -6724,9 +6648,8 @@ }, "node_modules/electron-builder/node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -6738,9 +6661,8 @@ }, "node_modules/electron-builder/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, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -6750,18 +6672,16 @@ }, "node_modules/electron-builder/node_modules/universalify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/electron-publish": { "version": "24.13.1", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.13.1.tgz", - "integrity": "sha512-2ZgdEqJ8e9D17Hwp5LEq5mLQPjqU3lv/IALvgp+4W8VeNhryfGhYEQC/PgDPMrnWUp+l60Ou5SJLsu+k4mhQ8A==", "dev": true, + "license": "MIT", "dependencies": { "@types/fs-extra": "^9.0.11", "builder-util": "24.13.1", @@ -6774,9 +6694,8 @@ }, "node_modules/electron-publish/node_modules/builder-util-runtime": { "version": "9.2.4", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.4.tgz", - "integrity": "sha512-upp+biKpN/XZMLim7aguUyW8s0FUpDvOtK6sbanMFDAMBzpHDqdhgVYm6zc9HJ6nWo7u2Lxk60i2M6Jd3aiNrA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^4.3.4", "sax": "^1.2.4" @@ -6787,9 +6706,8 @@ }, "node_modules/electron-publish/node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -6801,9 +6719,8 @@ }, "node_modules/electron-publish/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, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -6813,24 +6730,19 @@ }, "node_modules/electron-publish/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, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/electron-to-chromium": { "version": "1.5.56", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.56.tgz", - "integrity": "sha512-7lXb9dAvimCFdvUMTyucD4mnIndt/xhRKFAlky0CyFogdnNmdPQNoHI23msF/2V4mpTxMzgMdjK4+YRlFlRQZw==", "dev": true, "license": "ISC" }, "node_modules/electron-updater": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.3.0.tgz", - "integrity": "sha512-3Xlezhk+dKaSQrOnkQNqCGiuGSSUPO9BV9TQZ4Iig6AyTJ4FzJONE5gFFc382sY53Sh9dwJfzKsA3DxRHt2btw==", "license": "MIT", "dependencies": { "builder-util-runtime": "9.2.5", @@ -6845,8 +6757,7 @@ }, "node_modules/electron-updater/node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -6858,8 +6769,7 @@ }, "node_modules/electron-updater/node_modules/jsonfile": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -6869,17 +6779,15 @@ }, "node_modules/electron-updater/node_modules/universalify": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/electron-vite": { "version": "1.0.28", - "resolved": "https://registry.npmjs.org/electron-vite/-/electron-vite-1.0.28.tgz", - "integrity": "sha512-cp7nBi6do/jn5SHdL2V71WjxqZ+NXitVqn5bW+TsTEYgAfSUuYYp6INJN854kcgoOj4UrjMqA9cGRTSl79xx0Q==", "dev": true, + "license": "MIT", "dependencies": { "@babel/core": "^7.22.8", "@babel/plugin-transform-arrow-functions": "^7.22.5", @@ -6906,8 +6814,6 @@ }, "node_modules/electron/node_modules/@types/node": { "version": "20.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.10.tgz", - "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", "license": "MIT", "dependencies": { "undici-types": "~5.26.4" @@ -6915,8 +6821,6 @@ }, "node_modules/elliptic": { "version": "6.6.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.0.tgz", - "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", "license": "MIT", "dependencies": { "bn.js": "^4.11.9", @@ -6930,14 +6834,10 @@ }, "node_modules/elliptic/node_modules/bn.js": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "license": "MIT" }, "node_modules/emittery": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "license": "MIT", "engines": { @@ -6949,36 +6849,30 @@ }, "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 + "dev": true, + "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "once": "^1.4.0" } }, "node_modules/env-paths": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/err-code": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/error-ex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "license": "MIT", "dependencies": { "is-arrayish": "^0.2.1" @@ -6986,8 +6880,6 @@ }, "node_modules/es-abstract": { "version": "1.23.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", - "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, "license": "MIT", "dependencies": { @@ -7047,8 +6939,6 @@ }, "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==", "license": "MIT", "dependencies": { "get-intrinsic": "^1.2.4" @@ -7059,8 +6949,6 @@ }, "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==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -7068,8 +6956,6 @@ }, "node_modules/es-iterator-helpers": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", - "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", "dev": true, "license": "MIT", "dependencies": { @@ -7095,8 +6981,6 @@ }, "node_modules/es-object-atoms": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", - "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, "license": "MIT", "dependencies": { @@ -7108,8 +6992,6 @@ }, "node_modules/es-set-tostringtag": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7123,8 +7005,6 @@ }, "node_modules/es-shim-unscopables": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dev": true, "license": "MIT", "dependencies": { @@ -7133,9 +7013,8 @@ }, "node_modules/es-to-primitive": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, + "license": "MIT", "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -7150,15 +7029,13 @@ }, "node_modules/es6-error": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "license": "MIT", "optional": true }, "node_modules/esbuild": { "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -7190,10 +7067,23 @@ "@esbuild/win32-x64": "0.18.20" } }, + "node_modules/esbuild/node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/escalade": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "engines": { @@ -7202,8 +7092,6 @@ }, "node_modules/eslint": { "version": "9.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz", - "integrity": "sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==", "dev": true, "license": "MIT", "dependencies": { @@ -7263,8 +7151,6 @@ }, "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, "license": "MIT", "bin": { @@ -7276,8 +7162,6 @@ }, "node_modules/eslint-plugin-prettier": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", - "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", "dev": true, "license": "MIT", "dependencies": { @@ -7307,8 +7191,6 @@ }, "node_modules/eslint-plugin-react": { "version": "7.37.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", - "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", "dev": true, "license": "MIT", "dependencies": { @@ -7340,8 +7222,6 @@ }, "node_modules/eslint-plugin-react-hooks": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz", - "integrity": "sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==", "dev": true, "license": "MIT", "engines": { @@ -7353,8 +7233,6 @@ }, "node_modules/eslint-plugin-react-refresh": { "version": "0.4.14", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.14.tgz", - "integrity": "sha512-aXvzCTK7ZBv1e7fahFuR3Z/fyQQSIQ711yPgYRj+Oj64tyTgO4iQIDmYXDBqvSWQ/FA4OSCsXOStlF+noU0/NA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -7363,9 +7241,8 @@ }, "node_modules/eslint-plugin-react/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7373,9 +7250,8 @@ }, "node_modules/eslint-plugin-react/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "esutils": "^2.0.2" }, @@ -7385,9 +7261,8 @@ }, "node_modules/eslint-plugin-react/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -7397,17 +7272,14 @@ }, "node_modules/eslint-plugin-react/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/eslint-scope": { "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -7423,9 +7295,8 @@ }, "node_modules/eslint-visitor-keys": { "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, + "license": "Apache-2.0", "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -7435,9 +7306,8 @@ }, "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -7445,9 +7315,8 @@ }, "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, + "license": "MIT", "engines": { "node": ">=10" }, @@ -7457,8 +7326,6 @@ }, "node_modules/eslint/node_modules/eslint-visitor-keys": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -7470,9 +7337,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, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -7482,8 +7348,6 @@ }, "node_modules/espree": { "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -7500,8 +7364,6 @@ }, "node_modules/espree/node_modules/eslint-visitor-keys": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -7513,8 +7375,6 @@ }, "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "license": "BSD-2-Clause", "bin": { @@ -7527,9 +7387,8 @@ }, "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, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -7539,8 +7398,6 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -7552,32 +7409,26 @@ }, "node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/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==", "license": "MIT" }, "node_modules/esutils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", "license": "MIT", "engines": { "node": ">=0.8.x" @@ -7585,8 +7436,6 @@ }, "node_modules/evp_bytestokey": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "license": "MIT", "dependencies": { "md5.js": "^1.3.4", @@ -7595,8 +7444,6 @@ }, "node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "license": "MIT", "dependencies": { @@ -7619,8 +7466,6 @@ }, "node_modules/execa/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, "license": "MIT", "engines": { @@ -7632,8 +7477,6 @@ }, "node_modules/exit": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -7641,9 +7484,8 @@ }, "node_modules/expect": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, + "license": "MIT", "dependencies": { "@jest/expect-utils": "^29.7.0", "jest-get-type": "^29.6.3", @@ -7657,8 +7499,7 @@ }, "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==", + "license": "BSD-2-Clause", "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", @@ -7676,30 +7517,25 @@ }, "node_modules/extsprintf": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", - "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", "dev": true, "engines": [ "node >=0.6.0" ], + "license": "MIT", "optional": true }, "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 + "dev": true, + "license": "MIT" }, "node_modules/fast-diff": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "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, "license": "MIT", "dependencies": { @@ -7715,8 +7551,6 @@ }, "node_modules/fast-glob/node_modules/glob-parent": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", "dependencies": { @@ -7728,29 +7562,24 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/fast-levenshtein": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fastq": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, + "license": "ISC", "dependencies": { "reusify": "^1.0.4" } }, "node_modules/fb-watchman": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -7759,16 +7588,13 @@ }, "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==", + "license": "MIT", "dependencies": { "pend": "~1.2.0" } }, "node_modules/file-entry-cache": { "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { @@ -7780,8 +7606,7 @@ }, "node_modules/file-selector": { "version": "0.2.4", - "resolved": "https://registry.npmjs.org/file-selector/-/file-selector-0.2.4.tgz", - "integrity": "sha512-ZDsQNbrv6qRi1YTDOEWzf5J2KjZ9KMI1Q2SGeTkCJmNNW25Jg4TW4UMcmoqcg4WrAyKRcpBXdbWRxkfrOzVRbA==", + "license": "MIT", "dependencies": { "tslib": "^2.0.3" }, @@ -7791,18 +7616,16 @@ }, "node_modules/filelist": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, + "license": "Apache-2.0", "dependencies": { "minimatch": "^5.0.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, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -7812,14 +7635,11 @@ }, "node_modules/find-root": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -7833,8 +7653,6 @@ }, "node_modules/flat-cache": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { @@ -7847,24 +7665,20 @@ }, "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, "license": "ISC" }, "node_modules/for-each": { "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "license": "MIT", "dependencies": { "is-callable": "^1.1.3" } }, "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, + "license": "ISC", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -7878,9 +7692,8 @@ }, "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, + "license": "ISC", "engines": { "node": ">=14" }, @@ -7890,9 +7703,8 @@ }, "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==", "dev": true, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -7904,21 +7716,17 @@ }, "node_modules/fp-ts": { "version": "2.16.9", - "resolved": "https://registry.npmjs.org/fp-ts/-/fp-ts-2.16.9.tgz", - "integrity": "sha512-+I2+FnVB+tVaxcYyQkHUq7ZdKScaBlX53A41mxQtpIccsfyv8PzdzP7fzp2AY832T4aoK6UZ5WRX/ebGd8uZuQ==", "license": "MIT" }, "node_modules/fs-constants": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/fs-extra": { "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -7930,9 +7738,8 @@ }, "node_modules/fs-minipass": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, + "license": "ISC", "dependencies": { "minipass": "^3.0.0" }, @@ -7942,9 +7749,8 @@ }, "node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -7954,21 +7760,17 @@ }, "node_modules/fs-minipass/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "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 + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -7979,17 +7781,15 @@ }, "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==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/function.prototype.name": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -8005,35 +7805,30 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, + "license": "ISC", "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/get-intrinsic": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", @@ -8051,8 +7846,6 @@ }, "node_modules/get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "license": "MIT", "engines": { @@ -8061,8 +7854,7 @@ }, "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==", + "license": "MIT", "dependencies": { "pump": "^3.0.0" }, @@ -8075,8 +7867,6 @@ }, "node_modules/get-symbol-description": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "license": "MIT", "dependencies": { @@ -8093,9 +7883,8 @@ }, "node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -8113,9 +7902,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -8125,9 +7913,8 @@ }, "node_modules/glob/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -8135,9 +7922,8 @@ }, "node_modules/glob/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -8147,8 +7933,7 @@ }, "node_modules/global-agent": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", - "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "license": "BSD-3-Clause", "optional": true, "dependencies": { "boolean": "^3.0.1", @@ -8164,8 +7949,6 @@ }, "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==", "license": "MIT", "engines": { "node": ">=4" @@ -8173,8 +7956,6 @@ }, "node_modules/globalthis": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "devOptional": true, "license": "MIT", "dependencies": { @@ -8190,8 +7971,6 @@ }, "node_modules/globby": { "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "license": "MIT", "dependencies": { @@ -8211,8 +7990,7 @@ }, "node_modules/gopd": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "license": "MIT", "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -8222,8 +8000,7 @@ }, "node_modules/got": { "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "license": "MIT", "dependencies": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", @@ -8246,36 +8023,30 @@ }, "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==" + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/has": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/has-bigints": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { @@ -8284,8 +8055,6 @@ }, "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==", "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" @@ -8296,8 +8065,6 @@ }, "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==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -8308,8 +8075,7 @@ }, "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==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8319,8 +8085,6 @@ }, "node_modules/has-tostringtag": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" @@ -8334,8 +8098,6 @@ }, "node_modules/hash-base": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", "license": "MIT", "dependencies": { "inherits": "^2.0.1", @@ -8347,8 +8109,6 @@ }, "node_modules/hash.js": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -8357,8 +8117,6 @@ }, "node_modules/hasown": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -8367,22 +8125,9 @@ "node": ">= 0.4" } }, - "node_modules/hex-editor-react": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/hex-editor-react/-/hex-editor-react-0.1.0.tgz", - "integrity": "sha512-bGzq15w1W2/mg8Nnm8952o2rvLiDSTcFzQ+S8mXgdOs+jebB6MeL8gG/m0SlZrtORl+eHJLulzblbV6G04K0vg==", - "dependencies": { - "js-hex-editor": "0.1.0" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0" - } - }, "node_modules/hexy": { "version": "0.3.5", - "resolved": "https://registry.npmjs.org/hexy/-/hexy-0.3.5.tgz", - "integrity": "sha512-UCP7TIZPXz5kxYJnNOym+9xaenxCLor/JyhKieo8y8/bJWunGh9xbhy3YrgYJUQ87WwfXGm05X330DszOfINZw==", + "license": "MIT", "bin": { "hexy": "bin/hexy_cmd.js" }, @@ -8392,8 +8137,6 @@ }, "node_modules/hmac-drbg": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "license": "MIT", "dependencies": { "hash.js": "^1.0.3", @@ -8403,17 +8146,15 @@ }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "license": "BSD-3-Clause", "dependencies": { "react-is": "^16.7.0" } }, "node_modules/hosted-git-info": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, + "license": "ISC", "dependencies": { "lru-cache": "^6.0.0" }, @@ -8423,9 +8164,8 @@ }, "node_modules/hosted-git-info/node_modules/lru-cache": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -8435,27 +8175,22 @@ }, "node_modules/hosted-git-info/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true, "license": "MIT" }, "node_modules/http-cache-semantics": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + "license": "BSD-2-Clause" }, "node_modules/http-proxy-agent": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, + "license": "MIT", "dependencies": { "@tootallnate/once": "2", "agent-base": "6", @@ -8467,8 +8202,7 @@ }, "node_modules/http2-wrapper": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "license": "MIT", "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" @@ -8479,15 +8213,12 @@ }, "node_modules/https-browserify": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", "license": "MIT" }, "node_modules/https-proxy-agent": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -8498,8 +8229,6 @@ }, "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, "license": "Apache-2.0", "engines": { @@ -8508,9 +8237,8 @@ }, "node_modules/iconv-corefoundation": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", - "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -8525,9 +8253,8 @@ }, "node_modules/iconv-lite": { "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -8537,8 +8264,6 @@ }, "node_modules/ieee754": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "funding": [ { "type": "github", @@ -8552,12 +8277,11 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/ignore": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, "license": "MIT", "engines": { @@ -8566,8 +8290,7 @@ }, "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==", + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -8581,8 +8304,6 @@ }, "node_modules/import-local": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, "license": "MIT", "dependencies": { @@ -8601,8 +8322,6 @@ }, "node_modules/import-local/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", "dependencies": { @@ -8615,8 +8334,6 @@ }, "node_modules/import-local/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", "dependencies": { @@ -8628,8 +8345,6 @@ }, "node_modules/import-local/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", "dependencies": { @@ -8644,8 +8359,6 @@ }, "node_modules/import-local/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", "dependencies": { @@ -8657,8 +8370,6 @@ }, "node_modules/import-local/node_modules/pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8670,18 +8381,16 @@ }, "node_modules/imurmurhash": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.8.19" } }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -8689,13 +8398,10 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "license": "ISC" }, "node_modules/internal-slot": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "license": "MIT", "dependencies": { @@ -8709,8 +8415,6 @@ }, "node_modules/is-arguments": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -8725,8 +8429,6 @@ }, "node_modules/is-array-buffer": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dev": true, "license": "MIT", "dependencies": { @@ -8742,14 +8444,10 @@ }, "node_modules/is-arrayish": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "license": "MIT" }, "node_modules/is-async-function": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", - "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", "dev": true, "license": "MIT", "dependencies": { @@ -8764,9 +8462,8 @@ }, "node_modules/is-bigint": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, + "license": "MIT", "dependencies": { "has-bigints": "^1.0.1" }, @@ -8776,9 +8473,8 @@ }, "node_modules/is-boolean-object": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -8792,8 +8488,7 @@ }, "node_modules/is-callable": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -8803,9 +8498,8 @@ }, "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, + "license": "MIT", "dependencies": { "ci-info": "^3.2.0" }, @@ -8815,8 +8509,7 @@ }, "node_modules/is-core-module": { "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "license": "MIT", "dependencies": { "has": "^1.0.3" }, @@ -8826,8 +8519,6 @@ }, "node_modules/is-data-view": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dev": true, "license": "MIT", "dependencies": { @@ -8842,9 +8533,8 @@ }, "node_modules/is-date-object": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8857,17 +8547,14 @@ }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-finalizationregistry": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", - "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", "dev": true, "license": "MIT", "dependencies": { @@ -8879,17 +8566,14 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "license": "MIT", "engines": { @@ -8898,8 +8582,7 @@ }, "node_modules/is-generator-function": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8912,9 +8595,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, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -8924,8 +8606,6 @@ }, "node_modules/is-map": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, "license": "MIT", "engines": { @@ -8937,8 +8617,6 @@ }, "node_modules/is-nan": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", "license": "MIT", "dependencies": { "call-bind": "^1.0.0", @@ -8953,8 +8631,6 @@ }, "node_modules/is-negative-zero": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "license": "MIT", "engines": { @@ -8966,18 +8642,16 @@ }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } }, "node_modules/is-number-object": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -8990,8 +8664,6 @@ }, "node_modules/is-regex": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "license": "MIT", "dependencies": { @@ -9007,8 +8679,6 @@ }, "node_modules/is-set": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "dev": true, "license": "MIT", "engines": { @@ -9020,8 +8690,6 @@ }, "node_modules/is-shared-array-buffer": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "license": "MIT", "dependencies": { @@ -9036,8 +8704,6 @@ }, "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==", "dev": true, "license": "MIT", "engines": { @@ -9049,9 +8715,8 @@ }, "node_modules/is-string": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, + "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -9064,9 +8729,8 @@ }, "node_modules/is-symbol": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, + "license": "MIT", "dependencies": { "has-symbols": "^1.0.2" }, @@ -9079,8 +8743,6 @@ }, "node_modules/is-typed-array": { "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "license": "MIT", "dependencies": { "which-typed-array": "^1.1.14" @@ -9094,8 +8756,6 @@ }, "node_modules/is-weakmap": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "dev": true, "license": "MIT", "engines": { @@ -9107,9 +8767,8 @@ }, "node_modules/is-weakref": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2" }, @@ -9119,8 +8778,6 @@ }, "node_modules/is-weakset": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9136,16 +8793,13 @@ }, "node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "dev": true, "license": "MIT" }, "node_modules/isbinaryfile": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.2.tgz", - "integrity": "sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 18.0.0" }, @@ -9155,14 +8809,11 @@ }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/isomorphic-timers-promises": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-timers-promises/-/isomorphic-timers-promises-1.0.1.tgz", - "integrity": "sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ==", "license": "MIT", "engines": { "node": ">=10" @@ -9170,8 +8821,6 @@ }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -9180,8 +8829,6 @@ }, "node_modules/istanbul-lib-instrument": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -9197,8 +8844,6 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -9212,8 +8857,6 @@ }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -9227,8 +8870,6 @@ }, "node_modules/istanbul-reports": { "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -9241,8 +8882,6 @@ }, "node_modules/iterator.prototype": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", - "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9258,9 +8897,8 @@ }, "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, + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -9276,9 +8914,8 @@ }, "node_modules/jake": { "version": "10.9.1", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.1.tgz", - "integrity": "sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==", "dev": true, + "license": "Apache-2.0", "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", @@ -9294,9 +8931,8 @@ }, "node_modules/jake/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -9304,9 +8940,8 @@ }, "node_modules/jake/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -9316,8 +8951,6 @@ }, "node_modules/jest": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "license": "MIT", "dependencies": { @@ -9343,8 +8976,6 @@ }, "node_modules/jest-changed-files": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "license": "MIT", "dependencies": { @@ -9358,8 +8989,6 @@ }, "node_modules/jest-circus": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "license": "MIT", "dependencies": { @@ -9390,8 +9019,6 @@ }, "node_modules/jest-cli": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, "license": "MIT", "dependencies": { @@ -9424,8 +9051,6 @@ }, "node_modules/jest-config": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9470,9 +9095,8 @@ }, "node_modules/jest-diff": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^29.6.3", @@ -9485,8 +9109,6 @@ }, "node_modules/jest-docblock": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "license": "MIT", "dependencies": { @@ -9498,8 +9120,6 @@ }, "node_modules/jest-each": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9515,8 +9135,6 @@ }, "node_modules/jest-environment-node": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "license": "MIT", "dependencies": { @@ -9533,17 +9151,14 @@ }, "node_modules/jest-get-type": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, + "license": "MIT", "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-haste-map": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "license": "MIT", "dependencies": { @@ -9568,8 +9183,6 @@ }, "node_modules/jest-leak-detector": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "license": "MIT", "dependencies": { @@ -9582,9 +9195,8 @@ }, "node_modules/jest-matcher-utils": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, + "license": "MIT", "dependencies": { "chalk": "^4.0.0", "jest-diff": "^29.7.0", @@ -9597,9 +9209,8 @@ }, "node_modules/jest-message-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^29.6.3", @@ -9617,8 +9228,6 @@ }, "node_modules/jest-mock": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "license": "MIT", "dependencies": { @@ -9632,8 +9241,6 @@ }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "license": "MIT", "engines": { @@ -9650,8 +9257,6 @@ }, "node_modules/jest-regex-util": { "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, "license": "MIT", "engines": { @@ -9660,8 +9265,6 @@ }, "node_modules/jest-resolve": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "license": "MIT", "dependencies": { @@ -9681,8 +9284,6 @@ }, "node_modules/jest-resolve-dependencies": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "license": "MIT", "dependencies": { @@ -9695,8 +9296,6 @@ }, "node_modules/jest-resolve/node_modules/resolve": { "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "license": "MIT", "dependencies": { @@ -9713,8 +9312,6 @@ }, "node_modules/jest-runner": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9746,8 +9343,6 @@ }, "node_modules/jest-runner/node_modules/source-map-support": { "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "license": "MIT", "dependencies": { @@ -9757,8 +9352,6 @@ }, "node_modules/jest-runtime": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "license": "MIT", "dependencies": { @@ -9791,8 +9384,6 @@ }, "node_modules/jest-snapshot": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "license": "MIT", "dependencies": { @@ -9823,9 +9414,8 @@ }, "node_modules/jest-util": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, + "license": "MIT", "dependencies": { "@jest/types": "^29.6.3", "@types/node": "*", @@ -9840,8 +9430,6 @@ }, "node_modules/jest-validate": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "license": "MIT", "dependencies": { @@ -9858,8 +9446,6 @@ }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "license": "MIT", "engines": { @@ -9871,8 +9457,6 @@ }, "node_modules/jest-watcher": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "license": "MIT", "dependencies": { @@ -9891,8 +9475,6 @@ }, "node_modules/jest-worker": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "license": "MIT", "dependencies": { @@ -9907,8 +9489,6 @@ }, "node_modules/jest-worker/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, "license": "MIT", "dependencies": { @@ -9921,20 +9501,13 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/js-hex-editor": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/js-hex-editor/-/js-hex-editor-0.1.0.tgz", - "integrity": "sha512-BsvPiWcMCeBb7JQ9WcwG8uSA1IPumlc1jZ5wEkL5B54+3eB41wIH8qEXF8uA343rvuXH8+pwosjBuPkBmh5RWQ==" - }, "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==" + "license": "MIT" }, "node_modules/js-yaml": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -9944,8 +9517,6 @@ }, "node_modules/jsesc": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -9956,38 +9527,31 @@ }, "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==" + "license": "MIT" }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "license": "MIT" }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", + "license": "ISC", "optional": 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, + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -9997,17 +9561,15 @@ }, "node_modules/jsonfile": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "node_modules/jsx-ast-utils": { "version": "3.3.5", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", - "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", "dev": true, + "license": "MIT", "dependencies": { "array-includes": "^3.1.6", "array.prototype.flat": "^1.3.1", @@ -10020,16 +9582,13 @@ }, "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==", + "license": "MIT", "dependencies": { "json-buffer": "3.0.1" } }, "node_modules/kleur": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", "dev": true, "license": "MIT", "engines": { @@ -10038,14 +9597,12 @@ }, "node_modules/lazy-val": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", - "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" + "license": "MIT" }, "node_modules/lazystream": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", - "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "readable-stream": "^2.0.5" @@ -10056,16 +9613,14 @@ }, "node_modules/lazystream/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/lazystream/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "core-util-is": "~1.0.0", @@ -10079,16 +9634,14 @@ }, "node_modules/lazystream/node_modules/safe-buffer": { "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/lazystream/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "safe-buffer": "~5.1.0" @@ -10096,8 +9649,6 @@ }, "node_modules/leven": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, "license": "MIT", "engines": { @@ -10106,9 +9657,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, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -10119,14 +9669,11 @@ }, "node_modules/lines-and-columns": { "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "p-locate": "^5.0.0" }, @@ -10139,83 +9686,68 @@ }, "node_modules/lodash": { "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "license": "MIT" }, "node_modules/lodash.curry": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.curry/-/lodash.curry-4.1.1.tgz", - "integrity": "sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==" + "license": "MIT" }, "node_modules/lodash.debounce": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true, "license": "MIT" }, "node_modules/lodash.defaults": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/lodash.difference": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/lodash.escaperegexp": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", - "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" + "license": "MIT" }, "node_modules/lodash.flatten": { "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/lodash.isequal": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + "license": "MIT" }, "node_modules/lodash.isplainobject": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/lodash.memoize": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true, "license": "MIT" }, "node_modules/lodash.merge": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash.union": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/loose-envify": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -10225,16 +9757,13 @@ }, "node_modules/lowercase-keys": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "license": "ISC", "dependencies": { @@ -10243,8 +9772,7 @@ }, "node_modules/magic-string": { "version": "0.30.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", - "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" }, @@ -10254,8 +9782,6 @@ }, "node_modules/make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "license": "MIT", "dependencies": { @@ -10270,15 +9796,11 @@ }, "node_modules/make-error": { "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true, "license": "ISC" }, "node_modules/makeerror": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -10287,8 +9809,7 @@ }, "node_modules/matcher": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "license": "MIT", "optional": true, "dependencies": { "escape-string-regexp": "^4.0.0" @@ -10299,8 +9820,7 @@ }, "node_modules/matcher/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==", + "license": "MIT", "optional": true, "engines": { "node": ">=10" @@ -10311,8 +9831,6 @@ }, "node_modules/md5.js": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "license": "MIT", "dependencies": { "hash-base": "^3.0.0", @@ -10322,15 +9840,11 @@ }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true, "license": "MIT" }, "node_modules/merge2": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, "license": "MIT", "engines": { @@ -10339,8 +9853,6 @@ }, "node_modules/micromatch": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { @@ -10353,8 +9865,6 @@ }, "node_modules/miller-rabin": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "license": "MIT", "dependencies": { "bn.js": "^4.0.0", @@ -10366,15 +9876,12 @@ }, "node_modules/miller-rabin/node_modules/bn.js": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "license": "MIT" }, "node_modules/mime": { "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -10384,18 +9891,16 @@ }, "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==", "dev": true, + "license": "MIT", "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==", "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -10405,8 +9910,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, "license": "MIT", "engines": { @@ -10415,29 +9918,23 @@ }, "node_modules/mimic-response": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/minimalistic-assert": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "license": "ISC" }, "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "license": "MIT" }, "node_modules/minimatch": { "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -10447,27 +9944,24 @@ }, "node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/minipass": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, + "license": "ISC", "engines": { "node": ">=8" } }, "node_modules/minizlib": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, + "license": "MIT", "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -10478,9 +9972,8 @@ }, "node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^4.0.0" }, @@ -10490,15 +9983,13 @@ }, "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/mkdirp": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, + "license": "MIT", "bin": { "mkdirp": "bin/cmd.js" }, @@ -10508,19 +9999,17 @@ }, "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==" + "license": "MIT" }, "node_modules/nanoid": { "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", "funding": [ { "type": "github", "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -10530,35 +10019,27 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/node-addon-api": { "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/node-int64": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true, "license": "MIT" }, "node_modules/node-releases": { "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true, "license": "MIT" }, "node_modules/node-stdlib-browser": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/node-stdlib-browser/-/node-stdlib-browser-1.2.1.tgz", - "integrity": "sha512-dZezG3D88Lg22DwyjsDuUs7cCT/XGr8WwJgg/S3ZnkcWuPet2Tt/W1d2Eytb1Z73JpZv+XVCDI5TWv6UMRq0Gg==", "license": "MIT", "dependencies": { "assert": "^2.0.0", @@ -10595,8 +10076,6 @@ }, "node_modules/node-stdlib-browser/node_modules/buffer": { "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "funding": [ { "type": "github", @@ -10619,23 +10098,19 @@ }, "node_modules/node-stdlib-browser/node_modules/punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/normalize-url": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -10645,8 +10120,6 @@ }, "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, "license": "MIT", "dependencies": { @@ -10658,16 +10131,13 @@ }, "node_modules/object-assign": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -10678,8 +10148,6 @@ }, "node_modules/object-is": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -10694,16 +10162,13 @@ }, "node_modules/object-keys": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/object.assign": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "license": "MIT", "dependencies": { "call-bind": "^1.0.5", @@ -10720,8 +10185,6 @@ }, "node_modules/object.entries": { "version": "1.1.8", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", - "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10735,8 +10198,6 @@ }, "node_modules/object.fromentries": { "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10754,8 +10215,6 @@ }, "node_modules/object.values": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "license": "MIT", "dependencies": { @@ -10772,16 +10231,13 @@ }, "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==", + "license": "ISC", "dependencies": { "wrappy": "1" } }, "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, "license": "MIT", "dependencies": { @@ -10796,9 +10252,8 @@ }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, + "license": "MIT", "dependencies": { "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", @@ -10813,22 +10268,18 @@ }, "node_modules/os-browserify": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "license": "MIT" }, "node_modules/p-cancelable": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "license": "MIT", "engines": { "node": ">=8" } }, "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==", + "license": "MIT", "dependencies": { "yocto-queue": "^0.1.0" }, @@ -10841,8 +10292,7 @@ }, "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==", + "license": "MIT", "dependencies": { "p-limit": "^3.0.2" }, @@ -10855,8 +10305,6 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "license": "MIT", "engines": { @@ -10865,20 +10313,16 @@ }, "node_modules/package-json-from-dist": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "dev": true + "dev": true, + "license": "BlueOak-1.0.0" }, "node_modules/pako": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "license": "(MIT AND Zlib)" }, "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==", + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -10888,8 +10332,6 @@ }, "node_modules/parse-asn1": { "version": "5.1.7", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.7.tgz", - "integrity": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==", "license": "ISC", "dependencies": { "asn1.js": "^4.10.1", @@ -10905,8 +10347,6 @@ }, "node_modules/parse-json": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "license": "MIT", "dependencies": { "@babel/code-frame": "^7.0.0", @@ -10923,46 +10363,39 @@ }, "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==", "license": "MIT" }, "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==", + "license": "MIT", "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, + "license": "MIT", "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, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "license": "MIT" }, "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, + "license": "BlueOak-1.0.0", "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -10976,25 +10409,21 @@ }, "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, + "license": "ISC", "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==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/pbkdf2": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "license": "MIT", "dependencies": { "create-hash": "^1.1.2", @@ -11009,20 +10438,16 @@ }, "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==" + "license": "MIT" }, "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -11032,8 +10457,6 @@ }, "node_modules/pirates": { "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, "license": "MIT", "engines": { @@ -11042,8 +10465,6 @@ }, "node_modules/pkg-dir": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", - "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", "license": "MIT", "dependencies": { "find-up": "^5.0.0" @@ -11054,9 +10475,8 @@ }, "node_modules/plist": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", - "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", "dev": true, + "license": "MIT", "dependencies": { "@xmldom/xmldom": "^0.8.8", "base64-js": "^1.5.1", @@ -11078,15 +10498,13 @@ } }, "node_modules/pokemon-resources": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/pokemon-resources/-/pokemon-resources-1.0.10.tgz", - "integrity": "sha512-XEKHD9cNym+rgBMQi1pccRN3MhMlcT5DVSJ3VHXISjcj9iWeY8yuDZhr5G89Cw1epaOU8fB+aGGg/xAkwmmDgg==", + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pokemon-resources/-/pokemon-resources-1.0.11.tgz", + "integrity": "sha512-GGR7bGS95le0DuAgTe3R3tz1CcYqvubB4Hjl9vI/jXyn3DZKafnBpt1U5GOcNXZRfmodC/gZW40PCCcB97/nmw==", "license": "GPL-3.0-only" }, "node_modules/pokemon-species-data": { "version": "0.4.2", - "resolved": "https://registry.npmjs.org/pokemon-species-data/-/pokemon-species-data-0.4.2.tgz", - "integrity": "sha512-dq7Bm8URQVLCwpa3yNjWpId7f1BCawykC8eMqPHhZE5NJWWFgzDeg7g6OIOMv9/n7QsmQjRRD06Tz9tzxDiwfA==", "license": "GPL-3.0-only", "dependencies": { "pokemon-resources": "^1.0.10" @@ -11094,8 +10512,6 @@ }, "node_modules/possible-typed-array-names": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -11103,8 +10519,6 @@ }, "node_modules/postcss": { "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -11119,6 +10533,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.6", "picocolors": "^1.0.0", @@ -11130,23 +10545,20 @@ }, "node_modules/prando": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/prando/-/prando-6.0.1.tgz", - "integrity": "sha512-ghUWxQ1T9IJmPu6eshc3VU0OwveUtXQ33ZLXYUcz1Oc5ppKLDXKp0TBDj6b0epwhEctzcQSNGR2iHyvQSn4W5A==" + "license": "MIT" }, "node_modules/prelude-ls": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", "dev": true, + "license": "MIT", "bin": { "prettier": "bin/prettier.cjs" }, @@ -11159,9 +10571,8 @@ }, "node_modules/prettier-linter-helpers": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", "dev": true, + "license": "MIT", "dependencies": { "fast-diff": "^1.1.2" }, @@ -11171,9 +10582,8 @@ }, "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, + "license": "MIT", "dependencies": { "@jest/schemas": "^29.6.3", "ansi-styles": "^5.0.0", @@ -11185,9 +10595,8 @@ }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, + "license": "MIT", "engines": { "node": ">=10" }, @@ -11197,14 +10606,11 @@ }, "node_modules/pretty-format/node_modules/react-is": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "dev": true, + "license": "MIT" }, "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==", "license": "MIT", "engines": { "node": ">= 0.6.0" @@ -11212,22 +10618,19 @@ }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "license": "MIT" }, "node_modules/progress": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/promise-retry": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, + "license": "MIT", "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -11238,8 +10641,6 @@ }, "node_modules/prompts": { "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -11252,8 +10653,7 @@ }, "node_modules/prop-types": { "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", @@ -11262,8 +10662,6 @@ }, "node_modules/public-encrypt": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "license": "MIT", "dependencies": { "bn.js": "^4.1.0", @@ -11276,14 +10674,11 @@ }, "node_modules/public-encrypt/node_modules/bn.js": { "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "license": "MIT" }, "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==", + "license": "MIT", "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -11291,17 +10686,14 @@ }, "node_modules/punycode": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pure-rand": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", "dev": true, "funding": [ { @@ -11317,8 +10709,6 @@ }, "node_modules/qs": { "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.0.6" @@ -11332,16 +10722,12 @@ }, "node_modules/querystring-es3": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", "engines": { "node": ">=0.4.x" } }, "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": [ { @@ -11356,12 +10742,12 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/quick-lru": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -11371,8 +10757,6 @@ }, "node_modules/randombytes": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" @@ -11380,8 +10764,6 @@ }, "node_modules/randomfill": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "license": "MIT", "dependencies": { "randombytes": "^2.0.5", @@ -11390,8 +10772,7 @@ }, "node_modules/react": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -11401,8 +10782,7 @@ }, "node_modules/react-base16-styling": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/react-base16-styling/-/react-base16-styling-0.9.1.tgz", - "integrity": "sha512-1s0CY1zRBOQ5M3T61wetEpvQmsYSNtWEcdYzyZNxKa8t7oDvaOn9d21xrGezGAHFWLM7SHcktPuPTrvoqxSfKw==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.16.7", "@types/base16": "^1.0.2", @@ -11415,8 +10795,7 @@ }, "node_modules/react-chartjs-2": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-5.2.0.tgz", - "integrity": "sha512-98iN5aguJyVSxp5U3CblRLH67J8gkfyGNbiK3c+l1QI/G4irHMPQw44aEPmjVag+YKTyQ260NcF82GTQ3bdscA==", + "license": "MIT", "peerDependencies": { "chart.js": "^4.1.1", "react": "^16.8.0 || ^17.0.0 || ^18.0.0" @@ -11424,8 +10803,6 @@ }, "node_modules/react-data-grid": { "version": "7.0.0-beta.44", - "resolved": "https://registry.npmjs.org/react-data-grid/-/react-data-grid-7.0.0-beta.44.tgz", - "integrity": "sha512-VTql8VPBJEf7E+zkrqYW+jaQT1/m47dxigWzPq59QESJ8LhU59kHyzIx06BUpjdZKdK/tzbWaw2yyJpKoNnt5g==", "license": "MIT", "dependencies": { "clsx": "^2.0.0" @@ -11437,8 +10814,7 @@ }, "node_modules/react-dom": { "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" @@ -11449,8 +10825,7 @@ }, "node_modules/react-error-boundary": { "version": "4.0.12", - "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.0.12.tgz", - "integrity": "sha512-kJdxdEYlb7CPC1A0SeUY38cHpjuu6UkvzKiAmqmOFL21VRfMhOcWxTCBgLVCO0VEMh9JhFNcVaXlV4/BTpiwOA==", + "license": "MIT", "dependencies": { "@babel/runtime": "^7.12.5" }, @@ -11460,8 +10835,6 @@ }, "node_modules/react-icons": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.3.0.tgz", - "integrity": "sha512-DnUk8aFbTyQPSkCfF8dbX6kQjXA9DktMeJqfjrg6cK9vwQVMxmcA3BfP4QoiztVmEHtwlTgLFsPuH2NskKT6eg==", "license": "MIT", "peerDependencies": { "react": "*" @@ -11469,13 +10842,10 @@ }, "node_modules/react-is": { "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + "license": "MIT" }, "node_modules/react-json-tree": { "version": "0.18.0", - "resolved": "https://registry.npmjs.org/react-json-tree/-/react-json-tree-0.18.0.tgz", - "integrity": "sha512-Qe6HKSXrr++n9Y31nkRJ3XvQMATISpqigH1vEKhLwB56+nk5thTP0ITThpjxY6ZG/ubpVq/aEHIcyLP/OPHxeA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.20.6", @@ -11489,18 +10859,16 @@ }, "node_modules/react-refresh": { "version": "0.14.0", - "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", - "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/read-config-file": { "version": "6.3.2", - "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.3.2.tgz", - "integrity": "sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==", "dev": true, + "license": "MIT", "dependencies": { "config-file-ts": "^0.2.4", "dotenv": "^9.0.2", @@ -11515,8 +10883,7 @@ }, "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==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -11528,9 +10895,8 @@ }, "node_modules/readdir-glob": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", - "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", "dev": true, + "license": "Apache-2.0", "peer": true, "dependencies": { "minimatch": "^5.1.0" @@ -11538,8 +10904,6 @@ }, "node_modules/reflect.getprototypeof": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", - "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", "dev": true, "license": "MIT", "dependencies": { @@ -11560,15 +10924,11 @@ }, "node_modules/regenerate": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true, "license": "MIT" }, "node_modules/regenerate-unicode-properties": { "version": "10.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", - "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, "license": "MIT", "dependencies": { @@ -11580,13 +10940,10 @@ }, "node_modules/regenerator-runtime": { "version": "0.14.0", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", - "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==" + "license": "MIT" }, "node_modules/regenerator-transform": { "version": "0.15.2", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", - "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, "license": "MIT", "dependencies": { @@ -11595,8 +10952,6 @@ }, "node_modules/regexp.prototype.flags": { "version": "1.5.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", - "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11614,8 +10969,6 @@ }, "node_modules/regexpu-core": { "version": "6.1.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", - "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", "dev": true, "license": "MIT", "dependencies": { @@ -11632,15 +10985,11 @@ }, "node_modules/regjsgen": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", "dev": true, "license": "MIT" }, "node_modules/regjsparser": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.2.tgz", - "integrity": "sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -11652,18 +11001,16 @@ }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/resolve": { "version": "2.0.0-next.5", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", - "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", "dev": true, + "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", "path-parse": "^1.0.7", @@ -11678,13 +11025,10 @@ }, "node_modules/resolve-alpn": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + "license": "MIT" }, "node_modules/resolve-cwd": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "license": "MIT", "dependencies": { @@ -11696,8 +11040,6 @@ }, "node_modules/resolve-cwd/node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { @@ -11706,16 +11048,13 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/resolve.exports": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, "license": "MIT", "engines": { @@ -11724,8 +11063,7 @@ }, "node_modules/responselike": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "license": "MIT", "dependencies": { "lowercase-keys": "^2.0.0" }, @@ -11735,18 +11073,16 @@ }, "node_modules/retry": { "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, + "license": "MIT", "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" @@ -11754,8 +11090,6 @@ }, "node_modules/ripemd160": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "license": "MIT", "dependencies": { "hash-base": "^3.0.0", @@ -11764,8 +11098,7 @@ }, "node_modules/roarr": { "version": "2.15.4", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", - "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "license": "BSD-3-Clause", "optional": true, "dependencies": { "boolean": "^3.0.1", @@ -11781,8 +11114,6 @@ }, "node_modules/rollup": { "version": "3.29.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.5.tgz", - "integrity": "sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==", "license": "MIT", "bin": { "rollup": "dist/bin/rollup" @@ -11797,8 +11128,6 @@ }, "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": [ { @@ -11814,14 +11143,13 @@ "url": "https://feross.org/support" } ], + "license": "MIT", "dependencies": { "queue-microtask": "^1.2.2" } }, "node_modules/safe-array-concat": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dev": true, "license": "MIT", "dependencies": { @@ -11839,8 +11167,6 @@ }, "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", @@ -11854,12 +11180,11 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/safe-regex-test": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "license": "MIT", "dependencies": { @@ -11876,36 +11201,30 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/sanitize-filename": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", - "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", "dev": true, + "license": "WTFPL OR ISC", "dependencies": { "truncate-utf8-bytes": "^1.0.0" } }, "node_modules/sax": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + "license": "ISC" }, "node_modules/scheduler": { "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } }, "node_modules/semver": { "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -11916,14 +11235,12 @@ }, "node_modules/semver-compare": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "license": "MIT", "optional": true }, "node_modules/serialize-error": { "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "license": "MIT", "optional": true, "dependencies": { "type-fest": "^0.13.1" @@ -11937,8 +11254,6 @@ }, "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==", "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", @@ -11954,8 +11269,6 @@ }, "node_modules/set-function-name": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "license": "MIT", "dependencies": { @@ -11970,14 +11283,10 @@ }, "node_modules/setimmediate": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "license": "MIT" }, "node_modules/sha.js": { "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "license": "(MIT AND BSD-3-Clause)", "dependencies": { "inherits": "^2.0.1", @@ -11987,11 +11296,84 @@ "sha.js": "bin.js" } }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/sharp/node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/sharp/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/sharp/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -12001,17 +11383,14 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -12028,29 +11407,24 @@ }, "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, "license": "ISC" }, "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==", + "license": "MIT", "dependencies": { "is-arrayish": "^0.3.1" } }, "node_modules/simple-swizzle/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==" + "license": "MIT" }, "node_modules/simple-update-notifier": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -12060,25 +11434,21 @@ }, "node_modules/sisteransi": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true, "license": "MIT" }, "node_modules/slash": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, + "license": "MIT", "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, + "license": "MIT", "optional": true, "dependencies": { "ansi-styles": "^4.0.0", @@ -12091,9 +11461,8 @@ }, "node_modules/smart-buffer": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, + "license": "MIT", "optional": true, "engines": { "node": ">= 6.0.0", @@ -12102,26 +11471,23 @@ }, "node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -12129,15 +11495,13 @@ }, "node_modules/sprintf-js": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "license": "BSD-3-Clause", "optional": true }, "node_modules/stack-utils": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, + "license": "MIT", "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -12147,26 +11511,22 @@ }, "node_modules/stack-utils/node_modules/escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/stat-mode": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", - "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 6" } }, "node_modules/stream-browserify": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "license": "MIT", "dependencies": { "inherits": "~2.0.4", @@ -12175,8 +11535,6 @@ }, "node_modules/stream-http": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", - "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", "license": "MIT", "dependencies": { "builtin-status-codes": "^3.0.0", @@ -12187,16 +11545,13 @@ }, "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==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-length": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12209,9 +11564,8 @@ }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -12224,9 +11578,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, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -12238,8 +11591,6 @@ }, "node_modules/string.prototype.matchall": { "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", "dev": true, "license": "MIT", "dependencies": { @@ -12265,8 +11616,6 @@ }, "node_modules/string.prototype.repeat": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", - "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", "dev": true, "license": "MIT", "dependencies": { @@ -12276,8 +11625,6 @@ }, "node_modules/string.prototype.trim": { "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "license": "MIT", "dependencies": { @@ -12295,8 +11642,6 @@ }, "node_modules/string.prototype.trimend": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12310,8 +11655,6 @@ }, "node_modules/string.prototype.trimstart": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "license": "MIT", "dependencies": { @@ -12328,9 +11671,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, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -12341,9 +11683,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, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -12353,8 +11694,6 @@ }, "node_modules/strip-bom": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "license": "MIT", "engines": { @@ -12363,8 +11702,6 @@ }, "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, "license": "MIT", "engines": { @@ -12373,8 +11710,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, "license": "MIT", "engines": { @@ -12386,13 +11721,11 @@ }, "node_modules/stylis": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", - "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + "license": "MIT" }, "node_modules/sumchecker": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", - "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "license": "Apache-2.0", "dependencies": { "debug": "^4.1.0" }, @@ -12402,8 +11735,6 @@ }, "node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { @@ -12415,8 +11746,7 @@ }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -12426,8 +11756,6 @@ }, "node_modules/synckit": { "version": "0.9.1", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", - "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", "dev": true, "license": "MIT", "dependencies": { @@ -12443,9 +11771,8 @@ }, "node_modules/tar": { "version": "6.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -12460,9 +11787,8 @@ }, "node_modules/tar-stream": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "bl": "^4.0.3", @@ -12477,15 +11803,13 @@ }, "node_modules/tar/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/temp-file": { "version": "3.4.0", - "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", - "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", "dev": true, + "license": "MIT", "dependencies": { "async-exit-hook": "^2.0.1", "fs-extra": "^10.0.0" @@ -12493,9 +11817,8 @@ }, "node_modules/temp-file/node_modules/fs-extra": { "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -12507,9 +11830,8 @@ }, "node_modules/temp-file/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, + "license": "MIT", "dependencies": { "universalify": "^2.0.0" }, @@ -12519,17 +11841,14 @@ }, "node_modules/temp-file/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, + "license": "MIT", "engines": { "node": ">= 10.0.0" } }, "node_modules/test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "license": "ISC", "dependencies": { @@ -12543,8 +11862,6 @@ }, "node_modules/test-exclude/node_modules/brace-expansion": { "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { @@ -12554,8 +11871,6 @@ }, "node_modules/test-exclude/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", "dependencies": { @@ -12567,14 +11882,11 @@ }, "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 + "dev": true, + "license": "MIT" }, "node_modules/timers-browserify": { "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "license": "MIT", "dependencies": { "setimmediate": "^1.0.4" @@ -12585,39 +11897,33 @@ }, "node_modules/tiny-typed-emitter": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", - "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" + "license": "MIT" }, "node_modules/tmp": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.14" } }, "node_modules/tmp-promise": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", - "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", "dev": true, + "license": "MIT", "dependencies": { "tmp": "^0.2.0" } }, "node_modules/tmpl": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true, "license": "BSD-3-Clause" }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -12627,17 +11933,14 @@ }, "node_modules/truncate-utf8-bytes": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", - "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", "dev": true, + "license": "WTFPL", "dependencies": { "utf8-byte-length": "^1.0.1" } }, "node_modules/ts-api-utils": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", - "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", "dev": true, "license": "MIT", "engines": { @@ -12649,8 +11952,6 @@ }, "node_modules/ts-jest": { "version": "29.2.5", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.2.5.tgz", - "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", "dev": true, "license": "MIT", "dependencies": { @@ -12698,20 +11999,16 @@ }, "node_modules/tslib": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "license": "0BSD" }, "node_modules/tty-browserify": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", - "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "license": "MIT" }, "node_modules/type-check": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { "prelude-ls": "^1.2.1" }, @@ -12721,8 +12018,6 @@ }, "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, "license": "MIT", "engines": { @@ -12731,8 +12026,7 @@ }, "node_modules/type-fest": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "license": "(MIT OR CC0-1.0)", "optional": true, "engines": { "node": ">=10" @@ -12743,8 +12037,6 @@ }, "node_modules/typed-array-buffer": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, "license": "MIT", "dependencies": { @@ -12758,8 +12050,6 @@ }, "node_modules/typed-array-byte-length": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, "license": "MIT", "dependencies": { @@ -12778,8 +12068,6 @@ }, "node_modules/typed-array-byte-offset": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", "dev": true, "license": "MIT", "dependencies": { @@ -12799,8 +12087,6 @@ }, "node_modules/typed-array-length": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", - "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", "dev": true, "license": "MIT", "dependencies": { @@ -12820,8 +12106,6 @@ }, "node_modules/typescript": { "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -12834,9 +12118,8 @@ }, "node_modules/unbox-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, + "license": "MIT", "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -12849,14 +12132,10 @@ }, "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==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", - "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, "license": "MIT", "engines": { @@ -12865,8 +12144,6 @@ }, "node_modules/unicode-match-property-ecmascript": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "license": "MIT", "dependencies": { @@ -12879,8 +12156,6 @@ }, "node_modules/unicode-match-property-value-ecmascript": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", - "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, "license": "MIT", "engines": { @@ -12889,8 +12164,6 @@ }, "node_modules/unicode-property-aliases-ecmascript": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, "license": "MIT", "engines": { @@ -12899,16 +12172,13 @@ }, "node_modules/universalify": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", "engines": { "node": ">= 4.0.0" } }, "node_modules/update-browserslist-db": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", - "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "dev": true, "funding": [ { @@ -12938,17 +12208,14 @@ }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } }, "node_modules/url": { "version": "0.11.4", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", - "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", "license": "MIT", "dependencies": { "punycode": "^1.4.1", @@ -12960,14 +12227,11 @@ }, "node_modules/url/node_modules/punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "license": "MIT" }, "node_modules/use-file-picker": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/use-file-picker/-/use-file-picker-1.7.0.tgz", - "integrity": "sha512-YjVbRuSL0eHPni5yCBuaHRo08txRs+LZXvM7V8UtmM450uEWqLWEEw2SLfwgdrcZorKTc5H9jTNvXziX846sjA==", + "license": "MIT", "dependencies": { "file-selector": "0.2.4" }, @@ -12980,14 +12244,11 @@ }, "node_modules/utf8-byte-length": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz", - "integrity": "sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==", - "dev": true + "dev": true, + "license": "(WTFPL OR MIT)" }, "node_modules/util": { "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -12999,13 +12260,10 @@ }, "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==" + "license": "MIT" }, "node_modules/v8-to-istanbul": { "version": "9.3.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", - "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, "license": "ISC", "dependencies": { @@ -13019,9 +12277,8 @@ }, "node_modules/verror": { "version": "1.10.1", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", - "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "assert-plus": "^1.0.0", @@ -13034,8 +12291,6 @@ }, "node_modules/vite": { "version": "4.5.5", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz", - "integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==", "license": "MIT", "dependencies": { "esbuild": "^0.18.10", @@ -13089,8 +12344,6 @@ }, "node_modules/vite-plugin-node-polyfills": { "version": "0.22.0", - "resolved": "https://registry.npmjs.org/vite-plugin-node-polyfills/-/vite-plugin-node-polyfills-0.22.0.tgz", - "integrity": "sha512-F+G3LjiGbG8QpbH9bZ//GSBr9i1InSTkaulfUHFa9jkLqVGORFBoqc2A/Yu5Mmh1kNAbiAeKeK+6aaQUf3x0JA==", "license": "MIT", "dependencies": { "@rollup/plugin-inject": "^5.0.5", @@ -13105,14 +12358,10 @@ }, "node_modules/vm-browserify": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "license": "MIT" }, "node_modules/walker": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -13121,9 +12370,8 @@ }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -13136,9 +12384,8 @@ }, "node_modules/which-boxed-primitive": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, + "license": "MIT", "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -13152,8 +12399,6 @@ }, "node_modules/which-builtin-type": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", - "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", "dev": true, "license": "MIT", "dependencies": { @@ -13179,8 +12424,6 @@ }, "node_modules/which-collection": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "license": "MIT", "dependencies": { @@ -13198,8 +12441,6 @@ }, "node_modules/which-typed-array": { "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -13217,9 +12458,8 @@ }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -13235,9 +12475,8 @@ "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, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -13252,13 +12491,10 @@ }, "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==" + "license": "ISC" }, "node_modules/write-file-atomic": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", "dev": true, "license": "ISC", "dependencies": { @@ -13271,17 +12507,14 @@ }, "node_modules/xmlbuilder": { "version": "15.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", - "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.0" } }, "node_modules/xtend": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "license": "MIT", "engines": { "node": ">=0.4" @@ -13289,24 +12522,19 @@ }, "node_modules/y18n": { "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, + "license": "ISC", "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "license": "ISC" }, "node_modules/yaml": { "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "license": "ISC", "engines": { "node": ">= 6" @@ -13314,9 +12542,8 @@ }, "node_modules/yargs": { "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -13332,17 +12559,15 @@ }, "node_modules/yargs-parser": { "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, + "license": "ISC", "engines": { "node": ">=12" } }, "node_modules/yauzl": { "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" @@ -13350,8 +12575,7 @@ }, "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==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -13361,9 +12585,8 @@ }, "node_modules/zip-stream": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.1.tgz", - "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "archiver-utils": "^3.0.4", @@ -13376,9 +12599,8 @@ }, "node_modules/zip-stream/node_modules/archiver-utils": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-3.0.4.tgz", - "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "glob": "^7.2.3", diff --git a/package.json b/package.json index 0f8adda5..94b2cda0 100644 --- a/package.json +++ b/package.json @@ -54,11 +54,10 @@ "dayjs": "^1.11.12", "electron-updater": "^6.3.0", "fp-ts": "^2.16.9", - "hex-editor-react": "^0.1.0", "hexy": "^0.3.5", "lodash": "^4.17.21", "pokemon-files": "^0.3.5", - "pokemon-resources": "^1.0.10", + "pokemon-resources": "^1.0.11", "pokemon-species-data": "^0.4.2", "prando": "^6.0.1", "react": "^18.2.0", @@ -97,6 +96,7 @@ "jest": "^29.7.0", "prettier": "^3.0.2", "react-dom": "^18.2.0", + "sharp": "^0.33.5", "ts-jest": "^29.2.5", "typescript": "^5.6.3", "vite": "^4.5.5" diff --git a/src/consts/Formes.ts b/src/consts/Formes.ts index 821a03d8..b1e995a8 100644 --- a/src/consts/Formes.ts +++ b/src/consts/Formes.ts @@ -21,6 +21,7 @@ export const ULTRA = 3 export const LGP_STARTER = 8 export const LGE_STARTER = 1 export const BLOOD_MOON = 1 +export const ORIGINAL = 1 export const BASE = 0 export const ALOLAN = 1 diff --git a/src/consts/JSON/Moves.json b/src/consts/JSON/Moves.json deleted file mode 100644 index 8acd6903..00000000 --- a/src/consts/JSON/Moves.json +++ /dev/null @@ -1,9675 +0,0 @@ -{ - "1": { - "name": "Pound", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 40, - "pp": 35, - "type": "normal", - "id": 1 - }, - "2": { - "name": "Karate Chop", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 50, - "pp": 25, - "type": "fighting", - "id": 2 - }, - "3": { - "name": "Double Slap", - "accuracy": 85, - "class": "physical", - "generation": "generation-i", - "power": 15, - "pp": 10, - "type": "normal", - "id": 3 - }, - "4": { - "name": "Comet Punch", - "accuracy": 85, - "class": "physical", - "generation": "generation-i", - "power": 18, - "pp": 15, - "type": "normal", - "id": 4 - }, - "5": { - "name": "Mega Punch", - "accuracy": 85, - "class": "physical", - "generation": "generation-i", - "power": 80, - "pp": 20, - "type": "normal", - "id": 5 - }, - "6": { - "name": "Pay Day", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 40, - "pp": 20, - "type": "normal", - "id": 6 - }, - "7": { - "name": "Fire Punch", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 75, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "fire", - "id": 7 - }, - "8": { - "name": "Ice Punch", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 75, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "ice", - "id": 8 - }, - "9": { - "name": "Thunder Punch", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 75, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "electric", - "id": 9 - }, - "10": { - "name": "Scratch", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 40, - "pp": 35, - "type": "normal", - "id": 10 - }, - "11": { - "name": "Vise Grip", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 55, - "pp": 30, - "type": "normal", - "id": 11 - }, - "12": { - "name": "Guillotine", - "accuracy": 30, - "class": "physical", - "generation": "generation-i", - "power": null, - "pp": 5, - "type": "normal", - "id": 12 - }, - "13": { - "name": "Razor Wind", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 80, - "pp": 10, - "type": "normal", - "id": 13 - }, - "14": { - "name": "Swords Dance", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "pastGenPP": { - "G1": 30, - "G2": 30, - "G3": 30, - "G4": 30, - "G5": 30 - }, - "type": "normal", - "id": 14 - }, - "15": { - "name": "Cut", - "accuracy": 95, - "class": "physical", - "generation": "generation-i", - "power": 50, - "pp": 30, - "type": "normal", - "id": 15 - }, - "16": { - "name": "Gust", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 40, - "pp": 35, - "pastGenPP": { - "LA": 25 - }, - "type": "flying", - "id": 16 - }, - "17": { - "name": "Wing Attack", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 60, - "pp": 35, - "type": "flying", - "id": 17 - }, - "18": { - "name": "Whirlwind", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "normal", - "id": 18 - }, - "19": { - "name": "Fly", - "accuracy": 95, - "class": "physical", - "generation": "generation-i", - "power": 90, - "pp": 15, - "type": "flying", - "id": 19 - }, - "20": { - "name": "Bind", - "accuracy": 85, - "class": "physical", - "generation": "generation-i", - "power": 15, - "pp": 20, - "type": "normal", - "id": 20 - }, - "21": { - "name": "Slam", - "accuracy": 75, - "class": "physical", - "generation": "generation-i", - "power": 80, - "pp": 20, - "type": "normal", - "id": 21 - }, - "22": { - "name": "Vine Whip", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 45, - "pp": 25, - "pastGenPP": { - "G1": 10, - "G2": 10, - "G3": 10, - "G4": 15, - "G5": 15 - }, - "type": "grass", - "id": 22 - }, - "23": { - "name": "Stomp", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 65, - "pp": 20, - "type": "normal", - "id": 23 - }, - "24": { - "name": "Double Kick", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 30, - "pp": 30, - "type": "fighting", - "id": 24 - }, - "25": { - "name": "Mega Kick", - "accuracy": 75, - "class": "physical", - "generation": "generation-i", - "power": 120, - "pp": 5, - "type": "normal", - "id": 25 - }, - "26": { - "name": "Jump Kick", - "accuracy": 95, - "class": "physical", - "generation": "generation-i", - "power": 100, - "pp": 10, - "pastGenPP": { - "G1": 25, - "G2": 25, - "G3": 25, - "G4": 25 - }, - "type": "fighting", - "id": 26 - }, - "27": { - "name": "Rolling Kick", - "accuracy": 85, - "class": "physical", - "generation": "generation-i", - "power": 60, - "pp": 15, - "type": "fighting", - "id": 27 - }, - "28": { - "name": "Sand Attack", - "accuracy": 100, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 15, - "type": "ground", - "id": 28 - }, - "29": { - "name": "Headbutt", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 70, - "pp": 15, - "type": "normal", - "id": 29 - }, - "30": { - "name": "Horn Attack", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 65, - "pp": 25, - "type": "normal", - "id": 30 - }, - "31": { - "name": "Fury Attack", - "accuracy": 85, - "class": "physical", - "generation": "generation-i", - "power": 15, - "pp": 20, - "type": "normal", - "id": 31 - }, - "32": { - "name": "Horn Drill", - "accuracy": 30, - "class": "physical", - "generation": "generation-i", - "power": null, - "pp": 5, - "type": "normal", - "id": 32 - }, - "33": { - "name": "Tackle", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 40, - "pp": 35, - "pastGenPP": { - "LA": 30 - }, - "type": "normal", - "id": 33 - }, - "34": { - "name": "Body Slam", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 85, - "pp": 15, - "type": "normal", - "id": 34 - }, - "35": { - "name": "Wrap", - "accuracy": 90, - "class": "physical", - "generation": "generation-i", - "power": 15, - "pp": 20, - "type": "normal", - "id": 35 - }, - "36": { - "name": "Take Down", - "accuracy": 85, - "class": "physical", - "generation": "generation-i", - "power": 90, - "pp": 20, - "type": "normal", - "id": 36 - }, - "37": { - "name": "Thrash", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 120, - "pp": 10, - "pastGenPP": { - "G1": 20, - "G2": 20, - "G3": 20, - "G4": 20 - }, - "type": "normal", - "id": 37 - }, - "38": { - "name": "Double-Edge", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 120, - "pp": 15, - "pastGenPP": { - "LA": 5 - }, - "type": "normal", - "id": 38 - }, - "39": { - "name": "Tail Whip", - "accuracy": 100, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 30, - "type": "normal", - "id": 39 - }, - "40": { - "name": "Poison Sting", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 15, - "pp": 35, - "pastGenPP": { - "LA": 20 - }, - "type": "poison", - "id": 40 - }, - "41": { - "name": "Twineedle", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 25, - "pp": 20, - "type": "bug", - "id": 41 - }, - "42": { - "name": "Pin Missile", - "accuracy": 95, - "class": "physical", - "generation": "generation-i", - "power": 25, - "pp": 20, - "type": "bug", - "id": 42 - }, - "43": { - "name": "Leer", - "accuracy": 100, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 30, - "type": "normal", - "id": 43 - }, - "44": { - "name": "Bite", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 60, - "pp": 25, - "pastGenPP": { - "LA": 20 - }, - "type": "dark", - "id": 44 - }, - "45": { - "name": "Growl", - "accuracy": 100, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 40, - "type": "normal", - "id": 45 - }, - "46": { - "name": "Roar", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "normal", - "id": 46 - }, - "47": { - "name": "Sing", - "accuracy": 55, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 15, - "type": "normal", - "id": 47 - }, - "48": { - "name": "Supersonic", - "accuracy": 55, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "normal", - "id": 48 - }, - "49": { - "name": "Sonic Boom", - "accuracy": 90, - "class": "special", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "normal", - "id": 49 - }, - "50": { - "name": "Disable", - "accuracy": 100, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "normal", - "id": 50 - }, - "51": { - "name": "Acid", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 40, - "pp": 30, - "type": "poison", - "id": 51 - }, - "52": { - "name": "Ember", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 40, - "pp": 25, - "type": "fire", - "id": 52 - }, - "53": { - "name": "Flamethrower", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 90, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "fire", - "id": 53 - }, - "54": { - "name": "Mist", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 30, - "type": "ice", - "id": 54 - }, - "55": { - "name": "Water Gun", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 40, - "pp": 25, - "type": "water", - "id": 55 - }, - "56": { - "name": "Hydro Pump", - "accuracy": 80, - "class": "special", - "generation": "generation-i", - "power": 110, - "pp": 5, - "type": "water", - "id": 56 - }, - "57": { - "name": "Surf", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 90, - "pp": 15, - "type": "water", - "id": 57 - }, - "58": { - "name": "Ice Beam", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 90, - "pp": 10, - "type": "ice", - "id": 58 - }, - "59": { - "name": "Blizzard", - "accuracy": 70, - "class": "special", - "generation": "generation-i", - "power": 110, - "pp": 5, - "type": "ice", - "id": 59 - }, - "60": { - "name": "Psybeam", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 65, - "pp": 20, - "type": "psychic", - "id": 60 - }, - "61": { - "name": "Bubble Beam", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 65, - "pp": 20, - "type": "water", - "id": 61 - }, - "62": { - "name": "Aurora Beam", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 65, - "pp": 20, - "type": "ice", - "id": 62 - }, - "63": { - "name": "Hyper Beam", - "accuracy": 90, - "class": "special", - "generation": "generation-i", - "power": 150, - "pp": 5, - "type": "normal", - "id": 63 - }, - "64": { - "name": "Peck", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 35, - "pp": 35, - "type": "flying", - "id": 64 - }, - "65": { - "name": "Drill Peck", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 80, - "pp": 20, - "type": "flying", - "id": 65 - }, - "66": { - "name": "Submission", - "accuracy": 80, - "class": "physical", - "generation": "generation-i", - "power": 80, - "pp": 20, - "pastGenPP": { - "G1": 25, - "G2": 25, - "G3": 25, - "G4": 25, - "G5": 25 - }, - "type": "fighting", - "id": 66 - }, - "67": { - "name": "Low Kick", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "fighting", - "id": 67 - }, - "68": { - "name": "Counter", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "fighting", - "id": 68 - }, - "69": { - "name": "Seismic Toss", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "fighting", - "id": 69 - }, - "70": { - "name": "Strength", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 80, - "pp": 15, - "type": "normal", - "id": 70 - }, - "71": { - "name": "Absorb", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 20, - "pp": 25, - - "pastGenPP": { - "G1": 20, - "G2": 20, - "G3": 20, - "LGPE": 15, - "LA": 20 - }, - "type": "grass", - "id": 71 - }, - "72": { - "name": "Mega Drain", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 40, - "pp": 15, - "pastGenPP": { - "G1": 10, - "G2": 10, - "G3": 10, - "LGPE": 10 - }, - "type": "grass", - "id": 72 - }, - "73": { - "name": "Leech Seed", - "accuracy": 90, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 10, - "type": "grass", - "id": 73 - }, - "74": { - "name": "Growth", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "pastGenPP": { - "G1": 40, - "G2": 40, - "G3": 40, - "G4": 40, - "G5": 40 - }, - "type": "normal", - "id": 74 - }, - "75": { - "name": "Razor Leaf", - "accuracy": 95, - "class": "physical", - "generation": "generation-i", - "power": 55, - "pp": 25, - "type": "grass", - "id": 75 - }, - "76": { - "name": "Solar Beam", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 120, - "pp": 10, - "type": "grass", - "id": 76 - }, - "77": { - "name": "Poison Powder", - "accuracy": 75, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 35, - "pastGenPP": { - "LA": 20 - }, - "type": "poison", - "id": 77 - }, - "78": { - "name": "Stun Spore", - "accuracy": 75, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 30, - "pastGenPP": { - "LA": 20 - }, - "type": "grass", - "id": 78 - }, - "79": { - "name": "Sleep Powder", - "accuracy": 75, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 15, - "pastGenPP": { - "LA": 20 - }, - "type": "grass", - "id": 79 - }, - "80": { - "name": "Petal Dance", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 120, - "pp": 10, - "pastGenPP": { - "G1": 20, - "G2": 20, - "G3": 20, - "G4": 20 - }, - "type": "grass", - "id": 80 - }, - "81": { - "name": "String Shot", - "accuracy": 95, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 40, - "type": "bug", - "id": 81 - }, - "82": { - "name": "Dragon Rage", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": null, - "pp": 10, - "type": "dragon", - "id": 82 - }, - "83": { - "name": "Fire Spin", - "accuracy": 85, - "class": "special", - "generation": "generation-i", - "power": 35, - "pp": 15, - "type": "fire", - "id": 83 - }, - "84": { - "name": "Thunder Shock", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 40, - "pp": 30, - "pastGenPP": { - "LA": 25 - }, - "type": "electric", - "id": 84 - }, - "85": { - "name": "Thunderbolt", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 90, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "electric", - "id": 85 - }, - "86": { - "name": "Thunder Wave", - "accuracy": 90, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "electric", - "id": 86 - }, - "87": { - "name": "Thunder", - "accuracy": 70, - "class": "special", - "generation": "generation-i", - "power": 110, - "pp": 10, - "pastGenPP": { - "LA": 5 - }, - "type": "electric", - "id": 87 - }, - "88": { - "name": "Rock Throw", - "accuracy": 90, - "class": "physical", - "generation": "generation-i", - "power": 50, - "pp": 15, - "type": "rock", - "id": 88 - }, - "89": { - "name": "Earthquake", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 100, - "pp": 10, - "type": "ground", - "id": 89 - }, - "90": { - "name": "Fissure", - "accuracy": 30, - "class": "physical", - "generation": "generation-i", - "power": null, - "pp": 5, - "type": "ground", - "id": 90 - }, - "91": { - "name": "Dig", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 80, - "pp": 10, - "type": "ground", - "id": 91 - }, - "92": { - "name": "Toxic", - "accuracy": 90, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 10, - "type": "poison", - "id": 92 - }, - "93": { - "name": "Confusion", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 50, - "pp": 25, - "pastGenPP": { - "LA": 20 - }, - "type": "psychic", - "id": 93 - }, - "94": { - "name": "Psychic", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 90, - "pp": 10, - "type": "psychic", - "id": 94 - }, - "95": { - "name": "Hypnosis", - "accuracy": 60, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "psychic", - "id": 95 - }, - "96": { - "name": "Meditate", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 40, - "type": "psychic", - "id": 96 - }, - "97": { - "name": "Agility", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 30, - "type": "psychic", - "id": 97 - }, - "98": { - "name": "Quick Attack", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 40, - "pp": 30, - "pastGenPP": { - "LA": 20 - }, - "type": "normal", - "id": 98 - }, - "99": { - "name": "Rage", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 20, - "pp": 20, - "type": "normal", - "id": 99 - }, - "100": { - "name": "Teleport", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "psychic", - "id": 100 - }, - "101": { - "name": "Night Shade", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": null, - "pp": 15, - "type": "ghost", - "id": 101 - }, - "102": { - "name": "Mimic", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 10, - "type": "normal", - "id": 102 - }, - "103": { - "name": "Screech", - "accuracy": 85, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 40, - "type": "normal", - "id": 103 - }, - "104": { - "name": "Double Team", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 15, - "type": "normal", - "id": 104 - }, - "105": { - "name": "Recover", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 5, - "pastGenPP": { - "G1": 20, - "G2": 20, - "G3": 20, - "G4": 10, - "G5": 10, - "G6": 10, - "SMUSUM": 10, - "LGPE": 10, - "G8": 10, - "LA": 10 - }, - "type": "normal", - "id": 105 - }, - "106": { - "name": "Harden", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 30, - "type": "normal", - "id": 106 - }, - "107": { - "name": "Minimize", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 10, - "pastGenPP": { - "G1": 20, - "G2": 20, - "G3": 20, - "G4": 20, - "G5": 20 - }, - "type": "normal", - "id": 107 - }, - "108": { - "name": "Smokescreen", - "accuracy": 100, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "normal", - "id": 108 - }, - "109": { - "name": "Confuse Ray", - "accuracy": 100, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 10, - "type": "ghost", - "id": 109 - }, - "110": { - "name": "Withdraw", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 40, - "type": "water", - "id": 110 - }, - "111": { - "name": "Defense Curl", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 40, - "type": "normal", - "id": 111 - }, - "112": { - "name": "Barrier", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "pastGenPP": { - "G1": 30, - "G2": 30, - "G3": 30, - "G4": 30, - "G5": 30 - }, - "type": "psychic", - "id": 112 - }, - "113": { - "name": "Light Screen", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 30, - "type": "psychic", - "id": 113 - }, - "114": { - "name": "Haze", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 30, - "type": "ice", - "id": 114 - }, - "115": { - "name": "Reflect", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "psychic", - "id": 115 - }, - "116": { - "name": "Focus Energy", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 30, - "pastGenPP": { - "LA": 20 - }, - "type": "normal", - "id": 116 - }, - "117": { - "name": "Bide", - "accuracy": null, - "class": "physical", - "generation": "generation-i", - "power": null, - "pp": 10, - "type": "normal", - "id": 117 - }, - "118": { - "name": "Metronome", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 10, - "type": "normal", - "id": 118 - }, - "119": { - "name": "Mirror Move", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "flying", - "id": 119 - }, - "120": { - "name": "Self-Destruct", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 200, - "pp": 5, - "type": "normal", - "id": 120 - }, - "121": { - "name": "Egg Bomb", - "accuracy": 75, - "class": "physical", - "generation": "generation-i", - "power": 100, - "pp": 10, - "type": "normal", - "id": 121 - }, - "122": { - "name": "Lick", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 30, - "pp": 30, - "type": "ghost", - "id": 122 - }, - "123": { - "name": "Smog", - "accuracy": 70, - "class": "special", - "generation": "generation-i", - "power": 30, - "pp": 20, - "type": "poison", - "id": 123 - }, - "124": { - "name": "Sludge", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 65, - "pp": 20, - "type": "poison", - "id": 124 - }, - "125": { - "name": "Bone Club", - "accuracy": 85, - "class": "physical", - "generation": "generation-i", - "power": 65, - "pp": 20, - "type": "ground", - "id": 125 - }, - "126": { - "name": "Fire Blast", - "accuracy": 85, - "class": "special", - "generation": "generation-i", - "power": 110, - "pp": 5, - "type": "fire", - "id": 126 - }, - "127": { - "name": "Waterfall", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 80, - "pp": 15, - "type": "water", - "id": 127 - }, - "128": { - "name": "Clamp", - "accuracy": 85, - "class": "physical", - "generation": "generation-i", - "power": 35, - "pp": 15, - "pastGenPP": { - "G1": 10, - "G2": 10, - "G3": 10, - "G4": 10 - }, - "type": "water", - "id": 128 - }, - "129": { - "name": "Swift", - "accuracy": null, - "class": "special", - "generation": "generation-i", - "power": 60, - "pp": 20, - "type": "normal", - "id": 129 - }, - "130": { - "name": "Skull Bash", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 130, - "pp": 10, - "pastGenPP": { - "G1": 15, - "G2": 15, - "G3": 15, - "G4": 15, - "G5": 15 - }, - "type": "normal", - "id": 130 - }, - "131": { - "name": "Spike Cannon", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 20, - "pp": 15, - "type": "normal", - "id": 131 - }, - "132": { - "name": "Constrict", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 10, - "pp": 35, - "type": "normal", - "id": 132 - }, - "133": { - "name": "Amnesia", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "psychic", - "id": 133 - }, - "134": { - "name": "Kinesis", - "accuracy": 80, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 15, - "type": "psychic", - "id": 134 - }, - "135": { - "name": "Soft-Boiled", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 5, - "pastGenPP": { - "G1": 10, - "G2": 10, - "G3": 10, - "G4": 10, - "G5": 10, - "G6": 10, - "SMUSUM": 10, - "LGPE": 10, - "G8": 10, - "LA": 10 - }, - "type": "normal", - "id": 135 - }, - "136": { - "name": "High Jump Kick", - "accuracy": 90, - "class": "physical", - "generation": "generation-i", - "power": 130, - "pp": 10, - "pastGenPP": { - "G1": 20, - "G2": 20, - "G3": 20, - "G4": 20 - }, - "type": "fighting", - "id": 136 - }, - "137": { - "name": "Glare", - "accuracy": 100, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 30, - "type": "normal", - "id": 137 - }, - "138": { - "name": "Dream Eater", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 100, - "pp": 15, - "type": "psychic", - "id": 138 - }, - "139": { - "name": "Poison Gas", - "accuracy": 90, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 40, - "pastGenPP": { - "LA": 20 - }, - "type": "poison", - "id": 139 - }, - "140": { - "name": "Barrage", - "accuracy": 85, - "class": "physical", - "generation": "generation-i", - "power": 15, - "pp": 20, - "type": "normal", - "id": 140 - }, - "141": { - "name": "Leech Life", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 80, - "pp": 10, - "pastGenPP": { - "G1": 15, - "G2": 15, - "G3": 15, - "G4": 15, - "G5": 15, - "G6": 15 - }, - "type": "bug", - "id": 141 - }, - "142": { - "name": "Lovely Kiss", - "accuracy": 75, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 10, - "type": "normal", - "id": 142 - }, - "143": { - "name": "Sky Attack", - "accuracy": 90, - "class": "physical", - "generation": "generation-i", - "power": 140, - "pp": 5, - "type": "flying", - "id": 143 - }, - "144": { - "name": "Transform", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 10, - "type": "normal", - "id": 144 - }, - "145": { - "name": "Bubble", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 40, - "pp": 30, - "pastGenPP": { - "LA": 25 - }, - "type": "water", - "id": 145 - }, - "146": { - "name": "Dizzy Punch", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 70, - "pp": 10, - "type": "normal", - "id": 146 - }, - "147": { - "name": "Spore", - "accuracy": 100, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "grass", - "id": 147 - }, - "148": { - "name": "Flash", - "accuracy": 100, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "type": "normal", - "id": 148 - }, - "149": { - "name": "Psywave", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": null, - "pp": 15, - "type": "psychic", - "id": 149 - }, - "150": { - "name": "Splash", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 40, - "type": "normal", - "id": 150 - }, - "151": { - "name": "Acid Armor", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 20, - "pastGenPP": { - "G1": 40, - "G2": 40, - "G3": 40, - "G4": 40, - "G5": 40 - }, - "type": "poison", - "id": 151 - }, - "152": { - "name": "Crabhammer", - "accuracy": 90, - "class": "physical", - "generation": "generation-i", - "power": 100, - "pp": 10, - "type": "water", - "id": 152 - }, - "153": { - "name": "Explosion", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 250, - "pp": 5, - "type": "normal", - "id": 153 - }, - "154": { - "name": "Fury Swipes", - "accuracy": 80, - "class": "physical", - "generation": "generation-i", - "power": 18, - "pp": 15, - "type": "normal", - "id": 154 - }, - "155": { - "name": "Bonemerang", - "accuracy": 90, - "class": "physical", - "generation": "generation-i", - "power": 50, - "pp": 10, - "type": "ground", - "id": 155 - }, - "156": { - "name": "Rest", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 5, - "pastGenPP": { - "G1": 10, - "G2": 10, - "G3": 10, - "G4": 10, - "G5": 10, - "G6": 10, - "SMUSUM": 10, - "LGPE": 10, - "G8": 10, - "LA": 10 - }, - "type": "psychic", - "id": 156 - }, - "157": { - "name": "Rock Slide", - "accuracy": 90, - "class": "physical", - "generation": "generation-i", - "power": 75, - "pp": 10, - "type": "rock", - "id": 157 - }, - "158": { - "name": "Hyper Fang", - "accuracy": 90, - "class": "physical", - "generation": "generation-i", - "power": 80, - "pp": 15, - "type": "normal", - "id": 158 - }, - "159": { - "name": "Sharpen", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 30, - "type": "normal", - "id": 159 - }, - "160": { - "name": "Conversion", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 30, - "type": "normal", - "id": 160 - }, - "161": { - "name": "Tri Attack", - "accuracy": 100, - "class": "special", - "generation": "generation-i", - "power": 80, - "pp": 10, - "type": "normal", - "id": 161 - }, - "162": { - "name": "Super Fang", - "accuracy": 90, - "class": "physical", - "generation": "generation-i", - "power": null, - "pp": 10, - "type": "normal", - "id": 162 - }, - "163": { - "name": "Slash", - "accuracy": 100, - "class": "physical", - "generation": "generation-i", - "power": 70, - "pp": 20, - "pastGenPP": { - "LA": 15 - }, - "type": "normal", - "id": 163 - }, - "164": { - "name": "Substitute", - "accuracy": null, - "class": "status", - "generation": "generation-i", - "power": null, - "pp": 10, - "type": "normal", - "id": 164 - }, - "165": { - "name": "Struggle", - "accuracy": null, - "class": "physical", - "generation": "generation-i", - "power": 50, - "pp": 1, - "pastGenPP": { - "G1": 10 - }, - "type": "normal", - "id": 165 - }, - "166": { - "name": "Sketch", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 1, - "type": "normal", - "id": 166 - }, - "167": { - "name": "Triple Kick", - "accuracy": 90, - "class": "physical", - "generation": "generation-ii", - "power": 10, - "pp": 10, - "type": "fighting", - "id": 167 - }, - "168": { - "name": "Thief", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": 60, - "pp": 25, - "pastGenPP": { - "G2": 10, - "G3": 10, - "G4": 10, - "G5": 10 - }, - "type": "dark", - "id": 168 - }, - "169": { - "name": "Spider Web", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 10, - "type": "bug", - "id": 169 - }, - "170": { - "name": "Mind Reader", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "type": "normal", - "id": 170 - }, - "171": { - "name": "Nightmare", - "accuracy": 100, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 15, - "type": "ghost", - "id": 171 - }, - "172": { - "name": "Flame Wheel", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": 60, - "pp": 25, - "pastGenPP": { - "LA": 20 - }, - "type": "fire", - "id": 172 - }, - "173": { - "name": "Snore", - "accuracy": 100, - "class": "special", - "generation": "generation-ii", - "power": 50, - "pp": 15, - "type": "normal", - "id": 173 - }, - "174": { - "name": "Curse", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 10, - "type": "ghost", - "id": 174 - }, - "175": { - "name": "Flail", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": null, - "pp": 15, - "type": "normal", - "id": 175 - }, - "176": { - "name": "Conversion 2", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 30, - "type": "normal", - "id": 176 - }, - "177": { - "name": "Aeroblast", - "accuracy": 95, - "class": "special", - "generation": "generation-ii", - "power": 100, - "pp": 5, - "type": "flying", - "id": 177 - }, - "178": { - "name": "Cotton Spore", - "accuracy": 100, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 40, - "type": "grass", - "id": 178 - }, - "179": { - "name": "Reversal", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": null, - "pp": 15, - "type": "fighting", - "id": 179 - }, - "180": { - "name": "Spite", - "accuracy": 100, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 10, - "type": "ghost", - "id": 180 - }, - "181": { - "name": "Powder Snow", - "accuracy": 100, - "class": "special", - "generation": "generation-ii", - "power": 40, - "pp": 25, - "type": "ice", - "id": 181 - }, - "182": { - "name": "Protect", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 10, - "type": "normal", - "id": 182 - }, - "183": { - "name": "Mach Punch", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": 40, - "pp": 30, - "pastGenPP": { - "LA": 20 - }, - "type": "fighting", - "id": 183 - }, - "184": { - "name": "Scary Face", - "accuracy": 100, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 10, - "type": "normal", - "id": 184 - }, - "185": { - "name": "Feint Attack", - "accuracy": null, - "class": "physical", - "generation": "generation-ii", - "power": 60, - "pp": 20, - "type": "dark", - "id": 185 - }, - "186": { - "name": "Sweet Kiss", - "accuracy": 75, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 10, - "type": "fairy", - "id": 186 - }, - "187": { - "name": "Belly Drum", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 10, - "type": "normal", - "id": 187 - }, - "188": { - "name": "Sludge Bomb", - "accuracy": 100, - "class": "special", - "generation": "generation-ii", - "power": 90, - "pp": 10, - "type": "poison", - "id": 188 - }, - "189": { - "name": "Mud-Slap", - "accuracy": 100, - "class": "special", - "generation": "generation-ii", - "power": 20, - "pp": 10, - "pastGenPP": { - "LA": 20 - }, - "type": "ground", - "id": 189 - }, - "190": { - "name": "Octazooka", - "accuracy": 85, - "class": "special", - "generation": "generation-ii", - "power": 65, - "pp": 10, - "pastGenPP": { - "LA": 15 - }, - "type": "water", - "id": 190 - }, - "191": { - "name": "Spikes", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 20, - "type": "ground", - "id": 191 - }, - "192": { - "name": "Zap Cannon", - "accuracy": 50, - "class": "special", - "generation": "generation-ii", - "power": 120, - "pp": 5, - "type": "electric", - "id": 192 - }, - "193": { - "name": "Foresight", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 40, - "type": "normal", - "id": 193 - }, - "194": { - "name": "Destiny Bond", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "type": "ghost", - "id": 194 - }, - "195": { - "name": "Perish Song", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "type": "normal", - "id": 195 - }, - "196": { - "name": "Icy Wind", - "accuracy": 95, - "class": "special", - "generation": "generation-ii", - "power": 55, - "pp": 15, - "pastGenPP": { - "LA": 20 - }, - "type": "ice", - "id": 196 - }, - "197": { - "name": "Detect", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "type": "fighting", - "id": 197 - }, - "198": { - "name": "Bone Rush", - "accuracy": 90, - "class": "physical", - "generation": "generation-ii", - "power": 25, - "pp": 10, - "type": "ground", - "id": 198 - }, - "199": { - "name": "Lock-On", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "type": "normal", - "id": 199 - }, - "200": { - "name": "Outrage", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": 120, - "pp": 10, - "pastGenPP": { - "G2": 15, - "G3": 15, - "G4": 15 - }, - "type": "dragon", - "id": 200 - }, - "201": { - "name": "Sandstorm", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 10, - "type": "rock", - "id": 201 - }, - "202": { - "name": "Giga Drain", - "accuracy": 100, - "class": "special", - "generation": "generation-ii", - "power": 75, - "pp": 10, - "pastGenPP": { - "G1": 5, - "G2": 5, - "G3": 5 - }, - "type": "grass", - "id": 202 - }, - "203": { - "name": "Endure", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 10, - "type": "normal", - "id": 203 - }, - "204": { - "name": "Charm", - "accuracy": 100, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 20, - "type": "fairy", - "id": 204 - }, - "205": { - "name": "Rollout", - "accuracy": 90, - "class": "physical", - "generation": "generation-ii", - "power": 30, - "pp": 20, - "type": "rock", - "id": 205 - }, - "206": { - "name": "False Swipe", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": 40, - "pp": 40, - "pastGenPP": { - "LA": 30 - }, - "type": "normal", - "id": 206 - }, - "207": { - "name": "Swagger", - "accuracy": 85, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 15, - "type": "normal", - "id": 207 - }, - "208": { - "name": "Milk Drink", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "pastGenPP": { - "G1": 10, - "G2": 10, - "G3": 10, - "G4": 10, - "G5": 10, - "G6": 10, - "SMUSUM": 10, - "LGPE": 10, - "G8": 10 - }, - "type": "normal", - "id": 208 - }, - "209": { - "name": "Spark", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": 65, - "pp": 20, - "type": "electric", - "id": 209 - }, - "210": { - "name": "Fury Cutter", - "accuracy": 95, - "class": "physical", - "generation": "generation-ii", - "power": 40, - "pp": 20, - "type": "bug", - "id": 210 - }, - "211": { - "name": "Steel Wing", - "accuracy": 90, - "class": "physical", - "generation": "generation-ii", - "power": 70, - "pp": 25, - "type": "steel", - "id": 211 - }, - "212": { - "name": "Mean Look", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "type": "normal", - "id": 212 - }, - "213": { - "name": "Attract", - "accuracy": 100, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 15, - "type": "normal", - "id": 213 - }, - "214": { - "name": "Sleep Talk", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 10, - "type": "normal", - "id": 214 - }, - "215": { - "name": "Heal Bell", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "type": "normal", - "id": 215 - }, - "216": { - "name": "Return", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": null, - "pp": 20, - "type": "normal", - "id": 216 - }, - "217": { - "name": "Present", - "accuracy": 90, - "class": "physical", - "generation": "generation-ii", - "power": null, - "pp": 15, - "type": "normal", - "id": 217 - }, - "218": { - "name": "Frustration", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": null, - "pp": 20, - "type": "normal", - "id": 218 - }, - "219": { - "name": "Safeguard", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 25, - "type": "normal", - "id": 219 - }, - "220": { - "name": "Pain Split", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 20, - "type": "normal", - "id": 220 - }, - "221": { - "name": "Sacred Fire", - "accuracy": 95, - "class": "physical", - "generation": "generation-ii", - "power": 100, - "pp": 5, - "type": "fire", - "id": 221 - }, - "222": { - "name": "Magnitude", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": null, - "pp": 30, - "type": "ground", - "id": 222 - }, - "223": { - "name": "Dynamic Punch", - "accuracy": 50, - "class": "physical", - "generation": "generation-ii", - "power": 100, - "pp": 5, - "type": "fighting", - "id": 223 - }, - "224": { - "name": "Megahorn", - "accuracy": 85, - "class": "physical", - "generation": "generation-ii", - "power": 120, - "pp": 10, - "pastGenPP": { - "LA": 5 - }, - "type": "bug", - "id": 224 - }, - "225": { - "name": "Dragon Breath", - "accuracy": 100, - "class": "special", - "generation": "generation-ii", - "power": 60, - "pp": 20, - "type": "dragon", - "id": 225 - }, - "226": { - "name": "Baton Pass", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 40, - "type": "normal", - "id": 226 - }, - "227": { - "name": "Encore", - "accuracy": 100, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "type": "normal", - "id": 227 - }, - "228": { - "name": "Pursuit", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": 40, - "pp": 20, - "type": "dark", - "id": 228 - }, - "229": { - "name": "Rapid Spin", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": 50, - "pp": 40, - "type": "normal", - "id": 229 - }, - "230": { - "name": "Sweet Scent", - "accuracy": 100, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 20, - "type": "normal", - "id": 230 - }, - "231": { - "name": "Iron Tail", - "accuracy": 75, - "class": "physical", - "generation": "generation-ii", - "power": 100, - "pp": 15, - "pastGenPP": { - "LA": 5 - }, - "type": "steel", - "id": 231 - }, - "232": { - "name": "Metal Claw", - "accuracy": 95, - "class": "physical", - "generation": "generation-ii", - "power": 50, - "pp": 35, - "type": "steel", - "id": 232 - }, - "233": { - "name": "Vital Throw", - "accuracy": null, - "class": "physical", - "generation": "generation-ii", - "power": 70, - "pp": 10, - "type": "fighting", - "id": 233 - }, - "234": { - "name": "Morning Sun", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "type": "normal", - "id": 234 - }, - "235": { - "name": "Synthesis", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "type": "grass", - "id": 235 - }, - "236": { - "name": "Moonlight", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "type": "fairy", - "id": 236 - }, - "237": { - "name": "Hidden Power", - "accuracy": 100, - "class": "special", - "generation": "generation-ii", - "power": 60, - "pp": 15, - "type": "normal", - "id": 237 - }, - "238": { - "name": "Cross Chop", - "accuracy": 80, - "class": "physical", - "generation": "generation-ii", - "power": 100, - "pp": 5, - "type": "fighting", - "id": 238 - }, - "239": { - "name": "Twister", - "accuracy": 100, - "class": "special", - "generation": "generation-ii", - "power": 40, - "pp": 20, - "pastGenPP": { - "LA": 25 - }, - "type": "dragon", - "id": 239 - }, - "240": { - "name": "Rain Dance", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "type": "water", - "id": 240 - }, - "241": { - "name": "Sunny Day", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 5, - "type": "fire", - "id": 241 - }, - "242": { - "name": "Crunch", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": 80, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "dark", - "id": 242 - }, - "243": { - "name": "Mirror Coat", - "accuracy": 100, - "class": "special", - "generation": "generation-ii", - "power": null, - "pp": 20, - "type": "psychic", - "id": 243 - }, - "244": { - "name": "Psych Up", - "accuracy": null, - "class": "status", - "generation": "generation-ii", - "power": null, - "pp": 10, - "type": "normal", - "id": 244 - }, - "245": { - "name": "Extreme Speed", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": 80, - "pp": 5, - "type": "normal", - "id": 245 - }, - "246": { - "name": "Ancient Power", - "accuracy": 100, - "class": "special", - "generation": "generation-ii", - "power": 60, - "pp": 5, - "pastGenPP": { - "LA": 15 - }, - "type": "rock", - "id": 246 - }, - "247": { - "name": "Shadow Ball", - "accuracy": 100, - "class": "special", - "generation": "generation-ii", - "power": 80, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "ghost", - "id": 247 - }, - "248": { - "name": "Future Sight", - "accuracy": 100, - "class": "special", - "generation": "generation-ii", - "power": 120, - "pp": 10, - "pastGenPP": { - "G2": 15, - "G3": 15, - "G4": 15 - }, - "type": "psychic", - "id": 248 - }, - "249": { - "name": "Rock Smash", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": 40, - "pp": 15, - "pastGenPP": { - "LA": 20 - }, - "type": "fighting", - "id": 249 - }, - "250": { - "name": "Whirlpool", - "accuracy": 85, - "class": "special", - "generation": "generation-ii", - "power": 35, - "pp": 15, - "type": "water", - "id": 250 - }, - "251": { - "name": "Beat Up", - "accuracy": 100, - "class": "physical", - "generation": "generation-ii", - "power": null, - "pp": 10, - "type": "dark", - "id": 251 - }, - "252": { - "name": "Fake Out", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 40, - "pp": 10, - "type": "normal", - "id": 252 - }, - "253": { - "name": "Uproar", - "accuracy": 100, - "class": "special", - "generation": "generation-iii", - "power": 90, - "pp": 10, - "type": "normal", - "id": 253 - }, - "254": { - "name": "Stockpile", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "pastGenPP": { - "G3": 10 - }, - "type": "normal", - "id": 254 - }, - "255": { - "name": "Spit Up", - "accuracy": 100, - "class": "special", - "generation": "generation-iii", - "power": null, - "pp": 10, - "type": "normal", - "id": 255 - }, - "256": { - "name": "Swallow", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 10, - "type": "normal", - "id": 256 - }, - "257": { - "name": "Heat Wave", - "accuracy": 90, - "class": "special", - "generation": "generation-iii", - "power": 95, - "pp": 10, - "type": "fire", - "id": 257 - }, - "258": { - "name": "Hail", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 10, - "type": "ice", - "id": 258 - }, - "259": { - "name": "Torment", - "accuracy": 100, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 15, - "type": "dark", - "id": 259 - }, - "260": { - "name": "Flatter", - "accuracy": 100, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 15, - "type": "dark", - "id": 260 - }, - "261": { - "name": "Will-O-Wisp", - "accuracy": 85, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 15, - "type": "fire", - "id": 261 - }, - "262": { - "name": "Memento", - "accuracy": 100, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 10, - "type": "dark", - "id": 262 - }, - "263": { - "name": "Facade", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 70, - "pp": 20, - "type": "normal", - "id": 263 - }, - "264": { - "name": "Focus Punch", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 150, - "pp": 20, - "type": "fighting", - "id": 264 - }, - "265": { - "name": "Smelling Salts", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 70, - "pp": 10, - "type": "normal", - "id": 265 - }, - "266": { - "name": "Follow Me", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "normal", - "id": 266 - }, - "267": { - "name": "Nature Power", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "normal", - "id": 267 - }, - "268": { - "name": "Charge", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "electric", - "id": 268 - }, - "269": { - "name": "Taunt", - "accuracy": 100, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "dark", - "id": 269 - }, - "270": { - "name": "Helping Hand", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "normal", - "id": 270 - }, - "271": { - "name": "Trick", - "accuracy": 100, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 10, - "type": "psychic", - "id": 271 - }, - "272": { - "name": "Role Play", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 10, - "type": "psychic", - "id": 272 - }, - "273": { - "name": "Wish", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 10, - "type": "normal", - "id": 273 - }, - "274": { - "name": "Assist", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "normal", - "id": 274 - }, - "275": { - "name": "Ingrain", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "grass", - "id": 275 - }, - "276": { - "name": "Superpower", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 120, - "pp": 5, - "type": "fighting", - "id": 276 - }, - "277": { - "name": "Magic Coat", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 15, - "type": "psychic", - "id": 277 - }, - "278": { - "name": "Recycle", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 10, - "type": "normal", - "id": 278 - }, - "279": { - "name": "Revenge", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 60, - "pp": 10, - "type": "fighting", - "id": 279 - }, - "280": { - "name": "Brick Break", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 75, - "pp": 15, - "type": "fighting", - "id": 280 - }, - "281": { - "name": "Yawn", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 10, - "type": "normal", - "id": 281 - }, - "282": { - "name": "Knock Off", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 65, - "pp": 20, - "type": "dark", - "id": 282 - }, - "283": { - "name": "Endeavor", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": null, - "pp": 5, - "type": "normal", - "id": 283 - }, - "284": { - "name": "Eruption", - "accuracy": 100, - "class": "special", - "generation": "generation-iii", - "power": 150, - "pp": 5, - "type": "fire", - "id": 284 - }, - "285": { - "name": "Skill Swap", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 10, - "type": "psychic", - "id": 285 - }, - "286": { - "name": "Imprison", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 10, - "type": "psychic", - "id": 286 - }, - "287": { - "name": "Refresh", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "normal", - "id": 287 - }, - "288": { - "name": "Grudge", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 5, - "type": "ghost", - "id": 288 - }, - "289": { - "name": "Snatch", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 10, - "type": "dark", - "id": 289 - }, - "290": { - "name": "Secret Power", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 70, - "pp": 20, - "type": "normal", - "id": 290 - }, - "291": { - "name": "Dive", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 80, - "pp": 10, - "type": "water", - "id": 291 - }, - "292": { - "name": "Arm Thrust", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 15, - "pp": 20, - "type": "fighting", - "id": 292 - }, - "293": { - "name": "Camouflage", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "normal", - "id": 293 - }, - "294": { - "name": "Tail Glow", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "bug", - "id": 294 - }, - "295": { - "name": "Luster Purge", - "accuracy": 100, - "class": "special", - "generation": "generation-iii", - "power": 70, - "pp": 5, - "type": "psychic", - "id": 295 - }, - "296": { - "name": "Mist Ball", - "accuracy": 100, - "class": "special", - "generation": "generation-iii", - "power": 70, - "pp": 5, - "type": "psychic", - "id": 296 - }, - "297": { - "name": "Feather Dance", - "accuracy": 100, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 15, - "type": "flying", - "id": 297 - }, - "298": { - "name": "Teeter Dance", - "accuracy": 100, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "normal", - "id": 298 - }, - "299": { - "name": "Blaze Kick", - "accuracy": 90, - "class": "physical", - "generation": "generation-iii", - "power": 85, - "pp": 10, - "type": "fire", - "id": 299 - }, - "300": { - "name": "Mud Sport", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 15, - "type": "ground", - "id": 300 - }, - "301": { - "name": "Ice Ball", - "accuracy": 90, - "class": "physical", - "generation": "generation-iii", - "power": 30, - "pp": 20, - "type": "ice", - "id": 301 - }, - "302": { - "name": "Needle Arm", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 60, - "pp": 15, - "type": "grass", - "id": 302 - }, - "303": { - "name": "Slack Off", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 5, - "pastGenPP": { - "G3": 10, - "G4": 10, - "G5": 10, - "G6": 10, - "SMUSUM": 10, - "LGPE": 10, - "G8": 10 - }, - "type": "normal", - "id": 303 - }, - "304": { - "name": "Hyper Voice", - "accuracy": 100, - "class": "special", - "generation": "generation-iii", - "power": 90, - "pp": 10, - "type": "normal", - "id": 304 - }, - "305": { - "name": "Poison Fang", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 50, - "pp": 15, - "type": "poison", - "id": 305 - }, - "306": { - "name": "Crush Claw", - "accuracy": 95, - "class": "physical", - "generation": "generation-iii", - "power": 75, - "pp": 10, - "type": "normal", - "id": 306 - }, - "307": { - "name": "Blast Burn", - "accuracy": 90, - "class": "special", - "generation": "generation-iii", - "power": 150, - "pp": 5, - "type": "fire", - "id": 307 - }, - "308": { - "name": "Hydro Cannon", - "accuracy": 90, - "class": "special", - "generation": "generation-iii", - "power": 150, - "pp": 5, - "type": "water", - "id": 308 - }, - "309": { - "name": "Meteor Mash", - "accuracy": 90, - "class": "physical", - "generation": "generation-iii", - "power": 90, - "pp": 10, - "type": "steel", - "id": 309 - }, - "310": { - "name": "Astonish", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 30, - "pp": 15, - "pastGenPP": { - "LA": 25 - }, - "type": "ghost", - "id": 310 - }, - "311": { - "name": "Weather Ball", - "accuracy": 100, - "class": "special", - "generation": "generation-iii", - "power": 50, - "pp": 10, - "type": "normal", - "id": 311 - }, - "312": { - "name": "Aromatherapy", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 5, - "type": "grass", - "id": 312 - }, - "313": { - "name": "Fake Tears", - "accuracy": 100, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "dark", - "id": 313 - }, - "314": { - "name": "Air Cutter", - "accuracy": 95, - "class": "special", - "generation": "generation-iii", - "power": 60, - "pp": 25, - "pastGenPP": { - "LA": 15 - }, - "type": "flying", - "id": 314 - }, - "315": { - "name": "Overheat", - "accuracy": 90, - "class": "special", - "generation": "generation-iii", - "power": 130, - "pp": 5, - "type": "fire", - "id": 315 - }, - "316": { - "name": "Odor Sleuth", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 40, - "type": "normal", - "id": 316 - }, - "317": { - "name": "Rock Tomb", - "accuracy": 95, - "class": "physical", - "generation": "generation-iii", - "power": 60, - "pp": 15, - "pastGenPP": { - "G3": 10, - "G4": 10, - "G5": 10 - }, - "type": "rock", - "id": 317 - }, - "318": { - "name": "Silver Wind", - "accuracy": 100, - "class": "special", - "generation": "generation-iii", - "power": 60, - "pp": 5, - "pastGenPP": { - "LA": 15 - }, - "type": "bug", - "id": 318 - }, - "319": { - "name": "Metal Sound", - "accuracy": 85, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 40, - "type": "steel", - "id": 319 - }, - "320": { - "name": "Grass Whistle", - "accuracy": 55, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 15, - "type": "grass", - "id": 320 - }, - "321": { - "name": "Tickle", - "accuracy": 100, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "normal", - "id": 321 - }, - "322": { - "name": "Cosmic Power", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "psychic", - "id": 322 - }, - "323": { - "name": "Water Spout", - "accuracy": 100, - "class": "special", - "generation": "generation-iii", - "power": 150, - "pp": 5, - "type": "water", - "id": 323 - }, - "324": { - "name": "Signal Beam", - "accuracy": 100, - "class": "special", - "generation": "generation-iii", - "power": 75, - "pp": 15, - "type": "bug", - "id": 324 - }, - "325": { - "name": "Shadow Punch", - "accuracy": null, - "class": "physical", - "generation": "generation-iii", - "power": 60, - "pp": 20, - "type": "ghost", - "id": 325 - }, - "326": { - "name": "Extrasensory", - "accuracy": 100, - "class": "special", - "generation": "generation-iii", - "power": 80, - "pp": 20, - "pastGenPP": { - "G1": 30, - "G2": 30, - "G3": 30, - "G4": 30, - "G5": 30, - "LA": 15 - }, - "type": "psychic", - "id": 326 - }, - "327": { - "name": "Sky Uppercut", - "accuracy": 90, - "class": "physical", - "generation": "generation-iii", - "power": 85, - "pp": 15, - "type": "fighting", - "id": 327 - }, - "328": { - "name": "Sand Tomb", - "accuracy": 85, - "class": "physical", - "generation": "generation-iii", - "power": 35, - "pp": 15, - "type": "ground", - "id": 328 - }, - "329": { - "name": "Sheer Cold", - "accuracy": 30, - "class": "special", - "generation": "generation-iii", - "power": null, - "pp": 5, - "type": "ice", - "id": 329 - }, - "330": { - "name": "Muddy Water", - "accuracy": 85, - "class": "special", - "generation": "generation-iii", - "power": 90, - "pp": 10, - "type": "water", - "id": 330 - }, - "331": { - "name": "Bullet Seed", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 25, - "pp": 30, - "type": "grass", - "id": 331 - }, - "332": { - "name": "Aerial Ace", - "accuracy": null, - "class": "physical", - "generation": "generation-iii", - "power": 60, - "pp": 20, - "type": "flying", - "id": 332 - }, - "333": { - "name": "Icicle Spear", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 25, - "pp": 30, - "type": "ice", - "id": 333 - }, - "334": { - "name": "Iron Defense", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 15, - "pastGenPP": { - "LA": 20 - }, - "type": "steel", - "id": 334 - }, - "335": { - "name": "Block", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 5, - "type": "normal", - "id": 335 - }, - "336": { - "name": "Howl", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 40, - "type": "normal", - "id": 336 - }, - "337": { - "name": "Dragon Claw", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 80, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "dragon", - "id": 337 - }, - "338": { - "name": "Frenzy Plant", - "accuracy": 90, - "class": "special", - "generation": "generation-iii", - "power": 150, - "pp": 5, - "type": "grass", - "id": 338 - }, - "339": { - "name": "Bulk Up", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "pastGenPP": { - "LA": 10 - }, - "type": "fighting", - "id": 339 - }, - "340": { - "name": "Bounce", - "accuracy": 85, - "class": "physical", - "generation": "generation-iii", - "power": 85, - "pp": 5, - "type": "flying", - "id": 340 - }, - "341": { - "name": "Mud Shot", - "accuracy": 95, - "class": "special", - "generation": "generation-iii", - "power": 55, - "pp": 15, - "type": "ground", - "id": 341 - }, - "342": { - "name": "Poison Tail", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 50, - "pp": 25, - "type": "poison", - "id": 342 - }, - "343": { - "name": "Covet", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 60, - "pp": 25, - "pastGenPP": { - "G1": 40, - "G2": 40, - "G3": 40, - "G4": 40, - "G5": 40 - }, - "type": "normal", - "id": 343 - }, - "344": { - "name": "Volt Tackle", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 120, - "pp": 15, - "pastGenPP": { - "LA": 5 - }, - "type": "electric", - "id": 344 - }, - "345": { - "name": "Magical Leaf", - "accuracy": null, - "class": "special", - "generation": "generation-iii", - "power": 60, - "pp": 20, - "type": "grass", - "id": 345 - }, - "346": { - "name": "Water Sport", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 15, - "type": "water", - "id": 346 - }, - "347": { - "name": "Calm Mind", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "pastGenPP": { - "LA": 10 - }, - "type": "psychic", - "id": 347 - }, - "348": { - "name": "Leaf Blade", - "accuracy": 100, - "class": "physical", - "generation": "generation-iii", - "power": 90, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "grass", - "id": 348 - }, - "349": { - "name": "Dragon Dance", - "accuracy": null, - "class": "status", - "generation": "generation-iii", - "power": null, - "pp": 20, - "type": "dragon", - "id": 349 - }, - "350": { - "name": "Rock Blast", - "accuracy": 90, - "class": "physical", - "generation": "generation-iii", - "power": 25, - "pp": 10, - "type": "rock", - "id": 350 - }, - "351": { - "name": "Shock Wave", - "accuracy": null, - "class": "special", - "generation": "generation-iii", - "power": 60, - "pp": 20, - "type": "electric", - "id": 351 - }, - "352": { - "name": "Water Pulse", - "accuracy": 100, - "class": "special", - "generation": "generation-iii", - "power": 60, - "pp": 20, - "type": "water", - "id": 352 - }, - "353": { - "name": "Doom Desire", - "accuracy": 100, - "class": "special", - "generation": "generation-iii", - "power": 140, - "pp": 5, - "type": "steel", - "id": 353 - }, - "354": { - "name": "Psycho Boost", - "accuracy": 90, - "class": "special", - "generation": "generation-iii", - "power": 140, - "pp": 5, - "type": "psychic", - "id": 354 - }, - "355": { - "name": "Roost", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 5, - "pastGenPP": { - "G4": 10, - "G5": 10, - "G6": 10, - "SMUSUM": 10, - "LGPE": 10, - "G8": 10, - "LA": 10 - }, - "type": "flying", - "id": 355 - }, - "356": { - "name": "Gravity", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 5, - "type": "psychic", - "id": 356 - }, - "357": { - "name": "Miracle Eye", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 40, - "type": "psychic", - "id": 357 - }, - "358": { - "name": "Wake-Up Slap", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 70, - "pp": 10, - "type": "fighting", - "id": 358 - }, - "359": { - "name": "Hammer Arm", - "accuracy": 90, - "class": "physical", - "generation": "generation-iv", - "power": 100, - "pp": 10, - "type": "fighting", - "id": 359 - }, - "360": { - "name": "Gyro Ball", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": null, - "pp": 5, - "type": "steel", - "id": 360 - }, - "361": { - "name": "Healing Wish", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "psychic", - "id": 361 - }, - "362": { - "name": "Brine", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 65, - "pp": 10, - "type": "water", - "id": 362 - }, - "363": { - "name": "Natural Gift", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": null, - "pp": 15, - "type": "normal", - "id": 363 - }, - "364": { - "name": "Feint", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 30, - "pp": 10, - "type": "normal", - "id": 364 - }, - "365": { - "name": "Pluck", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 60, - "pp": 20, - "type": "flying", - "id": 365 - }, - "366": { - "name": "Tailwind", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 15, - "pastGenPP": { - "G4": 30, - "G5": 30 - }, - "type": "flying", - "id": 366 - }, - "367": { - "name": "Acupressure", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 30, - "type": "normal", - "id": 367 - }, - "368": { - "name": "Metal Burst", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "steel", - "id": 368 - }, - "369": { - "name": "U-turn", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 70, - "pp": 20, - "type": "bug", - "id": 369 - }, - "370": { - "name": "Close Combat", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 120, - "pp": 5, - "type": "fighting", - "id": 370 - }, - "371": { - "name": "Payback", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 50, - "pp": 10, - "type": "dark", - "id": 371 - }, - "372": { - "name": "Assurance", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 60, - "pp": 10, - "type": "dark", - "id": 372 - }, - "373": { - "name": "Embargo", - "accuracy": 100, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 15, - "type": "dark", - "id": 373 - }, - "374": { - "name": "Fling", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "dark", - "id": 374 - }, - "375": { - "name": "Psycho Shift", - "accuracy": 100, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "psychic", - "id": 375 - }, - "376": { - "name": "Trump Card", - "accuracy": null, - "class": "special", - "generation": "generation-iv", - "power": null, - "pp": 5, - "type": "normal", - "id": 376 - }, - "377": { - "name": "Heal Block", - "accuracy": 100, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 15, - "type": "psychic", - "id": 377 - }, - "378": { - "name": "Wring Out", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": null, - "pp": 5, - "type": "normal", - "id": 378 - }, - "379": { - "name": "Power Trick", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "psychic", - "id": 379 - }, - "380": { - "name": "Gastro Acid", - "accuracy": 100, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "poison", - "id": 380 - }, - "381": { - "name": "Lucky Chant", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 30, - "type": "normal", - "id": 381 - }, - "382": { - "name": "Me First", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 20, - "type": "normal", - "id": 382 - }, - "383": { - "name": "Copycat", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 20, - "type": "normal", - "id": 383 - }, - "384": { - "name": "Power Swap", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "psychic", - "id": 384 - }, - "385": { - "name": "Guard Swap", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "psychic", - "id": 385 - }, - "386": { - "name": "Punishment", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": null, - "pp": 5, - "type": "dark", - "id": 386 - }, - "387": { - "name": "Last Resort", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 140, - "pp": 5, - "type": "normal", - "id": 387 - }, - "388": { - "name": "Worry Seed", - "accuracy": 100, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "grass", - "id": 388 - }, - "389": { - "name": "Sucker Punch", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 70, - "pp": 5, - "type": "dark", - "id": 389 - }, - "390": { - "name": "Toxic Spikes", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 20, - "type": "poison", - "id": 390 - }, - "391": { - "name": "Heart Swap", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "psychic", - "id": 391 - }, - "392": { - "name": "Aqua Ring", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 20, - "type": "water", - "id": 392 - }, - "393": { - "name": "Magnet Rise", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "electric", - "id": 393 - }, - "394": { - "name": "Flare Blitz", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 120, - "pp": 15, - "type": "fire", - "id": 394 - }, - "395": { - "name": "Force Palm", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 60, - "pp": 10, - "type": "fighting", - "id": 395 - }, - "396": { - "name": "Aura Sphere", - "accuracy": null, - "class": "special", - "generation": "generation-iv", - "power": 80, - "pp": 20, - "pastGenPP": { - "LA": 10 - }, - "type": "fighting", - "id": 396 - }, - "397": { - "name": "Rock Polish", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 20, - "type": "rock", - "id": 397 - }, - "398": { - "name": "Poison Jab", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 80, - "pp": 20, - "pastGenPP": { - "LA": 10 - }, - "type": "poison", - "id": 398 - }, - "399": { - "name": "Dark Pulse", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 80, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "dark", - "id": 399 - }, - "400": { - "name": "Night Slash", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 70, - "pp": 15, - "type": "dark", - "id": 400 - }, - "401": { - "name": "Aqua Tail", - "accuracy": 90, - "class": "physical", - "generation": "generation-iv", - "power": 90, - "pp": 10, - "type": "water", - "id": 401 - }, - "402": { - "name": "Seed Bomb", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 80, - "pp": 15, - "type": "grass", - "id": 402 - }, - "403": { - "name": "Air Slash", - "accuracy": 95, - "class": "special", - "generation": "generation-iv", - "power": 75, - "pp": 15, - "pastGenPP": { - "G1": 20, - "G2": 20, - "G3": 20, - "G4": 20, - "G5": 20, - "LA": 10 - }, - "type": "flying", - "id": 403 - }, - "404": { - "name": "X-Scissor", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 80, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "bug", - "id": 404 - }, - "405": { - "name": "Bug Buzz", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 90, - "pp": 10, - "type": "bug", - "id": 405 - }, - "406": { - "name": "Dragon Pulse", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 85, - "pp": 10, - "type": "dragon", - "id": 406 - }, - "407": { - "name": "Dragon Rush", - "accuracy": 75, - "class": "physical", - "generation": "generation-iv", - "power": 100, - "pp": 10, - "type": "dragon", - "id": 407 - }, - "408": { - "name": "Power Gem", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 80, - "pp": 20, - "pastGenPP": { - "LA": 10 - }, - "type": "rock", - "id": 408 - }, - "409": { - "name": "Drain Punch", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 75, - "pp": 10, - "pastGenPP": { - "G4": 5 - }, - "type": "fighting", - "id": 409 - }, - "410": { - "name": "Vacuum Wave", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 40, - "pp": 30, - "type": "fighting", - "id": 410 - }, - "411": { - "name": "Focus Blast", - "accuracy": 70, - "class": "special", - "generation": "generation-iv", - "power": 120, - "pp": 5, - "type": "fighting", - "id": 411 - }, - "412": { - "name": "Energy Ball", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 90, - "pp": 10, - "type": "grass", - "id": 412 - }, - "413": { - "name": "Brave Bird", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 120, - "pp": 15, - "pastGenPP": { - "LA": 5 - }, - "type": "flying", - "id": 413 - }, - "414": { - "name": "Earth Power", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 90, - "pp": 10, - "type": "ground", - "id": 414 - }, - "415": { - "name": "Switcheroo", - "accuracy": 100, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "dark", - "id": 415 - }, - "416": { - "name": "Giga Impact", - "accuracy": 90, - "class": "physical", - "generation": "generation-iv", - "power": 150, - "pp": 5, - "type": "normal", - "id": 416 - }, - "417": { - "name": "Nasty Plot", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 20, - "type": "dark", - "id": 417 - }, - "418": { - "name": "Bullet Punch", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 40, - "pp": 30, - "pastGenPP": { - "LA": 20 - }, - "type": "steel", - "id": 418 - }, - "419": { - "name": "Avalanche", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 60, - "pp": 10, - "type": "ice", - "id": 419 - }, - "420": { - "name": "Ice Shard", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 40, - "pp": 30, - "pastGenPP": { - "LA": 20 - }, - "type": "ice", - "id": 420 - }, - "421": { - "name": "Shadow Claw", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 70, - "pp": 15, - "type": "ghost", - "id": 421 - }, - "422": { - "name": "Thunder Fang", - "accuracy": 95, - "class": "physical", - "generation": "generation-iv", - "power": 65, - "pp": 15, - "type": "electric", - "id": 422 - }, - "423": { - "name": "Ice Fang", - "accuracy": 95, - "class": "physical", - "generation": "generation-iv", - "power": 65, - "pp": 15, - "type": "ice", - "id": 423 - }, - "424": { - "name": "Fire Fang", - "accuracy": 95, - "class": "physical", - "generation": "generation-iv", - "power": 65, - "pp": 15, - "type": "fire", - "id": 424 - }, - "425": { - "name": "Shadow Sneak", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 40, - "pp": 30, - "pastGenPP": { - "LA": 20 - }, - "type": "ghost", - "id": 425 - }, - "426": { - "name": "Mud Bomb", - "accuracy": 85, - "class": "special", - "generation": "generation-iv", - "power": 65, - "pp": 10, - "pastGenPP": { - "LA": 15 - }, - "type": "ground", - "id": 426 - }, - "427": { - "name": "Psycho Cut", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 70, - "pp": 20, - "pastGenPP": { - "LA": 15 - }, - "type": "psychic", - "id": 427 - }, - "428": { - "name": "Zen Headbutt", - "accuracy": 90, - "class": "physical", - "generation": "generation-iv", - "power": 80, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "psychic", - "id": 428 - }, - "429": { - "name": "Mirror Shot", - "accuracy": 85, - "class": "special", - "generation": "generation-iv", - "power": 65, - "pp": 10, - "type": "steel", - "id": 429 - }, - "430": { - "name": "Flash Cannon", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 80, - "pp": 10, - "type": "steel", - "id": 430 - }, - "431": { - "name": "Rock Climb", - "accuracy": 85, - "class": "physical", - "generation": "generation-iv", - "power": 90, - "pp": 20, - "type": "normal", - "id": 431 - }, - "432": { - "name": "Defog", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 15, - "type": "flying", - "id": 432 - }, - "433": { - "name": "Trick Room", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 5, - "type": "psychic", - "id": 433 - }, - "434": { - "name": "Draco Meteor", - "accuracy": 90, - "class": "special", - "generation": "generation-iv", - "power": 130, - "pp": 5, - "type": "dragon", - "id": 434 - }, - "435": { - "name": "Discharge", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 80, - "pp": 15, - "type": "electric", - "id": 435 - }, - "436": { - "name": "Lava Plume", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 80, - "pp": 15, - "type": "fire", - "id": 436 - }, - "437": { - "name": "Leaf Storm", - "accuracy": 90, - "class": "special", - "generation": "generation-iv", - "power": 130, - "pp": 5, - "type": "grass", - "id": 437 - }, - "438": { - "name": "Power Whip", - "accuracy": 85, - "class": "physical", - "generation": "generation-iv", - "power": 120, - "pp": 10, - "type": "grass", - "id": 438 - }, - "439": { - "name": "Rock Wrecker", - "accuracy": 90, - "class": "physical", - "generation": "generation-iv", - "power": 150, - "pp": 5, - "type": "rock", - "id": 439 - }, - "440": { - "name": "Cross Poison", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 70, - "pp": 20, - "pastGenPP": { - "LA": 15 - }, - "type": "poison", - "id": 440 - }, - "441": { - "name": "Gunk Shot", - "accuracy": 80, - "class": "physical", - "generation": "generation-iv", - "power": 120, - "pp": 5, - "type": "poison", - "id": 441 - }, - "442": { - "name": "Iron Head", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 80, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "steel", - "id": 442 - }, - "443": { - "name": "Magnet Bomb", - "accuracy": null, - "class": "physical", - "generation": "generation-iv", - "power": 60, - "pp": 20, - "type": "steel", - "id": 443 - }, - "444": { - "name": "Stone Edge", - "accuracy": 80, - "class": "physical", - "generation": "generation-iv", - "power": 100, - "pp": 5, - "type": "rock", - "id": 444 - }, - "445": { - "name": "Captivate", - "accuracy": 100, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 20, - "type": "normal", - "id": 445 - }, - "446": { - "name": "Stealth Rock", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 20, - "type": "rock", - "id": 446 - }, - "447": { - "name": "Grass Knot", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": null, - "pp": 20, - "type": "grass", - "id": 447 - }, - "448": { - "name": "Chatter", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 65, - "pp": 20, - "type": "flying", - "id": 448 - }, - "449": { - "name": "Judgment", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 100, - "pp": 10, - "pastGenPP": { - "LA": 5 - }, - "type": "normal", - "id": 449 - }, - "450": { - "name": "Bug Bite", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 60, - "pp": 20, - "type": "bug", - "id": 450 - }, - "451": { - "name": "Charge Beam", - "accuracy": 90, - "class": "special", - "generation": "generation-iv", - "power": 50, - "pp": 10, - "pastGenPP": { - "LA": 15 - }, - "type": "electric", - "id": 451 - }, - "452": { - "name": "Wood Hammer", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 120, - "pp": 15, - "pastGenPP": { - "LA": 5 - }, - "type": "grass", - "id": 452 - }, - "453": { - "name": "Aqua Jet", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 40, - "pp": 20, - "type": "water", - "id": 453 - }, - "454": { - "name": "Attack Order", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 90, - "pp": 15, - "type": "bug", - "id": 454 - }, - "455": { - "name": "Defend Order", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "bug", - "id": 455 - }, - "456": { - "name": "Heal Order", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "bug", - "id": 456 - }, - "457": { - "name": "Head Smash", - "accuracy": 80, - "class": "physical", - "generation": "generation-iv", - "power": 150, - "pp": 5, - "type": "rock", - "id": 457 - }, - "458": { - "name": "Double Hit", - "accuracy": 90, - "class": "physical", - "generation": "generation-iv", - "power": 35, - "pp": 10, - "type": "normal", - "id": 458 - }, - "459": { - "name": "Roar of Time", - "accuracy": 90, - "class": "special", - "generation": "generation-iv", - "power": 150, - "pp": 5, - "type": "dragon", - "id": 459 - }, - "460": { - "name": "Spacial Rend", - "accuracy": 95, - "class": "special", - "generation": "generation-iv", - "power": 100, - "pp": 5, - "type": "dragon", - "id": 460 - }, - "461": { - "name": "Lunar Dance", - "accuracy": null, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "psychic", - "id": 461 - }, - "462": { - "name": "Crush Grip", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": null, - "pp": 5, - "type": "normal", - "id": 462 - }, - "463": { - "name": "Magma Storm", - "accuracy": 75, - "class": "special", - "generation": "generation-iv", - "power": 100, - "pp": 5, - "type": "fire", - "id": 463 - }, - "464": { - "name": "Dark Void", - "accuracy": 50, - "class": "status", - "generation": "generation-iv", - "power": null, - "pp": 10, - "type": "dark", - "id": 464 - }, - "465": { - "name": "Seed Flare", - "accuracy": 85, - "class": "special", - "generation": "generation-iv", - "power": 120, - "pp": 5, - "type": "grass", - "id": 465 - }, - "466": { - "name": "Ominous Wind", - "accuracy": 100, - "class": "special", - "generation": "generation-iv", - "power": 60, - "pp": 5, - "pastGenPP": { - "LA": 15 - }, - "type": "ghost", - "id": 466 - }, - "467": { - "name": "Shadow Force", - "accuracy": 100, - "class": "physical", - "generation": "generation-iv", - "power": 120, - "pp": 5, - "type": "ghost", - "id": 467 - }, - "468": { - "name": "Hone Claws", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 15, - "type": "dark", - "id": 468 - }, - "469": { - "name": "Wide Guard", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 10, - "type": "rock", - "id": 469 - }, - "470": { - "name": "Guard Split", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 10, - "type": "psychic", - "id": 470 - }, - "471": { - "name": "Power Split", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 10, - "type": "psychic", - "id": 471 - }, - "472": { - "name": "Wonder Room", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 10, - "type": "psychic", - "id": 472 - }, - "473": { - "name": "Psyshock", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 80, - "pp": 10, - "type": "psychic", - "id": 473 - }, - "474": { - "name": "Venoshock", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 65, - "pp": 10, - "pastGenPP": { - "LA": 15 - }, - "type": "poison", - "id": 474 - }, - "475": { - "name": "Autotomize", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 15, - "type": "steel", - "id": 475 - }, - "476": { - "name": "Rage Powder", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 20, - "type": "bug", - "id": 476 - }, - "477": { - "name": "Telekinesis", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 15, - "type": "psychic", - "id": 477 - }, - "478": { - "name": "Magic Room", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 10, - "type": "psychic", - "id": 478 - }, - "479": { - "name": "Smack Down", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 50, - "pp": 15, - "type": "rock", - "id": 479 - }, - "480": { - "name": "Storm Throw", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 60, - "pp": 10, - "type": "fighting", - "id": 480 - }, - "481": { - "name": "Flame Burst", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 70, - "pp": 15, - "type": "fire", - "id": 481 - }, - "482": { - "name": "Sludge Wave", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 95, - "pp": 10, - "type": "poison", - "id": 482 - }, - "483": { - "name": "Quiver Dance", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 20, - "type": "bug", - "id": 483 - }, - "484": { - "name": "Heavy Slam", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": null, - "pp": 10, - "type": "steel", - "id": 484 - }, - "485": { - "name": "Synchronoise", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 120, - "pastGenPP": { - "G5": 15 - }, - "pp": 10, - "type": "psychic", - "id": 485 - }, - "486": { - "name": "Electro Ball", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": null, - "pp": 10, - "type": "electric", - "id": 486 - }, - "487": { - "name": "Soak", - "accuracy": 100, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 20, - "type": "water", - "id": 487 - }, - "488": { - "name": "Flame Charge", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 50, - "pp": 20, - "type": "fire", - "id": 488 - }, - "489": { - "name": "Coil", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 20, - "type": "poison", - "id": 489 - }, - "490": { - "name": "Low Sweep", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 65, - "pp": 20, - "type": "fighting", - "id": 490 - }, - "491": { - "name": "Acid Spray", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 40, - "pp": 20, - "type": "poison", - "id": 491 - }, - "492": { - "name": "Foul Play", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 95, - "pp": 15, - "type": "dark", - "id": 492 - }, - "493": { - "name": "Simple Beam", - "accuracy": 100, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 15, - "type": "normal", - "id": 493 - }, - "494": { - "name": "Entrainment", - "accuracy": 100, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 15, - "type": "normal", - "id": 494 - }, - "495": { - "name": "After You", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 15, - "type": "normal", - "id": 495 - }, - "496": { - "name": "Round", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 60, - "pp": 15, - "type": "normal", - "id": 496 - }, - "497": { - "name": "Echoed Voice", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 40, - "pp": 15, - "type": "normal", - "id": 497 - }, - "498": { - "name": "Chip Away", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 70, - "pp": 20, - "type": "normal", - "id": 498 - }, - "499": { - "name": "Clear Smog", - "accuracy": null, - "class": "special", - "generation": "generation-v", - "power": 50, - "pp": 15, - "type": "poison", - "id": 499 - }, - "500": { - "name": "Stored Power", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 20, - "pp": 10, - "type": "psychic", - "id": 500 - }, - "501": { - "name": "Quick Guard", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 15, - "type": "fighting", - "id": 501 - }, - "502": { - "name": "Ally Switch", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 15, - "type": "psychic", - "id": 502 - }, - "503": { - "name": "Scald", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 80, - "pp": 15, - "type": "water", - "id": 503 - }, - "504": { - "name": "Shell Smash", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 15, - "type": "normal", - "id": 504 - }, - "505": { - "name": "Heal Pulse", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 10, - "type": "psychic", - "id": 505 - }, - "506": { - "name": "Hex", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 65, - "pp": 10, - "pastGenPP": { - "LA": 15 - }, - "type": "ghost", - "id": 506 - }, - "507": { - "name": "Sky Drop", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 60, - "pp": 10, - "type": "flying", - "id": 507 - }, - "508": { - "name": "Shift Gear", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 10, - "type": "steel", - "id": 508 - }, - "509": { - "name": "Circle Throw", - "accuracy": 90, - "class": "physical", - "generation": "generation-v", - "power": 60, - "pp": 10, - "type": "fighting", - "id": 509 - }, - "510": { - "name": "Incinerate", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 60, - "pp": 15, - "type": "fire", - "id": 510 - }, - "511": { - "name": "Quash", - "accuracy": 100, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 15, - "type": "dark", - "id": 511 - }, - "512": { - "name": "Acrobatics", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 55, - "pp": 15, - "type": "flying", - "id": 512 - }, - "513": { - "name": "Reflect Type", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 15, - "type": "normal", - "id": 513 - }, - "514": { - "name": "Retaliate", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 70, - "pp": 5, - "type": "normal", - "id": 514 - }, - "515": { - "name": "Final Gambit", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": null, - "pp": 5, - "type": "fighting", - "id": 515 - }, - "516": { - "name": "Bestow", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 15, - "type": "normal", - "id": 516 - }, - "517": { - "name": "Inferno", - "accuracy": 50, - "class": "special", - "generation": "generation-v", - "power": 100, - "pp": 5, - "type": "fire", - "id": 517 - }, - "518": { - "name": "Water Pledge", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 80, - "pp": 10, - "type": "water", - "id": 518 - }, - "519": { - "name": "Fire Pledge", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 80, - "pp": 10, - "type": "fire", - "id": 519 - }, - "520": { - "name": "Grass Pledge", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 80, - "pp": 10, - "type": "grass", - "id": 520 - }, - "521": { - "name": "Volt Switch", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 70, - "pp": 20, - "type": "electric", - "id": 521 - }, - "522": { - "name": "Struggle Bug", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 50, - "pp": 20, - "type": "bug", - "id": 522 - }, - "523": { - "name": "Bulldoze", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 60, - "pp": 20, - "type": "ground", - "id": 523 - }, - "524": { - "name": "Frost Breath", - "accuracy": 90, - "class": "special", - "generation": "generation-v", - "power": 60, - "pp": 10, - "type": "ice", - "id": 524 - }, - "525": { - "name": "Dragon Tail", - "accuracy": 90, - "class": "physical", - "generation": "generation-v", - "power": 60, - "pp": 10, - "type": "dragon", - "id": 525 - }, - "526": { - "name": "Work Up", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 30, - "type": "normal", - "id": 526 - }, - "527": { - "name": "Electroweb", - "accuracy": 95, - "class": "special", - "generation": "generation-v", - "power": 55, - "pp": 15, - "type": "electric", - "id": 527 - }, - "528": { - "name": "Wild Charge", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 90, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "electric", - "id": 528 - }, - "529": { - "name": "Drill Run", - "accuracy": 95, - "class": "physical", - "generation": "generation-v", - "power": 80, - "pp": 10, - "type": "ground", - "id": 529 - }, - "530": { - "name": "Dual Chop", - "accuracy": 90, - "class": "physical", - "generation": "generation-v", - "power": 40, - "pp": 15, - "type": "dragon", - "id": 530 - }, - "531": { - "name": "Heart Stamp", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 60, - "pp": 25, - "type": "psychic", - "id": 531 - }, - "532": { - "name": "Horn Leech", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 75, - "pp": 10, - "type": "grass", - "id": 532 - }, - "533": { - "name": "Sacred Sword", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 90, - "pp": 15, - "pastGenPP": { - "G5": 20 - }, - "type": "fighting", - "id": 533 - }, - "534": { - "name": "Razor Shell", - "accuracy": 95, - "class": "physical", - "generation": "generation-v", - "power": 75, - "pp": 10, - "type": "water", - "id": 534 - }, - "535": { - "name": "Heat Crash", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": null, - "pp": 10, - "type": "fire", - "id": 535 - }, - "536": { - "name": "Leaf Tornado", - "accuracy": 90, - "class": "special", - "generation": "generation-v", - "power": 65, - "pp": 10, - "type": "grass", - "id": 536 - }, - "537": { - "name": "Steamroller", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 65, - "pp": 20, - "type": "bug", - "id": 537 - }, - "538": { - "name": "Cotton Guard", - "accuracy": null, - "class": "status", - "generation": "generation-v", - "power": null, - "pp": 10, - "type": "grass", - "id": 538 - }, - "539": { - "name": "Night Daze", - "accuracy": 95, - "class": "special", - "generation": "generation-v", - "power": 85, - "pp": 10, - "type": "dark", - "id": 539 - }, - "540": { - "name": "Psystrike", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 100, - "pp": 10, - "type": "psychic", - "id": 540 - }, - "541": { - "name": "Tail Slap", - "accuracy": 85, - "class": "physical", - "generation": "generation-v", - "power": 25, - "pp": 10, - "type": "normal", - "id": 541 - }, - "542": { - "name": "Hurricane", - "accuracy": 70, - "class": "special", - "generation": "generation-v", - "power": 110, - "pp": 10, - "pastGenPP": { - "LA": 5 - }, - "type": "flying", - "id": 542 - }, - "543": { - "name": "Head Charge", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 120, - "pp": 15, - "type": "normal", - "id": 543 - }, - "544": { - "name": "Gear Grind", - "accuracy": 85, - "class": "physical", - "generation": "generation-v", - "power": 50, - "pp": 15, - "type": "steel", - "id": 544 - }, - "545": { - "name": "Searing Shot", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 100, - "pp": 5, - "type": "fire", - "id": 545 - }, - "546": { - "name": "Techno Blast", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 120, - "pp": 5, - "type": "normal", - "id": 546 - }, - "547": { - "name": "Relic Song", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 75, - "pp": 10, - "type": "normal", - "id": 547 - }, - "548": { - "name": "Secret Sword", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 85, - "pp": 10, - "type": "fighting", - "id": 548 - }, - "549": { - "name": "Glaciate", - "accuracy": 95, - "class": "special", - "generation": "generation-v", - "power": 65, - "pp": 10, - "type": "ice", - "id": 549 - }, - "550": { - "name": "Bolt Strike", - "accuracy": 85, - "class": "physical", - "generation": "generation-v", - "power": 130, - "pp": 5, - "type": "electric", - "id": 550 - }, - "551": { - "name": "Blue Flare", - "accuracy": 85, - "class": "special", - "generation": "generation-v", - "power": 130, - "pp": 5, - "type": "fire", - "id": 551 - }, - "552": { - "name": "Fiery Dance", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 80, - "pp": 10, - "type": "fire", - "id": 552 - }, - "553": { - "name": "Freeze Shock", - "accuracy": 90, - "class": "physical", - "generation": "generation-v", - "power": 140, - "pp": 5, - "type": "ice", - "id": 553 - }, - "554": { - "name": "Ice Burn", - "accuracy": 90, - "class": "special", - "generation": "generation-v", - "power": 140, - "pp": 5, - "type": "ice", - "id": 554 - }, - "555": { - "name": "Snarl", - "accuracy": 95, - "class": "special", - "generation": "generation-v", - "power": 55, - "pp": 15, - "type": "dark", - "id": 555 - }, - "556": { - "name": "Icicle Crash", - "accuracy": 90, - "class": "physical", - "generation": "generation-v", - "power": 85, - "pp": 10, - "type": "ice", - "id": 556 - }, - "557": { - "name": "V-create", - "accuracy": 95, - "class": "physical", - "generation": "generation-v", - "power": 180, - "pp": 5, - "type": "fire", - "id": 557 - }, - "558": { - "name": "Fusion Flare", - "accuracy": 100, - "class": "special", - "generation": "generation-v", - "power": 100, - "pp": 5, - "type": "fire", - "id": 558 - }, - "559": { - "name": "Fusion Bolt", - "accuracy": 100, - "class": "physical", - "generation": "generation-v", - "power": 100, - "pp": 5, - "type": "electric", - "id": 559 - }, - "560": { - "name": "Flying Press", - "accuracy": 95, - "class": "physical", - "generation": "generation-vi", - "power": 100, - "pp": 10, - "type": "fighting", - "id": 560 - }, - "561": { - "name": "Mat Block", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 10, - "type": "fighting", - "id": 561 - }, - "562": { - "name": "Belch", - "accuracy": 90, - "class": "special", - "generation": "generation-vi", - "power": 120, - "pp": 10, - "type": "poison", - "id": 562 - }, - "563": { - "name": "Rototiller", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 10, - "type": "ground", - "id": 563 - }, - "564": { - "name": "Sticky Web", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 20, - "type": "bug", - "id": 564 - }, - "565": { - "name": "Fell Stinger", - "accuracy": 100, - "class": "physical", - "generation": "generation-vi", - "power": 50, - "pp": 25, - "type": "bug", - "id": 565 - }, - "566": { - "name": "Phantom Force", - "accuracy": 100, - "class": "physical", - "generation": "generation-vi", - "power": 90, - "pp": 10, - "type": "ghost", - "id": 566 - }, - "567": { - "name": "Trick-or-Treat", - "accuracy": 100, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 20, - "type": "ghost", - "id": 567 - }, - "568": { - "name": "Noble Roar", - "accuracy": 100, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 30, - "type": "normal", - "id": 568 - }, - "569": { - "name": "Ion Deluge", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 25, - "type": "electric", - "id": 569 - }, - "570": { - "name": "Parabolic Charge", - "accuracy": 100, - "class": "special", - "generation": "generation-vi", - "power": 65, - "pp": 20, - "type": "electric", - "id": 570 - }, - "571": { - "name": "Forest’s Curse", - "accuracy": 100, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 20, - "type": "grass", - "id": 571 - }, - "572": { - "name": "Petal Blizzard", - "accuracy": 100, - "class": "physical", - "generation": "generation-vi", - "power": 90, - "pp": 15, - "type": "grass", - "id": 572 - }, - "573": { - "name": "Freeze-Dry", - "accuracy": 100, - "class": "special", - "generation": "generation-vi", - "power": 70, - "pp": 20, - "type": "ice", - "id": 573 - }, - "574": { - "name": "Disarming Voice", - "accuracy": null, - "class": "special", - "generation": "generation-vi", - "power": 40, - "pp": 15, - "type": "fairy", - "id": 574 - }, - "575": { - "name": "Parting Shot", - "accuracy": 100, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 20, - "type": "dark", - "id": 575 - }, - "576": { - "name": "Topsy-Turvy", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 20, - "type": "dark", - "id": 576 - }, - "577": { - "name": "Draining Kiss", - "accuracy": 100, - "class": "special", - "generation": "generation-vi", - "power": 50, - "pp": 10, - "pastGenPP": { - "LA": 15 - }, - "type": "fairy", - "id": 577 - }, - "578": { - "name": "Crafty Shield", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 10, - "type": "fairy", - "id": 578 - }, - "579": { - "name": "Flower Shield", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 10, - "type": "fairy", - "id": 579 - }, - "580": { - "name": "Grassy Terrain", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 10, - "type": "grass", - "id": 580 - }, - "581": { - "name": "Misty Terrain", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 10, - "type": "fairy", - "id": 581 - }, - "582": { - "name": "Electrify", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 20, - "type": "electric", - "id": 582 - }, - "583": { - "name": "Play Rough", - "accuracy": 90, - "class": "physical", - "generation": "generation-vi", - "power": 90, - "pp": 10, - "type": "fairy", - "id": 583 - }, - "584": { - "name": "Fairy Wind", - "accuracy": 100, - "class": "special", - "generation": "generation-vi", - "power": 40, - "pp": 30, - "pastGenPP": { - "LA": 25 - }, - "type": "fairy", - "id": 584 - }, - "585": { - "name": "Moonblast", - "accuracy": 100, - "class": "special", - "generation": "generation-vi", - "power": 95, - "pp": 15, - "pastGenPP": { - "LA": 10 - }, - "type": "fairy", - "id": 585 - }, - "586": { - "name": "Boomburst", - "accuracy": 100, - "class": "special", - "generation": "generation-vi", - "power": 140, - "pp": 10, - "type": "normal", - "id": 586 - }, - "587": { - "name": "Fairy Lock", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 10, - "type": "fairy", - "id": 587 - }, - "588": { - "name": "King’s Shield", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 10, - "type": "steel", - "id": 588 - }, - "589": { - "name": "Play Nice", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 20, - "type": "normal", - "id": 589 - }, - "590": { - "name": "Confide", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 20, - "type": "normal", - "id": 590 - }, - "591": { - "name": "Diamond Storm", - "accuracy": 95, - "class": "physical", - "generation": "generation-vi", - "power": 100, - "pp": 5, - "type": "rock", - "id": 591 - }, - "592": { - "name": "Steam Eruption", - "accuracy": 95, - "class": "special", - "generation": "generation-vi", - "power": 110, - "pp": 5, - "type": "water", - "id": 592 - }, - "593": { - "name": "Hyperspace Hole", - "accuracy": null, - "class": "special", - "generation": "generation-vi", - "power": 80, - "pp": 5, - "type": "psychic", - "id": 593 - }, - "594": { - "name": "Water Shuriken", - "accuracy": 100, - "class": "special", - "generation": "generation-vi", - "power": 15, - "pp": 20, - "type": "water", - "id": 594 - }, - "595": { - "name": "Mystical Fire", - "accuracy": 100, - "class": "special", - "generation": "generation-vi", - "power": 75, - "pp": 10, - "type": "fire", - "id": 595 - }, - "596": { - "name": "Spiky Shield", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 10, - "type": "grass", - "id": 596 - }, - "597": { - "name": "Aromatic Mist", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 20, - "type": "fairy", - "id": 597 - }, - "598": { - "name": "Eerie Impulse", - "accuracy": 100, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 15, - "type": "electric", - "id": 598 - }, - "599": { - "name": "Venom Drench", - "accuracy": 100, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 20, - "type": "poison", - "id": 599 - }, - "600": { - "name": "Powder", - "accuracy": 100, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 20, - "type": "bug", - "id": 600 - }, - "601": { - "name": "Geomancy", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 10, - "type": "fairy", - "id": 601 - }, - "602": { - "name": "Magnetic Flux", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 20, - "type": "electric", - "id": 602 - }, - "603": { - "name": "Happy Hour", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 30, - "type": "normal", - "id": 603 - }, - "604": { - "name": "Electric Terrain", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 10, - "type": "electric", - "id": 604 - }, - "605": { - "name": "Dazzling Gleam", - "accuracy": 100, - "class": "special", - "generation": "generation-vi", - "power": 80, - "pp": 10, - "type": "fairy", - "id": 605 - }, - "606": { - "name": "Celebrate", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 40, - "type": "normal", - "id": 606 - }, - "607": { - "name": "Hold Hands", - "accuracy": null, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 40, - "type": "normal", - "id": 607 - }, - "608": { - "name": "Baby-Doll Eyes", - "accuracy": 100, - "class": "status", - "generation": "generation-vi", - "power": null, - "pp": 30, - "pastGenPP": { - "LA": 20 - }, - "type": "fairy", - "id": 608 - }, - "609": { - "name": "Nuzzle", - "accuracy": 100, - "class": "physical", - "generation": "generation-vi", - "power": 20, - "pp": 20, - "type": "electric", - "id": 609 - }, - "610": { - "name": "Hold Back", - "accuracy": 100, - "class": "physical", - "generation": "generation-vi", - "power": 40, - "pp": 40, - "type": "normal", - "id": 610 - }, - "611": { - "name": "Infestation", - "accuracy": 100, - "class": "special", - "generation": "generation-vi", - "power": 20, - "pp": 20, - "type": "bug", - "id": 611 - }, - "612": { - "name": "Power-Up Punch", - "accuracy": 100, - "class": "physical", - "generation": "generation-vi", - "power": 40, - "pp": 20, - "type": "fighting", - "id": 612 - }, - "613": { - "name": "Oblivion Wing", - "accuracy": 100, - "class": "special", - "generation": "generation-vi", - "power": 80, - "pp": 10, - "type": "flying", - "id": 613 - }, - "614": { - "name": "Thousand Arrows", - "accuracy": 100, - "class": "physical", - "generation": "generation-vi", - "power": 90, - "pp": 10, - "type": "ground", - "id": 614 - }, - "615": { - "name": "Thousand Waves", - "accuracy": 100, - "class": "physical", - "generation": "generation-vi", - "power": 90, - "pp": 10, - "type": "ground", - "id": 615 - }, - "616": { - "name": "Land’s Wrath", - "accuracy": 100, - "class": "physical", - "generation": "generation-vi", - "power": 90, - "pp": 10, - "type": "ground", - "id": 616 - }, - "617": { - "name": "Light of Ruin", - "accuracy": 90, - "class": "special", - "generation": "generation-vi", - "power": 140, - "pp": 5, - "type": "fairy", - "id": 617 - }, - "618": { - "name": "Origin Pulse", - "accuracy": 85, - "class": "special", - "generation": "generation-vi", - "power": 110, - "pp": 10, - "type": "water", - "id": 618 - }, - "619": { - "name": "Precipice Blades", - "accuracy": 85, - "class": "physical", - "generation": "generation-vi", - "power": 120, - "pp": 10, - "type": "ground", - "id": 619 - }, - "620": { - "name": "Dragon Ascent", - "accuracy": 100, - "class": "physical", - "generation": "generation-vi", - "power": 120, - "pp": 5, - "type": "flying", - "id": 620 - }, - "621": { - "name": "Hyperspace Fury", - "accuracy": null, - "class": "physical", - "generation": "generation-vi", - "power": 100, - "pp": 5, - "type": "dark", - "id": 621 - }, - "622": { - "name": "Breakneck Blitz", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "normal", - "id": 622 - }, - "623": { - "name": "Breakneck Blitz", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "normal", - "id": 623 - }, - "624": { - "name": "All-Out Pummeling", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "fighting", - "id": 624 - }, - "625": { - "name": "All-Out Pummeling", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "fighting", - "id": 625 - }, - "626": { - "name": "Supersonic Skystrike", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "flying", - "id": 626 - }, - "627": { - "name": "Supersonic Skystrike", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "flying", - "id": 627 - }, - "628": { - "name": "Acid Downpour", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "poison", - "id": 628 - }, - "629": { - "name": "Acid Downpour", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "poison", - "id": 629 - }, - "630": { - "name": "Tectonic Rage", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "ground", - "id": 630 - }, - "631": { - "name": "Tectonic Rage", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "ground", - "id": 631 - }, - "632": { - "name": "Continental Crush", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "rock", - "id": 632 - }, - "633": { - "name": "Continental Crush", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "rock", - "id": 633 - }, - "634": { - "name": "Savage Spin-Out", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "bug", - "id": 634 - }, - "635": { - "name": "Savage Spin-Out", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "bug", - "id": 635 - }, - "636": { - "name": "Never-Ending Nightmare", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "ghost", - "id": 636 - }, - "637": { - "name": "Never-Ending Nightmare", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "ghost", - "id": 637 - }, - "638": { - "name": "Corkscrew Crash", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "steel", - "id": 638 - }, - "639": { - "name": "Corkscrew Crash", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "steel", - "id": 639 - }, - "640": { - "name": "Inferno Overdrive", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "fire", - "id": 640 - }, - "641": { - "name": "Inferno Overdrive", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "fire", - "id": 641 - }, - "642": { - "name": "Hydro Vortex", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "water", - "id": 642 - }, - "643": { - "name": "Hydro Vortex", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "water", - "id": 643 - }, - "644": { - "name": "Bloom Doom", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "grass", - "id": 644 - }, - "645": { - "name": "Bloom Doom", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "grass", - "id": 645 - }, - "646": { - "name": "Gigavolt Havoc", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "electric", - "id": 646 - }, - "647": { - "name": "Gigavolt Havoc", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "electric", - "id": 647 - }, - "648": { - "name": "Shattered Psyche", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "psychic", - "id": 648 - }, - "649": { - "name": "Shattered Psyche", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "psychic", - "id": 649 - }, - "650": { - "name": "Subzero Slammer", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "ice", - "id": 650 - }, - "651": { - "name": "Subzero Slammer", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "ice", - "id": 651 - }, - "652": { - "name": "Devastating Drake", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "dragon", - "id": 652 - }, - "653": { - "name": "Devastating Drake", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "dragon", - "id": 653 - }, - "654": { - "name": "Black Hole Eclipse", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "dark", - "id": 654 - }, - "655": { - "name": "Black Hole Eclipse", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "dark", - "id": 655 - }, - "656": { - "name": "Twinkle Tackle", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "fairy", - "id": 656 - }, - "657": { - "name": "Twinkle Tackle", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "fairy", - "id": 657 - }, - "658": { - "name": "Catastropika", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": 210, - "pp": 1, - "type": "electric", - "id": 658 - }, - "659": { - "name": "Shore Up", - "accuracy": null, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 5, - "pastGenPP": { - "SMUSUM": 10, - "LGPE": 10, - "G8": 10 - }, - "type": "ground", - "id": 659 - }, - "660": { - "name": "First Impression", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 90, - "pp": 10, - "type": "bug", - "id": 660 - }, - "661": { - "name": "Baneful Bunker", - "accuracy": null, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 10, - "type": "poison", - "id": 661 - }, - "662": { - "name": "Spirit Shackle", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 80, - "pp": 10, - "type": "ghost", - "id": 662 - }, - "663": { - "name": "Darkest Lariat", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 85, - "pp": 10, - "type": "dark", - "id": 663 - }, - "664": { - "name": "Sparkling Aria", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 90, - "pp": 10, - "type": "water", - "id": 664 - }, - "665": { - "name": "Ice Hammer", - "accuracy": 90, - "class": "physical", - "generation": "generation-vii", - "power": 100, - "pp": 10, - "type": "ice", - "id": 665 - }, - "666": { - "name": "Floral Healing", - "accuracy": null, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 10, - "type": "fairy", - "id": 666 - }, - "667": { - "name": "High Horsepower", - "accuracy": 95, - "class": "physical", - "generation": "generation-vii", - "power": 95, - "pp": 10, - "type": "ground", - "id": 667 - }, - "668": { - "name": "Strength Sap", - "accuracy": 100, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 10, - "type": "grass", - "id": 668 - }, - "669": { - "name": "Solar Blade", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 125, - "pp": 10, - "type": "grass", - "id": 669 - }, - "670": { - "name": "Leafage", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 40, - "pp": 40, - "pastGenPP": { - "LA": 25 - }, - "type": "grass", - "id": 670 - }, - "671": { - "name": "Spotlight", - "accuracy": null, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 15, - "type": "normal", - "id": 671 - }, - "672": { - "name": "Toxic Thread", - "accuracy": 100, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 20, - "type": "poison", - "id": 672 - }, - "673": { - "name": "Laser Focus", - "accuracy": null, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 30, - "type": "normal", - "id": 673 - }, - "674": { - "name": "Gear Up", - "accuracy": null, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 20, - "type": "steel", - "id": 674 - }, - "675": { - "name": "Throat Chop", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 80, - "pp": 15, - "type": "dark", - "id": 675 - }, - "676": { - "name": "Pollen Puff", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 90, - "pp": 15, - "type": "bug", - "id": 676 - }, - "677": { - "name": "Anchor Shot", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 80, - "pp": 20, - "type": "steel", - "id": 677 - }, - "678": { - "name": "Psychic Terrain", - "accuracy": null, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 10, - "type": "psychic", - "id": 678 - }, - "679": { - "name": "Lunge", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 80, - "pp": 15, - "type": "bug", - "id": 679 - }, - "680": { - "name": "Fire Lash", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 80, - "pp": 15, - "type": "fire", - "id": 680 - }, - "681": { - "name": "Power Trip", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 20, - "pp": 10, - "type": "dark", - "id": 681 - }, - "682": { - "name": "Burn Up", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 130, - "pp": 5, - "type": "fire", - "id": 682 - }, - "683": { - "name": "Speed Swap", - "accuracy": null, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 10, - "type": "psychic", - "id": 683 - }, - "684": { - "name": "Smart Strike", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": 70, - "pp": 10, - "type": "steel", - "id": 684 - }, - "685": { - "name": "Purify", - "accuracy": null, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 20, - "type": "poison", - "id": 685 - }, - "686": { - "name": "Revelation Dance", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 90, - "pp": 15, - "type": "normal", - "id": 686 - }, - "687": { - "name": "Core Enforcer", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 100, - "pp": 10, - "type": "dragon", - "id": 687 - }, - "688": { - "name": "Trop Kick", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 70, - "pp": 15, - "type": "grass", - "id": 688 - }, - "689": { - "name": "Instruct", - "accuracy": null, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 15, - "type": "psychic", - "id": 689 - }, - "690": { - "name": "Beak Blast", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 100, - "pp": 15, - "type": "flying", - "id": 690 - }, - "691": { - "name": "Clanging Scales", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 110, - "pp": 5, - "type": "dragon", - "id": 691 - }, - "692": { - "name": "Dragon Hammer", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 90, - "pp": 15, - "type": "dragon", - "id": 692 - }, - "693": { - "name": "Brutal Swing", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 60, - "pp": 20, - "type": "dark", - "id": 693 - }, - "694": { - "name": "Aurora Veil", - "accuracy": null, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 20, - "type": "ice", - "id": 694 - }, - "695": { - "name": "Sinister Arrow Raid", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": 180, - "pp": 1, - "type": "ghost", - "id": 695 - }, - "696": { - "name": "Malicious Moonsault", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": 180, - "pp": 1, - "type": "dark", - "id": 696 - }, - "697": { - "name": "Oceanic Operetta", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": 195, - "pp": 1, - "type": "water", - "id": 697 - }, - "698": { - "name": "Guardian of Alola", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "fairy", - "id": 698 - }, - "699": { - "name": "Soul-Stealing 7-Star Strike", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": 195, - "pp": 1, - "type": "ghost", - "id": 699 - }, - "700": { - "name": "Stoked Sparksurfer", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": 175, - "pp": 1, - "type": "electric", - "id": 700 - }, - "701": { - "name": "Pulverizing Pancake", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": 210, - "pp": 1, - "type": "normal", - "id": 701 - }, - "702": { - "name": "Extreme Evoboost", - "accuracy": null, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 1, - "type": "normal", - "id": 702 - }, - "703": { - "name": "Genesis Supernova", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": 185, - "pp": 1, - "type": "psychic", - "id": 703 - }, - "704": { - "name": "Shell Trap", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 150, - "pp": 5, - "type": "fire", - "id": 704 - }, - "705": { - "name": "Fleur Cannon", - "accuracy": 90, - "class": "special", - "generation": "generation-vii", - "power": 130, - "pp": 5, - "type": "fairy", - "id": 705 - }, - "706": { - "name": "Psychic Fangs", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 85, - "pp": 10, - "type": "psychic", - "id": 706 - }, - "707": { - "name": "Stomping Tantrum", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 75, - "pp": 10, - "type": "ground", - "id": 707 - }, - "708": { - "name": "Shadow Bone", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 85, - "pp": 10, - "type": "ghost", - "id": 708 - }, - "709": { - "name": "Accelerock", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 40, - "pp": 20, - "type": "rock", - "id": 709 - }, - "710": { - "name": "Liquidation", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 85, - "pp": 10, - "type": "water", - "id": 710 - }, - "711": { - "name": "Prismatic Laser", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 160, - "pp": 10, - "type": "psychic", - "id": 711 - }, - "712": { - "name": "Spectral Thief", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 90, - "pp": 10, - "type": "ghost", - "id": 712 - }, - "713": { - "name": "Sunsteel Strike", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 100, - "pp": 5, - "type": "steel", - "id": 713 - }, - "714": { - "name": "Moongeist Beam", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 100, - "pp": 5, - "type": "ghost", - "id": 714 - }, - "715": { - "name": "Tearful Look", - "accuracy": null, - "class": "status", - "generation": "generation-vii", - "power": null, - "pp": 20, - "type": "normal", - "id": 715 - }, - "716": { - "name": "Zing Zap", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 80, - "pp": 10, - "type": "electric", - "id": 716 - }, - "717": { - "name": "Nature’s Madness", - "accuracy": 90, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 10, - "type": "fairy", - "id": 717 - }, - "718": { - "name": "Multi-Attack", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 120, - "pp": 10, - "type": "normal", - "id": 718 - }, - "719": { - "name": "10,000,000 Volt Thunderbolt", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": 195, - "pp": 1, - "type": "electric", - "id": 719 - }, - "720": { - "name": "Mind Blown", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 150, - "pp": 5, - "type": "fire", - "id": 720 - }, - "721": { - "name": "Plasma Fists", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 100, - "pp": 15, - "type": "electric", - "id": 721 - }, - "722": { - "name": "Photon Geyser", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 100, - "pp": 5, - "type": "psychic", - "id": 722 - }, - "723": { - "name": "Light That Burns the Sky", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": 200, - "pp": 1, - "type": "psychic", - "id": 723 - }, - "724": { - "name": "Searing Sunraze Smash", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": 200, - "pp": 1, - "type": "steel", - "id": 724 - }, - "725": { - "name": "Menacing Moonraze Maelstrom", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": 200, - "pp": 1, - "type": "ghost", - "id": 725 - }, - "726": { - "name": "Let’s Snuggle Forever", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": 190, - "pp": 1, - "type": "fairy", - "id": 726 - }, - "727": { - "name": "Splintered Stormshards", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": 190, - "pp": 1, - "type": "rock", - "id": 727 - }, - "728": { - "name": "Clangorous Soulblaze", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": 185, - "pp": 1, - "type": "dragon", - "id": 728 - }, - "729": { - "name": "Zippy Zap", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 80, - "pp": 10, - "type": "electric", - "id": 729 - }, - "730": { - "name": "Splishy Splash", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 90, - "pp": 15, - "type": "water", - "id": 730 - }, - "731": { - "name": "Floaty Fall", - "accuracy": 95, - "class": "physical", - "generation": "generation-vii", - "power": 90, - "pp": 15, - "type": "flying", - "id": 731 - }, - "732": { - "name": "Pika Papow", - "accuracy": null, - "class": "special", - "generation": "generation-vii", - "power": null, - "pp": 20, - "type": "electric", - "id": 732 - }, - "733": { - "name": "Bouncy Bubble", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 60, - "pp": 20, - "type": "water", - "id": 733 - }, - "734": { - "name": "Buzzy Buzz", - "accuracy": 100, - "class": "special", - "generation": "generation-vii", - "power": 60, - "pp": 20, - "type": "electric", - "id": 734 - }, - "735": { - "name": "Sizzly Slide", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 60, - "pp": 20, - "type": "fire", - "id": 735 - }, - "736": { - "name": "Glitzy Glow", - "accuracy": 95, - "class": "special", - "generation": "generation-vii", - "power": 80, - "pp": 15, - "type": "psychic", - "id": 736 - }, - "737": { - "name": "Baddy Bad", - "accuracy": 95, - "class": "special", - "generation": "generation-vii", - "power": 80, - "pp": 15, - "type": "dark", - "id": 737 - }, - "738": { - "name": "Sappy Seed", - "accuracy": 90, - "class": "physical", - "generation": "generation-vii", - "power": 100, - "pp": 10, - "type": "grass", - "id": 738 - }, - "739": { - "name": "Freezy Frost", - "accuracy": 90, - "class": "special", - "generation": "generation-vii", - "power": 100, - "pp": 10, - "type": "ice", - "id": 739 - }, - "740": { - "name": "Sparkly Swirl", - "accuracy": 85, - "class": "special", - "generation": "generation-vii", - "power": 120, - "pp": 5, - "type": "fairy", - "id": 740 - }, - "741": { - "name": "Veevee Volley", - "accuracy": null, - "class": "physical", - "generation": "generation-vii", - "power": null, - "pp": 20, - "type": "normal", - "id": 741 - }, - "742": { - "name": "Double Iron Bash", - "accuracy": 100, - "class": "physical", - "generation": "generation-vii", - "power": 60, - "pp": 5, - "type": "steel", - "id": 742 - }, - "743": { - "name": "Max Guard", - "accuracy": null, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 10, - "type": "normal", - "id": 743 - }, - "744": { - "name": "Dynamax Cannon", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 100, - "pp": 5, - "type": "dragon", - "id": 744 - }, - "745": { - "name": "Snipe Shot", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 80, - "pp": 15, - "type": "water", - "id": 745 - }, - "746": { - "name": "Jaw Lock", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 80, - "pp": 10, - "type": "dark", - "id": 746 - }, - "747": { - "name": "Stuff Cheeks", - "accuracy": null, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 10, - "type": "normal", - "id": 747 - }, - "748": { - "name": "No Retreat", - "accuracy": null, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 5, - "type": "fighting", - "id": 748 - }, - "749": { - "name": "Tar Shot", - "accuracy": 100, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 15, - "type": "rock", - "id": 749 - }, - "750": { - "name": "Magic Powder", - "accuracy": 100, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 20, - "type": "psychic", - "id": 750 - }, - "751": { - "name": "Dragon Darts", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 50, - "pp": 10, - "type": "dragon", - "id": 751 - }, - "752": { - "name": "Teatime", - "accuracy": null, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 10, - "type": "normal", - "id": 752 - }, - "753": { - "name": "Octolock", - "accuracy": 100, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 15, - "type": "fighting", - "id": 753 - }, - "754": { - "name": "Bolt Beak", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 85, - "pp": 10, - "type": "electric", - "id": 754 - }, - "755": { - "name": "Fishious Rend", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 85, - "pp": 10, - "type": "water", - "id": 755 - }, - "756": { - "name": "Court Change", - "accuracy": 100, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 10, - "type": "normal", - "id": 756 - }, - "757": { - "name": "Max Flare", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 100, - "pp": 10, - "type": "fire", - "id": 757 - }, - "758": { - "name": "Max Flutterby", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "bug", - "id": 758 - }, - "759": { - "name": "Max Lightning", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "electric", - "id": 759 - }, - "760": { - "name": "Max Strike", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "normal", - "id": 760 - }, - "761": { - "name": "Max Knuckle", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "fighting", - "id": 761 - }, - "762": { - "name": "Max Phantasm", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "ghost", - "id": 762 - }, - "763": { - "name": "Max Hailstorm", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "ice", - "id": 763 - }, - "764": { - "name": "Max Ooze", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "poison", - "id": 764 - }, - "765": { - "name": "Max Geyser", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "water", - "id": 765 - }, - "766": { - "name": "Max Airstream", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "flying", - "id": 766 - }, - "767": { - "name": "Max Starfall", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "fairy", - "id": 767 - }, - "768": { - "name": "Max Wyrmwind", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "dragon", - "id": 768 - }, - "769": { - "name": "Max Mindstorm", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "psychic", - "id": 769 - }, - "770": { - "name": "Max Rockfall", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "rock", - "id": 770 - }, - "771": { - "name": "Max Quake", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "ground", - "id": 771 - }, - "772": { - "name": "Max Darkness", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "dark", - "id": 772 - }, - "773": { - "name": "Max Overgrowth", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "grass", - "id": 773 - }, - "774": { - "name": "Max Steelspike", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 10, - "pp": 10, - "type": "steel", - "id": 774 - }, - "775": { - "name": "Clangorous Soul", - "accuracy": 100, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 5, - "type": "dragon", - "id": 775 - }, - "776": { - "name": "Body Press", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 80, - "pp": 10, - "type": "fighting", - "id": 776 - }, - "777": { - "name": "Decorate", - "accuracy": null, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 15, - "type": "fairy", - "id": 777 - }, - "778": { - "name": "Drum Beating", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 80, - "pp": 10, - "type": "grass", - "id": 778 - }, - "779": { - "name": "Snap Trap", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 35, - "pp": 15, - "type": "grass", - "id": 779 - }, - "780": { - "name": "Pyro Ball", - "accuracy": 90, - "class": "physical", - "generation": "generation-viii", - "power": 120, - "pp": 5, - "type": "fire", - "id": 780 - }, - "781": { - "name": "Behemoth Blade", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 100, - "pp": 5, - "type": "steel", - "id": 781 - }, - "782": { - "name": "Behemoth Bash", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 100, - "pp": 5, - "type": "steel", - "id": 782 - }, - "783": { - "name": "Aura Wheel", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 110, - "pp": 10, - "type": "electric", - "id": 783 - }, - "784": { - "name": "Breaking Swipe", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 60, - "pp": 15, - "type": "dragon", - "id": 784 - }, - "785": { - "name": "Branch Poke", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 40, - "pp": 40, - "type": "grass", - "id": 785 - }, - "786": { - "name": "Overdrive", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 80, - "pp": 10, - "type": "electric", - "id": 786 - }, - "787": { - "name": "Apple Acid", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 80, - "pp": 10, - "type": "grass", - "id": 787 - }, - "788": { - "name": "Grav Apple", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 80, - "pp": 10, - "type": "grass", - "id": 788 - }, - "789": { - "name": "Spirit Break", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 75, - "pp": 15, - "type": "fairy", - "id": 789 - }, - "790": { - "name": "Strange Steam", - "accuracy": 95, - "class": "special", - "generation": "generation-viii", - "power": 90, - "pp": 10, - "type": "fairy", - "id": 790 - }, - "791": { - "name": "Life Dew", - "accuracy": null, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 10, - "type": "water", - "id": 791 - }, - "792": { - "name": "Obstruct", - "accuracy": 100, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 10, - "type": "dark", - "id": 792 - }, - "793": { - "name": "False Surrender", - "accuracy": null, - "class": "physical", - "generation": "generation-viii", - "power": 80, - "pp": 10, - "type": "dark", - "id": 793 - }, - "794": { - "name": "Meteor Assault", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 150, - "pp": 5, - "type": "fighting", - "id": 794 - }, - "795": { - "name": "Eternabeam", - "accuracy": 90, - "class": "special", - "generation": "generation-viii", - "power": 160, - "pp": 5, - "type": "dragon", - "id": 795 - }, - "796": { - "name": "Steel Beam", - "accuracy": 95, - "class": "special", - "generation": "generation-viii", - "power": 140, - "pp": 5, - "type": "steel", - "id": 796 - }, - "797": { - "name": "Expanding Force", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 80, - "pp": 10, - "type": "psychic", - "id": 797 - }, - "798": { - "name": "Steel Roller", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 130, - "pp": 5, - "type": "steel", - "id": 798 - }, - "799": { - "name": "Scale Shot", - "accuracy": 90, - "class": "physical", - "generation": "generation-viii", - "power": 25, - "pp": 20, - "type": "dragon", - "id": 799 - }, - "800": { - "name": "Meteor Beam", - "accuracy": 90, - "class": "special", - "generation": "generation-viii", - "power": 120, - "pp": 10, - "type": "rock", - "id": 800 - }, - "801": { - "name": "Shell Side Arm", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 90, - "pp": 10, - "type": "poison", - "id": 801 - }, - "802": { - "name": "Misty Explosion", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 100, - "pp": 5, - "type": "fairy", - "id": 802 - }, - "803": { - "name": "Grassy Glide", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 70, - "pp": 20, - "type": "grass", - "id": 803 - }, - "804": { - "name": "Rising Voltage", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 70, - "pp": 20, - "type": "electric", - "id": 804 - }, - "805": { - "name": "Terrain Pulse", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 50, - "pp": 10, - "type": "normal", - "id": 805 - }, - "806": { - "name": "Skitter Smack", - "accuracy": 90, - "class": "physical", - "generation": "generation-viii", - "power": 70, - "pp": 10, - "type": "bug", - "id": 806 - }, - "807": { - "name": "Burning Jealousy", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 70, - "pp": 5, - "type": "fire", - "id": 807 - }, - "808": { - "name": "Lash Out", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 75, - "pp": 5, - "type": "dark", - "id": 808 - }, - "809": { - "name": "Poltergeist", - "accuracy": 90, - "class": "physical", - "generation": "generation-viii", - "power": 110, - "pp": 5, - "type": "ghost", - "id": 809 - }, - "810": { - "name": "Corrosive Gas", - "accuracy": 100, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 40, - "type": "poison", - "id": 810 - }, - "811": { - "name": "Coaching", - "accuracy": null, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 10, - "type": "fighting", - "id": 811 - }, - "812": { - "name": "Flip Turn", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 60, - "pp": 20, - "type": "water", - "id": 812 - }, - "813": { - "name": "Triple Axel", - "accuracy": 90, - "class": "physical", - "generation": "generation-viii", - "power": 20, - "pp": 10, - "type": "ice", - "id": 813 - }, - "814": { - "name": "Dual Wingbeat", - "accuracy": 90, - "class": "physical", - "generation": "generation-viii", - "power": 40, - "pp": 10, - "type": "flying", - "id": 814 - }, - "815": { - "name": "Scorching Sands", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 70, - "pp": 10, - "type": "ground", - "id": 815 - }, - "816": { - "name": "Jungle Healing", - "accuracy": null, - "class": "status", - "generation": "generation-viii", - "power": null, - "pp": 10, - "type": "grass", - "id": 816 - }, - "817": { - "name": "Wicked Blow", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 80, - "pp": 5, - "type": "dark", - "id": 817 - }, - "818": { - "name": "Surging Strikes", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 25, - "pp": 5, - "type": "water", - "id": 818 - }, - "819": { - "name": "Thunder Cage", - "accuracy": 90, - "class": "special", - "generation": "generation-viii", - "power": 80, - "pp": 15, - "type": "electric", - "id": 819 - }, - "820": { - "name": "Dragon Energy", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 150, - "pp": 5, - "type": "dragon", - "id": 820 - }, - "821": { - "name": "Freezing Glare", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 90, - "pp": 10, - "type": "psychic", - "id": 821 - }, - "822": { - "name": "Fiery Wrath", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 90, - "pp": 10, - "type": "dark", - "id": 822 - }, - "823": { - "name": "Thunderous Kick", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 90, - "pp": 10, - "type": "fighting", - "id": 823 - }, - "824": { - "name": "Glacial Lance", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 130, - "pp": 5, - "type": "ice", - "id": 824 - }, - "825": { - "name": "Astral Barrage", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 120, - "pp": 5, - "type": "ghost", - "id": 825 - }, - "826": { - "name": "Eerie Spell", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 80, - "pp": 5, - "type": "psychic", - "id": 826 - }, - "827": { - "name": "Dire Claw", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 80, - "pp": 15, - "type": "poison", - "id": 827 - }, - "828": { - "name": "Psyshield Bash", - "accuracy": 90, - "class": "physical", - "generation": "generation-viii", - "power": 70, - "pp": 10, - "type": "psychic", - "id": 828 - }, - "829": { - "name": "Power Shift", - "accuracy": null, - "class": "status", - "generation": "generation-viii", - "power": 0, - "pp": 10, - "type": "normal", - "id": 829 - }, - "830": { - "name": "Stone Axe", - "accuracy": 90, - "class": "physical", - "generation": "generation-viii", - "power": 65, - "pp": 15, - "type": "rock", - "id": 830 - }, - "831": { - "name": "Springtide Storm", - "accuracy": 80, - "class": "special", - "generation": "generation-viii", - "power": 100, - "pp": 5, - "type": "fairy", - "id": 831 - }, - "832": { - "name": "Mystical Power", - "accuracy": 90, - "class": "special", - "generation": "generation-viii", - "power": 70, - "pp": 10, - "type": "psychic", - "id": 832 - }, - "833": { - "name": "Raging Fury", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 120, - "pp": 10, - "type": "fire", - "id": 833 - }, - "834": { - "name": "Wave Crash", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 120, - "pp": 10, - "type": "water", - "id": 834 - }, - "835": { - "name": "Chloroblast", - "accuracy": 95, - "class": "special", - "generation": "generation-viii", - "power": 150, - "pp": 5, - "type": "grass", - "id": 835 - }, - "836": { - "name": "Mountain Gale", - "accuracy": 85, - "class": "physical", - "generation": "generation-viii", - "power": 100, - "pp": 10, - "pastGenPP": { - "G8": 5 - }, - "type": "ice", - "id": 836 - }, - "837": { - "name": "Victory Dance", - "accuracy": null, - "class": "status", - "generation": "generation-viii", - "power": 0, - "pp": 10, - "type": "fighting", - "id": 837 - }, - "838": { - "name": "Headlong Rush", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 120, - "pp": 5, - "type": "ground", - "id": 838 - }, - "839": { - "name": "Barb Barrage", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 60, - "pp": 10, - "pastGenPP": { - "G8": 15 - }, - "type": "poison", - "id": 839 - }, - "840": { - "name": "Esper Wing", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 80, - "pp": 10, - "type": "psychic", - "id": 840 - }, - "841": { - "name": "Bitter Malice", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 75, - "pp": 10, - "pastGenPP": { - "G8": 15 - }, - "type": "ghost", - "id": 841 - }, - "842": { - "name": "Shelter", - "accuracy": null, - "class": "status", - "generation": "generation-viii", - "power": 0, - "pp": 10, - "type": "steel", - "id": 842 - }, - "843": { - "name": "Triple Arrows", - "accuracy": 100, - "class": "physical", - "generation": "generation-viii", - "power": 90, - "pp": 10, - "pastGenPP": { - "G8": 5 - }, - "type": "fighting", - "id": 843 - }, - "844": { - "name": "Infernal Parade", - "accuracy": 100, - "class": "special", - "generation": "generation-viii", - "power": 60, - "pp": 15, - "type": "ghost", - "id": 844 - }, - "845": { - "name": "Ceaseless Edge", - "accuracy": 90, - "class": "physical", - "generation": "generation-viii", - "power": 65, - "pp": 15, - "type": "dark", - "id": 845 - }, - "846": { - "name": "Bleakwind Storm", - "accuracy": 80, - "class": "special", - "generation": "generation-viii", - "power": 100, - "pp": 10, - "pastGenPP": { - "G8": 5 - }, - "type": "flying", - "id": 846 - }, - "847": { - "name": "Wildbolt Storm", - "accuracy": 80, - "class": "special", - "generation": "generation-viii", - "power": 100, - "pp": 10, - "pastGenPP": { - "G8": 5 - }, - "type": "electric", - "id": 847 - }, - "848": { - "name": "Sandsear Storm", - "accuracy": 80, - "class": "special", - "generation": "generation-viii", - "power": 100, - "pp": 10, - "pastGenPP": { - "G8": 5 - }, - "type": "ground", - "id": 848 - }, - "849": { - "name": "Lunar Blessing", - "accuracy": null, - "class": "status", - "generation": "generation-viii", - "power": 0, - "pp": 5, - "pastGenPP": { - "G8": 10 - }, - "type": "psychic", - "id": 849 - }, - "850": { - "name": "Take Heart", - "accuracy": null, - "class": "status", - "generation": "generation-viii", - "power": 0, - "pp": 10, - "type": "psychic", - "id": 850 - }, - "851": { - "name": "Tera Blast", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 80, - "pp": 10, - "type": "normal", - "id": 851 - }, - "852": { - "name": "Silk Trap", - "accuracy": null, - "class": "status", - "generation": "generation-ix", - "power": 0, - "pp": 10, - "type": "bug", - "id": 852 - }, - "853": { - "name": "Axe Kick", - "accuracy": 90, - "class": "physical", - "generation": "generation-ix", - "power": 120, - "pp": 10, - "type": "fighting", - "id": 853 - }, - "854": { - "name": "Last Respects", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 50, - "pp": 10, - "type": "ghost", - "id": 854 - }, - "855": { - "name": "Lumina Crash", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 80, - "pp": 10, - "type": "psychic", - "id": 855 - }, - "856": { - "name": "Order Up", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 80, - "pp": 10, - "type": "dragon", - "id": 856 - }, - "857": { - "name": "Jet Punch", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 60, - "pp": 15, - "type": "water", - "id": 857 - }, - "858": { - "name": "Spicy Extract", - "accuracy": null, - "class": "status", - "generation": "generation-ix", - "power": 0, - "pp": 15, - "type": "grass", - "id": 858 - }, - "859": { - "name": "Spin Out", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 100, - "pp": 5, - "type": "steel", - "id": 859 - }, - "860": { - "name": "Population Bomb", - "accuracy": 90, - "class": "physical", - "generation": "generation-ix", - "power": 20, - "pp": 10, - "type": "normal", - "id": 860 - }, - "861": { - "name": "Ice Spinner", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 80, - "pp": 15, - "type": "ice", - "id": 861 - }, - "862": { - "name": "Glaive Rush", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 120, - "pp": 5, - "type": "dragon", - "id": 862 - }, - "863": { - "name": "Revival Blessing", - "accuracy": null, - "class": "status", - "generation": "generation-ix", - "power": 0, - "pp": 1, - "type": "normal", - "id": 863 - }, - "864": { - "name": "Salt Cure", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 40, - "pp": 15, - "type": "rock", - "id": 864 - }, - "865": { - "name": "Triple Dive", - "accuracy": 95, - "class": "physical", - "generation": "generation-ix", - "power": 30, - "pp": 10, - "type": "water", - "id": 865 - }, - "866": { - "name": "Mortal Spin", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 30, - "pp": 15, - "type": "poison", - "id": 866 - }, - "867": { - "name": "Doodle", - "accuracy": 100, - "class": "status", - "generation": "generation-ix", - "power": 0, - "pp": 10, - "type": "normal", - "id": 867 - }, - "868": { - "name": "Fillet Away", - "accuracy": null, - "class": "status", - "generation": "generation-ix", - "power": 0, - "pp": 10, - "type": "normal", - "id": 868 - }, - "869": { - "name": "Kowtow Cleave", - "accuracy": null, - "class": "physical", - "generation": "generation-ix", - "power": 85, - "pp": 10, - "type": "dark", - "id": 869 - }, - "870": { - "name": "Flower Trick", - "accuracy": null, - "class": "physical", - "generation": "generation-ix", - "power": 70, - "pp": 10, - "type": "grass", - "id": 870 - }, - "871": { - "name": "Torch Song", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 80, - "pp": 10, - "type": "fire", - "id": 871 - }, - "872": { - "name": "Aqua Step", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 80, - "pp": 10, - "type": "water", - "id": 872 - }, - "873": { - "name": "Raging Bull", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 90, - "pp": 10, - "type": "normal", - "id": 873 - }, - "874": { - "name": "Make It Rain", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 120, - "pp": 5, - "type": "steel", - "id": 874 - }, - "875": { - "name": "Psyblade", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 80, - "pp": 15, - "type": "psychic", - "id": 875 - }, - "876": { - "name": "Hydro Steam", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 80, - "pp": 15, - "type": "water", - "id": 876 - }, - "877": { - "name": "Ruination", - "accuracy": 90, - "class": "special", - "generation": "generation-ix", - "power": 1, - "pp": 10, - "type": "dark", - "id": 877 - }, - "878": { - "name": "Collision Course", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 100, - "pp": 5, - "type": "fighting", - "id": 878 - }, - "879": { - "name": "Electro Drift", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 100, - "pp": 5, - "type": "electric", - "id": 879 - }, - "880": { - "name": "Shed Tail", - "accuracy": null, - "class": "status", - "generation": "generation-ix", - "power": 0, - "pp": 10, - "type": "normal", - "id": 880 - }, - "881": { - "name": "Chilly Reception", - "accuracy": null, - "class": "status", - "generation": "generation-ix", - "power": 0, - "pp": 10, - "type": "ice", - "id": 881 - }, - "882": { - "name": "Tidy Up", - "accuracy": null, - "class": "status", - "generation": "generation-ix", - "power": 0, - "pp": 10, - "type": "normal", - "id": 882 - }, - "883": { - "name": "Snowscape", - "accuracy": null, - "class": "status", - "generation": "generation-ix", - "power": 0, - "pp": 10, - "type": "ice", - "id": 883 - }, - "884": { - "name": "Pounce", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 50, - "pp": 20, - "type": "bug", - "id": 884 - }, - "885": { - "name": "Trailblaze", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 50, - "pp": 20, - "type": "grass", - "id": 885 - }, - "886": { - "name": "Chilling Water", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 50, - "pp": 20, - "type": "water", - "id": 886 - }, - "887": { - "name": "Hyper Drill", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 100, - "pp": 5, - "type": "normal", - "id": 887 - }, - "888": { - "name": "Twin Beam", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 40, - "pp": 10, - "type": "psychic", - "id": 888 - }, - "889": { - "name": "Rage Fist", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 50, - "pp": 10, - "type": "ghost", - "id": 889 - }, - "890": { - "name": "Armor Cannon", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 120, - "pp": 5, - "type": "fire", - "id": 890 - }, - "891": { - "name": "Bitter Blade", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 90, - "pp": 10, - "type": "fire", - "id": 891 - }, - "892": { - "name": "Double Shock", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 120, - "pp": 5, - "type": "electric", - "id": 892 - }, - "893": { - "name": "Gigaton Hammer", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 160, - "pp": 5, - "type": "steel", - "id": 893 - }, - "894": { - "name": "Comeuppance", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 1, - "pp": 10, - "type": "dark", - "id": 894 - }, - "895": { - "name": "Aqua Cutter", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 70, - "pp": 20, - "type": "water", - "id": 895 - }, - "896": { - "name": "Blazing Torque", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 80, - "pp": 10, - "type": "fire", - "id": 896 - }, - "897": { - "name": "Wicked Torque", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 80, - "pp": 10, - "type": "dark", - "id": 897 - }, - "898": { - "name": "Noxious Torque", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 100, - "pp": 10, - "type": "poison", - "id": 898 - }, - "899": { - "name": "Combat Torque", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 100, - "pp": 10, - "type": "fighting", - "id": 899 - }, - "900": { - "name": "Magical Torque", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 100, - "pp": 10, - "type": "fairy", - "id": 900 - }, - "901": { - "name": "Blood Moon", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 140, - "pp": 5, - "type": "normal", - "id": 901 - }, - "902": { - "name": "Matcha Gotcha", - "accuracy": 90, - "class": "special", - "generation": "generation-ix", - "power": 80, - "pp": 15, - "type": "grass", - "id": 902 - }, - "903": { - "name": "Syrup Bomb", - "accuracy": 85, - "class": "special", - "generation": "generation-ix", - "power": 60, - "pp": 10, - "type": "grass", - "id": 903 - }, - "904": { - "name": "Ivy Cudgel", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 100, - "pp": 10, - "type": "grass", - "id": 904 - }, - "905": { - "name": "Electro Shot", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 130, - "pp": 10, - "type": "electric", - "id": 905 - }, - "906": { - "name": "Tera Starstorm", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 120, - "pp": 5, - "type": "normal", - "id": 906 - }, - "907": { - "name": "Fickle Beam", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 80, - "pp": 5, - "type": "dragon", - "id": 907 - }, - "908": { - "name": "Burning Bulwark", - "accuracy": null, - "class": "status", - "generation": "generation-ix", - "power": null, - "pp": 10, - "type": "fire", - "id": 908 - }, - "909": { - "name": "Thunderclap", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 70, - "pp": 5, - "type": "electric", - "id": 909 - }, - "910": { - "name": "Mighty Cleave", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 95, - "pp": 5, - "type": "rock", - "id": 910 - }, - "911": { - "name": "Tachyon Cutter", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 50, - "pp": 10, - "type": "steel", - "id": 911 - }, - "912": { - "name": "Hard Press", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": null, - "pp": 10, - "type": "steel", - "id": 912 - }, - "913": { - "name": "Dragon Cheer", - "accuracy": null, - "class": "status", - "generation": "generation-ix", - "power": null, - "pp": 15, - "type": "dragon", - "id": 913 - }, - "914": { - "name": "Alluring Voice", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 80, - "pp": 10, - "type": "fairy", - "id": 914 - }, - "915": { - "name": "Temper Flare", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 75, - "pp": 10, - "type": "fire", - "id": 915 - }, - "916": { - "name": "Supercell Slam", - "accuracy": 95, - "class": "physical", - "generation": "generation-ix", - "power": 100, - "pp": 15, - "type": "electric", - "id": 916 - }, - "917": { - "name": "Psychic Noise", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 75, - "pp": 15, - "type": "electric", - "id": 917 - }, - "918": { - "name": "Upper Hand", - "accuracy": 100, - "class": "physical", - "generation": "generation-ix", - "power": 65, - "pp": 15, - "type": "fighting", - "id": 918 - }, - "919": { - "name": "Malignant Chain", - "accuracy": 100, - "class": "special", - "generation": "generation-ix", - "power": 100, - "pp": 5, - "type": "poison", - "id": 919 - } -} diff --git a/src/consts/Moves.ts b/src/consts/Moves.ts deleted file mode 100644 index 2dd0286d..00000000 --- a/src/consts/Moves.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { Move } from '../types/types' -import Moves from './JSON/Moves.json' - -export const MOVE_DATA = Moves as unknown as Move[] diff --git a/src/main/initListeners.ts b/src/main/initListeners.ts index b415a6a6..ea2516bd 100644 --- a/src/main/initListeners.ts +++ b/src/main/initListeners.ts @@ -6,7 +6,7 @@ import path from 'path' import BackendInterface from '../types/backendInterface' import { bytesToPKM } from '../types/FileImport' import { OHPKM } from '../types/pkm/OHPKM' -import { ParsedPath, PossibleSaves } from '../types/SAVTypes/path' +import { PathData, PossibleSaves } from '../types/SAVTypes/path' import { SaveFolder, StoredBoxData } from '../types/storage' import { Errorable, LoadSaveResponse, LookupMap, SaveRef } from '../types/types' import { getMonFileIdentifier } from '../util/Lookup' @@ -261,7 +261,7 @@ export class OpenHomeAppBackend implements BackendInterface { return this.updateStoredList('box-data.json', boxData) } - public async loadSaveFile(filePath?: ParsedPath): Promise> { + public async loadSaveFile(filePath?: PathData): Promise> { try { const rawPath = filePath?.raw ?? (await selectFile())[0] const fileBytes = readBytesFromFile(rawPath) diff --git a/src/main/saves.ts b/src/main/saves.ts index 19e6f8d2..904f9e91 100644 --- a/src/main/saves.ts +++ b/src/main/saves.ts @@ -2,7 +2,7 @@ import fs from 'fs' import { uniqBy } from 'lodash' import os from 'os' import path from 'path' -import { ParsedPath, PossibleSaves } from '../types/SAVTypes/path' +import { PathData, PossibleSaves } from '../types/SAVTypes/path' import { SaveFolder } from '../types/storage' import { SaveRef, SaveRefMap } from '../types/types' import { @@ -65,7 +65,7 @@ export function removeSaveFileFolder(folderPath: string) { updateStoredList('save-folders.json', saveFolders) } -function parsedPathFromString(p: string): ParsedPath { +function parsedPathFromString(p: string): PathData { return { ...path.parse(p), separator: path.sep, diff --git a/src/renderer/app/App.tsx b/src/renderer/app/App.tsx index 7bb9a58d..cb5dc7e7 100644 --- a/src/renderer/app/App.tsx +++ b/src/renderer/app/App.tsx @@ -1,6 +1,6 @@ import { Box, Tab, TabList, TabPanel, Tabs, Typography } from '@mui/joy' import { extendTheme, ThemeProvider } from '@mui/joy/styles' -import { useMemo, useReducer } from 'react' +import { useCallback, useMemo, useReducer } from 'react' import 'react-data-grid/lib/styles.css' import { HomeData } from '../../types/SAVTypes/HomeData' import { BackendProvider } from '../backend/backendProvider' @@ -39,12 +39,18 @@ function App() { openSaves: {}, }) + const getEnabledSaveTypes = useCallback(() => { + return appInfoState.settings.extraSaveTypes + .concat(appInfoState.settings.officialSaveTypes) + .filter((saveType) => appInfoState.settings.enabledSaveTypes[saveType.name]) + }, [appInfoState.settings]) + const loading = false return ( - + ([]) + const [appInfoState, dispatchAppInfoState] = useContext(AppInfoContext) return (
- +
Enabled ROM Hack Formats
-
    - {romHackSaveTypes.map((format) => ( +
    + {appInfoState.settings.extraSaveTypes.map((saveType) => ( ))} -
+
) diff --git a/src/renderer/app/manage/Gen12Lookup.tsx b/src/renderer/app/manage/Gen12Lookup.tsx index 6f91dd99..d56d2b4a 100644 --- a/src/renderer/app/manage/Gen12Lookup.tsx +++ b/src/renderer/app/manage/Gen12Lookup.tsx @@ -1,5 +1,7 @@ import { useContext } from 'react' -import { getSaveLogo } from 'src/renderer/saves/util' +import { getPublicImageURL } from 'src/renderer/images/images' +import { getMonSaveLogo } from 'src/renderer/saves/util' +import { AppInfoContext } from 'src/renderer/state/appInfo' import { OHPKM } from 'src/types/pkm/OHPKM' import { numericSorter, stringSorter } from 'src/util/Sort' import OHDataGrid, { SortableColumn } from '../../components/OHDataGrid' @@ -14,6 +16,7 @@ type G12LookupRow = { export default function Gen12Lookup() { const [{ homeMons, gen12 }] = useContext(LookupContext) + const [, , getEnabledSaveTypes] = useContext(AppInfoContext) function pokemonFromLookupID(id: string) { if (!homeMons) return undefined @@ -49,7 +52,11 @@ export default function Gen12Lookup() { width: 130, renderValue: (value) => value.homeMon && ( - save logo + save logo ), sortFunction: numericSorter((val) => val.homeMon?.gameOfOrigin), cellClass: 'centered-cell', @@ -69,6 +76,7 @@ export default function Gen12Lookup() { cellClass: 'mono-cell', }, ] + return ( ({ diff --git a/src/renderer/app/manage/Gen345Lookup.tsx b/src/renderer/app/manage/Gen345Lookup.tsx index 5b091276..2f1f9265 100644 --- a/src/renderer/app/manage/Gen345Lookup.tsx +++ b/src/renderer/app/manage/Gen345Lookup.tsx @@ -1,5 +1,7 @@ import { useContext } from 'react' -import { getSaveLogo } from 'src/renderer/saves/util' +import { getPublicImageURL } from 'src/renderer/images/images' +import { getMonSaveLogo } from 'src/renderer/saves/util' +import { AppInfoContext } from 'src/renderer/state/appInfo' import { OHPKM } from 'src/types/pkm/OHPKM' import { numericSorter, stringSorter } from 'src/util/Sort' import OHDataGrid, { SortableColumn } from '../../components/OHDataGrid' @@ -14,6 +16,7 @@ type G345LookupRow = { export default function Gen345Lookup() { const [{ homeMons, gen345 }] = useContext(LookupContext) + const [, , getEnabledSaveTypes] = useContext(AppInfoContext) function pokemonFromLookupID(id: string) { if (!homeMons) return undefined @@ -50,7 +53,11 @@ export default function Gen345Lookup() { width: 130, renderValue: (value) => value.homeMon && ( - save logo + save logo ), sortFunction: numericSorter((val) => val.homeMon?.gameOfOrigin), cellClass: 'centered-cell', diff --git a/src/renderer/app/manage/OpenHomeMonList.tsx b/src/renderer/app/manage/OpenHomeMonList.tsx index 69ab72e1..6401e163 100644 --- a/src/renderer/app/manage/OpenHomeMonList.tsx +++ b/src/renderer/app/manage/OpenHomeMonList.tsx @@ -1,5 +1,7 @@ import { useContext } from 'react' -import { getSaveLogo } from 'src/renderer/saves/util' +import { getPublicImageURL } from 'src/renderer/images/images' +import { getMonSaveLogo } from 'src/renderer/saves/util' +import { AppInfoContext } from 'src/renderer/state/appInfo' import { OHPKM } from 'src/types/pkm/OHPKM' import { numericSorter, stringSorter } from 'src/util/Sort' import { getMonFileIdentifier } from '../../../util/Lookup' @@ -9,6 +11,7 @@ import { LookupContext } from '../../state/lookup' export default function OpenHomeMonList() { const [{ homeMons }] = useContext(LookupContext) + const [, , getEnabledSaveTypes] = useContext(AppInfoContext) const columns: SortableColumn[] = [ // { @@ -47,7 +50,11 @@ export default function OpenHomeMonList() { name: 'Original Game', width: 130, renderValue: (value) => ( - save logo + save logo ), sortFunction: numericSorter((val) => val?.gameOfOrigin), cellClass: 'centered-cell', diff --git a/src/renderer/app/sort/SortPokemon.tsx b/src/renderer/app/sort/SortPokemon.tsx index b0bfb4cd..561f1b00 100644 --- a/src/renderer/app/sort/SortPokemon.tsx +++ b/src/renderer/app/sort/SortPokemon.tsx @@ -20,6 +20,8 @@ function getSortFunction( return (a, b) => b.mon.getLevel() - a.mon.getLevel() case 'species': return (a, b) => a.mon.dexNum - b.mon.dexNum + case 'origin': + return (a, b) => a.mon.gameOfOrigin - b.mon.gameOfOrigin case 'met_date': return (a, b) => { const aDate = @@ -88,7 +90,7 @@ export default function SortPokemon() { setSort(value ?? '')} placeholder="Sort" /> diff --git a/src/renderer/backend/electronBackend.ts b/src/renderer/backend/electronBackend.ts index c62247df..6cfa7b7c 100644 --- a/src/renderer/backend/electronBackend.ts +++ b/src/renderer/backend/electronBackend.ts @@ -1,6 +1,6 @@ import { createContext } from 'react' import BackendInterface from '../../types/backendInterface' -import { ParsedPath, PossibleSaves } from '../../types/SAVTypes/path' +import { PathData, PossibleSaves } from '../../types/SAVTypes/path' import { SaveFolder, StoredBoxData } from '../../types/storage' import { Errorable, LoadSaveResponse, LookupMap, SaveRef } from '../../types/types' @@ -38,7 +38,7 @@ export const ElectronBackend: BackendInterface = { }, /* game saves */ - loadSaveFile: (filePath?: ParsedPath): Promise> => { + loadSaveFile: (filePath?: PathData): Promise> => { return window.electron.ipcRenderer.invoke('load-save-file', filePath) }, writeSaveFile: (path: string, bytes: Uint8Array) => { diff --git a/src/renderer/components/HexEditor.tsx b/src/renderer/components/HexEditor.tsx index 12877ac4..27bb7bb6 100644 --- a/src/renderer/components/HexEditor.tsx +++ b/src/renderer/components/HexEditor.tsx @@ -4,6 +4,7 @@ import hexy from 'hexy' import lodash from 'lodash' import { FileSchemas } from 'pokemon-files' import { CSSProperties, Fragment, useEffect, useMemo, useState } from 'react' +import { OHPKM } from 'src/types/pkm/OHPKM' interface HexEditorProps { data: Uint8Array @@ -28,7 +29,12 @@ const styles: { [key: string]: CSSProperties } = { const HexEditor = ({ data, format }: HexEditorProps) => { const [hexyText, setHexyText] = useState() const [currentHover, setCurrentHover] = useState() - const schema = format ? FileSchemas[format] : undefined + const schema = useMemo(() => { + if (format === 'OHPKM') { + return OHPKM.schema + } + return format ? FileSchemas[format] : undefined + }, [format]) const theme = useTheme() useEffect(() => { diff --git a/src/renderer/images/game.ts b/src/renderer/images/game.ts index 1f4fc1a4..1ad1d1a8 100644 --- a/src/renderer/images/game.ts +++ b/src/renderer/images/game.ts @@ -1,6 +1,6 @@ import { ColosseumOrXD, GameOfOrigin, GameOfOriginData, colosseumOrXD } from 'pokemon-resources' -const GameLogos: { [key: string]: string } = { +export const GameLogos: { [key: string]: string } = { AlphaSapphire: `logos/Alpha_Sapphire.png`, Black2: `logos/Black_2.png`, Black: `logos/Black.png`, @@ -46,9 +46,12 @@ const GameLogos: { [key: string]: string } = { Yellow: `logos/Yellow.png`, } -export const getGameLogo = (gameOfOrigin: number, dexNum?: number, hasNationalRibbon?: boolean) => { +export const getGameLogo = ( + gameOfOrigin: number, + extraData?: { pluginIdentifier?: string; dexNum?: number; hasNationalRibbon?: boolean } +) => { if (gameOfOrigin === GameOfOrigin.ColosseumXD) { - switch (colosseumOrXD(dexNum, hasNationalRibbon)) { + switch (colosseumOrXD(extraData?.dexNum, extraData?.hasNationalRibbon)) { case ColosseumOrXD.Colosseum: return GameLogos.Colosseum case ColosseumOrXD.XD: diff --git a/src/renderer/images/images.ts b/src/renderer/images/images.ts index 92f568c0..9059907a 100644 --- a/src/renderer/images/images.ts +++ b/src/renderer/images/images.ts @@ -1,3 +1,7 @@ +import { useContext } from 'react' +import { PKMInterface } from '../../types/interfaces' +import { AppInfoContext } from '../state/appInfo' + export const getPublicImageURL = (path: string): string => { const urlPath = `../${path}` return new URL(urlPath, import.meta.url).href @@ -6,3 +10,10 @@ export const getPublicImageURL = (path: string): string => { export const getTypeIconPath = (type: string): string => { return `types/${type.toLowerCase()}.png` } + +export function useMonSaveLogo(mon: PKMInterface) { + const [, , getEnabledSaveTypes] = useContext(AppInfoContext) + if (mon.pluginIdentifier) { + getEnabledSaveTypes().find((saveType) => saveType) + } +} diff --git a/src/renderer/images/pokemon.ts b/src/renderer/images/pokemon.ts index d3c90b46..b41866a5 100644 --- a/src/renderer/images/pokemon.ts +++ b/src/renderer/images/pokemon.ts @@ -1,6 +1,9 @@ import { NationalDex, PokemonData } from 'pokemon-species-data' -import { SWEETS } from '../../consts/Formes' + +import { BLOOD_MOON, SWEETS } from '../../consts/Formes' import { PKMInterface } from '../../types/interfaces' +import { toGen3RRPokemonIndex } from '../../types/SAVTypes/radicalred/conversion/Gen3RRPokemonIndex' +import { RRSprites } from '../../types/SAVTypes/radicalred/conversion/RadicalRedSprites' const alolaDex = [ 10, 11, 12, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 36, 37, 38, 39, 40, 41, 42, 46, 47, 50, @@ -32,6 +35,7 @@ export const fileToSpriteFolder: Record = { PK3: 'gen3', COLOPKM: 'gen3gc', XDPKM: 'gen3gc', + PK3RR: 'rr', PK4: 'gen4', PK5: 'gen5', PK6: 'gen6', @@ -56,6 +60,14 @@ export const getPokemonSpritePath = (mon: PKMInterface, format?: string) => { let spriteFolder = fileToSpriteFolder[monFormat] if (spriteFolder === 'gen7' && !alolaDex.includes(mon.dexNum)) { spriteFolder = 'gen6' + } else if (spriteFolder == 'rr') { + if (mon.dexNum === NationalDex.Ursaluna && mon.formeNum === BLOOD_MOON) { + return 'sprites/home/ursaluna-bloodmoon.png' + } + let gen3RRname = RRSprites[toGen3RRPokemonIndex(mon.dexNum, mon.formeNum)] + if (gen3RRname.length === 0) return gen3RRname + gen3RRname = gen3RRname[0].toUpperCase() + gen3RRname.slice(1).toLowerCase() + return `sprites/${spriteFolder}/${gen3RRname}` } return `sprites/${spriteFolder}${ mon.isShiny() && spriteFolder !== 'gen1' && spriteFolder !== 'gen9' ? '/shiny/' : '/' diff --git a/src/renderer/pokemon/FileTypeSelect.tsx b/src/renderer/pokemon/FileTypeSelect.tsx index 2aba8218..8061d4ab 100644 --- a/src/renderer/pokemon/FileTypeSelect.tsx +++ b/src/renderer/pokemon/FileTypeSelect.tsx @@ -45,23 +45,22 @@ const fileTypeColors: Record = { interface FileTypeSelectProps { baseFormat: string currentFormat: string + color?: string formData: PKMFormData onChange: (selectedFormat: string) => void } const FileTypeSelect = (props: FileTypeSelectProps) => { - const { baseFormat, currentFormat, formData, onChange } = props - const [appInfo] = useContext(AppInfoContext) + const { baseFormat, currentFormat, color, formData, onChange } = props + const [, , getEnabledSaveTypes] = useContext(AppInfoContext) const supportedFormats = useMemo(() => { const supportedFormats = uniq( - appInfo.settings.allSaveTypes - .filter((saveType) => appInfo.settings.enabledSaveTypes[saveType.name]) - .map((saveType) => - supportsMon(saveType, formData.dexNum, formData.formeNum) - ? saveType.pkmType.name.slice(1) // get class name workaround - : undefined - ) + getEnabledSaveTypes().map((saveType) => + supportsMon(saveType, formData.dexNum, formData.formeNum) + ? saveType.pkmType.name.replace('_', '') // get class name workaround + : undefined + ) ).filter(filterUndefined) // These should be removed when support is added for their corresponding saves @@ -91,12 +90,16 @@ const FileTypeSelect = (props: FileTypeSelectProps) => { }} style={{ ...styles.fileTypeChip, - backgroundColor: fileTypeColors[currentFormat], + backgroundColor: color ?? fileTypeColors[currentFormat], }} > {baseFormat === 'OHPKM' ? ( - supportedFormats.map((format) => ) + supportedFormats.map((format) => ( + + )) ) : ( )} diff --git a/src/renderer/pokemon/MetDataMovesDisplay.tsx b/src/renderer/pokemon/MetDataMovesDisplay.tsx index a2559d4e..165b168d 100644 --- a/src/renderer/pokemon/MetDataMovesDisplay.tsx +++ b/src/renderer/pokemon/MetDataMovesDisplay.tsx @@ -5,14 +5,17 @@ import { NatureToString, RibbonTitles, } from 'pokemon-resources' -import { useMemo } from 'react' +import { useContext, useMemo } from 'react' import { PKMInterface } from '../../types/interfaces' import { getCharacteristic, getMoveMaxPP } from '../../types/pkm/util' +import { getGameName, getPluginIdentifier } from '../../types/SAVTypes/util' import { Styles } from '../../types/types' import Markings from '../components/Markings' -import { getGameLogo, getOriginMark } from '../images/game' +import { getOriginMark } from '../images/game' import { getPublicImageURL } from '../images/images' import { getBallIconPath } from '../images/items' +import { getMonSaveLogo } from '../saves/util' +import { AppInfoContext } from '../state/appInfo' import MoveCard from './MoveCard' const styles = { @@ -68,6 +71,7 @@ const metTimesOfDay = ['in the morning', 'during the daytime', 'in the evening'] const MetDataMovesDisplay = (props: { mon: PKMInterface }) => { const { mon } = props + const [, , getEnabledSaveTypes] = useContext(AppInfoContext) const eggMessage = useMemo(() => { if (!mon.eggLocationIndex || !mon.eggDate || !mon.gameOfOrigin) { @@ -82,14 +86,22 @@ const MetDataMovesDisplay = (props: { mon: PKMInterface }) => { if (!mon.metLocationIndex) { return 'Met location unknown.' } + let message = 'Met' + if (mon.pluginOrigin) { + const saveType = getEnabledSaveTypes().find( + (saveType) => mon.pluginOrigin === getPluginIdentifier(saveType) + ) + message += ` in ${saveType ? getGameName(saveType) : '(unknown game)'}` + } + if (mon.metTimeOfDay) { message += ` ${metTimesOfDay[mon.metTimeOfDay - 1]}` } if (mon.metDate) { message += ` on ${mon.metDate.month}/${mon.metDate.day}/${mon.metDate.year}` } - if (mon.gameOfOrigin) { + if (mon.gameOfOrigin && mon.metLocationIndex) { const location = getLocationString(mon.gameOfOrigin, mon.metLocationIndex, mon.format) message += ` ${location}` } @@ -172,15 +184,10 @@ const MetDataMovesDisplay = (props: { mon: PKMInterface }) => { {mon.gameOfOrigin && ( {`${GameOfOriginData[mon.gameOfOrigin]?.name} )} diff --git a/src/renderer/pokemon/MoveCard.tsx b/src/renderer/pokemon/MoveCard.tsx index 12a306d0..11a0f0bc 100644 --- a/src/renderer/pokemon/MoveCard.tsx +++ b/src/renderer/pokemon/MoveCard.tsx @@ -1,6 +1,5 @@ -import { Type } from 'pokemon-resources' +import { Moves, Type } from 'pokemon-resources' import { useMemo } from 'react' -import { MOVE_DATA } from '../../consts/Moves' import TypeIcon from '../components/TypeIcon' import { getTypeColor } from '../util/PokemonSprite' import './style.css' @@ -13,7 +12,45 @@ interface MoveCardProps { } const MoveCard = ({ move, movePP, maxPP, typeOverride }: MoveCardProps) => { - const type = useMemo(() => typeOverride ?? (MOVE_DATA[move]?.type as Type), [typeOverride, move]) + const moveData = useMemo(() => Moves[move], [move]) + const type = useMemo(() => typeOverride ?? (moveData?.type as Type), [typeOverride, moveData]) + + const content = useMemo(() => { + if (move === 0) { + // mon knows less than 4 moves + return undefined + } + + if (!moveData) { + console.warn(`An unknown move has been detected. The move index is ${move}.`) + // move is unknown + return ( + <> +
+
(Unknown Move)
+ + ) + } + + // move is known + return ( + <> +
+ +
+
+
{moveData.name}
+
+ {movePP ?? '--'}/{maxPP ?? '--'} PP +
+
+ + ) + }, [move, moveData]) return (
{ backgroundColor: getTypeColor(type), }} > - {type && ( - <> -
- -
- -
-
{MOVE_DATA[move]?.name}
-
- {movePP ?? '--'}/{maxPP ?? '--'} PP -
-
- - )} + {content}
) } diff --git a/src/renderer/pokemon/OtherDisplay.tsx b/src/renderer/pokemon/OtherDisplay.tsx index 7e6c0782..6fb3e841 100644 --- a/src/renderer/pokemon/OtherDisplay.tsx +++ b/src/renderer/pokemon/OtherDisplay.tsx @@ -4,6 +4,7 @@ import { BDSPTMMoveIndexes, isGen4, LATutorMoveIndexes, + Moves, SVTMMoveIndexes, SwShTRMoveIndexes, } from 'pokemon-resources' @@ -14,7 +15,6 @@ import { get16BitChecksumLittleEndian } from 'src/util/ByteLogic' import { Countries } from '../../consts/Countries' import { EncounterTypes } from '../../consts/EncounterTypes' import { SWEETS } from '../../consts/Formes' -import { MOVE_DATA } from '../../consts/Moves' import { GEN2_TRANSFER_RESTRICTIONS, HGSS_TRANSFER_RESTRICTIONS, @@ -267,7 +267,7 @@ const OtherDisplay = (props: { mon: PKMInterface }) => { {getFlagsInRange(mon.trFlagsSwSh, 0, 14).map((i) => ( - {MOVE_DATA[SwShTRMoveIndexes[i]].name} + {Moves[SwShTRMoveIndexes[i]].name} ))} @@ -293,7 +293,7 @@ const OtherDisplay = (props: { mon: PKMInterface }) => { {getFlagsInRange(mon.tmFlagsBDSP, 0, 14).map((i) => ( - {MOVE_DATA[BDSPTMMoveIndexes[i]].name} + {Moves[BDSPTMMoveIndexes[i]].name} ))} @@ -319,7 +319,7 @@ const OtherDisplay = (props: { mon: PKMInterface }) => { {getFlagsInRange(mon.tutorFlagsLA, 0, 8).map((i) => ( - {MOVE_DATA[LATutorMoveIndexes[i]].name} + {Moves[LATutorMoveIndexes[i]].name} ))} @@ -346,7 +346,7 @@ const OtherDisplay = (props: { mon: PKMInterface }) => { {getFlagsInRange(mon.tmFlagsSV, 0, 22).map((i) => ( - {MOVE_DATA[SVTMMoveIndexes[i]].name} + {Moves[SVTMMoveIndexes[i]].name} ))} diff --git a/src/renderer/pokemon/PokemonDetailsPanel.tsx b/src/renderer/pokemon/PokemonDetailsPanel.tsx index b1490bde..e64f5f7c 100644 --- a/src/renderer/pokemon/PokemonDetailsPanel.tsx +++ b/src/renderer/pokemon/PokemonDetailsPanel.tsx @@ -55,6 +55,7 @@ const PokemonDetailsPanel = (props: { { if (mon.format === newFormat) { @@ -128,8 +129,12 @@ const PokemonDetailsPanel = (props: { diff --git a/src/renderer/pokemon/RawDisplay.tsx b/src/renderer/pokemon/RawDisplay.tsx index 589ae8de..5e41b8b1 100644 --- a/src/renderer/pokemon/RawDisplay.tsx +++ b/src/renderer/pokemon/RawDisplay.tsx @@ -6,11 +6,8 @@ interface RawDisplayProps { format?: string } -const RawDisplay = ({ bytes, format }: RawDisplayProps) => { - return format && format in FileSchemas ? ( - - ) : ( -
- ) -} +const RawDisplay = ({ bytes, format }: RawDisplayProps) => ( + +) + export default RawDisplay diff --git a/src/renderer/pokemon/style.css b/src/renderer/pokemon/style.css index 9d44dd39..617a3d8c 100644 --- a/src/renderer/pokemon/style.css +++ b/src/renderer/pokemon/style.css @@ -5,7 +5,6 @@ display: flex; border-radius: 5px; flex-direction: column; - justify-content: center; display: flex; flex-direction: row; } @@ -21,10 +20,21 @@ color: white; } +.unknown-move-name { + font-size: 1.2em; + font-weight: bold; + color: #999; + height: 100%; + display: flex; + flex-direction: column; + justify-content: center; +} + .type-icon-container { height: 100%; display: flex; flex-direction: column; justify-content: center; margin: 0px 8px; + width: 30px; } diff --git a/src/renderer/public/logos/radical_red.png b/src/renderer/public/logos/radical_red.png new file mode 100644 index 00000000..9e38db12 Binary files /dev/null and b/src/renderer/public/logos/radical_red.png differ diff --git a/src/renderer/public/sprites/rr/Abomasnow.png b/src/renderer/public/sprites/rr/Abomasnow.png new file mode 100644 index 00000000..889663f4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Abomasnow.png differ diff --git a/src/renderer/public/sprites/rr/Abomasnowmega.png b/src/renderer/public/sprites/rr/Abomasnowmega.png new file mode 100644 index 00000000..6a75c772 Binary files /dev/null and b/src/renderer/public/sprites/rr/Abomasnowmega.png differ diff --git a/src/renderer/public/sprites/rr/Abra.png b/src/renderer/public/sprites/rr/Abra.png new file mode 100644 index 00000000..dd45ba2b Binary files /dev/null and b/src/renderer/public/sprites/rr/Abra.png differ diff --git a/src/renderer/public/sprites/rr/Absol.png b/src/renderer/public/sprites/rr/Absol.png new file mode 100644 index 00000000..a7fd83cf Binary files /dev/null and b/src/renderer/public/sprites/rr/Absol.png differ diff --git a/src/renderer/public/sprites/rr/Absolmega.png b/src/renderer/public/sprites/rr/Absolmega.png new file mode 100644 index 00000000..80ccbd3e Binary files /dev/null and b/src/renderer/public/sprites/rr/Absolmega.png differ diff --git a/src/renderer/public/sprites/rr/Accelgor.png b/src/renderer/public/sprites/rr/Accelgor.png new file mode 100644 index 00000000..6fc6c9f9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Accelgor.png differ diff --git a/src/renderer/public/sprites/rr/Aegislash.png b/src/renderer/public/sprites/rr/Aegislash.png new file mode 100644 index 00000000..633c5405 Binary files /dev/null and b/src/renderer/public/sprites/rr/Aegislash.png differ diff --git a/src/renderer/public/sprites/rr/Aegislashblade.png b/src/renderer/public/sprites/rr/Aegislashblade.png new file mode 100644 index 00000000..415e0857 Binary files /dev/null and b/src/renderer/public/sprites/rr/Aegislashblade.png differ diff --git a/src/renderer/public/sprites/rr/Aerodactyl.png b/src/renderer/public/sprites/rr/Aerodactyl.png new file mode 100644 index 00000000..8faf1228 Binary files /dev/null and b/src/renderer/public/sprites/rr/Aerodactyl.png differ diff --git a/src/renderer/public/sprites/rr/Aerodactylmega.png b/src/renderer/public/sprites/rr/Aerodactylmega.png new file mode 100644 index 00000000..c0a585ba Binary files /dev/null and b/src/renderer/public/sprites/rr/Aerodactylmega.png differ diff --git a/src/renderer/public/sprites/rr/Aggron.png b/src/renderer/public/sprites/rr/Aggron.png new file mode 100644 index 00000000..16253b88 Binary files /dev/null and b/src/renderer/public/sprites/rr/Aggron.png differ diff --git a/src/renderer/public/sprites/rr/Aggronmega.png b/src/renderer/public/sprites/rr/Aggronmega.png new file mode 100644 index 00000000..7308e070 Binary files /dev/null and b/src/renderer/public/sprites/rr/Aggronmega.png differ diff --git a/src/renderer/public/sprites/rr/Aipom.png b/src/renderer/public/sprites/rr/Aipom.png new file mode 100644 index 00000000..0c5af846 Binary files /dev/null and b/src/renderer/public/sprites/rr/Aipom.png differ diff --git a/src/renderer/public/sprites/rr/Alakazam.png b/src/renderer/public/sprites/rr/Alakazam.png new file mode 100644 index 00000000..190564f7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Alakazam.png differ diff --git a/src/renderer/public/sprites/rr/Alakazammega.png b/src/renderer/public/sprites/rr/Alakazammega.png new file mode 100644 index 00000000..def470c2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Alakazammega.png differ diff --git a/src/renderer/public/sprites/rr/Alcremieberry.png b/src/renderer/public/sprites/rr/Alcremieberry.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Alcremieberry.png differ diff --git a/src/renderer/public/sprites/rr/Alcremieclover.png b/src/renderer/public/sprites/rr/Alcremieclover.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Alcremieclover.png differ diff --git a/src/renderer/public/sprites/rr/Alcremieflower.png b/src/renderer/public/sprites/rr/Alcremieflower.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Alcremieflower.png differ diff --git a/src/renderer/public/sprites/rr/Alcremiegiga.png b/src/renderer/public/sprites/rr/Alcremiegiga.png new file mode 100644 index 00000000..d50ec4df Binary files /dev/null and b/src/renderer/public/sprites/rr/Alcremiegiga.png differ diff --git a/src/renderer/public/sprites/rr/Alcremielove.png b/src/renderer/public/sprites/rr/Alcremielove.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Alcremielove.png differ diff --git a/src/renderer/public/sprites/rr/Alcremieribbon.png b/src/renderer/public/sprites/rr/Alcremieribbon.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Alcremieribbon.png differ diff --git a/src/renderer/public/sprites/rr/Alcremiestar.png b/src/renderer/public/sprites/rr/Alcremiestar.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Alcremiestar.png differ diff --git a/src/renderer/public/sprites/rr/Alcremiestrawberry.png b/src/renderer/public/sprites/rr/Alcremiestrawberry.png new file mode 100644 index 00000000..e41d331c Binary files /dev/null and b/src/renderer/public/sprites/rr/Alcremiestrawberry.png differ diff --git a/src/renderer/public/sprites/rr/Alomomola.png b/src/renderer/public/sprites/rr/Alomomola.png new file mode 100644 index 00000000..71c8876c Binary files /dev/null and b/src/renderer/public/sprites/rr/Alomomola.png differ diff --git a/src/renderer/public/sprites/rr/Altaria.png b/src/renderer/public/sprites/rr/Altaria.png new file mode 100644 index 00000000..5d212216 Binary files /dev/null and b/src/renderer/public/sprites/rr/Altaria.png differ diff --git a/src/renderer/public/sprites/rr/Altariamega.png b/src/renderer/public/sprites/rr/Altariamega.png new file mode 100644 index 00000000..b0f61bb5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Altariamega.png differ diff --git a/src/renderer/public/sprites/rr/Amaura.png b/src/renderer/public/sprites/rr/Amaura.png new file mode 100644 index 00000000..4bbd10a4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Amaura.png differ diff --git a/src/renderer/public/sprites/rr/Ambipom.png b/src/renderer/public/sprites/rr/Ambipom.png new file mode 100644 index 00000000..92bffb76 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ambipom.png differ diff --git a/src/renderer/public/sprites/rr/Amoonguss.png b/src/renderer/public/sprites/rr/Amoonguss.png new file mode 100644 index 00000000..ab645e02 Binary files /dev/null and b/src/renderer/public/sprites/rr/Amoonguss.png differ diff --git a/src/renderer/public/sprites/rr/Ampharos.png b/src/renderer/public/sprites/rr/Ampharos.png new file mode 100644 index 00000000..cd846ed3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ampharos.png differ diff --git a/src/renderer/public/sprites/rr/Ampharosmega.png b/src/renderer/public/sprites/rr/Ampharosmega.png new file mode 100644 index 00000000..e6ea962e Binary files /dev/null and b/src/renderer/public/sprites/rr/Ampharosmega.png differ diff --git a/src/renderer/public/sprites/rr/Annihilape.png b/src/renderer/public/sprites/rr/Annihilape.png new file mode 100644 index 00000000..ca0f93e8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Annihilape.png differ diff --git a/src/renderer/public/sprites/rr/Anorith.png b/src/renderer/public/sprites/rr/Anorith.png new file mode 100644 index 00000000..9582e8c2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Anorith.png differ diff --git a/src/renderer/public/sprites/rr/Appletun.png b/src/renderer/public/sprites/rr/Appletun.png new file mode 100644 index 00000000..98452771 Binary files /dev/null and b/src/renderer/public/sprites/rr/Appletun.png differ diff --git a/src/renderer/public/sprites/rr/Appletungiga.png b/src/renderer/public/sprites/rr/Appletungiga.png new file mode 100644 index 00000000..336ee7e4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Appletungiga.png differ diff --git a/src/renderer/public/sprites/rr/Applin.png b/src/renderer/public/sprites/rr/Applin.png new file mode 100644 index 00000000..bd3adf64 Binary files /dev/null and b/src/renderer/public/sprites/rr/Applin.png differ diff --git a/src/renderer/public/sprites/rr/Araquanid.png b/src/renderer/public/sprites/rr/Araquanid.png new file mode 100644 index 00000000..9413036f Binary files /dev/null and b/src/renderer/public/sprites/rr/Araquanid.png differ diff --git a/src/renderer/public/sprites/rr/Arbok.png b/src/renderer/public/sprites/rr/Arbok.png new file mode 100644 index 00000000..dcae1c2c Binary files /dev/null and b/src/renderer/public/sprites/rr/Arbok.png differ diff --git a/src/renderer/public/sprites/rr/Arboliva.png b/src/renderer/public/sprites/rr/Arboliva.png new file mode 100644 index 00000000..971f83d3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arboliva.png differ diff --git a/src/renderer/public/sprites/rr/Arcanine.png b/src/renderer/public/sprites/rr/Arcanine.png new file mode 100644 index 00000000..eac4ecc3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arcanine.png differ diff --git a/src/renderer/public/sprites/rr/Arcanineh.png b/src/renderer/public/sprites/rr/Arcanineh.png new file mode 100644 index 00000000..0a0a070f Binary files /dev/null and b/src/renderer/public/sprites/rr/Arcanineh.png differ diff --git a/src/renderer/public/sprites/rr/Arceus.png b/src/renderer/public/sprites/rr/Arceus.png new file mode 100644 index 00000000..b5c3f0c8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceus.png differ diff --git a/src/renderer/public/sprites/rr/Arceusbug.png b/src/renderer/public/sprites/rr/Arceusbug.png new file mode 100644 index 00000000..db0a2a33 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceusbug.png differ diff --git a/src/renderer/public/sprites/rr/Arceusdark.png b/src/renderer/public/sprites/rr/Arceusdark.png new file mode 100644 index 00000000..ff438271 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceusdark.png differ diff --git a/src/renderer/public/sprites/rr/Arceusdragon.png b/src/renderer/public/sprites/rr/Arceusdragon.png new file mode 100644 index 00000000..731c09f2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceusdragon.png differ diff --git a/src/renderer/public/sprites/rr/Arceuselectric.png b/src/renderer/public/sprites/rr/Arceuselectric.png new file mode 100644 index 00000000..4ab7a25a Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceuselectric.png differ diff --git a/src/renderer/public/sprites/rr/Arceusfairy.png b/src/renderer/public/sprites/rr/Arceusfairy.png new file mode 100644 index 00000000..31127970 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceusfairy.png differ diff --git a/src/renderer/public/sprites/rr/Arceusfight.png b/src/renderer/public/sprites/rr/Arceusfight.png new file mode 100644 index 00000000..1e85672b Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceusfight.png differ diff --git a/src/renderer/public/sprites/rr/Arceusfire.png b/src/renderer/public/sprites/rr/Arceusfire.png new file mode 100644 index 00000000..95dbaa00 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceusfire.png differ diff --git a/src/renderer/public/sprites/rr/Arceusflying.png b/src/renderer/public/sprites/rr/Arceusflying.png new file mode 100644 index 00000000..1d49d0bd Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceusflying.png differ diff --git a/src/renderer/public/sprites/rr/Arceusghost.png b/src/renderer/public/sprites/rr/Arceusghost.png new file mode 100644 index 00000000..e3e19321 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceusghost.png differ diff --git a/src/renderer/public/sprites/rr/Arceusgrass.png b/src/renderer/public/sprites/rr/Arceusgrass.png new file mode 100644 index 00000000..82d2ed8b Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceusgrass.png differ diff --git a/src/renderer/public/sprites/rr/Arceusground.png b/src/renderer/public/sprites/rr/Arceusground.png new file mode 100644 index 00000000..92100a7e Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceusground.png differ diff --git a/src/renderer/public/sprites/rr/Arceusice.png b/src/renderer/public/sprites/rr/Arceusice.png new file mode 100644 index 00000000..f8ed924f Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceusice.png differ diff --git a/src/renderer/public/sprites/rr/Arceuspoison.png b/src/renderer/public/sprites/rr/Arceuspoison.png new file mode 100644 index 00000000..5b3916ea Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceuspoison.png differ diff --git a/src/renderer/public/sprites/rr/Arceuspsychic.png b/src/renderer/public/sprites/rr/Arceuspsychic.png new file mode 100644 index 00000000..e8cd0749 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceuspsychic.png differ diff --git a/src/renderer/public/sprites/rr/Arceusrock.png b/src/renderer/public/sprites/rr/Arceusrock.png new file mode 100644 index 00000000..b559c97f Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceusrock.png differ diff --git a/src/renderer/public/sprites/rr/Arceussteel.png b/src/renderer/public/sprites/rr/Arceussteel.png new file mode 100644 index 00000000..9c95ccb7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceussteel.png differ diff --git a/src/renderer/public/sprites/rr/Arceuswater.png b/src/renderer/public/sprites/rr/Arceuswater.png new file mode 100644 index 00000000..e7423e8f Binary files /dev/null and b/src/renderer/public/sprites/rr/Arceuswater.png differ diff --git a/src/renderer/public/sprites/rr/Archen.png b/src/renderer/public/sprites/rr/Archen.png new file mode 100644 index 00000000..f5eeaf35 Binary files /dev/null and b/src/renderer/public/sprites/rr/Archen.png differ diff --git a/src/renderer/public/sprites/rr/Archeops.png b/src/renderer/public/sprites/rr/Archeops.png new file mode 100644 index 00000000..c331793f Binary files /dev/null and b/src/renderer/public/sprites/rr/Archeops.png differ diff --git a/src/renderer/public/sprites/rr/Arctibax.png b/src/renderer/public/sprites/rr/Arctibax.png new file mode 100644 index 00000000..77170f52 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arctibax.png differ diff --git a/src/renderer/public/sprites/rr/Arctovish.png b/src/renderer/public/sprites/rr/Arctovish.png new file mode 100644 index 00000000..03d61612 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arctovish.png differ diff --git a/src/renderer/public/sprites/rr/Arctozolt.png b/src/renderer/public/sprites/rr/Arctozolt.png new file mode 100644 index 00000000..59275e37 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arctozolt.png differ diff --git a/src/renderer/public/sprites/rr/Ariados.png b/src/renderer/public/sprites/rr/Ariados.png new file mode 100644 index 00000000..514bf93a Binary files /dev/null and b/src/renderer/public/sprites/rr/Ariados.png differ diff --git a/src/renderer/public/sprites/rr/Armaldo.png b/src/renderer/public/sprites/rr/Armaldo.png new file mode 100644 index 00000000..325fb157 Binary files /dev/null and b/src/renderer/public/sprites/rr/Armaldo.png differ diff --git a/src/renderer/public/sprites/rr/Armarouge.png b/src/renderer/public/sprites/rr/Armarouge.png new file mode 100644 index 00000000..2a97b557 Binary files /dev/null and b/src/renderer/public/sprites/rr/Armarouge.png differ diff --git a/src/renderer/public/sprites/rr/Aromatisse.png b/src/renderer/public/sprites/rr/Aromatisse.png new file mode 100644 index 00000000..e2462fae Binary files /dev/null and b/src/renderer/public/sprites/rr/Aromatisse.png differ diff --git a/src/renderer/public/sprites/rr/Aron.png b/src/renderer/public/sprites/rr/Aron.png new file mode 100644 index 00000000..fde6eb2c Binary files /dev/null and b/src/renderer/public/sprites/rr/Aron.png differ diff --git a/src/renderer/public/sprites/rr/Arrokuda.png b/src/renderer/public/sprites/rr/Arrokuda.png new file mode 100644 index 00000000..94d5a743 Binary files /dev/null and b/src/renderer/public/sprites/rr/Arrokuda.png differ diff --git a/src/renderer/public/sprites/rr/Articuno.png b/src/renderer/public/sprites/rr/Articuno.png new file mode 100644 index 00000000..8b180b91 Binary files /dev/null and b/src/renderer/public/sprites/rr/Articuno.png differ diff --git a/src/renderer/public/sprites/rr/Articunog.png b/src/renderer/public/sprites/rr/Articunog.png new file mode 100644 index 00000000..7d4b03f5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Articunog.png differ diff --git a/src/renderer/public/sprites/rr/Ashgreninja.png b/src/renderer/public/sprites/rr/Ashgreninja.png new file mode 100644 index 00000000..68b4a04b Binary files /dev/null and b/src/renderer/public/sprites/rr/Ashgreninja.png differ diff --git a/src/renderer/public/sprites/rr/Audino.png b/src/renderer/public/sprites/rr/Audino.png new file mode 100644 index 00000000..7853eb32 Binary files /dev/null and b/src/renderer/public/sprites/rr/Audino.png differ diff --git a/src/renderer/public/sprites/rr/Audinomega.png b/src/renderer/public/sprites/rr/Audinomega.png new file mode 100644 index 00000000..b071295e Binary files /dev/null and b/src/renderer/public/sprites/rr/Audinomega.png differ diff --git a/src/renderer/public/sprites/rr/Aurorus.png b/src/renderer/public/sprites/rr/Aurorus.png new file mode 100644 index 00000000..3ecee5c0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Aurorus.png differ diff --git a/src/renderer/public/sprites/rr/Avalugg.png b/src/renderer/public/sprites/rr/Avalugg.png new file mode 100644 index 00000000..01fcf116 Binary files /dev/null and b/src/renderer/public/sprites/rr/Avalugg.png differ diff --git a/src/renderer/public/sprites/rr/Avaluggh.png b/src/renderer/public/sprites/rr/Avaluggh.png new file mode 100644 index 00000000..e43bf875 Binary files /dev/null and b/src/renderer/public/sprites/rr/Avaluggh.png differ diff --git a/src/renderer/public/sprites/rr/Axew.png b/src/renderer/public/sprites/rr/Axew.png new file mode 100644 index 00000000..506a9a3f Binary files /dev/null and b/src/renderer/public/sprites/rr/Axew.png differ diff --git a/src/renderer/public/sprites/rr/Azelf.png b/src/renderer/public/sprites/rr/Azelf.png new file mode 100644 index 00000000..0af8612b Binary files /dev/null and b/src/renderer/public/sprites/rr/Azelf.png differ diff --git a/src/renderer/public/sprites/rr/Azumarill.png b/src/renderer/public/sprites/rr/Azumarill.png new file mode 100644 index 00000000..b54ef51a Binary files /dev/null and b/src/renderer/public/sprites/rr/Azumarill.png differ diff --git a/src/renderer/public/sprites/rr/Azurill.png b/src/renderer/public/sprites/rr/Azurill.png new file mode 100644 index 00000000..9bd49c69 Binary files /dev/null and b/src/renderer/public/sprites/rr/Azurill.png differ diff --git a/src/renderer/public/sprites/rr/Bagon.png b/src/renderer/public/sprites/rr/Bagon.png new file mode 100644 index 00000000..18e46dca Binary files /dev/null and b/src/renderer/public/sprites/rr/Bagon.png differ diff --git a/src/renderer/public/sprites/rr/Baltoy.png b/src/renderer/public/sprites/rr/Baltoy.png new file mode 100644 index 00000000..1d5d1dd0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Baltoy.png differ diff --git a/src/renderer/public/sprites/rr/Banette.png b/src/renderer/public/sprites/rr/Banette.png new file mode 100644 index 00000000..33c5607f Binary files /dev/null and b/src/renderer/public/sprites/rr/Banette.png differ diff --git a/src/renderer/public/sprites/rr/Banettemega.png b/src/renderer/public/sprites/rr/Banettemega.png new file mode 100644 index 00000000..2d50bc21 Binary files /dev/null and b/src/renderer/public/sprites/rr/Banettemega.png differ diff --git a/src/renderer/public/sprites/rr/Barbaracle.png b/src/renderer/public/sprites/rr/Barbaracle.png new file mode 100644 index 00000000..8cd05c32 Binary files /dev/null and b/src/renderer/public/sprites/rr/Barbaracle.png differ diff --git a/src/renderer/public/sprites/rr/Barboach.png b/src/renderer/public/sprites/rr/Barboach.png new file mode 100644 index 00000000..8a627004 Binary files /dev/null and b/src/renderer/public/sprites/rr/Barboach.png differ diff --git a/src/renderer/public/sprites/rr/Barraskewda.png b/src/renderer/public/sprites/rr/Barraskewda.png new file mode 100644 index 00000000..a29f2e0f Binary files /dev/null and b/src/renderer/public/sprites/rr/Barraskewda.png differ diff --git a/src/renderer/public/sprites/rr/Basculegion.png b/src/renderer/public/sprites/rr/Basculegion.png new file mode 100644 index 00000000..c8702862 Binary files /dev/null and b/src/renderer/public/sprites/rr/Basculegion.png differ diff --git a/src/renderer/public/sprites/rr/Basculegionf.png b/src/renderer/public/sprites/rr/Basculegionf.png new file mode 100644 index 00000000..c9b6efea Binary files /dev/null and b/src/renderer/public/sprites/rr/Basculegionf.png differ diff --git a/src/renderer/public/sprites/rr/Basculinblue.png b/src/renderer/public/sprites/rr/Basculinblue.png new file mode 100644 index 00000000..4fdb8bb6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Basculinblue.png differ diff --git a/src/renderer/public/sprites/rr/Basculinred.png b/src/renderer/public/sprites/rr/Basculinred.png new file mode 100644 index 00000000..a289716c Binary files /dev/null and b/src/renderer/public/sprites/rr/Basculinred.png differ diff --git a/src/renderer/public/sprites/rr/Bastiodon.png b/src/renderer/public/sprites/rr/Bastiodon.png new file mode 100644 index 00000000..2aeafdcf Binary files /dev/null and b/src/renderer/public/sprites/rr/Bastiodon.png differ diff --git a/src/renderer/public/sprites/rr/Baxcalibur.png b/src/renderer/public/sprites/rr/Baxcalibur.png new file mode 100644 index 00000000..1cc9f522 Binary files /dev/null and b/src/renderer/public/sprites/rr/Baxcalibur.png differ diff --git a/src/renderer/public/sprites/rr/Bayleef.png b/src/renderer/public/sprites/rr/Bayleef.png new file mode 100644 index 00000000..e82f2ec8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bayleef.png differ diff --git a/src/renderer/public/sprites/rr/Beartic.png b/src/renderer/public/sprites/rr/Beartic.png new file mode 100644 index 00000000..a00fcd23 Binary files /dev/null and b/src/renderer/public/sprites/rr/Beartic.png differ diff --git a/src/renderer/public/sprites/rr/Beautifly.png b/src/renderer/public/sprites/rr/Beautifly.png new file mode 100644 index 00000000..f9d28281 Binary files /dev/null and b/src/renderer/public/sprites/rr/Beautifly.png differ diff --git a/src/renderer/public/sprites/rr/Beedrill.png b/src/renderer/public/sprites/rr/Beedrill.png new file mode 100644 index 00000000..5896755a Binary files /dev/null and b/src/renderer/public/sprites/rr/Beedrill.png differ diff --git a/src/renderer/public/sprites/rr/Beedrillmega.png b/src/renderer/public/sprites/rr/Beedrillmega.png new file mode 100644 index 00000000..204bf6da Binary files /dev/null and b/src/renderer/public/sprites/rr/Beedrillmega.png differ diff --git a/src/renderer/public/sprites/rr/Beheeyem.png b/src/renderer/public/sprites/rr/Beheeyem.png new file mode 100644 index 00000000..d03582b8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Beheeyem.png differ diff --git a/src/renderer/public/sprites/rr/Beldum.png b/src/renderer/public/sprites/rr/Beldum.png new file mode 100644 index 00000000..4957b8f0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Beldum.png differ diff --git a/src/renderer/public/sprites/rr/Bellibolt.png b/src/renderer/public/sprites/rr/Bellibolt.png new file mode 100644 index 00000000..b6471a68 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bellibolt.png differ diff --git a/src/renderer/public/sprites/rr/Bellossom.png b/src/renderer/public/sprites/rr/Bellossom.png new file mode 100644 index 00000000..e3807b02 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bellossom.png differ diff --git a/src/renderer/public/sprites/rr/Bellsprout.png b/src/renderer/public/sprites/rr/Bellsprout.png new file mode 100644 index 00000000..a2cba808 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bellsprout.png differ diff --git a/src/renderer/public/sprites/rr/Bergmite.png b/src/renderer/public/sprites/rr/Bergmite.png new file mode 100644 index 00000000..53880ee1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bergmite.png differ diff --git a/src/renderer/public/sprites/rr/Bewear.png b/src/renderer/public/sprites/rr/Bewear.png new file mode 100644 index 00000000..0070fcd5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bewear.png differ diff --git a/src/renderer/public/sprites/rr/Bibarel.png b/src/renderer/public/sprites/rr/Bibarel.png new file mode 100644 index 00000000..3e05f09c Binary files /dev/null and b/src/renderer/public/sprites/rr/Bibarel.png differ diff --git a/src/renderer/public/sprites/rr/Bidoof.png b/src/renderer/public/sprites/rr/Bidoof.png new file mode 100644 index 00000000..8afc6d1f Binary files /dev/null and b/src/renderer/public/sprites/rr/Bidoof.png differ diff --git a/src/renderer/public/sprites/rr/Binacle.png b/src/renderer/public/sprites/rr/Binacle.png new file mode 100644 index 00000000..82781351 Binary files /dev/null and b/src/renderer/public/sprites/rr/Binacle.png differ diff --git a/src/renderer/public/sprites/rr/Bisharp.png b/src/renderer/public/sprites/rr/Bisharp.png new file mode 100644 index 00000000..344a8368 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bisharp.png differ diff --git a/src/renderer/public/sprites/rr/Blacephalon.png b/src/renderer/public/sprites/rr/Blacephalon.png new file mode 100644 index 00000000..0edf3bf6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Blacephalon.png differ diff --git a/src/renderer/public/sprites/rr/Blastoise.png b/src/renderer/public/sprites/rr/Blastoise.png new file mode 100644 index 00000000..37c54d7c Binary files /dev/null and b/src/renderer/public/sprites/rr/Blastoise.png differ diff --git a/src/renderer/public/sprites/rr/Blastoisegiga.png b/src/renderer/public/sprites/rr/Blastoisegiga.png new file mode 100644 index 00000000..aa665dd9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Blastoisegiga.png differ diff --git a/src/renderer/public/sprites/rr/Blastoisemega.png b/src/renderer/public/sprites/rr/Blastoisemega.png new file mode 100644 index 00000000..670c3aff Binary files /dev/null and b/src/renderer/public/sprites/rr/Blastoisemega.png differ diff --git a/src/renderer/public/sprites/rr/Blaziken.png b/src/renderer/public/sprites/rr/Blaziken.png new file mode 100644 index 00000000..5c99eb42 Binary files /dev/null and b/src/renderer/public/sprites/rr/Blaziken.png differ diff --git a/src/renderer/public/sprites/rr/Blazikenmega.png b/src/renderer/public/sprites/rr/Blazikenmega.png new file mode 100644 index 00000000..eba49ac8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Blazikenmega.png differ diff --git a/src/renderer/public/sprites/rr/Blipbug.png b/src/renderer/public/sprites/rr/Blipbug.png new file mode 100644 index 00000000..36122643 Binary files /dev/null and b/src/renderer/public/sprites/rr/Blipbug.png differ diff --git a/src/renderer/public/sprites/rr/Blissey.png b/src/renderer/public/sprites/rr/Blissey.png new file mode 100644 index 00000000..4d4244ba Binary files /dev/null and b/src/renderer/public/sprites/rr/Blissey.png differ diff --git a/src/renderer/public/sprites/rr/Blitzle.png b/src/renderer/public/sprites/rr/Blitzle.png new file mode 100644 index 00000000..1dca5c9d Binary files /dev/null and b/src/renderer/public/sprites/rr/Blitzle.png differ diff --git a/src/renderer/public/sprites/rr/Blitzles.png b/src/renderer/public/sprites/rr/Blitzles.png new file mode 100644 index 00000000..32efbe2e Binary files /dev/null and b/src/renderer/public/sprites/rr/Blitzles.png differ diff --git a/src/renderer/public/sprites/rr/Boldore.png b/src/renderer/public/sprites/rr/Boldore.png new file mode 100644 index 00000000..c91e3445 Binary files /dev/null and b/src/renderer/public/sprites/rr/Boldore.png differ diff --git a/src/renderer/public/sprites/rr/Boltund.png b/src/renderer/public/sprites/rr/Boltund.png new file mode 100644 index 00000000..396d0ae6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Boltund.png differ diff --git a/src/renderer/public/sprites/rr/Bombirdier.png b/src/renderer/public/sprites/rr/Bombirdier.png new file mode 100644 index 00000000..45e44f41 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bombirdier.png differ diff --git a/src/renderer/public/sprites/rr/Bonsly.png b/src/renderer/public/sprites/rr/Bonsly.png new file mode 100644 index 00000000..ce5faf24 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bonsly.png differ diff --git a/src/renderer/public/sprites/rr/Bouffalant.png b/src/renderer/public/sprites/rr/Bouffalant.png new file mode 100644 index 00000000..f01f74c8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bouffalant.png differ diff --git a/src/renderer/public/sprites/rr/Bounsweet.png b/src/renderer/public/sprites/rr/Bounsweet.png new file mode 100644 index 00000000..665ba733 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bounsweet.png differ diff --git a/src/renderer/public/sprites/rr/Braixen.png b/src/renderer/public/sprites/rr/Braixen.png new file mode 100644 index 00000000..5aed75a8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Braixen.png differ diff --git a/src/renderer/public/sprites/rr/Brambleghast.png b/src/renderer/public/sprites/rr/Brambleghast.png new file mode 100644 index 00000000..70cc4922 Binary files /dev/null and b/src/renderer/public/sprites/rr/Brambleghast.png differ diff --git a/src/renderer/public/sprites/rr/Bramblin.png b/src/renderer/public/sprites/rr/Bramblin.png new file mode 100644 index 00000000..fa3b9faf Binary files /dev/null and b/src/renderer/public/sprites/rr/Bramblin.png differ diff --git a/src/renderer/public/sprites/rr/Braviary.png b/src/renderer/public/sprites/rr/Braviary.png new file mode 100644 index 00000000..9ed0ac91 Binary files /dev/null and b/src/renderer/public/sprites/rr/Braviary.png differ diff --git a/src/renderer/public/sprites/rr/Braviaryh.png b/src/renderer/public/sprites/rr/Braviaryh.png new file mode 100644 index 00000000..cbd782d4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Braviaryh.png differ diff --git a/src/renderer/public/sprites/rr/Breloom.png b/src/renderer/public/sprites/rr/Breloom.png new file mode 100644 index 00000000..5450462a Binary files /dev/null and b/src/renderer/public/sprites/rr/Breloom.png differ diff --git a/src/renderer/public/sprites/rr/Brionne.png b/src/renderer/public/sprites/rr/Brionne.png new file mode 100644 index 00000000..587e0afc Binary files /dev/null and b/src/renderer/public/sprites/rr/Brionne.png differ diff --git a/src/renderer/public/sprites/rr/Bronzong.png b/src/renderer/public/sprites/rr/Bronzong.png new file mode 100644 index 00000000..63be05a8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bronzong.png differ diff --git a/src/renderer/public/sprites/rr/Bronzor.png b/src/renderer/public/sprites/rr/Bronzor.png new file mode 100644 index 00000000..a0d0f305 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bronzor.png differ diff --git a/src/renderer/public/sprites/rr/Brutebonnet.png b/src/renderer/public/sprites/rr/Brutebonnet.png new file mode 100644 index 00000000..a6f0b2c2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Brutebonnet.png differ diff --git a/src/renderer/public/sprites/rr/Bruxish.png b/src/renderer/public/sprites/rr/Bruxish.png new file mode 100644 index 00000000..a0da883e Binary files /dev/null and b/src/renderer/public/sprites/rr/Bruxish.png differ diff --git a/src/renderer/public/sprites/rr/Budew.png b/src/renderer/public/sprites/rr/Budew.png new file mode 100644 index 00000000..9ffb993d Binary files /dev/null and b/src/renderer/public/sprites/rr/Budew.png differ diff --git a/src/renderer/public/sprites/rr/Buizel.png b/src/renderer/public/sprites/rr/Buizel.png new file mode 100644 index 00000000..005949ea Binary files /dev/null and b/src/renderer/public/sprites/rr/Buizel.png differ diff --git a/src/renderer/public/sprites/rr/Bulbasaur.png b/src/renderer/public/sprites/rr/Bulbasaur.png new file mode 100644 index 00000000..7dd0bc73 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bulbasaur.png differ diff --git a/src/renderer/public/sprites/rr/Buneary.png b/src/renderer/public/sprites/rr/Buneary.png new file mode 100644 index 00000000..8e88646a Binary files /dev/null and b/src/renderer/public/sprites/rr/Buneary.png differ diff --git a/src/renderer/public/sprites/rr/Bunnelby.png b/src/renderer/public/sprites/rr/Bunnelby.png new file mode 100644 index 00000000..f83e7046 Binary files /dev/null and b/src/renderer/public/sprites/rr/Bunnelby.png differ diff --git a/src/renderer/public/sprites/rr/Burmy.png b/src/renderer/public/sprites/rr/Burmy.png new file mode 100644 index 00000000..59180d0c Binary files /dev/null and b/src/renderer/public/sprites/rr/Burmy.png differ diff --git a/src/renderer/public/sprites/rr/Burmysandy.png b/src/renderer/public/sprites/rr/Burmysandy.png new file mode 100644 index 00000000..c14ed995 Binary files /dev/null and b/src/renderer/public/sprites/rr/Burmysandy.png differ diff --git a/src/renderer/public/sprites/rr/Burmytrash.png b/src/renderer/public/sprites/rr/Burmytrash.png new file mode 100644 index 00000000..ff09b575 Binary files /dev/null and b/src/renderer/public/sprites/rr/Burmytrash.png differ diff --git a/src/renderer/public/sprites/rr/Butterfree.png b/src/renderer/public/sprites/rr/Butterfree.png new file mode 100644 index 00000000..872c5b75 Binary files /dev/null and b/src/renderer/public/sprites/rr/Butterfree.png differ diff --git a/src/renderer/public/sprites/rr/Butterfreegiga.png b/src/renderer/public/sprites/rr/Butterfreegiga.png new file mode 100644 index 00000000..b273000f Binary files /dev/null and b/src/renderer/public/sprites/rr/Butterfreegiga.png differ diff --git a/src/renderer/public/sprites/rr/Buzzwole.png b/src/renderer/public/sprites/rr/Buzzwole.png new file mode 100644 index 00000000..0a877b6b Binary files /dev/null and b/src/renderer/public/sprites/rr/Buzzwole.png differ diff --git a/src/renderer/public/sprites/rr/Cacnea.png b/src/renderer/public/sprites/rr/Cacnea.png new file mode 100644 index 00000000..9111c5b8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cacnea.png differ diff --git a/src/renderer/public/sprites/rr/Cacturne.png b/src/renderer/public/sprites/rr/Cacturne.png new file mode 100644 index 00000000..b31e95ff Binary files /dev/null and b/src/renderer/public/sprites/rr/Cacturne.png differ diff --git a/src/renderer/public/sprites/rr/Calyrex.png b/src/renderer/public/sprites/rr/Calyrex.png new file mode 100644 index 00000000..4db6962c Binary files /dev/null and b/src/renderer/public/sprites/rr/Calyrex.png differ diff --git a/src/renderer/public/sprites/rr/Calyrexice.png b/src/renderer/public/sprites/rr/Calyrexice.png new file mode 100644 index 00000000..f90824e0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Calyrexice.png differ diff --git a/src/renderer/public/sprites/rr/Calyrexshadow.png b/src/renderer/public/sprites/rr/Calyrexshadow.png new file mode 100644 index 00000000..c7753fda Binary files /dev/null and b/src/renderer/public/sprites/rr/Calyrexshadow.png differ diff --git a/src/renderer/public/sprites/rr/Camerupt.png b/src/renderer/public/sprites/rr/Camerupt.png new file mode 100644 index 00000000..d763f616 Binary files /dev/null and b/src/renderer/public/sprites/rr/Camerupt.png differ diff --git a/src/renderer/public/sprites/rr/Cameruptmega.png b/src/renderer/public/sprites/rr/Cameruptmega.png new file mode 100644 index 00000000..5ee11b13 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cameruptmega.png differ diff --git a/src/renderer/public/sprites/rr/Capsakid.png b/src/renderer/public/sprites/rr/Capsakid.png new file mode 100644 index 00000000..01ded386 Binary files /dev/null and b/src/renderer/public/sprites/rr/Capsakid.png differ diff --git a/src/renderer/public/sprites/rr/Carbink.png b/src/renderer/public/sprites/rr/Carbink.png new file mode 100644 index 00000000..0ed342b5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Carbink.png differ diff --git a/src/renderer/public/sprites/rr/Carkol.png b/src/renderer/public/sprites/rr/Carkol.png new file mode 100644 index 00000000..60304de2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Carkol.png differ diff --git a/src/renderer/public/sprites/rr/Carnivine.png b/src/renderer/public/sprites/rr/Carnivine.png new file mode 100644 index 00000000..2890bd0b Binary files /dev/null and b/src/renderer/public/sprites/rr/Carnivine.png differ diff --git a/src/renderer/public/sprites/rr/Carnivines.png b/src/renderer/public/sprites/rr/Carnivines.png new file mode 100644 index 00000000..118339a9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Carnivines.png differ diff --git a/src/renderer/public/sprites/rr/Carracosta.png b/src/renderer/public/sprites/rr/Carracosta.png new file mode 100644 index 00000000..97052be3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Carracosta.png differ diff --git a/src/renderer/public/sprites/rr/Carvanha.png b/src/renderer/public/sprites/rr/Carvanha.png new file mode 100644 index 00000000..8624096f Binary files /dev/null and b/src/renderer/public/sprites/rr/Carvanha.png differ diff --git a/src/renderer/public/sprites/rr/Cascoon.png b/src/renderer/public/sprites/rr/Cascoon.png new file mode 100644 index 00000000..91a33a6e Binary files /dev/null and b/src/renderer/public/sprites/rr/Cascoon.png differ diff --git a/src/renderer/public/sprites/rr/Castform.png b/src/renderer/public/sprites/rr/Castform.png new file mode 100644 index 00000000..d02058c1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Castform.png differ diff --git a/src/renderer/public/sprites/rr/Caterpie.png b/src/renderer/public/sprites/rr/Caterpie.png new file mode 100644 index 00000000..20005d3d Binary files /dev/null and b/src/renderer/public/sprites/rr/Caterpie.png differ diff --git a/src/renderer/public/sprites/rr/Celebi.png b/src/renderer/public/sprites/rr/Celebi.png new file mode 100644 index 00000000..aa9d4905 Binary files /dev/null and b/src/renderer/public/sprites/rr/Celebi.png differ diff --git a/src/renderer/public/sprites/rr/Celesteela.png b/src/renderer/public/sprites/rr/Celesteela.png new file mode 100644 index 00000000..5e1327d0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Celesteela.png differ diff --git a/src/renderer/public/sprites/rr/Centiskorch.png b/src/renderer/public/sprites/rr/Centiskorch.png new file mode 100644 index 00000000..86b6adcd Binary files /dev/null and b/src/renderer/public/sprites/rr/Centiskorch.png differ diff --git a/src/renderer/public/sprites/rr/Centiskorchgiga.png b/src/renderer/public/sprites/rr/Centiskorchgiga.png new file mode 100644 index 00000000..5785ccc6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Centiskorchgiga.png differ diff --git a/src/renderer/public/sprites/rr/Centiskorchs.png b/src/renderer/public/sprites/rr/Centiskorchs.png new file mode 100644 index 00000000..69693f0d Binary files /dev/null and b/src/renderer/public/sprites/rr/Centiskorchs.png differ diff --git a/src/renderer/public/sprites/rr/Centiskorchsmega.png b/src/renderer/public/sprites/rr/Centiskorchsmega.png new file mode 100644 index 00000000..7ea24411 Binary files /dev/null and b/src/renderer/public/sprites/rr/Centiskorchsmega.png differ diff --git a/src/renderer/public/sprites/rr/Ceruledge.png b/src/renderer/public/sprites/rr/Ceruledge.png new file mode 100644 index 00000000..e31c1e62 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ceruledge.png differ diff --git a/src/renderer/public/sprites/rr/Cetitan.png b/src/renderer/public/sprites/rr/Cetitan.png new file mode 100644 index 00000000..708a9031 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cetitan.png differ diff --git a/src/renderer/public/sprites/rr/Cetoddle.png b/src/renderer/public/sprites/rr/Cetoddle.png new file mode 100644 index 00000000..66e5852f Binary files /dev/null and b/src/renderer/public/sprites/rr/Cetoddle.png differ diff --git a/src/renderer/public/sprites/rr/Chandelure.png b/src/renderer/public/sprites/rr/Chandelure.png new file mode 100644 index 00000000..7e1b12e7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Chandelure.png differ diff --git a/src/renderer/public/sprites/rr/Chansey.png b/src/renderer/public/sprites/rr/Chansey.png new file mode 100644 index 00000000..204c8f9c Binary files /dev/null and b/src/renderer/public/sprites/rr/Chansey.png differ diff --git a/src/renderer/public/sprites/rr/Charcadet.png b/src/renderer/public/sprites/rr/Charcadet.png new file mode 100644 index 00000000..6b2983a8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Charcadet.png differ diff --git a/src/renderer/public/sprites/rr/Charizard.png b/src/renderer/public/sprites/rr/Charizard.png new file mode 100644 index 00000000..3c9d00c4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Charizard.png differ diff --git a/src/renderer/public/sprites/rr/Charizardgiga.png b/src/renderer/public/sprites/rr/Charizardgiga.png new file mode 100644 index 00000000..ea4de34e Binary files /dev/null and b/src/renderer/public/sprites/rr/Charizardgiga.png differ diff --git a/src/renderer/public/sprites/rr/Charizardmegax.png b/src/renderer/public/sprites/rr/Charizardmegax.png new file mode 100644 index 00000000..ac749853 Binary files /dev/null and b/src/renderer/public/sprites/rr/Charizardmegax.png differ diff --git a/src/renderer/public/sprites/rr/Charizardmegay.png b/src/renderer/public/sprites/rr/Charizardmegay.png new file mode 100644 index 00000000..e93a7904 Binary files /dev/null and b/src/renderer/public/sprites/rr/Charizardmegay.png differ diff --git a/src/renderer/public/sprites/rr/Charjabug.png b/src/renderer/public/sprites/rr/Charjabug.png new file mode 100644 index 00000000..d02f8d4c Binary files /dev/null and b/src/renderer/public/sprites/rr/Charjabug.png differ diff --git a/src/renderer/public/sprites/rr/Charmander.png b/src/renderer/public/sprites/rr/Charmander.png new file mode 100644 index 00000000..9b67f17e Binary files /dev/null and b/src/renderer/public/sprites/rr/Charmander.png differ diff --git a/src/renderer/public/sprites/rr/Charmeleon.png b/src/renderer/public/sprites/rr/Charmeleon.png new file mode 100644 index 00000000..e00b6fdd Binary files /dev/null and b/src/renderer/public/sprites/rr/Charmeleon.png differ diff --git a/src/renderer/public/sprites/rr/Chatot.png b/src/renderer/public/sprites/rr/Chatot.png new file mode 100644 index 00000000..93ee9cd4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Chatot.png differ diff --git a/src/renderer/public/sprites/rr/Cherrim.png b/src/renderer/public/sprites/rr/Cherrim.png new file mode 100644 index 00000000..46bc3202 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cherrim.png differ diff --git a/src/renderer/public/sprites/rr/Cherrimsun.png b/src/renderer/public/sprites/rr/Cherrimsun.png new file mode 100644 index 00000000..677b33db Binary files /dev/null and b/src/renderer/public/sprites/rr/Cherrimsun.png differ diff --git a/src/renderer/public/sprites/rr/Cherubi.png b/src/renderer/public/sprites/rr/Cherubi.png new file mode 100644 index 00000000..fafb0be7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cherubi.png differ diff --git a/src/renderer/public/sprites/rr/Chesnaught.png b/src/renderer/public/sprites/rr/Chesnaught.png new file mode 100644 index 00000000..feacbc08 Binary files /dev/null and b/src/renderer/public/sprites/rr/Chesnaught.png differ diff --git a/src/renderer/public/sprites/rr/Chespin.png b/src/renderer/public/sprites/rr/Chespin.png new file mode 100644 index 00000000..414ac07e Binary files /dev/null and b/src/renderer/public/sprites/rr/Chespin.png differ diff --git a/src/renderer/public/sprites/rr/Chewtle.png b/src/renderer/public/sprites/rr/Chewtle.png new file mode 100644 index 00000000..e5a81f05 Binary files /dev/null and b/src/renderer/public/sprites/rr/Chewtle.png differ diff --git a/src/renderer/public/sprites/rr/Chienpao.png b/src/renderer/public/sprites/rr/Chienpao.png new file mode 100644 index 00000000..d56cb387 Binary files /dev/null and b/src/renderer/public/sprites/rr/Chienpao.png differ diff --git a/src/renderer/public/sprites/rr/Chikorita.png b/src/renderer/public/sprites/rr/Chikorita.png new file mode 100644 index 00000000..7d354599 Binary files /dev/null and b/src/renderer/public/sprites/rr/Chikorita.png differ diff --git a/src/renderer/public/sprites/rr/Chimchar.png b/src/renderer/public/sprites/rr/Chimchar.png new file mode 100644 index 00000000..baa12801 Binary files /dev/null and b/src/renderer/public/sprites/rr/Chimchar.png differ diff --git a/src/renderer/public/sprites/rr/Chimecho.png b/src/renderer/public/sprites/rr/Chimecho.png new file mode 100644 index 00000000..21181d16 Binary files /dev/null and b/src/renderer/public/sprites/rr/Chimecho.png differ diff --git a/src/renderer/public/sprites/rr/Chinchou.png b/src/renderer/public/sprites/rr/Chinchou.png new file mode 100644 index 00000000..ea266c1e Binary files /dev/null and b/src/renderer/public/sprites/rr/Chinchou.png differ diff --git a/src/renderer/public/sprites/rr/Chingling.png b/src/renderer/public/sprites/rr/Chingling.png new file mode 100644 index 00000000..8a0518e5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Chingling.png differ diff --git a/src/renderer/public/sprites/rr/Chiyu.png b/src/renderer/public/sprites/rr/Chiyu.png new file mode 100644 index 00000000..f3688eba Binary files /dev/null and b/src/renderer/public/sprites/rr/Chiyu.png differ diff --git a/src/renderer/public/sprites/rr/Cinccino.png b/src/renderer/public/sprites/rr/Cinccino.png new file mode 100644 index 00000000..d48c738e Binary files /dev/null and b/src/renderer/public/sprites/rr/Cinccino.png differ diff --git a/src/renderer/public/sprites/rr/Cinderace.png b/src/renderer/public/sprites/rr/Cinderace.png new file mode 100644 index 00000000..fa0ae254 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cinderace.png differ diff --git a/src/renderer/public/sprites/rr/Cinderacegiga.png b/src/renderer/public/sprites/rr/Cinderacegiga.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cinderacegiga.png differ diff --git a/src/renderer/public/sprites/rr/Clamperl.png b/src/renderer/public/sprites/rr/Clamperl.png new file mode 100644 index 00000000..dcd36d86 Binary files /dev/null and b/src/renderer/public/sprites/rr/Clamperl.png differ diff --git a/src/renderer/public/sprites/rr/Clauncher.png b/src/renderer/public/sprites/rr/Clauncher.png new file mode 100644 index 00000000..7b353a6c Binary files /dev/null and b/src/renderer/public/sprites/rr/Clauncher.png differ diff --git a/src/renderer/public/sprites/rr/Claunchers.png b/src/renderer/public/sprites/rr/Claunchers.png new file mode 100644 index 00000000..21efc192 Binary files /dev/null and b/src/renderer/public/sprites/rr/Claunchers.png differ diff --git a/src/renderer/public/sprites/rr/Clawitzer.png b/src/renderer/public/sprites/rr/Clawitzer.png new file mode 100644 index 00000000..4b4b6861 Binary files /dev/null and b/src/renderer/public/sprites/rr/Clawitzer.png differ diff --git a/src/renderer/public/sprites/rr/Clawitzers.png b/src/renderer/public/sprites/rr/Clawitzers.png new file mode 100644 index 00000000..d58dc90e Binary files /dev/null and b/src/renderer/public/sprites/rr/Clawitzers.png differ diff --git a/src/renderer/public/sprites/rr/Claydol.png b/src/renderer/public/sprites/rr/Claydol.png new file mode 100644 index 00000000..067f835e Binary files /dev/null and b/src/renderer/public/sprites/rr/Claydol.png differ diff --git a/src/renderer/public/sprites/rr/Clefable.png b/src/renderer/public/sprites/rr/Clefable.png new file mode 100644 index 00000000..961e5c1e Binary files /dev/null and b/src/renderer/public/sprites/rr/Clefable.png differ diff --git a/src/renderer/public/sprites/rr/Clefairy.png b/src/renderer/public/sprites/rr/Clefairy.png new file mode 100644 index 00000000..f8458f01 Binary files /dev/null and b/src/renderer/public/sprites/rr/Clefairy.png differ diff --git a/src/renderer/public/sprites/rr/Cleffa.png b/src/renderer/public/sprites/rr/Cleffa.png new file mode 100644 index 00000000..0e94581c Binary files /dev/null and b/src/renderer/public/sprites/rr/Cleffa.png differ diff --git a/src/renderer/public/sprites/rr/Clobbopus.png b/src/renderer/public/sprites/rr/Clobbopus.png new file mode 100644 index 00000000..c5e242cb Binary files /dev/null and b/src/renderer/public/sprites/rr/Clobbopus.png differ diff --git a/src/renderer/public/sprites/rr/Clodsire.png b/src/renderer/public/sprites/rr/Clodsire.png new file mode 100644 index 00000000..bf83694d Binary files /dev/null and b/src/renderer/public/sprites/rr/Clodsire.png differ diff --git a/src/renderer/public/sprites/rr/Cloyster.png b/src/renderer/public/sprites/rr/Cloyster.png new file mode 100644 index 00000000..fd0d8d35 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cloyster.png differ diff --git a/src/renderer/public/sprites/rr/Coalossal.png b/src/renderer/public/sprites/rr/Coalossal.png new file mode 100644 index 00000000..0033884e Binary files /dev/null and b/src/renderer/public/sprites/rr/Coalossal.png differ diff --git a/src/renderer/public/sprites/rr/Coalossalgiga.png b/src/renderer/public/sprites/rr/Coalossalgiga.png new file mode 100644 index 00000000..cb4f2e84 Binary files /dev/null and b/src/renderer/public/sprites/rr/Coalossalgiga.png differ diff --git a/src/renderer/public/sprites/rr/Cobalion.png b/src/renderer/public/sprites/rr/Cobalion.png new file mode 100644 index 00000000..5e5adad3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cobalion.png differ diff --git a/src/renderer/public/sprites/rr/Cofagrigus.png b/src/renderer/public/sprites/rr/Cofagrigus.png new file mode 100644 index 00000000..5c15cfb2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cofagrigus.png differ diff --git a/src/renderer/public/sprites/rr/Combee.png b/src/renderer/public/sprites/rr/Combee.png new file mode 100644 index 00000000..c5f96043 Binary files /dev/null and b/src/renderer/public/sprites/rr/Combee.png differ diff --git a/src/renderer/public/sprites/rr/Combusken.png b/src/renderer/public/sprites/rr/Combusken.png new file mode 100644 index 00000000..d17c8a55 Binary files /dev/null and b/src/renderer/public/sprites/rr/Combusken.png differ diff --git a/src/renderer/public/sprites/rr/Comfey.png b/src/renderer/public/sprites/rr/Comfey.png new file mode 100644 index 00000000..f90db4ba Binary files /dev/null and b/src/renderer/public/sprites/rr/Comfey.png differ diff --git a/src/renderer/public/sprites/rr/Conkeldurr.png b/src/renderer/public/sprites/rr/Conkeldurr.png new file mode 100644 index 00000000..f5007b04 Binary files /dev/null and b/src/renderer/public/sprites/rr/Conkeldurr.png differ diff --git a/src/renderer/public/sprites/rr/Copperajah.png b/src/renderer/public/sprites/rr/Copperajah.png new file mode 100644 index 00000000..773cb482 Binary files /dev/null and b/src/renderer/public/sprites/rr/Copperajah.png differ diff --git a/src/renderer/public/sprites/rr/Copperajahgiga.png b/src/renderer/public/sprites/rr/Copperajahgiga.png new file mode 100644 index 00000000..591da057 Binary files /dev/null and b/src/renderer/public/sprites/rr/Copperajahgiga.png differ diff --git a/src/renderer/public/sprites/rr/Corphish.png b/src/renderer/public/sprites/rr/Corphish.png new file mode 100644 index 00000000..889a6b1e Binary files /dev/null and b/src/renderer/public/sprites/rr/Corphish.png differ diff --git a/src/renderer/public/sprites/rr/Corsola.png b/src/renderer/public/sprites/rr/Corsola.png new file mode 100644 index 00000000..c67c3070 Binary files /dev/null and b/src/renderer/public/sprites/rr/Corsola.png differ diff --git a/src/renderer/public/sprites/rr/Corsolag.png b/src/renderer/public/sprites/rr/Corsolag.png new file mode 100644 index 00000000..1697722f Binary files /dev/null and b/src/renderer/public/sprites/rr/Corsolag.png differ diff --git a/src/renderer/public/sprites/rr/Corviknight.png b/src/renderer/public/sprites/rr/Corviknight.png new file mode 100644 index 00000000..3ff80227 Binary files /dev/null and b/src/renderer/public/sprites/rr/Corviknight.png differ diff --git a/src/renderer/public/sprites/rr/Corviknightgiga.png b/src/renderer/public/sprites/rr/Corviknightgiga.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Corviknightgiga.png differ diff --git a/src/renderer/public/sprites/rr/Corvisquire.png b/src/renderer/public/sprites/rr/Corvisquire.png new file mode 100644 index 00000000..09f8d672 Binary files /dev/null and b/src/renderer/public/sprites/rr/Corvisquire.png differ diff --git a/src/renderer/public/sprites/rr/Cosmoem.png b/src/renderer/public/sprites/rr/Cosmoem.png new file mode 100644 index 00000000..3a27e161 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cosmoem.png differ diff --git a/src/renderer/public/sprites/rr/Cosmog.png b/src/renderer/public/sprites/rr/Cosmog.png new file mode 100644 index 00000000..274f2535 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cosmog.png differ diff --git a/src/renderer/public/sprites/rr/Cottonee.png b/src/renderer/public/sprites/rr/Cottonee.png new file mode 100644 index 00000000..b060cfc1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cottonee.png differ diff --git a/src/renderer/public/sprites/rr/Crabominable.png b/src/renderer/public/sprites/rr/Crabominable.png new file mode 100644 index 00000000..d8566166 Binary files /dev/null and b/src/renderer/public/sprites/rr/Crabominable.png differ diff --git a/src/renderer/public/sprites/rr/Crabrawler.png b/src/renderer/public/sprites/rr/Crabrawler.png new file mode 100644 index 00000000..c38b1082 Binary files /dev/null and b/src/renderer/public/sprites/rr/Crabrawler.png differ diff --git a/src/renderer/public/sprites/rr/Cradily.png b/src/renderer/public/sprites/rr/Cradily.png new file mode 100644 index 00000000..5d172cd0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cradily.png differ diff --git a/src/renderer/public/sprites/rr/Cramorant.png b/src/renderer/public/sprites/rr/Cramorant.png new file mode 100644 index 00000000..19fcddbf Binary files /dev/null and b/src/renderer/public/sprites/rr/Cramorant.png differ diff --git a/src/renderer/public/sprites/rr/Cramorantgorging.png b/src/renderer/public/sprites/rr/Cramorantgorging.png new file mode 100644 index 00000000..f9107726 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cramorantgorging.png differ diff --git a/src/renderer/public/sprites/rr/Cramorantgulping.png b/src/renderer/public/sprites/rr/Cramorantgulping.png new file mode 100644 index 00000000..78843742 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cramorantgulping.png differ diff --git a/src/renderer/public/sprites/rr/Cranidos.png b/src/renderer/public/sprites/rr/Cranidos.png new file mode 100644 index 00000000..0131a2fc Binary files /dev/null and b/src/renderer/public/sprites/rr/Cranidos.png differ diff --git a/src/renderer/public/sprites/rr/Crawdaunt.png b/src/renderer/public/sprites/rr/Crawdaunt.png new file mode 100644 index 00000000..0fd8c1c3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Crawdaunt.png differ diff --git a/src/renderer/public/sprites/rr/Cresselia.png b/src/renderer/public/sprites/rr/Cresselia.png new file mode 100644 index 00000000..20a84e5d Binary files /dev/null and b/src/renderer/public/sprites/rr/Cresselia.png differ diff --git a/src/renderer/public/sprites/rr/Croagunk.png b/src/renderer/public/sprites/rr/Croagunk.png new file mode 100644 index 00000000..6ec019b0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Croagunk.png differ diff --git a/src/renderer/public/sprites/rr/Crobat.png b/src/renderer/public/sprites/rr/Crobat.png new file mode 100644 index 00000000..4456eca5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Crobat.png differ diff --git a/src/renderer/public/sprites/rr/Crocalor.png b/src/renderer/public/sprites/rr/Crocalor.png new file mode 100644 index 00000000..7abd664d Binary files /dev/null and b/src/renderer/public/sprites/rr/Crocalor.png differ diff --git a/src/renderer/public/sprites/rr/Croconaw.png b/src/renderer/public/sprites/rr/Croconaw.png new file mode 100644 index 00000000..4fe16b6e Binary files /dev/null and b/src/renderer/public/sprites/rr/Croconaw.png differ diff --git a/src/renderer/public/sprites/rr/Crustle.png b/src/renderer/public/sprites/rr/Crustle.png new file mode 100644 index 00000000..e65df10b Binary files /dev/null and b/src/renderer/public/sprites/rr/Crustle.png differ diff --git a/src/renderer/public/sprites/rr/Cryogonal.png b/src/renderer/public/sprites/rr/Cryogonal.png new file mode 100644 index 00000000..ecf7adae Binary files /dev/null and b/src/renderer/public/sprites/rr/Cryogonal.png differ diff --git a/src/renderer/public/sprites/rr/Cubchoo.png b/src/renderer/public/sprites/rr/Cubchoo.png new file mode 100644 index 00000000..c4680e2a Binary files /dev/null and b/src/renderer/public/sprites/rr/Cubchoo.png differ diff --git a/src/renderer/public/sprites/rr/Cubone.png b/src/renderer/public/sprites/rr/Cubone.png new file mode 100644 index 00000000..75f3a32e Binary files /dev/null and b/src/renderer/public/sprites/rr/Cubone.png differ diff --git a/src/renderer/public/sprites/rr/Cubonea.png b/src/renderer/public/sprites/rr/Cubonea.png new file mode 100644 index 00000000..75f3a32e Binary files /dev/null and b/src/renderer/public/sprites/rr/Cubonea.png differ diff --git a/src/renderer/public/sprites/rr/Cufant.png b/src/renderer/public/sprites/rr/Cufant.png new file mode 100644 index 00000000..2f0f98a2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cufant.png differ diff --git a/src/renderer/public/sprites/rr/Cursola.png b/src/renderer/public/sprites/rr/Cursola.png new file mode 100644 index 00000000..b0efb770 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cursola.png differ diff --git a/src/renderer/public/sprites/rr/Cutiefly.png b/src/renderer/public/sprites/rr/Cutiefly.png new file mode 100644 index 00000000..fde120cf Binary files /dev/null and b/src/renderer/public/sprites/rr/Cutiefly.png differ diff --git a/src/renderer/public/sprites/rr/Cyclizar.png b/src/renderer/public/sprites/rr/Cyclizar.png new file mode 100644 index 00000000..0eb71e12 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cyclizar.png differ diff --git a/src/renderer/public/sprites/rr/Cyndaquil.png b/src/renderer/public/sprites/rr/Cyndaquil.png new file mode 100644 index 00000000..a1a97080 Binary files /dev/null and b/src/renderer/public/sprites/rr/Cyndaquil.png differ diff --git a/src/renderer/public/sprites/rr/Dachsbun.png b/src/renderer/public/sprites/rr/Dachsbun.png new file mode 100644 index 00000000..14cd0830 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dachsbun.png differ diff --git a/src/renderer/public/sprites/rr/Darkrai.png b/src/renderer/public/sprites/rr/Darkrai.png new file mode 100644 index 00000000..420521ac Binary files /dev/null and b/src/renderer/public/sprites/rr/Darkrai.png differ diff --git a/src/renderer/public/sprites/rr/Darmanitan.png b/src/renderer/public/sprites/rr/Darmanitan.png new file mode 100644 index 00000000..53dda771 Binary files /dev/null and b/src/renderer/public/sprites/rr/Darmanitan.png differ diff --git a/src/renderer/public/sprites/rr/Darmanitang.png b/src/renderer/public/sprites/rr/Darmanitang.png new file mode 100644 index 00000000..f415c213 Binary files /dev/null and b/src/renderer/public/sprites/rr/Darmanitang.png differ diff --git a/src/renderer/public/sprites/rr/Darmanitangzen.png b/src/renderer/public/sprites/rr/Darmanitangzen.png new file mode 100644 index 00000000..484b0c4e Binary files /dev/null and b/src/renderer/public/sprites/rr/Darmanitangzen.png differ diff --git a/src/renderer/public/sprites/rr/Darmanitanzen.png b/src/renderer/public/sprites/rr/Darmanitanzen.png new file mode 100644 index 00000000..6e6dbf8c Binary files /dev/null and b/src/renderer/public/sprites/rr/Darmanitanzen.png differ diff --git a/src/renderer/public/sprites/rr/Dartrix.png b/src/renderer/public/sprites/rr/Dartrix.png new file mode 100644 index 00000000..b03d4bef Binary files /dev/null and b/src/renderer/public/sprites/rr/Dartrix.png differ diff --git a/src/renderer/public/sprites/rr/Darumaka.png b/src/renderer/public/sprites/rr/Darumaka.png new file mode 100644 index 00000000..9283b48b Binary files /dev/null and b/src/renderer/public/sprites/rr/Darumaka.png differ diff --git a/src/renderer/public/sprites/rr/Darumakag.png b/src/renderer/public/sprites/rr/Darumakag.png new file mode 100644 index 00000000..17fcd448 Binary files /dev/null and b/src/renderer/public/sprites/rr/Darumakag.png differ diff --git a/src/renderer/public/sprites/rr/Decidueye.png b/src/renderer/public/sprites/rr/Decidueye.png new file mode 100644 index 00000000..797e9d3f Binary files /dev/null and b/src/renderer/public/sprites/rr/Decidueye.png differ diff --git a/src/renderer/public/sprites/rr/Decidueyeh.png b/src/renderer/public/sprites/rr/Decidueyeh.png new file mode 100644 index 00000000..665354e4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Decidueyeh.png differ diff --git a/src/renderer/public/sprites/rr/Dedenne.png b/src/renderer/public/sprites/rr/Dedenne.png new file mode 100644 index 00000000..cd47761d Binary files /dev/null and b/src/renderer/public/sprites/rr/Dedenne.png differ diff --git a/src/renderer/public/sprites/rr/Deerling.png b/src/renderer/public/sprites/rr/Deerling.png new file mode 100644 index 00000000..a0db4075 Binary files /dev/null and b/src/renderer/public/sprites/rr/Deerling.png differ diff --git a/src/renderer/public/sprites/rr/Deerlingautumn.png b/src/renderer/public/sprites/rr/Deerlingautumn.png new file mode 100644 index 00000000..48ccbd3a Binary files /dev/null and b/src/renderer/public/sprites/rr/Deerlingautumn.png differ diff --git a/src/renderer/public/sprites/rr/Deerlingsummer.png b/src/renderer/public/sprites/rr/Deerlingsummer.png new file mode 100644 index 00000000..a0a0fc0b Binary files /dev/null and b/src/renderer/public/sprites/rr/Deerlingsummer.png differ diff --git a/src/renderer/public/sprites/rr/Deerlingwinter.png b/src/renderer/public/sprites/rr/Deerlingwinter.png new file mode 100644 index 00000000..b4e8f671 Binary files /dev/null and b/src/renderer/public/sprites/rr/Deerlingwinter.png differ diff --git a/src/renderer/public/sprites/rr/Deino.png b/src/renderer/public/sprites/rr/Deino.png new file mode 100644 index 00000000..94b26267 Binary files /dev/null and b/src/renderer/public/sprites/rr/Deino.png differ diff --git a/src/renderer/public/sprites/rr/Delcatty.png b/src/renderer/public/sprites/rr/Delcatty.png new file mode 100644 index 00000000..083355cc Binary files /dev/null and b/src/renderer/public/sprites/rr/Delcatty.png differ diff --git a/src/renderer/public/sprites/rr/Delibird.png b/src/renderer/public/sprites/rr/Delibird.png new file mode 100644 index 00000000..b5526968 Binary files /dev/null and b/src/renderer/public/sprites/rr/Delibird.png differ diff --git a/src/renderer/public/sprites/rr/Delphox.png b/src/renderer/public/sprites/rr/Delphox.png new file mode 100644 index 00000000..5ed73b82 Binary files /dev/null and b/src/renderer/public/sprites/rr/Delphox.png differ diff --git a/src/renderer/public/sprites/rr/Deoxys.png b/src/renderer/public/sprites/rr/Deoxys.png new file mode 100644 index 00000000..b96b86bb Binary files /dev/null and b/src/renderer/public/sprites/rr/Deoxys.png differ diff --git a/src/renderer/public/sprites/rr/Deoxysattack.png b/src/renderer/public/sprites/rr/Deoxysattack.png new file mode 100644 index 00000000..2e71cc82 Binary files /dev/null and b/src/renderer/public/sprites/rr/Deoxysattack.png differ diff --git a/src/renderer/public/sprites/rr/Deoxysdefense.png b/src/renderer/public/sprites/rr/Deoxysdefense.png new file mode 100644 index 00000000..4728b8b6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Deoxysdefense.png differ diff --git a/src/renderer/public/sprites/rr/Deoxysspeed.png b/src/renderer/public/sprites/rr/Deoxysspeed.png new file mode 100644 index 00000000..00b1d9ce Binary files /dev/null and b/src/renderer/public/sprites/rr/Deoxysspeed.png differ diff --git a/src/renderer/public/sprites/rr/Dewgong.png b/src/renderer/public/sprites/rr/Dewgong.png new file mode 100644 index 00000000..075822b0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dewgong.png differ diff --git a/src/renderer/public/sprites/rr/Dewott.png b/src/renderer/public/sprites/rr/Dewott.png new file mode 100644 index 00000000..dac49d51 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dewott.png differ diff --git a/src/renderer/public/sprites/rr/Dewpider.png b/src/renderer/public/sprites/rr/Dewpider.png new file mode 100644 index 00000000..36b8f287 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dewpider.png differ diff --git a/src/renderer/public/sprites/rr/Dhelmise.png b/src/renderer/public/sprites/rr/Dhelmise.png new file mode 100644 index 00000000..3b1c2e86 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dhelmise.png differ diff --git a/src/renderer/public/sprites/rr/Dhelmises.png b/src/renderer/public/sprites/rr/Dhelmises.png new file mode 100644 index 00000000..a62fa78a Binary files /dev/null and b/src/renderer/public/sprites/rr/Dhelmises.png differ diff --git a/src/renderer/public/sprites/rr/Dialga.png b/src/renderer/public/sprites/rr/Dialga.png new file mode 100644 index 00000000..be3e2d12 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dialga.png differ diff --git a/src/renderer/public/sprites/rr/Dialgao.png b/src/renderer/public/sprites/rr/Dialgao.png new file mode 100644 index 00000000..5a4165d9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dialgao.png differ diff --git a/src/renderer/public/sprites/rr/Dialgaprimal.png b/src/renderer/public/sprites/rr/Dialgaprimal.png new file mode 100644 index 00000000..2cd9943b Binary files /dev/null and b/src/renderer/public/sprites/rr/Dialgaprimal.png differ diff --git a/src/renderer/public/sprites/rr/Diancie.png b/src/renderer/public/sprites/rr/Diancie.png new file mode 100644 index 00000000..fdb68833 Binary files /dev/null and b/src/renderer/public/sprites/rr/Diancie.png differ diff --git a/src/renderer/public/sprites/rr/Dianciemega.png b/src/renderer/public/sprites/rr/Dianciemega.png new file mode 100644 index 00000000..ef42213c Binary files /dev/null and b/src/renderer/public/sprites/rr/Dianciemega.png differ diff --git a/src/renderer/public/sprites/rr/Diggersby.png b/src/renderer/public/sprites/rr/Diggersby.png new file mode 100644 index 00000000..f2ddd136 Binary files /dev/null and b/src/renderer/public/sprites/rr/Diggersby.png differ diff --git a/src/renderer/public/sprites/rr/Diglett.png b/src/renderer/public/sprites/rr/Diglett.png new file mode 100644 index 00000000..9f3e1558 Binary files /dev/null and b/src/renderer/public/sprites/rr/Diglett.png differ diff --git a/src/renderer/public/sprites/rr/Digletta.png b/src/renderer/public/sprites/rr/Digletta.png new file mode 100644 index 00000000..ace7a1d6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Digletta.png differ diff --git a/src/renderer/public/sprites/rr/Ditto.png b/src/renderer/public/sprites/rr/Ditto.png new file mode 100644 index 00000000..2223633f Binary files /dev/null and b/src/renderer/public/sprites/rr/Ditto.png differ diff --git a/src/renderer/public/sprites/rr/Dodrio.png b/src/renderer/public/sprites/rr/Dodrio.png new file mode 100644 index 00000000..5d89ca75 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dodrio.png differ diff --git a/src/renderer/public/sprites/rr/Dodrios.png b/src/renderer/public/sprites/rr/Dodrios.png new file mode 100644 index 00000000..30d5cb07 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dodrios.png differ diff --git a/src/renderer/public/sprites/rr/Doduo.png b/src/renderer/public/sprites/rr/Doduo.png new file mode 100644 index 00000000..0b56721d Binary files /dev/null and b/src/renderer/public/sprites/rr/Doduo.png differ diff --git a/src/renderer/public/sprites/rr/Doduos.png b/src/renderer/public/sprites/rr/Doduos.png new file mode 100644 index 00000000..ae032ba2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Doduos.png differ diff --git a/src/renderer/public/sprites/rr/Dolliv.png b/src/renderer/public/sprites/rr/Dolliv.png new file mode 100644 index 00000000..7db0273f Binary files /dev/null and b/src/renderer/public/sprites/rr/Dolliv.png differ diff --git a/src/renderer/public/sprites/rr/Dondozo.png b/src/renderer/public/sprites/rr/Dondozo.png new file mode 100644 index 00000000..e23cd900 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dondozo.png differ diff --git a/src/renderer/public/sprites/rr/Donphan.png b/src/renderer/public/sprites/rr/Donphan.png new file mode 100644 index 00000000..cc75f3bc Binary files /dev/null and b/src/renderer/public/sprites/rr/Donphan.png differ diff --git a/src/renderer/public/sprites/rr/Dottler.png b/src/renderer/public/sprites/rr/Dottler.png new file mode 100644 index 00000000..95c12793 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dottler.png differ diff --git a/src/renderer/public/sprites/rr/Doublade.png b/src/renderer/public/sprites/rr/Doublade.png new file mode 100644 index 00000000..3730f909 Binary files /dev/null and b/src/renderer/public/sprites/rr/Doublade.png differ diff --git a/src/renderer/public/sprites/rr/Dracovish.png b/src/renderer/public/sprites/rr/Dracovish.png new file mode 100644 index 00000000..3b998c67 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dracovish.png differ diff --git a/src/renderer/public/sprites/rr/Dracozolt.png b/src/renderer/public/sprites/rr/Dracozolt.png new file mode 100644 index 00000000..ccd67009 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dracozolt.png differ diff --git a/src/renderer/public/sprites/rr/Dragalge.png b/src/renderer/public/sprites/rr/Dragalge.png new file mode 100644 index 00000000..0e0de428 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dragalge.png differ diff --git a/src/renderer/public/sprites/rr/Dragapult.png b/src/renderer/public/sprites/rr/Dragapult.png new file mode 100644 index 00000000..11473eba Binary files /dev/null and b/src/renderer/public/sprites/rr/Dragapult.png differ diff --git a/src/renderer/public/sprites/rr/Dragonair.png b/src/renderer/public/sprites/rr/Dragonair.png new file mode 100644 index 00000000..aff01b6c Binary files /dev/null and b/src/renderer/public/sprites/rr/Dragonair.png differ diff --git a/src/renderer/public/sprites/rr/Dragonite.png b/src/renderer/public/sprites/rr/Dragonite.png new file mode 100644 index 00000000..7c5ade73 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dragonite.png differ diff --git a/src/renderer/public/sprites/rr/Drakloak.png b/src/renderer/public/sprites/rr/Drakloak.png new file mode 100644 index 00000000..a6de30f1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Drakloak.png differ diff --git a/src/renderer/public/sprites/rr/Drampa.png b/src/renderer/public/sprites/rr/Drampa.png new file mode 100644 index 00000000..3536c303 Binary files /dev/null and b/src/renderer/public/sprites/rr/Drampa.png differ diff --git a/src/renderer/public/sprites/rr/Drapion.png b/src/renderer/public/sprites/rr/Drapion.png new file mode 100644 index 00000000..71d45efb Binary files /dev/null and b/src/renderer/public/sprites/rr/Drapion.png differ diff --git a/src/renderer/public/sprites/rr/Dratini.png b/src/renderer/public/sprites/rr/Dratini.png new file mode 100644 index 00000000..7d44b5ae Binary files /dev/null and b/src/renderer/public/sprites/rr/Dratini.png differ diff --git a/src/renderer/public/sprites/rr/Drednaw.png b/src/renderer/public/sprites/rr/Drednaw.png new file mode 100644 index 00000000..788294eb Binary files /dev/null and b/src/renderer/public/sprites/rr/Drednaw.png differ diff --git a/src/renderer/public/sprites/rr/Drednawgiga.png b/src/renderer/public/sprites/rr/Drednawgiga.png new file mode 100644 index 00000000..0c87b54e Binary files /dev/null and b/src/renderer/public/sprites/rr/Drednawgiga.png differ diff --git a/src/renderer/public/sprites/rr/Dreepy.png b/src/renderer/public/sprites/rr/Dreepy.png new file mode 100644 index 00000000..863c9fe5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dreepy.png differ diff --git a/src/renderer/public/sprites/rr/Drifblim.png b/src/renderer/public/sprites/rr/Drifblim.png new file mode 100644 index 00000000..7a3dd422 Binary files /dev/null and b/src/renderer/public/sprites/rr/Drifblim.png differ diff --git a/src/renderer/public/sprites/rr/Drifloon.png b/src/renderer/public/sprites/rr/Drifloon.png new file mode 100644 index 00000000..3d80053d Binary files /dev/null and b/src/renderer/public/sprites/rr/Drifloon.png differ diff --git a/src/renderer/public/sprites/rr/Drilbur.png b/src/renderer/public/sprites/rr/Drilbur.png new file mode 100644 index 00000000..691cad86 Binary files /dev/null and b/src/renderer/public/sprites/rr/Drilbur.png differ diff --git a/src/renderer/public/sprites/rr/Drizzile.png b/src/renderer/public/sprites/rr/Drizzile.png new file mode 100644 index 00000000..6114a8fd Binary files /dev/null and b/src/renderer/public/sprites/rr/Drizzile.png differ diff --git a/src/renderer/public/sprites/rr/Drowzee.png b/src/renderer/public/sprites/rr/Drowzee.png new file mode 100644 index 00000000..c2296df4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Drowzee.png differ diff --git a/src/renderer/public/sprites/rr/Druddigon.png b/src/renderer/public/sprites/rr/Druddigon.png new file mode 100644 index 00000000..630148fd Binary files /dev/null and b/src/renderer/public/sprites/rr/Druddigon.png differ diff --git a/src/renderer/public/sprites/rr/Dubwool.png b/src/renderer/public/sprites/rr/Dubwool.png new file mode 100644 index 00000000..e357906d Binary files /dev/null and b/src/renderer/public/sprites/rr/Dubwool.png differ diff --git a/src/renderer/public/sprites/rr/Ducklett.png b/src/renderer/public/sprites/rr/Ducklett.png new file mode 100644 index 00000000..3aa0be53 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ducklett.png differ diff --git a/src/renderer/public/sprites/rr/Dudunsparce.png b/src/renderer/public/sprites/rr/Dudunsparce.png new file mode 100644 index 00000000..33f7b33d Binary files /dev/null and b/src/renderer/public/sprites/rr/Dudunsparce.png differ diff --git a/src/renderer/public/sprites/rr/Dugtrio.png b/src/renderer/public/sprites/rr/Dugtrio.png new file mode 100644 index 00000000..cf505ffa Binary files /dev/null and b/src/renderer/public/sprites/rr/Dugtrio.png differ diff --git a/src/renderer/public/sprites/rr/Dugtrioa.png b/src/renderer/public/sprites/rr/Dugtrioa.png new file mode 100644 index 00000000..07cdcedb Binary files /dev/null and b/src/renderer/public/sprites/rr/Dugtrioa.png differ diff --git a/src/renderer/public/sprites/rr/Dunsparce.png b/src/renderer/public/sprites/rr/Dunsparce.png new file mode 100644 index 00000000..7405975b Binary files /dev/null and b/src/renderer/public/sprites/rr/Dunsparce.png differ diff --git a/src/renderer/public/sprites/rr/Duosion.png b/src/renderer/public/sprites/rr/Duosion.png new file mode 100644 index 00000000..16a1880d Binary files /dev/null and b/src/renderer/public/sprites/rr/Duosion.png differ diff --git a/src/renderer/public/sprites/rr/Duraludon.png b/src/renderer/public/sprites/rr/Duraludon.png new file mode 100644 index 00000000..8e218dd1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Duraludon.png differ diff --git a/src/renderer/public/sprites/rr/Duraludongiga.png b/src/renderer/public/sprites/rr/Duraludongiga.png new file mode 100644 index 00000000..0e17c059 Binary files /dev/null and b/src/renderer/public/sprites/rr/Duraludongiga.png differ diff --git a/src/renderer/public/sprites/rr/Durant.png b/src/renderer/public/sprites/rr/Durant.png new file mode 100644 index 00000000..fad22634 Binary files /dev/null and b/src/renderer/public/sprites/rr/Durant.png differ diff --git a/src/renderer/public/sprites/rr/Dusclops.png b/src/renderer/public/sprites/rr/Dusclops.png new file mode 100644 index 00000000..e813d964 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dusclops.png differ diff --git a/src/renderer/public/sprites/rr/Dusknoir.png b/src/renderer/public/sprites/rr/Dusknoir.png new file mode 100644 index 00000000..5f1611df Binary files /dev/null and b/src/renderer/public/sprites/rr/Dusknoir.png differ diff --git a/src/renderer/public/sprites/rr/Duskull.png b/src/renderer/public/sprites/rr/Duskull.png new file mode 100644 index 00000000..f091fe57 Binary files /dev/null and b/src/renderer/public/sprites/rr/Duskull.png differ diff --git a/src/renderer/public/sprites/rr/Dustox.png b/src/renderer/public/sprites/rr/Dustox.png new file mode 100644 index 00000000..a6abb8dd Binary files /dev/null and b/src/renderer/public/sprites/rr/Dustox.png differ diff --git a/src/renderer/public/sprites/rr/Dwebble.png b/src/renderer/public/sprites/rr/Dwebble.png new file mode 100644 index 00000000..a4430580 Binary files /dev/null and b/src/renderer/public/sprites/rr/Dwebble.png differ diff --git a/src/renderer/public/sprites/rr/Eelektrik.png b/src/renderer/public/sprites/rr/Eelektrik.png new file mode 100644 index 00000000..45bcc89b Binary files /dev/null and b/src/renderer/public/sprites/rr/Eelektrik.png differ diff --git a/src/renderer/public/sprites/rr/Eelektross.png b/src/renderer/public/sprites/rr/Eelektross.png new file mode 100644 index 00000000..ea5060d2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Eelektross.png differ diff --git a/src/renderer/public/sprites/rr/Eevee.png b/src/renderer/public/sprites/rr/Eevee.png new file mode 100644 index 00000000..af173212 Binary files /dev/null and b/src/renderer/public/sprites/rr/Eevee.png differ diff --git a/src/renderer/public/sprites/rr/Eeveegiga.png b/src/renderer/public/sprites/rr/Eeveegiga.png new file mode 100644 index 00000000..fcd2d848 Binary files /dev/null and b/src/renderer/public/sprites/rr/Eeveegiga.png differ diff --git a/src/renderer/public/sprites/rr/Egg.png b/src/renderer/public/sprites/rr/Egg.png new file mode 100644 index 00000000..05af49ac Binary files /dev/null and b/src/renderer/public/sprites/rr/Egg.png differ diff --git a/src/renderer/public/sprites/rr/Eiscue.png b/src/renderer/public/sprites/rr/Eiscue.png new file mode 100644 index 00000000..59a1a051 Binary files /dev/null and b/src/renderer/public/sprites/rr/Eiscue.png differ diff --git a/src/renderer/public/sprites/rr/Eiscuenoice.png b/src/renderer/public/sprites/rr/Eiscuenoice.png new file mode 100644 index 00000000..90128f0d Binary files /dev/null and b/src/renderer/public/sprites/rr/Eiscuenoice.png differ diff --git a/src/renderer/public/sprites/rr/Ekans.png b/src/renderer/public/sprites/rr/Ekans.png new file mode 100644 index 00000000..2ada6e96 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ekans.png differ diff --git a/src/renderer/public/sprites/rr/Eldegoss.png b/src/renderer/public/sprites/rr/Eldegoss.png new file mode 100644 index 00000000..f8789383 Binary files /dev/null and b/src/renderer/public/sprites/rr/Eldegoss.png differ diff --git a/src/renderer/public/sprites/rr/Electabuzz.png b/src/renderer/public/sprites/rr/Electabuzz.png new file mode 100644 index 00000000..f8a0fe1c Binary files /dev/null and b/src/renderer/public/sprites/rr/Electabuzz.png differ diff --git a/src/renderer/public/sprites/rr/Electivire.png b/src/renderer/public/sprites/rr/Electivire.png new file mode 100644 index 00000000..2f90dd52 Binary files /dev/null and b/src/renderer/public/sprites/rr/Electivire.png differ diff --git a/src/renderer/public/sprites/rr/Electrike.png b/src/renderer/public/sprites/rr/Electrike.png new file mode 100644 index 00000000..0f91582b Binary files /dev/null and b/src/renderer/public/sprites/rr/Electrike.png differ diff --git a/src/renderer/public/sprites/rr/Electrode.png b/src/renderer/public/sprites/rr/Electrode.png new file mode 100644 index 00000000..74ff9b22 Binary files /dev/null and b/src/renderer/public/sprites/rr/Electrode.png differ diff --git a/src/renderer/public/sprites/rr/Electrodeh.png b/src/renderer/public/sprites/rr/Electrodeh.png new file mode 100644 index 00000000..2f6f7cd2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Electrodeh.png differ diff --git a/src/renderer/public/sprites/rr/Elekid.png b/src/renderer/public/sprites/rr/Elekid.png new file mode 100644 index 00000000..beb3594c Binary files /dev/null and b/src/renderer/public/sprites/rr/Elekid.png differ diff --git a/src/renderer/public/sprites/rr/Elgyem.png b/src/renderer/public/sprites/rr/Elgyem.png new file mode 100644 index 00000000..0ddeee70 Binary files /dev/null and b/src/renderer/public/sprites/rr/Elgyem.png differ diff --git a/src/renderer/public/sprites/rr/Emboar.png b/src/renderer/public/sprites/rr/Emboar.png new file mode 100644 index 00000000..b79035aa Binary files /dev/null and b/src/renderer/public/sprites/rr/Emboar.png differ diff --git a/src/renderer/public/sprites/rr/Emolga.png b/src/renderer/public/sprites/rr/Emolga.png new file mode 100644 index 00000000..efd0bba1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Emolga.png differ diff --git a/src/renderer/public/sprites/rr/Empoleon.png b/src/renderer/public/sprites/rr/Empoleon.png new file mode 100644 index 00000000..9370580e Binary files /dev/null and b/src/renderer/public/sprites/rr/Empoleon.png differ diff --git a/src/renderer/public/sprites/rr/Enamorus.png b/src/renderer/public/sprites/rr/Enamorus.png new file mode 100644 index 00000000..56d2bfd3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Enamorus.png differ diff --git a/src/renderer/public/sprites/rr/Enamorust.png b/src/renderer/public/sprites/rr/Enamorust.png new file mode 100644 index 00000000..87603c50 Binary files /dev/null and b/src/renderer/public/sprites/rr/Enamorust.png differ diff --git a/src/renderer/public/sprites/rr/Entei.png b/src/renderer/public/sprites/rr/Entei.png new file mode 100644 index 00000000..d6349c64 Binary files /dev/null and b/src/renderer/public/sprites/rr/Entei.png differ diff --git a/src/renderer/public/sprites/rr/Escavalier.png b/src/renderer/public/sprites/rr/Escavalier.png new file mode 100644 index 00000000..412211d8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Escavalier.png differ diff --git a/src/renderer/public/sprites/rr/Espathra.png b/src/renderer/public/sprites/rr/Espathra.png new file mode 100644 index 00000000..37823217 Binary files /dev/null and b/src/renderer/public/sprites/rr/Espathra.png differ diff --git a/src/renderer/public/sprites/rr/Espeon.png b/src/renderer/public/sprites/rr/Espeon.png new file mode 100644 index 00000000..7c912b21 Binary files /dev/null and b/src/renderer/public/sprites/rr/Espeon.png differ diff --git a/src/renderer/public/sprites/rr/Espurr.png b/src/renderer/public/sprites/rr/Espurr.png new file mode 100644 index 00000000..85b27d55 Binary files /dev/null and b/src/renderer/public/sprites/rr/Espurr.png differ diff --git a/src/renderer/public/sprites/rr/Eternatus.png b/src/renderer/public/sprites/rr/Eternatus.png new file mode 100644 index 00000000..a95d1b84 Binary files /dev/null and b/src/renderer/public/sprites/rr/Eternatus.png differ diff --git a/src/renderer/public/sprites/rr/Eternatuseternamax.png b/src/renderer/public/sprites/rr/Eternatuseternamax.png new file mode 100644 index 00000000..bdc5d105 Binary files /dev/null and b/src/renderer/public/sprites/rr/Eternatuseternamax.png differ diff --git a/src/renderer/public/sprites/rr/Excadrill.png b/src/renderer/public/sprites/rr/Excadrill.png new file mode 100644 index 00000000..88142e0c Binary files /dev/null and b/src/renderer/public/sprites/rr/Excadrill.png differ diff --git a/src/renderer/public/sprites/rr/Exeggcute.png b/src/renderer/public/sprites/rr/Exeggcute.png new file mode 100644 index 00000000..4381e393 Binary files /dev/null and b/src/renderer/public/sprites/rr/Exeggcute.png differ diff --git a/src/renderer/public/sprites/rr/Exeggcutea.png b/src/renderer/public/sprites/rr/Exeggcutea.png new file mode 100644 index 00000000..4381e393 Binary files /dev/null and b/src/renderer/public/sprites/rr/Exeggcutea.png differ diff --git a/src/renderer/public/sprites/rr/Exeggutor.png b/src/renderer/public/sprites/rr/Exeggutor.png new file mode 100644 index 00000000..69c7f097 Binary files /dev/null and b/src/renderer/public/sprites/rr/Exeggutor.png differ diff --git a/src/renderer/public/sprites/rr/Exeggutora.png b/src/renderer/public/sprites/rr/Exeggutora.png new file mode 100644 index 00000000..21a7b4ab Binary files /dev/null and b/src/renderer/public/sprites/rr/Exeggutora.png differ diff --git a/src/renderer/public/sprites/rr/Exploud.png b/src/renderer/public/sprites/rr/Exploud.png new file mode 100644 index 00000000..0a976dc9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Exploud.png differ diff --git a/src/renderer/public/sprites/rr/Falinks.png b/src/renderer/public/sprites/rr/Falinks.png new file mode 100644 index 00000000..c14e8c3a Binary files /dev/null and b/src/renderer/public/sprites/rr/Falinks.png differ diff --git a/src/renderer/public/sprites/rr/Farfetchd.png b/src/renderer/public/sprites/rr/Farfetchd.png new file mode 100644 index 00000000..b6e0c85f Binary files /dev/null and b/src/renderer/public/sprites/rr/Farfetchd.png differ diff --git a/src/renderer/public/sprites/rr/Farfetchdg.png b/src/renderer/public/sprites/rr/Farfetchdg.png new file mode 100644 index 00000000..8579ad85 Binary files /dev/null and b/src/renderer/public/sprites/rr/Farfetchdg.png differ diff --git a/src/renderer/public/sprites/rr/Farigiraf.png b/src/renderer/public/sprites/rr/Farigiraf.png new file mode 100644 index 00000000..d77fcc4d Binary files /dev/null and b/src/renderer/public/sprites/rr/Farigiraf.png differ diff --git a/src/renderer/public/sprites/rr/Fearow.png b/src/renderer/public/sprites/rr/Fearow.png new file mode 100644 index 00000000..ef4da8e4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Fearow.png differ diff --git a/src/renderer/public/sprites/rr/Feebas.png b/src/renderer/public/sprites/rr/Feebas.png new file mode 100644 index 00000000..49c04e5d Binary files /dev/null and b/src/renderer/public/sprites/rr/Feebas.png differ diff --git a/src/renderer/public/sprites/rr/Feebass.png b/src/renderer/public/sprites/rr/Feebass.png new file mode 100644 index 00000000..4cf0ba64 Binary files /dev/null and b/src/renderer/public/sprites/rr/Feebass.png differ diff --git a/src/renderer/public/sprites/rr/Fennekin.png b/src/renderer/public/sprites/rr/Fennekin.png new file mode 100644 index 00000000..c6db224b Binary files /dev/null and b/src/renderer/public/sprites/rr/Fennekin.png differ diff --git a/src/renderer/public/sprites/rr/Feraligatr.png b/src/renderer/public/sprites/rr/Feraligatr.png new file mode 100644 index 00000000..014a92d6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Feraligatr.png differ diff --git a/src/renderer/public/sprites/rr/Ferroseed.png b/src/renderer/public/sprites/rr/Ferroseed.png new file mode 100644 index 00000000..8cb4c828 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ferroseed.png differ diff --git a/src/renderer/public/sprites/rr/Ferrothorn.png b/src/renderer/public/sprites/rr/Ferrothorn.png new file mode 100644 index 00000000..daa55f3d Binary files /dev/null and b/src/renderer/public/sprites/rr/Ferrothorn.png differ diff --git a/src/renderer/public/sprites/rr/Fidough.png b/src/renderer/public/sprites/rr/Fidough.png new file mode 100644 index 00000000..fcd5f936 Binary files /dev/null and b/src/renderer/public/sprites/rr/Fidough.png differ diff --git a/src/renderer/public/sprites/rr/Finizen.png b/src/renderer/public/sprites/rr/Finizen.png new file mode 100644 index 00000000..2c6c4880 Binary files /dev/null and b/src/renderer/public/sprites/rr/Finizen.png differ diff --git a/src/renderer/public/sprites/rr/Finneon.png b/src/renderer/public/sprites/rr/Finneon.png new file mode 100644 index 00000000..34c06f89 Binary files /dev/null and b/src/renderer/public/sprites/rr/Finneon.png differ diff --git a/src/renderer/public/sprites/rr/Flaaffy.png b/src/renderer/public/sprites/rr/Flaaffy.png new file mode 100644 index 00000000..4ca75842 Binary files /dev/null and b/src/renderer/public/sprites/rr/Flaaffy.png differ diff --git a/src/renderer/public/sprites/rr/Flabebe.png b/src/renderer/public/sprites/rr/Flabebe.png new file mode 100644 index 00000000..8642c3ca Binary files /dev/null and b/src/renderer/public/sprites/rr/Flabebe.png differ diff --git a/src/renderer/public/sprites/rr/Flabebeblue.png b/src/renderer/public/sprites/rr/Flabebeblue.png new file mode 100644 index 00000000..389b2764 Binary files /dev/null and b/src/renderer/public/sprites/rr/Flabebeblue.png differ diff --git a/src/renderer/public/sprites/rr/Flabebeorange.png b/src/renderer/public/sprites/rr/Flabebeorange.png new file mode 100644 index 00000000..ca14ed4c Binary files /dev/null and b/src/renderer/public/sprites/rr/Flabebeorange.png differ diff --git a/src/renderer/public/sprites/rr/Flabebewhite.png b/src/renderer/public/sprites/rr/Flabebewhite.png new file mode 100644 index 00000000..ba2dc021 Binary files /dev/null and b/src/renderer/public/sprites/rr/Flabebewhite.png differ diff --git a/src/renderer/public/sprites/rr/Flabebeyellow.png b/src/renderer/public/sprites/rr/Flabebeyellow.png new file mode 100644 index 00000000..78644fbb Binary files /dev/null and b/src/renderer/public/sprites/rr/Flabebeyellow.png differ diff --git a/src/renderer/public/sprites/rr/Flamigo.png b/src/renderer/public/sprites/rr/Flamigo.png new file mode 100644 index 00000000..4a55e467 Binary files /dev/null and b/src/renderer/public/sprites/rr/Flamigo.png differ diff --git a/src/renderer/public/sprites/rr/Flapple.png b/src/renderer/public/sprites/rr/Flapple.png new file mode 100644 index 00000000..d07b6e8b Binary files /dev/null and b/src/renderer/public/sprites/rr/Flapple.png differ diff --git a/src/renderer/public/sprites/rr/Flapplegiga.png b/src/renderer/public/sprites/rr/Flapplegiga.png new file mode 100644 index 00000000..336ee7e4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Flapplegiga.png differ diff --git a/src/renderer/public/sprites/rr/Flareon.png b/src/renderer/public/sprites/rr/Flareon.png new file mode 100644 index 00000000..24ae9fe9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Flareon.png differ diff --git a/src/renderer/public/sprites/rr/Fletchinder.png b/src/renderer/public/sprites/rr/Fletchinder.png new file mode 100644 index 00000000..874958c3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Fletchinder.png differ diff --git a/src/renderer/public/sprites/rr/Fletchling.png b/src/renderer/public/sprites/rr/Fletchling.png new file mode 100644 index 00000000..38ae6d60 Binary files /dev/null and b/src/renderer/public/sprites/rr/Fletchling.png differ diff --git a/src/renderer/public/sprites/rr/Flittle.png b/src/renderer/public/sprites/rr/Flittle.png new file mode 100644 index 00000000..991a987b Binary files /dev/null and b/src/renderer/public/sprites/rr/Flittle.png differ diff --git a/src/renderer/public/sprites/rr/Floatzel.png b/src/renderer/public/sprites/rr/Floatzel.png new file mode 100644 index 00000000..f0d24a93 Binary files /dev/null and b/src/renderer/public/sprites/rr/Floatzel.png differ diff --git a/src/renderer/public/sprites/rr/Floette.png b/src/renderer/public/sprites/rr/Floette.png new file mode 100644 index 00000000..1af26e04 Binary files /dev/null and b/src/renderer/public/sprites/rr/Floette.png differ diff --git a/src/renderer/public/sprites/rr/Floetteblue.png b/src/renderer/public/sprites/rr/Floetteblue.png new file mode 100644 index 00000000..bf70b959 Binary files /dev/null and b/src/renderer/public/sprites/rr/Floetteblue.png differ diff --git a/src/renderer/public/sprites/rr/Floetteeternal.png b/src/renderer/public/sprites/rr/Floetteeternal.png new file mode 100644 index 00000000..a2af0402 Binary files /dev/null and b/src/renderer/public/sprites/rr/Floetteeternal.png differ diff --git a/src/renderer/public/sprites/rr/Floetteorange.png b/src/renderer/public/sprites/rr/Floetteorange.png new file mode 100644 index 00000000..9a584116 Binary files /dev/null and b/src/renderer/public/sprites/rr/Floetteorange.png differ diff --git a/src/renderer/public/sprites/rr/Floettewhite.png b/src/renderer/public/sprites/rr/Floettewhite.png new file mode 100644 index 00000000..47d717a6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Floettewhite.png differ diff --git a/src/renderer/public/sprites/rr/Floetteyellow.png b/src/renderer/public/sprites/rr/Floetteyellow.png new file mode 100644 index 00000000..ec308551 Binary files /dev/null and b/src/renderer/public/sprites/rr/Floetteyellow.png differ diff --git a/src/renderer/public/sprites/rr/Floragato.png b/src/renderer/public/sprites/rr/Floragato.png new file mode 100644 index 00000000..31954c18 Binary files /dev/null and b/src/renderer/public/sprites/rr/Floragato.png differ diff --git a/src/renderer/public/sprites/rr/Florges.png b/src/renderer/public/sprites/rr/Florges.png new file mode 100644 index 00000000..cf64cb07 Binary files /dev/null and b/src/renderer/public/sprites/rr/Florges.png differ diff --git a/src/renderer/public/sprites/rr/Florgesblue.png b/src/renderer/public/sprites/rr/Florgesblue.png new file mode 100644 index 00000000..4fd4b49b Binary files /dev/null and b/src/renderer/public/sprites/rr/Florgesblue.png differ diff --git a/src/renderer/public/sprites/rr/Florgesorange.png b/src/renderer/public/sprites/rr/Florgesorange.png new file mode 100644 index 00000000..ca05dea5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Florgesorange.png differ diff --git a/src/renderer/public/sprites/rr/Florgeswhite.png b/src/renderer/public/sprites/rr/Florgeswhite.png new file mode 100644 index 00000000..adf5d9b0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Florgeswhite.png differ diff --git a/src/renderer/public/sprites/rr/Florgesyellow.png b/src/renderer/public/sprites/rr/Florgesyellow.png new file mode 100644 index 00000000..9472b421 Binary files /dev/null and b/src/renderer/public/sprites/rr/Florgesyellow.png differ diff --git a/src/renderer/public/sprites/rr/Fluttermane.png b/src/renderer/public/sprites/rr/Fluttermane.png new file mode 100644 index 00000000..9adf2e36 Binary files /dev/null and b/src/renderer/public/sprites/rr/Fluttermane.png differ diff --git a/src/renderer/public/sprites/rr/Flygon.png b/src/renderer/public/sprites/rr/Flygon.png new file mode 100644 index 00000000..e19535de Binary files /dev/null and b/src/renderer/public/sprites/rr/Flygon.png differ diff --git a/src/renderer/public/sprites/rr/Fomantis.png b/src/renderer/public/sprites/rr/Fomantis.png new file mode 100644 index 00000000..31789169 Binary files /dev/null and b/src/renderer/public/sprites/rr/Fomantis.png differ diff --git a/src/renderer/public/sprites/rr/Foongus.png b/src/renderer/public/sprites/rr/Foongus.png new file mode 100644 index 00000000..63c55894 Binary files /dev/null and b/src/renderer/public/sprites/rr/Foongus.png differ diff --git a/src/renderer/public/sprites/rr/Forretress.png b/src/renderer/public/sprites/rr/Forretress.png new file mode 100644 index 00000000..40abb557 Binary files /dev/null and b/src/renderer/public/sprites/rr/Forretress.png differ diff --git a/src/renderer/public/sprites/rr/Fraxure.png b/src/renderer/public/sprites/rr/Fraxure.png new file mode 100644 index 00000000..127e2ad7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Fraxure.png differ diff --git a/src/renderer/public/sprites/rr/Frigibax.png b/src/renderer/public/sprites/rr/Frigibax.png new file mode 100644 index 00000000..e97c170b Binary files /dev/null and b/src/renderer/public/sprites/rr/Frigibax.png differ diff --git a/src/renderer/public/sprites/rr/Frillish.png b/src/renderer/public/sprites/rr/Frillish.png new file mode 100644 index 00000000..67fc7865 Binary files /dev/null and b/src/renderer/public/sprites/rr/Frillish.png differ diff --git a/src/renderer/public/sprites/rr/Frillishf.png b/src/renderer/public/sprites/rr/Frillishf.png new file mode 100644 index 00000000..fedd1c94 Binary files /dev/null and b/src/renderer/public/sprites/rr/Frillishf.png differ diff --git a/src/renderer/public/sprites/rr/Froakie.png b/src/renderer/public/sprites/rr/Froakie.png new file mode 100644 index 00000000..3bd460a3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Froakie.png differ diff --git a/src/renderer/public/sprites/rr/Frogadier.png b/src/renderer/public/sprites/rr/Frogadier.png new file mode 100644 index 00000000..9f3ec510 Binary files /dev/null and b/src/renderer/public/sprites/rr/Frogadier.png differ diff --git a/src/renderer/public/sprites/rr/Froslass.png b/src/renderer/public/sprites/rr/Froslass.png new file mode 100644 index 00000000..a5dd72e2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Froslass.png differ diff --git a/src/renderer/public/sprites/rr/Frosmoth.png b/src/renderer/public/sprites/rr/Frosmoth.png new file mode 100644 index 00000000..476fdd84 Binary files /dev/null and b/src/renderer/public/sprites/rr/Frosmoth.png differ diff --git a/src/renderer/public/sprites/rr/Fuecoco.png b/src/renderer/public/sprites/rr/Fuecoco.png new file mode 100644 index 00000000..2f9479c1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Fuecoco.png differ diff --git a/src/renderer/public/sprites/rr/Furfrou.png b/src/renderer/public/sprites/rr/Furfrou.png new file mode 100644 index 00000000..f2c5f5f9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Furfrou.png differ diff --git a/src/renderer/public/sprites/rr/Furfroudandy.png b/src/renderer/public/sprites/rr/Furfroudandy.png new file mode 100644 index 00000000..eb0bb1df Binary files /dev/null and b/src/renderer/public/sprites/rr/Furfroudandy.png differ diff --git a/src/renderer/public/sprites/rr/Furfroudebutante.png b/src/renderer/public/sprites/rr/Furfroudebutante.png new file mode 100644 index 00000000..c0215a81 Binary files /dev/null and b/src/renderer/public/sprites/rr/Furfroudebutante.png differ diff --git a/src/renderer/public/sprites/rr/Furfroudiamond.png b/src/renderer/public/sprites/rr/Furfroudiamond.png new file mode 100644 index 00000000..4a55a04a Binary files /dev/null and b/src/renderer/public/sprites/rr/Furfroudiamond.png differ diff --git a/src/renderer/public/sprites/rr/Furfrouheart.png b/src/renderer/public/sprites/rr/Furfrouheart.png new file mode 100644 index 00000000..eca1077f Binary files /dev/null and b/src/renderer/public/sprites/rr/Furfrouheart.png differ diff --git a/src/renderer/public/sprites/rr/Furfroukabuki.png b/src/renderer/public/sprites/rr/Furfroukabuki.png new file mode 100644 index 00000000..182f3d80 Binary files /dev/null and b/src/renderer/public/sprites/rr/Furfroukabuki.png differ diff --git a/src/renderer/public/sprites/rr/Furfroulareine.png b/src/renderer/public/sprites/rr/Furfroulareine.png new file mode 100644 index 00000000..048db265 Binary files /dev/null and b/src/renderer/public/sprites/rr/Furfroulareine.png differ diff --git a/src/renderer/public/sprites/rr/Furfroumatron.png b/src/renderer/public/sprites/rr/Furfroumatron.png new file mode 100644 index 00000000..c33bd38b Binary files /dev/null and b/src/renderer/public/sprites/rr/Furfroumatron.png differ diff --git a/src/renderer/public/sprites/rr/Furfroupharoah.png b/src/renderer/public/sprites/rr/Furfroupharoah.png new file mode 100644 index 00000000..e25c4794 Binary files /dev/null and b/src/renderer/public/sprites/rr/Furfroupharoah.png differ diff --git a/src/renderer/public/sprites/rr/Furfroustar.png b/src/renderer/public/sprites/rr/Furfroustar.png new file mode 100644 index 00000000..b08802c8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Furfroustar.png differ diff --git a/src/renderer/public/sprites/rr/Furret.png b/src/renderer/public/sprites/rr/Furret.png new file mode 100644 index 00000000..cd4583d7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Furret.png differ diff --git a/src/renderer/public/sprites/rr/Gabite.png b/src/renderer/public/sprites/rr/Gabite.png new file mode 100644 index 00000000..e7a8d422 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gabite.png differ diff --git a/src/renderer/public/sprites/rr/Gallade.png b/src/renderer/public/sprites/rr/Gallade.png new file mode 100644 index 00000000..e1270df3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gallade.png differ diff --git a/src/renderer/public/sprites/rr/Gallademega.png b/src/renderer/public/sprites/rr/Gallademega.png new file mode 100644 index 00000000..24e3076a Binary files /dev/null and b/src/renderer/public/sprites/rr/Gallademega.png differ diff --git a/src/renderer/public/sprites/rr/Galvantula.png b/src/renderer/public/sprites/rr/Galvantula.png new file mode 100644 index 00000000..a9ce8db9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Galvantula.png differ diff --git a/src/renderer/public/sprites/rr/Garbodor.png b/src/renderer/public/sprites/rr/Garbodor.png new file mode 100644 index 00000000..29dcdd32 Binary files /dev/null and b/src/renderer/public/sprites/rr/Garbodor.png differ diff --git a/src/renderer/public/sprites/rr/Garbodorgiga.png b/src/renderer/public/sprites/rr/Garbodorgiga.png new file mode 100644 index 00000000..3104da0d Binary files /dev/null and b/src/renderer/public/sprites/rr/Garbodorgiga.png differ diff --git a/src/renderer/public/sprites/rr/Garchomp.png b/src/renderer/public/sprites/rr/Garchomp.png new file mode 100644 index 00000000..39773365 Binary files /dev/null and b/src/renderer/public/sprites/rr/Garchomp.png differ diff --git a/src/renderer/public/sprites/rr/Garchompmega.png b/src/renderer/public/sprites/rr/Garchompmega.png new file mode 100644 index 00000000..3d096ef2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Garchompmega.png differ diff --git a/src/renderer/public/sprites/rr/Gardevoir.png b/src/renderer/public/sprites/rr/Gardevoir.png new file mode 100644 index 00000000..75dec139 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gardevoir.png differ diff --git a/src/renderer/public/sprites/rr/Gardevoirmega.png b/src/renderer/public/sprites/rr/Gardevoirmega.png new file mode 100644 index 00000000..6769b575 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gardevoirmega.png differ diff --git a/src/renderer/public/sprites/rr/Garganacl.png b/src/renderer/public/sprites/rr/Garganacl.png new file mode 100644 index 00000000..1340af7f Binary files /dev/null and b/src/renderer/public/sprites/rr/Garganacl.png differ diff --git a/src/renderer/public/sprites/rr/Gastly.png b/src/renderer/public/sprites/rr/Gastly.png new file mode 100644 index 00000000..d99a19cf Binary files /dev/null and b/src/renderer/public/sprites/rr/Gastly.png differ diff --git a/src/renderer/public/sprites/rr/Gastrodon.png b/src/renderer/public/sprites/rr/Gastrodon.png new file mode 100644 index 00000000..a45caa1d Binary files /dev/null and b/src/renderer/public/sprites/rr/Gastrodon.png differ diff --git a/src/renderer/public/sprites/rr/Gastrodoneast.png b/src/renderer/public/sprites/rr/Gastrodoneast.png new file mode 100644 index 00000000..7cd46bcb Binary files /dev/null and b/src/renderer/public/sprites/rr/Gastrodoneast.png differ diff --git a/src/renderer/public/sprites/rr/Genesect.png b/src/renderer/public/sprites/rr/Genesect.png new file mode 100644 index 00000000..af182499 Binary files /dev/null and b/src/renderer/public/sprites/rr/Genesect.png differ diff --git a/src/renderer/public/sprites/rr/Genesectburn.png b/src/renderer/public/sprites/rr/Genesectburn.png new file mode 100644 index 00000000..f6d4a2f5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Genesectburn.png differ diff --git a/src/renderer/public/sprites/rr/Genesectchill.png b/src/renderer/public/sprites/rr/Genesectchill.png new file mode 100644 index 00000000..cfaabd6b Binary files /dev/null and b/src/renderer/public/sprites/rr/Genesectchill.png differ diff --git a/src/renderer/public/sprites/rr/Genesectdouse.png b/src/renderer/public/sprites/rr/Genesectdouse.png new file mode 100644 index 00000000..024972c4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Genesectdouse.png differ diff --git a/src/renderer/public/sprites/rr/Genesectshock.png b/src/renderer/public/sprites/rr/Genesectshock.png new file mode 100644 index 00000000..c3872bae Binary files /dev/null and b/src/renderer/public/sprites/rr/Genesectshock.png differ diff --git a/src/renderer/public/sprites/rr/Gengar.png b/src/renderer/public/sprites/rr/Gengar.png new file mode 100644 index 00000000..5d22ff82 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gengar.png differ diff --git a/src/renderer/public/sprites/rr/Gengargiga.png b/src/renderer/public/sprites/rr/Gengargiga.png new file mode 100644 index 00000000..93eeeb19 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gengargiga.png differ diff --git a/src/renderer/public/sprites/rr/Gengarmega.png b/src/renderer/public/sprites/rr/Gengarmega.png new file mode 100644 index 00000000..b2b055b3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gengarmega.png differ diff --git a/src/renderer/public/sprites/rr/Geodude.png b/src/renderer/public/sprites/rr/Geodude.png new file mode 100644 index 00000000..48eea087 Binary files /dev/null and b/src/renderer/public/sprites/rr/Geodude.png differ diff --git a/src/renderer/public/sprites/rr/Geodudea.png b/src/renderer/public/sprites/rr/Geodudea.png new file mode 100644 index 00000000..971d1da5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Geodudea.png differ diff --git a/src/renderer/public/sprites/rr/Gholdengo.png b/src/renderer/public/sprites/rr/Gholdengo.png new file mode 100644 index 00000000..49189faf Binary files /dev/null and b/src/renderer/public/sprites/rr/Gholdengo.png differ diff --git a/src/renderer/public/sprites/rr/Gible.png b/src/renderer/public/sprites/rr/Gible.png new file mode 100644 index 00000000..32ea44de Binary files /dev/null and b/src/renderer/public/sprites/rr/Gible.png differ diff --git a/src/renderer/public/sprites/rr/Gigalith.png b/src/renderer/public/sprites/rr/Gigalith.png new file mode 100644 index 00000000..818cc541 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gigalith.png differ diff --git a/src/renderer/public/sprites/rr/Gimmighoulchest.png b/src/renderer/public/sprites/rr/Gimmighoulchest.png new file mode 100644 index 00000000..c902bf54 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gimmighoulchest.png differ diff --git a/src/renderer/public/sprites/rr/Gimmighoulroam.png b/src/renderer/public/sprites/rr/Gimmighoulroam.png new file mode 100644 index 00000000..f5f446f3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gimmighoulroam.png differ diff --git a/src/renderer/public/sprites/rr/Girafarig.png b/src/renderer/public/sprites/rr/Girafarig.png new file mode 100644 index 00000000..8e29bc81 Binary files /dev/null and b/src/renderer/public/sprites/rr/Girafarig.png differ diff --git a/src/renderer/public/sprites/rr/Giratina.png b/src/renderer/public/sprites/rr/Giratina.png new file mode 100644 index 00000000..9619187a Binary files /dev/null and b/src/renderer/public/sprites/rr/Giratina.png differ diff --git a/src/renderer/public/sprites/rr/Giratinaorigin.png b/src/renderer/public/sprites/rr/Giratinaorigin.png new file mode 100644 index 00000000..45fe1de2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Giratinaorigin.png differ diff --git a/src/renderer/public/sprites/rr/Glaceon.png b/src/renderer/public/sprites/rr/Glaceon.png new file mode 100644 index 00000000..077d120d Binary files /dev/null and b/src/renderer/public/sprites/rr/Glaceon.png differ diff --git a/src/renderer/public/sprites/rr/Glalie.png b/src/renderer/public/sprites/rr/Glalie.png new file mode 100644 index 00000000..a1f6e3a0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Glalie.png differ diff --git a/src/renderer/public/sprites/rr/Glaliemega.png b/src/renderer/public/sprites/rr/Glaliemega.png new file mode 100644 index 00000000..11637c97 Binary files /dev/null and b/src/renderer/public/sprites/rr/Glaliemega.png differ diff --git a/src/renderer/public/sprites/rr/Glameow.png b/src/renderer/public/sprites/rr/Glameow.png new file mode 100644 index 00000000..cf33a2e7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Glameow.png differ diff --git a/src/renderer/public/sprites/rr/Glastrier.png b/src/renderer/public/sprites/rr/Glastrier.png new file mode 100644 index 00000000..beb0decd Binary files /dev/null and b/src/renderer/public/sprites/rr/Glastrier.png differ diff --git a/src/renderer/public/sprites/rr/Gligar.png b/src/renderer/public/sprites/rr/Gligar.png new file mode 100644 index 00000000..b7bd1668 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gligar.png differ diff --git a/src/renderer/public/sprites/rr/Glimmet.png b/src/renderer/public/sprites/rr/Glimmet.png new file mode 100644 index 00000000..97ad33e3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Glimmet.png differ diff --git a/src/renderer/public/sprites/rr/Glimmora.png b/src/renderer/public/sprites/rr/Glimmora.png new file mode 100644 index 00000000..92e768be Binary files /dev/null and b/src/renderer/public/sprites/rr/Glimmora.png differ diff --git a/src/renderer/public/sprites/rr/Gliscor.png b/src/renderer/public/sprites/rr/Gliscor.png new file mode 100644 index 00000000..3f41b358 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gliscor.png differ diff --git a/src/renderer/public/sprites/rr/Gloom.png b/src/renderer/public/sprites/rr/Gloom.png new file mode 100644 index 00000000..b59878c6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gloom.png differ diff --git a/src/renderer/public/sprites/rr/Gogoat.png b/src/renderer/public/sprites/rr/Gogoat.png new file mode 100644 index 00000000..bbe42986 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gogoat.png differ diff --git a/src/renderer/public/sprites/rr/Golbat.png b/src/renderer/public/sprites/rr/Golbat.png new file mode 100644 index 00000000..96eb8e1e Binary files /dev/null and b/src/renderer/public/sprites/rr/Golbat.png differ diff --git a/src/renderer/public/sprites/rr/Goldeen.png b/src/renderer/public/sprites/rr/Goldeen.png new file mode 100644 index 00000000..b830dbf3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Goldeen.png differ diff --git a/src/renderer/public/sprites/rr/Golduck.png b/src/renderer/public/sprites/rr/Golduck.png new file mode 100644 index 00000000..25eff084 Binary files /dev/null and b/src/renderer/public/sprites/rr/Golduck.png differ diff --git a/src/renderer/public/sprites/rr/Golem.png b/src/renderer/public/sprites/rr/Golem.png new file mode 100644 index 00000000..438fc94c Binary files /dev/null and b/src/renderer/public/sprites/rr/Golem.png differ diff --git a/src/renderer/public/sprites/rr/Golema.png b/src/renderer/public/sprites/rr/Golema.png new file mode 100644 index 00000000..44d3747b Binary files /dev/null and b/src/renderer/public/sprites/rr/Golema.png differ diff --git a/src/renderer/public/sprites/rr/Golett.png b/src/renderer/public/sprites/rr/Golett.png new file mode 100644 index 00000000..defc229c Binary files /dev/null and b/src/renderer/public/sprites/rr/Golett.png differ diff --git a/src/renderer/public/sprites/rr/Golisopod.png b/src/renderer/public/sprites/rr/Golisopod.png new file mode 100644 index 00000000..8d4d1f3c Binary files /dev/null and b/src/renderer/public/sprites/rr/Golisopod.png differ diff --git a/src/renderer/public/sprites/rr/Golurk.png b/src/renderer/public/sprites/rr/Golurk.png new file mode 100644 index 00000000..bb109667 Binary files /dev/null and b/src/renderer/public/sprites/rr/Golurk.png differ diff --git a/src/renderer/public/sprites/rr/Goodra.png b/src/renderer/public/sprites/rr/Goodra.png new file mode 100644 index 00000000..595580c9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Goodra.png differ diff --git a/src/renderer/public/sprites/rr/Goodrah.png b/src/renderer/public/sprites/rr/Goodrah.png new file mode 100644 index 00000000..3aaa1c18 Binary files /dev/null and b/src/renderer/public/sprites/rr/Goodrah.png differ diff --git a/src/renderer/public/sprites/rr/Goomy.png b/src/renderer/public/sprites/rr/Goomy.png new file mode 100644 index 00000000..509e0fbc Binary files /dev/null and b/src/renderer/public/sprites/rr/Goomy.png differ diff --git a/src/renderer/public/sprites/rr/Gorebyss.png b/src/renderer/public/sprites/rr/Gorebyss.png new file mode 100644 index 00000000..73e158a1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gorebyss.png differ diff --git a/src/renderer/public/sprites/rr/Gossifleur.png b/src/renderer/public/sprites/rr/Gossifleur.png new file mode 100644 index 00000000..00b4416c Binary files /dev/null and b/src/renderer/public/sprites/rr/Gossifleur.png differ diff --git a/src/renderer/public/sprites/rr/Gothita.png b/src/renderer/public/sprites/rr/Gothita.png new file mode 100644 index 00000000..b42d03b6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gothita.png differ diff --git a/src/renderer/public/sprites/rr/Gothitelle.png b/src/renderer/public/sprites/rr/Gothitelle.png new file mode 100644 index 00000000..1f1eabee Binary files /dev/null and b/src/renderer/public/sprites/rr/Gothitelle.png differ diff --git a/src/renderer/public/sprites/rr/Gothorita.png b/src/renderer/public/sprites/rr/Gothorita.png new file mode 100644 index 00000000..77b00bf4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gothorita.png differ diff --git a/src/renderer/public/sprites/rr/Gourgeist.png b/src/renderer/public/sprites/rr/Gourgeist.png new file mode 100644 index 00000000..495433e3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gourgeist.png differ diff --git a/src/renderer/public/sprites/rr/Gourgeistl.png b/src/renderer/public/sprites/rr/Gourgeistl.png new file mode 100644 index 00000000..a718c9be Binary files /dev/null and b/src/renderer/public/sprites/rr/Gourgeistl.png differ diff --git a/src/renderer/public/sprites/rr/Gourgeistm.png b/src/renderer/public/sprites/rr/Gourgeistm.png new file mode 100644 index 00000000..f5270f9f Binary files /dev/null and b/src/renderer/public/sprites/rr/Gourgeistm.png differ diff --git a/src/renderer/public/sprites/rr/Gourgeistxl.png b/src/renderer/public/sprites/rr/Gourgeistxl.png new file mode 100644 index 00000000..56226c0f Binary files /dev/null and b/src/renderer/public/sprites/rr/Gourgeistxl.png differ diff --git a/src/renderer/public/sprites/rr/Grafaia.png b/src/renderer/public/sprites/rr/Grafaia.png new file mode 100644 index 00000000..abeed3ce Binary files /dev/null and b/src/renderer/public/sprites/rr/Grafaia.png differ diff --git a/src/renderer/public/sprites/rr/Granbull.png b/src/renderer/public/sprites/rr/Granbull.png new file mode 100644 index 00000000..448af1b4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Granbull.png differ diff --git a/src/renderer/public/sprites/rr/Grapploct.png b/src/renderer/public/sprites/rr/Grapploct.png new file mode 100644 index 00000000..da042842 Binary files /dev/null and b/src/renderer/public/sprites/rr/Grapploct.png differ diff --git a/src/renderer/public/sprites/rr/Graveler.png b/src/renderer/public/sprites/rr/Graveler.png new file mode 100644 index 00000000..a7de05ad Binary files /dev/null and b/src/renderer/public/sprites/rr/Graveler.png differ diff --git a/src/renderer/public/sprites/rr/Gravelera.png b/src/renderer/public/sprites/rr/Gravelera.png new file mode 100644 index 00000000..58faaee0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gravelera.png differ diff --git a/src/renderer/public/sprites/rr/Greattusk.png b/src/renderer/public/sprites/rr/Greattusk.png new file mode 100644 index 00000000..71ed751a Binary files /dev/null and b/src/renderer/public/sprites/rr/Greattusk.png differ diff --git a/src/renderer/public/sprites/rr/Greavard.png b/src/renderer/public/sprites/rr/Greavard.png new file mode 100644 index 00000000..db0de387 Binary files /dev/null and b/src/renderer/public/sprites/rr/Greavard.png differ diff --git a/src/renderer/public/sprites/rr/Greedent.png b/src/renderer/public/sprites/rr/Greedent.png new file mode 100644 index 00000000..e4762b16 Binary files /dev/null and b/src/renderer/public/sprites/rr/Greedent.png differ diff --git a/src/renderer/public/sprites/rr/Greninja.png b/src/renderer/public/sprites/rr/Greninja.png new file mode 100644 index 00000000..96bf2602 Binary files /dev/null and b/src/renderer/public/sprites/rr/Greninja.png differ diff --git a/src/renderer/public/sprites/rr/Grimer.png b/src/renderer/public/sprites/rr/Grimer.png new file mode 100644 index 00000000..6d351cbc Binary files /dev/null and b/src/renderer/public/sprites/rr/Grimer.png differ diff --git a/src/renderer/public/sprites/rr/Grimera.png b/src/renderer/public/sprites/rr/Grimera.png new file mode 100644 index 00000000..b2a049c6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Grimera.png differ diff --git a/src/renderer/public/sprites/rr/Grimmsnarl.png b/src/renderer/public/sprites/rr/Grimmsnarl.png new file mode 100644 index 00000000..2de406ea Binary files /dev/null and b/src/renderer/public/sprites/rr/Grimmsnarl.png differ diff --git a/src/renderer/public/sprites/rr/Grimmsnarlgiga.png b/src/renderer/public/sprites/rr/Grimmsnarlgiga.png new file mode 100644 index 00000000..fcd11400 Binary files /dev/null and b/src/renderer/public/sprites/rr/Grimmsnarlgiga.png differ diff --git a/src/renderer/public/sprites/rr/Grookey.png b/src/renderer/public/sprites/rr/Grookey.png new file mode 100644 index 00000000..c3a18eb6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Grookey.png differ diff --git a/src/renderer/public/sprites/rr/Grotle.png b/src/renderer/public/sprites/rr/Grotle.png new file mode 100644 index 00000000..9e81dec4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Grotle.png differ diff --git a/src/renderer/public/sprites/rr/Groudon.png b/src/renderer/public/sprites/rr/Groudon.png new file mode 100644 index 00000000..49f40ef3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Groudon.png differ diff --git a/src/renderer/public/sprites/rr/Groudonprimal.png b/src/renderer/public/sprites/rr/Groudonprimal.png new file mode 100644 index 00000000..edd11c1d Binary files /dev/null and b/src/renderer/public/sprites/rr/Groudonprimal.png differ diff --git a/src/renderer/public/sprites/rr/Grovyle.png b/src/renderer/public/sprites/rr/Grovyle.png new file mode 100644 index 00000000..28c5a95b Binary files /dev/null and b/src/renderer/public/sprites/rr/Grovyle.png differ diff --git a/src/renderer/public/sprites/rr/Growlithe.png b/src/renderer/public/sprites/rr/Growlithe.png new file mode 100644 index 00000000..60332563 Binary files /dev/null and b/src/renderer/public/sprites/rr/Growlithe.png differ diff --git a/src/renderer/public/sprites/rr/Growlitheh.png b/src/renderer/public/sprites/rr/Growlitheh.png new file mode 100644 index 00000000..d483243b Binary files /dev/null and b/src/renderer/public/sprites/rr/Growlitheh.png differ diff --git a/src/renderer/public/sprites/rr/Grubbin.png b/src/renderer/public/sprites/rr/Grubbin.png new file mode 100644 index 00000000..2e911ca1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Grubbin.png differ diff --git a/src/renderer/public/sprites/rr/Grumpig.png b/src/renderer/public/sprites/rr/Grumpig.png new file mode 100644 index 00000000..10b1098f Binary files /dev/null and b/src/renderer/public/sprites/rr/Grumpig.png differ diff --git a/src/renderer/public/sprites/rr/Gulpin.png b/src/renderer/public/sprites/rr/Gulpin.png new file mode 100644 index 00000000..f023961f Binary files /dev/null and b/src/renderer/public/sprites/rr/Gulpin.png differ diff --git a/src/renderer/public/sprites/rr/Gumshoos.png b/src/renderer/public/sprites/rr/Gumshoos.png new file mode 100644 index 00000000..919ef865 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gumshoos.png differ diff --git a/src/renderer/public/sprites/rr/Gurdurr.png b/src/renderer/public/sprites/rr/Gurdurr.png new file mode 100644 index 00000000..10b9d19a Binary files /dev/null and b/src/renderer/public/sprites/rr/Gurdurr.png differ diff --git a/src/renderer/public/sprites/rr/Guzzlord.png b/src/renderer/public/sprites/rr/Guzzlord.png new file mode 100644 index 00000000..89023e98 Binary files /dev/null and b/src/renderer/public/sprites/rr/Guzzlord.png differ diff --git a/src/renderer/public/sprites/rr/Gyarados.png b/src/renderer/public/sprites/rr/Gyarados.png new file mode 100644 index 00000000..f8cfbfaa Binary files /dev/null and b/src/renderer/public/sprites/rr/Gyarados.png differ diff --git a/src/renderer/public/sprites/rr/Gyaradosmega.png b/src/renderer/public/sprites/rr/Gyaradosmega.png new file mode 100644 index 00000000..6ddf3891 Binary files /dev/null and b/src/renderer/public/sprites/rr/Gyaradosmega.png differ diff --git a/src/renderer/public/sprites/rr/Hakamoo.png b/src/renderer/public/sprites/rr/Hakamoo.png new file mode 100644 index 00000000..0a9a7383 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hakamoo.png differ diff --git a/src/renderer/public/sprites/rr/Happiny.png b/src/renderer/public/sprites/rr/Happiny.png new file mode 100644 index 00000000..88a473c3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Happiny.png differ diff --git a/src/renderer/public/sprites/rr/Hariyama.png b/src/renderer/public/sprites/rr/Hariyama.png new file mode 100644 index 00000000..c2565a5c Binary files /dev/null and b/src/renderer/public/sprites/rr/Hariyama.png differ diff --git a/src/renderer/public/sprites/rr/Hatenna.png b/src/renderer/public/sprites/rr/Hatenna.png new file mode 100644 index 00000000..ec11eee0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hatenna.png differ diff --git a/src/renderer/public/sprites/rr/Hatterene.png b/src/renderer/public/sprites/rr/Hatterene.png new file mode 100644 index 00000000..5931b631 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hatterene.png differ diff --git a/src/renderer/public/sprites/rr/Hatterenegiga.png b/src/renderer/public/sprites/rr/Hatterenegiga.png new file mode 100644 index 00000000..d1858c37 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hatterenegiga.png differ diff --git a/src/renderer/public/sprites/rr/Hattrem.png b/src/renderer/public/sprites/rr/Hattrem.png new file mode 100644 index 00000000..6cb1d2e1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hattrem.png differ diff --git a/src/renderer/public/sprites/rr/Haunter.png b/src/renderer/public/sprites/rr/Haunter.png new file mode 100644 index 00000000..a15b366a Binary files /dev/null and b/src/renderer/public/sprites/rr/Haunter.png differ diff --git a/src/renderer/public/sprites/rr/Hawlucha.png b/src/renderer/public/sprites/rr/Hawlucha.png new file mode 100644 index 00000000..b00ff085 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hawlucha.png differ diff --git a/src/renderer/public/sprites/rr/Haxorus.png b/src/renderer/public/sprites/rr/Haxorus.png new file mode 100644 index 00000000..44b98400 Binary files /dev/null and b/src/renderer/public/sprites/rr/Haxorus.png differ diff --git a/src/renderer/public/sprites/rr/Heatmor.png b/src/renderer/public/sprites/rr/Heatmor.png new file mode 100644 index 00000000..6d821616 Binary files /dev/null and b/src/renderer/public/sprites/rr/Heatmor.png differ diff --git a/src/renderer/public/sprites/rr/Heatran.png b/src/renderer/public/sprites/rr/Heatran.png new file mode 100644 index 00000000..80bd2eb2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Heatran.png differ diff --git a/src/renderer/public/sprites/rr/Heliolisk.png b/src/renderer/public/sprites/rr/Heliolisk.png new file mode 100644 index 00000000..39027d9f Binary files /dev/null and b/src/renderer/public/sprites/rr/Heliolisk.png differ diff --git a/src/renderer/public/sprites/rr/Helioptile.png b/src/renderer/public/sprites/rr/Helioptile.png new file mode 100644 index 00000000..48ff83bf Binary files /dev/null and b/src/renderer/public/sprites/rr/Helioptile.png differ diff --git a/src/renderer/public/sprites/rr/Heracross.png b/src/renderer/public/sprites/rr/Heracross.png new file mode 100644 index 00000000..56318de9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Heracross.png differ diff --git a/src/renderer/public/sprites/rr/Heracrossmega.png b/src/renderer/public/sprites/rr/Heracrossmega.png new file mode 100644 index 00000000..44645261 Binary files /dev/null and b/src/renderer/public/sprites/rr/Heracrossmega.png differ diff --git a/src/renderer/public/sprites/rr/Herdier.png b/src/renderer/public/sprites/rr/Herdier.png new file mode 100644 index 00000000..00861a05 Binary files /dev/null and b/src/renderer/public/sprites/rr/Herdier.png differ diff --git a/src/renderer/public/sprites/rr/Hippopotas.png b/src/renderer/public/sprites/rr/Hippopotas.png new file mode 100644 index 00000000..6c920f11 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hippopotas.png differ diff --git a/src/renderer/public/sprites/rr/Hippopotasf.png b/src/renderer/public/sprites/rr/Hippopotasf.png new file mode 100644 index 00000000..5a714c05 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hippopotasf.png differ diff --git a/src/renderer/public/sprites/rr/Hippowdon.png b/src/renderer/public/sprites/rr/Hippowdon.png new file mode 100644 index 00000000..f19ed8f3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hippowdon.png differ diff --git a/src/renderer/public/sprites/rr/Hippowdonf.png b/src/renderer/public/sprites/rr/Hippowdonf.png new file mode 100644 index 00000000..84adefe0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hippowdonf.png differ diff --git a/src/renderer/public/sprites/rr/Hitmonchan.png b/src/renderer/public/sprites/rr/Hitmonchan.png new file mode 100644 index 00000000..132638d0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hitmonchan.png differ diff --git a/src/renderer/public/sprites/rr/Hitmonlee.png b/src/renderer/public/sprites/rr/Hitmonlee.png new file mode 100644 index 00000000..6deef265 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hitmonlee.png differ diff --git a/src/renderer/public/sprites/rr/Hitmontop.png b/src/renderer/public/sprites/rr/Hitmontop.png new file mode 100644 index 00000000..e0c86629 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hitmontop.png differ diff --git a/src/renderer/public/sprites/rr/Honchkrow.png b/src/renderer/public/sprites/rr/Honchkrow.png new file mode 100644 index 00000000..1394ca9c Binary files /dev/null and b/src/renderer/public/sprites/rr/Honchkrow.png differ diff --git a/src/renderer/public/sprites/rr/Honedge.png b/src/renderer/public/sprites/rr/Honedge.png new file mode 100644 index 00000000..9431d9a1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Honedge.png differ diff --git a/src/renderer/public/sprites/rr/Hooh.png b/src/renderer/public/sprites/rr/Hooh.png new file mode 100644 index 00000000..905d9f7c Binary files /dev/null and b/src/renderer/public/sprites/rr/Hooh.png differ diff --git a/src/renderer/public/sprites/rr/Hoopa.png b/src/renderer/public/sprites/rr/Hoopa.png new file mode 100644 index 00000000..0900e0ed Binary files /dev/null and b/src/renderer/public/sprites/rr/Hoopa.png differ diff --git a/src/renderer/public/sprites/rr/Hoopaunbound.png b/src/renderer/public/sprites/rr/Hoopaunbound.png new file mode 100644 index 00000000..2236b5a3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hoopaunbound.png differ diff --git a/src/renderer/public/sprites/rr/Hoothoot.png b/src/renderer/public/sprites/rr/Hoothoot.png new file mode 100644 index 00000000..7970b49e Binary files /dev/null and b/src/renderer/public/sprites/rr/Hoothoot.png differ diff --git a/src/renderer/public/sprites/rr/Hoppip.png b/src/renderer/public/sprites/rr/Hoppip.png new file mode 100644 index 00000000..6fcbf854 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hoppip.png differ diff --git a/src/renderer/public/sprites/rr/Horsea.png b/src/renderer/public/sprites/rr/Horsea.png new file mode 100644 index 00000000..bddbe149 Binary files /dev/null and b/src/renderer/public/sprites/rr/Horsea.png differ diff --git a/src/renderer/public/sprites/rr/Houndoom.png b/src/renderer/public/sprites/rr/Houndoom.png new file mode 100644 index 00000000..26a1ba7d Binary files /dev/null and b/src/renderer/public/sprites/rr/Houndoom.png differ diff --git a/src/renderer/public/sprites/rr/Houndoommega.png b/src/renderer/public/sprites/rr/Houndoommega.png new file mode 100644 index 00000000..96776e0a Binary files /dev/null and b/src/renderer/public/sprites/rr/Houndoommega.png differ diff --git a/src/renderer/public/sprites/rr/Houndour.png b/src/renderer/public/sprites/rr/Houndour.png new file mode 100644 index 00000000..19586c55 Binary files /dev/null and b/src/renderer/public/sprites/rr/Houndour.png differ diff --git a/src/renderer/public/sprites/rr/Houndstone.png b/src/renderer/public/sprites/rr/Houndstone.png new file mode 100644 index 00000000..e1d9d79a Binary files /dev/null and b/src/renderer/public/sprites/rr/Houndstone.png differ diff --git a/src/renderer/public/sprites/rr/Huntail.png b/src/renderer/public/sprites/rr/Huntail.png new file mode 100644 index 00000000..e6339324 Binary files /dev/null and b/src/renderer/public/sprites/rr/Huntail.png differ diff --git a/src/renderer/public/sprites/rr/Hydreigon.png b/src/renderer/public/sprites/rr/Hydreigon.png new file mode 100644 index 00000000..d4af41b0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hydreigon.png differ diff --git a/src/renderer/public/sprites/rr/Hypno.png b/src/renderer/public/sprites/rr/Hypno.png new file mode 100644 index 00000000..002678c0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Hypno.png differ diff --git a/src/renderer/public/sprites/rr/Igglybuff.png b/src/renderer/public/sprites/rr/Igglybuff.png new file mode 100644 index 00000000..6df477e0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Igglybuff.png differ diff --git a/src/renderer/public/sprites/rr/Illumise.png b/src/renderer/public/sprites/rr/Illumise.png new file mode 100644 index 00000000..400e1ac7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Illumise.png differ diff --git a/src/renderer/public/sprites/rr/Impidimp.png b/src/renderer/public/sprites/rr/Impidimp.png new file mode 100644 index 00000000..d3485e7e Binary files /dev/null and b/src/renderer/public/sprites/rr/Impidimp.png differ diff --git a/src/renderer/public/sprites/rr/Incineroar.png b/src/renderer/public/sprites/rr/Incineroar.png new file mode 100644 index 00000000..290b7d59 Binary files /dev/null and b/src/renderer/public/sprites/rr/Incineroar.png differ diff --git a/src/renderer/public/sprites/rr/Indeedee.png b/src/renderer/public/sprites/rr/Indeedee.png new file mode 100644 index 00000000..5a8fbe39 Binary files /dev/null and b/src/renderer/public/sprites/rr/Indeedee.png differ diff --git a/src/renderer/public/sprites/rr/Indeedeefemale.png b/src/renderer/public/sprites/rr/Indeedeefemale.png new file mode 100644 index 00000000..eacc19bf Binary files /dev/null and b/src/renderer/public/sprites/rr/Indeedeefemale.png differ diff --git a/src/renderer/public/sprites/rr/Infernape.png b/src/renderer/public/sprites/rr/Infernape.png new file mode 100644 index 00000000..215237ca Binary files /dev/null and b/src/renderer/public/sprites/rr/Infernape.png differ diff --git a/src/renderer/public/sprites/rr/Inkay.png b/src/renderer/public/sprites/rr/Inkay.png new file mode 100644 index 00000000..ce5f2eb5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Inkay.png differ diff --git a/src/renderer/public/sprites/rr/Inteleon.png b/src/renderer/public/sprites/rr/Inteleon.png new file mode 100644 index 00000000..ddf74ddf Binary files /dev/null and b/src/renderer/public/sprites/rr/Inteleon.png differ diff --git a/src/renderer/public/sprites/rr/Inteleongiga.png b/src/renderer/public/sprites/rr/Inteleongiga.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Inteleongiga.png differ diff --git a/src/renderer/public/sprites/rr/Ironbundle.png b/src/renderer/public/sprites/rr/Ironbundle.png new file mode 100644 index 00000000..dca10c67 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ironbundle.png differ diff --git a/src/renderer/public/sprites/rr/Ironhands.png b/src/renderer/public/sprites/rr/Ironhands.png new file mode 100644 index 00000000..13c85d99 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ironhands.png differ diff --git a/src/renderer/public/sprites/rr/Ironjugulis.png b/src/renderer/public/sprites/rr/Ironjugulis.png new file mode 100644 index 00000000..ce1eff22 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ironjugulis.png differ diff --git a/src/renderer/public/sprites/rr/Ironleaves.png b/src/renderer/public/sprites/rr/Ironleaves.png new file mode 100644 index 00000000..c86ee6ca Binary files /dev/null and b/src/renderer/public/sprites/rr/Ironleaves.png differ diff --git a/src/renderer/public/sprites/rr/Ironmoth.png b/src/renderer/public/sprites/rr/Ironmoth.png new file mode 100644 index 00000000..7cedea7a Binary files /dev/null and b/src/renderer/public/sprites/rr/Ironmoth.png differ diff --git a/src/renderer/public/sprites/rr/Ironthorns.png b/src/renderer/public/sprites/rr/Ironthorns.png new file mode 100644 index 00000000..e2b3be04 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ironthorns.png differ diff --git a/src/renderer/public/sprites/rr/Irontreads.png b/src/renderer/public/sprites/rr/Irontreads.png new file mode 100644 index 00000000..c1c965d7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Irontreads.png differ diff --git a/src/renderer/public/sprites/rr/Ironvaliant.png b/src/renderer/public/sprites/rr/Ironvaliant.png new file mode 100644 index 00000000..f24361dc Binary files /dev/null and b/src/renderer/public/sprites/rr/Ironvaliant.png differ diff --git a/src/renderer/public/sprites/rr/Ivysaur.png b/src/renderer/public/sprites/rr/Ivysaur.png new file mode 100644 index 00000000..e03fe5d6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ivysaur.png differ diff --git a/src/renderer/public/sprites/rr/Jangmoo.png b/src/renderer/public/sprites/rr/Jangmoo.png new file mode 100644 index 00000000..4e086b27 Binary files /dev/null and b/src/renderer/public/sprites/rr/Jangmoo.png differ diff --git a/src/renderer/public/sprites/rr/Jellicent.png b/src/renderer/public/sprites/rr/Jellicent.png new file mode 100644 index 00000000..8eca2032 Binary files /dev/null and b/src/renderer/public/sprites/rr/Jellicent.png differ diff --git a/src/renderer/public/sprites/rr/Jellicentf.png b/src/renderer/public/sprites/rr/Jellicentf.png new file mode 100644 index 00000000..1b56ea18 Binary files /dev/null and b/src/renderer/public/sprites/rr/Jellicentf.png differ diff --git a/src/renderer/public/sprites/rr/Jigglypuff.png b/src/renderer/public/sprites/rr/Jigglypuff.png new file mode 100644 index 00000000..d4100430 Binary files /dev/null and b/src/renderer/public/sprites/rr/Jigglypuff.png differ diff --git a/src/renderer/public/sprites/rr/Jirachi.png b/src/renderer/public/sprites/rr/Jirachi.png new file mode 100644 index 00000000..663d88b8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Jirachi.png differ diff --git a/src/renderer/public/sprites/rr/Jolteon.png b/src/renderer/public/sprites/rr/Jolteon.png new file mode 100644 index 00000000..7a8c0857 Binary files /dev/null and b/src/renderer/public/sprites/rr/Jolteon.png differ diff --git a/src/renderer/public/sprites/rr/Joltik.png b/src/renderer/public/sprites/rr/Joltik.png new file mode 100644 index 00000000..b9d717fa Binary files /dev/null and b/src/renderer/public/sprites/rr/Joltik.png differ diff --git a/src/renderer/public/sprites/rr/Jumpluff.png b/src/renderer/public/sprites/rr/Jumpluff.png new file mode 100644 index 00000000..e920e6fb Binary files /dev/null and b/src/renderer/public/sprites/rr/Jumpluff.png differ diff --git a/src/renderer/public/sprites/rr/Jynx.png b/src/renderer/public/sprites/rr/Jynx.png new file mode 100644 index 00000000..aa0fed23 Binary files /dev/null and b/src/renderer/public/sprites/rr/Jynx.png differ diff --git a/src/renderer/public/sprites/rr/Kabuto.png b/src/renderer/public/sprites/rr/Kabuto.png new file mode 100644 index 00000000..f95e50c2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Kabuto.png differ diff --git a/src/renderer/public/sprites/rr/Kabutops.png b/src/renderer/public/sprites/rr/Kabutops.png new file mode 100644 index 00000000..aa53ecdf Binary files /dev/null and b/src/renderer/public/sprites/rr/Kabutops.png differ diff --git a/src/renderer/public/sprites/rr/Kadabra.png b/src/renderer/public/sprites/rr/Kadabra.png new file mode 100644 index 00000000..af2a47ab Binary files /dev/null and b/src/renderer/public/sprites/rr/Kadabra.png differ diff --git a/src/renderer/public/sprites/rr/Kakuna.png b/src/renderer/public/sprites/rr/Kakuna.png new file mode 100644 index 00000000..c3361f0d Binary files /dev/null and b/src/renderer/public/sprites/rr/Kakuna.png differ diff --git a/src/renderer/public/sprites/rr/Kangaskhan.png b/src/renderer/public/sprites/rr/Kangaskhan.png new file mode 100644 index 00000000..f7c00d38 Binary files /dev/null and b/src/renderer/public/sprites/rr/Kangaskhan.png differ diff --git a/src/renderer/public/sprites/rr/Kangaskhanmega.png b/src/renderer/public/sprites/rr/Kangaskhanmega.png new file mode 100644 index 00000000..aab93ba0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Kangaskhanmega.png differ diff --git a/src/renderer/public/sprites/rr/Karrablast.png b/src/renderer/public/sprites/rr/Karrablast.png new file mode 100644 index 00000000..5d95586f Binary files /dev/null and b/src/renderer/public/sprites/rr/Karrablast.png differ diff --git a/src/renderer/public/sprites/rr/Kartana.png b/src/renderer/public/sprites/rr/Kartana.png new file mode 100644 index 00000000..41e18601 Binary files /dev/null and b/src/renderer/public/sprites/rr/Kartana.png differ diff --git a/src/renderer/public/sprites/rr/Kecleon.png b/src/renderer/public/sprites/rr/Kecleon.png new file mode 100644 index 00000000..5a02332c Binary files /dev/null and b/src/renderer/public/sprites/rr/Kecleon.png differ diff --git a/src/renderer/public/sprites/rr/Keldeo.png b/src/renderer/public/sprites/rr/Keldeo.png new file mode 100644 index 00000000..65719a37 Binary files /dev/null and b/src/renderer/public/sprites/rr/Keldeo.png differ diff --git a/src/renderer/public/sprites/rr/Keldeoresolute.png b/src/renderer/public/sprites/rr/Keldeoresolute.png new file mode 100644 index 00000000..1661d99e Binary files /dev/null and b/src/renderer/public/sprites/rr/Keldeoresolute.png differ diff --git a/src/renderer/public/sprites/rr/Kilowattrel.png b/src/renderer/public/sprites/rr/Kilowattrel.png new file mode 100644 index 00000000..0b5a7c3b Binary files /dev/null and b/src/renderer/public/sprites/rr/Kilowattrel.png differ diff --git a/src/renderer/public/sprites/rr/Kingambit.png b/src/renderer/public/sprites/rr/Kingambit.png new file mode 100644 index 00000000..557dcea6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Kingambit.png differ diff --git a/src/renderer/public/sprites/rr/Kingdra.png b/src/renderer/public/sprites/rr/Kingdra.png new file mode 100644 index 00000000..190fbab6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Kingdra.png differ diff --git a/src/renderer/public/sprites/rr/Kingler.png b/src/renderer/public/sprites/rr/Kingler.png new file mode 100644 index 00000000..75fee201 Binary files /dev/null and b/src/renderer/public/sprites/rr/Kingler.png differ diff --git a/src/renderer/public/sprites/rr/Kinglergiga.png b/src/renderer/public/sprites/rr/Kinglergiga.png new file mode 100644 index 00000000..101b52e8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Kinglergiga.png differ diff --git a/src/renderer/public/sprites/rr/Kirlia.png b/src/renderer/public/sprites/rr/Kirlia.png new file mode 100644 index 00000000..51dfaf56 Binary files /dev/null and b/src/renderer/public/sprites/rr/Kirlia.png differ diff --git a/src/renderer/public/sprites/rr/Klang.png b/src/renderer/public/sprites/rr/Klang.png new file mode 100644 index 00000000..192a7b47 Binary files /dev/null and b/src/renderer/public/sprites/rr/Klang.png differ diff --git a/src/renderer/public/sprites/rr/Klawf.png b/src/renderer/public/sprites/rr/Klawf.png new file mode 100644 index 00000000..3f15ba9a Binary files /dev/null and b/src/renderer/public/sprites/rr/Klawf.png differ diff --git a/src/renderer/public/sprites/rr/Kleavor.png b/src/renderer/public/sprites/rr/Kleavor.png new file mode 100644 index 00000000..636f975b Binary files /dev/null and b/src/renderer/public/sprites/rr/Kleavor.png differ diff --git a/src/renderer/public/sprites/rr/Klefki.png b/src/renderer/public/sprites/rr/Klefki.png new file mode 100644 index 00000000..07667cd1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Klefki.png differ diff --git a/src/renderer/public/sprites/rr/Klink.png b/src/renderer/public/sprites/rr/Klink.png new file mode 100644 index 00000000..b5add5d1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Klink.png differ diff --git a/src/renderer/public/sprites/rr/Klinklang.png b/src/renderer/public/sprites/rr/Klinklang.png new file mode 100644 index 00000000..45a1e20a Binary files /dev/null and b/src/renderer/public/sprites/rr/Klinklang.png differ diff --git a/src/renderer/public/sprites/rr/Koffing.png b/src/renderer/public/sprites/rr/Koffing.png new file mode 100644 index 00000000..acec08ed Binary files /dev/null and b/src/renderer/public/sprites/rr/Koffing.png differ diff --git a/src/renderer/public/sprites/rr/Komala.png b/src/renderer/public/sprites/rr/Komala.png new file mode 100644 index 00000000..b7969cd5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Komala.png differ diff --git a/src/renderer/public/sprites/rr/Kommoo.png b/src/renderer/public/sprites/rr/Kommoo.png new file mode 100644 index 00000000..b0ec3e7f Binary files /dev/null and b/src/renderer/public/sprites/rr/Kommoo.png differ diff --git a/src/renderer/public/sprites/rr/Koraidon.png b/src/renderer/public/sprites/rr/Koraidon.png new file mode 100644 index 00000000..63aa7d8c Binary files /dev/null and b/src/renderer/public/sprites/rr/Koraidon.png differ diff --git a/src/renderer/public/sprites/rr/Krabby.png b/src/renderer/public/sprites/rr/Krabby.png new file mode 100644 index 00000000..9efc71a4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Krabby.png differ diff --git a/src/renderer/public/sprites/rr/Kricketot.png b/src/renderer/public/sprites/rr/Kricketot.png new file mode 100644 index 00000000..2055720c Binary files /dev/null and b/src/renderer/public/sprites/rr/Kricketot.png differ diff --git a/src/renderer/public/sprites/rr/Kricketune.png b/src/renderer/public/sprites/rr/Kricketune.png new file mode 100644 index 00000000..5e91591f Binary files /dev/null and b/src/renderer/public/sprites/rr/Kricketune.png differ diff --git a/src/renderer/public/sprites/rr/Krokorok.png b/src/renderer/public/sprites/rr/Krokorok.png new file mode 100644 index 00000000..2c5e2597 Binary files /dev/null and b/src/renderer/public/sprites/rr/Krokorok.png differ diff --git a/src/renderer/public/sprites/rr/Krookodile.png b/src/renderer/public/sprites/rr/Krookodile.png new file mode 100644 index 00000000..2b439ce0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Krookodile.png differ diff --git a/src/renderer/public/sprites/rr/Kubfu.png b/src/renderer/public/sprites/rr/Kubfu.png new file mode 100644 index 00000000..6caf00bf Binary files /dev/null and b/src/renderer/public/sprites/rr/Kubfu.png differ diff --git a/src/renderer/public/sprites/rr/Kyogre.png b/src/renderer/public/sprites/rr/Kyogre.png new file mode 100644 index 00000000..9e3ffe36 Binary files /dev/null and b/src/renderer/public/sprites/rr/Kyogre.png differ diff --git a/src/renderer/public/sprites/rr/Kyogreprimal.png b/src/renderer/public/sprites/rr/Kyogreprimal.png new file mode 100644 index 00000000..141d42dd Binary files /dev/null and b/src/renderer/public/sprites/rr/Kyogreprimal.png differ diff --git a/src/renderer/public/sprites/rr/Kyurem.png b/src/renderer/public/sprites/rr/Kyurem.png new file mode 100644 index 00000000..7ed37d18 Binary files /dev/null and b/src/renderer/public/sprites/rr/Kyurem.png differ diff --git a/src/renderer/public/sprites/rr/Kyuremblack.png b/src/renderer/public/sprites/rr/Kyuremblack.png new file mode 100644 index 00000000..290f0348 Binary files /dev/null and b/src/renderer/public/sprites/rr/Kyuremblack.png differ diff --git a/src/renderer/public/sprites/rr/Kyuremwhite.png b/src/renderer/public/sprites/rr/Kyuremwhite.png new file mode 100644 index 00000000..13778f25 Binary files /dev/null and b/src/renderer/public/sprites/rr/Kyuremwhite.png differ diff --git a/src/renderer/public/sprites/rr/Lairon.png b/src/renderer/public/sprites/rr/Lairon.png new file mode 100644 index 00000000..0273af5f Binary files /dev/null and b/src/renderer/public/sprites/rr/Lairon.png differ diff --git a/src/renderer/public/sprites/rr/Lampent.png b/src/renderer/public/sprites/rr/Lampent.png new file mode 100644 index 00000000..cce58ca1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lampent.png differ diff --git a/src/renderer/public/sprites/rr/Landorus.png b/src/renderer/public/sprites/rr/Landorus.png new file mode 100644 index 00000000..1917a580 Binary files /dev/null and b/src/renderer/public/sprites/rr/Landorus.png differ diff --git a/src/renderer/public/sprites/rr/Landorustherian.png b/src/renderer/public/sprites/rr/Landorustherian.png new file mode 100644 index 00000000..b659d4cb Binary files /dev/null and b/src/renderer/public/sprites/rr/Landorustherian.png differ diff --git a/src/renderer/public/sprites/rr/Lanturn.png b/src/renderer/public/sprites/rr/Lanturn.png new file mode 100644 index 00000000..32e51702 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lanturn.png differ diff --git a/src/renderer/public/sprites/rr/Lapras.png b/src/renderer/public/sprites/rr/Lapras.png new file mode 100644 index 00000000..360f25e6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lapras.png differ diff --git a/src/renderer/public/sprites/rr/Laprasgiga.png b/src/renderer/public/sprites/rr/Laprasgiga.png new file mode 100644 index 00000000..156b7319 Binary files /dev/null and b/src/renderer/public/sprites/rr/Laprasgiga.png differ diff --git a/src/renderer/public/sprites/rr/Larvesta.png b/src/renderer/public/sprites/rr/Larvesta.png new file mode 100644 index 00000000..7a6ae44d Binary files /dev/null and b/src/renderer/public/sprites/rr/Larvesta.png differ diff --git a/src/renderer/public/sprites/rr/Larvitar.png b/src/renderer/public/sprites/rr/Larvitar.png new file mode 100644 index 00000000..9bb64782 Binary files /dev/null and b/src/renderer/public/sprites/rr/Larvitar.png differ diff --git a/src/renderer/public/sprites/rr/Latias.png b/src/renderer/public/sprites/rr/Latias.png new file mode 100644 index 00000000..26191820 Binary files /dev/null and b/src/renderer/public/sprites/rr/Latias.png differ diff --git a/src/renderer/public/sprites/rr/Latiasmega.png b/src/renderer/public/sprites/rr/Latiasmega.png new file mode 100644 index 00000000..e2e889e2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Latiasmega.png differ diff --git a/src/renderer/public/sprites/rr/Latios.png b/src/renderer/public/sprites/rr/Latios.png new file mode 100644 index 00000000..90699897 Binary files /dev/null and b/src/renderer/public/sprites/rr/Latios.png differ diff --git a/src/renderer/public/sprites/rr/Latiosmega.png b/src/renderer/public/sprites/rr/Latiosmega.png new file mode 100644 index 00000000..747ee025 Binary files /dev/null and b/src/renderer/public/sprites/rr/Latiosmega.png differ diff --git a/src/renderer/public/sprites/rr/Leafeon.png b/src/renderer/public/sprites/rr/Leafeon.png new file mode 100644 index 00000000..78c0e082 Binary files /dev/null and b/src/renderer/public/sprites/rr/Leafeon.png differ diff --git a/src/renderer/public/sprites/rr/Leavanny.png b/src/renderer/public/sprites/rr/Leavanny.png new file mode 100644 index 00000000..e65e537d Binary files /dev/null and b/src/renderer/public/sprites/rr/Leavanny.png differ diff --git a/src/renderer/public/sprites/rr/Lechonk.png b/src/renderer/public/sprites/rr/Lechonk.png new file mode 100644 index 00000000..baabf79c Binary files /dev/null and b/src/renderer/public/sprites/rr/Lechonk.png differ diff --git a/src/renderer/public/sprites/rr/Ledian.png b/src/renderer/public/sprites/rr/Ledian.png new file mode 100644 index 00000000..831748ec Binary files /dev/null and b/src/renderer/public/sprites/rr/Ledian.png differ diff --git a/src/renderer/public/sprites/rr/Ledyba.png b/src/renderer/public/sprites/rr/Ledyba.png new file mode 100644 index 00000000..d69fb9e7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ledyba.png differ diff --git a/src/renderer/public/sprites/rr/Lickilicky.png b/src/renderer/public/sprites/rr/Lickilicky.png new file mode 100644 index 00000000..e8ac2252 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lickilicky.png differ diff --git a/src/renderer/public/sprites/rr/Lickitung.png b/src/renderer/public/sprites/rr/Lickitung.png new file mode 100644 index 00000000..34081136 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lickitung.png differ diff --git a/src/renderer/public/sprites/rr/Liepard.png b/src/renderer/public/sprites/rr/Liepard.png new file mode 100644 index 00000000..b19b11fb Binary files /dev/null and b/src/renderer/public/sprites/rr/Liepard.png differ diff --git a/src/renderer/public/sprites/rr/Lileep.png b/src/renderer/public/sprites/rr/Lileep.png new file mode 100644 index 00000000..a978f2c7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lileep.png differ diff --git a/src/renderer/public/sprites/rr/Lilligant.png b/src/renderer/public/sprites/rr/Lilligant.png new file mode 100644 index 00000000..92391bc5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lilligant.png differ diff --git a/src/renderer/public/sprites/rr/Lilliganth.png b/src/renderer/public/sprites/rr/Lilliganth.png new file mode 100644 index 00000000..534283b3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lilliganth.png differ diff --git a/src/renderer/public/sprites/rr/Lillipup.png b/src/renderer/public/sprites/rr/Lillipup.png new file mode 100644 index 00000000..11846a3a Binary files /dev/null and b/src/renderer/public/sprites/rr/Lillipup.png differ diff --git a/src/renderer/public/sprites/rr/Linoone.png b/src/renderer/public/sprites/rr/Linoone.png new file mode 100644 index 00000000..c5bf2a26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Linoone.png differ diff --git a/src/renderer/public/sprites/rr/Linooneg.png b/src/renderer/public/sprites/rr/Linooneg.png new file mode 100644 index 00000000..d996f3a0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Linooneg.png differ diff --git a/src/renderer/public/sprites/rr/Litleo.png b/src/renderer/public/sprites/rr/Litleo.png new file mode 100644 index 00000000..2b50c918 Binary files /dev/null and b/src/renderer/public/sprites/rr/Litleo.png differ diff --git a/src/renderer/public/sprites/rr/Litten.png b/src/renderer/public/sprites/rr/Litten.png new file mode 100644 index 00000000..b0b368d4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Litten.png differ diff --git a/src/renderer/public/sprites/rr/Litwick.png b/src/renderer/public/sprites/rr/Litwick.png new file mode 100644 index 00000000..61dddc6c Binary files /dev/null and b/src/renderer/public/sprites/rr/Litwick.png differ diff --git a/src/renderer/public/sprites/rr/Lokix.png b/src/renderer/public/sprites/rr/Lokix.png new file mode 100644 index 00000000..8473638f Binary files /dev/null and b/src/renderer/public/sprites/rr/Lokix.png differ diff --git a/src/renderer/public/sprites/rr/Lokixs.png b/src/renderer/public/sprites/rr/Lokixs.png new file mode 100644 index 00000000..520be3b8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lokixs.png differ diff --git a/src/renderer/public/sprites/rr/Lombre.png b/src/renderer/public/sprites/rr/Lombre.png new file mode 100644 index 00000000..affabddb Binary files /dev/null and b/src/renderer/public/sprites/rr/Lombre.png differ diff --git a/src/renderer/public/sprites/rr/Lopunny.png b/src/renderer/public/sprites/rr/Lopunny.png new file mode 100644 index 00000000..bd8396c2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lopunny.png differ diff --git a/src/renderer/public/sprites/rr/Lopunnymega.png b/src/renderer/public/sprites/rr/Lopunnymega.png new file mode 100644 index 00000000..94960877 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lopunnymega.png differ diff --git a/src/renderer/public/sprites/rr/Lotad.png b/src/renderer/public/sprites/rr/Lotad.png new file mode 100644 index 00000000..7038d06a Binary files /dev/null and b/src/renderer/public/sprites/rr/Lotad.png differ diff --git a/src/renderer/public/sprites/rr/Loudred.png b/src/renderer/public/sprites/rr/Loudred.png new file mode 100644 index 00000000..b59272fc Binary files /dev/null and b/src/renderer/public/sprites/rr/Loudred.png differ diff --git a/src/renderer/public/sprites/rr/Lucario.png b/src/renderer/public/sprites/rr/Lucario.png new file mode 100644 index 00000000..e9c146f9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lucario.png differ diff --git a/src/renderer/public/sprites/rr/Lucariomega.png b/src/renderer/public/sprites/rr/Lucariomega.png new file mode 100644 index 00000000..3d5c607b Binary files /dev/null and b/src/renderer/public/sprites/rr/Lucariomega.png differ diff --git a/src/renderer/public/sprites/rr/Ludicolo.png b/src/renderer/public/sprites/rr/Ludicolo.png new file mode 100644 index 00000000..c7e14e2d Binary files /dev/null and b/src/renderer/public/sprites/rr/Ludicolo.png differ diff --git a/src/renderer/public/sprites/rr/Lugia.png b/src/renderer/public/sprites/rr/Lugia.png new file mode 100644 index 00000000..cae40da5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lugia.png differ diff --git a/src/renderer/public/sprites/rr/Lumineon.png b/src/renderer/public/sprites/rr/Lumineon.png new file mode 100644 index 00000000..de96868c Binary files /dev/null and b/src/renderer/public/sprites/rr/Lumineon.png differ diff --git a/src/renderer/public/sprites/rr/Lunala.png b/src/renderer/public/sprites/rr/Lunala.png new file mode 100644 index 00000000..901e4a68 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lunala.png differ diff --git a/src/renderer/public/sprites/rr/Lunatone.png b/src/renderer/public/sprites/rr/Lunatone.png new file mode 100644 index 00000000..adf804d5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lunatone.png differ diff --git a/src/renderer/public/sprites/rr/Lurantis.png b/src/renderer/public/sprites/rr/Lurantis.png new file mode 100644 index 00000000..3e9aa15f Binary files /dev/null and b/src/renderer/public/sprites/rr/Lurantis.png differ diff --git a/src/renderer/public/sprites/rr/Luvdisc.png b/src/renderer/public/sprites/rr/Luvdisc.png new file mode 100644 index 00000000..4426e6bb Binary files /dev/null and b/src/renderer/public/sprites/rr/Luvdisc.png differ diff --git a/src/renderer/public/sprites/rr/Luxio.png b/src/renderer/public/sprites/rr/Luxio.png new file mode 100644 index 00000000..d7ad2570 Binary files /dev/null and b/src/renderer/public/sprites/rr/Luxio.png differ diff --git a/src/renderer/public/sprites/rr/Luxray.png b/src/renderer/public/sprites/rr/Luxray.png new file mode 100644 index 00000000..9e9999df Binary files /dev/null and b/src/renderer/public/sprites/rr/Luxray.png differ diff --git a/src/renderer/public/sprites/rr/Lycanroc.png b/src/renderer/public/sprites/rr/Lycanroc.png new file mode 100644 index 00000000..00716a06 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lycanroc.png differ diff --git a/src/renderer/public/sprites/rr/Lycanrocdusk.png b/src/renderer/public/sprites/rr/Lycanrocdusk.png new file mode 100644 index 00000000..66ed0085 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lycanrocdusk.png differ diff --git a/src/renderer/public/sprites/rr/Lycanrocn.png b/src/renderer/public/sprites/rr/Lycanrocn.png new file mode 100644 index 00000000..9f44dd74 Binary files /dev/null and b/src/renderer/public/sprites/rr/Lycanrocn.png differ diff --git a/src/renderer/public/sprites/rr/Mabosstiff.png b/src/renderer/public/sprites/rr/Mabosstiff.png new file mode 100644 index 00000000..3a003968 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mabosstiff.png differ diff --git a/src/renderer/public/sprites/rr/Machamp.png b/src/renderer/public/sprites/rr/Machamp.png new file mode 100644 index 00000000..9fb00e60 Binary files /dev/null and b/src/renderer/public/sprites/rr/Machamp.png differ diff --git a/src/renderer/public/sprites/rr/Machampgiga.png b/src/renderer/public/sprites/rr/Machampgiga.png new file mode 100644 index 00000000..3fe4efa6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Machampgiga.png differ diff --git a/src/renderer/public/sprites/rr/Machoke.png b/src/renderer/public/sprites/rr/Machoke.png new file mode 100644 index 00000000..d5f378ac Binary files /dev/null and b/src/renderer/public/sprites/rr/Machoke.png differ diff --git a/src/renderer/public/sprites/rr/Machop.png b/src/renderer/public/sprites/rr/Machop.png new file mode 100644 index 00000000..7429072c Binary files /dev/null and b/src/renderer/public/sprites/rr/Machop.png differ diff --git a/src/renderer/public/sprites/rr/Magby.png b/src/renderer/public/sprites/rr/Magby.png new file mode 100644 index 00000000..f9b19acd Binary files /dev/null and b/src/renderer/public/sprites/rr/Magby.png differ diff --git a/src/renderer/public/sprites/rr/Magcargo.png b/src/renderer/public/sprites/rr/Magcargo.png new file mode 100644 index 00000000..a70800b6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Magcargo.png differ diff --git a/src/renderer/public/sprites/rr/Magearna.png b/src/renderer/public/sprites/rr/Magearna.png new file mode 100644 index 00000000..c65e623f Binary files /dev/null and b/src/renderer/public/sprites/rr/Magearna.png differ diff --git a/src/renderer/public/sprites/rr/Magearnap.png b/src/renderer/public/sprites/rr/Magearnap.png new file mode 100644 index 00000000..c055803a Binary files /dev/null and b/src/renderer/public/sprites/rr/Magearnap.png differ diff --git a/src/renderer/public/sprites/rr/Magikarp.png b/src/renderer/public/sprites/rr/Magikarp.png new file mode 100644 index 00000000..d1f6900d Binary files /dev/null and b/src/renderer/public/sprites/rr/Magikarp.png differ diff --git a/src/renderer/public/sprites/rr/Magmar.png b/src/renderer/public/sprites/rr/Magmar.png new file mode 100644 index 00000000..2f5cda5a Binary files /dev/null and b/src/renderer/public/sprites/rr/Magmar.png differ diff --git a/src/renderer/public/sprites/rr/Magmortar.png b/src/renderer/public/sprites/rr/Magmortar.png new file mode 100644 index 00000000..b7fe5e93 Binary files /dev/null and b/src/renderer/public/sprites/rr/Magmortar.png differ diff --git a/src/renderer/public/sprites/rr/Magnemite.png b/src/renderer/public/sprites/rr/Magnemite.png new file mode 100644 index 00000000..af648a6d Binary files /dev/null and b/src/renderer/public/sprites/rr/Magnemite.png differ diff --git a/src/renderer/public/sprites/rr/Magneton.png b/src/renderer/public/sprites/rr/Magneton.png new file mode 100644 index 00000000..ba1ab0c3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Magneton.png differ diff --git a/src/renderer/public/sprites/rr/Magnezone.png b/src/renderer/public/sprites/rr/Magnezone.png new file mode 100644 index 00000000..c156bc19 Binary files /dev/null and b/src/renderer/public/sprites/rr/Magnezone.png differ diff --git a/src/renderer/public/sprites/rr/Makuhita.png b/src/renderer/public/sprites/rr/Makuhita.png new file mode 100644 index 00000000..4e5f7231 Binary files /dev/null and b/src/renderer/public/sprites/rr/Makuhita.png differ diff --git a/src/renderer/public/sprites/rr/Malamar.png b/src/renderer/public/sprites/rr/Malamar.png new file mode 100644 index 00000000..903b7871 Binary files /dev/null and b/src/renderer/public/sprites/rr/Malamar.png differ diff --git a/src/renderer/public/sprites/rr/Mamoswine.png b/src/renderer/public/sprites/rr/Mamoswine.png new file mode 100644 index 00000000..6ecbaec6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mamoswine.png differ diff --git a/src/renderer/public/sprites/rr/Manaphy.png b/src/renderer/public/sprites/rr/Manaphy.png new file mode 100644 index 00000000..8f3939e8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Manaphy.png differ diff --git a/src/renderer/public/sprites/rr/Mandibuzz.png b/src/renderer/public/sprites/rr/Mandibuzz.png new file mode 100644 index 00000000..fe4e0198 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mandibuzz.png differ diff --git a/src/renderer/public/sprites/rr/Manectric.png b/src/renderer/public/sprites/rr/Manectric.png new file mode 100644 index 00000000..58872a18 Binary files /dev/null and b/src/renderer/public/sprites/rr/Manectric.png differ diff --git a/src/renderer/public/sprites/rr/Manectricmega.png b/src/renderer/public/sprites/rr/Manectricmega.png new file mode 100644 index 00000000..1032c80a Binary files /dev/null and b/src/renderer/public/sprites/rr/Manectricmega.png differ diff --git a/src/renderer/public/sprites/rr/Mankey.png b/src/renderer/public/sprites/rr/Mankey.png new file mode 100644 index 00000000..6892d167 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mankey.png differ diff --git a/src/renderer/public/sprites/rr/Mantine.png b/src/renderer/public/sprites/rr/Mantine.png new file mode 100644 index 00000000..4d4e2de5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mantine.png differ diff --git a/src/renderer/public/sprites/rr/Mantines.png b/src/renderer/public/sprites/rr/Mantines.png new file mode 100644 index 00000000..a2653ccf Binary files /dev/null and b/src/renderer/public/sprites/rr/Mantines.png differ diff --git a/src/renderer/public/sprites/rr/Mantyke.png b/src/renderer/public/sprites/rr/Mantyke.png new file mode 100644 index 00000000..6d05c7b4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mantyke.png differ diff --git a/src/renderer/public/sprites/rr/Mantykes.png b/src/renderer/public/sprites/rr/Mantykes.png new file mode 100644 index 00000000..3778875f Binary files /dev/null and b/src/renderer/public/sprites/rr/Mantykes.png differ diff --git a/src/renderer/public/sprites/rr/Maractus.png b/src/renderer/public/sprites/rr/Maractus.png new file mode 100644 index 00000000..38582c78 Binary files /dev/null and b/src/renderer/public/sprites/rr/Maractus.png differ diff --git a/src/renderer/public/sprites/rr/Mareanie.png b/src/renderer/public/sprites/rr/Mareanie.png new file mode 100644 index 00000000..add209c0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mareanie.png differ diff --git a/src/renderer/public/sprites/rr/Mareep.png b/src/renderer/public/sprites/rr/Mareep.png new file mode 100644 index 00000000..e359cae8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mareep.png differ diff --git a/src/renderer/public/sprites/rr/Marill.png b/src/renderer/public/sprites/rr/Marill.png new file mode 100644 index 00000000..86295d1d Binary files /dev/null and b/src/renderer/public/sprites/rr/Marill.png differ diff --git a/src/renderer/public/sprites/rr/Marowak.png b/src/renderer/public/sprites/rr/Marowak.png new file mode 100644 index 00000000..ba401f6f Binary files /dev/null and b/src/renderer/public/sprites/rr/Marowak.png differ diff --git a/src/renderer/public/sprites/rr/Marowaka.png b/src/renderer/public/sprites/rr/Marowaka.png new file mode 100644 index 00000000..3db707c8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Marowaka.png differ diff --git a/src/renderer/public/sprites/rr/Marshadow.png b/src/renderer/public/sprites/rr/Marshadow.png new file mode 100644 index 00000000..7f217603 Binary files /dev/null and b/src/renderer/public/sprites/rr/Marshadow.png differ diff --git a/src/renderer/public/sprites/rr/Marshtomp.png b/src/renderer/public/sprites/rr/Marshtomp.png new file mode 100644 index 00000000..4cf0a9cb Binary files /dev/null and b/src/renderer/public/sprites/rr/Marshtomp.png differ diff --git a/src/renderer/public/sprites/rr/Maschiff.png b/src/renderer/public/sprites/rr/Maschiff.png new file mode 100644 index 00000000..c0fd07e1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Maschiff.png differ diff --git a/src/renderer/public/sprites/rr/Masquerain.png b/src/renderer/public/sprites/rr/Masquerain.png new file mode 100644 index 00000000..0892d169 Binary files /dev/null and b/src/renderer/public/sprites/rr/Masquerain.png differ diff --git a/src/renderer/public/sprites/rr/Maushold.png b/src/renderer/public/sprites/rr/Maushold.png new file mode 100644 index 00000000..90b0954d Binary files /dev/null and b/src/renderer/public/sprites/rr/Maushold.png differ diff --git a/src/renderer/public/sprites/rr/Mawile.png b/src/renderer/public/sprites/rr/Mawile.png new file mode 100644 index 00000000..ae917ae1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mawile.png differ diff --git a/src/renderer/public/sprites/rr/Mawilemega.png b/src/renderer/public/sprites/rr/Mawilemega.png new file mode 100644 index 00000000..e974dd24 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mawilemega.png differ diff --git a/src/renderer/public/sprites/rr/Medicham.png b/src/renderer/public/sprites/rr/Medicham.png new file mode 100644 index 00000000..00bf1c95 Binary files /dev/null and b/src/renderer/public/sprites/rr/Medicham.png differ diff --git a/src/renderer/public/sprites/rr/Medichammega.png b/src/renderer/public/sprites/rr/Medichammega.png new file mode 100644 index 00000000..d9b305d8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Medichammega.png differ diff --git a/src/renderer/public/sprites/rr/Meditite.png b/src/renderer/public/sprites/rr/Meditite.png new file mode 100644 index 00000000..65135fbd Binary files /dev/null and b/src/renderer/public/sprites/rr/Meditite.png differ diff --git a/src/renderer/public/sprites/rr/Meganium.png b/src/renderer/public/sprites/rr/Meganium.png new file mode 100644 index 00000000..a155ef52 Binary files /dev/null and b/src/renderer/public/sprites/rr/Meganium.png differ diff --git a/src/renderer/public/sprites/rr/Melmetal.png b/src/renderer/public/sprites/rr/Melmetal.png new file mode 100644 index 00000000..9be03e38 Binary files /dev/null and b/src/renderer/public/sprites/rr/Melmetal.png differ diff --git a/src/renderer/public/sprites/rr/Melmetalgiga.png b/src/renderer/public/sprites/rr/Melmetalgiga.png new file mode 100644 index 00000000..43ad8ed8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Melmetalgiga.png differ diff --git a/src/renderer/public/sprites/rr/Meloetta.png b/src/renderer/public/sprites/rr/Meloetta.png new file mode 100644 index 00000000..ba2007e6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Meloetta.png differ diff --git a/src/renderer/public/sprites/rr/Meloettapirouette.png b/src/renderer/public/sprites/rr/Meloettapirouette.png new file mode 100644 index 00000000..fee51d63 Binary files /dev/null and b/src/renderer/public/sprites/rr/Meloettapirouette.png differ diff --git a/src/renderer/public/sprites/rr/Meltan.png b/src/renderer/public/sprites/rr/Meltan.png new file mode 100644 index 00000000..c14f1e75 Binary files /dev/null and b/src/renderer/public/sprites/rr/Meltan.png differ diff --git a/src/renderer/public/sprites/rr/Meowscarada.png b/src/renderer/public/sprites/rr/Meowscarada.png new file mode 100644 index 00000000..3da2554c Binary files /dev/null and b/src/renderer/public/sprites/rr/Meowscarada.png differ diff --git a/src/renderer/public/sprites/rr/Meowstic.png b/src/renderer/public/sprites/rr/Meowstic.png new file mode 100644 index 00000000..6cf80365 Binary files /dev/null and b/src/renderer/public/sprites/rr/Meowstic.png differ diff --git a/src/renderer/public/sprites/rr/Meowsticfemale.png b/src/renderer/public/sprites/rr/Meowsticfemale.png new file mode 100644 index 00000000..d00d2e0c Binary files /dev/null and b/src/renderer/public/sprites/rr/Meowsticfemale.png differ diff --git a/src/renderer/public/sprites/rr/Meowth.png b/src/renderer/public/sprites/rr/Meowth.png new file mode 100644 index 00000000..012570d9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Meowth.png differ diff --git a/src/renderer/public/sprites/rr/Meowtha.png b/src/renderer/public/sprites/rr/Meowtha.png new file mode 100644 index 00000000..514eb3f9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Meowtha.png differ diff --git a/src/renderer/public/sprites/rr/Meowthg.png b/src/renderer/public/sprites/rr/Meowthg.png new file mode 100644 index 00000000..2d899efe Binary files /dev/null and b/src/renderer/public/sprites/rr/Meowthg.png differ diff --git a/src/renderer/public/sprites/rr/Meowthgiga.png b/src/renderer/public/sprites/rr/Meowthgiga.png new file mode 100644 index 00000000..4a81168b Binary files /dev/null and b/src/renderer/public/sprites/rr/Meowthgiga.png differ diff --git a/src/renderer/public/sprites/rr/Mesprit.png b/src/renderer/public/sprites/rr/Mesprit.png new file mode 100644 index 00000000..1bb47057 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mesprit.png differ diff --git a/src/renderer/public/sprites/rr/Metagross.png b/src/renderer/public/sprites/rr/Metagross.png new file mode 100644 index 00000000..fd8cfc9e Binary files /dev/null and b/src/renderer/public/sprites/rr/Metagross.png differ diff --git a/src/renderer/public/sprites/rr/Metagrossmega.png b/src/renderer/public/sprites/rr/Metagrossmega.png new file mode 100644 index 00000000..eaf40f05 Binary files /dev/null and b/src/renderer/public/sprites/rr/Metagrossmega.png differ diff --git a/src/renderer/public/sprites/rr/Metang.png b/src/renderer/public/sprites/rr/Metang.png new file mode 100644 index 00000000..f87d3be5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Metang.png differ diff --git a/src/renderer/public/sprites/rr/Metapod.png b/src/renderer/public/sprites/rr/Metapod.png new file mode 100644 index 00000000..be4059c7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Metapod.png differ diff --git a/src/renderer/public/sprites/rr/Mew.png b/src/renderer/public/sprites/rr/Mew.png new file mode 100644 index 00000000..acb842c7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mew.png differ diff --git a/src/renderer/public/sprites/rr/Mewtwo.png b/src/renderer/public/sprites/rr/Mewtwo.png new file mode 100644 index 00000000..128455de Binary files /dev/null and b/src/renderer/public/sprites/rr/Mewtwo.png differ diff --git a/src/renderer/public/sprites/rr/Mewtwomegax.png b/src/renderer/public/sprites/rr/Mewtwomegax.png new file mode 100644 index 00000000..75bc7b15 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mewtwomegax.png differ diff --git a/src/renderer/public/sprites/rr/Mewtwomegay.png b/src/renderer/public/sprites/rr/Mewtwomegay.png new file mode 100644 index 00000000..31c1fa8a Binary files /dev/null and b/src/renderer/public/sprites/rr/Mewtwomegay.png differ diff --git a/src/renderer/public/sprites/rr/Mienfoo.png b/src/renderer/public/sprites/rr/Mienfoo.png new file mode 100644 index 00000000..bbe60eff Binary files /dev/null and b/src/renderer/public/sprites/rr/Mienfoo.png differ diff --git a/src/renderer/public/sprites/rr/Mienshao.png b/src/renderer/public/sprites/rr/Mienshao.png new file mode 100644 index 00000000..1d9c2abd Binary files /dev/null and b/src/renderer/public/sprites/rr/Mienshao.png differ diff --git a/src/renderer/public/sprites/rr/Mightyena.png b/src/renderer/public/sprites/rr/Mightyena.png new file mode 100644 index 00000000..dd3fec0e Binary files /dev/null and b/src/renderer/public/sprites/rr/Mightyena.png differ diff --git a/src/renderer/public/sprites/rr/Milcery.png b/src/renderer/public/sprites/rr/Milcery.png new file mode 100644 index 00000000..96c92995 Binary files /dev/null and b/src/renderer/public/sprites/rr/Milcery.png differ diff --git a/src/renderer/public/sprites/rr/Milotic.png b/src/renderer/public/sprites/rr/Milotic.png new file mode 100644 index 00000000..8a22e07f Binary files /dev/null and b/src/renderer/public/sprites/rr/Milotic.png differ diff --git a/src/renderer/public/sprites/rr/Milotics.png b/src/renderer/public/sprites/rr/Milotics.png new file mode 100644 index 00000000..94df7877 Binary files /dev/null and b/src/renderer/public/sprites/rr/Milotics.png differ diff --git a/src/renderer/public/sprites/rr/Miltank.png b/src/renderer/public/sprites/rr/Miltank.png new file mode 100644 index 00000000..dd95207b Binary files /dev/null and b/src/renderer/public/sprites/rr/Miltank.png differ diff --git a/src/renderer/public/sprites/rr/Mimejr.png b/src/renderer/public/sprites/rr/Mimejr.png new file mode 100644 index 00000000..cedc8a12 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mimejr.png differ diff --git a/src/renderer/public/sprites/rr/Mimikyu.png b/src/renderer/public/sprites/rr/Mimikyu.png new file mode 100644 index 00000000..146321e8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mimikyu.png differ diff --git a/src/renderer/public/sprites/rr/Mimikyubusted.png b/src/renderer/public/sprites/rr/Mimikyubusted.png new file mode 100644 index 00000000..abd4e712 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mimikyubusted.png differ diff --git a/src/renderer/public/sprites/rr/Minccino.png b/src/renderer/public/sprites/rr/Minccino.png new file mode 100644 index 00000000..c2e240eb Binary files /dev/null and b/src/renderer/public/sprites/rr/Minccino.png differ diff --git a/src/renderer/public/sprites/rr/Miniorblue.png b/src/renderer/public/sprites/rr/Miniorblue.png new file mode 100644 index 00000000..44b0cdfd Binary files /dev/null and b/src/renderer/public/sprites/rr/Miniorblue.png differ diff --git a/src/renderer/public/sprites/rr/Miniorgreen.png b/src/renderer/public/sprites/rr/Miniorgreen.png new file mode 100644 index 00000000..628220f0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Miniorgreen.png differ diff --git a/src/renderer/public/sprites/rr/Miniorindigo.png b/src/renderer/public/sprites/rr/Miniorindigo.png new file mode 100644 index 00000000..67c68df4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Miniorindigo.png differ diff --git a/src/renderer/public/sprites/rr/Miniororange.png b/src/renderer/public/sprites/rr/Miniororange.png new file mode 100644 index 00000000..fe50d64f Binary files /dev/null and b/src/renderer/public/sprites/rr/Miniororange.png differ diff --git a/src/renderer/public/sprites/rr/Miniorred.png b/src/renderer/public/sprites/rr/Miniorred.png new file mode 100644 index 00000000..a163bf44 Binary files /dev/null and b/src/renderer/public/sprites/rr/Miniorred.png differ diff --git a/src/renderer/public/sprites/rr/Miniorshield.png b/src/renderer/public/sprites/rr/Miniorshield.png new file mode 100644 index 00000000..143535e2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Miniorshield.png differ diff --git a/src/renderer/public/sprites/rr/Miniorviolet.png b/src/renderer/public/sprites/rr/Miniorviolet.png new file mode 100644 index 00000000..80615c4f Binary files /dev/null and b/src/renderer/public/sprites/rr/Miniorviolet.png differ diff --git a/src/renderer/public/sprites/rr/Minioryellow.png b/src/renderer/public/sprites/rr/Minioryellow.png new file mode 100644 index 00000000..a0ffac20 Binary files /dev/null and b/src/renderer/public/sprites/rr/Minioryellow.png differ diff --git a/src/renderer/public/sprites/rr/Minun.png b/src/renderer/public/sprites/rr/Minun.png new file mode 100644 index 00000000..4945aabc Binary files /dev/null and b/src/renderer/public/sprites/rr/Minun.png differ diff --git a/src/renderer/public/sprites/rr/Miraidon.png b/src/renderer/public/sprites/rr/Miraidon.png new file mode 100644 index 00000000..9769be27 Binary files /dev/null and b/src/renderer/public/sprites/rr/Miraidon.png differ diff --git a/src/renderer/public/sprites/rr/Misdreavus.png b/src/renderer/public/sprites/rr/Misdreavus.png new file mode 100644 index 00000000..d9b2d08a Binary files /dev/null and b/src/renderer/public/sprites/rr/Misdreavus.png differ diff --git a/src/renderer/public/sprites/rr/Mismagius.png b/src/renderer/public/sprites/rr/Mismagius.png new file mode 100644 index 00000000..7ec00914 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mismagius.png differ diff --git a/src/renderer/public/sprites/rr/Moltres.png b/src/renderer/public/sprites/rr/Moltres.png new file mode 100644 index 00000000..0d69a1b7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Moltres.png differ diff --git a/src/renderer/public/sprites/rr/Moltresg.png b/src/renderer/public/sprites/rr/Moltresg.png new file mode 100644 index 00000000..ee29ac0e Binary files /dev/null and b/src/renderer/public/sprites/rr/Moltresg.png differ diff --git a/src/renderer/public/sprites/rr/Monferno.png b/src/renderer/public/sprites/rr/Monferno.png new file mode 100644 index 00000000..c3623c8a Binary files /dev/null and b/src/renderer/public/sprites/rr/Monferno.png differ diff --git a/src/renderer/public/sprites/rr/Morelull.png b/src/renderer/public/sprites/rr/Morelull.png new file mode 100644 index 00000000..0936f913 Binary files /dev/null and b/src/renderer/public/sprites/rr/Morelull.png differ diff --git a/src/renderer/public/sprites/rr/Morgrem.png b/src/renderer/public/sprites/rr/Morgrem.png new file mode 100644 index 00000000..169f06b9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Morgrem.png differ diff --git a/src/renderer/public/sprites/rr/Morpeko.png b/src/renderer/public/sprites/rr/Morpeko.png new file mode 100644 index 00000000..50078171 Binary files /dev/null and b/src/renderer/public/sprites/rr/Morpeko.png differ diff --git a/src/renderer/public/sprites/rr/Morpekohangry.png b/src/renderer/public/sprites/rr/Morpekohangry.png new file mode 100644 index 00000000..a7a3c116 Binary files /dev/null and b/src/renderer/public/sprites/rr/Morpekohangry.png differ diff --git a/src/renderer/public/sprites/rr/Mothim.png b/src/renderer/public/sprites/rr/Mothim.png new file mode 100644 index 00000000..808e85d5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mothim.png differ diff --git a/src/renderer/public/sprites/rr/Mrmime.png b/src/renderer/public/sprites/rr/Mrmime.png new file mode 100644 index 00000000..f9fb9726 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mrmime.png differ diff --git a/src/renderer/public/sprites/rr/Mrmimeg.png b/src/renderer/public/sprites/rr/Mrmimeg.png new file mode 100644 index 00000000..4c399726 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mrmimeg.png differ diff --git a/src/renderer/public/sprites/rr/Mrrime.png b/src/renderer/public/sprites/rr/Mrrime.png new file mode 100644 index 00000000..6fc6268e Binary files /dev/null and b/src/renderer/public/sprites/rr/Mrrime.png differ diff --git a/src/renderer/public/sprites/rr/Mudbray.png b/src/renderer/public/sprites/rr/Mudbray.png new file mode 100644 index 00000000..a89b46b9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Mudbray.png differ diff --git a/src/renderer/public/sprites/rr/Mudkip.png b/src/renderer/public/sprites/rr/Mudkip.png new file mode 100644 index 00000000..766a626c Binary files /dev/null and b/src/renderer/public/sprites/rr/Mudkip.png differ diff --git a/src/renderer/public/sprites/rr/Mudsdale.png b/src/renderer/public/sprites/rr/Mudsdale.png new file mode 100644 index 00000000..1a86372f Binary files /dev/null and b/src/renderer/public/sprites/rr/Mudsdale.png differ diff --git a/src/renderer/public/sprites/rr/Muk.png b/src/renderer/public/sprites/rr/Muk.png new file mode 100644 index 00000000..d7e2ef6e Binary files /dev/null and b/src/renderer/public/sprites/rr/Muk.png differ diff --git a/src/renderer/public/sprites/rr/Muka.png b/src/renderer/public/sprites/rr/Muka.png new file mode 100644 index 00000000..619cc72f Binary files /dev/null and b/src/renderer/public/sprites/rr/Muka.png differ diff --git a/src/renderer/public/sprites/rr/Munchlax.png b/src/renderer/public/sprites/rr/Munchlax.png new file mode 100644 index 00000000..b1966045 Binary files /dev/null and b/src/renderer/public/sprites/rr/Munchlax.png differ diff --git a/src/renderer/public/sprites/rr/Munna.png b/src/renderer/public/sprites/rr/Munna.png new file mode 100644 index 00000000..f9fb1d92 Binary files /dev/null and b/src/renderer/public/sprites/rr/Munna.png differ diff --git a/src/renderer/public/sprites/rr/Murkrow.png b/src/renderer/public/sprites/rr/Murkrow.png new file mode 100644 index 00000000..e08b1834 Binary files /dev/null and b/src/renderer/public/sprites/rr/Murkrow.png differ diff --git a/src/renderer/public/sprites/rr/Musharna.png b/src/renderer/public/sprites/rr/Musharna.png new file mode 100644 index 00000000..d89c1194 Binary files /dev/null and b/src/renderer/public/sprites/rr/Musharna.png differ diff --git a/src/renderer/public/sprites/rr/Nacli.png b/src/renderer/public/sprites/rr/Nacli.png new file mode 100644 index 00000000..4f1a26f6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Nacli.png differ diff --git a/src/renderer/public/sprites/rr/Naclstack.png b/src/renderer/public/sprites/rr/Naclstack.png new file mode 100644 index 00000000..234944f0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Naclstack.png differ diff --git a/src/renderer/public/sprites/rr/Naganadel.png b/src/renderer/public/sprites/rr/Naganadel.png new file mode 100644 index 00000000..2942d310 Binary files /dev/null and b/src/renderer/public/sprites/rr/Naganadel.png differ diff --git a/src/renderer/public/sprites/rr/Natu.png b/src/renderer/public/sprites/rr/Natu.png new file mode 100644 index 00000000..cc018118 Binary files /dev/null and b/src/renderer/public/sprites/rr/Natu.png differ diff --git a/src/renderer/public/sprites/rr/Necrozma.png b/src/renderer/public/sprites/rr/Necrozma.png new file mode 100644 index 00000000..972f218d Binary files /dev/null and b/src/renderer/public/sprites/rr/Necrozma.png differ diff --git a/src/renderer/public/sprites/rr/Necrozmamane.png b/src/renderer/public/sprites/rr/Necrozmamane.png new file mode 100644 index 00000000..c5a54b98 Binary files /dev/null and b/src/renderer/public/sprites/rr/Necrozmamane.png differ diff --git a/src/renderer/public/sprites/rr/Necrozmaultra.png b/src/renderer/public/sprites/rr/Necrozmaultra.png new file mode 100644 index 00000000..a389689b Binary files /dev/null and b/src/renderer/public/sprites/rr/Necrozmaultra.png differ diff --git a/src/renderer/public/sprites/rr/Necrozmawings.png b/src/renderer/public/sprites/rr/Necrozmawings.png new file mode 100644 index 00000000..7b2bb7f1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Necrozmawings.png differ diff --git a/src/renderer/public/sprites/rr/Nickit.png b/src/renderer/public/sprites/rr/Nickit.png new file mode 100644 index 00000000..b2da920b Binary files /dev/null and b/src/renderer/public/sprites/rr/Nickit.png differ diff --git a/src/renderer/public/sprites/rr/Nidoking.png b/src/renderer/public/sprites/rr/Nidoking.png new file mode 100644 index 00000000..30995574 Binary files /dev/null and b/src/renderer/public/sprites/rr/Nidoking.png differ diff --git a/src/renderer/public/sprites/rr/Nidoqueen.png b/src/renderer/public/sprites/rr/Nidoqueen.png new file mode 100644 index 00000000..f1d17b51 Binary files /dev/null and b/src/renderer/public/sprites/rr/Nidoqueen.png differ diff --git a/src/renderer/public/sprites/rr/Nidoranf.png b/src/renderer/public/sprites/rr/Nidoranf.png new file mode 100644 index 00000000..591945be Binary files /dev/null and b/src/renderer/public/sprites/rr/Nidoranf.png differ diff --git a/src/renderer/public/sprites/rr/Nidoranm.png b/src/renderer/public/sprites/rr/Nidoranm.png new file mode 100644 index 00000000..d6e91ff9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Nidoranm.png differ diff --git a/src/renderer/public/sprites/rr/Nidorina.png b/src/renderer/public/sprites/rr/Nidorina.png new file mode 100644 index 00000000..ad264559 Binary files /dev/null and b/src/renderer/public/sprites/rr/Nidorina.png differ diff --git a/src/renderer/public/sprites/rr/Nidorino.png b/src/renderer/public/sprites/rr/Nidorino.png new file mode 100644 index 00000000..12f5b6df Binary files /dev/null and b/src/renderer/public/sprites/rr/Nidorino.png differ diff --git a/src/renderer/public/sprites/rr/Nihilego.png b/src/renderer/public/sprites/rr/Nihilego.png new file mode 100644 index 00000000..3c041b64 Binary files /dev/null and b/src/renderer/public/sprites/rr/Nihilego.png differ diff --git a/src/renderer/public/sprites/rr/Nincada.png b/src/renderer/public/sprites/rr/Nincada.png new file mode 100644 index 00000000..eead1f6a Binary files /dev/null and b/src/renderer/public/sprites/rr/Nincada.png differ diff --git a/src/renderer/public/sprites/rr/Ninetales.png b/src/renderer/public/sprites/rr/Ninetales.png new file mode 100644 index 00000000..e21d4070 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ninetales.png differ diff --git a/src/renderer/public/sprites/rr/Ninetalesa.png b/src/renderer/public/sprites/rr/Ninetalesa.png new file mode 100644 index 00000000..d2590526 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ninetalesa.png differ diff --git a/src/renderer/public/sprites/rr/Ninjask.png b/src/renderer/public/sprites/rr/Ninjask.png new file mode 100644 index 00000000..5e1d6046 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ninjask.png differ diff --git a/src/renderer/public/sprites/rr/Noctowl.png b/src/renderer/public/sprites/rr/Noctowl.png new file mode 100644 index 00000000..b82a8b8f Binary files /dev/null and b/src/renderer/public/sprites/rr/Noctowl.png differ diff --git a/src/renderer/public/sprites/rr/Noibat.png b/src/renderer/public/sprites/rr/Noibat.png new file mode 100644 index 00000000..243f3e3c Binary files /dev/null and b/src/renderer/public/sprites/rr/Noibat.png differ diff --git a/src/renderer/public/sprites/rr/Noibats.png b/src/renderer/public/sprites/rr/Noibats.png new file mode 100644 index 00000000..7d70e128 Binary files /dev/null and b/src/renderer/public/sprites/rr/Noibats.png differ diff --git a/src/renderer/public/sprites/rr/Noivern.png b/src/renderer/public/sprites/rr/Noivern.png new file mode 100644 index 00000000..4a0e50fc Binary files /dev/null and b/src/renderer/public/sprites/rr/Noivern.png differ diff --git a/src/renderer/public/sprites/rr/Noiverns.png b/src/renderer/public/sprites/rr/Noiverns.png new file mode 100644 index 00000000..55446255 Binary files /dev/null and b/src/renderer/public/sprites/rr/Noiverns.png differ diff --git a/src/renderer/public/sprites/rr/None.png b/src/renderer/public/sprites/rr/None.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/None.png differ diff --git a/src/renderer/public/sprites/rr/Nosepass.png b/src/renderer/public/sprites/rr/Nosepass.png new file mode 100644 index 00000000..cd84f0ee Binary files /dev/null and b/src/renderer/public/sprites/rr/Nosepass.png differ diff --git a/src/renderer/public/sprites/rr/Numel.png b/src/renderer/public/sprites/rr/Numel.png new file mode 100644 index 00000000..56a9d249 Binary files /dev/null and b/src/renderer/public/sprites/rr/Numel.png differ diff --git a/src/renderer/public/sprites/rr/Nuzleaf.png b/src/renderer/public/sprites/rr/Nuzleaf.png new file mode 100644 index 00000000..a49fc59f Binary files /dev/null and b/src/renderer/public/sprites/rr/Nuzleaf.png differ diff --git a/src/renderer/public/sprites/rr/Nymble.png b/src/renderer/public/sprites/rr/Nymble.png new file mode 100644 index 00000000..cde568d9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Nymble.png differ diff --git a/src/renderer/public/sprites/rr/Nymbles.png b/src/renderer/public/sprites/rr/Nymbles.png new file mode 100644 index 00000000..286b12a5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Nymbles.png differ diff --git a/src/renderer/public/sprites/rr/Obstagoon.png b/src/renderer/public/sprites/rr/Obstagoon.png new file mode 100644 index 00000000..96528ad6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Obstagoon.png differ diff --git a/src/renderer/public/sprites/rr/Octillery.png b/src/renderer/public/sprites/rr/Octillery.png new file mode 100644 index 00000000..cc87e430 Binary files /dev/null and b/src/renderer/public/sprites/rr/Octillery.png differ diff --git a/src/renderer/public/sprites/rr/Oddish.png b/src/renderer/public/sprites/rr/Oddish.png new file mode 100644 index 00000000..c87a9be2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Oddish.png differ diff --git a/src/renderer/public/sprites/rr/Oinkologne.png b/src/renderer/public/sprites/rr/Oinkologne.png new file mode 100644 index 00000000..898e5a9d Binary files /dev/null and b/src/renderer/public/sprites/rr/Oinkologne.png differ diff --git a/src/renderer/public/sprites/rr/Oinkolognef.png b/src/renderer/public/sprites/rr/Oinkolognef.png new file mode 100644 index 00000000..5526fe7b Binary files /dev/null and b/src/renderer/public/sprites/rr/Oinkolognef.png differ diff --git a/src/renderer/public/sprites/rr/Omanyte.png b/src/renderer/public/sprites/rr/Omanyte.png new file mode 100644 index 00000000..86e77bba Binary files /dev/null and b/src/renderer/public/sprites/rr/Omanyte.png differ diff --git a/src/renderer/public/sprites/rr/Omastar.png b/src/renderer/public/sprites/rr/Omastar.png new file mode 100644 index 00000000..79d3e627 Binary files /dev/null and b/src/renderer/public/sprites/rr/Omastar.png differ diff --git a/src/renderer/public/sprites/rr/Onix.png b/src/renderer/public/sprites/rr/Onix.png new file mode 100644 index 00000000..47b11dcb Binary files /dev/null and b/src/renderer/public/sprites/rr/Onix.png differ diff --git a/src/renderer/public/sprites/rr/Oranguru.png b/src/renderer/public/sprites/rr/Oranguru.png new file mode 100644 index 00000000..91f94205 Binary files /dev/null and b/src/renderer/public/sprites/rr/Oranguru.png differ diff --git a/src/renderer/public/sprites/rr/Orbeetle.png b/src/renderer/public/sprites/rr/Orbeetle.png new file mode 100644 index 00000000..19e304fb Binary files /dev/null and b/src/renderer/public/sprites/rr/Orbeetle.png differ diff --git a/src/renderer/public/sprites/rr/Orbeetlegiga.png b/src/renderer/public/sprites/rr/Orbeetlegiga.png new file mode 100644 index 00000000..c58110af Binary files /dev/null and b/src/renderer/public/sprites/rr/Orbeetlegiga.png differ diff --git a/src/renderer/public/sprites/rr/Oricorio.png b/src/renderer/public/sprites/rr/Oricorio.png new file mode 100644 index 00000000..14829f64 Binary files /dev/null and b/src/renderer/public/sprites/rr/Oricorio.png differ diff --git a/src/renderer/public/sprites/rr/Oricoriop.png b/src/renderer/public/sprites/rr/Oricoriop.png new file mode 100644 index 00000000..39cd5876 Binary files /dev/null and b/src/renderer/public/sprites/rr/Oricoriop.png differ diff --git a/src/renderer/public/sprites/rr/Oricorios.png b/src/renderer/public/sprites/rr/Oricorios.png new file mode 100644 index 00000000..113380e0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Oricorios.png differ diff --git a/src/renderer/public/sprites/rr/Oricorioy.png b/src/renderer/public/sprites/rr/Oricorioy.png new file mode 100644 index 00000000..f993f6d3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Oricorioy.png differ diff --git a/src/renderer/public/sprites/rr/Orthworm.png b/src/renderer/public/sprites/rr/Orthworm.png new file mode 100644 index 00000000..98f46c63 Binary files /dev/null and b/src/renderer/public/sprites/rr/Orthworm.png differ diff --git a/src/renderer/public/sprites/rr/Oshawott.png b/src/renderer/public/sprites/rr/Oshawott.png new file mode 100644 index 00000000..3769684a Binary files /dev/null and b/src/renderer/public/sprites/rr/Oshawott.png differ diff --git a/src/renderer/public/sprites/rr/Overqwil.png b/src/renderer/public/sprites/rr/Overqwil.png new file mode 100644 index 00000000..9b250e0a Binary files /dev/null and b/src/renderer/public/sprites/rr/Overqwil.png differ diff --git a/src/renderer/public/sprites/rr/Pachirisu.png b/src/renderer/public/sprites/rr/Pachirisu.png new file mode 100644 index 00000000..191fe33c Binary files /dev/null and b/src/renderer/public/sprites/rr/Pachirisu.png differ diff --git a/src/renderer/public/sprites/rr/Palafin.png b/src/renderer/public/sprites/rr/Palafin.png new file mode 100644 index 00000000..7b8b0eb9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Palafin.png differ diff --git a/src/renderer/public/sprites/rr/Palafinhero.png b/src/renderer/public/sprites/rr/Palafinhero.png new file mode 100644 index 00000000..9f50aec8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Palafinhero.png differ diff --git a/src/renderer/public/sprites/rr/Palkia.png b/src/renderer/public/sprites/rr/Palkia.png new file mode 100644 index 00000000..9c3c74f2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Palkia.png differ diff --git a/src/renderer/public/sprites/rr/Palkiao.png b/src/renderer/public/sprites/rr/Palkiao.png new file mode 100644 index 00000000..afb84a1b Binary files /dev/null and b/src/renderer/public/sprites/rr/Palkiao.png differ diff --git a/src/renderer/public/sprites/rr/Palossand.png b/src/renderer/public/sprites/rr/Palossand.png new file mode 100644 index 00000000..70318ad5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Palossand.png differ diff --git a/src/renderer/public/sprites/rr/Palpitoad.png b/src/renderer/public/sprites/rr/Palpitoad.png new file mode 100644 index 00000000..b8bc9f9e Binary files /dev/null and b/src/renderer/public/sprites/rr/Palpitoad.png differ diff --git a/src/renderer/public/sprites/rr/Pancham.png b/src/renderer/public/sprites/rr/Pancham.png new file mode 100644 index 00000000..bff57d16 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pancham.png differ diff --git a/src/renderer/public/sprites/rr/Pangoro.png b/src/renderer/public/sprites/rr/Pangoro.png new file mode 100644 index 00000000..7f402827 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pangoro.png differ diff --git a/src/renderer/public/sprites/rr/Panpour.png b/src/renderer/public/sprites/rr/Panpour.png new file mode 100644 index 00000000..fa30a5b4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Panpour.png differ diff --git a/src/renderer/public/sprites/rr/Pansage.png b/src/renderer/public/sprites/rr/Pansage.png new file mode 100644 index 00000000..50e0de54 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pansage.png differ diff --git a/src/renderer/public/sprites/rr/Pansear.png b/src/renderer/public/sprites/rr/Pansear.png new file mode 100644 index 00000000..1deeb297 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pansear.png differ diff --git a/src/renderer/public/sprites/rr/Paras.png b/src/renderer/public/sprites/rr/Paras.png new file mode 100644 index 00000000..93927107 Binary files /dev/null and b/src/renderer/public/sprites/rr/Paras.png differ diff --git a/src/renderer/public/sprites/rr/Parasect.png b/src/renderer/public/sprites/rr/Parasect.png new file mode 100644 index 00000000..fd68bf4e Binary files /dev/null and b/src/renderer/public/sprites/rr/Parasect.png differ diff --git a/src/renderer/public/sprites/rr/Passimian.png b/src/renderer/public/sprites/rr/Passimian.png new file mode 100644 index 00000000..c941b77e Binary files /dev/null and b/src/renderer/public/sprites/rr/Passimian.png differ diff --git a/src/renderer/public/sprites/rr/Patrat.png b/src/renderer/public/sprites/rr/Patrat.png new file mode 100644 index 00000000..133c1446 Binary files /dev/null and b/src/renderer/public/sprites/rr/Patrat.png differ diff --git a/src/renderer/public/sprites/rr/Pawmi.png b/src/renderer/public/sprites/rr/Pawmi.png new file mode 100644 index 00000000..6d59bd2c Binary files /dev/null and b/src/renderer/public/sprites/rr/Pawmi.png differ diff --git a/src/renderer/public/sprites/rr/Pawmo.png b/src/renderer/public/sprites/rr/Pawmo.png new file mode 100644 index 00000000..0adf2f89 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pawmo.png differ diff --git a/src/renderer/public/sprites/rr/Pawmot.png b/src/renderer/public/sprites/rr/Pawmot.png new file mode 100644 index 00000000..f002e749 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pawmot.png differ diff --git a/src/renderer/public/sprites/rr/Pawniard.png b/src/renderer/public/sprites/rr/Pawniard.png new file mode 100644 index 00000000..8830d20a Binary files /dev/null and b/src/renderer/public/sprites/rr/Pawniard.png differ diff --git a/src/renderer/public/sprites/rr/Pelipper.png b/src/renderer/public/sprites/rr/Pelipper.png new file mode 100644 index 00000000..200ae089 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pelipper.png differ diff --git a/src/renderer/public/sprites/rr/Perrserker.png b/src/renderer/public/sprites/rr/Perrserker.png new file mode 100644 index 00000000..363b5725 Binary files /dev/null and b/src/renderer/public/sprites/rr/Perrserker.png differ diff --git a/src/renderer/public/sprites/rr/Persian.png b/src/renderer/public/sprites/rr/Persian.png new file mode 100644 index 00000000..c311af8d Binary files /dev/null and b/src/renderer/public/sprites/rr/Persian.png differ diff --git a/src/renderer/public/sprites/rr/Persiana.png b/src/renderer/public/sprites/rr/Persiana.png new file mode 100644 index 00000000..aa4787e4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Persiana.png differ diff --git a/src/renderer/public/sprites/rr/Petilil.png b/src/renderer/public/sprites/rr/Petilil.png new file mode 100644 index 00000000..af6ddc45 Binary files /dev/null and b/src/renderer/public/sprites/rr/Petilil.png differ diff --git a/src/renderer/public/sprites/rr/Phanpy.png b/src/renderer/public/sprites/rr/Phanpy.png new file mode 100644 index 00000000..846b5f1d Binary files /dev/null and b/src/renderer/public/sprites/rr/Phanpy.png differ diff --git a/src/renderer/public/sprites/rr/Phantump.png b/src/renderer/public/sprites/rr/Phantump.png new file mode 100644 index 00000000..274926f7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Phantump.png differ diff --git a/src/renderer/public/sprites/rr/Pheromosa.png b/src/renderer/public/sprites/rr/Pheromosa.png new file mode 100644 index 00000000..02afbcd4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pheromosa.png differ diff --git a/src/renderer/public/sprites/rr/Phione.png b/src/renderer/public/sprites/rr/Phione.png new file mode 100644 index 00000000..8b1ca356 Binary files /dev/null and b/src/renderer/public/sprites/rr/Phione.png differ diff --git a/src/renderer/public/sprites/rr/Pichu.png b/src/renderer/public/sprites/rr/Pichu.png new file mode 100644 index 00000000..75d4207b Binary files /dev/null and b/src/renderer/public/sprites/rr/Pichu.png differ diff --git a/src/renderer/public/sprites/rr/Pichuspiky.png b/src/renderer/public/sprites/rr/Pichuspiky.png new file mode 100644 index 00000000..1cad9627 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pichuspiky.png differ diff --git a/src/renderer/public/sprites/rr/Pidgeot.png b/src/renderer/public/sprites/rr/Pidgeot.png new file mode 100644 index 00000000..5ac3c25c Binary files /dev/null and b/src/renderer/public/sprites/rr/Pidgeot.png differ diff --git a/src/renderer/public/sprites/rr/Pidgeotmega.png b/src/renderer/public/sprites/rr/Pidgeotmega.png new file mode 100644 index 00000000..1e65c011 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pidgeotmega.png differ diff --git a/src/renderer/public/sprites/rr/Pidgeotto.png b/src/renderer/public/sprites/rr/Pidgeotto.png new file mode 100644 index 00000000..1584ad77 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pidgeotto.png differ diff --git a/src/renderer/public/sprites/rr/Pidgey.png b/src/renderer/public/sprites/rr/Pidgey.png new file mode 100644 index 00000000..d70dae67 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pidgey.png differ diff --git a/src/renderer/public/sprites/rr/Pidove.png b/src/renderer/public/sprites/rr/Pidove.png new file mode 100644 index 00000000..6387fa4f Binary files /dev/null and b/src/renderer/public/sprites/rr/Pidove.png differ diff --git a/src/renderer/public/sprites/rr/Pignite.png b/src/renderer/public/sprites/rr/Pignite.png new file mode 100644 index 00000000..ebb8b2fc Binary files /dev/null and b/src/renderer/public/sprites/rr/Pignite.png differ diff --git a/src/renderer/public/sprites/rr/Pikachu.png b/src/renderer/public/sprites/rr/Pikachu.png new file mode 100644 index 00000000..d4c89df1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachu.png differ diff --git a/src/renderer/public/sprites/rr/Pikachubelle.png b/src/renderer/public/sprites/rr/Pikachubelle.png new file mode 100644 index 00000000..a1ef638f Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachubelle.png differ diff --git a/src/renderer/public/sprites/rr/Pikachucapalola.png b/src/renderer/public/sprites/rr/Pikachucapalola.png new file mode 100644 index 00000000..1fa0cdc4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachucapalola.png differ diff --git a/src/renderer/public/sprites/rr/Pikachucaphoenn.png b/src/renderer/public/sprites/rr/Pikachucaphoenn.png new file mode 100644 index 00000000..1fc013d6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachucaphoenn.png differ diff --git a/src/renderer/public/sprites/rr/Pikachucapkalos.png b/src/renderer/public/sprites/rr/Pikachucapkalos.png new file mode 100644 index 00000000..7ff3a3ea Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachucapkalos.png differ diff --git a/src/renderer/public/sprites/rr/Pikachucaporiginal.png b/src/renderer/public/sprites/rr/Pikachucaporiginal.png new file mode 100644 index 00000000..053ab517 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachucaporiginal.png differ diff --git a/src/renderer/public/sprites/rr/Pikachucappartner.png b/src/renderer/public/sprites/rr/Pikachucappartner.png new file mode 100644 index 00000000..52ba6432 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachucappartner.png differ diff --git a/src/renderer/public/sprites/rr/Pikachucapsinnoh.png b/src/renderer/public/sprites/rr/Pikachucapsinnoh.png new file mode 100644 index 00000000..d23d732b Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachucapsinnoh.png differ diff --git a/src/renderer/public/sprites/rr/Pikachucapunova.png b/src/renderer/public/sprites/rr/Pikachucapunova.png new file mode 100644 index 00000000..50ad6d56 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachucapunova.png differ diff --git a/src/renderer/public/sprites/rr/Pikachucosplay.png b/src/renderer/public/sprites/rr/Pikachucosplay.png new file mode 100644 index 00000000..1a662fbb Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachucosplay.png differ diff --git a/src/renderer/public/sprites/rr/Pikachuflying.png b/src/renderer/public/sprites/rr/Pikachuflying.png new file mode 100644 index 00000000..31f1c43b Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachuflying.png differ diff --git a/src/renderer/public/sprites/rr/Pikachugiga.png b/src/renderer/public/sprites/rr/Pikachugiga.png new file mode 100644 index 00000000..bc56e582 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachugiga.png differ diff --git a/src/renderer/public/sprites/rr/Pikachulibre.png b/src/renderer/public/sprites/rr/Pikachulibre.png new file mode 100644 index 00000000..acb081df Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachulibre.png differ diff --git a/src/renderer/public/sprites/rr/Pikachuphd.png b/src/renderer/public/sprites/rr/Pikachuphd.png new file mode 100644 index 00000000..9784374b Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachuphd.png differ diff --git a/src/renderer/public/sprites/rr/Pikachupopstar.png b/src/renderer/public/sprites/rr/Pikachupopstar.png new file mode 100644 index 00000000..eb9ae0c4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachupopstar.png differ diff --git a/src/renderer/public/sprites/rr/Pikachurockstar.png b/src/renderer/public/sprites/rr/Pikachurockstar.png new file mode 100644 index 00000000..fe1c49d0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachurockstar.png differ diff --git a/src/renderer/public/sprites/rr/Pikachusurfing.png b/src/renderer/public/sprites/rr/Pikachusurfing.png new file mode 100644 index 00000000..e10c1c05 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikachusurfing.png differ diff --git a/src/renderer/public/sprites/rr/Pikipek.png b/src/renderer/public/sprites/rr/Pikipek.png new file mode 100644 index 00000000..ec5b240c Binary files /dev/null and b/src/renderer/public/sprites/rr/Pikipek.png differ diff --git a/src/renderer/public/sprites/rr/Piloswine.png b/src/renderer/public/sprites/rr/Piloswine.png new file mode 100644 index 00000000..f6640a53 Binary files /dev/null and b/src/renderer/public/sprites/rr/Piloswine.png differ diff --git a/src/renderer/public/sprites/rr/Pincurchin.png b/src/renderer/public/sprites/rr/Pincurchin.png new file mode 100644 index 00000000..448dd807 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pincurchin.png differ diff --git a/src/renderer/public/sprites/rr/Pineco.png b/src/renderer/public/sprites/rr/Pineco.png new file mode 100644 index 00000000..34dc315d Binary files /dev/null and b/src/renderer/public/sprites/rr/Pineco.png differ diff --git a/src/renderer/public/sprites/rr/Pinsir.png b/src/renderer/public/sprites/rr/Pinsir.png new file mode 100644 index 00000000..95563910 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pinsir.png differ diff --git a/src/renderer/public/sprites/rr/Pinsirmega.png b/src/renderer/public/sprites/rr/Pinsirmega.png new file mode 100644 index 00000000..f4afe60a Binary files /dev/null and b/src/renderer/public/sprites/rr/Pinsirmega.png differ diff --git a/src/renderer/public/sprites/rr/Piplup.png b/src/renderer/public/sprites/rr/Piplup.png new file mode 100644 index 00000000..0e7d10bf Binary files /dev/null and b/src/renderer/public/sprites/rr/Piplup.png differ diff --git a/src/renderer/public/sprites/rr/Plusle.png b/src/renderer/public/sprites/rr/Plusle.png new file mode 100644 index 00000000..3b042c36 Binary files /dev/null and b/src/renderer/public/sprites/rr/Plusle.png differ diff --git a/src/renderer/public/sprites/rr/Poipole.png b/src/renderer/public/sprites/rr/Poipole.png new file mode 100644 index 00000000..9c2c9cb8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Poipole.png differ diff --git a/src/renderer/public/sprites/rr/Politoed.png b/src/renderer/public/sprites/rr/Politoed.png new file mode 100644 index 00000000..e654dcd5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Politoed.png differ diff --git a/src/renderer/public/sprites/rr/Poliwag.png b/src/renderer/public/sprites/rr/Poliwag.png new file mode 100644 index 00000000..c3e19748 Binary files /dev/null and b/src/renderer/public/sprites/rr/Poliwag.png differ diff --git a/src/renderer/public/sprites/rr/Poliwhirl.png b/src/renderer/public/sprites/rr/Poliwhirl.png new file mode 100644 index 00000000..dca90c7e Binary files /dev/null and b/src/renderer/public/sprites/rr/Poliwhirl.png differ diff --git a/src/renderer/public/sprites/rr/Poliwrath.png b/src/renderer/public/sprites/rr/Poliwrath.png new file mode 100644 index 00000000..36d88d47 Binary files /dev/null and b/src/renderer/public/sprites/rr/Poliwrath.png differ diff --git a/src/renderer/public/sprites/rr/Polteageist.png b/src/renderer/public/sprites/rr/Polteageist.png new file mode 100644 index 00000000..46c38df4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Polteageist.png differ diff --git a/src/renderer/public/sprites/rr/Polteageistchipped.png b/src/renderer/public/sprites/rr/Polteageistchipped.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Polteageistchipped.png differ diff --git a/src/renderer/public/sprites/rr/Ponyta.png b/src/renderer/public/sprites/rr/Ponyta.png new file mode 100644 index 00000000..cff8ab5b Binary files /dev/null and b/src/renderer/public/sprites/rr/Ponyta.png differ diff --git a/src/renderer/public/sprites/rr/Ponytag.png b/src/renderer/public/sprites/rr/Ponytag.png new file mode 100644 index 00000000..837f1bd4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ponytag.png differ diff --git a/src/renderer/public/sprites/rr/Poochyena.png b/src/renderer/public/sprites/rr/Poochyena.png new file mode 100644 index 00000000..6f44120e Binary files /dev/null and b/src/renderer/public/sprites/rr/Poochyena.png differ diff --git a/src/renderer/public/sprites/rr/Popplio.png b/src/renderer/public/sprites/rr/Popplio.png new file mode 100644 index 00000000..8e5a7539 Binary files /dev/null and b/src/renderer/public/sprites/rr/Popplio.png differ diff --git a/src/renderer/public/sprites/rr/Porygon.png b/src/renderer/public/sprites/rr/Porygon.png new file mode 100644 index 00000000..c577e090 Binary files /dev/null and b/src/renderer/public/sprites/rr/Porygon.png differ diff --git a/src/renderer/public/sprites/rr/Porygon2.png b/src/renderer/public/sprites/rr/Porygon2.png new file mode 100644 index 00000000..080aefef Binary files /dev/null and b/src/renderer/public/sprites/rr/Porygon2.png differ diff --git a/src/renderer/public/sprites/rr/Porygonz.png b/src/renderer/public/sprites/rr/Porygonz.png new file mode 100644 index 00000000..d53349f6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Porygonz.png differ diff --git a/src/renderer/public/sprites/rr/Primarina.png b/src/renderer/public/sprites/rr/Primarina.png new file mode 100644 index 00000000..41c7ee32 Binary files /dev/null and b/src/renderer/public/sprites/rr/Primarina.png differ diff --git a/src/renderer/public/sprites/rr/Primeape.png b/src/renderer/public/sprites/rr/Primeape.png new file mode 100644 index 00000000..919bc8d8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Primeape.png differ diff --git a/src/renderer/public/sprites/rr/Prinplup.png b/src/renderer/public/sprites/rr/Prinplup.png new file mode 100644 index 00000000..2bf8c0a6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Prinplup.png differ diff --git a/src/renderer/public/sprites/rr/Probopass.png b/src/renderer/public/sprites/rr/Probopass.png new file mode 100644 index 00000000..e6cd9459 Binary files /dev/null and b/src/renderer/public/sprites/rr/Probopass.png differ diff --git a/src/renderer/public/sprites/rr/Psyduck.png b/src/renderer/public/sprites/rr/Psyduck.png new file mode 100644 index 00000000..100873a3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Psyduck.png differ diff --git a/src/renderer/public/sprites/rr/Pumpkaboo.png b/src/renderer/public/sprites/rr/Pumpkaboo.png new file mode 100644 index 00000000..d29ae088 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pumpkaboo.png differ diff --git a/src/renderer/public/sprites/rr/Pumpkabool.png b/src/renderer/public/sprites/rr/Pumpkabool.png new file mode 100644 index 00000000..70692942 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pumpkabool.png differ diff --git a/src/renderer/public/sprites/rr/Pumpkaboom.png b/src/renderer/public/sprites/rr/Pumpkaboom.png new file mode 100644 index 00000000..d49feacb Binary files /dev/null and b/src/renderer/public/sprites/rr/Pumpkaboom.png differ diff --git a/src/renderer/public/sprites/rr/Pumpkabooxl.png b/src/renderer/public/sprites/rr/Pumpkabooxl.png new file mode 100644 index 00000000..5dda09ff Binary files /dev/null and b/src/renderer/public/sprites/rr/Pumpkabooxl.png differ diff --git a/src/renderer/public/sprites/rr/Pupitar.png b/src/renderer/public/sprites/rr/Pupitar.png new file mode 100644 index 00000000..5b4e14ed Binary files /dev/null and b/src/renderer/public/sprites/rr/Pupitar.png differ diff --git a/src/renderer/public/sprites/rr/Purrloin.png b/src/renderer/public/sprites/rr/Purrloin.png new file mode 100644 index 00000000..9e96eb11 Binary files /dev/null and b/src/renderer/public/sprites/rr/Purrloin.png differ diff --git a/src/renderer/public/sprites/rr/Purugly.png b/src/renderer/public/sprites/rr/Purugly.png new file mode 100644 index 00000000..a680d0f3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Purugly.png differ diff --git a/src/renderer/public/sprites/rr/Pyroar.png b/src/renderer/public/sprites/rr/Pyroar.png new file mode 100644 index 00000000..16da43ec Binary files /dev/null and b/src/renderer/public/sprites/rr/Pyroar.png differ diff --git a/src/renderer/public/sprites/rr/Pyroarfemale.png b/src/renderer/public/sprites/rr/Pyroarfemale.png new file mode 100644 index 00000000..5a41b552 Binary files /dev/null and b/src/renderer/public/sprites/rr/Pyroarfemale.png differ diff --git a/src/renderer/public/sprites/rr/Pyukumuku.png b/src/renderer/public/sprites/rr/Pyukumuku.png new file mode 100644 index 00000000..cc59d81d Binary files /dev/null and b/src/renderer/public/sprites/rr/Pyukumuku.png differ diff --git a/src/renderer/public/sprites/rr/Quagsire.png b/src/renderer/public/sprites/rr/Quagsire.png new file mode 100644 index 00000000..8a8f921c Binary files /dev/null and b/src/renderer/public/sprites/rr/Quagsire.png differ diff --git a/src/renderer/public/sprites/rr/Quaquaval.png b/src/renderer/public/sprites/rr/Quaquaval.png new file mode 100644 index 00000000..52da906f Binary files /dev/null and b/src/renderer/public/sprites/rr/Quaquaval.png differ diff --git a/src/renderer/public/sprites/rr/Quaxly.png b/src/renderer/public/sprites/rr/Quaxly.png new file mode 100644 index 00000000..65b9ab88 Binary files /dev/null and b/src/renderer/public/sprites/rr/Quaxly.png differ diff --git a/src/renderer/public/sprites/rr/Quaxwell.png b/src/renderer/public/sprites/rr/Quaxwell.png new file mode 100644 index 00000000..87bc8d7a Binary files /dev/null and b/src/renderer/public/sprites/rr/Quaxwell.png differ diff --git a/src/renderer/public/sprites/rr/Quilava.png b/src/renderer/public/sprites/rr/Quilava.png new file mode 100644 index 00000000..f7ce1eff Binary files /dev/null and b/src/renderer/public/sprites/rr/Quilava.png differ diff --git a/src/renderer/public/sprites/rr/Quilladin.png b/src/renderer/public/sprites/rr/Quilladin.png new file mode 100644 index 00000000..f5730bd2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Quilladin.png differ diff --git a/src/renderer/public/sprites/rr/Qwilfish.png b/src/renderer/public/sprites/rr/Qwilfish.png new file mode 100644 index 00000000..cdedf9ce Binary files /dev/null and b/src/renderer/public/sprites/rr/Qwilfish.png differ diff --git a/src/renderer/public/sprites/rr/Qwilfishh.png b/src/renderer/public/sprites/rr/Qwilfishh.png new file mode 100644 index 00000000..ec8355d0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Qwilfishh.png differ diff --git a/src/renderer/public/sprites/rr/Raboot.png b/src/renderer/public/sprites/rr/Raboot.png new file mode 100644 index 00000000..7ab274b8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Raboot.png differ diff --git a/src/renderer/public/sprites/rr/Rabsca.png b/src/renderer/public/sprites/rr/Rabsca.png new file mode 100644 index 00000000..6a1b5daa Binary files /dev/null and b/src/renderer/public/sprites/rr/Rabsca.png differ diff --git a/src/renderer/public/sprites/rr/Raichu.png b/src/renderer/public/sprites/rr/Raichu.png new file mode 100644 index 00000000..2f96445a Binary files /dev/null and b/src/renderer/public/sprites/rr/Raichu.png differ diff --git a/src/renderer/public/sprites/rr/Raichua.png b/src/renderer/public/sprites/rr/Raichua.png new file mode 100644 index 00000000..8314bcde Binary files /dev/null and b/src/renderer/public/sprites/rr/Raichua.png differ diff --git a/src/renderer/public/sprites/rr/Raikou.png b/src/renderer/public/sprites/rr/Raikou.png new file mode 100644 index 00000000..b5a3650d Binary files /dev/null and b/src/renderer/public/sprites/rr/Raikou.png differ diff --git a/src/renderer/public/sprites/rr/Ralts.png b/src/renderer/public/sprites/rr/Ralts.png new file mode 100644 index 00000000..ec1e3996 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ralts.png differ diff --git a/src/renderer/public/sprites/rr/Rampardos.png b/src/renderer/public/sprites/rr/Rampardos.png new file mode 100644 index 00000000..ee5db670 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rampardos.png differ diff --git a/src/renderer/public/sprites/rr/Rapidash.png b/src/renderer/public/sprites/rr/Rapidash.png new file mode 100644 index 00000000..783775b8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rapidash.png differ diff --git a/src/renderer/public/sprites/rr/Rapidashg.png b/src/renderer/public/sprites/rr/Rapidashg.png new file mode 100644 index 00000000..180db130 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rapidashg.png differ diff --git a/src/renderer/public/sprites/rr/Raticate.png b/src/renderer/public/sprites/rr/Raticate.png new file mode 100644 index 00000000..f3703fb4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Raticate.png differ diff --git a/src/renderer/public/sprites/rr/Raticatea.png b/src/renderer/public/sprites/rr/Raticatea.png new file mode 100644 index 00000000..f4b3b048 Binary files /dev/null and b/src/renderer/public/sprites/rr/Raticatea.png differ diff --git a/src/renderer/public/sprites/rr/Rattata.png b/src/renderer/public/sprites/rr/Rattata.png new file mode 100644 index 00000000..87a004f3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rattata.png differ diff --git a/src/renderer/public/sprites/rr/Rattataa.png b/src/renderer/public/sprites/rr/Rattataa.png new file mode 100644 index 00000000..000cc00c Binary files /dev/null and b/src/renderer/public/sprites/rr/Rattataa.png differ diff --git a/src/renderer/public/sprites/rr/Rayquaza.png b/src/renderer/public/sprites/rr/Rayquaza.png new file mode 100644 index 00000000..32921c93 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rayquaza.png differ diff --git a/src/renderer/public/sprites/rr/Rayquazamega.png b/src/renderer/public/sprites/rr/Rayquazamega.png new file mode 100644 index 00000000..1f32b5f7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rayquazamega.png differ diff --git a/src/renderer/public/sprites/rr/Regice.png b/src/renderer/public/sprites/rr/Regice.png new file mode 100644 index 00000000..d66da3c7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Regice.png differ diff --git a/src/renderer/public/sprites/rr/Regidrago.png b/src/renderer/public/sprites/rr/Regidrago.png new file mode 100644 index 00000000..03883e84 Binary files /dev/null and b/src/renderer/public/sprites/rr/Regidrago.png differ diff --git a/src/renderer/public/sprites/rr/Regieleki.png b/src/renderer/public/sprites/rr/Regieleki.png new file mode 100644 index 00000000..d36b50e8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Regieleki.png differ diff --git a/src/renderer/public/sprites/rr/Regigigas.png b/src/renderer/public/sprites/rr/Regigigas.png new file mode 100644 index 00000000..90e578b0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Regigigas.png differ diff --git a/src/renderer/public/sprites/rr/Regirock.png b/src/renderer/public/sprites/rr/Regirock.png new file mode 100644 index 00000000..5100bb38 Binary files /dev/null and b/src/renderer/public/sprites/rr/Regirock.png differ diff --git a/src/renderer/public/sprites/rr/Registeel.png b/src/renderer/public/sprites/rr/Registeel.png new file mode 100644 index 00000000..f4305c74 Binary files /dev/null and b/src/renderer/public/sprites/rr/Registeel.png differ diff --git a/src/renderer/public/sprites/rr/Relicanth.png b/src/renderer/public/sprites/rr/Relicanth.png new file mode 100644 index 00000000..dfbd7e37 Binary files /dev/null and b/src/renderer/public/sprites/rr/Relicanth.png differ diff --git a/src/renderer/public/sprites/rr/Rellor.png b/src/renderer/public/sprites/rr/Rellor.png new file mode 100644 index 00000000..1d9a81d4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rellor.png differ diff --git a/src/renderer/public/sprites/rr/Remoraid.png b/src/renderer/public/sprites/rr/Remoraid.png new file mode 100644 index 00000000..249b512c Binary files /dev/null and b/src/renderer/public/sprites/rr/Remoraid.png differ diff --git a/src/renderer/public/sprites/rr/Reshiram.png b/src/renderer/public/sprites/rr/Reshiram.png new file mode 100644 index 00000000..26721f91 Binary files /dev/null and b/src/renderer/public/sprites/rr/Reshiram.png differ diff --git a/src/renderer/public/sprites/rr/Reuniclus.png b/src/renderer/public/sprites/rr/Reuniclus.png new file mode 100644 index 00000000..f3ce2d0a Binary files /dev/null and b/src/renderer/public/sprites/rr/Reuniclus.png differ diff --git a/src/renderer/public/sprites/rr/Revavroom.png b/src/renderer/public/sprites/rr/Revavroom.png new file mode 100644 index 00000000..3622eace Binary files /dev/null and b/src/renderer/public/sprites/rr/Revavroom.png differ diff --git a/src/renderer/public/sprites/rr/Rhydon.png b/src/renderer/public/sprites/rr/Rhydon.png new file mode 100644 index 00000000..71a14694 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rhydon.png differ diff --git a/src/renderer/public/sprites/rr/Rhyhorn.png b/src/renderer/public/sprites/rr/Rhyhorn.png new file mode 100644 index 00000000..f8649087 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rhyhorn.png differ diff --git a/src/renderer/public/sprites/rr/Rhyperior.png b/src/renderer/public/sprites/rr/Rhyperior.png new file mode 100644 index 00000000..3a25d087 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rhyperior.png differ diff --git a/src/renderer/public/sprites/rr/Ribombee.png b/src/renderer/public/sprites/rr/Ribombee.png new file mode 100644 index 00000000..44f1d1e3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ribombee.png differ diff --git a/src/renderer/public/sprites/rr/Rillaboom.png b/src/renderer/public/sprites/rr/Rillaboom.png new file mode 100644 index 00000000..64437202 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rillaboom.png differ diff --git a/src/renderer/public/sprites/rr/Rillaboomgiga.png b/src/renderer/public/sprites/rr/Rillaboomgiga.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rillaboomgiga.png differ diff --git a/src/renderer/public/sprites/rr/Riolu.png b/src/renderer/public/sprites/rr/Riolu.png new file mode 100644 index 00000000..c1a970c8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Riolu.png differ diff --git a/src/renderer/public/sprites/rr/Roaringmoon.png b/src/renderer/public/sprites/rr/Roaringmoon.png new file mode 100644 index 00000000..1406587f Binary files /dev/null and b/src/renderer/public/sprites/rr/Roaringmoon.png differ diff --git a/src/renderer/public/sprites/rr/Rockruff.png b/src/renderer/public/sprites/rr/Rockruff.png new file mode 100644 index 00000000..32d0f2d2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rockruff.png differ diff --git a/src/renderer/public/sprites/rr/Roggenrola.png b/src/renderer/public/sprites/rr/Roggenrola.png new file mode 100644 index 00000000..3097ada9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Roggenrola.png differ diff --git a/src/renderer/public/sprites/rr/Rolycoly.png b/src/renderer/public/sprites/rr/Rolycoly.png new file mode 100644 index 00000000..38055576 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rolycoly.png differ diff --git a/src/renderer/public/sprites/rr/Rookidee.png b/src/renderer/public/sprites/rr/Rookidee.png new file mode 100644 index 00000000..d747dd49 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rookidee.png differ diff --git a/src/renderer/public/sprites/rr/Roselia.png b/src/renderer/public/sprites/rr/Roselia.png new file mode 100644 index 00000000..faa7154b Binary files /dev/null and b/src/renderer/public/sprites/rr/Roselia.png differ diff --git a/src/renderer/public/sprites/rr/Roserade.png b/src/renderer/public/sprites/rr/Roserade.png new file mode 100644 index 00000000..159c55c8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Roserade.png differ diff --git a/src/renderer/public/sprites/rr/Rotom.png b/src/renderer/public/sprites/rr/Rotom.png new file mode 100644 index 00000000..fc59357a Binary files /dev/null and b/src/renderer/public/sprites/rr/Rotom.png differ diff --git a/src/renderer/public/sprites/rr/Rotomfan.png b/src/renderer/public/sprites/rr/Rotomfan.png new file mode 100644 index 00000000..b676f5f0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rotomfan.png differ diff --git a/src/renderer/public/sprites/rr/Rotomfrost.png b/src/renderer/public/sprites/rr/Rotomfrost.png new file mode 100644 index 00000000..ae346ef3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rotomfrost.png differ diff --git a/src/renderer/public/sprites/rr/Rotomheat.png b/src/renderer/public/sprites/rr/Rotomheat.png new file mode 100644 index 00000000..de510b61 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rotomheat.png differ diff --git a/src/renderer/public/sprites/rr/Rotommow.png b/src/renderer/public/sprites/rr/Rotommow.png new file mode 100644 index 00000000..5321a99d Binary files /dev/null and b/src/renderer/public/sprites/rr/Rotommow.png differ diff --git a/src/renderer/public/sprites/rr/Rotomwash.png b/src/renderer/public/sprites/rr/Rotomwash.png new file mode 100644 index 00000000..e6bfc2f3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rotomwash.png differ diff --git a/src/renderer/public/sprites/rr/Rowlet.png b/src/renderer/public/sprites/rr/Rowlet.png new file mode 100644 index 00000000..3145c317 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rowlet.png differ diff --git a/src/renderer/public/sprites/rr/Rufflet.png b/src/renderer/public/sprites/rr/Rufflet.png new file mode 100644 index 00000000..717265e9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Rufflet.png differ diff --git a/src/renderer/public/sprites/rr/Runerigus.png b/src/renderer/public/sprites/rr/Runerigus.png new file mode 100644 index 00000000..c13abbfe Binary files /dev/null and b/src/renderer/public/sprites/rr/Runerigus.png differ diff --git a/src/renderer/public/sprites/rr/Sableye.png b/src/renderer/public/sprites/rr/Sableye.png new file mode 100644 index 00000000..b71fd81d Binary files /dev/null and b/src/renderer/public/sprites/rr/Sableye.png differ diff --git a/src/renderer/public/sprites/rr/Sableyemega.png b/src/renderer/public/sprites/rr/Sableyemega.png new file mode 100644 index 00000000..55610a1d Binary files /dev/null and b/src/renderer/public/sprites/rr/Sableyemega.png differ diff --git a/src/renderer/public/sprites/rr/Salamence.png b/src/renderer/public/sprites/rr/Salamence.png new file mode 100644 index 00000000..e8dd16f2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Salamence.png differ diff --git a/src/renderer/public/sprites/rr/Salamencemega.png b/src/renderer/public/sprites/rr/Salamencemega.png new file mode 100644 index 00000000..b3966b99 Binary files /dev/null and b/src/renderer/public/sprites/rr/Salamencemega.png differ diff --git a/src/renderer/public/sprites/rr/Salandit.png b/src/renderer/public/sprites/rr/Salandit.png new file mode 100644 index 00000000..4459ec41 Binary files /dev/null and b/src/renderer/public/sprites/rr/Salandit.png differ diff --git a/src/renderer/public/sprites/rr/Salazzle.png b/src/renderer/public/sprites/rr/Salazzle.png new file mode 100644 index 00000000..50ff267c Binary files /dev/null and b/src/renderer/public/sprites/rr/Salazzle.png differ diff --git a/src/renderer/public/sprites/rr/Samurott.png b/src/renderer/public/sprites/rr/Samurott.png new file mode 100644 index 00000000..bc0ca1f7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Samurott.png differ diff --git a/src/renderer/public/sprites/rr/Samurotth.png b/src/renderer/public/sprites/rr/Samurotth.png new file mode 100644 index 00000000..e8375a20 Binary files /dev/null and b/src/renderer/public/sprites/rr/Samurotth.png differ diff --git a/src/renderer/public/sprites/rr/Sandaconda.png b/src/renderer/public/sprites/rr/Sandaconda.png new file mode 100644 index 00000000..f7659e87 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sandaconda.png differ diff --git a/src/renderer/public/sprites/rr/Sandacondagiga.png b/src/renderer/public/sprites/rr/Sandacondagiga.png new file mode 100644 index 00000000..554ac5c1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sandacondagiga.png differ diff --git a/src/renderer/public/sprites/rr/Sandile.png b/src/renderer/public/sprites/rr/Sandile.png new file mode 100644 index 00000000..3c021136 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sandile.png differ diff --git a/src/renderer/public/sprites/rr/Sandshrew.png b/src/renderer/public/sprites/rr/Sandshrew.png new file mode 100644 index 00000000..57c73163 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sandshrew.png differ diff --git a/src/renderer/public/sprites/rr/Sandshrewa.png b/src/renderer/public/sprites/rr/Sandshrewa.png new file mode 100644 index 00000000..9cc17c0e Binary files /dev/null and b/src/renderer/public/sprites/rr/Sandshrewa.png differ diff --git a/src/renderer/public/sprites/rr/Sandslash.png b/src/renderer/public/sprites/rr/Sandslash.png new file mode 100644 index 00000000..a3f504c7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sandslash.png differ diff --git a/src/renderer/public/sprites/rr/Sandslasha.png b/src/renderer/public/sprites/rr/Sandslasha.png new file mode 100644 index 00000000..d14d2542 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sandslasha.png differ diff --git a/src/renderer/public/sprites/rr/Sandygast.png b/src/renderer/public/sprites/rr/Sandygast.png new file mode 100644 index 00000000..a390b130 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sandygast.png differ diff --git a/src/renderer/public/sprites/rr/Sandyshocks.png b/src/renderer/public/sprites/rr/Sandyshocks.png new file mode 100644 index 00000000..ddb6bd38 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sandyshocks.png differ diff --git a/src/renderer/public/sprites/rr/Sawk.png b/src/renderer/public/sprites/rr/Sawk.png new file mode 100644 index 00000000..46492a27 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sawk.png differ diff --git a/src/renderer/public/sprites/rr/Sawsbuck.png b/src/renderer/public/sprites/rr/Sawsbuck.png new file mode 100644 index 00000000..156da00f Binary files /dev/null and b/src/renderer/public/sprites/rr/Sawsbuck.png differ diff --git a/src/renderer/public/sprites/rr/Sawsbuckautumn.png b/src/renderer/public/sprites/rr/Sawsbuckautumn.png new file mode 100644 index 00000000..f053a290 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sawsbuckautumn.png differ diff --git a/src/renderer/public/sprites/rr/Sawsbucksummer.png b/src/renderer/public/sprites/rr/Sawsbucksummer.png new file mode 100644 index 00000000..ec21d59f Binary files /dev/null and b/src/renderer/public/sprites/rr/Sawsbucksummer.png differ diff --git a/src/renderer/public/sprites/rr/Sawsbuckwinter.png b/src/renderer/public/sprites/rr/Sawsbuckwinter.png new file mode 100644 index 00000000..ea0d4cb3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sawsbuckwinter.png differ diff --git a/src/renderer/public/sprites/rr/Scatterbug.png b/src/renderer/public/sprites/rr/Scatterbug.png new file mode 100644 index 00000000..45fb87c9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Scatterbug.png differ diff --git a/src/renderer/public/sprites/rr/Sceptile.png b/src/renderer/public/sprites/rr/Sceptile.png new file mode 100644 index 00000000..fa7271cc Binary files /dev/null and b/src/renderer/public/sprites/rr/Sceptile.png differ diff --git a/src/renderer/public/sprites/rr/Sceptilemega.png b/src/renderer/public/sprites/rr/Sceptilemega.png new file mode 100644 index 00000000..24a088ff Binary files /dev/null and b/src/renderer/public/sprites/rr/Sceptilemega.png differ diff --git a/src/renderer/public/sprites/rr/Scizor.png b/src/renderer/public/sprites/rr/Scizor.png new file mode 100644 index 00000000..98165d9d Binary files /dev/null and b/src/renderer/public/sprites/rr/Scizor.png differ diff --git a/src/renderer/public/sprites/rr/Scizormega.png b/src/renderer/public/sprites/rr/Scizormega.png new file mode 100644 index 00000000..40f80668 Binary files /dev/null and b/src/renderer/public/sprites/rr/Scizormega.png differ diff --git a/src/renderer/public/sprites/rr/Scolipede.png b/src/renderer/public/sprites/rr/Scolipede.png new file mode 100644 index 00000000..ddc692e2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Scolipede.png differ diff --git a/src/renderer/public/sprites/rr/Scorbunny.png b/src/renderer/public/sprites/rr/Scorbunny.png new file mode 100644 index 00000000..25ba9c16 Binary files /dev/null and b/src/renderer/public/sprites/rr/Scorbunny.png differ diff --git a/src/renderer/public/sprites/rr/Scovillain.png b/src/renderer/public/sprites/rr/Scovillain.png new file mode 100644 index 00000000..04afd32b Binary files /dev/null and b/src/renderer/public/sprites/rr/Scovillain.png differ diff --git a/src/renderer/public/sprites/rr/Scrafty.png b/src/renderer/public/sprites/rr/Scrafty.png new file mode 100644 index 00000000..19ec0519 Binary files /dev/null and b/src/renderer/public/sprites/rr/Scrafty.png differ diff --git a/src/renderer/public/sprites/rr/Scraggy.png b/src/renderer/public/sprites/rr/Scraggy.png new file mode 100644 index 00000000..a6e17e67 Binary files /dev/null and b/src/renderer/public/sprites/rr/Scraggy.png differ diff --git a/src/renderer/public/sprites/rr/Screamtail.png b/src/renderer/public/sprites/rr/Screamtail.png new file mode 100644 index 00000000..fa03e263 Binary files /dev/null and b/src/renderer/public/sprites/rr/Screamtail.png differ diff --git a/src/renderer/public/sprites/rr/Scyther.png b/src/renderer/public/sprites/rr/Scyther.png new file mode 100644 index 00000000..0abd9324 Binary files /dev/null and b/src/renderer/public/sprites/rr/Scyther.png differ diff --git a/src/renderer/public/sprites/rr/Seadra.png b/src/renderer/public/sprites/rr/Seadra.png new file mode 100644 index 00000000..114eebec Binary files /dev/null and b/src/renderer/public/sprites/rr/Seadra.png differ diff --git a/src/renderer/public/sprites/rr/Seaking.png b/src/renderer/public/sprites/rr/Seaking.png new file mode 100644 index 00000000..88809129 Binary files /dev/null and b/src/renderer/public/sprites/rr/Seaking.png differ diff --git a/src/renderer/public/sprites/rr/Sealeo.png b/src/renderer/public/sprites/rr/Sealeo.png new file mode 100644 index 00000000..8389f5a0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sealeo.png differ diff --git a/src/renderer/public/sprites/rr/Seedot.png b/src/renderer/public/sprites/rr/Seedot.png new file mode 100644 index 00000000..6f1a5f88 Binary files /dev/null and b/src/renderer/public/sprites/rr/Seedot.png differ diff --git a/src/renderer/public/sprites/rr/Seel.png b/src/renderer/public/sprites/rr/Seel.png new file mode 100644 index 00000000..084847aa Binary files /dev/null and b/src/renderer/public/sprites/rr/Seel.png differ diff --git a/src/renderer/public/sprites/rr/Seismitoad.png b/src/renderer/public/sprites/rr/Seismitoad.png new file mode 100644 index 00000000..6cec370a Binary files /dev/null and b/src/renderer/public/sprites/rr/Seismitoad.png differ diff --git a/src/renderer/public/sprites/rr/Sentret.png b/src/renderer/public/sprites/rr/Sentret.png new file mode 100644 index 00000000..82e2caa2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sentret.png differ diff --git a/src/renderer/public/sprites/rr/Serperior.png b/src/renderer/public/sprites/rr/Serperior.png new file mode 100644 index 00000000..ab0c116e Binary files /dev/null and b/src/renderer/public/sprites/rr/Serperior.png differ diff --git a/src/renderer/public/sprites/rr/Servine.png b/src/renderer/public/sprites/rr/Servine.png new file mode 100644 index 00000000..db42f52d Binary files /dev/null and b/src/renderer/public/sprites/rr/Servine.png differ diff --git a/src/renderer/public/sprites/rr/Seviper.png b/src/renderer/public/sprites/rr/Seviper.png new file mode 100644 index 00000000..2554f1d4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Seviper.png differ diff --git a/src/renderer/public/sprites/rr/Sewaddle.png b/src/renderer/public/sprites/rr/Sewaddle.png new file mode 100644 index 00000000..363541e5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sewaddle.png differ diff --git a/src/renderer/public/sprites/rr/Sharpedo.png b/src/renderer/public/sprites/rr/Sharpedo.png new file mode 100644 index 00000000..4a2d85fe Binary files /dev/null and b/src/renderer/public/sprites/rr/Sharpedo.png differ diff --git a/src/renderer/public/sprites/rr/Sharpedomega.png b/src/renderer/public/sprites/rr/Sharpedomega.png new file mode 100644 index 00000000..28bacb91 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sharpedomega.png differ diff --git a/src/renderer/public/sprites/rr/Shaymin.png b/src/renderer/public/sprites/rr/Shaymin.png new file mode 100644 index 00000000..b4b44149 Binary files /dev/null and b/src/renderer/public/sprites/rr/Shaymin.png differ diff --git a/src/renderer/public/sprites/rr/Shayminsky.png b/src/renderer/public/sprites/rr/Shayminsky.png new file mode 100644 index 00000000..428e44fc Binary files /dev/null and b/src/renderer/public/sprites/rr/Shayminsky.png differ diff --git a/src/renderer/public/sprites/rr/Shedinja.png b/src/renderer/public/sprites/rr/Shedinja.png new file mode 100644 index 00000000..73b42591 Binary files /dev/null and b/src/renderer/public/sprites/rr/Shedinja.png differ diff --git a/src/renderer/public/sprites/rr/Shelgon.png b/src/renderer/public/sprites/rr/Shelgon.png new file mode 100644 index 00000000..7c7f9fbc Binary files /dev/null and b/src/renderer/public/sprites/rr/Shelgon.png differ diff --git a/src/renderer/public/sprites/rr/Shellder.png b/src/renderer/public/sprites/rr/Shellder.png new file mode 100644 index 00000000..2295683d Binary files /dev/null and b/src/renderer/public/sprites/rr/Shellder.png differ diff --git a/src/renderer/public/sprites/rr/Shellos.png b/src/renderer/public/sprites/rr/Shellos.png new file mode 100644 index 00000000..92fbdc47 Binary files /dev/null and b/src/renderer/public/sprites/rr/Shellos.png differ diff --git a/src/renderer/public/sprites/rr/Shelloseast.png b/src/renderer/public/sprites/rr/Shelloseast.png new file mode 100644 index 00000000..09b5d5f0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Shelloseast.png differ diff --git a/src/renderer/public/sprites/rr/Shelmet.png b/src/renderer/public/sprites/rr/Shelmet.png new file mode 100644 index 00000000..ca40a541 Binary files /dev/null and b/src/renderer/public/sprites/rr/Shelmet.png differ diff --git a/src/renderer/public/sprites/rr/Shieldon.png b/src/renderer/public/sprites/rr/Shieldon.png new file mode 100644 index 00000000..697b51e6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Shieldon.png differ diff --git a/src/renderer/public/sprites/rr/Shiftry.png b/src/renderer/public/sprites/rr/Shiftry.png new file mode 100644 index 00000000..844ea595 Binary files /dev/null and b/src/renderer/public/sprites/rr/Shiftry.png differ diff --git a/src/renderer/public/sprites/rr/Shiinotic.png b/src/renderer/public/sprites/rr/Shiinotic.png new file mode 100644 index 00000000..490528fa Binary files /dev/null and b/src/renderer/public/sprites/rr/Shiinotic.png differ diff --git a/src/renderer/public/sprites/rr/Shinx.png b/src/renderer/public/sprites/rr/Shinx.png new file mode 100644 index 00000000..3b2bc437 Binary files /dev/null and b/src/renderer/public/sprites/rr/Shinx.png differ diff --git a/src/renderer/public/sprites/rr/Shroodle.png b/src/renderer/public/sprites/rr/Shroodle.png new file mode 100644 index 00000000..06ea1a13 Binary files /dev/null and b/src/renderer/public/sprites/rr/Shroodle.png differ diff --git a/src/renderer/public/sprites/rr/Shroomish.png b/src/renderer/public/sprites/rr/Shroomish.png new file mode 100644 index 00000000..a725b5e6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Shroomish.png differ diff --git a/src/renderer/public/sprites/rr/Shuckle.png b/src/renderer/public/sprites/rr/Shuckle.png new file mode 100644 index 00000000..0d1672d4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Shuckle.png differ diff --git a/src/renderer/public/sprites/rr/Shuppet.png b/src/renderer/public/sprites/rr/Shuppet.png new file mode 100644 index 00000000..bf048d06 Binary files /dev/null and b/src/renderer/public/sprites/rr/Shuppet.png differ diff --git a/src/renderer/public/sprites/rr/Sigilyph.png b/src/renderer/public/sprites/rr/Sigilyph.png new file mode 100644 index 00000000..13f7ffb1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sigilyph.png differ diff --git a/src/renderer/public/sprites/rr/Silcoon.png b/src/renderer/public/sprites/rr/Silcoon.png new file mode 100644 index 00000000..cd20d34c Binary files /dev/null and b/src/renderer/public/sprites/rr/Silcoon.png differ diff --git a/src/renderer/public/sprites/rr/Silicobra.png b/src/renderer/public/sprites/rr/Silicobra.png new file mode 100644 index 00000000..b2f81cbb Binary files /dev/null and b/src/renderer/public/sprites/rr/Silicobra.png differ diff --git a/src/renderer/public/sprites/rr/Silvally.png b/src/renderer/public/sprites/rr/Silvally.png new file mode 100644 index 00000000..cb6842c2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvally.png differ diff --git a/src/renderer/public/sprites/rr/Silvallybug.png b/src/renderer/public/sprites/rr/Silvallybug.png new file mode 100644 index 00000000..6b1912a1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallybug.png differ diff --git a/src/renderer/public/sprites/rr/Silvallydark.png b/src/renderer/public/sprites/rr/Silvallydark.png new file mode 100644 index 00000000..11ad0111 Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallydark.png differ diff --git a/src/renderer/public/sprites/rr/Silvallydragon.png b/src/renderer/public/sprites/rr/Silvallydragon.png new file mode 100644 index 00000000..bc26d310 Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallydragon.png differ diff --git a/src/renderer/public/sprites/rr/Silvallyelectric.png b/src/renderer/public/sprites/rr/Silvallyelectric.png new file mode 100644 index 00000000..21b01728 Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallyelectric.png differ diff --git a/src/renderer/public/sprites/rr/Silvallyfairy.png b/src/renderer/public/sprites/rr/Silvallyfairy.png new file mode 100644 index 00000000..6922b6d0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallyfairy.png differ diff --git a/src/renderer/public/sprites/rr/Silvallyfight.png b/src/renderer/public/sprites/rr/Silvallyfight.png new file mode 100644 index 00000000..b3d5ca47 Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallyfight.png differ diff --git a/src/renderer/public/sprites/rr/Silvallyfire.png b/src/renderer/public/sprites/rr/Silvallyfire.png new file mode 100644 index 00000000..65a928fb Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallyfire.png differ diff --git a/src/renderer/public/sprites/rr/Silvallyflying.png b/src/renderer/public/sprites/rr/Silvallyflying.png new file mode 100644 index 00000000..7546780b Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallyflying.png differ diff --git a/src/renderer/public/sprites/rr/Silvallyghost.png b/src/renderer/public/sprites/rr/Silvallyghost.png new file mode 100644 index 00000000..b784828f Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallyghost.png differ diff --git a/src/renderer/public/sprites/rr/Silvallygrass.png b/src/renderer/public/sprites/rr/Silvallygrass.png new file mode 100644 index 00000000..1137526e Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallygrass.png differ diff --git a/src/renderer/public/sprites/rr/Silvallyground.png b/src/renderer/public/sprites/rr/Silvallyground.png new file mode 100644 index 00000000..c0574e83 Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallyground.png differ diff --git a/src/renderer/public/sprites/rr/Silvallyice.png b/src/renderer/public/sprites/rr/Silvallyice.png new file mode 100644 index 00000000..288e1266 Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallyice.png differ diff --git a/src/renderer/public/sprites/rr/Silvallypoison.png b/src/renderer/public/sprites/rr/Silvallypoison.png new file mode 100644 index 00000000..3b8bcbd3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallypoison.png differ diff --git a/src/renderer/public/sprites/rr/Silvallypsychic.png b/src/renderer/public/sprites/rr/Silvallypsychic.png new file mode 100644 index 00000000..1ec0349e Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallypsychic.png differ diff --git a/src/renderer/public/sprites/rr/Silvallyrock.png b/src/renderer/public/sprites/rr/Silvallyrock.png new file mode 100644 index 00000000..72cbc226 Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallyrock.png differ diff --git a/src/renderer/public/sprites/rr/Silvallysteel.png b/src/renderer/public/sprites/rr/Silvallysteel.png new file mode 100644 index 00000000..3987d3c1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallysteel.png differ diff --git a/src/renderer/public/sprites/rr/Silvallywater.png b/src/renderer/public/sprites/rr/Silvallywater.png new file mode 100644 index 00000000..1b897617 Binary files /dev/null and b/src/renderer/public/sprites/rr/Silvallywater.png differ diff --git a/src/renderer/public/sprites/rr/Simipour.png b/src/renderer/public/sprites/rr/Simipour.png new file mode 100644 index 00000000..a605ecfa Binary files /dev/null and b/src/renderer/public/sprites/rr/Simipour.png differ diff --git a/src/renderer/public/sprites/rr/Simisage.png b/src/renderer/public/sprites/rr/Simisage.png new file mode 100644 index 00000000..e888da28 Binary files /dev/null and b/src/renderer/public/sprites/rr/Simisage.png differ diff --git a/src/renderer/public/sprites/rr/Simisear.png b/src/renderer/public/sprites/rr/Simisear.png new file mode 100644 index 00000000..6282a1fb Binary files /dev/null and b/src/renderer/public/sprites/rr/Simisear.png differ diff --git a/src/renderer/public/sprites/rr/Sinistea.png b/src/renderer/public/sprites/rr/Sinistea.png new file mode 100644 index 00000000..514d6f89 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sinistea.png differ diff --git a/src/renderer/public/sprites/rr/Sinisteachipped.png b/src/renderer/public/sprites/rr/Sinisteachipped.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sinisteachipped.png differ diff --git a/src/renderer/public/sprites/rr/Sirfetchd.png b/src/renderer/public/sprites/rr/Sirfetchd.png new file mode 100644 index 00000000..f1fb6233 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sirfetchd.png differ diff --git a/src/renderer/public/sprites/rr/Sizzlipede.png b/src/renderer/public/sprites/rr/Sizzlipede.png new file mode 100644 index 00000000..1eb4cde1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sizzlipede.png differ diff --git a/src/renderer/public/sprites/rr/Sizzlipedes.png b/src/renderer/public/sprites/rr/Sizzlipedes.png new file mode 100644 index 00000000..60506e71 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sizzlipedes.png differ diff --git a/src/renderer/public/sprites/rr/Skarmory.png b/src/renderer/public/sprites/rr/Skarmory.png new file mode 100644 index 00000000..1106956b Binary files /dev/null and b/src/renderer/public/sprites/rr/Skarmory.png differ diff --git a/src/renderer/public/sprites/rr/Skeledirge.png b/src/renderer/public/sprites/rr/Skeledirge.png new file mode 100644 index 00000000..2468ed24 Binary files /dev/null and b/src/renderer/public/sprites/rr/Skeledirge.png differ diff --git a/src/renderer/public/sprites/rr/Skiddo.png b/src/renderer/public/sprites/rr/Skiddo.png new file mode 100644 index 00000000..3b68ed47 Binary files /dev/null and b/src/renderer/public/sprites/rr/Skiddo.png differ diff --git a/src/renderer/public/sprites/rr/Skiploom.png b/src/renderer/public/sprites/rr/Skiploom.png new file mode 100644 index 00000000..5c7c1081 Binary files /dev/null and b/src/renderer/public/sprites/rr/Skiploom.png differ diff --git a/src/renderer/public/sprites/rr/Skitty.png b/src/renderer/public/sprites/rr/Skitty.png new file mode 100644 index 00000000..28a92b53 Binary files /dev/null and b/src/renderer/public/sprites/rr/Skitty.png differ diff --git a/src/renderer/public/sprites/rr/Skorupi.png b/src/renderer/public/sprites/rr/Skorupi.png new file mode 100644 index 00000000..31025749 Binary files /dev/null and b/src/renderer/public/sprites/rr/Skorupi.png differ diff --git a/src/renderer/public/sprites/rr/Skrelp.png b/src/renderer/public/sprites/rr/Skrelp.png new file mode 100644 index 00000000..3b342e5d Binary files /dev/null and b/src/renderer/public/sprites/rr/Skrelp.png differ diff --git a/src/renderer/public/sprites/rr/Skuntank.png b/src/renderer/public/sprites/rr/Skuntank.png new file mode 100644 index 00000000..20f094d0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Skuntank.png differ diff --git a/src/renderer/public/sprites/rr/Skwovet.png b/src/renderer/public/sprites/rr/Skwovet.png new file mode 100644 index 00000000..233a13a5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Skwovet.png differ diff --git a/src/renderer/public/sprites/rr/Slaking.png b/src/renderer/public/sprites/rr/Slaking.png new file mode 100644 index 00000000..4c850b92 Binary files /dev/null and b/src/renderer/public/sprites/rr/Slaking.png differ diff --git a/src/renderer/public/sprites/rr/Slakoth.png b/src/renderer/public/sprites/rr/Slakoth.png new file mode 100644 index 00000000..9bc90180 Binary files /dev/null and b/src/renderer/public/sprites/rr/Slakoth.png differ diff --git a/src/renderer/public/sprites/rr/Sliggoo.png b/src/renderer/public/sprites/rr/Sliggoo.png new file mode 100644 index 00000000..a4c41e9c Binary files /dev/null and b/src/renderer/public/sprites/rr/Sliggoo.png differ diff --git a/src/renderer/public/sprites/rr/Sliggooh.png b/src/renderer/public/sprites/rr/Sliggooh.png new file mode 100644 index 00000000..294254c4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sliggooh.png differ diff --git a/src/renderer/public/sprites/rr/Slitherwing.png b/src/renderer/public/sprites/rr/Slitherwing.png new file mode 100644 index 00000000..04ecaac0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Slitherwing.png differ diff --git a/src/renderer/public/sprites/rr/Slowbro.png b/src/renderer/public/sprites/rr/Slowbro.png new file mode 100644 index 00000000..a1eef78d Binary files /dev/null and b/src/renderer/public/sprites/rr/Slowbro.png differ diff --git a/src/renderer/public/sprites/rr/Slowbrog.png b/src/renderer/public/sprites/rr/Slowbrog.png new file mode 100644 index 00000000..d0378b0a Binary files /dev/null and b/src/renderer/public/sprites/rr/Slowbrog.png differ diff --git a/src/renderer/public/sprites/rr/Slowbromega.png b/src/renderer/public/sprites/rr/Slowbromega.png new file mode 100644 index 00000000..2ef7f633 Binary files /dev/null and b/src/renderer/public/sprites/rr/Slowbromega.png differ diff --git a/src/renderer/public/sprites/rr/Slowking.png b/src/renderer/public/sprites/rr/Slowking.png new file mode 100644 index 00000000..a9cfe664 Binary files /dev/null and b/src/renderer/public/sprites/rr/Slowking.png differ diff --git a/src/renderer/public/sprites/rr/Slowkingg.png b/src/renderer/public/sprites/rr/Slowkingg.png new file mode 100644 index 00000000..e326bc9a Binary files /dev/null and b/src/renderer/public/sprites/rr/Slowkingg.png differ diff --git a/src/renderer/public/sprites/rr/Slowpoke.png b/src/renderer/public/sprites/rr/Slowpoke.png new file mode 100644 index 00000000..8be3e852 Binary files /dev/null and b/src/renderer/public/sprites/rr/Slowpoke.png differ diff --git a/src/renderer/public/sprites/rr/Slowpokeg.png b/src/renderer/public/sprites/rr/Slowpokeg.png new file mode 100644 index 00000000..cd1ae9e6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Slowpokeg.png differ diff --git a/src/renderer/public/sprites/rr/Slugma.png b/src/renderer/public/sprites/rr/Slugma.png new file mode 100644 index 00000000..f42454a4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Slugma.png differ diff --git a/src/renderer/public/sprites/rr/Slurpuff.png b/src/renderer/public/sprites/rr/Slurpuff.png new file mode 100644 index 00000000..5b8477a1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Slurpuff.png differ diff --git a/src/renderer/public/sprites/rr/Smeargle.png b/src/renderer/public/sprites/rr/Smeargle.png new file mode 100644 index 00000000..7e1b6727 Binary files /dev/null and b/src/renderer/public/sprites/rr/Smeargle.png differ diff --git a/src/renderer/public/sprites/rr/Smoliv.png b/src/renderer/public/sprites/rr/Smoliv.png new file mode 100644 index 00000000..48edf8e2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Smoliv.png differ diff --git a/src/renderer/public/sprites/rr/Smoochum.png b/src/renderer/public/sprites/rr/Smoochum.png new file mode 100644 index 00000000..7e67a694 Binary files /dev/null and b/src/renderer/public/sprites/rr/Smoochum.png differ diff --git a/src/renderer/public/sprites/rr/Sneasel.png b/src/renderer/public/sprites/rr/Sneasel.png new file mode 100644 index 00000000..2d26a8ea Binary files /dev/null and b/src/renderer/public/sprites/rr/Sneasel.png differ diff --git a/src/renderer/public/sprites/rr/Sneaselh.png b/src/renderer/public/sprites/rr/Sneaselh.png new file mode 100644 index 00000000..3dd6cd5b Binary files /dev/null and b/src/renderer/public/sprites/rr/Sneaselh.png differ diff --git a/src/renderer/public/sprites/rr/Sneasler.png b/src/renderer/public/sprites/rr/Sneasler.png new file mode 100644 index 00000000..e306c91b Binary files /dev/null and b/src/renderer/public/sprites/rr/Sneasler.png differ diff --git a/src/renderer/public/sprites/rr/Snivy.png b/src/renderer/public/sprites/rr/Snivy.png new file mode 100644 index 00000000..c1163e45 Binary files /dev/null and b/src/renderer/public/sprites/rr/Snivy.png differ diff --git a/src/renderer/public/sprites/rr/Snom.png b/src/renderer/public/sprites/rr/Snom.png new file mode 100644 index 00000000..fb9adf10 Binary files /dev/null and b/src/renderer/public/sprites/rr/Snom.png differ diff --git a/src/renderer/public/sprites/rr/Snorlax.png b/src/renderer/public/sprites/rr/Snorlax.png new file mode 100644 index 00000000..1526c04a Binary files /dev/null and b/src/renderer/public/sprites/rr/Snorlax.png differ diff --git a/src/renderer/public/sprites/rr/Snorlaxgiga.png b/src/renderer/public/sprites/rr/Snorlaxgiga.png new file mode 100644 index 00000000..960a6e0d Binary files /dev/null and b/src/renderer/public/sprites/rr/Snorlaxgiga.png differ diff --git a/src/renderer/public/sprites/rr/Snorunt.png b/src/renderer/public/sprites/rr/Snorunt.png new file mode 100644 index 00000000..1439c048 Binary files /dev/null and b/src/renderer/public/sprites/rr/Snorunt.png differ diff --git a/src/renderer/public/sprites/rr/Snover.png b/src/renderer/public/sprites/rr/Snover.png new file mode 100644 index 00000000..98ff290f Binary files /dev/null and b/src/renderer/public/sprites/rr/Snover.png differ diff --git a/src/renderer/public/sprites/rr/Snubbull.png b/src/renderer/public/sprites/rr/Snubbull.png new file mode 100644 index 00000000..a867d01b Binary files /dev/null and b/src/renderer/public/sprites/rr/Snubbull.png differ diff --git a/src/renderer/public/sprites/rr/Sobble.png b/src/renderer/public/sprites/rr/Sobble.png new file mode 100644 index 00000000..9a2e25dd Binary files /dev/null and b/src/renderer/public/sprites/rr/Sobble.png differ diff --git a/src/renderer/public/sprites/rr/Solgaleo.png b/src/renderer/public/sprites/rr/Solgaleo.png new file mode 100644 index 00000000..b624c199 Binary files /dev/null and b/src/renderer/public/sprites/rr/Solgaleo.png differ diff --git a/src/renderer/public/sprites/rr/Solosis.png b/src/renderer/public/sprites/rr/Solosis.png new file mode 100644 index 00000000..e58d63f5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Solosis.png differ diff --git a/src/renderer/public/sprites/rr/Solrock.png b/src/renderer/public/sprites/rr/Solrock.png new file mode 100644 index 00000000..5a319db4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Solrock.png differ diff --git a/src/renderer/public/sprites/rr/Spearow.png b/src/renderer/public/sprites/rr/Spearow.png new file mode 100644 index 00000000..40c30f7a Binary files /dev/null and b/src/renderer/public/sprites/rr/Spearow.png differ diff --git a/src/renderer/public/sprites/rr/Spectrier.png b/src/renderer/public/sprites/rr/Spectrier.png new file mode 100644 index 00000000..7386a86b Binary files /dev/null and b/src/renderer/public/sprites/rr/Spectrier.png differ diff --git a/src/renderer/public/sprites/rr/Spewpa.png b/src/renderer/public/sprites/rr/Spewpa.png new file mode 100644 index 00000000..8f5be768 Binary files /dev/null and b/src/renderer/public/sprites/rr/Spewpa.png differ diff --git a/src/renderer/public/sprites/rr/Spheal.png b/src/renderer/public/sprites/rr/Spheal.png new file mode 100644 index 00000000..7a6abc3b Binary files /dev/null and b/src/renderer/public/sprites/rr/Spheal.png differ diff --git a/src/renderer/public/sprites/rr/Spidops.png b/src/renderer/public/sprites/rr/Spidops.png new file mode 100644 index 00000000..dbbe3d4d Binary files /dev/null and b/src/renderer/public/sprites/rr/Spidops.png differ diff --git a/src/renderer/public/sprites/rr/Spinarak.png b/src/renderer/public/sprites/rr/Spinarak.png new file mode 100644 index 00000000..443b263e Binary files /dev/null and b/src/renderer/public/sprites/rr/Spinarak.png differ diff --git a/src/renderer/public/sprites/rr/Spinda.png b/src/renderer/public/sprites/rr/Spinda.png new file mode 100644 index 00000000..c99eec06 Binary files /dev/null and b/src/renderer/public/sprites/rr/Spinda.png differ diff --git a/src/renderer/public/sprites/rr/Spiritomb.png b/src/renderer/public/sprites/rr/Spiritomb.png new file mode 100644 index 00000000..2e9bdd0c Binary files /dev/null and b/src/renderer/public/sprites/rr/Spiritomb.png differ diff --git a/src/renderer/public/sprites/rr/Spoink.png b/src/renderer/public/sprites/rr/Spoink.png new file mode 100644 index 00000000..7f803e1f Binary files /dev/null and b/src/renderer/public/sprites/rr/Spoink.png differ diff --git a/src/renderer/public/sprites/rr/Sprigatito.png b/src/renderer/public/sprites/rr/Sprigatito.png new file mode 100644 index 00000000..7f5e7831 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sprigatito.png differ diff --git a/src/renderer/public/sprites/rr/Spritzee.png b/src/renderer/public/sprites/rr/Spritzee.png new file mode 100644 index 00000000..c165585e Binary files /dev/null and b/src/renderer/public/sprites/rr/Spritzee.png differ diff --git a/src/renderer/public/sprites/rr/Squawkabilly.png b/src/renderer/public/sprites/rr/Squawkabilly.png new file mode 100644 index 00000000..b5afe308 Binary files /dev/null and b/src/renderer/public/sprites/rr/Squawkabilly.png differ diff --git a/src/renderer/public/sprites/rr/Squawkabilly2.png b/src/renderer/public/sprites/rr/Squawkabilly2.png new file mode 100644 index 00000000..4b64035c Binary files /dev/null and b/src/renderer/public/sprites/rr/Squawkabilly2.png differ diff --git a/src/renderer/public/sprites/rr/Squirtle.png b/src/renderer/public/sprites/rr/Squirtle.png new file mode 100644 index 00000000..7b3239cd Binary files /dev/null and b/src/renderer/public/sprites/rr/Squirtle.png differ diff --git a/src/renderer/public/sprites/rr/Stakataka.png b/src/renderer/public/sprites/rr/Stakataka.png new file mode 100644 index 00000000..52147bcd Binary files /dev/null and b/src/renderer/public/sprites/rr/Stakataka.png differ diff --git a/src/renderer/public/sprites/rr/Stantler.png b/src/renderer/public/sprites/rr/Stantler.png new file mode 100644 index 00000000..0d9bc514 Binary files /dev/null and b/src/renderer/public/sprites/rr/Stantler.png differ diff --git a/src/renderer/public/sprites/rr/Staraptor.png b/src/renderer/public/sprites/rr/Staraptor.png new file mode 100644 index 00000000..b5850dfe Binary files /dev/null and b/src/renderer/public/sprites/rr/Staraptor.png differ diff --git a/src/renderer/public/sprites/rr/Staravia.png b/src/renderer/public/sprites/rr/Staravia.png new file mode 100644 index 00000000..c340f0d0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Staravia.png differ diff --git a/src/renderer/public/sprites/rr/Starly.png b/src/renderer/public/sprites/rr/Starly.png new file mode 100644 index 00000000..3c24b363 Binary files /dev/null and b/src/renderer/public/sprites/rr/Starly.png differ diff --git a/src/renderer/public/sprites/rr/Starmie.png b/src/renderer/public/sprites/rr/Starmie.png new file mode 100644 index 00000000..c4e242cf Binary files /dev/null and b/src/renderer/public/sprites/rr/Starmie.png differ diff --git a/src/renderer/public/sprites/rr/Staryu.png b/src/renderer/public/sprites/rr/Staryu.png new file mode 100644 index 00000000..fcdacb7f Binary files /dev/null and b/src/renderer/public/sprites/rr/Staryu.png differ diff --git a/src/renderer/public/sprites/rr/Steelix.png b/src/renderer/public/sprites/rr/Steelix.png new file mode 100644 index 00000000..4fe9dd10 Binary files /dev/null and b/src/renderer/public/sprites/rr/Steelix.png differ diff --git a/src/renderer/public/sprites/rr/Steelixmega.png b/src/renderer/public/sprites/rr/Steelixmega.png new file mode 100644 index 00000000..e3706df5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Steelixmega.png differ diff --git a/src/renderer/public/sprites/rr/Steenee.png b/src/renderer/public/sprites/rr/Steenee.png new file mode 100644 index 00000000..7e7de6a4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Steenee.png differ diff --git a/src/renderer/public/sprites/rr/Stonjourner.png b/src/renderer/public/sprites/rr/Stonjourner.png new file mode 100644 index 00000000..04f84b47 Binary files /dev/null and b/src/renderer/public/sprites/rr/Stonjourner.png differ diff --git a/src/renderer/public/sprites/rr/Stoutland.png b/src/renderer/public/sprites/rr/Stoutland.png new file mode 100644 index 00000000..fba5922a Binary files /dev/null and b/src/renderer/public/sprites/rr/Stoutland.png differ diff --git a/src/renderer/public/sprites/rr/Stufful.png b/src/renderer/public/sprites/rr/Stufful.png new file mode 100644 index 00000000..6069f2dc Binary files /dev/null and b/src/renderer/public/sprites/rr/Stufful.png differ diff --git a/src/renderer/public/sprites/rr/Stunfisk.png b/src/renderer/public/sprites/rr/Stunfisk.png new file mode 100644 index 00000000..2f713858 Binary files /dev/null and b/src/renderer/public/sprites/rr/Stunfisk.png differ diff --git a/src/renderer/public/sprites/rr/Stunfiskg.png b/src/renderer/public/sprites/rr/Stunfiskg.png new file mode 100644 index 00000000..8f083a77 Binary files /dev/null and b/src/renderer/public/sprites/rr/Stunfiskg.png differ diff --git a/src/renderer/public/sprites/rr/Stunky.png b/src/renderer/public/sprites/rr/Stunky.png new file mode 100644 index 00000000..0b318110 Binary files /dev/null and b/src/renderer/public/sprites/rr/Stunky.png differ diff --git a/src/renderer/public/sprites/rr/Sudowoodo.png b/src/renderer/public/sprites/rr/Sudowoodo.png new file mode 100644 index 00000000..44fb635e Binary files /dev/null and b/src/renderer/public/sprites/rr/Sudowoodo.png differ diff --git a/src/renderer/public/sprites/rr/Suicune.png b/src/renderer/public/sprites/rr/Suicune.png new file mode 100644 index 00000000..d9ddd7f2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Suicune.png differ diff --git a/src/renderer/public/sprites/rr/Sunflora.png b/src/renderer/public/sprites/rr/Sunflora.png new file mode 100644 index 00000000..1d7394ba Binary files /dev/null and b/src/renderer/public/sprites/rr/Sunflora.png differ diff --git a/src/renderer/public/sprites/rr/Sunkern.png b/src/renderer/public/sprites/rr/Sunkern.png new file mode 100644 index 00000000..c103e833 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sunkern.png differ diff --git a/src/renderer/public/sprites/rr/Surskit.png b/src/renderer/public/sprites/rr/Surskit.png new file mode 100644 index 00000000..4bfd9ace Binary files /dev/null and b/src/renderer/public/sprites/rr/Surskit.png differ diff --git a/src/renderer/public/sprites/rr/Swablu.png b/src/renderer/public/sprites/rr/Swablu.png new file mode 100644 index 00000000..fc688ded Binary files /dev/null and b/src/renderer/public/sprites/rr/Swablu.png differ diff --git a/src/renderer/public/sprites/rr/Swadloon.png b/src/renderer/public/sprites/rr/Swadloon.png new file mode 100644 index 00000000..e4006d82 Binary files /dev/null and b/src/renderer/public/sprites/rr/Swadloon.png differ diff --git a/src/renderer/public/sprites/rr/Swalot.png b/src/renderer/public/sprites/rr/Swalot.png new file mode 100644 index 00000000..86c7ac81 Binary files /dev/null and b/src/renderer/public/sprites/rr/Swalot.png differ diff --git a/src/renderer/public/sprites/rr/Swampert.png b/src/renderer/public/sprites/rr/Swampert.png new file mode 100644 index 00000000..3c2ead34 Binary files /dev/null and b/src/renderer/public/sprites/rr/Swampert.png differ diff --git a/src/renderer/public/sprites/rr/Swampertmega.png b/src/renderer/public/sprites/rr/Swampertmega.png new file mode 100644 index 00000000..67d7db1d Binary files /dev/null and b/src/renderer/public/sprites/rr/Swampertmega.png differ diff --git a/src/renderer/public/sprites/rr/Swanna.png b/src/renderer/public/sprites/rr/Swanna.png new file mode 100644 index 00000000..7d5ce87c Binary files /dev/null and b/src/renderer/public/sprites/rr/Swanna.png differ diff --git a/src/renderer/public/sprites/rr/Swellow.png b/src/renderer/public/sprites/rr/Swellow.png new file mode 100644 index 00000000..afd34637 Binary files /dev/null and b/src/renderer/public/sprites/rr/Swellow.png differ diff --git a/src/renderer/public/sprites/rr/Swinub.png b/src/renderer/public/sprites/rr/Swinub.png new file mode 100644 index 00000000..d47c8dec Binary files /dev/null and b/src/renderer/public/sprites/rr/Swinub.png differ diff --git a/src/renderer/public/sprites/rr/Swirlix.png b/src/renderer/public/sprites/rr/Swirlix.png new file mode 100644 index 00000000..83083e07 Binary files /dev/null and b/src/renderer/public/sprites/rr/Swirlix.png differ diff --git a/src/renderer/public/sprites/rr/Swoobat.png b/src/renderer/public/sprites/rr/Swoobat.png new file mode 100644 index 00000000..840ea435 Binary files /dev/null and b/src/renderer/public/sprites/rr/Swoobat.png differ diff --git a/src/renderer/public/sprites/rr/Sylveon.png b/src/renderer/public/sprites/rr/Sylveon.png new file mode 100644 index 00000000..6186a852 Binary files /dev/null and b/src/renderer/public/sprites/rr/Sylveon.png differ diff --git a/src/renderer/public/sprites/rr/Tadbulb.png b/src/renderer/public/sprites/rr/Tadbulb.png new file mode 100644 index 00000000..a1b0f74d Binary files /dev/null and b/src/renderer/public/sprites/rr/Tadbulb.png differ diff --git a/src/renderer/public/sprites/rr/Taillow.png b/src/renderer/public/sprites/rr/Taillow.png new file mode 100644 index 00000000..e67513fd Binary files /dev/null and b/src/renderer/public/sprites/rr/Taillow.png differ diff --git a/src/renderer/public/sprites/rr/Talonflame.png b/src/renderer/public/sprites/rr/Talonflame.png new file mode 100644 index 00000000..a72c2268 Binary files /dev/null and b/src/renderer/public/sprites/rr/Talonflame.png differ diff --git a/src/renderer/public/sprites/rr/Tandemaus.png b/src/renderer/public/sprites/rr/Tandemaus.png new file mode 100644 index 00000000..6411bfab Binary files /dev/null and b/src/renderer/public/sprites/rr/Tandemaus.png differ diff --git a/src/renderer/public/sprites/rr/Tangela.png b/src/renderer/public/sprites/rr/Tangela.png new file mode 100644 index 00000000..0050fbe5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Tangela.png differ diff --git a/src/renderer/public/sprites/rr/Tangrowth.png b/src/renderer/public/sprites/rr/Tangrowth.png new file mode 100644 index 00000000..5c07f03c Binary files /dev/null and b/src/renderer/public/sprites/rr/Tangrowth.png differ diff --git a/src/renderer/public/sprites/rr/Tapubulu.png b/src/renderer/public/sprites/rr/Tapubulu.png new file mode 100644 index 00000000..197a95db Binary files /dev/null and b/src/renderer/public/sprites/rr/Tapubulu.png differ diff --git a/src/renderer/public/sprites/rr/Tapufini.png b/src/renderer/public/sprites/rr/Tapufini.png new file mode 100644 index 00000000..cfb9d50d Binary files /dev/null and b/src/renderer/public/sprites/rr/Tapufini.png differ diff --git a/src/renderer/public/sprites/rr/Tapukoko.png b/src/renderer/public/sprites/rr/Tapukoko.png new file mode 100644 index 00000000..64622620 Binary files /dev/null and b/src/renderer/public/sprites/rr/Tapukoko.png differ diff --git a/src/renderer/public/sprites/rr/Tapulele.png b/src/renderer/public/sprites/rr/Tapulele.png new file mode 100644 index 00000000..7164366b Binary files /dev/null and b/src/renderer/public/sprites/rr/Tapulele.png differ diff --git a/src/renderer/public/sprites/rr/Tarountula.png b/src/renderer/public/sprites/rr/Tarountula.png new file mode 100644 index 00000000..118ba12a Binary files /dev/null and b/src/renderer/public/sprites/rr/Tarountula.png differ diff --git a/src/renderer/public/sprites/rr/Tatsugiri.png b/src/renderer/public/sprites/rr/Tatsugiri.png new file mode 100644 index 00000000..e08df379 Binary files /dev/null and b/src/renderer/public/sprites/rr/Tatsugiri.png differ diff --git a/src/renderer/public/sprites/rr/Tauros.png b/src/renderer/public/sprites/rr/Tauros.png new file mode 100644 index 00000000..fca78d43 Binary files /dev/null and b/src/renderer/public/sprites/rr/Tauros.png differ diff --git a/src/renderer/public/sprites/rr/Taurosp.png b/src/renderer/public/sprites/rr/Taurosp.png new file mode 100644 index 00000000..fa7c70df Binary files /dev/null and b/src/renderer/public/sprites/rr/Taurosp.png differ diff --git a/src/renderer/public/sprites/rr/Taurospfire.png b/src/renderer/public/sprites/rr/Taurospfire.png new file mode 100644 index 00000000..3f04d5b0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Taurospfire.png differ diff --git a/src/renderer/public/sprites/rr/Taurospwater.png b/src/renderer/public/sprites/rr/Taurospwater.png new file mode 100644 index 00000000..aefd80c3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Taurospwater.png differ diff --git a/src/renderer/public/sprites/rr/Teddiursa.png b/src/renderer/public/sprites/rr/Teddiursa.png new file mode 100644 index 00000000..3964bd2f Binary files /dev/null and b/src/renderer/public/sprites/rr/Teddiursa.png differ diff --git a/src/renderer/public/sprites/rr/Teddiursas.png b/src/renderer/public/sprites/rr/Teddiursas.png new file mode 100644 index 00000000..026b006e Binary files /dev/null and b/src/renderer/public/sprites/rr/Teddiursas.png differ diff --git a/src/renderer/public/sprites/rr/Tentacool.png b/src/renderer/public/sprites/rr/Tentacool.png new file mode 100644 index 00000000..52f360bf Binary files /dev/null and b/src/renderer/public/sprites/rr/Tentacool.png differ diff --git a/src/renderer/public/sprites/rr/Tentacruel.png b/src/renderer/public/sprites/rr/Tentacruel.png new file mode 100644 index 00000000..c748f830 Binary files /dev/null and b/src/renderer/public/sprites/rr/Tentacruel.png differ diff --git a/src/renderer/public/sprites/rr/Tepig.png b/src/renderer/public/sprites/rr/Tepig.png new file mode 100644 index 00000000..704ea22c Binary files /dev/null and b/src/renderer/public/sprites/rr/Tepig.png differ diff --git a/src/renderer/public/sprites/rr/Terrakion.png b/src/renderer/public/sprites/rr/Terrakion.png new file mode 100644 index 00000000..8a25b2d3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Terrakion.png differ diff --git a/src/renderer/public/sprites/rr/Thievul.png b/src/renderer/public/sprites/rr/Thievul.png new file mode 100644 index 00000000..ddb1413a Binary files /dev/null and b/src/renderer/public/sprites/rr/Thievul.png differ diff --git a/src/renderer/public/sprites/rr/Throh.png b/src/renderer/public/sprites/rr/Throh.png new file mode 100644 index 00000000..06afcc96 Binary files /dev/null and b/src/renderer/public/sprites/rr/Throh.png differ diff --git a/src/renderer/public/sprites/rr/Thundurus.png b/src/renderer/public/sprites/rr/Thundurus.png new file mode 100644 index 00000000..e09fa818 Binary files /dev/null and b/src/renderer/public/sprites/rr/Thundurus.png differ diff --git a/src/renderer/public/sprites/rr/Thundurustherian.png b/src/renderer/public/sprites/rr/Thundurustherian.png new file mode 100644 index 00000000..a3836b65 Binary files /dev/null and b/src/renderer/public/sprites/rr/Thundurustherian.png differ diff --git a/src/renderer/public/sprites/rr/Thwackey.png b/src/renderer/public/sprites/rr/Thwackey.png new file mode 100644 index 00000000..1871a4f4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Thwackey.png differ diff --git a/src/renderer/public/sprites/rr/Timburr.png b/src/renderer/public/sprites/rr/Timburr.png new file mode 100644 index 00000000..0b2edc4d Binary files /dev/null and b/src/renderer/public/sprites/rr/Timburr.png differ diff --git a/src/renderer/public/sprites/rr/Tinglu.png b/src/renderer/public/sprites/rr/Tinglu.png new file mode 100644 index 00000000..e7c100bd Binary files /dev/null and b/src/renderer/public/sprites/rr/Tinglu.png differ diff --git a/src/renderer/public/sprites/rr/Tinkatink.png b/src/renderer/public/sprites/rr/Tinkatink.png new file mode 100644 index 00000000..46232479 Binary files /dev/null and b/src/renderer/public/sprites/rr/Tinkatink.png differ diff --git a/src/renderer/public/sprites/rr/Tinkaton.png b/src/renderer/public/sprites/rr/Tinkaton.png new file mode 100644 index 00000000..2abb5a67 Binary files /dev/null and b/src/renderer/public/sprites/rr/Tinkaton.png differ diff --git a/src/renderer/public/sprites/rr/Tinkatuff.png b/src/renderer/public/sprites/rr/Tinkatuff.png new file mode 100644 index 00000000..cbdf383e Binary files /dev/null and b/src/renderer/public/sprites/rr/Tinkatuff.png differ diff --git a/src/renderer/public/sprites/rr/Tirtouga.png b/src/renderer/public/sprites/rr/Tirtouga.png new file mode 100644 index 00000000..2486309b Binary files /dev/null and b/src/renderer/public/sprites/rr/Tirtouga.png differ diff --git a/src/renderer/public/sprites/rr/Toedscool.png b/src/renderer/public/sprites/rr/Toedscool.png new file mode 100644 index 00000000..a89d742f Binary files /dev/null and b/src/renderer/public/sprites/rr/Toedscool.png differ diff --git a/src/renderer/public/sprites/rr/Toedscruel.png b/src/renderer/public/sprites/rr/Toedscruel.png new file mode 100644 index 00000000..d99eebd2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Toedscruel.png differ diff --git a/src/renderer/public/sprites/rr/Togedemaru.png b/src/renderer/public/sprites/rr/Togedemaru.png new file mode 100644 index 00000000..a271a7c2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Togedemaru.png differ diff --git a/src/renderer/public/sprites/rr/Togekiss.png b/src/renderer/public/sprites/rr/Togekiss.png new file mode 100644 index 00000000..1456ce34 Binary files /dev/null and b/src/renderer/public/sprites/rr/Togekiss.png differ diff --git a/src/renderer/public/sprites/rr/Togepi.png b/src/renderer/public/sprites/rr/Togepi.png new file mode 100644 index 00000000..71845134 Binary files /dev/null and b/src/renderer/public/sprites/rr/Togepi.png differ diff --git a/src/renderer/public/sprites/rr/Togetic.png b/src/renderer/public/sprites/rr/Togetic.png new file mode 100644 index 00000000..60bbd99e Binary files /dev/null and b/src/renderer/public/sprites/rr/Togetic.png differ diff --git a/src/renderer/public/sprites/rr/Torchic.png b/src/renderer/public/sprites/rr/Torchic.png new file mode 100644 index 00000000..5a8d7e20 Binary files /dev/null and b/src/renderer/public/sprites/rr/Torchic.png differ diff --git a/src/renderer/public/sprites/rr/Torkoal.png b/src/renderer/public/sprites/rr/Torkoal.png new file mode 100644 index 00000000..111d7d05 Binary files /dev/null and b/src/renderer/public/sprites/rr/Torkoal.png differ diff --git a/src/renderer/public/sprites/rr/Tornadus.png b/src/renderer/public/sprites/rr/Tornadus.png new file mode 100644 index 00000000..8988cb90 Binary files /dev/null and b/src/renderer/public/sprites/rr/Tornadus.png differ diff --git a/src/renderer/public/sprites/rr/Tornadustherian.png b/src/renderer/public/sprites/rr/Tornadustherian.png new file mode 100644 index 00000000..e253b00e Binary files /dev/null and b/src/renderer/public/sprites/rr/Tornadustherian.png differ diff --git a/src/renderer/public/sprites/rr/Torracat.png b/src/renderer/public/sprites/rr/Torracat.png new file mode 100644 index 00000000..459c686f Binary files /dev/null and b/src/renderer/public/sprites/rr/Torracat.png differ diff --git a/src/renderer/public/sprites/rr/Torterra.png b/src/renderer/public/sprites/rr/Torterra.png new file mode 100644 index 00000000..a86c8567 Binary files /dev/null and b/src/renderer/public/sprites/rr/Torterra.png differ diff --git a/src/renderer/public/sprites/rr/Totodile.png b/src/renderer/public/sprites/rr/Totodile.png new file mode 100644 index 00000000..5137a489 Binary files /dev/null and b/src/renderer/public/sprites/rr/Totodile.png differ diff --git a/src/renderer/public/sprites/rr/Toucannon.png b/src/renderer/public/sprites/rr/Toucannon.png new file mode 100644 index 00000000..67e72f7a Binary files /dev/null and b/src/renderer/public/sprites/rr/Toucannon.png differ diff --git a/src/renderer/public/sprites/rr/Toxapex.png b/src/renderer/public/sprites/rr/Toxapex.png new file mode 100644 index 00000000..117ef27f Binary files /dev/null and b/src/renderer/public/sprites/rr/Toxapex.png differ diff --git a/src/renderer/public/sprites/rr/Toxel.png b/src/renderer/public/sprites/rr/Toxel.png new file mode 100644 index 00000000..192ffc44 Binary files /dev/null and b/src/renderer/public/sprites/rr/Toxel.png differ diff --git a/src/renderer/public/sprites/rr/Toxicroak.png b/src/renderer/public/sprites/rr/Toxicroak.png new file mode 100644 index 00000000..b345c6c9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Toxicroak.png differ diff --git a/src/renderer/public/sprites/rr/Toxtricity.png b/src/renderer/public/sprites/rr/Toxtricity.png new file mode 100644 index 00000000..4985540f Binary files /dev/null and b/src/renderer/public/sprites/rr/Toxtricity.png differ diff --git a/src/renderer/public/sprites/rr/Toxtricitygiga.png b/src/renderer/public/sprites/rr/Toxtricitygiga.png new file mode 100644 index 00000000..d30195b0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Toxtricitygiga.png differ diff --git a/src/renderer/public/sprites/rr/Toxtricitylowkey.png b/src/renderer/public/sprites/rr/Toxtricitylowkey.png new file mode 100644 index 00000000..08e2fc4a Binary files /dev/null and b/src/renderer/public/sprites/rr/Toxtricitylowkey.png differ diff --git a/src/renderer/public/sprites/rr/Toxtricitylowkeygiga.png b/src/renderer/public/sprites/rr/Toxtricitylowkeygiga.png new file mode 100644 index 00000000..d30195b0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Toxtricitylowkeygiga.png differ diff --git a/src/renderer/public/sprites/rr/Tranquill.png b/src/renderer/public/sprites/rr/Tranquill.png new file mode 100644 index 00000000..26a6951b Binary files /dev/null and b/src/renderer/public/sprites/rr/Tranquill.png differ diff --git a/src/renderer/public/sprites/rr/Trapinch.png b/src/renderer/public/sprites/rr/Trapinch.png new file mode 100644 index 00000000..d8b70eff Binary files /dev/null and b/src/renderer/public/sprites/rr/Trapinch.png differ diff --git a/src/renderer/public/sprites/rr/Treecko.png b/src/renderer/public/sprites/rr/Treecko.png new file mode 100644 index 00000000..d4137c34 Binary files /dev/null and b/src/renderer/public/sprites/rr/Treecko.png differ diff --git a/src/renderer/public/sprites/rr/Trevenant.png b/src/renderer/public/sprites/rr/Trevenant.png new file mode 100644 index 00000000..e3568f66 Binary files /dev/null and b/src/renderer/public/sprites/rr/Trevenant.png differ diff --git a/src/renderer/public/sprites/rr/Tropius.png b/src/renderer/public/sprites/rr/Tropius.png new file mode 100644 index 00000000..563058e8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Tropius.png differ diff --git a/src/renderer/public/sprites/rr/Trubbish.png b/src/renderer/public/sprites/rr/Trubbish.png new file mode 100644 index 00000000..31c1ca19 Binary files /dev/null and b/src/renderer/public/sprites/rr/Trubbish.png differ diff --git a/src/renderer/public/sprites/rr/Trumbeak.png b/src/renderer/public/sprites/rr/Trumbeak.png new file mode 100644 index 00000000..d9be29d4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Trumbeak.png differ diff --git a/src/renderer/public/sprites/rr/Tsareena.png b/src/renderer/public/sprites/rr/Tsareena.png new file mode 100644 index 00000000..b5210f41 Binary files /dev/null and b/src/renderer/public/sprites/rr/Tsareena.png differ diff --git a/src/renderer/public/sprites/rr/Turtonator.png b/src/renderer/public/sprites/rr/Turtonator.png new file mode 100644 index 00000000..f598705e Binary files /dev/null and b/src/renderer/public/sprites/rr/Turtonator.png differ diff --git a/src/renderer/public/sprites/rr/Turtwig.png b/src/renderer/public/sprites/rr/Turtwig.png new file mode 100644 index 00000000..09b5f608 Binary files /dev/null and b/src/renderer/public/sprites/rr/Turtwig.png differ diff --git a/src/renderer/public/sprites/rr/Tympole.png b/src/renderer/public/sprites/rr/Tympole.png new file mode 100644 index 00000000..2465131b Binary files /dev/null and b/src/renderer/public/sprites/rr/Tympole.png differ diff --git a/src/renderer/public/sprites/rr/Tynamo.png b/src/renderer/public/sprites/rr/Tynamo.png new file mode 100644 index 00000000..4f415324 Binary files /dev/null and b/src/renderer/public/sprites/rr/Tynamo.png differ diff --git a/src/renderer/public/sprites/rr/Typenull.png b/src/renderer/public/sprites/rr/Typenull.png new file mode 100644 index 00000000..dbf32340 Binary files /dev/null and b/src/renderer/public/sprites/rr/Typenull.png differ diff --git a/src/renderer/public/sprites/rr/Typhlosion.png b/src/renderer/public/sprites/rr/Typhlosion.png new file mode 100644 index 00000000..83059b51 Binary files /dev/null and b/src/renderer/public/sprites/rr/Typhlosion.png differ diff --git a/src/renderer/public/sprites/rr/Typhlosionh.png b/src/renderer/public/sprites/rr/Typhlosionh.png new file mode 100644 index 00000000..4984c29f Binary files /dev/null and b/src/renderer/public/sprites/rr/Typhlosionh.png differ diff --git a/src/renderer/public/sprites/rr/Tyranitar.png b/src/renderer/public/sprites/rr/Tyranitar.png new file mode 100644 index 00000000..15dc9d2b Binary files /dev/null and b/src/renderer/public/sprites/rr/Tyranitar.png differ diff --git a/src/renderer/public/sprites/rr/Tyranitarmega.png b/src/renderer/public/sprites/rr/Tyranitarmega.png new file mode 100644 index 00000000..36a217ae Binary files /dev/null and b/src/renderer/public/sprites/rr/Tyranitarmega.png differ diff --git a/src/renderer/public/sprites/rr/Tyrantrum.png b/src/renderer/public/sprites/rr/Tyrantrum.png new file mode 100644 index 00000000..e8622d06 Binary files /dev/null and b/src/renderer/public/sprites/rr/Tyrantrum.png differ diff --git a/src/renderer/public/sprites/rr/Tyrogue.png b/src/renderer/public/sprites/rr/Tyrogue.png new file mode 100644 index 00000000..016f62a0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Tyrogue.png differ diff --git a/src/renderer/public/sprites/rr/Tyrunt.png b/src/renderer/public/sprites/rr/Tyrunt.png new file mode 100644 index 00000000..25b6011d Binary files /dev/null and b/src/renderer/public/sprites/rr/Tyrunt.png differ diff --git a/src/renderer/public/sprites/rr/Umbreon.png b/src/renderer/public/sprites/rr/Umbreon.png new file mode 100644 index 00000000..552b7140 Binary files /dev/null and b/src/renderer/public/sprites/rr/Umbreon.png differ diff --git a/src/renderer/public/sprites/rr/Unfezant.png b/src/renderer/public/sprites/rr/Unfezant.png new file mode 100644 index 00000000..cecc5704 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unfezant.png differ diff --git a/src/renderer/public/sprites/rr/Unfezantf.png b/src/renderer/public/sprites/rr/Unfezantf.png new file mode 100644 index 00000000..30aab21b Binary files /dev/null and b/src/renderer/public/sprites/rr/Unfezantf.png differ diff --git a/src/renderer/public/sprites/rr/Unknownmythical.png b/src/renderer/public/sprites/rr/Unknownmythical.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unknownmythical.png differ diff --git a/src/renderer/public/sprites/rr/Unown.png b/src/renderer/public/sprites/rr/Unown.png new file mode 100644 index 00000000..df9def79 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unown.png differ diff --git a/src/renderer/public/sprites/rr/Unownb.png b/src/renderer/public/sprites/rr/Unownb.png new file mode 100644 index 00000000..77b6bb68 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownb.png differ diff --git a/src/renderer/public/sprites/rr/Unownc.png b/src/renderer/public/sprites/rr/Unownc.png new file mode 100644 index 00000000..b140b63c Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownc.png differ diff --git a/src/renderer/public/sprites/rr/Unownd.png b/src/renderer/public/sprites/rr/Unownd.png new file mode 100644 index 00000000..e55a4d6d Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownd.png differ diff --git a/src/renderer/public/sprites/rr/Unowne.png b/src/renderer/public/sprites/rr/Unowne.png new file mode 100644 index 00000000..1831b8d4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unowne.png differ diff --git a/src/renderer/public/sprites/rr/Unownexclamation.png b/src/renderer/public/sprites/rr/Unownexclamation.png new file mode 100644 index 00000000..2e4d0774 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownexclamation.png differ diff --git a/src/renderer/public/sprites/rr/Unownf.png b/src/renderer/public/sprites/rr/Unownf.png new file mode 100644 index 00000000..2818e205 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownf.png differ diff --git a/src/renderer/public/sprites/rr/Unowng.png b/src/renderer/public/sprites/rr/Unowng.png new file mode 100644 index 00000000..3a81f264 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unowng.png differ diff --git a/src/renderer/public/sprites/rr/Unownh.png b/src/renderer/public/sprites/rr/Unownh.png new file mode 100644 index 00000000..6dc66f5f Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownh.png differ diff --git a/src/renderer/public/sprites/rr/Unowni.png b/src/renderer/public/sprites/rr/Unowni.png new file mode 100644 index 00000000..96ed4c74 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unowni.png differ diff --git a/src/renderer/public/sprites/rr/Unownj.png b/src/renderer/public/sprites/rr/Unownj.png new file mode 100644 index 00000000..a30497ed Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownj.png differ diff --git a/src/renderer/public/sprites/rr/Unownk.png b/src/renderer/public/sprites/rr/Unownk.png new file mode 100644 index 00000000..e8a4fc8e Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownk.png differ diff --git a/src/renderer/public/sprites/rr/Unownl.png b/src/renderer/public/sprites/rr/Unownl.png new file mode 100644 index 00000000..2f9105a3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownl.png differ diff --git a/src/renderer/public/sprites/rr/Unownm.png b/src/renderer/public/sprites/rr/Unownm.png new file mode 100644 index 00000000..34061243 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownm.png differ diff --git a/src/renderer/public/sprites/rr/Unownn.png b/src/renderer/public/sprites/rr/Unownn.png new file mode 100644 index 00000000..7d47d915 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownn.png differ diff --git a/src/renderer/public/sprites/rr/Unowno.png b/src/renderer/public/sprites/rr/Unowno.png new file mode 100644 index 00000000..013afc7d Binary files /dev/null and b/src/renderer/public/sprites/rr/Unowno.png differ diff --git a/src/renderer/public/sprites/rr/Unownp.png b/src/renderer/public/sprites/rr/Unownp.png new file mode 100644 index 00000000..f5feb972 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownp.png differ diff --git a/src/renderer/public/sprites/rr/Unownq.png b/src/renderer/public/sprites/rr/Unownq.png new file mode 100644 index 00000000..e2aab5f7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownq.png differ diff --git a/src/renderer/public/sprites/rr/Unownquestion.png b/src/renderer/public/sprites/rr/Unownquestion.png new file mode 100644 index 00000000..e1ab6f74 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownquestion.png differ diff --git a/src/renderer/public/sprites/rr/Unownr.png b/src/renderer/public/sprites/rr/Unownr.png new file mode 100644 index 00000000..c1059f9a Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownr.png differ diff --git a/src/renderer/public/sprites/rr/Unowns.png b/src/renderer/public/sprites/rr/Unowns.png new file mode 100644 index 00000000..87a68dad Binary files /dev/null and b/src/renderer/public/sprites/rr/Unowns.png differ diff --git a/src/renderer/public/sprites/rr/Unownt.png b/src/renderer/public/sprites/rr/Unownt.png new file mode 100644 index 00000000..8cc13f65 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownt.png differ diff --git a/src/renderer/public/sprites/rr/Unownu.png b/src/renderer/public/sprites/rr/Unownu.png new file mode 100644 index 00000000..19606375 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownu.png differ diff --git a/src/renderer/public/sprites/rr/Unownv.png b/src/renderer/public/sprites/rr/Unownv.png new file mode 100644 index 00000000..13ffb493 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownv.png differ diff --git a/src/renderer/public/sprites/rr/Unownw.png b/src/renderer/public/sprites/rr/Unownw.png new file mode 100644 index 00000000..3f7f5b74 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownw.png differ diff --git a/src/renderer/public/sprites/rr/Unownx.png b/src/renderer/public/sprites/rr/Unownx.png new file mode 100644 index 00000000..75622a03 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownx.png differ diff --git a/src/renderer/public/sprites/rr/Unowny.png b/src/renderer/public/sprites/rr/Unowny.png new file mode 100644 index 00000000..8d9678f7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Unowny.png differ diff --git a/src/renderer/public/sprites/rr/Unownz.png b/src/renderer/public/sprites/rr/Unownz.png new file mode 100644 index 00000000..cbbf432f Binary files /dev/null and b/src/renderer/public/sprites/rr/Unownz.png differ diff --git a/src/renderer/public/sprites/rr/Ursaluna.png b/src/renderer/public/sprites/rr/Ursaluna.png new file mode 100644 index 00000000..7d659c42 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ursaluna.png differ diff --git a/src/renderer/public/sprites/rr/Ursaring.png b/src/renderer/public/sprites/rr/Ursaring.png new file mode 100644 index 00000000..bb053c26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Ursaring.png differ diff --git a/src/renderer/public/sprites/rr/Ursarings.png b/src/renderer/public/sprites/rr/Ursarings.png new file mode 100644 index 00000000..6d4d97dd Binary files /dev/null and b/src/renderer/public/sprites/rr/Ursarings.png differ diff --git a/src/renderer/public/sprites/rr/Urshifurapid.png b/src/renderer/public/sprites/rr/Urshifurapid.png new file mode 100644 index 00000000..6a12f071 Binary files /dev/null and b/src/renderer/public/sprites/rr/Urshifurapid.png differ diff --git a/src/renderer/public/sprites/rr/Urshifurapidgiga.png b/src/renderer/public/sprites/rr/Urshifurapidgiga.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Urshifurapidgiga.png differ diff --git a/src/renderer/public/sprites/rr/Urshifusilentgiga.png b/src/renderer/public/sprites/rr/Urshifusilentgiga.png new file mode 100644 index 00000000..16d8ea26 Binary files /dev/null and b/src/renderer/public/sprites/rr/Urshifusilentgiga.png differ diff --git a/src/renderer/public/sprites/rr/Urshifusingle.png b/src/renderer/public/sprites/rr/Urshifusingle.png new file mode 100644 index 00000000..751f2ce4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Urshifusingle.png differ diff --git a/src/renderer/public/sprites/rr/Uxie.png b/src/renderer/public/sprites/rr/Uxie.png new file mode 100644 index 00000000..58de002f Binary files /dev/null and b/src/renderer/public/sprites/rr/Uxie.png differ diff --git a/src/renderer/public/sprites/rr/Vanillish.png b/src/renderer/public/sprites/rr/Vanillish.png new file mode 100644 index 00000000..bb0860c2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vanillish.png differ diff --git a/src/renderer/public/sprites/rr/Vanillite.png b/src/renderer/public/sprites/rr/Vanillite.png new file mode 100644 index 00000000..f21df680 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vanillite.png differ diff --git a/src/renderer/public/sprites/rr/Vanilluxe.png b/src/renderer/public/sprites/rr/Vanilluxe.png new file mode 100644 index 00000000..ee31ac51 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vanilluxe.png differ diff --git a/src/renderer/public/sprites/rr/Vaporeon.png b/src/renderer/public/sprites/rr/Vaporeon.png new file mode 100644 index 00000000..964c5539 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vaporeon.png differ diff --git a/src/renderer/public/sprites/rr/Varoom.png b/src/renderer/public/sprites/rr/Varoom.png new file mode 100644 index 00000000..e903ad67 Binary files /dev/null and b/src/renderer/public/sprites/rr/Varoom.png differ diff --git a/src/renderer/public/sprites/rr/Veluza.png b/src/renderer/public/sprites/rr/Veluza.png new file mode 100644 index 00000000..5493e2de Binary files /dev/null and b/src/renderer/public/sprites/rr/Veluza.png differ diff --git a/src/renderer/public/sprites/rr/Venipede.png b/src/renderer/public/sprites/rr/Venipede.png new file mode 100644 index 00000000..9721b34c Binary files /dev/null and b/src/renderer/public/sprites/rr/Venipede.png differ diff --git a/src/renderer/public/sprites/rr/Venomoth.png b/src/renderer/public/sprites/rr/Venomoth.png new file mode 100644 index 00000000..b658a9f2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Venomoth.png differ diff --git a/src/renderer/public/sprites/rr/Venonat.png b/src/renderer/public/sprites/rr/Venonat.png new file mode 100644 index 00000000..0911c8a9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Venonat.png differ diff --git a/src/renderer/public/sprites/rr/Venusaur.png b/src/renderer/public/sprites/rr/Venusaur.png new file mode 100644 index 00000000..f83c1f66 Binary files /dev/null and b/src/renderer/public/sprites/rr/Venusaur.png differ diff --git a/src/renderer/public/sprites/rr/Venusaurgiga.png b/src/renderer/public/sprites/rr/Venusaurgiga.png new file mode 100644 index 00000000..cff2e0ac Binary files /dev/null and b/src/renderer/public/sprites/rr/Venusaurgiga.png differ diff --git a/src/renderer/public/sprites/rr/Venusaurmega.png b/src/renderer/public/sprites/rr/Venusaurmega.png new file mode 100644 index 00000000..8a863725 Binary files /dev/null and b/src/renderer/public/sprites/rr/Venusaurmega.png differ diff --git a/src/renderer/public/sprites/rr/Vespiquen.png b/src/renderer/public/sprites/rr/Vespiquen.png new file mode 100644 index 00000000..a1508b5b Binary files /dev/null and b/src/renderer/public/sprites/rr/Vespiquen.png differ diff --git a/src/renderer/public/sprites/rr/Vibrava.png b/src/renderer/public/sprites/rr/Vibrava.png new file mode 100644 index 00000000..a50dbef6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vibrava.png differ diff --git a/src/renderer/public/sprites/rr/Victini.png b/src/renderer/public/sprites/rr/Victini.png new file mode 100644 index 00000000..ce487b25 Binary files /dev/null and b/src/renderer/public/sprites/rr/Victini.png differ diff --git a/src/renderer/public/sprites/rr/Victreebel.png b/src/renderer/public/sprites/rr/Victreebel.png new file mode 100644 index 00000000..b3344aa0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Victreebel.png differ diff --git a/src/renderer/public/sprites/rr/Vigoroth.png b/src/renderer/public/sprites/rr/Vigoroth.png new file mode 100644 index 00000000..4dfc3649 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vigoroth.png differ diff --git a/src/renderer/public/sprites/rr/Vikavolt.png b/src/renderer/public/sprites/rr/Vikavolt.png new file mode 100644 index 00000000..f962515a Binary files /dev/null and b/src/renderer/public/sprites/rr/Vikavolt.png differ diff --git a/src/renderer/public/sprites/rr/Vileplume.png b/src/renderer/public/sprites/rr/Vileplume.png new file mode 100644 index 00000000..a880820a Binary files /dev/null and b/src/renderer/public/sprites/rr/Vileplume.png differ diff --git a/src/renderer/public/sprites/rr/Virizion.png b/src/renderer/public/sprites/rr/Virizion.png new file mode 100644 index 00000000..d85694c1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Virizion.png differ diff --git a/src/renderer/public/sprites/rr/Vivillon.png b/src/renderer/public/sprites/rr/Vivillon.png new file mode 100644 index 00000000..7fb2bf30 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillon.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonarchipelago.png b/src/renderer/public/sprites/rr/Vivillonarchipelago.png new file mode 100644 index 00000000..bf3ce57b Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonarchipelago.png differ diff --git a/src/renderer/public/sprites/rr/Vivilloncontinental.png b/src/renderer/public/sprites/rr/Vivilloncontinental.png new file mode 100644 index 00000000..ce92a7af Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivilloncontinental.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonelegant.png b/src/renderer/public/sprites/rr/Vivillonelegant.png new file mode 100644 index 00000000..7c3b796b Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonelegant.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonfancy.png b/src/renderer/public/sprites/rr/Vivillonfancy.png new file mode 100644 index 00000000..41d55a6b Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonfancy.png differ diff --git a/src/renderer/public/sprites/rr/Vivillongarden.png b/src/renderer/public/sprites/rr/Vivillongarden.png new file mode 100644 index 00000000..8d46e59c Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillongarden.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonhighplains.png b/src/renderer/public/sprites/rr/Vivillonhighplains.png new file mode 100644 index 00000000..a880f925 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonhighplains.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonicysnow.png b/src/renderer/public/sprites/rr/Vivillonicysnow.png new file mode 100644 index 00000000..5d89fcf8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonicysnow.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonjungle.png b/src/renderer/public/sprites/rr/Vivillonjungle.png new file mode 100644 index 00000000..69e2a599 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonjungle.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonmarine.png b/src/renderer/public/sprites/rr/Vivillonmarine.png new file mode 100644 index 00000000..e312eb1f Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonmarine.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonmodern.png b/src/renderer/public/sprites/rr/Vivillonmodern.png new file mode 100644 index 00000000..ccc7096d Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonmodern.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonmonsoon.png b/src/renderer/public/sprites/rr/Vivillonmonsoon.png new file mode 100644 index 00000000..0eacbb0f Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonmonsoon.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonocean.png b/src/renderer/public/sprites/rr/Vivillonocean.png new file mode 100644 index 00000000..1e8b5139 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonocean.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonpokeball.png b/src/renderer/public/sprites/rr/Vivillonpokeball.png new file mode 100644 index 00000000..6893d128 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonpokeball.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonpolar.png b/src/renderer/public/sprites/rr/Vivillonpolar.png new file mode 100644 index 00000000..708e7fe1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonpolar.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonriver.png b/src/renderer/public/sprites/rr/Vivillonriver.png new file mode 100644 index 00000000..ffce3bf6 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonriver.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonsandstorm.png b/src/renderer/public/sprites/rr/Vivillonsandstorm.png new file mode 100644 index 00000000..376dbcf5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonsandstorm.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonsavanna.png b/src/renderer/public/sprites/rr/Vivillonsavanna.png new file mode 100644 index 00000000..546c38af Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonsavanna.png differ diff --git a/src/renderer/public/sprites/rr/Vivillonsun.png b/src/renderer/public/sprites/rr/Vivillonsun.png new file mode 100644 index 00000000..5a3be383 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillonsun.png differ diff --git a/src/renderer/public/sprites/rr/Vivillontundra.png b/src/renderer/public/sprites/rr/Vivillontundra.png new file mode 100644 index 00000000..3cc46e21 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vivillontundra.png differ diff --git a/src/renderer/public/sprites/rr/Volbeat.png b/src/renderer/public/sprites/rr/Volbeat.png new file mode 100644 index 00000000..cdd7c8c2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Volbeat.png differ diff --git a/src/renderer/public/sprites/rr/Volcanion.png b/src/renderer/public/sprites/rr/Volcanion.png new file mode 100644 index 00000000..9892e04f Binary files /dev/null and b/src/renderer/public/sprites/rr/Volcanion.png differ diff --git a/src/renderer/public/sprites/rr/Volcarona.png b/src/renderer/public/sprites/rr/Volcarona.png new file mode 100644 index 00000000..8416183d Binary files /dev/null and b/src/renderer/public/sprites/rr/Volcarona.png differ diff --git a/src/renderer/public/sprites/rr/Voltorb.png b/src/renderer/public/sprites/rr/Voltorb.png new file mode 100644 index 00000000..1a81c199 Binary files /dev/null and b/src/renderer/public/sprites/rr/Voltorb.png differ diff --git a/src/renderer/public/sprites/rr/Voltorbh.png b/src/renderer/public/sprites/rr/Voltorbh.png new file mode 100644 index 00000000..71c11da3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Voltorbh.png differ diff --git a/src/renderer/public/sprites/rr/Vullaby.png b/src/renderer/public/sprites/rr/Vullaby.png new file mode 100644 index 00000000..6f5f7c85 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vullaby.png differ diff --git a/src/renderer/public/sprites/rr/Vulpix.png b/src/renderer/public/sprites/rr/Vulpix.png new file mode 100644 index 00000000..815f7cb3 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vulpix.png differ diff --git a/src/renderer/public/sprites/rr/Vulpixa.png b/src/renderer/public/sprites/rr/Vulpixa.png new file mode 100644 index 00000000..57538664 Binary files /dev/null and b/src/renderer/public/sprites/rr/Vulpixa.png differ diff --git a/src/renderer/public/sprites/rr/Wailmer.png b/src/renderer/public/sprites/rr/Wailmer.png new file mode 100644 index 00000000..99161796 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wailmer.png differ diff --git a/src/renderer/public/sprites/rr/Wailord.png b/src/renderer/public/sprites/rr/Wailord.png new file mode 100644 index 00000000..620078e8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wailord.png differ diff --git a/src/renderer/public/sprites/rr/Walkingwake.png b/src/renderer/public/sprites/rr/Walkingwake.png new file mode 100644 index 00000000..a6461081 Binary files /dev/null and b/src/renderer/public/sprites/rr/Walkingwake.png differ diff --git a/src/renderer/public/sprites/rr/Walrein.png b/src/renderer/public/sprites/rr/Walrein.png new file mode 100644 index 00000000..d25f85d4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Walrein.png differ diff --git a/src/renderer/public/sprites/rr/Wartortle.png b/src/renderer/public/sprites/rr/Wartortle.png new file mode 100644 index 00000000..d41d0038 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wartortle.png differ diff --git a/src/renderer/public/sprites/rr/Watchog.png b/src/renderer/public/sprites/rr/Watchog.png new file mode 100644 index 00000000..df93466e Binary files /dev/null and b/src/renderer/public/sprites/rr/Watchog.png differ diff --git a/src/renderer/public/sprites/rr/Wattrel.png b/src/renderer/public/sprites/rr/Wattrel.png new file mode 100644 index 00000000..0d23aa37 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wattrel.png differ diff --git a/src/renderer/public/sprites/rr/Weavile.png b/src/renderer/public/sprites/rr/Weavile.png new file mode 100644 index 00000000..3e498a5f Binary files /dev/null and b/src/renderer/public/sprites/rr/Weavile.png differ diff --git a/src/renderer/public/sprites/rr/Weedle.png b/src/renderer/public/sprites/rr/Weedle.png new file mode 100644 index 00000000..271d8751 Binary files /dev/null and b/src/renderer/public/sprites/rr/Weedle.png differ diff --git a/src/renderer/public/sprites/rr/Weepinbell.png b/src/renderer/public/sprites/rr/Weepinbell.png new file mode 100644 index 00000000..5ed98335 Binary files /dev/null and b/src/renderer/public/sprites/rr/Weepinbell.png differ diff --git a/src/renderer/public/sprites/rr/Weezing.png b/src/renderer/public/sprites/rr/Weezing.png new file mode 100644 index 00000000..f2085e1f Binary files /dev/null and b/src/renderer/public/sprites/rr/Weezing.png differ diff --git a/src/renderer/public/sprites/rr/Weezingg.png b/src/renderer/public/sprites/rr/Weezingg.png new file mode 100644 index 00000000..5e39926d Binary files /dev/null and b/src/renderer/public/sprites/rr/Weezingg.png differ diff --git a/src/renderer/public/sprites/rr/Whimsicott.png b/src/renderer/public/sprites/rr/Whimsicott.png new file mode 100644 index 00000000..0128cf10 Binary files /dev/null and b/src/renderer/public/sprites/rr/Whimsicott.png differ diff --git a/src/renderer/public/sprites/rr/Whirlipede.png b/src/renderer/public/sprites/rr/Whirlipede.png new file mode 100644 index 00000000..bcc6fbb2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Whirlipede.png differ diff --git a/src/renderer/public/sprites/rr/Whiscash.png b/src/renderer/public/sprites/rr/Whiscash.png new file mode 100644 index 00000000..1416c966 Binary files /dev/null and b/src/renderer/public/sprites/rr/Whiscash.png differ diff --git a/src/renderer/public/sprites/rr/Whismur.png b/src/renderer/public/sprites/rr/Whismur.png new file mode 100644 index 00000000..8dade3ed Binary files /dev/null and b/src/renderer/public/sprites/rr/Whismur.png differ diff --git a/src/renderer/public/sprites/rr/Wigglytuff.png b/src/renderer/public/sprites/rr/Wigglytuff.png new file mode 100644 index 00000000..219cb23f Binary files /dev/null and b/src/renderer/public/sprites/rr/Wigglytuff.png differ diff --git a/src/renderer/public/sprites/rr/Wiglett.png b/src/renderer/public/sprites/rr/Wiglett.png new file mode 100644 index 00000000..f5f063c1 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wiglett.png differ diff --git a/src/renderer/public/sprites/rr/Wimpod.png b/src/renderer/public/sprites/rr/Wimpod.png new file mode 100644 index 00000000..b447964e Binary files /dev/null and b/src/renderer/public/sprites/rr/Wimpod.png differ diff --git a/src/renderer/public/sprites/rr/Wingull.png b/src/renderer/public/sprites/rr/Wingull.png new file mode 100644 index 00000000..33f02d9d Binary files /dev/null and b/src/renderer/public/sprites/rr/Wingull.png differ diff --git a/src/renderer/public/sprites/rr/Wishiwashi.png b/src/renderer/public/sprites/rr/Wishiwashi.png new file mode 100644 index 00000000..19b8f55f Binary files /dev/null and b/src/renderer/public/sprites/rr/Wishiwashi.png differ diff --git a/src/renderer/public/sprites/rr/Wishiwashis.png b/src/renderer/public/sprites/rr/Wishiwashis.png new file mode 100644 index 00000000..b6e67360 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wishiwashis.png differ diff --git a/src/renderer/public/sprites/rr/Wishiwashisevi.png b/src/renderer/public/sprites/rr/Wishiwashisevi.png new file mode 100644 index 00000000..ae9ac741 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wishiwashisevi.png differ diff --git a/src/renderer/public/sprites/rr/Wishiwashisevis.png b/src/renderer/public/sprites/rr/Wishiwashisevis.png new file mode 100644 index 00000000..1fcec2ec Binary files /dev/null and b/src/renderer/public/sprites/rr/Wishiwashisevis.png differ diff --git a/src/renderer/public/sprites/rr/Wobbuffet.png b/src/renderer/public/sprites/rr/Wobbuffet.png new file mode 100644 index 00000000..60c44e35 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wobbuffet.png differ diff --git a/src/renderer/public/sprites/rr/Wochien.png b/src/renderer/public/sprites/rr/Wochien.png new file mode 100644 index 00000000..46f7a883 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wochien.png differ diff --git a/src/renderer/public/sprites/rr/Woobat.png b/src/renderer/public/sprites/rr/Woobat.png new file mode 100644 index 00000000..1d743116 Binary files /dev/null and b/src/renderer/public/sprites/rr/Woobat.png differ diff --git a/src/renderer/public/sprites/rr/Wooloo.png b/src/renderer/public/sprites/rr/Wooloo.png new file mode 100644 index 00000000..05ee4a37 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wooloo.png differ diff --git a/src/renderer/public/sprites/rr/Wooper.png b/src/renderer/public/sprites/rr/Wooper.png new file mode 100644 index 00000000..2162c865 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wooper.png differ diff --git a/src/renderer/public/sprites/rr/Wooperp.png b/src/renderer/public/sprites/rr/Wooperp.png new file mode 100644 index 00000000..1a9d3eaa Binary files /dev/null and b/src/renderer/public/sprites/rr/Wooperp.png differ diff --git a/src/renderer/public/sprites/rr/Wormadam.png b/src/renderer/public/sprites/rr/Wormadam.png new file mode 100644 index 00000000..e0e1293a Binary files /dev/null and b/src/renderer/public/sprites/rr/Wormadam.png differ diff --git a/src/renderer/public/sprites/rr/Wormadamsandy.png b/src/renderer/public/sprites/rr/Wormadamsandy.png new file mode 100644 index 00000000..5a1aeff2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wormadamsandy.png differ diff --git a/src/renderer/public/sprites/rr/Wormadamtrash.png b/src/renderer/public/sprites/rr/Wormadamtrash.png new file mode 100644 index 00000000..0631cfcd Binary files /dev/null and b/src/renderer/public/sprites/rr/Wormadamtrash.png differ diff --git a/src/renderer/public/sprites/rr/Wugtrio.png b/src/renderer/public/sprites/rr/Wugtrio.png new file mode 100644 index 00000000..c1f89c85 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wugtrio.png differ diff --git a/src/renderer/public/sprites/rr/Wurmple.png b/src/renderer/public/sprites/rr/Wurmple.png new file mode 100644 index 00000000..e7c714f2 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wurmple.png differ diff --git a/src/renderer/public/sprites/rr/Wynaut.png b/src/renderer/public/sprites/rr/Wynaut.png new file mode 100644 index 00000000..75ba3d25 Binary files /dev/null and b/src/renderer/public/sprites/rr/Wynaut.png differ diff --git a/src/renderer/public/sprites/rr/Wyrdeer.png b/src/renderer/public/sprites/rr/Wyrdeer.png new file mode 100644 index 00000000..48f650be Binary files /dev/null and b/src/renderer/public/sprites/rr/Wyrdeer.png differ diff --git a/src/renderer/public/sprites/rr/Xatu.png b/src/renderer/public/sprites/rr/Xatu.png new file mode 100644 index 00000000..b7abb3e5 Binary files /dev/null and b/src/renderer/public/sprites/rr/Xatu.png differ diff --git a/src/renderer/public/sprites/rr/Xerneas.png b/src/renderer/public/sprites/rr/Xerneas.png new file mode 100644 index 00000000..503dc384 Binary files /dev/null and b/src/renderer/public/sprites/rr/Xerneas.png differ diff --git a/src/renderer/public/sprites/rr/Xerneasnatural.png b/src/renderer/public/sprites/rr/Xerneasnatural.png new file mode 100644 index 00000000..4a5ef414 Binary files /dev/null and b/src/renderer/public/sprites/rr/Xerneasnatural.png differ diff --git a/src/renderer/public/sprites/rr/Xurkitree.png b/src/renderer/public/sprites/rr/Xurkitree.png new file mode 100644 index 00000000..f5c7e9cf Binary files /dev/null and b/src/renderer/public/sprites/rr/Xurkitree.png differ diff --git a/src/renderer/public/sprites/rr/Yamask.png b/src/renderer/public/sprites/rr/Yamask.png new file mode 100644 index 00000000..ad64a3e0 Binary files /dev/null and b/src/renderer/public/sprites/rr/Yamask.png differ diff --git a/src/renderer/public/sprites/rr/Yamaskg.png b/src/renderer/public/sprites/rr/Yamaskg.png new file mode 100644 index 00000000..390a3e24 Binary files /dev/null and b/src/renderer/public/sprites/rr/Yamaskg.png differ diff --git a/src/renderer/public/sprites/rr/Yamper.png b/src/renderer/public/sprites/rr/Yamper.png new file mode 100644 index 00000000..652abb82 Binary files /dev/null and b/src/renderer/public/sprites/rr/Yamper.png differ diff --git a/src/renderer/public/sprites/rr/Yanma.png b/src/renderer/public/sprites/rr/Yanma.png new file mode 100644 index 00000000..0436f3fd Binary files /dev/null and b/src/renderer/public/sprites/rr/Yanma.png differ diff --git a/src/renderer/public/sprites/rr/Yanmega.png b/src/renderer/public/sprites/rr/Yanmega.png new file mode 100644 index 00000000..0f3ff0a7 Binary files /dev/null and b/src/renderer/public/sprites/rr/Yanmega.png differ diff --git a/src/renderer/public/sprites/rr/Yungoos.png b/src/renderer/public/sprites/rr/Yungoos.png new file mode 100644 index 00000000..d82435c4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Yungoos.png differ diff --git a/src/renderer/public/sprites/rr/Yveltal.png b/src/renderer/public/sprites/rr/Yveltal.png new file mode 100644 index 00000000..2203f285 Binary files /dev/null and b/src/renderer/public/sprites/rr/Yveltal.png differ diff --git a/src/renderer/public/sprites/rr/Zacian.png b/src/renderer/public/sprites/rr/Zacian.png new file mode 100644 index 00000000..4a71a76c Binary files /dev/null and b/src/renderer/public/sprites/rr/Zacian.png differ diff --git a/src/renderer/public/sprites/rr/Zaciancrowned.png b/src/renderer/public/sprites/rr/Zaciancrowned.png new file mode 100644 index 00000000..e64283e8 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zaciancrowned.png differ diff --git a/src/renderer/public/sprites/rr/Zamazenta.png b/src/renderer/public/sprites/rr/Zamazenta.png new file mode 100644 index 00000000..838ea671 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zamazenta.png differ diff --git a/src/renderer/public/sprites/rr/Zamazentacrowned.png b/src/renderer/public/sprites/rr/Zamazentacrowned.png new file mode 100644 index 00000000..8947afb9 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zamazentacrowned.png differ diff --git a/src/renderer/public/sprites/rr/Zangoose.png b/src/renderer/public/sprites/rr/Zangoose.png new file mode 100644 index 00000000..1f5b006e Binary files /dev/null and b/src/renderer/public/sprites/rr/Zangoose.png differ diff --git a/src/renderer/public/sprites/rr/Zapdos.png b/src/renderer/public/sprites/rr/Zapdos.png new file mode 100644 index 00000000..57361f2c Binary files /dev/null and b/src/renderer/public/sprites/rr/Zapdos.png differ diff --git a/src/renderer/public/sprites/rr/Zapdosg.png b/src/renderer/public/sprites/rr/Zapdosg.png new file mode 100644 index 00000000..32392afb Binary files /dev/null and b/src/renderer/public/sprites/rr/Zapdosg.png differ diff --git a/src/renderer/public/sprites/rr/Zarude.png b/src/renderer/public/sprites/rr/Zarude.png new file mode 100644 index 00000000..09634f37 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zarude.png differ diff --git a/src/renderer/public/sprites/rr/Zebstrika.png b/src/renderer/public/sprites/rr/Zebstrika.png new file mode 100644 index 00000000..2054c325 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zebstrika.png differ diff --git a/src/renderer/public/sprites/rr/Zebstrikas.png b/src/renderer/public/sprites/rr/Zebstrikas.png new file mode 100644 index 00000000..37402381 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zebstrikas.png differ diff --git a/src/renderer/public/sprites/rr/Zekrom.png b/src/renderer/public/sprites/rr/Zekrom.png new file mode 100644 index 00000000..4776fd60 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zekrom.png differ diff --git a/src/renderer/public/sprites/rr/Zeraora.png b/src/renderer/public/sprites/rr/Zeraora.png new file mode 100644 index 00000000..86b6c245 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zeraora.png differ diff --git a/src/renderer/public/sprites/rr/Zigzagoon.png b/src/renderer/public/sprites/rr/Zigzagoon.png new file mode 100644 index 00000000..5cab394e Binary files /dev/null and b/src/renderer/public/sprites/rr/Zigzagoon.png differ diff --git a/src/renderer/public/sprites/rr/Zigzagoong.png b/src/renderer/public/sprites/rr/Zigzagoong.png new file mode 100644 index 00000000..43f07538 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zigzagoong.png differ diff --git a/src/renderer/public/sprites/rr/Zoroark.png b/src/renderer/public/sprites/rr/Zoroark.png new file mode 100644 index 00000000..db698ebd Binary files /dev/null and b/src/renderer/public/sprites/rr/Zoroark.png differ diff --git a/src/renderer/public/sprites/rr/Zoroarkh.png b/src/renderer/public/sprites/rr/Zoroarkh.png new file mode 100644 index 00000000..ecd32872 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zoroarkh.png differ diff --git a/src/renderer/public/sprites/rr/Zorua.png b/src/renderer/public/sprites/rr/Zorua.png new file mode 100644 index 00000000..610712ad Binary files /dev/null and b/src/renderer/public/sprites/rr/Zorua.png differ diff --git a/src/renderer/public/sprites/rr/Zoruah.png b/src/renderer/public/sprites/rr/Zoruah.png new file mode 100644 index 00000000..f517fe49 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zoruah.png differ diff --git a/src/renderer/public/sprites/rr/Zubat.png b/src/renderer/public/sprites/rr/Zubat.png new file mode 100644 index 00000000..fa8c5ead Binary files /dev/null and b/src/renderer/public/sprites/rr/Zubat.png differ diff --git a/src/renderer/public/sprites/rr/Zweilous.png b/src/renderer/public/sprites/rr/Zweilous.png new file mode 100644 index 00000000..f9aa0350 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zweilous.png differ diff --git a/src/renderer/public/sprites/rr/Zygarde.png b/src/renderer/public/sprites/rr/Zygarde.png new file mode 100644 index 00000000..be229eab Binary files /dev/null and b/src/renderer/public/sprites/rr/Zygarde.png differ diff --git a/src/renderer/public/sprites/rr/Zygarde10.png b/src/renderer/public/sprites/rr/Zygarde10.png new file mode 100644 index 00000000..56e903e4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zygarde10.png differ diff --git a/src/renderer/public/sprites/rr/Zygardecell.png b/src/renderer/public/sprites/rr/Zygardecell.png new file mode 100644 index 00000000..984a6900 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zygardecell.png differ diff --git a/src/renderer/public/sprites/rr/Zygardecomplete.png b/src/renderer/public/sprites/rr/Zygardecomplete.png new file mode 100644 index 00000000..52e93bfe Binary files /dev/null and b/src/renderer/public/sprites/rr/Zygardecomplete.png differ diff --git a/src/renderer/public/sprites/rr/Zygardecore.png b/src/renderer/public/sprites/rr/Zygardecore.png new file mode 100644 index 00000000..ec93c1d4 Binary files /dev/null and b/src/renderer/public/sprites/rr/Zygardecore.png differ diff --git a/src/renderer/saves/RecentSaves.tsx b/src/renderer/saves/RecentSaves.tsx index a667bcff..a85a9fef 100644 --- a/src/renderer/saves/RecentSaves.tsx +++ b/src/renderer/saves/RecentSaves.tsx @@ -1,18 +1,21 @@ import { DialogActions, Modal, ModalDialog, Stack, Typography } from '@mui/joy' import * as E from 'fp-ts/lib/Either' +import { GameOfOrigin } from 'pokemon-resources' import { useCallback, useContext, useEffect, useMemo, useState } from 'react' -import { ParsedPath, splitPath } from 'src/types/SAVTypes/path' +import { PathData, splitPath } from 'src/types/SAVTypes/path' +import { getPluginIdentifier } from 'src/types/SAVTypes/util' import { SaveRef } from 'src/types/types' -import { numericSorter } from '../../util/Sort' +import { filterUndefined, numericSorter } from '../../util/Sort' import { BackendContext } from '../backend/backendProvider' import { RemoveIcon } from '../components/Icons' import OHDataGrid, { SortableColumn } from '../components/OHDataGrid' +import { AppInfoContext } from '../state/appInfo' import { OpenSavesContext } from '../state/openSaves' import SaveCard from './SaveCard' import { formatTime, formatTimeSince, getSaveLogo, SaveViewMode } from './util' interface SaveFileSelectorProps { - onOpen: (path: ParsedPath) => void + onOpen: (path: PathData) => void view: SaveViewMode cardSize: number } @@ -22,6 +25,7 @@ export default function RecentSaves(props: SaveFileSelectorProps) { const backend = useContext(BackendContext) const [recentSaves, setRecentSaves] = useState>() const [, , openSaves] = useContext(OpenSavesContext) + const [, , getEnabledSaveTypes] = useContext(AppInfoContext) const [error, setError] = useState() const openSavePaths = useMemo( @@ -33,10 +37,21 @@ export default function RecentSaves(props: SaveFileSelectorProps) { backend.getRecentSaves().then( E.match( (err) => console.error(err), - (recents) => setRecentSaves(recents) + (recents) => { + const extraSaveIdentifiers = getEnabledSaveTypes() + .map(getPluginIdentifier) + .filter(filterUndefined) + // filter out saves from plugins that aren't enabled + const filteredRecents = Object.entries(recents).filter( + ([, ref]) => + ref.pluginIdentifier === undefined || + extraSaveIdentifiers.includes(ref.pluginIdentifier) + ) + setRecentSaves(Object.fromEntries(filteredRecents)) + } ) ) - }, [backend]) + }, [backend, getEnabledSaveTypes]) const removeRecentSave = useCallback( (path: string) => @@ -51,6 +66,14 @@ export default function RecentSaves(props: SaveFileSelectorProps) { [backend, getRecentSaves] ) + const saveTypeFromOrigin = useCallback( + (origin: number | undefined) => + origin + ? getEnabledSaveTypes().find((s) => s.includesOrigin(origin as GameOfOrigin)) + : undefined, + [getEnabledSaveTypes] + ) + useEffect(() => { if (!recentSaves) { getRecentSaves() @@ -79,7 +102,13 @@ export default function RecentSaves(props: SaveFileSelectorProps) { key: 'game', name: 'Game', width: 130, - renderValue: (value) => save logo, + renderValue: (value) => ( + save logo + ), sortFunction: numericSorter((val) => val.game), cellClass: 'centered-cell', }, @@ -174,6 +203,7 @@ export default function RecentSaves(props: SaveFileSelectorProps) { .sort((a, b) => (b.lastOpened ?? 0) - (a.lastOpened ?? 0)) .map((save) => ( { onOpen(save.filePath) diff --git a/src/renderer/saves/SaveCard.tsx b/src/renderer/saves/SaveCard.tsx index 18e1daf6..f2d0afad 100644 --- a/src/renderer/saves/SaveCard.tsx +++ b/src/renderer/saves/SaveCard.tsx @@ -1,8 +1,8 @@ import { Button, Card, Chip, Dropdown, Menu, MenuButton, MenuItem, Stack } from '@mui/joy' -import { isGameBoy } from 'pokemon-resources' +import { GameOfOrigin, isGameBoy } from 'pokemon-resources' import { useContext, useEffect, useMemo, useState } from 'react' import { SaveRef } from 'src/types/types' -import { getGameColor } from '../../types/SAVTypes/util' +import { getGameColor, getPluginIdentifier } from '../../types/SAVTypes/util' import { BackendContext } from '../backend/backendProvider' import { MenuIcon } from '../components/Icons' import { AppInfoContext } from '../state/appInfo' @@ -23,19 +23,27 @@ const standardViewMinSize = 180 export default function SaveCard({ save, onOpen, onRemove, size = 240 }: SaveCardProps) { const [expanded, setExpanded] = useState(false) const backend = useContext(BackendContext) - const [appInfo] = useContext(AppInfoContext) + const [, , getEnabledSaveTypes] = useContext(AppInfoContext) const [platform, setPlatform] = useState('') const gbBackground = useMemo(() => (save.game ? isGameBoy(save.game) : false), [save.game]) - const backgroundColor = useMemo(() => { - const origin = save.game - if (origin === undefined) return '#666666' - if (save.pluginIdentifier) return '#666666' + const saveType = useMemo( + () => + save.game + ? getEnabledSaveTypes().find((s) => { + if (save.pluginIdentifier || getPluginIdentifier(s)) { + return save.pluginIdentifier === getPluginIdentifier(s) + } + return s.includesOrigin(save.game as GameOfOrigin) + }) + : undefined, + [origin] + ) - const saveType = appInfo.settings.allSaveTypes.find((s) => s.includesOrigin(origin)) - return getGameColor(saveType, origin) - }, [appInfo.settings, save]) + const backgroundColor = useMemo(() => { + return getGameColor(saveType, save.game as GameOfOrigin) + }, [getEnabledSaveTypes, save]) useEffect(() => { backend.getPlatform().then(setPlatform) @@ -47,7 +55,9 @@ export default function SaveCard({ save, onOpen, onRemove, size = 240 }: SaveCar sx={{ width: size, height: size, - backgroundImage: `url(${getSaveLogo(save.game)})`, + backgroundImage: saveType + ? `url(${getSaveLogo(saveType, save.game as GameOfOrigin)})` + : undefined, backgroundSize: gbBackground ? size : size * 0.9, backgroundRepeat: 'no-repeat', backgroundPosition: 'center', diff --git a/src/renderer/saves/SavesModal.tsx b/src/renderer/saves/SavesModal.tsx index e2bfb8a6..9ed21bbb 100644 --- a/src/renderer/saves/SavesModal.tsx +++ b/src/renderer/saves/SavesModal.tsx @@ -11,7 +11,7 @@ import { import * as E from 'fp-ts/lib/Either' import { useCallback, useContext, useState } from 'react' import 'react-data-grid/lib/styles.css' -import { ParsedPath } from 'src/types/SAVTypes/path' +import { PathData } from 'src/types/SAVTypes/path' import { getSaveRef } from '../../types/SAVTypes/SAV' import { buildSaveFile } from '../../types/SAVTypes/load' import { BackendContext } from '../backend/backendProvider' @@ -33,12 +33,12 @@ const SavesModal = (props: SavesModalProps) => { const backend = useContext(BackendContext) const [, dispatchOpenSaves] = useContext(OpenSavesContext) const [lookupState] = useContext(LookupContext) - const [appInfo] = useContext(AppInfoContext) + const [, , getEnabledSaveTypes] = useContext(AppInfoContext) const [viewMode, setViewMode] = useState('cards') const [cardSize, setCardSize] = useState(180) const openSaveFile = useCallback( - async (filePath?: ParsedPath) => { + async (filePath?: PathData) => { backend.loadSaveFile(filePath).then( E.match( (err) => console.error(err), @@ -56,9 +56,7 @@ const SavesModal = (props: SavesModalProps) => { gen345LookupMap: lookupState.gen345, fileCreatedDate: createdDate, }, - appInfo.settings.allSaveTypes.filter( - (saveType) => appInfo.settings.enabledSaveTypes[saveType.name] - ), + getEnabledSaveTypes(), (updatedMon) => backend.writeHomeMon(updatedMon.bytes) ) if (!saveFile) { diff --git a/src/renderer/saves/SuggestedSaves.tsx b/src/renderer/saves/SuggestedSaves.tsx index 2a2514cd..2512b3a3 100644 --- a/src/renderer/saves/SuggestedSaves.tsx +++ b/src/renderer/saves/SuggestedSaves.tsx @@ -1,9 +1,10 @@ import { Stack } from '@mui/joy' import * as E from 'fp-ts/lib/Either' +import { GameOfOrigin } from 'pokemon-resources' import { useCallback, useContext, useEffect, useMemo, useState } from 'react' import { getSaveRef, SAV } from 'src/types/SAVTypes/SAV' import { buildSaveFile } from 'src/types/SAVTypes/load' -import { ParsedPath, splitPath } from '../../types/SAVTypes/path' +import { PathData, splitPath } from '../../types/SAVTypes/path' import { numericSorter } from '../../util/Sort' import { BackendContext } from '../backend/backendProvider' import OHDataGrid, { SortableColumn } from '../components/OHDataGrid' @@ -14,7 +15,7 @@ import SaveCard from './SaveCard' import { filterEmpty, getSaveLogo, SaveViewMode } from './util' interface SaveFileSelectorProps { - onOpen: (path: ParsedPath) => void + onOpen: (path: PathData) => void view: SaveViewMode cardSize: number } @@ -22,7 +23,7 @@ interface SaveFileSelectorProps { export default function SuggestedSaves(props: SaveFileSelectorProps) { const { onOpen, view, cardSize } = props const backend = useContext(BackendContext) - const [appInfo] = useContext(AppInfoContext) + const [, , getEnabledSaveTypes] = useContext(AppInfoContext) const [suggestedSaves, setSuggestedSaves] = useState() const [{ homeMons: homeMonMap, gen12: gen12LookupMap, gen345: gen345LookupMap }] = useContext(LookupContext) @@ -34,7 +35,7 @@ export default function SuggestedSaves(props: SaveFileSelectorProps) { ) const loadSaveData = useCallback( - async (savePath: ParsedPath) => { + async (savePath: PathData) => { const response = await backend.loadSaveFile(savePath) if (E.isRight(response)) { const { fileBytes, createdDate } = response.right @@ -47,9 +48,7 @@ export default function SuggestedSaves(props: SaveFileSelectorProps) { gen345LookupMap, fileCreatedDate: createdDate, }, - appInfo.settings.allSaveTypes.filter( - (saveType) => appInfo.settings.enabledSaveTypes[saveType.name] - ) + getEnabledSaveTypes() ) } return undefined @@ -76,6 +75,14 @@ export default function SuggestedSaves(props: SaveFileSelectorProps) { ) }, [backend, loadSaveData]) + const saveTypeFromOrigin = useCallback( + (origin: number | undefined) => + origin + ? getEnabledSaveTypes().find((s) => s.includesOrigin(origin as GameOfOrigin)) + : undefined, + [getEnabledSaveTypes] + ) + const columns: SortableColumn[] = [ // { // key: 'display', @@ -107,7 +114,13 @@ export default function SuggestedSaves(props: SaveFileSelectorProps) { key: 'game', name: 'Game', width: 130, - renderValue: (value) => save logo, + renderValue: (value) => ( + save logo + ), sortFunction: numericSorter((val) => val.origin), cellClass: 'centered-cell', }, diff --git a/src/renderer/saves/boxes/BoxCell.tsx b/src/renderer/saves/boxes/BoxCell.tsx index 27f848fb..2500b0bb 100644 --- a/src/renderer/saves/boxes/BoxCell.tsx +++ b/src/renderer/saves/boxes/BoxCell.tsx @@ -41,12 +41,13 @@ interface BoxCellProps { borderColor?: string } -const BoxCell = (props: BoxCellProps) => { - const { onClick, onDragEvent, onDrop, disabled, zIndex, mon, borderColor } = props +const BoxCell = ({ onClick, onDragEvent, onDrop, disabled, zIndex, mon, borderColor }: BoxCellProps) => { const [isBeingDragged, setIsBeingDragged] = useState(false) const [isDraggedOver, setIsDraggedOver] = useState(false) const [filterState] = useContext(FilterContext) + disabled = disabled || (mon?.isLocked ?? false); + const isFilteredOut = useMemo(() => { return ( Object.values(filterState).some((val) => val !== undefined) && @@ -121,7 +122,7 @@ const BoxCell = (props: BoxCellProps) => { transition: '0.01s, background-color 0s', transform: isBeingDragged ? 'translateX(-9999px)' : undefined, }} - draggable + draggable={!(mon?.isLocked ?? false)} onDragStart={() => { onDragEvent(false) setIsBeingDragged(true) diff --git a/src/renderer/saves/boxes/HomeBoxDisplay.tsx b/src/renderer/saves/boxes/HomeBoxDisplay.tsx index 9ae3e890..f9727f5d 100644 --- a/src/renderer/saves/boxes/HomeBoxDisplay.tsx +++ b/src/renderer/saves/boxes/HomeBoxDisplay.tsx @@ -4,7 +4,7 @@ import { useCallback, useContext } from 'react' import { MdArrowBack, MdArrowForward } from 'react-icons/md' import { MouseContext } from 'src/renderer/state/mouse' import { MonLocation, OpenSavesContext } from 'src/renderer/state/openSaves' -import { PKMInterface } from '../../../types/interfaces' +import { PKMInterface } from 'src/types/interfaces' import ArrowButton from './ArrowButton' import BoxCell from './BoxCell' diff --git a/src/renderer/saves/boxes/SaveBoxDisplay.tsx b/src/renderer/saves/boxes/SaveBoxDisplay.tsx index 910464d1..951c74c5 100644 --- a/src/renderer/saves/boxes/SaveBoxDisplay.tsx +++ b/src/renderer/saves/boxes/SaveBoxDisplay.tsx @@ -8,6 +8,7 @@ import AttributeRow from 'src/renderer/pokemon/AttributeRow' import { MouseContext } from 'src/renderer/state/mouse' import { MonLocation, OpenSavesContext } from 'src/renderer/state/openSaves' import { PKMInterface } from '../../../types/interfaces' +import { InfoGrid } from '../../components/InfoGrid' import ArrowButton from './ArrowButton' import BoxCell from './BoxCell' @@ -85,9 +86,7 @@ const OpenSaveDisplay = (props: OpenSaveDisplayProps) => { flex: 1, }} > -
- Pokémon {GameOfOriginData[save.origin]?.name} -
+
{save.getGameName()}
{save?.name} ({save?.displayID})
@@ -224,6 +223,7 @@ const OpenSaveDisplay = (props: OpenSaveDisplayProps) => { 0x{save.calculateChecksum().toString(16)} )} + {save.getExtraData && } diff --git a/src/renderer/saves/util.ts b/src/renderer/saves/util.ts index dc3433cd..6ddad972 100644 --- a/src/renderer/saves/util.ts +++ b/src/renderer/saves/util.ts @@ -1,14 +1,50 @@ import dayjs from 'dayjs' -import { getGameLogo, getOriginMark } from '../images/game' +import { colosseumOrXD, ColosseumOrXD, GameOfOrigin, GameOfOriginData } from 'pokemon-resources' +import { PKMInterface } from '../../types/interfaces' +import { getPluginIdentifier, SAVClass } from '../../types/SAVTypes/util' +import { GameLogos, getOriginMark } from '../images/game' import { getPublicImageURL } from '../images/images' export type SaveViewMode = 'cards' | 'grid' -export function getSaveLogo(game?: string | number) { - if (!game) { +export function getMonSaveLogo(mon: PKMInterface, supportedSaves: SAVClass[]) { + if (mon.pluginOrigin) { + const pluginSave = supportedSaves.find((s) => getPluginIdentifier(s) === mon.pluginOrigin) + return `logos/${getPluginIdentifier(pluginSave)}.png` + } + if (!mon.gameOfOrigin) { + return getOriginMark('GB') + } + if (mon.gameOfOrigin === GameOfOrigin.ColosseumXD) { + switch (colosseumOrXD(mon.dexNum, mon.ribbons?.includes('National Ribbon') || mon.isShadow)) { + case ColosseumOrXD.Colosseum: + return GameLogos.Colosseum + case ColosseumOrXD.XD: + return GameLogos.XD + case ColosseumOrXD.NotDeterminable: + return GameLogos.ColosseumXD + } + } + if (mon.gameOfOrigin === -1) { + return GameLogos.GB + } + return GameLogos[ + GameOfOriginData[mon.gameOfOrigin]?.logo ?? + GameOfOriginData[mon.gameOfOrigin]?.name.replace(' ', '') ?? + '' + ] +} + +export function getSaveLogo(saveType: SAVClass | undefined, origin: GameOfOrigin): string { + if (saveType?.prototype.getPluginIdentifier.call({})) { + return getPublicImageURL(`logos/${saveType.prototype.getPluginIdentifier.call({})}.png`) + } + if (!origin) { return getPublicImageURL(getOriginMark('GB')) } - return getPublicImageURL(getGameLogo(typeof game === 'string' ? parseInt(game) : game)) + return GameLogos[ + GameOfOriginData[origin]?.logo ?? GameOfOriginData[origin]?.name.replace(' ', '') ?? '' + ] } export function formatTimeSince(timestamp?: number) { diff --git a/src/renderer/state/appInfo.tsx b/src/renderer/state/appInfo.tsx index ca8b2c61..918aa9f5 100644 --- a/src/renderer/state/appInfo.tsx +++ b/src/renderer/state/appInfo.tsx @@ -8,6 +8,7 @@ import { G3SAV } from '../../types/SAVTypes/G3SAV' import { HGSSSAV } from '../../types/SAVTypes/HGSSSAV' import { ORASSAV } from '../../types/SAVTypes/ORASSAV' import { PtSAV } from '../../types/SAVTypes/PtSAV' +import { G3RRSAV } from '../../types/SAVTypes/radicalred/G3RRSAV' import { SMSAV } from '../../types/SAVTypes/SMSAV' import { USUMSAV } from '../../types/SAVTypes/USUMSAV' import { SAVClass } from '../../types/SAVTypes/util' @@ -15,7 +16,8 @@ import { XYSAV } from '../../types/SAVTypes/XYSAV' export type Settings = { enabledSaveTypes: Record - allSaveTypes: SAVClass[] + officialSaveTypes: SAVClass[] + extraSaveTypes: SAVClass[] } export type AppInfoState = { @@ -31,7 +33,7 @@ export type AppInfoAction = | { type: 'set_savetype_enabled' payload: { - savetype: SAVClass + saveType: SAVClass enabled: boolean } } @@ -51,9 +53,9 @@ export const appInfoReducer: Reducer = ( case 'set_savetype_enabled': { const enabled = state.settings.enabledSaveTypes if (payload.enabled) { - enabled[payload.savetype.name] = true + enabled[payload.saveType.name] = true } else { - enabled[payload.savetype.name] = false + enabled[payload.saveType.name] = false } return { ...state, settings: { ...state.settings, enabledSaveTypes: enabled } } } @@ -62,7 +64,7 @@ export const appInfoReducer: Reducer = ( export const appInfoInitialState: AppInfoState = { settings: { - allSaveTypes: [ + officialSaveTypes: [ G1SAV, G2SAV, G3SAV, @@ -76,6 +78,7 @@ export const appInfoInitialState: AppInfoState = { SMSAV, USUMSAV, ], + extraSaveTypes: [G3RRSAV], enabledSaveTypes: Object.fromEntries( [ G1SAV, @@ -90,12 +93,12 @@ export const appInfoInitialState: AppInfoState = { ORASSAV, SMSAV, USUMSAV, + G3RRSAV, ].map((savetype) => [savetype.name, true]) ), }, } -export const AppInfoContext = createContext<[AppInfoState, Dispatch]>([ - appInfoInitialState, - () => null, -]) +export const AppInfoContext = createContext< + [AppInfoState, Dispatch, () => SAVClass[]] +>([appInfoInitialState, () => null, () => []]) diff --git a/src/types/FileImport.ts b/src/types/FileImport.ts index 3e616b2b..d04459f3 100644 --- a/src/types/FileImport.ts +++ b/src/types/FileImport.ts @@ -12,13 +12,14 @@ import { PK7, PK8, PK9, - PKMType, XDPKM, } from 'pokemon-files' +import { PKMInterface } from './interfaces' import { OHPKM } from './pkm/OHPKM' -import { PKMFile } from './pkm/util' +import { PK3RR } from './SAVTypes/radicalred/PK3RR' +import { PKMClass } from './SAVTypes/util' -function fileTypeFromBytes(bytes: Uint8Array): PKMType | undefined { +function fileTypeFromBytes(bytes: Uint8Array): PKMClass | undefined { switch (bytes.length) { case 69: return PK1 @@ -27,6 +28,8 @@ function fileTypeFromBytes(bytes: Uint8Array): PKMType | undefined { case 80: case 100: return PK3 + case 58: + return PK3RR case 136: return bytes[0x5f] < 20 ? PK4 : PK5 case 236: @@ -38,7 +41,7 @@ function fileTypeFromBytes(bytes: Uint8Array): PKMType | undefined { } } -export function fileTypeFromString(type: string): PKMType | typeof OHPKM | undefined { +export function fileTypeFromString(type: string): PKMClass | typeof OHPKM | undefined { switch (type) { case 'PK1': return PK1 @@ -46,6 +49,8 @@ export function fileTypeFromString(type: string): PKMType | typeof OHPKM | undef return PK2 case 'PK3': return PK3 + case 'PK3RR': + return PK3RR case 'COLOPKM': return COLOPKM case 'XDPKM': @@ -75,8 +80,8 @@ export function fileTypeFromString(type: string): PKMType | typeof OHPKM | undef } } -export const bytesToPKM = (bytes: Uint8Array, extension: string): PKMFile => { - let T: PKMType | typeof OHPKM | undefined +export const bytesToPKM = (bytes: Uint8Array, extension: string): PKMInterface => { + let T: PKMClass | typeof OHPKM | undefined if (extension === '' || extension === 'PKM') { T = fileTypeFromBytes(bytes) } else { @@ -85,5 +90,6 @@ export const bytesToPKM = (bytes: Uint8Array, extension: string): PKMFile => { if (!T) { throw `Unrecognized file` } - return T.fromBytes(bytes.buffer as ArrayBuffer) + const buffer = bytes.buffer.slice(bytes.byteOffset, bytes.byteLength + bytes.byteOffset) + return T.fromBytes(buffer as ArrayBuffer) } diff --git a/src/types/SAVTypes/BW2SAV.ts b/src/types/SAVTypes/BW2SAV.ts index 10424ad1..ccb893d6 100644 --- a/src/types/SAVTypes/BW2SAV.ts +++ b/src/types/SAVTypes/BW2SAV.ts @@ -27,6 +27,8 @@ export class BW2SAV extends G5SAV { ) } + static saveTypeName = 'Pokémon Black 2/White 2' + static includesOrigin(origin: GameOfOrigin) { return origin === GameOfOrigin.Black2 || origin === GameOfOrigin.White2 } diff --git a/src/types/SAVTypes/BWSAV.ts b/src/types/SAVTypes/BWSAV.ts index 1510f653..b9f96e2a 100644 --- a/src/types/SAVTypes/BWSAV.ts +++ b/src/types/SAVTypes/BWSAV.ts @@ -27,6 +27,8 @@ export class BWSAV extends G5SAV { ) } + static saveTypeName = 'Pokémon Black/White' + static includesOrigin(origin: GameOfOrigin) { return origin === GameOfOrigin.White || origin === GameOfOrigin.Black } diff --git a/src/types/SAVTypes/DPSAV.ts b/src/types/SAVTypes/DPSAV.ts index 22477cf3..4f76ebca 100644 --- a/src/types/SAVTypes/DPSAV.ts +++ b/src/types/SAVTypes/DPSAV.ts @@ -5,7 +5,7 @@ import { bytesToUint16LittleEndian, bytesToUint32LittleEndian } from '../../util import { gen4StringToUTF } from '../../util/Strings/StringConverter' import { isRestricted } from '../TransferRestrictions' import { G4SAV } from './G4SAV' -import { ParsedPath } from './path' +import { PathData } from './path' import { hasDesamumeFooter } from './util' export class DPSAV extends G4SAV { @@ -45,7 +45,7 @@ export class DPSAV extends G4SAV { boxNamesOffset: number - constructor(path: ParsedPath, bytes: Uint8Array) { + constructor(path: PathData, bytes: Uint8Array) { super(path, bytes) // current storage block could be either the first or second one, // depending on save count @@ -72,6 +72,8 @@ export class DPSAV extends G4SAV { return !isRestricted(DP_TRANSFER_RESTRICTIONS, dexNumber, formeNumber) } + static saveTypeName = 'Pokémon Diamond/Pearl' + static fileIsSave(bytes: Uint8Array): boolean { if (bytes.length < G4SAV.SAVE_SIZE_BYTES) { return false diff --git a/src/types/SAVTypes/G1SAV.ts b/src/types/SAVTypes/G1SAV.ts index 1e463b24..9f7d6b46 100644 --- a/src/types/SAVTypes/G1SAV.ts +++ b/src/types/SAVTypes/G1SAV.ts @@ -1,6 +1,6 @@ import lodash from 'lodash' import { PK1 } from 'pokemon-files' -import { GameOfOrigin, Languages } from 'pokemon-resources' +import { GameOfOrigin, GameOfOriginData, Languages } from 'pokemon-resources' import { NationalDex } from 'pokemon-species-data' import { GEN1_TRANSFER_RESTRICTIONS } from '../../consts/TransferRestrictions' import { bytesToUint16BigEndian, get8BitChecksum } from '../../util/ByteLogic' @@ -8,7 +8,7 @@ import { natDexToGen1ID } from '../../util/ConvertPokemonID' import { gen12StringToUTF, utf16StringToGen12 } from '../../util/Strings/StringConverter' import { OHPKM } from '../pkm/OHPKM' import { Box, BoxCoordinates, SAV } from './SAV' -import { ParsedPath } from './path' +import { PathData } from './path' import { LOOKUP_TYPE } from './util' const SAVE_SIZE_BYTES = 0x8000 @@ -41,7 +41,7 @@ export class G1SAV implements SAV { boxRows = 4 boxColumns = 5 - filePath: ParsedPath + filePath: PathData fileCreated?: Date money: number = 0 // TODO: set money for gen 1 saves @@ -59,7 +59,7 @@ export class G1SAV implements SAV { updatedBoxSlots: BoxCoordinates[] = [] - constructor(path: ParsedPath, bytes: Uint8Array, fileCreated?: Date) { + constructor(path: PathData, bytes: Uint8Array, fileCreated?: Date) { this.bytes = bytes this.filePath = path this.fileCreated = fileCreated @@ -132,6 +132,10 @@ export class G1SAV implements SAV { } }) } + sid?: number | undefined + pcChecksumOffset?: number | undefined + pcOffset?: number | undefined + calculateChecksum?: (() => number) | undefined prepareBoxesAndGetModified() { const changedMonPKMs: OHPKM[] = [] @@ -225,6 +229,14 @@ export class G1SAV implements SAV { return this.boxes[this.currentPCBox] } + getGameName() { + const gameOfOrigin = GameOfOriginData[this.origin] + return gameOfOrigin ? `Pokémon ${gameOfOrigin.name}` : '(Unknown Game)' + } + + static saveTypeAbbreviation = 'RBY (Int)' + static saveTypeName = 'Pokémon Red/Blue/Yellow (INT)' + static fileIsSave(bytes: Uint8Array): boolean { // Gen 1 and Gen 2 saves are the same size, so assume it's Gen 2 if the Gen 2 checksums are valid if (areCrystalInternationalChecksumsValid(bytes) || areGoldSilverChecksumsValid(bytes)) { @@ -250,6 +262,10 @@ export class G1SAV implements SAV { static includesOrigin(origin: GameOfOrigin) { return origin >= GameOfOrigin.Red && origin <= GameOfOrigin.Yellow } + + getPluginIdentifier() { + return undefined + } } function areGoldSilverChecksumsValid(bytes: Uint8Array) { diff --git a/src/types/SAVTypes/G2SAV.ts b/src/types/SAVTypes/G2SAV.ts index 6c2bd4d1..21058ef6 100644 --- a/src/types/SAVTypes/G2SAV.ts +++ b/src/types/SAVTypes/G2SAV.ts @@ -1,6 +1,6 @@ import { uniq } from 'lodash' import { PK2 } from 'pokemon-files' -import { GameOfOrigin, Languages } from 'pokemon-resources' +import { GameOfOrigin, GameOfOriginData, Languages } from 'pokemon-resources' import { NationalDex } from 'pokemon-species-data' import { EXCLAMATION } from '../../consts/Formes' import { GEN2_TRANSFER_RESTRICTIONS } from '../../consts/TransferRestrictions' @@ -8,7 +8,7 @@ import { bytesToUint16BigEndian, get8BitChecksum } from '../../util/ByteLogic' import { gen12StringToUTF, utf16StringToGen12 } from '../../util/Strings/StringConverter' import { OHPKM } from '../pkm/OHPKM' import { Box, BoxCoordinates, SAV } from './SAV' -import { emptyParsedPath, ParsedPath } from './path' +import { emptyPathData, PathData } from './path' import { LOOKUP_TYPE } from './util' const CURRENT_BOX_OFFSET_GS_INTL = 0x2724 @@ -28,7 +28,7 @@ export class G2SAV implements SAV { boxRows = 4 boxColumns = 5 - filePath: ParsedPath + filePath: PathData fileCreated?: Date money: number = 0 // TODO: set money for gen 2 saves @@ -46,7 +46,7 @@ export class G2SAV implements SAV { updatedBoxSlots: BoxCoordinates[] = [] - constructor(path: ParsedPath, bytes: Uint8Array, fileCreated?: Date) { + constructor(path: PathData, bytes: Uint8Array, fileCreated?: Date) { this.bytes = bytes this.filePath = path this.fileCreated = fileCreated @@ -104,6 +104,11 @@ export class G2SAV implements SAV { } }) } + pluginIdentifier?: string | undefined + sid?: number | undefined + pcChecksumOffset?: number | undefined + pcOffset?: number | undefined + calculateChecksum?: (() => number) | undefined prepareBoxesAndGetModified() { const changedMonPKMs: OHPKM[] = [] @@ -244,12 +249,20 @@ export class G2SAV implements SAV { return this.boxes[this.currentPCBox] } + getGameName() { + const gameOfOrigin = GameOfOriginData[this.origin] + return gameOfOrigin ? `Pokémon ${gameOfOrigin.name}` : '(Unknown Game)' + } + + static saveTypeAbbreviation = 'GSC (Int)' + static saveTypeName = 'Pokémon Gold/Silver/Crystal (INT)' + static fileIsSave(bytes: Uint8Array): boolean { if (bytes.length != SAVE_SIZE_BYTES) { return false } try { - const g2Save = new G2SAV(emptyParsedPath, bytes) + const g2Save = new G2SAV(emptyPathData, bytes) return g2Save.areCrystalInternationalChecksumsValid() || g2Save.areGoldSilverChecksumsValid() } catch { return false @@ -272,4 +285,8 @@ export class G2SAV implements SAV { static includesOrigin(origin: GameOfOrigin) { return origin >= GameOfOrigin.Gold && origin <= GameOfOrigin.Crystal } + + getPluginIdentifier() { + return undefined + } } diff --git a/src/types/SAVTypes/G3SAV.ts b/src/types/SAVTypes/G3SAV.ts index 7563253b..83539fe2 100644 --- a/src/types/SAVTypes/G3SAV.ts +++ b/src/types/SAVTypes/G3SAV.ts @@ -1,21 +1,24 @@ import { PK3 } from 'pokemon-files' -import { GameOfOrigin } from 'pokemon-resources' +import { GameOfOrigin, GameOfOriginData } from 'pokemon-resources' import { NationalDex } from 'pokemon-species-data' import { GEN3_TRANSFER_RESTRICTIONS } from '../../consts/TransferRestrictions' import { bytesToUint16LittleEndian, bytesToUint32LittleEndian, - bytesToUint64LittleEndian, uint16ToBytesLittleEndian, uint32ToBytesLittleEndian, } from '../../util/ByteLogic' import { gen3StringToUTF } from '../../util/Strings/StringConverter' import { OHPKM } from '../pkm/OHPKM' import { Box, BoxCoordinates, SAV } from './SAV' -import { ParsedPath, splitPath } from './path' +import { emptyPathData, PathData, splitPath } from './path' import { LOOKUP_TYPE } from './util' -const SAVE_SIZE_BYTES = 0x20000 +export const SAVE_SIZE_BYTES = 0x20000 +export const EMERALD_SECURITY_OFFSET = 0xac +export const EMERALD_SECURITY_COPY_OFFSET = 0x01f4 +export const FRLG_SECURITY_OFFSET = 0x0af8 +export const FRLG_SECURITY_COPY_OFFSET = 0x0f20 export class G3Sector { data: Uint8Array @@ -74,7 +77,9 @@ export class G3SaveBackup { isFirstSave: boolean = false + gameCode: number = 0 securityKey: number = 0 + securityKeyCopy?: number money: number = -1 @@ -97,14 +102,39 @@ export class G3SaveBackup { constructor(bytes: Uint8Array) { this.bytes = bytes this.saveIndex = bytesToUint32LittleEndian(bytes, 0xffc) - this.securityKey = bytesToUint32LittleEndian(bytes, 0xf20) - this.money = bytesToUint32LittleEndian(bytes, 0x290) ^ this.securityKey this.sectors = [] for (let i = 0; i < 14; i++) { this.sectors.push(new G3Sector(bytes, i)) this.firstSectorIndex = this.sectors[0].sectionID } this.sectors.sort((sector1, sector2) => sector1.sectionID - sector2.sectionID) + + this.gameCode = this.sectors[0].data[0xac] + switch (this.gameCode) { + case 0: + this.origin = GameOfOrigin.Ruby + this.money = bytesToUint32LittleEndian(this.sectors[1].data, 0x490) + break + case 1: + this.origin = GameOfOrigin.FireRed + this.securityKey = bytesToUint32LittleEndian(this.sectors[0].data, FRLG_SECURITY_OFFSET) + this.securityKeyCopy = bytesToUint32LittleEndian( + this.sectors[0].data, + FRLG_SECURITY_COPY_OFFSET + ) + this.money = bytesToUint32LittleEndian(this.sectors[1].data, 0x290) ^ this.securityKey + break + default: + this.origin = GameOfOrigin.Emerald + this.securityKey = bytesToUint32LittleEndian(this.sectors[0].data, EMERALD_SECURITY_OFFSET) + this.securityKeyCopy = bytesToUint32LittleEndian( + this.sectors[0].data, + EMERALD_SECURITY_COPY_OFFSET + ) + this.money = bytesToUint32LittleEndian(this.sectors[1].data, 0x490) ^ this.securityKey + break + } + this.name = gen3StringToUTF(this.sectors[0].data, 0, 10) // concatenate pc data from all sectors this.pcDataContiguous = new Uint8Array(33744) @@ -131,22 +161,7 @@ export class G3SaveBackup { console.error(e) } } - switch (bytesToUint32LittleEndian(this.sectors[0].data, 0xac)) { - case 0: - this.origin = GameOfOrigin.Ruby - this.money = bytesToUint32LittleEndian(this.sectors[1].data, 0x490) - break - case 1: - this.origin = GameOfOrigin.FireRed - this.securityKey = bytesToUint32LittleEndian(this.sectors[0].data, 0xaf8) - this.money = bytesToUint32LittleEndian(this.sectors[1].data, 0x290) ^ this.securityKey - break - default: - this.origin = GameOfOrigin.Emerald - this.securityKey = bytesToUint32LittleEndian(this.sectors[0].data, 0xac) - this.money = bytesToUint32LittleEndian(this.sectors[1].data, 0x490) ^ this.securityKey - break - } + this.name = gen3StringToUTF(this.sectors[0].data, 0x00, 7) this.tid = bytesToUint16LittleEndian(this.sectors[0].data, 0x0a) this.sid = bytesToUint16LittleEndian(this.sectors[0].data, 0x0c) @@ -177,7 +192,7 @@ export class G3SAV implements SAV { boxRows = 5 boxColumns = 6 - filePath: ParsedPath + filePath: PathData fileCreated?: Date money: number @@ -196,7 +211,7 @@ export class G3SAV implements SAV { updatedBoxSlots: BoxCoordinates[] = [] - constructor(path: ParsedPath, bytes: Uint8Array) { + constructor(path: PathData, bytes: Uint8Array) { this.bytes = bytes this.filePath = path const saveOne = new G3SaveBackup(bytes.slice(0, 0xe000)) @@ -255,6 +270,7 @@ export class G3SAV implements SAV { this.origin = this.primarySave.origin } } + console.log(this.boxes) } prepareBoxesAndGetModified() { @@ -306,18 +322,30 @@ export class G3SAV implements SAV { return this.boxes[this.currentPCBox] } + getGameName() { + const gameOfOrigin = GameOfOriginData[this.origin] + return gameOfOrigin ? `Pokémon ${gameOfOrigin.name}` : '(Unknown Game)' + } + + static saveTypeAbbreviation = 'RSE/FRLG' + static saveTypeName = 'Pokémon Ruby/Sapphire/Emerald/FireRed/LeafGreen' + static fileIsSave(bytes: Uint8Array): boolean { if (bytes.length !== SAVE_SIZE_BYTES) { return false } - const valueAtAC = bytesToUint32LittleEndian(bytes, 0xac) - if (valueAtAC === 1 || valueAtAC === 0) { - return true - } - for (let i = 0x890; i < 0xf2c; i += 4) { - if (bytesToUint64LittleEndian(bytes, i) !== 0) return true + try { + const save = new G3SAV(emptyPathData, bytes) + if (save.primarySave.gameCode === 0) { + return true + } + return ( + save.primarySave.securityKey > 0 && + save.primarySave.securityKey === save.primarySave.securityKeyCopy + ) + } catch { + return false } - return false } gameColor() { @@ -340,4 +368,22 @@ export class G3SAV implements SAV { static includesOrigin(origin: GameOfOrigin) { return origin >= GameOfOrigin.Sapphire && origin <= GameOfOrigin.LeafGreen } + + getPluginIdentifier() { + return undefined + } + + getExtraData(): object { + return { + securityKey: this.primarySave.securityKey, + securityKeyCopyEmerald: new DataView( + this.primarySave.sectors[0].data.buffer as ArrayBuffer + ).getUint32(0x1f4, true), + securityKeyCopyFRLG: new DataView( + this.primarySave.sectors[0].data.buffer as ArrayBuffer + ).getUint32(0xf20, true), + rivalName: gen3StringToUTF(this.primarySave.sectors[3].data, 0x0bcc, 8), + gameCode: this.primarySave.gameCode, + } + } } diff --git a/src/types/SAVTypes/G4SAV.ts b/src/types/SAVTypes/G4SAV.ts index d7f2d1a8..bffdf385 100644 --- a/src/types/SAVTypes/G4SAV.ts +++ b/src/types/SAVTypes/G4SAV.ts @@ -1,5 +1,5 @@ import { PK4 } from 'pokemon-files' -import { GameOfOrigin } from 'pokemon-resources' +import { GameOfOrigin, GameOfOriginData } from 'pokemon-resources' import { bytesToUint16LittleEndian, bytesToUint32LittleEndian, @@ -9,7 +9,7 @@ import { CRC16_CCITT } from '../../util/Encryption' import { gen4StringToUTF } from '../../util/Strings/StringConverter' import { OHPKM } from '../pkm/OHPKM' import { Box, BoxCoordinates, SAV } from './SAV' -import { ParsedPath } from './path' +import { PathData } from './path' import { LOOKUP_TYPE } from './util' export abstract class G4SAV implements SAV { @@ -24,7 +24,7 @@ export abstract class G4SAV implements SAV { boxRows = 5 boxColumns = 6 - filePath: ParsedPath + filePath: PathData fileCreated?: Date money: number = 0 // TODO: Gen 4 money @@ -56,7 +56,7 @@ export abstract class G4SAV implements SAV { footerSize: number = 0x14 - constructor(path: ParsedPath, bytes: Uint8Array) { + constructor(path: PathData, bytes: Uint8Array) { this.bytes = bytes this.filePath = path this.boxes = Array(G4SAV.BOX_COUNT) @@ -66,6 +66,10 @@ export abstract class G4SAV implements SAV { } this.origin = bytes[0x80] } + pluginIdentifier?: string | undefined + pcChecksumOffset?: number | undefined + pcOffset?: number | undefined + calculateChecksum?: (() => number) | undefined buildBoxes() { if (bytesToUint32LittleEndian(this.bytes, this.currentSaveBoxStartOffset) === 0xffffffff) { @@ -165,6 +169,14 @@ export abstract class G4SAV implements SAV { return this.boxes[this.currentPCBox] } + getGameName() { + const gameOfOrigin = GameOfOriginData[this.origin] + return gameOfOrigin ? `Pokémon ${gameOfOrigin.name}` : '(Unknown Game)' + } + + static saveTypeAbbreviation = 'DPPt/HGSS' + static saveTypeName = 'Pokémon Diamond/Pearl/Platinum/HeartGold/SoulSilver' + // Gen 4 saves include a size and hex "date" that can identify save type static validDateAndSize(bytes: Uint8Array, offset: number) { const size = bytesToUint32LittleEndian(bytes, offset - 0xc) @@ -199,4 +211,8 @@ export abstract class G4SAV implements SAV { (origin >= GameOfOrigin.HeartGold && origin <= GameOfOrigin.SoulSilver) ) } + + getPluginIdentifier() { + return undefined + } } diff --git a/src/types/SAVTypes/G5SAV.ts b/src/types/SAVTypes/G5SAV.ts index 2da5ae79..c202dd6c 100644 --- a/src/types/SAVTypes/G5SAV.ts +++ b/src/types/SAVTypes/G5SAV.ts @@ -1,6 +1,6 @@ import { uniq } from 'lodash' import { PK5 } from 'pokemon-files' -import { GameOfOrigin } from 'pokemon-resources' +import { GameOfOrigin, GameOfOriginData } from 'pokemon-resources' import { bytesToUint16LittleEndian, bytesToUint32LittleEndian, @@ -10,7 +10,7 @@ import { CRC16_CCITT } from '../../util/Encryption' import { gen5StringToUTF } from '../../util/Strings/StringConverter' import { OHPKM } from '../pkm/OHPKM' import { Box, BoxCoordinates, SAV } from './SAV' -import { ParsedPath } from './path' +import { PathData } from './path' import { hasDesamumeFooter, LOOKUP_TYPE } from './util' const PC_OFFSET = 0x400 @@ -24,13 +24,15 @@ export abstract class G5SAV implements SAV { static SAVE_SIZE_BYTES = 0x80000 static lookupType: LOOKUP_TYPE = 'gen345' + static saveTypeAbbreviation = 'BW/BW2' + origin: GameOfOrigin = 0 isPlugin: false = false boxRows = 5 boxColumns = 6 - filePath: ParsedPath + filePath: PathData fileCreated?: Date money: number = 0 // TODO: Gen 5 money @@ -58,7 +60,7 @@ export abstract class G5SAV implements SAV { checksumMirrorsChecksumOffset: number = 0x23f9a - constructor(path: ParsedPath, bytes: Uint8Array) { + constructor(path: PathData, bytes: Uint8Array) { this.bytes = bytes this.filePath = path this.boxes = new Array(G5SAV.BOX_COUNT) @@ -173,6 +175,11 @@ export abstract class G5SAV implements SAV { return this.boxes[this.currentPCBox] } + getGameName() { + const gameOfOrigin = GameOfOriginData[this.origin] + return gameOfOrigin ? `Pokémon ${gameOfOrigin.name}` : '(Unknown Game)' + } + static gen4ValidDateAndSize(bytes: Uint8Array, offset: number) { const size = bytesToUint32LittleEndian(bytes, offset - 0xc) if (size !== (offset & 0xffff)) return false @@ -211,4 +218,8 @@ export abstract class G5SAV implements SAV { return '#666666' } } + + getPluginIdentifier() { + return undefined + } } diff --git a/src/types/SAVTypes/G6SAV.ts b/src/types/SAVTypes/G6SAV.ts index b0810b36..9aec4a77 100644 --- a/src/types/SAVTypes/G6SAV.ts +++ b/src/types/SAVTypes/G6SAV.ts @@ -1,11 +1,11 @@ import { PK6 } from 'pokemon-files' -import { GameOfOrigin } from 'pokemon-resources' +import { GameOfOrigin, GameOfOriginData } from 'pokemon-resources' import { bytesToUint16LittleEndian, uint16ToBytesLittleEndian } from '../../util/ByteLogic' import { CRC16_CCITT } from '../../util/Encryption' import { utf16BytesToString } from '../../util/Strings/StringConverter' import { OHPKM } from '../pkm/OHPKM' import { Box, BoxCoordinates, SAV } from './SAV' -import { ParsedPath } from './path' +import { PathData } from './path' const BOX_NAMES_OFFSET: number = 0x04400 const BOX_SIZE: number = 232 * 30 @@ -13,6 +13,7 @@ const BOX_DATA_SIZE: number = 0x34ad0 export abstract class G6SAV implements SAV { static pkmType = PK6 + static saveTypeAbbreviation = 'XY/ORAS' origin: GameOfOrigin = 0 isPlugin: false = false @@ -20,7 +21,7 @@ export abstract class G6SAV implements SAV { boxRows = 5 boxColumns = 6 - filePath: ParsedPath + filePath: PathData fileCreated?: Date money: number = 0 // TODO: Gen 5 money @@ -48,7 +49,7 @@ export abstract class G6SAV implements SAV { pcDataSize = BOX_DATA_SIZE pcChecksumOffset: number - constructor(path: ParsedPath, bytes: Uint8Array, pcOffset: number, pcChecksumOffset: number) { + constructor(path: PathData, bytes: Uint8Array, pcOffset: number, pcChecksumOffset: number) { this.bytes = bytes this.filePath = path this.name = utf16BytesToString(this.bytes, this.trainerDataOffset + 72, 0x10) @@ -124,6 +125,11 @@ export abstract class G6SAV implements SAV { return this.boxes[this.currentPCBox] } + getGameName() { + const gameOfOrigin = GameOfOriginData[this.origin] + return gameOfOrigin ? `Pokémon ${gameOfOrigin.name}` : '(Unknown Game)' + } + gameColor() { switch (this.origin) { case GameOfOrigin.X: @@ -138,4 +144,8 @@ export abstract class G6SAV implements SAV { return '#666666' } } + + getPluginIdentifier() { + return undefined + } } diff --git a/src/types/SAVTypes/G7SAV.ts b/src/types/SAVTypes/G7SAV.ts index 8ee4dd1e..65036db2 100644 --- a/src/types/SAVTypes/G7SAV.ts +++ b/src/types/SAVTypes/G7SAV.ts @@ -1,5 +1,5 @@ import { PK7 } from 'pokemon-files' -import { GameOfOrigin } from 'pokemon-resources' +import { GameOfOrigin, GameOfOriginData } from 'pokemon-resources' import { bytesToUint16LittleEndian, bytesToUint32LittleEndian, @@ -9,7 +9,7 @@ import { CRC16_Invert, SignWithMemeCrypto } from '../../util/Encryption' import { utf16BytesToString } from '../../util/Strings/StringConverter' import { OHPKM } from '../pkm/OHPKM' import { Box, BoxCoordinates, SAV } from './SAV' -import { ParsedPath } from './path' +import { PathData } from './path' import { SIZE_USUM } from './util' const BOX_SIZE: number = 232 * 30 @@ -17,6 +17,7 @@ const BOX_COUNT = 32 export abstract class G7SAV implements SAV { static pkmType = PK7 + static saveTypeAbbreviation = 'SM/USUM' origin: GameOfOrigin = 0 isPlugin = false @@ -24,7 +25,7 @@ export abstract class G7SAV implements SAV { boxRows = 5 boxColumns = 6 - filePath: ParsedPath + filePath: PathData fileCreated?: Date money: number = 0 // TODO: Gen 7 money @@ -53,7 +54,7 @@ export abstract class G7SAV implements SAV { pcChecksumOffset: number constructor( - path: ParsedPath, + path: PathData, bytes: Uint8Array, pcOffset: number, pcChecksumOffset: number, @@ -141,6 +142,11 @@ export abstract class G7SAV implements SAV { return this.boxes[this.currentPCBox] } + getGameName() { + const gameOfOrigin = GameOfOriginData[this.origin] + return gameOfOrigin ? `Pokémon ${gameOfOrigin.name}` : '(Unknown Game)' + } + gameColor() { switch (this.origin) { case GameOfOrigin.Sun: @@ -155,4 +161,8 @@ export abstract class G7SAV implements SAV { return '#666666' } } + + getPluginIdentifier() { + return undefined + } } diff --git a/src/types/SAVTypes/HGSSSAV.ts b/src/types/SAVTypes/HGSSSAV.ts index 9875c6a5..b99c9e12 100644 --- a/src/types/SAVTypes/HGSSSAV.ts +++ b/src/types/SAVTypes/HGSSSAV.ts @@ -5,7 +5,7 @@ import { bytesToUint16LittleEndian, bytesToUint32LittleEndian } from '../../util import { gen4StringToUTF } from '../../util/Strings/StringConverter' import { isRestricted } from '../TransferRestrictions' import { G4SAV } from './G4SAV' -import { ParsedPath } from './path' +import { PathData } from './path' import { hasDesamumeFooter } from './util' export class HGSSSAV extends G4SAV { @@ -47,7 +47,7 @@ export class HGSSSAV extends G4SAV { footerSize: number = HGSSSAV.BLOCK_FOOTER_SIZE - constructor(path: ParsedPath, bytes: Uint8Array) { + constructor(path: PathData, bytes: Uint8Array) { super(path, bytes) // current storage block could be either the first or second one, // depending on save count @@ -74,6 +74,8 @@ export class HGSSSAV extends G4SAV { return !isRestricted(HGSS_TRANSFER_RESTRICTIONS, dexNumber, formeNumber) } + static saveTypeName = 'Pokémon HeartGold/SoulSilver' + static fileIsSave(bytes: Uint8Array): boolean { if (bytes.length < G4SAV.SAVE_SIZE_BYTES) { return false diff --git a/src/types/SAVTypes/HomeData.ts b/src/types/SAVTypes/HomeData.ts index ec8e319a..6f312921 100644 --- a/src/types/SAVTypes/HomeData.ts +++ b/src/types/SAVTypes/HomeData.ts @@ -5,7 +5,7 @@ import { TransferRestrictions } from '../TransferRestrictions' import { OHPKM } from '../pkm/OHPKM' import { BoxMonIdentifiers } from '../storage' import { Box, BoxCoordinates, SAV } from './SAV' -import { emptyParsedPath, ParsedPath } from './path' +import { emptyPathData, PathData } from './path' export class HomeBox implements Box { name: string @@ -47,7 +47,7 @@ export class HomeData implements SAV { transferRestrictions: TransferRestrictions = {} - filePath: ParsedPath = emptyParsedPath + filePath: PathData = emptyPathData fileCreated?: Date money: number = 0 @@ -71,11 +71,19 @@ export class HomeData implements SAV { this.boxNames = lodash.range(36).map((i) => `Box ${i + 1}`) this.boxes = this.boxNames.map((name) => new HomeBox(name)) } + pluginIdentifier?: string | undefined + pcChecksumOffset?: number | undefined + pcOffset?: number | undefined + calculateChecksum?: (() => number) | undefined getCurrentBox() { return this.boxes[this.currentPCBox] } + getGameName() { + return 'OpenHome' + } + prepareBoxesAndGetModified() { return [] } @@ -87,4 +95,8 @@ export class HomeData implements SAV { gameColor() { return '#7DCEAB' } + + getPluginIdentifier() { + return undefined + } } diff --git a/src/types/SAVTypes/ORASSAV.ts b/src/types/SAVTypes/ORASSAV.ts index 9ee89905..3c73d8f8 100644 --- a/src/types/SAVTypes/ORASSAV.ts +++ b/src/types/SAVTypes/ORASSAV.ts @@ -2,7 +2,7 @@ import { GameOfOrigin } from 'pokemon-resources' import { ORAS_TRANSFER_RESTRICTIONS } from '../../consts/TransferRestrictions' import { isRestricted } from '../TransferRestrictions' import { G6SAV } from './G6SAV' -import { ParsedPath } from './path' +import { PathData } from './path' const PC_OFFSET = 0x33000 const PC_CHECKSUM_OFFSET = 0x75fda @@ -11,7 +11,7 @@ const SAVE_SIZE_BYTES = 0x76000 export class ORASSAV extends G6SAV { static transferRestrictions = ORAS_TRANSFER_RESTRICTIONS - constructor(path: ParsedPath, bytes: Uint8Array) { + constructor(path: PathData, bytes: Uint8Array) { super(path, bytes, PC_OFFSET, PC_CHECKSUM_OFFSET) } @@ -23,6 +23,8 @@ export class ORASSAV extends G6SAV { return bytes.length === SAVE_SIZE_BYTES } + static saveTypeName = 'Pokémon Omega Ruby/Alpha Sapphire' + static includesOrigin(origin: GameOfOrigin) { return origin === GameOfOrigin.OmegaRuby || origin === GameOfOrigin.AlphaSapphire } diff --git a/src/types/SAVTypes/PtSAV.ts b/src/types/SAVTypes/PtSAV.ts index 7d19a0ac..0591cbf3 100644 --- a/src/types/SAVTypes/PtSAV.ts +++ b/src/types/SAVTypes/PtSAV.ts @@ -5,7 +5,7 @@ import { bytesToUint16LittleEndian, bytesToUint32LittleEndian } from '../../util import { gen4StringToUTF } from '../../util/Strings/StringConverter' import { isRestricted } from '../TransferRestrictions' import { G4SAV } from './G4SAV' -import { ParsedPath } from './path' +import { PathData } from './path' import { hasDesamumeFooter } from './util' export class PtSAV extends G4SAV { @@ -47,7 +47,7 @@ export class PtSAV extends G4SAV { boxNamesOffset: number - constructor(path: ParsedPath, bytes: Uint8Array) { + constructor(path: PathData, bytes: Uint8Array) { super(path, bytes) // current storage block could be either the first or second one, // depending on save count diff --git a/src/types/SAVTypes/SAV.ts b/src/types/SAVTypes/SAV.ts index 63795c5f..5b2f7dbe 100644 --- a/src/types/SAVTypes/SAV.ts +++ b/src/types/SAVTypes/SAV.ts @@ -2,7 +2,7 @@ import { GameOfOrigin } from 'pokemon-resources' import { SaveRef } from '../../types/types' import { PKMInterface } from '../interfaces' import { OHPKM } from '../pkm/OHPKM' -import { ParsedPath } from './path' +import { PathData } from './path' export class Box

{ name: string @@ -25,7 +25,7 @@ export interface SAV

{ boxRows: number boxColumns: number - filePath: ParsedPath + filePath: PathData fileCreated?: Date money: number @@ -49,7 +49,7 @@ export interface SAV

{ gameColor: () => string isPlugin: boolean - pluginIdentifier?: string + getPluginIdentifier: () => string | undefined getCurrentBox: () => Box

supportsMon: (dexNumber: number, formeNumber: number) => boolean @@ -58,10 +58,14 @@ export interface SAV

{ prepareBoxesAndGetModified: () => OHPKM[] calculateChecksum?: () => number + + getGameName: () => string + + getExtraData?: () => object } export type PluginSAV

= SAV

& { - pluginIdentifier: string + getPluginIdentifier: () => string isPlugin: true } @@ -72,6 +76,6 @@ export function getSaveRef(save: SAV): SaveRef { trainerName: save.name ? save.name : undefined, trainerID: save.displayID, lastOpened: Date.now(), - pluginIdentifier: save.pluginIdentifier, + pluginIdentifier: save.getPluginIdentifier(), } } diff --git a/src/types/SAVTypes/SMSAV.ts b/src/types/SAVTypes/SMSAV.ts index 7bd00138..b43f9ce9 100644 --- a/src/types/SAVTypes/SMSAV.ts +++ b/src/types/SAVTypes/SMSAV.ts @@ -2,7 +2,7 @@ import { GameOfOrigin } from 'pokemon-resources' import { SM_TRANSFER_RESTRICTIONS } from '../../consts/TransferRestrictions' import { isRestricted } from '../TransferRestrictions' import { G7SAV } from './G7SAV' -import { ParsedPath } from './path' +import { PathData } from './path' const PC_OFFSET = 0x04e00 const METADATA_OFFSET = 0x6be00 - 0x200 @@ -11,7 +11,7 @@ const BOX_NAMES_OFFSET: number = 0x04800 const SAVE_SIZE_BYTES = 0x6be00 export class SMSAV extends G7SAV { - constructor(path: ParsedPath, bytes: Uint8Array) { + constructor(path: PathData, bytes: Uint8Array) { super(path, bytes, PC_OFFSET, PC_CHECKSUM_OFFSET, BOX_NAMES_OFFSET) } @@ -23,6 +23,8 @@ export class SMSAV extends G7SAV { return bytes.length === SAVE_SIZE_BYTES } + static saveTypeName: string = 'Pokémon Sun/Moon' + static includesOrigin(origin: GameOfOrigin) { return origin === GameOfOrigin.Sun || origin === GameOfOrigin.Moon } diff --git a/src/types/SAVTypes/USUMSAV.ts b/src/types/SAVTypes/USUMSAV.ts index 23af1970..6f82dd21 100644 --- a/src/types/SAVTypes/USUMSAV.ts +++ b/src/types/SAVTypes/USUMSAV.ts @@ -2,7 +2,7 @@ import { GameOfOrigin } from 'pokemon-resources' import { USUM_TRANSFER_RESTRICTIONS } from '../../consts/TransferRestrictions' import { isRestricted } from '../TransferRestrictions' import { G7SAV } from './G7SAV' -import { ParsedPath } from './path' +import { PathData } from './path' const PC_OFFSET = 0x05200 const METADATA_OFFSET = 0x6cc00 - 0x200 @@ -13,7 +13,7 @@ const SAVE_SIZE_BYTES = 0x6cc00 export class USUMSAV extends G7SAV { boxNamesOffset: number = BOX_NAMES_OFFSET - constructor(path: ParsedPath, bytes: Uint8Array) { + constructor(path: PathData, bytes: Uint8Array) { super(path, bytes, PC_OFFSET, PC_CHECKSUM_OFFSET, BOX_NAMES_OFFSET) } @@ -25,6 +25,8 @@ export class USUMSAV extends G7SAV { return bytes.length === SAVE_SIZE_BYTES } + static saveTypeName = 'Pokémon Ultra Sun/Ultra Moon' + static includesOrigin(origin: GameOfOrigin) { return origin === GameOfOrigin.UltraSun || origin === GameOfOrigin.UltraMoon } diff --git a/src/types/SAVTypes/XYSAV.ts b/src/types/SAVTypes/XYSAV.ts index 700e287f..5b96ca4c 100644 --- a/src/types/SAVTypes/XYSAV.ts +++ b/src/types/SAVTypes/XYSAV.ts @@ -2,7 +2,7 @@ import { GameOfOrigin } from 'pokemon-resources' import { XY_TRANSFER_RESTRICTIONS } from '../../consts/TransferRestrictions' import { isRestricted } from '../TransferRestrictions' import { G6SAV } from './G6SAV' -import { ParsedPath } from './path' +import { PathData } from './path' const PC_OFFSET = 0x22600 const PC_CHECKSUM_OFFSET = 0x655c2 @@ -11,7 +11,7 @@ const SAVE_SIZE_BYTES = 0x65600 export class XYSAV extends G6SAV { static transferRestrictions = XY_TRANSFER_RESTRICTIONS - constructor(path: ParsedPath, bytes: Uint8Array) { + constructor(path: PathData, bytes: Uint8Array) { super(path, bytes, PC_OFFSET, PC_CHECKSUM_OFFSET) } @@ -23,6 +23,8 @@ export class XYSAV extends G6SAV { return bytes.length === SAVE_SIZE_BYTES } + static saveTypeName = 'Pokémon X/Y' + static includesOrigin(origin: GameOfOrigin) { return origin === GameOfOrigin.X || origin === GameOfOrigin.Y } diff --git a/src/types/SAVTypes/__test__/G1SAV.test.ts b/src/types/SAVTypes/__test__/G1SAV.test.ts index 34a1977d..85181015 100644 --- a/src/types/SAVTypes/__test__/G1SAV.test.ts +++ b/src/types/SAVTypes/__test__/G1SAV.test.ts @@ -6,11 +6,11 @@ import { bytesToPKM } from '../../FileImport' import { OHPKM } from '../../pkm/OHPKM' import { G1SAV } from '../G1SAV' import { buildSaveFile } from '../load' -import { emptyParsedPath } from '../path' +import { emptyPathData } from '../path' // ;(global as any).TextDecoder = TextDecoder const blueSaveFile = buildSaveFile( - emptyParsedPath, + emptyPathData, new Uint8Array(fs.readFileSync(path.join(__dirname, './SAVFiles', 'blue.sav'))), {}, [G1SAV] @@ -29,7 +29,7 @@ test('pc box decoded correctly', () => { }) test('removing mon shifts others in box', () => { - const modifiedSaveFile1 = buildSaveFile(emptyParsedPath, new Uint8Array(blueSaveFile.bytes), {}, [ + const modifiedSaveFile1 = buildSaveFile(emptyPathData, new Uint8Array(blueSaveFile.bytes), {}, [ G1SAV, ]) as G1SAV modifiedSaveFile1.boxes[7].pokemon[0] = undefined @@ -37,7 +37,7 @@ test('removing mon shifts others in box', () => { modifiedSaveFile1.prepareBoxesAndGetModified() const modifiedSaveFile2 = buildSaveFile( - emptyParsedPath, + emptyPathData, new Uint8Array(modifiedSaveFile1.bytes), {}, [G1SAV] @@ -48,7 +48,7 @@ test('removing mon shifts others in box', () => { }) test('inserting mon works', () => { - const modifiedSaveFile1 = buildSaveFile(emptyParsedPath, new Uint8Array(blueSaveFile.bytes), {}, [ + const modifiedSaveFile1 = buildSaveFile(emptyPathData, new Uint8Array(blueSaveFile.bytes), {}, [ G1SAV, ]) as G1SAV modifiedSaveFile1.boxes[7].pokemon[11] = new PK1(slowpokeOH) @@ -56,7 +56,7 @@ test('inserting mon works', () => { modifiedSaveFile1.prepareBoxesAndGetModified() const modifiedSaveFile2 = buildSaveFile( - emptyParsedPath, + emptyPathData, new Uint8Array(modifiedSaveFile1.bytes), {}, [G1SAV] diff --git a/src/types/SAVTypes/__test__/G2SAV.test.ts b/src/types/SAVTypes/__test__/G2SAV.test.ts index 45215baa..8561de29 100644 --- a/src/types/SAVTypes/__test__/G2SAV.test.ts +++ b/src/types/SAVTypes/__test__/G2SAV.test.ts @@ -5,10 +5,10 @@ import { bytesToPKM } from '../../FileImport' import { OHPKM } from '../../pkm/OHPKM' import { G2SAV } from '../G2SAV' import { buildSaveFile } from '../load' -import { emptyParsedPath } from '../path' +import { emptyPathData } from '../path' const crystalSaveFile = buildSaveFile( - emptyParsedPath, + emptyPathData, new Uint8Array(fs.readFileSync(path.join(__dirname, './SAVFiles', 'crystal.sav'))), {}, [G2SAV] @@ -28,7 +28,7 @@ test('pc box decoded correctly', () => { test('removing mon shifts others in box', () => { const modifiedSaveFile1 = buildSaveFile( - emptyParsedPath, + emptyPathData, new Uint8Array(crystalSaveFile.bytes), {}, [G2SAV] @@ -38,7 +38,7 @@ test('removing mon shifts others in box', () => { modifiedSaveFile1.prepareBoxesAndGetModified() const modifiedSaveFile2 = buildSaveFile( - emptyParsedPath, + emptyPathData, new Uint8Array(modifiedSaveFile1.bytes), {}, [G2SAV] @@ -50,7 +50,7 @@ test('removing mon shifts others in box', () => { test('inserting mon works', () => { const modifiedSaveFile1 = buildSaveFile( - emptyParsedPath, + emptyPathData, new Uint8Array(crystalSaveFile.bytes), {}, [G2SAV] @@ -60,7 +60,7 @@ test('inserting mon works', () => { modifiedSaveFile1.prepareBoxesAndGetModified() const modifiedSaveFile2 = buildSaveFile( - emptyParsedPath, + emptyPathData, new Uint8Array(modifiedSaveFile1.bytes), {}, [G2SAV] diff --git a/src/types/SAVTypes/__test__/G3RRSAV.test.ts b/src/types/SAVTypes/__test__/G3RRSAV.test.ts new file mode 100644 index 00000000..179e8d28 --- /dev/null +++ b/src/types/SAVTypes/__test__/G3RRSAV.test.ts @@ -0,0 +1,184 @@ +import { existsSync, readFileSync, writeFileSync } from 'fs' +import { resolve } from 'path' +import { PokemonData } from 'pokemon-species-data' +import { OHPKM } from '../../pkm/OHPKM' +import { PathData } from '../path' +import { G3RRSAV } from '../radicalred/G3RRSAV' +import PK3RR from '../radicalred/PK3RR' + +function display_mon(mon: PK3RR | OHPKM) { + console.log('Boxmon:', { + nickname: mon.nickname, + // level: firstPokemon.level, + trainerName: mon.trainerName, + // trainerID: firstPokemon.trainerID, + heldItemIndex: mon.heldItemIndex, + languageIndex: mon.languageIndex, + dexNum: mon.dexNum, + formeNum: mon.formeNum, + moves: mon.moves, + gameOfOrigin: mon.gameOfOrigin, + species: PokemonData[mon.dexNum].name, + }) +} + +describe('G3RRSAV - Radical Red Save File Read Test', () => { + let radicalRedSave: G3RRSAV + let saveBytes: Uint8Array + + beforeAll(() => { + const savePath = resolve(__dirname, './SAVFILES/radicalred.sav') + saveBytes = new Uint8Array(readFileSync(savePath)) + + const parsedPath: PathData = { + raw: './SAVFILES/radicalred.sav', + base: '.SAVFILES/radical red.sav', + name: 'radical red', + dir: './SAVFILES', + ext: '.sav', + root: '/', + separator: '/', + } + + radicalRedSave = new G3RRSAV(parsedPath, saveBytes) + }) + + test('should load initial save data correctly', () => { + expect(radicalRedSave.name).toBe('Radical') + }) + + test('should print the first Pokémon in the first box', () => { + const firstPokemon = radicalRedSave.boxes[0].pokemon[0] + + if (firstPokemon) { + display_mon(firstPokemon) + + expect(firstPokemon.nickname).toBe('Von') + expect(firstPokemon.trainerID).toBe(10334) + expect(firstPokemon.trainerName).toBe('Radical') + expect(firstPokemon.moves[0]).toBe(33) // Tackle + expect(firstPokemon.moves[1]).toBe(336) // Howl + expect(firstPokemon.dexNum).toBe(261) + expect(PokemonData[firstPokemon.dexNum].name).toBe('Poochyena') + } else { + console.log('No Pokémon found in the first box, first slot.') + } + + const secondPokemon = radicalRedSave.boxes[1].pokemon[1] + + if (secondPokemon) { + display_mon(secondPokemon) + + expect(secondPokemon.nickname).toBe('Cin') + expect(secondPokemon.trainerID).toBe(10334) + expect(secondPokemon.trainerName).toBe('Radical') + } else { + console.log('No Pokémon found in the second box, second slot.') + } + + const sevii_lokix = radicalRedSave.boxes[0].pokemon[3] + + if (sevii_lokix) { + display_mon(sevii_lokix) + + expect(sevii_lokix.nickname).toBe('Lokix') + expect(sevii_lokix.trainerID).toBe(10334) + expect(sevii_lokix.trainerName).toBe('Radical') + } else { + console.log('Sevii Lokix not found.') + } + + const lastpokemon = radicalRedSave.boxes[0].pokemon[29] + + if (lastpokemon) { + display_mon(lastpokemon) + + expect(lastpokemon.nickname).toBe('Crabrawler') + expect(lastpokemon.trainerID).toBe(10334) + expect(lastpokemon.trainerName).toBe('Radical') + } else { + console.log('No Pokémon found in the second box, second slot.') + } + + const slowbroG = radicalRedSave.boxes[1].pokemon[5] + + if (slowbroG) { + display_mon(slowbroG) + + expect(slowbroG.nickname).toBe('Nobo') + expect(slowbroG.trainerID).toBe(10334) + expect(slowbroG.trainerName).toBe('Radical') + } else { + console.log('No Pokémon found in the second box, second slot.') + } + }) +}) + +describe('G3RRSAV - Radical Red Save File Write Test', () => { + let radicalRedSave: G3RRSAV + let saveBytes: Uint8Array + + beforeAll(() => { + const savePath = resolve(__dirname, './SAVFILES/radicalred.sav') + saveBytes = new Uint8Array(readFileSync(savePath)) + + const parsedPath: PathData = { + raw: './SAVFILES/radicalred.sav', + base: '.SAVFILES/radicalred.sav', + name: 'radical red', + dir: './SAVFILES', + ext: '.sav', + root: '/', + separator: '/', + } + + radicalRedSave = new G3RRSAV(parsedPath, saveBytes) + + if (radicalRedSave.boxes[0].pokemon[0]) { + radicalRedSave.boxes[0].pokemon[0] = new OHPKM(radicalRedSave.boxes[0].pokemon[0]) + radicalRedSave.boxes[0].pokemon[0].nickname = 'ModTest' + // radicalRedSave.boxes[0].pokemon[0].heldItemIndex = 123; + // radicalRedSave.boxes[0].pokemon[0].moves[0] = 101; + + radicalRedSave.updatedBoxSlots.push({ box: 0, index: 0 }) + radicalRedSave.prepareBoxesAndGetModified() + } + }) + + test('should modify a Pokémon and save changes to a new file', () => { + // Modify the nickname, held item, or other properties of the first Pokémon in the first box + + if (radicalRedSave.boxes[0].pokemon[0]) { + const newSavePath = resolve(__dirname, './SAVFILES/radicalred_modified.sav') + writeFileSync(newSavePath, radicalRedSave.bytes) + + const fileExists = existsSync(newSavePath) + expect(fileExists).toBe(true) + + console.log('Saved file to ./SAVFILES/radicalred_modified.sav') + } else { + console.log('No Pokémon found in the first box, first slot.') + } + }) + + test('should check if modifications were made', () => { + const parsedPath: PathData = { + raw: './SAVFILES/radicalred_modified.sav', + base: '.SAVFILES/radicalred_modified.sav', + name: 'radical red', + dir: './SAVFILES', + ext: '.sav', + root: '/', + separator: '/', + } + + const newSavePath = resolve(__dirname, './SAVFILES/radicalred_modified.sav') + const fileExists = existsSync(newSavePath) + expect(fileExists).toBe(true) + + const modifiedSaveBytes = new Uint8Array(readFileSync(newSavePath)) + const modifiedRadicalRedSave = new G3RRSAV(parsedPath, modifiedSaveBytes) + + expect(modifiedRadicalRedSave.boxes[0].pokemon[0]?.nickname).toBe('ModTest') + }) +}) diff --git a/src/types/SAVTypes/__test__/SAVFiles/radicalred.sav b/src/types/SAVTypes/__test__/SAVFiles/radicalred.sav new file mode 100644 index 00000000..db847c71 Binary files /dev/null and b/src/types/SAVTypes/__test__/SAVFiles/radicalred.sav differ diff --git a/src/types/SAVTypes/__test__/SAVFiles/radicalred_modified.sav b/src/types/SAVTypes/__test__/SAVFiles/radicalred_modified.sav new file mode 100644 index 00000000..f38c8ae7 Binary files /dev/null and b/src/types/SAVTypes/__test__/SAVFiles/radicalred_modified.sav differ diff --git a/src/types/SAVTypes/load.ts b/src/types/SAVTypes/load.ts index 774f8c3a..1ffda242 100644 --- a/src/types/SAVTypes/load.ts +++ b/src/types/SAVTypes/load.ts @@ -5,7 +5,7 @@ import { } from '../../util/Lookup' import { PKMInterface } from '../interfaces' import { OHPKM } from '../pkm/OHPKM' -import { ParsedPath } from './path' +import { PathData } from './path' import { SAV } from './SAV' import { SAVClass } from './util' @@ -55,10 +55,10 @@ export const getSaveType = ( } export const buildSaveFile = ( - filePath: ParsedPath, + filePath: PathData, fileBytes: Uint8Array, lookupMaps: { - homeMonMap?: { [key: string]: OHPKM } + homeMonMap?: Record gen12LookupMap?: Record gen345LookupMap?: Record fileCreatedDate?: Date diff --git a/src/types/SAVTypes/path.ts b/src/types/SAVTypes/path.ts index 530f3d6f..4cd717ab 100644 --- a/src/types/SAVTypes/path.ts +++ b/src/types/SAVTypes/path.ts @@ -1,4 +1,4 @@ -export type ParsedPath = { +export type PathData = { raw: string base: string name: string @@ -8,7 +8,7 @@ export type ParsedPath = { separator: '\\' | '/' } -export const emptyParsedPath: ParsedPath = { +export const emptyPathData: PathData = { raw: '', base: '', dir: '', @@ -18,16 +18,16 @@ export const emptyParsedPath: ParsedPath = { root: '', } -export function joinPath(path: ParsedPath) { +export function joinPath(path: PathData) { return [path.dir, path.name].join(path.separator) + path.ext } -export function splitPath(path: ParsedPath) { +export function splitPath(path: PathData) { return [path.root, ...path.dir.split(path.separator).filter((seg) => seg !== ''), path.name] } export type PossibleSaves = { - citra: ParsedPath[] - desamume: ParsedPath[] - openEmu: ParsedPath[] + citra: PathData[] + desamume: PathData[] + openEmu: PathData[] } diff --git a/src/types/SAVTypes/radicalred/G3RRSAV.ts b/src/types/SAVTypes/radicalred/G3RRSAV.ts new file mode 100644 index 00000000..4dcf28c8 --- /dev/null +++ b/src/types/SAVTypes/radicalred/G3RRSAV.ts @@ -0,0 +1,403 @@ +import { GameOfOrigin } from 'pokemon-resources' +import { NationalDex } from 'pokemon-species-data' +import { ORIGIN, SPIKY_EAR } from '../../../consts/Formes' +import { + bytesToUint16LittleEndian, + bytesToUint32LittleEndian, + uint16ToBytesLittleEndian, + uint32ToBytesLittleEndian, +} from '../../../util/ByteLogic' +import { gen3StringToUTF } from '../../../util/Strings/StringConverter' +import { CapPikachus, isRestricted, TransferRestrictions } from '../../TransferRestrictions' +import { OHPKM } from '../../pkm/OHPKM' +import { FRLG_SECURITY_COPY_OFFSET, FRLG_SECURITY_OFFSET } from '../G3SAV' +import { Box, BoxCoordinates, PluginSAV } from '../SAV' +import { PathData, splitPath } from '../path' +import { LOOKUP_TYPE } from '../util' +import PK3RR from './PK3RR' +import { RRTransferMon } from './conversion/RRTransferMons' + +const SAVE_SIZES_BYTES = [0x20000, 0x20010] + +// https://docs.google.com/spreadsheets/d/15mUFUcN8250hRL7iUOJPX0s1rMcgVuJPuHANioL4o2o/edit?gid=45654363#gid=962831839 +const RR_TRANSFER_RESTRICTIONS: TransferRestrictions = { + transferableDexNums: RRTransferMon, + excludedForms: { + ...CapPikachus, + [NationalDex.Pichu]: [SPIKY_EAR], + [NationalDex.Dialga]: [ORIGIN], + [NationalDex.Palkia]: [ORIGIN], + }, +} + +export class G3RRSector { + data: Uint8Array + sectionID: number + checksum: number + signature: number + saveIndex: number + + constructor(bytes: Uint8Array, index: number) { + this.data = bytes.slice(index * 0x1000, index * 0x1000 + 4080) + this.sectionID = bytesToUint16LittleEndian(bytes, index * 0x1000 + 0xff4) + this.checksum = bytesToUint16LittleEndian(bytes, index * 0x1000 + 0xff6) + this.signature = bytesToUint32LittleEndian(bytes, index * 0x1000 + 0xff8) + this.saveIndex = bytesToUint32LittleEndian(bytes, index * 0x1000 + 0xffc) + } + + writeToBuffer(bytes: Uint8Array, thisIndex: number, firstIndex: number) { + const oldChecksum = this.checksum + this.refreshChecksum() + if (oldChecksum !== this.checksum) { + console.info('checksum changed for', thisIndex) + } + const index = (thisIndex + 14 - firstIndex) % 14 + bytes.set(this.data, index * 0x1000) + bytes.set(uint16ToBytesLittleEndian(this.sectionID), index * 0x1000 + 0xff4) + bytes.set(uint16ToBytesLittleEndian(this.checksum), index * 0x1000 + 0xff6) + bytes.set(uint32ToBytesLittleEndian(this.signature), index * 0x1000 + 0xff8) + bytes.set(uint32ToBytesLittleEndian(this.saveIndex), index * 0x1000 + 0xffc) + } + + refreshChecksum() { + let checksum = 0 + let byteLength = 0xff0 + if (this.sectionID === 0) { + byteLength = 3884 + } else if (this.sectionID === 13) { + byteLength = 2000 + } + for (let i = 0; i < byteLength; i += 4) { + checksum += bytesToUint32LittleEndian(this.data, i) + checksum = checksum & 0xffffffff + } + this.checksum = ((checksum & 0xffff) + ((checksum >> 16) & 0xffff)) & 0xffff + } +} + +export class G3RRSaveBackup { + origin: GameOfOrigin = GameOfOrigin.INVALID_0 + bytes: Uint8Array + saveIndex: number = 0 + isFirstSave: boolean = false + securityKey: number = 0 + money: number = -1 + name: string = '' + tid: number = 0 + sid: number = 0 + sectors: G3RRSector[] + pcDataContiguous: Uint8Array + currentPCBox: number + boxes = new Array>(14) + boxNames: string[] + firstSectorIndex: number = 0 + + constructor(bytes: Uint8Array) { + this.bytes = bytes + this.saveIndex = bytesToUint32LittleEndian(bytes, 0xffc) + this.securityKey = bytesToUint32LittleEndian(bytes, 0xf20) + this.money = bytesToUint32LittleEndian(bytes, 0x290) ^ this.securityKey + this.sectors = [] + for (let i = 0; i < 14; i++) { + this.sectors.push(new G3RRSector(bytes, i)) + this.firstSectorIndex = this.sectors[0].sectionID + } + this.sectors.sort((sector1, sector2) => sector1.sectionID - sector2.sectionID) + + this.name = gen3StringToUTF(this.sectors[0].data, 0x00, 7) + this.tid = bytesToUint16LittleEndian(this.sectors[0].data, 0x0a) + this.sid = bytesToUint16LittleEndian(this.sectors[0].data, 0x0c) + + const boxes: number = 18 + const nBytes: number = boxes * 58 * 30 + const nMons: number = boxes * 30 + const fullSectionsUsed: number = Math.floor(nBytes / 4080) + const leftoverBytes: number = nBytes % 4080 + + // Concatenate pc data from all sectors + this.pcDataContiguous = new Uint8Array(4080 * fullSectionsUsed + leftoverBytes + 4) // 144 // 24,504 + this.sectors.slice(5, 5 + fullSectionsUsed + 1).forEach((sector, i) => { + const startOffset = i * 4080 + const length = i < fullSectionsUsed ? 4080 : leftoverBytes + 4 + this.pcDataContiguous.set(sector.data.slice(0, length), startOffset) + }) + + this.currentPCBox = this.pcDataContiguous[0] + this.boxNames = [] + for (let i = 0; i < boxes; i++) { + // TODO: More research into where BOX names are located + this.boxes[i] = new Box('Box' + (i + 1), 30) + } + for (let i = 0; i < nMons; i++) { + try { + const mon = new PK3RR(this.pcDataContiguous.slice(4 + i * 58, 4 + (i + 1) * 58).buffer) + if (mon.dexNum !== 0 && mon.trainerID !== 0) { + const box = this.boxes[Math.floor(i / 30)] + box.pokemon[i % 30] = mon + if (mon.trainerID == this.tid) { + mon.gameOfOrigin = GameOfOrigin.FireRed + } + } + } catch (e) { + console.error(e) + } + } + + this.securityKey = bytesToUint32LittleEndian(this.sectors[0].data, 0xaf8) + this.money = bytesToUint32LittleEndian(this.sectors[1].data, 0x290) ^ this.securityKey + } +} + +export class G3RRSAV implements PluginSAV { + static pkmType = PK3RR + + static transferRestrictions = RR_TRANSFER_RESTRICTIONS + + static TRAINER_OFFSET = 0x0ff4 * 0 + static TEAM_ITEMS_OFFSET = 0x0ff4 * 1 + static PC_OFFSET = 0x0ff4 * 5 + + static lookupType: LOOKUP_TYPE = 'gen345' + + primarySave: G3RRSaveBackup + backupSave: G3RRSaveBackup + primarySaveOffset: number + + origin: GameOfOrigin = 0 + isPlugin: true = true + pluginIdentifier = 'radical_red' + + boxRows = 5 + boxColumns = 6 + + filePath: PathData + fileCreated?: Date + + money: number + name: string + tid: number + sid: number + displayID: string + + currentPCBox: number + boxes: Array> + boxNames: string[] + + bytes: Uint8Array + + invalid: boolean = false + tooEarlyToOpen: boolean = false + updatedBoxSlots: BoxCoordinates[] = [] + + constructor(path: PathData, bytes: Uint8Array) { + this.bytes = bytes + this.filePath = path + + const saveOne = new G3RRSaveBackup(bytes.slice(0, 0xe000)) + const saveTwo = new G3RRSaveBackup(bytes.slice(0xe000, 0x1c000)) + + if (saveOne.saveIndex > saveTwo.saveIndex) { + this.primarySave = saveOne + this.backupSave = saveTwo + this.primarySaveOffset = 0 + } else { + this.primarySave = saveTwo + this.backupSave = saveOne + this.primarySaveOffset = 0xe000 + } + + this.currentPCBox = this.primarySave.currentPCBox + this.money = this.primarySave.money + this.name = this.primarySave.name + this.tid = this.primarySave.tid + this.displayID = this.primarySave.tid.toString().padStart(5, '0') + this.sid = this.primarySave.sid + this.currentPCBox = this.primarySave.currentPCBox + this.boxes = this.primarySave.boxes + this.boxNames = this.primarySave.boxNames + + // Hacky way to detect save version + this.boxes.forEach((box) => { + box.pokemon.forEach((mon) => { + if ( + mon && + mon.trainerID === this.tid && + mon.secretID === this.sid && + mon.trainerName === this.name + ) { + this.origin = mon.gameOfOrigin + } + }) + }) + const filePathElements = splitPath(this.filePath) + let fileName = filePathElements[filePathElements.length - 1] + fileName = fileName.replace(/\s+/g, '') + this.origin = GameOfOrigin.FireRed + + console.log(this.boxes) + } + getExtraData?: (() => object) | undefined + + pcChecksumOffset?: number | undefined + pcOffset?: number | undefined + calculateChecksum?: (() => number) | undefined + + prepareBoxesAndGetModified() { + const changedMonPKMs: OHPKM[] = [] + this.updatedBoxSlots.forEach(({ box, index }) => { + const monOffset = 30 * box + index + const pcBytes = new Uint8Array(58) // Per pokemon bytes + + // Current Mon in loop + const changedMon = this.boxes[box].pokemon[index] + + // We don't want to save OHPKM files of mons that didn't leave the save + // (and would still be PK3s) + if (changedMon instanceof OHPKM) { + changedMonPKMs.push(changedMon) + } + // changedMon will be undefined if pokemon was moved from this slot + // and the slot was left empty + const slotMon = this.boxes[box].pokemon[index] + if (changedMon && slotMon) { + try { + // If mon is a OHPKM then convert to PK3RR + const mon = slotMon instanceof PK3RR ? slotMon : new PK3RR(slotMon) + + if (mon?.gameOfOrigin && mon?.dexNum) pcBytes.set(new Uint8Array(mon.toPCBytes()), 0) + } catch (e) { + console.error(e) + } + } + this.primarySave.pcDataContiguous.set(pcBytes, 4 + monOffset * 58) + }) + + // Slice pcData into Section Datas. + // The first 14 boxes of data are stored in the first 6 section of PC data. + // I am unsure where the rest of the data is stashed (ie: boxes 15-25) + // So its just easier to only look at the first 6 sections of PC Data. + // Each section of PC data is 4080 bytes. + this.primarySave.sectors.slice(5, 11).forEach((sector, i) => { + const pcData = this.primarySave.pcDataContiguous.slice( + // 4080 times sector offset + i * 0xff0, + // 4080 ahead of that, or 0x450 ahead of that if box 13 zero indexed + i * 0xff0 + (i + 5 === 13 ? 3964 : 0xff0) + ) + sector.data.set(pcData) + + sector.writeToBuffer(this.primarySave.bytes, i + 5, this.primarySave.firstSectorIndex) + }) + this.bytes.set(this.primarySave.bytes, this.primarySaveOffset) + return changedMonPKMs + } + + supportsMon(dexNumber: number, formeNumber: number) { + return !isRestricted(RR_TRANSFER_RESTRICTIONS, dexNumber, formeNumber) + } + + getCurrentBox() { + return this.boxes[this.currentPCBox] + } + + getGameName() { + return 'Pokémon Radical Red' + } + + gameColor() { + return '#660000' + } + + static includesOrigin(origin: GameOfOrigin) { + return origin === GameOfOrigin.FireRed + } + + static saveTypeAbbreviation = 'Radical Red' + static saveTypeName = 'Pokémon Radical Red' + + static fileIsSave(bytes: Uint8Array): boolean { + if (!SAVE_SIZES_BYTES.includes(bytes.length)) { + return false + } + + const firstSectionBytesIndex = findFirstSectionOffset(bytes) + const firstSectionBytes = bytes.slice(firstSectionBytesIndex, firstSectionBytesIndex + 0x1000) + + const gameCode = firstSectionBytes[0xac] + if (gameCode !== 1) return false + + const securityKey = bytesToUint32LittleEndian(firstSectionBytes, FRLG_SECURITY_OFFSET) + const securityKeyCopy = bytesToUint32LittleEndian(firstSectionBytes, FRLG_SECURITY_COPY_OFFSET) + + // Radical Red seems to have the security key set to 0, which has a 1 in 4.2 billion + // chance to happen in vanilla FireRed (if it can even be 0 at all) + return securityKey === 0 || securityKey !== securityKeyCopy + } + + getPluginIdentifier() { + return 'radical_red' + } +} + +const findFirstSectionOffset = (bytes: Uint8Array): number => { + const SECTION_SIZE = 0x1000 + const SAVE_INDEX_OFFSET = 0xff4 + + for (let i = 0; i < 14; i++) { + const sectionStart = i * SECTION_SIZE + const saveIndex = bytesToUint16LittleEndian(bytes, sectionStart + SAVE_INDEX_OFFSET) + + if (saveIndex === 0) { + return sectionStart + } + } + return 0 +} + +// Checks if file is a RR save by looping through +// first 2-30 mons in box 1 and checking if the TID id +// matches the save file TID. +// Similar process can&should be done for G3 +// If this check and the G3 check both fail then +// that means that there are no native pokemon in the SAVE +// or that there are no pokemon in the first box. The result +// of both checks failing can&should be a prompt to specify +// which game the Save belongs too. +export function isRR(bytes: Uint8Array): boolean { + return isG3(bytes, 4080, 58) +} + +export function isG3( + data: Uint8Array, + SECTION_DATA_SIZE: number = 3968, + MON_ENTRY_SIZE: number = 80 +): boolean { + const SECTION_COUNT = 14 + const SECTION_SIZE = 0x1000 + const MON_START_OFFSET = 4 + const NUM_POKEMON = 30 + const TID_OFFSET = 0x0a + + // Extract and sort sections by Section ID + const sections = Array.from({ length: SECTION_COUNT }, (_, i) => { + const offset = i * SECTION_SIZE + const sectionData = data.slice(offset, offset + SECTION_DATA_SIZE) + const sectionID = data[offset + 0xff4] | (data[offset + 0xff5] << 8) + return { sectionID, data: sectionData } + }) + .sort((a, b) => a.sectionID - b.sectionID) + .map((section) => section.data) + + // Extract save file Trainer ID from the first section + const saveTID = sections[0][TID_OFFSET] | (sections[0][TID_OFFSET + 1] << 8) + + // Extract Trainer IDs for Pokémon 1 and onwards from Section 5 + const section5 = sections[5] + const pokemonTIDs = Array.from({ length: NUM_POKEMON - 1 }, (_, i) => { + const pokemonOffset = MON_START_OFFSET + (i + 1) * MON_ENTRY_SIZE + return section5[pokemonOffset + 0x0c] | (section5[pokemonOffset + 0x0d] << 8) + }) + + // Check if any Pokémon TID matches the save file TID + return pokemonTIDs.some((tid) => tid === saveTID) +} diff --git a/src/types/SAVTypes/radicalred/PK3RR.ts b/src/types/SAVTypes/radicalred/PK3RR.ts new file mode 100644 index 00000000..60b00c8d --- /dev/null +++ b/src/types/SAVTypes/radicalred/PK3RR.ts @@ -0,0 +1,506 @@ +import { + AbilityFromString, + Ball, + GameOfOrigin, + ItemFromString, + Languages, + NatureToString, +} from 'pokemon-resources' +import { PokemonData } from 'pokemon-species-data' + +import { + genderFromPID, + generatePersonalityValuePreservingAttributes, + getFlag, + getLevelGen3Onward, + getMoveMaxPP, + MarkingsFourShapes, + markingsFourShapesFromBytes, + markingsFourShapesFromOther, + markingsFourShapesToBytes, + read30BitIVsFromBytes, + readGen3StringFromBytes, + readStatsFromBytes, + setFlag, + Stats, + uIntFromBufferBits, + uIntToBufferBits, + write30BitIVsToBytes, + writeGen3StringToBytes, + writeStatsToBytes, +} from 'pokemon-files' +import { getHPGen3Onward, getStatGen3Onward } from '../../../util/StatCalc' +import { PKMInterface, PluginPKMInterface } from '../../interfaces' +import { ItemGen3RRFromString, ItemGen3RRToString } from './conversion/Gen3RRItems' +import { fromGen3RRMoveIndex, toGen3RRMoveIndex } from './conversion/Gen3RRMovesIndex' +import { + fromGen3RRPokemonIndex, + Gen3RRSpecies, + toGen3RRPokemonIndex, +} from './conversion/Gen3RRPokemonIndex' + +const FAKEMON_INDEXES = [ + 1186, 1200, 1274, 1275, 1276, 1277, 1278, 1279, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, + 1290, 1291, 1292, 1293, 1294, 1375, +] + +const INTERNAL_ORIGIN_NON_RR = GameOfOrigin.INVALID_6 +const INTERNAL_ORIGIN_FROM_RR = GameOfOrigin.FireRed +const FIRERED_IN_GAME_TRADE = 255 + +const RR_BALLS: Ball[] = [ + Ball.Master, + Ball.Ultra, + Ball.Great, + Ball.Poke, + Ball.Safari, + Ball.Net, + Ball.Dive, + Ball.Nest, + Ball.Repeat, + Ball.Timer, + Ball.Luxury, + Ball.Premier, + Ball.Dusk, + Ball.Heal, + Ball.Quick, + Ball.Cherish, + Ball.INVALID, + Ball.Fast, + Ball.Level, + Ball.Lure, + Ball.Heavy, + Ball.Love, + Ball.Friend, + Ball.Moon, + Ball.PokeHisui, + Ball.Beast, + Ball.Dream, +] + +export class PK3RR implements PluginPKMInterface { + format: 'PK3RR' = 'PK3RR' + pluginIdentifier = 'radical_red' + pluginOrigin?: string + personalityValue: number + trainerID: number + secretID: number + languageIndex: number + markings: MarkingsFourShapes + dexNum: number + formeNum: number + privateHeldItemIndex: number + heldItemIndex: number + exp: number + movePPUps: number[] + movePP: number[] = [0, 0, 0, 0] + trainerFriendship: number + moves: number[] + evs: Stats + pokerusByte: number + internalMetLocationIndex: number + metLocationIndex: number + metLevel: number + internalGameOfOrigin: number + gameOfOrigin: number + ball: number + canGigantamax: boolean + ivs: Stats + isEgg: boolean + hasHiddenAbility: boolean + isNicknamed: boolean = true + currentHP: number = 0 + nickname: string + trainerName: string + trainerGender: boolean + isLocked: boolean = false + originalBytes?: Uint8Array + + selectColor = '#660000' + + constructor(arg: ArrayBuffer | PKMInterface) { + if (arg instanceof ArrayBuffer) { + let buffer = arg + const dataView = new DataView(buffer) + this.originalBytes = new Uint8Array(arg) + + // https://github.com/Skeli789/Complete-Fire-Red-Upgrade/blob/master/include/new/pokemon_storage_system.h + // https://github.com/Skeli789/Complete-Fire-Red-Upgrade/blob/master/include/pokemon.h + + // Personality 0:4 + this.personalityValue = dataView.getUint32(0x0, true) + + // OTID 4:8 + this.trainerID = dataView.getUint16(0x4, true) + this.secretID = dataView.getUint16(0x6, true) + + // Nickname 8:18 + this.nickname = readGen3StringFromBytes(dataView, 0x8, 10) + + // Language 18 + this.languageIndex = dataView.getUint8(0x12) + + // Sanity 19 + // this.sanity = dataView.getUint8(0x13) + + // OT Name 20:27 + this.trainerName = readGen3StringFromBytes(dataView, 0x14, 7) + + // Markings 27 + this.markings = markingsFourShapesFromBytes(dataView, 0x1b) + + // Species 28:30 + const speciesIndex: number = dataView.getUint16(0x1c, true) + const speciesData = fromGen3RRPokemonIndex(speciesIndex) + if (speciesData.NationalDexIndex < 0) { + this.dexNum = 0 + this.formeNum = 0 + console.warn( + 'The species is invalid. Species: ', + Gen3RRSpecies[speciesIndex], + ', PokeDex Number: ', + speciesIndex + ) + } else { + this.dexNum = speciesData.NationalDexIndex + this.formeNum = speciesData.FormIndex + } + + this.isLocked = FAKEMON_INDEXES.includes(speciesIndex) + if (this.isLocked) { + console.warn( + 'The species is locked. Species: ', + Gen3RRSpecies[speciesIndex], + ', RR Dex Number: ', + speciesIndex + ) + } + + // Held Item 30:32 + this.privateHeldItemIndex = dataView.getUint16(0x1e, true) + this.heldItemIndex = ItemFromString(this.heldItemName) + + // Exp 32:36 + this.exp = dataView.getUint32(0x20, true) + + // Move PP Up 36 + this.movePPUps = [ + uIntFromBufferBits(dataView, 0x24, 0, 2, true), + uIntFromBufferBits(dataView, 0x24, 2, 2, true), + uIntFromBufferBits(dataView, 0x24, 4, 2, true), + uIntFromBufferBits(dataView, 0x24, 6, 2, true), + ] + + // Friendship 37 + this.trainerFriendship = dataView.getUint8(0x25) + + // Pokeball 38 + const ballIndex = dataView.getUint8(0x26) + this.ball = ballIndex < RR_BALLS.length ? RR_BALLS[ballIndex] : Ball.Poke + + // Moves 38:43 (5 bytes total for 4 moves with 10 bits each) + this.moves = [ + fromGen3RRMoveIndex(uIntFromBufferBits(dataView, 0x27, 0, 10, true)), // Move 1 + fromGen3RRMoveIndex(uIntFromBufferBits(dataView, 0x28, 2, 10, true)), // Move 2 + fromGen3RRMoveIndex(uIntFromBufferBits(dataView, 0x29, 4, 10, true)), // Move 3 + fromGen3RRMoveIndex(uIntFromBufferBits(dataView, 0x2a, 6, 10, true)), // Move 4 + ] + + for (let i = 0; i < 4; i++) { + const pp = getMoveMaxPP(this.moves[i], this.format, this.movePPUps[i]) + if (pp) this.movePP[i] = pp + } + + // EVs 43:49 + this.evs = readStatsFromBytes(dataView, 0x2c) + + // 49 + this.pokerusByte = dataView.getUint8(0x32) + + // 50 + this.metLocationIndex = dataView.getUint8(0x33) + this.internalMetLocationIndex = this.metLocationIndex + + // 51:53 + this.metLevel = uIntFromBufferBits(dataView, 0x34, 0, 7, true) + + this.gameOfOrigin = uIntFromBufferBits(dataView, 0x34, 7, 4, true) + this.internalGameOfOrigin = this.gameOfOrigin + + // OHPKM will not copy this field if the mon was already being tracked before being + // transferred to Radical Red + this.pluginOrigin = this.gameOfOrigin === INTERNAL_ORIGIN_FROM_RR ? 'radical_red' : undefined + + this.canGigantamax = getFlag(dataView, 0x34, 11) + this.trainerGender = getFlag(dataView, 0x34, 15) + + // 53:57 + this.ivs = read30BitIVsFromBytes(dataView, 0x36) + this.isEgg = getFlag(dataView, 0x36, 30) + this.hasHiddenAbility = getFlag(dataView, 0x36, 31) + } else { + const other = arg + this.personalityValue = generatePersonalityValuePreservingAttributes(other) ?? 0 + this.trainerID = other.trainerID + this.secretID = other.secretID + this.languageIndex = other.languageIndex + this.markings = markingsFourShapesFromOther(other.markings) ?? { + circle: false, + triangle: false, + square: false, + heart: false, + } + this.dexNum = other.dexNum + this.formeNum = other.formeNum + this.privateHeldItemIndex = ItemGen3RRFromString(other.heldItemName) + this.heldItemIndex = ItemFromString(other.heldItemName) + this.exp = other.exp + this.movePPUps = other.movePPUps + this.trainerFriendship = other.trainerFriendship ?? 0 + this.moves = other.moves.map(toGen3RRMoveIndex).map(fromGen3RRMoveIndex) + + for (let i = 0; i < 4; i++) { + const pp = getMoveMaxPP(this.moves[i], this.format, this.movePPUps[i]) + if (pp) this.movePP[i] = pp + } + this.evs = other.evs ?? { + hp: 0, + atk: 0, + def: 0, + spe: 0, + spa: 0, + spd: 0, + } + this.pokerusByte = other.pokerusByte ?? 0 + this.metLocationIndex = other.metLocationIndex ?? 0 + this.metLevel = other.metLevel ?? 0 + + const fromRadicalRed = other.pluginOrigin === 'radical_red' + if (fromRadicalRed) { + this.gameOfOrigin = INTERNAL_ORIGIN_FROM_RR + this.internalGameOfOrigin = this.gameOfOrigin + + this.metLocationIndex = other.metLocationIndex ?? FIRERED_IN_GAME_TRADE + this.internalMetLocationIndex = this.metLocationIndex + } else { + this.gameOfOrigin = other.gameOfOrigin ?? INTERNAL_ORIGIN_NON_RR + this.internalGameOfOrigin = INTERNAL_ORIGIN_NON_RR + + this.metLocationIndex = other.metLocationIndex ?? FIRERED_IN_GAME_TRADE + this.internalMetLocationIndex = FIRERED_IN_GAME_TRADE + } + + if (other.ball) { + this.ball = + other.ball >= Ball.PokeHisui && other.ball <= Ball.Origin + ? Ball.PokeHisui + : other.ball === Ball.Sport + ? Ball.Poke + : other.ball + } else { + this.ball = Ball.Poke + } + + this.canGigantamax = !!other.canGigantamax + this.ivs = other.ivs ?? { + hp: 0, + atk: 0, + def: 0, + spe: 0, + spa: 0, + spd: 0, + } + this.isEgg = other.isEgg ?? false + this.hasHiddenAbility = other.abilityNum === 4 + this.isNicknamed = other.isNicknamed ?? false + this.currentHP = other.currentHP + this.nickname = other.nickname + this.trainerName = other.trainerName + this.trainerGender = other.trainerGender + } + } + + static fromBytes(buffer: ArrayBuffer): PK3RR { + return new PK3RR(buffer) + } + + toBytes(): ArrayBuffer { + const buffer = new ArrayBuffer(58) // 58 bytes as specified + const dataView = new DataView(buffer) + + // 0:4 Personality + dataView.setUint32(0x0, this.personalityValue, true) + + // 4:8 OT ID (Trainer ID and Secret ID) + dataView.setUint16(0x4, this.trainerID, true) + dataView.setUint16(0x6, this.secretID, true) + + // 8:18 Nickname (10 bytes) + writeGen3StringToBytes(dataView, this.nickname, 0x8, 10, false) + + // 18 Language + dataView.setUint8(0x12, this.languageIndex) + + // 19 Sanity + // dataView.setUint8(0x13, SANITY VALUE IDK); + + // 20:27 OT Name (7 bytes) + writeGen3StringToBytes(dataView, this.trainerName, 0x14, 7, false) + + // 27 Markings + markingsFourShapesToBytes(dataView, 0x1b, this.markings) + + // Growth Substructure (starts at 0x1C) + // 28:30 Species (DexNum) + dataView.setUint16(0x1c, toGen3RRPokemonIndex(this.dexNum, this.formeNum), true) + + // 30:32 Held Item + dataView.setUint16(0x1e, this.privateHeldItemIndex, true) + + // 32:36 Experience + dataView.setUint32(0x20, this.exp, true) + + // 36 PP Bonuses (PP Ups) + dataView.setUint8( + 0x24, + this.movePPUps.reduce((acc, ppUp, i) => acc | (ppUp << (i * 2)), 0) + ) + + // 37 Friendship + dataView.setUint8(0x25, this.trainerFriendship) + + // 38 Ball (Pokeball) + const ballIndex = + this.ball in RR_BALLS + ? RR_BALLS.indexOf(this.ball) + : this.ball >= Ball.PokeHisui && this.ball <= Ball.Origin + ? Ball.PokeHisui + : Ball.Poke + dataView.setUint8(0x26, ballIndex) + + // Moves (5 bytes total for 10-bit moves) + uIntToBufferBits(dataView, toGen3RRMoveIndex(this.moves[0]), 0x27, 0, 10, true) + uIntToBufferBits(dataView, toGen3RRMoveIndex(this.moves[1]), 0x28, 2, 10, true) + uIntToBufferBits(dataView, toGen3RRMoveIndex(this.moves[2]), 0x29, 4, 10, true) + uIntToBufferBits(dataView, toGen3RRMoveIndex(this.moves[3]), 0x2a, 6, 10, true) + + // EVs + writeStatsToBytes(dataView, 0x2c, this.evs) + + // 49 Pokerus + dataView.setUint8(0x32, this.pokerusByte) + + // 50 Met Location + dataView.setUint8(0x33, this.metLocationIndex) + + // 51:52 Met Info (packed: Met level, Game of Origin, Trainer Gender) + uIntToBufferBits(dataView, this.metLevel, 0x34, 0, 7, true) + uIntToBufferBits(dataView, this.internalGameOfOrigin, 0x34, 7, 4, true) + setFlag(dataView, 0x34, 11, this.canGigantamax) + setFlag(dataView, 0x34, 15, this.trainerGender) + + // 53:57 IVs and Flags (30-bit IVs + 2 bits for flags) + write30BitIVsToBytes(dataView, 0x36, this.ivs) + setFlag(dataView, 0x36, 30, this.isEgg) + setFlag(dataView, 0x36, 31, this.hasHiddenAbility) + + return buffer + } + + public getStats() { + return { + hp: getHPGen3Onward(this), + atk: getStatGen3Onward('Atk', this), + def: getStatGen3Onward('Def', this), + spe: getStatGen3Onward('Spe', this), + spa: getStatGen3Onward('SpA', this), + spd: getStatGen3Onward('SpD', this), + } + } + + public get gender() { + return genderFromPID(this.personalityValue, this.dexNum) + } + + public get language() { + return Languages[this.languageIndex] + } + + public get heldItemName() { + return ItemGen3RRToString(this.privateHeldItemIndex) + } + + public get nature() { + return this.personalityValue % 25 + } + + public get abilityNum() { + return this.hasHiddenAbility ? 4 : ((this.personalityValue >> 0) & 1) + 1 + } + + public get abilityIndex() { + return AbilityFromString(this.ability) + } + + public get ability() { + const pokemonData = PokemonData[this.dexNum] + if (!pokemonData) return '—' + + const forme = pokemonData.formes[this.formeNum] + if (!forme) return '—' + + const { ability1, ability2, abilityH } = forme + + if (this.hasHiddenAbility && abilityH) return abilityH + if (this.abilityNum === 2 && ability2) { + return ability2 + } + + return ability1 + } + + public get natureName() { + return NatureToString(this.nature) + } + + toPCBytes() { + return this.toBytes() + } + + public getLevel() { + return getLevelGen3Onward(this.dexNum, this.exp) + } + + isShiny() { + return ( + (this.trainerID ^ + this.secretID ^ + (this.personalityValue & 0xffff) ^ + ((this.personalityValue >> 16) & 0xffff)) < + 8 + ) + } + + isSquareShiny() { + return !( + this.trainerID ^ + this.secretID ^ + (this.personalityValue & 0xffff) ^ + ((this.personalityValue >> 16) & 0xffff) + ) + } + + static maxValidMove() { + return 354 + } + + static maxValidBall() { + return Ball.Beast + } + + static allowedBalls() { + return [] + } +} + +export default PK3RR diff --git a/src/types/SAVTypes/radicalred/conversion/Gen3RRItems.ts b/src/types/SAVTypes/radicalred/conversion/Gen3RRItems.ts new file mode 100644 index 00000000..55d329f8 --- /dev/null +++ b/src/types/SAVTypes/radicalred/conversion/Gen3RRItems.ts @@ -0,0 +1,763 @@ +const Gen3RRItems = [ + 'None', + 'Master Ball', + 'Ultra Ball', + 'Great Ball', + 'Poke Ball', + 'Safari Ball', + 'Net Ball', + 'Dive Ball', + 'Nest Ball', + 'Repeat Ball', + 'Timer Ball', + 'Luxury Ball', + 'Premier Ball', + 'Potion', + 'Antidote', + 'Burn Heal', + 'Ice Heal', + 'Awakening', + 'Paralyz Heal', + 'Full Restore', + 'Max Potion', + 'Hyper Potion', + 'Super Potion', + 'Full Heal', + 'Revive', + 'Max Revive', + 'Fresh Water', + 'Soda Pop', + 'Lemonade', + 'Moomoo Milk', + 'EnergyPowder', + 'Energy Root', + 'Heal Powder', + 'Revival Herb', + 'Ether', + 'Max Ether', + 'Elixir', + 'Max Elixir', + 'Lava Cookie', + 'Blue Flute', + 'Yellow Flute', + 'Red Flute', + 'Black Flute', + 'White Flute', + 'Berry Juice', + 'Sacred Ash', + 'Shoal Salt', + 'Shoal Shell', + 'Red Shard', + 'Blue Shard', + 'Yellow Shard', + 'Green Shard', + 'RageCandyBar', + 'Old Gateau', + 'Casteliacone', + 'Dream Patch', + 'Shalour Sable', + 'Health Wing', + 'Muscle Wing', + 'Resist Wing', + 'Genius Wing', + 'Clever Wing', + 'Swift Wing', + 'HP Up', + 'Protein', + 'Iron', + 'Carbos', + 'Calcium', + 'Rare Candy', + 'PP Up', + 'Zinc', + 'PP Max', + 'Ability Pill', + 'Guard Spec.', + 'Dire Hit', + 'X Attack', + 'X Defend', + 'X Speed', + 'X Accuracy', + 'X Sp. Atk', + 'Poke Doll', + 'Fluffy Tail', + 'Big Malasada', + 'Super Repel', + 'Max Repel', + 'Escape Rope', + 'Repel', + 'Link Cable', + 'Protector', + 'Electirizer', + 'Magmarizer', + 'Dubious Disc', + 'Reaper Cloth', + 'Sun Stone', + 'Moon Stone', + 'Fire Stone', + 'ThunderStone', + 'Water Stone', + 'Leaf Stone', + 'Shiny Stone', + 'Dusk Stone', + 'Dawn Stone', + 'Ice Stone t', + 'TinyMushroom', + 'Big Mushroom', + 'BalmMushroom', + 'Pearl', + 'Big Pearl', + 'Stardust', + 'Star Piece', + 'Nugget', + 'Heart Scale', + 'Rare Bone', + 'Pearl String', + 'Comet Shard', + 'Big Nugget', + 'Honey weet', + 'Pretty Wing', + 'Oval Stone', + 'Razor Claw', + 'Razor Fang', + 'Orange Mail', + 'Harbor Mail', + 'Glitter Mail', + 'Mech Mail', + 'Wood Mail', + 'Wave Mail', + 'Bead Mail', + 'Shadow Mail', + 'Tropic Mail', + 'Dream Mail', + 'Fab Mail', + 'Retro Mail', + 'Cheri Berry', + 'Chesto Berry', + 'Pecha Berry', + 'Rawst Berry', + 'Aspear Berry', + 'Leppa Berry', + 'Oran Berry', + 'Persim Berry', + 'Lum Berry', + 'Sitrus Berry', + 'Figy Berry', + 'Wiki Berry', + 'Mago Berry', + 'Aguav Berry', + 'Iapapa Berry', + 'Razz Berry', + 'Bluk Berry', + 'Nanab Berry', + 'Wepear Berry', + 'Pinap Berry', + 'Pomeg Berry', + 'Kelpsy Berry', + 'Qualot Berry', + 'Hondew Berry', + 'Grepa Berry', + 'Tamato Berry', + 'Cornn Berry', + 'Magost Berry', + 'Rabuta Berry', + 'Nomel Berry', + 'Spelon Berry', + 'Pamtre Berry', + 'Watmel Berry', + 'Durin Berry', + 'Belue Berry', + 'Liechi Berry', + 'Ganlon Berry', + 'Salac Berry', + 'Petaya Berry', + 'Apicot Berry', + 'Lansat Berry', + 'Starf Berry', + 'Enigma Berry', + 'Prism Scale', + 'Sachet', + 'Whip Dream', + 'BrightPowder', + 'White Herb', + 'Macho Brace', + 'Exp. Share', + 'Quick Claw', + 'Soothe Bell', + 'Mental Herb', + 'Choice Band', + "King's Rock", + 'Silver Powder', + 'Amulet Coin', + 'Cleanse Tag', + 'Soul Dew', + 'Deep Sea Tooth', + 'Deep Sea Scale', + 'Smoke Ball', + 'Everstone', + 'Focus Band', + 'Lucky Egg', + 'Scope Lens', + 'Metal Coat', + 'Leftovers', + 'Dragon Scale', + 'Light Ball', + 'Soft Sand', + 'Hard Stone', + 'Miracle Seed', + 'Black Glasses', + 'Black Belt', + 'Magnet', + 'Mystic Water', + 'Sharp Beak', + 'Poison Barb', + 'Never-Melt Ice', + 'Spell Tag', + 'Twisted Spoon', + 'Charcoal', + 'Dragon Fang', + 'Silk Scarf', + 'Upgrade carf', + 'Shell Bell', + 'Sea Incense', + 'Lax Incense', + 'Lucky Punch', + 'Metal Powder', + 'Thick Club', + 'Leek Stick', + 'Straw. Sweet', + 'Berry Sweet', + 'Love Sweet', + 'Clover Sweet', + 'Flower Sweet', + 'Ribbon Sweet', + 'Star Sweet', + 'Sweet Apple', + 'Tart Apple', + 'Cracked Pot', + 'Chipped Pot', + 'Galar Cuff', + 'Galar Crown', + 'Cherish Ball', + 'Dusk Ball', + 'Heal Ball', + 'Quick Ball', + 'Fast Ball', + 'Level Ball', + 'Lure Ball', + 'Heavy Ball', + 'Love Ball', + 'Friend Ball', + 'Moon Ball', + 'Sport Ball', + 'Beast Ball', + 'Dream Ball', + 'Park Ball', + 'Red Scarf', + 'Blue Scarf', + 'Pink Scarf', + 'Green Scarf', + 'Yellow Scarf', + 'Mach Bike', + 'Coin Case', + 'Itemfinder', + 'Old Rod', + 'Good Rod', + 'Super Rod', + 'S.S. Ticket', + 'Contest Pass', + 'Z-Power Ring', + 'Wailmer Pail', + 'Devon Goods', + 'Soot Sack', + 'Basement Key', + 'Acro Bike', + 'Pokeblock CASE', + 'Letter', + 'Eon Ticket', + 'Red Orb', + 'Blue Orb', + 'Scanner', + 'Go-Goggles', + 'Meteorite', + 'RM. 1 Key', + 'RM. 2 Key', + 'RM. 4 Key', + 'RM. 6 Key', + 'Storage Key', + 'Root Fossil', + 'Claw Fossil', + 'Devon Scope', + 'TM01', + 'TM02', + 'TM03', + 'TM04', + 'TM05', + 'TM06', + 'TM07', + 'TM08', + 'TM09', + 'TM10', + 'TM11', + 'TM12', + 'TM13', + 'TM14', + 'TM15', + 'TM16', + 'TM17', + 'TM18', + 'TM19', + 'TM20', + 'TM21', + 'TM22', + 'TM23', + 'TM24', + 'TM25', + 'TM26', + 'TM27', + 'TM28', + 'TM29', + 'TM30', + 'TM31', + 'TM32', + 'TM33', + 'TM34', + 'TM35', + 'TM36', + 'TM37', + 'TM38', + 'TM39', + 'TM40', + 'TM41', + 'TM42', + 'TM43', + 'TM44', + 'TM45', + 'TM46', + 'TM47', + 'TM48', + 'TM49', + 'TM50', + 'HM01', + 'HM02', + 'HM03', + 'HM04', + 'HM05', + 'HM06', + 'HM07', + 'HM08', + 'Dynamax Band', + 'Gold Teeth', + "Oak's Parcel", + 'Poke Flute', + 'Secret Key', + 'Bike Voucher', + 'Mega Ring', + 'Old Amber', + 'Card Key', + 'Lift Key', + 'Helix Fossil', + 'Dome Fossil', + 'Silph Scope', + 'Bicycle', + 'Town Map', + 'Stat Scanner', + 'Poke Rider', + 'TM Case', + 'Berry Pouch', + 'Teachy TV', + 'Tri-Pass', + 'Rainbow Pass', + 'Tea', + 'Mystic Ticke', + 'Aurora Ticke', + 'Locater Dev', + 'Ruby', + 'Sapphire', + '-DONT USE-', + 'TM51', + 'TM52', + 'TM53', + 'TM54', + 'TM55', + 'TM56', + 'TM57', + 'TM58', + 'TM59', + 'TM60', + 'TM61', + 'TM62', + 'TM63', + 'TM64', + 'TM65', + 'TM66', + 'TM67', + 'TM68', + 'TM69', + 'TM70', + 'TM71', + 'TM72', + 'TM73', + 'TM74', + 'TM75', + 'TM76', + 'TM77', + 'TM78', + 'TM79', + 'TM80', + 'TM81', + 'TM82', + 'TM83', + 'TM84', + 'TM85', + 'TM86', + 'TM87', + 'TM88', + 'TM89', + 'TM90', + 'TM91', + 'TM92', + 'TM93', + 'TM94', + 'TM95', + 'TM96', + 'TM97', + 'TM98', + 'TM99', + 'TM100', + 'TM101', + 'TM102', + 'TM103', + 'TM104', + 'TM105', + 'TM106', + 'TM107', + 'TM108', + 'TM109', + 'TM110', + 'TM111', + 'TM112', + 'TM113', + 'TM114', + 'TM115', + 'TM116', + 'TM117', + 'TM118', + 'TM119', + 'TM120', + 'Occa Berry', + 'Passho Berry', + 'Wacan Berry', + 'Rindo Berry', + 'Yache Berry', + 'Chople Berry', + 'Kebia Berry', + 'Shuca Berry', + 'Coba Berry', + 'Payapa Berry', + 'Tanga Berry', + 'Charti Berry', + 'Kasib Berry', + 'Haban Berry', + 'Colbur Berry', + 'Babiri Berry', + 'Chilan Berry', + 'Micle Berry', + 'Custap Berry', + 'Jacoba Berry', + 'Rowap Berry', + 'Roseli Berry', + 'Kee Berry', + 'Marang Berry', + 'Oval Charm', + 'Shiny Charm', + 'Rainbow Wing', + 'Silver Wing', + 'Magma Stone', + 'Light Stone', + 'Dark Stone', + 'Sun Flute', + 'Moon Flute', + 'Gracidea', + 'DNA Splicers', + 'Reveal Glass', + 'PrisonBottle', + 'N-Solarizer', + 'Necrozmizer', + 'Rusty Sword', + 'Rusty Shield', + 'Adamant Orb', + 'Lustrous Orb', + 'Griseous Orb', + 'Fist Plate', + 'Sky Plate', + 'Toxic Plate', + 'Earth Plate', + 'Stone Plate', + 'Insect Plate', + 'Spooky Plate', + 'Iron Plate', + 'Flame Plate', + 'Splash Plate', + 'Meadow Plate', + 'Zap Plate', + 'Mind Plate', + 'Icicle Plate', + 'Draco Plate', + 'Dread Plate', + 'Pixie Plate', + 'Fighting Memory', + 'Flying Memory', + 'Poison Memory', + 'Ground Memory', + 'Rock Memory', + 'Bug Memory', + 'Ghost Memory', + 'Steel Memory', + 'Fire Memory', + 'Water Memory', + 'Grass Memory', + 'Electr Memory', + 'Psychic Memory', + 'Ice Memory', + 'Dragon Memory', + 'Dark Memory', + 'Fairy Memory', + 'Burn Drive', + 'Douse Drive', + 'Shock Drive', + 'Chill Drive', + 'Red Nectar', + 'YellowNectar', + 'Pink Nectar', + 'PurpleNectar', + 'Necrozium Z', + 'Venusaurite', + 'Charizardite X', + 'Charizardite Y', + 'Blastoisnite', + 'Beedrillite', + 'Pidgeotite', + 'Alakazite', + 'Slowbronite', + 'Gengarite', + 'Kangaskanite', + 'Pinsirite', + 'Gyaradosite', + 'Aerodactlite', + 'Mewtwonite X', + 'Mewtwonite Y', + 'Ampharosite', + 'Steelixite', + 'Scizorite', + 'Heracronite', + 'Houndoomnite', + 'Tyranitarite', + 'Sceptilite', + 'Blazikenite', + 'Swampertite', + 'Gardevoirite', + 'Sablenite', + 'Mawilite', + 'Aggronite', + 'Medichamite', + 'Manectite', + 'Sharpedonite', + 'Cameruptite', + 'Altarianite', + 'Banettite', + 'Absolite', + 'Glalitite', + 'Salamencite', + 'Metagrossite', + 'Latiasite', + 'Latiosite', + 'Lopunnite', + 'Garchompite', + 'Lucarionite', + 'Abomasite', + 'Galladite', + 'Audinite', + 'Diancite', + 'Normalium Z', + 'Fightinium Z', + 'Flyinium Z', + 'Poisonium Z', + 'Groundium Z', + 'Rockium Z', + 'Buginium Z', + 'Ghostium Z', + 'Steelium Z', + 'Firium Z', + 'Waterium Z', + 'Grassium Z', + 'Electrium Z', + 'Psychium Z', + 'Icium Z', + 'Dragonium Z', + 'Darkinium Z', + 'Fairium Z', + 'Alorichium Z', + 'Decidium Z', + 'Eevium Z', + 'Incinium Z', + 'Kommonium Z', + 'Lunalium Z', + 'Lycanium Z', + 'Marshadium Z', + 'Mewnium Z', + 'Mimikium Z Z', + 'Pikanium Z', + 'Pikshunium Z', + 'Primarium Z', + 'Snorlium Z', + 'Solganium Z', + 'Tapunium Z', + 'Boost Energy', + 'Loaded Dice', + 'Clear Amulet', + 'Ability Shield', + 'Mirror Herb', + 'Upgrade', + 'Electirizer', + 'Cornerstone Mask', + 'Hearthflame Mask', + 'Wellspring Mask', + 'Teal Mask', + 'Burnt Seed', + 'Magmarizer', + 'Relic Crown', + 'Skull Fossil', + 'Armor Fossil', + 'Cover Fossil', + 'Plume Fossil', + 'Jaw Fossil', + 'Sail Fossil', + 'Bird Fossil', + 'Fish Fossil', + 'Drake Fossil', + 'Dino Fossil', + 'Odd Keystone', + 'Bottle Cap', + 'Gold Bottle Cap', + 'Wish Piece', + 'Power Bracer', + 'Power Belt', + 'Power Lens', + 'Power Band', + 'Power Anklet', + 'Power Weight', + 'Luck Incense', + 'Full Incense', + 'Odd Incense', + 'Pure Incense', + 'Rock Incense', + 'Rose Incense', + 'Wave Incense', + 'Normal Gem', + 'Fighting Gem', + 'Flying Gem', + 'Poison Gem', + 'Ground Gem', + 'Rock Gem', + 'Bug Gem', + 'Ghost Gem', + 'Steel Gem', + 'Fire Gem', + 'Water Gem', + 'Grass Gem', + 'Electric Gem', + 'Psychic Gem', + 'Ice Gem', + 'Dragon Gem', + 'Dark Gem', + 'Fairy Gem', + 'Wide Lens', + 'Muscle Band', + 'Wise Glasses', + 'Expert Belt', + 'Light Clay', + 'Life Orb', + 'Power Herb', + 'Toxic Orb', + 'Flame Orb', + 'Quick Powder', + 'Focus Sash', + 'Zoom Lens', + 'Metronome', + 'Iron Ball', + 'Lagging Tail', + 'Destiny Knot', + 'Black Sludge', + 'Icy Rock', + 'Smooth Rock', + 'Heat Rock', + 'Damp Rock', + 'Grip Claw', + 'Choice Scarf', + 'Choice Specs', + 'Sticky Barb', + 'Shed Shell', + 'Big Root', + 'Eviolite', + 'Float Stone', + 'Rocky Helmet', + 'Air Balloon', + 'Red Card', + 'Ring Target', + 'Binding Band', + 'Absorb Bulb', + 'Cell Battery', + 'Eject Button', + 'Weakness Policy', + 'Assault Vest', + 'Luminous Moss', + 'Snowball', + 'Safe Goggles', + 'Adrenal Orb', + 'Terrain Extender', + 'Protect Pads', + 'Electric Seed', + 'Grassy Seed', + 'Misty Seed', + 'Psychic Seed', + 'Eject Pack', + 'Room Service', + 'Blunder Policy', + 'Heavy-Duty Boots', + 'Utility Umbrella', + 'Throat Spray', + 'Machampite', + 'Laprasite', + 'Butterfrite', + 'Garbodorite', + 'Snorlaxite', + 'Kinglerite', + 'Toxtricitite', + 'Coalossite', + 'Duraludite', + 'Drednawite', + 'Copperajite', + 'Applite', + 'Orbeetlite', + 'Grimmsnite', + 'Medicine', + 'Centiskite', + 'Sandacondite', + 'Alcremite', + 'Eter.Max Orb', + 'Punch Glove', + 'Covert Cloak', + 'Free Space22', +] + +export function ItemGen3RRToString(index: number): string { + if (index < 0 || index >= Gen3RRItems.length) { + return `Index ${index} out of range` + } + return Gen3RRItems[index] +} + +export function ItemGen3RRFromString(itemName: string): number { + return Gen3RRItems.findIndex((item) => item === itemName) +} diff --git a/src/types/SAVTypes/radicalred/conversion/Gen3RRMovesIndex/NationalToRRMap.ts b/src/types/SAVTypes/radicalred/conversion/Gen3RRMovesIndex/NationalToRRMap.ts new file mode 100644 index 00000000..1a93314d --- /dev/null +++ b/src/types/SAVTypes/radicalred/conversion/Gen3RRMovesIndex/NationalToRRMap.ts @@ -0,0 +1,2448 @@ +export const NationalToRRMap = { + "Pound": [ + 1 + ], + "Karate Chop": [ + 2 + ], + "Double Slap": [ + 3 + ], + "Comet Punch": [ + 4 + ], + "Mega Punch": [ + 5 + ], + "Pay Day": [ + 6 + ], + "Fire Punch": [ + 7 + ], + "Ice Punch": [ + 8 + ], + "Thunder Punch": [ + 9 + ], + "Scratch": [ + 10 + ], + "Vise Grip": [ + 11 + ], + "Guillotine": [ + 12 + ], + "Razor Wind": [ + 13 + ], + "Swords Dance": [ + 14 + ], + "Cut": [ + 15 + ], + "Gust": [ + 16 + ], + "Wing Attack": [ + 17 + ], + "Whirlwind": [ + 18 + ], + "Fly": [ + 19 + ], + "Bind": [ + 20 + ], + "Slam": [ + 21 + ], + "Vine Whip": [ + 22 + ], + "Stomp": [ + 23 + ], + "Double Kick": [ + 24 + ], + "Mega Kick": [ + 25 + ], + "Jump Kick": [ + 26 + ], + "Rolling Kick": [ + 27 + ], + "Sand Attack": [ + 28 + ], + "Headbutt": [ + 29 + ], + "Horn Attack": [ + 30 + ], + "Fury Attack": [ + 31 + ], + "Horn Drill": [ + 32 + ], + "Tackle": [ + 33 + ], + "Body Slam": [ + 34 + ], + "Wrap": [ + 35 + ], + "Take Down": [ + 36 + ], + "Thrash": [ + 37 + ], + "Double-Edge": [ + 38 + ], + "Tail Whip": [ + 39 + ], + "Poison Sting": [ + 40 + ], + "Twineedle": [ + 41 + ], + "Pin Missile": [ + 42 + ], + "Leer": [ + 43 + ], + "Bite": [ + 44 + ], + "Growl": [ + 45 + ], + "Roar": [ + 46 + ], + "Sing": [ + 47 + ], + "Supersonic": [ + 48 + ], + "Sonic Boom": [ + 49 + ], + "Disable": [ + 50 + ], + "Acid": [ + 51 + ], + "Ember": [ + 52 + ], + "Flamethrower": [ + 53 + ], + "Mist": [ + 54 + ], + "Water Gun": [ + 55 + ], + "Hydro Pump": [ + 56 + ], + "Surf": [ + 57 + ], + "Ice Beam": [ + 58 + ], + "Blizzard": [ + 59 + ], + "Psybeam": [ + 60 + ], + "Bubble Beam": [ + 61 + ], + "Aurora Beam": [ + 62 + ], + "Hyper Beam": [ + 63 + ], + "Peck": [ + 64 + ], + "Drill Peck": [ + 65 + ], + "Submission": [ + 66 + ], + "Low Kick": [ + 67 + ], + "Counter": [ + 68 + ], + "Seismic Toss": [ + 69 + ], + "Strength": [ + 70 + ], + "Absorb": [ + 71 + ], + "Mega Drain": [ + 72 + ], + "Leech Seed": [ + 73 + ], + "Growth": [ + 74 + ], + "Razor Leaf": [ + 75 + ], + "Solar Beam": [ + 76 + ], + "Poison Powder": [ + 77 + ], + "Stun Spore": [ + 78 + ], + "Sleep Powder": [ + 79 + ], + "Petal Dance": [ + 80 + ], + "String Shot": [ + 81 + ], + "Dragon Rage": [ + 82 + ], + "Fire Spin": [ + 83 + ], + "Thunder Shock": [ + 84 + ], + "Thunderbolt": [ + 85 + ], + "Thunder Wave": [ + 86 + ], + "Thunder": [ + 87 + ], + "Rock Throw": [ + 88 + ], + "Earthquake": [ + 89 + ], + "Dig": [ + 91 + ], + "Toxic": [ + 92 + ], + "Confusion": [ + 93 + ], + "Psychic": [ + 94 + ], + "Hypnosis": [ + 95 + ], + "Meditate": [ + 96 + ], + "Agility": [ + 97 + ], + "Quick Attack": [ + 98 + ], + "Rage": [ + 99 + ], + "Teleport": [ + 100 + ], + "Night Shade": [ + 101 + ], + "Mimic": [ + 102 + ], + "Screech": [ + 103 + ], + "Double Team": [ + 104 + ], + "Recover": [ + 105 + ], + "Harden": [ + 106 + ], + "Minimize": [ + 107 + ], + "Smokescreen": [ + 108 + ], + "Confuse Ray": [ + 109 + ], + "Withdraw": [ + 110 + ], + "Defense Curl": [ + 111 + ], + "Barrier": [ + 112 + ], + "Light Screen": [ + 113 + ], + "Haze": [ + 114 + ], + "Reflect": [ + 115 + ], + "Focus Energy": [ + 116 + ], + "Bide": [ + 117 + ], + "Metronome": [ + 118 + ], + "Mirror Move": [ + 119 + ], + "Self-Destruct": [ + 120 + ], + "Egg Bomb": [ + 121 + ], + "Lick": [ + 122 + ], + "Smog": [ + 123 + ], + "Sludge": [ + 124 + ], + "Bone Club": [ + 125 + ], + "Fire Blast": [ + 126 + ], + "Waterfall": [ + 127 + ], + "Clamp": [ + 128 + ], + "Swift": [ + 129 + ], + "Skull Bash": [ + 130 + ], + "Spike Cannon": [ + 131 + ], + "Constrict": [ + 132 + ], + "Amnesia": [ + 133 + ], + "Kinesis": [ + 134 + ], + "Soft-Boiled": [ + 135 + ], + "High Jump Kick": [ + 136 + ], + "Glare": [ + 137 + ], + "Dream Eater": [ + 138 + ], + "Poison Gas": [ + 139 + ], + "Barrage": [ + 140 + ], + "Leech Life": [ + 141, + 355 + ], + "Lovely Kiss": [ + 142 + ], + "Sky Attack": [ + 143 + ], + "Transform": [ + 144 + ], + "Bubble": [ + 145 + ], + "Dizzy Punch": [ + 146 + ], + "Spore": [ + 147 + ], + "Flash": [ + 148 + ], + "Psywave": [ + 149 + ], + "Splash": [ + 150 + ], + "Acid Armor": [ + 151 + ], + "Crabhammer": [ + 152 + ], + "Explosion": [ + 153 + ], + "Fury Swipes": [ + 154 + ], + "Bonemerang": [ + 155 + ], + "Rest": [ + 156 + ], + "Rock Slide": [ + 157 + ], + "Hyper Fang": [ + 158 + ], + "Sharpen": [ + 159 + ], + "Tri Attack": [ + 161 + ], + "Super Fang": [ + 162 + ], + "Slash": [ + 163 + ], + "Substitute": [ + 164 + ], + "Struggle": [ + 165 + ], + "Sketch": [ + 166 + ], + "Triple Kick": [ + 167 + ], + "Thief": [ + 168 + ], + "Spider Web": [ + 169 + ], + "Mind Reader": [ + 170 + ], + "Nightmare": [ + 171 + ], + "Flame Wheel": [ + 172 + ], + "Snore": [ + 173 + ], + "Curse": [ + 174 + ], + "Flail": [ + 175 + ], + "Conversion 2": [ + 176 + ], + "Aeroblast": [ + 177 + ], + "Cotton Spore": [ + 178 + ], + "Reversal": [ + 179 + ], + "Spite": [ + 180 + ], + "Powder Snow": [ + 181 + ], + "Protect": [ + 182 + ], + "Mach Punch": [ + 183 + ], + "Scary Face": [ + 184 + ], + "Feint Attack": [ + 185 + ], + "Sweet Kiss": [ + 186 + ], + "Belly Drum": [ + 187 + ], + "Sludge Bomb": [ + 188 + ], + "Mud-Slap": [ + 189 + ], + "Octazooka": [ + 190 + ], + "Spikes": [ + 191 + ], + "Zap Cannon": [ + 192 + ], + "Foresight": [ + 193 + ], + "Destiny Bond": [ + 194 + ], + "Perish Song": [ + 195 + ], + "Icy Wind": [ + 196 + ], + "Detect": [ + 197 + ], + "Bone Rush": [ + 198 + ], + "Lock-On": [ + 199 + ], + "Outrage": [ + 200 + ], + "Sandstorm": [ + 201 + ], + "Giga Drain": [ + 202 + ], + "Endure": [ + 203 + ], + "Charm": [ + 204 + ], + "Rollout": [ + 205 + ], + "False Swipe": [ + 206 + ], + "Swagger": [ + 207 + ], + "Milk Drink": [ + 208 + ], + "Spark": [ + 209 + ], + "Fury Cutter": [ + 210 + ], + "Steel Wing": [ + 211 + ], + "Mean Look": [ + 212 + ], + "Attract": [ + 213 + ], + "Sleep Talk": [ + 214 + ], + "Heal Bell": [ + 215 + ], + "Return": [ + 216 + ], + "Present": [ + 217 + ], + "Frustration": [ + 218 + ], + "Safeguard": [ + 219 + ], + "Pain Split": [ + 220 + ], + "Sacred Fire": [ + 221 + ], + "Magnitude": [ + 222 + ], + "Dynamic Punch": [ + 223 + ], + "Megahorn": [ + 224 + ], + "Dragon Breath": [ + 225 + ], + "Baton Pass": [ + 226 + ], + "Encore": [ + 227 + ], + "Pursuit": [ + 228 + ], + "Rapid Spin": [ + 229 + ], + "Sweet Scent": [ + 230 + ], + "Iron Tail": [ + 231 + ], + "Metal Claw": [ + 232 + ], + "Vital Throw": [ + 233 + ], + "Morning Sun": [ + 234 + ], + "Synthesis": [ + 235 + ], + "Moonlight": [ + 236 + ], + "Hidden Power": [ + 237 + ], + "Cross Chop": [ + 238 + ], + "Twister": [ + 239 + ], + "Rain Dance": [ + 240 + ], + "Sunny Day": [ + 241 + ], + "Crunch": [ + 242 + ], + "Mirror Coat": [ + 243 + ], + "Psych Up": [ + 244 + ], + "Extreme Speed": [ + 245 + ], + "Ancient Power": [ + 246 + ], + "Shadow Ball": [ + 247 + ], + "Future Sight": [ + 248 + ], + "Rock Smash": [ + 249 + ], + "Whirlpool": [ + 250 + ], + "Beat Up": [ + 251 + ], + "Fake Out": [ + 252 + ], + "Uproar": [ + 253 + ], + "Stockpile": [ + 254 + ], + "Spit Up": [ + 255 + ], + "Swallow": [ + 256 + ], + "Heat Wave": [ + 257 + ], + "Snowscape": [ + 258 + ], + "Torment": [ + 259 + ], + "Flatter": [ + 260 + ], + "Will-O-Wisp": [ + 261 + ], + "Memento": [ + 262 + ], + "Facade": [ + 263 + ], + "Focus Punch": [ + 264 + ], + "Smelling Salts": [ + 265 + ], + "Follow Me": [ + 266 + ], + "Nature Power": [ + 267 + ], + "Charge": [ + 268 + ], + "Taunt": [ + 269 + ], + "Helping Hand": [ + 270 + ], + "Trick": [ + 271 + ], + "Role Play": [ + 272 + ], + "Wish": [ + 273 + ], + "Assist": [ + 274 + ], + "Ingrain": [ + 275 + ], + "Superpower": [ + 276 + ], + "Magic Coat": [ + 277 + ], + "Recycle": [ + 278 + ], + "Revenge": [ + 279 + ], + "Brick Break": [ + 280 + ], + "Yawn": [ + 281 + ], + "Knock Off": [ + 282 + ], + "Endeavor": [ + 283 + ], + "Eruption": [ + 284 + ], + "Skill Swap": [ + 285 + ], + "Imprison": [ + 286 + ], + "Refresh": [ + 287 + ], + "Grudge": [ + 288 + ], + "Snatch": [ + 289 + ], + "Secret Power": [ + 290 + ], + "Dive": [ + 291 + ], + "Arm Thrust": [ + 292 + ], + "Camouflage": [ + 293 + ], + "Tail Glow": [ + 294 + ], + "Luster Purge": [ + 295 + ], + "Mist Ball": [ + 296 + ], + "Feather Dance": [ + 297 + ], + "Teeter Dance": [ + 298 + ], + "Blaze Kick": [ + 299 + ], + "Mud Sport": [ + 300 + ], + "Ice Ball": [ + 301 + ], + "Needle Arm": [ + 302 + ], + "Slack Off": [ + 303 + ], + "Hyper Voice": [ + 304 + ], + "Poison Fang": [ + 305 + ], + "Crush Claw": [ + 306 + ], + "Blast Burn": [ + 307 + ], + "Hydro Cannon": [ + 308 + ], + "Meteor Mash": [ + 309 + ], + "Astonish": [ + 310 + ], + "Weather Ball": [ + 311 + ], + "Aromatherapy": [ + 312 + ], + "Fake Tears": [ + 313 + ], + "Air Cutter": [ + 314 + ], + "Overheat": [ + 315 + ], + "Odor Sleuth": [ + 316 + ], + "Rock Tomb": [ + 317 + ], + "Silver Wind": [ + 318 + ], + "Metal Sound": [ + 319 + ], + "Grass Whistle": [ + 320 + ], + "Tickle": [ + 321 + ], + "Cosmic Power": [ + 322 + ], + "Water Spout": [ + 323 + ], + "Signal Beam": [ + 324 + ], + "Shadow Punch": [ + 325 + ], + "Extrasensory": [ + 326 + ], + "Sky Uppercut": [ + 327 + ], + "Sand Tomb": [ + 328 + ], + "Sheer Cold": [ + 329 + ], + "Muddy Water": [ + 330 + ], + "Bullet Seed": [ + 331 + ], + "Aerial Ace": [ + 332 + ], + "Icicle Spear": [ + 333 + ], + "Iron Defense": [ + 334 + ], + "Block": [ + 335 + ], + "Howl": [ + 336 + ], + "Dragon Claw": [ + 337 + ], + "Frenzy Plant": [ + 338 + ], + "Bulk Up": [ + 339 + ], + "Bounce": [ + 340 + ], + "Mud Shot": [ + 341 + ], + "Poison Tail": [ + 342 + ], + "Covet": [ + 343 + ], + "Volt Tackle": [ + 344 + ], + "Magical Leaf": [ + 345 + ], + "Water Sport": [ + 346 + ], + "Calm Mind": [ + 347 + ], + "Leaf Blade": [ + 348 + ], + "Dragon Dance": [ + 349 + ], + "Rock Blast": [ + 350 + ], + "Shock Wave": [ + 351 + ], + "Water Pulse": [ + 352 + ], + "Doom Desire": [ + 353 + ], + "Psycho Boost": [ + 354 + ], + "Air Slash": [ + 356 + ], + "Aqua Jet": [ + 357 + ], + "Aqua Tail": [ + 358 + ], + "Aura Sphere": [ + 359 + ], + "Avalanche": [ + 360 + ], + "Brave Bird": [ + 361 + ], + "Bug Buzz": [ + 362 + ], + "Bullet Punch": [ + 363 + ], + "Charge Beam": [ + 364 + ], + "Close Combat": [ + 365 + ], + "Cross Poison": [ + 366 + ], + "Dark Pulse": [ + 367 + ], + "Discharge": [ + 368 + ], + "Draco Meteor": [ + 369 + ], + "Dragon Pulse": [ + 370 + ], + "Drain Punch": [ + 371 + ], + "Earth Power": [ + 372 + ], + "Energy Ball": [ + 373 + ], + "Focus Blast": [ + 374 + ], + "Force Palm": [ + 375 + ], + "Giga Impact": [ + 376 + ], + "Grass Knot": [ + 377 + ], + "Gunk Shot": [ + 378 + ], + "Hammer Arm": [ + 379 + ], + "Head Smash": [ + 380 + ], + "Ice Shard": [ + 381 + ], + "Iron Head": [ + 382 + ], + "Lava Plume": [ + 383 + ], + "Magnet Bomb": [ + 384 + ], + "Mud Bomb": [ + 385 + ], + "Nasty Plot": [ + 386 + ], + "Night Slash": [ + 387 + ], + "Ominous Wind": [ + 388 + ], + "Power Gem": [ + 389 + ], + "Power Whip": [ + 390 + ], + "Psycho Cut": [ + 391 + ], + "Rock Climb": [ + 392 + ], + "Rock Polish": [ + 393 + ], + "Rock Wrecker": [ + 394 + ], + "Roost": [ + 395 + ], + "Seed Bomb": [ + 396 + ], + "Shadow Claw": [ + 397 + ], + "Shadow Sneak": [ + 398 + ], + "Vacuum Wave": [ + 399 + ], + "X-Scissor": [ + 400 + ], + "Zen Headbutt": [ + 401 + ], + "Switcheroo": [ + 402 + ], + "Drill Run": [ + 403 + ], + "Bulldoze": [ + 404 + ], + "Electroweb": [ + 405 + ], + "Flame Charge": [ + 406 + ], + "Frost Breath": [ + 407 + ], + "Heart Stamp": [ + 408 + ], + "Hone Claws": [ + 409 + ], + "Horn Leech": [ + 410 + ], + "Coil": [ + 411 + ], + "Hurricane": [ + 412 + ], + "Icicle Crash": [ + 413 + ], + "Work Up": [ + 414 + ], + "Quiver Dance": [ + 415 + ], + "Leaf Tornado": [ + 416 + ], + "Low Sweep": [ + 417 + ], + "Snarl": [ + 418 + ], + "Struggle Bug": [ + 419 + ], + "Steamroller": [ + 420 + ], + "Storm Throw": [ + 421 + ], + "Venoshock": [ + 422 + ], + "Wild Charge": [ + 423 + ], + "Poison Jab": [ + 424 + ], + "Acid Spray": [ + 425 + ], + "Fiery Dance": [ + 426 + ], + "Clear Smog": [ + 427 + ], + "Leaf Storm": [ + 428 + ], + "Stone Edge": [ + 429 + ], + "Payback": [ + 430 + ], + "Fire Fang": [ + 431 + ], + "Ice Fang": [ + 432 + ], + "Thunder Fang": [ + 433 + ], + "Flare Blitz": [ + 434 + ], + "Inferno": [ + 435 + ], + "Hex": [ + 436 + ], + "Dual Chop": [ + 437 + ], + "Double Hit": [ + 438 + ], + "Cotton Guard": [ + 439 + ], + "Acrobatics": [ + 440 + ], + "Flame Burst": [ + 441 + ], + "U-turn": [ + 442 + ], + "Volt Switch": [ + 443 + ], + "Dragon Tail": [ + 444 + ], + "Circle Throw": [ + 445 + ], + "Mirror Shot": [ + 446 + ], + "Wood Hammer": [ + 447 + ], + "Heal Pulse": [ + 448 + ], + "Flash Cannon": [ + 449 + ], + "Bug Bite": [ + 450 + ], + "Pluck": [ + 451 + ], + "Shell Smash": [ + 452 + ], + "Rage Powder": [ + 453 + ], + "Wake-Up Slap": [ + 454 + ], + "Razor Shell": [ + 455 + ], + "Copycat": [ + 456 + ], + "Miracle Eye": [ + 457 + ], + "Sucker Punch": [ + 458 + ], + "Scald": [ + 459 + ], + "Brine": [ + 460 + ], + "Fairy Wind": [ + 461 + ], + "Baby-Doll Eyes": [ + 462 + ], + "Play Rough": [ + 463 + ], + "Moonblast": [ + 464 + ], + "Draining Kiss": [ + 465 + ], + "Dazzling Gleam": [ + 466 + ], + "Disarming Voice": [ + 467 + ], + "Stealth Rock": [ + 468 + ], + "Toxic Spikes": [ + 469 + ], + "Healing Wish": [ + 470 + ], + "Lunar Dance": [ + 471 + ], + "Tailwind": [ + 472 + ], + "Boomburst": [ + 473 + ], + "Incinerate": [ + 474 + ], + "Worry Seed": [ + 475 + ], + "Gastro Acid": [ + 476 + ], + "Geomancy": [ + 477 + ], + "Flower Shield": [ + 478 + ], + "Rototiller": [ + 479 + ], + "Shift Gear": [ + 480 + ], + "Sticky Web": [ + 481 + ], + "Stored Power": [ + 482 + ], + "Acupressure": [ + 483 + ], + "Punishment": [ + 484 + ], + "Assurance": [ + 485 + ], + "Dragon Rush": [ + 486 + ], + "Dark Void": [ + 487 + ], + "Feint": [ + 488 + ], + "Phantom Force": [ + 489 + ], + "Petal Blizzard": [ + 490 + ], + "Play Nice": [ + 491 + ], + "Roar of Time": [ + 492 + ], + "Spacial Rend": [ + 493 + ], + "Magma Storm": [ + 494 + ], + "Final Gambit": [ + 495 + ], + "Shadow Force": [ + 496 + ], + "Nuzzle": [ + 497 + ], + "Retaliate": [ + 498 + ], + "Judgment": [ + 500 + ], + "Freeze-Dry": [ + 501 + ], + "Psyshock": [ + 502 + ], + "Round": [ + 503 + ], + "Tail Slap": [ + 504 + ], + "Gear Grind": [ + 505 + ], + "Natural Gift": [ + 506 + ], + "Chip Away": [ + 507 + ], + "Smack Down": [ + 508 + ], + "Hyperspace Hole": [ + 509 + ], + "Gyro Ball": [ + 510 + ], + "Hyperspace Fury": [ + 511 + ], + "Attack Order": [ + 512 + ], + "Defend Order": [ + 513 + ], + "Heal Order": [ + 514 + ], + "Captivate": [ + 515 + ], + "Defog": [ + 516 + ], + "Origin Pulse": [ + 517 + ], + "Precipice Blades": [ + 518 + ], + "Guard Swap": [ + 519 + ], + "Steam Eruption": [ + 520 + ], + "Metal Burst": [ + 521 + ], + "Me First": [ + 522 + ], + "Power Swap": [ + 523 + ], + "Power Trick": [ + 524 + ], + "Psycho Shift": [ + 525 + ], + "Wring Out": [ + 526 + ], + "Psystrike": [ + 528 + ], + "Autotomize": [ + 529 + ], + "Diamond Storm": [ + 530 + ], + "Sludge Wave": [ + 531 + ], + "Heavy Slam": [ + 532 + ], + "Synchronoise": [ + 533 + ], + "Electro Ball": [ + 534 + ], + "Foul Play": [ + 535 + ], + "Entrainment": [ + 536 + ], + "Night Daze": [ + 537 + ], + "Echoed Voice": [ + 538 + ], + "Oblivion Wing": [ + 540 + ], + "Heart Swap": [ + 541 + ], + "Sacred Sword": [ + 543 + ], + "Heat Crash": [ + 544 + ], + "Head Charge": [ + 545 + ], + "Techno Blast": [ + 546 + ], + "Relic Song": [ + 547 + ], + "Secret Sword": [ + 548 + ], + "Glaciate": [ + 549 + ], + "Bolt Strike": [ + 550 + ], + "Blue Flare": [ + 551 + ], + "Freeze Shock": [ + 552 + ], + "Ice Burn": [ + 553 + ], + "V-create": [ + 554 + ], + "Fusion Flare": [ + 555 + ], + "Fusion Bolt": [ + 556 + ], + "Fell Stinger": [ + 557 + ], + "Noble Roar": [ + 558 + ], + "Dragon Ascent": [ + 559 + ], + "Parting Shot": [ + 560 + ], + "Topsy-Turvy": [ + 561 + ], + "Core Enforcer": [ + 562 + ], + "Chatter": [ + 563 + ], + "Confide": [ + 564 + ], + "Water Shuriken": [ + 565 + ], + "Mystical Fire": [ + 566 + ], + "Spiky Shield": [ + 567 + ], + "Eerie Impulse": [ + 568 + ], + "Hold Back": [ + 569 + ], + "Infestation": [ + 570 + ], + "Power-Up Punch": [ + 571 + ], + "Thousand Arrows": [ + 572 + ], + "Thousand Waves": [ + 573 + ], + "Parabolic Charge": [ + 574 + ], + "Searing Shot": [ + 575 + ], + "Seed Flare": [ + 576 + ], + "Accelerock": [ + 577 + ], + "Anchor Shot": [ + 578 + ], + "Aurora Veil": [ + 579 + ], + "Baneful Bunker": [ + 580 + ], + "Beak Blast": [ + 581 + ], + "Brutal Swing": [ + 582 + ], + "Burn Up": [ + 583 + ], + "Clanging Scales": [ + 584 + ], + "Darkest Lariat": [ + 585 + ], + "Dragon Hammer": [ + 586 + ], + "Fire Lash": [ + 587 + ], + "First Impression": [ + 588 + ], + "Fleur Cannon": [ + 589 + ], + "Floral Healing": [ + 590 + ], + "Gear Up": [ + 591 + ], + "High Horsepower": [ + 592 + ], + "Ice Hammer": [ + 593 + ], + "Laser Focus": [ + 594 + ], + "Leafage": [ + 595 + ], + "Liquidation": [ + 596 + ], + "Lunge": [ + 597 + ], + "Moongeist Beam": [ + 598 + ], + "Multi-Attack": [ + 599 + ], + "Pollen Puff": [ + 601 + ], + "Power Trip": [ + 602 + ], + "Prismatic Laser": [ + 603 + ], + "Psychic Fangs": [ + 604 + ], + "Purify": [ + 605 + ], + "Revelation Dance": [ + 606 + ], + "Shadow Bone": [ + 607 + ], + "Shell Trap": [ + 608 + ], + "Shore Up": [ + 609 + ], + "Smart Strike": [ + 610 + ], + "Solar Blade": [ + 611 + ], + "Sparkling Aria": [ + 612 + ], + "Spectral Thief": [ + 613 + ], + "Speed Swap": [ + 614 + ], + "Spirit Shackle": [ + 615 + ], + "Spotlight": [ + 616 + ], + "Stomping Tantrum": [ + 617 + ], + "Strength Sap": [ + 618 + ], + "Tearful Look": [ + 620 + ], + "Throat Chop": [ + 621 + ], + "Toxic Thread": [ + 622 + ], + "Trop Kick": [ + 623 + ], + "Zing Zap": [ + 624 + ], + "Electric Terrain": [ + 625 + ], + "Grassy Terrain": [ + 626 + ], + "Misty Terrain": [ + 627 + ], + "Psychic Terrain": [ + 628 + ], + "Grass Pledge": [ + 629 + ], + "Fire Pledge": [ + 630 + ], + "Water Pledge": [ + 631 + ], + "Trick Room": [ + 632 + ], + "Magic Room": [ + 633 + ], + "Wonder Room": [ + 634 + ], + "Crafty Shield": [ + 635 + ], + "Mat Block": [ + 636 + ], + "Quick Guard": [ + 637 + ], + "Wide Guard": [ + 638 + ], + "Aqua Ring": [ + 639 + ], + "Aromatic Mist": [ + 640 + ], + "Belch": [ + 641 + ], + "Bestow": [ + 642 + ], + "Fling": [ + 643 + ], + "Flying Press": [ + 644 + ], + "Gravity": [ + 645 + ], + "Guard Split": [ + 646 + ], + "Heal Block": [ + 647 + ], + "Ion Deluge": [ + 648 + ], + "Lucky Chant": [ + 649 + ], + "Magnet Rise": [ + 650 + ], + "Magnetic Flux": [ + 651 + ], + "Powder": [ + 652 + ], + "Power Split": [ + 653 + ], + "Reflect Type": [ + 654 + ], + "Simple Beam": [ + 655 + ], + "Soak": [ + 656 + ], + "Telekinesis": [ + 657 + ], + "Trick-or-Treat": [ + 658 + ], + "Venom Drench": [ + 659 + ], + "Mind Blown": [ + 661 + ], + "Photon Geyser": [ + 662 + ], + "Plasma Fists": [ + 663 + ], + "Electrify": [ + 664 + ], + "Embargo": [ + 665 + ], + "Fairy Lock": [ + 666 + ], + "Light of Ruin": [ + 667 + ], + "Trump Card": [ + 668 + ], + "After You": [ + 669 + ], + "Instruct": [ + 670 + ], + "Quash": [ + 671 + ], + "Happy Hour": [ + 672 + ], + "Double Iron Bash": [ + 673 + ], + "Last Resort": [ + 674 + ], + "Sky Drop": [ + 675 + ], + "Celebrate": [ + 676 + ], + "Hold Hands": [ + 677 + ], + "Dynamax Cannon": [ + 678 + ], + "Snipe Shot": [ + 679 + ], + "Jaw Lock": [ + 680 + ], + "Stuff Cheeks": [ + 681 + ], + "No Retreat": [ + 682 + ], + "Tar Shot": [ + 683 + ], + "Magic Powder": [ + 684 + ], + "Dragon Darts": [ + 685 + ], + "Teatime": [ + 686 + ], + "Octolock": [ + 687 + ], + "Bolt Beak": [ + 688 + ], + "Fishious Rend": [ + 689 + ], + "Court Change": [ + 690 + ], + "Clangorous Soul": [ + 691 + ], + "Body Press": [ + 692 + ], + "Decorate": [ + 693 + ], + "Drum Beating": [ + 694 + ], + "Snap Trap": [ + 695 + ], + "Pyro Ball": [ + 696 + ], + "Behemoth Blade": [ + 697 + ], + "Behemoth Bash": [ + 698 + ], + "Aura Wheel": [ + 699 + ], + "Breaking Swipe": [ + 700 + ], + "Branch Poke": [ + 701 + ], + "Overdrive": [ + 702 + ], + "Apple Acid": [ + 703 + ], + "Grav Apple": [ + 704 + ], + "Spirit Break": [ + 705 + ], + "Strange Steam": [ + 706 + ], + "Life Dew": [ + 707 + ], + "Obstruct": [ + 708 + ], + "False Surrender": [ + 709 + ], + "Meteor Assault": [ + 710 + ], + "Eternabeam": [ + 711 + ], + "Steel Beam": [ + 712 + ], + "Expanding Force": [ + 713 + ], + "Steel Roller": [ + 714 + ], + "Scale Shot": [ + 715 + ], + "Meteor Beam": [ + 716 + ], + "Shell Side Arm": [ + 717 + ], + "Misty Explosion": [ + 718 + ], + "Grassy Glide": [ + 719 + ], + "Rising Voltage": [ + 720 + ], + "Terrain Pulse": [ + 721 + ], + "Skitter Smack": [ + 722 + ], + "Burning Jealousy": [ + 723 + ], + "Lash Out": [ + 724 + ], + "Poltergeist": [ + 725 + ], + "Corrosive Gas": [ + 726 + ], + "Coaching": [ + 727 + ], + "Flip Turn": [ + 728 + ], + "Triple Axel": [ + 729 + ], + "Dual Wingbeat": [ + 730 + ], + "Scorching Sands": [ + 731 + ], + "Jungle Healing": [ + 732 + ], + "Wicked Blow": [ + 733 + ], + "Surging Strikes": [ + 734 + ], + "Freezing Glare": [ + 735 + ], + "Thunderous Kick": [ + 736 + ], + "Fiery Wrath": [ + 737 + ], + "Thunder Cage": [ + 738 + ], + "Dragon Energy": [ + 739 + ], + "Astral Barrage": [ + 740 + ], + "Glacial Lance": [ + 741 + ], + "Eerie Spell": [ + 742 + ], + "Zippy Zap": [ + 743 + ], + "Sappy Seed": [ + 744 + ], + "Freezy Frost": [ + 745 + ], + "Sparkly Swirl": [ + 746 + ], + "Bouncy Bubble": [ + 747 + ], + "Stone Axe": [ + 750 + ], + "Headlong Rush": [ + 751 + ], + "Victory Dance": [ + 752 + ], + "Infernal Parade": [ + 753 + ], + "Ceaseless Edge": [ + 754 + ], + "Triple Arrows": [ + 755 + ], + "Barb Barrage": [ + 756 + ], + "Chloroblast": [ + 757 + ], + "Bitter Malice": [ + 758 + ], + "Esper Wing": [ + 759 + ], + "Dire Claw": [ + 760 + ], + "Mountain Gale": [ + 761 + ], + "Psyshield Bash": [ + 762 + ], + "Mystical Power": [ + 763 + ], + "Wave Crash": [ + 764 + ], + "Flower Trick": [ + 765 + ], + "Torch Song": [ + 766 + ], + "Aqua Step": [ + 767 + ], + "Hyper Drill": [ + 768 + ], + "Armor Cannon": [ + 769 + ], + "Bitter Blade": [ + 770 + ], + "Aqua Cutter": [ + 771 + ], + "Rage Fist": [ + 772 + ], + "Glaive Rush": [ + 773 + ], + "Last Respects": [ + 774 + ], + "Shed Tail": [ + 775 + ], + "Jet Punch": [ + 776 + ], + "Spin Out": [ + 777 + ], + "Collision Course": [ + 778 + ], + "Electro Drift": [ + 779 + ], + "Revival Blessing": [ + 780 + ], + "Gigaton Hammer": [ + 781 + ], + "Raging Bull": [ + 782 + ], + "Twin Beam": [ + 783 + ], + "Kowtow Cleave": [ + 784 + ], + "Double Shock": [ + 785 + ], + "Trailblaze": [ + 786 + ], + "Pounce": [ + 787 + ], + "Make It Rain": [ + 788 + ], + "Population Bomb": [ + 789 + ], + "Lunar Blessing": [ + 790 + ], + "Take Heart": [ + 791 + ], + "Silk Trap": [ + 792 + ], + "Axe Kick": [ + 793 + ], + "Lumina Crash": [ + 794 + ], + "Ice Spinner": [ + 795 + ], + "Salt Cure": [ + 796 + ], + "Triple Dive": [ + 797 + ], + "Mortal Spin": [ + 798 + ], + "Fillet Away": [ + 799 + ], + "Chilly Reception": [ + 800 + ], + "Chilling Water": [ + 801 + ], + "Comeuppance": [ + 802 + ], + "Tidy Up": [ + 803 + ], + "Ruination": [ + 804 + ], + "Psyblade": [ + 805 + ], + "Hydro Steam": [ + 806 + ], + "Bleakwind Storm": [ + 807 + ], + "Wildbolt Storm": [ + 808 + ], + "Sandsear Storm": [ + 809 + ], + "Springtide Storm": [ + 810 + ], + "Blood Moon": [ + 811 + ], + "Matcha Gotcha": [ + 812 + ], + "Ivy Cudgel": [ + 813 + ], + "Electro Shot": [ + 814 + ], + "Thunderclap": [ + 815 + ], + "Tachyon Cutter": [ + 816 + ], + "Psychic Noise": [ + 817 + ], + "Upper Hand": [ + 818 + ], + "Fickle Beam": [ + 819 + ], + "Burning Bulwark": [ + 820 + ], + "Mighty Cleave": [ + 822 + ], + "Hard Press": [ + 823 + ], + "Dragon Cheer": [ + 824 + ], + "Alluring Voice": [ + 825 + ], + "Temper Flare": [ + 826 + ], + "Supercell Slam": [ + 827 + ], + "Malignant Chain": [ + 828 + ] +} \ No newline at end of file diff --git a/src/types/SAVTypes/radicalred/conversion/Gen3RRMovesIndex/RRToNationalMap.ts b/src/types/SAVTypes/radicalred/conversion/Gen3RRMovesIndex/RRToNationalMap.ts new file mode 100644 index 00000000..66aec9f6 --- /dev/null +++ b/src/types/SAVTypes/radicalred/conversion/Gen3RRMovesIndex/RRToNationalMap.ts @@ -0,0 +1,933 @@ +export const RRToNationalMap = { + Pound: 1, + 'Karate Chop': 2, + 'Double Slap': 3, + 'Comet Punch': 4, + 'Mega Punch': 5, + 'Pay Day': 6, + 'Fire Punch': 7, + 'Ice Punch': 8, + 'Thunder Punch': 9, + Scratch: 10, + 'Vise Grip': 11, + Guillotine: 12, + 'Razor Wind': 13, + 'Swords Dance': 14, + Cut: 15, + Gust: 16, + 'Wing Attack': 17, + Whirlwind: 18, + Fly: 19, + Bind: 20, + Slam: 21, + 'Vine Whip': 22, + Stomp: 23, + 'Double Kick': 24, + 'Mega Kick': 25, + 'Jump Kick': 26, + 'Rolling Kick': 27, + 'Sand Attack': 28, + Headbutt: 29, + 'Horn Attack': 30, + 'Fury Attack': 31, + 'Horn Drill': 32, + Tackle: 33, + 'Body Slam': 34, + Wrap: 35, + 'Take Down': 36, + Thrash: 37, + 'Double-Edge': 38, + 'Tail Whip': 39, + 'Poison Sting': 40, + Twineedle: 41, + 'Pin Missile': 42, + Leer: 43, + Bite: 44, + Growl: 45, + Roar: 46, + Sing: 47, + Supersonic: 48, + 'Sonic Boom': 49, + Disable: 50, + Acid: 51, + Ember: 52, + Flamethrower: 53, + Mist: 54, + 'Water Gun': 55, + 'Hydro Pump': 56, + Surf: 57, + 'Ice Beam': 58, + Blizzard: 59, + Psybeam: 60, + 'Bubble Beam': 61, + 'Aurora Beam': 62, + 'Hyper Beam': 63, + Peck: 64, + 'Drill Peck': 65, + Submission: 66, + 'Low Kick': 67, + Counter: 68, + 'Seismic Toss': 69, + Strength: 70, + Absorb: 71, + 'Mega Drain': 72, + 'Leech Seed': 73, + Growth: 74, + 'Razor Leaf': 75, + 'Solar Beam': 76, + 'Poison Powder': 77, + 'Stun Spore': 78, + 'Sleep Powder': 79, + 'Petal Dance': 80, + 'String Shot': 81, + 'Dragon Rage': 82, + 'Fire Spin': 83, + 'Thunder Shock': 84, + Thunderbolt: 85, + 'Thunder Wave': 86, + Thunder: 87, + 'Rock Throw': 88, + Earthquake: 89, + 'Soul Robbery': -1, + Dig: 91, + Toxic: 92, + Confusion: 93, + Psychic: 94, + Hypnosis: 95, + Meditate: 96, + Agility: 97, + 'Quick Attack': 98, + Rage: 99, + Teleport: 100, + 'Night Shade': 101, + Mimic: 102, + Screech: 103, + 'Double Team': 104, + Recover: 105, + Harden: 106, + Minimize: 107, + Smokescreen: 108, + 'Confuse Ray': 109, + Withdraw: 110, + 'Defense Curl': 111, + Barrier: 112, + 'Light Screen': 113, + Haze: 114, + Reflect: 115, + 'Focus Energy': 116, + Bide: 117, + Metronome: 118, + 'Mirror Move': 119, + 'Self-Destruct': 120, + 'Egg Bomb': 121, + Lick: 122, + Smog: 123, + Sludge: 124, + 'Bone Club': 125, + 'Fire Blast': 126, + Waterfall: 127, + Clamp: 128, + Swift: 129, + 'Skull Bash': 130, + 'Spike Cannon': 131, + Constrict: 132, + Amnesia: 133, + Kinesis: 134, + 'Soft-Boiled': 135, + 'High Jump Kick': 136, + Glare: 137, + 'Dream Eater': 138, + 'Poison Gas': 139, + Barrage: 140, + 'Leech Life': 141, + 'Lovely Kiss': 142, + 'Sky Attack': 143, + Transform: 144, + Bubble: 145, + 'Dizzy Punch': 146, + Spore: 147, + Flash: 148, + Psywave: 149, + Splash: 150, + 'Acid Armor': 151, + Crabhammer: 152, + Explosion: 153, + 'Fury Swipes': 154, + Bonemerang: 155, + Rest: 156, + 'Rock Slide': 157, + 'Hyper Fang': 158, + Sharpen: 159, + 'Dark Hole': -1, + 'Tri Attack': 161, + 'Super Fang': 162, + Slash: 163, + Substitute: 164, + Struggle: 165, + Sketch: 166, + 'Triple Kick': 167, + Thief: 168, + 'Spider Web': 169, + 'Mind Reader': 170, + Nightmare: 171, + 'Flame Wheel': 172, + Snore: 173, + Curse: 174, + Flail: 175, + 'Conversion 2': 176, + Aeroblast: 177, + 'Cotton Spore': 178, + Reversal: 179, + Spite: 180, + 'Powder Snow': 181, + Protect: 182, + 'Mach Punch': 183, + 'Scary Face': 184, + 'Feint Attack': 185, + 'Sweet Kiss': 186, + 'Belly Drum': 187, + 'Sludge Bomb': 188, + 'Mud-Slap': 189, + Octazooka: 190, + Spikes: 191, + 'Zap Cannon': 192, + Foresight: 193, + 'Destiny Bond': 194, + 'Perish Song': 195, + 'Icy Wind': 196, + Detect: 197, + 'Bone Rush': 198, + 'Lock-On': 199, + Outrage: 200, + Sandstorm: 201, + 'Giga Drain': 202, + Endure: 203, + Charm: 204, + Rollout: 205, + 'False Swipe': 206, + Swagger: 207, + 'Milk Drink': 208, + Spark: 209, + 'Fury Cutter': 210, + 'Steel Wing': 211, + 'Mean Look': 212, + Attract: 213, + 'Sleep Talk': 214, + 'Heal Bell': 215, + Return: 216, + Present: 217, + Frustration: 218, + Safeguard: 219, + 'Pain Split': 220, + 'Sacred Fire': 221, + Magnitude: 222, + 'Dynamic Punch': 223, + Megahorn: 224, + 'Dragon Breath': 225, + 'Baton Pass': 226, + Encore: 227, + Pursuit: 228, + 'Rapid Spin': 229, + 'Sweet Scent': 230, + 'Iron Tail': 231, + 'Metal Claw': 232, + 'Vital Throw': 233, + 'Morning Sun': 234, + Synthesis: 235, + Moonlight: 236, + 'Hidden Power': 237, + 'Cross Chop': 238, + Twister: 239, + 'Rain Dance': 240, + 'Sunny Day': 241, + Crunch: 242, + 'Mirror Coat': 243, + 'Psych Up': 244, + 'Extreme Speed': 245, + 'Ancient Power': 246, + 'Shadow Ball': 247, + 'Future Sight': 248, + 'Rock Smash': 249, + Whirlpool: 250, + 'Beat Up': 251, + 'Fake Out': 252, + Uproar: 253, + Stockpile: 254, + 'Spit Up': 255, + Swallow: 256, + 'Heat Wave': 257, + Snowscape: 883, + Torment: 259, + Flatter: 260, + 'Will-O-Wisp': 261, + Memento: 262, + Facade: 263, + 'Focus Punch': 264, + 'Smelling Salts': 265, + 'Follow Me': 266, + 'Nature Power': 267, + Charge: 268, + Taunt: 269, + 'Helping Hand': 270, + Trick: 271, + 'Role Play': 272, + Wish: 273, + Assist: 274, + Ingrain: 275, + Superpower: 276, + 'Magic Coat': 277, + Recycle: 278, + Revenge: 279, + 'Brick Break': 280, + Yawn: 281, + 'Knock Off': 282, + Endeavor: 283, + Eruption: 284, + 'Skill Swap': 285, + Imprison: 286, + Refresh: 287, + Grudge: 288, + Snatch: 289, + 'Secret Power': 290, + Dive: 291, + 'Arm Thrust': 292, + Camouflage: 293, + 'Tail Glow': 294, + 'Luster Purge': 295, + 'Mist Ball': 296, + 'Feather Dance': 297, + 'Teeter Dance': 298, + 'Blaze Kick': 299, + 'Mud Sport': 300, + 'Ice Ball': 301, + 'Needle Arm': 302, + 'Slack Off': 303, + 'Hyper Voice': 304, + 'Poison Fang': 305, + 'Crush Claw': 306, + 'Blast Burn': 307, + 'Hydro Cannon': 308, + 'Meteor Mash': 309, + Astonish: 310, + 'Weather Ball': 311, + Aromatherapy: 312, + 'Fake Tears': 313, + 'Air Cutter': 314, + Overheat: 315, + 'Odor Sleuth': 316, + 'Rock Tomb': 317, + 'Silver Wind': 318, + 'Metal Sound': 319, + 'Grass Whistle': 320, + Tickle: 321, + 'Cosmic Power': 322, + 'Water Spout': 323, + 'Signal Beam': 324, + 'Shadow Punch': 325, + Extrasensory: 326, + 'Sky Uppercut': 327, + 'Sand Tomb': 328, + 'Sheer Cold': 329, + 'Muddy Water': 330, + 'Bullet Seed': 331, + 'Aerial Ace': 332, + 'Icicle Spear': 333, + 'Iron Defense': 334, + Block: 335, + Howl: 336, + 'Dragon Claw': 337, + 'Frenzy Plant': 338, + 'Bulk Up': 339, + Bounce: 340, + 'Mud Shot': 341, + 'Poison Tail': 342, + Covet: 343, + 'Volt Tackle': 344, + 'Magical Leaf': 345, + 'Water Sport': 346, + 'Calm Mind': 347, + 'Leaf Blade': 348, + 'Dragon Dance': 349, + 'Rock Blast': 350, + 'Shock Wave': 351, + 'Water Pulse': 352, + 'Doom Desire': 353, + 'Psycho Boost': 354, + 'Air Slash': 403, + 'Aqua Jet': 453, + 'Aqua Tail': 401, + 'Aura Sphere': 396, + Avalanche: 419, + 'Brave Bird': 413, + 'Bug Buzz': 405, + 'Bullet Punch': 418, + 'Charge Beam': 451, + 'Close Combat': 370, + 'Cross Poison': 440, + 'Dark Pulse': 399, + Discharge: 435, + 'Draco Meteor': 434, + 'Dragon Pulse': 406, + 'Drain Punch': 409, + 'Earth Power': 414, + 'Energy Ball': 412, + 'Focus Blast': 411, + 'Force Palm': 395, + 'Giga Impact': 416, + 'Grass Knot': 447, + 'Gunk Shot': 441, + 'Hammer Arm': 359, + 'Head Smash': 457, + 'Ice Shard': 420, + 'Iron Head': 442, + 'Lava Plume': 436, + 'Magnet Bomb': 443, + 'Mud Bomb': 426, + 'Nasty Plot': 417, + 'Night Slash': 400, + 'Ominous Wind': 466, + 'Power Gem': 408, + 'Power Whip': 438, + 'Psycho Cut': 427, + 'Rock Climb': 431, + 'Rock Polish': 397, + 'Rock Wrecker': 439, + Roost: 355, + 'Seed Bomb': 402, + 'Shadow Claw': 421, + 'Shadow Sneak': 425, + 'Vacuum Wave': 410, + 'X-Scissor': 404, + 'Zen Headbutt': 428, + Switcheroo: 415, + 'Drill Run': 529, + Bulldoze: 523, + Electroweb: 527, + 'Flame Charge': 488, + 'Frost Breath': 524, + 'Heart Stamp': 531, + 'Hone Claws': 468, + 'Horn Leech': 532, + Coil: 489, + Hurricane: 542, + 'Icicle Crash': 556, + 'Work Up': 526, + 'Quiver Dance': 483, + 'Leaf Tornado': 536, + 'Low Sweep': 490, + Snarl: 555, + 'Struggle Bug': 522, + Steamroller: 537, + 'Storm Throw': 480, + Venoshock: 474, + 'Wild Charge': 528, + 'Poison Jab': 398, + 'Acid Spray': 491, + 'Fiery Dance': 552, + 'Clear Smog': 499, + 'Leaf Storm': 437, + 'Stone Edge': 444, + Payback: 371, + 'Fire Fang': 424, + 'Ice Fang': 423, + 'Thunder Fang': 422, + 'Flare Blitz': 394, + Inferno: 517, + Hex: 506, + 'Dual Chop': 530, + 'Double Hit': 458, + 'Cotton Guard': 538, + Acrobatics: 512, + 'Flame Burst': 481, + 'U-turn': 369, + 'Volt Switch': 521, + 'Dragon Tail': 525, + 'Circle Throw': 509, + 'Mirror Shot': 429, + 'Wood Hammer': 452, + 'Heal Pulse': 505, + 'Flash Cannon': 430, + 'Bug Bite': 450, + Pluck: 365, + 'Shell Smash': 504, + 'Rage Powder': 476, + 'Wake-Up Slap': 358, + 'Razor Shell': 534, + Copycat: 383, + 'Miracle Eye': 357, + 'Sucker Punch': 389, + Scald: 503, + Brine: 362, + 'Fairy Wind': 584, + 'Baby-Doll Eyes': 608, + 'Play Rough': 583, + Moonblast: 585, + 'Draining Kiss': 577, + 'Dazzling Gleam': 605, + 'Disarming Voice': 574, + 'Stealth Rock': 446, + 'Toxic Spikes': 390, + 'Healing Wish': 361, + 'Lunar Dance': 461, + Tailwind: 366, + Boomburst: 586, + Incinerate: 510, + 'Worry Seed': 388, + 'Gastro Acid': 380, + Geomancy: 601, + 'Flower Shield': 579, + Rototiller: 563, + 'Shift Gear': 508, + 'Sticky Web': 564, + 'Stored Power': 500, + Acupressure: 367, + Punishment: 386, + Assurance: 372, + 'Dragon Rush': 407, + 'Dark Void': 464, + Feint: 364, + 'Phantom Force': 566, + 'Petal Blizzard': 572, + 'Play Nice': 589, + 'Roar of Time': 459, + 'Spacial Rend': 460, + 'Magma Storm': 463, + 'Final Gambit': 515, + 'Shadow Force': 467, + Nuzzle: 609, + Retaliate: 514, + 'Metal Bash': -1, + Judgment: 449, + 'Freeze-Dry': 573, + Psyshock: 473, + Round: 496, + 'Tail Slap': 541, + 'Gear Grind': 544, + 'Natural Gift': 363, + 'Chip Away': 498, + 'Smack Down': 479, + 'Hyperspace Hole': 593, + 'Gyro Ball': 360, + 'Hyperspace Fury': 621, + 'Attack Order': 454, + 'Defend Order': 455, + 'Heal Order': 456, + Captivate: 445, + Defog: 432, + 'Origin Pulse': 618, + 'Precipice Blades': 619, + 'Guard Swap': 385, + 'Steam Eruption': 592, + 'Metal Burst': 368, + 'Me First': 382, + 'Power Swap': 384, + 'Power Trick': 379, + 'Psycho Shift': 375, + 'Wring Out': 378, + "King's Shield": -1, + Psystrike: 540, + Autotomize: 475, + 'Diamond Storm': 591, + 'Sludge Wave': 482, + 'Heavy Slam': 484, + Synchronoise: 485, + 'Electro Ball': 486, + 'Foul Play': 492, + Entrainment: 494, + 'Night Daze': 539, + 'Echoed Voice': 497, + "Land's Wrath": -1, + 'Oblivion Wing': 613, + 'Heart Swap': 391, + 'Aqua Fang': -1, + 'Sacred Sword': 533, + 'Heat Crash': 535, + 'Head Charge': 543, + 'Techno Blast': 546, + 'Relic Song': 547, + 'Secret Sword': 548, + Glaciate: 549, + 'Bolt Strike': 550, + 'Blue Flare': 551, + 'Freeze Shock': 553, + 'Ice Burn': 554, + 'V-create': 557, + 'Fusion Flare': 558, + 'Fusion Bolt': 559, + 'Fell Stinger': 565, + 'Noble Roar': 568, + 'Dragon Ascent': 620, + 'Parting Shot': 575, + 'Topsy-Turvy': 576, + 'Core Enforcer': 687, + Chatter: 448, + Confide: 590, + 'Water Shuriken': 594, + 'Mystical Fire': 595, + 'Spiky Shield': 596, + 'Eerie Impulse': 598, + 'Hold Back': 610, + Infestation: 611, + 'Power-Up Punch': 612, + 'Thousand Arrows': 614, + 'Thousand Waves': 615, + 'Parabolic Charge': 570, + 'Searing Shot': 545, + 'Seed Flare': 465, + Accelerock: 709, + 'Anchor Shot': 677, + 'Aurora Veil': 694, + 'Baneful Bunker': 661, + 'Beak Blast': 690, + 'Brutal Swing': 693, + 'Burn Up': 682, + 'Clanging Scales': 691, + 'Darkest Lariat': 663, + 'Dragon Hammer': 692, + 'Fire Lash': 680, + 'First Impression': 660, + 'Fleur Cannon': 705, + 'Floral Healing': 666, + 'Gear Up': 674, + 'High Horsepower': 667, + 'Ice Hammer': 665, + 'Laser Focus': 673, + Leafage: 670, + Liquidation: 710, + Lunge: 679, + 'Moongeist Beam': 714, + 'Multi-Attack': 718, + "Nature's Madness": -1, + 'Pollen Puff': 676, + 'Power Trip': 681, + 'Prismatic Laser': 711, + 'Psychic Fangs': 706, + Purify: 685, + 'Revelation Dance': 686, + 'Shadow Bone': 708, + 'Shell Trap': 704, + 'Shore Up': 659, + 'Smart Strike': 684, + 'Solar Blade': 669, + 'Sparkling Aria': 664, + 'Spectral Thief': 712, + 'Speed Swap': 683, + 'Spirit Shackle': 662, + Spotlight: 671, + 'Stomping Tantrum': 707, + 'Strength Sap': 668, + 'Sunsteel Ram': -1, + 'Tearful Look': 715, + 'Throat Chop': 675, + 'Toxic Thread': 672, + 'Trop Kick': 688, + 'Zing Zap': 716, + 'Electric Terrain': 604, + 'Grassy Terrain': 580, + 'Misty Terrain': 581, + 'Psychic Terrain': 678, + 'Grass Pledge': 520, + 'Fire Pledge': 519, + 'Water Pledge': 518, + 'Trick Room': 433, + 'Magic Room': 478, + 'Wonder Room': 472, + 'Crafty Shield': 578, + 'Mat Block': 561, + 'Quick Guard': 501, + 'Wide Guard': 469, + 'Aqua Ring': 392, + 'Aromatic Mist': 597, + Belch: 562, + Bestow: 516, + Fling: 374, + 'Flying Press': 560, + Gravity: 356, + 'Guard Split': 470, + 'Heal Block': 377, + 'Ion Deluge': 569, + 'Lucky Chant': 381, + 'Magnet Rise': 393, + 'Magnetic Flux': 602, + Powder: 600, + 'Power Split': 471, + 'Reflect Type': 513, + 'Simple Beam': 493, + Soak: 487, + Telekinesis: 477, + 'Trick-or-Treat': 567, + 'Venom Drench': 599, + "Forest's Curse": -1, + 'Mind Blown': 720, + 'Photon Geyser': 722, + 'Plasma Fists': 721, + Electrify: 582, + Embargo: 373, + 'Fairy Lock': 587, + 'Light of Ruin': 617, + 'Trump Card': 376, + 'After You': 495, + Instruct: 689, + Quash: 511, + 'Happy Hour': 603, + 'Double Iron Bash': 742, + 'Last Resort': 387, + 'Sky Drop': 507, + Celebrate: 606, + 'Hold Hands': 607, + 'Dynamax Cannon': 744, + 'Snipe Shot': 745, + 'Jaw Lock': 746, + 'Stuff Cheeks': 747, + 'No Retreat': 748, + 'Tar Shot': 749, + 'Magic Powder': 750, + 'Dragon Darts': 751, + Teatime: 752, + Octolock: 753, + 'Bolt Beak': 754, + 'Fishious Rend': 755, + 'Court Change': 756, + 'Clangorous Soul': 775, + 'Body Press': 776, + Decorate: 777, + 'Drum Beating': 778, + 'Snap Trap': 779, + 'Pyro Ball': 780, + 'Behemoth Blade': 781, + 'Behemoth Bash': 782, + 'Aura Wheel': 783, + 'Breaking Swipe': 784, + 'Branch Poke': 785, + Overdrive: 786, + 'Apple Acid': 787, + 'Grav Apple': 788, + 'Spirit Break': 789, + 'Strange Steam': 790, + 'Life Dew': 791, + Obstruct: 792, + 'False Surrender': 793, + 'Meteor Assault': 794, + Eternabeam: 795, + 'Steel Beam': 796, + 'Expanding Force': 797, + 'Steel Roller': 798, + 'Scale Shot': 799, + 'Meteor Beam': 800, + 'Shell Side Arm': 801, + 'Misty Explosion': 802, + 'Grassy Glide': 803, + 'Rising Voltage': 804, + 'Terrain Pulse': 805, + 'Skitter Smack': 806, + 'Burning Jealousy': 807, + 'Lash Out': 808, + Poltergeist: 809, + 'Corrosive Gas': 810, + Coaching: 811, + 'Flip Turn': 812, + 'Triple Axel': 813, + 'Dual Wingbeat': 814, + 'Scorching Sands': 815, + 'Jungle Healing': 816, + 'Wicked Blow': 817, + 'Surging Strikes': 818, + 'Freezing Glare': 821, + 'Thunderous Kick': 823, + 'Fiery Wrath': 822, + 'Thunder Cage': 819, + 'Dragon Energy': 820, + 'Astral Barrage': 825, + 'Glacial Lance': 824, + 'Eerie Spell': 826, + 'Zippy Zap': 729, + 'Sappy Seed': 738, + 'Freezy Frost': 739, + 'Sparkly Swirl': 740, + 'Bouncy Bubble': 733, + 'Sonic Slash': -1, + DracoBarrage: -1, + 'Stone Axe': 830, + 'Headlong Rush': 838, + 'Victory Dance': 837, + 'Infernal Parade': 844, + 'Ceaseless Edge': 845, + 'Triple Arrows': 843, + 'Barb Barrage': 839, + Chloroblast: 835, + 'Bitter Malice': 841, + 'Esper Wing': 840, + 'Dire Claw': 827, + 'Mountain Gale': 836, + 'Psyshield Bash': 828, + 'Mystical Power': 832, + 'Wave Crash': 834, + 'Flower Trick': 870, + 'Torch Song': 871, + 'Aqua Step': 872, + 'Hyper Drill': 887, + 'Armor Cannon': 890, + 'Bitter Blade': 891, + 'Aqua Cutter': 895, + 'Rage Fist': 889, + 'Glaive Rush': 862, + 'Last Respects': 854, + 'Shed Tail': 880, + 'Jet Punch': 857, + 'Spin Out': 859, + 'Collision Course': 878, + 'Electro Drift': 879, + 'Revival Blessing': 863, + 'Gigaton Hammer': 893, + 'Raging Bull': 873, + 'Twin Beam': 888, + 'Kowtow Cleave': 869, + 'Double Shock': 892, + Trailblaze: 885, + Pounce: 884, + 'Make It Rain': 874, + 'Population Bomb': 860, + 'Lunar Blessing': 849, + 'Take Heart': 850, + 'Silk Trap': 852, + 'Axe Kick': 853, + 'Lumina Crash': 855, + 'Ice Spinner': 861, + 'Salt Cure': 864, + 'Triple Dive': 865, + 'Mortal Spin': 866, + 'Fillet Away': 868, + 'Chilly Reception': 881, + 'Chilling Water': 886, + Comeuppance: 894, + 'Tidy Up': 882, + Ruination: 877, + Psyblade: 875, + 'Hydro Steam': 876, + 'Bleakwind Storm': 846, + 'Wildbolt Storm': 847, + 'Sandsear Storm': 848, + 'Springtide Storm': 831, + 'Blood Moon': 901, + 'Matcha Gotcha': 902, + 'Ivy Cudgel': 904, + 'Electro Shot': 905, + Thunderclap: 909, + 'Tachyon Cutter': 911, + 'Psychic Noise': 917, + 'Upper Hand': 918, + 'Fickle Beam': 907, + 'Burning Bulwark': 908, + Placeholder: -1, + 'Mighty Cleave': 910, + 'Hard Press': 912, + 'Dragon Cheer': 913, + 'Alluring Voice': 914, + 'Temper Flare': 915, + 'Supercell Slam': 916, + 'Malignant Chain': 919, + 'Z-Move 1': -1, + 'Z-Move 2': -1, + 'Z-Move 3': -1, + 'Z-Move 4': -1, + 'Z-Move 5': -1, + 'Z-Move 6': -1, + 'Z-Move 7': -1, + 'Z-Move 8': -1, + 'Z-Move 9': -1, + 'Z-Move 10': -1, + 'Z-Move 11': -1, + 'Z-Move 12': -1, + 'Z-Move 13': -1, + 'Z-Move 14': -1, + 'Z-Move 15': -1, + 'Z-Move 16': -1, + 'Z-Move 17': -1, + 'Z-Move 18': -1, + 'Z-Move 19': -1, + 'Z-Move 20': -1, + 'Z-Move 21': -1, + 'Z-Move 22': -1, + 'Z-Move 23': -1, + 'Z-Move 24': -1, + 'Z-Move 25': -1, + 'Z-Move 26': -1, + 'Z-Move 27': -1, + 'Z-Move 28': -1, + 'Z-Move 29': -1, + 'Z-Move 30': -1, + 'Z-Move 31': -1, + 'Z-Move 32': -1, + 'Z-Move 33': -1, + 'Z-Move 34': -1, + 'Z-Move 35': -1, + 'Z-Move 36': -1, + 'Z-Move 37': -1, + 'Z-Move 38': -1, + 'Z-Move 39': -1, + 'Z-Move 40': -1, + 'Z-Move 41': -1, + 'Z-Move 42': -1, + 'Z-Move 43': -1, + 'Z-Move 44': -1, + 'Z-Move 45': -1, + 'Z-Move 46': -1, + 'Z-Move 47': -1, + 'Z-Move 48': -1, + 'Z-Move 49': -1, + 'Z-Move 50': -1, + 'Z-Move 51': -1, + 'Z-Move 52': -1, + 'Z-Move 53': -1, + Guard: -1, + Strike: -1, + Knuckle: -1, + Airstream: -1, + Ooze: -1, + Quake: -1, + Rockfall: -1, + Flutterby: -1, + Phantasm: -1, + Steelspike: -1, + Flare: -1, + Geyser: -1, + Overgrowth: -1, + Lightning: -1, + Mindstorm: -1, + Hailstorm: -1, + Wyrmwind: -1, + Darkness: -1, + Starfall: -1, + 'Vine Lash': -1, + Wildfire: -1, + Cannonade: -1, + Befuddle: -1, + Voltcrash: -1, + Goldrush: -1, + Chistrike: -1, + Terror: -1, + Foamburst: -1, + Resonance: -1, + Cuddle: -1, + Replenish: -1, + Malodor: -1, + Meltdown: -1, + 'Drum Solo': -1, + Fireball: -1, + Hydrosnipe: -1, + Windrage: -1, + Gravitas: -1, + Stonesurge: -1, + Volcalith: -1, + Tartness: -1, + Sweetness: -1, + Sandblast: -1, + Stunshock: -1, + Centiferno: -1, + Smite: -1, + Snooze: -1, + Finale: -1, + Steelsurge: -1, + Depletion: -1, + 'One Blow': -1, +} diff --git a/src/types/SAVTypes/radicalred/conversion/Gen3RRMovesIndex/generateMoveMap.ts b/src/types/SAVTypes/radicalred/conversion/Gen3RRMovesIndex/generateMoveMap.ts new file mode 100644 index 00000000..0ab5e4b7 --- /dev/null +++ b/src/types/SAVTypes/radicalred/conversion/Gen3RRMovesIndex/generateMoveMap.ts @@ -0,0 +1,39 @@ +import { writeFileSync } from 'fs'; +import { Moves } from 'pokemon-resources'; +import { Gen3RRMoves } from '.'; + +const NationalMoves = Moves + +function generateMappings(rrMoves: string[], nationalMoves: Record) { + const rrToNationalMap: Record = {}; + const nationalToRRMap: Record = {}; + + rrMoves.forEach((rrMoveName, rrIndex) => { + let matchedId = -1; + + for (const nationalMove of Object.values(nationalMoves)) { + if (nationalMove.name === rrMoveName) { + matchedId = nationalMove.id; + break; + } + } + + rrToNationalMap[rrMoveName] = matchedId; + + if (matchedId !== -1) { + if (!nationalToRRMap[rrMoveName]) { + nationalToRRMap[rrMoveName] = []; + } + nationalToRRMap[rrMoveName].push(rrIndex); + } + }); + + return { rrToNationalMap, nationalToRRMap }; +} + +const { rrToNationalMap, nationalToRRMap } = generateMappings(Gen3RRMoves, NationalMoves); + +writeFileSync('rrToNationalMap.json', JSON.stringify(rrToNationalMap, null, 2)); +writeFileSync('nationalToRRMap.json', JSON.stringify(nationalToRRMap, null, 2)); + +console.log('Mapping files created successfully!'); diff --git a/src/types/SAVTypes/radicalred/conversion/Gen3RRMovesIndex/index.ts b/src/types/SAVTypes/radicalred/conversion/Gen3RRMovesIndex/index.ts new file mode 100644 index 00000000..97955071 --- /dev/null +++ b/src/types/SAVTypes/radicalred/conversion/Gen3RRMovesIndex/index.ts @@ -0,0 +1,1022 @@ +export const Gen3RRMoves = [ + 'None', + 'Pound', + 'Karate Chop', + 'Double Slap', + 'Comet Punch', + 'Mega Punch', + 'Pay Day', + 'Fire Punch', + 'Ice Punch', + 'Thunder Punch', + 'Scratch', + 'Vise Grip', + 'Guillotine', + 'Razor Wind', + 'Swords Dance', + 'Cut', + 'Gust', + 'Wing Attack', + 'Whirlwind', + 'Fly', + 'Bind', + 'Slam', + 'Vine Whip', + 'Stomp', + 'Double Kick', + 'Mega Kick', + 'Jump Kick', + 'Rolling Kick', + 'Sand Attack', + 'Headbutt', + 'Horn Attack', + 'Fury Attack', + 'Horn Drill', + 'Tackle', + 'Body Slam', + 'Wrap', + 'Take Down', + 'Thrash', + 'Double-Edge', + 'Tail Whip', + 'Poison Sting', + 'Twineedle', + 'Pin Missile', + 'Leer', + 'Bite', + 'Growl', + 'Roar', + 'Sing', + 'Supersonic', + 'Sonic Boom', + 'Disable', + 'Acid', + 'Ember', + 'Flamethrower', + 'Mist', + 'Water Gun', + 'Hydro Pump', + 'Surf', + 'Ice Beam', + 'Blizzard', + 'Psybeam', + 'Bubble Beam', + 'Aurora Beam', + 'Hyper Beam', + 'Peck', + 'Drill Peck', + 'Submission', + 'Low Kick', + 'Counter', + 'Seismic Toss', + 'Strength', + 'Absorb', + 'Mega Drain', + 'Leech Seed', + 'Growth', + 'Razor Leaf', + 'Solar Beam', + 'Poison Powder', + 'Stun Spore', + 'Sleep Powder', + 'Petal Dance', + 'String Shot', + 'Dragon Rage', + 'Fire Spin', + 'Thunder Shock', + 'Thunderbolt', + 'Thunder Wave', + 'Thunder', + 'Rock Throw', + 'Earthquake', + 'Soul Robbery', // RR + 'Dig', + 'Toxic', + 'Confusion', + 'Psychic', + 'Hypnosis', + 'Meditate', + 'Agility', + 'Quick Attack', + 'Rage', + 'Teleport', + 'Night Shade', + 'Mimic', + 'Screech', + 'Double Team', + 'Recover', + 'Harden', + 'Minimize', + 'Smokescreen', + 'Confuse Ray', + 'Withdraw', + 'Defense Curl', + 'Barrier', + 'Light Screen', + 'Haze', + 'Reflect', + 'Focus Energy', + 'Bide', + 'Metronome', + 'Mirror Move', + 'Self-Destruct', + 'Egg Bomb', + 'Lick', + 'Smog', + 'Sludge', + 'Bone Club', + 'Fire Blast', + 'Waterfall', + 'Clamp', + 'Swift', + 'Skull Bash', + 'Spike Cannon', + 'Constrict', + 'Amnesia', + 'Kinesis', + 'Soft-Boiled', + 'High Jump Kick', + 'Glare', + 'Dream Eater', + 'Poison Gas', + 'Barrage', + 'Leech Life', + 'Lovely Kiss', + 'Sky Attack', + 'Transform', + 'Bubble', + 'Dizzy Punch', + 'Spore', + 'Flash', + 'Psywave', + 'Splash', + 'Acid Armor', + 'Crabhammer', + 'Explosion', + 'Fury Swipes', + 'Bonemerang', + 'Rest', + 'Rock Slide', + 'Hyper Fang', + 'Sharpen', + 'Dark Hole', + 'Tri Attack', + 'Super Fang', + 'Slash', + 'Substitute', + 'Struggle', + 'Sketch', + 'Triple Kick', + 'Thief', + 'Spider Web', + 'Mind Reader', + 'Nightmare', + 'Flame Wheel', + 'Snore', + 'Curse', + 'Flail', + 'Conversion 2', + 'Aeroblast', + 'Cotton Spore', + 'Reversal', + 'Spite', + 'Powder Snow', + 'Protect', + 'Mach Punch', + 'Scary Face', + 'Feint Attack', + 'Sweet Kiss', + 'Belly Drum', + 'Sludge Bomb', + 'Mud-Slap', + 'Octazooka', + 'Spikes', + 'Zap Cannon', + 'Foresight', + 'Destiny Bond', + 'Perish Song', + 'Icy Wind', + 'Detect', + 'Bone Rush', + 'Lock-On', + 'Outrage', + 'Sandstorm', + 'Giga Drain', + 'Endure', + 'Charm', + 'Rollout', + 'False Swipe', + 'Swagger', + 'Milk Drink', + 'Spark', + 'Fury Cutter', + 'Steel Wing', + 'Mean Look', + 'Attract', + 'Sleep Talk', + 'Heal Bell', + 'Return', + 'Present', + 'Frustration', + 'Safeguard', + 'Pain Split', + 'Sacred Fire', + 'Magnitude', + 'Dynamic Punch', + 'Megahorn', + 'Dragon Breath', + 'Baton Pass', + 'Encore', + 'Pursuit', + 'Rapid Spin', + 'Sweet Scent', + 'Iron Tail', + 'Metal Claw', + 'Vital Throw', + 'Morning Sun', + 'Synthesis', + 'Moonlight', + 'Hidden Power', + 'Cross Chop', + 'Twister', + 'Rain Dance', + 'Sunny Day', + 'Crunch', + 'Mirror Coat', + 'Psych Up', + 'Extreme Speed', + 'Ancient Power', + 'Shadow Ball', + 'Future Sight', + 'Rock Smash', + 'Whirlpool', + 'Beat Up', + 'Fake Out', + 'Uproar', + 'Stockpile', + 'Spit Up', + 'Swallow', + 'Heat Wave', + 'Snowscape', + 'Torment', + 'Flatter', + 'Will-O-Wisp', + 'Memento', + 'Facade', + 'Focus Punch', + 'Smelling Salts', + 'Follow Me', + 'Nature Power', + 'Charge', + 'Taunt', + 'Helping Hand', + 'Trick', + 'Role Play', + 'Wish', + 'Assist', + 'Ingrain', + 'Superpower', + 'Magic Coat', + 'Recycle', + 'Revenge', + 'Brick Break', + 'Yawn', + 'Knock Off', + 'Endeavor', + 'Eruption', + 'Skill Swap', + 'Imprison', + 'Refresh', + 'Grudge', + 'Snatch', + 'Secret Power', + 'Dive', + 'Arm Thrust', + 'Camouflage', + 'Tail Glow', + 'Luster Purge', + 'Mist Ball', + 'Feather Dance', + 'Teeter Dance', + 'Blaze Kick', + 'Mud Sport', + 'Ice Ball', + 'Needle Arm', + 'Slack Off', + 'Hyper Voice', + 'Poison Fang', + 'Crush Claw', + 'Blast Burn', + 'Hydro Cannon', + 'Meteor Mash', + 'Astonish', + 'Weather Ball', + 'Aromatherapy', + 'Fake Tears', + 'Air Cutter', + 'Overheat', + 'Odor Sleuth', + 'Rock Tomb', + 'Silver Wind', + 'Metal Sound', + 'Grass Whistle', + 'Tickle', + 'Cosmic Power', + 'Water Spout', + 'Signal Beam', + 'Shadow Punch', + 'Extrasensory', + 'Sky Uppercut', + 'Sand Tomb', + 'Sheer Cold', + 'Muddy Water', + 'Bullet Seed', + 'Aerial Ace', + 'Icicle Spear', + 'Iron Defense', + 'Block', + 'Howl', + 'Dragon Claw', + 'Frenzy Plant', + 'Bulk Up', + 'Bounce', + 'Mud Shot', + 'Poison Tail', + 'Covet', + 'Volt Tackle', + 'Magical Leaf', + 'Water Sport', + 'Calm Mind', + 'Leaf Blade', + 'Dragon Dance', + 'Rock Blast', + 'Shock Wave', + 'Water Pulse', + 'Doom Desire', + 'Psycho Boost', + 'Leech Life', + 'Air Slash', + 'Aqua Jet', + 'Aqua Tail', + 'Aura Sphere', + 'Avalanche', + 'Brave Bird', + 'Bug Buzz', + 'Bullet Punch', + 'Charge Beam', + 'Close Combat', + 'Cross Poison', + 'Dark Pulse', + 'Discharge', + 'Draco Meteor', + 'Dragon Pulse', + 'Drain Punch', + 'Earth Power', + 'Energy Ball', + 'Focus Blast', + 'Force Palm', + 'Giga Impact', + 'Grass Knot', + 'Gunk Shot', + 'Hammer Arm', + 'Head Smash', + 'Ice Shard', + 'Iron Head', + 'Lava Plume', + 'Magnet Bomb', + 'Mud Bomb', + 'Nasty Plot', + 'Night Slash', + 'Ominous Wind', + 'Power Gem', + 'Power Whip', + 'Psycho Cut', + 'Rock Climb', + 'Rock Polish', + 'Rock Wrecker', + 'Roost', + 'Seed Bomb', + 'Shadow Claw', + 'Shadow Sneak', + 'Vacuum Wave', + 'X-Scissor', + 'Zen Headbutt', + 'Switcheroo', + 'Drill Run', + 'Bulldoze', + 'Electroweb', + 'Flame Charge', + 'Frost Breath', + 'Heart Stamp', + 'Hone Claws', + 'Horn Leech', + 'Coil', + 'Hurricane', + 'Icicle Crash', + 'Work Up', + 'Quiver Dance', + 'Leaf Tornado', + 'Low Sweep', + 'Snarl', + 'Struggle Bug', + 'Steamroller', + 'Storm Throw', + 'Venoshock', + 'Wild Charge', + 'Poison Jab', + 'Acid Spray', + 'Fiery Dance', + 'Clear Smog', + 'Leaf Storm', + 'Stone Edge', + 'Payback', + 'Fire Fang', + 'Ice Fang', + 'Thunder Fang', + 'Flare Blitz', + 'Inferno', + 'Hex', + 'Dual Chop', + 'Double Hit', + 'Cotton Guard', + 'Acrobatics', + 'Flame Burst', + 'U-turn', + 'Volt Switch', + 'Dragon Tail', + 'Circle Throw', + 'Mirror Shot', + 'Wood Hammer', + 'Heal Pulse', + 'Flash Cannon', + 'Bug Bite', + 'Pluck', + 'Shell Smash', + 'Rage Powder', + 'Wake-Up Slap', + 'Razor Shell', + 'Copycat', + 'Miracle Eye', + 'Sucker Punch', + 'Scald', + 'Brine', + 'Fairy Wind', + 'Baby-Doll Eyes', + 'Play Rough', + 'Moonblast', + 'Draining Kiss', + 'Dazzling Gleam', + 'Disarming Voice', + 'Stealth Rock', + 'Toxic Spikes', + 'Healing Wish', + 'Lunar Dance', + 'Tailwind', + 'Boomburst', + 'Incinerate', + 'Worry Seed', + 'Gastro Acid', + 'Geomancy', + 'Flower Shield', + 'Rototiller', + 'Shift Gear', + 'Sticky Web', + 'Stored Power', + 'Acupressure', + 'Punishment', + 'Assurance', + 'Dragon Rush', + 'Dark Void', + 'Feint', + 'Phantom Force', + 'Petal Blizzard', + 'Play Nice', + 'Roar of Time', + 'Spacial Rend', + 'Magma Storm', + 'Final Gambit', + 'Shadow Force', + 'Nuzzle', + 'Retaliate', + 'Metal Bash', + 'Judgment', + 'Freeze-Dry', + 'Psyshock', + 'Round', + 'Tail Slap', + 'Gear Grind', + 'Natural Gift', + 'Chip Away', + 'Smack Down', + 'Hyperspace Hole', + 'Gyro Ball', + 'Hyperspace Fury', + 'Attack Order', + 'Defend Order', + 'Heal Order', + 'Captivate', + 'Defog', + 'Origin Pulse', + 'Precipice Blades', + 'Guard Swap', + 'Steam Eruption', + 'Metal Burst', + 'Me First', + 'Power Swap', + 'Power Trick', + 'Psycho Shift', + 'Wring Out', + "King's Shield", // RR + 'Psystrike', + 'Autotomize', + 'Diamond Storm', + 'Sludge Wave', + 'Heavy Slam', + 'Synchronoise', + 'Electro Ball', + 'Foul Play', + 'Entrainment', + 'Night Daze', + 'Echoed Voice', + "Land's Wrath", // RR + 'Oblivion Wing', + 'Heart Swap', + 'Aqua Fang', + 'Sacred Sword', + 'Heat Crash', + 'Head Charge', + 'Techno Blast', + 'Relic Song', + 'Secret Sword', + 'Glaciate', + 'Bolt Strike', + 'Blue Flare', + 'Freeze Shock', + 'Ice Burn', + 'V-create', + 'Fusion Flare', + 'Fusion Bolt', + 'Fell Stinger', + 'Noble Roar', + 'Dragon Ascent', + 'Parting Shot', + 'Topsy-Turvy', + 'Core Enforcer', + 'Chatter', + 'Confide', + 'Water Shuriken', + 'Mystical Fire', + 'Spiky Shield', + 'Eerie Impulse', + 'Hold Back', + 'Infestation', + 'Power-Up Punch', + 'Thousand Arrows', + 'Thousand Waves', + 'Parabolic Charge', + 'Searing Shot', + 'Seed Flare', + 'Accelerock', + 'Anchor Shot', + 'Aurora Veil', + 'Baneful Bunker', + 'Beak Blast', + 'Brutal Swing', + 'Burn Up', + 'Clanging Scales', + 'Darkest Lariat', + 'Dragon Hammer', + 'Fire Lash', + 'First Impression', + 'Fleur Cannon', + 'Floral Healing', + 'Gear Up', + 'High Horsepower', + 'Ice Hammer', + 'Laser Focus', + 'Leafage', + 'Liquidation', + 'Lunge', + 'Moongeist Beam', + 'Multi-Attack', + "Nature's Madness", + 'Pollen Puff', + 'Power Trip', + 'Prismatic Laser', + 'Psychic Fangs', + 'Purify', + 'Revelation Dance', + 'Shadow Bone', + 'Shell Trap', + 'Shore Up', + 'Smart Strike', + 'Solar Blade', + 'Sparkling Aria', + 'Spectral Thief', + 'Speed Swap', + 'Spirit Shackle', + 'Spotlight', + 'Stomping Tantrum', + 'Strength Sap', + 'Sunsteel Ram', + 'Tearful Look', + 'Throat Chop', + 'Toxic Thread', + 'Trop Kick', + 'Zing Zap', + 'Electric Terrain', + 'Grassy Terrain', + 'Misty Terrain', + 'Psychic Terrain', + 'Grass Pledge', + 'Fire Pledge', + 'Water Pledge', + 'Trick Room', + 'Magic Room', + 'Wonder Room', + 'Crafty Shield', + 'Mat Block', + 'Quick Guard', + 'Wide Guard', + 'Aqua Ring', + 'Aromatic Mist', + 'Belch', + 'Bestow', + 'Fling', + 'Flying Press', + 'Gravity', + 'Guard Split', + 'Heal Block', + 'Ion Deluge', + 'Lucky Chant', + 'Magnet Rise', + 'Magnetic Flux', + 'Powder', + 'Power Split', + 'Reflect Type', + 'Simple Beam', + 'Soak', + 'Telekinesis', + 'Trick-or-Treat', + 'Venom Drench', + "Forest's Curse", // RR + 'Mind Blown', + 'Photon Geyser', + 'Plasma Fists', + 'Electrify', + 'Embargo', + 'Fairy Lock', + 'Light of Ruin', + 'Trump Card', + 'After You', + 'Instruct', + 'Quash', + 'Happy Hour', + 'Double Iron Bash', + 'Last Resort', + 'Sky Drop', + 'Celebrate', + 'Hold Hands', + 'Dynamax Cannon', + 'Snipe Shot', + 'Jaw Lock', + 'Stuff Cheeks', + 'No Retreat', + 'Tar Shot', + 'Magic Powder', + 'Dragon Darts', + 'Teatime', + 'Octolock', + 'Bolt Beak', + 'Fishious Rend', + 'Court Change', + 'Clangorous Soul', + 'Body Press', + 'Decorate', + 'Drum Beating', + 'Snap Trap', + 'Pyro Ball', + 'Behemoth Blade', + 'Behemoth Bash', + 'Aura Wheel', + 'Breaking Swipe', + 'Branch Poke', + 'Overdrive', + 'Apple Acid', + 'Grav Apple', + 'Spirit Break', + 'Strange Steam', + 'Life Dew', + 'Obstruct', + 'False Surrender', + 'Meteor Assault', + 'Eternabeam', + 'Steel Beam', + 'Expanding Force', + 'Steel Roller', + 'Scale Shot', + 'Meteor Beam', + 'Shell Side Arm', + 'Misty Explosion', + 'Grassy Glide', + 'Rising Voltage', + 'Terrain Pulse', + 'Skitter Smack', + 'Burning Jealousy', + 'Lash Out', + 'Poltergeist', + 'Corrosive Gas', + 'Coaching', + 'Flip Turn', + 'Triple Axel', + 'Dual Wingbeat', + 'Scorching Sands', + 'Jungle Healing', + 'Wicked Blow', + 'Surging Strikes', + 'Freezing Glare', + 'Thunderous Kick', + 'Fiery Wrath', + 'Thunder Cage', + 'Dragon Energy', + 'Astral Barrage', + 'Glacial Lance', + 'Eerie Spell', + 'Zippy Zap', + 'Sappy Seed', + 'Freezy Frost', + 'Sparkly Swirl', + 'Bouncy Bubble', + 'Sonic Slash', + 'DracoBarrage', + 'Stone Axe', + 'Headlong Rush', + 'Victory Dance', + 'Infernal Parade', + 'Ceaseless Edge', + 'Triple Arrows', + 'Barb Barrage', + 'Chloroblast', + 'Bitter Malice', + 'Esper Wing', + 'Dire Claw', + 'Mountain Gale', + 'Psyshield Bash', + 'Mystical Power', + 'Wave Crash', + 'Flower Trick', + 'Torch Song', + 'Aqua Step', + 'Hyper Drill', + 'Armor Cannon', + 'Bitter Blade', + 'Aqua Cutter', + 'Rage Fist', + 'Glaive Rush', + 'Last Respects', + 'Shed Tail', + 'Jet Punch', + 'Spin Out', + 'Collision Course', + 'Electro Drift', + 'Revival Blessing', + 'Gigaton Hammer', + 'Raging Bull', + 'Twin Beam', + 'Kowtow Cleave', + 'Double Shock', + 'Trailblaze', + 'Pounce', + 'Make It Rain', + 'Population Bomb', + 'Lunar Blessing', + 'Take Heart', + 'Silk Trap', + 'Axe Kick', + 'Lumina Crash', + 'Ice Spinner', + 'Salt Cure', + 'Triple Dive', + 'Mortal Spin', + 'Fillet Away', + 'Chilly Reception', + 'Chilling Water', + 'Comeuppance', + 'Tidy Up', + 'Ruination', + 'Psyblade', + 'Hydro Steam', + 'Bleakwind Storm', + 'Wildbolt Storm', + 'Sandsear Storm', + 'Springtide Storm', + 'Blood Moon', + 'Matcha Gotcha', + 'Ivy Cudgel', + 'Electro Shot', + 'Thunderclap', + 'Tachyon Cutter', + 'Psychic Noise', + 'Upper Hand', + 'Fickle Beam', + 'Burning Bulwark', + 'Placeholder', + 'Mighty Cleave', + 'Hard Press', + 'Dragon Cheer', + 'Alluring Voice', + 'Temper Flare', + 'Supercell Slam', + 'Malignant Chain', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Placeholder', + 'Z-Move 1', + 'Z-Move 2', + 'Z-Move 3', + 'Z-Move 4', + 'Z-Move 5', + 'Z-Move 6', + 'Z-Move 7', + 'Z-Move 8', + 'Z-Move 9', + 'Z-Move 10', + 'Z-Move 11', + 'Z-Move 12', + 'Z-Move 13', + 'Z-Move 14', + 'Z-Move 15', + 'Z-Move 16', + 'Z-Move 17', + 'Z-Move 18', + 'Z-Move 19', + 'Z-Move 20', + 'Z-Move 21', + 'Z-Move 22', + 'Z-Move 23', + 'Z-Move 24', + 'Z-Move 25', + 'Z-Move 26', + 'Z-Move 27', + 'Z-Move 28', + 'Z-Move 29', + 'Z-Move 30', + 'Z-Move 31', + 'Z-Move 32', + 'Z-Move 33', + 'Z-Move 34', + 'Z-Move 35', + 'Z-Move 36', + 'Z-Move 37', + 'Z-Move 38', + 'Z-Move 39', + 'Z-Move 40', + 'Z-Move 41', + 'Z-Move 42', + 'Z-Move 43', + 'Z-Move 44', + 'Z-Move 45', + 'Z-Move 46', + 'Z-Move 47', + 'Z-Move 48', + 'Z-Move 49', + 'Z-Move 50', + 'Z-Move 51', + 'Z-Move 52', + 'Z-Move 53', + 'Guard', + 'Strike', + 'Strike', + 'Knuckle', + 'Knuckle', + 'Airstream', + 'Airstream', + 'Ooze', + 'Ooze', + 'Quake', + 'Quake', + 'Rockfall', + 'Rockfall', + 'Flutterby', + 'Flutterby', + 'Phantasm', + 'Phantasm', + 'Steelspike', + 'Steelspike', + 'Flare', + 'Flare', + 'Geyser', + 'Geyser', + 'Overgrowth', + 'Overgrowth', + 'Lightning', + 'Lightning', + 'Mindstorm', + 'Mindstorm', + 'Hailstorm', + 'Hailstorm', + 'Wyrmwind', + 'Wyrmwind', + 'Darkness', + 'Darkness', + 'Starfall', + 'Starfall', + 'Vine Lash', + 'Vine Lash', + 'Wildfire', + 'Wildfire', + 'Cannonade', + 'Cannonade', + 'Befuddle', + 'Befuddle', + 'Voltcrash', + 'Voltcrash', + 'Goldrush', + 'Goldrush', + 'Chistrike', + 'Chistrike', + 'Terror', + 'Terror', + 'Foamburst', + 'Foamburst', + 'Resonance', + 'Resonance', + 'Cuddle', + 'Cuddle', + 'Replenish', + 'Replenish', + 'Malodor', + 'Malodor', + 'Meltdown', + 'Meltdown', + 'Drum Solo', + 'Drum Solo', + 'Fireball', + 'Fireball', + 'Hydrosnipe', + 'Hydrosnipe', + 'Windrage', + 'Windrage', + 'Gravitas', + 'Gravitas', + 'Stonesurge', + 'Stonesurge', + 'Volcalith', + 'Volcalith', + 'Tartness', + 'Tartness', + 'Sweetness', + 'Sweetness', + 'Sandblast', + 'Sandblast', + 'Stunshock', + 'Stunshock', + 'Centiferno', + 'Centiferno', + 'Smite', + 'Smite', + 'Snooze', + 'Snooze', + 'Finale', + 'Finale', + 'Steelsurge', + 'Steelsurge', + 'Depletion', + 'Depletion', + 'One Blow', + 'One Blow', +] + +import { Moves } from 'pokemon-resources' +import { NationalToRRMap } from './NationalToRRMap' +import { RRToNationalMap } from './RRToNationalMap' + +// const dne_moves = [89, 538, 526, 659] + +export function fromGen3RRMoveIndex(rrIndex: number): number { + if (rrIndex === 0) return 0 + const key = Gen3RRMoves[rrIndex] + return key ? RRToNationalMap[key] : -1 +} + +export function toGen3RRMoveIndex(nationalMoveId: number): number { + if (nationalMoveId === 0) return 0 + const key = Moves[nationalMoveId]?.name + return key ? NationalToRRMap[key][0] : -1 +} diff --git a/src/types/SAVTypes/radicalred/conversion/Gen3RRPokemonIndex.ts b/src/types/SAVTypes/radicalred/conversion/Gen3RRPokemonIndex.ts new file mode 100644 index 00000000..0b8552ae --- /dev/null +++ b/src/types/SAVTypes/radicalred/conversion/Gen3RRPokemonIndex.ts @@ -0,0 +1,1408 @@ +export const Gen3RRSpecies = [ + 'Egg', + 'Bulbasaur', + 'Ivysaur', + 'Venusaur', + 'Charmander', + 'Charmeleon', + 'Charizard', + 'Squirtle', + 'Wartortle', + 'Blastoise', + 'Caterpie', + 'Metapod', + 'Butterfree', + 'Weedle', + 'Kakuna', + 'Beedrill', + 'Pidgey', + 'Pidgeotto', + 'Pidgeot', + 'Rattata', + 'Raticate', + 'Spearow', + 'Fearow', + 'Ekans', + 'Arbok', + 'Pikachu', + 'Raichu', + 'Sandshrew', + 'Sandslash', + 'Nidoran-F', + 'Nidorina', + 'Nidoqueen', + 'Nidoran-M', + 'Nidorino', + 'Nidoking', + 'Clefairy', + 'Clefable', + 'Vulpix', + 'Ninetales', + 'Jigglypuff', + 'Wigglytuff', + 'Zubat', + 'Golbat', + 'Oddish', + 'Gloom', + 'Vileplume', + 'Paras', + 'Parasect', + 'Venonat', + 'Venomoth', + 'Diglett', + 'Dugtrio', + 'Meowth', + 'Persian', + 'Psyduck', + 'Golduck', + 'Mankey', + 'Primeape', + 'Growlithe', + 'Arcanine', + 'Poliwag', + 'Poliwhirl', + 'Poliwrath', + 'Abra', + 'Kadabra', + 'Alakazam', + 'Machop', + 'Machoke', + 'Machamp', + 'Bellsprout', + 'Weepinbell', + 'Victreebel', + 'Tentacool', + 'Tentacruel', + 'Geodude', + 'Graveler', + 'Golem', + 'Ponyta', + 'Rapidash', + 'Slowpoke', + 'Slowbro', + 'Magnemite', + 'Magneton', + "Farfetch'd", + 'Doduo', + 'Dodrio', + 'Seel', + 'Dewgong', + 'Grimer', + 'Muk', + 'Shellder', + 'Cloyster', + 'Gastly', + 'Haunter', + 'Gengar', + 'Onix', + 'Drowzee', + 'Hypno', + 'Krabby', + 'Kingler', + 'Voltorb', + 'Electrode', + 'Exeggcute', + 'Exeggutor', + 'Cubone', + 'Marowak', + 'Hitmonlee', + 'Hitmonchan', + 'Lickitung', + 'Koffing', + 'Weezing', + 'Rhyhorn', + 'Rhydon', + 'Chansey', + 'Tangela', + 'Kangaskhan', + 'Horsea', + 'Seadra', + 'Goldeen', + 'Seaking', + 'Staryu', + 'Starmie', + 'Mr. Mime', + 'Scyther', + 'Jynx', + 'Electabuzz', + 'Magmar', + 'Pinsir', + 'Tauros', + 'Magikarp', + 'Gyarados', + 'Lapras', + 'Ditto', + 'Eevee', + 'Vaporeon', + 'Jolteon', + 'Flareon', + 'Porygon', + 'Omanyte', + 'Omastar', + 'Kabuto', + 'Kabutops', + 'Aerodactyl', + 'Snorlax', + 'Articuno', + 'Zapdos', + 'Moltres', + 'Dratini', + 'Dragonair', + 'Dragonite', + 'Mewtwo', + 'Mew', + 'Chikorita', + 'Bayleef', + 'Meganium', + 'Cyndaquil', + 'Quilava', + 'Typhlosion', + 'Totodile', + 'Croconaw', + 'Feraligatr', + 'Sentret', + 'Furret', + 'Hoothoot', + 'Noctowl', + 'Ledyba', + 'Ledian', + 'Spinarak', + 'Ariados', + 'Crobat', + 'Chinchou', + 'Lanturn', + 'Pichu', + 'Cleffa', + 'Igglybuff', + 'Togepi', + 'Togetic', + 'Natu', + 'Xatu', + 'Mareep', + 'Flaaffy', + 'Ampharos', + 'Bellossom', + 'Marill', + 'Azumarill', + 'Sudowoodo', + 'Politoed', + 'Hoppip', + 'Skiploom', + 'Jumpluff', + 'Aipom', + 'Sunkern', + 'Sunflora', + 'Yanma', + 'Wooper', + 'Quagsire', + 'Espeon', + 'Umbreon', + 'Murkrow', + 'Slowking', + 'Misdreavus', + 'Unown', + 'Wobbuffet', + 'Girafarig', + 'Pineco', + 'Forretress', + 'Dunsparce', + 'Gligar', + 'Steelix', + 'Snubbull', + 'Granbull', + 'Qwilfish', + 'Scizor', + 'Shuckle', + 'Heracross', + 'Sneasel', + 'Teddiursa', + 'Ursaring', + 'Slugma', + 'Magcargo', + 'Swinub', + 'Piloswine', + 'Corsola', + 'Remoraid', + 'Octillery', + 'Delibird', + 'Mantine', + 'Skarmory', + 'Houndour', + 'Houndoom', + 'Kingdra', + 'Phanpy', + 'Donphan', + 'Porygon2', + 'Stantler', + 'Smeargle', + 'Tyrogue', + 'Hitmontop', + 'Smoochum', + 'Elekid', + 'Magby', + 'Miltank', + 'Blissey', + 'Raikou', + 'Entei', + 'Suicune', + 'Larvitar', + 'Pupitar', + 'Tyranitar', + 'Lugia', + 'Ho-Oh', + 'Celebi', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + '.', + 'Treecko', + 'Grovyle', + 'Sceptile', + 'Torchic', + 'Combusken', + 'Blaziken', + 'Mudkip', + 'Marshtomp', + 'Swampert', + 'Poochyena', + 'Mightyena', + 'Zigzagoon', + 'Linoone', + 'Wurmple', + 'Silcoon', + 'Beautifly', + 'Cascoon', + 'Dustox', + 'Lotad', + 'Lombre', + 'Ludicolo', + 'Seedot', + 'Nuzleaf', + 'Shiftry', + 'Nincada', + 'Ninjask', + 'Shedinja', + 'Taillow', + 'Swellow', + 'Shroomish', + 'Breloom', + 'Spinda', + 'Wingull', + 'Pelipper', + 'Surskit', + 'Masquerain', + 'Wailmer', + 'Wailord', + 'Skitty', + 'Delcatty', + 'Kecleon', + 'Baltoy', + 'Claydol', + 'Nosepass', + 'Torkoal', + 'Sableye', + 'Barboach', + 'Whiscash', + 'Luvdisc', + 'Corphish', + 'Crawdaunt', + 'Feebas', + 'Milotic', + 'Carvanha', + 'Sharpedo', + 'Trapinch', + 'Vibrava', + 'Flygon', + 'Makuhita', + 'Hariyama', + 'Electrike', + 'Manectric', + 'Numel', + 'Camerupt', + 'Spheal', + 'Sealeo', + 'Walrein', + 'Cacnea', + 'Cacturne', + 'Snorunt', + 'Glalie', + 'Lunatone', + 'Solrock', + 'Azurill', + 'Spoink', + 'Grumpig', + 'Plusle', + 'Minun', + 'Mawile', + 'Meditite', + 'Medicham', + 'Swablu', + 'Altaria', + 'Wynaut', + 'Duskull', + 'Dusclops', + 'Roselia', + 'Slakoth', + 'Vigoroth', + 'Slaking', + 'Gulpin', + 'Swalot', + 'Tropius', + 'Whismur', + 'Loudred', + 'Exploud', + 'Clamperl', + 'Huntail', + 'Gorebyss', + 'Absol', + 'Shuppet', + 'Banette', + 'Seviper', + 'Zangoose', + 'Relicanth', + 'Aron', + 'Lairon', + 'Aggron', + 'Castform', + 'Volbeat', + 'Illumise', + 'Lileep', + 'Cradily', + 'Anorith', + 'Armaldo', + 'Ralts', + 'Kirlia', + 'Gardevoir', + 'Bagon', + 'Shelgon', + 'Salamence', + 'Beldum', + 'Metang', + 'Metagross', + 'Regirock', + 'Regice', + 'Registeel', + 'Kyogre', + 'Groudon', + 'Rayquaza', + 'Latias', + 'Latios', + 'Jirachi', + 'Deoxys', + 'Chimecho', + 'Bad.Egg', + 'Unown-B', + 'Unown-C', + 'Unown-D', + 'Unown-E', + 'Unown-F', + 'Unown-G', + 'Unown-H', + 'Unown-I', + 'Unown-J', + 'Unown-K', + 'Unown-L', + 'Unown-M', + 'Unown-N', + 'Unown-O', + 'Unown-P', + 'Unown-Q', + 'Unown-R', + 'Unown-S', + 'Unown-T', + 'Unown-U', + 'Unown-V', + 'Unown-W', + 'Unown-X', + 'Unown-Y', + 'Unown-Z', + 'Unown-!', + 'Unown-?', + 'Turtwig', + 'Grotle', + 'Torterra', + 'Chimchar', + 'Monferno', + 'Infernape', + 'Piplup', + 'Prinplup', + 'Empoleon', + 'Starly', + 'Staravia', + 'Staraptor', + 'Bidoof', + 'Bibarel', + 'Kricketot', + 'Kricketune', + 'Shinx', + 'Luxio', + 'Luxray', + 'Budew', + 'Roserade', + 'Cranidos', + 'Rampardos', + 'Shieldon', + 'Bastiodon', + 'Burmy', + 'Wormadam', + 'Mothim', + 'Combee', + 'Vespiquen', + 'Pachirisu', + 'Buizel', + 'Floatzel', + 'Cherubi', + 'Cherrim', + 'Shellos', + 'Gastrodon', + 'Ambipom', + 'Drifloon', + 'Drifblim', + 'Buneary', + 'Lopunny', + 'Mismagius', + 'Honchkrow', + 'Glameow', + 'Purugly', + 'Chingling', + 'Stunky', + 'Skuntank', + 'Bronzor', + 'Bronzong', + 'Bonsly', + 'Mime Jr.', + 'Happiny', + 'Chatot', + 'Spiritomb', + 'Gible', + 'Gabite', + 'Garchomp', + 'Munchlax', + 'Riolu', + 'Lucario', + 'Hippopotas', + 'Hippowdon', + 'Skorupi', + 'Drapion', + 'Croagunk', + 'Toxicroak', + 'Carnivine', + 'Finneon', + 'Lumineon', + 'Mantyke', + 'Snover', + 'Abomasnow', + 'Weavile', + 'Magnezone', + 'Lickilicky', + 'Rhyperior', + 'Tangrowth', + 'Electivire', + 'Magmortar', + 'Togekiss', + 'Yanmega', + 'Leafeon', + 'Glaceon', + 'Gliscor', + 'Mamoswine', + 'Porygon-Z', + 'Gallade', + 'Probopass', + 'Dusknoir', + 'Froslass', + 'Rotom', + 'Uxie', + 'Mesprit', + 'Azelf', + 'Dialga', + 'Palkia', + 'Heatran', + 'Regigigas', + 'Giratina', + 'Cresselia', + 'Phione', + 'Manaphy', + 'Darkrai', + 'Shaymin', + 'Arceus', + 'Victini', + 'Snivy', + 'Servine', + 'Serperior', + 'Tepig', + 'Pignite', + 'Emboar', + 'Oshawott', + 'Dewott', + 'Samurott', + 'Patrat', + 'Watchog', + 'Lillipup', + 'Herdier', + 'Stoutland', + 'Purrloin', + 'Liepard', + 'Pansage', + 'Simisage', + 'Pansear', + 'Simisear', + 'Panpour', + 'Simipour', + 'Munna', + 'Musharna', + 'Pidove', + 'Tranquill', + 'Unfezant', + 'Blitzle', + 'Zebstrika', + 'Roggenrola', + 'Boldore', + 'Gigalith', + 'Woobat', + 'Swoobat', + 'Drilbur', + 'Excadrill', + 'Audino', + 'Timburr', + 'Gurdurr', + 'Conkeldurr', + 'Tympole', + 'Palpitoad', + 'Seismitoad', + 'Throh', + 'Sawk', + 'Sewaddle', + 'Swadloon', + 'Leavanny', + 'Venipede', + 'Whirlipede', + 'Scolipede', + 'Cottonee', + 'Whimsicott', + 'Petilil', + 'Lilligant', + 'Basculin-Blue-Striped', + 'Sandile', + 'Krokorok', + 'Krookodile', + 'Darumaka', + 'Darmanitan', + 'Maractus', + 'Dwebble', + 'Crustle', + 'Scraggy', + 'Scrafty', + 'Sigilyph', + 'Yamask', + 'Cofagrigus', + 'Tirtouga', + 'Carracosta', + 'Archen', + 'Archeops', + 'Trubbish', + 'Garbodor', + 'Zorua', + 'Zoroark', + 'Minccino', + 'Cinccino', + 'Gothita', + 'Gothorita', + 'Gothitelle', + 'Solosis', + 'Duosion', + 'Reuniclus', + 'Ducklett', + 'Swanna', + 'Vanillite', + 'Vanillish', + 'Vanilluxe', + 'Deerling', + 'Sawsbuck', + 'Emolga', + 'Karrablast', + 'Escavalier', + 'Foongus', + 'Amoonguss', + 'Frillish', + 'Jellicent', + 'Alomomola', + 'Joltik', + 'Galvantula', + 'Ferroseed', + 'Ferrothorn', + 'Klink', + 'Klang', + 'Klinklang', + 'Tynamo', + 'Eelektrik', + 'Eelektross', + 'Elgyem', + 'Beheeyem', + 'Litwick', + 'Lampent', + 'Chandelure', + 'Axew', + 'Fraxure', + 'Haxorus', + 'Cubchoo', + 'Beartic', + 'Cryogonal', + 'Shelmet', + 'Accelgor', + 'Stunfisk', + 'Mienfoo', + 'Mienshao', + 'Druddigon', + 'Golett', + 'Golurk', + 'Pawniard', + 'Bisharp', + 'Bouffalant', + 'Rufflet', + 'Braviary', + 'Vullaby', + 'Mandibuzz', + 'Heatmor', + 'Durant', + 'Deino', + 'Zweilous', + 'Hydreigon', + 'Larvesta', + 'Volcarona', + 'Cobalion', + 'Terrakion', + 'Virizion', + 'Tornadus', + 'Thundurus', + 'Reshiram', + 'Zekrom', + 'Landorus', + 'Kyurem', + 'Keldeo', + 'Meloetta', + 'Genesect', + 'Unfezant', + 'Frillish', + 'Jellicent', + 'Klawf', + 'Burmy', + 'Burmy', + 'Wormadam-Sandy', + 'Wormadam-Trash', + 'Shellos', + 'Gastrodon', + 'Rotom-Heat', + 'Rotom-Wash', + 'Rotom-Frost', + 'Rotom-Fan', + 'Rotom-Mow', + 'Giratina-Origin', + 'Shaymin-Sky', + 'Arceus-Fighting', + 'Arceus-Flying', + 'Arceus-Poison', + 'Arceus-Ground', + 'Arceus-Rock', + 'Arceus-Bug', + 'Arceus-Ghost', + 'Arceus-Steel', + 'Arceus-Fire', + 'Arceus-Water', + 'Arceus-Grass', + 'Arceus-Electric', + 'Arceus-Psychic', + 'Arceus-Ice', + 'Arceus-Dragon', + 'Arceus-Dark', + 'Basculin', + 'Darmanitan-Zen', + 'Deerling', + 'Deerling', + 'Deerling', + 'Sawsbuck', + 'Sawsbuck', + 'Sawsbuck', + 'Hippopotas', + 'Hippowdon', + 'Meloetta-Pirouette', + 'Ting-Lu', + 'Chien-Pao', + 'Wo-Chien', + 'Chi-Yu', + 'Cherrim-Sunshine', + 'Kyurem-Black', + 'Kyurem-White', + 'Tornadus-Therian', + 'Thundurus-Therian', + 'Landorus-Therian', + 'Keldeo-Resolute', + 'Chespin', + 'Quilladin', + 'Chesnaught', + 'Fennekin', + 'Braixen', + 'Delphox', + 'Froakie', + 'Frogadier', + 'Greninja', + 'Bunnelby', + 'Diggersby', + 'Fletchling', + 'Fletchinder', + 'Talonflame', + 'Scatterbug', + 'Spewpa', + 'Vivillon', + 'Litleo', + 'Pyroar', + 'Flabébé', + 'Floette', + 'Florges', + 'Skiddo', + 'Gogoat', + 'Pancham', + 'Pangoro', + 'Furfrou', + 'Espurr', + 'Meowstic', + 'Honedge', + 'Doublade', + 'Aegislash-Shield', + 'Spritzee', + 'Aromatisse', + 'Swirlix', + 'Slurpuff', + 'Inkay', + 'Malamar', + 'Binacle', + 'Barbaracle', + 'Skrelp', + 'Dragalge', + 'Clauncher', + 'Clawitzer', + 'Helioptile', + 'Heliolisk', + 'Tyrunt', + 'Tyrantrum', + 'Amaura', + 'Aurorus', + 'Sylveon', + 'Hawlucha', + 'Dedenne', + 'Carbink', + 'Goomy', + 'Sliggoo', + 'Goodra', + 'Klefki', + 'Phantump', + 'Trevenant', + 'Pumpkaboo', + 'Gourgeist', + 'Bergmite', + 'Avalugg', + 'Noibat', + 'Noivern', + 'Xerneas', + 'Yveltal', + 'Zygarde', + 'Diancie', + 'Hoopa', + 'Hoopa-Unbound', + 'Volcanion', + 'Pyroar', + 'Meowstic-F', + 'Aegislash-Blade', + 'Arceus-Fairy', + 'Varoom', + 'Revavroom', + 'Zygarde-10%', + 'Zygarde-Complete', + 'Greninja-Ash', + 'Tinkatink', + 'Tinkatuff', + 'Tinkaton', + 'Pawmi', + 'Pawmo', + 'Pawmot', + 'Lechonk', + 'Oinkologne', + 'Floette-Eternal', + 'Oinkologne-F', + 'Gimmighoul', + 'Gimmighoul-Roaming', + 'Gholdengo', + 'Pumpkaboo', + 'Pumpkaboo', + 'Pumpkaboo', + 'Gourgeist', + 'Gourgeist', + 'Gourgeist', + 'Greavard', + 'Houndstone', + 'Tadbulb', + 'Bellibolt', + 'Finizen', + 'Palafin', + 'Palafin-Hero', + 'Noibat-Sevii', + 'Noivern-Sevii', + 'Farigiraf', + 'Venusaur-Mega', + 'Charizard-Mega-X', + 'Charizard-Mega-Y', + 'Blastoise-Mega', + 'Beedrill-Mega', + 'Pidgeot-Mega', + 'Alakazam-Mega', + 'Slowbro-Mega', + 'Gengar-Mega', + 'Kangaskhan-Mega', + 'Pinsir-Mega', + 'Gyarados-Mega', + 'Aerodactyl-Mega', + 'Mewtwo-Mega-X', + 'Mewtwo-Mega-Y', + 'Ampharos-Mega', + 'Steelix-Mega', + 'Scizor-Mega', + 'Heracross-Mega', + 'Houndoom-Mega', + 'Tyranitar-Mega', + 'Sceptile-Mega', + 'Blaziken-Mega', + 'Swampert-Mega', + 'Gardevoir-Mega', + 'Sableye-Mega', + 'Mawile-Mega', + 'Aggron-Mega', + 'Medicham-Mega', + 'Manectric-Mega', + 'Sharpedo-Mega', + 'Camerupt-Mega', + 'Altaria-Mega', + 'Banette-Mega', + 'Absol-Mega', + 'Glalie-Mega', + 'Salamence-Mega', + 'Metagross-Mega', + 'Latias-Mega', + 'Latios-Mega', + 'Groudon-Primal', + 'Kyogre-Primal', + 'Rayquaza-Mega', + 'Lopunny-Mega', + 'Garchomp-Mega', + 'Lucario-Mega', + 'Abomasnow-Mega', + 'Gallade-Mega', + 'Audino-Mega', + 'Diancie-Mega', + 'Dialga-Primal', + 'Palkia', + 'Sprigatito', + 'Floragato', + 'Meowscarada', + 'Fuecoco', + 'Crocalor', + 'Skeledirge', + 'Quaxly', + 'Quaxwell', + 'Quaquaval', + 'Wooper-Paldea', + 'Clodsire', + 'Wiglett', + 'Wugtrio', + 'Ceruledge', + 'Armarouge', + 'Kingambit', + 'Annihilape', + 'Charcadet', + 'Rowlet', + 'Dartrix', + 'Decidueye', + 'Litten', + 'Torracat', + 'Incineroar', + 'Popplio', + 'Brionne', + 'Primarina', + 'Pikipek', + 'Trumbeak', + 'Toucannon', + 'Yungoos', + 'Gumshoos', + 'Grubbin', + 'Charjabug', + 'Vikavolt', + 'Crabrawler', + 'Crabominable', + 'Oricorio', + 'Cutiefly', + 'Ribombee', + 'Rockruff', + 'Lycanroc', + 'Wishiwashi', + 'Mareanie', + 'Toxapex', + 'Mudbray', + 'Mudsdale', + 'Dewpider', + 'Araquanid', + 'Fomantis', + 'Lurantis', + 'Morelull', + 'Shiinotic', + 'Salandit', + 'Salazzle', + 'Stufful', + 'Bewear', + 'Bounsweet', + 'Steenee', + 'Tsareena', + 'Comfey', + 'Oranguru', + 'Passimian', + 'Wimpod', + 'Golisopod', + 'Sandygast', + 'Palossand', + 'Pyukumuku', + 'Type: Null', + 'Silvally', + 'Minior-Meteor', + 'Komala', + 'Turtonator', + 'Togedemaru', + 'Mimikyu', + 'Bruxish', + 'Drampa', + 'Dhelmise', + 'Jangmo-o', + 'Hakamo-o', + 'Kommo-o', + 'Tapu Koko', + 'Tapu Lele', + 'Tapu Bulu', + 'Tapu Fini', + 'Cosmog', + 'Cosmoem', + 'Solgaleo', + 'Lunala', + 'Nihilego', + 'Buzzwole', + 'Pheromosa', + 'Xurkitree', + 'Celesteela', + 'Kartana', + 'Guzzlord', + 'Necrozma', + 'Magearna', + 'Marshadow', + 'Rattata-Alola', + 'Raticate-Alola', + 'Raichu-Alola', + 'Sandshrew-Alola', + 'Sandslash-Alola', + 'Vulpix-Alola', + 'Ninetales-Alola', + 'Diglett-Alola', + 'Dugtrio-Alola', + 'Meowth-Alola', + 'Persian-Alola', + 'Geodude-Alola', + 'Graveler-Alola', + 'Golem-Alola', + 'Grimer-Alola', + 'Muk-Alola', + 'Exeggcute', + 'Exeggutor-Alola', + 'Cubone-Alola', + 'Marowak-Alola', + 'Deoxys-Attack', + 'Deoxys-Defense', + 'Deoxys-Speed', + 'Oricorio-Pom-Pom', + "Oricorio-Pa'u", + 'Oricorio-Sensu', + 'Lycanroc-Midnight', + 'Wishiwashi-School', + 'Silvally-Fighting', + 'Silvally-Flying', + 'Silvally-Poison', + 'Silvally-Ground', + 'Silvally-Rock', + 'Silvally-Bug', + 'Silvally-Ghost', + 'Silvally-Steel', + 'Silvally-Fire', + 'Silvally-Water', + 'Silvally-Grass', + 'Silvally-Electric', + 'Silvally-Psychic', + 'Silvally-Ice', + 'Silvally-Dragon', + 'Silvally-Dark', + 'Silvally-Fairy', + 'Minior', + 'Minior', + 'Minior', + 'Minior', + 'Minior', + 'Minior', + 'Minior', + 'Mimikyu-Busted', + 'Magearna-Original', + 'Poipole', + 'Naganadel', + 'Stakataka', + 'Blacephalon', + 'Zeraora', + 'Necrozma-Dusk-Mane', + 'Necrozma-Dawn-Wings', + 'Necrozma-Ultra', + 'Lycanroc-Dusk', + 'Meltan', + 'Melmetal', + 'Pikachu-Surfing', + 'Pikachu-Flying', + 'Pikachu-Cosplay', + 'Pikachu-Libre', + 'Pikachu-Pop-Star', + 'Pikachu-Rock-Star', + 'Pikachu-Belle', + 'Pikachu-PhD', + 'Pikachu-Original', + 'Pikachu-Hoenn', + 'Pikachu-Sinnoh', + 'Pikachu-Unova', + 'Pikachu-Kalos', + 'Pikachu-Alola', + 'Pikachu-Partner', + 'Dudunsparce', + 'Cyclizar', + 'Grookey', + 'Thwackey', + 'Rillaboom', + 'Scorbunny', + 'Raboot', + 'Cinderace', + 'Sobble', + 'Drizzile', + 'Inteleon', + 'Skwovet', + 'Greedent', + 'Rookidee', + 'Corvisquire', + 'Corviknight', + 'Blipbug', + 'Dottler', + 'Orbeetle', + 'Nickit', + 'Thievul', + 'Gossifleur', + 'Eldegoss', + 'Wooloo', + 'Dubwool', + 'Chewtle', + 'Drednaw', + 'Yamper', + 'Boltund', + 'Rolycoly', + 'Carkol', + 'Coalossal', + 'Applin', + 'Flapple', + 'Appletun', + 'Silicobra', + 'Sandaconda', + 'Cramorant', + 'Arrokuda', + 'Barraskewda', + 'Toxel', + 'Toxtricity', + 'Sizzlipede', + 'Centiskorch', + 'Clobbopus', + 'Grapploct', + 'Sinistea', + 'Polteageist', + 'Hatenna', + 'Hattrem', + 'Hatterene', + 'Impidimp', + 'Morgrem', + 'Grimmsnarl', + 'Obstagoon', + 'Perrserker', + 'Cursola', + "Sirfetch'd", + 'Mr. Rime', + 'Runerigus', + 'Milcery', + 'Alcremie', + 'Falinks', + 'Pincurchin', + 'Snom', + 'Frosmoth', + 'Stonjourner', + 'Eiscue', + 'Indeedee', + 'Morpeko', + 'Cufant', + 'Copperajah', + 'Dracozolt', + 'Arctozolt', + 'Dracovish', + 'Arctovish', + 'Duraludon', + 'Dreepy', + 'Drakloak', + 'Dragapult', + 'Zacian', + 'Zamazenta', + 'Eternatus', + 'Kubfu', + 'Urshifu', + 'Zarude', + 'Lokix-Sevii', + 'Calyrex', + 'Regieleki', + 'Regidrago', + 'Cramorant-Gulping', + 'Cramorant-Gorging', + 'Toxtricity-Low-Key', + 'Koraidon', + 'Miraidon', + 'Frigibax', + 'Arctibax', + 'Baxcalibur', + 'Toedscool', + 'Toedscruel', + 'Nymble-Sevii', + 'Eiscue-Noice', + 'Indeedee-F', + 'Morpeko-Hangry', + 'Zacian-Crowned', + 'Zamazenta-Crowned', + 'Eternatus-Eternamax', + 'Urshifu-Rapid-Strike', + 'Meowth-Galar', + 'Ponyta-Galar', + 'Rapidash-Galar', + 'Slowpoke-Galar', + 'Slowbro-Galar', + "Farfetch'd-Galar", + 'Koffing', + 'Weezing-Galar', + 'Mr. Mime-Galar', + 'Articuno-Galar', + 'Zapdos-Galar', + 'Moltres-Galar', + 'Slowking-Galar', + 'Corsola-Galar', + 'Zigzagoon-Galar', + 'Linoone-Galar', + 'Mime Jr.', + 'Darumaka-Galar', + 'Darmanitan-Galar', + 'Darmanitan-Galar-Zen', + 'Yamask-Galar', + 'Stunfisk-Galar', + 'Iron Thorns', + 'Iron Bundle', + 'Iron Valiant', + 'Butterfree-Mega', + 'Tauros-Paldea-Combat', + 'Tauros-Paldea-Aqua', + 'Machamp-Mega', + 'Great Tusk', + 'Kingler-Mega', + 'Lapras-Mega', + 'Tauros-Paldea-Blaze', + 'Snorlax-Mega', + 'Garbodor-Mega', + 'Brute Bonnet', + 'Sandy Shocks', + 'Scream Tail', + 'Flutter Mane', + 'Iron Moth', + 'Orbeetle-Mega', + 'Drednaw-Mega', + 'Coalossal-Mega', + 'Flapple-Mega', + 'Appletun-Mega', + 'Sandaconda-Mega', + 'Toxtricity-Mega', + 'Slither Wing', + 'Centiskorch-Mega', + 'Roaring Moon', + 'Iron Treads', + 'Alcremie-Mega', + 'Copperajah-Mega', + 'Duraludon', + 'Iron Hands', + 'Iron Jugulis', + 'Calyrex-Ice', + 'Calyrex-Shadow', + 'Spectrier', + 'Glastrier', + 'Basculegion', + 'Braviary-Hisui', + 'Wyrdeer', + 'Growlithe-Hisui', + 'Arcanine-Hisui', + 'Kleavor', + 'Blitzle-Sevii', + 'Zebstrika-Sevii', + 'Doduo-Sevii', + 'Dodrio-Sevii', + 'Teddiursa-Sevii', + 'Ursaring-Sevii', + 'Zorua-Hisui', + 'Zoroark-Hisui', + 'Carnivine-Sevii', + 'Mantyke-Sevii', + 'Mantine-Sevii', + 'Feebas-Sevii', + 'Milotic-Sevii', + 'Clauncher-Sevii', + 'Clawitzer-Sevii', + 'Sizzlipede-Sevii', + 'Centiskorch-Sevii', + 'Centiskorch-Sevii-Mega', + 'Wishiwashi-Sevii', + 'Wishiwashi-Sevii-School', + 'Dhelmise-Sevii', + 'Voltorb-Hisui', + 'Electrode-Hisui', + 'Sliggoo-Hisui', + 'Goodra-Hisui', + 'Typhlosion-Hisui', + 'Samurott-Hisui', + 'Decidueye-Hisui', + 'Ursaluna', + 'Lilligant-Hisui', + 'Sneasel-Hisui', + 'Sneasler', + 'Basculegion-F', + 'Qwilfish-Hisui', + 'Overqwil', + 'Avalugg-Hisui', + 'Dialga-Origin', + 'Palkia-Origin', + 'Enamorus', + 'Enamorus-Therian', + 'Tarountula', + 'Spidops', + 'Nymble', + 'Lokix', + 'Rellor', + 'Rabsca', + 'Flittle', + 'Espathra', + 'Dondozo', + 'Veluza', + 'Smoliv', + 'Dolliv', + 'Arboliva', + 'Capsakid', + 'Scovillain', + 'Orthworm', + 'Tandemaus', + 'Maushold', + 'Cetoddle', + 'Cetitan', + 'Tatsugiri', + 'Wattrel', + 'Kilowattrel', + 'Bombirdier', + 'Squawkabilly', + 'Flamigo', + 'Nacli', + 'Naclstack', + 'Garganacl', + 'Glimmet', + 'Glimmora', + 'Shroodle', + 'Grafaiai', + 'Fidough', + 'Dachsbun', + 'Maschiff', + 'Mabosstiff', + 'Bramblin', + 'Brambleghast', + 'Iron Leaves', + 'Walking Wake', + 'Squawkabilly-White', + 'Ursaluna-Bloodmoon', + 'Ogerpon', + 'Ogerpon-Wellspring', + 'Ogerpon-Hearthflame', + 'Ogerpon-Cornerstone', + 'Poltchageist', + 'Sinistcha', + 'Dipplin', + 'Fezandipiti', + 'Munkidori', + 'Okidogi', + 'Raging Bolt', + 'Iron Crown', + 'Archaludon', + 'Terapagos-Terastal', + 'Hydrapple', + 'Pecharunt', + 'Iron Boulder', + 'Gouging Fire', + 'Chillet', +] + +import { + NationalDexToRadicalRedMap, + RadicalRedToNationalDexEntry, + RadicalRedToNationalDexMap, +} from './RadicalRedSpeciesMap' + +export function fromGen3RRPokemonIndex(radicalRedIndex: number): RadicalRedToNationalDexEntry { + const entry = RadicalRedToNationalDexMap[String(radicalRedIndex)] + if (entry) { + return { + NationalDexIndex: entry.NationalDexIndex, + FormIndex: entry.FormIndex, + } + } else { + throw new Error(`Radical Red index ${radicalRedIndex} not found.`) + } +} + +export function toGen3RRPokemonIndex(nationalDexNumber: number, formIndex: number): number { + const key = `${nationalDexNumber}_${formIndex}` + const radicalRedIndex = globalThis.Number(NationalDexToRadicalRedMap[key]) + if (radicalRedIndex !== undefined) { + return radicalRedIndex + } else { + throw new Error( + `National Dex number ${nationalDexNumber} with form index ${formIndex} not found.` + ) + } +} diff --git a/src/types/SAVTypes/radicalred/conversion/RRTransferMons.ts b/src/types/SAVTypes/radicalred/conversion/RRTransferMons.ts new file mode 100644 index 00000000..182e25b5 --- /dev/null +++ b/src/types/SAVTypes/radicalred/conversion/RRTransferMons.ts @@ -0,0 +1,55 @@ +export const RRTransferMon = [ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, + 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, + 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, + 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, + 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, + 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, + 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, + 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, + 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, + 767, 768, 769, 770, 771, 773, 774, 775, 776, 777, 778, 779, 780, 781, 785, 786, 787, 788, 789, + 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, + 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, + 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, + 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 867, + 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, + 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, + 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, + 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, + 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, + 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, + 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, + 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, + 1021, 1022, 1023, 1024, 1025, +] diff --git a/src/types/SAVTypes/radicalred/conversion/RadicalRedSpeciesMap.ts b/src/types/SAVTypes/radicalred/conversion/RadicalRedSpeciesMap.ts new file mode 100644 index 00000000..e238a7b9 --- /dev/null +++ b/src/types/SAVTypes/radicalred/conversion/RadicalRedSpeciesMap.ts @@ -0,0 +1,5530 @@ +export interface RadicalRedToNationalDexEntry { + NationalDexIndex: number + FormIndex: number +} + +export const RadicalRedToNationalDexMap: Record = { + '0': { + NationalDexIndex: 0, + FormIndex: 0, + }, + '1': { + NationalDexIndex: 1, + FormIndex: 0, + }, + '2': { + NationalDexIndex: 2, + FormIndex: 0, + }, + '3': { + NationalDexIndex: 3, + FormIndex: 0, + }, + '4': { + NationalDexIndex: 4, + FormIndex: 0, + }, + '5': { + NationalDexIndex: 5, + FormIndex: 0, + }, + '6': { + NationalDexIndex: 6, + FormIndex: 0, + }, + '7': { + NationalDexIndex: 7, + FormIndex: 0, + }, + '8': { + NationalDexIndex: 8, + FormIndex: 0, + }, + '9': { + NationalDexIndex: 9, + FormIndex: 0, + }, + '10': { + NationalDexIndex: 10, + FormIndex: 0, + }, + '11': { + NationalDexIndex: 11, + FormIndex: 0, + }, + '12': { + NationalDexIndex: 12, + FormIndex: 0, + }, + '13': { + NationalDexIndex: 13, + FormIndex: 0, + }, + '14': { + NationalDexIndex: 14, + FormIndex: 0, + }, + '15': { + NationalDexIndex: 15, + FormIndex: 0, + }, + '16': { + NationalDexIndex: 16, + FormIndex: 0, + }, + '17': { + NationalDexIndex: 17, + FormIndex: 0, + }, + '18': { + NationalDexIndex: 18, + FormIndex: 0, + }, + '19': { + NationalDexIndex: 19, + FormIndex: 0, + }, + '20': { + NationalDexIndex: 20, + FormIndex: 0, + }, + '21': { + NationalDexIndex: 21, + FormIndex: 0, + }, + '22': { + NationalDexIndex: 22, + FormIndex: 0, + }, + '23': { + NationalDexIndex: 23, + FormIndex: 0, + }, + '24': { + NationalDexIndex: 24, + FormIndex: 0, + }, + '25': { + NationalDexIndex: 25, + FormIndex: 0, + }, + '26': { + NationalDexIndex: 26, + FormIndex: 0, + }, + '27': { + NationalDexIndex: 27, + FormIndex: 0, + }, + '28': { + NationalDexIndex: 28, + FormIndex: 0, + }, + '29': { + NationalDexIndex: 29, + FormIndex: 0, + }, + '30': { + NationalDexIndex: 30, + FormIndex: 0, + }, + '31': { + NationalDexIndex: 31, + FormIndex: 0, + }, + '32': { + NationalDexIndex: 32, + FormIndex: 0, + }, + '33': { + NationalDexIndex: 33, + FormIndex: 0, + }, + '34': { + NationalDexIndex: 34, + FormIndex: 0, + }, + '35': { + NationalDexIndex: 35, + FormIndex: 0, + }, + '36': { + NationalDexIndex: 36, + FormIndex: 0, + }, + '37': { + NationalDexIndex: 37, + FormIndex: 0, + }, + '38': { + NationalDexIndex: 38, + FormIndex: 0, + }, + '39': { + NationalDexIndex: 39, + FormIndex: 0, + }, + '40': { + NationalDexIndex: 40, + FormIndex: 0, + }, + '41': { + NationalDexIndex: 41, + FormIndex: 0, + }, + '42': { + NationalDexIndex: 42, + FormIndex: 0, + }, + '43': { + NationalDexIndex: 43, + FormIndex: 0, + }, + '44': { + NationalDexIndex: 44, + FormIndex: 0, + }, + '45': { + NationalDexIndex: 45, + FormIndex: 0, + }, + '46': { + NationalDexIndex: 46, + FormIndex: 0, + }, + '47': { + NationalDexIndex: 47, + FormIndex: 0, + }, + '48': { + NationalDexIndex: 48, + FormIndex: 0, + }, + '49': { + NationalDexIndex: 49, + FormIndex: 0, + }, + '50': { + NationalDexIndex: 50, + FormIndex: 0, + }, + '51': { + NationalDexIndex: 51, + FormIndex: 0, + }, + '52': { + NationalDexIndex: 52, + FormIndex: 0, + }, + '53': { + NationalDexIndex: 53, + FormIndex: 0, + }, + '54': { + NationalDexIndex: 54, + FormIndex: 0, + }, + '55': { + NationalDexIndex: 55, + FormIndex: 0, + }, + '56': { + NationalDexIndex: 56, + FormIndex: 0, + }, + '57': { + NationalDexIndex: 57, + FormIndex: 0, + }, + '58': { + NationalDexIndex: 58, + FormIndex: 0, + }, + '59': { + NationalDexIndex: 59, + FormIndex: 0, + }, + '60': { + NationalDexIndex: 60, + FormIndex: 0, + }, + '61': { + NationalDexIndex: 61, + FormIndex: 0, + }, + '62': { + NationalDexIndex: 62, + FormIndex: 0, + }, + '63': { + NationalDexIndex: 63, + FormIndex: 0, + }, + '64': { + NationalDexIndex: 64, + FormIndex: 0, + }, + '65': { + NationalDexIndex: 65, + FormIndex: 0, + }, + '66': { + NationalDexIndex: 66, + FormIndex: 0, + }, + '67': { + NationalDexIndex: 67, + FormIndex: 0, + }, + '68': { + NationalDexIndex: 68, + FormIndex: 0, + }, + '69': { + NationalDexIndex: 69, + FormIndex: 0, + }, + '70': { + NationalDexIndex: 70, + FormIndex: 0, + }, + '71': { + NationalDexIndex: 71, + FormIndex: 0, + }, + '72': { + NationalDexIndex: 72, + FormIndex: 0, + }, + '73': { + NationalDexIndex: 73, + FormIndex: 0, + }, + '74': { + NationalDexIndex: 74, + FormIndex: 0, + }, + '75': { + NationalDexIndex: 75, + FormIndex: 0, + }, + '76': { + NationalDexIndex: 76, + FormIndex: 0, + }, + '77': { + NationalDexIndex: 77, + FormIndex: 0, + }, + '78': { + NationalDexIndex: 78, + FormIndex: 0, + }, + '79': { + NationalDexIndex: 79, + FormIndex: 0, + }, + '80': { + NationalDexIndex: 80, + FormIndex: 0, + }, + '81': { + NationalDexIndex: 81, + FormIndex: 0, + }, + '82': { + NationalDexIndex: 82, + FormIndex: 0, + }, + '83': { + NationalDexIndex: 83, + FormIndex: 0, + }, + '84': { + NationalDexIndex: 84, + FormIndex: 0, + }, + '85': { + NationalDexIndex: 85, + FormIndex: 0, + }, + '86': { + NationalDexIndex: 86, + FormIndex: 0, + }, + '87': { + NationalDexIndex: 87, + FormIndex: 0, + }, + '88': { + NationalDexIndex: 88, + FormIndex: 0, + }, + '89': { + NationalDexIndex: 89, + FormIndex: 0, + }, + '90': { + NationalDexIndex: 90, + FormIndex: 0, + }, + '91': { + NationalDexIndex: 91, + FormIndex: 0, + }, + '92': { + NationalDexIndex: 92, + FormIndex: 0, + }, + '93': { + NationalDexIndex: 93, + FormIndex: 0, + }, + '94': { + NationalDexIndex: 94, + FormIndex: 0, + }, + '95': { + NationalDexIndex: 95, + FormIndex: 0, + }, + '96': { + NationalDexIndex: 96, + FormIndex: 0, + }, + '97': { + NationalDexIndex: 97, + FormIndex: 0, + }, + '98': { + NationalDexIndex: 98, + FormIndex: 0, + }, + '99': { + NationalDexIndex: 99, + FormIndex: 0, + }, + '100': { + NationalDexIndex: 100, + FormIndex: 0, + }, + '101': { + NationalDexIndex: 101, + FormIndex: 0, + }, + '102': { + NationalDexIndex: 102, + FormIndex: 0, + }, + '103': { + NationalDexIndex: 103, + FormIndex: 0, + }, + '104': { + NationalDexIndex: 104, + FormIndex: 0, + }, + '105': { + NationalDexIndex: 105, + FormIndex: 0, + }, + '106': { + NationalDexIndex: 106, + FormIndex: 0, + }, + '107': { + NationalDexIndex: 107, + FormIndex: 0, + }, + '108': { + NationalDexIndex: 108, + FormIndex: 0, + }, + '109': { + NationalDexIndex: 109, + FormIndex: 0, + }, + '110': { + NationalDexIndex: 110, + FormIndex: 0, + }, + '111': { + NationalDexIndex: 111, + FormIndex: 0, + }, + '112': { + NationalDexIndex: 112, + FormIndex: 0, + }, + '113': { + NationalDexIndex: 113, + FormIndex: 0, + }, + '114': { + NationalDexIndex: 114, + FormIndex: 0, + }, + '115': { + NationalDexIndex: 115, + FormIndex: 0, + }, + '116': { + NationalDexIndex: 116, + FormIndex: 0, + }, + '117': { + NationalDexIndex: 117, + FormIndex: 0, + }, + '118': { + NationalDexIndex: 118, + FormIndex: 0, + }, + '119': { + NationalDexIndex: 119, + FormIndex: 0, + }, + '120': { + NationalDexIndex: 120, + FormIndex: 0, + }, + '121': { + NationalDexIndex: 121, + FormIndex: 0, + }, + '122': { + NationalDexIndex: 122, + FormIndex: 122, + }, + '123': { + NationalDexIndex: 123, + FormIndex: 0, + }, + '124': { + NationalDexIndex: 124, + FormIndex: 0, + }, + '125': { + NationalDexIndex: 125, + FormIndex: 0, + }, + '126': { + NationalDexIndex: 126, + FormIndex: 0, + }, + '127': { + NationalDexIndex: 127, + FormIndex: 0, + }, + '128': { + NationalDexIndex: 128, + FormIndex: 0, + }, + '129': { + NationalDexIndex: 129, + FormIndex: 0, + }, + '130': { + NationalDexIndex: 130, + FormIndex: 0, + }, + '131': { + NationalDexIndex: 131, + FormIndex: 0, + }, + '132': { + NationalDexIndex: 132, + FormIndex: 0, + }, + '133': { + NationalDexIndex: 133, + FormIndex: 0, + }, + '134': { + NationalDexIndex: 134, + FormIndex: 0, + }, + '135': { + NationalDexIndex: 135, + FormIndex: 0, + }, + '136': { + NationalDexIndex: 136, + FormIndex: 0, + }, + '137': { + NationalDexIndex: 137, + FormIndex: 0, + }, + '138': { + NationalDexIndex: 138, + FormIndex: 0, + }, + '139': { + NationalDexIndex: 139, + FormIndex: 0, + }, + '140': { + NationalDexIndex: 140, + FormIndex: 0, + }, + '141': { + NationalDexIndex: 141, + FormIndex: 0, + }, + '142': { + NationalDexIndex: 142, + FormIndex: 0, + }, + '143': { + NationalDexIndex: 143, + FormIndex: 0, + }, + '144': { + NationalDexIndex: 144, + FormIndex: 0, + }, + '145': { + NationalDexIndex: 145, + FormIndex: 0, + }, + '146': { + NationalDexIndex: 146, + FormIndex: 0, + }, + '147': { + NationalDexIndex: 147, + FormIndex: 0, + }, + '148': { + NationalDexIndex: 148, + FormIndex: 0, + }, + '149': { + NationalDexIndex: 149, + FormIndex: 0, + }, + '150': { + NationalDexIndex: 150, + FormIndex: 0, + }, + '151': { + NationalDexIndex: 151, + FormIndex: 0, + }, + '152': { + NationalDexIndex: 152, + FormIndex: 0, + }, + '153': { + NationalDexIndex: 153, + FormIndex: 0, + }, + '154': { + NationalDexIndex: 154, + FormIndex: 0, + }, + '155': { + NationalDexIndex: 155, + FormIndex: 0, + }, + '156': { + NationalDexIndex: 156, + FormIndex: 0, + }, + '157': { + NationalDexIndex: 157, + FormIndex: 0, + }, + '158': { + NationalDexIndex: 158, + FormIndex: 0, + }, + '159': { + NationalDexIndex: 159, + FormIndex: 0, + }, + '160': { + NationalDexIndex: 160, + FormIndex: 0, + }, + '161': { + NationalDexIndex: 161, + FormIndex: 0, + }, + '162': { + NationalDexIndex: 162, + FormIndex: 0, + }, + '163': { + NationalDexIndex: 163, + FormIndex: 0, + }, + '164': { + NationalDexIndex: 164, + FormIndex: 0, + }, + '165': { + NationalDexIndex: 165, + FormIndex: 0, + }, + '166': { + NationalDexIndex: 166, + FormIndex: 0, + }, + '167': { + NationalDexIndex: 167, + FormIndex: 0, + }, + '168': { + NationalDexIndex: 168, + FormIndex: 0, + }, + '169': { + NationalDexIndex: 169, + FormIndex: 0, + }, + '170': { + NationalDexIndex: 170, + FormIndex: 0, + }, + '171': { + NationalDexIndex: 171, + FormIndex: 0, + }, + '172': { + NationalDexIndex: 172, + FormIndex: 0, + }, + '173': { + NationalDexIndex: 173, + FormIndex: 0, + }, + '174': { + NationalDexIndex: 174, + FormIndex: 0, + }, + '175': { + NationalDexIndex: 175, + FormIndex: 0, + }, + '176': { + NationalDexIndex: 176, + FormIndex: 0, + }, + '177': { + NationalDexIndex: 177, + FormIndex: 0, + }, + '178': { + NationalDexIndex: 178, + FormIndex: 0, + }, + '179': { + NationalDexIndex: 179, + FormIndex: 0, + }, + '180': { + NationalDexIndex: 180, + FormIndex: 0, + }, + '181': { + NationalDexIndex: 181, + FormIndex: 0, + }, + '182': { + NationalDexIndex: 182, + FormIndex: 0, + }, + '183': { + NationalDexIndex: 183, + FormIndex: 0, + }, + '184': { + NationalDexIndex: 184, + FormIndex: 0, + }, + '185': { + NationalDexIndex: 185, + FormIndex: 0, + }, + '186': { + NationalDexIndex: 186, + FormIndex: 0, + }, + '187': { + NationalDexIndex: 187, + FormIndex: 0, + }, + '188': { + NationalDexIndex: 188, + FormIndex: 0, + }, + '189': { + NationalDexIndex: 189, + FormIndex: 0, + }, + '190': { + NationalDexIndex: 190, + FormIndex: 0, + }, + '191': { + NationalDexIndex: 191, + FormIndex: 0, + }, + '192': { + NationalDexIndex: 192, + FormIndex: 0, + }, + '193': { + NationalDexIndex: 193, + FormIndex: 0, + }, + '194': { + NationalDexIndex: 194, + FormIndex: 0, + }, + '195': { + NationalDexIndex: 195, + FormIndex: 0, + }, + '196': { + NationalDexIndex: 196, + FormIndex: 0, + }, + '197': { + NationalDexIndex: 197, + FormIndex: 0, + }, + '198': { + NationalDexIndex: 198, + FormIndex: 0, + }, + '199': { + NationalDexIndex: 199, + FormIndex: 0, + }, + '200': { + NationalDexIndex: 200, + FormIndex: 0, + }, + '201': { + NationalDexIndex: 201, + FormIndex: 0, + }, + '202': { + NationalDexIndex: 202, + FormIndex: 0, + }, + '203': { + NationalDexIndex: 203, + FormIndex: 0, + }, + '204': { + NationalDexIndex: 204, + FormIndex: 0, + }, + '205': { + NationalDexIndex: 205, + FormIndex: 0, + }, + '206': { + NationalDexIndex: 206, + FormIndex: 0, + }, + '207': { + NationalDexIndex: 207, + FormIndex: 0, + }, + '208': { + NationalDexIndex: 208, + FormIndex: 0, + }, + '209': { + NationalDexIndex: 209, + FormIndex: 0, + }, + '210': { + NationalDexIndex: 210, + FormIndex: 0, + }, + '211': { + NationalDexIndex: 211, + FormIndex: 0, + }, + '212': { + NationalDexIndex: 212, + FormIndex: 0, + }, + '213': { + NationalDexIndex: 213, + FormIndex: 0, + }, + '214': { + NationalDexIndex: 214, + FormIndex: 0, + }, + '215': { + NationalDexIndex: 215, + FormIndex: 0, + }, + '216': { + NationalDexIndex: 216, + FormIndex: 0, + }, + '217': { + NationalDexIndex: 217, + FormIndex: 0, + }, + '218': { + NationalDexIndex: 218, + FormIndex: 0, + }, + '219': { + NationalDexIndex: 219, + FormIndex: 0, + }, + '220': { + NationalDexIndex: 220, + FormIndex: 0, + }, + '221': { + NationalDexIndex: 221, + FormIndex: 0, + }, + '222': { + NationalDexIndex: 222, + FormIndex: 0, + }, + '223': { + NationalDexIndex: 223, + FormIndex: 0, + }, + '224': { + NationalDexIndex: 224, + FormIndex: 0, + }, + '225': { + NationalDexIndex: 225, + FormIndex: 0, + }, + '226': { + NationalDexIndex: 226, + FormIndex: 0, + }, + '227': { + NationalDexIndex: 227, + FormIndex: 0, + }, + '228': { + NationalDexIndex: 228, + FormIndex: 0, + }, + '229': { + NationalDexIndex: 229, + FormIndex: 0, + }, + '230': { + NationalDexIndex: 230, + FormIndex: 0, + }, + '231': { + NationalDexIndex: 231, + FormIndex: 0, + }, + '232': { + NationalDexIndex: 232, + FormIndex: 0, + }, + '233': { + NationalDexIndex: 233, + FormIndex: 0, + }, + '234': { + NationalDexIndex: 234, + FormIndex: 0, + }, + '235': { + NationalDexIndex: 235, + FormIndex: 0, + }, + '236': { + NationalDexIndex: 236, + FormIndex: 0, + }, + '237': { + NationalDexIndex: 237, + FormIndex: 0, + }, + '238': { + NationalDexIndex: 238, + FormIndex: 0, + }, + '239': { + NationalDexIndex: 239, + FormIndex: 0, + }, + '240': { + NationalDexIndex: 240, + FormIndex: 0, + }, + '241': { + NationalDexIndex: 241, + FormIndex: 0, + }, + '242': { + NationalDexIndex: 242, + FormIndex: 0, + }, + '243': { + NationalDexIndex: 243, + FormIndex: 0, + }, + '244': { + NationalDexIndex: 244, + FormIndex: 0, + }, + '245': { + NationalDexIndex: 245, + FormIndex: 0, + }, + '246': { + NationalDexIndex: 246, + FormIndex: 0, + }, + '247': { + NationalDexIndex: 247, + FormIndex: 0, + }, + '248': { + NationalDexIndex: 248, + FormIndex: 0, + }, + '249': { + NationalDexIndex: 249, + FormIndex: 0, + }, + '250': { + NationalDexIndex: 250, + FormIndex: 250, + }, + '251': { + NationalDexIndex: 251, + FormIndex: 0, + }, + '252': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '253': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '254': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '255': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '256': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '257': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '258': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '259': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '260': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '261': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '262': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '263': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '264': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '265': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '266': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '267': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '268': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '269': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '270': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '271': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '272': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '273': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '274': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '275': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '276': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '277': { + NationalDexIndex: 252, + FormIndex: 0, + }, + '278': { + NationalDexIndex: 253, + FormIndex: 0, + }, + '279': { + NationalDexIndex: 254, + FormIndex: 0, + }, + '280': { + NationalDexIndex: 255, + FormIndex: 0, + }, + '281': { + NationalDexIndex: 256, + FormIndex: 0, + }, + '282': { + NationalDexIndex: 257, + FormIndex: 0, + }, + '283': { + NationalDexIndex: 258, + FormIndex: 0, + }, + '284': { + NationalDexIndex: 259, + FormIndex: 0, + }, + '285': { + NationalDexIndex: 260, + FormIndex: 0, + }, + '286': { + NationalDexIndex: 261, + FormIndex: 0, + }, + '287': { + NationalDexIndex: 262, + FormIndex: 0, + }, + '288': { + NationalDexIndex: 263, + FormIndex: 0, + }, + '289': { + NationalDexIndex: 264, + FormIndex: 0, + }, + '290': { + NationalDexIndex: 265, + FormIndex: 0, + }, + '291': { + NationalDexIndex: 266, + FormIndex: 0, + }, + '292': { + NationalDexIndex: 267, + FormIndex: 0, + }, + '293': { + NationalDexIndex: 268, + FormIndex: 0, + }, + '294': { + NationalDexIndex: 269, + FormIndex: 0, + }, + '295': { + NationalDexIndex: 270, + FormIndex: 0, + }, + '296': { + NationalDexIndex: 271, + FormIndex: 0, + }, + '297': { + NationalDexIndex: 272, + FormIndex: 0, + }, + '298': { + NationalDexIndex: 273, + FormIndex: 0, + }, + '299': { + NationalDexIndex: 274, + FormIndex: 0, + }, + '300': { + NationalDexIndex: 275, + FormIndex: 0, + }, + '301': { + NationalDexIndex: 290, + FormIndex: 0, + }, + '302': { + NationalDexIndex: 291, + FormIndex: 0, + }, + '303': { + NationalDexIndex: 292, + FormIndex: 0, + }, + '304': { + NationalDexIndex: 276, + FormIndex: 0, + }, + '305': { + NationalDexIndex: 277, + FormIndex: 0, + }, + '306': { + NationalDexIndex: 285, + FormIndex: 0, + }, + '307': { + NationalDexIndex: 286, + FormIndex: 0, + }, + '308': { + NationalDexIndex: 327, + FormIndex: 0, + }, + '309': { + NationalDexIndex: 278, + FormIndex: 0, + }, + '310': { + NationalDexIndex: 279, + FormIndex: 0, + }, + '311': { + NationalDexIndex: 283, + FormIndex: 0, + }, + '312': { + NationalDexIndex: 284, + FormIndex: 0, + }, + '313': { + NationalDexIndex: 320, + FormIndex: 0, + }, + '314': { + NationalDexIndex: 321, + FormIndex: 0, + }, + '315': { + NationalDexIndex: 300, + FormIndex: 0, + }, + '316': { + NationalDexIndex: 301, + FormIndex: 0, + }, + '317': { + NationalDexIndex: 352, + FormIndex: 0, + }, + '318': { + NationalDexIndex: 343, + FormIndex: 0, + }, + '319': { + NationalDexIndex: 344, + FormIndex: 0, + }, + '320': { + NationalDexIndex: 299, + FormIndex: 0, + }, + '321': { + NationalDexIndex: 324, + FormIndex: 0, + }, + '322': { + NationalDexIndex: 302, + FormIndex: 0, + }, + '323': { + NationalDexIndex: 339, + FormIndex: 0, + }, + '324': { + NationalDexIndex: 340, + FormIndex: 0, + }, + '325': { + NationalDexIndex: 370, + FormIndex: 0, + }, + '326': { + NationalDexIndex: 341, + FormIndex: 0, + }, + '327': { + NationalDexIndex: 342, + FormIndex: 0, + }, + '328': { + NationalDexIndex: 349, + FormIndex: 0, + }, + '329': { + NationalDexIndex: 350, + FormIndex: 0, + }, + '330': { + NationalDexIndex: 318, + FormIndex: 0, + }, + '331': { + NationalDexIndex: 319, + FormIndex: 0, + }, + '332': { + NationalDexIndex: 328, + FormIndex: 0, + }, + '333': { + NationalDexIndex: 329, + FormIndex: 0, + }, + '334': { + NationalDexIndex: 330, + FormIndex: 0, + }, + '335': { + NationalDexIndex: 296, + FormIndex: 0, + }, + '336': { + NationalDexIndex: 297, + FormIndex: 0, + }, + '337': { + NationalDexIndex: 309, + FormIndex: 0, + }, + '338': { + NationalDexIndex: 310, + FormIndex: 0, + }, + '339': { + NationalDexIndex: 322, + FormIndex: 0, + }, + '340': { + NationalDexIndex: 323, + FormIndex: 0, + }, + '341': { + NationalDexIndex: 363, + FormIndex: 0, + }, + '342': { + NationalDexIndex: 364, + FormIndex: 0, + }, + '343': { + NationalDexIndex: 365, + FormIndex: 0, + }, + '344': { + NationalDexIndex: 331, + FormIndex: 0, + }, + '345': { + NationalDexIndex: 332, + FormIndex: 0, + }, + '346': { + NationalDexIndex: 361, + FormIndex: 0, + }, + '347': { + NationalDexIndex: 362, + FormIndex: 0, + }, + '348': { + NationalDexIndex: 337, + FormIndex: 0, + }, + '349': { + NationalDexIndex: 338, + FormIndex: 0, + }, + '350': { + NationalDexIndex: 298, + FormIndex: 0, + }, + '351': { + NationalDexIndex: 325, + FormIndex: 0, + }, + '352': { + NationalDexIndex: 326, + FormIndex: 0, + }, + '353': { + NationalDexIndex: 311, + FormIndex: 0, + }, + '354': { + NationalDexIndex: 312, + FormIndex: 0, + }, + '355': { + NationalDexIndex: 303, + FormIndex: 0, + }, + '356': { + NationalDexIndex: 307, + FormIndex: 0, + }, + '357': { + NationalDexIndex: 308, + FormIndex: 0, + }, + '358': { + NationalDexIndex: 333, + FormIndex: 0, + }, + '359': { + NationalDexIndex: 334, + FormIndex: 0, + }, + '360': { + NationalDexIndex: 360, + FormIndex: 0, + }, + '361': { + NationalDexIndex: 355, + FormIndex: 0, + }, + '362': { + NationalDexIndex: 356, + FormIndex: 0, + }, + '363': { + NationalDexIndex: 315, + FormIndex: 0, + }, + '364': { + NationalDexIndex: 287, + FormIndex: 0, + }, + '365': { + NationalDexIndex: 288, + FormIndex: 0, + }, + '366': { + NationalDexIndex: 289, + FormIndex: 0, + }, + '367': { + NationalDexIndex: 316, + FormIndex: 0, + }, + '368': { + NationalDexIndex: 317, + FormIndex: 0, + }, + '369': { + NationalDexIndex: 357, + FormIndex: 0, + }, + '370': { + NationalDexIndex: 293, + FormIndex: 0, + }, + '371': { + NationalDexIndex: 294, + FormIndex: 0, + }, + '372': { + NationalDexIndex: 295, + FormIndex: 0, + }, + '373': { + NationalDexIndex: 366, + FormIndex: 0, + }, + '374': { + NationalDexIndex: 367, + FormIndex: 0, + }, + '375': { + NationalDexIndex: 368, + FormIndex: 0, + }, + '376': { + NationalDexIndex: 359, + FormIndex: 0, + }, + '377': { + NationalDexIndex: 353, + FormIndex: 0, + }, + '378': { + NationalDexIndex: 354, + FormIndex: 0, + }, + '379': { + NationalDexIndex: 336, + FormIndex: 0, + }, + '380': { + NationalDexIndex: 335, + FormIndex: 0, + }, + '381': { + NationalDexIndex: 369, + FormIndex: 0, + }, + '382': { + NationalDexIndex: 304, + FormIndex: 0, + }, + '383': { + NationalDexIndex: 305, + FormIndex: 0, + }, + '384': { + NationalDexIndex: 306, + FormIndex: 0, + }, + '385': { + NationalDexIndex: 351, + FormIndex: 0, + }, + '386': { + NationalDexIndex: 313, + FormIndex: 0, + }, + '387': { + NationalDexIndex: 314, + FormIndex: 0, + }, + '388': { + NationalDexIndex: 345, + FormIndex: 0, + }, + '389': { + NationalDexIndex: 346, + FormIndex: 0, + }, + '390': { + NationalDexIndex: 347, + FormIndex: 0, + }, + '391': { + NationalDexIndex: 348, + FormIndex: 0, + }, + '392': { + NationalDexIndex: 280, + FormIndex: 0, + }, + '393': { + NationalDexIndex: 281, + FormIndex: 0, + }, + '394': { + NationalDexIndex: 282, + FormIndex: 0, + }, + '395': { + NationalDexIndex: 371, + FormIndex: 0, + }, + '396': { + NationalDexIndex: 372, + FormIndex: 0, + }, + '397': { + NationalDexIndex: 373, + FormIndex: 0, + }, + '398': { + NationalDexIndex: 374, + FormIndex: 0, + }, + '399': { + NationalDexIndex: 375, + FormIndex: 0, + }, + '400': { + NationalDexIndex: 376, + FormIndex: 0, + }, + '401': { + NationalDexIndex: 377, + FormIndex: 0, + }, + '402': { + NationalDexIndex: 378, + FormIndex: 0, + }, + '403': { + NationalDexIndex: 379, + FormIndex: 0, + }, + '404': { + NationalDexIndex: 382, + FormIndex: 0, + }, + '405': { + NationalDexIndex: 383, + FormIndex: 0, + }, + '406': { + NationalDexIndex: 384, + FormIndex: 0, + }, + '407': { + NationalDexIndex: 380, + FormIndex: 0, + }, + '408': { + NationalDexIndex: 381, + FormIndex: 0, + }, + '409': { + NationalDexIndex: 385, + FormIndex: 0, + }, + '410': { + NationalDexIndex: 386, + FormIndex: 0, + }, + '411': { + NationalDexIndex: 358, + FormIndex: 0, + }, + '412': { + // Bad Egg + NationalDexIndex: -1, + FormIndex: -1, + }, + '413': { + NationalDexIndex: 201, + FormIndex: 1, + }, + '414': { + NationalDexIndex: 201, + FormIndex: 2, + }, + '415': { + NationalDexIndex: 201, + FormIndex: 3, + }, + '416': { + NationalDexIndex: 201, + FormIndex: 4, + }, + '417': { + NationalDexIndex: 201, + FormIndex: 5, + }, + '418': { + NationalDexIndex: 201, + FormIndex: 6, + }, + '419': { + NationalDexIndex: 201, + FormIndex: 7, + }, + '420': { + NationalDexIndex: 201, + FormIndex: 8, + }, + '421': { + NationalDexIndex: 201, + FormIndex: 9, + }, + '422': { + NationalDexIndex: 201, + FormIndex: 10, + }, + '423': { + NationalDexIndex: 201, + FormIndex: 11, + }, + '424': { + NationalDexIndex: 201, + FormIndex: 12, + }, + '425': { + NationalDexIndex: 201, + FormIndex: 13, + }, + '426': { + NationalDexIndex: 201, + FormIndex: 14, + }, + '427': { + NationalDexIndex: 201, + FormIndex: 15, + }, + '428': { + NationalDexIndex: 201, + FormIndex: 16, + }, + '429': { + NationalDexIndex: 201, + FormIndex: 17, + }, + '430': { + NationalDexIndex: 201, + FormIndex: 18, + }, + '431': { + NationalDexIndex: 201, + FormIndex: 19, + }, + '432': { + NationalDexIndex: 201, + FormIndex: 20, + }, + '433': { + NationalDexIndex: 201, + FormIndex: 21, + }, + '434': { + NationalDexIndex: 201, + FormIndex: 22, + }, + '435': { + NationalDexIndex: 201, + FormIndex: 23, + }, + '436': { + NationalDexIndex: 201, + FormIndex: 24, + }, + '437': { + NationalDexIndex: 201, + FormIndex: 25, + }, + '438': { + NationalDexIndex: 201, + FormIndex: 26, + }, + '439': { + NationalDexIndex: 201, + FormIndex: 0, + }, + '440': { + NationalDexIndex: 387, + FormIndex: 0, + }, + '441': { + NationalDexIndex: 388, + FormIndex: 0, + }, + '442': { + NationalDexIndex: 389, + FormIndex: 0, + }, + '443': { + NationalDexIndex: 390, + FormIndex: 0, + }, + '444': { + NationalDexIndex: 391, + FormIndex: 0, + }, + '445': { + NationalDexIndex: 392, + FormIndex: 0, + }, + '446': { + NationalDexIndex: 393, + FormIndex: 0, + }, + '447': { + NationalDexIndex: 394, + FormIndex: 0, + }, + '448': { + NationalDexIndex: 395, + FormIndex: 0, + }, + '449': { + NationalDexIndex: 396, + FormIndex: 0, + }, + '450': { + NationalDexIndex: 397, + FormIndex: 0, + }, + '451': { + NationalDexIndex: 398, + FormIndex: 0, + }, + '452': { + NationalDexIndex: 399, + FormIndex: 0, + }, + '453': { + NationalDexIndex: 400, + FormIndex: 0, + }, + '454': { + NationalDexIndex: 401, + FormIndex: 0, + }, + '455': { + NationalDexIndex: 402, + FormIndex: 0, + }, + '456': { + NationalDexIndex: 403, + FormIndex: 0, + }, + '457': { + NationalDexIndex: 404, + FormIndex: 0, + }, + '458': { + NationalDexIndex: 405, + FormIndex: 0, + }, + '459': { + NationalDexIndex: 406, + FormIndex: 0, + }, + '460': { + NationalDexIndex: 407, + FormIndex: 0, + }, + '461': { + NationalDexIndex: 408, + FormIndex: 0, + }, + '462': { + NationalDexIndex: 409, + FormIndex: 0, + }, + '463': { + NationalDexIndex: 410, + FormIndex: 0, + }, + '464': { + NationalDexIndex: 411, + FormIndex: 0, + }, + '465': { + NationalDexIndex: 412, + FormIndex: 0, + }, + '466': { + NationalDexIndex: 413, + FormIndex: 0, + }, + '467': { + NationalDexIndex: 414, + FormIndex: 0, + }, + '468': { + NationalDexIndex: 415, + FormIndex: 0, + }, + '469': { + NationalDexIndex: 416, + FormIndex: 0, + }, + '470': { + NationalDexIndex: 417, + FormIndex: 0, + }, + '471': { + NationalDexIndex: 418, + FormIndex: 0, + }, + '472': { + NationalDexIndex: 419, + FormIndex: 0, + }, + '473': { + NationalDexIndex: 420, + FormIndex: 0, + }, + '474': { + NationalDexIndex: 421, + FormIndex: 0, + }, + '475': { + NationalDexIndex: 422, + FormIndex: 0, + }, + '476': { + NationalDexIndex: 423, + FormIndex: 0, + }, + '477': { + NationalDexIndex: 424, + FormIndex: 0, + }, + '478': { + NationalDexIndex: 425, + FormIndex: 0, + }, + '479': { + NationalDexIndex: 426, + FormIndex: 0, + }, + '480': { + NationalDexIndex: 427, + FormIndex: 0, + }, + '481': { + NationalDexIndex: 428, + FormIndex: 0, + }, + '482': { + NationalDexIndex: 429, + FormIndex: 0, + }, + '483': { + NationalDexIndex: 430, + FormIndex: 0, + }, + '484': { + NationalDexIndex: 431, + FormIndex: 0, + }, + '485': { + NationalDexIndex: 432, + FormIndex: 0, + }, + '486': { + NationalDexIndex: 433, + FormIndex: 0, + }, + '487': { + NationalDexIndex: 434, + FormIndex: 0, + }, + '488': { + NationalDexIndex: 435, + FormIndex: 0, + }, + '489': { + NationalDexIndex: 436, + FormIndex: 0, + }, + '490': { + NationalDexIndex: 437, + FormIndex: 0, + }, + '491': { + NationalDexIndex: 438, + FormIndex: 0, + }, + '492': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '493': { + NationalDexIndex: 440, + FormIndex: 0, + }, + '494': { + NationalDexIndex: 441, + FormIndex: 0, + }, + '495': { + NationalDexIndex: 442, + FormIndex: 0, + }, + '496': { + NationalDexIndex: 443, + FormIndex: 0, + }, + '497': { + NationalDexIndex: 444, + FormIndex: 0, + }, + '498': { + NationalDexIndex: 445, + FormIndex: 0, + }, + '499': { + NationalDexIndex: 446, + FormIndex: 0, + }, + '500': { + NationalDexIndex: 447, + FormIndex: 0, + }, + '501': { + NationalDexIndex: 448, + FormIndex: 0, + }, + '502': { + NationalDexIndex: 449, + FormIndex: 0, + }, + '503': { + NationalDexIndex: 450, + FormIndex: 0, + }, + '504': { + NationalDexIndex: 451, + FormIndex: 0, + }, + '505': { + NationalDexIndex: 452, + FormIndex: 0, + }, + '506': { + NationalDexIndex: 453, + FormIndex: 0, + }, + '507': { + NationalDexIndex: 454, + FormIndex: 0, + }, + '508': { + NationalDexIndex: 455, + FormIndex: 0, + }, + '509': { + NationalDexIndex: 456, + FormIndex: 0, + }, + '510': { + NationalDexIndex: 457, + FormIndex: 0, + }, + '511': { + NationalDexIndex: 458, + FormIndex: 0, + }, + '512': { + NationalDexIndex: 459, + FormIndex: 0, + }, + '513': { + NationalDexIndex: 460, + FormIndex: 0, + }, + '514': { + NationalDexIndex: 461, + FormIndex: 0, + }, + '515': { + NationalDexIndex: 462, + FormIndex: 0, + }, + '516': { + NationalDexIndex: 463, + FormIndex: 0, + }, + '517': { + NationalDexIndex: 464, + FormIndex: 0, + }, + '518': { + NationalDexIndex: 465, + FormIndex: 0, + }, + '519': { + NationalDexIndex: 466, + FormIndex: 0, + }, + '520': { + NationalDexIndex: 467, + FormIndex: 0, + }, + '521': { + NationalDexIndex: 468, + FormIndex: 0, + }, + '522': { + NationalDexIndex: 469, + FormIndex: 0, + }, + '523': { + NationalDexIndex: 470, + FormIndex: 0, + }, + '524': { + NationalDexIndex: 471, + FormIndex: 0, + }, + '525': { + NationalDexIndex: 472, + FormIndex: 0, + }, + '526': { + NationalDexIndex: 473, + FormIndex: 0, + }, + '527': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '528': { + NationalDexIndex: 475, + FormIndex: 0, + }, + '529': { + NationalDexIndex: 476, + FormIndex: 0, + }, + '530': { + NationalDexIndex: 477, + FormIndex: 0, + }, + '531': { + NationalDexIndex: 478, + FormIndex: 0, + }, + '532': { + NationalDexIndex: 479, + FormIndex: 0, + }, + '533': { + NationalDexIndex: 480, + FormIndex: 0, + }, + '534': { + NationalDexIndex: 481, + FormIndex: 0, + }, + '535': { + NationalDexIndex: 482, + FormIndex: 0, + }, + '536': { + NationalDexIndex: 483, + FormIndex: 0, + }, + '537': { + NationalDexIndex: 484, + FormIndex: 0, + }, + '538': { + NationalDexIndex: 485, + FormIndex: 0, + }, + '539': { + NationalDexIndex: 486, + FormIndex: 0, + }, + '540': { + NationalDexIndex: 487, + FormIndex: 0, + }, + '541': { + NationalDexIndex: 488, + FormIndex: 0, + }, + '542': { + NationalDexIndex: 489, + FormIndex: 0, + }, + '543': { + NationalDexIndex: 490, + FormIndex: 0, + }, + '544': { + NationalDexIndex: 491, + FormIndex: 0, + }, + '545': { + NationalDexIndex: 492, + FormIndex: 0, + }, + '546': { + NationalDexIndex: 493, + FormIndex: 0, + }, + '547': { + NationalDexIndex: 494, + FormIndex: 0, + }, + '548': { + NationalDexIndex: 495, + FormIndex: 0, + }, + '549': { + NationalDexIndex: 496, + FormIndex: 0, + }, + '550': { + NationalDexIndex: 497, + FormIndex: 0, + }, + '551': { + NationalDexIndex: 498, + FormIndex: 0, + }, + '552': { + NationalDexIndex: 499, + FormIndex: 0, + }, + '553': { + NationalDexIndex: 500, + FormIndex: 0, + }, + '554': { + NationalDexIndex: 501, + FormIndex: 0, + }, + '555': { + NationalDexIndex: 502, + FormIndex: 0, + }, + '556': { + NationalDexIndex: 503, + FormIndex: 0, + }, + '557': { + NationalDexIndex: 504, + FormIndex: 0, + }, + '558': { + NationalDexIndex: 505, + FormIndex: 0, + }, + '559': { + NationalDexIndex: 506, + FormIndex: 0, + }, + '560': { + NationalDexIndex: 507, + FormIndex: 0, + }, + '561': { + NationalDexIndex: 508, + FormIndex: 0, + }, + '562': { + NationalDexIndex: 509, + FormIndex: 0, + }, + '563': { + NationalDexIndex: 510, + FormIndex: 0, + }, + '564': { + NationalDexIndex: 511, + FormIndex: 0, + }, + '565': { + NationalDexIndex: 512, + FormIndex: 0, + }, + '566': { + NationalDexIndex: 513, + FormIndex: 0, + }, + '567': { + NationalDexIndex: 514, + FormIndex: 0, + }, + '568': { + NationalDexIndex: 515, + FormIndex: 0, + }, + '569': { + NationalDexIndex: 516, + FormIndex: 0, + }, + '570': { + NationalDexIndex: 517, + FormIndex: 0, + }, + '571': { + NationalDexIndex: 518, + FormIndex: 0, + }, + '572': { + NationalDexIndex: 519, + FormIndex: 0, + }, + '573': { + NationalDexIndex: 520, + FormIndex: 0, + }, + '574': { + NationalDexIndex: 521, + FormIndex: 0, + }, + '575': { + NationalDexIndex: 522, + FormIndex: 0, + }, + '576': { + NationalDexIndex: 523, + FormIndex: 0, + }, + '577': { + NationalDexIndex: 524, + FormIndex: 0, + }, + '578': { + NationalDexIndex: 525, + FormIndex: 0, + }, + '579': { + NationalDexIndex: 526, + FormIndex: 0, + }, + '580': { + NationalDexIndex: 527, + FormIndex: 0, + }, + '581': { + NationalDexIndex: 528, + FormIndex: 0, + }, + '582': { + NationalDexIndex: 529, + FormIndex: 0, + }, + '583': { + NationalDexIndex: 530, + FormIndex: 0, + }, + '584': { + NationalDexIndex: 531, + FormIndex: 0, + }, + '585': { + NationalDexIndex: 532, + FormIndex: 0, + }, + '586': { + NationalDexIndex: 533, + FormIndex: 0, + }, + '587': { + NationalDexIndex: 534, + FormIndex: 0, + }, + '588': { + NationalDexIndex: 535, + FormIndex: 0, + }, + '589': { + NationalDexIndex: 536, + FormIndex: 0, + }, + '590': { + NationalDexIndex: 537, + FormIndex: 0, + }, + '591': { + NationalDexIndex: 538, + FormIndex: 0, + }, + '592': { + NationalDexIndex: 539, + FormIndex: 0, + }, + '593': { + NationalDexIndex: 540, + FormIndex: 0, + }, + '594': { + NationalDexIndex: 541, + FormIndex: 0, + }, + '595': { + NationalDexIndex: 542, + FormIndex: 0, + }, + '596': { + NationalDexIndex: 543, + FormIndex: 0, + }, + '597': { + NationalDexIndex: 544, + FormIndex: 0, + }, + '598': { + NationalDexIndex: 545, + FormIndex: 0, + }, + '599': { + NationalDexIndex: 546, + FormIndex: 0, + }, + '600': { + NationalDexIndex: 547, + FormIndex: 0, + }, + '601': { + NationalDexIndex: 548, + FormIndex: 0, + }, + '602': { + NationalDexIndex: 549, + FormIndex: 0, + }, + '603': { + NationalDexIndex: 550, + FormIndex: 1, + }, + '604': { + NationalDexIndex: 551, + FormIndex: 0, + }, + '605': { + NationalDexIndex: 552, + FormIndex: 0, + }, + '606': { + NationalDexIndex: 553, + FormIndex: 0, + }, + '607': { + NationalDexIndex: 554, + FormIndex: 0, + }, + '608': { + NationalDexIndex: 555, + FormIndex: 0, + }, + '609': { + NationalDexIndex: 556, + FormIndex: 0, + }, + '610': { + NationalDexIndex: 557, + FormIndex: 0, + }, + '611': { + NationalDexIndex: 558, + FormIndex: 0, + }, + '612': { + NationalDexIndex: 559, + FormIndex: 0, + }, + '613': { + NationalDexIndex: 560, + FormIndex: 0, + }, + '614': { + NationalDexIndex: 561, + FormIndex: 0, + }, + '615': { + NationalDexIndex: 562, + FormIndex: 0, + }, + '616': { + NationalDexIndex: 563, + FormIndex: 0, + }, + '617': { + NationalDexIndex: 564, + FormIndex: 0, + }, + '618': { + NationalDexIndex: 565, + FormIndex: 0, + }, + '619': { + NationalDexIndex: 566, + FormIndex: 0, + }, + '620': { + NationalDexIndex: 567, + FormIndex: 0, + }, + '621': { + NationalDexIndex: 568, + FormIndex: 0, + }, + '622': { + NationalDexIndex: 569, + FormIndex: 0, + }, + '623': { + NationalDexIndex: 570, + FormIndex: 0, + }, + '624': { + NationalDexIndex: 571, + FormIndex: 0, + }, + '625': { + NationalDexIndex: 572, + FormIndex: 0, + }, + '626': { + NationalDexIndex: 573, + FormIndex: 0, + }, + '627': { + NationalDexIndex: 574, + FormIndex: 0, + }, + '628': { + NationalDexIndex: 575, + FormIndex: 0, + }, + '629': { + NationalDexIndex: 576, + FormIndex: 0, + }, + '630': { + NationalDexIndex: 577, + FormIndex: 0, + }, + '631': { + NationalDexIndex: 578, + FormIndex: 0, + }, + '632': { + NationalDexIndex: 579, + FormIndex: 0, + }, + '633': { + NationalDexIndex: 580, + FormIndex: 0, + }, + '634': { + NationalDexIndex: 581, + FormIndex: 0, + }, + '635': { + NationalDexIndex: 582, + FormIndex: 0, + }, + '636': { + NationalDexIndex: 583, + FormIndex: 0, + }, + '637': { + NationalDexIndex: 584, + FormIndex: 0, + }, + '638': { + NationalDexIndex: 585, + FormIndex: 0, + }, + '639': { + NationalDexIndex: 586, + FormIndex: 0, + }, + '640': { + NationalDexIndex: 587, + FormIndex: 0, + }, + '641': { + NationalDexIndex: 588, + FormIndex: 0, + }, + '642': { + NationalDexIndex: 589, + FormIndex: 0, + }, + '643': { + NationalDexIndex: 590, + FormIndex: 0, + }, + '644': { + NationalDexIndex: 591, + FormIndex: 0, + }, + '645': { + NationalDexIndex: 592, + FormIndex: 0, + }, + '646': { + NationalDexIndex: 593, + FormIndex: 0, + }, + '647': { + NationalDexIndex: 594, + FormIndex: 0, + }, + '648': { + NationalDexIndex: 595, + FormIndex: 0, + }, + '649': { + NationalDexIndex: 596, + FormIndex: 0, + }, + '650': { + NationalDexIndex: 597, + FormIndex: 0, + }, + '651': { + NationalDexIndex: 598, + FormIndex: 0, + }, + '652': { + NationalDexIndex: 599, + FormIndex: 0, + }, + '653': { + NationalDexIndex: 600, + FormIndex: 0, + }, + '654': { + NationalDexIndex: 601, + FormIndex: 0, + }, + '655': { + NationalDexIndex: 602, + FormIndex: 0, + }, + '656': { + NationalDexIndex: 603, + FormIndex: 0, + }, + '657': { + NationalDexIndex: 604, + FormIndex: 0, + }, + '658': { + NationalDexIndex: 605, + FormIndex: 0, + }, + '659': { + NationalDexIndex: 606, + FormIndex: 0, + }, + '660': { + NationalDexIndex: 607, + FormIndex: 0, + }, + '661': { + NationalDexIndex: 608, + FormIndex: 0, + }, + '662': { + NationalDexIndex: 609, + FormIndex: 0, + }, + '663': { + NationalDexIndex: 610, + FormIndex: 0, + }, + '664': { + NationalDexIndex: 611, + FormIndex: 0, + }, + '665': { + NationalDexIndex: 612, + FormIndex: 0, + }, + '666': { + NationalDexIndex: 613, + FormIndex: 0, + }, + '667': { + NationalDexIndex: 614, + FormIndex: 0, + }, + '668': { + NationalDexIndex: 615, + FormIndex: 0, + }, + '669': { + NationalDexIndex: 616, + FormIndex: 0, + }, + '670': { + NationalDexIndex: 617, + FormIndex: 0, + }, + '671': { + NationalDexIndex: 618, + FormIndex: 0, + }, + '672': { + NationalDexIndex: 619, + FormIndex: 0, + }, + '673': { + NationalDexIndex: 620, + FormIndex: 0, + }, + '674': { + NationalDexIndex: 621, + FormIndex: 0, + }, + '675': { + NationalDexIndex: 622, + FormIndex: 0, + }, + '676': { + NationalDexIndex: 623, + FormIndex: 0, + }, + '677': { + NationalDexIndex: 624, + FormIndex: 0, + }, + '678': { + NationalDexIndex: 625, + FormIndex: 0, + }, + '679': { + NationalDexIndex: 626, + FormIndex: 0, + }, + '680': { + NationalDexIndex: 627, + FormIndex: 0, + }, + '681': { + NationalDexIndex: 628, + FormIndex: 0, + }, + '682': { + NationalDexIndex: 629, + FormIndex: 0, + }, + '683': { + NationalDexIndex: 630, + FormIndex: 0, + }, + '684': { + NationalDexIndex: 631, + FormIndex: 0, + }, + '685': { + NationalDexIndex: 632, + FormIndex: 0, + }, + '686': { + NationalDexIndex: 633, + FormIndex: 0, + }, + '687': { + NationalDexIndex: 634, + FormIndex: 0, + }, + '688': { + NationalDexIndex: 635, + FormIndex: 0, + }, + '689': { + NationalDexIndex: 636, + FormIndex: 0, + }, + '690': { + NationalDexIndex: 637, + FormIndex: 0, + }, + '691': { + NationalDexIndex: 638, + FormIndex: 0, + }, + '692': { + NationalDexIndex: 639, + FormIndex: 0, + }, + '693': { + NationalDexIndex: 640, + FormIndex: 0, + }, + '694': { + NationalDexIndex: 641, + FormIndex: 0, + }, + '695': { + NationalDexIndex: 642, + FormIndex: 0, + }, + '696': { + NationalDexIndex: 643, + FormIndex: 0, + }, + '697': { + NationalDexIndex: 644, + FormIndex: 0, + }, + '698': { + NationalDexIndex: 645, + FormIndex: 0, + }, + '699': { + NationalDexIndex: 646, + FormIndex: 0, + }, + '700': { + NationalDexIndex: 647, + FormIndex: 0, + }, + '701': { + NationalDexIndex: 648, + FormIndex: 0, + }, + '702': { + NationalDexIndex: 649, + FormIndex: 0, + }, + '703': { + NationalDexIndex: 521, + FormIndex: 0, + }, + '704': { + NationalDexIndex: 592, + FormIndex: 0, + }, + '705': { + NationalDexIndex: 593, + FormIndex: 0, + }, + '706': { + NationalDexIndex: 950, + FormIndex: 0, + }, + '707': { + NationalDexIndex: 412, + FormIndex: 0, + }, + '708': { + NationalDexIndex: 412, + FormIndex: 0, + }, + '709': { + NationalDexIndex: 413, + FormIndex: 1, + }, + '710': { + NationalDexIndex: 413, + FormIndex: 2, + }, + '711': { + NationalDexIndex: 422, + FormIndex: 0, + }, + '712': { + NationalDexIndex: 423, + FormIndex: 0, + }, + '713': { + NationalDexIndex: 479, + FormIndex: 1, + }, + '714': { + NationalDexIndex: 479, + FormIndex: 2, + }, + '715': { + NationalDexIndex: 479, + FormIndex: 3, + }, + '716': { + NationalDexIndex: 479, + FormIndex: 4, + }, + '717': { + NationalDexIndex: 479, + FormIndex: 5, + }, + '718': { + NationalDexIndex: 487, + FormIndex: 1, + }, + '719': { + NationalDexIndex: 492, + FormIndex: 1, + }, + '720': { + NationalDexIndex: 493, + FormIndex: 6, + }, + '721': { + NationalDexIndex: 493, + FormIndex: 8, + }, + '722': { + NationalDexIndex: 493, + FormIndex: 13, + }, + '723': { + NationalDexIndex: 493, + FormIndex: 11, + }, + '724': { + NationalDexIndex: 493, + FormIndex: 15, + }, + '725': { + NationalDexIndex: 493, + FormIndex: 1, + }, + '726': { + NationalDexIndex: 493, + FormIndex: 9, + }, + '727': { + NationalDexIndex: 493, + FormIndex: 16, + }, + '728': { + NationalDexIndex: 493, + FormIndex: 7, + }, + '729': { + NationalDexIndex: 493, + FormIndex: 17, + }, + '730': { + NationalDexIndex: 493, + FormIndex: 10, + }, + '731': { + NationalDexIndex: 493, + FormIndex: 4, + }, + '732': { + NationalDexIndex: 493, + FormIndex: 14, + }, + '733': { + NationalDexIndex: 493, + FormIndex: 12, + }, + '734': { + NationalDexIndex: 493, + FormIndex: 3, + }, + '735': { + NationalDexIndex: 493, + FormIndex: 2, + }, + '736': { + NationalDexIndex: 550, + FormIndex: 0, + }, + '737': { + NationalDexIndex: 555, + FormIndex: 1, + }, + '738': { + NationalDexIndex: 585, + FormIndex: 0, + }, + '739': { + NationalDexIndex: 585, + FormIndex: 0, + }, + '740': { + NationalDexIndex: 585, + FormIndex: 0, + }, + '741': { + NationalDexIndex: 586, + FormIndex: 0, + }, + '742': { + NationalDexIndex: 586, + FormIndex: 0, + }, + '743': { + NationalDexIndex: 586, + FormIndex: 0, + }, + '744': { + NationalDexIndex: 449, + FormIndex: 0, + }, + '745': { + NationalDexIndex: 450, + FormIndex: 0, + }, + '746': { + NationalDexIndex: 648, + FormIndex: 1, + }, + '747': { + NationalDexIndex: 1003, + FormIndex: 0, + }, + '748': { + NationalDexIndex: 1002, + FormIndex: 0, + }, + '749': { + NationalDexIndex: 1001, + FormIndex: 0, + }, + '750': { + NationalDexIndex: 1004, + FormIndex: 0, + }, + '751': { + NationalDexIndex: 421, + FormIndex: 1, + }, + '752': { + NationalDexIndex: 646, + FormIndex: 1, + }, + '753': { + NationalDexIndex: 646, + FormIndex: 2, + }, + '754': { + NationalDexIndex: 641, + FormIndex: 1, + }, + '755': { + NationalDexIndex: 642, + FormIndex: 1, + }, + '756': { + NationalDexIndex: 645, + FormIndex: 1, + }, + '757': { + NationalDexIndex: 647, + FormIndex: 1, + }, + '758': { + NationalDexIndex: 650, + FormIndex: 0, + }, + '759': { + NationalDexIndex: 651, + FormIndex: 0, + }, + '760': { + NationalDexIndex: 652, + FormIndex: 0, + }, + '761': { + NationalDexIndex: 653, + FormIndex: 0, + }, + '762': { + NationalDexIndex: 654, + FormIndex: 0, + }, + '763': { + NationalDexIndex: 655, + FormIndex: 0, + }, + '764': { + NationalDexIndex: 656, + FormIndex: 0, + }, + '765': { + NationalDexIndex: 657, + FormIndex: 0, + }, + '766': { + NationalDexIndex: 658, + FormIndex: 0, + }, + '767': { + NationalDexIndex: 659, + FormIndex: 0, + }, + '768': { + NationalDexIndex: 660, + FormIndex: 0, + }, + '769': { + NationalDexIndex: 661, + FormIndex: 0, + }, + '770': { + NationalDexIndex: 662, + FormIndex: 0, + }, + '771': { + NationalDexIndex: 663, + FormIndex: 0, + }, + '772': { + NationalDexIndex: 664, + FormIndex: 0, + }, + '773': { + NationalDexIndex: 665, + FormIndex: 0, + }, + '774': { + NationalDexIndex: 666, + FormIndex: 0, + }, + '775': { + NationalDexIndex: 667, + FormIndex: 0, + }, + '776': { + NationalDexIndex: 668, + FormIndex: 0, + }, + '777': { + NationalDexIndex: 669, + FormIndex: 0, + }, + '778': { + NationalDexIndex: 670, + FormIndex: 0, + }, + '779': { + NationalDexIndex: 671, + FormIndex: 0, + }, + '780': { + NationalDexIndex: 672, + FormIndex: 0, + }, + '781': { + NationalDexIndex: 673, + FormIndex: 0, + }, + '782': { + NationalDexIndex: 674, + FormIndex: 0, + }, + '783': { + NationalDexIndex: 675, + FormIndex: 0, + }, + '784': { + NationalDexIndex: 676, + FormIndex: 0, + }, + '785': { + NationalDexIndex: 677, + FormIndex: 0, + }, + '786': { + NationalDexIndex: 678, + FormIndex: 0, + }, + '787': { + NationalDexIndex: 679, + FormIndex: 0, + }, + '788': { + NationalDexIndex: 680, + FormIndex: 0, + }, + '789': { + NationalDexIndex: 681, + FormIndex: 0, + }, + '790': { + NationalDexIndex: 682, + FormIndex: 0, + }, + '791': { + NationalDexIndex: 683, + FormIndex: 0, + }, + '792': { + NationalDexIndex: 684, + FormIndex: 0, + }, + '793': { + NationalDexIndex: 685, + FormIndex: 0, + }, + '794': { + NationalDexIndex: 686, + FormIndex: 0, + }, + '795': { + NationalDexIndex: 687, + FormIndex: 0, + }, + '796': { + NationalDexIndex: 688, + FormIndex: 0, + }, + '797': { + NationalDexIndex: 689, + FormIndex: 0, + }, + '798': { + NationalDexIndex: 690, + FormIndex: 0, + }, + '799': { + NationalDexIndex: 691, + FormIndex: 0, + }, + '800': { + NationalDexIndex: 692, + FormIndex: 0, + }, + '801': { + NationalDexIndex: 693, + FormIndex: 0, + }, + '802': { + NationalDexIndex: 694, + FormIndex: 0, + }, + '803': { + NationalDexIndex: 695, + FormIndex: 0, + }, + '804': { + NationalDexIndex: 696, + FormIndex: 0, + }, + '805': { + NationalDexIndex: 697, + FormIndex: 0, + }, + '806': { + NationalDexIndex: 698, + FormIndex: 0, + }, + '807': { + NationalDexIndex: 699, + FormIndex: 0, + }, + '808': { + NationalDexIndex: 700, + FormIndex: 0, + }, + '809': { + NationalDexIndex: 701, + FormIndex: 0, + }, + '810': { + NationalDexIndex: 702, + FormIndex: 0, + }, + '811': { + NationalDexIndex: 703, + FormIndex: 0, + }, + '812': { + NationalDexIndex: 704, + FormIndex: 0, + }, + '813': { + NationalDexIndex: 705, + FormIndex: 0, + }, + '814': { + NationalDexIndex: 706, + FormIndex: 0, + }, + '815': { + NationalDexIndex: 707, + FormIndex: 0, + }, + '816': { + NationalDexIndex: 708, + FormIndex: 0, + }, + '817': { + NationalDexIndex: 709, + FormIndex: 0, + }, + '818': { + NationalDexIndex: 710, + FormIndex: 0, + }, + '819': { + NationalDexIndex: 711, + FormIndex: 0, + }, + '820': { + NationalDexIndex: 712, + FormIndex: 0, + }, + '821': { + NationalDexIndex: 713, + FormIndex: 0, + }, + '822': { + NationalDexIndex: 714, + FormIndex: 0, + }, + '823': { + NationalDexIndex: 715, + FormIndex: 0, + }, + '824': { + NationalDexIndex: 716, + FormIndex: 0, + }, + '825': { + NationalDexIndex: 717, + FormIndex: 0, + }, + '826': { + NationalDexIndex: 718, + FormIndex: 0, + }, + '827': { + NationalDexIndex: 719, + FormIndex: 0, + }, + '828': { + NationalDexIndex: 720, + FormIndex: 0, + }, + '829': { + NationalDexIndex: 720, + FormIndex: 1, + }, + '830': { + NationalDexIndex: 721, + FormIndex: 0, + }, + '831': { + NationalDexIndex: 668, + FormIndex: 0, + }, + '832': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '833': { + NationalDexIndex: 681, + FormIndex: 1, + }, + '834': { + NationalDexIndex: 493, + FormIndex: 5, + }, + '835': { + NationalDexIndex: 965, + FormIndex: 0, + }, + '836': { + NationalDexIndex: 966, + FormIndex: 0, + }, + '837': { + NationalDexIndex: 718, + FormIndex: 1, + }, + '838': { + NationalDexIndex: 718, + FormIndex: 3, + }, + '839': { + NationalDexIndex: 658, + FormIndex: 1, + }, + '840': { + NationalDexIndex: 957, + FormIndex: 0, + }, + '841': { + NationalDexIndex: 958, + FormIndex: 0, + }, + '842': { + NationalDexIndex: 959, + FormIndex: 0, + }, + '843': { + NationalDexIndex: 921, + FormIndex: 0, + }, + '844': { + NationalDexIndex: 922, + FormIndex: 0, + }, + '845': { + NationalDexIndex: 923, + FormIndex: 0, + }, + '846': { + NationalDexIndex: 915, + FormIndex: 0, + }, + '847': { + NationalDexIndex: 916, + FormIndex: 0, + }, + '848': { + NationalDexIndex: 670, + FormIndex: 5, + }, + '849': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '850': { + NationalDexIndex: 999, + FormIndex: 0, + }, + '851': { + NationalDexIndex: 999, + FormIndex: 1, + }, + '852': { + NationalDexIndex: 1000, + FormIndex: 0, + }, + '853': { + NationalDexIndex: 710, + FormIndex: 0, + }, + '854': { + NationalDexIndex: 710, + FormIndex: 0, + }, + '855': { + NationalDexIndex: 710, + FormIndex: 0, + }, + '856': { + NationalDexIndex: 711, + FormIndex: 0, + }, + '857': { + NationalDexIndex: 711, + FormIndex: 0, + }, + '858': { + NationalDexIndex: 711, + FormIndex: 0, + }, + '859': { + NationalDexIndex: 971, + FormIndex: 0, + }, + '860': { + NationalDexIndex: 972, + FormIndex: 0, + }, + '861': { + NationalDexIndex: 938, + FormIndex: 0, + }, + '862': { + NationalDexIndex: 939, + FormIndex: 0, + }, + '863': { + NationalDexIndex: 963, + FormIndex: 0, + }, + '864': { + NationalDexIndex: 964, + FormIndex: 0, + }, + '865': { + NationalDexIndex: 964, + FormIndex: 1, + }, + '866': { + NationalDexIndex: 714, + FormIndex: 0, + }, + '867': { + NationalDexIndex: 715, + FormIndex: 0, + }, + '868': { + NationalDexIndex: 981, + FormIndex: 0, + }, + '869': { + NationalDexIndex: 3, + FormIndex: 1, + }, + '870': { + NationalDexIndex: 6, + FormIndex: 1, + }, + '871': { + NationalDexIndex: 6, + FormIndex: 2, + }, + '872': { + NationalDexIndex: 9, + FormIndex: 1, + }, + '873': { + NationalDexIndex: 15, + FormIndex: 1, + }, + '874': { + NationalDexIndex: 18, + FormIndex: 1, + }, + '875': { + NationalDexIndex: 65, + FormIndex: 1, + }, + '876': { + NationalDexIndex: 80, + FormIndex: 1, + }, + '877': { + NationalDexIndex: 94, + FormIndex: 1, + }, + '878': { + NationalDexIndex: 115, + FormIndex: 1, + }, + '879': { + NationalDexIndex: 127, + FormIndex: 1, + }, + '880': { + NationalDexIndex: 130, + FormIndex: 1, + }, + '881': { + NationalDexIndex: 142, + FormIndex: 1, + }, + '882': { + NationalDexIndex: 150, + FormIndex: 1, + }, + '883': { + NationalDexIndex: 150, + FormIndex: 2, + }, + '884': { + NationalDexIndex: 181, + FormIndex: 1, + }, + '885': { + NationalDexIndex: 208, + FormIndex: 1, + }, + '886': { + NationalDexIndex: 212, + FormIndex: 1, + }, + '887': { + NationalDexIndex: 214, + FormIndex: 1, + }, + '888': { + NationalDexIndex: 229, + FormIndex: 1, + }, + '889': { + NationalDexIndex: 248, + FormIndex: 1, + }, + '890': { + NationalDexIndex: 254, + FormIndex: 1, + }, + '891': { + NationalDexIndex: 257, + FormIndex: 1, + }, + '892': { + NationalDexIndex: 260, + FormIndex: 1, + }, + '893': { + NationalDexIndex: 282, + FormIndex: 1, + }, + '894': { + NationalDexIndex: 302, + FormIndex: 1, + }, + '895': { + NationalDexIndex: 303, + FormIndex: 1, + }, + '896': { + NationalDexIndex: 306, + FormIndex: 1, + }, + '897': { + NationalDexIndex: 308, + FormIndex: 1, + }, + '898': { + NationalDexIndex: 310, + FormIndex: 1, + }, + '899': { + NationalDexIndex: 319, + FormIndex: 1, + }, + '900': { + NationalDexIndex: 323, + FormIndex: 1, + }, + '901': { + NationalDexIndex: 334, + FormIndex: 1, + }, + '902': { + NationalDexIndex: 354, + FormIndex: 1, + }, + '903': { + NationalDexIndex: 359, + FormIndex: 1, + }, + '904': { + NationalDexIndex: 362, + FormIndex: 1, + }, + '905': { + NationalDexIndex: 373, + FormIndex: 1, + }, + '906': { + NationalDexIndex: 376, + FormIndex: 1, + }, + '907': { + NationalDexIndex: 380, + FormIndex: 1, + }, + '908': { + NationalDexIndex: 381, + FormIndex: 1, + }, + '909': { + NationalDexIndex: 383, + FormIndex: 1, + }, + '910': { + NationalDexIndex: 382, + FormIndex: 1, + }, + '911': { + NationalDexIndex: 384, + FormIndex: 1, + }, + '912': { + NationalDexIndex: 428, + FormIndex: 1, + }, + '913': { + NationalDexIndex: 445, + FormIndex: 1, + }, + '914': { + NationalDexIndex: 448, + FormIndex: 1, + }, + '915': { + NationalDexIndex: 460, + FormIndex: 1, + }, + '916': { + NationalDexIndex: 475, + FormIndex: 1, + }, + '917': { + NationalDexIndex: 531, + FormIndex: 1, + }, + '918': { + NationalDexIndex: 719, + FormIndex: 1, + }, + '919': { + NationalDexIndex: 483, + FormIndex: 0, + }, + '920': { + NationalDexIndex: 484, + FormIndex: 0, + }, + '921': { + NationalDexIndex: 906, + FormIndex: 0, + }, + '922': { + NationalDexIndex: 907, + FormIndex: 0, + }, + '923': { + NationalDexIndex: 908, + FormIndex: 0, + }, + '924': { + NationalDexIndex: 909, + FormIndex: 0, + }, + '925': { + NationalDexIndex: 910, + FormIndex: 0, + }, + '926': { + NationalDexIndex: 911, + FormIndex: 0, + }, + '927': { + NationalDexIndex: 912, + FormIndex: 0, + }, + '928': { + NationalDexIndex: 913, + FormIndex: 0, + }, + '929': { + NationalDexIndex: 914, + FormIndex: 0, + }, + '930': { + NationalDexIndex: 194, + FormIndex: 1, + }, + '931': { + NationalDexIndex: 980, + FormIndex: 0, + }, + '932': { + NationalDexIndex: 960, + FormIndex: 0, + }, + '933': { + NationalDexIndex: 961, + FormIndex: 0, + }, + '934': { + NationalDexIndex: 937, + FormIndex: 0, + }, + '935': { + NationalDexIndex: 936, + FormIndex: 0, + }, + '936': { + NationalDexIndex: 983, + FormIndex: 0, + }, + '937': { + NationalDexIndex: 979, + FormIndex: 0, + }, + '938': { + NationalDexIndex: 935, + FormIndex: 0, + }, + '939': { + NationalDexIndex: 722, + FormIndex: 0, + }, + '940': { + NationalDexIndex: 723, + FormIndex: 0, + }, + '941': { + NationalDexIndex: 724, + FormIndex: 0, + }, + '942': { + NationalDexIndex: 725, + FormIndex: 0, + }, + '943': { + NationalDexIndex: 726, + FormIndex: 0, + }, + '944': { + NationalDexIndex: 727, + FormIndex: 0, + }, + '945': { + NationalDexIndex: 728, + FormIndex: 0, + }, + '946': { + NationalDexIndex: 729, + FormIndex: 0, + }, + '947': { + NationalDexIndex: 730, + FormIndex: 0, + }, + '948': { + NationalDexIndex: 731, + FormIndex: 0, + }, + '949': { + NationalDexIndex: 732, + FormIndex: 0, + }, + '950': { + NationalDexIndex: 733, + FormIndex: 0, + }, + '951': { + NationalDexIndex: 734, + FormIndex: 0, + }, + '952': { + NationalDexIndex: 735, + FormIndex: 0, + }, + '953': { + NationalDexIndex: 736, + FormIndex: 0, + }, + '954': { + NationalDexIndex: 737, + FormIndex: 0, + }, + '955': { + NationalDexIndex: 738, + FormIndex: 0, + }, + '956': { + NationalDexIndex: 739, + FormIndex: 0, + }, + '957': { + NationalDexIndex: 740, + FormIndex: 0, + }, + '958': { + NationalDexIndex: 741, + FormIndex: 0, + }, + '959': { + NationalDexIndex: 742, + FormIndex: 0, + }, + '960': { + NationalDexIndex: 743, + FormIndex: 0, + }, + '961': { + NationalDexIndex: 744, + FormIndex: 0, + }, + '962': { + NationalDexIndex: 745, + FormIndex: 0, + }, + '963': { + NationalDexIndex: 746, + FormIndex: 0, + }, + '964': { + NationalDexIndex: 747, + FormIndex: 0, + }, + '965': { + NationalDexIndex: 748, + FormIndex: 0, + }, + '966': { + NationalDexIndex: 749, + FormIndex: 0, + }, + '967': { + NationalDexIndex: 750, + FormIndex: 0, + }, + '968': { + NationalDexIndex: 751, + FormIndex: 0, + }, + '969': { + NationalDexIndex: 752, + FormIndex: 0, + }, + '970': { + NationalDexIndex: 753, + FormIndex: 0, + }, + '971': { + NationalDexIndex: 754, + FormIndex: 0, + }, + '972': { + NationalDexIndex: 755, + FormIndex: 0, + }, + '973': { + NationalDexIndex: 756, + FormIndex: 0, + }, + '974': { + NationalDexIndex: 757, + FormIndex: 0, + }, + '975': { + NationalDexIndex: 758, + FormIndex: 0, + }, + '976': { + NationalDexIndex: 759, + FormIndex: 0, + }, + '977': { + NationalDexIndex: 760, + FormIndex: 0, + }, + '978': { + NationalDexIndex: 761, + FormIndex: 0, + }, + '979': { + NationalDexIndex: 762, + FormIndex: 0, + }, + '980': { + NationalDexIndex: 763, + FormIndex: 0, + }, + '981': { + NationalDexIndex: 764, + FormIndex: 0, + }, + '982': { + NationalDexIndex: 765, + FormIndex: 0, + }, + '983': { + NationalDexIndex: 766, + FormIndex: 0, + }, + '984': { + NationalDexIndex: 767, + FormIndex: 0, + }, + '985': { + NationalDexIndex: 768, + FormIndex: 0, + }, + '986': { + NationalDexIndex: 769, + FormIndex: 0, + }, + '987': { + NationalDexIndex: 770, + FormIndex: 0, + }, + '988': { + NationalDexIndex: 771, + FormIndex: 0, + }, + '989': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '990': { + NationalDexIndex: 773, + FormIndex: 0, + }, + '991': { + NationalDexIndex: 774, + FormIndex: 0, + }, + '992': { + NationalDexIndex: 775, + FormIndex: 0, + }, + '993': { + NationalDexIndex: 776, + FormIndex: 0, + }, + '994': { + NationalDexIndex: 777, + FormIndex: 0, + }, + '995': { + NationalDexIndex: 778, + FormIndex: 0, + }, + '996': { + NationalDexIndex: 779, + FormIndex: 0, + }, + '997': { + NationalDexIndex: 780, + FormIndex: 0, + }, + '998': { + NationalDexIndex: 781, + FormIndex: 0, + }, + '999': { + NationalDexIndex: 782, + FormIndex: 0, + }, + '1000': { + NationalDexIndex: 781, + FormIndex: 0, + }, + '1001': { + NationalDexIndex: 784, + FormIndex: 0, + }, + '1002': { + NationalDexIndex: 785, + FormIndex: 0, + }, + '1003': { + NationalDexIndex: 786, + FormIndex: 0, + }, + '1004': { + NationalDexIndex: 787, + FormIndex: 0, + }, + '1005': { + NationalDexIndex: 788, + FormIndex: 0, + }, + '1006': { + NationalDexIndex: 789, + FormIndex: 0, + }, + '1007': { + NationalDexIndex: 790, + FormIndex: 0, + }, + '1008': { + NationalDexIndex: 791, + FormIndex: 0, + }, + '1009': { + NationalDexIndex: 792, + FormIndex: 0, + }, + '1010': { + NationalDexIndex: 793, + FormIndex: 0, + }, + '1011': { + NationalDexIndex: 794, + FormIndex: 0, + }, + '1012': { + NationalDexIndex: 795, + FormIndex: 0, + }, + '1013': { + NationalDexIndex: 796, + FormIndex: 0, + }, + '1014': { + NationalDexIndex: 797, + FormIndex: 0, + }, + '1015': { + NationalDexIndex: 798, + FormIndex: 0, + }, + '1016': { + NationalDexIndex: 799, + FormIndex: 0, + }, + '1017': { + NationalDexIndex: 800, + FormIndex: 0, + }, + '1018': { + NationalDexIndex: 801, + FormIndex: 0, + }, + '1019': { + NationalDexIndex: 802, + FormIndex: 0, + }, + '1020': { + NationalDexIndex: 19, + FormIndex: 1, + }, + '1021': { + NationalDexIndex: 20, + FormIndex: 1, + }, + '1022': { + NationalDexIndex: 26, + FormIndex: 1, + }, + '1023': { + NationalDexIndex: 27, + FormIndex: 1, + }, + '1024': { + NationalDexIndex: 28, + FormIndex: 1, + }, + '1025': { + NationalDexIndex: 37, + FormIndex: 1, + }, + '1026': { + NationalDexIndex: 38, + FormIndex: 1, + }, + '1027': { + NationalDexIndex: 50, + FormIndex: 1, + }, + '1028': { + NationalDexIndex: 51, + FormIndex: 1, + }, + '1029': { + NationalDexIndex: 52, + FormIndex: 1, + }, + '1030': { + NationalDexIndex: 53, + FormIndex: 1, + }, + '1031': { + NationalDexIndex: 74, + FormIndex: 1, + }, + '1032': { + NationalDexIndex: 75, + FormIndex: 1, + }, + '1033': { + NationalDexIndex: 76, + FormIndex: 1, + }, + '1034': { + NationalDexIndex: 88, + FormIndex: 1, + }, + '1035': { + NationalDexIndex: 89, + FormIndex: 1, + }, + '1036': { + NationalDexIndex: 102, + FormIndex: 0, + }, + '1037': { + NationalDexIndex: 103, + FormIndex: 1, + }, + '1038': { + NationalDexIndex: 104, + FormIndex: 0, + }, + '1039': { + NationalDexIndex: 105, + FormIndex: 1, + }, + '1040': { + NationalDexIndex: 386, + FormIndex: 1, + }, + '1041': { + NationalDexIndex: 386, + FormIndex: 2, + }, + '1042': { + NationalDexIndex: 386, + FormIndex: 3, + }, + '1043': { + NationalDexIndex: 741, + FormIndex: 1, + }, + '1044': { + NationalDexIndex: 741, + FormIndex: 2, + }, + '1045': { + NationalDexIndex: 741, + FormIndex: 3, + }, + '1046': { + NationalDexIndex: 745, + FormIndex: 1, + }, + '1047': { + NationalDexIndex: 746, + FormIndex: 1, + }, + '1048': { + NationalDexIndex: 773, + FormIndex: 6, + }, + '1049': { + NationalDexIndex: 773, + FormIndex: 8, + }, + '1050': { + NationalDexIndex: 773, + FormIndex: 13, + }, + '1051': { + NationalDexIndex: 773, + FormIndex: 11, + }, + '1052': { + NationalDexIndex: 773, + FormIndex: 15, + }, + '1053': { + NationalDexIndex: 773, + FormIndex: 1, + }, + '1054': { + NationalDexIndex: 773, + FormIndex: 9, + }, + '1055': { + NationalDexIndex: 773, + FormIndex: 16, + }, + '1056': { + NationalDexIndex: 773, + FormIndex: 7, + }, + '1057': { + NationalDexIndex: 773, + FormIndex: 17, + }, + '1058': { + NationalDexIndex: 773, + FormIndex: 10, + }, + '1059': { + NationalDexIndex: 773, + FormIndex: 4, + }, + '1060': { + NationalDexIndex: 773, + FormIndex: 14, + }, + '1061': { + NationalDexIndex: 773, + FormIndex: 12, + }, + '1062': { + NationalDexIndex: 773, + FormIndex: 3, + }, + '1063': { + NationalDexIndex: 773, + FormIndex: 2, + }, + '1064': { + NationalDexIndex: 773, + FormIndex: 5, + }, + '1065': { + NationalDexIndex: 774, + FormIndex: 0, + }, + '1066': { + NationalDexIndex: 774, + FormIndex: 0, + }, + '1067': { + NationalDexIndex: 774, + FormIndex: 0, + }, + '1068': { + NationalDexIndex: 774, + FormIndex: 0, + }, + '1069': { + NationalDexIndex: 774, + FormIndex: 0, + }, + '1070': { + NationalDexIndex: 774, + FormIndex: 0, + }, + '1071': { + NationalDexIndex: 774, + FormIndex: 0, + }, + '1072': { + NationalDexIndex: 778, + FormIndex: 1, + }, + '1073': { + NationalDexIndex: 801, + FormIndex: 1, + }, + '1074': { + NationalDexIndex: 803, + FormIndex: 0, + }, + '1075': { + NationalDexIndex: 804, + FormIndex: 0, + }, + '1076': { + NationalDexIndex: 805, + FormIndex: 0, + }, + '1077': { + NationalDexIndex: 806, + FormIndex: 0, + }, + '1078': { + NationalDexIndex: 807, + FormIndex: 0, + }, + '1079': { + NationalDexIndex: 800, + FormIndex: 1, + }, + '1080': { + NationalDexIndex: 800, + FormIndex: 2, + }, + '1081': { + NationalDexIndex: 800, + FormIndex: 3, + }, + '1082': { + NationalDexIndex: 745, + FormIndex: 2, + }, + '1083': { + NationalDexIndex: 808, + FormIndex: 0, + }, + '1084': { + NationalDexIndex: 809, + FormIndex: 0, + }, + '1085': { + NationalDexIndex: 25, + FormIndex: 0, + }, + '1086': { + NationalDexIndex: 25, + FormIndex: 0, + }, + '1087': { + NationalDexIndex: 25, + FormIndex: 0, + }, + '1088': { + NationalDexIndex: 25, + FormIndex: 0, + }, + '1089': { + NationalDexIndex: 25, + FormIndex: 0, + }, + '1090': { + NationalDexIndex: 25, + FormIndex: 0, + }, + '1091': { + NationalDexIndex: 25, + FormIndex: 0, + }, + '1092': { + NationalDexIndex: 25, + FormIndex: 0, + }, + '1093': { + NationalDexIndex: 25, + FormIndex: 1, + }, + '1094': { + NationalDexIndex: 25, + FormIndex: 2, + }, + '1095': { + NationalDexIndex: 25, + FormIndex: 3, + }, + '1096': { + NationalDexIndex: 25, + FormIndex: 4, + }, + '1097': { + NationalDexIndex: 25, + FormIndex: 5, + }, + '1098': { + NationalDexIndex: 25, + FormIndex: 6, + }, + '1099': { + NationalDexIndex: 25, + FormIndex: 7, + }, + '1100': { + NationalDexIndex: 982, + FormIndex: 0, + }, + '1101': { + NationalDexIndex: 967, + FormIndex: 0, + }, + '1102': { + NationalDexIndex: 810, + FormIndex: 0, + }, + '1103': { + NationalDexIndex: 811, + FormIndex: 0, + }, + '1104': { + NationalDexIndex: 812, + FormIndex: 0, + }, + '1105': { + NationalDexIndex: 813, + FormIndex: 0, + }, + '1106': { + NationalDexIndex: 814, + FormIndex: 0, + }, + '1107': { + NationalDexIndex: 815, + FormIndex: 0, + }, + '1108': { + NationalDexIndex: 816, + FormIndex: 0, + }, + '1109': { + NationalDexIndex: 817, + FormIndex: 0, + }, + '1110': { + NationalDexIndex: 818, + FormIndex: 0, + }, + '1111': { + NationalDexIndex: 819, + FormIndex: 0, + }, + '1112': { + NationalDexIndex: 820, + FormIndex: 0, + }, + '1113': { + NationalDexIndex: 821, + FormIndex: 0, + }, + '1114': { + NationalDexIndex: 822, + FormIndex: 0, + }, + '1115': { + NationalDexIndex: 823, + FormIndex: 0, + }, + '1116': { + NationalDexIndex: 824, + FormIndex: 0, + }, + '1117': { + NationalDexIndex: 825, + FormIndex: 0, + }, + '1118': { + NationalDexIndex: 826, + FormIndex: 0, + }, + '1119': { + NationalDexIndex: 827, + FormIndex: 0, + }, + '1120': { + NationalDexIndex: 828, + FormIndex: 0, + }, + '1121': { + NationalDexIndex: 829, + FormIndex: 0, + }, + '1122': { + NationalDexIndex: 830, + FormIndex: 0, + }, + '1123': { + NationalDexIndex: 831, + FormIndex: 0, + }, + '1124': { + NationalDexIndex: 832, + FormIndex: 0, + }, + '1125': { + NationalDexIndex: 833, + FormIndex: 0, + }, + '1126': { + NationalDexIndex: 834, + FormIndex: 0, + }, + '1127': { + NationalDexIndex: 835, + FormIndex: 0, + }, + '1128': { + NationalDexIndex: 836, + FormIndex: 0, + }, + '1129': { + NationalDexIndex: 837, + FormIndex: 0, + }, + '1130': { + NationalDexIndex: 838, + FormIndex: 0, + }, + '1131': { + NationalDexIndex: 839, + FormIndex: 0, + }, + '1132': { + NationalDexIndex: 840, + FormIndex: 0, + }, + '1133': { + NationalDexIndex: 841, + FormIndex: 0, + }, + '1134': { + NationalDexIndex: 842, + FormIndex: 0, + }, + '1135': { + NationalDexIndex: 843, + FormIndex: 0, + }, + '1136': { + NationalDexIndex: 844, + FormIndex: 0, + }, + '1137': { + NationalDexIndex: 845, + FormIndex: 0, + }, + '1138': { + NationalDexIndex: 846, + FormIndex: 0, + }, + '1139': { + NationalDexIndex: 847, + FormIndex: 0, + }, + '1140': { + NationalDexIndex: 848, + FormIndex: 0, + }, + '1141': { + NationalDexIndex: 849, + FormIndex: 0, + }, + '1142': { + NationalDexIndex: 850, + FormIndex: 0, + }, + '1143': { + NationalDexIndex: 851, + FormIndex: 0, + }, + '1144': { + NationalDexIndex: 852, + FormIndex: 0, + }, + '1145': { + NationalDexIndex: 853, + FormIndex: 0, + }, + '1146': { + NationalDexIndex: 854, + FormIndex: 0, + }, + '1147': { + NationalDexIndex: 855, + FormIndex: 0, + }, + '1148': { + NationalDexIndex: 856, + FormIndex: 0, + }, + '1149': { + NationalDexIndex: 857, + FormIndex: 0, + }, + '1150': { + NationalDexIndex: 858, + FormIndex: 0, + }, + '1151': { + NationalDexIndex: 859, + FormIndex: 0, + }, + '1152': { + NationalDexIndex: 860, + FormIndex: 0, + }, + '1153': { + NationalDexIndex: 861, + FormIndex: 0, + }, + '1154': { + NationalDexIndex: 862, + FormIndex: 0, + }, + '1155': { + NationalDexIndex: 863, + FormIndex: 0, + }, + '1156': { + NationalDexIndex: 864, + FormIndex: 0, + }, + '1157': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '1158': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '1159': { + NationalDexIndex: 867, + FormIndex: 0, + }, + '1160': { + NationalDexIndex: 868, + FormIndex: 0, + }, + '1161': { + NationalDexIndex: 869, + FormIndex: 0, + }, + '1162': { + NationalDexIndex: 870, + FormIndex: 0, + }, + '1163': { + NationalDexIndex: 871, + FormIndex: 0, + }, + '1164': { + NationalDexIndex: 872, + FormIndex: 0, + }, + '1165': { + NationalDexIndex: 873, + FormIndex: 0, + }, + '1166': { + NationalDexIndex: 874, + FormIndex: 0, + }, + '1167': { + NationalDexIndex: 875, + FormIndex: 0, + }, + '1168': { + NationalDexIndex: 876, + FormIndex: 0, + }, + '1169': { + NationalDexIndex: 877, + FormIndex: 0, + }, + '1170': { + NationalDexIndex: 878, + FormIndex: 0, + }, + '1171': { + NationalDexIndex: 879, + FormIndex: 0, + }, + '1172': { + NationalDexIndex: 880, + FormIndex: 0, + }, + '1173': { + NationalDexIndex: 881, + FormIndex: 0, + }, + '1174': { + NationalDexIndex: 882, + FormIndex: 0, + }, + '1175': { + NationalDexIndex: 883, + FormIndex: 0, + }, + '1176': { + NationalDexIndex: 884, + FormIndex: 0, + }, + '1177': { + NationalDexIndex: 885, + FormIndex: 0, + }, + '1178': { + NationalDexIndex: 886, + FormIndex: 0, + }, + '1179': { + NationalDexIndex: 887, + FormIndex: 0, + }, + '1180': { + NationalDexIndex: 888, + FormIndex: 0, + }, + '1181': { + NationalDexIndex: 889, + FormIndex: 0, + }, + '1182': { + NationalDexIndex: 890, + FormIndex: 0, + }, + '1183': { + NationalDexIndex: 891, + FormIndex: 0, + }, + '1184': { + NationalDexIndex: 892, + FormIndex: 0, + }, + '1185': { + NationalDexIndex: 893, + FormIndex: 0, + }, + '1186': { + NationalDexIndex: 920, + FormIndex: 0, + }, + '1187': { + NationalDexIndex: 898, + FormIndex: 0, + }, + '1188': { + NationalDexIndex: 894, + FormIndex: 0, + }, + '1189': { + NationalDexIndex: 895, + FormIndex: 0, + }, + '1190': { + NationalDexIndex: 845, + FormIndex: 1, + }, + '1191': { + NationalDexIndex: 845, + FormIndex: 2, + }, + '1192': { + NationalDexIndex: 849, + FormIndex: 1, + }, + '1193': { + NationalDexIndex: 1007, + FormIndex: 0, + }, + '1194': { + NationalDexIndex: 1008, + FormIndex: 0, + }, + '1195': { + NationalDexIndex: 996, + FormIndex: 0, + }, + '1196': { + NationalDexIndex: 997, + FormIndex: 0, + }, + '1197': { + NationalDexIndex: 998, + FormIndex: 0, + }, + '1198': { + NationalDexIndex: 948, + FormIndex: 0, + }, + '1199': { + NationalDexIndex: 949, + FormIndex: 0, + }, + '1200': { + NationalDexIndex: 919, + FormIndex: 0, + }, + '1201': { + NationalDexIndex: 875, + FormIndex: 1, + }, + '1202': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '1203': { + NationalDexIndex: 877, + FormIndex: 1, + }, + '1204': { + NationalDexIndex: 888, + FormIndex: 1, + }, + '1205': { + NationalDexIndex: 889, + FormIndex: 1, + }, + '1206': { + NationalDexIndex: 890, + FormIndex: 1, + }, + '1207': { + NationalDexIndex: 892, + FormIndex: 1, + }, + '1208': { + NationalDexIndex: 52, + FormIndex: 2, + }, + '1209': { + NationalDexIndex: 77, + FormIndex: 1, + }, + '1210': { + NationalDexIndex: 78, + FormIndex: 1, + }, + '1211': { + NationalDexIndex: 79, + FormIndex: 1, + }, + '1212': { + NationalDexIndex: 80, + FormIndex: 2, + }, + '1213': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '1214': { + NationalDexIndex: 109, + FormIndex: 0, + }, + '1215': { + NationalDexIndex: 110, + FormIndex: 1, + }, + '1216': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '1217': { + NationalDexIndex: 144, + FormIndex: 1, + }, + '1218': { + NationalDexIndex: 145, + FormIndex: 1, + }, + '1219': { + NationalDexIndex: 146, + FormIndex: 1, + }, + '1220': { + NationalDexIndex: 199, + FormIndex: 1, + }, + '1221': { + NationalDexIndex: 222, + FormIndex: 1, + }, + '1222': { + NationalDexIndex: 263, + FormIndex: 1, + }, + '1223': { + NationalDexIndex: 264, + FormIndex: 1, + }, + '1224': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '1225': { + NationalDexIndex: 554, + FormIndex: 1, + }, + '1226': { + NationalDexIndex: 555, + FormIndex: 2, + }, + '1227': { + NationalDexIndex: 555, + FormIndex: 3, + }, + '1228': { + NationalDexIndex: 562, + FormIndex: 1, + }, + '1229': { + NationalDexIndex: 618, + FormIndex: 1, + }, + '1230': { + NationalDexIndex: 995, + FormIndex: 0, + }, + '1231': { + NationalDexIndex: 991, + FormIndex: 0, + }, + '1232': { + NationalDexIndex: 1006, + FormIndex: 0, + }, + '1233': { + NationalDexIndex: 12, + FormIndex: 0, + }, + '1234': { + NationalDexIndex: 128, + FormIndex: 0, + }, + '1235': { + NationalDexIndex: 128, + FormIndex: 0, + }, + '1236': { + NationalDexIndex: 68, + FormIndex: 0, + }, + '1237': { + NationalDexIndex: 984, + FormIndex: 0, + }, + '1238': { + NationalDexIndex: 99, + FormIndex: 0, + }, + '1239': { + NationalDexIndex: 131, + FormIndex: 0, + }, + '1240': { + NationalDexIndex: 128, + FormIndex: 0, + }, + '1241': { + NationalDexIndex: 143, + FormIndex: 0, + }, + '1242': { + NationalDexIndex: 569, + FormIndex: 0, + }, + '1243': { + // Bruce Bonnet + NationalDexIndex: 986, + FormIndex: 0, + }, + '1244': { + // Sandy Shocks + NationalDexIndex: 989, + FormIndex: 0, + }, + '1245': { + // Scream Tail + NationalDexIndex: 985, + FormIndex: 0, + }, + '1246': { + // Flutter Mane + NationalDexIndex: 987, + FormIndex: 0, + }, + '1247': { + // Iron Moth + NationalDexIndex: 994, + FormIndex: 0, + }, + '1248': { + NationalDexIndex: 826, + FormIndex: 0, + }, + '1249': { + NationalDexIndex: 834, + FormIndex: 0, + }, + '1250': { + NationalDexIndex: 839, + FormIndex: 0, + }, + '1251': { + NationalDexIndex: 841, + FormIndex: 0, + }, + '1252': { + NationalDexIndex: 842, + FormIndex: 0, + }, + '1253': { + NationalDexIndex: 844, + FormIndex: 0, + }, + '1254': { + NationalDexIndex: 849, + FormIndex: 0, + }, + '1255': { + NationalDexIndex: 988, + FormIndex: 0, + }, + '1256': { + NationalDexIndex: 851, + FormIndex: 0, + }, + '1257': { + NationalDexIndex: 1005, + FormIndex: 0, + }, + '1258': { + NationalDexIndex: 990, + FormIndex: 0, + }, + '1259': { + NationalDexIndex: 869, + FormIndex: 0, + }, + '1260': { + NationalDexIndex: 879, + FormIndex: 0, + }, + '1261': { + NationalDexIndex: 884, + FormIndex: 0, + }, + '1262': { + NationalDexIndex: 992, + FormIndex: 0, + }, + '1263': { + NationalDexIndex: 993, + FormIndex: 0, + }, + '1264': { + NationalDexIndex: 898, + FormIndex: 0, + }, + '1265': { + NationalDexIndex: 898, + FormIndex: 0, + }, + '1266': { + NationalDexIndex: 897, + FormIndex: 0, + }, + '1267': { + NationalDexIndex: 896, + FormIndex: 0, + }, + '1268': { + NationalDexIndex: 902, + FormIndex: 0, + }, + '1269': { + NationalDexIndex: 628, + FormIndex: 1, + }, + '1270': { + NationalDexIndex: 899, + FormIndex: 0, + }, + '1271': { + NationalDexIndex: 58, + FormIndex: 1, + }, + '1272': { + NationalDexIndex: 59, + FormIndex: 1, + }, + '1273': { + NationalDexIndex: 900, + FormIndex: 0, + }, + '1274': { + NationalDexIndex: 522, + FormIndex: 0, + }, + '1275': { + NationalDexIndex: 523, + FormIndex: 0, + }, + '1276': { + NationalDexIndex: 84, + FormIndex: 0, + }, + '1277': { + NationalDexIndex: 85, + FormIndex: 0, + }, + '1278': { + NationalDexIndex: 216, + FormIndex: 0, + }, + '1279': { + NationalDexIndex: 217, + FormIndex: 0, + }, + '1280': { + NationalDexIndex: 570, + FormIndex: 1, + }, + '1281': { + NationalDexIndex: 571, + FormIndex: 1, + }, + '1282': { + NationalDexIndex: 455, + FormIndex: 0, + }, + '1283': { + NationalDexIndex: 458, + FormIndex: 0, + }, + '1284': { + NationalDexIndex: 226, + FormIndex: 0, + }, + '1285': { + NationalDexIndex: 349, + FormIndex: 0, + }, + '1286': { + NationalDexIndex: 350, + FormIndex: 0, + }, + '1287': { + NationalDexIndex: 692, + FormIndex: 0, + }, + '1288': { + NationalDexIndex: 693, + FormIndex: 0, + }, + '1289': { + NationalDexIndex: 850, + FormIndex: 0, + }, + '1290': { + NationalDexIndex: 851, + FormIndex: 0, + }, + '1291': { + NationalDexIndex: 851, + FormIndex: 0, + }, + '1292': { + NationalDexIndex: 746, + FormIndex: 0, + }, + '1293': { + NationalDexIndex: 746, + FormIndex: 0, + }, + '1294': { + NationalDexIndex: 781, + FormIndex: 0, + }, + '1295': { + NationalDexIndex: 100, + FormIndex: 1, + }, + '1296': { + NationalDexIndex: 101, + FormIndex: 1, + }, + '1297': { + NationalDexIndex: 705, + FormIndex: 1, + }, + '1298': { + NationalDexIndex: 706, + FormIndex: 1, + }, + '1299': { + NationalDexIndex: 157, + FormIndex: 1, + }, + '1300': { + NationalDexIndex: 503, + FormIndex: 1, + }, + '1301': { + NationalDexIndex: 724, + FormIndex: 1, + }, + '1302': { + NationalDexIndex: 901, + FormIndex: 0, + }, + '1303': { + NationalDexIndex: 549, + FormIndex: 1, + }, + '1304': { + NationalDexIndex: 215, + FormIndex: 1, + }, + '1305': { + NationalDexIndex: 903, + FormIndex: 0, + }, + '1306': { + NationalDexIndex: -1, + FormIndex: -1, + }, + '1307': { + NationalDexIndex: 211, + FormIndex: 1, + }, + '1308': { + NationalDexIndex: 904, + FormIndex: 0, + }, + '1309': { + NationalDexIndex: 713, + FormIndex: 1, + }, + '1310': { + NationalDexIndex: 483, + FormIndex: 1, + }, + '1311': { + NationalDexIndex: 484, + FormIndex: 1, + }, + '1312': { + NationalDexIndex: 905, + FormIndex: 0, + }, + '1313': { + NationalDexIndex: 905, + FormIndex: 1, + }, + '1314': { + NationalDexIndex: 917, + FormIndex: 0, + }, + '1315': { + NationalDexIndex: 918, + FormIndex: 0, + }, + '1316': { + NationalDexIndex: 919, + FormIndex: 0, + }, + '1317': { + NationalDexIndex: 920, + FormIndex: 0, + }, + '1318': { + NationalDexIndex: 953, + FormIndex: 0, + }, + '1319': { + NationalDexIndex: 954, + FormIndex: 0, + }, + '1320': { + NationalDexIndex: 955, + FormIndex: 0, + }, + '1321': { + NationalDexIndex: 956, + FormIndex: 0, + }, + '1322': { + NationalDexIndex: 977, + FormIndex: 0, + }, + '1323': { + NationalDexIndex: 976, + FormIndex: 0, + }, + '1324': { + NationalDexIndex: 928, + FormIndex: 0, + }, + '1325': { + NationalDexIndex: 929, + FormIndex: 0, + }, + '1326': { + NationalDexIndex: 930, + FormIndex: 0, + }, + '1327': { + NationalDexIndex: 951, + FormIndex: 0, + }, + '1328': { + NationalDexIndex: 952, + FormIndex: 0, + }, + '1329': { + NationalDexIndex: 968, + FormIndex: 0, + }, + '1330': { + NationalDexIndex: 924, + FormIndex: 0, + }, + '1331': { + NationalDexIndex: 925, + FormIndex: 0, + }, + '1332': { + NationalDexIndex: 974, + FormIndex: 0, + }, + '1333': { + NationalDexIndex: 975, + FormIndex: 0, + }, + '1334': { + NationalDexIndex: 978, + FormIndex: 0, + }, + '1335': { + NationalDexIndex: 940, + FormIndex: 0, + }, + '1336': { + NationalDexIndex: 941, + FormIndex: 0, + }, + '1337': { + NationalDexIndex: 962, + FormIndex: 0, + }, + '1338': { + NationalDexIndex: 931, + FormIndex: 0, + }, + '1339': { + NationalDexIndex: 973, + FormIndex: 0, + }, + '1340': { + NationalDexIndex: 932, + FormIndex: 0, + }, + '1341': { + NationalDexIndex: 933, + FormIndex: 0, + }, + '1342': { + NationalDexIndex: 934, + FormIndex: 0, + }, + '1343': { + NationalDexIndex: 969, + FormIndex: 0, + }, + '1344': { + NationalDexIndex: 970, + FormIndex: 0, + }, + '1345': { + NationalDexIndex: 944, + FormIndex: 0, + }, + '1346': { + NationalDexIndex: 945, + FormIndex: 0, + }, + '1347': { + NationalDexIndex: 926, + FormIndex: 0, + }, + '1348': { + NationalDexIndex: 927, + FormIndex: 0, + }, + '1349': { + NationalDexIndex: 942, + FormIndex: 0, + }, + '1350': { + NationalDexIndex: 943, + FormIndex: 0, + }, + '1351': { + NationalDexIndex: 946, + FormIndex: 0, + }, + '1352': { + NationalDexIndex: 947, + FormIndex: 0, + }, + '1353': { + NationalDexIndex: 1010, + FormIndex: 0, + }, + '1354': { + NationalDexIndex: 1009, + FormIndex: 0, + }, + '1355': { + NationalDexIndex: 931, + FormIndex: 2, + }, + '1356': { + NationalDexIndex: 901, + FormIndex: 1, + }, + '1357': { + NationalDexIndex: 1017, + FormIndex: 0, + }, + '1358': { + NationalDexIndex: 1017, + FormIndex: 0, + }, + '1359': { + NationalDexIndex: 1017, + FormIndex: 0, + }, + '1360': { + NationalDexIndex: 1017, + FormIndex: 0, + }, + '1361': { + NationalDexIndex: 1012, + FormIndex: 0, + }, + '1362': { + NationalDexIndex: 1013, + FormIndex: 0, + }, + '1363': { + NationalDexIndex: 1011, + FormIndex: 0, + }, + '1364': { + NationalDexIndex: 1016, + FormIndex: 0, + }, + '1365': { + NationalDexIndex: 1015, + FormIndex: 0, + }, + '1366': { + NationalDexIndex: 1014, + FormIndex: 0, + }, + '1367': { + NationalDexIndex: 1021, + FormIndex: 0, + }, + '1368': { + NationalDexIndex: 1023, + FormIndex: 0, + }, + '1369': { + NationalDexIndex: 1018, + FormIndex: 0, + }, + '1370': { + NationalDexIndex: 1024, + FormIndex: 0, + }, + '1371': { + NationalDexIndex: 1019, + FormIndex: 0, + }, + '1372': { + NationalDexIndex: 1025, + FormIndex: 0, + }, + '1373': { + NationalDexIndex: 1022, + FormIndex: 0, + }, + '1374': { + NationalDexIndex: 1020, + FormIndex: 0, + }, + '1375': { + NationalDexIndex: -1, + FormIndex: -1, + }, +} + +export const NationalDexToRadicalRedMap: Record = {} + +for (const key in RadicalRedToNationalDexMap) { + const entry = RadicalRedToNationalDexMap[key] + const newKey = `${entry.NationalDexIndex}_${entry.FormIndex}` + + if (entry.NationalDexIndex === -1) continue + + if (!(newKey in NationalDexToRadicalRedMap)) { + NationalDexToRadicalRedMap[newKey] = key + } +} diff --git a/src/types/SAVTypes/radicalred/conversion/RadicalRedSprites.ts b/src/types/SAVTypes/radicalred/conversion/RadicalRedSprites.ts new file mode 100644 index 00000000..7e4c1b19 --- /dev/null +++ b/src/types/SAVTypes/radicalred/conversion/RadicalRedSprites.ts @@ -0,0 +1,1333 @@ +export const RRSprites = { + '0': 'None.png', + '1': 'Bulbasaur.png', + '2': 'Ivysaur.png', + '3': 'Venusaur.png', + '4': 'Charmander.png', + '5': 'Charmeleon.png', + '6': 'Charizard.png', + '7': 'Squirtle.png', + '8': 'Wartortle.png', + '9': 'Blastoise.png', + '10': 'Caterpie.png', + '11': 'Metapod.png', + '12': 'Butterfree.png', + '13': 'Weedle.png', + '14': 'Kakuna.png', + '15': 'Beedrill.png', + '16': 'Pidgey.png', + '17': 'Pidgeotto.png', + '18': 'Pidgeot.png', + '19': 'Rattata.png', + '20': 'Raticate.png', + '21': 'Spearow.png', + '22': 'Fearow.png', + '23': 'Ekans.png', + '24': 'Arbok.png', + '25': 'Pikachu.png', + '26': 'Raichu.png', + '27': 'Sandshrew.png', + '28': 'Sandslash.png', + '29': 'NidoranF.png', + '30': 'Nidorina.png', + '31': 'Nidoqueen.png', + '32': 'NidoranM.png', + '33': 'Nidorino.png', + '34': 'Nidoking.png', + '35': 'Clefairy.png', + '36': 'Clefable.png', + '37': 'Vulpix.png', + '38': 'Ninetales.png', + '39': 'Jigglypuff.png', + '40': 'Wigglytuff.png', + '41': 'Zubat.png', + '42': 'Golbat.png', + '43': 'Oddish.png', + '44': 'Gloom.png', + '45': 'Vileplume.png', + '46': 'Paras.png', + '47': 'Parasect.png', + '48': 'Venonat.png', + '49': 'Venomoth.png', + '50': 'Diglett.png', + '51': 'Dugtrio.png', + '52': 'Meowth.png', + '53': 'Persian.png', + '54': 'Psyduck.png', + '55': 'Golduck.png', + '56': 'Mankey.png', + '57': 'Primeape.png', + '58': 'Growlithe.png', + '59': 'Arcanine.png', + '60': 'Poliwag.png', + '61': 'Poliwhirl.png', + '62': 'Poliwrath.png', + '63': 'Abra.png', + '64': 'Kadabra.png', + '65': 'Alakazam.png', + '66': 'Machop.png', + '67': 'Machoke.png', + '68': 'Machamp.png', + '69': 'Bellsprout.png', + '70': 'Weepinbell.png', + '71': 'Victreebel.png', + '72': 'Tentacool.png', + '73': 'Tentacruel.png', + '74': 'Geodude.png', + '75': 'Graveler.png', + '76': 'Golem.png', + '77': 'Ponyta.png', + '78': 'Rapidash.png', + '79': 'Slowpoke.png', + '80': 'Slowbro.png', + '81': 'Magnemite.png', + '82': 'Magneton.png', + '83': 'Farfetchd.png', + '84': 'Doduo.png', + '85': 'Dodrio.png', + '86': 'Seel.png', + '87': 'Dewgong.png', + '88': 'Grimer.png', + '89': 'Muk.png', + '90': 'Shellder.png', + '91': 'Cloyster.png', + '92': 'Gastly.png', + '93': 'Haunter.png', + '94': 'Gengar.png', + '95': 'Onix.png', + '96': 'Drowzee.png', + '97': 'Hypno.png', + '98': 'Krabby.png', + '99': 'Kingler.png', + '100': 'Voltorb.png', + '101': 'Electrode.png', + '102': 'Exeggcute.png', + '103': 'Exeggutor.png', + '104': 'Cubone.png', + '105': 'Marowak.png', + '106': 'Hitmonlee.png', + '107': 'Hitmonchan.png', + '108': 'Lickitung.png', + '109': 'Koffing.png', + '110': 'Weezing.png', + '111': 'Rhyhorn.png', + '112': 'Rhydon.png', + '113': 'Chansey.png', + '114': 'Tangela.png', + '115': 'Kangaskhan.png', + '116': 'Horsea.png', + '117': 'Seadra.png', + '118': 'Goldeen.png', + '119': 'Seaking.png', + '120': 'Staryu.png', + '121': 'Starmie.png', + '122': 'MrMime.png', + '123': 'Scyther.png', + '124': 'Jynx.png', + '125': 'Electabuzz.png', + '126': 'Magmar.png', + '127': 'Pinsir.png', + '128': 'Tauros.png', + '129': 'Magikarp.png', + '130': 'Gyarados.png', + '131': 'Lapras.png', + '132': 'Ditto.png', + '133': 'Eevee.png', + '134': 'Vaporeon.png', + '135': 'Jolteon.png', + '136': 'Flareon.png', + '137': 'Porygon.png', + '138': 'Omanyte.png', + '139': 'Omastar.png', + '140': 'Kabuto.png', + '141': 'Kabutops.png', + '142': 'Aerodactyl.png', + '143': 'Snorlax.png', + '144': 'Articuno.png', + '145': 'Zapdos.png', + '146': 'Moltres.png', + '147': 'Dratini.png', + '148': 'Dragonair.png', + '149': 'Dragonite.png', + '150': 'Mewtwo.png', + '151': 'Mew.png', + '152': 'Chikorita.png', + '153': 'Bayleef.png', + '154': 'Meganium.png', + '155': 'Cyndaquil.png', + '156': 'Quilava.png', + '157': 'Typhlosion.png', + '158': 'Totodile.png', + '159': 'Croconaw.png', + '160': 'Feraligatr.png', + '161': 'Sentret.png', + '162': 'Furret.png', + '163': 'Hoothoot.png', + '164': 'Noctowl.png', + '165': 'Ledyba.png', + '166': 'Ledian.png', + '167': 'Spinarak.png', + '168': 'Ariados.png', + '169': 'Crobat.png', + '170': 'Chinchou.png', + '171': 'Lanturn.png', + '172': 'Pichu.png', + '173': 'Cleffa.png', + '174': 'Igglybuff.png', + '175': 'Togepi.png', + '176': 'Togetic.png', + '177': 'Natu.png', + '178': 'Xatu.png', + '179': 'Mareep.png', + '180': 'Flaaffy.png', + '181': 'Ampharos.png', + '182': 'Bellossom.png', + '183': 'Marill.png', + '184': 'Azumarill.png', + '185': 'Sudowoodo.png', + '186': 'Politoed.png', + '187': 'Hoppip.png', + '188': 'Skiploom.png', + '189': 'Jumpluff.png', + '190': 'Aipom.png', + '191': 'Sunkern.png', + '192': 'Sunflora.png', + '193': 'Yanma.png', + '194': 'Wooper.png', + '195': 'Quagsire.png', + '196': 'Espeon.png', + '197': 'Umbreon.png', + '198': 'Murkrow.png', + '199': 'Slowking.png', + '200': 'Misdreavus.png', + '201': 'Unown.png', + '202': 'Wobbuffet.png', + '203': 'Girafarig.png', + '204': 'Pineco.png', + '205': 'Forretress.png', + '206': 'Dunsparce.png', + '207': 'Gligar.png', + '208': 'Steelix.png', + '209': 'Snubbull.png', + '210': 'Granbull.png', + '211': 'Qwilfish.png', + '212': 'Scizor.png', + '213': 'Shuckle.png', + '214': 'Heracross.png', + '215': 'Sneasel.png', + '216': 'Teddiursa.png', + '217': 'Ursaring.png', + '218': 'Slugma.png', + '219': 'Magcargo.png', + '220': 'Swinub.png', + '221': 'Piloswine.png', + '222': 'Corsola.png', + '223': 'Remoraid.png', + '224': 'Octillery.png', + '225': 'Delibird.png', + '226': 'Mantine.png', + '227': 'Skarmory.png', + '228': 'Houndour.png', + '229': 'Houndoom.png', + '230': 'Kingdra.png', + '231': 'Phanpy.png', + '232': 'Donphan.png', + '233': 'Porygon2.png', + '234': 'Stantler.png', + '235': 'Smeargle.png', + '236': 'Tyrogue.png', + '237': 'Hitmontop.png', + '238': 'Smoochum.png', + '239': 'Elekid.png', + '240': 'Magby.png', + '241': 'Miltank.png', + '242': 'Blissey.png', + '243': 'Raikou.png', + '244': 'Entei.png', + '245': 'Suicune.png', + '246': 'Larvitar.png', + '247': 'Pupitar.png', + '248': 'Tyranitar.png', + '249': 'Lugia.png', + '250': 'HoOh.png', + '251': 'Celebi.png', + '277': 'Treecko.png', + '278': 'Grovyle.png', + '279': 'Sceptile.png', + '280': 'Torchic.png', + '281': 'Combusken.png', + '282': 'Blaziken.png', + '283': 'Mudkip.png', + '284': 'Marshtomp.png', + '285': 'Swampert.png', + '286': 'Poochyena.png', + '287': 'Mightyena.png', + '288': 'Zigzagoon.png', + '289': 'Linoone.png', + '290': 'Wurmple.png', + '291': 'Silcoon.png', + '292': 'Beautifly.png', + '293': 'Cascoon.png', + '294': 'Dustox.png', + '295': 'Lotad.png', + '296': 'Lombre.png', + '297': 'Ludicolo.png', + '298': 'Seedot.png', + '299': 'Nuzleaf.png', + '300': 'Shiftry.png', + '301': 'Nincada.png', + '302': 'Ninjask.png', + '303': 'Shedinja.png', + '304': 'Taillow.png', + '305': 'Swellow.png', + '306': 'Shroomish.png', + '307': 'Breloom.png', + '308': 'Spinda.png', + '309': 'Wingull.png', + '310': 'Pelipper.png', + '311': 'Surskit.png', + '312': 'Masquerain.png', + '313': 'Wailmer.png', + '314': 'Wailord.png', + '315': 'Skitty.png', + '316': 'Delcatty.png', + '317': 'Kecleon.png', + '318': 'Baltoy.png', + '319': 'Claydol.png', + '320': 'Nosepass.png', + '321': 'Torkoal.png', + '322': 'Sableye.png', + '323': 'Barboach.png', + '324': 'Whiscash.png', + '325': 'Luvdisc.png', + '326': 'Corphish.png', + '327': 'Crawdaunt.png', + '328': 'Feebas.png', + '329': 'Milotic.png', + '330': 'Carvanha.png', + '331': 'Sharpedo.png', + '332': 'Trapinch.png', + '333': 'Vibrava.png', + '334': 'Flygon.png', + '335': 'Makuhita.png', + '336': 'Hariyama.png', + '337': 'Electrike.png', + '338': 'Manectric.png', + '339': 'Numel.png', + '340': 'Camerupt.png', + '341': 'Spheal.png', + '342': 'Sealeo.png', + '343': 'Walrein.png', + '344': 'Cacnea.png', + '345': 'Cacturne.png', + '346': 'Snorunt.png', + '347': 'Glalie.png', + '348': 'Lunatone.png', + '349': 'Solrock.png', + '350': 'Azurill.png', + '351': 'Spoink.png', + '352': 'Grumpig.png', + '353': 'Plusle.png', + '354': 'Minun.png', + '355': 'Mawile.png', + '356': 'Meditite.png', + '357': 'Medicham.png', + '358': 'Swablu.png', + '359': 'Altaria.png', + '360': 'Wynaut.png', + '361': 'Duskull.png', + '362': 'Dusclops.png', + '363': 'Roselia.png', + '364': 'Slakoth.png', + '365': 'Vigoroth.png', + '366': 'Slaking.png', + '367': 'Gulpin.png', + '368': 'Swalot.png', + '369': 'Tropius.png', + '370': 'Whismur.png', + '371': 'Loudred.png', + '372': 'Exploud.png', + '373': 'Clamperl.png', + '374': 'Huntail.png', + '375': 'Gorebyss.png', + '376': 'Absol.png', + '377': 'Shuppet.png', + '378': 'Banette.png', + '379': 'Seviper.png', + '380': 'Zangoose.png', + '381': 'Relicanth.png', + '382': 'Aron.png', + '383': 'Lairon.png', + '384': 'Aggron.png', + '385': 'Castform.png', + '386': 'Volbeat.png', + '387': 'Illumise.png', + '388': 'Lileep.png', + '389': 'Cradily.png', + '390': 'Anorith.png', + '391': 'Armaldo.png', + '392': 'Ralts.png', + '393': 'Kirlia.png', + '394': 'Gardevoir.png', + '395': 'Bagon.png', + '396': 'Shelgon.png', + '397': 'Salamence.png', + '398': 'Beldum.png', + '399': 'Metang.png', + '400': 'Metagross.png', + '401': 'Regirock.png', + '402': 'Regice.png', + '403': 'Registeel.png', + '404': 'Kyogre.png', + '405': 'Groudon.png', + '406': 'Rayquaza.png', + '407': 'Latias.png', + '408': 'Latios.png', + '409': 'Jirachi.png', + '410': 'Deoxys.png', + '411': 'Chimecho.png', + '412': 'Egg.png', + '413': 'UnownB.png', + '414': 'UnownC.png', + '415': 'UnownD.png', + '416': 'UnownE.png', + '417': 'UnownF.png', + '418': 'UnownG.png', + '419': 'UnownH.png', + '420': 'UnownI.png', + '421': 'UnownJ.png', + '422': 'UnownK.png', + '423': 'UnownL.png', + '424': 'UnownM.png', + '425': 'UnownN.png', + '426': 'UnownO.png', + '427': 'UnownP.png', + '428': 'UnownQ.png', + '429': 'UnownR.png', + '430': 'UnownS.png', + '431': 'UnownT.png', + '432': 'UnownU.png', + '433': 'UnownV.png', + '434': 'UnownW.png', + '435': 'UnownX.png', + '436': 'UnownY.png', + '437': 'UnownZ.png', + '438': 'UnownExclamation.png', + '439': 'UnownQuestion.png', + '440': 'Turtwig.png', + '441': 'Grotle.png', + '442': 'Torterra.png', + '443': 'Chimchar.png', + '444': 'Monferno.png', + '445': 'Infernape.png', + '446': 'Piplup.png', + '447': 'Prinplup.png', + '448': 'Empoleon.png', + '449': 'Starly.png', + '450': 'Staravia.png', + '451': 'Staraptor.png', + '452': 'Bidoof.png', + '453': 'Bibarel.png', + '454': 'Kricketot.png', + '455': 'Kricketune.png', + '456': 'Shinx.png', + '457': 'Luxio.png', + '458': 'Luxray.png', + '459': 'Budew.png', + '460': 'Roserade.png', + '461': 'Cranidos.png', + '462': 'Rampardos.png', + '463': 'Shieldon.png', + '464': 'Bastiodon.png', + '465': 'Burmy.png', + '466': 'Wormadam.png', + '467': 'Mothim.png', + '468': 'Combee.png', + '469': 'Vespiquen.png', + '470': 'Pachirisu.png', + '471': 'Buizel.png', + '472': 'Floatzel.png', + '473': 'Cherubi.png', + '474': 'Cherrim.png', + '475': 'Shellos.png', + '476': 'Gastrodon.png', + '477': 'Ambipom.png', + '478': 'Drifloon.png', + '479': 'Drifblim.png', + '480': 'Buneary.png', + '481': 'Lopunny.png', + '482': 'Mismagius.png', + '483': 'Honchkrow.png', + '484': 'Glameow.png', + '485': 'Purugly.png', + '486': 'Chingling.png', + '487': 'Stunky.png', + '488': 'Skuntank.png', + '489': 'Bronzor.png', + '490': 'Bronzong.png', + '491': 'Bonsly.png', + '492': 'MimeJr.png', + '493': 'Happiny.png', + '494': 'Chatot.png', + '495': 'Spiritomb.png', + '496': 'Gible.png', + '497': 'Gabite.png', + '498': 'Garchomp.png', + '499': 'Munchlax.png', + '500': 'Riolu.png', + '501': 'Lucario.png', + '502': 'Hippopotas.png', + '503': 'Hippowdon.png', + '504': 'Skorupi.png', + '505': 'Drapion.png', + '506': 'Croagunk.png', + '507': 'Toxicroak.png', + '508': 'Carnivine.png', + '509': 'Finneon.png', + '510': 'Lumineon.png', + '511': 'Mantyke.png', + '512': 'Snover.png', + '513': 'Abomasnow.png', + '514': 'Weavile.png', + '515': 'Magnezone.png', + '516': 'Lickilicky.png', + '517': 'Rhyperior.png', + '518': 'Tangrowth.png', + '519': 'Electivire.png', + '520': 'Magmortar.png', + '521': 'Togekiss.png', + '522': 'Yanmega.png', + '523': 'Leafeon.png', + '524': 'Glaceon.png', + '525': 'Gliscor.png', + '526': 'Mamoswine.png', + '527': 'PorygonZ.png', + '528': 'Gallade.png', + '529': 'Probopass.png', + '530': 'Dusknoir.png', + '531': 'Froslass.png', + '532': 'Rotom.png', + '533': 'Uxie.png', + '534': 'Mesprit.png', + '535': 'Azelf.png', + '536': 'Dialga.png', + '537': 'Palkia.png', + '538': 'Heatran.png', + '539': 'Regigigas.png', + '540': 'Giratina.png', + '541': 'Cresselia.png', + '542': 'Phione.png', + '543': 'Manaphy.png', + '544': 'Darkrai.png', + '545': 'Shaymin.png', + '546': 'Arceus.png', + '547': 'Victini.png', + '548': 'Snivy.png', + '549': 'Servine.png', + '550': 'Serperior.png', + '551': 'Tepig.png', + '552': 'Pignite.png', + '553': 'Emboar.png', + '554': 'Oshawott.png', + '555': 'Dewott.png', + '556': 'Samurott.png', + '557': 'Patrat.png', + '558': 'Watchog.png', + '559': 'Lillipup.png', + '560': 'Herdier.png', + '561': 'Stoutland.png', + '562': 'Purrloin.png', + '563': 'Liepard.png', + '564': 'Pansage.png', + '565': 'Simisage.png', + '566': 'Pansear.png', + '567': 'Simisear.png', + '568': 'Panpour.png', + '569': 'Simipour.png', + '570': 'Munna.png', + '571': 'Musharna.png', + '572': 'Pidove.png', + '573': 'Tranquill.png', + '574': 'Unfezant.png', + '575': 'Blitzle.png', + '576': 'Zebstrika.png', + '577': 'Roggenrola.png', + '578': 'Boldore.png', + '579': 'Gigalith.png', + '580': 'Woobat.png', + '581': 'Swoobat.png', + '582': 'Drilbur.png', + '583': 'Excadrill.png', + '584': 'Audino.png', + '585': 'Timburr.png', + '586': 'Gurdurr.png', + '587': 'Conkeldurr.png', + '588': 'Tympole.png', + '589': 'Palpitoad.png', + '590': 'Seismitoad.png', + '591': 'Throh.png', + '592': 'Sawk.png', + '593': 'Sewaddle.png', + '594': 'Swadloon.png', + '595': 'Leavanny.png', + '596': 'Venipede.png', + '597': 'Whirlipede.png', + '598': 'Scolipede.png', + '599': 'Cottonee.png', + '600': 'Whimsicott.png', + '601': 'Petilil.png', + '602': 'Lilligant.png', + '603': 'BasculinRed.png', + '604': 'Sandile.png', + '605': 'Krokorok.png', + '606': 'Krookodile.png', + '607': 'Darumaka.png', + '608': 'Darmanitan.png', + '609': 'Maractus.png', + '610': 'Dwebble.png', + '611': 'Crustle.png', + '612': 'Scraggy.png', + '613': 'Scrafty.png', + '614': 'Sigilyph.png', + '615': 'Yamask.png', + '616': 'Cofagrigus.png', + '617': 'Tirtouga.png', + '618': 'Carracosta.png', + '619': 'Archen.png', + '620': 'Archeops.png', + '621': 'Trubbish.png', + '622': 'Garbodor.png', + '623': 'Zorua.png', + '624': 'Zoroark.png', + '625': 'Minccino.png', + '626': 'Cinccino.png', + '627': 'Gothita.png', + '628': 'Gothorita.png', + '629': 'Gothitelle.png', + '630': 'Solosis.png', + '631': 'Duosion.png', + '632': 'Reuniclus.png', + '633': 'Ducklett.png', + '634': 'Swanna.png', + '635': 'Vanillite.png', + '636': 'Vanillish.png', + '637': 'Vanilluxe.png', + '638': 'Deerling.png', + '639': 'Sawsbuck.png', + '640': 'Emolga.png', + '641': 'Karrablast.png', + '642': 'Escavalier.png', + '643': 'Foongus.png', + '644': 'Amoonguss.png', + '645': 'Frillish.png', + '646': 'Jellicent.png', + '647': 'Alomomola.png', + '648': 'Joltik.png', + '649': 'Galvantula.png', + '650': 'Ferroseed.png', + '651': 'Ferrothorn.png', + '652': 'Klink.png', + '653': 'Klang.png', + '654': 'Klinklang.png', + '655': 'Tynamo.png', + '656': 'Eelektrik.png', + '657': 'Eelektross.png', + '658': 'Elgyem.png', + '659': 'Beheeyem.png', + '660': 'Litwick.png', + '661': 'Lampent.png', + '662': 'Chandelure.png', + '663': 'Axew.png', + '664': 'Fraxure.png', + '665': 'Haxorus.png', + '666': 'Cubchoo.png', + '667': 'Beartic.png', + '668': 'Cryogonal.png', + '669': 'Shelmet.png', + '670': 'Accelgor.png', + '671': 'Stunfisk.png', + '672': 'Mienfoo.png', + '673': 'Mienshao.png', + '674': 'Druddigon.png', + '675': 'Golett.png', + '676': 'Golurk.png', + '677': 'Pawniard.png', + '678': 'Bisharp.png', + '679': 'Bouffalant.png', + '680': 'Rufflet.png', + '681': 'Braviary.png', + '682': 'Vullaby.png', + '683': 'Mandibuzz.png', + '684': 'Heatmor.png', + '685': 'Durant.png', + '686': 'Deino.png', + '687': 'Zweilous.png', + '688': 'Hydreigon.png', + '689': 'Larvesta.png', + '690': 'Volcarona.png', + '691': 'Cobalion.png', + '692': 'Terrakion.png', + '693': 'Virizion.png', + '694': 'Tornadus.png', + '695': 'Thundurus.png', + '696': 'Reshiram.png', + '697': 'Zekrom.png', + '698': 'Landorus.png', + '699': 'Kyurem.png', + '700': 'Keldeo.png', + '701': 'Meloetta.png', + '702': 'Genesect.png', + '703': 'UnfezantF.png', + '704': 'FrillishF.png', + '705': 'JellicentF.png', + '706': 'Klawf.png', + '707': 'BurmySandy.png', + '708': 'BurmyTrash.png', + '709': 'WormadamSandy.png', + '710': 'WormadamTrash.png', + '711': 'ShellosEast.png', + '712': 'GastrodonEast.png', + '713': 'RotomHeat.png', + '714': 'RotomWash.png', + '715': 'RotomFrost.png', + '716': 'RotomFan.png', + '717': 'RotomMow.png', + '718': 'GiratinaOrigin.png', + '719': 'ShayminSky.png', + '720': 'ArceusFight.png', + '721': 'ArceusFlying.png', + '722': 'ArceusPoison.png', + '723': 'ArceusGround.png', + '724': 'ArceusRock.png', + '725': 'ArceusBug.png', + '726': 'ArceusGhost.png', + '727': 'ArceusSteel.png', + '728': 'ArceusFire.png', + '729': 'ArceusWater.png', + '730': 'ArceusGrass.png', + '731': 'ArceusElectric.png', + '732': 'ArceusPsychic.png', + '733': 'ArceusIce.png', + '734': 'ArceusDragon.png', + '735': 'ArceusDark.png', + '736': 'BasculinBlue.png', + '737': 'Darmanitanzen.png', + '738': 'DeerlingSummer.png', + '739': 'DeerlingAutumn.png', + '740': 'DeerlingWinter.png', + '741': 'SawsbuckSummer.png', + '742': 'SawsbuckAutumn.png', + '743': 'SawsbuckWinter.png', + '744': 'HippopotasF.png', + '745': 'HippowdonF.png', + '746': 'MeloettaPirouette.png', + '747': 'TingLu.png', + '748': 'ChienPao.png', + '749': 'WoChien.png', + '750': 'ChiYu.png', + '751': 'CherrimSun.png', + '752': 'KyuremBlack.png', + '753': 'KyuremWhite.png', + '754': 'TornadusTherian.png', + '755': 'ThundurusTherian.png', + '756': 'LandorusTherian.png', + '757': 'KeldeoResolute.png', + '758': 'Chespin.png', + '759': 'Quilladin.png', + '760': 'Chesnaught.png', + '761': 'Fennekin.png', + '762': 'Braixen.png', + '763': 'Delphox.png', + '764': 'Froakie.png', + '765': 'Frogadier.png', + '766': 'Greninja.png', + '767': 'Bunnelby.png', + '768': 'Diggersby.png', + '769': 'Fletchling.png', + '770': 'Fletchinder.png', + '771': 'Talonflame.png', + '772': 'Scatterbug.png', + '773': 'Spewpa.png', + '774': 'Vivillon.png', + '775': 'Litleo.png', + '776': 'Pyroar.png', + '777': 'Flabebe.png', + '778': 'Floette.png', + '779': 'Florges.png', + '780': 'Skiddo.png', + '781': 'Gogoat.png', + '782': 'Pancham.png', + '783': 'Pangoro.png', + '784': 'Furfrou.png', + '785': 'Espurr.png', + '786': 'Meowstic.png', + '787': 'Honedge.png', + '788': 'Doublade.png', + '789': 'Aegislash.png', + '790': 'Spritzee.png', + '791': 'Aromatisse.png', + '792': 'Swirlix.png', + '793': 'Slurpuff.png', + '794': 'Inkay.png', + '795': 'Malamar.png', + '796': 'Binacle.png', + '797': 'Barbaracle.png', + '798': 'Skrelp.png', + '799': 'Dragalge.png', + '800': 'Clauncher.png', + '801': 'Clawitzer.png', + '802': 'Helioptile.png', + '803': 'Heliolisk.png', + '804': 'Tyrunt.png', + '805': 'Tyrantrum.png', + '806': 'Amaura.png', + '807': 'Aurorus.png', + '808': 'Sylveon.png', + '809': 'Hawlucha.png', + '810': 'Dedenne.png', + '811': 'Carbink.png', + '812': 'Goomy.png', + '813': 'Sliggoo.png', + '814': 'Goodra.png', + '815': 'Klefki.png', + '816': 'Phantump.png', + '817': 'Trevenant.png', + '818': 'Pumpkaboo.png', + '819': 'Gourgeist.png', + '820': 'Bergmite.png', + '821': 'Avalugg.png', + '822': 'Noibat.png', + '823': 'Noivern.png', + '824': 'Xerneas.png', + '825': 'Yveltal.png', + '826': 'Zygarde.png', + '827': 'Diancie.png', + '828': 'Hoopa.png', + '829': 'HoopaUnbound.png', + '830': 'Volcanion.png', + '831': 'PyroarFemale.png', + '832': 'MeowsticFemale.png', + '833': 'AegislashBlade.png', + '834': 'ArceusFairy.png', + '835': 'Varoom.png', + '836': 'Revavroom.png', + '837': 'Zygarde10.png', + '838': 'ZygardeComplete.png', + '839': 'Ashgreninja.png', + '840': 'Tinkatink.png', + '841': 'Tinkatuff.png', + '842': 'Tinkaton.png', + '843': 'Pawmi.png', + '844': 'Pawmo.png', + '845': 'Pawmot.png', + '846': 'Lechonk.png', + '847': 'Oinkologne.png', + '848': 'FloetteEternal.png', + '849': 'OinkologneF.png', + '850': 'GimmighoulChest.png', + '851': 'GimmighoulRoam.png', + '852': 'Gholdengo.png', + '853': 'PumpkabooXl.png', + '854': 'PumpkabooL.png', + '855': 'PumpkabooM.png', + '856': 'GourgeistXl.png', + '857': 'GourgeistL.png', + '858': 'GourgeistM.png', + '859': 'Greavard.png', + '860': 'Houndstone.png', + '861': 'Tadbulb.png', + '862': 'Bellibolt.png', + '863': 'Finizen.png', + '864': 'Palafin.png', + '865': 'PalafinHero.png', + '866': 'NoibatS.png', + '867': 'NoivernS.png', + '868': 'Farigiraf.png', + '869': 'VenusaurMega.png', + '870': 'CharizardMegaX.png', + '871': 'CharizardMegaY.png', + '872': 'BlastoiseMega.png', + '873': 'BeedrillMega.png', + '874': 'PidgeotMega.png', + '875': 'AlakazamMega.png', + '876': 'SlowbroMega.png', + '877': 'GengarMega.png', + '878': 'KangaskhanMega.png', + '879': 'PinsirMega.png', + '880': 'GyaradosMega.png', + '881': 'AerodactylMega.png', + '882': 'MewtwoMegaX.png', + '883': 'MewtwoMegaY.png', + '884': 'AmpharosMega.png', + '885': 'SteelixMega.png', + '886': 'ScizorMega.png', + '887': 'HeracrossMega.png', + '888': 'HoundoomMega.png', + '889': 'TyranitarMega.png', + '890': 'SceptileMega.png', + '891': 'BlazikenMega.png', + '892': 'SwampertMega.png', + '893': 'GardevoirMega.png', + '894': 'SableyeMega.png', + '895': 'MawileMega.png', + '896': 'AggronMega.png', + '897': 'MedichamMega.png', + '898': 'ManectricMega.png', + '899': 'SharpedoMega.png', + '900': 'CameruptMega.png', + '901': 'AltariaMega.png', + '902': 'BanetteMega.png', + '903': 'AbsolMega.png', + '904': 'GlalieMega.png', + '905': 'SalamenceMega.png', + '906': 'MetagrossMega.png', + '907': 'LatiasMega.png', + '908': 'LatiosMega.png', + '909': 'GroudonPrimal.png', + '910': 'KyogrePrimal.png', + '911': 'RayquazaMega.png', + '912': 'LopunnyMega.png', + '913': 'GarchompMega.png', + '914': 'LucarioMega.png', + '915': 'AbomasnowMega.png', + '916': 'GalladeMega.png', + '917': 'AudinoMega.png', + '918': 'DiancieMega.png', + '919': 'DialgaPrimal.png', + '920': 'PalkiaPrimal.png', + '921': 'Sprigatito.png', + '922': 'Floragato.png', + '923': 'Meowscarada.png', + '924': 'Fuecoco.png', + '925': 'Crocalor.png', + '926': 'Skeledirge.png', + '927': 'Quaxly.png', + '928': 'Quaxwell.png', + '929': 'Quaquaval.png', + '930': 'WooperP.png', + '931': 'Clodsire.png', + '932': 'Wiglett.png', + '933': 'Wugtrio.png', + '934': 'Ceruledge.png', + '935': 'Armarouge.png', + '936': 'Kingambit.png', + '937': 'Annihilape.png', + '938': 'Charcadet.png', + '939': 'Rowlet.png', + '940': 'Dartrix.png', + '941': 'Decidueye.png', + '942': 'Litten.png', + '943': 'Torracat.png', + '944': 'Incineroar.png', + '945': 'Popplio.png', + '946': 'Brionne.png', + '947': 'Primarina.png', + '948': 'Pikipek.png', + '949': 'Trumbeak.png', + '950': 'Toucannon.png', + '951': 'Yungoos.png', + '952': 'Gumshoos.png', + '953': 'Grubbin.png', + '954': 'Charjabug.png', + '955': 'Vikavolt.png', + '956': 'Crabrawler.png', + '957': 'Crabominable.png', + '958': 'Oricorio.png', + '959': 'Cutiefly.png', + '960': 'Ribombee.png', + '961': 'Rockruff.png', + '962': 'Lycanroc.png', + '963': 'Wishiwashi.png', + '964': 'Mareanie.png', + '965': 'Toxapex.png', + '966': 'Mudbray.png', + '967': 'Mudsdale.png', + '968': 'Dewpider.png', + '969': 'Araquanid.png', + '970': 'Fomantis.png', + '971': 'Lurantis.png', + '972': 'Morelull.png', + '973': 'Shiinotic.png', + '974': 'Salandit.png', + '975': 'Salazzle.png', + '976': 'Stufful.png', + '977': 'Bewear.png', + '978': 'Bounsweet.png', + '979': 'Steenee.png', + '980': 'Tsareena.png', + '981': 'Comfey.png', + '982': 'Oranguru.png', + '983': 'Passimian.png', + '984': 'Wimpod.png', + '985': 'Golisopod.png', + '986': 'Sandygast.png', + '987': 'Palossand.png', + '988': 'Pyukumuku.png', + '989': 'TypeNull.png', + '990': 'Silvally.png', + '991': 'MiniorShield.png', + '992': 'Komala.png', + '993': 'Turtonator.png', + '994': 'Togedemaru.png', + '995': 'Mimikyu.png', + '996': 'Bruxish.png', + '997': 'Drampa.png', + '998': 'Dhelmise.png', + '999': 'JangmoO.png', + '1000': 'HakamoO.png', + '1001': 'KommoO.png', + '1002': 'TapuKoko.png', + '1003': 'TapuLele.png', + '1004': 'TapuBulu.png', + '1005': 'TapuFini.png', + '1006': 'Cosmog.png', + '1007': 'Cosmoem.png', + '1008': 'Solgaleo.png', + '1009': 'Lunala.png', + '1010': 'Nihilego.png', + '1011': 'Buzzwole.png', + '1012': 'Pheromosa.png', + '1013': 'Xurkitree.png', + '1014': 'Celesteela.png', + '1015': 'Kartana.png', + '1016': 'Guzzlord.png', + '1017': 'Necrozma.png', + '1018': 'Magearna.png', + '1019': 'Marshadow.png', + '1020': 'RattataA.png', + '1021': 'RaticateA.png', + '1022': 'RaichuA.png', + '1023': 'SandshrewA.png', + '1024': 'SandslashA.png', + '1025': 'VulpixA.png', + '1026': 'NinetalesA.png', + '1027': 'DiglettA.png', + '1028': 'DugtrioA.png', + '1029': 'MeowthA.png', + '1030': 'PersianA.png', + '1031': 'GeodudeA.png', + '1032': 'GravelerA.png', + '1033': 'GolemA.png', + '1034': 'GrimerA.png', + '1035': 'MukA.png', + '1036': 'ExeggcuteA.png', + '1037': 'ExeggutorA.png', + '1038': 'CuboneA.png', + '1039': 'MarowakA.png', + '1040': 'DeoxysAttack.png', + '1041': 'DeoxysDefense.png', + '1042': 'DeoxysSpeed.png', + '1043': 'OricorioY.png', + '1044': 'OricorioP.png', + '1045': 'OricorioS.png', + '1046': 'LycanrocN.png', + '1047': 'WishiwashiS.png', + '1048': 'SilvallyFight.png', + '1049': 'SilvallyFlying.png', + '1050': 'SilvallyPoison.png', + '1051': 'SilvallyGround.png', + '1052': 'SilvallyRock.png', + '1053': 'SilvallyBug.png', + '1054': 'SilvallyGhost.png', + '1055': 'SilvallySteel.png', + '1056': 'SilvallyFire.png', + '1057': 'SilvallyWater.png', + '1058': 'SilvallyGrass.png', + '1059': 'SilvallyElectric.png', + '1060': 'SilvallyPsychic.png', + '1061': 'SilvallyIce.png', + '1062': 'SilvallyDragon.png', + '1063': 'SilvallyDark.png', + '1064': 'SilvallyFairy.png', + '1065': 'MiniorRed.png', + '1066': 'MiniorBlue.png', + '1067': 'MiniorOrange.png', + '1068': 'MiniorYellow.png', + '1069': 'MiniorIndigo.png', + '1070': 'MiniorGreen.png', + '1071': 'MiniorViolet.png', + '1072': 'MimikyuBusted.png', + '1073': 'MagearnaP.png', + '1074': 'Poipole.png', + '1075': 'Naganadel.png', + '1076': 'Stakataka.png', + '1077': 'Blacephalon.png', + '1078': 'Zeraora.png', + '1079': 'NecrozmaDuskMane.png', + '1080': 'NecrozmaDawnWings.png', + '1081': 'NecrozmaUltra.png', + '1082': 'LycanrocDusk.png', + '1083': 'Meltan.png', + '1084': 'Melmetal.png', + '1085': 'PikachuSurfing.png', + '1086': 'PikachuFlying.png', + '1087': 'PikachuCosplay.png', + '1088': 'PikachuLibre.png', + '1089': 'PikachuPopStar.png', + '1090': 'PikachuRockStar.png', + '1091': 'PikachuBelle.png', + '1092': 'PikachuPhd.png', + '1093': 'PikachuCapOriginal.png', + '1094': 'PikachuCapHoenn.png', + '1095': 'PikachuCapSinnoh.png', + '1096': 'PikachuCapUnova.png', + '1097': 'PikachuCapKalos.png', + '1098': 'PikachuCapAlola.png', + '1099': 'PikachuCapPartner.png', + '1100': 'Dudunsparce.png', + '1101': 'Cyclizar.png', + '1102': 'Grookey.png', + '1103': 'Thwackey.png', + '1104': 'Rillaboom.png', + '1105': 'Scorbunny.png', + '1106': 'Raboot.png', + '1107': 'Cinderace.png', + '1108': 'Sobble.png', + '1109': 'Drizzile.png', + '1110': 'Inteleon.png', + '1111': 'Skwovet.png', + '1112': 'Greedent.png', + '1113': 'Rookidee.png', + '1114': 'Corvisquire.png', + '1115': 'Corviknight.png', + '1116': 'Blipbug.png', + '1117': 'Dottler.png', + '1118': 'Orbeetle.png', + '1119': 'Nickit.png', + '1120': 'Thievul.png', + '1121': 'Gossifleur.png', + '1122': 'Eldegoss.png', + '1123': 'Wooloo.png', + '1124': 'Dubwool.png', + '1125': 'Chewtle.png', + '1126': 'Drednaw.png', + '1127': 'Yamper.png', + '1128': 'Boltund.png', + '1129': 'Rolycoly.png', + '1130': 'Carkol.png', + '1131': 'Coalossal.png', + '1132': 'Applin.png', + '1133': 'Flapple.png', + '1134': 'Appletun.png', + '1135': 'Silicobra.png', + '1136': 'Sandaconda.png', + '1137': 'Cramorant.png', + '1138': 'Arrokuda.png', + '1139': 'Barraskewda.png', + '1140': 'Toxel.png', + '1141': 'Toxtricity.png', + '1142': 'Sizzlipede.png', + '1143': 'Centiskorch.png', + '1144': 'Clobbopus.png', + '1145': 'Grapploct.png', + '1146': 'Sinistea.png', + '1147': 'Polteageist.png', + '1148': 'Hatenna.png', + '1149': 'Hattrem.png', + '1150': 'Hatterene.png', + '1151': 'Impidimp.png', + '1152': 'Morgrem.png', + '1153': 'Grimmsnarl.png', + '1154': 'Obstagoon.png', + '1155': 'Perrserker.png', + '1156': 'Cursola.png', + '1157': 'Sirfetchd.png', + '1158': 'MrRime.png', + '1159': 'Runerigus.png', + '1160': 'Milcery.png', + '1161': 'AlcremieStrawberry.png', + '1162': 'Falinks.png', + '1163': 'Pincurchin.png', + '1164': 'Snom.png', + '1165': 'Frosmoth.png', + '1166': 'Stonjourner.png', + '1167': 'Eiscue.png', + '1168': 'Indeedee.png', + '1169': 'Morpeko.png', + '1170': 'Cufant.png', + '1171': 'Copperajah.png', + '1172': 'Dracozolt.png', + '1173': 'Arctozolt.png', + '1174': 'Dracovish.png', + '1175': 'Arctovish.png', + '1176': 'Duraludon.png', + '1177': 'Dreepy.png', + '1178': 'Drakloak.png', + '1179': 'Dragapult.png', + '1180': 'Zacian.png', + '1181': 'Zamazenta.png', + '1182': 'Eternatus.png', + '1183': 'Kubfu.png', + '1184': 'UrshifuSingle.png', + '1185': 'Zarude.png', + '1186': 'LokixS.png', + '1187': 'Calyrex.png', + '1188': 'Regieleki.png', + '1189': 'Regidrago.png', + '1190': 'CramorantGulping.png', + '1191': 'CramorantGorging.png', + '1192': 'ToxtricityLowKey.png', + '1193': 'Koraidon.png', + '1194': 'Miraidon.png', + '1195': 'Frigibax.png', + '1196': 'Arctibax.png', + '1197': 'Baxcalibur.png', + '1198': 'Toedscool.png', + '1199': 'Toedscruel.png', + '1200': 'NymbleS.png', + '1201': 'EiscueNoice.png', + '1202': 'IndeedeeFemale.png', + '1203': 'MorpekoHangry.png', + '1204': 'ZacianCrowned.png', + '1205': 'ZamazentaCrowned.png', + '1206': 'EternatusEternamax.png', + '1207': 'UrshifuRapid.png', + '1208': 'MeowthG.png', + '1209': 'PonytaG.png', + '1210': 'RapidashG.png', + '1211': 'SlowpokeG.png', + '1212': 'SlowbroG.png', + '1213': 'FarfetchdG.png', + '1214': 'KoffingG.png', + '1215': 'WeezingG.png', + '1216': 'MrMimeG.png', + '1217': 'ArticunoG.png', + '1218': 'ZapdosG.png', + '1219': 'MoltresG.png', + '1220': 'SlowkingG.png', + '1221': 'CorsolaG.png', + '1222': 'ZigzagoonG.png', + '1223': 'LinooneG.png', + '1224': 'MimeJrG.png', + '1225': 'DarumakaG.png', + '1226': 'DarmanitanG.png', + '1227': 'DarmanitanGZen.png', + '1228': 'YamaskG.png', + '1229': 'StunfiskG.png', + '1230': 'Ironthorns.png', + '1231': 'Ironbundle.png', + '1232': 'Ironvaliant.png', + '1233': 'ButterfreeGiga.png', + '1234': 'TaurosP.png', + '1235': 'TaurosPWater.png', + '1236': 'MachampGiga.png', + '1237': 'Greattusk.png', + '1238': 'KinglerGiga.png', + '1239': 'LaprasGiga.png', + '1240': 'TaurosPFire.png', + '1241': 'SnorlaxGiga.png', + '1242': 'GarbodorGiga.png', + '1243': 'Brutebonnet.png', + '1244': 'Sandyshocks.png', + '1245': 'Screamtail.png', + '1246': 'Fluttermane.png', + '1247': 'Ironmoth.png', + '1248': 'OrbeetleGiga.png', + '1249': 'DrednawGiga.png', + '1250': 'CoalossalGiga.png', + '1251': 'FlappleGiga.png', + '1252': 'AppletunGiga.png', + '1253': 'SandacondaGiga.png', + '1254': 'ToxtricityGiga.png', + '1255': 'Slitherwing.png', + '1256': 'CentiskorchGiga.png', + '1257': 'Roaringmoon.png', + '1258': 'Irontreads.png', + '1259': 'AlcremieGiga.png', + '1260': 'CopperajahGiga.png', + '1261': 'DuraludonGiga.png', + '1262': 'Ironhands.png', + '1263': 'Ironjugulis.png', + '1264': 'CalyrexIce.png', + '1265': 'CalyrexShadow.png', + '1266': 'Spectrier.png', + '1267': 'Glastrier.png', + '1268': 'Basculegion.png', + '1269': 'BraviaryH.png', + '1270': 'Wyrdeer.png', + '1271': 'GrowlitheH.png', + '1272': 'ArcanineH.png', + '1273': 'Kleavor.png', + '1274': 'BlitzleS.png', + '1275': 'ZebstrikaS.png', + '1276': 'DoduoS.png', + '1277': 'DodrioS.png', + '1278': 'TeddiursaS.png', + '1279': 'UrsaringS.png', + '1280': 'ZoruaH.png', + '1281': 'ZoroarkH.png', + '1282': 'CarnivineS.png', + '1283': 'MantykeS.png', + '1284': 'MantineS.png', + '1285': 'FeebasS.png', + '1286': 'MiloticS.png', + '1287': 'ClauncherS.png', + '1288': 'ClawitzerS.png', + '1289': 'SizzlipedeS.png', + '1290': 'CentiskorchS.png', + '1291': 'CentiskorchSMega.png', + '1292': 'WishiwashiSevi.png', + '1293': 'WishiwashiSeviS.png', + '1294': 'DhelmiseS.png', + '1295': 'VoltorbH.png', + '1296': 'ElectrodeH.png', + '1297': 'SliggooH.png', + '1298': 'GoodraH.png', + '1299': 'TyphlosionH.png', + '1300': 'SamurottH.png', + '1301': 'DecidueyeH.png', + '1302': 'Ursaluna.png', + '1303': 'LilligantH.png', + '1304': 'SneaselH.png', + '1305': 'Sneasler.png', + '1306': 'BasculegionF.png', + '1307': 'QwilfishH.png', + '1308': 'Overqwil.png', + '1309': 'AvaluggH.png', + '1310': 'DialgaO.png', + '1311': 'PalkiaO.png', + '1312': 'Enamorus.png', + '1313': 'EnamorusTherian.png', + '1314': 'Tarountula.png', + '1315': 'Spidops.png', + '1316': 'Nymble.png', + '1317': 'Lokix.png', + '1318': 'Rellor.png', + '1319': 'Rabsca.png', + '1320': 'Flittle.png', + '1321': 'Espathra.png', + '1322': 'Dondozo.png', + '1323': 'Veluza.png', + '1324': 'Smoliv.png', + '1325': 'Dolliv.png', + '1326': 'Arboliva.png', + '1327': 'Capsakid.png', + '1328': 'Scovillain.png', + '1329': 'Orthworm.png', + '1330': 'Tandemaus.png', + '1331': 'Maushold.png', + '1332': 'Cetoddle.png', + '1333': 'Cetitan.png', + '1334': 'Tatsugiri.png', + '1335': 'Wattrel.png', + '1336': 'Kilowattrel.png', + '1337': 'Bombirdier.png', + '1338': 'Squawkabilly.png', + '1339': 'Flamigo.png', + '1340': 'Nacli.png', + '1341': 'Naclstack.png', + '1342': 'Garganacl.png', + '1343': 'Glimmet.png', + '1344': 'Glimmora.png', + '1345': 'Shroodle.png', + '1346': 'Grafaiai.png', + '1347': 'Fidough.png', + '1348': 'Dachsbun.png', + '1349': 'Maschiff.png', + '1350': 'Mabosstiff.png', + '1351': 'Bramblin.png', + '1352': 'Brambleghast.png', + '1353': 'Ironleaves.png', + '1354': 'Walkingwake.png', + '1355': 'Squawkabilly2.png', +} diff --git a/src/types/SAVTypes/util.ts b/src/types/SAVTypes/util.ts index 3a9814fd..452317eb 100644 --- a/src/types/SAVTypes/util.ts +++ b/src/types/SAVTypes/util.ts @@ -1,6 +1,6 @@ import { GameOfOrigin } from 'pokemon-resources' import { PKMInterface } from '../interfaces' -import { emptyParsedPath, ParsedPath } from './path' +import { PathData } from './path' import { SAV } from './SAV' export const SIZE_SM = 0x6be00 @@ -26,27 +26,36 @@ export const DESAMUME_FOOTER_START = export interface PKMClass { new (arg: ArrayBuffer | PKMInterface, encrypted?: boolean): PKMInterface + fromBytes(bytes: ArrayBuffer): PKMInterface } export interface SAVClass { - new (path: ParsedPath, bytes: Uint8Array): SAV + new (path: PathData, bytes: Uint8Array): SAV pkmType: PKMClass fileIsSave: (bytes: Uint8Array) => boolean includesOrigin: (origin: GameOfOrigin) => boolean lookupType?: 'gen12' | 'gen345' + saveTypeName: string + saveTypeAbbreviation: string } export type PKMTypeOf = Type extends SAV ? X : never export function supportsMon(saveType: SAVClass, dexNumber: number, formeNumber: number): boolean { + // console.log(saveType, dexNumber, saveType.prototype.supportsMon(dexNumber, formeNumber)) return saveType.prototype.supportsMon(dexNumber, formeNumber) } export function getGameColor(saveType: SAVClass | undefined, origin: GameOfOrigin): string { - if (!saveType) return '#666666' - const dummySave = new saveType(emptyParsedPath, new Uint8Array(100000)) - dummySave.origin = origin - return dummySave.gameColor() ?? '#666666' + return saveType?.prototype.gameColor.call({ origin }) +} + +export function getPluginIdentifier(saveType: SAVClass | undefined): string | undefined { + return saveType?.prototype.getPluginIdentifier() +} + +export function getGameName(saveType: SAVClass | undefined): string | undefined { + return saveType?.prototype.getGameName() } export function hasDesamumeFooter(bytes: Uint8Array, expectedOffset: number): boolean { diff --git a/src/types/backendInterface.ts b/src/types/backendInterface.ts index ebb9d94f..3d3bd64f 100644 --- a/src/types/backendInterface.ts +++ b/src/types/backendInterface.ts @@ -1,4 +1,4 @@ -import { ParsedPath, PossibleSaves } from './SAVTypes/path' +import { PathData, PossibleSaves } from './SAVTypes/path' import { SaveFolder, StoredBoxData } from './storage' import { Errorable, LoadSaveResponse, LookupMap, SaveRef } from './types' @@ -19,7 +19,7 @@ export default interface BackendInterface { writeHomeBoxes: (boxData: StoredBoxData[]) => Promise> /* game saves */ - loadSaveFile: (filePath?: ParsedPath) => Promise> + loadSaveFile: (filePath?: PathData) => Promise> writeSaveFile: (path: string, bytes: Uint8Array) => Promise> /* game save management */ diff --git a/src/types/interfaces.ts b/src/types/interfaces.ts index d12efca7..f94a8e08 100644 --- a/src/types/interfaces.ts +++ b/src/types/interfaces.ts @@ -1,14 +1,22 @@ import { AllPKMFields, Stats } from 'pokemon-files' export interface OfficialPKMInterface extends PKMInterface { - pluginName?: undefined + pluginIdentifier?: undefined + pluginOrigin?: undefined } export interface PluginPKMInterface extends PKMInterface { - pluginName: string + pluginIdentifier: string + selectColor: string } export type PKMInterface = AllPKMFields & { getStats(): Stats - pluginName?: string + // Corresponding save's plugin_identifier + pluginIdentifier?: string + // If met in a plugin save, this will be the save's plugin_identifier. otherwise this is empty + pluginOrigin?: string + isLocked?: boolean + originalBytes?: Uint8Array + selectColor?: string } diff --git a/src/types/pkm/OHPKM.json b/src/types/pkm/OHPKM.json new file mode 100644 index 00000000..392cda11 --- /dev/null +++ b/src/types/pkm/OHPKM.json @@ -0,0 +1,670 @@ +{ + "totalBytes": 433, + "fileName": "OHPKM", + "fields": [ + { + "name": "encryptionConstant", + "type": "number", + "numBytes": 4, + "endian": "Little", + "byteOffset": 0 + }, + { + "name": "sanity", + "type": "number", + "numBytes": 2, + "endian": "Little", + "byteOffset": 4 + }, + { + "name": "checksum", + "type": "number", + "numBytes": 2, + "endian": "Little", + "byteOffset": 6 + }, + { + "name": "dexNum", + "type": "number", + "numBytes": 2, + "endian": "Little", + "byteOffset": 8 + }, + { + "name": "heldItemIndex", + "type": "number", + "numBytes": 2, + "endian": "Little", + "byteOffset": 10 + }, + { + "name": "trainerID", + "type": "number", + "numBytes": 2, + "endian": "Little", + "byteOffset": 12 + }, + { + "name": "secretID", + "type": "number", + "numBytes": 2, + "endian": "Little", + "byteOffset": 14 + }, + { + "name": "exp", + "type": "number", + "numBytes": 4, + "endian": "Little", + "byteOffset": 16 + }, + { + "name": "abilityIndex", + "type": "number", + "numBytes": 2, + "endian": "Little", + "byteOffset": 20 + }, + { + "name": "abilityNum", + "type": "number", + "byteOffset": 22, + "numBytes": 1 + }, + { + "name": "favorite", + "type": "boolean", + "byteOffset": 22, + "bitOffset": 3 + }, + { + "name": "canGigantamax", + "type": "boolean", + "byteOffset": 22, + "bitOffset": 4 + }, + { + "name": "isAlpha", + "type": "boolean", + "byteOffset": 22, + "bitOffset": 5 + }, + { + "name": "isNoble", + "type": "boolean", + "byteOffset": 22, + "bitOffset": 6 + }, + { + "name": "isShadow", + "type": "boolean", + "byteOffset": 22, + "bitOffset": 7 + }, + { + "name": "markings", + "type": "MarkingsSixShapesWithColor", + "numBytes": 2, + "endian": "Little", + "byteOffset": 24 + }, + { + "name": "alphaMove", + "type": "number", + "numBytes": 2, + "endian": "Little", + "byteOffset": 26 + }, + { + "name": "personalityValue", + "type": "number", + "numBytes": 4, + "endian": "Little", + "byteOffset": 28 + }, + { + "name": "nature", + "type": "number", + "byteOffset": 32, + "numBytes": 1 + }, + { + "name": "statNature", + "type": "number", + "byteOffset": 33, + "numBytes": 1 + }, + { + "name": "flag2LA", + "type": "boolean", + "byteOffset": 34, + "bitOffset": 1 + }, + { + "name": "gender", + "type": "number", + "byteOffset": 34, + "numBytes": 1 + }, + { + "name": "formeNum", + "type": "number", + "numBytes": 2, + "endian": "Little", + "byteOffset": 36 + }, + { + "name": "formNum", + "type": "number", + "numBytes": 2, + "endian": "Little", + "byteOffset": 36 + }, + { + "name": "evs", + "type": "stats", + "byteOffset": 38, + "numBytes": 6 + }, + { + "name": "contest", + "type": "contestStats", + "byteOffset": 44, + "numBytes": 6 + }, + { + "name": "pokerusByte", + "type": "number", + "byteOffset": 50, + "numBytes": 1 + }, + { + "name": "contestMemoryCount", + "type": "number", + "byteOffset": 52, + "numBytes": 1 + }, + { + "name": "battleMemoryCount", + "type": "number", + "byteOffset": 53, + "numBytes": 1 + }, + { + "name": "sociability", + "type": "number", + "numBytes": 4, + "endian": "Little", + "byteOffset": 76 + }, + { + "name": "height", + "type": "number", + "byteOffset": 80, + "numBytes": 1 + }, + { + "name": "weight", + "type": "number", + "byteOffset": 81, + "numBytes": 1 + }, + { + "name": "scale", + "type": "number", + "byteOffset": 82, + "numBytes": 1 + }, + { + "name": "moves", + "type": "tuple", + "tupleType": "number", + "tupleLength": 4, + "numBytes": 2, + "endian": "Little", + "byteOffset": 84 + }, + { + "name": "movePP", + "type": "tuple", + "tupleType": "number", + "tupleLength": 4, + "byteOffset": 92, + "numBytes": 1 + }, + { + "name": "nickname", + "type": "string", + "numBytes": 24, + "byteOffset": 96, + "stringEncoding": "UTF-16" + }, + { + "name": "movePPUps", + "type": "tuple", + "tupleType": "number", + "tupleLength": 4, + "byteOffset": 134, + "numBytes": 1 + }, + { + "name": "relearnMoves", + "type": "tuple", + "tupleType": "number", + "tupleLength": 4, + "numBytes": 2, + "endian": "Little", + "byteOffset": 138 + }, + { + "name": "ivs", + "type": "stats", + "numBytes": 2, + "byteOffset": 148 + }, + { + "name": "isEgg", + "type": "boolean", + "byteOffset": 148, + "bitOffset": 30 + }, + { + "name": "isNicknamed", + "type": "boolean", + "byteOffset": 148, + "bitOffset": 31 + }, + { + "name": "dynamaxLevel", + "type": "number", + "byteOffset": 152, + "numBytes": 1 + }, + { + "name": "teraTypeOriginal", + "type": "number", + "byteOffset": 153, + "numBytes": 1 + }, + { + "name": "teraTypeOverride", + "type": "number", + "byteOffset": 154, + "numBytes": 1 + }, + { + "name": "unknownA0", + "type": "number", + "numBytes": 4, + "endian": "Little", + "byteOffset": 160 + }, + { + "name": "gvs", + "type": "stats", + "byteOffset": 164, + "numBytes": 6 + }, + { + "name": "handlerName", + "type": "string", + "numBytes": 24, + "byteOffset": 184, + "stringEncoding": "UTF-16" + }, + { + "name": "handlerLanguage", + "type": "number", + "byteOffset": 211, + "numBytes": 1 + }, + { + "name": "resortEventStatus", + "type": "number", + "byteOffset": 213, + "numBytes": 1 + }, + { + "name": "handlerID", + "type": "number", + "numBytes": 2, + "endian": "Little", + "byteOffset": 214 + }, + { + "name": "handlerFriendship", + "type": "number", + "byteOffset": 216, + "numBytes": 1 + }, + { + "name": "handlerAffection", + "type": "number", + "byteOffset": 222, + "numBytes": 1 + }, + { + "name": "superTrainingFlags", + "type": "number", + "numBytes": 4, + "endian": "Little", + "byteOffset": 223 + }, + { + "name": "superTrainingDistFlags", + "type": "number", + "byteOffset": 227, + "numBytes": 1 + }, + { + "name": "secretSuperTrainingUnlocked", + "type": "boolean", + "byteOffset": 228, + "bitOffset": 0 + }, + { + "name": "secretSuperTrainingComplete", + "type": "boolean", + "byteOffset": 228, + "bitOffset": 1 + }, + { + "name": "trainingBagHits", + "type": "number", + "byteOffset": 229, + "numBytes": 1 + }, + { + "name": "trainingBag", + "type": "number", + "byteOffset": 230, + "numBytes": 1 + }, + { + "name": "palma", + "type": "number", + "numBytes": 4, + "endian": "Little", + "byteOffset": 231 + }, + { + "name": "pokeStarFame", + "type": "number", + "byteOffset": 232, + "numBytes": 1 + }, + { + "name": "metTimeOfDay", + "type": "number", + "byteOffset": 233, + "numBytes": 1 + }, + { + "name": "handlerGender", + "type": "boolean", + "byteOffset": 234, + "bitOffset": 7 + }, + { + "name": "isNsPokemon", + "type": "boolean", + "byteOffset": 234, + "bitOffset": 6 + }, + { + "name": "shinyLeaves", + "type": "number", + "byteOffset": 234, + "numBytes": 1 + }, + { + "name": "fullness", + "type": "number", + "byteOffset": 235, + "numBytes": 1 + }, + { + "name": "enjoyment", + "type": "number", + "byteOffset": 236, + "numBytes": 1 + }, + { + "name": "gameOfOrigin", + "type": "number", + "byteOffset": 237, + "numBytes": 1 + }, + { + "name": "gameOfOriginBattle", + "type": "number", + "byteOffset": 238, + "numBytes": 1 + }, + { + "name": "country", + "type": "number", + "byteOffset": 239, + "numBytes": 1 + }, + { + "name": "region", + "type": "number", + "byteOffset": 240, + "numBytes": 1 + }, + { + "name": "consoleRegion", + "type": "number", + "byteOffset": 240, + "numBytes": 1 + }, + { + "name": "languageIndex", + "type": "number", + "byteOffset": 242, + "numBytes": 1 + }, + { + "name": "unknownF3", + "type": "number", + "byteOffset": 243, + "numBytes": 1 + }, + { + "name": "formArgument", + "type": "number", + "numBytes": 4, + "endian": "Little", + "byteOffset": 244 + }, + { + "name": "affixedRibbon", + "type": "number | undefined", + "byteOffset": 248, + "numBytes": 1 + }, + { + "name": "geolocations", + "type": "tuple", + "tupleType": "geolocation", + "tupleLength": 5, + "byteOffset": 249, + "numBytes": 1 + }, + { + "name": "encounterType", + "type": "number", + "byteOffset": 270, + "numBytes": 1 + }, + { + "name": "performance", + "type": "number", + "byteOffset": 271, + "numBytes": 1 + }, + { + "name": "trainerName", + "type": "string", + "numBytes": 24, + "byteOffset": 272, + "stringEncoding": "UTF-16" + }, + { + "name": "trainerFriendship", + "type": "number", + "byteOffset": 298, + "numBytes": 1 + }, + { + "name": "trainerAffection", + "type": "number", + "byteOffset": 304, + "numBytes": 1 + }, + { + "name": "eggDate", + "type": "pokedate | undefined", + "byteOffset": 305, + "numBytes": 1 + }, + { + "name": "metDate", + "type": "pokedate", + "byteOffset": 308, + "numBytes": 1 + }, + { + "name": "ball", + "type": "number", + "byteOffset": 311, + "numBytes": 1 + }, + { + "name": "eggLocationIndex", + "type": "number", + "numBytes": 2, + "endian": "Little", + "byteOffset": 312 + }, + { + "name": "metLocationIndex", + "type": "number", + "numBytes": 2, + "endian": "Little", + "byteOffset": 314 + }, + { + "name": "metLevel", + "type": "number", + "byteOffset": 316, + "numBytes": 1 + }, + { + "name": "obedienceLevel", + "type": "number", + "byteOffset": 318, + "numBytes": 1 + }, + { + "name": "homeTracker", + "type": "Uint8Array", + "byteOffset": 319, + "numBytes": 8 + }, + { + "name": "trFlagsSwSh", + "type": "Uint8Array", + "byteOffset": 326, + "numBytes": 14 + }, + { + "name": "tmFlagsBDSP", + "type": "Uint8Array", + "byteOffset": 340, + "numBytes": 14 + }, + { + "name": "moveFlagsLA", + "type": "Uint8Array", + "byteOffset": 354, + "numBytes": 14 + }, + { + "name": "tutorFlagsLA", + "type": "Uint8Array", + "byteOffset": 368, + "numBytes": 8 + }, + { + "name": "masterFlagsLA", + "type": "Uint8Array", + "byteOffset": 376, + "numBytes": 8 + }, + { + "name": "tmFlagsSV", + "type": "Uint8Array", + "byteOffset": 384, + "numBytes": 22 + }, + { + "name": "tmFlagsSVDLC", + "type": "Uint8Array", + "byteOffset": 420, + "numBytes": 13 + }, + { + "name": "isFatefulEncounter", + "type": "boolean", + "byteOffset": 34, + "bitOffset": 0 + }, + { + "name": "ribbons", + "type": "string[]" + }, + { + "name": "avs", + "type": "stats" + }, + { + "name": "dvs", + "type": "statsPreSplit" + }, + { + "name": "heightAbsoluteBytes", + "type": "Uint8Array" + }, + { + "name": "weightAbsoluteBytes", + "type": "Uint8Array" + }, + { + "name": "isCurrentHandler", + "type": "boolean" + }, + { + "name": "handlerMemory", + "type": "memory" + }, + { + "name": "trainerMemory", + "type": "memory" + }, + { + "name": "hyperTraining", + "type": "hyperTrainStats" + }, + { + "name": "evsG12", + "type": "statsPreSplit" + } + ], + "stringEncoding": "UTF-16", + "endian": "Little", + "markingType": "twoColor", + "shinyThreshold": 16, + "maxBall": 37 +} diff --git a/src/types/pkm/OHPKM.ts b/src/types/pkm/OHPKM.ts index 4fd81082..36885aba 100644 --- a/src/types/pkm/OHPKM.ts +++ b/src/types/pkm/OHPKM.ts @@ -44,7 +44,8 @@ import { } from '../../util/ByteLogic' import { getHPGen3Onward, getLevelGen3Onward, getStatGen3Onward } from '../../util/StatCalc' import { utf16BytesToString, utf16StringToBytes } from '../../util/Strings/StringConverter' -import { PKMInterface } from '../interfaces' +import { PKMInterface, PluginPKMInterface } from '../interfaces' +import schema from './OHPKM.json' import { adjustMovePPBetweenFormats, dvsFromIVs, @@ -57,13 +58,17 @@ import { writeIVsToBuffer, } from './util' +const FILE_SIZE = 497 + export class OHPKM implements PKMInterface { static fromBytes(bytes: ArrayBuffer) { return new OHPKM(new Uint8Array(bytes)) } + static schema = schema + public get fileSize() { - return 433 + return FILE_SIZE } get markingCount(): number { @@ -77,11 +82,14 @@ export class OHPKM implements PKMInterface { static maxValidMove() { return 919 } - bytes: Uint8Array = new Uint8Array(433) - constructor(arg: PKMInterface | OHPKM | Uint8Array) { + bytes: Uint8Array = new Uint8Array(FILE_SIZE) + + constructor(arg: PKMInterface | PluginPKMInterface | OHPKM | Uint8Array) { if (arg instanceof Uint8Array) { - this.bytes = arg + // If OHPKM format has expanded, we want to increase the size of older files to + // make room for new fields + this.bytes = extendUint8Array(arg, FILE_SIZE) } else { const other = arg let prng: Prando @@ -113,6 +121,8 @@ export class OHPKM implements PKMInterface { this.nickname = other.nickname this.language = other.language this.gameOfOrigin = other.gameOfOrigin + this.pluginOrigin = other.pluginOrigin + this.isEgg = other.isEgg ?? false this.pokerusByte = other.pokerusByte ?? 0 this.trainerFriendship = other.trainerFriendship ?? 40 @@ -184,7 +194,8 @@ export class OHPKM implements PKMInterface { this.ability = getAbilityFromNumber(this.dexNum, this.formeNum, this.abilityNum) this.abilityIndex = AbilityFromString(this.ability) - if (other.isShadow) this.isShadow = true + this.isShadow = other.isShadow ?? false + this.encryptionConstant = other.encryptionConstant ?? other.personalityValue ?? prng.nextInt(0, 0xffffffff) @@ -1129,6 +1140,19 @@ export class OHPKM implements PKMInterface { this.bytes[0xee] = value } + // If met in a plugin save, this will be the save's plugin_identifier. otherwise this is empty + public get pluginOrigin() { + if (this.bytes[0x1b1] === 0) return undefined + return utf16BytesToString(this.bytes, 0x1b1, 32) + } + + public set pluginOrigin(value: string | undefined) { + if (value === undefined) return + const utfBytes = utf16StringToBytes(value, 32) + console.log(utfBytes.length, this.bytes.length, this.bytes.length - 433) + this.bytes.set(utfBytes, 433) + } + public get country() { return this.bytes[0xef] } @@ -1656,3 +1680,15 @@ export class OHPKM implements PKMInterface { } } } + +function extendUint8Array(array: Uint8Array, minLength: number) { + if (array.length >= minLength) { + return array + } + + const extendedArray = new Uint8Array(minLength) + + extendedArray.set(array) + + return extendedArray +} diff --git a/src/types/pkm/index.ts b/src/types/pkm/index.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/src/types/pkm/util.ts b/src/types/pkm/util.ts index 7574e86e..95cd18a8 100644 --- a/src/types/pkm/util.ts +++ b/src/types/pkm/util.ts @@ -6,6 +6,7 @@ import { DefenseCharacteristics, HPCharacteristics, HPCharacteristicsPre6, + Moves, Nature, SpecialAtkCharacteristics, SpecialDefCharacteristics, @@ -15,7 +16,6 @@ import { } from 'pokemon-resources' import { NationalDex, PokemonData } from 'pokemon-species-data' import Prando from 'prando' -import { MOVE_DATA } from '../../consts/Moves' import { bytesToUint16LittleEndian, bytesToUint32LittleEndian, @@ -83,7 +83,16 @@ export const generateTeraType = (prng: Prando, dexNum: number, formeNum: number) } const { types: baseMonTypes } = PokemonData[baseMon.dexNumber].formes[baseMon.formeNumber] - let types: readonly Type[] = lodash.intersection(monTypes, baseMonTypes) + if (!monTypes || !baseMonTypes) { + return 0 + } + + const areTypesIdentical = + monTypes.length === baseMonTypes.length && + monTypes.every((type, index) => type === baseMonTypes[index]) + + let types = areTypesIdentical ? monTypes : lodash.intersection(monTypes, baseMonTypes) + if (types.length === 0) { types = baseMonTypes } @@ -236,7 +245,7 @@ export const getTypes = (mon: PKMInterface) => { } export const getMoveMaxPP = (moveIndex: number, format: string, ppUps = 0) => { - const move = MOVE_DATA[moveIndex] + const move = Moves[moveIndex] if (!move) return undefined let baseMaxPP switch (format) { @@ -249,7 +258,7 @@ export const getMoveMaxPP = (moveIndex: number, format: string, ppUps = 0) => { case 'PK3': case 'COLOPKM': case 'XDPKM': - baseMaxPP = move.pastGenPP?.G3 ?? move.pp + baseMaxPP = move?.pastGenPP?.G3 ?? move?.pp break case 'PK4': baseMaxPP = move.pastGenPP?.G4 ?? move.pp @@ -268,6 +277,7 @@ export const getMoveMaxPP = (moveIndex: number, format: string, ppUps = 0) => { break case 'PK8': case 'PB8': + case 'PK3RR': baseMaxPP = move.pastGenPP?.G8 ?? move.pp break case 'PA8': @@ -287,7 +297,7 @@ export const getMoveMaxPP = (moveIndex: number, format: string, ppUps = 0) => { if ((format === 'PK1' || format === 'PK2') && baseMaxPP === 40) { return baseMaxPP + Math.floor(ppUps * 7) } - return baseMaxPP + Math.floor(ppUps * (baseMaxPP / 5)) + return move.pp // baseMaxPP + Math.floor(ppUps * (baseMaxPP / 5)) } export const adjustMovePPBetweenFormats = ( @@ -308,7 +318,7 @@ export const adjustMovePPBetweenFormats = ( const otherMaxPP = getMoveMaxPP(move, sourceFormatMon.format, sourceFormatMon.movePPUps[i]) ?? 0 const thisMaxPP = getMoveMaxPP(move, destFormatMon.format, sourceFormatMon.movePPUps[i]) ?? 0 const adjustedMovePP = sourceFormatMon.movePP[i] - (otherMaxPP - thisMaxPP) - return lodash.max([adjustedMovePP, 0]) ?? 0 + return adjustedMovePP // lodash.max([adjustedMovePP, 0]) ?? 0 }) as [number, number, number, number] } diff --git a/src/types/types.ts b/src/types/types.ts index 00123885..c376d698 100644 --- a/src/types/types.ts +++ b/src/types/types.ts @@ -1,6 +1,6 @@ import { Either } from 'fp-ts/Either' import { CSSProperties } from 'react' -import { ParsedPath } from './SAVTypes/path' +import { PathData } from './SAVTypes/path' /* eslint-disable no-unused-vars */ export type KeyValuePairList = { key: string; value: string }[] @@ -42,7 +42,7 @@ export interface pokedate { export type marking = 0 | 1 | 2 export interface SaveRef { - filePath: ParsedPath + filePath: PathData game?: number trainerName?: string trainerID?: string @@ -112,12 +112,12 @@ export type Origin = { export type Move = { name: string - accuracy?: number + accuracy?: number | null class: 'physical' | 'status' | 'special' generation: string - power?: number + power?: number | null pp: number - pastGenPP: { + pastGenPP?: { G1?: number G2?: number G3?: number @@ -147,9 +147,18 @@ export type Errorable = Either export type LookupMap = Record -export type LoadSaveResponse = { path: ParsedPath; fileBytes: Uint8Array; createdDate: Date } +export type LoadSaveResponse = { path: PathData; fileBytes: Uint8Array; createdDate: Date } export interface PKMFormData { dexNum: number formeNum: number } + +export type ImageSource = + | { + publicDirPath: string + } + | { + rawImageBase64: string + } + | undefined diff --git a/tsconfig.web.json b/tsconfig.web.json index e7e27e6c..34223971 100644 --- a/tsconfig.web.json +++ b/tsconfig.web.json @@ -8,7 +8,7 @@ "src/resources/**/*", "src/types/**/*", "src/util/**/*", - "src/preload/*.d.ts" + "src/preload/*.d.ts", "generate/_rename.js", ], "compilerOptions": { "composite": true,