Merge branch 'beta' into fusion-override
@ -1,6 +1,6 @@
|
|||||||
VITE_BYPASS_LOGIN=0
|
VITE_BYPASS_LOGIN=0
|
||||||
VITE_BYPASS_TUTORIAL=0
|
VITE_BYPASS_TUTORIAL=0
|
||||||
VITE_SERVER_URL=https://api.beta.pokerogue.net
|
VITE_SERVER_URL=https://apibeta.pokerogue.net
|
||||||
VITE_DISCORD_CLIENT_ID=1248062921129459756
|
VITE_DISCORD_CLIENT_ID=1248062921129459756
|
||||||
VITE_GOOGLE_CLIENT_ID=955345393540-2k6lfftf0fdnb0krqmpthjnqavfvvf73.apps.googleusercontent.com
|
VITE_GOOGLE_CLIENT_ID=955345393540-2k6lfftf0fdnb0krqmpthjnqavfvvf73.apps.googleusercontent.com
|
||||||
VITE_I18N_DEBUG=1
|
VITE_I18N_DEBUG=1
|
||||||
|
2
.github/FUNDING.yml
vendored
@ -1 +1 @@
|
|||||||
github: patapancakes
|
github: pagefaultgames
|
||||||
|
@ -55,8 +55,8 @@ Check out [Github Issues](https://github.com/pagefaultgames/pokerogue/issues) to
|
|||||||
- Pokémon Sword/Shield
|
- Pokémon Sword/Shield
|
||||||
- Pokémon Legends: Arceus
|
- Pokémon Legends: Arceus
|
||||||
- Pokémon Scarlet/Violet
|
- Pokémon Scarlet/Violet
|
||||||
- Firel (Custom Laboratory, Metropolis, Seabed, and Space biome music)
|
- Firel (Custom Ice Cave, Laboratory, Metropolis, Plains, Power Plant, Seabed, Space, and Volcano biome music)
|
||||||
- Lmz (Custom Jungle biome music)
|
- Lmz (Custom Ancient Ruins, Jungle, and Lake biome music)
|
||||||
- Andr06 (Custom Slum and Sea biome music)
|
- Andr06 (Custom Slum and Sea biome music)
|
||||||
|
|
||||||
### 🎵 Sound Effects
|
### 🎵 Sound Effects
|
||||||
|
@ -1,7 +1,3 @@
|
|||||||
import fs from 'fs';
|
|
||||||
import path from 'path';
|
|
||||||
import { fileURLToPath } from 'url';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This script creates a test boilerplate file for a move or ability.
|
* This script creates a test boilerplate file for a move or ability.
|
||||||
* @param {string} type - The type of test to create. Either "move", "ability",
|
* @param {string} type - The type of test to create. Either "move", "ability",
|
||||||
@ -10,63 +6,108 @@ import { fileURLToPath } from 'url';
|
|||||||
* @example npm run create-test move tackle
|
* @example npm run create-test move tackle
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import fs from "fs";
|
||||||
|
import inquirer from "inquirer";
|
||||||
|
import path from "path";
|
||||||
|
import { fileURLToPath } from "url";
|
||||||
|
|
||||||
// Get the directory name of the current module file
|
// Get the directory name of the current module file
|
||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
const __dirname = path.dirname(__filename);
|
const __dirname = path.dirname(__filename);
|
||||||
|
const typeChoices = ["Move", "Ability", "Item", "Mystery Encounter"];
|
||||||
|
|
||||||
// Get the arguments from the command line
|
/**
|
||||||
const args = process.argv.slice(2);
|
* Prompts the user to select a type via list.
|
||||||
const type = args[0]; // "move" or "ability"
|
* @returns {Promise<{selectedOption: string}>} the selected type
|
||||||
let fileName = args[1]; // The file name
|
*/
|
||||||
|
async function promptTestType() {
|
||||||
|
const typeAnswer = await inquirer.prompt([
|
||||||
|
{
|
||||||
|
type: "list",
|
||||||
|
name: "selectedOption",
|
||||||
|
message: "What type of test would you like to create:",
|
||||||
|
choices: [...typeChoices, "EXIT"],
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
if (!type || !fileName) {
|
if (typeAnswer.selectedOption === "EXIT") {
|
||||||
console.error('Please provide a type ("move", "ability", or "item") and a file name.');
|
console.log("Exiting...");
|
||||||
process.exit(1);
|
return process.exit();
|
||||||
|
} else if (!typeChoices.includes(typeAnswer.selectedOption)) {
|
||||||
|
console.error('Please provide a valid type ("move", "ability", or "item")!');
|
||||||
|
return await promptTestType();
|
||||||
|
}
|
||||||
|
|
||||||
|
return typeAnswer;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Convert fileName from kebab-case or camelCase to snake_case
|
/**
|
||||||
fileName = fileName
|
* Prompts the user to provide a file name.
|
||||||
.replace(/-+/g, '_') // Convert kebab-case (dashes) to underscores
|
* @param {string} selectedType
|
||||||
.replace(/([a-z])([A-Z])/g, '$1_$2') // Convert camelCase to snake_case
|
* @returns {Promise<{userInput: string}>} the selected file name
|
||||||
.toLowerCase(); // Ensure all lowercase
|
*/
|
||||||
|
async function promptFileName(selectedType) {
|
||||||
|
const fileNameAnswer = await inquirer.prompt([
|
||||||
|
{
|
||||||
|
type: "input",
|
||||||
|
name: "userInput",
|
||||||
|
message: `Please provide a file name for the ${selectedType} test:`,
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
|
||||||
// Format the description for the test case
|
if (!fileNameAnswer.userInput || fileNameAnswer.userInput.trim().length === 0) {
|
||||||
const formattedName = fileName
|
console.error("Please provide a valid file name!");
|
||||||
.replace(/_/g, ' ')
|
return await promptFileName(selectedType);
|
||||||
.replace(/\b\w/g, char => char.toUpperCase());
|
}
|
||||||
|
|
||||||
// Determine the directory based on the type
|
return fileNameAnswer;
|
||||||
let dir;
|
|
||||||
let description;
|
|
||||||
if (type === 'move') {
|
|
||||||
dir = path.join(__dirname, 'src', 'test', 'moves');
|
|
||||||
description = `Moves - ${formattedName}`;
|
|
||||||
} else if (type === 'ability') {
|
|
||||||
dir = path.join(__dirname, 'src', 'test', 'abilities');
|
|
||||||
description = `Abilities - ${formattedName}`;
|
|
||||||
} else if (type === "item") {
|
|
||||||
dir = path.join(__dirname, 'src', 'test', 'items');
|
|
||||||
description = `Items - ${formattedName}`;
|
|
||||||
} else {
|
|
||||||
console.error('Invalid type. Please use "move", "ability", or "item".');
|
|
||||||
process.exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure the directory exists
|
/**
|
||||||
if (!fs.existsSync(dir)) {
|
* Runs the interactive create-test "CLI"
|
||||||
fs.mkdirSync(dir, { recursive: true });
|
* @returns {Promise<void>}
|
||||||
}
|
*/
|
||||||
|
async function runInteractive() {
|
||||||
|
const typeAnswer = await promptTestType();
|
||||||
|
const fileNameAnswer = await promptFileName(typeAnswer.selectedOption);
|
||||||
|
|
||||||
// Create the file with the given name
|
const type = typeAnswer.selectedOption.toLowerCase();
|
||||||
const filePath = path.join(dir, `${fileName}.test.ts`);
|
// Convert fileName from kebab-case or camelCase to snake_case
|
||||||
|
const fileName = fileNameAnswer.userInput
|
||||||
|
.replace(/-+/g, "_") // Convert kebab-case (dashes) to underscores
|
||||||
|
.replace(/([a-z])([A-Z])/g, "$1_$2") // Convert camelCase to snake_case
|
||||||
|
.replace(/\s+/g, '_') // Replace spaces with underscores
|
||||||
|
.toLowerCase(); // Ensure all lowercase
|
||||||
|
// Format the description for the test case
|
||||||
|
|
||||||
if (fs.existsSync(filePath)) {
|
const formattedName = fileName.replace(/_/g, " ").replace(/\b\w/g, (char) => char.toUpperCase());
|
||||||
console.error(`File "${fileName}.test.ts" already exists.`);
|
// Determine the directory based on the type
|
||||||
process.exit(1);
|
let dir;
|
||||||
}
|
let description;
|
||||||
|
switch (type) {
|
||||||
|
case "move":
|
||||||
|
dir = path.join(__dirname, "src", "test", "moves");
|
||||||
|
description = `Moves - ${formattedName}`;
|
||||||
|
break;
|
||||||
|
case "ability":
|
||||||
|
dir = path.join(__dirname, "src", "test", "abilities");
|
||||||
|
description = `Abilities - ${formattedName}`;
|
||||||
|
break;
|
||||||
|
case "item":
|
||||||
|
dir = path.join(__dirname, "src", "test", "items");
|
||||||
|
description = `Items - ${formattedName}`;
|
||||||
|
break;
|
||||||
|
case "mystery encounter":
|
||||||
|
dir = path.join(__dirname, "src", "test", "mystery-encounter", "encounters");
|
||||||
|
description = `Mystery Encounter - ${formattedName}`;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
console.error('Invalid type. Please use "move", "ability", or "item".');
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
// Define the content template
|
// Define the content template
|
||||||
const content = `import { Abilities } from "#enums/abilities";
|
const content = `import { Abilities } from "#enums/abilities";
|
||||||
import { Moves } from "#enums/moves";
|
import { Moves } from "#enums/moves";
|
||||||
import { Species } from "#enums/species";
|
import { Species } from "#enums/species";
|
||||||
import GameManager from "#test/utils/gameManager";
|
import GameManager from "#test/utils/gameManager";
|
||||||
@ -76,7 +117,6 @@ import { afterEach, beforeAll, beforeEach, describe, it, expect } from "vitest";
|
|||||||
describe("${description}", () => {
|
describe("${description}", () => {
|
||||||
let phaserGame: Phaser.Game;
|
let phaserGame: Phaser.Game;
|
||||||
let game: GameManager;
|
let game: GameManager;
|
||||||
const TIMEOUT = 20 * 1000;
|
|
||||||
|
|
||||||
beforeAll(() => {
|
beforeAll(() => {
|
||||||
phaserGame = new Phaser.Game({
|
phaserGame = new Phaser.Game({
|
||||||
@ -100,11 +140,27 @@ describe("${description}", () => {
|
|||||||
it("test case", async () => {
|
it("test case", async () => {
|
||||||
// await game.classicMode.startBattle([Species.MAGIKARP]);
|
// await game.classicMode.startBattle([Species.MAGIKARP]);
|
||||||
// game.move.select(Moves.SPLASH);
|
// game.move.select(Moves.SPLASH);
|
||||||
}, TIMEOUT);
|
});
|
||||||
});
|
});
|
||||||
`;
|
`;
|
||||||
|
|
||||||
// Write the template content to the file
|
// Ensure the directory exists
|
||||||
fs.writeFileSync(filePath, content, 'utf8');
|
if (!fs.existsSync(dir)) {
|
||||||
|
fs.mkdirSync(dir, { recursive: true });
|
||||||
|
}
|
||||||
|
|
||||||
console.log(`File created at: ${filePath}`);
|
// Create the file with the given name
|
||||||
|
const filePath = path.join(dir, `${fileName}.test.ts`);
|
||||||
|
|
||||||
|
if (fs.existsSync(filePath)) {
|
||||||
|
console.error(`File "${fileName}.test.ts" already exists.`);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write the template content to the file
|
||||||
|
fs.writeFileSync(filePath, content, "utf8");
|
||||||
|
|
||||||
|
console.log(`File created at: ${filePath}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
runInteractive();
|
||||||
|
884
package-lock.json
generated
@ -33,13 +33,15 @@
|
|||||||
"dependency-cruiser": "^16.3.10",
|
"dependency-cruiser": "^16.3.10",
|
||||||
"eslint": "^9.7.0",
|
"eslint": "^9.7.0",
|
||||||
"eslint-plugin-import-x": "^4.2.1",
|
"eslint-plugin-import-x": "^4.2.1",
|
||||||
|
"inquirer": "^11.0.2",
|
||||||
"jsdom": "^24.0.0",
|
"jsdom": "^24.0.0",
|
||||||
"lefthook": "^1.6.12",
|
"lefthook": "^1.6.12",
|
||||||
|
"msw": "^2.4.9",
|
||||||
"phaser3spectorjs": "^0.0.8",
|
"phaser3spectorjs": "^0.0.8",
|
||||||
"typedoc": "^0.26.4",
|
"typedoc": "^0.26.4",
|
||||||
"typescript": "^5.5.3",
|
"typescript": "^5.5.3",
|
||||||
"typescript-eslint": "^8.0.0-alpha.54",
|
"typescript-eslint": "^8.0.0-alpha.54",
|
||||||
"vite": "^5.3.5",
|
"vite": "^5.4.8",
|
||||||
"vite-tsconfig-paths": "^4.3.2",
|
"vite-tsconfig-paths": "^4.3.2",
|
||||||
"vitest": "^2.0.4",
|
"vitest": "^2.0.4",
|
||||||
"vitest-canvas-mock": "^0.3.3"
|
"vitest-canvas-mock": "^0.3.3"
|
||||||
|
BIN
public/audio/bgm/battle_star_admin.mp3
Normal file
BIN
public/audio/bgm/battle_star_boss.mp3
Normal file
BIN
public/audio/bgm/battle_star_grunt.mp3
Normal file
BIN
public/audio/bgm/mystery_encounter_delibirdy.mp3
Normal file
@ -4633,11 +4633,7 @@
|
|||||||
"690",
|
"690",
|
||||||
"691",
|
"691",
|
||||||
"696",
|
"696",
|
||||||
"696_3",
|
|
||||||
"696_3",
|
|
||||||
"697",
|
"697",
|
||||||
"697_3",
|
|
||||||
"697_3",
|
|
||||||
"700",
|
"700",
|
||||||
"704",
|
"704",
|
||||||
"705_2",
|
"705_2",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "berry_bush.png",
|
"image": "berries_abound_bush.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 49,
|
"w": 49,
|
Before Width: | Height: | Size: 719 B After Width: | Height: | Size: 719 B |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "mad_scientist_m.png",
|
"image": "dark_deal_scientist.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 46,
|
"w": 46,
|
Before Width: | Height: | Size: 920 B After Width: | Height: | Size: 920 B |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "b2w2_lady.png",
|
"image": "department_store_sale_lady.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 399,
|
"w": 399,
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 378 B After Width: | Height: | Size: 378 B |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "teacher.png",
|
"image": "field_trip_teacher.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 43,
|
"w": 43,
|
Before Width: | Height: | Size: 727 B After Width: | Height: | Size: 727 B |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "carnival_game.png",
|
"image": "fun_and_games_game.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 38,
|
"w": 38,
|
Before Width: | Height: | Size: 517 B After Width: | Height: | Size: 517 B |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "carnival_man.png",
|
"image": "fun_and_games_man.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 50,
|
"w": 50,
|
Before Width: | Height: | Size: 833 B After Width: | Height: | Size: 833 B |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "carnival_wobbuffet.png",
|
"image": "fun_and_games_wobbuffet.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 45,
|
"w": 45,
|
Before Width: | Height: | Size: 772 B After Width: | Height: | Size: 772 B |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "chest_blue.png",
|
"image": "mysterious_chest_blue.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 54,
|
"w": 54,
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "chest_red.png",
|
"image": "mysterious_chest_red.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 54,
|
"w": 54,
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "warehouse_crate.png",
|
"image": "part_timer_crate.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 71,
|
"w": 71,
|
Before Width: | Height: | Size: 868 B After Width: | Height: | Size: 868 B |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "bait.png",
|
"image": "safari_zone_bait.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 14,
|
"w": 14,
|
Before Width: | Height: | Size: 277 B After Width: | Height: | Size: 277 B |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "mud.png",
|
"image": "safari_zone_mud.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 14,
|
"w": 14,
|
Before Width: | Height: | Size: 375 B After Width: | Height: | Size: 375 B |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "b2w2_veteran_m.png",
|
"image": "shady_vitamin_dealer.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 424,
|
"w": 424,
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "teleporter.png",
|
"image": "teleporting_hijinks_teleporter.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 74,
|
"w": 74,
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"textures": [
|
"textures": [
|
||||||
{
|
{
|
||||||
"image": "training_gear.png",
|
"image": "training_session_gear.png",
|
||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 76,
|
"w": 76,
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
@ -5,29 +5,29 @@
|
|||||||
"format": "RGBA8888",
|
"format": "RGBA8888",
|
||||||
"size": {
|
"size": {
|
||||||
"w": 78,
|
"w": 78,
|
||||||
"h": 87
|
"h": 86
|
||||||
},
|
},
|
||||||
"scale": 1,
|
"scale": 1,
|
||||||
"frames": [
|
"frames": [
|
||||||
{
|
{
|
||||||
"filename": "0001.png",
|
"filename": "0001.png",
|
||||||
"rotated": false,
|
"rotated": false,
|
||||||
"trimmed": true,
|
"trimmed": false,
|
||||||
"sourceSize": {
|
"sourceSize": {
|
||||||
"w": 80,
|
"w": 78,
|
||||||
"h": 87
|
"h": 86
|
||||||
},
|
},
|
||||||
"spriteSourceSize": {
|
"spriteSourceSize": {
|
||||||
"x": 1,
|
"x": 0,
|
||||||
"y": 0,
|
"y": 0,
|
||||||
"w": 78,
|
"w": 78,
|
||||||
"h": 87
|
"h": 86
|
||||||
},
|
},
|
||||||
"frame": {
|
"frame": {
|
||||||
"x": 0,
|
"x": 0,
|
||||||
"y": 0,
|
"y": 0,
|
||||||
"w": 78,
|
"w": 78,
|
||||||
"h": 87
|
"h": 86
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@ -36,6 +36,6 @@
|
|||||||
"meta": {
|
"meta": {
|
||||||
"app": "https://www.codeandweb.com/texturepacker",
|
"app": "https://www.codeandweb.com/texturepacker",
|
||||||
"version": "3.0",
|
"version": "3.0",
|
||||||
"smartupdate": "$TexturePacker:SmartUpdate:d3cce87ee0e3a880d840bffe9373d5d4:7c776d33b75abad1fe36b14a5e5734af:56468b7a2883e66dadcd2af13ebd8010$"
|
"smartupdate": "$TexturePacker:SmartUpdate:65266da62e9d2953511c0d68ae431345:c1ca63690bed8dd5af71bb443910c830:56468b7a2883e66dadcd2af13ebd8010$"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 955 B After Width: | Height: | Size: 995 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.3 KiB |
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 702 B After Width: | Height: | Size: 749 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 410 B |
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 410 B |
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 410 B |
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 410 B |
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 410 B |
Before Width: | Height: | Size: 400 B After Width: | Height: | Size: 410 B |