diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..67b11d7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,12 @@
+new
+.idea
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+TEMP/
+*.pth
+
+input
+output
+add
\ No newline at end of file
diff --git a/README.md b/README.md
index 42bc359..a72001c 100644
--- a/README.md
+++ b/README.md
@@ -3,57 +3,25 @@
-Patapon 2 HD
+Patapon 2 HD AI
-[](https://github.com/shockturtle/Patapon2HD/graphs/contributors)
-[](https://github.com/shockturtle/Patapon2HD/stargazers)
-[](https://github.com/shockturtle/Patapon2HD/issues)
-[](https://github.com/shockturtle/Patapon2HD/pulls)
---
-Side Project for HD Patapon 2 textures.
-
-All textures are done entirely by me unless comments in textures.ini state otherwise.
-
-## 🎈 Usage
-
-To install, enable Texture Replacement in PPSSPP dev menu (Settings->Tools->Developer Tools).
-
-Put both the textures folder and textures.ini files in `PPSSPP/memstick/PSP/TEXTURES/%GAME_ID%`
-
-If the textures folder doesnt exist, make it.
-
-| Region | Game ID |
-| ------: | ----------- |
-| EU | `UCES01177` |
-| NA | `UCUS98732` |
-| JP | `UCJS10089` |
-| AS | `UCAS40239` |
-
-
-## 🎉 Acknowledgements
-BIG Thank you to
-
-- [owocek](https://github.com/owocekTV) (Motivation)
-
-- Xandis/Gat235 (Every single bird and javelin)
-
-- Iracy (Materials and other items)
-
-- [RinCasi](https://twitter.com/I26mc) (Various symbols and high-quality resources)
-
-- [efonte](https://github.com/efonte) (AI Upscaling)
-
-
-Special Thanks to
-
-- [WallSoGB](https://github.com/WallSoGB) (Leader of the [Patapon3Textures](https://github.com/WallSoGB/Patapon3Textures) project)
+AI upscaled Patapon 2 textures.
+Contains all exists textures from [Patapon 2 HD](https://github.com/shockturtle/Patapon2HD) repository
+If you want generate missing textures, it very easy.
+1) Enable saving new nextures in PPSSPP dev settings
+2) Copy all yours textures from `new` to `ai_upscale_workdir/input`
+3) Press `ai_upscale_workdir/generate_ai_textures.bat` and select models
+ * `1_4x_FatalPixels_340000_G_4x_Fatality_01_265000_G_interp_05` works very good, but sometimes `1_4x_Loyaldk-SuperPony_500000_V2.0` work better
+4) After upscale finish first press `copy.bat`, after `paste.bat`
+And it's done, you generated new textures
\ No newline at end of file
diff --git a/ai_upscale_workdir/README.md b/ai_upscale_workdir/README.md
new file mode 100644
index 0000000..8c7ec7f
--- /dev/null
+++ b/ai_upscale_workdir/README.md
@@ -0,0 +1,42 @@
+# Fork of [BlueAmulet's fork](https://github.com/BlueAmulet/ESRGAN) of [ESRGAN by Xinntao](https://github.com/xinntao/ESRGAN)
+
+This fork ports features over from my ESRGAN-Bot repository and adds a few more. It natively allows:
+
+* In-memory splitting/merging functionality (fully seamless, recently revamped for the third time and no longer requires tile size)
+* Seamless texture preservation (both tiled and mirrored)
+* Model chaining
+* Transparency preservation (3 different modes)
+* 1-bit transparency support (with half transparency as well)
+* Both new-arch and old-arch models
+* Regular and SPSR models, of any scale or internal model settings
+* On-the-fly interpolation
+
+**Tile size was recently removed! It is no longer needed for split/merge functionality!**
+
+To set your textures to seamless, use the `--seamless` flag. For regular tiled seamless mode, use `--seamless tile`. For mirrored seamless mode, use `--seamless mirror`. You can also add pixel-replication padding using `--seamless replicate` and alpha padding using `--seamless alpha_pad`.
+
+To chain models, simply put one model name after another with a `>` in between (you can also use `+` if using bash to avoid issues), such as `1xDeJpeg.pth>4xESRGAN.pth` **note: To use model chaining, model names must be the complete full name without the path included, and the models must be present in your `/models` folder. You can still use full model paths to upscale with a single model.**
+
+For on-the-fly interpolation, you use this syntax: `:<##>&:<##>`, where the model name is the path to the model and ## is the numerical percentage to interpolate by. For example, `model1:50&model2:50` would interpolate model1 and model2 by 50 each. The numbers should add up to 100. If you have trouble using `:` or `&`, either try putting the interpolation string in quotes or use `@` or `|` respectively (`"model1@50|model2@50"`).
+
+To use 1 bit binary alpha transparency, set the `--binary-alpha` flag to True. When using `--binary-alpha` transparency, provide the optional `--alpha-threshold` to specify the alpha transparency threshold. 1 bit binary transparency is useful when upscaling images that require that the end result has 1 bit transparency, e.g. PSX games. If you want to include half transparency, use `--ternary-alpha` instead, which allows you to set the `--alpha-boundary-offset` threshold.
+
+The default alpha mode is now 0 (ignore alpha). There are also now 3 other modes to choose from:
+
+* `--alpha-mode 1`: Fills the alpha channel with both white and black and extracts the difference from each result.
+* `--alpha-mode 2`: Upscales the alpha channel by itself, as a fake 3 channel image (The IEU way) then combines with result.
+* `--alpha-mode 3`: Shifts the channels so that it upscales the alpha channel along with other regular channels then combines with result.
+
+To process images in reverse order, use `--reverse`. If needed, you can also skip existing files by using `--skip-existing`.
+
+If you're upscaling images of the same size, you can do `--cache-max-split-depth` to only calculate the automatic tile size once to improve performance.
+
+Examples:
+
+* `python upscale.py 4xBox.pth --seamless tile`
+* `python upscale.py 1xSSAntiAlias9x.pth>4xBox.pth`
+* `python upscale.py 4xBox.pth --binary-alpha --alpha-threshold .2`
+* `python upscale.py /models/4xBox.pth`
+* `python upscale.py "1x_model1.pth@50|1x_model2.pth@50>2x_model3.pth"`
+
+If you want a GUI for ESRGAN and if you're on Windows, check out [Cupscale](https://github.com/n00mkrad/cupscale/). It implements most of this fork's features as well as other utilities around it.
diff --git a/ai_upscale_workdir/generate_ai_textures.bat b/ai_upscale_workdir/generate_ai_textures.bat
new file mode 100644
index 0000000..77caea7
--- /dev/null
+++ b/ai_upscale_workdir/generate_ai_textures.bat
@@ -0,0 +1,2 @@
+py generate_ai_textures.py
+PAUSE
\ No newline at end of file
diff --git a/ai_upscale_workdir/generate_ai_textures.py b/ai_upscale_workdir/generate_ai_textures.py
new file mode 100644
index 0000000..074e6a7
--- /dev/null
+++ b/ai_upscale_workdir/generate_ai_textures.py
@@ -0,0 +1,73 @@
+import os
+import shutil
+from pathlib import Path
+
+import upscale
+
+processAlpha = None
+
+inputVal=input("Need process alpha channel ? (Y,n)")
+if inputVal.lower() == "n":
+ processAlpha = False
+elif inputVal.lower() == "y" or not inputVal:
+ processAlpha = True
+else:
+ print("Error input")
+ exit(0)
+
+print("Select upscale engine, or if you want use multiple, write multiple numbers like 123")
+
+models = os.listdir("models")
+
+if len(models) == 0:
+ print("Download models and place in it models before use")
+ exit(0)
+
+for i in range(len(models)):
+ print(str(i + 1) + ". " + models[i])
+
+select = input("Select: ")
+if not select.isdigit():
+ print("Write digit")
+ exit(0)
+
+selectedModels = []
+
+for i in select:
+ num = int(i) - 1
+ if num < 0 or num >= len(models):
+ print("Number bigger of models size or lower 0")
+ exit(0)
+ else:
+ selectedModels.append(models[num])
+
+print("Start: " + " -> ".join(selectedModels))
+
+
+def deleteFolder(path: str):
+ if os.path.exists(path):
+ shutil.rmtree(path)
+
+
+tempFolder = "TEMP"
+finalOutputFolder = "output"
+
+deleteFolder(tempFolder)
+
+inputFolder = "input"
+
+for i in range(len(selectedModels)):
+ model = selectedModels[i]
+ modelResultFolder = "TEMP" + os.sep + str(i + 1) + "(" + model[0:20] + ")"
+
+ upscale.Upscale(
+ model=model,
+ input=Path(inputFolder),
+ output=Path(modelResultFolder),
+ alpha_mode=upscale.AlphaOptions.alpha_separately if processAlpha else upscale.AlphaOptions.no_alpha
+ ).run()
+
+ inputFolder = modelResultFolder
+
+deleteFolder(finalOutputFolder)
+shutil.copytree(inputFolder, finalOutputFolder)
diff --git a/ai_upscale_workdir/models/README.md b/ai_upscale_workdir/models/README.md
new file mode 100644
index 0000000..51b104c
--- /dev/null
+++ b/ai_upscale_workdir/models/README.md
@@ -0,0 +1,7 @@
+Im use next models, you can find it in the internet:
+* [4x_FatalPixels_340000_G](https://de-next.owncube.com/index.php/s/gPjswdm6gCegQdz)
+* [4x_Loyaldk-SuperPony_500000_V2.0](https://mega.nz/file/IBhElRYJ#C_lVc8Vr2q8X6hEltJKD6I63U7oL_FDLeJgPh72AZmg)
+* [1x_NoiseTonerV1_110000_G](https://drive.google.com/drive/u/0/folders/12j6BvuR7SU48ui9DHjBPB1vzPpQri9bD)
+* [1x_Fatality_DeBlur_270000_G](https://de-next.owncube.com/index.php/s/aAojXwLTPZto8rP)
+
+Very cool works Pony model, but some time combine fatalpixel->deblur->noiseToner give also very cool results
diff --git a/ai_upscale_workdir/requirements.txt b/ai_upscale_workdir/requirements.txt
new file mode 100644
index 0000000..68c2411
--- /dev/null
+++ b/ai_upscale_workdir/requirements.txt
@@ -0,0 +1,5 @@
+opencv_python
+numpy
+torch
+rich
+typer
diff --git a/ai_upscale_workdir/upscale.py b/ai_upscale_workdir/upscale.py
new file mode 100644
index 0000000..8ccb9cb
--- /dev/null
+++ b/ai_upscale_workdir/upscale.py
@@ -0,0 +1,661 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+import logging
+import sys
+from collections import OrderedDict
+from enum import Enum
+from pathlib import Path
+from typing import List, Optional, Union
+
+import cv2
+import numpy as np
+import torch
+import typer
+from rich import print
+from rich.logging import RichHandler
+from rich.progress import (
+ BarColumn,
+ Progress,
+ # SpinnerColumn,
+ TaskID,
+ TimeRemainingColumn,
+)
+
+import utils.architecture as arch
+import utils.dataops as ops
+
+
+class SeamlessOptions(str, Enum):
+ tile = "tile"
+ mirror = "mirror"
+ replicate = "replicate"
+ alpha_pad = "alpha_pad"
+
+
+class AlphaOptions(str, Enum):
+ no_alpha = "no_alpha"
+ bas = "bas"
+ alpha_separately = "alpha_separately"
+ swapping = "swapping"
+
+
+class Upscale:
+ model_str: str = None
+ input: Path = None
+ output: Path = None
+ reverse: bool = None
+ skip_existing: bool = None
+ delete_input: bool = None
+ seamless: SeamlessOptions = None
+ cpu: bool = None
+ fp16: bool = None
+ # device_id: int = None
+ cache_max_split_depth: bool = None
+ binary_alpha: bool = None
+ ternary_alpha: bool = None
+ alpha_threshold: float = None
+ alpha_boundary_offset: float = None
+ alpha_mode: AlphaOptions = None
+ log: logging.Logger = None
+
+ device: torch.device = None
+ in_nc: int = None
+ out_nc: int = None
+ last_model: str = None
+ last_in_nc: int = None
+ last_out_nc: int = None
+ last_nf: int = None
+ last_nb: int = None
+ last_scale: int = None
+ last_kind: str = None
+ model: Union[arch.nn.Module, arch.RRDBNet, arch.SPSRNet] = None
+
+ def __init__(
+ self,
+ model: str,
+ input: Path,
+ output: Path,
+ reverse: bool = False,
+ skip_existing: bool = False,
+ delete_input: bool = False,
+ seamless: Optional[SeamlessOptions] = None,
+ cpu: bool = False,
+ fp16: bool = False,
+ device_id: int = 0,
+ cache_max_split_depth: bool = False,
+ binary_alpha: bool = False,
+ ternary_alpha: bool = False,
+ alpha_threshold: float = 0.5,
+ alpha_boundary_offset: float = 0.2,
+ alpha_mode: Optional[AlphaOptions] = None,
+ log: logging.Logger = logging.getLogger(),
+ ) -> None:
+ self.model_str = model
+ self.input = input.resolve()
+ self.output = output.resolve()
+ self.reverse = reverse
+ self.skip_existing = skip_existing
+ self.delete_input = delete_input
+ self.seamless = seamless
+ self.cpu = cpu
+ self.fp16 = fp16
+ self.device = torch.device("cpu" if self.cpu else f"cuda:{device_id}")
+ self.cache_max_split_depth = cache_max_split_depth
+ self.binary_alpha = binary_alpha
+ self.ternary_alpha = ternary_alpha
+ self.alpha_threshold = alpha_threshold
+ self.alpha_boundary_offset = alpha_boundary_offset
+ self.alpha_mode = alpha_mode
+ self.log = log
+ if self.fp16:
+ torch.set_default_tensor_type(
+ torch.HalfTensor if self.cpu else torch.cuda.HalfTensor
+ )
+
+ def run(self) -> None:
+ model_chain = (
+ self.model_str.split("+")
+ if "+" in self.model_str
+ else self.model_str.split(">")
+ )
+
+ for idx, model in enumerate(model_chain):
+
+ interpolations = (
+ model.split("|") if "|" in self.model_str else model.split("&")
+ )
+
+ if len(interpolations) > 1:
+ for i, interpolation in enumerate(interpolations):
+ interp_model, interp_amount = (
+ interpolation.split("@")
+ if "@" in interpolation
+ else interpolation.split(":")
+ )
+ interp_model = self.__check_model_path(interp_model)
+ interpolations[i] = f"{interp_model}@{interp_amount}"
+ model_chain[idx] = "&".join(interpolations)
+ else:
+ model_chain[idx] = self.__check_model_path(model)
+
+ if not self.input.exists():
+ self.log.error(f'Folder "{self.input}" does not exist.')
+ sys.exit(1)
+ elif self.input.is_file():
+ self.log.error(f'Folder "{self.input}" is a file.')
+ sys.exit(1)
+ elif self.output.is_file():
+ self.log.error(f'Folder "{self.output}" is a file.')
+ sys.exit(1)
+ elif not self.output.exists():
+ self.output.mkdir(parents=True)
+
+ self.in_nc = None
+ self.out_nc = None
+
+ print(
+ 'Model{:s}: "{:s}"'.format(
+ "s" if len(model_chain) > 1 else "",
+ # ", ".join([Path(x).stem for x in model_chain]),
+ ", ".join([x for x in model_chain]),
+ )
+ )
+
+ images: List[Path] = []
+ for ext in ["png", "jpg", "jpeg", "gif", "bmp", "tiff", "tga"]:
+ images.extend(self.input.glob(f"**/*.{ext}"))
+
+ # Store the maximum split depths for each model in the chain
+ # TODO: there might be a better way of doing this but it's good enough for now
+ split_depths = {}
+
+ with Progress(
+ # SpinnerColumn(),
+ "[progress.description]{task.description}",
+ BarColumn(),
+ "[progress.percentage]{task.percentage:>3.0f}%",
+ TimeRemainingColumn(),
+ ) as progress:
+ task_upscaling = progress.add_task("Upscaling", total=len(images))
+ for idx, img_path in enumerate(images, 1):
+ img_input_path_rel = img_path.relative_to(self.input)
+ output_dir = self.output.joinpath(img_input_path_rel).parent
+ img_output_path_rel = output_dir.joinpath(f"{img_path.stem}.png")
+ output_dir.mkdir(parents=True, exist_ok=True)
+ if len(model_chain) == 1:
+ self.log.info(
+ f'Processing {str(idx).zfill(len(str(len(images))))}: "{img_input_path_rel}"'
+ )
+ if self.skip_existing and img_output_path_rel.is_file():
+ self.log.warning("Already exists, skipping")
+ if self.delete_input:
+ img_path.unlink(missing_ok=True)
+ progress.advance(task_upscaling)
+ continue
+ # read image
+ img = cv2.imread(str(img_path.absolute()), cv2.IMREAD_UNCHANGED)
+ if len(img.shape) < 3:
+ img = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
+
+ # Seamless modes
+ if self.seamless == SeamlessOptions.tile:
+ img = cv2.copyMakeBorder(img, 16, 16, 16, 16, cv2.BORDER_WRAP)
+ elif self.seamless == SeamlessOptions.mirror:
+ img = cv2.copyMakeBorder(
+ img, 16, 16, 16, 16, cv2.BORDER_REFLECT_101
+ )
+ elif self.seamless == SeamlessOptions.replicate:
+ img = cv2.copyMakeBorder(img, 16, 16, 16, 16, cv2.BORDER_REPLICATE)
+ elif self.seamless == SeamlessOptions.alpha_pad:
+ img = cv2.copyMakeBorder(
+ img, 16, 16, 16, 16, cv2.BORDER_CONSTANT, value=[0, 0, 0, 0]
+ )
+ final_scale: int = 1
+
+ task_model_chain: TaskID = None
+ if len(model_chain) > 1:
+ task_model_chain = progress.add_task(
+ f'{str(idx).zfill(len(str(len(images))))} - "{img_input_path_rel}"',
+ total=len(model_chain),
+ )
+ for i, model_path in enumerate(model_chain):
+
+ img_height, img_width = img.shape[:2]
+
+ # Load the model so we can access the scale
+ self.load_model(model_path)
+
+ if self.cache_max_split_depth and len(split_depths.keys()) > 0:
+ rlt, depth = ops.auto_split_upscale(
+ img,
+ self.upscale,
+ self.last_scale,
+ max_depth=split_depths[i],
+ )
+ else:
+ rlt, depth = ops.auto_split_upscale(
+ img, self.upscale, self.last_scale
+ )
+ split_depths[i] = depth
+
+ final_scale *= self.last_scale
+
+ # This is for model chaining
+ img = rlt.astype("uint8")
+ if len(model_chain) > 1:
+ progress.advance(task_model_chain)
+
+ if self.seamless:
+ rlt = self.crop_seamless(rlt, final_scale)
+
+ cv2.imwrite(str(img_output_path_rel.absolute()), rlt)
+
+ if self.delete_input:
+ img_path.unlink(missing_ok=True)
+
+ progress.advance(task_upscaling)
+
+ def __check_model_path(self, model_path: str) -> str:
+ if Path(model_path).is_file():
+ return model_path
+ elif Path("./models/").joinpath(model_path).is_file():
+ return str(Path("./models/").joinpath(model_path))
+ else:
+ self.log.error(f'Model "{model_path}" does not exist.')
+ sys.exit(1)
+
+ # This code is a somewhat modified version of BlueAmulet's fork of ESRGAN by Xinntao
+ def process(self, img: np.ndarray):
+ """
+ Does the processing part of ESRGAN. This method only exists because the same block of code needs to be ran twice for images with transparency.
+
+ Parameters:
+ img (array): The image to process
+
+ Returns:
+ rlt (array): The processed image
+ """
+ if img.shape[2] == 3:
+ img = img[:, :, [2, 1, 0]]
+ elif img.shape[2] == 4:
+ img = img[:, :, [2, 1, 0, 3]]
+ img = torch.from_numpy(np.transpose(img, (2, 0, 1))).float()
+ if self.fp16:
+ img = img.half()
+ img_LR = img.unsqueeze(0)
+ img_LR = img_LR.to(self.device)
+
+ output = self.model(img_LR).data.squeeze(0).float().cpu().clamp_(0, 1).numpy()
+ if output.shape[0] == 3:
+ output = output[[2, 1, 0], :, :]
+ elif output.shape[0] == 4:
+ output = output[[2, 1, 0, 3], :, :]
+ output = np.transpose(output, (1, 2, 0))
+ return output
+
+ def load_model(self, model_path: str):
+ if model_path != self.last_model:
+ # interpolating OTF, example: 4xBox:25&4xPSNR:75
+ if (":" in model_path or "@" in model_path) and (
+ "&" in model_path or "|" in model_path
+ ):
+ interps = model_path.split("&")[:2]
+ model_1 = torch.load(interps[0].split("@")[0])
+ model_2 = torch.load(interps[1].split("@")[0])
+ state_dict = OrderedDict()
+ f = open("demofile2.txt", "a")
+ f.write(repr(model_2))
+ f.close()
+ for k, v_1 in model_1.items():
+ v_2 = model_2[k]
+ state_dict[k] = (int(interps[0].split("@")[1]) / 100) * v_1 + (
+ int(interps[1].split("@")[1]) / 100
+ ) * v_2
+ else:
+ state_dict = torch.load(model_path)
+
+ if "conv_first.weight" in state_dict:
+ print("Attempting to convert and load a new-format model")
+ old_net = {}
+ items = []
+ for k, v in state_dict.items():
+ items.append(k)
+
+ old_net["model.0.weight"] = state_dict["conv_first.weight"]
+ old_net["model.0.bias"] = state_dict["conv_first.bias"]
+
+ for k in items.copy():
+ if "RDB" in k:
+ ori_k = k.replace("RRDB_trunk.", "model.1.sub.")
+ if ".weight" in k:
+ ori_k = ori_k.replace(".weight", ".0.weight")
+ elif ".bias" in k:
+ ori_k = ori_k.replace(".bias", ".0.bias")
+ old_net[ori_k] = state_dict[k]
+ items.remove(k)
+
+ old_net["model.1.sub.23.weight"] = state_dict["trunk_conv.weight"]
+ old_net["model.1.sub.23.bias"] = state_dict["trunk_conv.bias"]
+ old_net["model.3.weight"] = state_dict["upconv1.weight"]
+ old_net["model.3.bias"] = state_dict["upconv1.bias"]
+ old_net["model.6.weight"] = state_dict["upconv2.weight"]
+ old_net["model.6.bias"] = state_dict["upconv2.bias"]
+ old_net["model.8.weight"] = state_dict["HRconv.weight"]
+ old_net["model.8.bias"] = state_dict["HRconv.bias"]
+ old_net["model.10.weight"] = state_dict["conv_last.weight"]
+ old_net["model.10.bias"] = state_dict["conv_last.bias"]
+ state_dict = old_net
+
+ # extract model information
+ scale2 = 0
+ max_part = 0
+ plus = False
+ if "f_HR_conv1.0.weight" in state_dict:
+ kind = "SPSR"
+ scalemin = 4
+ else:
+ kind = "ESRGAN"
+ scalemin = 6
+ for part in list(state_dict):
+ parts = part.split(".")
+ n_parts = len(parts)
+ if n_parts == 5 and parts[2] == "sub":
+ nb = int(parts[3])
+ elif n_parts == 3:
+ part_num = int(parts[1])
+ if (
+ part_num > scalemin
+ and parts[0] == "model"
+ and parts[2] == "weight"
+ ):
+ scale2 += 1
+ if part_num > max_part:
+ max_part = part_num
+ self.out_nc = state_dict[part].shape[0]
+ if "conv1x1" in part and not plus:
+ plus = True
+
+ upscale = 2 ** scale2
+ self.in_nc = state_dict["model.0.weight"].shape[1]
+ if kind == "SPSR":
+ self.out_nc = state_dict["f_HR_conv1.0.weight"].shape[0]
+ nf = state_dict["model.0.weight"].shape[0]
+
+ if (
+ self.in_nc != self.last_in_nc
+ or self.out_nc != self.last_out_nc
+ or nf != self.last_nf
+ or nb != self.last_nb
+ or upscale != self.last_scale
+ or kind != self.last_kind
+ ):
+ if kind == "ESRGAN":
+ self.model = arch.RRDBNet(
+ in_nc=self.in_nc,
+ out_nc=self.out_nc,
+ nf=nf,
+ nb=nb,
+ gc=32,
+ upscale=upscale,
+ norm_type=None,
+ act_type="leakyrelu",
+ mode="CNA",
+ upsample_mode="upconv",
+ plus=plus,
+ )
+ elif kind == "SPSR":
+ self.model = arch.SPSRNet(
+ self.in_nc,
+ self.out_nc,
+ nf,
+ nb,
+ gc=32,
+ upscale=upscale,
+ norm_type=None,
+ act_type="leakyrelu",
+ mode="CNA",
+ upsample_mode="upconv",
+ )
+ self.last_in_nc = self.in_nc
+ self.last_out_nc = self.out_nc
+ self.last_nf = nf
+ self.last_nb = nb
+ self.last_scale = upscale
+ self.last_kind = kind
+ self.last_model = model_path
+
+ self.model.load_state_dict(state_dict, strict=True)
+ del state_dict
+ self.model.eval()
+ for k, v in self.model.named_parameters():
+ v.requires_grad = False
+ self.model = self.model.to(self.device)
+ self.last_model = model_path
+
+ # This code is a somewhat modified version of BlueAmulet's fork of ESRGAN by Xinntao
+ def upscale(self, img: np.ndarray) -> np.ndarray:
+ """
+ Upscales the image passed in with the specified model
+
+ Parameters:
+ img: The image to upscale
+ model_path (string): The model to use
+
+ Returns:
+ output: The processed image
+ """
+
+ img = img * 1.0 / np.iinfo(img.dtype).max
+
+ if (
+ img.ndim == 3
+ and img.shape[2] == 4
+ and self.last_in_nc == 3
+ and self.last_out_nc == 3
+ ):
+
+ # Fill alpha with white and with black, remove the difference
+ if self.alpha_mode == AlphaOptions.bas:
+ img1 = np.copy(img[:, :, :3])
+ img2 = np.copy(img[:, :, :3])
+ for c in range(3):
+ img1[:, :, c] *= img[:, :, 3]
+ img2[:, :, c] = (img2[:, :, c] - 1) * img[:, :, 3] + 1
+
+ output1 = self.process(img1)
+ output2 = self.process(img2)
+ alpha = 1 - np.mean(output2 - output1, axis=2)
+ output = np.dstack((output1, alpha))
+ output = np.clip(output, 0, 1)
+ # Upscale the alpha channel itself as its own image
+ elif self.alpha_mode == AlphaOptions.alpha_separately:
+ img1 = np.copy(img[:, :, :3])
+ img2 = cv2.merge((img[:, :, 3], img[:, :, 3], img[:, :, 3]))
+ output1 = self.process(img1)
+ output2 = self.process(img2)
+ output = cv2.merge(
+ (
+ output1[:, :, 0],
+ output1[:, :, 1],
+ output1[:, :, 2],
+ output2[:, :, 0],
+ )
+ )
+ # Use the alpha channel like a regular channel
+ elif self.alpha_mode == AlphaOptions.swapping:
+ img1 = cv2.merge((img[:, :, 0], img[:, :, 1], img[:, :, 2]))
+ img2 = cv2.merge((img[:, :, 1], img[:, :, 2], img[:, :, 3]))
+ output1 = self.process(img1)
+ output2 = self.process(img2)
+ output = cv2.merge(
+ (
+ output1[:, :, 0],
+ output1[:, :, 1],
+ output1[:, :, 2],
+ output2[:, :, 2],
+ )
+ )
+ # Remove alpha
+ else:
+ img1 = np.copy(img[:, :, :3])
+ output = self.process(img1)
+ output = cv2.cvtColor(output, cv2.COLOR_BGR2BGRA)
+
+ if self.binary_alpha:
+ alpha = output[:, :, 3]
+ threshold = self.alpha_threshold
+ _, alpha = cv2.threshold(alpha, threshold, 1, cv2.THRESH_BINARY)
+ output[:, :, 3] = alpha
+ elif self.ternary_alpha:
+ alpha = output[:, :, 3]
+ half_transparent_lower_bound = (
+ self.alpha_threshold - self.alpha_boundary_offset
+ )
+ half_transparent_upper_bound = (
+ self.alpha_threshold + self.alpha_boundary_offset
+ )
+ alpha = np.where(
+ alpha < half_transparent_lower_bound,
+ 0,
+ np.where(alpha <= half_transparent_upper_bound, 0.5, 1),
+ )
+ output[:, :, 3] = alpha
+ else:
+ if img.ndim == 2:
+ img = np.tile(
+ np.expand_dims(img, axis=2), (1, 1, min(self.last_in_nc, 3))
+ )
+ if img.shape[2] > self.last_in_nc: # remove extra channels
+ self.log.warning("Truncating image channels")
+ img = img[:, :, : self.last_in_nc]
+ # pad with solid alpha channel
+ elif img.shape[2] == 3 and self.last_in_nc == 4:
+ img = np.dstack((img, np.full(img.shape[:-1], 1.0)))
+ output = self.process(img)
+
+ output = (output * 255.0).round()
+
+ return output
+
+ def crop_seamless(self, img: np.ndarray, scale: int) -> np.ndarray:
+ img_height, img_width = img.shape[:2]
+ y, x = 16 * scale, 16 * scale
+ h, w = img_height - (32 * scale), img_width - (32 * scale)
+ img = img[y : y + h, x : x + w]
+ return img
+
+
+app = typer.Typer()
+
+
+@app.command()
+def main(
+ model: str = typer.Argument(...),
+ input: Path = typer.Option(Path("input"), "--input", "-i", help="Input folder"),
+ output: Path = typer.Option(Path("output"), "--output", "-o", help="Output folder"),
+ reverse: bool = typer.Option(False, "--reverse", "-r", help="Reverse Order"),
+ skip_existing: bool = typer.Option(
+ False,
+ "--skip-existing",
+ "-se",
+ help="Skip existing output files",
+ ),
+ delete_input: bool = typer.Option(
+ False,
+ "--delete-input",
+ "-di",
+ help="Delete input files after upscaling",
+ ),
+ seamless: SeamlessOptions = typer.Option(
+ None,
+ "--seamless",
+ "-s",
+ case_sensitive=False,
+ help="Helps seamlessly upscale an image. tile = repeating along edges. mirror = reflected along edges. replicate = extended pixels along edges. alpha_pad = extended alpha border.",
+ ),
+ cpu: bool = typer.Option(False, "--cpu", "-c", help="Use CPU instead of CUDA"),
+ fp16: bool = typer.Option(
+ False,
+ "--floating-point-16",
+ "-fp16",
+ help="Use FloatingPoint16/Halftensor type for images.",
+ ),
+ device_id: int = typer.Option(
+ 0, "--device-id", "-did", help="The numerical ID of the GPU you want to use."
+ ),
+ cache_max_split_depth: bool = typer.Option(
+ False,
+ "--cache-max-split-depth",
+ "-cmsd",
+ help="Caches the maximum recursion depth used by the split/merge function. Useful only when upscaling images of the same size.",
+ ),
+ binary_alpha: bool = typer.Option(
+ False,
+ "--binary-alpha",
+ "-ba",
+ help="Whether to use a 1 bit alpha transparency channel, Useful for PSX upscaling",
+ ),
+ ternary_alpha: bool = typer.Option(
+ False,
+ "--ternary-alpha",
+ "-ta",
+ help="Whether to use a 2 bit alpha transparency channel, Useful for PSX upscaling",
+ ),
+ alpha_threshold: float = typer.Option(
+ 0.5,
+ "--alpha-threshold",
+ "-at",
+ help="Only used when binary_alpha is supplied. Defines the alpha threshold for binary transparency",
+ ),
+ alpha_boundary_offset: float = typer.Option(
+ 0.2,
+ "--alpha-boundary-offset",
+ "-abo",
+ help="Only used when binary_alpha is supplied. Determines the offset boundary from the alpha threshold for half transparency.",
+ ),
+ alpha_mode: AlphaOptions = typer.Option(
+ None,
+ "--alpha-mode",
+ "-am",
+ help="Type of alpha processing to use. no_alpha = is no alpha processing. bas = is BA's difference method. alpha_separately = is upscaling the alpha channel separately (like IEU). swapping = is swapping an existing channel with the alpha channel.",
+ ),
+ verbose: bool = typer.Option(
+ False,
+ "--verbose",
+ "-v",
+ help="Verbose mode",
+ ),
+):
+
+ logging.basicConfig(
+ level=logging.DEBUG if verbose else logging.WARNING,
+ format="%(message)s",
+ datefmt="[%X]",
+ handlers=[RichHandler(markup=True)],
+ # handlers=[RichHandler(markup=True, rich_tracebacks=True)],
+ )
+
+ upscale = Upscale(
+ model=model,
+ input=input,
+ output=output,
+ reverse=reverse,
+ skip_existing=skip_existing,
+ delete_input=delete_input,
+ seamless=seamless,
+ cpu=cpu,
+ fp16=fp16,
+ device_id=device_id,
+ cache_max_split_depth=cache_max_split_depth,
+ binary_alpha=binary_alpha,
+ ternary_alpha=ternary_alpha,
+ alpha_threshold=alpha_threshold,
+ alpha_boundary_offset=alpha_boundary_offset,
+ alpha_mode=alpha_mode,
+ )
+ upscale.run()
+
+
+if __name__ == "__main__":
+ app()
diff --git a/ai_upscale_workdir/utils/architecture.py b/ai_upscale_workdir/utils/architecture.py
new file mode 100644
index 0000000..bfc23c9
--- /dev/null
+++ b/ai_upscale_workdir/utils/architecture.py
@@ -0,0 +1,387 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+import math
+import torch
+import torch.nn as nn
+import torch.nn.functional as F
+import utils.block as B
+
+
+class Get_gradient_nopadding(nn.Module):
+ def __init__(self):
+ super(Get_gradient_nopadding, self).__init__()
+ kernel_v = [[0, -1, 0], [0, 0, 0], [0, 1, 0]]
+ kernel_h = [[0, 0, 0], [-1, 0, 1], [0, 0, 0]]
+ kernel_h = torch.FloatTensor(kernel_h).unsqueeze(0).unsqueeze(0)
+ kernel_v = torch.FloatTensor(kernel_v).unsqueeze(0).unsqueeze(0)
+ self.weight_h = nn.Parameter(data=kernel_h, requires_grad=False)
+
+ self.weight_v = nn.Parameter(data=kernel_v, requires_grad=False)
+
+ def forward(self, x):
+ x_list = []
+ for i in range(x.shape[1]):
+ x_i = x[:, i]
+ x_i_v = F.conv2d(x_i.unsqueeze(1), self.weight_v, padding=1)
+ x_i_h = F.conv2d(x_i.unsqueeze(1), self.weight_h, padding=1)
+ x_i = torch.sqrt(torch.pow(x_i_v, 2) + torch.pow(x_i_h, 2) + 1e-6)
+ x_list.append(x_i)
+
+ x = torch.cat(x_list, dim=1)
+
+ return x
+
+
+####################
+# Generator
+####################
+
+
+class RRDBNet(nn.Module):
+ def __init__(
+ self,
+ in_nc,
+ out_nc,
+ nf,
+ nb,
+ gc=32,
+ upscale=4,
+ norm_type=None,
+ act_type="leakyrelu",
+ mode="CNA",
+ upsample_mode="upconv",
+ convtype="Conv2D",
+ finalact=None,
+ plus=False,
+ ):
+ super(RRDBNet, self).__init__()
+ n_upscale = int(math.log(upscale, 2))
+ if upscale == 3:
+ n_upscale = 1
+
+ fea_conv = B.conv_block(in_nc, nf, kernel_size=3, norm_type=None, act_type=None)
+ rb_blocks = [
+ B.RRDB(
+ nf,
+ kernel_size=3,
+ gc=32,
+ stride=1,
+ bias=1,
+ pad_type="zero",
+ norm_type=norm_type,
+ act_type=act_type,
+ mode="CNA",
+ convtype=convtype,
+ plus=plus,
+ )
+ for _ in range(nb)
+ ]
+ LR_conv = B.conv_block(
+ nf, nf, kernel_size=3, norm_type=norm_type, act_type=None, mode=mode
+ )
+
+ if upsample_mode == "upconv":
+ upsample_block = B.upconv_block
+ elif upsample_mode == "pixelshuffle":
+ upsample_block = B.pixelshuffle_block
+ else:
+ raise NotImplementedError(
+ "upsample mode [{:s}] is not found".format(upsample_mode)
+ )
+ if upscale == 3:
+ upsampler = upsample_block(nf, nf, 3, act_type=act_type)
+ else:
+ upsampler = [
+ upsample_block(nf, nf, act_type=act_type) for _ in range(n_upscale)
+ ]
+ HR_conv0 = B.conv_block(
+ nf, nf, kernel_size=3, norm_type=None, act_type=act_type
+ )
+ HR_conv1 = B.conv_block(
+ nf, out_nc, kernel_size=3, norm_type=None, act_type=None
+ )
+
+ # Note: this option adds new parameters to the architecture, another option is to use "outm" in the forward
+ outact = B.act(finalact) if finalact else None
+
+ self.model = B.sequential(
+ fea_conv,
+ B.ShortcutBlock(B.sequential(*rb_blocks, LR_conv)),
+ *upsampler,
+ HR_conv0,
+ HR_conv1,
+ outact
+ )
+
+ def forward(self, x, outm=None):
+ x = self.model(x)
+
+ if (
+ outm == "scaltanh"
+ ): # limit output range to [-1,1] range with tanh and rescale to [0,1] Idea from: https://github.com/goldhuang/SRGAN-PyTorch/blob/master/model.py
+ return (torch.tanh(x) + 1.0) / 2.0
+ elif outm == "tanh": # limit output to [-1,1] range
+ return torch.tanh(x)
+ elif outm == "sigmoid": # limit output to [0,1] range
+ return torch.sigmoid(x)
+ elif outm == "clamp":
+ return torch.clamp(x, min=0.0, max=1.0)
+ else: # Default, no cap for the output
+ return x
+
+
+class SPSRNet(nn.Module):
+ def __init__(
+ self,
+ in_nc,
+ out_nc,
+ nf,
+ nb,
+ gc=32,
+ upscale=4,
+ norm_type=None,
+ act_type="leakyrelu",
+ mode="CNA",
+ upsample_mode="upconv",
+ ):
+ super(SPSRNet, self).__init__()
+
+ n_upscale = int(math.log(upscale, 2))
+ if upscale == 3:
+ n_upscale = 1
+
+ fea_conv = B.conv_block(in_nc, nf, kernel_size=3, norm_type=None, act_type=None)
+ rb_blocks = [
+ B.RRDB(
+ nf,
+ kernel_size=3,
+ gc=32,
+ stride=1,
+ bias=True,
+ pad_type="zero",
+ norm_type=norm_type,
+ act_type=act_type,
+ mode="CNA",
+ )
+ for _ in range(nb)
+ ]
+ LR_conv = B.conv_block(
+ nf, nf, kernel_size=3, norm_type=norm_type, act_type=None, mode=mode
+ )
+
+ if upsample_mode == "upconv":
+ upsample_block = B.upconv_blcok
+ elif upsample_mode == "pixelshuffle":
+ upsample_block = B.pixelshuffle_block
+ else:
+ raise NotImplementedError(
+ "upsample mode [{:s}] is not found".format(upsample_mode)
+ )
+ if upscale == 3:
+ upsampler = upsample_block(nf, nf, 3, act_type=act_type)
+ else:
+ upsampler = [
+ upsample_block(nf, nf, act_type=act_type) for _ in range(n_upscale)
+ ]
+ self.HR_conv0_new = B.conv_block(
+ nf, nf, kernel_size=3, norm_type=None, act_type=act_type
+ )
+ self.HR_conv1_new = B.conv_block(
+ nf, nf, kernel_size=3, norm_type=None, act_type=None
+ )
+
+ self.model = B.sequential(
+ fea_conv,
+ B.ShortcutBlockSPSR(B.sequential(*rb_blocks, LR_conv)),
+ *upsampler,
+ self.HR_conv0_new
+ )
+
+ self.get_g_nopadding = Get_gradient_nopadding()
+
+ self.b_fea_conv = B.conv_block(
+ in_nc, nf, kernel_size=3, norm_type=None, act_type=None
+ )
+
+ self.b_concat_1 = B.conv_block(
+ 2 * nf, nf, kernel_size=3, norm_type=None, act_type=None
+ )
+ self.b_block_1 = B.RRDB(
+ nf * 2,
+ kernel_size=3,
+ gc=32,
+ stride=1,
+ bias=True,
+ pad_type="zero",
+ norm_type=norm_type,
+ act_type=act_type,
+ mode="CNA",
+ )
+
+ self.b_concat_2 = B.conv_block(
+ 2 * nf, nf, kernel_size=3, norm_type=None, act_type=None
+ )
+ self.b_block_2 = B.RRDB(
+ nf * 2,
+ kernel_size=3,
+ gc=32,
+ stride=1,
+ bias=True,
+ pad_type="zero",
+ norm_type=norm_type,
+ act_type=act_type,
+ mode="CNA",
+ )
+
+ self.b_concat_3 = B.conv_block(
+ 2 * nf, nf, kernel_size=3, norm_type=None, act_type=None
+ )
+ self.b_block_3 = B.RRDB(
+ nf * 2,
+ kernel_size=3,
+ gc=32,
+ stride=1,
+ bias=True,
+ pad_type="zero",
+ norm_type=norm_type,
+ act_type=act_type,
+ mode="CNA",
+ )
+
+ self.b_concat_4 = B.conv_block(
+ 2 * nf, nf, kernel_size=3, norm_type=None, act_type=None
+ )
+ self.b_block_4 = B.RRDB(
+ nf * 2,
+ kernel_size=3,
+ gc=32,
+ stride=1,
+ bias=True,
+ pad_type="zero",
+ norm_type=norm_type,
+ act_type=act_type,
+ mode="CNA",
+ )
+
+ self.b_LR_conv = B.conv_block(
+ nf, nf, kernel_size=3, norm_type=norm_type, act_type=None, mode=mode
+ )
+
+ if upsample_mode == "upconv":
+ upsample_block = B.upconv_blcok
+ elif upsample_mode == "pixelshuffle":
+ upsample_block = B.pixelshuffle_block
+ else:
+ raise NotImplementedError(
+ "upsample mode [{:s}] is not found".format(upsample_mode)
+ )
+ if upscale == 3:
+ b_upsampler = upsample_block(nf, nf, 3, act_type=act_type)
+ else:
+ b_upsampler = [
+ upsample_block(nf, nf, act_type=act_type) for _ in range(n_upscale)
+ ]
+
+ b_HR_conv0 = B.conv_block(
+ nf, nf, kernel_size=3, norm_type=None, act_type=act_type
+ )
+ b_HR_conv1 = B.conv_block(nf, nf, kernel_size=3, norm_type=None, act_type=None)
+
+ self.b_module = B.sequential(*b_upsampler, b_HR_conv0, b_HR_conv1)
+
+ self.conv_w = B.conv_block(
+ nf, out_nc, kernel_size=1, norm_type=None, act_type=None
+ )
+
+ self.f_concat = B.conv_block(
+ nf * 2, nf, kernel_size=3, norm_type=None, act_type=None
+ )
+
+ self.f_block = B.RRDB(
+ nf * 2,
+ kernel_size=3,
+ gc=32,
+ stride=1,
+ bias=True,
+ pad_type="zero",
+ norm_type=norm_type,
+ act_type=act_type,
+ mode="CNA",
+ )
+
+ self.f_HR_conv0 = B.conv_block(
+ nf, nf, kernel_size=3, norm_type=None, act_type=act_type
+ )
+ self.f_HR_conv1 = B.conv_block(
+ nf, out_nc, kernel_size=3, norm_type=None, act_type=None
+ )
+
+ def forward(self, x):
+ x_grad = self.get_g_nopadding(x)
+ x = self.model[0](x)
+
+ x, block_list = self.model[1](x)
+
+ x_ori = x
+ for i in range(5):
+ x = block_list[i](x)
+ x_fea1 = x
+
+ for i in range(5):
+ x = block_list[i + 5](x)
+ x_fea2 = x
+
+ for i in range(5):
+ x = block_list[i + 10](x)
+ x_fea3 = x
+
+ for i in range(5):
+ x = block_list[i + 15](x)
+ x_fea4 = x
+
+ x = block_list[20:](x)
+ # short cut
+ x = x_ori + x
+ x = self.model[2:](x)
+ x = self.HR_conv1_new(x)
+
+ x_b_fea = self.b_fea_conv(x_grad)
+ x_cat_1 = torch.cat([x_b_fea, x_fea1], dim=1)
+
+ x_cat_1 = self.b_block_1(x_cat_1)
+ x_cat_1 = self.b_concat_1(x_cat_1)
+
+ x_cat_2 = torch.cat([x_cat_1, x_fea2], dim=1)
+
+ x_cat_2 = self.b_block_2(x_cat_2)
+ x_cat_2 = self.b_concat_2(x_cat_2)
+
+ x_cat_3 = torch.cat([x_cat_2, x_fea3], dim=1)
+
+ x_cat_3 = self.b_block_3(x_cat_3)
+ x_cat_3 = self.b_concat_3(x_cat_3)
+
+ x_cat_4 = torch.cat([x_cat_3, x_fea4], dim=1)
+
+ x_cat_4 = self.b_block_4(x_cat_4)
+ x_cat_4 = self.b_concat_4(x_cat_4)
+
+ x_cat_4 = self.b_LR_conv(x_cat_4)
+
+ # short cut
+ x_cat_4 = x_cat_4 + x_b_fea
+ x_branch = self.b_module(x_cat_4)
+
+ # x_out_branch = self.conv_w(x_branch)
+ ########
+ x_branch_d = x_branch
+ x_f_cat = torch.cat([x_branch_d, x], dim=1)
+ x_f_cat = self.f_block(x_f_cat)
+ x_out = self.f_concat(x_f_cat)
+ x_out = self.f_HR_conv0(x_out)
+ x_out = self.f_HR_conv1(x_out)
+
+ #########
+ # return x_out_branch, x_out, x_grad
+ return x_out
diff --git a/ai_upscale_workdir/utils/block.py b/ai_upscale_workdir/utils/block.py
new file mode 100644
index 0000000..73014cb
--- /dev/null
+++ b/ai_upscale_workdir/utils/block.py
@@ -0,0 +1,503 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+from collections import OrderedDict
+import torch
+import torch.nn as nn
+
+####################
+# Basic blocks
+####################
+
+
+def act(act_type, inplace=True, neg_slope=0.2, n_prelu=1):
+ # helper selecting activation
+ # neg_slope: for leakyrelu and init of prelu
+ # n_prelu: for p_relu num_parameters
+ act_type = act_type.lower()
+ if act_type == "relu":
+ layer = nn.ReLU(inplace)
+ elif act_type == "leakyrelu":
+ layer = nn.LeakyReLU(neg_slope, inplace)
+ elif act_type == "prelu":
+ layer = nn.PReLU(num_parameters=n_prelu, init=neg_slope)
+ else:
+ raise NotImplementedError(
+ "activation layer [{:s}] is not found".format(act_type)
+ )
+ return layer
+
+
+def norm(norm_type, nc):
+ # helper selecting normalization layer
+ norm_type = norm_type.lower()
+ if norm_type == "batch":
+ layer = nn.BatchNorm2d(nc, affine=True)
+ elif norm_type == "instance":
+ layer = nn.InstanceNorm2d(nc, affine=False)
+ else:
+ raise NotImplementedError(
+ "normalization layer [{:s}] is not found".format(norm_type)
+ )
+ return layer
+
+
+def pad(pad_type, padding):
+ # helper selecting padding layer
+ # if padding is 'zero', do by conv layers
+ pad_type = pad_type.lower()
+ if padding == 0:
+ return None
+ if pad_type == "reflect":
+ layer = nn.ReflectionPad2d(padding)
+ elif pad_type == "replicate":
+ layer = nn.ReplicationPad2d(padding)
+ else:
+ raise NotImplementedError(
+ "padding layer [{:s}] is not implemented".format(pad_type)
+ )
+ return layer
+
+
+def get_valid_padding(kernel_size, dilation):
+ kernel_size = kernel_size + (kernel_size - 1) * (dilation - 1)
+ padding = (kernel_size - 1) // 2
+ return padding
+
+
+class ConcatBlock(nn.Module):
+ # Concat the output of a submodule to its input
+ def __init__(self, submodule):
+ super(ConcatBlock, self).__init__()
+ self.sub = submodule
+
+ def forward(self, x):
+ output = torch.cat((x, self.sub(x)), dim=1)
+ return output
+
+ def __repr__(self):
+ tmpstr = "Identity .. \n|"
+ modstr = self.sub.__repr__().replace("\n", "\n|")
+ tmpstr = tmpstr + modstr
+ return tmpstr
+
+
+class ShortcutBlock(nn.Module):
+ # Elementwise sum the output of a submodule to its input
+ def __init__(self, submodule):
+ super(ShortcutBlock, self).__init__()
+ self.sub = submodule
+
+ def forward(self, x):
+ output = x + self.sub(x)
+ return output
+
+ def __repr__(self):
+ tmpstr = "Identity + \n|"
+ modstr = self.sub.__repr__().replace("\n", "\n|")
+ tmpstr = tmpstr + modstr
+ return tmpstr
+
+
+class ShortcutBlockSPSR(nn.Module):
+ # Elementwise sum the output of a submodule to its input
+ def __init__(self, submodule):
+ super(ShortcutBlockSPSR, self).__init__()
+ self.sub = submodule
+
+ def forward(self, x):
+ return x, self.sub
+
+ def __repr__(self):
+ tmpstr = "Identity + \n|"
+ modstr = self.sub.__repr__().replace("\n", "\n|")
+ tmpstr = tmpstr + modstr
+ return tmpstr
+
+
+def sequential(*args):
+ # Flatten Sequential. It unwraps nn.Sequential.
+ if len(args) == 1:
+ if isinstance(args[0], OrderedDict):
+ raise NotImplementedError("sequential does not support OrderedDict input.")
+ return args[0] # No sequential is needed.
+ modules = []
+ for module in args:
+ if isinstance(module, nn.Sequential):
+ for submodule in module.children():
+ modules.append(submodule)
+ elif isinstance(module, nn.Module):
+ modules.append(module)
+ return nn.Sequential(*modules)
+
+
+def conv_block(
+ in_nc,
+ out_nc,
+ kernel_size,
+ stride=1,
+ dilation=1,
+ groups=1,
+ bias=True,
+ pad_type="zero",
+ norm_type=None,
+ act_type="relu",
+ mode="CNA",
+):
+ """
+ Conv layer with padding, normalization, activation
+ mode: CNA --> Conv -> Norm -> Act
+ NAC --> Norm -> Act --> Conv (Identity Mappings in Deep Residual Networks, ECCV16)
+ """
+ assert mode in ["CNA", "NAC", "CNAC"], "Wrong conv mode [{:s}]".format(mode)
+ padding = get_valid_padding(kernel_size, dilation)
+ p = pad(pad_type, padding) if pad_type and pad_type != "zero" else None
+ padding = padding if pad_type == "zero" else 0
+
+ c = nn.Conv2d(
+ in_nc,
+ out_nc,
+ kernel_size=kernel_size,
+ stride=stride,
+ padding=padding,
+ dilation=dilation,
+ bias=bias,
+ groups=groups,
+ )
+ a = act(act_type) if act_type else None
+ if "CNA" in mode:
+ n = norm(norm_type, out_nc) if norm_type else None
+ return sequential(p, c, n, a)
+ elif mode == "NAC":
+ if norm_type is None and act_type is not None:
+ a = act(act_type, inplace=False)
+ # Important!
+ # input----ReLU(inplace)----Conv--+----output
+ # |________________________|
+ # inplace ReLU will modify the input, therefore wrong output
+ n = norm(norm_type, in_nc) if norm_type else None
+ return sequential(n, a, p, c)
+
+
+####################
+# Useful blocks
+####################
+
+
+class ResNetBlock(nn.Module):
+ """
+ ResNet Block, 3-3 style
+ with extra residual scaling used in EDSR
+ (Enhanced Deep Residual Networks for Single Image Super-Resolution, CVPRW 17)
+ """
+
+ def __init__(
+ self,
+ in_nc,
+ mid_nc,
+ out_nc,
+ kernel_size=3,
+ stride=1,
+ dilation=1,
+ groups=1,
+ bias=True,
+ pad_type="zero",
+ norm_type=None,
+ act_type="relu",
+ mode="CNA",
+ res_scale=1,
+ ):
+ super(ResNetBlock, self).__init__()
+ conv0 = conv_block(
+ in_nc,
+ mid_nc,
+ kernel_size,
+ stride,
+ dilation,
+ groups,
+ bias,
+ pad_type,
+ norm_type,
+ act_type,
+ mode,
+ )
+ if mode == "CNA":
+ act_type = None
+ if mode == "CNAC": # Residual path: |-CNAC-|
+ act_type = None
+ norm_type = None
+ conv1 = conv_block(
+ mid_nc,
+ out_nc,
+ kernel_size,
+ stride,
+ dilation,
+ groups,
+ bias,
+ pad_type,
+ norm_type,
+ act_type,
+ mode,
+ )
+ # if in_nc != out_nc:
+ # self.project = conv_block(in_nc, out_nc, 1, stride, dilation, 1, bias, pad_type, \
+ # None, None)
+ # print('Need a projecter in ResNetBlock.')
+ # else:
+ # self.project = lambda x:x
+ self.res = sequential(conv0, conv1)
+ self.res_scale = res_scale
+
+ def forward(self, x):
+ res = self.res(x).mul(self.res_scale)
+ return x + res
+
+
+class RRDB(nn.Module):
+ """
+ Residual in Residual Dense Block
+ (ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks)
+ """
+
+ def __init__(
+ self,
+ nf,
+ kernel_size=3,
+ gc=32,
+ stride=1,
+ bias=1,
+ pad_type="zero",
+ norm_type=None,
+ act_type="leakyrelu",
+ mode="CNA",
+ convtype="Conv2D",
+ spectral_norm=False,
+ plus=False,
+ ):
+ super(RRDB, self).__init__()
+ self.RDB1 = ResidualDenseBlock_5C(
+ nf,
+ kernel_size,
+ gc,
+ stride,
+ bias,
+ pad_type,
+ norm_type,
+ act_type,
+ mode,
+ plus=plus,
+ )
+ self.RDB2 = ResidualDenseBlock_5C(
+ nf,
+ kernel_size,
+ gc,
+ stride,
+ bias,
+ pad_type,
+ norm_type,
+ act_type,
+ mode,
+ plus=plus,
+ )
+ self.RDB3 = ResidualDenseBlock_5C(
+ nf,
+ kernel_size,
+ gc,
+ stride,
+ bias,
+ pad_type,
+ norm_type,
+ act_type,
+ mode,
+ plus=plus,
+ )
+
+ def forward(self, x):
+ out = self.RDB1(x)
+ out = self.RDB2(out)
+ out = self.RDB3(out)
+ return out * 0.2 + x
+
+
+class ResidualDenseBlock_5C(nn.Module):
+ """
+ Residual Dense Block
+ style: 5 convs
+ The core module of paper: (Residual Dense Network for Image Super-Resolution, CVPR 18)
+ Modified options that can be used:
+ - "Partial Convolution based Padding" arXiv:1811.11718
+ - "Spectral normalization" arXiv:1802.05957
+ - "ICASSP 2020 - ESRGAN+ : Further Improving ESRGAN" N. C.
+ {Rakotonirina} and A. {Rasoanaivo}
+
+ Args:
+ nf (int): Channel number of intermediate features (num_feat).
+ gc (int): Channels for each growth (num_grow_ch: growth channel,
+ i.e. intermediate channels).
+ convtype (str): the type of convolution to use. Default: 'Conv2D'
+ gaussian_noise (bool): enable the ESRGAN+ gaussian noise (no new
+ trainable parameters)
+ plus (bool): enable the additional residual paths from ESRGAN+
+ (adds trainable parameters)
+ """
+
+ def __init__(
+ self,
+ nf=64,
+ kernel_size=3,
+ gc=32,
+ stride=1,
+ bias=1,
+ pad_type="zero",
+ norm_type=None,
+ act_type="leakyrelu",
+ mode="CNA",
+ plus=False,
+ ):
+ super(ResidualDenseBlock_5C, self).__init__()
+
+ ## +
+ self.conv1x1 = conv1x1(nf, gc) if plus else None
+ ## +
+
+ self.conv1 = conv_block(
+ nf,
+ gc,
+ kernel_size,
+ stride,
+ bias=bias,
+ pad_type=pad_type,
+ norm_type=norm_type,
+ act_type=act_type,
+ mode=mode,
+ )
+ self.conv2 = conv_block(
+ nf + gc,
+ gc,
+ kernel_size,
+ stride,
+ bias=bias,
+ pad_type=pad_type,
+ norm_type=norm_type,
+ act_type=act_type,
+ mode=mode,
+ )
+ self.conv3 = conv_block(
+ nf + 2 * gc,
+ gc,
+ kernel_size,
+ stride,
+ bias=bias,
+ pad_type=pad_type,
+ norm_type=norm_type,
+ act_type=act_type,
+ mode=mode,
+ )
+ self.conv4 = conv_block(
+ nf + 3 * gc,
+ gc,
+ kernel_size,
+ stride,
+ bias=bias,
+ pad_type=pad_type,
+ norm_type=norm_type,
+ act_type=act_type,
+ mode=mode,
+ )
+ if mode == "CNA":
+ last_act = None
+ else:
+ last_act = act_type
+ self.conv5 = conv_block(
+ nf + 4 * gc,
+ nf,
+ 3,
+ stride,
+ bias=bias,
+ pad_type=pad_type,
+ norm_type=norm_type,
+ act_type=last_act,
+ mode=mode,
+ )
+
+ def forward(self, x):
+ x1 = self.conv1(x)
+ x2 = self.conv2(torch.cat((x, x1), 1))
+ if self.conv1x1:
+ x2 = x2 + self.conv1x1(x) # +
+ x3 = self.conv3(torch.cat((x, x1, x2), 1))
+ x4 = self.conv4(torch.cat((x, x1, x2, x3), 1))
+ if self.conv1x1:
+ x4 = x4 + x2 # +
+ x5 = self.conv5(torch.cat((x, x1, x2, x3, x4), 1))
+ return x5 * 0.2 + x
+
+
+def conv1x1(in_planes, out_planes, stride=1):
+ return nn.Conv2d(in_planes, out_planes, kernel_size=1, stride=stride, bias=False)
+
+
+####################
+# Upsampler
+####################
+
+
+def pixelshuffle_block(
+ in_nc,
+ out_nc,
+ upscale_factor=2,
+ kernel_size=3,
+ stride=1,
+ bias=True,
+ pad_type="zero",
+ norm_type=None,
+ act_type="relu",
+):
+ """
+ Pixel shuffle layer
+ (Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional
+ Neural Network, CVPR17)
+ """
+ conv = conv_block(
+ in_nc,
+ out_nc * (upscale_factor ** 2),
+ kernel_size,
+ stride,
+ bias=bias,
+ pad_type=pad_type,
+ norm_type=None,
+ act_type=None,
+ )
+ pixel_shuffle = nn.PixelShuffle(upscale_factor)
+
+ n = norm(norm_type, out_nc) if norm_type else None
+ a = act(act_type) if act_type else None
+ return sequential(conv, pixel_shuffle, n, a)
+
+
+def upconv_block(
+ in_nc,
+ out_nc,
+ upscale_factor=2,
+ kernel_size=3,
+ stride=1,
+ bias=True,
+ pad_type="zero",
+ norm_type=None,
+ act_type="relu",
+ mode="nearest",
+):
+ # Up conv
+ # described in https://distill.pub/2016/deconv-checkerboard/
+ upsample = nn.Upsample(scale_factor=upscale_factor, mode=mode)
+ conv = conv_block(
+ in_nc,
+ out_nc,
+ kernel_size,
+ stride,
+ bias=bias,
+ pad_type=pad_type,
+ norm_type=norm_type,
+ act_type=act_type,
+ )
+ return sequential(upsample, conv)
diff --git a/ai_upscale_workdir/utils/dataops.py b/ai_upscale_workdir/utils/dataops.py
new file mode 100644
index 0000000..37dd1df
--- /dev/null
+++ b/ai_upscale_workdir/utils/dataops.py
@@ -0,0 +1,119 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+import numpy as np
+import torch
+import gc
+
+
+def bgr_to_rgb(image: torch.Tensor) -> torch.Tensor:
+ # flip image channels
+ # https://github.com/pytorch/pytorch/issues/229
+ out: torch.Tensor = image.flip(-3)
+ # out: torch.Tensor = image[[2, 1, 0], :, :] #RGB to BGR #may be faster
+ return out
+
+
+def rgb_to_bgr(image: torch.Tensor) -> torch.Tensor:
+ # same operation as bgr_to_rgb(), flip image channels
+ return bgr_to_rgb(image)
+
+
+def bgra_to_rgba(image: torch.Tensor) -> torch.Tensor:
+ out: torch.Tensor = image[[2, 1, 0, 3], :, :]
+ return out
+
+
+def rgba_to_bgra(image: torch.Tensor) -> torch.Tensor:
+ # same operation as bgra_to_rgba(), flip image channels
+ return bgra_to_rgba(image)
+
+
+def auto_split_upscale(
+ lr_img: np.ndarray,
+ upscale_function,
+ scale: int = 4,
+ overlap: int = 32,
+ max_depth: int = None,
+ current_depth: int = 1,
+):
+
+ # Attempt to upscale if unknown depth or if reached known max depth
+ if max_depth is None or max_depth == current_depth:
+ try:
+ result = upscale_function(lr_img)
+ return result, current_depth
+ except RuntimeError as e:
+ # Check to see if its actually the CUDA out of memory error
+ if "allocate" in str(e):
+ # Collect garbage (clear VRAM)
+ torch.cuda.empty_cache()
+ gc.collect()
+ # Re-raise the exception if not an OOM error
+ else:
+ raise RuntimeError(e)
+
+ h, w, c = lr_img.shape
+
+ # Split image into 4ths
+ top_left = lr_img[: h // 2 + overlap, : w // 2 + overlap, :]
+ top_right = lr_img[: h // 2 + overlap, w // 2 - overlap :, :]
+ bottom_left = lr_img[h // 2 - overlap :, : w // 2 + overlap, :]
+ bottom_right = lr_img[h // 2 - overlap :, w // 2 - overlap :, :]
+
+ # Recursively upscale the quadrants
+ # After we go through the top left quadrant, we know the maximum depth and no longer need to test for out-of-memory
+ top_left_rlt, depth = auto_split_upscale(
+ top_left,
+ upscale_function,
+ scale=scale,
+ overlap=overlap,
+ current_depth=current_depth + 1,
+ )
+ top_right_rlt, _ = auto_split_upscale(
+ top_right,
+ upscale_function,
+ scale=scale,
+ overlap=overlap,
+ max_depth=depth,
+ current_depth=current_depth + 1,
+ )
+ bottom_left_rlt, _ = auto_split_upscale(
+ bottom_left,
+ upscale_function,
+ scale=scale,
+ overlap=overlap,
+ max_depth=depth,
+ current_depth=current_depth + 1,
+ )
+ bottom_right_rlt, _ = auto_split_upscale(
+ bottom_right,
+ upscale_function,
+ scale=scale,
+ overlap=overlap,
+ max_depth=depth,
+ current_depth=current_depth + 1,
+ )
+
+ # Define output shape
+ out_h = h * scale
+ out_w = w * scale
+
+ # Create blank output image
+ output_img = np.zeros((out_h, out_w, c), np.uint8)
+
+ # Fill output image with tiles, cropping out the overlaps
+ output_img[: out_h // 2, : out_w // 2, :] = top_left_rlt[
+ : out_h // 2, : out_w // 2, :
+ ]
+ output_img[: out_h // 2, -out_w // 2 :, :] = top_right_rlt[
+ : out_h // 2, -out_w // 2 :, :
+ ]
+ output_img[-out_h // 2 :, : out_w // 2, :] = bottom_left_rlt[
+ -out_h // 2 :, : out_w // 2, :
+ ]
+ output_img[-out_h // 2 :, -out_w // 2 :, :] = bottom_right_rlt[
+ -out_h // 2 :, -out_w // 2 :, :
+ ]
+
+ return output_img, depth
diff --git a/ai_upscale_workdir/utils/net_interp.py b/ai_upscale_workdir/utils/net_interp.py
new file mode 100644
index 0000000..b746d0a
--- /dev/null
+++ b/ai_upscale_workdir/utils/net_interp.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+import sys
+import torch
+from collections import OrderedDict
+
+alpha = float(sys.argv[1])
+
+net_PSNR_path = "./models/RRDB_PSNR_x4_old_arch.pth"
+net_ESRGAN_path = "./models/RRDB_ESRGAN_x4_old_arch.pth"
+net_interp_path = "./models/interp_{:02d}.pth".format(int(alpha * 10))
+
+net_PSNR = torch.load(net_PSNR_path)
+net_ESRGAN = torch.load(net_ESRGAN_path)
+net_interp = OrderedDict()
+
+print("Interpolating with alpha = ", alpha)
+
+for k, v_PSNR in net_PSNR.items():
+ v_ESRGAN = net_ESRGAN[k]
+ net_interp[k] = (1 - alpha) * v_PSNR + alpha * v_ESRGAN
+
+torch.save(net_interp, net_interp_path)
diff --git a/copy.bat b/copy.bat
new file mode 100644
index 0000000..cb6cdf9
--- /dev/null
+++ b/copy.bat
@@ -0,0 +1,5 @@
+rmdir /s /q add
+md add
+
+robocopy ai_upscale_workdir/output add /E
+PAUSE
\ No newline at end of file
diff --git a/install_dependency.bat b/install_dependency.bat
new file mode 100644
index 0000000..08f5a7e
--- /dev/null
+++ b/install_dependency.bat
@@ -0,0 +1,2 @@
+pip install -r scripts/requirements.txt
+PAUSE
\ No newline at end of file
diff --git a/paste.bat b/paste.bat
new file mode 100644
index 0000000..3cac82f
--- /dev/null
+++ b/paste.bat
@@ -0,0 +1,2 @@
+py pasteNew.py
+PAUSE
\ No newline at end of file
diff --git a/pasteNew.py b/pasteNew.py
new file mode 100644
index 0000000..65288ab
--- /dev/null
+++ b/pasteNew.py
@@ -0,0 +1,37 @@
+import os
+import glob
+import shutil
+
+files = glob.glob('add/*.png')
+
+toAddLines = [
+ file.removesuffix(".png") + " = textures/ai/" + file for file in
+ [os.path.basename(x) for x in files]
+]
+
+if len(toAddLines) == 0:
+ print("No new files")
+ exit(0)
+
+for file in files:
+ shutil.move(file, "textures/ai/"+os.path.basename(file))
+
+
+TEX_INI = "textures.ini"
+
+fileLines = set()
+
+with open(TEX_INI) as texIniFile:
+ for line in texIniFile:
+ fileLines.add(line.removesuffix("\n"))
+
+
+finalLines = set(toAddLines) - fileLines
+if len(finalLines) == 0:
+ print("No new lines")
+ exit(0)
+
+with open(TEX_INI, "a") as texIniFile:
+ texIniFile.write("\n" + "\n".join(finalLines))
+
+print("Added "+str(len(finalLines))+" lines")
diff --git a/textures.ini b/textures.ini
index e991ab5..58273f3 100644
--- a/textures.ini
+++ b/textures.ini
@@ -32,9 +32,14 @@ reduceHash = True
00000000cd9d690b35f6db4b = textures/ui/controls.png
# uk
000000008c87cfc8451c4217 = textures/ui/controls.png
+# rus
+000000008c87cfc8b1b5898f = textures/ui/controls.png
# jp
# nothing here yet
# all
+# HASH_TO_UPDATE_000000008109e2a8f5401fc2 = textures/ui/classes.png
+00000000fe2af173ac228690 = textures/ui/fever.png
+
# 000000008109e2a832d1b3fc = textures/ui/classes.png
00000000cf992a558bb85222 = textures/ui/L_and_R.png
000000002313f66768274c16 = textures/ui/bubble.png
@@ -43,8 +48,13 @@ reduceHash = True
00000000cc46545b7c508ba3 = textures/ui/loadingpon.png
000000008a4bd58439978937 = textures/ui/waitingpon.png
00000000a639241b861a9826 = textures/ui/sharepon.png
+
+# HASH_TO_UPDATE_00000000a639241b1b1ca9bc = textures/ui/sharepon.png
000000005d8ffc3082e9e25d = textures/ui/immunities.png
00000000ce30d0d7f291e1d5 = textures/ui/drums.png
+0000000050efd7a64833058d = textures/ui/snow.png
+00000000bbe166ba85f12c74 = textures/ui/snowflake.png
+0000000041926bdb97398804 = textures/ui/ui1.png
# Worldmap
00000000d94961075040bc83 = textures/map/mission_bubble.png
000000001a4987046ad58204 = textures/map/worldmap.png
@@ -53,6 +63,7 @@ reduceHash = True
00000000004dcaa6ceae5e18 = textures/map/mapicon3.png
00000000e89f94ddb891e748 = textures/map/mapicon4.png
+
# --Title Screen--
# us
000000001297396087eefda2 = textures/titlescreen/sony.png
@@ -323,7 +334,6 @@ reduceHash = True
# 000000005c59840f5908a93a = textures/eq/helm/ancient_helm.png
# 000000009904d3b62a76bb4a = textures/eq/helm/giant_helm.png
0000000025ef11193f7f2d35 = textures/eq/helm/divine_helm.png
-000000002825aacdd6824359 = textures/eq/helm/bunny_helm.png
00000000001640d5ab6b8633 = textures/eq/helm/gongs_helm.png
# 0000000096df35a9d10a6f31 = textures/eq/helm/fire_helm.png
# 00000000cd529f022cdb56bb = textures/eq/helm/thunder_helm.png
@@ -353,13 +363,13 @@ reduceHash = True
# mega2
# mega3
00000000437f5e9bfab12914 = textures/eq/helm/dark_helmet.png
+00000000cd529f022cdb56bb = textures/eq/helm/crown.png
# Rarepons
# Rabbit
000000001a833827f5ee93f6 = textures/eq/rarepon/pyopyo.png
00000000fa5ef7e6ba9a9e66 = textures/eq/rarepon/pyokora.png
00000000a5924607f47d66ed = textures/eq/rarepon/pyokoran.png
-0000000085b6ce9cc84967a8 = textures/eq/rarepon/pyopyo_deka.png
00000000692910113eb73343 = textures/eq/rarepon/pyokora_deka.png
000000007624e9408755b267 = textures/eq/rarepon/pyokoran_deka.png
# Frog
@@ -377,7 +387,6 @@ reduceHash = True
000000007f591648a1787756 = textures/eq/rarepon/moforu_deka.png
000000000aa05ec1494e3c67 = textures/eq/rarepon/moforumu_deka.png
# Porcupine
-000000004a56142fb3abfe7e = textures/eq/rarepon/chiku.png
00000000a8ba1fcb99719a2e = textures/eq/rarepon/chikkuri.png
000000006f68046e32475d19 = textures/eq/rarepon/chikurinchi.png
00000000f8874416810f7cb1 = textures/eq/rarepon/chiku_deka.png
@@ -398,21 +407,18 @@ reduceHash = True
00000000c881fe59817153ee = textures/eq/rarepon/baasara_deka.png
00000000289c7ae5c12adbfc = textures/eq/rarepon/babassa_deka.png
# Pig
-00000000c45e425d821f1777 = textures/eq/rarepon/buhyokko.png
000000001f4cdc210c57e374 = textures/eq/rarepon/buhyonku.png
000000005fcae424b3a41089 = textures/eq/rarepon/puuhyonku.png
000000001675e7ea36951277 = textures/eq/rarepon/buhyokko_deka.png
00000000ce0dca387d625c97 = textures/eq/rarepon/buhyonku_deka.png
00000000d5882d2664a6777f = textures/eq/rarepon/puuhyonku_deka.png
# Cat
-000000005e0dde57677497a6 = textures/eq/rarepon/fumya.png
000000004bba070a05730d87 = textures/eq/rarepon/fumyaaru.png
0000000024c286cc013a148d = textures/eq/rarepon/funmyaga.png
00000000588ff34b28cab18c = textures/eq/rarepon/fumya_deka.png
00000000bc0bb12c943a622b = textures/eq/rarepon/fumyaaru_deka.png
00000000fe1a72467a123dbc = textures/eq/rarepon/funmyaga_deka.png
# Dog
-000000006455f5d508b6b57e = textures/eq/rarepon/wanda.png
000000006a2b93cf3025b879 = textures/eq/rarepon/wandaba.png
00000000828334727a56ae1f = textures/eq/rarepon/wandabata.png
000000001e7fa6e63b8ba6d3 = textures/eq/rarepon/wanda_deka.png
@@ -426,14 +432,12 @@ reduceHash = True
000000000df47f37b24630a2 = textures/eq/rarepon/kisuk_deka.png
0000000056a60bd631ce9cf8 = textures/eq/rarepon/moriussoo_deka.png
# Fish
-00000000dfb038e980488dde = textures/eq/rarepon/chigyobi.png
0000000098d03a79c8edb0fd = textures/eq/rarepon/gyopicchi.png
000000008ff487c51afaf70b = textures/eq/rarepon/gyogyoppa.png
00000000b857e7937716f818 = textures/eq/rarepon/chigyobi_deka.png
000000007b7defa9d944ac00 = textures/eq/rarepon/gyopicchi_deka.png
00000000537835b3035aca42 = textures/eq/rarepon/gyogyoppa_deka.png
# Monkey
-000000004d58df85d97d266f = textures/eq/rarepon/uhoho.png
000000002f4a103a2b2cdf9f = textures/eq/rarepon/uuhoho.png
000000002dd6a749c5286e96 = textures/eq/rarepon/uhokkya.png
000000004d974e4875e55cf7 = textures/eq/rarepon/uhoho_deka.png
@@ -454,7 +458,6 @@ reduceHash = True
000000000643afe2c670a3c2 = textures/eq/rarepon/suppen_deka.png
00000000776add83e3391b4b = textures/eq/rarepon/supengu_deka.png
# Deer
-000000004e389abd5652eb56 = textures/eq/rarepon/kanokko.png
00000000d10e151a39b58e7c = textures/eq/rarepon/kanokyon.png
000000003c71007d3bdc95e2 = textures/eq/rarepon/kanodia.png
00000000ca1566ce0956d171 = textures/eq/rarepon/kanokko_deka.png
@@ -510,6 +513,8 @@ reduceHash = True
00000000ca8f75c7a50f44b7 = textures/eq/shield/ancient_shield.png
0000000077655588d562b475 = textures/eq/shield/thunder_shield.png
000000004bbe0cb73b8387da = textures/eq/shield/demon_shield.png
+000000003fc2006880267cdf = textures/eq/shield/frozen_shield.png
+0000000066ddb2aa9840a1cd = textures/eq/shield/magic_shield.png
# Bows
00000000dec575bea488b8d3 = textures/eq/bow/wood_bow.png
@@ -519,6 +524,8 @@ reduceHash = True
000000001fb682f70dc10043 = textures/eq/bow/arrow.png
00000000ff85f9407a526760 = textures/eq/bow/glowing_arrow.png
0000000058842133cf5efc86 = textures/eq/bow/broken_arrow.png
+00000000891f62e9586a93da = textures/eq/bow/electric_bow.png
+00000000d13d3f6a15b5b77f = textures/eq/bow/fire_bow.png
# Halberds
000000006818e244b882a209 = textures/eq/halberd/wood_halberd.png
@@ -714,6 +721,7 @@ reduceHash = True
# --Bosses--
00000000acc729e9b16377e5 = textures/chara/dodonga.png
00000000d0a7960c2cbf694a = textures/chara/majidonga.png
+00000000bfc3f7d91a98b05f = textures/chara/mamont.png
00000000141d76b5a696e2d8 = textures/chara/kacchindonga.png
# --Trophies--
@@ -790,5 +798,543 @@ reduceHash = True
# 0000000030716af40b2fdd71 = textures/gimmick/session_pata.png
0000000069df000e303ed911 = textures/ui/session_drums.png
0000000029f867da900123c4 = textures/ui/session_mystery.png
+
+000000001ad6e73ede42a951 = textures/ui/miracle/miracle_letters.png
+00000000c37e6813debe3812 = textures/ui/miracle/pon_cloud.png
+0000000056be494d6cbb91cd = textures/ui/miracle/pata_cloud.png
+00000000b252e863b60e45eb = textures/ui/miracle/chaka_cloud.png
+# HASH_TO_UPDATE_000000007cb5cee32e42218a = textures/ui/session_marker.png
000000007cb5cee3c5990572 = textures/ui/session_marker.png
# 00000000ae8095ec2df8a5ae = textures/ui/session_hit.png
+
+00000000c9a7b45ed3d33f7f = textures/particles/particles1.png
+
+
+0000000000000000776e3949 = textures/ai/0000000000000000776e3949.png
+00000000000008090795005b = textures/ai/00000000000008090795005b.png
+00000000000008090c15e274 = textures/ai/00000000000008090c15e274.png
+00000000000008090f9deb59 = textures/ai/00000000000008090f9deb59.png
+0000000000000809119ce181 = textures/ai/0000000000000809119ce181.png
+000000000000080917ed9658 = textures/ai/000000000000080917ed9658.png
+000000000000080919e7a8da = textures/ai/000000000000080919e7a8da.png
+00000000000008091d859762 = textures/ai/00000000000008091d859762.png
+000000000000080923c17032 = textures/ai/000000000000080923c17032.png
+00000000000008092e572567 = textures/ai/00000000000008092e572567.png
+000000000000080933dcd065 = textures/ai/000000000000080933dcd065.png
+000000000000080934b6c121 = textures/ai/000000000000080934b6c121.png
+000000000000080942e05b0f = textures/ai/000000000000080942e05b0f.png
+000000000000080948c74578 = textures/ai/000000000000080948c74578.png
+000000000000080949e595ee = textures/ai/000000000000080949e595ee.png
+00000000000008095bbeb89e = textures/ai/00000000000008095bbeb89e.png
+00000000000008095d643908 = textures/ai/00000000000008095d643908.png
+00000000000008097256f433 = textures/ai/00000000000008097256f433.png
+000000000000080974864676 = textures/ai/000000000000080974864676.png
+000000000000080978efaca3 = textures/ai/000000000000080978efaca3.png
+00000000000008097a3231f1 = textures/ai/00000000000008097a3231f1.png
+00000000000008097a62ebde = textures/ai/00000000000008097a62ebde.png
+00000000000008097aa31979 = textures/ai/00000000000008097aa31979.png
+00000000000008098bd6cc9a = textures/ai/00000000000008098bd6cc9a.png
+000000000000080994d96e52 = textures/ai/000000000000080994d96e52.png
+00000000000008099516d0ba = textures/ai/00000000000008099516d0ba.png
+00000000000008099f465535 = textures/ai/00000000000008099f465535.png
+0000000000000809a6286a75 = textures/ai/0000000000000809a6286a75.png
+0000000000000809a7c492a0 = textures/ai/0000000000000809a7c492a0.png
+0000000000000809a7dd9c04 = textures/ai/0000000000000809a7dd9c04.png
+0000000000000809a95ecfb5 = textures/ai/0000000000000809a95ecfb5.png
+0000000000000809a9793232 = textures/ai/0000000000000809a9793232.png
+0000000000000809ad699add = textures/ai/0000000000000809ad699add.png
+0000000000000809ada8c5d3 = textures/ai/0000000000000809ada8c5d3.png
+0000000000000809b07a45cc = textures/ai/0000000000000809b07a45cc.png
+0000000000000809b876e22d = textures/ai/0000000000000809b876e22d.png
+0000000000000809c0b4f61f = textures/ai/0000000000000809c0b4f61f.png
+0000000000000809c241b3cc = textures/ai/0000000000000809c241b3cc.png
+0000000000000809ca4fb418 = textures/ai/0000000000000809ca4fb418.png
+0000000000000809dea9670e = textures/ai/0000000000000809dea9670e.png
+0000000000000809e453544e = textures/ai/0000000000000809e453544e.png
+0000000000000809e4de2c49 = textures/ai/0000000000000809e4de2c49.png
+0000000000000809ede70aa8 = textures/ai/0000000000000809ede70aa8.png
+0000000000000809f02bfec1 = textures/ai/0000000000000809f02bfec1.png
+0000000000000809f9f51d7e = textures/ai/0000000000000809f9f51d7e.png
+0000000000000809fcd1173e = textures/ai/0000000000000809fcd1173e.png
+0000000000000809fe4d21c7 = textures/ai/0000000000000809fe4d21c7.png
+000000000069d7d86b852041 = textures/ai/000000000069d7d86b852041.png
+00000000009051dd56114a3c = textures/ai/00000000009051dd56114a3c.png
+000000000147c6d240a4dcb0 = textures/ai/000000000147c6d240a4dcb0.png
+00000000017ae89ab07ce243 = textures/ai/00000000017ae89ab07ce243.png
+00000000032130dee0af4289 = textures/ai/00000000032130dee0af4289.png
+0000000003745e5b416369a7 = textures/ai/0000000003745e5b416369a7.png
+0000000003fffd934bbc7897 = textures/ai/0000000003fffd934bbc7897.png
+00000000047e6b803215371c = textures/ai/00000000047e6b803215371c.png
+0000000004eb50741007643f = textures/ai/0000000004eb50741007643f.png
+0000000005553b84909a4c63 = textures/ai/0000000005553b84909a4c63.png
+00000000066c8021004acda5 = textures/ai/00000000066c8021004acda5.png
+0000000006b4973e8d00abb9 = textures/ai/0000000006b4973e8d00abb9.png
+0000000006c8d57f588652ab = textures/ai/0000000006c8d57f588652ab.png
+00000000085872784f81efe2 = textures/ai/00000000085872784f81efe2.png
+000000000897fbb42d02eff1 = textures/ai/000000000897fbb42d02eff1.png
+00000000093d261f6d52eac2 = textures/ai/00000000093d261f6d52eac2.png
+00000000098b1cca0ddf97bd = textures/ai/00000000098b1cca0ddf97bd.png
+000000000b09dcf0e19c3ca5 = textures/ai/000000000b09dcf0e19c3ca5.png
+000000000c038192e9147796 = textures/ai/000000000c038192e9147796.png
+000000000e27e8b47a9bc786 = textures/ai/000000000e27e8b47a9bc786.png
+000000000e460b2ba3366177 = textures/ai/000000000e460b2ba3366177.png
+000000000eff5d3b2e691111 = textures/ai/000000000eff5d3b2e691111.png
+000000000fa6f26ceca95ddf = textures/ai/000000000fa6f26ceca95ddf.png
+000000000ff7241486bda719 = textures/ai/000000000ff7241486bda719.png
+000000001137279ee2e7fd5e = textures/ai/000000001137279ee2e7fd5e.png
+000000001251c435ea17b479 = textures/ai/000000001251c435ea17b479.png
+0000000012a50eb7db22d091 = textures/ai/0000000012a50eb7db22d091.png
+0000000012b42217dcec8699 = textures/ai/0000000012b42217dcec8699.png
+00000000137fb05cb1117a5a = textures/ai/00000000137fb05cb1117a5a.png
+00000000143115ec76dd762f = textures/ai/00000000143115ec76dd762f.png
+00000000158dfd91c05fbc32 = textures/ai/00000000158dfd91c05fbc32.png
+0000000015b63cf74dc8ab6f = textures/ai/0000000015b63cf74dc8ab6f.png
+0000000016975477ff62bd1f = textures/ai/0000000016975477ff62bd1f.png
+00000000170f83dbf2e12cd4 = textures/ai/00000000170f83dbf2e12cd4.png
+00000000176e92ed2bcf39bd = textures/ai/00000000176e92ed2bcf39bd.png
+00000000181b4554ba8f60c5 = textures/ai/00000000181b4554ba8f60c5.png
+0000000018efb83f1a86cc2c = textures/ai/0000000018efb83f1a86cc2c.png
+0000000019ab2ecc6d5bf92b = textures/ai/0000000019ab2ecc6d5bf92b.png
+0000000019c83cf09ba48917 = textures/ai/0000000019c83cf09ba48917.png
+000000001a4987047e7c72f2 = textures/ai/000000001a4987047e7c72f2.png
+000000001a5ed37d23bf37d7 = textures/ai/000000001a5ed37d23bf37d7.png
+000000001b4f8ae9033cbb2f = textures/ai/000000001b4f8ae9033cbb2f.png
+000000001b5077230b221d66 = textures/ai/000000001b5077230b221d66.png
+000000001b913fc216e7e159 = textures/ai/000000001b913fc216e7e159.png
+000000001bb966776d67daa2 = textures/ai/000000001bb966776d67daa2.png
+000000001d6a3105e37f9500 = textures/ai/000000001d6a3105e37f9500.png
+000000001e21ee46f0219b7e = textures/ai/000000001e21ee46f0219b7e.png
+000000001e4876511b34f248 = textures/ai/000000001e4876511b34f248.png
+000000001e8c33d7e9ed9664 = textures/ai/000000001e8c33d7e9ed9664.png
+000000001fc0f02841e88ed0 = textures/ai/000000001fc0f02841e88ed0.png
+00000000208404af456bc495 = textures/ai/00000000208404af456bc495.png
+00000000208990be8fabea75 = textures/ai/00000000208990be8fabea75.png
+0000000020b15139ffa44396 = textures/ai/0000000020b15139ffa44396.png
+0000000020d652d5ba7093fe = textures/ai/0000000020d652d5ba7093fe.png
+00000000226a513a99819fdd = textures/ai/00000000226a513a99819fdd.png
+00000000236ceda664478646 = textures/ai/00000000236ceda664478646.png
+00000000242cf103aec0aac7 = textures/ai/00000000242cf103aec0aac7.png
+00000000242e98bcf76223a6 = textures/ai/00000000242e98bcf76223a6.png
+00000000247702c0adbe4300 = textures/ai/00000000247702c0adbe4300.png
+0000000024b8066839732777 = textures/ai/0000000024b8066839732777.png
+0000000024d2a8261154e9af = textures/ai/0000000024d2a8261154e9af.png
+0000000024fa3d666c498ebe = textures/ai/0000000024fa3d666c498ebe.png
+000000002575f920a126dd87 = textures/ai/000000002575f920a126dd87.png
+0000000026597b73fe6760b2 = textures/ai/0000000026597b73fe6760b2.png
+0000000026f17262ae8a073a = textures/ai/0000000026f17262ae8a073a.png
+000000002710365acd41c7f9 = textures/ai/000000002710365acd41c7f9.png
+00000000282491bd5aa2de87 = textures/ai/00000000282491bd5aa2de87.png
+000000002825aacdd6824359 = textures/ai/000000002825aacdd6824359.png
+0000000028fceec56ca34be2 = textures/ai/0000000028fceec56ca34be2.png
+000000002994557437984084 = textures/ai/000000002994557437984084.png
+000000002a3edbc646096aa7 = textures/ai/000000002a3edbc646096aa7.png
+000000002a5dec8fe8d716fd = textures/ai/000000002a5dec8fe8d716fd.png
+000000002bf72d6204690c48 = textures/ai/000000002bf72d6204690c48.png
+000000002c6cac98fd378fb2 = textures/ai/000000002c6cac98fd378fb2.png
+000000002ca16b3098118d65 = textures/ai/000000002ca16b3098118d65.png
+000000002d841f5f8fab2a49 = textures/ai/000000002d841f5f8fab2a49.png
+000000002e01edb636ad7252 = textures/ai/000000002e01edb636ad7252.png
+000000002ef22b55128dac38 = textures/ai/000000002ef22b55128dac38.png
+00000000305ff6b39e17296a = textures/ai/00000000305ff6b39e17296a.png
+0000000030716af40b2fdd71 = textures/ai/0000000030716af40b2fdd71.png
+0000000031535f8185a16484 = textures/ai/0000000031535f8185a16484.png
+0000000032c8a7e497aef795 = textures/ai/0000000032c8a7e497aef795.png
+000000003389b8f557a4cc72 = textures/ai/000000003389b8f557a4cc72.png
+0000000034e5aabda56065c8 = textures/ai/0000000034e5aabda56065c8.png
+0000000035e9310277e47db6 = textures/ai/0000000035e9310277e47db6.png
+0000000036860bb916f22813 = textures/ai/0000000036860bb916f22813.png
+0000000036db5d4cf1450651 = textures/ai/0000000036db5d4cf1450651.png
+00000000373c0a7b702f11dd = textures/ai/00000000373c0a7b702f11dd.png
+0000000039cf6482324c7094 = textures/ai/0000000039cf6482324c7094.png
+000000003af5e79efa55d3e8 = textures/ai/000000003af5e79efa55d3e8.png
+000000003afe5b9761865966 = textures/ai/000000003afe5b9761865966.png
+000000003c623cfac1657ef7 = textures/ai/000000003c623cfac1657ef7.png
+000000003cd0b92a1e660ca0 = textures/ai/000000003cd0b92a1e660ca0.png
+000000003d5673f66e89e64d = textures/ai/000000003d5673f66e89e64d.png
+000000003d70d68c53248483 = textures/ai/000000003d70d68c53248483.png
+000000003d73c3e783b3d3a6 = textures/ai/000000003d73c3e783b3d3a6.png
+000000003dedd9117b60a908 = textures/ai/000000003dedd9117b60a908.png
+000000003e93f77a4b71a2fd = textures/ai/000000003e93f77a4b71a2fd.png
+000000003edf9489c5f9caf2 = textures/ai/000000003edf9489c5f9caf2.png
+000000003f32e1bf03561d40 = textures/ai/000000003f32e1bf03561d40.png
+0000000040aa1d3f2be9fc92 = textures/ai/0000000040aa1d3f2be9fc92.png
+0000000040c0fcae2d41e1c7 = textures/ai/0000000040c0fcae2d41e1c7.png
+000000004199a765ba8d392b = textures/ai/000000004199a765ba8d392b.png
+00000000419f64c00ef39c13 = textures/ai/00000000419f64c00ef39c13.png
+0000000043598df51b34f248 = textures/ai/0000000043598df51b34f248.png
+000000004481c351f76b5c28 = textures/ai/000000004481c351f76b5c28.png
+00000000457c7f6a53cc4214 = textures/ai/00000000457c7f6a53cc4214.png
+0000000046c56064040d62d5 = textures/ai/0000000046c56064040d62d5.png
+000000004742dcda9a853b1d = textures/ai/000000004742dcda9a853b1d.png
+0000000047cf2bc0bb6c8599 = textures/ai/0000000047cf2bc0bb6c8599.png
+000000004989a306563de25a = textures/ai/000000004989a306563de25a.png
+000000004a12d3fba06d59ac = textures/ai/000000004a12d3fba06d59ac.png
+000000004b770f6665756ec5 = textures/ai/000000004b770f6665756ec5.png
+000000004b7cd6c6efa1851f = textures/ai/000000004b7cd6c6efa1851f.png
+000000004c35e67a7299536c = textures/ai/000000004c35e67a7299536c.png
+000000004d58df85d97d266f = textures/ai/000000004d58df85d97d266f.png
+000000004e389abd5652eb56 = textures/ai/000000004e389abd5652eb56.png
+000000004e40ae74a7e2fffe = textures/ai/000000004e40ae74a7e2fffe.png
+000000004e4884a471dea25e = textures/ai/000000004e4884a471dea25e.png
+000000004e55002aacad097d = textures/ai/000000004e55002aacad097d.png
+000000004f76fd919185971f = textures/ai/000000004f76fd919185971f.png
+000000004fdbf4e03c6a1cc3 = textures/ai/000000004fdbf4e03c6a1cc3.png
+00000000500d36e008763bea = textures/ai/00000000500d36e008763bea.png
+000000005032611fa66402d8 = textures/ai/000000005032611fa66402d8.png
+000000005042605462395a90 = textures/ai/000000005042605462395a90.png
+00000000506867b535219b85 = textures/ai/00000000506867b535219b85.png
+0000000050ce27d36048dc4a = textures/ai/0000000050ce27d36048dc4a.png
+00000000514def643340182a = textures/ai/00000000514def643340182a.png
+00000000522c5a21e869c062 = textures/ai/00000000522c5a21e869c062.png
+0000000054065bb1ef2c7d31 = textures/ai/0000000054065bb1ef2c7d31.png
+000000005471deb1deb77817 = textures/ai/000000005471deb1deb77817.png
+000000005474830dc33871e3 = textures/ai/000000005474830dc33871e3.png
+0000000055c4531e2dfd3073 = textures/ai/0000000055c4531e2dfd3073.png
+0000000055d5c9d6a9b388d4 = textures/ai/0000000055d5c9d6a9b388d4.png
+00000000569b26a74dc1607c = textures/ai/00000000569b26a74dc1607c.png
+00000000569ed47828dd721f = textures/ai/00000000569ed47828dd721f.png
+0000000056b9e3e782734b3c = textures/ai/0000000056b9e3e782734b3c.png
+0000000056e1a03fd122ddaa = textures/ai/0000000056e1a03fd122ddaa.png
+00000000572ee594e9c1fa15 = textures/ai/00000000572ee594e9c1fa15.png
+0000000058f686ffd8695da5 = textures/ai/0000000058f686ffd8695da5.png
+000000005a2cfd0960aa5a55 = textures/ai/000000005a2cfd0960aa5a55.png
+000000005b1788d3388d311e = textures/ai/000000005b1788d3388d311e.png
+000000005b78dfab08be8e89 = textures/ai/000000005b78dfab08be8e89.png
+000000005c770b975ae161f7 = textures/ai/000000005c770b975ae161f7.png
+000000005cd5c6b74543b427 = textures/ai/000000005cd5c6b74543b427.png
+000000005cdd0ea1f8f391a0 = textures/ai/000000005cdd0ea1f8f391a0.png
+000000005d8fae98afe4c3e7 = textures/ai/000000005d8fae98afe4c3e7.png
+000000005dd25a439b63bb0a = textures/ai/000000005dd25a439b63bb0a.png
+000000005e0dde57677497a6 = textures/ai/000000005e0dde57677497a6.png
+00000000629ab5f00ffd31dd = textures/ai/00000000629ab5f00ffd31dd.png
+000000006346aed9def8dd47 = textures/ai/000000006346aed9def8dd47.png
+000000006375787bad066a44 = textures/ai/000000006375787bad066a44.png
+000000006455f5d508b6b57e = textures/ai/000000006455f5d508b6b57e.png
+00000000668c006c9ed1183c = textures/ai/00000000668c006c9ed1183c.png
+0000000067d8be291eb8229a = textures/ai/0000000067d8be291eb8229a.png
+0000000067f99540c6330186 = textures/ai/0000000067f99540c6330186.png
+00000000681b66fda50731bf = textures/ai/00000000681b66fda50731bf.png
+00000000684348589235808e = textures/ai/00000000684348589235808e.png
+0000000068e03747e5ccc87e = textures/ai/0000000068e03747e5ccc87e.png
+00000000693e34d3980253af = textures/ai/00000000693e34d3980253af.png
+00000000698ef64be9245e9c = textures/ai/00000000698ef64be9245e9c.png
+0000000069bc5fcfb5ec11cd = textures/ai/0000000069bc5fcfb5ec11cd.png
+0000000069d422de3f7cf7d7 = textures/ai/0000000069d422de3f7cf7d7.png
+0000000069d8a83ec9646f98 = textures/ai/0000000069d8a83ec9646f98.png
+000000006a602aa00f9650a6 = textures/ai/000000006a602aa00f9650a6.png
+000000006ae2fb2023942ed4 = textures/ai/000000006ae2fb2023942ed4.png
+000000006b16c61da35edd07 = textures/ai/000000006b16c61da35edd07.png
+000000006d330c53f1332c88 = textures/ai/000000006d330c53f1332c88.png
+000000006d51d3716a50d168 = textures/ai/000000006d51d3716a50d168.png
+000000006dbe8a9417f01d74 = textures/ai/000000006dbe8a9417f01d74.png
+000000006e28ca6e2015e0b4 = textures/ai/000000006e28ca6e2015e0b4.png
+000000006e312178e62b52af = textures/ai/000000006e312178e62b52af.png
+000000006e8dc22b1d365321 = textures/ai/000000006e8dc22b1d365321.png
+000000006ea710ce4ed0cfd2 = textures/ai/000000006ea710ce4ed0cfd2.png
+000000006faeba42074c47c7 = textures/ai/000000006faeba42074c47c7.png
+0000000070af0d8fe959cf3c = textures/ai/0000000070af0d8fe959cf3c.png
+0000000070b572acbb0e132b = textures/ai/0000000070b572acbb0e132b.png
+0000000071a1200c0d43c9e3 = textures/ai/0000000071a1200c0d43c9e3.png
+0000000071e1c0ede0af4289 = textures/ai/0000000071e1c0ede0af4289.png
+00000000724e59a50bc321c2 = textures/ai/00000000724e59a50bc321c2.png
+0000000072e7e1b13d3d90f9 = textures/ai/0000000072e7e1b13d3d90f9.png
+0000000073486c292692be4d = textures/ai/0000000073486c292692be4d.png
+0000000073f2f771ccfe34d5 = textures/ai/0000000073f2f771ccfe34d5.png
+000000007427f770a65809db = textures/ai/000000007427f770a65809db.png
+000000007484ab6d2d5f2883 = textures/ai/000000007484ab6d2d5f2883.png
+000000007778cd0e65636f30 = textures/ai/000000007778cd0e65636f30.png
+0000000077b9b304f3cf7ae5 = textures/ai/0000000077b9b304f3cf7ae5.png
+000000007841d627df1b8f9a = textures/ai/000000007841d627df1b8f9a.png
+00000000787b0dc2da961aaf = textures/ai/00000000787b0dc2da961aaf.png
+0000000079b5581d9573d42c = textures/ai/0000000079b5581d9573d42c.png
+000000007ad9b99e6315a18a = textures/ai/000000007ad9b99e6315a18a.png
+000000007bd7fba4493c28dc = textures/ai/000000007bd7fba4493c28dc.png
+000000007c69cf3646e21d9a = textures/ai/000000007c69cf3646e21d9a.png
+000000007cd4cf87ca0a82f2 = textures/ai/000000007cd4cf87ca0a82f2.png
+000000007cec5de5bf3b9130 = textures/ai/000000007cec5de5bf3b9130.png
+000000007d03e6f4ab02d846 = textures/ai/000000007d03e6f4ab02d846.png
+000000007d56d6b6422ef5f3 = textures/ai/000000007d56d6b6422ef5f3.png
+000000007e32f188fb22d26e = textures/ai/000000007e32f188fb22d26e.png
+000000007e3cb2b6d462e10f = textures/ai/000000007e3cb2b6d462e10f.png
+000000007f939b25125787cc = textures/ai/000000007f939b25125787cc.png
+000000007fad287f3bfae2c5 = textures/ai/000000007fad287f3bfae2c5.png
+00000000802fa2106bd6a133 = textures/ai/00000000802fa2106bd6a133.png
+000000008109e2a832d1b3fc = textures/ai/000000008109e2a832d1b3fc.png
+00000000810f1e548dd54f8c = textures/ai/00000000810f1e548dd54f8c.png
+00000000812628d3e12c5b7c = textures/ai/00000000812628d3e12c5b7c.png
+00000000818c900965dbd76e = textures/ai/00000000818c900965dbd76e.png
+000000008265708d50f00fe4 = textures/ai/000000008265708d50f00fe4.png
+0000000085962d2d8f02ca47 = textures/ai/0000000085962d2d8f02ca47.png
+0000000085b181cac0c14d49 = textures/ai/0000000085b181cac0c14d49.png
+0000000085b6ce9cc84967a8 = textures/ai/0000000085b6ce9cc84967a8.png
+0000000085cdd5d977bbc4ff = textures/ai/0000000085cdd5d977bbc4ff.png
+000000008614a51d1aa857c8 = textures/ai/000000008614a51d1aa857c8.png
+0000000087c4189b7513ed9c = textures/ai/0000000087c4189b7513ed9c.png
+0000000087e1d5e61f650ca6 = textures/ai/0000000087e1d5e61f650ca6.png
+0000000087f343bd98babb90 = textures/ai/0000000087f343bd98babb90.png
+000000008bd70fc9a08daa51 = textures/ai/000000008bd70fc9a08daa51.png
+000000008fb5249ac0d5a766 = textures/ai/000000008fb5249ac0d5a766.png
+00000000900d8e2e63ecf1c2 = textures/ai/00000000900d8e2e63ecf1c2.png
+00000000908b1276ef688760 = textures/ai/00000000908b1276ef688760.png
+000000009299ff011016ecef = textures/ai/000000009299ff011016ecef.png
+0000000093b7ae5319a93f90 = textures/ai/0000000093b7ae5319a93f90.png
+0000000094892a674972ab19 = textures/ai/0000000094892a674972ab19.png
+0000000094b210b6fa482992 = textures/ai/0000000094b210b6fa482992.png
+0000000094f166664ff4a5e4 = textures/ai/0000000094f166664ff4a5e4.png
+0000000094f4438b015e57ef = textures/ai/0000000094f4438b015e57ef.png
+00000000950f3488abb49d1a = textures/ai/00000000950f3488abb49d1a.png
+00000000955571f3c1ec9a78 = textures/ai/00000000955571f3c1ec9a78.png
+0000000095adb5ac23d23683 = textures/ai/0000000095adb5ac23d23683.png
+0000000095d8e71dc475789a = textures/ai/0000000095d8e71dc475789a.png
+00000000961eedbc291105db = textures/ai/00000000961eedbc291105db.png
+00000000964bb186f042014d = textures/ai/00000000964bb186f042014d.png
+000000009686b158c271ffbe = textures/ai/000000009686b158c271ffbe.png
+0000000096b5cdfe4d0829ac = textures/ai/0000000096b5cdfe4d0829ac.png
+0000000096df35a9d10a6f31 = textures/ai/0000000096df35a9d10a6f31.png
+000000009707dce79860657f = textures/ai/000000009707dce79860657f.png
+0000000097a6245e2dd24d53 = textures/ai/0000000097a6245e2dd24d53.png
+0000000097d52b0878f6abdd = textures/ai/0000000097d52b0878f6abdd.png
+000000009919c3eed122ddaa = textures/ai/000000009919c3eed122ddaa.png
+000000009974bd708f02f500 = textures/ai/000000009974bd708f02f500.png
+0000000099a647b7e66a3a8b = textures/ai/0000000099a647b7e66a3a8b.png
+0000000099c5faa3def0aabb = textures/ai/0000000099c5faa3def0aabb.png
+0000000099eb768205870b73 = textures/ai/0000000099eb768205870b73.png
+0000000099ebfc8dd776406a = textures/ai/0000000099ebfc8dd776406a.png
+000000009a03d0420545ec80 = textures/ai/000000009a03d0420545ec80.png
+000000009a5f2524f8519b21 = textures/ai/000000009a5f2524f8519b21.png
+000000009aaf1750c8ce60e9 = textures/ai/000000009aaf1750c8ce60e9.png
+000000009b1822f9cd82ccad = textures/ai/000000009b1822f9cd82ccad.png
+000000009b1e327db8dafead = textures/ai/000000009b1e327db8dafead.png
+000000009bc2a25c9b8f2643 = textures/ai/000000009bc2a25c9b8f2643.png
+000000009be760a86da818da = textures/ai/000000009be760a86da818da.png
+000000009c105294a47fb6e7 = textures/ai/000000009c105294a47fb6e7.png
+000000009c6f6c21813c537d = textures/ai/000000009c6f6c21813c537d.png
+000000009cca6d3b900d7d22 = textures/ai/000000009cca6d3b900d7d22.png
+000000009d1ad40ac058edc2 = textures/ai/000000009d1ad40ac058edc2.png
+000000009d4cb68f1c16605f = textures/ai/000000009d4cb68f1c16605f.png
+000000009e645e838d7559fa = textures/ai/000000009e645e838d7559fa.png
+000000009f2edecf530e2787 = textures/ai/000000009f2edecf530e2787.png
+000000009f3c6ba7cbaab9d3 = textures/ai/000000009f3c6ba7cbaab9d3.png
+000000009f9bad9f501302ce = textures/ai/000000009f9bad9f501302ce.png
+00000000a0b9fca0e8cb1a9e = textures/ai/00000000a0b9fca0e8cb1a9e.png
+00000000a13b781cbd68d0ec = textures/ai/00000000a13b781cbd68d0ec.png
+00000000a2438bcc64069a35 = textures/ai/00000000a2438bcc64069a35.png
+00000000a24bf9e212531fee = textures/ai/00000000a24bf9e212531fee.png
+00000000a2f24ea88597a2ab = textures/ai/00000000a2f24ea88597a2ab.png
+00000000a3930fe0cbc52ce7 = textures/ai/00000000a3930fe0cbc52ce7.png
+00000000a3bd321cc1657ef7 = textures/ai/00000000a3bd321cc1657ef7.png
+00000000a3d7118aac090c40 = textures/ai/00000000a3d7118aac090c40.png
+00000000a3feb966906f5d2c = textures/ai/00000000a3feb966906f5d2c.png
+00000000a4e87427bc311df4 = textures/ai/00000000a4e87427bc311df4.png
+00000000a652f0609d75574c = textures/ai/00000000a652f0609d75574c.png
+00000000a6e9ff784f21abe1 = textures/ai/00000000a6e9ff784f21abe1.png
+00000000a93e837b50f82427 = textures/ai/00000000a93e837b50f82427.png
+00000000a997cfdb3c455271 = textures/ai/00000000a997cfdb3c455271.png
+00000000aa1bb46949e88a74 = textures/ai/00000000aa1bb46949e88a74.png
+00000000ab5a30e240bbb7e7 = textures/ai/00000000ab5a30e240bbb7e7.png
+00000000ab748517eecbbe44 = textures/ai/00000000ab748517eecbbe44.png
+00000000acd9b986c041a006 = textures/ai/00000000acd9b986c041a006.png
+00000000ad7d67f4687ee31e = textures/ai/00000000ad7d67f4687ee31e.png
+00000000ad95b55659400b15 = textures/ai/00000000ad95b55659400b15.png
+00000000adedd977c4d7cbb7 = textures/ai/00000000adedd977c4d7cbb7.png
+00000000ae8095ec2df8a5ae = textures/ai/00000000ae8095ec2df8a5ae.png
+00000000afb59cde34a1e100 = textures/ai/00000000afb59cde34a1e100.png
+00000000b2735af6818d7b79 = textures/ai/00000000b2735af6818d7b79.png
+00000000b40f390d42be50a4 = textures/ai/00000000b40f390d42be50a4.png
+00000000b41948657b48738f = textures/ai/00000000b41948657b48738f.png
+00000000b566f3e4f60e2145 = textures/ai/00000000b566f3e4f60e2145.png
+00000000b6beb7682dbe4949 = textures/ai/00000000b6beb7682dbe4949.png
+00000000b6f2aabf69728b9e = textures/ai/00000000b6f2aabf69728b9e.png
+00000000b70bece446bb55b4 = textures/ai/00000000b70bece446bb55b4.png
+00000000b834f3519b31317f = textures/ai/00000000b834f3519b31317f.png
+00000000b9364c655ac61fba = textures/ai/00000000b9364c655ac61fba.png
+00000000bb1b46b2fc33e872 = textures/ai/00000000bb1b46b2fc33e872.png
+00000000bb90f77324f9b747 = textures/ai/00000000bb90f77324f9b747.png
+00000000bd51e236ec3d80f3 = textures/ai/00000000bd51e236ec3d80f3.png
+00000000bd7e8883f996456e = textures/ai/00000000bd7e8883f996456e.png
+00000000be01ba7e58aababc = textures/ai/00000000be01ba7e58aababc.png
+00000000bf558b0622fb4e28 = textures/ai/00000000bf558b0622fb4e28.png
+00000000bffe1ed525f0d73b = textures/ai/00000000bffe1ed525f0d73b.png
+00000000c2133582d7928bf5 = textures/ai/00000000c2133582d7928bf5.png
+00000000c242e06560d5ebfb = textures/ai/00000000c242e06560d5ebfb.png
+00000000c2c3b8a46911eb39 = textures/ai/00000000c2c3b8a46911eb39.png
+00000000c2d18ecea5abe3bd = textures/ai/00000000c2d18ecea5abe3bd.png
+00000000c304029771d6a5d3 = textures/ai/00000000c304029771d6a5d3.png
+00000000c3ed381a2e590b4a = textures/ai/00000000c3ed381a2e590b4a.png
+00000000c45e425d821f1777 = textures/ai/00000000c45e425d821f1777.png
+00000000c4908f4f30a2d8b3 = textures/ai/00000000c4908f4f30a2d8b3.png
+00000000c535ab8f7b1c6b82 = textures/ai/00000000c535ab8f7b1c6b82.png
+00000000c6b6dd9143baed15 = textures/ai/00000000c6b6dd9143baed15.png
+00000000c7162fa991603046 = textures/ai/00000000c7162fa991603046.png
+00000000c84ff0ef0f49b48e = textures/ai/00000000c84ff0ef0f49b48e.png
+00000000c863fb3df8d287d8 = textures/ai/00000000c863fb3df8d287d8.png
+00000000c99da8f2e03603aa = textures/ai/00000000c99da8f2e03603aa.png
+00000000c9a984280f6e9d80 = textures/ai/00000000c9a984280f6e9d80.png
+00000000cadccd8bf8b55c42 = textures/ai/00000000cadccd8bf8b55c42.png
+00000000cae377cc199ff351 = textures/ai/00000000cae377cc199ff351.png
+00000000caf7bcec31b646e2 = textures/ai/00000000caf7bcec31b646e2.png
+00000000cb71fab3a2ee5e13 = textures/ai/00000000cb71fab3a2ee5e13.png
+00000000ccf8edcba48ba9fb = textures/ai/00000000ccf8edcba48ba9fb.png
+00000000cdc9bcd81724bc26 = textures/ai/00000000cdc9bcd81724bc26.png
+00000000ce579055bb8f0b85 = textures/ai/00000000ce579055bb8f0b85.png
+00000000cea1edabe5a04e42 = textures/ai/00000000cea1edabe5a04e42.png
+00000000cf4c4c0225ea42dc = textures/ai/00000000cf4c4c0225ea42dc.png
+00000000cf569f90d2342eb5 = textures/ai/00000000cf569f90d2342eb5.png
+00000000cf9c5c56f8b55c42 = textures/ai/00000000cf9c5c56f8b55c42.png
+00000000d068a06226bb5b9f = textures/ai/00000000d068a06226bb5b9f.png
+00000000d1b5f3b0eab19740 = textures/ai/00000000d1b5f3b0eab19740.png
+00000000d228aa7283ac12fa = textures/ai/00000000d228aa7283ac12fa.png
+00000000d28b8a6ca5743569 = textures/ai/00000000d28b8a6ca5743569.png
+00000000d29b6917506724b7 = textures/ai/00000000d29b6917506724b7.png
+00000000d349e28fdaed9648 = textures/ai/00000000d349e28fdaed9648.png
+00000000d49bbe515b18e84b = textures/ai/00000000d49bbe515b18e84b.png
+00000000d4b2661aa8416d51 = textures/ai/00000000d4b2661aa8416d51.png
+00000000d5c960b941a3a013 = textures/ai/00000000d5c960b941a3a013.png
+00000000d5fa63f3c4773a46 = textures/ai/00000000d5fa63f3c4773a46.png
+00000000d60abda2498d5953 = textures/ai/00000000d60abda2498d5953.png
+00000000d7f22063d1224871 = textures/ai/00000000d7f22063d1224871.png
+00000000d825d37a406402a6 = textures/ai/00000000d825d37a406402a6.png
+00000000d976652c8db40b3b = textures/ai/00000000d976652c8db40b3b.png
+00000000dad42d5309a564bc = textures/ai/00000000dad42d5309a564bc.png
+00000000daf231d0513ab8bb = textures/ai/00000000daf231d0513ab8bb.png
+00000000dc63396a2ca3ceac = textures/ai/00000000dc63396a2ca3ceac.png
+00000000dc72bd717ad20573 = textures/ai/00000000dc72bd717ad20573.png
+00000000dc79a072415cd90d = textures/ai/00000000dc79a072415cd90d.png
+00000000dccc0c33827e53e9 = textures/ai/00000000dccc0c33827e53e9.png
+00000000dd8f5de075a4cf5b = textures/ai/00000000dd8f5de075a4cf5b.png
+00000000de5d63d9b35b8a5a = textures/ai/00000000de5d63d9b35b8a5a.png
+00000000dee8157cc44d81d7 = textures/ai/00000000dee8157cc44d81d7.png
+00000000df0d5cf286a680f2 = textures/ai/00000000df0d5cf286a680f2.png
+00000000dfb038e980488dde = textures/ai/00000000dfb038e980488dde.png
+00000000dfd7191be2513223 = textures/ai/00000000dfd7191be2513223.png
+00000000e0e171a1c19de9e2 = textures/ai/00000000e0e171a1c19de9e2.png
+00000000e125786b09cf7487 = textures/ai/00000000e125786b09cf7487.png
+00000000e34c57a7666748df = textures/ai/00000000e34c57a7666748df.png
+00000000e53870f98b87929e = textures/ai/00000000e53870f98b87929e.png
+00000000e5e0aca1f1f2dd06 = textures/ai/00000000e5e0aca1f1f2dd06.png
+00000000e76047872af08cf8 = textures/ai/00000000e76047872af08cf8.png
+00000000e7758105626ab17e = textures/ai/00000000e7758105626ab17e.png
+00000000e77dfdca1c26fec5 = textures/ai/00000000e77dfdca1c26fec5.png
+00000000e7ca54968b675299 = textures/ai/00000000e7ca54968b675299.png
+00000000e888c840e23406d1 = textures/ai/00000000e888c840e23406d1.png
+00000000e90f79ac9fa4ce88 = textures/ai/00000000e90f79ac9fa4ce88.png
+00000000e94d0590d9175a61 = textures/ai/00000000e94d0590d9175a61.png
+00000000e98bf3a8c1657ef7 = textures/ai/00000000e98bf3a8c1657ef7.png
+00000000ea2b3f7d82da7959 = textures/ai/00000000ea2b3f7d82da7959.png
+00000000eafd60f82af63210 = textures/ai/00000000eafd60f82af63210.png
+00000000ebfcdf44f3a52036 = textures/ai/00000000ebfcdf44f3a52036.png
+00000000ec0e2c3f60d5ebfb = textures/ai/00000000ec0e2c3f60d5ebfb.png
+00000000ec16301043880880 = textures/ai/00000000ec16301043880880.png
+00000000ecb570c616e85514 = textures/ai/00000000ecb570c616e85514.png
+00000000edc0c0bc7c9fa78f = textures/ai/00000000edc0c0bc7c9fa78f.png
+00000000edd742f1b587b2a1 = textures/ai/00000000edd742f1b587b2a1.png
+00000000ee674fbea0c37003 = textures/ai/00000000ee674fbea0c37003.png
+00000000ee759954a5539cce = textures/ai/00000000ee759954a5539cce.png
+00000000ef45cf50b58cc2b1 = textures/ai/00000000ef45cf50b58cc2b1.png
+00000000ef481e4a85eb40cc = textures/ai/00000000ef481e4a85eb40cc.png
+00000000f04731046c9564ed = textures/ai/00000000f04731046c9564ed.png
+00000000f077557980805f29 = textures/ai/00000000f077557980805f29.png
+00000000f07a4a975a1506f9 = textures/ai/00000000f07a4a975a1506f9.png
+00000000f10e68cf4c020528 = textures/ai/00000000f10e68cf4c020528.png
+00000000f20e4dfa8a9eab53 = textures/ai/00000000f20e4dfa8a9eab53.png
+00000000f25c21136d817a20 = textures/ai/00000000f25c21136d817a20.png
+00000000f2868ca16a05ba44 = textures/ai/00000000f2868ca16a05ba44.png
+00000000f3541469ecc3e56f = textures/ai/00000000f3541469ecc3e56f.png
+00000000f367c1a13fc2a9d0 = textures/ai/00000000f367c1a13fc2a9d0.png
+00000000f3e9fcbb3799644c = textures/ai/00000000f3e9fcbb3799644c.png
+00000000f49800f4cc580503 = textures/ai/00000000f49800f4cc580503.png
+00000000f4c9cb12fed11a3e = textures/ai/00000000f4c9cb12fed11a3e.png
+00000000f5205cbc7fb4fef2 = textures/ai/00000000f5205cbc7fb4fef2.png
+00000000f6afdc6585dae1d8 = textures/ai/00000000f6afdc6585dae1d8.png
+00000000f758e0504c146f69 = textures/ai/00000000f758e0504c146f69.png
+00000000f80d9833d6b6ef1d = textures/ai/00000000f80d9833d6b6ef1d.png
+00000000f825ea698773cf12 = textures/ai/00000000f825ea698773cf12.png
+00000000f9cb9ccfa1aa65df = textures/ai/00000000f9cb9ccfa1aa65df.png
+00000000f9da9e616aeeb2b2 = textures/ai/00000000f9da9e616aeeb2b2.png
+00000000face9af9abc1d70b = textures/ai/00000000face9af9abc1d70b.png
+00000000fb068cfe2b4f8f6e = textures/ai/00000000fb068cfe2b4f8f6e.png
+00000000fb2c64d0816c6132 = textures/ai/00000000fb2c64d0816c6132.png
+00000000fb73cbd20214960f = textures/ai/00000000fb73cbd20214960f.png
+00000000fc455b05158be6b1 = textures/ai/00000000fc455b05158be6b1.png
+00000000fc4923bd76370f6d = textures/ai/00000000fc4923bd76370f6d.png
+00000000fd8f0b417630f611 = textures/ai/00000000fd8f0b417630f611.png
+00000000fed230af1d52b678 = textures/ai/00000000fed230af1d52b678.png
+0000000087c9a2ceca9693c1 = textures/ai/0000000087c9a2ceca9693c1.png
+0000000066ea9a6bfc504a67 = textures/ai/0000000066ea9a6bfc504a67.png
+00000000a6ffedddd122ddaa = textures/ai/00000000a6ffedddd122ddaa.png
+000000003af416bd6f5ab6b1 = textures/ai/000000003af416bd6f5ab6b1.png
+000000007c210573db67b833 = textures/ai/000000007c210573db67b833.png
+000000002920096df215fd95 = textures/ai/000000002920096df215fd95.png
+000000005c59840f5908a93a = textures/ai/000000005c59840f5908a93a.png
+000000006d298ddec1a97e86 = textures/ai/000000006d298ddec1a97e86.png
+00000000ef0f97cb24f55c42 = textures/ai/00000000ef0f97cb24f55c42.png
+00000000b7bde1f982ddc30a = textures/ai/00000000b7bde1f982ddc30a.png
+000000006bdeda5fd84545d4 = textures/ai/000000006bdeda5fd84545d4.png
+000000009a27dfd745f15f7f = textures/ai/000000009a27dfd745f15f7f.png
+0000000094a998579c22e17e = textures/ai/0000000094a998579c22e17e.png
+00000000e7b6945b426f8fe2 = textures/ai/00000000e7b6945b426f8fe2.png
+00000000a2f74a2314287e8f = textures/ai/00000000a2f74a2314287e8f.png
+0000000096e59bcf247670b9 = textures/ai/0000000096e59bcf247670b9.png
+000000005fe488c639fe38ca = textures/ai/000000005fe488c639fe38ca.png
+00000000950d108572c7b7e1 = textures/ai/00000000950d108572c7b7e1.png
+000000004f717d5974be0c15 = textures/ai/000000004f717d5974be0c15.png
+00000000c73b91a182aaab05 = textures/ai/00000000c73b91a182aaab05.png
+0000000044201c38c88bfbd0 = textures/ai/0000000044201c38c88bfbd0.png
+000000005a16c1c29cd5bf01 = textures/ai/000000005a16c1c29cd5bf01.png
+000000006f6d53075ea88910 = textures/ai/000000006f6d53075ea88910.png
+00000000ed6eea3c2ea5003f = textures/ai/00000000ed6eea3c2ea5003f.png
+0000000061b0b64e7bea8257 = textures/ai/0000000061b0b64e7bea8257.png
+0000000052d2272fb356f9b6 = textures/ai/0000000052d2272fb356f9b6.png
+00000000d9a203522c2e6bf7 = textures/ai/00000000d9a203522c2e6bf7.png
+00000000514533e92f54377b = textures/ai/00000000514533e92f54377b.png
+00000000c0cead2aace29081 = textures/ai/00000000c0cead2aace29081.png
+00000000da17e052abd3bdd8 = textures/ai/00000000da17e052abd3bdd8.png
+000000004751a562b2b85836 = textures/ai/000000004751a562b2b85836.png
+0000000003854aed38611dc6 = textures/ai/0000000003854aed38611dc6.png
+000000008731701306f9d3c1 = textures/ai/000000008731701306f9d3c1.png
+000000005e99b8a84d41212c = textures/ai/000000005e99b8a84d41212c.png
+00000000c7e5e3bc90b0a99f = textures/ai/00000000c7e5e3bc90b0a99f.png
+00000000955b93aff92c4d9b = textures/ai/00000000955b93aff92c4d9b.png
+00000000dcf8c92abac43890 = textures/ai/00000000dcf8c92abac43890.png
+00000000ee0b2d3d35314526 = textures/ai/00000000ee0b2d3d35314526.png
+00000000ece43c97e36fda49 = textures/ai/00000000ece43c97e36fda49.png
+00000000d60747729dc8fba2 = textures/ai/00000000d60747729dc8fba2.png
+000000003230a7581898e35e = textures/ai/000000003230a7581898e35e.png
+0000000082179f059008767f = textures/ai/0000000082179f059008767f.png
+000000005b9590837f993667 = textures/ai/000000005b9590837f993667.png
+000000004960e49b90b33422 = textures/ai/000000004960e49b90b33422.png
+000000001bdf381df3e8ff50 = textures/ai/000000001bdf381df3e8ff50.png
+00000000d11bcc3045323b2c = textures/ai/00000000d11bcc3045323b2c.png
+000000009238db65268fca71 = textures/ai/000000009238db65268fca71.png
+00000000f491c15a2f6127b5 = textures/ai/00000000f491c15a2f6127b5.png
+00000000e961e0d93f6e7a7a = textures/ai/00000000e961e0d93f6e7a7a.png
+0000000007067ccf90c01a14 = textures/ai/0000000007067ccf90c01a14.png
+00000000c0feb5ea58391238 = textures/ai/00000000c0feb5ea58391238.png
+00000000720d621ec80965d9 = textures/ai/00000000720d621ec80965d9.png
+000000002e506b03aa34dd45 = textures/ai/000000002e506b03aa34dd45.png
+00000000104fbf99e334c4e2 = textures/ai/00000000104fbf99e334c4e2.png
+000000006fcffe782e6f1898 = textures/ai/000000006fcffe782e6f1898.png
+000000000000090986707f6c = textures/ai/000000000000090986707f6c.png
+00000000a712418b5e92fb67 = textures/ai/00000000a712418b5e92fb67.png
+000000002d1a1cd6063e9a38 = textures/ai/000000002d1a1cd6063e9a38.png
+00000000d80f435f0abe94c7 = textures/ai/00000000d80f435f0abe94c7.png
+00000000c50b789c31367e33 = textures/ai/00000000c50b789c31367e33.png
+00000000491e753abf87a3d0 = textures/ai/00000000491e753abf87a3d0.png
+00000000fbe0306e44940f9b = textures/ai/00000000fbe0306e44940f9b.png
+00000000dd8422d9292e19d1 = textures/ai/00000000dd8422d9292e19d1.png
+0000000036541cd1cff11ba6 = textures/ai/0000000036541cd1cff11ba6.png
+00000000c5e4f4e384c27183 = textures/ai/00000000c5e4f4e384c27183.png
+0000000071fd8307d122ddaa = textures/ai/0000000071fd8307d122ddaa.png
+000000009633f07c0932ef4d = textures/ai/000000009633f07c0932ef4d.png
+000000007602f52e7a6990d4 = textures/ai/000000007602f52e7a6990d4.png
+00000000d74b9b2b3c5ff548 = textures/ai/00000000d74b9b2b3c5ff548.png
+0000000085f2d56e2063fe00 = textures/ai/0000000085f2d56e2063fe00.png
+000000008cb0e1bff3bea257 = textures/ai/000000008cb0e1bff3bea257.png
+000000007e293121ce37467e = textures/ai/000000007e293121ce37467e.png
+00000000ec3f40711f75f175 = textures/ai/00000000ec3f40711f75f175.png
+0000000052b804486f5e415b = textures/ai/0000000052b804486f5e415b.png
+00000000c1eea0957af9ea70 = textures/ai/00000000c1eea0957af9ea70.png
+0000000007afc936b19d643e = textures/ai/0000000007afc936b19d643e.png
+000000003f4b92554b0d9dbf = textures/ai/000000003f4b92554b0d9dbf.png
+000000000b3ae76866601589 = textures/ai/000000000b3ae76866601589.png
+000000001409bbc9d49a42f7 = textures/ai/000000001409bbc9d49a42f7.png
diff --git a/textures/ai/0000000000000000776e3949.png b/textures/ai/0000000000000000776e3949.png
new file mode 100644
index 0000000..4c1915e
Binary files /dev/null and b/textures/ai/0000000000000000776e3949.png differ
diff --git a/textures/ai/00000000000008090795005b.png b/textures/ai/00000000000008090795005b.png
new file mode 100644
index 0000000..ecde4ad
Binary files /dev/null and b/textures/ai/00000000000008090795005b.png differ
diff --git a/textures/ai/00000000000008090c15e274.png b/textures/ai/00000000000008090c15e274.png
new file mode 100644
index 0000000..b91d00c
Binary files /dev/null and b/textures/ai/00000000000008090c15e274.png differ
diff --git a/textures/ai/00000000000008090f9deb59.png b/textures/ai/00000000000008090f9deb59.png
new file mode 100644
index 0000000..2ecfb2a
Binary files /dev/null and b/textures/ai/00000000000008090f9deb59.png differ
diff --git a/textures/ai/0000000000000809119ce181.png b/textures/ai/0000000000000809119ce181.png
new file mode 100644
index 0000000..9eb11de
Binary files /dev/null and b/textures/ai/0000000000000809119ce181.png differ
diff --git a/textures/ai/000000000000080917ed9658.png b/textures/ai/000000000000080917ed9658.png
new file mode 100644
index 0000000..ac7005d
Binary files /dev/null and b/textures/ai/000000000000080917ed9658.png differ
diff --git a/textures/ai/000000000000080919e7a8da.png b/textures/ai/000000000000080919e7a8da.png
new file mode 100644
index 0000000..e9f54a9
Binary files /dev/null and b/textures/ai/000000000000080919e7a8da.png differ
diff --git a/textures/ai/00000000000008091d859762.png b/textures/ai/00000000000008091d859762.png
new file mode 100644
index 0000000..b6008c1
Binary files /dev/null and b/textures/ai/00000000000008091d859762.png differ
diff --git a/textures/ai/000000000000080923c17032.png b/textures/ai/000000000000080923c17032.png
new file mode 100644
index 0000000..4f6a543
Binary files /dev/null and b/textures/ai/000000000000080923c17032.png differ
diff --git a/textures/ai/00000000000008092e572567.png b/textures/ai/00000000000008092e572567.png
new file mode 100644
index 0000000..174818b
Binary files /dev/null and b/textures/ai/00000000000008092e572567.png differ
diff --git a/textures/ai/000000000000080933dcd065.png b/textures/ai/000000000000080933dcd065.png
new file mode 100644
index 0000000..f8f629f
Binary files /dev/null and b/textures/ai/000000000000080933dcd065.png differ
diff --git a/textures/ai/000000000000080934b6c121.png b/textures/ai/000000000000080934b6c121.png
new file mode 100644
index 0000000..aee6c14
Binary files /dev/null and b/textures/ai/000000000000080934b6c121.png differ
diff --git a/textures/ai/000000000000080942e05b0f.png b/textures/ai/000000000000080942e05b0f.png
new file mode 100644
index 0000000..56dbfc6
Binary files /dev/null and b/textures/ai/000000000000080942e05b0f.png differ
diff --git a/textures/ai/000000000000080948c74578.png b/textures/ai/000000000000080948c74578.png
new file mode 100644
index 0000000..9f19675
Binary files /dev/null and b/textures/ai/000000000000080948c74578.png differ
diff --git a/textures/ai/000000000000080949e595ee.png b/textures/ai/000000000000080949e595ee.png
new file mode 100644
index 0000000..848ded4
Binary files /dev/null and b/textures/ai/000000000000080949e595ee.png differ
diff --git a/textures/ai/00000000000008095bbeb89e.png b/textures/ai/00000000000008095bbeb89e.png
new file mode 100644
index 0000000..48e1973
Binary files /dev/null and b/textures/ai/00000000000008095bbeb89e.png differ
diff --git a/textures/ai/00000000000008095d643908.png b/textures/ai/00000000000008095d643908.png
new file mode 100644
index 0000000..bf4f81c
Binary files /dev/null and b/textures/ai/00000000000008095d643908.png differ
diff --git a/textures/ai/00000000000008097256f433.png b/textures/ai/00000000000008097256f433.png
new file mode 100644
index 0000000..d249a0e
Binary files /dev/null and b/textures/ai/00000000000008097256f433.png differ
diff --git a/textures/ai/000000000000080974864676.png b/textures/ai/000000000000080974864676.png
new file mode 100644
index 0000000..1ad2dfc
Binary files /dev/null and b/textures/ai/000000000000080974864676.png differ
diff --git a/textures/ai/000000000000080978efaca3.png b/textures/ai/000000000000080978efaca3.png
new file mode 100644
index 0000000..8dfb21e
Binary files /dev/null and b/textures/ai/000000000000080978efaca3.png differ
diff --git a/textures/ai/00000000000008097a3231f1.png b/textures/ai/00000000000008097a3231f1.png
new file mode 100644
index 0000000..85c8d85
Binary files /dev/null and b/textures/ai/00000000000008097a3231f1.png differ
diff --git a/textures/ai/00000000000008097a62ebde.png b/textures/ai/00000000000008097a62ebde.png
new file mode 100644
index 0000000..2ee1372
Binary files /dev/null and b/textures/ai/00000000000008097a62ebde.png differ
diff --git a/textures/ai/00000000000008097aa31979.png b/textures/ai/00000000000008097aa31979.png
new file mode 100644
index 0000000..783a7c7
Binary files /dev/null and b/textures/ai/00000000000008097aa31979.png differ
diff --git a/textures/ai/00000000000008098bd6cc9a.png b/textures/ai/00000000000008098bd6cc9a.png
new file mode 100644
index 0000000..b169ab7
Binary files /dev/null and b/textures/ai/00000000000008098bd6cc9a.png differ
diff --git a/textures/ai/000000000000080994d96e52.png b/textures/ai/000000000000080994d96e52.png
new file mode 100644
index 0000000..c278568
Binary files /dev/null and b/textures/ai/000000000000080994d96e52.png differ
diff --git a/textures/ai/00000000000008099516d0ba.png b/textures/ai/00000000000008099516d0ba.png
new file mode 100644
index 0000000..a425d1a
Binary files /dev/null and b/textures/ai/00000000000008099516d0ba.png differ
diff --git a/textures/ai/00000000000008099f465535.png b/textures/ai/00000000000008099f465535.png
new file mode 100644
index 0000000..4fc4b01
Binary files /dev/null and b/textures/ai/00000000000008099f465535.png differ
diff --git a/textures/ai/0000000000000809a6286a75.png b/textures/ai/0000000000000809a6286a75.png
new file mode 100644
index 0000000..2c25297
Binary files /dev/null and b/textures/ai/0000000000000809a6286a75.png differ
diff --git a/textures/ai/0000000000000809a7c492a0.png b/textures/ai/0000000000000809a7c492a0.png
new file mode 100644
index 0000000..e7bbdd6
Binary files /dev/null and b/textures/ai/0000000000000809a7c492a0.png differ
diff --git a/textures/ai/0000000000000809a7dd9c04.png b/textures/ai/0000000000000809a7dd9c04.png
new file mode 100644
index 0000000..9b13b14
Binary files /dev/null and b/textures/ai/0000000000000809a7dd9c04.png differ
diff --git a/textures/ai/0000000000000809a95ecfb5.png b/textures/ai/0000000000000809a95ecfb5.png
new file mode 100644
index 0000000..bfc7df4
Binary files /dev/null and b/textures/ai/0000000000000809a95ecfb5.png differ
diff --git a/textures/ai/0000000000000809a9793232.png b/textures/ai/0000000000000809a9793232.png
new file mode 100644
index 0000000..8041feb
Binary files /dev/null and b/textures/ai/0000000000000809a9793232.png differ
diff --git a/textures/ai/0000000000000809ad699add.png b/textures/ai/0000000000000809ad699add.png
new file mode 100644
index 0000000..414a72c
Binary files /dev/null and b/textures/ai/0000000000000809ad699add.png differ
diff --git a/textures/ai/0000000000000809ada8c5d3.png b/textures/ai/0000000000000809ada8c5d3.png
new file mode 100644
index 0000000..619b259
Binary files /dev/null and b/textures/ai/0000000000000809ada8c5d3.png differ
diff --git a/textures/ai/0000000000000809b07a45cc.png b/textures/ai/0000000000000809b07a45cc.png
new file mode 100644
index 0000000..d4d9145
Binary files /dev/null and b/textures/ai/0000000000000809b07a45cc.png differ
diff --git a/textures/ai/0000000000000809b876e22d.png b/textures/ai/0000000000000809b876e22d.png
new file mode 100644
index 0000000..2516896
Binary files /dev/null and b/textures/ai/0000000000000809b876e22d.png differ
diff --git a/textures/ai/0000000000000809c0b4f61f.png b/textures/ai/0000000000000809c0b4f61f.png
new file mode 100644
index 0000000..1c67aef
Binary files /dev/null and b/textures/ai/0000000000000809c0b4f61f.png differ
diff --git a/textures/ai/0000000000000809c241b3cc.png b/textures/ai/0000000000000809c241b3cc.png
new file mode 100644
index 0000000..de323ed
Binary files /dev/null and b/textures/ai/0000000000000809c241b3cc.png differ
diff --git a/textures/ai/0000000000000809ca4fb418.png b/textures/ai/0000000000000809ca4fb418.png
new file mode 100644
index 0000000..44e1017
Binary files /dev/null and b/textures/ai/0000000000000809ca4fb418.png differ
diff --git a/textures/ai/0000000000000809dea9670e.png b/textures/ai/0000000000000809dea9670e.png
new file mode 100644
index 0000000..0f75706
Binary files /dev/null and b/textures/ai/0000000000000809dea9670e.png differ
diff --git a/textures/ai/0000000000000809e453544e.png b/textures/ai/0000000000000809e453544e.png
new file mode 100644
index 0000000..c6a85f2
Binary files /dev/null and b/textures/ai/0000000000000809e453544e.png differ
diff --git a/textures/ai/0000000000000809e4de2c49.png b/textures/ai/0000000000000809e4de2c49.png
new file mode 100644
index 0000000..468b8f7
Binary files /dev/null and b/textures/ai/0000000000000809e4de2c49.png differ
diff --git a/textures/ai/0000000000000809ede70aa8.png b/textures/ai/0000000000000809ede70aa8.png
new file mode 100644
index 0000000..aaf7f78
Binary files /dev/null and b/textures/ai/0000000000000809ede70aa8.png differ
diff --git a/textures/ai/0000000000000809f02bfec1.png b/textures/ai/0000000000000809f02bfec1.png
new file mode 100644
index 0000000..80f0c60
Binary files /dev/null and b/textures/ai/0000000000000809f02bfec1.png differ
diff --git a/textures/ai/0000000000000809f9f51d7e.png b/textures/ai/0000000000000809f9f51d7e.png
new file mode 100644
index 0000000..ab1d2aa
Binary files /dev/null and b/textures/ai/0000000000000809f9f51d7e.png differ
diff --git a/textures/ai/0000000000000809fcd1173e.png b/textures/ai/0000000000000809fcd1173e.png
new file mode 100644
index 0000000..5b64367
Binary files /dev/null and b/textures/ai/0000000000000809fcd1173e.png differ
diff --git a/textures/ai/0000000000000809fe4d21c7.png b/textures/ai/0000000000000809fe4d21c7.png
new file mode 100644
index 0000000..ad39398
Binary files /dev/null and b/textures/ai/0000000000000809fe4d21c7.png differ
diff --git a/textures/ai/000000000000090986707f6c.png b/textures/ai/000000000000090986707f6c.png
new file mode 100644
index 0000000..caf6d08
Binary files /dev/null and b/textures/ai/000000000000090986707f6c.png differ
diff --git a/textures/ai/000000000069d7d86b852041.png b/textures/ai/000000000069d7d86b852041.png
new file mode 100644
index 0000000..37c6517
Binary files /dev/null and b/textures/ai/000000000069d7d86b852041.png differ
diff --git a/textures/ai/00000000009051dd56114a3c.png b/textures/ai/00000000009051dd56114a3c.png
new file mode 100644
index 0000000..511df82
Binary files /dev/null and b/textures/ai/00000000009051dd56114a3c.png differ
diff --git a/textures/ai/000000000147c6d240a4dcb0.png b/textures/ai/000000000147c6d240a4dcb0.png
new file mode 100644
index 0000000..38ed062
Binary files /dev/null and b/textures/ai/000000000147c6d240a4dcb0.png differ
diff --git a/textures/ai/00000000017ae89ab07ce243.png b/textures/ai/00000000017ae89ab07ce243.png
new file mode 100644
index 0000000..6b1a4e9
Binary files /dev/null and b/textures/ai/00000000017ae89ab07ce243.png differ
diff --git a/textures/ai/00000000032130dee0af4289.png b/textures/ai/00000000032130dee0af4289.png
new file mode 100644
index 0000000..a6052f0
Binary files /dev/null and b/textures/ai/00000000032130dee0af4289.png differ
diff --git a/textures/ai/0000000003745e5b416369a7.png b/textures/ai/0000000003745e5b416369a7.png
new file mode 100644
index 0000000..6281ea1
Binary files /dev/null and b/textures/ai/0000000003745e5b416369a7.png differ
diff --git a/textures/ai/0000000003854aed38611dc6.png b/textures/ai/0000000003854aed38611dc6.png
new file mode 100644
index 0000000..dc1d499
Binary files /dev/null and b/textures/ai/0000000003854aed38611dc6.png differ
diff --git a/textures/ai/0000000003fffd934bbc7897.png b/textures/ai/0000000003fffd934bbc7897.png
new file mode 100644
index 0000000..3ab173c
Binary files /dev/null and b/textures/ai/0000000003fffd934bbc7897.png differ
diff --git a/textures/ai/00000000047e6b803215371c.png b/textures/ai/00000000047e6b803215371c.png
new file mode 100644
index 0000000..7349715
Binary files /dev/null and b/textures/ai/00000000047e6b803215371c.png differ
diff --git a/textures/ai/0000000004eb50741007643f.png b/textures/ai/0000000004eb50741007643f.png
new file mode 100644
index 0000000..d3bfb91
Binary files /dev/null and b/textures/ai/0000000004eb50741007643f.png differ
diff --git a/textures/ai/0000000005553b84909a4c63.png b/textures/ai/0000000005553b84909a4c63.png
new file mode 100644
index 0000000..06116c6
Binary files /dev/null and b/textures/ai/0000000005553b84909a4c63.png differ
diff --git a/textures/ai/00000000066c8021004acda5.png b/textures/ai/00000000066c8021004acda5.png
new file mode 100644
index 0000000..0f47534
Binary files /dev/null and b/textures/ai/00000000066c8021004acda5.png differ
diff --git a/textures/ai/0000000006b4973e8d00abb9.png b/textures/ai/0000000006b4973e8d00abb9.png
new file mode 100644
index 0000000..fa693a0
Binary files /dev/null and b/textures/ai/0000000006b4973e8d00abb9.png differ
diff --git a/textures/ai/0000000006c8d57f588652ab.png b/textures/ai/0000000006c8d57f588652ab.png
new file mode 100644
index 0000000..e1b7c3a
Binary files /dev/null and b/textures/ai/0000000006c8d57f588652ab.png differ
diff --git a/textures/ai/0000000007067ccf90c01a14.png b/textures/ai/0000000007067ccf90c01a14.png
new file mode 100644
index 0000000..b41fb0b
Binary files /dev/null and b/textures/ai/0000000007067ccf90c01a14.png differ
diff --git a/textures/ai/0000000007afc936b19d643e.png b/textures/ai/0000000007afc936b19d643e.png
new file mode 100644
index 0000000..959a9a8
Binary files /dev/null and b/textures/ai/0000000007afc936b19d643e.png differ
diff --git a/textures/ai/00000000085872784f81efe2.png b/textures/ai/00000000085872784f81efe2.png
new file mode 100644
index 0000000..2587e83
Binary files /dev/null and b/textures/ai/00000000085872784f81efe2.png differ
diff --git a/textures/ai/000000000897fbb42d02eff1.png b/textures/ai/000000000897fbb42d02eff1.png
new file mode 100644
index 0000000..a408eb9
Binary files /dev/null and b/textures/ai/000000000897fbb42d02eff1.png differ
diff --git a/textures/ai/00000000093d261f6d52eac2.png b/textures/ai/00000000093d261f6d52eac2.png
new file mode 100644
index 0000000..4875d30
Binary files /dev/null and b/textures/ai/00000000093d261f6d52eac2.png differ
diff --git a/textures/ai/00000000098b1cca0ddf97bd.png b/textures/ai/00000000098b1cca0ddf97bd.png
new file mode 100644
index 0000000..84da772
Binary files /dev/null and b/textures/ai/00000000098b1cca0ddf97bd.png differ
diff --git a/textures/ai/000000000b09dcf0e19c3ca5.png b/textures/ai/000000000b09dcf0e19c3ca5.png
new file mode 100644
index 0000000..01a0da2
Binary files /dev/null and b/textures/ai/000000000b09dcf0e19c3ca5.png differ
diff --git a/textures/ai/000000000b3ae76866601589.png b/textures/ai/000000000b3ae76866601589.png
new file mode 100644
index 0000000..5a1445c
Binary files /dev/null and b/textures/ai/000000000b3ae76866601589.png differ
diff --git a/textures/ai/000000000c038192e9147796.png b/textures/ai/000000000c038192e9147796.png
new file mode 100644
index 0000000..4432269
Binary files /dev/null and b/textures/ai/000000000c038192e9147796.png differ
diff --git a/textures/ai/000000000e27e8b47a9bc786.png b/textures/ai/000000000e27e8b47a9bc786.png
new file mode 100644
index 0000000..47adfc2
Binary files /dev/null and b/textures/ai/000000000e27e8b47a9bc786.png differ
diff --git a/textures/ai/000000000e460b2ba3366177.png b/textures/ai/000000000e460b2ba3366177.png
new file mode 100644
index 0000000..e0b3a71
Binary files /dev/null and b/textures/ai/000000000e460b2ba3366177.png differ
diff --git a/textures/ai/000000000eff5d3b2e691111.png b/textures/ai/000000000eff5d3b2e691111.png
new file mode 100644
index 0000000..5a4e835
Binary files /dev/null and b/textures/ai/000000000eff5d3b2e691111.png differ
diff --git a/textures/ai/000000000fa6f26ceca95ddf.png b/textures/ai/000000000fa6f26ceca95ddf.png
new file mode 100644
index 0000000..d63450c
Binary files /dev/null and b/textures/ai/000000000fa6f26ceca95ddf.png differ
diff --git a/textures/ai/000000000ff7241486bda719.png b/textures/ai/000000000ff7241486bda719.png
new file mode 100644
index 0000000..dfd3bbf
Binary files /dev/null and b/textures/ai/000000000ff7241486bda719.png differ
diff --git a/textures/ai/00000000104fbf99e334c4e2.png b/textures/ai/00000000104fbf99e334c4e2.png
new file mode 100644
index 0000000..ea0ca77
Binary files /dev/null and b/textures/ai/00000000104fbf99e334c4e2.png differ
diff --git a/textures/ai/000000001137279ee2e7fd5e.png b/textures/ai/000000001137279ee2e7fd5e.png
new file mode 100644
index 0000000..e7705ba
Binary files /dev/null and b/textures/ai/000000001137279ee2e7fd5e.png differ
diff --git a/textures/ai/000000001251c435ea17b479.png b/textures/ai/000000001251c435ea17b479.png
new file mode 100644
index 0000000..81ffd63
Binary files /dev/null and b/textures/ai/000000001251c435ea17b479.png differ
diff --git a/textures/ai/0000000012a50eb7db22d091.png b/textures/ai/0000000012a50eb7db22d091.png
new file mode 100644
index 0000000..805ad0a
Binary files /dev/null and b/textures/ai/0000000012a50eb7db22d091.png differ
diff --git a/textures/ai/0000000012b42217dcec8699.png b/textures/ai/0000000012b42217dcec8699.png
new file mode 100644
index 0000000..72d840e
Binary files /dev/null and b/textures/ai/0000000012b42217dcec8699.png differ
diff --git a/textures/ai/00000000137fb05cb1117a5a.png b/textures/ai/00000000137fb05cb1117a5a.png
new file mode 100644
index 0000000..c5da55d
Binary files /dev/null and b/textures/ai/00000000137fb05cb1117a5a.png differ
diff --git a/textures/ai/000000001409bbc9d49a42f7.png b/textures/ai/000000001409bbc9d49a42f7.png
new file mode 100644
index 0000000..6e39ac0
Binary files /dev/null and b/textures/ai/000000001409bbc9d49a42f7.png differ
diff --git a/textures/ai/00000000143115ec76dd762f.png b/textures/ai/00000000143115ec76dd762f.png
new file mode 100644
index 0000000..f39ada1
Binary files /dev/null and b/textures/ai/00000000143115ec76dd762f.png differ
diff --git a/textures/ai/00000000158dfd91c05fbc32.png b/textures/ai/00000000158dfd91c05fbc32.png
new file mode 100644
index 0000000..3cd3870
Binary files /dev/null and b/textures/ai/00000000158dfd91c05fbc32.png differ
diff --git a/textures/ai/0000000015b63cf74dc8ab6f.png b/textures/ai/0000000015b63cf74dc8ab6f.png
new file mode 100644
index 0000000..64c1fed
Binary files /dev/null and b/textures/ai/0000000015b63cf74dc8ab6f.png differ
diff --git a/textures/ai/0000000016975477ff62bd1f.png b/textures/ai/0000000016975477ff62bd1f.png
new file mode 100644
index 0000000..b73c1dc
Binary files /dev/null and b/textures/ai/0000000016975477ff62bd1f.png differ
diff --git a/textures/ai/00000000170f83dbf2e12cd4.png b/textures/ai/00000000170f83dbf2e12cd4.png
new file mode 100644
index 0000000..b38582f
Binary files /dev/null and b/textures/ai/00000000170f83dbf2e12cd4.png differ
diff --git a/textures/ai/00000000176e92ed2bcf39bd.png b/textures/ai/00000000176e92ed2bcf39bd.png
new file mode 100644
index 0000000..f9ffd60
Binary files /dev/null and b/textures/ai/00000000176e92ed2bcf39bd.png differ
diff --git a/textures/ai/00000000181b4554ba8f60c5.png b/textures/ai/00000000181b4554ba8f60c5.png
new file mode 100644
index 0000000..a387383
Binary files /dev/null and b/textures/ai/00000000181b4554ba8f60c5.png differ
diff --git a/textures/ai/0000000018efb83f1a86cc2c.png b/textures/ai/0000000018efb83f1a86cc2c.png
new file mode 100644
index 0000000..ea326a6
Binary files /dev/null and b/textures/ai/0000000018efb83f1a86cc2c.png differ
diff --git a/textures/ai/0000000019ab2ecc6d5bf92b.png b/textures/ai/0000000019ab2ecc6d5bf92b.png
new file mode 100644
index 0000000..e864533
Binary files /dev/null and b/textures/ai/0000000019ab2ecc6d5bf92b.png differ
diff --git a/textures/ai/0000000019c83cf09ba48917.png b/textures/ai/0000000019c83cf09ba48917.png
new file mode 100644
index 0000000..156111f
Binary files /dev/null and b/textures/ai/0000000019c83cf09ba48917.png differ
diff --git a/textures/ai/000000001a4987047e7c72f2.png b/textures/ai/000000001a4987047e7c72f2.png
new file mode 100644
index 0000000..9aa4796
Binary files /dev/null and b/textures/ai/000000001a4987047e7c72f2.png differ
diff --git a/textures/ai/000000001a5ed37d23bf37d7.png b/textures/ai/000000001a5ed37d23bf37d7.png
new file mode 100644
index 0000000..5c703d5
Binary files /dev/null and b/textures/ai/000000001a5ed37d23bf37d7.png differ
diff --git a/textures/ai/000000001b4f8ae9033cbb2f.png b/textures/ai/000000001b4f8ae9033cbb2f.png
new file mode 100644
index 0000000..3ea0e10
Binary files /dev/null and b/textures/ai/000000001b4f8ae9033cbb2f.png differ
diff --git a/textures/ai/000000001b5077230b221d66.png b/textures/ai/000000001b5077230b221d66.png
new file mode 100644
index 0000000..8ab32d1
Binary files /dev/null and b/textures/ai/000000001b5077230b221d66.png differ
diff --git a/textures/ai/000000001b913fc216e7e159.png b/textures/ai/000000001b913fc216e7e159.png
new file mode 100644
index 0000000..b96b7a8
Binary files /dev/null and b/textures/ai/000000001b913fc216e7e159.png differ
diff --git a/textures/ai/000000001bb966776d67daa2.png b/textures/ai/000000001bb966776d67daa2.png
new file mode 100644
index 0000000..e454749
Binary files /dev/null and b/textures/ai/000000001bb966776d67daa2.png differ
diff --git a/textures/ai/000000001bdf381df3e8ff50.png b/textures/ai/000000001bdf381df3e8ff50.png
new file mode 100644
index 0000000..039503c
Binary files /dev/null and b/textures/ai/000000001bdf381df3e8ff50.png differ
diff --git a/textures/ai/000000001d6a3105e37f9500.png b/textures/ai/000000001d6a3105e37f9500.png
new file mode 100644
index 0000000..fb201fd
Binary files /dev/null and b/textures/ai/000000001d6a3105e37f9500.png differ
diff --git a/textures/ai/000000001e21ee46f0219b7e.png b/textures/ai/000000001e21ee46f0219b7e.png
new file mode 100644
index 0000000..16c3f8a
Binary files /dev/null and b/textures/ai/000000001e21ee46f0219b7e.png differ
diff --git a/textures/ai/000000001e4876511b34f248.png b/textures/ai/000000001e4876511b34f248.png
new file mode 100644
index 0000000..9920898
Binary files /dev/null and b/textures/ai/000000001e4876511b34f248.png differ
diff --git a/textures/ai/000000001e8c33d7e9ed9664.png b/textures/ai/000000001e8c33d7e9ed9664.png
new file mode 100644
index 0000000..1d544df
Binary files /dev/null and b/textures/ai/000000001e8c33d7e9ed9664.png differ
diff --git a/textures/ai/000000001fc0f02841e88ed0.png b/textures/ai/000000001fc0f02841e88ed0.png
new file mode 100644
index 0000000..8fb43c8
Binary files /dev/null and b/textures/ai/000000001fc0f02841e88ed0.png differ
diff --git a/textures/ai/00000000208404af456bc495.png b/textures/ai/00000000208404af456bc495.png
new file mode 100644
index 0000000..69beb55
Binary files /dev/null and b/textures/ai/00000000208404af456bc495.png differ
diff --git a/textures/ai/00000000208990be8fabea75.png b/textures/ai/00000000208990be8fabea75.png
new file mode 100644
index 0000000..1737145
Binary files /dev/null and b/textures/ai/00000000208990be8fabea75.png differ
diff --git a/textures/ai/0000000020b15139ffa44396.png b/textures/ai/0000000020b15139ffa44396.png
new file mode 100644
index 0000000..a21dfb2
Binary files /dev/null and b/textures/ai/0000000020b15139ffa44396.png differ
diff --git a/textures/ai/0000000020d652d5ba7093fe.png b/textures/ai/0000000020d652d5ba7093fe.png
new file mode 100644
index 0000000..13b554a
Binary files /dev/null and b/textures/ai/0000000020d652d5ba7093fe.png differ
diff --git a/textures/ai/00000000226a513a99819fdd.png b/textures/ai/00000000226a513a99819fdd.png
new file mode 100644
index 0000000..7366149
Binary files /dev/null and b/textures/ai/00000000226a513a99819fdd.png differ
diff --git a/textures/ai/00000000236ceda664478646.png b/textures/ai/00000000236ceda664478646.png
new file mode 100644
index 0000000..555c4c5
Binary files /dev/null and b/textures/ai/00000000236ceda664478646.png differ
diff --git a/textures/ai/00000000242cf103aec0aac7.png b/textures/ai/00000000242cf103aec0aac7.png
new file mode 100644
index 0000000..9a736c2
Binary files /dev/null and b/textures/ai/00000000242cf103aec0aac7.png differ
diff --git a/textures/ai/00000000242e98bcf76223a6.png b/textures/ai/00000000242e98bcf76223a6.png
new file mode 100644
index 0000000..83ec024
Binary files /dev/null and b/textures/ai/00000000242e98bcf76223a6.png differ
diff --git a/textures/ai/00000000247702c0adbe4300.png b/textures/ai/00000000247702c0adbe4300.png
new file mode 100644
index 0000000..aaefa0c
Binary files /dev/null and b/textures/ai/00000000247702c0adbe4300.png differ
diff --git a/textures/ai/0000000024b8066839732777.png b/textures/ai/0000000024b8066839732777.png
new file mode 100644
index 0000000..ec6c84c
Binary files /dev/null and b/textures/ai/0000000024b8066839732777.png differ
diff --git a/textures/ai/0000000024d2a8261154e9af.png b/textures/ai/0000000024d2a8261154e9af.png
new file mode 100644
index 0000000..1a83e17
Binary files /dev/null and b/textures/ai/0000000024d2a8261154e9af.png differ
diff --git a/textures/ai/0000000024fa3d666c498ebe.png b/textures/ai/0000000024fa3d666c498ebe.png
new file mode 100644
index 0000000..fd84554
Binary files /dev/null and b/textures/ai/0000000024fa3d666c498ebe.png differ
diff --git a/textures/ai/000000002575f920a126dd87.png b/textures/ai/000000002575f920a126dd87.png
new file mode 100644
index 0000000..43bbd9c
Binary files /dev/null and b/textures/ai/000000002575f920a126dd87.png differ
diff --git a/textures/ai/0000000026597b73fe6760b2.png b/textures/ai/0000000026597b73fe6760b2.png
new file mode 100644
index 0000000..509deb4
Binary files /dev/null and b/textures/ai/0000000026597b73fe6760b2.png differ
diff --git a/textures/ai/0000000026f17262ae8a073a.png b/textures/ai/0000000026f17262ae8a073a.png
new file mode 100644
index 0000000..178081f
Binary files /dev/null and b/textures/ai/0000000026f17262ae8a073a.png differ
diff --git a/textures/ai/000000002710365acd41c7f9.png b/textures/ai/000000002710365acd41c7f9.png
new file mode 100644
index 0000000..1506b1e
Binary files /dev/null and b/textures/ai/000000002710365acd41c7f9.png differ
diff --git a/textures/ai/00000000282491bd5aa2de87.png b/textures/ai/00000000282491bd5aa2de87.png
new file mode 100644
index 0000000..f6492fe
Binary files /dev/null and b/textures/ai/00000000282491bd5aa2de87.png differ
diff --git a/textures/ai/000000002825aacdd6824359.png b/textures/ai/000000002825aacdd6824359.png
new file mode 100644
index 0000000..85f078b
Binary files /dev/null and b/textures/ai/000000002825aacdd6824359.png differ
diff --git a/textures/ai/0000000028fceec56ca34be2.png b/textures/ai/0000000028fceec56ca34be2.png
new file mode 100644
index 0000000..16a7586
Binary files /dev/null and b/textures/ai/0000000028fceec56ca34be2.png differ
diff --git a/textures/ai/000000002920096df215fd95.png b/textures/ai/000000002920096df215fd95.png
new file mode 100644
index 0000000..d942bee
Binary files /dev/null and b/textures/ai/000000002920096df215fd95.png differ
diff --git a/textures/ai/000000002994557437984084.png b/textures/ai/000000002994557437984084.png
new file mode 100644
index 0000000..f6749bd
Binary files /dev/null and b/textures/ai/000000002994557437984084.png differ
diff --git a/textures/ai/000000002a3edbc646096aa7.png b/textures/ai/000000002a3edbc646096aa7.png
new file mode 100644
index 0000000..d1e9a48
Binary files /dev/null and b/textures/ai/000000002a3edbc646096aa7.png differ
diff --git a/textures/ai/000000002a5dec8fe8d716fd.png b/textures/ai/000000002a5dec8fe8d716fd.png
new file mode 100644
index 0000000..0ba516c
Binary files /dev/null and b/textures/ai/000000002a5dec8fe8d716fd.png differ
diff --git a/textures/ai/000000002bf72d6204690c48.png b/textures/ai/000000002bf72d6204690c48.png
new file mode 100644
index 0000000..cd9d7cd
Binary files /dev/null and b/textures/ai/000000002bf72d6204690c48.png differ
diff --git a/textures/ai/000000002c6cac98fd378fb2.png b/textures/ai/000000002c6cac98fd378fb2.png
new file mode 100644
index 0000000..993e9f9
Binary files /dev/null and b/textures/ai/000000002c6cac98fd378fb2.png differ
diff --git a/textures/ai/000000002ca16b3098118d65.png b/textures/ai/000000002ca16b3098118d65.png
new file mode 100644
index 0000000..24deda6
Binary files /dev/null and b/textures/ai/000000002ca16b3098118d65.png differ
diff --git a/textures/ai/000000002d1a1cd6063e9a38.png b/textures/ai/000000002d1a1cd6063e9a38.png
new file mode 100644
index 0000000..9ae2961
Binary files /dev/null and b/textures/ai/000000002d1a1cd6063e9a38.png differ
diff --git a/textures/ai/000000002d841f5f8fab2a49.png b/textures/ai/000000002d841f5f8fab2a49.png
new file mode 100644
index 0000000..104452f
Binary files /dev/null and b/textures/ai/000000002d841f5f8fab2a49.png differ
diff --git a/textures/ai/000000002e01edb636ad7252.png b/textures/ai/000000002e01edb636ad7252.png
new file mode 100644
index 0000000..9c8ef66
Binary files /dev/null and b/textures/ai/000000002e01edb636ad7252.png differ
diff --git a/textures/ai/000000002e506b03aa34dd45.png b/textures/ai/000000002e506b03aa34dd45.png
new file mode 100644
index 0000000..9ec17c8
Binary files /dev/null and b/textures/ai/000000002e506b03aa34dd45.png differ
diff --git a/textures/ai/000000002ef22b55128dac38.png b/textures/ai/000000002ef22b55128dac38.png
new file mode 100644
index 0000000..47a8271
Binary files /dev/null and b/textures/ai/000000002ef22b55128dac38.png differ
diff --git a/textures/ai/00000000305ff6b39e17296a.png b/textures/ai/00000000305ff6b39e17296a.png
new file mode 100644
index 0000000..203225f
Binary files /dev/null and b/textures/ai/00000000305ff6b39e17296a.png differ
diff --git a/textures/ai/0000000030716af40b2fdd71.png b/textures/ai/0000000030716af40b2fdd71.png
new file mode 100644
index 0000000..01ad008
Binary files /dev/null and b/textures/ai/0000000030716af40b2fdd71.png differ
diff --git a/textures/ai/0000000031535f8185a16484.png b/textures/ai/0000000031535f8185a16484.png
new file mode 100644
index 0000000..3dd35fc
Binary files /dev/null and b/textures/ai/0000000031535f8185a16484.png differ
diff --git a/textures/ai/000000003230a7581898e35e.png b/textures/ai/000000003230a7581898e35e.png
new file mode 100644
index 0000000..c846b59
Binary files /dev/null and b/textures/ai/000000003230a7581898e35e.png differ
diff --git a/textures/ai/0000000032c8a7e497aef795.png b/textures/ai/0000000032c8a7e497aef795.png
new file mode 100644
index 0000000..659809d
Binary files /dev/null and b/textures/ai/0000000032c8a7e497aef795.png differ
diff --git a/textures/ai/000000003389b8f557a4cc72.png b/textures/ai/000000003389b8f557a4cc72.png
new file mode 100644
index 0000000..520d04c
Binary files /dev/null and b/textures/ai/000000003389b8f557a4cc72.png differ
diff --git a/textures/ai/0000000034e5aabda56065c8.png b/textures/ai/0000000034e5aabda56065c8.png
new file mode 100644
index 0000000..a4405c0
Binary files /dev/null and b/textures/ai/0000000034e5aabda56065c8.png differ
diff --git a/textures/ai/0000000035e9310277e47db6.png b/textures/ai/0000000035e9310277e47db6.png
new file mode 100644
index 0000000..7ebf240
Binary files /dev/null and b/textures/ai/0000000035e9310277e47db6.png differ
diff --git a/textures/ai/0000000036541cd1cff11ba6.png b/textures/ai/0000000036541cd1cff11ba6.png
new file mode 100644
index 0000000..3dcac1c
Binary files /dev/null and b/textures/ai/0000000036541cd1cff11ba6.png differ
diff --git a/textures/ai/0000000036860bb916f22813.png b/textures/ai/0000000036860bb916f22813.png
new file mode 100644
index 0000000..0ddaf48
Binary files /dev/null and b/textures/ai/0000000036860bb916f22813.png differ
diff --git a/textures/ai/0000000036db5d4cf1450651.png b/textures/ai/0000000036db5d4cf1450651.png
new file mode 100644
index 0000000..62cbab2
Binary files /dev/null and b/textures/ai/0000000036db5d4cf1450651.png differ
diff --git a/textures/ai/00000000373c0a7b702f11dd.png b/textures/ai/00000000373c0a7b702f11dd.png
new file mode 100644
index 0000000..bba85e4
Binary files /dev/null and b/textures/ai/00000000373c0a7b702f11dd.png differ
diff --git a/textures/ai/0000000039cf6482324c7094.png b/textures/ai/0000000039cf6482324c7094.png
new file mode 100644
index 0000000..83bde96
Binary files /dev/null and b/textures/ai/0000000039cf6482324c7094.png differ
diff --git a/textures/ai/000000003af416bd6f5ab6b1.png b/textures/ai/000000003af416bd6f5ab6b1.png
new file mode 100644
index 0000000..544e911
Binary files /dev/null and b/textures/ai/000000003af416bd6f5ab6b1.png differ
diff --git a/textures/ai/000000003af5e79efa55d3e8.png b/textures/ai/000000003af5e79efa55d3e8.png
new file mode 100644
index 0000000..734f8ef
Binary files /dev/null and b/textures/ai/000000003af5e79efa55d3e8.png differ
diff --git a/textures/ai/000000003afe5b9761865966.png b/textures/ai/000000003afe5b9761865966.png
new file mode 100644
index 0000000..8fd54ed
Binary files /dev/null and b/textures/ai/000000003afe5b9761865966.png differ
diff --git a/textures/ai/000000003c623cfac1657ef7.png b/textures/ai/000000003c623cfac1657ef7.png
new file mode 100644
index 0000000..32c92a6
Binary files /dev/null and b/textures/ai/000000003c623cfac1657ef7.png differ
diff --git a/textures/ai/000000003cd0b92a1e660ca0.png b/textures/ai/000000003cd0b92a1e660ca0.png
new file mode 100644
index 0000000..e05088e
Binary files /dev/null and b/textures/ai/000000003cd0b92a1e660ca0.png differ
diff --git a/textures/ai/000000003d5673f66e89e64d.png b/textures/ai/000000003d5673f66e89e64d.png
new file mode 100644
index 0000000..eba3305
Binary files /dev/null and b/textures/ai/000000003d5673f66e89e64d.png differ
diff --git a/textures/ai/000000003d70d68c53248483.png b/textures/ai/000000003d70d68c53248483.png
new file mode 100644
index 0000000..4f98362
Binary files /dev/null and b/textures/ai/000000003d70d68c53248483.png differ
diff --git a/textures/ai/000000003d73c3e783b3d3a6.png b/textures/ai/000000003d73c3e783b3d3a6.png
new file mode 100644
index 0000000..1a68e24
Binary files /dev/null and b/textures/ai/000000003d73c3e783b3d3a6.png differ
diff --git a/textures/ai/000000003dedd9117b60a908.png b/textures/ai/000000003dedd9117b60a908.png
new file mode 100644
index 0000000..65ddcfa
Binary files /dev/null and b/textures/ai/000000003dedd9117b60a908.png differ
diff --git a/textures/ai/000000003e93f77a4b71a2fd.png b/textures/ai/000000003e93f77a4b71a2fd.png
new file mode 100644
index 0000000..9cfc9ac
Binary files /dev/null and b/textures/ai/000000003e93f77a4b71a2fd.png differ
diff --git a/textures/ai/000000003edf9489c5f9caf2.png b/textures/ai/000000003edf9489c5f9caf2.png
new file mode 100644
index 0000000..bb4b3fe
Binary files /dev/null and b/textures/ai/000000003edf9489c5f9caf2.png differ
diff --git a/textures/ai/000000003f32e1bf03561d40.png b/textures/ai/000000003f32e1bf03561d40.png
new file mode 100644
index 0000000..f96ec7a
Binary files /dev/null and b/textures/ai/000000003f32e1bf03561d40.png differ
diff --git a/textures/ai/000000003f4b92554b0d9dbf.png b/textures/ai/000000003f4b92554b0d9dbf.png
new file mode 100644
index 0000000..fc94de1
Binary files /dev/null and b/textures/ai/000000003f4b92554b0d9dbf.png differ
diff --git a/textures/ai/0000000040aa1d3f2be9fc92.png b/textures/ai/0000000040aa1d3f2be9fc92.png
new file mode 100644
index 0000000..6d32b1a
Binary files /dev/null and b/textures/ai/0000000040aa1d3f2be9fc92.png differ
diff --git a/textures/ai/0000000040c0fcae2d41e1c7.png b/textures/ai/0000000040c0fcae2d41e1c7.png
new file mode 100644
index 0000000..dca7152
Binary files /dev/null and b/textures/ai/0000000040c0fcae2d41e1c7.png differ
diff --git a/textures/ai/000000004199a765ba8d392b.png b/textures/ai/000000004199a765ba8d392b.png
new file mode 100644
index 0000000..16e1c90
Binary files /dev/null and b/textures/ai/000000004199a765ba8d392b.png differ
diff --git a/textures/ai/00000000419f64c00ef39c13.png b/textures/ai/00000000419f64c00ef39c13.png
new file mode 100644
index 0000000..5a3262b
Binary files /dev/null and b/textures/ai/00000000419f64c00ef39c13.png differ
diff --git a/textures/ai/0000000043598df51b34f248.png b/textures/ai/0000000043598df51b34f248.png
new file mode 100644
index 0000000..1d577a9
Binary files /dev/null and b/textures/ai/0000000043598df51b34f248.png differ
diff --git a/textures/ai/0000000044201c38c88bfbd0.png b/textures/ai/0000000044201c38c88bfbd0.png
new file mode 100644
index 0000000..c09e725
Binary files /dev/null and b/textures/ai/0000000044201c38c88bfbd0.png differ
diff --git a/textures/ai/000000004481c351f76b5c28.png b/textures/ai/000000004481c351f76b5c28.png
new file mode 100644
index 0000000..844c285
Binary files /dev/null and b/textures/ai/000000004481c351f76b5c28.png differ
diff --git a/textures/ai/00000000457c7f6a53cc4214.png b/textures/ai/00000000457c7f6a53cc4214.png
new file mode 100644
index 0000000..5663ecb
Binary files /dev/null and b/textures/ai/00000000457c7f6a53cc4214.png differ
diff --git a/textures/ai/0000000046c56064040d62d5.png b/textures/ai/0000000046c56064040d62d5.png
new file mode 100644
index 0000000..58ea692
Binary files /dev/null and b/textures/ai/0000000046c56064040d62d5.png differ
diff --git a/textures/ai/000000004742dcda9a853b1d.png b/textures/ai/000000004742dcda9a853b1d.png
new file mode 100644
index 0000000..3e177cb
Binary files /dev/null and b/textures/ai/000000004742dcda9a853b1d.png differ
diff --git a/textures/ai/000000004751a562b2b85836.png b/textures/ai/000000004751a562b2b85836.png
new file mode 100644
index 0000000..9e45038
Binary files /dev/null and b/textures/ai/000000004751a562b2b85836.png differ
diff --git a/textures/ai/0000000047cf2bc0bb6c8599.png b/textures/ai/0000000047cf2bc0bb6c8599.png
new file mode 100644
index 0000000..1424962
Binary files /dev/null and b/textures/ai/0000000047cf2bc0bb6c8599.png differ
diff --git a/textures/ai/00000000491e753abf87a3d0.png b/textures/ai/00000000491e753abf87a3d0.png
new file mode 100644
index 0000000..fab1b62
Binary files /dev/null and b/textures/ai/00000000491e753abf87a3d0.png differ
diff --git a/textures/ai/000000004960e49b90b33422.png b/textures/ai/000000004960e49b90b33422.png
new file mode 100644
index 0000000..b1e5a14
Binary files /dev/null and b/textures/ai/000000004960e49b90b33422.png differ
diff --git a/textures/ai/000000004989a306563de25a.png b/textures/ai/000000004989a306563de25a.png
new file mode 100644
index 0000000..ae236e7
Binary files /dev/null and b/textures/ai/000000004989a306563de25a.png differ
diff --git a/textures/ai/000000004a12d3fba06d59ac.png b/textures/ai/000000004a12d3fba06d59ac.png
new file mode 100644
index 0000000..3f9971b
Binary files /dev/null and b/textures/ai/000000004a12d3fba06d59ac.png differ
diff --git a/textures/ai/000000004b770f6665756ec5.png b/textures/ai/000000004b770f6665756ec5.png
new file mode 100644
index 0000000..96395af
Binary files /dev/null and b/textures/ai/000000004b770f6665756ec5.png differ
diff --git a/textures/ai/000000004b7cd6c6efa1851f.png b/textures/ai/000000004b7cd6c6efa1851f.png
new file mode 100644
index 0000000..c07c55b
Binary files /dev/null and b/textures/ai/000000004b7cd6c6efa1851f.png differ
diff --git a/textures/ai/000000004c35e67a7299536c.png b/textures/ai/000000004c35e67a7299536c.png
new file mode 100644
index 0000000..3a7aa12
Binary files /dev/null and b/textures/ai/000000004c35e67a7299536c.png differ
diff --git a/textures/ai/000000004d58df85d97d266f.png b/textures/ai/000000004d58df85d97d266f.png
new file mode 100644
index 0000000..f41f15b
Binary files /dev/null and b/textures/ai/000000004d58df85d97d266f.png differ
diff --git a/textures/ai/000000004e389abd5652eb56.png b/textures/ai/000000004e389abd5652eb56.png
new file mode 100644
index 0000000..a5dcfe1
Binary files /dev/null and b/textures/ai/000000004e389abd5652eb56.png differ
diff --git a/textures/ai/000000004e40ae74a7e2fffe.png b/textures/ai/000000004e40ae74a7e2fffe.png
new file mode 100644
index 0000000..b6d82f0
Binary files /dev/null and b/textures/ai/000000004e40ae74a7e2fffe.png differ
diff --git a/textures/ai/000000004e4884a471dea25e.png b/textures/ai/000000004e4884a471dea25e.png
new file mode 100644
index 0000000..c5348d8
Binary files /dev/null and b/textures/ai/000000004e4884a471dea25e.png differ
diff --git a/textures/ai/000000004e55002aacad097d.png b/textures/ai/000000004e55002aacad097d.png
new file mode 100644
index 0000000..122202b
Binary files /dev/null and b/textures/ai/000000004e55002aacad097d.png differ
diff --git a/textures/ai/000000004f717d5974be0c15.png b/textures/ai/000000004f717d5974be0c15.png
new file mode 100644
index 0000000..93de598
Binary files /dev/null and b/textures/ai/000000004f717d5974be0c15.png differ
diff --git a/textures/ai/000000004f76fd919185971f.png b/textures/ai/000000004f76fd919185971f.png
new file mode 100644
index 0000000..a49139b
Binary files /dev/null and b/textures/ai/000000004f76fd919185971f.png differ
diff --git a/textures/ai/000000004fdbf4e03c6a1cc3.png b/textures/ai/000000004fdbf4e03c6a1cc3.png
new file mode 100644
index 0000000..fb0b21a
Binary files /dev/null and b/textures/ai/000000004fdbf4e03c6a1cc3.png differ
diff --git a/textures/ai/00000000500d36e008763bea.png b/textures/ai/00000000500d36e008763bea.png
new file mode 100644
index 0000000..d783071
Binary files /dev/null and b/textures/ai/00000000500d36e008763bea.png differ
diff --git a/textures/ai/000000005032611fa66402d8.png b/textures/ai/000000005032611fa66402d8.png
new file mode 100644
index 0000000..f807464
Binary files /dev/null and b/textures/ai/000000005032611fa66402d8.png differ
diff --git a/textures/ai/000000005042605462395a90.png b/textures/ai/000000005042605462395a90.png
new file mode 100644
index 0000000..77e6c7b
Binary files /dev/null and b/textures/ai/000000005042605462395a90.png differ
diff --git a/textures/ai/00000000506867b535219b85.png b/textures/ai/00000000506867b535219b85.png
new file mode 100644
index 0000000..7bd80dc
Binary files /dev/null and b/textures/ai/00000000506867b535219b85.png differ
diff --git a/textures/ai/0000000050ce27d36048dc4a.png b/textures/ai/0000000050ce27d36048dc4a.png
new file mode 100644
index 0000000..e3215ab
Binary files /dev/null and b/textures/ai/0000000050ce27d36048dc4a.png differ
diff --git a/textures/ai/00000000514533e92f54377b.png b/textures/ai/00000000514533e92f54377b.png
new file mode 100644
index 0000000..d143687
Binary files /dev/null and b/textures/ai/00000000514533e92f54377b.png differ
diff --git a/textures/ai/00000000514def643340182a.png b/textures/ai/00000000514def643340182a.png
new file mode 100644
index 0000000..6e72f9c
Binary files /dev/null and b/textures/ai/00000000514def643340182a.png differ
diff --git a/textures/ai/00000000522c5a21e869c062.png b/textures/ai/00000000522c5a21e869c062.png
new file mode 100644
index 0000000..b610cca
Binary files /dev/null and b/textures/ai/00000000522c5a21e869c062.png differ
diff --git a/textures/ai/0000000052b804486f5e415b.png b/textures/ai/0000000052b804486f5e415b.png
new file mode 100644
index 0000000..53754d6
Binary files /dev/null and b/textures/ai/0000000052b804486f5e415b.png differ
diff --git a/textures/ai/0000000052d2272fb356f9b6.png b/textures/ai/0000000052d2272fb356f9b6.png
new file mode 100644
index 0000000..f5f44c8
Binary files /dev/null and b/textures/ai/0000000052d2272fb356f9b6.png differ
diff --git a/textures/ai/0000000054065bb1ef2c7d31.png b/textures/ai/0000000054065bb1ef2c7d31.png
new file mode 100644
index 0000000..78c93c4
Binary files /dev/null and b/textures/ai/0000000054065bb1ef2c7d31.png differ
diff --git a/textures/ai/000000005471deb1deb77817.png b/textures/ai/000000005471deb1deb77817.png
new file mode 100644
index 0000000..265723c
Binary files /dev/null and b/textures/ai/000000005471deb1deb77817.png differ
diff --git a/textures/ai/000000005474830dc33871e3.png b/textures/ai/000000005474830dc33871e3.png
new file mode 100644
index 0000000..f7683f7
Binary files /dev/null and b/textures/ai/000000005474830dc33871e3.png differ
diff --git a/textures/ai/0000000055c4531e2dfd3073.png b/textures/ai/0000000055c4531e2dfd3073.png
new file mode 100644
index 0000000..7f8af01
Binary files /dev/null and b/textures/ai/0000000055c4531e2dfd3073.png differ
diff --git a/textures/ai/0000000055d5c9d6a9b388d4.png b/textures/ai/0000000055d5c9d6a9b388d4.png
new file mode 100644
index 0000000..907239c
Binary files /dev/null and b/textures/ai/0000000055d5c9d6a9b388d4.png differ
diff --git a/textures/ai/00000000569b26a74dc1607c.png b/textures/ai/00000000569b26a74dc1607c.png
new file mode 100644
index 0000000..2fe3b9c
Binary files /dev/null and b/textures/ai/00000000569b26a74dc1607c.png differ
diff --git a/textures/ai/00000000569ed47828dd721f.png b/textures/ai/00000000569ed47828dd721f.png
new file mode 100644
index 0000000..90c2faa
Binary files /dev/null and b/textures/ai/00000000569ed47828dd721f.png differ
diff --git a/textures/ai/0000000056b9e3e782734b3c.png b/textures/ai/0000000056b9e3e782734b3c.png
new file mode 100644
index 0000000..bab6eac
Binary files /dev/null and b/textures/ai/0000000056b9e3e782734b3c.png differ
diff --git a/textures/ai/0000000056e1a03fd122ddaa.png b/textures/ai/0000000056e1a03fd122ddaa.png
new file mode 100644
index 0000000..a5ee796
Binary files /dev/null and b/textures/ai/0000000056e1a03fd122ddaa.png differ
diff --git a/textures/ai/00000000572ee594e9c1fa15.png b/textures/ai/00000000572ee594e9c1fa15.png
new file mode 100644
index 0000000..7cdc6d7
Binary files /dev/null and b/textures/ai/00000000572ee594e9c1fa15.png differ
diff --git a/textures/ai/0000000058f686ffd8695da5.png b/textures/ai/0000000058f686ffd8695da5.png
new file mode 100644
index 0000000..0191c6a
Binary files /dev/null and b/textures/ai/0000000058f686ffd8695da5.png differ
diff --git a/textures/ai/000000005a16c1c29cd5bf01.png b/textures/ai/000000005a16c1c29cd5bf01.png
new file mode 100644
index 0000000..8a18765
Binary files /dev/null and b/textures/ai/000000005a16c1c29cd5bf01.png differ
diff --git a/textures/ai/000000005a2cfd0960aa5a55.png b/textures/ai/000000005a2cfd0960aa5a55.png
new file mode 100644
index 0000000..7e18cdc
Binary files /dev/null and b/textures/ai/000000005a2cfd0960aa5a55.png differ
diff --git a/textures/ai/000000005b1788d3388d311e.png b/textures/ai/000000005b1788d3388d311e.png
new file mode 100644
index 0000000..7ab94fb
Binary files /dev/null and b/textures/ai/000000005b1788d3388d311e.png differ
diff --git a/textures/ai/000000005b78dfab08be8e89.png b/textures/ai/000000005b78dfab08be8e89.png
new file mode 100644
index 0000000..30dd82c
Binary files /dev/null and b/textures/ai/000000005b78dfab08be8e89.png differ
diff --git a/textures/ai/000000005b9590837f993667.png b/textures/ai/000000005b9590837f993667.png
new file mode 100644
index 0000000..36de3ad
Binary files /dev/null and b/textures/ai/000000005b9590837f993667.png differ
diff --git a/textures/ai/000000005c59840f5908a93a.png b/textures/ai/000000005c59840f5908a93a.png
new file mode 100644
index 0000000..eea3cb5
Binary files /dev/null and b/textures/ai/000000005c59840f5908a93a.png differ
diff --git a/textures/ai/000000005c770b975ae161f7.png b/textures/ai/000000005c770b975ae161f7.png
new file mode 100644
index 0000000..4948378
Binary files /dev/null and b/textures/ai/000000005c770b975ae161f7.png differ
diff --git a/textures/ai/000000005cd5c6b74543b427.png b/textures/ai/000000005cd5c6b74543b427.png
new file mode 100644
index 0000000..e1cc7bc
Binary files /dev/null and b/textures/ai/000000005cd5c6b74543b427.png differ
diff --git a/textures/ai/000000005cdd0ea1f8f391a0.png b/textures/ai/000000005cdd0ea1f8f391a0.png
new file mode 100644
index 0000000..64e8aab
Binary files /dev/null and b/textures/ai/000000005cdd0ea1f8f391a0.png differ
diff --git a/textures/ai/000000005d8fae98afe4c3e7.png b/textures/ai/000000005d8fae98afe4c3e7.png
new file mode 100644
index 0000000..763266b
Binary files /dev/null and b/textures/ai/000000005d8fae98afe4c3e7.png differ
diff --git a/textures/ai/000000005dd25a439b63bb0a.png b/textures/ai/000000005dd25a439b63bb0a.png
new file mode 100644
index 0000000..c8df8d5
Binary files /dev/null and b/textures/ai/000000005dd25a439b63bb0a.png differ
diff --git a/textures/ai/000000005e0dde57677497a6.png b/textures/ai/000000005e0dde57677497a6.png
new file mode 100644
index 0000000..0df8f5d
Binary files /dev/null and b/textures/ai/000000005e0dde57677497a6.png differ
diff --git a/textures/ai/000000005e99b8a84d41212c.png b/textures/ai/000000005e99b8a84d41212c.png
new file mode 100644
index 0000000..4596658
Binary files /dev/null and b/textures/ai/000000005e99b8a84d41212c.png differ
diff --git a/textures/ai/000000005fe488c639fe38ca.png b/textures/ai/000000005fe488c639fe38ca.png
new file mode 100644
index 0000000..99e8484
Binary files /dev/null and b/textures/ai/000000005fe488c639fe38ca.png differ
diff --git a/textures/ai/0000000061b0b64e7bea8257.png b/textures/ai/0000000061b0b64e7bea8257.png
new file mode 100644
index 0000000..da8003a
Binary files /dev/null and b/textures/ai/0000000061b0b64e7bea8257.png differ
diff --git a/textures/ai/00000000629ab5f00ffd31dd.png b/textures/ai/00000000629ab5f00ffd31dd.png
new file mode 100644
index 0000000..b402193
Binary files /dev/null and b/textures/ai/00000000629ab5f00ffd31dd.png differ
diff --git a/textures/ai/000000006346aed9def8dd47.png b/textures/ai/000000006346aed9def8dd47.png
new file mode 100644
index 0000000..7eb30d6
Binary files /dev/null and b/textures/ai/000000006346aed9def8dd47.png differ
diff --git a/textures/ai/000000006375787bad066a44.png b/textures/ai/000000006375787bad066a44.png
new file mode 100644
index 0000000..bbfc773
Binary files /dev/null and b/textures/ai/000000006375787bad066a44.png differ
diff --git a/textures/ai/000000006455f5d508b6b57e.png b/textures/ai/000000006455f5d508b6b57e.png
new file mode 100644
index 0000000..9316b93
Binary files /dev/null and b/textures/ai/000000006455f5d508b6b57e.png differ
diff --git a/textures/ai/00000000668c006c9ed1183c.png b/textures/ai/00000000668c006c9ed1183c.png
new file mode 100644
index 0000000..8cf486d
Binary files /dev/null and b/textures/ai/00000000668c006c9ed1183c.png differ
diff --git a/textures/ai/0000000066ea9a6bfc504a67.png b/textures/ai/0000000066ea9a6bfc504a67.png
new file mode 100644
index 0000000..e7abe7a
Binary files /dev/null and b/textures/ai/0000000066ea9a6bfc504a67.png differ
diff --git a/textures/ai/0000000067d8be291eb8229a.png b/textures/ai/0000000067d8be291eb8229a.png
new file mode 100644
index 0000000..8f7e08f
Binary files /dev/null and b/textures/ai/0000000067d8be291eb8229a.png differ
diff --git a/textures/ai/0000000067f99540c6330186.png b/textures/ai/0000000067f99540c6330186.png
new file mode 100644
index 0000000..af891a1
Binary files /dev/null and b/textures/ai/0000000067f99540c6330186.png differ
diff --git a/textures/ai/00000000681b66fda50731bf.png b/textures/ai/00000000681b66fda50731bf.png
new file mode 100644
index 0000000..1f4d37c
Binary files /dev/null and b/textures/ai/00000000681b66fda50731bf.png differ
diff --git a/textures/ai/00000000684348589235808e.png b/textures/ai/00000000684348589235808e.png
new file mode 100644
index 0000000..c7071cb
Binary files /dev/null and b/textures/ai/00000000684348589235808e.png differ
diff --git a/textures/ai/0000000068e03747e5ccc87e.png b/textures/ai/0000000068e03747e5ccc87e.png
new file mode 100644
index 0000000..4e302db
Binary files /dev/null and b/textures/ai/0000000068e03747e5ccc87e.png differ
diff --git a/textures/ai/00000000693e34d3980253af.png b/textures/ai/00000000693e34d3980253af.png
new file mode 100644
index 0000000..097ddae
Binary files /dev/null and b/textures/ai/00000000693e34d3980253af.png differ
diff --git a/textures/ai/00000000698ef64be9245e9c.png b/textures/ai/00000000698ef64be9245e9c.png
new file mode 100644
index 0000000..0e4713f
Binary files /dev/null and b/textures/ai/00000000698ef64be9245e9c.png differ
diff --git a/textures/ai/0000000069bc5fcfb5ec11cd.png b/textures/ai/0000000069bc5fcfb5ec11cd.png
new file mode 100644
index 0000000..140918b
Binary files /dev/null and b/textures/ai/0000000069bc5fcfb5ec11cd.png differ
diff --git a/textures/ai/0000000069d422de3f7cf7d7.png b/textures/ai/0000000069d422de3f7cf7d7.png
new file mode 100644
index 0000000..1e29201
Binary files /dev/null and b/textures/ai/0000000069d422de3f7cf7d7.png differ
diff --git a/textures/ai/0000000069d8a83ec9646f98.png b/textures/ai/0000000069d8a83ec9646f98.png
new file mode 100644
index 0000000..122e98d
Binary files /dev/null and b/textures/ai/0000000069d8a83ec9646f98.png differ
diff --git a/textures/ai/000000006a602aa00f9650a6.png b/textures/ai/000000006a602aa00f9650a6.png
new file mode 100644
index 0000000..41cf04e
Binary files /dev/null and b/textures/ai/000000006a602aa00f9650a6.png differ
diff --git a/textures/ai/000000006ae2fb2023942ed4.png b/textures/ai/000000006ae2fb2023942ed4.png
new file mode 100644
index 0000000..e5cbbd9
Binary files /dev/null and b/textures/ai/000000006ae2fb2023942ed4.png differ
diff --git a/textures/ai/000000006b16c61da35edd07.png b/textures/ai/000000006b16c61da35edd07.png
new file mode 100644
index 0000000..cb79021
Binary files /dev/null and b/textures/ai/000000006b16c61da35edd07.png differ
diff --git a/textures/ai/000000006bdeda5fd84545d4.png b/textures/ai/000000006bdeda5fd84545d4.png
new file mode 100644
index 0000000..06782f4
Binary files /dev/null and b/textures/ai/000000006bdeda5fd84545d4.png differ
diff --git a/textures/ai/000000006d298ddec1a97e86.png b/textures/ai/000000006d298ddec1a97e86.png
new file mode 100644
index 0000000..252575a
Binary files /dev/null and b/textures/ai/000000006d298ddec1a97e86.png differ
diff --git a/textures/ai/000000006d330c53f1332c88.png b/textures/ai/000000006d330c53f1332c88.png
new file mode 100644
index 0000000..4a99423
Binary files /dev/null and b/textures/ai/000000006d330c53f1332c88.png differ
diff --git a/textures/ai/000000006d51d3716a50d168.png b/textures/ai/000000006d51d3716a50d168.png
new file mode 100644
index 0000000..d34fdc2
Binary files /dev/null and b/textures/ai/000000006d51d3716a50d168.png differ
diff --git a/textures/ai/000000006dbe8a9417f01d74.png b/textures/ai/000000006dbe8a9417f01d74.png
new file mode 100644
index 0000000..893c404
Binary files /dev/null and b/textures/ai/000000006dbe8a9417f01d74.png differ
diff --git a/textures/ai/000000006e28ca6e2015e0b4.png b/textures/ai/000000006e28ca6e2015e0b4.png
new file mode 100644
index 0000000..828471d
Binary files /dev/null and b/textures/ai/000000006e28ca6e2015e0b4.png differ
diff --git a/textures/ai/000000006e312178e62b52af.png b/textures/ai/000000006e312178e62b52af.png
new file mode 100644
index 0000000..611fe83
Binary files /dev/null and b/textures/ai/000000006e312178e62b52af.png differ
diff --git a/textures/ai/000000006e8dc22b1d365321.png b/textures/ai/000000006e8dc22b1d365321.png
new file mode 100644
index 0000000..3f85cf9
Binary files /dev/null and b/textures/ai/000000006e8dc22b1d365321.png differ
diff --git a/textures/ai/000000006ea710ce4ed0cfd2.png b/textures/ai/000000006ea710ce4ed0cfd2.png
new file mode 100644
index 0000000..3d5d6a4
Binary files /dev/null and b/textures/ai/000000006ea710ce4ed0cfd2.png differ
diff --git a/textures/ai/000000006f6d53075ea88910.png b/textures/ai/000000006f6d53075ea88910.png
new file mode 100644
index 0000000..b7fc0ef
Binary files /dev/null and b/textures/ai/000000006f6d53075ea88910.png differ
diff --git a/textures/ai/000000006faeba42074c47c7.png b/textures/ai/000000006faeba42074c47c7.png
new file mode 100644
index 0000000..c6947bb
Binary files /dev/null and b/textures/ai/000000006faeba42074c47c7.png differ
diff --git a/textures/ai/000000006fcffe782e6f1898.png b/textures/ai/000000006fcffe782e6f1898.png
new file mode 100644
index 0000000..06ffd7b
Binary files /dev/null and b/textures/ai/000000006fcffe782e6f1898.png differ
diff --git a/textures/ai/0000000070af0d8fe959cf3c.png b/textures/ai/0000000070af0d8fe959cf3c.png
new file mode 100644
index 0000000..6a7cf21
Binary files /dev/null and b/textures/ai/0000000070af0d8fe959cf3c.png differ
diff --git a/textures/ai/0000000070b572acbb0e132b.png b/textures/ai/0000000070b572acbb0e132b.png
new file mode 100644
index 0000000..e3176f3
Binary files /dev/null and b/textures/ai/0000000070b572acbb0e132b.png differ
diff --git a/textures/ai/0000000071a1200c0d43c9e3.png b/textures/ai/0000000071a1200c0d43c9e3.png
new file mode 100644
index 0000000..ade77ac
Binary files /dev/null and b/textures/ai/0000000071a1200c0d43c9e3.png differ
diff --git a/textures/ai/0000000071e1c0ede0af4289.png b/textures/ai/0000000071e1c0ede0af4289.png
new file mode 100644
index 0000000..81cc651
Binary files /dev/null and b/textures/ai/0000000071e1c0ede0af4289.png differ
diff --git a/textures/ai/0000000071fd8307d122ddaa.png b/textures/ai/0000000071fd8307d122ddaa.png
new file mode 100644
index 0000000..57e0904
Binary files /dev/null and b/textures/ai/0000000071fd8307d122ddaa.png differ
diff --git a/textures/ai/00000000720d621ec80965d9.png b/textures/ai/00000000720d621ec80965d9.png
new file mode 100644
index 0000000..617c740
Binary files /dev/null and b/textures/ai/00000000720d621ec80965d9.png differ
diff --git a/textures/ai/00000000724e59a50bc321c2.png b/textures/ai/00000000724e59a50bc321c2.png
new file mode 100644
index 0000000..e54a57a
Binary files /dev/null and b/textures/ai/00000000724e59a50bc321c2.png differ
diff --git a/textures/ai/0000000072e7e1b13d3d90f9.png b/textures/ai/0000000072e7e1b13d3d90f9.png
new file mode 100644
index 0000000..d0f5f4d
Binary files /dev/null and b/textures/ai/0000000072e7e1b13d3d90f9.png differ
diff --git a/textures/ai/0000000073486c292692be4d.png b/textures/ai/0000000073486c292692be4d.png
new file mode 100644
index 0000000..895f885
Binary files /dev/null and b/textures/ai/0000000073486c292692be4d.png differ
diff --git a/textures/ai/0000000073f2f771ccfe34d5.png b/textures/ai/0000000073f2f771ccfe34d5.png
new file mode 100644
index 0000000..ae86de7
Binary files /dev/null and b/textures/ai/0000000073f2f771ccfe34d5.png differ
diff --git a/textures/ai/000000007427f770a65809db.png b/textures/ai/000000007427f770a65809db.png
new file mode 100644
index 0000000..ae201e6
Binary files /dev/null and b/textures/ai/000000007427f770a65809db.png differ
diff --git a/textures/ai/000000007484ab6d2d5f2883.png b/textures/ai/000000007484ab6d2d5f2883.png
new file mode 100644
index 0000000..8817668
Binary files /dev/null and b/textures/ai/000000007484ab6d2d5f2883.png differ
diff --git a/textures/ai/000000007602f52e7a6990d4.png b/textures/ai/000000007602f52e7a6990d4.png
new file mode 100644
index 0000000..46d2b6d
Binary files /dev/null and b/textures/ai/000000007602f52e7a6990d4.png differ
diff --git a/textures/ai/000000007778cd0e65636f30.png b/textures/ai/000000007778cd0e65636f30.png
new file mode 100644
index 0000000..6b3dca6
Binary files /dev/null and b/textures/ai/000000007778cd0e65636f30.png differ
diff --git a/textures/ai/0000000077b9b304f3cf7ae5.png b/textures/ai/0000000077b9b304f3cf7ae5.png
new file mode 100644
index 0000000..50aa96e
Binary files /dev/null and b/textures/ai/0000000077b9b304f3cf7ae5.png differ
diff --git a/textures/ai/000000007841d627df1b8f9a.png b/textures/ai/000000007841d627df1b8f9a.png
new file mode 100644
index 0000000..6da1292
Binary files /dev/null and b/textures/ai/000000007841d627df1b8f9a.png differ
diff --git a/textures/ai/00000000787b0dc2da961aaf.png b/textures/ai/00000000787b0dc2da961aaf.png
new file mode 100644
index 0000000..08d6963
Binary files /dev/null and b/textures/ai/00000000787b0dc2da961aaf.png differ
diff --git a/textures/ai/0000000079b5581d9573d42c.png b/textures/ai/0000000079b5581d9573d42c.png
new file mode 100644
index 0000000..b0bcdee
Binary files /dev/null and b/textures/ai/0000000079b5581d9573d42c.png differ
diff --git a/textures/ai/000000007ad9b99e6315a18a.png b/textures/ai/000000007ad9b99e6315a18a.png
new file mode 100644
index 0000000..913b7d5
Binary files /dev/null and b/textures/ai/000000007ad9b99e6315a18a.png differ
diff --git a/textures/ai/000000007bd7fba4493c28dc.png b/textures/ai/000000007bd7fba4493c28dc.png
new file mode 100644
index 0000000..87ce250
Binary files /dev/null and b/textures/ai/000000007bd7fba4493c28dc.png differ
diff --git a/textures/ai/000000007c210573db67b833.png b/textures/ai/000000007c210573db67b833.png
new file mode 100644
index 0000000..8860adc
Binary files /dev/null and b/textures/ai/000000007c210573db67b833.png differ
diff --git a/textures/ai/000000007c69cf3646e21d9a.png b/textures/ai/000000007c69cf3646e21d9a.png
new file mode 100644
index 0000000..2b96d1f
Binary files /dev/null and b/textures/ai/000000007c69cf3646e21d9a.png differ
diff --git a/textures/ai/000000007cd4cf87ca0a82f2.png b/textures/ai/000000007cd4cf87ca0a82f2.png
new file mode 100644
index 0000000..9ac7dd0
Binary files /dev/null and b/textures/ai/000000007cd4cf87ca0a82f2.png differ
diff --git a/textures/ai/000000007cec5de5bf3b9130.png b/textures/ai/000000007cec5de5bf3b9130.png
new file mode 100644
index 0000000..4b32876
Binary files /dev/null and b/textures/ai/000000007cec5de5bf3b9130.png differ
diff --git a/textures/ai/000000007d03e6f4ab02d846.png b/textures/ai/000000007d03e6f4ab02d846.png
new file mode 100644
index 0000000..1b4e15c
Binary files /dev/null and b/textures/ai/000000007d03e6f4ab02d846.png differ
diff --git a/textures/ai/000000007d56d6b6422ef5f3.png b/textures/ai/000000007d56d6b6422ef5f3.png
new file mode 100644
index 0000000..73d659e
Binary files /dev/null and b/textures/ai/000000007d56d6b6422ef5f3.png differ
diff --git a/textures/ai/000000007e293121ce37467e.png b/textures/ai/000000007e293121ce37467e.png
new file mode 100644
index 0000000..48b8e40
Binary files /dev/null and b/textures/ai/000000007e293121ce37467e.png differ
diff --git a/textures/ai/000000007e32f188fb22d26e.png b/textures/ai/000000007e32f188fb22d26e.png
new file mode 100644
index 0000000..3e9ea5e
Binary files /dev/null and b/textures/ai/000000007e32f188fb22d26e.png differ
diff --git a/textures/ai/000000007e3cb2b6d462e10f.png b/textures/ai/000000007e3cb2b6d462e10f.png
new file mode 100644
index 0000000..c47d53a
Binary files /dev/null and b/textures/ai/000000007e3cb2b6d462e10f.png differ
diff --git a/textures/ai/000000007f939b25125787cc.png b/textures/ai/000000007f939b25125787cc.png
new file mode 100644
index 0000000..b9c72f1
Binary files /dev/null and b/textures/ai/000000007f939b25125787cc.png differ
diff --git a/textures/ai/000000007fad287f3bfae2c5.png b/textures/ai/000000007fad287f3bfae2c5.png
new file mode 100644
index 0000000..5e298ed
Binary files /dev/null and b/textures/ai/000000007fad287f3bfae2c5.png differ
diff --git a/textures/ai/00000000802fa2106bd6a133.png b/textures/ai/00000000802fa2106bd6a133.png
new file mode 100644
index 0000000..05d491c
Binary files /dev/null and b/textures/ai/00000000802fa2106bd6a133.png differ
diff --git a/textures/ai/000000008109e2a832d1b3fc.png b/textures/ai/000000008109e2a832d1b3fc.png
new file mode 100644
index 0000000..74ed60d
Binary files /dev/null and b/textures/ai/000000008109e2a832d1b3fc.png differ
diff --git a/textures/ai/00000000810f1e548dd54f8c.png b/textures/ai/00000000810f1e548dd54f8c.png
new file mode 100644
index 0000000..a649678
Binary files /dev/null and b/textures/ai/00000000810f1e548dd54f8c.png differ
diff --git a/textures/ai/00000000812628d3e12c5b7c.png b/textures/ai/00000000812628d3e12c5b7c.png
new file mode 100644
index 0000000..74f8097
Binary files /dev/null and b/textures/ai/00000000812628d3e12c5b7c.png differ
diff --git a/textures/ai/00000000818c900965dbd76e.png b/textures/ai/00000000818c900965dbd76e.png
new file mode 100644
index 0000000..e9139b2
Binary files /dev/null and b/textures/ai/00000000818c900965dbd76e.png differ
diff --git a/textures/ai/0000000082179f059008767f.png b/textures/ai/0000000082179f059008767f.png
new file mode 100644
index 0000000..f39e5a9
Binary files /dev/null and b/textures/ai/0000000082179f059008767f.png differ
diff --git a/textures/ai/000000008265708d50f00fe4.png b/textures/ai/000000008265708d50f00fe4.png
new file mode 100644
index 0000000..3f2d8bf
Binary files /dev/null and b/textures/ai/000000008265708d50f00fe4.png differ
diff --git a/textures/ai/0000000085962d2d8f02ca47.png b/textures/ai/0000000085962d2d8f02ca47.png
new file mode 100644
index 0000000..0291af0
Binary files /dev/null and b/textures/ai/0000000085962d2d8f02ca47.png differ
diff --git a/textures/ai/0000000085b181cac0c14d49.png b/textures/ai/0000000085b181cac0c14d49.png
new file mode 100644
index 0000000..cc20e87
Binary files /dev/null and b/textures/ai/0000000085b181cac0c14d49.png differ
diff --git a/textures/ai/0000000085b6ce9cc84967a8.png b/textures/ai/0000000085b6ce9cc84967a8.png
new file mode 100644
index 0000000..73a7648
Binary files /dev/null and b/textures/ai/0000000085b6ce9cc84967a8.png differ
diff --git a/textures/ai/0000000085cdd5d977bbc4ff.png b/textures/ai/0000000085cdd5d977bbc4ff.png
new file mode 100644
index 0000000..98f462a
Binary files /dev/null and b/textures/ai/0000000085cdd5d977bbc4ff.png differ
diff --git a/textures/ai/0000000085f2d56e2063fe00.png b/textures/ai/0000000085f2d56e2063fe00.png
new file mode 100644
index 0000000..701a4c9
Binary files /dev/null and b/textures/ai/0000000085f2d56e2063fe00.png differ
diff --git a/textures/ai/000000008614a51d1aa857c8.png b/textures/ai/000000008614a51d1aa857c8.png
new file mode 100644
index 0000000..b1e203f
Binary files /dev/null and b/textures/ai/000000008614a51d1aa857c8.png differ
diff --git a/textures/ai/000000008731701306f9d3c1.png b/textures/ai/000000008731701306f9d3c1.png
new file mode 100644
index 0000000..05b5693
Binary files /dev/null and b/textures/ai/000000008731701306f9d3c1.png differ
diff --git a/textures/ai/0000000087c4189b7513ed9c.png b/textures/ai/0000000087c4189b7513ed9c.png
new file mode 100644
index 0000000..ff41d43
Binary files /dev/null and b/textures/ai/0000000087c4189b7513ed9c.png differ
diff --git a/textures/ai/0000000087c9a2ceca9693c1.png b/textures/ai/0000000087c9a2ceca9693c1.png
new file mode 100644
index 0000000..093f998
Binary files /dev/null and b/textures/ai/0000000087c9a2ceca9693c1.png differ
diff --git a/textures/ai/0000000087e1d5e61f650ca6.png b/textures/ai/0000000087e1d5e61f650ca6.png
new file mode 100644
index 0000000..7150e3c
Binary files /dev/null and b/textures/ai/0000000087e1d5e61f650ca6.png differ
diff --git a/textures/ai/0000000087f343bd98babb90.png b/textures/ai/0000000087f343bd98babb90.png
new file mode 100644
index 0000000..b4f6090
Binary files /dev/null and b/textures/ai/0000000087f343bd98babb90.png differ
diff --git a/textures/ai/000000008bd70fc9a08daa51.png b/textures/ai/000000008bd70fc9a08daa51.png
new file mode 100644
index 0000000..761133d
Binary files /dev/null and b/textures/ai/000000008bd70fc9a08daa51.png differ
diff --git a/textures/ai/000000008cb0e1bff3bea257.png b/textures/ai/000000008cb0e1bff3bea257.png
new file mode 100644
index 0000000..ba02d7d
Binary files /dev/null and b/textures/ai/000000008cb0e1bff3bea257.png differ
diff --git a/textures/ai/000000008fb5249ac0d5a766.png b/textures/ai/000000008fb5249ac0d5a766.png
new file mode 100644
index 0000000..7b45bbe
Binary files /dev/null and b/textures/ai/000000008fb5249ac0d5a766.png differ
diff --git a/textures/ai/00000000900d8e2e63ecf1c2.png b/textures/ai/00000000900d8e2e63ecf1c2.png
new file mode 100644
index 0000000..8d41be4
Binary files /dev/null and b/textures/ai/00000000900d8e2e63ecf1c2.png differ
diff --git a/textures/ai/00000000908b1276ef688760.png b/textures/ai/00000000908b1276ef688760.png
new file mode 100644
index 0000000..e236e80
Binary files /dev/null and b/textures/ai/00000000908b1276ef688760.png differ
diff --git a/textures/ai/000000009238db65268fca71.png b/textures/ai/000000009238db65268fca71.png
new file mode 100644
index 0000000..3c51d69
Binary files /dev/null and b/textures/ai/000000009238db65268fca71.png differ
diff --git a/textures/ai/000000009299ff011016ecef.png b/textures/ai/000000009299ff011016ecef.png
new file mode 100644
index 0000000..1e66b5e
Binary files /dev/null and b/textures/ai/000000009299ff011016ecef.png differ
diff --git a/textures/ai/0000000093b7ae5319a93f90.png b/textures/ai/0000000093b7ae5319a93f90.png
new file mode 100644
index 0000000..93e6b27
Binary files /dev/null and b/textures/ai/0000000093b7ae5319a93f90.png differ
diff --git a/textures/ai/0000000094892a674972ab19.png b/textures/ai/0000000094892a674972ab19.png
new file mode 100644
index 0000000..b44e0a8
Binary files /dev/null and b/textures/ai/0000000094892a674972ab19.png differ
diff --git a/textures/ai/0000000094a998579c22e17e.png b/textures/ai/0000000094a998579c22e17e.png
new file mode 100644
index 0000000..7ebfef1
Binary files /dev/null and b/textures/ai/0000000094a998579c22e17e.png differ
diff --git a/textures/ai/0000000094b210b6fa482992.png b/textures/ai/0000000094b210b6fa482992.png
new file mode 100644
index 0000000..5dd87aa
Binary files /dev/null and b/textures/ai/0000000094b210b6fa482992.png differ
diff --git a/textures/ai/0000000094f166664ff4a5e4.png b/textures/ai/0000000094f166664ff4a5e4.png
new file mode 100644
index 0000000..03f4332
Binary files /dev/null and b/textures/ai/0000000094f166664ff4a5e4.png differ
diff --git a/textures/ai/0000000094f4438b015e57ef.png b/textures/ai/0000000094f4438b015e57ef.png
new file mode 100644
index 0000000..dd050a3
Binary files /dev/null and b/textures/ai/0000000094f4438b015e57ef.png differ
diff --git a/textures/ai/00000000950d108572c7b7e1.png b/textures/ai/00000000950d108572c7b7e1.png
new file mode 100644
index 0000000..4b70b7f
Binary files /dev/null and b/textures/ai/00000000950d108572c7b7e1.png differ
diff --git a/textures/ai/00000000950f3488abb49d1a.png b/textures/ai/00000000950f3488abb49d1a.png
new file mode 100644
index 0000000..958fc28
Binary files /dev/null and b/textures/ai/00000000950f3488abb49d1a.png differ
diff --git a/textures/ai/00000000955571f3c1ec9a78.png b/textures/ai/00000000955571f3c1ec9a78.png
new file mode 100644
index 0000000..fc7cf1e
Binary files /dev/null and b/textures/ai/00000000955571f3c1ec9a78.png differ
diff --git a/textures/ai/00000000955b93aff92c4d9b.png b/textures/ai/00000000955b93aff92c4d9b.png
new file mode 100644
index 0000000..c319f4a
Binary files /dev/null and b/textures/ai/00000000955b93aff92c4d9b.png differ
diff --git a/textures/ai/0000000095adb5ac23d23683.png b/textures/ai/0000000095adb5ac23d23683.png
new file mode 100644
index 0000000..cd14faf
Binary files /dev/null and b/textures/ai/0000000095adb5ac23d23683.png differ
diff --git a/textures/ai/0000000095d8e71dc475789a.png b/textures/ai/0000000095d8e71dc475789a.png
new file mode 100644
index 0000000..7bbabf9
Binary files /dev/null and b/textures/ai/0000000095d8e71dc475789a.png differ
diff --git a/textures/ai/00000000961eedbc291105db.png b/textures/ai/00000000961eedbc291105db.png
new file mode 100644
index 0000000..f2ddf6e
Binary files /dev/null and b/textures/ai/00000000961eedbc291105db.png differ
diff --git a/textures/ai/000000009633f07c0932ef4d.png b/textures/ai/000000009633f07c0932ef4d.png
new file mode 100644
index 0000000..fdfdc69
Binary files /dev/null and b/textures/ai/000000009633f07c0932ef4d.png differ
diff --git a/textures/ai/00000000964bb186f042014d.png b/textures/ai/00000000964bb186f042014d.png
new file mode 100644
index 0000000..634e293
Binary files /dev/null and b/textures/ai/00000000964bb186f042014d.png differ
diff --git a/textures/ai/000000009686b158c271ffbe.png b/textures/ai/000000009686b158c271ffbe.png
new file mode 100644
index 0000000..1e34fc8
Binary files /dev/null and b/textures/ai/000000009686b158c271ffbe.png differ
diff --git a/textures/ai/0000000096b5cdfe4d0829ac.png b/textures/ai/0000000096b5cdfe4d0829ac.png
new file mode 100644
index 0000000..08b3981
Binary files /dev/null and b/textures/ai/0000000096b5cdfe4d0829ac.png differ
diff --git a/textures/ai/0000000096df35a9d10a6f31.png b/textures/ai/0000000096df35a9d10a6f31.png
new file mode 100644
index 0000000..12fd3c2
Binary files /dev/null and b/textures/ai/0000000096df35a9d10a6f31.png differ
diff --git a/textures/ai/0000000096e59bcf247670b9.png b/textures/ai/0000000096e59bcf247670b9.png
new file mode 100644
index 0000000..7a0c158
Binary files /dev/null and b/textures/ai/0000000096e59bcf247670b9.png differ
diff --git a/textures/ai/000000009707dce79860657f.png b/textures/ai/000000009707dce79860657f.png
new file mode 100644
index 0000000..1713f0f
Binary files /dev/null and b/textures/ai/000000009707dce79860657f.png differ
diff --git a/textures/ai/0000000097a6245e2dd24d53.png b/textures/ai/0000000097a6245e2dd24d53.png
new file mode 100644
index 0000000..a45e3a9
Binary files /dev/null and b/textures/ai/0000000097a6245e2dd24d53.png differ
diff --git a/textures/ai/0000000097d52b0878f6abdd.png b/textures/ai/0000000097d52b0878f6abdd.png
new file mode 100644
index 0000000..c84d3f0
Binary files /dev/null and b/textures/ai/0000000097d52b0878f6abdd.png differ
diff --git a/textures/ai/000000009919c3eed122ddaa.png b/textures/ai/000000009919c3eed122ddaa.png
new file mode 100644
index 0000000..160a61b
Binary files /dev/null and b/textures/ai/000000009919c3eed122ddaa.png differ
diff --git a/textures/ai/000000009974bd708f02f500.png b/textures/ai/000000009974bd708f02f500.png
new file mode 100644
index 0000000..2ac13bd
Binary files /dev/null and b/textures/ai/000000009974bd708f02f500.png differ
diff --git a/textures/ai/0000000099a647b7e66a3a8b.png b/textures/ai/0000000099a647b7e66a3a8b.png
new file mode 100644
index 0000000..1b1979c
Binary files /dev/null and b/textures/ai/0000000099a647b7e66a3a8b.png differ
diff --git a/textures/ai/0000000099c5faa3def0aabb.png b/textures/ai/0000000099c5faa3def0aabb.png
new file mode 100644
index 0000000..07b11b6
Binary files /dev/null and b/textures/ai/0000000099c5faa3def0aabb.png differ
diff --git a/textures/ai/0000000099eb768205870b73.png b/textures/ai/0000000099eb768205870b73.png
new file mode 100644
index 0000000..a81250f
Binary files /dev/null and b/textures/ai/0000000099eb768205870b73.png differ
diff --git a/textures/ai/0000000099ebfc8dd776406a.png b/textures/ai/0000000099ebfc8dd776406a.png
new file mode 100644
index 0000000..c0c96eb
Binary files /dev/null and b/textures/ai/0000000099ebfc8dd776406a.png differ
diff --git a/textures/ai/000000009a03d0420545ec80.png b/textures/ai/000000009a03d0420545ec80.png
new file mode 100644
index 0000000..fcec860
Binary files /dev/null and b/textures/ai/000000009a03d0420545ec80.png differ
diff --git a/textures/ai/000000009a27dfd745f15f7f.png b/textures/ai/000000009a27dfd745f15f7f.png
new file mode 100644
index 0000000..a2dfd4b
Binary files /dev/null and b/textures/ai/000000009a27dfd745f15f7f.png differ
diff --git a/textures/ai/000000009a5f2524f8519b21.png b/textures/ai/000000009a5f2524f8519b21.png
new file mode 100644
index 0000000..1232dae
Binary files /dev/null and b/textures/ai/000000009a5f2524f8519b21.png differ
diff --git a/textures/ai/000000009aaf1750c8ce60e9.png b/textures/ai/000000009aaf1750c8ce60e9.png
new file mode 100644
index 0000000..124a5f4
Binary files /dev/null and b/textures/ai/000000009aaf1750c8ce60e9.png differ
diff --git a/textures/ai/000000009b1822f9cd82ccad.png b/textures/ai/000000009b1822f9cd82ccad.png
new file mode 100644
index 0000000..3658d47
Binary files /dev/null and b/textures/ai/000000009b1822f9cd82ccad.png differ
diff --git a/textures/ai/000000009b1e327db8dafead.png b/textures/ai/000000009b1e327db8dafead.png
new file mode 100644
index 0000000..4fb1653
Binary files /dev/null and b/textures/ai/000000009b1e327db8dafead.png differ
diff --git a/textures/ai/000000009bc2a25c9b8f2643.png b/textures/ai/000000009bc2a25c9b8f2643.png
new file mode 100644
index 0000000..40b5458
Binary files /dev/null and b/textures/ai/000000009bc2a25c9b8f2643.png differ
diff --git a/textures/ai/000000009be760a86da818da.png b/textures/ai/000000009be760a86da818da.png
new file mode 100644
index 0000000..d78c4fa
Binary files /dev/null and b/textures/ai/000000009be760a86da818da.png differ
diff --git a/textures/ai/000000009c105294a47fb6e7.png b/textures/ai/000000009c105294a47fb6e7.png
new file mode 100644
index 0000000..e03f609
Binary files /dev/null and b/textures/ai/000000009c105294a47fb6e7.png differ
diff --git a/textures/ai/000000009c6f6c21813c537d.png b/textures/ai/000000009c6f6c21813c537d.png
new file mode 100644
index 0000000..4d0e4a2
Binary files /dev/null and b/textures/ai/000000009c6f6c21813c537d.png differ
diff --git a/textures/ai/000000009cca6d3b900d7d22.png b/textures/ai/000000009cca6d3b900d7d22.png
new file mode 100644
index 0000000..338c460
Binary files /dev/null and b/textures/ai/000000009cca6d3b900d7d22.png differ
diff --git a/textures/ai/000000009d1ad40ac058edc2.png b/textures/ai/000000009d1ad40ac058edc2.png
new file mode 100644
index 0000000..0341af4
Binary files /dev/null and b/textures/ai/000000009d1ad40ac058edc2.png differ
diff --git a/textures/ai/000000009d4cb68f1c16605f.png b/textures/ai/000000009d4cb68f1c16605f.png
new file mode 100644
index 0000000..24d6428
Binary files /dev/null and b/textures/ai/000000009d4cb68f1c16605f.png differ
diff --git a/textures/ai/000000009e645e838d7559fa.png b/textures/ai/000000009e645e838d7559fa.png
new file mode 100644
index 0000000..3f14b98
Binary files /dev/null and b/textures/ai/000000009e645e838d7559fa.png differ
diff --git a/textures/ai/000000009f2edecf530e2787.png b/textures/ai/000000009f2edecf530e2787.png
new file mode 100644
index 0000000..a997378
Binary files /dev/null and b/textures/ai/000000009f2edecf530e2787.png differ
diff --git a/textures/ai/000000009f3c6ba7cbaab9d3.png b/textures/ai/000000009f3c6ba7cbaab9d3.png
new file mode 100644
index 0000000..de42bc5
Binary files /dev/null and b/textures/ai/000000009f3c6ba7cbaab9d3.png differ
diff --git a/textures/ai/000000009f9bad9f501302ce.png b/textures/ai/000000009f9bad9f501302ce.png
new file mode 100644
index 0000000..e84f4a5
Binary files /dev/null and b/textures/ai/000000009f9bad9f501302ce.png differ
diff --git a/textures/ai/00000000a0b9fca0e8cb1a9e.png b/textures/ai/00000000a0b9fca0e8cb1a9e.png
new file mode 100644
index 0000000..eb41bc2
Binary files /dev/null and b/textures/ai/00000000a0b9fca0e8cb1a9e.png differ
diff --git a/textures/ai/00000000a13b781cbd68d0ec.png b/textures/ai/00000000a13b781cbd68d0ec.png
new file mode 100644
index 0000000..36178f0
Binary files /dev/null and b/textures/ai/00000000a13b781cbd68d0ec.png differ
diff --git a/textures/ai/00000000a2438bcc64069a35.png b/textures/ai/00000000a2438bcc64069a35.png
new file mode 100644
index 0000000..8816d29
Binary files /dev/null and b/textures/ai/00000000a2438bcc64069a35.png differ
diff --git a/textures/ai/00000000a24bf9e212531fee.png b/textures/ai/00000000a24bf9e212531fee.png
new file mode 100644
index 0000000..b55f82b
Binary files /dev/null and b/textures/ai/00000000a24bf9e212531fee.png differ
diff --git a/textures/ai/00000000a2f24ea88597a2ab.png b/textures/ai/00000000a2f24ea88597a2ab.png
new file mode 100644
index 0000000..27dc87c
Binary files /dev/null and b/textures/ai/00000000a2f24ea88597a2ab.png differ
diff --git a/textures/ai/00000000a2f74a2314287e8f.png b/textures/ai/00000000a2f74a2314287e8f.png
new file mode 100644
index 0000000..af25ed3
Binary files /dev/null and b/textures/ai/00000000a2f74a2314287e8f.png differ
diff --git a/textures/ai/00000000a3930fe0cbc52ce7.png b/textures/ai/00000000a3930fe0cbc52ce7.png
new file mode 100644
index 0000000..40b6cf8
Binary files /dev/null and b/textures/ai/00000000a3930fe0cbc52ce7.png differ
diff --git a/textures/ai/00000000a3bd321cc1657ef7.png b/textures/ai/00000000a3bd321cc1657ef7.png
new file mode 100644
index 0000000..b35ea68
Binary files /dev/null and b/textures/ai/00000000a3bd321cc1657ef7.png differ
diff --git a/textures/ai/00000000a3d7118aac090c40.png b/textures/ai/00000000a3d7118aac090c40.png
new file mode 100644
index 0000000..a1ace41
Binary files /dev/null and b/textures/ai/00000000a3d7118aac090c40.png differ
diff --git a/textures/ai/00000000a3feb966906f5d2c.png b/textures/ai/00000000a3feb966906f5d2c.png
new file mode 100644
index 0000000..2003ac5
Binary files /dev/null and b/textures/ai/00000000a3feb966906f5d2c.png differ
diff --git a/textures/ai/00000000a4e87427bc311df4.png b/textures/ai/00000000a4e87427bc311df4.png
new file mode 100644
index 0000000..8aa39d1
Binary files /dev/null and b/textures/ai/00000000a4e87427bc311df4.png differ
diff --git a/textures/ai/00000000a652f0609d75574c.png b/textures/ai/00000000a652f0609d75574c.png
new file mode 100644
index 0000000..fb5422e
Binary files /dev/null and b/textures/ai/00000000a652f0609d75574c.png differ
diff --git a/textures/ai/00000000a6e9ff784f21abe1.png b/textures/ai/00000000a6e9ff784f21abe1.png
new file mode 100644
index 0000000..1f2cc93
Binary files /dev/null and b/textures/ai/00000000a6e9ff784f21abe1.png differ
diff --git a/textures/ai/00000000a6ffedddd122ddaa.png b/textures/ai/00000000a6ffedddd122ddaa.png
new file mode 100644
index 0000000..42c2e35
Binary files /dev/null and b/textures/ai/00000000a6ffedddd122ddaa.png differ
diff --git a/textures/ai/00000000a712418b5e92fb67.png b/textures/ai/00000000a712418b5e92fb67.png
new file mode 100644
index 0000000..60240e5
Binary files /dev/null and b/textures/ai/00000000a712418b5e92fb67.png differ
diff --git a/textures/ai/00000000a93e837b50f82427.png b/textures/ai/00000000a93e837b50f82427.png
new file mode 100644
index 0000000..0e2f502
Binary files /dev/null and b/textures/ai/00000000a93e837b50f82427.png differ
diff --git a/textures/ai/00000000a997cfdb3c455271.png b/textures/ai/00000000a997cfdb3c455271.png
new file mode 100644
index 0000000..ffaaf65
Binary files /dev/null and b/textures/ai/00000000a997cfdb3c455271.png differ
diff --git a/textures/ai/00000000aa1bb46949e88a74.png b/textures/ai/00000000aa1bb46949e88a74.png
new file mode 100644
index 0000000..409a61c
Binary files /dev/null and b/textures/ai/00000000aa1bb46949e88a74.png differ
diff --git a/textures/ai/00000000ab5a30e240bbb7e7.png b/textures/ai/00000000ab5a30e240bbb7e7.png
new file mode 100644
index 0000000..2229508
Binary files /dev/null and b/textures/ai/00000000ab5a30e240bbb7e7.png differ
diff --git a/textures/ai/00000000ab748517eecbbe44.png b/textures/ai/00000000ab748517eecbbe44.png
new file mode 100644
index 0000000..c9491b9
Binary files /dev/null and b/textures/ai/00000000ab748517eecbbe44.png differ
diff --git a/textures/ai/00000000acd9b986c041a006.png b/textures/ai/00000000acd9b986c041a006.png
new file mode 100644
index 0000000..3ccbf92
Binary files /dev/null and b/textures/ai/00000000acd9b986c041a006.png differ
diff --git a/textures/ai/00000000ad7d67f4687ee31e.png b/textures/ai/00000000ad7d67f4687ee31e.png
new file mode 100644
index 0000000..1e0825b
Binary files /dev/null and b/textures/ai/00000000ad7d67f4687ee31e.png differ
diff --git a/textures/ai/00000000ad95b55659400b15.png b/textures/ai/00000000ad95b55659400b15.png
new file mode 100644
index 0000000..19c64c0
Binary files /dev/null and b/textures/ai/00000000ad95b55659400b15.png differ
diff --git a/textures/ai/00000000adedd977c4d7cbb7.png b/textures/ai/00000000adedd977c4d7cbb7.png
new file mode 100644
index 0000000..04b5afa
Binary files /dev/null and b/textures/ai/00000000adedd977c4d7cbb7.png differ
diff --git a/textures/ai/00000000ae8095ec2df8a5ae.png b/textures/ai/00000000ae8095ec2df8a5ae.png
new file mode 100644
index 0000000..5987faf
Binary files /dev/null and b/textures/ai/00000000ae8095ec2df8a5ae.png differ
diff --git a/textures/ai/00000000afb59cde34a1e100.png b/textures/ai/00000000afb59cde34a1e100.png
new file mode 100644
index 0000000..c2f4584
Binary files /dev/null and b/textures/ai/00000000afb59cde34a1e100.png differ
diff --git a/textures/ai/00000000b2735af6818d7b79.png b/textures/ai/00000000b2735af6818d7b79.png
new file mode 100644
index 0000000..6de055e
Binary files /dev/null and b/textures/ai/00000000b2735af6818d7b79.png differ
diff --git a/textures/ai/00000000b40f390d42be50a4.png b/textures/ai/00000000b40f390d42be50a4.png
new file mode 100644
index 0000000..0d2a001
Binary files /dev/null and b/textures/ai/00000000b40f390d42be50a4.png differ
diff --git a/textures/ai/00000000b41948657b48738f.png b/textures/ai/00000000b41948657b48738f.png
new file mode 100644
index 0000000..fb47b41
Binary files /dev/null and b/textures/ai/00000000b41948657b48738f.png differ
diff --git a/textures/ai/00000000b566f3e4f60e2145.png b/textures/ai/00000000b566f3e4f60e2145.png
new file mode 100644
index 0000000..ceac905
Binary files /dev/null and b/textures/ai/00000000b566f3e4f60e2145.png differ
diff --git a/textures/ai/00000000b6beb7682dbe4949.png b/textures/ai/00000000b6beb7682dbe4949.png
new file mode 100644
index 0000000..059395b
Binary files /dev/null and b/textures/ai/00000000b6beb7682dbe4949.png differ
diff --git a/textures/ai/00000000b6f2aabf69728b9e.png b/textures/ai/00000000b6f2aabf69728b9e.png
new file mode 100644
index 0000000..9a8f595
Binary files /dev/null and b/textures/ai/00000000b6f2aabf69728b9e.png differ
diff --git a/textures/ai/00000000b70bece446bb55b4.png b/textures/ai/00000000b70bece446bb55b4.png
new file mode 100644
index 0000000..aebc41d
Binary files /dev/null and b/textures/ai/00000000b70bece446bb55b4.png differ
diff --git a/textures/ai/00000000b7bde1f982ddc30a.png b/textures/ai/00000000b7bde1f982ddc30a.png
new file mode 100644
index 0000000..fa53bc0
Binary files /dev/null and b/textures/ai/00000000b7bde1f982ddc30a.png differ
diff --git a/textures/ai/00000000b834f3519b31317f.png b/textures/ai/00000000b834f3519b31317f.png
new file mode 100644
index 0000000..664b93f
Binary files /dev/null and b/textures/ai/00000000b834f3519b31317f.png differ
diff --git a/textures/ai/00000000b9364c655ac61fba.png b/textures/ai/00000000b9364c655ac61fba.png
new file mode 100644
index 0000000..3ca1f55
Binary files /dev/null and b/textures/ai/00000000b9364c655ac61fba.png differ
diff --git a/textures/ai/00000000bb1b46b2fc33e872.png b/textures/ai/00000000bb1b46b2fc33e872.png
new file mode 100644
index 0000000..8e2abd7
Binary files /dev/null and b/textures/ai/00000000bb1b46b2fc33e872.png differ
diff --git a/textures/ai/00000000bb90f77324f9b747.png b/textures/ai/00000000bb90f77324f9b747.png
new file mode 100644
index 0000000..3b5464c
Binary files /dev/null and b/textures/ai/00000000bb90f77324f9b747.png differ
diff --git a/textures/ai/00000000bd51e236ec3d80f3.png b/textures/ai/00000000bd51e236ec3d80f3.png
new file mode 100644
index 0000000..336f5b0
Binary files /dev/null and b/textures/ai/00000000bd51e236ec3d80f3.png differ
diff --git a/textures/ai/00000000bd7e8883f996456e.png b/textures/ai/00000000bd7e8883f996456e.png
new file mode 100644
index 0000000..62f6e78
Binary files /dev/null and b/textures/ai/00000000bd7e8883f996456e.png differ
diff --git a/textures/ai/00000000be01ba7e58aababc.png b/textures/ai/00000000be01ba7e58aababc.png
new file mode 100644
index 0000000..d1d02cd
Binary files /dev/null and b/textures/ai/00000000be01ba7e58aababc.png differ
diff --git a/textures/ai/00000000bf558b0622fb4e28.png b/textures/ai/00000000bf558b0622fb4e28.png
new file mode 100644
index 0000000..20a417c
Binary files /dev/null and b/textures/ai/00000000bf558b0622fb4e28.png differ
diff --git a/textures/ai/00000000bffe1ed525f0d73b.png b/textures/ai/00000000bffe1ed525f0d73b.png
new file mode 100644
index 0000000..2d61c97
Binary files /dev/null and b/textures/ai/00000000bffe1ed525f0d73b.png differ
diff --git a/textures/ai/00000000c0cead2aace29081.png b/textures/ai/00000000c0cead2aace29081.png
new file mode 100644
index 0000000..a91e278
Binary files /dev/null and b/textures/ai/00000000c0cead2aace29081.png differ
diff --git a/textures/ai/00000000c0feb5ea58391238.png b/textures/ai/00000000c0feb5ea58391238.png
new file mode 100644
index 0000000..68f3aa3
Binary files /dev/null and b/textures/ai/00000000c0feb5ea58391238.png differ
diff --git a/textures/ai/00000000c1eea0957af9ea70.png b/textures/ai/00000000c1eea0957af9ea70.png
new file mode 100644
index 0000000..0f99c6b
Binary files /dev/null and b/textures/ai/00000000c1eea0957af9ea70.png differ
diff --git a/textures/ai/00000000c2133582d7928bf5.png b/textures/ai/00000000c2133582d7928bf5.png
new file mode 100644
index 0000000..44a26c6
Binary files /dev/null and b/textures/ai/00000000c2133582d7928bf5.png differ
diff --git a/textures/ai/00000000c242e06560d5ebfb.png b/textures/ai/00000000c242e06560d5ebfb.png
new file mode 100644
index 0000000..03560d9
Binary files /dev/null and b/textures/ai/00000000c242e06560d5ebfb.png differ
diff --git a/textures/ai/00000000c2c3b8a46911eb39.png b/textures/ai/00000000c2c3b8a46911eb39.png
new file mode 100644
index 0000000..bf0dd5d
Binary files /dev/null and b/textures/ai/00000000c2c3b8a46911eb39.png differ
diff --git a/textures/ai/00000000c2d18ecea5abe3bd.png b/textures/ai/00000000c2d18ecea5abe3bd.png
new file mode 100644
index 0000000..9b0fa03
Binary files /dev/null and b/textures/ai/00000000c2d18ecea5abe3bd.png differ
diff --git a/textures/ai/00000000c304029771d6a5d3.png b/textures/ai/00000000c304029771d6a5d3.png
new file mode 100644
index 0000000..0206788
Binary files /dev/null and b/textures/ai/00000000c304029771d6a5d3.png differ
diff --git a/textures/ai/00000000c3ed381a2e590b4a.png b/textures/ai/00000000c3ed381a2e590b4a.png
new file mode 100644
index 0000000..0c9c4f6
Binary files /dev/null and b/textures/ai/00000000c3ed381a2e590b4a.png differ
diff --git a/textures/ai/00000000c45e425d821f1777.png b/textures/ai/00000000c45e425d821f1777.png
new file mode 100644
index 0000000..5dc2dd0
Binary files /dev/null and b/textures/ai/00000000c45e425d821f1777.png differ
diff --git a/textures/ai/00000000c4908f4f30a2d8b3.png b/textures/ai/00000000c4908f4f30a2d8b3.png
new file mode 100644
index 0000000..d08b140
Binary files /dev/null and b/textures/ai/00000000c4908f4f30a2d8b3.png differ
diff --git a/textures/ai/00000000c50b789c31367e33.png b/textures/ai/00000000c50b789c31367e33.png
new file mode 100644
index 0000000..73b085e
Binary files /dev/null and b/textures/ai/00000000c50b789c31367e33.png differ
diff --git a/textures/ai/00000000c535ab8f7b1c6b82.png b/textures/ai/00000000c535ab8f7b1c6b82.png
new file mode 100644
index 0000000..74a0db0
Binary files /dev/null and b/textures/ai/00000000c535ab8f7b1c6b82.png differ
diff --git a/textures/ai/00000000c5e4f4e384c27183.png b/textures/ai/00000000c5e4f4e384c27183.png
new file mode 100644
index 0000000..56cddbf
Binary files /dev/null and b/textures/ai/00000000c5e4f4e384c27183.png differ
diff --git a/textures/ai/00000000c6b6dd9143baed15.png b/textures/ai/00000000c6b6dd9143baed15.png
new file mode 100644
index 0000000..bea8970
Binary files /dev/null and b/textures/ai/00000000c6b6dd9143baed15.png differ
diff --git a/textures/ai/00000000c7162fa991603046.png b/textures/ai/00000000c7162fa991603046.png
new file mode 100644
index 0000000..35be561
Binary files /dev/null and b/textures/ai/00000000c7162fa991603046.png differ
diff --git a/textures/ai/00000000c73b91a182aaab05.png b/textures/ai/00000000c73b91a182aaab05.png
new file mode 100644
index 0000000..b3c45e6
Binary files /dev/null and b/textures/ai/00000000c73b91a182aaab05.png differ
diff --git a/textures/ai/00000000c7e5e3bc90b0a99f.png b/textures/ai/00000000c7e5e3bc90b0a99f.png
new file mode 100644
index 0000000..c5fda3e
Binary files /dev/null and b/textures/ai/00000000c7e5e3bc90b0a99f.png differ
diff --git a/textures/ai/00000000c84ff0ef0f49b48e.png b/textures/ai/00000000c84ff0ef0f49b48e.png
new file mode 100644
index 0000000..7616e50
Binary files /dev/null and b/textures/ai/00000000c84ff0ef0f49b48e.png differ
diff --git a/textures/ai/00000000c863fb3df8d287d8.png b/textures/ai/00000000c863fb3df8d287d8.png
new file mode 100644
index 0000000..7a42d36
Binary files /dev/null and b/textures/ai/00000000c863fb3df8d287d8.png differ
diff --git a/textures/ai/00000000c99da8f2e03603aa.png b/textures/ai/00000000c99da8f2e03603aa.png
new file mode 100644
index 0000000..59326dd
Binary files /dev/null and b/textures/ai/00000000c99da8f2e03603aa.png differ
diff --git a/textures/ai/00000000c9a984280f6e9d80.png b/textures/ai/00000000c9a984280f6e9d80.png
new file mode 100644
index 0000000..241dca0
Binary files /dev/null and b/textures/ai/00000000c9a984280f6e9d80.png differ
diff --git a/textures/ai/00000000cadccd8bf8b55c42.png b/textures/ai/00000000cadccd8bf8b55c42.png
new file mode 100644
index 0000000..1e10b74
Binary files /dev/null and b/textures/ai/00000000cadccd8bf8b55c42.png differ
diff --git a/textures/ai/00000000cae377cc199ff351.png b/textures/ai/00000000cae377cc199ff351.png
new file mode 100644
index 0000000..e1bfd60
Binary files /dev/null and b/textures/ai/00000000cae377cc199ff351.png differ
diff --git a/textures/ai/00000000caf7bcec31b646e2.png b/textures/ai/00000000caf7bcec31b646e2.png
new file mode 100644
index 0000000..7509ae9
Binary files /dev/null and b/textures/ai/00000000caf7bcec31b646e2.png differ
diff --git a/textures/ai/00000000cb71fab3a2ee5e13.png b/textures/ai/00000000cb71fab3a2ee5e13.png
new file mode 100644
index 0000000..711cb48
Binary files /dev/null and b/textures/ai/00000000cb71fab3a2ee5e13.png differ
diff --git a/textures/ai/00000000ccf8edcba48ba9fb.png b/textures/ai/00000000ccf8edcba48ba9fb.png
new file mode 100644
index 0000000..6b4d6f3
Binary files /dev/null and b/textures/ai/00000000ccf8edcba48ba9fb.png differ
diff --git a/textures/ai/00000000cdc9bcd81724bc26.png b/textures/ai/00000000cdc9bcd81724bc26.png
new file mode 100644
index 0000000..6c1f3a1
Binary files /dev/null and b/textures/ai/00000000cdc9bcd81724bc26.png differ
diff --git a/textures/ai/00000000ce579055bb8f0b85.png b/textures/ai/00000000ce579055bb8f0b85.png
new file mode 100644
index 0000000..915b6b1
Binary files /dev/null and b/textures/ai/00000000ce579055bb8f0b85.png differ
diff --git a/textures/ai/00000000cea1edabe5a04e42.png b/textures/ai/00000000cea1edabe5a04e42.png
new file mode 100644
index 0000000..ab06606
Binary files /dev/null and b/textures/ai/00000000cea1edabe5a04e42.png differ
diff --git a/textures/ai/00000000cf4c4c0225ea42dc.png b/textures/ai/00000000cf4c4c0225ea42dc.png
new file mode 100644
index 0000000..1588bd9
Binary files /dev/null and b/textures/ai/00000000cf4c4c0225ea42dc.png differ
diff --git a/textures/ai/00000000cf569f90d2342eb5.png b/textures/ai/00000000cf569f90d2342eb5.png
new file mode 100644
index 0000000..881ca64
Binary files /dev/null and b/textures/ai/00000000cf569f90d2342eb5.png differ
diff --git a/textures/ai/00000000cf9c5c56f8b55c42.png b/textures/ai/00000000cf9c5c56f8b55c42.png
new file mode 100644
index 0000000..5932a6a
Binary files /dev/null and b/textures/ai/00000000cf9c5c56f8b55c42.png differ
diff --git a/textures/ai/00000000d068a06226bb5b9f.png b/textures/ai/00000000d068a06226bb5b9f.png
new file mode 100644
index 0000000..b8eb7e3
Binary files /dev/null and b/textures/ai/00000000d068a06226bb5b9f.png differ
diff --git a/textures/ai/00000000d11bcc3045323b2c.png b/textures/ai/00000000d11bcc3045323b2c.png
new file mode 100644
index 0000000..e93b7c1
Binary files /dev/null and b/textures/ai/00000000d11bcc3045323b2c.png differ
diff --git a/textures/ai/00000000d1b5f3b0eab19740.png b/textures/ai/00000000d1b5f3b0eab19740.png
new file mode 100644
index 0000000..13359cb
Binary files /dev/null and b/textures/ai/00000000d1b5f3b0eab19740.png differ
diff --git a/textures/ai/00000000d228aa7283ac12fa.png b/textures/ai/00000000d228aa7283ac12fa.png
new file mode 100644
index 0000000..b18bfb2
Binary files /dev/null and b/textures/ai/00000000d228aa7283ac12fa.png differ
diff --git a/textures/ai/00000000d28b8a6ca5743569.png b/textures/ai/00000000d28b8a6ca5743569.png
new file mode 100644
index 0000000..595b0b9
Binary files /dev/null and b/textures/ai/00000000d28b8a6ca5743569.png differ
diff --git a/textures/ai/00000000d29b6917506724b7.png b/textures/ai/00000000d29b6917506724b7.png
new file mode 100644
index 0000000..4a2ccb0
Binary files /dev/null and b/textures/ai/00000000d29b6917506724b7.png differ
diff --git a/textures/ai/00000000d349e28fdaed9648.png b/textures/ai/00000000d349e28fdaed9648.png
new file mode 100644
index 0000000..7d003bf
Binary files /dev/null and b/textures/ai/00000000d349e28fdaed9648.png differ
diff --git a/textures/ai/00000000d49bbe515b18e84b.png b/textures/ai/00000000d49bbe515b18e84b.png
new file mode 100644
index 0000000..c87cbb5
Binary files /dev/null and b/textures/ai/00000000d49bbe515b18e84b.png differ
diff --git a/textures/ai/00000000d4b2661aa8416d51.png b/textures/ai/00000000d4b2661aa8416d51.png
new file mode 100644
index 0000000..c5e167e
Binary files /dev/null and b/textures/ai/00000000d4b2661aa8416d51.png differ
diff --git a/textures/ai/00000000d5c960b941a3a013.png b/textures/ai/00000000d5c960b941a3a013.png
new file mode 100644
index 0000000..dae609c
Binary files /dev/null and b/textures/ai/00000000d5c960b941a3a013.png differ
diff --git a/textures/ai/00000000d5fa63f3c4773a46.png b/textures/ai/00000000d5fa63f3c4773a46.png
new file mode 100644
index 0000000..7a22e4d
Binary files /dev/null and b/textures/ai/00000000d5fa63f3c4773a46.png differ
diff --git a/textures/ai/00000000d60747729dc8fba2.png b/textures/ai/00000000d60747729dc8fba2.png
new file mode 100644
index 0000000..570a873
Binary files /dev/null and b/textures/ai/00000000d60747729dc8fba2.png differ
diff --git a/textures/ai/00000000d60abda2498d5953.png b/textures/ai/00000000d60abda2498d5953.png
new file mode 100644
index 0000000..7914b22
Binary files /dev/null and b/textures/ai/00000000d60abda2498d5953.png differ
diff --git a/textures/ai/00000000d74b9b2b3c5ff548.png b/textures/ai/00000000d74b9b2b3c5ff548.png
new file mode 100644
index 0000000..4ec0fe0
Binary files /dev/null and b/textures/ai/00000000d74b9b2b3c5ff548.png differ
diff --git a/textures/ai/00000000d7f22063d1224871.png b/textures/ai/00000000d7f22063d1224871.png
new file mode 100644
index 0000000..978534e
Binary files /dev/null and b/textures/ai/00000000d7f22063d1224871.png differ
diff --git a/textures/ai/00000000d80f435f0abe94c7.png b/textures/ai/00000000d80f435f0abe94c7.png
new file mode 100644
index 0000000..4ac2e47
Binary files /dev/null and b/textures/ai/00000000d80f435f0abe94c7.png differ
diff --git a/textures/ai/00000000d825d37a406402a6.png b/textures/ai/00000000d825d37a406402a6.png
new file mode 100644
index 0000000..41fac7e
Binary files /dev/null and b/textures/ai/00000000d825d37a406402a6.png differ
diff --git a/textures/ai/00000000d976652c8db40b3b.png b/textures/ai/00000000d976652c8db40b3b.png
new file mode 100644
index 0000000..fc3d533
Binary files /dev/null and b/textures/ai/00000000d976652c8db40b3b.png differ
diff --git a/textures/ai/00000000d9a203522c2e6bf7.png b/textures/ai/00000000d9a203522c2e6bf7.png
new file mode 100644
index 0000000..3daf119
Binary files /dev/null and b/textures/ai/00000000d9a203522c2e6bf7.png differ
diff --git a/textures/ai/00000000da17e052abd3bdd8.png b/textures/ai/00000000da17e052abd3bdd8.png
new file mode 100644
index 0000000..26779f1
Binary files /dev/null and b/textures/ai/00000000da17e052abd3bdd8.png differ
diff --git a/textures/ai/00000000dad42d5309a564bc.png b/textures/ai/00000000dad42d5309a564bc.png
new file mode 100644
index 0000000..5bc967d
Binary files /dev/null and b/textures/ai/00000000dad42d5309a564bc.png differ
diff --git a/textures/ai/00000000daf231d0513ab8bb.png b/textures/ai/00000000daf231d0513ab8bb.png
new file mode 100644
index 0000000..572f0f2
Binary files /dev/null and b/textures/ai/00000000daf231d0513ab8bb.png differ
diff --git a/textures/ai/00000000dc63396a2ca3ceac.png b/textures/ai/00000000dc63396a2ca3ceac.png
new file mode 100644
index 0000000..58d3025
Binary files /dev/null and b/textures/ai/00000000dc63396a2ca3ceac.png differ
diff --git a/textures/ai/00000000dc72bd717ad20573.png b/textures/ai/00000000dc72bd717ad20573.png
new file mode 100644
index 0000000..85f8392
Binary files /dev/null and b/textures/ai/00000000dc72bd717ad20573.png differ
diff --git a/textures/ai/00000000dc79a072415cd90d.png b/textures/ai/00000000dc79a072415cd90d.png
new file mode 100644
index 0000000..f90ded7
Binary files /dev/null and b/textures/ai/00000000dc79a072415cd90d.png differ
diff --git a/textures/ai/00000000dccc0c33827e53e9.png b/textures/ai/00000000dccc0c33827e53e9.png
new file mode 100644
index 0000000..ff2902e
Binary files /dev/null and b/textures/ai/00000000dccc0c33827e53e9.png differ
diff --git a/textures/ai/00000000dcf8c92abac43890.png b/textures/ai/00000000dcf8c92abac43890.png
new file mode 100644
index 0000000..781ce12
Binary files /dev/null and b/textures/ai/00000000dcf8c92abac43890.png differ
diff --git a/textures/ai/00000000dd8422d9292e19d1.png b/textures/ai/00000000dd8422d9292e19d1.png
new file mode 100644
index 0000000..fb18927
Binary files /dev/null and b/textures/ai/00000000dd8422d9292e19d1.png differ
diff --git a/textures/ai/00000000dd8f5de075a4cf5b.png b/textures/ai/00000000dd8f5de075a4cf5b.png
new file mode 100644
index 0000000..6a36e24
Binary files /dev/null and b/textures/ai/00000000dd8f5de075a4cf5b.png differ
diff --git a/textures/ai/00000000de5d63d9b35b8a5a.png b/textures/ai/00000000de5d63d9b35b8a5a.png
new file mode 100644
index 0000000..68a3e17
Binary files /dev/null and b/textures/ai/00000000de5d63d9b35b8a5a.png differ
diff --git a/textures/ai/00000000dee8157cc44d81d7.png b/textures/ai/00000000dee8157cc44d81d7.png
new file mode 100644
index 0000000..a892772
Binary files /dev/null and b/textures/ai/00000000dee8157cc44d81d7.png differ
diff --git a/textures/ai/00000000df0d5cf286a680f2.png b/textures/ai/00000000df0d5cf286a680f2.png
new file mode 100644
index 0000000..a30328d
Binary files /dev/null and b/textures/ai/00000000df0d5cf286a680f2.png differ
diff --git a/textures/ai/00000000dfb038e980488dde.png b/textures/ai/00000000dfb038e980488dde.png
new file mode 100644
index 0000000..bbf01ac
Binary files /dev/null and b/textures/ai/00000000dfb038e980488dde.png differ
diff --git a/textures/ai/00000000dfd7191be2513223.png b/textures/ai/00000000dfd7191be2513223.png
new file mode 100644
index 0000000..6d3d765
Binary files /dev/null and b/textures/ai/00000000dfd7191be2513223.png differ
diff --git a/textures/ai/00000000e0e171a1c19de9e2.png b/textures/ai/00000000e0e171a1c19de9e2.png
new file mode 100644
index 0000000..f8884ac
Binary files /dev/null and b/textures/ai/00000000e0e171a1c19de9e2.png differ
diff --git a/textures/ai/00000000e125786b09cf7487.png b/textures/ai/00000000e125786b09cf7487.png
new file mode 100644
index 0000000..d3768f8
Binary files /dev/null and b/textures/ai/00000000e125786b09cf7487.png differ
diff --git a/textures/ai/00000000e34c57a7666748df.png b/textures/ai/00000000e34c57a7666748df.png
new file mode 100644
index 0000000..a46c786
Binary files /dev/null and b/textures/ai/00000000e34c57a7666748df.png differ
diff --git a/textures/ai/00000000e53870f98b87929e.png b/textures/ai/00000000e53870f98b87929e.png
new file mode 100644
index 0000000..d32a37a
Binary files /dev/null and b/textures/ai/00000000e53870f98b87929e.png differ
diff --git a/textures/ai/00000000e5e0aca1f1f2dd06.png b/textures/ai/00000000e5e0aca1f1f2dd06.png
new file mode 100644
index 0000000..c01f6a6
Binary files /dev/null and b/textures/ai/00000000e5e0aca1f1f2dd06.png differ
diff --git a/textures/ai/00000000e76047872af08cf8.png b/textures/ai/00000000e76047872af08cf8.png
new file mode 100644
index 0000000..8ddd56b
Binary files /dev/null and b/textures/ai/00000000e76047872af08cf8.png differ
diff --git a/textures/ai/00000000e7758105626ab17e.png b/textures/ai/00000000e7758105626ab17e.png
new file mode 100644
index 0000000..f9882be
Binary files /dev/null and b/textures/ai/00000000e7758105626ab17e.png differ
diff --git a/textures/ai/00000000e77dfdca1c26fec5.png b/textures/ai/00000000e77dfdca1c26fec5.png
new file mode 100644
index 0000000..d4a7b57
Binary files /dev/null and b/textures/ai/00000000e77dfdca1c26fec5.png differ
diff --git a/textures/ai/00000000e7b6945b426f8fe2.png b/textures/ai/00000000e7b6945b426f8fe2.png
new file mode 100644
index 0000000..887ffbf
Binary files /dev/null and b/textures/ai/00000000e7b6945b426f8fe2.png differ
diff --git a/textures/ai/00000000e7ca54968b675299.png b/textures/ai/00000000e7ca54968b675299.png
new file mode 100644
index 0000000..f1261a4
Binary files /dev/null and b/textures/ai/00000000e7ca54968b675299.png differ
diff --git a/textures/ai/00000000e888c840e23406d1.png b/textures/ai/00000000e888c840e23406d1.png
new file mode 100644
index 0000000..6971553
Binary files /dev/null and b/textures/ai/00000000e888c840e23406d1.png differ
diff --git a/textures/ai/00000000e90f79ac9fa4ce88.png b/textures/ai/00000000e90f79ac9fa4ce88.png
new file mode 100644
index 0000000..b24c273
Binary files /dev/null and b/textures/ai/00000000e90f79ac9fa4ce88.png differ
diff --git a/textures/ai/00000000e94d0590d9175a61.png b/textures/ai/00000000e94d0590d9175a61.png
new file mode 100644
index 0000000..b5cfafb
Binary files /dev/null and b/textures/ai/00000000e94d0590d9175a61.png differ
diff --git a/textures/ai/00000000e961e0d93f6e7a7a.png b/textures/ai/00000000e961e0d93f6e7a7a.png
new file mode 100644
index 0000000..3e80d23
Binary files /dev/null and b/textures/ai/00000000e961e0d93f6e7a7a.png differ
diff --git a/textures/ai/00000000e98bf3a8c1657ef7.png b/textures/ai/00000000e98bf3a8c1657ef7.png
new file mode 100644
index 0000000..0d27446
Binary files /dev/null and b/textures/ai/00000000e98bf3a8c1657ef7.png differ
diff --git a/textures/ai/00000000ea2b3f7d82da7959.png b/textures/ai/00000000ea2b3f7d82da7959.png
new file mode 100644
index 0000000..1dee1c8
Binary files /dev/null and b/textures/ai/00000000ea2b3f7d82da7959.png differ
diff --git a/textures/ai/00000000eafd60f82af63210.png b/textures/ai/00000000eafd60f82af63210.png
new file mode 100644
index 0000000..0536b34
Binary files /dev/null and b/textures/ai/00000000eafd60f82af63210.png differ
diff --git a/textures/ai/00000000ebfcdf44f3a52036.png b/textures/ai/00000000ebfcdf44f3a52036.png
new file mode 100644
index 0000000..cc93213
Binary files /dev/null and b/textures/ai/00000000ebfcdf44f3a52036.png differ
diff --git a/textures/ai/00000000ec0e2c3f60d5ebfb.png b/textures/ai/00000000ec0e2c3f60d5ebfb.png
new file mode 100644
index 0000000..163f384
Binary files /dev/null and b/textures/ai/00000000ec0e2c3f60d5ebfb.png differ
diff --git a/textures/ai/00000000ec16301043880880.png b/textures/ai/00000000ec16301043880880.png
new file mode 100644
index 0000000..a9aa6e5
Binary files /dev/null and b/textures/ai/00000000ec16301043880880.png differ
diff --git a/textures/ai/00000000ec3f40711f75f175.png b/textures/ai/00000000ec3f40711f75f175.png
new file mode 100644
index 0000000..e7bbcda
Binary files /dev/null and b/textures/ai/00000000ec3f40711f75f175.png differ
diff --git a/textures/ai/00000000ecb570c616e85514.png b/textures/ai/00000000ecb570c616e85514.png
new file mode 100644
index 0000000..be9197a
Binary files /dev/null and b/textures/ai/00000000ecb570c616e85514.png differ
diff --git a/textures/ai/00000000ece43c97e36fda49.png b/textures/ai/00000000ece43c97e36fda49.png
new file mode 100644
index 0000000..dfa4b10
Binary files /dev/null and b/textures/ai/00000000ece43c97e36fda49.png differ
diff --git a/textures/ai/00000000ed6eea3c2ea5003f.png b/textures/ai/00000000ed6eea3c2ea5003f.png
new file mode 100644
index 0000000..6a36a94
Binary files /dev/null and b/textures/ai/00000000ed6eea3c2ea5003f.png differ
diff --git a/textures/ai/00000000edc0c0bc7c9fa78f.png b/textures/ai/00000000edc0c0bc7c9fa78f.png
new file mode 100644
index 0000000..99fb76a
Binary files /dev/null and b/textures/ai/00000000edc0c0bc7c9fa78f.png differ
diff --git a/textures/ai/00000000edd742f1b587b2a1.png b/textures/ai/00000000edd742f1b587b2a1.png
new file mode 100644
index 0000000..4baaf3f
Binary files /dev/null and b/textures/ai/00000000edd742f1b587b2a1.png differ
diff --git a/textures/ai/00000000ee0b2d3d35314526.png b/textures/ai/00000000ee0b2d3d35314526.png
new file mode 100644
index 0000000..eb696fe
Binary files /dev/null and b/textures/ai/00000000ee0b2d3d35314526.png differ
diff --git a/textures/ai/00000000ee674fbea0c37003.png b/textures/ai/00000000ee674fbea0c37003.png
new file mode 100644
index 0000000..cba0ff6
Binary files /dev/null and b/textures/ai/00000000ee674fbea0c37003.png differ
diff --git a/textures/ai/00000000ee759954a5539cce.png b/textures/ai/00000000ee759954a5539cce.png
new file mode 100644
index 0000000..42bcac2
Binary files /dev/null and b/textures/ai/00000000ee759954a5539cce.png differ
diff --git a/textures/ai/00000000ef0f97cb24f55c42.png b/textures/ai/00000000ef0f97cb24f55c42.png
new file mode 100644
index 0000000..cf48382
Binary files /dev/null and b/textures/ai/00000000ef0f97cb24f55c42.png differ
diff --git a/textures/ai/00000000ef45cf50b58cc2b1.png b/textures/ai/00000000ef45cf50b58cc2b1.png
new file mode 100644
index 0000000..de1d6d7
Binary files /dev/null and b/textures/ai/00000000ef45cf50b58cc2b1.png differ
diff --git a/textures/ai/00000000ef481e4a85eb40cc.png b/textures/ai/00000000ef481e4a85eb40cc.png
new file mode 100644
index 0000000..ee603dd
Binary files /dev/null and b/textures/ai/00000000ef481e4a85eb40cc.png differ
diff --git a/textures/ai/00000000f04731046c9564ed.png b/textures/ai/00000000f04731046c9564ed.png
new file mode 100644
index 0000000..66cde6f
Binary files /dev/null and b/textures/ai/00000000f04731046c9564ed.png differ
diff --git a/textures/ai/00000000f077557980805f29.png b/textures/ai/00000000f077557980805f29.png
new file mode 100644
index 0000000..6272481
Binary files /dev/null and b/textures/ai/00000000f077557980805f29.png differ
diff --git a/textures/ai/00000000f07a4a975a1506f9.png b/textures/ai/00000000f07a4a975a1506f9.png
new file mode 100644
index 0000000..5f38cec
Binary files /dev/null and b/textures/ai/00000000f07a4a975a1506f9.png differ
diff --git a/textures/ai/00000000f10e68cf4c020528.png b/textures/ai/00000000f10e68cf4c020528.png
new file mode 100644
index 0000000..93fe34d
Binary files /dev/null and b/textures/ai/00000000f10e68cf4c020528.png differ
diff --git a/textures/ai/00000000f20e4dfa8a9eab53.png b/textures/ai/00000000f20e4dfa8a9eab53.png
new file mode 100644
index 0000000..f439dc7
Binary files /dev/null and b/textures/ai/00000000f20e4dfa8a9eab53.png differ
diff --git a/textures/ai/00000000f25c21136d817a20.png b/textures/ai/00000000f25c21136d817a20.png
new file mode 100644
index 0000000..a0fec1c
Binary files /dev/null and b/textures/ai/00000000f25c21136d817a20.png differ
diff --git a/textures/ai/00000000f2868ca16a05ba44.png b/textures/ai/00000000f2868ca16a05ba44.png
new file mode 100644
index 0000000..91b5810
Binary files /dev/null and b/textures/ai/00000000f2868ca16a05ba44.png differ
diff --git a/textures/ai/00000000f3541469ecc3e56f.png b/textures/ai/00000000f3541469ecc3e56f.png
new file mode 100644
index 0000000..16681c3
Binary files /dev/null and b/textures/ai/00000000f3541469ecc3e56f.png differ
diff --git a/textures/ai/00000000f367c1a13fc2a9d0.png b/textures/ai/00000000f367c1a13fc2a9d0.png
new file mode 100644
index 0000000..d84911b
Binary files /dev/null and b/textures/ai/00000000f367c1a13fc2a9d0.png differ
diff --git a/textures/ai/00000000f3e9fcbb3799644c.png b/textures/ai/00000000f3e9fcbb3799644c.png
new file mode 100644
index 0000000..9288e64
Binary files /dev/null and b/textures/ai/00000000f3e9fcbb3799644c.png differ
diff --git a/textures/ai/00000000f491c15a2f6127b5.png b/textures/ai/00000000f491c15a2f6127b5.png
new file mode 100644
index 0000000..ccc7a20
Binary files /dev/null and b/textures/ai/00000000f491c15a2f6127b5.png differ
diff --git a/textures/ai/00000000f49800f4cc580503.png b/textures/ai/00000000f49800f4cc580503.png
new file mode 100644
index 0000000..dea42c1
Binary files /dev/null and b/textures/ai/00000000f49800f4cc580503.png differ
diff --git a/textures/ai/00000000f4c9cb12fed11a3e.png b/textures/ai/00000000f4c9cb12fed11a3e.png
new file mode 100644
index 0000000..05ce29a
Binary files /dev/null and b/textures/ai/00000000f4c9cb12fed11a3e.png differ
diff --git a/textures/ai/00000000f5205cbc7fb4fef2.png b/textures/ai/00000000f5205cbc7fb4fef2.png
new file mode 100644
index 0000000..e06393d
Binary files /dev/null and b/textures/ai/00000000f5205cbc7fb4fef2.png differ
diff --git a/textures/ai/00000000f6afdc6585dae1d8.png b/textures/ai/00000000f6afdc6585dae1d8.png
new file mode 100644
index 0000000..9849d78
Binary files /dev/null and b/textures/ai/00000000f6afdc6585dae1d8.png differ
diff --git a/textures/ai/00000000f758e0504c146f69.png b/textures/ai/00000000f758e0504c146f69.png
new file mode 100644
index 0000000..5e03f7a
Binary files /dev/null and b/textures/ai/00000000f758e0504c146f69.png differ
diff --git a/textures/ai/00000000f80d9833d6b6ef1d.png b/textures/ai/00000000f80d9833d6b6ef1d.png
new file mode 100644
index 0000000..973f9f8
Binary files /dev/null and b/textures/ai/00000000f80d9833d6b6ef1d.png differ
diff --git a/textures/ai/00000000f825ea698773cf12.png b/textures/ai/00000000f825ea698773cf12.png
new file mode 100644
index 0000000..178258a
Binary files /dev/null and b/textures/ai/00000000f825ea698773cf12.png differ
diff --git a/textures/ai/00000000f9cb9ccfa1aa65df.png b/textures/ai/00000000f9cb9ccfa1aa65df.png
new file mode 100644
index 0000000..a818e29
Binary files /dev/null and b/textures/ai/00000000f9cb9ccfa1aa65df.png differ
diff --git a/textures/ai/00000000f9da9e616aeeb2b2.png b/textures/ai/00000000f9da9e616aeeb2b2.png
new file mode 100644
index 0000000..6f83913
Binary files /dev/null and b/textures/ai/00000000f9da9e616aeeb2b2.png differ
diff --git a/textures/ai/00000000face9af9abc1d70b.png b/textures/ai/00000000face9af9abc1d70b.png
new file mode 100644
index 0000000..f5d3082
Binary files /dev/null and b/textures/ai/00000000face9af9abc1d70b.png differ
diff --git a/textures/ai/00000000fb068cfe2b4f8f6e.png b/textures/ai/00000000fb068cfe2b4f8f6e.png
new file mode 100644
index 0000000..253ad15
Binary files /dev/null and b/textures/ai/00000000fb068cfe2b4f8f6e.png differ
diff --git a/textures/ai/00000000fb2c64d0816c6132.png b/textures/ai/00000000fb2c64d0816c6132.png
new file mode 100644
index 0000000..a2f62f3
Binary files /dev/null and b/textures/ai/00000000fb2c64d0816c6132.png differ
diff --git a/textures/ai/00000000fb73cbd20214960f.png b/textures/ai/00000000fb73cbd20214960f.png
new file mode 100644
index 0000000..e5edc6d
Binary files /dev/null and b/textures/ai/00000000fb73cbd20214960f.png differ
diff --git a/textures/ai/00000000fbe0306e44940f9b.png b/textures/ai/00000000fbe0306e44940f9b.png
new file mode 100644
index 0000000..07ad204
Binary files /dev/null and b/textures/ai/00000000fbe0306e44940f9b.png differ
diff --git a/textures/ai/00000000fc455b05158be6b1.png b/textures/ai/00000000fc455b05158be6b1.png
new file mode 100644
index 0000000..d3dd12e
Binary files /dev/null and b/textures/ai/00000000fc455b05158be6b1.png differ
diff --git a/textures/ai/00000000fc4923bd76370f6d.png b/textures/ai/00000000fc4923bd76370f6d.png
new file mode 100644
index 0000000..001908a
Binary files /dev/null and b/textures/ai/00000000fc4923bd76370f6d.png differ
diff --git a/textures/ai/00000000fd8f0b417630f611.png b/textures/ai/00000000fd8f0b417630f611.png
new file mode 100644
index 0000000..b8d2e43
Binary files /dev/null and b/textures/ai/00000000fd8f0b417630f611.png differ
diff --git a/textures/ai/00000000fed230af1d52b678.png b/textures/ai/00000000fed230af1d52b678.png
new file mode 100644
index 0000000..977578e
Binary files /dev/null and b/textures/ai/00000000fed230af1d52b678.png differ
diff --git a/textures/bg/wind_OL_2.png b/textures/bg/wind_OL_2.png
new file mode 100644
index 0000000..b111071
Binary files /dev/null and b/textures/bg/wind_OL_2.png differ
diff --git a/textures/chara/mamont.png b/textures/chara/mamont.png
new file mode 100644
index 0000000..b9ccdaa
Binary files /dev/null and b/textures/chara/mamont.png differ
diff --git a/textures/chara/trapped_patapon.png b/textures/chara/trapped_patapon.png
new file mode 100644
index 0000000..f4262e8
Binary files /dev/null and b/textures/chara/trapped_patapon.png differ
diff --git a/textures/eq/bow/electric_bow.png b/textures/eq/bow/electric_bow.png
new file mode 100644
index 0000000..8bd6165
Binary files /dev/null and b/textures/eq/bow/electric_bow.png differ
diff --git a/textures/eq/bow/fire_bow.png b/textures/eq/bow/fire_bow.png
new file mode 100644
index 0000000..68dfaac
Binary files /dev/null and b/textures/eq/bow/fire_bow.png differ
diff --git a/textures/eq/helm/crown.png b/textures/eq/helm/crown.png
new file mode 100644
index 0000000..c4e64c9
Binary files /dev/null and b/textures/eq/helm/crown.png differ
diff --git a/textures/eq/rarepon/fumyaaru.png b/textures/eq/rarepon/fumyaaru.png
new file mode 100644
index 0000000..eccc321
Binary files /dev/null and b/textures/eq/rarepon/fumyaaru.png differ
diff --git a/textures/eq/rarepon/kanokko_deka.png b/textures/eq/rarepon/kanokko_deka.png
new file mode 100644
index 0000000..98bc2f9
Binary files /dev/null and b/textures/eq/rarepon/kanokko_deka.png differ
diff --git a/textures/eq/rarepon/mashu_deka.png b/textures/eq/rarepon/mashu_deka.png
new file mode 100644
index 0000000..c35dfd5
Binary files /dev/null and b/textures/eq/rarepon/mashu_deka.png differ
diff --git a/textures/eq/rarepon/menyokki_deka.png b/textures/eq/rarepon/menyokki_deka.png
new file mode 100644
index 0000000..48220c4
Binary files /dev/null and b/textures/eq/rarepon/menyokki_deka.png differ
diff --git a/textures/eq/rarepon/mofo.png b/textures/eq/rarepon/mofo.png
new file mode 100644
index 0000000..64118dc
Binary files /dev/null and b/textures/eq/rarepon/mofo.png differ
diff --git a/textures/eq/rarepon/mogyu.png b/textures/eq/rarepon/mogyu.png
new file mode 100644
index 0000000..b265512
Binary files /dev/null and b/textures/eq/rarepon/mogyu.png differ
diff --git a/textures/eq/rarepon/puuhyonku.png b/textures/eq/rarepon/puuhyonku.png
new file mode 100644
index 0000000..e2c220a
Binary files /dev/null and b/textures/eq/rarepon/puuhyonku.png differ
diff --git a/textures/eq/shield/frozen_shield.png b/textures/eq/shield/frozen_shield.png
new file mode 100644
index 0000000..d9af372
Binary files /dev/null and b/textures/eq/shield/frozen_shield.png differ
diff --git a/textures/eq/shield/magic_shield.png b/textures/eq/shield/magic_shield.png
new file mode 100644
index 0000000..213d534
Binary files /dev/null and b/textures/eq/shield/magic_shield.png differ
diff --git a/textures/gimmick/cata_rock.png b/textures/gimmick/cata_rock.png
new file mode 100644
index 0000000..6e769dd
Binary files /dev/null and b/textures/gimmick/cata_rock.png differ
diff --git a/textures/gimmick/sokshi_cannonball.png b/textures/gimmick/sokshi_cannonball.png
new file mode 100644
index 0000000..6821af5
Binary files /dev/null and b/textures/gimmick/sokshi_cannonball.png differ
diff --git a/textures/particles/particles1.png b/textures/particles/particles1.png
new file mode 100644
index 0000000..fdb4455
Binary files /dev/null and b/textures/particles/particles1.png differ
diff --git a/textures/ui/fever.png b/textures/ui/fever.png
new file mode 100644
index 0000000..bc78639
Binary files /dev/null and b/textures/ui/fever.png differ
diff --git a/textures/ui/items1.png b/textures/ui/items1.png
new file mode 100644
index 0000000..7c250fe
Binary files /dev/null and b/textures/ui/items1.png differ
diff --git a/textures/ui/items2.png b/textures/ui/items2.png
new file mode 100644
index 0000000..5769e1a
Binary files /dev/null and b/textures/ui/items2.png differ
diff --git a/textures/ui/items3.png b/textures/ui/items3.png
new file mode 100644
index 0000000..7ae46fb
Binary files /dev/null and b/textures/ui/items3.png differ
diff --git a/textures/ui/miracle/chaka_cloud.png b/textures/ui/miracle/chaka_cloud.png
new file mode 100644
index 0000000..3090d92
Binary files /dev/null and b/textures/ui/miracle/chaka_cloud.png differ
diff --git a/textures/ui/miracle/miracle_letters.png b/textures/ui/miracle/miracle_letters.png
new file mode 100644
index 0000000..233b920
Binary files /dev/null and b/textures/ui/miracle/miracle_letters.png differ
diff --git a/textures/ui/miracle/pata_cloud.png b/textures/ui/miracle/pata_cloud.png
new file mode 100644
index 0000000..7fd9b48
Binary files /dev/null and b/textures/ui/miracle/pata_cloud.png differ
diff --git a/textures/ui/miracle/pon_cloud.png b/textures/ui/miracle/pon_cloud.png
new file mode 100644
index 0000000..085a846
Binary files /dev/null and b/textures/ui/miracle/pon_cloud.png differ
diff --git a/textures/ui/snow.png b/textures/ui/snow.png
new file mode 100644
index 0000000..443071b
Binary files /dev/null and b/textures/ui/snow.png differ
diff --git a/textures/ui/snowflake.png b/textures/ui/snowflake.png
new file mode 100644
index 0000000..fcad2f0
Binary files /dev/null and b/textures/ui/snowflake.png differ
diff --git a/textures/ui/ui1.png b/textures/ui/ui1.png
new file mode 100644
index 0000000..4213bcf
Binary files /dev/null and b/textures/ui/ui1.png differ