diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..42f8084d2edb9ed7afa5179ad74eba07d08492f0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,13 @@ +FROM python:3.10 + +RUN useradd -m -u 1000 user +USER user +ENV PATH="/home/user/.local/bin:$PATH" + +WORKDIR /app + +COPY --chown=user ./requirements.txt requirements.txt +RUN pip install --no-cache-dir -r requirements.txt + +COPY --chown=user . /app +CMD ["python", "app.py"] \ No newline at end of file diff --git a/README.md b/README.md index 323815ec6e3b9c82e9a48b7b840cd1441ad2e873..e62f2ddf09f25e4df7d6b9f7a2a7872d825118bd 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ --- title: Minecraft MOD Maker 4 English -emoji: 🌍 -colorFrom: blue -colorTo: yellow +emoji: ⛏ +colorFrom: green +colorTo: gray sdk: docker pinned: false --- diff --git a/app.py b/app.py new file mode 100644 index 0000000000000000000000000000000000000000..56cd1e05cf9da2b0a3454e35ef0a9970f2a12dae --- /dev/null +++ b/app.py @@ -0,0 +1,128 @@ +from fastapi.middleware.cors import CORSMiddleware +from fastapi.staticfiles import StaticFiles +from fastapi import FastAPI, APIRouter +import base64, json, zipfile, uvicorn +from strgen import StringGenerator +from pydantic import BaseModel +from pathlib import Path +from io import BytesIO +from PIL import Image + +app = FastAPI() + +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +router = APIRouter() +processing = False + +class TextRequest(BaseModel): text: str + +@router.post('/save') +async def save(req_data: TextRequest): + data = json.loads(req_data.text) + zip_buffer = BytesIO() + + with zipfile.ZipFile(zip_buffer, 'w') as zip_file: + zip_file.writestr('data.xml', data[0].encode('utf-8')) + zip_file.writestr('data.txt', data[1].encode('utf-8')) + + for i in range(2, len(data)): + file_data = base64.b64decode(data[i].split(',', 1)[1]) + file_name = f'{i - 1}.{data[i].split(";")[0].split("/")[1]}' + zip_file.writestr(file_name, file_data) + + zip_buffer.seek(0) + return base64.b64encode(zip_buffer.getvalue()).decode('utf-8') + +@router.post('/load') +async def load(zip_data: TextRequest): + zip_buffer = BytesIO(base64.b64decode(zip_data.text)) + data = [] + with zipfile.ZipFile(zip_buffer, 'r') as zip_file: + data.append(zip_file.open('data.xml').read().decode('utf-8')) + data.append(zip_file.open('data.txt').read().decode('utf-8')) + + for file_info in zip_file.infolist(): + if file_info.filename.startswith('data.'): continue + with zip_file.open(file_info) as f: + ext = file_info.filename.split('.')[-1] + url = base64.b64encode(f.read()).decode('utf-8') + data.append(f'data:image/{ext};base64,{url}') + + return data + +@router.get('/check') +async def check(): + global processing + return 'ng' if processing else 'ok' + +@router.post('/sb3') +async def sb3(req_data: TextRequest): + global processing + if processing: return '' + processing = True + data = json.loads(req_data.text) + with zipfile.ZipFile(Path('public').joinpath('mmp4.zip').resolve(), 'r') as template_zip: + with template_zip.open('project.json') as f: + project = json.loads(f.read().decode('utf-8')) + + # 新しいZIPファイルを作成 + zip_buffer = BytesIO() + with zipfile.ZipFile(zip_buffer, 'w') as zip_file: + variables = project['targets'][0]['variables'] + tiles = project['targets'].index([v for v in project['targets'] if v['name'] == 'Tiles'][0]) + + project['targets'][0]['variables'][[v for v in variables if variables[v][0] == 'MODコード'][0]][1] = data[0] + + names = StringGenerator('[a-f\\d]{32}').render_list(len(data) - 1, unique=True) + for i in range(1, len(data)): + name = f'{names[i - 1]}.png' + image_data = base64.b64decode(data[i].split(',', 1)[1]) + + # 画像をリサイズ + img = Image.open(BytesIO(image_data)) + img_resized = img.resize((80, 80)) + img_buffer = BytesIO() + img_resized.save(img_buffer, format='PNG') + img_buffer.seek(0) + + # リサイズした画像をZIPに追加 + zip_file.writestr(name, img_buffer.getvalue()) + + project['targets'][tiles]['costumes'].append({ + "name": str(i), + "bitmapResolution": 2, + "dataFormat": "png", + "assetId": names[i - 1], + "md5ext": f"{names[i - 1]}.png", + "rotationCenterX": 40, + "rotationCenterY": 40 + }) + + # 更新されたproject.jsonを書き込む + zip_file.writestr('project.json', json.dumps(project).encode('utf-8')) + + # mmp4.zipの他のファイルもコピー + with zipfile.ZipFile(Path('public').joinpath('mmp4.zip').resolve(), 'r') as template_zip: + for item in template_zip.infolist(): + if item.filename != 'project.json': + zip_file.writestr(item.filename, template_zip.read(item.filename)) + + # ZIPファイルのバイナリデータをBase64エンコード + zip_buffer.seek(0) + sb3_base64 = base64.b64encode(zip_buffer.getvalue()).decode('utf-8') + + processing = False + return sb3_base64 + +app.include_router(router, prefix='/api') + +if __name__ == '__main__': + app.mount('/', StaticFiles(directory=Path('public'), html=True), name='public') + uvicorn.run(app, host='0.0.0.0', port=7860) \ No newline at end of file diff --git a/public/data.js b/public/data.js new file mode 100644 index 0000000000000000000000000000000000000000..c37444287175067188ee248c58e6ed58eade0dd8 --- /dev/null +++ b/public/data.js @@ -0,0 +1,4627 @@ +Blockly.defineBlocksWithJsonArray([ + { + "type": "set_player", + "message0": "Set Player's %1 to %2", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + "x position", + "1" + ], + [ + "y position", + "2" + ], + [ + "x speed", + "3" + ], + [ + "y speed", + "4" + ], + [ + "position", + "5" + ], + [ + "hearts", + "6" + ], + [ + "hungry", + "7" + ], + [ + "air level", + "8" + ], + [ + "what He has", + "9" + ], + [ + "inventory cursor", + "10" + ], + [ + "what He is looking at", + "11" + ], + [ + "attack power", + "12" + ], + [ + "mining speed", + "13" + ] + ] + }, + { + "type": "input_value", + "name": "value" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "motion" + }, + { + "type": "change_player", + "message0": "Change Player's %1 by %2", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + "x position", + "1" + ], + [ + "y position", + "2" + ], + [ + "x speed", + "3" + ], + [ + "y s@eed", + "4" + ], + [ + "position", + "5" + ], + [ + "hearts", + "6" + ], + [ + "hungry", + "7" + ], + [ + "air level", + "8" + ], + [ + "what he has", + "9" + ], + [ + "inventory cursor", + "10" + ], + [ + "what he is looking at", + "11" + ], + [ + "attack power", + "12" + ], + [ + "mining speed", + "13" + ] + ] + }, + { + "type": "input_value", + "name": "value" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "motion" + }, + { + "type": "set_inventory", + "message0": "Set the item %1 %2 in your invantory to %3", + "args0": [ + { + "type": "input_value", + "name": "place" + }, + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + "ID", + "1" + ], + [ + "stock", + "2" + ] + ] + }, + { + "type": "input_value", + "name": "value" + } + ], + "inputsInline": true, + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "motion" + }, + { + "type": "set_block", + "message0": "Turns a block at %1 into %2", + "args0": [ + { + "type": "input_value", + "name": "place" + }, + { + "type": "input_value", + "name": "value" + } + ], + "inputsInline": true, + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "motion" + }, + { + "type": "set_flymode", + "message0": "Turn %1 fly mode", + "args0": [ + { + "type": "input_value", + "name": "value", + "check": "Boolean" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "motion" + }, + { + "type": "drop", + "message0": "Drops %3 %2 at %1", + "args0": [ + { + "type": "input_value", + "name": "place" + }, + { + "type": "input_value", + "name": "value" + }, + { + "type": "input_value", + "name": "quant" + } + ], + "inputsInline": true, + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "motion" + }, + { + "type": "explosion", + "message0": "Explodes within a radius of %2 from %1", + "args0": [ + { + "type": "input_value", + "name": "place" + }, + { + "type": "input_value", + "name": "radius" + } + ], + "inputsInline": true, + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "motion" + }, + { + "type": "craft_recipe", + "message0": "Added crafting recipes %1 %2 %3 %4 %5 %6 %7 %8 → %9 × %10 %11 %12 %13 %14 ( In no particular order %15 ) %16", + "args0": [ + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "1" + }, + { + "type": "input_value", + "name": "2" + }, + { + "type": "input_value", + "name": "3" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "4" + }, + { + "type": "input_value", + "name": "5" + }, + { + "type": "input_value", + "name": "6" + }, + { + "type": "input_value", + "name": "value" + }, + { + "type": "input_value", + "name": "quant" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "7" + }, + { + "type": "input_value", + "name": "8" + }, + { + "type": "input_value", + "name": "9" + }, + { + "type": "input_value", + "name": "npo", + "check": "Boolean" + }, + { + "type": "input_end_row" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "motion" + }, + { + "type": "smelt_recipe", + "message0": "Added smelting recipe %1 → %2", + "args0": [ + { + "type": "input_value", + "name": "original" + }, + { + "type": "input_value", + "name": "processed" + } + ], + "inputsInline": true, + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "motion" + }, + { + "type": "add_data", + "message0": "Add block data %1 Name: %2 %3 Costume ID: %4 %5 Mining time: %6 %7 The right tool: %8 %9 Gravity effects: %10 %11 Drop: %12 %13 Smelting Results: %14 %15 Fuel Time: %16 %17 Contact Damage: %18 %19 Creative Type: %20 %21", + "args0": [ + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "1" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "2" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "3" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "4" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "5", + "check": "Boolean" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "6" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "7" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "8" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "9" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "10" + }, + { + "type": "input_end_row" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "motion" + }, + { + "type": "add_food", + "message0": "Add food data %1 Item ID: %2 %3 Hunger: %4 %5 Hidden Hunger: %6 %7 Toxicity rate ( %% ): %8 %9 What remains: %10 %11 Use on a full stomach: %12 %13", + "args0": [ + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "1" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "2" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "3" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "4" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "5" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "6", + "check": "Boolean" + }, + { + "type": "input_end_row" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "motion" + }, + { + "type": "set_texture", + "message0": "Change %1 texture to costume %2 %3", + "args0": [ + { + "type": "input_value", + "name": "block" + }, + { + "type": "input_value", + "name": "value" + }, + { + "type": "input_end_row" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "looks" + }, + { + "type": "set_skin", + "message0": "Set skin to %1", + "args0": [ + { + "type": "input_value", + "name": "value", + "check": "Boolean" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "looks" + }, + { + "type": "player_skin", + "message0": "Player's skin", + "output": "Boolean", + "tooltip": "", + "helpUrl": "", + "style": "looks" + }, + { + "type": "skin", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + "Steve", + "0" + ], + [ + "Alex", + "1" + ] + ] + } + ], + "output": "Boolean", + "tooltip": "", + "helpUrl": "", + "style": "looks" + }, + { + "type": "play_sound", + "message0": "Play %1", + "args0": [ + { + "type": "input_value", + "name": "value" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "sound" + }, + { + "type": "world_loads", + "message0": "When the world is loaded", + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "events" + }, + { + "type": "forever", + "implicitAlign0": "RIGHT", + "message0": "Forever %1 %2 %3", + "args0": [ + { + "type": "input_dummy" + }, + { + "type": "input_statement", + "name": "value" + }, + { + "type": "field_image", + "src": "./data/repeat.svg", + "width": 24, + "height": 24, + "alt": "*", + "flipRtl": false + } + ], + "previousStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "control" + }, + { + "type": "if", + "message0": "If %1 then %2 %3", + "args0": [ + { + "type": "input_value", + "name": "bool", + "check": "Boolean" + }, + { + "type": "input_end_row" + }, + { + "type": "input_statement", + "name": "value" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "control" + }, + { + "type": "else", + "message0": "If %1 then %2 %3 else %4 %5", + "args0": [ + { + "type": "input_value", + "name": "bool", + "check": "Boolean" + }, + { + "type": "input_end_row" + }, + { + "type": "input_statement", + "name": "value" + }, + { + "type": "input_end_row" + }, + { + "type": "input_statement", + "name": "value2" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "control" + }, + { + "type": "search", + "message0": "Chunk Processing %1 %2", + "args0": [ + { + "type": "input_dummy" + }, + { + "type": "input_statement", + "name": "value" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "control" + }, + { + "type": "search_place", + "message0": "%1 under investigation", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + "position", + "1" + ], + [ + "x position", + "2" + ], + [ + "y position", + "3" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "control" + }, + { + "type": "press_key", + "message0": "key %1 pressed?", + "args0": [ + { + "type": "input_value", + "name": "value" + } + ], + "output": "Boolean", + "tooltip": "", + "helpUrl": "", + "style": "sensing" + }, + { + "type": "player", + "message0": "player's %1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + "x position", + "1" + ], + [ + "y positon", + "2" + ], + [ + "position", + "3" + ], + [ + "x speed", + "4" + ], + [ + "y speed", + "5" + ], + [ + "hearts", + "6" + ], + [ + "hungry", + "7" + ], + [ + "air level", + "8" + ], + [ + "the last thing he ate", + "9" + ], + [ + "what he has", + "10" + ], + [ + "inventory cursor", + "11" + ], + [ + "what he is looking at", + "12" + ], + [ + "where he is looking", + "13" + ], + [ + "attack power", + "14" + ], + [ + "mining speed", + "15" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "sensing" + }, + { + "type": "inventory", + "message0": "item %1 %2 in the inventory", + "args0": [ + { + "type": "input_value", + "name": "value" + }, + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + "ID", + "1" + ], + [ + "stock", + "2" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "sensing" + }, + { + "type": "get_block", + "message0": "block at %1", + "args0": [ + { + "type": "input_value", + "name": "value" + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "sensing" + }, + { + "type": "flymode", + "message0": "fly mode", + "output": "Boolean", + "tooltip": "", + "helpUrl": "", + "style": "sensing" + }, + { + "type": "get_data", + "message0": "data %2 of ID %1", + "args0": [ + { + "type": "input_value", + "name": "value" + }, + { + "type": "input_value", + "name": "type" + } + ], + "inputsInline": true, + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "sensing" + }, + { + "type": "seed", + "message0": "seed", + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "sensing" + }, + { + "type": "input", + "message0": "%1", + "args0": [ + { + "type": "field_input", + "name": "value", + "text": "" + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "operators" + }, + { + "type": "bool", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + "true", + "1" + ], + [ + "false", + "0" + ] + ] + } + ], + "output": "Boolean", + "tooltip": "", + "helpUrl": "", + "style": "operators" + }, + { + "type": "calc", + "message0": "%1 %2 %3", + "args0": [ + { + "type": "input_value", + "name": "value" + }, + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + "+", + "1" + ], + [ + "-", + "2" + ], + [ + "*", + "3" + ], + [ + "/", + "4" + ] + ] + }, + { + "type": "input_value", + "name": "value2" + } + ], + "inputsInline": true, + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "operators" + }, + { + "type": "random", + "message0": "pick random %1 to %2", + "args0": [ + { + "type": "input_value", + "name": "value" + }, + { + "type": "input_value", + "name": "value2" + } + ], + "inputsInline": true, + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "operators" + }, + { + "type": "comparison", + "message0": "%1 %2 %3", + "args0": [ + { + "type": "input_value", + "name": "value" + }, + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + ">", + "1" + ], + [ + "<", + "2" + ], + [ + "=", + "3" + ] + ] + }, + { + "type": "input_value", + "name": "value2" + } + ], + "inputsInline": true, + "output": "Boolean", + "tooltip": "", + "helpUrl": "", + "style": "operators" + }, + { + "type": "logic", + "message0": "%1 %2 %3", + "args0": [ + { + "type": "input_value", + "name": "value", + "check": "Boolean" + }, + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + "and", + "1" + ], + [ + "or", + "2" + ] + ] + }, + { + "type": "input_value", + "name": "value2", + "check": "Boolean" + } + ], + "inputsInline": true, + "output": "Boolean", + "tooltip": "", + "helpUrl": "", + "style": "operators" + }, + { + "type": "not", + "message0": "not %1", + "args0": [ + { + "type": "input_value", + "name": "value", + "check": "Boolean" + } + ], + "inputsInline": true, + "output": "Boolean", + "tooltip": "", + "helpUrl": "", + "style": "operators" + }, + { + "type": "place", + "message0": "position of x: %1 , y: %2", + "args0": [ + { + "type": "input_value", + "name": "x" + }, + { + "type": "input_value", + "name": "y" + } + ], + "inputsInline": true, + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "operators" + }, + { + "type": "split_place", + "message0": "%2 of %1", + "args0": [ + { + "type": "input_value", + "name": "value" + }, + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + "x position", + "1" + ], + [ + "y position", + "2" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "operators" + }, + { + "type": "variable", + "message0": "%1", + "args0": [ + { + "type": "field_variable", + "name": "value", + "variable": "my variable" + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "variables" + }, + { + "type": "set_var", + "message0": "Set %1 to %2", + "args0": [ + { + "type": "field_variable", + "name": "var", + "variable": "my variable" + }, + { + "type": "input_value", + "name": "value" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "variables" + }, + { + "type": "change_var", + "message0": "Change %1 by %2", + "args0": [ + { + "type": "field_variable", + "name": "var", + "variable": "my variable" + }, + { + "type": "input_value", + "name": "value" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "variables" + }, + { + "type": "building_blocks", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/1.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "1" + ], + [ + { + "src": "./data/2.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "2" + ], + [ + { + "src": "./data/3.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "3" + ], + [ + { + "src": "./data/4.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "4" + ], + [ + { + "src": "./data/5.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "60" + ], + [ + { + "src": "./data/6.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "427" + ], + [ + { + "src": "./data/7.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "428" + ], + [ + { + "src": "./data/8.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "429" + ], + [ + { + "src": "./data/9.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "415" + ], + [ + { + "src": "./data/10.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "416" + ], + [ + { + "src": "./data/11.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "417" + ], + [ + { + "src": "./data/12.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "418" + ], + [ + { + "src": "./data/13.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "419" + ], + [ + { + "src": "./data/14.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "420" + ], + [ + { + "src": "./data/15.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "291" + ], + [ + { + "src": "./data/16.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "350" + ], + [ + { + "src": "./data/17.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "41" + ], + [ + { + "src": "./data/18.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "270" + ], + [ + { + "src": "./data/19.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "292" + ], + [ + { + "src": "./data/20.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "430" + ], + [ + { + "src": "./data/21.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "431" + ], + [ + { + "src": "./data/22.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "432" + ], + [ + { + "src": "./data/23.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "433" + ], + [ + { + "src": "./data/23.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "434" + ], + [ + { + "src": "./data/25.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "435" + ], + [ + { + "src": "./data/26.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "6" + ], + [ + { + "src": "./data/27.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "7" + ], + [ + { + "src": "./data/28.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "58" + ], + [ + { + "src": "./data/29.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "5" + ], + [ + { + "src": "./data/30.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "53" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "wooden_blocks", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/31.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "8" + ], + [ + { + "src": "./data/32.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "178" + ], + [ + { + "src": "./data/33.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "179" + ], + [ + { + "src": "./data/34.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "180" + ], + [ + { + "src": "./data/35.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "355" + ], + [ + { + "src": "./data/36.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "59" + ], + [ + { + "src": "./data/37.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "234" + ], + [ + { + "src": "./data/38.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "235" + ], + [ + { + "src": "./data/39.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "236" + ], + [ + { + "src": "./data/40.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "356" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "ore_blocks", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/41.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "13" + ], + [ + { + "src": "./data/42.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "16" + ], + [ + { + "src": "./data/43.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "15" + ], + [ + { + "src": "./data/44.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "14" + ], + [ + { + "src": "./data/45.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "217" + ], + [ + { + "src": "./data/46.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "271" + ], + [ + { + "src": "./data/47.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "315" + ], + [ + { + "src": "./data/48.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "293" + ], + [ + { + "src": "./data/49.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "296" + ], + [ + { + "src": "./data/50.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "295" + ], + [ + { + "src": "./data/51.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "294" + ], + [ + { + "src": "./data/52.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "297" + ], + [ + { + "src": "./data/53.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "298" + ], + [ + { + "src": "./data/54.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "316" + ], + [ + { + "src": "./data/55.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "436" + ], + [ + { + "src": "./data/56.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "421" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "oreblocks", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/57.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "318" + ], + [ + { + "src": "./data/58.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "247" + ], + [ + { + "src": "./data/59.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "248" + ], + [ + { + "src": "./data/60.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "249" + ], + [ + { + "src": "./data/61.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "273" + ], + [ + { + "src": "./data/62.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "317" + ], + [ + { + "src": "./data/63.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "439" + ], + [ + { + "src": "./data/64.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "423" + ], + [ + { + "src": "./data/65.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "424" + ], + [ + { + "src": "./data/66.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "425" + ], + [ + { + "src": "./data/67.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "426" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "deco_blocks", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/68.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "17" + ], + [ + { + "src": "./data/69.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "375" + ], + [ + { + "src": "./data/70.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "312" + ], + [ + { + "src": "./data/71.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "256" + ], + [ + { + "src": "./data/72.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "257" + ], + [ + { + "src": "./data/73.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "255" + ], + [ + { + "src": "./data/74.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "305" + ], + [ + { + "src": "./data/75.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "304" + ], + [ + { + "src": "./data/76.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "54" + ], + [ + { + "src": "./data/77.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "123" + ], + [ + { + "src": "./data/78.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "285" + ], + [ + { + "src": "./data/79.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "42" + ], + [ + { + "src": "./data/80.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "287" + ], + [ + { + "src": "./data/81.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "52" + ], + [ + { + "src": "./data/82.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "254" + ], + [ + { + "src": "./data/83.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "252" + ], + [ + { + "src": "./data/84.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "253" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "wool_blocks", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/85.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "122" + ], + [ + { + "src": "./data/86.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "335" + ], + [ + { + "src": "./data/87.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "336" + ], + [ + { + "src": "./data/88.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "337" + ], + [ + { + "src": "./data/89.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "338" + ], + [ + { + "src": "./data/90.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "339" + ], + [ + { + "src": "./data/91.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "340" + ], + [ + { + "src": "./data/92.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "341" + ], + [ + { + "src": "./data/93.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "342" + ], + [ + { + "src": "./data/94.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "343" + ], + [ + { + "src": "./data/95.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "344" + ], + [ + { + "src": "./data/96.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "345" + ], + [ + { + "src": "./data/97.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "346" + ], + [ + { + "src": "./data/98.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "347" + ], + [ + { + "src": "./data/99.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "348" + ], + [ + { + "src": "./data/100.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "349" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "stairs_blocks", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/101.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "237" + ], + [ + { + "src": "./data/102.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "239" + ], + [ + { + "src": "./data/103.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "399" + ], + [ + { + "src": "./data/104.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "401" + ], + [ + { + "src": "./data/105.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "403" + ], + [ + { + "src": "./data/106.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "405" + ], + [ + { + "src": "./data/107.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "372" + ], + [ + { + "src": "./data/108.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "241" + ], + [ + { + "src": "./data/109.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "376" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "terracotta_blocks", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/110.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "449" + ], + [ + { + "src": "./data/111.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "450" + ], + [ + { + "src": "./data/112.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "451" + ], + [ + { + "src": "./data/113.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "452" + ], + [ + { + "src": "./data/114.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "453" + ], + [ + { + "src": "./data/115.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "454" + ], + [ + { + "src": "./data/116.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "455" + ], + [ + { + "src": "./data/117.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "456" + ], + [ + { + "src": "./data/118.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "457" + ], + [ + { + "src": "./data/119.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "458" + ], + [ + { + "src": "./data/120.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "459" + ], + [ + { + "src": "./data/121.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "460" + ], + [ + { + "src": "./data/122.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "461" + ], + [ + { + "src": "./data/123.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "462" + ], + [ + { + "src": "./data/124.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "463" + ], + [ + { + "src": "./data/125.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "464" + ], + [ + { + "src": "./data/126.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "465" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "plant_deco", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/127.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "9" + ], + [ + { + "src": "./data/128.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "10" + ], + [ + { + "src": "./data/129.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "181" + ], + [ + { + "src": "./data/130.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "182" + ], + [ + { + "src": "./data/131.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "184" + ], + [ + { + "src": "./data/132.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "185" + ], + [ + { + "src": "./data/133.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "187" + ], + [ + { + "src": "./data/134.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "188" + ], + [ + { + "src": "./data/135.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "358" + ], + [ + { + "src": "./data/136.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "359" + ], + [ + { + "src": "./data/137.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "55" + ], + [ + { + "src": "./data/138.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "175" + ], + [ + { + "src": "./data/139.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "176" + ], + [ + { + "src": "./data/140.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "177" + ], + [ + { + "src": "./data/141.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "357" + ], + [ + { + "src": "./data/142.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "133" + ], + [ + { + "src": "./data/143.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "361" + ], + [ + { + "src": "./data/144.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "366" + ], + [ + { + "src": "./data/145.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "362" + ], + [ + { + "src": "./data/146.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "364" + ], + [ + { + "src": "./data/147.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "11" + ], + [ + { + "src": "./data/148.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "398" + ], + [ + { + "src": "./data/149.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "61" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "flower_deco", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/150.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "44" + ], + [ + { + "src": "./data/151.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "43" + ], + [ + { + "src": "./data/152.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "380" + ], + [ + { + "src": "./data/153.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "381" + ], + [ + { + "src": "./data/154.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "382" + ], + [ + { + "src": "./data/155.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "383" + ], + [ + { + "src": "./data/156.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "384" + ], + [ + { + "src": "./data/157.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "385" + ], + [ + { + "src": "./data/158.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "386" + ], + [ + { + "src": "./data/159.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "387" + ], + [ + { + "src": "./data/160.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "388" + ], + [ + { + "src": "./data/161.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "389" + ], + [ + { + "src": "./data/162.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "46" + ], + [ + { + "src": "./data/163.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "45" + ], + [ + { + "src": "./data/164.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "390" + ], + [ + { + "src": "./data/165.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "392" + ], + [ + { + "src": "./data/166.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "394" + ], + [ + { + "src": "./data/167.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "496" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "decoration", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/168.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "19" + ], + [ + { + "src": "./data/169.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "246" + ], + [ + { + "src": "./data/170.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "20" + ], + [ + { + "src": "./data/171.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "12" + ], + [ + { + "src": "./data/172.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "47" + ], + [ + { + "src": "./data/173.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "448" + ], + [ + { + "src": "./data/174.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "48" + ], + [ + { + "src": "./data/175.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "311" + ], + [ + { + "src": "./data/176.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "303" + ], + [ + { + "src": "./data/177.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "283" + ], + [ + { + "src": "./data/178.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "117" + ], + [ + { + "src": "./data/179.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "124" + ], + [ + { + "src": "./data/180.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "243" + ], + [ + { + "src": "./data/181.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "378" + ], + [ + { + "src": "./data/182.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "407" + ], + [ + { + "src": "./data/183.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "409" + ], + [ + { + "src": "./data/184.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "411" + ], + [ + { + "src": "./data/185.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "413" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "redstone", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/186.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "250" + ], + [ + { + "src": "./data/187.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "18" + ], + [ + { + "src": "./data/188.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "218" + ], + [ + { + "src": "./data/189.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "118" + ], + [ + { + "src": "./data/190.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "219" + ], + [ + { + "src": "./data/191.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "264" + ], + [ + { + "src": "./data/192.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "308" + ], + [ + { + "src": "./data/193.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "190" + ], + [ + { + "src": "./data/194.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "193" + ], + [ + { + "src": "./data/195.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "198" + ], + [ + { + "src": "./data/196.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "211" + ], + [ + { + "src": "./data/197.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "258" + ], + [ + { + "src": "./data/198.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "233" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "miscellanceous", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/199.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "166" + ], + [ + { + "src": "./data/200.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "286" + ], + [ + { + "src": "./data/201.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "351" + ], + [ + { + "src": "./data/202.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "92" + ], + [ + { + "src": "./data/203.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "95" + ], + [ + { + "src": "./data/204.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "82" + ], + [ + { + "src": "./data/205.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "168" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "spawnegg", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/206.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "173" + ], + [ + { + "src": "./data/207.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "174" + ], + [ + { + "src": "./data/208.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "129" + ], + [ + { + "src": "./data/209.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "282" + ], + [ + { + "src": "./data/210.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "127" + ], + [ + { + "src": "./data/211.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "126" + ], + [ + { + "src": "./data/212.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "197" + ], + [ + { + "src": "./data/213.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "196" + ], + [ + { + "src": "./data/214.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "281" + ], + [ + { + "src": "./data/215.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "274" + ], + [ + { + "src": "./data/216.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "128" + ], + [ + { + "src": "./data/217.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "280" + ], + [ + { + "src": "./data/218.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "275" + ], + [ + { + "src": "./data/219.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "276" + ], + [ + { + "src": "./data/220.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "277" + ], + [ + { + "src": "./data/221.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "279" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "food", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/222.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "112" + ], + [ + { + "src": "./data/223.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "288" + ], + [ + { + "src": "./data/224.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "306" + ], + [ + { + "src": "./data/225.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "113" + ], + [ + { + "src": "./data/226.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "171" + ], + [ + { + "src": "./data/227.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "164" + ], + [ + { + "src": "./data/228.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "289" + ], + [ + { + "src": "./data/229.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "119" + ], + [ + { + "src": "./data/230.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "114" + ], + [ + { + "src": "./data/231.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "172" + ], + [ + { + "src": "./data/232.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "165" + ], + [ + { + "src": "./data/233.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "290" + ], + [ + { + "src": "./data/234.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "162" + ], + [ + { + "src": "./data/235.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "111" + ], + [ + { + "src": "./data/236.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "299" + ], + [ + { + "src": "./data/237.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "307" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "tool", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/238.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "110" + ], + [ + { + "src": "./data/239.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "301" + ], + [ + { + "src": "./data/240.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "97" + ], + [ + { + "src": "./data/241.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "99" + ], + [ + { + "src": "./data/242.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "85" + ], + [ + { + "src": "./data/243.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "145" + ], + [ + { + "src": "./data/244.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "98" + ], + [ + { + "src": "./data/245.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "86" + ], + [ + { + "src": "./data/246.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "83" + ], + [ + { + "src": "./data/247.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "146" + ], + [ + { + "src": "./data/248.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "87" + ], + [ + { + "src": "./data/249.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "88" + ], + [ + { + "src": "./data/250.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "93" + ], + [ + { + "src": "./data/251.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "147" + ], + [ + { + "src": "./data/252.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "62" + ], + [ + { + "src": "./data/253.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "39" + ], + [ + { + "src": "./data/254.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "63" + ], + [ + { + "src": "./data/255.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "148" + ], + [ + { + "src": "./data/256.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "103" + ], + [ + { + "src": "./data/257.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "102" + ], + [ + { + "src": "./data/258.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "104" + ], + [ + { + "src": "./data/259.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "149" + ], + [ + { + "src": "./data/260.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "441" + ], + [ + { + "src": "./data/261.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "442" + ], + [ + { + "src": "./data/262.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "443" + ], + [ + { + "src": "./data/263.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "444" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "weapon", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/264.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "105" + ], + [ + { + "src": "./data/265.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "106" + ], + [ + { + "src": "./data/266.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "107" + ], + [ + { + "src": "./data/267.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "108" + ], + [ + { + "src": "./data/268.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "109" + ], + [ + { + "src": "./data/269.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "440" + ], + [ + { + "src": "./data/270.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "130" + ], + [ + { + "src": "./data/271.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "131" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "armor", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/272.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "150" + ], + [ + { + "src": "./data/273.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "154" + ], + [ + { + "src": "./data/274.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "158" + ], + [ + { + "src": "./data/275.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "367" + ], + [ + { + "src": "./data/276.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "368" + ], + [ + { + "src": "./data/277.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "369" + ], + [ + { + "src": "./data/278.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "151" + ], + [ + { + "src": "./data/279.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "155" + ], + [ + { + "src": "./data/280.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "159" + ], + [ + { + "src": "./data/281.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "151" + ], + [ + { + "src": "./data/282.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "157" + ], + [ + { + "src": "./data/283.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "161" + ], + [ + { + "src": "./data/284.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "152" + ], + [ + { + "src": "./data/285.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "156" + ], + [ + { + "src": "./data/286.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "160" + ], + [ + { + "src": "./data/287.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "445" + ], + [ + { + "src": "./data/288.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "446" + ], + [ + { + "src": "./data/289.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "447" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "ore_mate", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/290.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "90" + ], + [ + { + "src": "./data/291.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "91" + ], + [ + { + "src": "./data/292.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "84" + ], + [ + { + "src": "./data/293.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "89" + ], + [ + { + "src": "./data/294.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "272" + ], + [ + { + "src": "./data/295.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "438" + ], + [ + { + "src": "./data/296.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "310" + ], + [ + { + "src": "./data/297.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "422" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "material", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/298.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "302" + ], + [ + { + "src": "./data/299.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "96" + ], + [ + { + "src": "./data/300.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "101" + ], + [ + { + "src": "./data/301.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "163" + ], + [ + { + "src": "./data/302.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "94" + ], + [ + { + "src": "./data/303.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "437" + ], + [ + { + "src": "./data/304.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "167" + ], + [ + { + "src": "./data/305.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "169" + ], + [ + { + "src": "./data/306.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "170" + ], + [ + { + "src": "./data/307.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "194" + ], + [ + { + "src": "./data/308.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "195" + ], + [ + { + "src": "./data/309.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "142" + ], + [ + { + "src": "./data/310.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "143" + ], + [ + { + "src": "./data/311.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "313" + ], + [ + { + "src": "./data/312.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "314" + ], + [ + { + "src": "./data/313.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "300" + ], + [ + { + "src": "./data/314.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "125" + ], + [ + { + "src": "./data/315.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "370" + ], + [ + { + "src": "./data/316.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "371" + ], + [ + { + "src": "./data/317.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "374" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "dye", + "message0": "%1", + "args0": [ + { + "type": "field_dropdown", + "name": "type", + "options": [ + [ + { + "src": "./data/318.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "319" + ], + [ + { + "src": "./data/319.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "320" + ], + [ + { + "src": "./data/320.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "321" + ], + [ + { + "src": "./data/321.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "322" + ], + [ + { + "src": "./data/322.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "323" + ], + [ + { + "src": "./data/323.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "324" + ], + [ + { + "src": "./data/324.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "325" + ], + [ + { + "src": "./data/325.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "326" + ], + [ + { + "src": "./data/326.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "327" + ], + [ + { + "src": "./data/327.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "328" + ], + [ + { + "src": "./data/328.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "329" + ], + [ + { + "src": "./data/329.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "330" + ], + [ + { + "src": "./data/330.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "331" + ], + [ + { + "src": "./data/331.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "332" + ], + [ + { + "src": "./data/332.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "333" + ], + [ + { + "src": "./data/333.png", + "width": 40, + "height": 40, + "alt": "*" + }, + "334" + ] + ] + } + ], + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "data" + }, + { + "type": "add_tool", + "message0": "Add tool data %1 Name: %2 %3 Costume ID: %4 %5 Mining speed: %6 %7 Type: %9 of %8 %10 Atack damage: %11 %12 Durability: %13", + "args0": [ + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "1" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "7" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "2" + }, + { + "type": "input_end_row" + }, + { + "type": "field_dropdown", + "name": "4", + "options": [ + [ + "wooden", + "1" + ], + [ + "stone", + "2" + ], + [ + "iron", + "3" + ], + [ + "diamond", + "4" + ], + [ + "golden", + "5" + ], + [ + "netherite", + "6" + ] + ] + }, + { + "type": "field_dropdown", + "name": "3", + "options": [ + [ + "sword", + "W" + ], + [ + "pickaxe", + "P" + ], + [ + "ax", + "A" + ], + [ + "shovel", + "S" + ], + [ + "hoe", + "H" + ] + ] + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "5" + }, + { + "type": "input_end_row" + }, + { + "type": "input_value", + "name": "6" + } + ], + "previousStatement": null, + "nextStatement": null, + "tooltip": "", + "helpUrl": "", + "style": "motion" + }, + { + "type": "join", + "message0": "join %1 %2", + "args0": [ + { + "type": "input_value", + "name": "value" + }, + { + "type": "input_value", + "name": "value2" + } + ], + "inputsInline": true, + "output": null, + "tooltip": "", + "helpUrl": "", + "style": "operators" + } +]); \ No newline at end of file diff --git a/public/data/1.png b/public/data/1.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ff224445c97605c8277061eb4a72e1fa378389 Binary files /dev/null and b/public/data/1.png differ diff --git a/public/data/10.png b/public/data/10.png new file mode 100644 index 0000000000000000000000000000000000000000..ee37035e3f643240659d88f8356e768fbe205ed8 Binary files /dev/null and b/public/data/10.png differ diff --git a/public/data/100.png b/public/data/100.png new file mode 100644 index 0000000000000000000000000000000000000000..0df2bd7cb3d3337af4c046a0a1fb30a43776941f Binary files /dev/null and b/public/data/100.png differ diff --git a/public/data/101.png b/public/data/101.png new file mode 100644 index 0000000000000000000000000000000000000000..a3cf23a495608af70203af82c0cec51e5ac11ca9 Binary files /dev/null and b/public/data/101.png differ diff --git a/public/data/102.png b/public/data/102.png new file mode 100644 index 0000000000000000000000000000000000000000..baac85388c97cfba13c565c863ea2eadb2e44bdf Binary files /dev/null and b/public/data/102.png differ diff --git a/public/data/103.png b/public/data/103.png new file mode 100644 index 0000000000000000000000000000000000000000..17c2fb6ebba3f5445720bdb0be6aa10ca748fbf8 Binary files /dev/null and b/public/data/103.png differ diff --git a/public/data/104.png b/public/data/104.png new file mode 100644 index 0000000000000000000000000000000000000000..af50db094e451926cc24a31a9962153785854622 Binary files /dev/null and b/public/data/104.png differ diff --git a/public/data/105.png b/public/data/105.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f5d9db6282d22a9d1885bb542fd916418e56d8 Binary files /dev/null and b/public/data/105.png differ diff --git a/public/data/106.png b/public/data/106.png new file mode 100644 index 0000000000000000000000000000000000000000..2f663f013677bc37f228c7f092d82c341ba6a7f6 Binary files /dev/null and b/public/data/106.png differ diff --git a/public/data/107.png b/public/data/107.png new file mode 100644 index 0000000000000000000000000000000000000000..2013d9851b29f9d18fdccf15e6e0817466743ae8 Binary files /dev/null and b/public/data/107.png differ diff --git a/public/data/108.png b/public/data/108.png new file mode 100644 index 0000000000000000000000000000000000000000..93b01ded63bf92368de8f5db02856d7061655ff5 Binary files /dev/null and b/public/data/108.png differ diff --git a/public/data/109.png b/public/data/109.png new file mode 100644 index 0000000000000000000000000000000000000000..cd8c43386a25304db305e78fb77ba784888e7a78 Binary files /dev/null and b/public/data/109.png differ diff --git a/public/data/11.png b/public/data/11.png new file mode 100644 index 0000000000000000000000000000000000000000..7a274724e4b7013b305d5b6c69dcc806a306f06f Binary files /dev/null and b/public/data/11.png differ diff --git a/public/data/110.png b/public/data/110.png new file mode 100644 index 0000000000000000000000000000000000000000..a29146db1b70b8d9e4d18e24c71c31b6a9247a13 Binary files /dev/null and b/public/data/110.png differ diff --git a/public/data/111.png b/public/data/111.png new file mode 100644 index 0000000000000000000000000000000000000000..7d048859eb2ad12926c56392dc38730b99b3fd9d Binary files /dev/null and b/public/data/111.png differ diff --git a/public/data/112.png b/public/data/112.png new file mode 100644 index 0000000000000000000000000000000000000000..7c715cbc03c84b9fb494e611d58f007ba19ce879 Binary files /dev/null and b/public/data/112.png differ diff --git a/public/data/113.png b/public/data/113.png new file mode 100644 index 0000000000000000000000000000000000000000..17e5096de8cc7038c84a89e966d14c13074ebe92 Binary files /dev/null and b/public/data/113.png differ diff --git a/public/data/114.png b/public/data/114.png new file mode 100644 index 0000000000000000000000000000000000000000..5d9f466d5e37b90cfc9d026e820235dafe80dd91 Binary files /dev/null and b/public/data/114.png differ diff --git a/public/data/115.png b/public/data/115.png new file mode 100644 index 0000000000000000000000000000000000000000..a5e73aaa028b0d90d758f23fd4edaac126110b19 Binary files /dev/null and b/public/data/115.png differ diff --git a/public/data/116.png b/public/data/116.png new file mode 100644 index 0000000000000000000000000000000000000000..c40e054e8552a3e97176633a78befa09b75de157 Binary files /dev/null and b/public/data/116.png differ diff --git a/public/data/117.png b/public/data/117.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1c34c084b39759e6d4ab9a6c9a933042cbc719 Binary files /dev/null and b/public/data/117.png differ diff --git a/public/data/118.png b/public/data/118.png new file mode 100644 index 0000000000000000000000000000000000000000..cf92f1e8206ccf13b278075b1ddf3b6aa95e4614 Binary files /dev/null and b/public/data/118.png differ diff --git a/public/data/119.png b/public/data/119.png new file mode 100644 index 0000000000000000000000000000000000000000..b5c5689ca2dbd6adab93e0fcf7c24516c416941b Binary files /dev/null and b/public/data/119.png differ diff --git a/public/data/12.png b/public/data/12.png new file mode 100644 index 0000000000000000000000000000000000000000..02c199feb3a271a214bf7e69b04715802e614425 Binary files /dev/null and b/public/data/12.png differ diff --git a/public/data/120.png b/public/data/120.png new file mode 100644 index 0000000000000000000000000000000000000000..c71a34bb11d7c700b2589a1eced34b645c276ab2 Binary files /dev/null and b/public/data/120.png differ diff --git a/public/data/121.png b/public/data/121.png new file mode 100644 index 0000000000000000000000000000000000000000..05416a6dcf50539acc9f6262324f7d827dbc2c0e Binary files /dev/null and b/public/data/121.png differ diff --git a/public/data/122.png b/public/data/122.png new file mode 100644 index 0000000000000000000000000000000000000000..a97a1b74b73fb566c5c508fda4d78f78542ba27f Binary files /dev/null and b/public/data/122.png differ diff --git a/public/data/123.png b/public/data/123.png new file mode 100644 index 0000000000000000000000000000000000000000..33b4e216d6a70c931c42e8f0299f55b47b514ea0 Binary files /dev/null and b/public/data/123.png differ diff --git a/public/data/124.png b/public/data/124.png new file mode 100644 index 0000000000000000000000000000000000000000..116bee7c12395f2749f1912e580c8d73cecb8ae4 Binary files /dev/null and b/public/data/124.png differ diff --git a/public/data/125.png b/public/data/125.png new file mode 100644 index 0000000000000000000000000000000000000000..57af83ab4083245d38f7b44194ae7c1e5603e745 Binary files /dev/null and b/public/data/125.png differ diff --git a/public/data/126.png b/public/data/126.png new file mode 100644 index 0000000000000000000000000000000000000000..6e563c19d597ffe66672cb814b65ba75994bc161 Binary files /dev/null and b/public/data/126.png differ diff --git a/public/data/127.png b/public/data/127.png new file mode 100644 index 0000000000000000000000000000000000000000..6395b9b3e878ea6040b7e05114869d4f5321933b Binary files /dev/null and b/public/data/127.png differ diff --git a/public/data/128.png b/public/data/128.png new file mode 100644 index 0000000000000000000000000000000000000000..9c01b978f7fd3d4e24750cb68614135dd8aac3ab Binary files /dev/null and b/public/data/128.png differ diff --git a/public/data/129.png b/public/data/129.png new file mode 100644 index 0000000000000000000000000000000000000000..3778ebc5f9bd34785f152d059b235cda14dc7829 Binary files /dev/null and b/public/data/129.png differ diff --git a/public/data/13.png b/public/data/13.png new file mode 100644 index 0000000000000000000000000000000000000000..acae0a61e24081c05513a8a63b83464de0af040f Binary files /dev/null and b/public/data/13.png differ diff --git a/public/data/130.png b/public/data/130.png new file mode 100644 index 0000000000000000000000000000000000000000..96fcb7ade2b360ef218fe5f3b6edb7cfd6c21e94 Binary files /dev/null and b/public/data/130.png differ diff --git a/public/data/131.png b/public/data/131.png new file mode 100644 index 0000000000000000000000000000000000000000..dcc9d1589459c1539e34566d1f9ad7775cbfef8d Binary files /dev/null and b/public/data/131.png differ diff --git a/public/data/132.png b/public/data/132.png new file mode 100644 index 0000000000000000000000000000000000000000..836a731fe382827c22ac99ac57c924a4e0e319ee Binary files /dev/null and b/public/data/132.png differ diff --git a/public/data/133.png b/public/data/133.png new file mode 100644 index 0000000000000000000000000000000000000000..e4d644733043bca6905d45064e87f2c26f5d86be Binary files /dev/null and b/public/data/133.png differ diff --git a/public/data/134.png b/public/data/134.png new file mode 100644 index 0000000000000000000000000000000000000000..86be67cb48cc4f620fbe3e2b1aa896c72fec8fef Binary files /dev/null and b/public/data/134.png differ diff --git a/public/data/135.png b/public/data/135.png new file mode 100644 index 0000000000000000000000000000000000000000..7fb818553e8c68b2241f6cf7d8842bc9c178d792 Binary files /dev/null and b/public/data/135.png differ diff --git a/public/data/136.png b/public/data/136.png new file mode 100644 index 0000000000000000000000000000000000000000..471d84fa9626fe6c8a1bd59e196a8228f799a42c Binary files /dev/null and b/public/data/136.png differ diff --git a/public/data/137.png b/public/data/137.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a234ae8c993f125c4f116ff882bbdd91753311 Binary files /dev/null and b/public/data/137.png differ diff --git a/public/data/138.png b/public/data/138.png new file mode 100644 index 0000000000000000000000000000000000000000..b34a9dfc92c2f31f8d11f78592d1343146ffca1d Binary files /dev/null and b/public/data/138.png differ diff --git a/public/data/139.png b/public/data/139.png new file mode 100644 index 0000000000000000000000000000000000000000..e51a9672c36cde5f5c571c1a96cad3c06ff30f38 Binary files /dev/null and b/public/data/139.png differ diff --git a/public/data/14.png b/public/data/14.png new file mode 100644 index 0000000000000000000000000000000000000000..05d6e2c3f1429ea6db1e03588e65bb8acf0e62f6 Binary files /dev/null and b/public/data/14.png differ diff --git a/public/data/140.png b/public/data/140.png new file mode 100644 index 0000000000000000000000000000000000000000..12eb281f750ebc565b1292d8a26d1fb65d93bc7c Binary files /dev/null and b/public/data/140.png differ diff --git a/public/data/141.png b/public/data/141.png new file mode 100644 index 0000000000000000000000000000000000000000..dd160fb353cc2d48a862fd12712501eb529cef57 Binary files /dev/null and b/public/data/141.png differ diff --git a/public/data/142.png b/public/data/142.png new file mode 100644 index 0000000000000000000000000000000000000000..0eeea98c1c1e231d7deb39a0bef67be975e6415c Binary files /dev/null and b/public/data/142.png differ diff --git a/public/data/143.png b/public/data/143.png new file mode 100644 index 0000000000000000000000000000000000000000..35e1958ebeb13dd8cfdb5e76b7e669533c1764e2 Binary files /dev/null and b/public/data/143.png differ diff --git a/public/data/144.png b/public/data/144.png new file mode 100644 index 0000000000000000000000000000000000000000..d8c3ff072e7ba21dbba34a641a0cf8f9ddc8a441 Binary files /dev/null and b/public/data/144.png differ diff --git a/public/data/145.png b/public/data/145.png new file mode 100644 index 0000000000000000000000000000000000000000..1e1a47b3763e469a75eb449de6befe33f667b67c Binary files /dev/null and b/public/data/145.png differ diff --git a/public/data/146.png b/public/data/146.png new file mode 100644 index 0000000000000000000000000000000000000000..2a57697d80fe0e41915a6da46be869fdd5b4ab7c Binary files /dev/null and b/public/data/146.png differ diff --git a/public/data/147.png b/public/data/147.png new file mode 100644 index 0000000000000000000000000000000000000000..2665e7ff9a0e6d1b89c6eb4f22a67eb515d922ed Binary files /dev/null and b/public/data/147.png differ diff --git a/public/data/148.png b/public/data/148.png new file mode 100644 index 0000000000000000000000000000000000000000..7ad4f960af8f4231815888e68781c7f0ebb27fae Binary files /dev/null and b/public/data/148.png differ diff --git a/public/data/149.png b/public/data/149.png new file mode 100644 index 0000000000000000000000000000000000000000..7deea57c2cbcf3f010d5c7fa6464f40f5c1aaacb Binary files /dev/null and b/public/data/149.png differ diff --git a/public/data/15.png b/public/data/15.png new file mode 100644 index 0000000000000000000000000000000000000000..2b9a939cc972ca807e2d0b3041cb1904b19f5f62 Binary files /dev/null and b/public/data/15.png differ diff --git a/public/data/150.png b/public/data/150.png new file mode 100644 index 0000000000000000000000000000000000000000..ade9235c6f8458d8f2944a2db60ab12d90447178 Binary files /dev/null and b/public/data/150.png differ diff --git a/public/data/151.png b/public/data/151.png new file mode 100644 index 0000000000000000000000000000000000000000..4687dd5042762db4d19d3608e19090f1158da295 Binary files /dev/null and b/public/data/151.png differ diff --git a/public/data/152.png b/public/data/152.png new file mode 100644 index 0000000000000000000000000000000000000000..1ca9ea013553cbf657568552576d1e3f908d335e Binary files /dev/null and b/public/data/152.png differ diff --git a/public/data/153.png b/public/data/153.png new file mode 100644 index 0000000000000000000000000000000000000000..85feb20861ea6dfee7bc94603634e863b508c3f7 Binary files /dev/null and b/public/data/153.png differ diff --git a/public/data/154.png b/public/data/154.png new file mode 100644 index 0000000000000000000000000000000000000000..6f1b486af0893d324cc5c4d9fde275e6343b2884 Binary files /dev/null and b/public/data/154.png differ diff --git a/public/data/155.png b/public/data/155.png new file mode 100644 index 0000000000000000000000000000000000000000..0263294cf85579f79369f5c0dc4369a577d3dd41 Binary files /dev/null and b/public/data/155.png differ diff --git a/public/data/156.png b/public/data/156.png new file mode 100644 index 0000000000000000000000000000000000000000..7cdfe61a366033defdfb04c1e26edffad85cc510 Binary files /dev/null and b/public/data/156.png differ diff --git a/public/data/157.png b/public/data/157.png new file mode 100644 index 0000000000000000000000000000000000000000..35584e05799bb681ef401a6b31c40e39e788256b Binary files /dev/null and b/public/data/157.png differ diff --git a/public/data/158.png b/public/data/158.png new file mode 100644 index 0000000000000000000000000000000000000000..f10ed10f68d589eadb79c2e0590d164b9a656efa Binary files /dev/null and b/public/data/158.png differ diff --git a/public/data/159.png b/public/data/159.png new file mode 100644 index 0000000000000000000000000000000000000000..5f13e10946142d354bcdd2415c714034a8b719bb Binary files /dev/null and b/public/data/159.png differ diff --git a/public/data/16.png b/public/data/16.png new file mode 100644 index 0000000000000000000000000000000000000000..43e8fa014c084c0aa9b71ff784972eb9836d815b Binary files /dev/null and b/public/data/16.png differ diff --git a/public/data/160.png b/public/data/160.png new file mode 100644 index 0000000000000000000000000000000000000000..704e613873e763398c69ace6b264ca2cab14b4d1 Binary files /dev/null and b/public/data/160.png differ diff --git a/public/data/161.png b/public/data/161.png new file mode 100644 index 0000000000000000000000000000000000000000..b1963c29bce2ce160d0798ae3ca5785cc7a95baa Binary files /dev/null and b/public/data/161.png differ diff --git a/public/data/162.png b/public/data/162.png new file mode 100644 index 0000000000000000000000000000000000000000..dfebe99acad27b47aede14cd2ff21ab9864d25ff Binary files /dev/null and b/public/data/162.png differ diff --git a/public/data/163.png b/public/data/163.png new file mode 100644 index 0000000000000000000000000000000000000000..0b539fb9b0e508176753e753070e7341c4fdbbb3 Binary files /dev/null and b/public/data/163.png differ diff --git a/public/data/164.png b/public/data/164.png new file mode 100644 index 0000000000000000000000000000000000000000..53c3f86b6024b3b32a9841c07f2912c729231c1e Binary files /dev/null and b/public/data/164.png differ diff --git a/public/data/165.png b/public/data/165.png new file mode 100644 index 0000000000000000000000000000000000000000..fcd14928acdd8956255b1570801800c2e7c9cf0a Binary files /dev/null and b/public/data/165.png differ diff --git a/public/data/166.png b/public/data/166.png new file mode 100644 index 0000000000000000000000000000000000000000..6e538562cc0fd52232eda7d2ddae0b3cbed7065f Binary files /dev/null and b/public/data/166.png differ diff --git a/public/data/167.png b/public/data/167.png new file mode 100644 index 0000000000000000000000000000000000000000..6cbfa709bd0370e96cc53015780e95620ee9b292 Binary files /dev/null and b/public/data/167.png differ diff --git a/public/data/168.png b/public/data/168.png new file mode 100644 index 0000000000000000000000000000000000000000..a3e0785a4a48779eefecee56f74dbf4f5d67c083 Binary files /dev/null and b/public/data/168.png differ diff --git a/public/data/169.png b/public/data/169.png new file mode 100644 index 0000000000000000000000000000000000000000..1ba98e78360838a4721b5ef6c0a193d16cad8b71 Binary files /dev/null and b/public/data/169.png differ diff --git a/public/data/17.png b/public/data/17.png new file mode 100644 index 0000000000000000000000000000000000000000..e9d030ae14e0589db94c23f11994de88c99e6937 Binary files /dev/null and b/public/data/17.png differ diff --git a/public/data/170.png b/public/data/170.png new file mode 100644 index 0000000000000000000000000000000000000000..cea8c41baadad88539fc5515bf7d453169b67cdd Binary files /dev/null and b/public/data/170.png differ diff --git a/public/data/171.png b/public/data/171.png new file mode 100644 index 0000000000000000000000000000000000000000..f89d326fd4401fbe0d41e696ae05467f81b56477 Binary files /dev/null and b/public/data/171.png differ diff --git a/public/data/172.png b/public/data/172.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1e80f62526affa79769e2f3549c5292b2bca48 Binary files /dev/null and b/public/data/172.png differ diff --git a/public/data/173.png b/public/data/173.png new file mode 100644 index 0000000000000000000000000000000000000000..a05a61e207c12615fd34af2cf7ef18276d7f8c2e Binary files /dev/null and b/public/data/173.png differ diff --git a/public/data/174.png b/public/data/174.png new file mode 100644 index 0000000000000000000000000000000000000000..7462329751a3260cf2f27066139bccda4239aa88 Binary files /dev/null and b/public/data/174.png differ diff --git a/public/data/175.png b/public/data/175.png new file mode 100644 index 0000000000000000000000000000000000000000..1332af724ce2474cb8f6d42d70fbc4ae3e09a6ef Binary files /dev/null and b/public/data/175.png differ diff --git a/public/data/176.png b/public/data/176.png new file mode 100644 index 0000000000000000000000000000000000000000..5e00ae453e0a93c1ac9bd46916e33cf08bd7814a Binary files /dev/null and b/public/data/176.png differ diff --git a/public/data/177.png b/public/data/177.png new file mode 100644 index 0000000000000000000000000000000000000000..69277526ae7ebabf9064fc303ec7c0fc55e22219 Binary files /dev/null and b/public/data/177.png differ diff --git a/public/data/178.png b/public/data/178.png new file mode 100644 index 0000000000000000000000000000000000000000..d2f1492baf4ea4b65bd7d67bc754de6349f781ce Binary files /dev/null and b/public/data/178.png differ diff --git a/public/data/179.png b/public/data/179.png new file mode 100644 index 0000000000000000000000000000000000000000..7947db4278bb2a6983758d48e5d35aa1bcc3c378 Binary files /dev/null and b/public/data/179.png differ diff --git a/public/data/18.png b/public/data/18.png new file mode 100644 index 0000000000000000000000000000000000000000..2a28a8d2568bc84fa572252fa5c3bdb7e1e261a6 Binary files /dev/null and b/public/data/18.png differ diff --git a/public/data/180.png b/public/data/180.png new file mode 100644 index 0000000000000000000000000000000000000000..3e5b6a42bba4b01cb0ee2c414dfa06acc8c28790 Binary files /dev/null and b/public/data/180.png differ diff --git a/public/data/181.png b/public/data/181.png new file mode 100644 index 0000000000000000000000000000000000000000..d8748695bc91aa19984c71fe7006c75190a26569 Binary files /dev/null and b/public/data/181.png differ diff --git a/public/data/182.png b/public/data/182.png new file mode 100644 index 0000000000000000000000000000000000000000..ae3bd06bcdef305d66bd4b5891a30f84c20ada14 Binary files /dev/null and b/public/data/182.png differ diff --git a/public/data/183.png b/public/data/183.png new file mode 100644 index 0000000000000000000000000000000000000000..71f29155a428e1c1143d43a0bac76f5d0d67a0e1 Binary files /dev/null and b/public/data/183.png differ diff --git a/public/data/184.png b/public/data/184.png new file mode 100644 index 0000000000000000000000000000000000000000..b3530a20c1e68c63be0168dac75963ae8ddc386d Binary files /dev/null and b/public/data/184.png differ diff --git a/public/data/185.png b/public/data/185.png new file mode 100644 index 0000000000000000000000000000000000000000..bbdadfbbb2cf7667b3d2a858f9d9cf2ce80c39d1 Binary files /dev/null and b/public/data/185.png differ diff --git a/public/data/186.png b/public/data/186.png new file mode 100644 index 0000000000000000000000000000000000000000..6794fc0af8a78747a1b9f06ddcd28beab3b9f1b5 Binary files /dev/null and b/public/data/186.png differ diff --git a/public/data/187.png b/public/data/187.png new file mode 100644 index 0000000000000000000000000000000000000000..2d32ee73dfa0060ee7c35890fa76cdb9597a69df Binary files /dev/null and b/public/data/187.png differ diff --git a/public/data/188.png b/public/data/188.png new file mode 100644 index 0000000000000000000000000000000000000000..14bfaa6ba385be439b2c9565b3f47e9f7e843fba Binary files /dev/null and b/public/data/188.png differ diff --git a/public/data/189.png b/public/data/189.png new file mode 100644 index 0000000000000000000000000000000000000000..9abfd212ec8dd5149dfa614774643e2861864d8b Binary files /dev/null and b/public/data/189.png differ diff --git a/public/data/19.png b/public/data/19.png new file mode 100644 index 0000000000000000000000000000000000000000..09d1bd8daf3e45e61464df1883262c45b205994d Binary files /dev/null and b/public/data/19.png differ diff --git a/public/data/190.png b/public/data/190.png new file mode 100644 index 0000000000000000000000000000000000000000..7c6a3a06d4e6c1256284254a2359bf80a5a9c789 Binary files /dev/null and b/public/data/190.png differ diff --git a/public/data/191.png b/public/data/191.png new file mode 100644 index 0000000000000000000000000000000000000000..6099fdc608335597374226dd5d143240d191c4c8 Binary files /dev/null and b/public/data/191.png differ diff --git a/public/data/192.png b/public/data/192.png new file mode 100644 index 0000000000000000000000000000000000000000..d4a1a7a938fe177bbea89d14fb6e00f97d5dc824 Binary files /dev/null and b/public/data/192.png differ diff --git a/public/data/193.png b/public/data/193.png new file mode 100644 index 0000000000000000000000000000000000000000..b5b82de2575c6f721bd3ec23200557f36349185b Binary files /dev/null and b/public/data/193.png differ diff --git a/public/data/194.png b/public/data/194.png new file mode 100644 index 0000000000000000000000000000000000000000..610c93b4bc67b2657e051b7a955e97d256ee2746 Binary files /dev/null and b/public/data/194.png differ diff --git a/public/data/195.png b/public/data/195.png new file mode 100644 index 0000000000000000000000000000000000000000..ec2037cbbba5557e6a1f5a70a20248681d9d37b8 Binary files /dev/null and b/public/data/195.png differ diff --git a/public/data/196.png b/public/data/196.png new file mode 100644 index 0000000000000000000000000000000000000000..227a3aa94231b47c349939dd09852079278e30ea Binary files /dev/null and b/public/data/196.png differ diff --git a/public/data/197.png b/public/data/197.png new file mode 100644 index 0000000000000000000000000000000000000000..2d77f2cfcd79e1fb28a1fe9aa17a396562ad4539 Binary files /dev/null and b/public/data/197.png differ diff --git a/public/data/198.png b/public/data/198.png new file mode 100644 index 0000000000000000000000000000000000000000..b373016aea04aad47ee0544b17e9e217da2da22d Binary files /dev/null and b/public/data/198.png differ diff --git a/public/data/199.png b/public/data/199.png new file mode 100644 index 0000000000000000000000000000000000000000..bcdaf324771a7510cfeee34e7813e2daeb01114d Binary files /dev/null and b/public/data/199.png differ diff --git a/public/data/2.png b/public/data/2.png new file mode 100644 index 0000000000000000000000000000000000000000..effc84c1b4195274e195349f8df0c1fb382dcbf0 Binary files /dev/null and b/public/data/2.png differ diff --git a/public/data/20.png b/public/data/20.png new file mode 100644 index 0000000000000000000000000000000000000000..0d4de429d5a559c8833577d7ed99aa9a42a89ebf Binary files /dev/null and b/public/data/20.png differ diff --git a/public/data/200.png b/public/data/200.png new file mode 100644 index 0000000000000000000000000000000000000000..23daf9fdef4f4a59d9251af2c50063a54c37ac63 Binary files /dev/null and b/public/data/200.png differ diff --git a/public/data/201.png b/public/data/201.png new file mode 100644 index 0000000000000000000000000000000000000000..8f5e732c431b53ec7983d40f0e789abfa060a66a Binary files /dev/null and b/public/data/201.png differ diff --git a/public/data/202.png b/public/data/202.png new file mode 100644 index 0000000000000000000000000000000000000000..4806b9b2bffc3ec40f6cbe3dc507ece7a364ef11 Binary files /dev/null and b/public/data/202.png differ diff --git a/public/data/203.png b/public/data/203.png new file mode 100644 index 0000000000000000000000000000000000000000..064be9da15255faaed48a12472b2de86863edf29 Binary files /dev/null and b/public/data/203.png differ diff --git a/public/data/204.png b/public/data/204.png new file mode 100644 index 0000000000000000000000000000000000000000..b4a3dab01d6762abae3631b060f454fb7cd1525b Binary files /dev/null and b/public/data/204.png differ diff --git a/public/data/205.png b/public/data/205.png new file mode 100644 index 0000000000000000000000000000000000000000..7d36aea9d584cd137fff2a6edc771cf43dfbb8da Binary files /dev/null and b/public/data/205.png differ diff --git a/public/data/206.png b/public/data/206.png new file mode 100644 index 0000000000000000000000000000000000000000..e7b0bc9ccb4307ddca81c6c071b87236ba8e477e Binary files /dev/null and b/public/data/206.png differ diff --git a/public/data/207.png b/public/data/207.png new file mode 100644 index 0000000000000000000000000000000000000000..bf64eb0b795b316614fb2d3b2d7a5104a4bd198a Binary files /dev/null and b/public/data/207.png differ diff --git a/public/data/208.png b/public/data/208.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e839e78b8e58d70549c97fd0d924fb7eee7058 Binary files /dev/null and b/public/data/208.png differ diff --git a/public/data/209.png b/public/data/209.png new file mode 100644 index 0000000000000000000000000000000000000000..6dcb174ec9bc4f0869e489dd20e9e01851070d1b Binary files /dev/null and b/public/data/209.png differ diff --git a/public/data/21.png b/public/data/21.png new file mode 100644 index 0000000000000000000000000000000000000000..c889ee5c3f3c3c99289e35f12b5fd13104d24b76 Binary files /dev/null and b/public/data/21.png differ diff --git a/public/data/210.png b/public/data/210.png new file mode 100644 index 0000000000000000000000000000000000000000..329fdfe2b7f66600699807d687bbb1138e6e104e Binary files /dev/null and b/public/data/210.png differ diff --git a/public/data/211.png b/public/data/211.png new file mode 100644 index 0000000000000000000000000000000000000000..2faca3c9133fc07ce0dda2698800ad4d79f0118f Binary files /dev/null and b/public/data/211.png differ diff --git a/public/data/212.png b/public/data/212.png new file mode 100644 index 0000000000000000000000000000000000000000..a0f35881c6cf35ca4593f07f0c5a319228425c54 Binary files /dev/null and b/public/data/212.png differ diff --git a/public/data/213.png b/public/data/213.png new file mode 100644 index 0000000000000000000000000000000000000000..12b0672abd1d533d2a6ce45e1419b3418eb1e38b Binary files /dev/null and b/public/data/213.png differ diff --git a/public/data/214.png b/public/data/214.png new file mode 100644 index 0000000000000000000000000000000000000000..971738c115d4fef6202ea7f19b4dc70aca3d0d50 Binary files /dev/null and b/public/data/214.png differ diff --git a/public/data/215.png b/public/data/215.png new file mode 100644 index 0000000000000000000000000000000000000000..65399fd0e1080a86a4ba14c031e813f6335f92a3 Binary files /dev/null and b/public/data/215.png differ diff --git a/public/data/216.png b/public/data/216.png new file mode 100644 index 0000000000000000000000000000000000000000..93d771f0a56a6194db00bda3c62e158ec6d141da Binary files /dev/null and b/public/data/216.png differ diff --git a/public/data/217.png b/public/data/217.png new file mode 100644 index 0000000000000000000000000000000000000000..476a4a0729b1e309763d5efc3d2af04a42645e49 Binary files /dev/null and b/public/data/217.png differ diff --git a/public/data/218.png b/public/data/218.png new file mode 100644 index 0000000000000000000000000000000000000000..98d163106cd9c782750cf8393ace43461ce13a1a Binary files /dev/null and b/public/data/218.png differ diff --git a/public/data/219.png b/public/data/219.png new file mode 100644 index 0000000000000000000000000000000000000000..ad9b58e3051ad63d1ecf43a9423e5b60448771e8 Binary files /dev/null and b/public/data/219.png differ diff --git a/public/data/22.png b/public/data/22.png new file mode 100644 index 0000000000000000000000000000000000000000..7ddecba581c9b72adf0ffbb585e32c281478f6bc Binary files /dev/null and b/public/data/22.png differ diff --git a/public/data/220.png b/public/data/220.png new file mode 100644 index 0000000000000000000000000000000000000000..e244b35bc474415a5efb94e1613be31c4281fee2 Binary files /dev/null and b/public/data/220.png differ diff --git a/public/data/221.png b/public/data/221.png new file mode 100644 index 0000000000000000000000000000000000000000..431585699771206b0b6b6d9793fde15397dc3d2a Binary files /dev/null and b/public/data/221.png differ diff --git a/public/data/222.png b/public/data/222.png new file mode 100644 index 0000000000000000000000000000000000000000..18ff340e8efb2b5cd49bf69e0747421524dd7360 Binary files /dev/null and b/public/data/222.png differ diff --git a/public/data/223.png b/public/data/223.png new file mode 100644 index 0000000000000000000000000000000000000000..522ecc6951966bbbb1eecaa9d50586f18a0abccc Binary files /dev/null and b/public/data/223.png differ diff --git a/public/data/224.png b/public/data/224.png new file mode 100644 index 0000000000000000000000000000000000000000..9cfa388c8590be3fa9b8411c3274bd9243ec90a3 Binary files /dev/null and b/public/data/224.png differ diff --git a/public/data/225.png b/public/data/225.png new file mode 100644 index 0000000000000000000000000000000000000000..20d3b2c8fa43af0a7a753311fff12ba537a0c1e9 Binary files /dev/null and b/public/data/225.png differ diff --git a/public/data/226.png b/public/data/226.png new file mode 100644 index 0000000000000000000000000000000000000000..1b4e1a3f4b6ff9c59a9e65a8ade4f2da4717139e Binary files /dev/null and b/public/data/226.png differ diff --git a/public/data/227.png b/public/data/227.png new file mode 100644 index 0000000000000000000000000000000000000000..47602601fc1e8789f09f482863336a7e604e055c Binary files /dev/null and b/public/data/227.png differ diff --git a/public/data/228.png b/public/data/228.png new file mode 100644 index 0000000000000000000000000000000000000000..71e6962d7632801c955fcc64a46e695056251b0e Binary files /dev/null and b/public/data/228.png differ diff --git a/public/data/229.png b/public/data/229.png new file mode 100644 index 0000000000000000000000000000000000000000..2a0a1460ab04f31e083a92915deaed26557c996f Binary files /dev/null and b/public/data/229.png differ diff --git a/public/data/23.png b/public/data/23.png new file mode 100644 index 0000000000000000000000000000000000000000..483d6a4665a1808a8d06193008e85cbe6692971a Binary files /dev/null and b/public/data/23.png differ diff --git a/public/data/230.png b/public/data/230.png new file mode 100644 index 0000000000000000000000000000000000000000..a48f7e536e65d91093711e69427a5f2d889425d3 Binary files /dev/null and b/public/data/230.png differ diff --git a/public/data/231.png b/public/data/231.png new file mode 100644 index 0000000000000000000000000000000000000000..a289976732ae94e355f4ac19579ed736b6794d9a Binary files /dev/null and b/public/data/231.png differ diff --git a/public/data/232.png b/public/data/232.png new file mode 100644 index 0000000000000000000000000000000000000000..8bfcd118b6824189296c75a3ce262ea63570d918 Binary files /dev/null and b/public/data/232.png differ diff --git a/public/data/233.png b/public/data/233.png new file mode 100644 index 0000000000000000000000000000000000000000..1a4223756d20c036bbcdeee9ee1f8f43271ee80b Binary files /dev/null and b/public/data/233.png differ diff --git a/public/data/234.png b/public/data/234.png new file mode 100644 index 0000000000000000000000000000000000000000..17b6641f94ae0cafc9cc79e0c1f6e06ce5f0be5e Binary files /dev/null and b/public/data/234.png differ diff --git a/public/data/235.png b/public/data/235.png new file mode 100644 index 0000000000000000000000000000000000000000..3c759e6808170951067ac836f3f8ff7647bfa8bc Binary files /dev/null and b/public/data/235.png differ diff --git a/public/data/236.png b/public/data/236.png new file mode 100644 index 0000000000000000000000000000000000000000..1d2b885646286e0e02c3a331cb6076f85f33a98d Binary files /dev/null and b/public/data/236.png differ diff --git a/public/data/237.png b/public/data/237.png new file mode 100644 index 0000000000000000000000000000000000000000..8196be7d6cf472d831f3d6df4f5354793ab985cd Binary files /dev/null and b/public/data/237.png differ diff --git a/public/data/238.png b/public/data/238.png new file mode 100644 index 0000000000000000000000000000000000000000..3112de9d226d2697f1947bdd5f9cbda623f3b561 Binary files /dev/null and b/public/data/238.png differ diff --git a/public/data/239.png b/public/data/239.png new file mode 100644 index 0000000000000000000000000000000000000000..64c044481164ac8588657a23f4642e8c1c012e2a Binary files /dev/null and b/public/data/239.png differ diff --git a/public/data/24.png b/public/data/24.png new file mode 100644 index 0000000000000000000000000000000000000000..483d6a4665a1808a8d06193008e85cbe6692971a Binary files /dev/null and b/public/data/24.png differ diff --git a/public/data/240.png b/public/data/240.png new file mode 100644 index 0000000000000000000000000000000000000000..8c0e5924235369f498807c48c7ed051e5f037ad5 Binary files /dev/null and b/public/data/240.png differ diff --git a/public/data/241.png b/public/data/241.png new file mode 100644 index 0000000000000000000000000000000000000000..1f9cf296de4509fa0da4e406582268865d0f8028 Binary files /dev/null and b/public/data/241.png differ diff --git a/public/data/242.png b/public/data/242.png new file mode 100644 index 0000000000000000000000000000000000000000..bfd62ed73b9c28ebbd9efa131ff57700194e1d6e Binary files /dev/null and b/public/data/242.png differ diff --git a/public/data/243.png b/public/data/243.png new file mode 100644 index 0000000000000000000000000000000000000000..1a7412d5e4f977584e3ab34590f58c051527c505 Binary files /dev/null and b/public/data/243.png differ diff --git a/public/data/244.png b/public/data/244.png new file mode 100644 index 0000000000000000000000000000000000000000..2a565b820b41ca374e5ff287b02c9bb3b312ba4e Binary files /dev/null and b/public/data/244.png differ diff --git a/public/data/245.png b/public/data/245.png new file mode 100644 index 0000000000000000000000000000000000000000..4bfc709607f9150957293cbb1a4c2b37e406aefd Binary files /dev/null and b/public/data/245.png differ diff --git a/public/data/246.png b/public/data/246.png new file mode 100644 index 0000000000000000000000000000000000000000..75c031d568888e54569e2ec99edb404a2d2c61c9 Binary files /dev/null and b/public/data/246.png differ diff --git a/public/data/247.png b/public/data/247.png new file mode 100644 index 0000000000000000000000000000000000000000..0a5118e8e9aee570a2ae49981c2d7a20cbbbc0be Binary files /dev/null and b/public/data/247.png differ diff --git a/public/data/248.png b/public/data/248.png new file mode 100644 index 0000000000000000000000000000000000000000..82f0176fc384d3e87e166fe999bb57c889a51c15 Binary files /dev/null and b/public/data/248.png differ diff --git a/public/data/249.png b/public/data/249.png new file mode 100644 index 0000000000000000000000000000000000000000..188c18a9f644952606216275ea6cc07e094f78e3 Binary files /dev/null and b/public/data/249.png differ diff --git a/public/data/25.png b/public/data/25.png new file mode 100644 index 0000000000000000000000000000000000000000..e3db3a0a4ec474bc77d9a5c7ceb01f1878de429d Binary files /dev/null and b/public/data/25.png differ diff --git a/public/data/250.png b/public/data/250.png new file mode 100644 index 0000000000000000000000000000000000000000..dcee244ebee6b855cb16f9487c6a1545f6cb38c3 Binary files /dev/null and b/public/data/250.png differ diff --git a/public/data/251.png b/public/data/251.png new file mode 100644 index 0000000000000000000000000000000000000000..000114a116f21e37172e76e48d568c695df80ea6 Binary files /dev/null and b/public/data/251.png differ diff --git a/public/data/252.png b/public/data/252.png new file mode 100644 index 0000000000000000000000000000000000000000..370ff8ad5c6b2fe412fa3d4e3ef4b7dbe2ba00c9 Binary files /dev/null and b/public/data/252.png differ diff --git a/public/data/253.png b/public/data/253.png new file mode 100644 index 0000000000000000000000000000000000000000..a4520b7fe8f131ef3569c061791667f570c66b4a Binary files /dev/null and b/public/data/253.png differ diff --git a/public/data/254.png b/public/data/254.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca78d5a4b22ec701eea67e169110beaa6579cac Binary files /dev/null and b/public/data/254.png differ diff --git a/public/data/255.png b/public/data/255.png new file mode 100644 index 0000000000000000000000000000000000000000..4c767d59c3254435a58ba58c43eb6cf32d3f1236 Binary files /dev/null and b/public/data/255.png differ diff --git a/public/data/256.png b/public/data/256.png new file mode 100644 index 0000000000000000000000000000000000000000..bd13fa5ed55dde979ba70ed347dec2f2cc189210 Binary files /dev/null and b/public/data/256.png differ diff --git a/public/data/257.png b/public/data/257.png new file mode 100644 index 0000000000000000000000000000000000000000..44f5d353f3236e7fdd06e9702a2a1dd05303333e Binary files /dev/null and b/public/data/257.png differ diff --git a/public/data/258.png b/public/data/258.png new file mode 100644 index 0000000000000000000000000000000000000000..b7b63b0ef9c0c61f41c9ae8ca25c5ec39ca29b0b Binary files /dev/null and b/public/data/258.png differ diff --git a/public/data/259.png b/public/data/259.png new file mode 100644 index 0000000000000000000000000000000000000000..077eb339fc4e037838934e21ef97060838d219e8 Binary files /dev/null and b/public/data/259.png differ diff --git a/public/data/26.png b/public/data/26.png new file mode 100644 index 0000000000000000000000000000000000000000..22092fed06354d81b7d479f67465e2f7044ed837 Binary files /dev/null and b/public/data/26.png differ diff --git a/public/data/260.png b/public/data/260.png new file mode 100644 index 0000000000000000000000000000000000000000..cd913e9f55465287fda768cd9c7426c263a6d374 Binary files /dev/null and b/public/data/260.png differ diff --git a/public/data/261.png b/public/data/261.png new file mode 100644 index 0000000000000000000000000000000000000000..7894cec8a25c9bdcbf399ec1389b923fb824ca61 Binary files /dev/null and b/public/data/261.png differ diff --git a/public/data/262.png b/public/data/262.png new file mode 100644 index 0000000000000000000000000000000000000000..0f7ef2d3b5c8eb250a338d53cd9d16d18013aba3 Binary files /dev/null and b/public/data/262.png differ diff --git a/public/data/263.png b/public/data/263.png new file mode 100644 index 0000000000000000000000000000000000000000..f1c3eb220b3c8feb59f41608d14971023051e648 Binary files /dev/null and b/public/data/263.png differ diff --git a/public/data/264.png b/public/data/264.png new file mode 100644 index 0000000000000000000000000000000000000000..18de07fcb730692331fbab4407868d28581a8d50 Binary files /dev/null and b/public/data/264.png differ diff --git a/public/data/265.png b/public/data/265.png new file mode 100644 index 0000000000000000000000000000000000000000..d29ef17f39bd391215e2fa06400bf04b3db2144d Binary files /dev/null and b/public/data/265.png differ diff --git a/public/data/266.png b/public/data/266.png new file mode 100644 index 0000000000000000000000000000000000000000..b919855272ab55304f71049c360c0b305bfd4777 Binary files /dev/null and b/public/data/266.png differ diff --git a/public/data/267.png b/public/data/267.png new file mode 100644 index 0000000000000000000000000000000000000000..cf45375471830751a7255ebe12d980eee0e5cd0a Binary files /dev/null and b/public/data/267.png differ diff --git a/public/data/268.png b/public/data/268.png new file mode 100644 index 0000000000000000000000000000000000000000..6685b917ac4a69498f4947b2df0ee2ad8cce2677 Binary files /dev/null and b/public/data/268.png differ diff --git a/public/data/269.png b/public/data/269.png new file mode 100644 index 0000000000000000000000000000000000000000..5f30748043631e4ba370595e24940e050cf8b873 Binary files /dev/null and b/public/data/269.png differ diff --git a/public/data/27.png b/public/data/27.png new file mode 100644 index 0000000000000000000000000000000000000000..1b638d70393f9fa8b48ea89f01cf65a23890046c Binary files /dev/null and b/public/data/27.png differ diff --git a/public/data/270.png b/public/data/270.png new file mode 100644 index 0000000000000000000000000000000000000000..29b09521e7617370afea05d7e917004a537fdea0 Binary files /dev/null and b/public/data/270.png differ diff --git a/public/data/271.png b/public/data/271.png new file mode 100644 index 0000000000000000000000000000000000000000..ea7d396938c928353c06c9b61a553ab1f4c73322 Binary files /dev/null and b/public/data/271.png differ diff --git a/public/data/272.png b/public/data/272.png new file mode 100644 index 0000000000000000000000000000000000000000..e8175a886f67ed4893141bf2d49a69c7d814c4e9 Binary files /dev/null and b/public/data/272.png differ diff --git a/public/data/273.png b/public/data/273.png new file mode 100644 index 0000000000000000000000000000000000000000..178d13076ef20d29900e8d6d8df6ad95fc5f9f7d Binary files /dev/null and b/public/data/273.png differ diff --git a/public/data/274.png b/public/data/274.png new file mode 100644 index 0000000000000000000000000000000000000000..57443f9bff0f9f1b90aaa6d1d4e959e0050d791f Binary files /dev/null and b/public/data/274.png differ diff --git a/public/data/275.png b/public/data/275.png new file mode 100644 index 0000000000000000000000000000000000000000..2e1462fe26c1b048cfe421a3773e066016eba1b8 Binary files /dev/null and b/public/data/275.png differ diff --git a/public/data/276.png b/public/data/276.png new file mode 100644 index 0000000000000000000000000000000000000000..486853b135a919604d859d553fd8ef05051a1c90 Binary files /dev/null and b/public/data/276.png differ diff --git a/public/data/277.png b/public/data/277.png new file mode 100644 index 0000000000000000000000000000000000000000..d9b61f800e340a5cfb940bc625fcb33316f07d30 Binary files /dev/null and b/public/data/277.png differ diff --git a/public/data/278.png b/public/data/278.png new file mode 100644 index 0000000000000000000000000000000000000000..84e8c1d43f3ed202301559648cfe0010f27f0337 Binary files /dev/null and b/public/data/278.png differ diff --git a/public/data/279.png b/public/data/279.png new file mode 100644 index 0000000000000000000000000000000000000000..26e9f8a85894c8ee1c678f43e2e9e308cd6e322f Binary files /dev/null and b/public/data/279.png differ diff --git a/public/data/28.png b/public/data/28.png new file mode 100644 index 0000000000000000000000000000000000000000..46f677822e8df99d3c35632bcf2864412c12d496 Binary files /dev/null and b/public/data/28.png differ diff --git a/public/data/280.png b/public/data/280.png new file mode 100644 index 0000000000000000000000000000000000000000..46f51dd4c4383da66e9ed72e9f130833c3f84671 Binary files /dev/null and b/public/data/280.png differ diff --git a/public/data/281.png b/public/data/281.png new file mode 100644 index 0000000000000000000000000000000000000000..a24ed3d16126e350ecdecc737d796516d2174212 Binary files /dev/null and b/public/data/281.png differ diff --git a/public/data/282.png b/public/data/282.png new file mode 100644 index 0000000000000000000000000000000000000000..bb791380d701fa6622e1f9f3638ce4d878320b6b Binary files /dev/null and b/public/data/282.png differ diff --git a/public/data/283.png b/public/data/283.png new file mode 100644 index 0000000000000000000000000000000000000000..b8fa569fa5af03e074defe1bb4410d90f5db25bf Binary files /dev/null and b/public/data/283.png differ diff --git a/public/data/284.png b/public/data/284.png new file mode 100644 index 0000000000000000000000000000000000000000..a138e9f20d2799ba2717115ec442ad6d507f7ebe Binary files /dev/null and b/public/data/284.png differ diff --git a/public/data/285.png b/public/data/285.png new file mode 100644 index 0000000000000000000000000000000000000000..47ddab6c91d0f75c52e176fa3affc624e9da0dc8 Binary files /dev/null and b/public/data/285.png differ diff --git a/public/data/286.png b/public/data/286.png new file mode 100644 index 0000000000000000000000000000000000000000..beac5d3c0ac81b0c4a3d8db8088f2d75049fd32f Binary files /dev/null and b/public/data/286.png differ diff --git a/public/data/287.png b/public/data/287.png new file mode 100644 index 0000000000000000000000000000000000000000..7c15c877cd04a98033eae514e4a90f0e1fb7e91e Binary files /dev/null and b/public/data/287.png differ diff --git a/public/data/288.png b/public/data/288.png new file mode 100644 index 0000000000000000000000000000000000000000..cc08e7015d7c48fc995cd9c879a1093f8b949ac9 Binary files /dev/null and b/public/data/288.png differ diff --git a/public/data/289.png b/public/data/289.png new file mode 100644 index 0000000000000000000000000000000000000000..ce4acdf4d44ae26f1d2b20cc17f9e7449832e32a Binary files /dev/null and b/public/data/289.png differ diff --git a/public/data/29.png b/public/data/29.png new file mode 100644 index 0000000000000000000000000000000000000000..c80efc98ca56868af1b90ff61396e04b6991dff3 Binary files /dev/null and b/public/data/29.png differ diff --git a/public/data/290.png b/public/data/290.png new file mode 100644 index 0000000000000000000000000000000000000000..5fa0574f5225ea175f6ae57747e6bdeccc87f14c Binary files /dev/null and b/public/data/290.png differ diff --git a/public/data/291.png b/public/data/291.png new file mode 100644 index 0000000000000000000000000000000000000000..80e4969ddf15f5e81e5e048fcbf07069773cae06 Binary files /dev/null and b/public/data/291.png differ diff --git a/public/data/292.png b/public/data/292.png new file mode 100644 index 0000000000000000000000000000000000000000..bb366dfed4aea20fe24f0f38b0e9f667353dd134 Binary files /dev/null and b/public/data/292.png differ diff --git a/public/data/293.png b/public/data/293.png new file mode 100644 index 0000000000000000000000000000000000000000..694869a98c64f02d6fda0736c8e61bcfd6460eeb Binary files /dev/null and b/public/data/293.png differ diff --git a/public/data/294.png b/public/data/294.png new file mode 100644 index 0000000000000000000000000000000000000000..b9b2883fb5008b0408e331832abbe6f38dfa4dec Binary files /dev/null and b/public/data/294.png differ diff --git a/public/data/295.png b/public/data/295.png new file mode 100644 index 0000000000000000000000000000000000000000..7cd2a3d9b19d6cea95dfcb48baf1ea70ef3057ea Binary files /dev/null and b/public/data/295.png differ diff --git a/public/data/296.png b/public/data/296.png new file mode 100644 index 0000000000000000000000000000000000000000..9dd15550d998a768efa12d8100aa09d65b8e5f11 Binary files /dev/null and b/public/data/296.png differ diff --git a/public/data/297.png b/public/data/297.png new file mode 100644 index 0000000000000000000000000000000000000000..e2f1bafc1f0cb943c45a7ff364a6bc383bdfd8bd Binary files /dev/null and b/public/data/297.png differ diff --git a/public/data/298.png b/public/data/298.png new file mode 100644 index 0000000000000000000000000000000000000000..d2bfb8b99382ca292a3ce40d642391b16907f131 Binary files /dev/null and b/public/data/298.png differ diff --git a/public/data/299.png b/public/data/299.png new file mode 100644 index 0000000000000000000000000000000000000000..60b1e3c41f5204807cd8a2b0b48cb8b566239a08 Binary files /dev/null and b/public/data/299.png differ diff --git a/public/data/3.png b/public/data/3.png new file mode 100644 index 0000000000000000000000000000000000000000..057bd8f022cfe3c5c0e2f2fb27575aa1c771c3ef Binary files /dev/null and b/public/data/3.png differ diff --git a/public/data/30.png b/public/data/30.png new file mode 100644 index 0000000000000000000000000000000000000000..e8ad4fe3341a64a92efe129084e12d2276a8e91d Binary files /dev/null and b/public/data/30.png differ diff --git a/public/data/300.png b/public/data/300.png new file mode 100644 index 0000000000000000000000000000000000000000..6a44e4f7074857740a483ad3d4e30fb9f5d91885 Binary files /dev/null and b/public/data/300.png differ diff --git a/public/data/301.png b/public/data/301.png new file mode 100644 index 0000000000000000000000000000000000000000..7d45b9af8b05575ec651dc0e175e2223d6236905 Binary files /dev/null and b/public/data/301.png differ diff --git a/public/data/302.png b/public/data/302.png new file mode 100644 index 0000000000000000000000000000000000000000..22efa215210233e11e91a7126ecc7b7a5a7c8f6a Binary files /dev/null and b/public/data/302.png differ diff --git a/public/data/303.png b/public/data/303.png new file mode 100644 index 0000000000000000000000000000000000000000..0e7a250a604982edf95edf22a795737ff7831f7e Binary files /dev/null and b/public/data/303.png differ diff --git a/public/data/304.png b/public/data/304.png new file mode 100644 index 0000000000000000000000000000000000000000..0f56f65cfd3874c6097a396744eacc3b70b5c586 Binary files /dev/null and b/public/data/304.png differ diff --git a/public/data/305.png b/public/data/305.png new file mode 100644 index 0000000000000000000000000000000000000000..f85f5fa09fc3f4c2ad0fda43053b83fb814d4c28 Binary files /dev/null and b/public/data/305.png differ diff --git a/public/data/306.png b/public/data/306.png new file mode 100644 index 0000000000000000000000000000000000000000..db7a0c233e7c108f9a6b9078fa459b01341ca63b Binary files /dev/null and b/public/data/306.png differ diff --git a/public/data/307.png b/public/data/307.png new file mode 100644 index 0000000000000000000000000000000000000000..c5b39d9791660d784b1e7ff8b8c12602506d99eb Binary files /dev/null and b/public/data/307.png differ diff --git a/public/data/308.png b/public/data/308.png new file mode 100644 index 0000000000000000000000000000000000000000..1d35406b39ef5c5e49f40ae7e2b51b9374552558 Binary files /dev/null and b/public/data/308.png differ diff --git a/public/data/309.png b/public/data/309.png new file mode 100644 index 0000000000000000000000000000000000000000..cb52a9c4c230a1f94c4f5136132e3226562853cc Binary files /dev/null and b/public/data/309.png differ diff --git a/public/data/31.png b/public/data/31.png new file mode 100644 index 0000000000000000000000000000000000000000..56d24f0d98b93f713f521ba63ff719beba182335 Binary files /dev/null and b/public/data/31.png differ diff --git a/public/data/310.png b/public/data/310.png new file mode 100644 index 0000000000000000000000000000000000000000..0c5e572e47e6fa798ef1c7a498b7e542d07f1f92 Binary files /dev/null and b/public/data/310.png differ diff --git a/public/data/311.png b/public/data/311.png new file mode 100644 index 0000000000000000000000000000000000000000..61e1dc562c37df0005f02c81428c9b50591b44bf Binary files /dev/null and b/public/data/311.png differ diff --git a/public/data/312.png b/public/data/312.png new file mode 100644 index 0000000000000000000000000000000000000000..626481ad19f85ac095fd975daf4ff831c69be369 Binary files /dev/null and b/public/data/312.png differ diff --git a/public/data/313.png b/public/data/313.png new file mode 100644 index 0000000000000000000000000000000000000000..b48f25bd3f215b50b8d8f22dc67877149aa6d9bb Binary files /dev/null and b/public/data/313.png differ diff --git a/public/data/314.png b/public/data/314.png new file mode 100644 index 0000000000000000000000000000000000000000..39f9bed3c7c1240c7eb3b3f0db5393f55cd896ad Binary files /dev/null and b/public/data/314.png differ diff --git a/public/data/315.png b/public/data/315.png new file mode 100644 index 0000000000000000000000000000000000000000..cd8774b80026fc0bb588d566af651b074da8c4cf Binary files /dev/null and b/public/data/315.png differ diff --git a/public/data/316.png b/public/data/316.png new file mode 100644 index 0000000000000000000000000000000000000000..4f64d1bfa9ae78be7e00b382abfe5cbf36928820 Binary files /dev/null and b/public/data/316.png differ diff --git a/public/data/317.png b/public/data/317.png new file mode 100644 index 0000000000000000000000000000000000000000..74f6d39ef5aaf44985c63744e162e87627c3f4a1 Binary files /dev/null and b/public/data/317.png differ diff --git a/public/data/318.png b/public/data/318.png new file mode 100644 index 0000000000000000000000000000000000000000..32eb1c40e6b2a7940434d1f44e749b21898431a3 Binary files /dev/null and b/public/data/318.png differ diff --git a/public/data/319.png b/public/data/319.png new file mode 100644 index 0000000000000000000000000000000000000000..f082f431e068b37f169b36a6a5d551ded21644b1 Binary files /dev/null and b/public/data/319.png differ diff --git a/public/data/32.png b/public/data/32.png new file mode 100644 index 0000000000000000000000000000000000000000..e43b9913aafadd8a041d6d862a4738099ce04d64 Binary files /dev/null and b/public/data/32.png differ diff --git a/public/data/320.png b/public/data/320.png new file mode 100644 index 0000000000000000000000000000000000000000..60421af436c3cd0f6b15ea4cfeccd3b1b063c142 Binary files /dev/null and b/public/data/320.png differ diff --git a/public/data/321.png b/public/data/321.png new file mode 100644 index 0000000000000000000000000000000000000000..e676459c58b41e855eb346df3ef31ce61ac2d47f Binary files /dev/null and b/public/data/321.png differ diff --git a/public/data/322.png b/public/data/322.png new file mode 100644 index 0000000000000000000000000000000000000000..78175b7bb4d6f69a87f691650c4e71d385060ad7 Binary files /dev/null and b/public/data/322.png differ diff --git a/public/data/323.png b/public/data/323.png new file mode 100644 index 0000000000000000000000000000000000000000..b76841a3bd998d96d8479d83cbcee60dbb5b6abf Binary files /dev/null and b/public/data/323.png differ diff --git a/public/data/324.png b/public/data/324.png new file mode 100644 index 0000000000000000000000000000000000000000..d67734b57af1f05e5bdb38b78880a192084682d5 Binary files /dev/null and b/public/data/324.png differ diff --git a/public/data/325.png b/public/data/325.png new file mode 100644 index 0000000000000000000000000000000000000000..b7151b0bdcf3f0752724af688679189000a8dec3 Binary files /dev/null and b/public/data/325.png differ diff --git a/public/data/326.png b/public/data/326.png new file mode 100644 index 0000000000000000000000000000000000000000..77ef19fba05fe4f39d87b5ee158bcf6b2cdfe18e Binary files /dev/null and b/public/data/326.png differ diff --git a/public/data/327.png b/public/data/327.png new file mode 100644 index 0000000000000000000000000000000000000000..db96f3a933eafea395efe1ec97379c3782c4775f Binary files /dev/null and b/public/data/327.png differ diff --git a/public/data/328.png b/public/data/328.png new file mode 100644 index 0000000000000000000000000000000000000000..b48f1596aeae2928677045c9697447d36271d673 Binary files /dev/null and b/public/data/328.png differ diff --git a/public/data/329.png b/public/data/329.png new file mode 100644 index 0000000000000000000000000000000000000000..b078690c1ace9b8ef39ef14383eea34975bc4b54 Binary files /dev/null and b/public/data/329.png differ diff --git a/public/data/33.png b/public/data/33.png new file mode 100644 index 0000000000000000000000000000000000000000..9e7000aac3574fb940f55613b0b44673b9e53c82 Binary files /dev/null and b/public/data/33.png differ diff --git a/public/data/330.png b/public/data/330.png new file mode 100644 index 0000000000000000000000000000000000000000..c1fdf566dc0cd3a3585c5ad39bc9eb7175d2ca10 Binary files /dev/null and b/public/data/330.png differ diff --git a/public/data/331.png b/public/data/331.png new file mode 100644 index 0000000000000000000000000000000000000000..a3afe31c9a76420cf7ef3ae93f1d2f0d7d2ca76b Binary files /dev/null and b/public/data/331.png differ diff --git a/public/data/332.png b/public/data/332.png new file mode 100644 index 0000000000000000000000000000000000000000..be10ad6378ecd5fa1e89af548f14e143cd7a396a Binary files /dev/null and b/public/data/332.png differ diff --git a/public/data/333.png b/public/data/333.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca806d039fe850e327e8308dc72e33186822b14 Binary files /dev/null and b/public/data/333.png differ diff --git a/public/data/34.png b/public/data/34.png new file mode 100644 index 0000000000000000000000000000000000000000..b341d546bd85748a579e62e06275e9e583b8def2 Binary files /dev/null and b/public/data/34.png differ diff --git a/public/data/35.png b/public/data/35.png new file mode 100644 index 0000000000000000000000000000000000000000..12d45fc0f8fa932ac156e1099b0168ca7f5d430f Binary files /dev/null and b/public/data/35.png differ diff --git a/public/data/36.png b/public/data/36.png new file mode 100644 index 0000000000000000000000000000000000000000..9d766fac1758adff421955f8a3bea2b100343409 Binary files /dev/null and b/public/data/36.png differ diff --git a/public/data/37.png b/public/data/37.png new file mode 100644 index 0000000000000000000000000000000000000000..c264b6f60c1a8ef1d4b7beec13596b8531829e07 Binary files /dev/null and b/public/data/37.png differ diff --git a/public/data/38.png b/public/data/38.png new file mode 100644 index 0000000000000000000000000000000000000000..411c89c4440957f456c5b3381bfc11ffd961e1cf Binary files /dev/null and b/public/data/38.png differ diff --git a/public/data/39.png b/public/data/39.png new file mode 100644 index 0000000000000000000000000000000000000000..3e49c3db9799266bfabf84c35ca801349be0cf2e Binary files /dev/null and b/public/data/39.png differ diff --git a/public/data/4.png b/public/data/4.png new file mode 100644 index 0000000000000000000000000000000000000000..2bdc3474947aae64cde1161bdcba78a14c619c67 Binary files /dev/null and b/public/data/4.png differ diff --git a/public/data/40.png b/public/data/40.png new file mode 100644 index 0000000000000000000000000000000000000000..c2e3b47063a9eefa8c539da87810ef857e6cd4c1 Binary files /dev/null and b/public/data/40.png differ diff --git a/public/data/41.png b/public/data/41.png new file mode 100644 index 0000000000000000000000000000000000000000..056296c90863c3ced9ad9a88ded24dc3c17018d5 Binary files /dev/null and b/public/data/41.png differ diff --git a/public/data/42.png b/public/data/42.png new file mode 100644 index 0000000000000000000000000000000000000000..98bfd573fb673fd08ddb0ba6482d24cadc0d6b34 Binary files /dev/null and b/public/data/42.png differ diff --git a/public/data/43.png b/public/data/43.png new file mode 100644 index 0000000000000000000000000000000000000000..d2be9358fc98172cf7eeddc37029bda35dbc18da Binary files /dev/null and b/public/data/43.png differ diff --git a/public/data/44.png b/public/data/44.png new file mode 100644 index 0000000000000000000000000000000000000000..bcf58c7de8cbd6029b2886618d44ab7d8ed748b1 Binary files /dev/null and b/public/data/44.png differ diff --git a/public/data/45.png b/public/data/45.png new file mode 100644 index 0000000000000000000000000000000000000000..4038557a6336602e8980da92c7db51e605ffc220 Binary files /dev/null and b/public/data/45.png differ diff --git a/public/data/46.png b/public/data/46.png new file mode 100644 index 0000000000000000000000000000000000000000..239da8458ec84c475b8ea94d894dbc92e4f9a5dd Binary files /dev/null and b/public/data/46.png differ diff --git a/public/data/47.png b/public/data/47.png new file mode 100644 index 0000000000000000000000000000000000000000..7c4e89afce2debc836f05687186f3db492b1894b Binary files /dev/null and b/public/data/47.png differ diff --git a/public/data/48.png b/public/data/48.png new file mode 100644 index 0000000000000000000000000000000000000000..5879a0f597652c415f2cacc69d6af142e5e39dca Binary files /dev/null and b/public/data/48.png differ diff --git a/public/data/49.png b/public/data/49.png new file mode 100644 index 0000000000000000000000000000000000000000..cfd5c8c1cd8ffe01e043a4828d4485e802e7cc7d Binary files /dev/null and b/public/data/49.png differ diff --git a/public/data/5.png b/public/data/5.png new file mode 100644 index 0000000000000000000000000000000000000000..d69c814f7a14df1d3ccf241f6c7374bea9680563 Binary files /dev/null and b/public/data/5.png differ diff --git a/public/data/50.png b/public/data/50.png new file mode 100644 index 0000000000000000000000000000000000000000..3e15e1d448f2dc9a0974b4ba78d0c349c69eb199 Binary files /dev/null and b/public/data/50.png differ diff --git a/public/data/51.png b/public/data/51.png new file mode 100644 index 0000000000000000000000000000000000000000..bdb88316b01b36b00005c14d8600cba64eb3a63c Binary files /dev/null and b/public/data/51.png differ diff --git a/public/data/52.png b/public/data/52.png new file mode 100644 index 0000000000000000000000000000000000000000..7b9ed6dff8800730ae67af32b11026ce5e43faf3 Binary files /dev/null and b/public/data/52.png differ diff --git a/public/data/53.png b/public/data/53.png new file mode 100644 index 0000000000000000000000000000000000000000..c5e7ef12803e7881a57b2e489152f2a45106325e Binary files /dev/null and b/public/data/53.png differ diff --git a/public/data/54.png b/public/data/54.png new file mode 100644 index 0000000000000000000000000000000000000000..a1c219e11bbaa22cefaa36d124bb7b5e31886233 Binary files /dev/null and b/public/data/54.png differ diff --git a/public/data/55.png b/public/data/55.png new file mode 100644 index 0000000000000000000000000000000000000000..2adbc5b6d93f900f21bc9b3269b355dfd6531b15 Binary files /dev/null and b/public/data/55.png differ diff --git a/public/data/56.png b/public/data/56.png new file mode 100644 index 0000000000000000000000000000000000000000..57a9174b20d8af1df078a900e705cb75fb693529 Binary files /dev/null and b/public/data/56.png differ diff --git a/public/data/57.png b/public/data/57.png new file mode 100644 index 0000000000000000000000000000000000000000..1c3f654cb3428e7bc32e346b31bad34467523df8 Binary files /dev/null and b/public/data/57.png differ diff --git a/public/data/58.png b/public/data/58.png new file mode 100644 index 0000000000000000000000000000000000000000..cb86de470c3421faa85f37518e68045a7e5d1f96 Binary files /dev/null and b/public/data/58.png differ diff --git a/public/data/59.png b/public/data/59.png new file mode 100644 index 0000000000000000000000000000000000000000..2539b5e4e46782a2b7e54fea90eb65c76bcf8c96 Binary files /dev/null and b/public/data/59.png differ diff --git a/public/data/6.png b/public/data/6.png new file mode 100644 index 0000000000000000000000000000000000000000..ad04efd3e2114d1714075c6e00b6ee6eee4cfc3f Binary files /dev/null and b/public/data/6.png differ diff --git a/public/data/60.png b/public/data/60.png new file mode 100644 index 0000000000000000000000000000000000000000..624dcbdfbfcf2e5f0ea6aad07dc97ac0df6a0a3d Binary files /dev/null and b/public/data/60.png differ diff --git a/public/data/61.png b/public/data/61.png new file mode 100644 index 0000000000000000000000000000000000000000..10c8bbf59c329d09c583509aeac8bbbd8041d9af Binary files /dev/null and b/public/data/61.png differ diff --git a/public/data/62.png b/public/data/62.png new file mode 100644 index 0000000000000000000000000000000000000000..6a6caf6fd0b3d6c935f872e44c0d2b855c366bcd Binary files /dev/null and b/public/data/62.png differ diff --git a/public/data/63.png b/public/data/63.png new file mode 100644 index 0000000000000000000000000000000000000000..21d1493de8103bee75e451c5223071e359141506 Binary files /dev/null and b/public/data/63.png differ diff --git a/public/data/64.png b/public/data/64.png new file mode 100644 index 0000000000000000000000000000000000000000..a5fae735109cd694ef6ff3b4063d8ba45a8d9ac7 Binary files /dev/null and b/public/data/64.png differ diff --git a/public/data/65.png b/public/data/65.png new file mode 100644 index 0000000000000000000000000000000000000000..3e0b285a3d5e924a7765b9ac6e2b1367dd0b7ece Binary files /dev/null and b/public/data/65.png differ diff --git a/public/data/66.png b/public/data/66.png new file mode 100644 index 0000000000000000000000000000000000000000..43b55c1005bbfc16b4972c8e169670dc0685ff95 Binary files /dev/null and b/public/data/66.png differ diff --git a/public/data/67.png b/public/data/67.png new file mode 100644 index 0000000000000000000000000000000000000000..b3339987b6ce76780990d54d81d9c6efaaf0d697 Binary files /dev/null and b/public/data/67.png differ diff --git a/public/data/68.png b/public/data/68.png new file mode 100644 index 0000000000000000000000000000000000000000..15aa9285894b98c3829ee4639061568c62d349fb Binary files /dev/null and b/public/data/68.png differ diff --git a/public/data/69.png b/public/data/69.png new file mode 100644 index 0000000000000000000000000000000000000000..28e3248573199cf32417ab209e2ec4a988a98c14 Binary files /dev/null and b/public/data/69.png differ diff --git a/public/data/7.png b/public/data/7.png new file mode 100644 index 0000000000000000000000000000000000000000..b6490413761126e7433fed13ac04c62fe462617c Binary files /dev/null and b/public/data/7.png differ diff --git a/public/data/70.png b/public/data/70.png new file mode 100644 index 0000000000000000000000000000000000000000..807e8aee11c7658dfdfb6bd8d767feb4f8ff908e Binary files /dev/null and b/public/data/70.png differ diff --git a/public/data/71.png b/public/data/71.png new file mode 100644 index 0000000000000000000000000000000000000000..2fc05303418a2b712b0ed69596b45e3459b966aa Binary files /dev/null and b/public/data/71.png differ diff --git a/public/data/72.png b/public/data/72.png new file mode 100644 index 0000000000000000000000000000000000000000..62ce1c88eabf3665e0fffaa65d17d43bb043e637 Binary files /dev/null and b/public/data/72.png differ diff --git a/public/data/73.png b/public/data/73.png new file mode 100644 index 0000000000000000000000000000000000000000..1f738b24aadd6cf616857a069a8b36824f35a8eb Binary files /dev/null and b/public/data/73.png differ diff --git a/public/data/74.png b/public/data/74.png new file mode 100644 index 0000000000000000000000000000000000000000..12b85ee3dafbd7bbbc2bc1a6df608e202017b113 Binary files /dev/null and b/public/data/74.png differ diff --git a/public/data/75.png b/public/data/75.png new file mode 100644 index 0000000000000000000000000000000000000000..15eef4ebeaae815cc7d2c71db51a3cb10b96923a Binary files /dev/null and b/public/data/75.png differ diff --git a/public/data/76.png b/public/data/76.png new file mode 100644 index 0000000000000000000000000000000000000000..92a85ea8749b752111deb7a07ad573ef4174ba23 Binary files /dev/null and b/public/data/76.png differ diff --git a/public/data/77.png b/public/data/77.png new file mode 100644 index 0000000000000000000000000000000000000000..07cc3be56f7532498bb069dcc84ea5e8f579fa6d Binary files /dev/null and b/public/data/77.png differ diff --git a/public/data/78.png b/public/data/78.png new file mode 100644 index 0000000000000000000000000000000000000000..234aeb25445cd260740753eef60fb6dd87c4e30a Binary files /dev/null and b/public/data/78.png differ diff --git a/public/data/79.png b/public/data/79.png new file mode 100644 index 0000000000000000000000000000000000000000..458d306bfeb4b2a47b45b3a2aaa7a1a1f655f853 Binary files /dev/null and b/public/data/79.png differ diff --git a/public/data/8.png b/public/data/8.png new file mode 100644 index 0000000000000000000000000000000000000000..5f8e915dc0b59eaea69e200527b418e8091645e5 Binary files /dev/null and b/public/data/8.png differ diff --git a/public/data/80.png b/public/data/80.png new file mode 100644 index 0000000000000000000000000000000000000000..9157159c72734faff559a1873b438e7a0da62397 Binary files /dev/null and b/public/data/80.png differ diff --git a/public/data/81.png b/public/data/81.png new file mode 100644 index 0000000000000000000000000000000000000000..d60a2c6a07f8fda5224cae2655fb928939e22921 Binary files /dev/null and b/public/data/81.png differ diff --git a/public/data/82.png b/public/data/82.png new file mode 100644 index 0000000000000000000000000000000000000000..3b819e8e2bc3fab3c4a4bb984676aa3f354b4922 Binary files /dev/null and b/public/data/82.png differ diff --git a/public/data/83.png b/public/data/83.png new file mode 100644 index 0000000000000000000000000000000000000000..6efb49b4d26e32d7aab15f746a495c24d54a150e Binary files /dev/null and b/public/data/83.png differ diff --git a/public/data/84.png b/public/data/84.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0a31ebea7a10d0daad761f7988c30b6c5afb09 Binary files /dev/null and b/public/data/84.png differ diff --git a/public/data/85.png b/public/data/85.png new file mode 100644 index 0000000000000000000000000000000000000000..a7a606818aa65322b3d79932b8342baf12493c47 Binary files /dev/null and b/public/data/85.png differ diff --git a/public/data/86.png b/public/data/86.png new file mode 100644 index 0000000000000000000000000000000000000000..37233c4a758d93d9b3d6915efb006d98a0c80790 Binary files /dev/null and b/public/data/86.png differ diff --git a/public/data/87.png b/public/data/87.png new file mode 100644 index 0000000000000000000000000000000000000000..2c52d72d5828f1671786117081b5839f530d512f Binary files /dev/null and b/public/data/87.png differ diff --git a/public/data/88.png b/public/data/88.png new file mode 100644 index 0000000000000000000000000000000000000000..ed1932b708d003b05a1c70182eae274637373182 Binary files /dev/null and b/public/data/88.png differ diff --git a/public/data/89.png b/public/data/89.png new file mode 100644 index 0000000000000000000000000000000000000000..bddca373ab4e6c9e8d142e0efe14fa6edef8b45a Binary files /dev/null and b/public/data/89.png differ diff --git a/public/data/9.png b/public/data/9.png new file mode 100644 index 0000000000000000000000000000000000000000..1ec5c0ec315b63335a6f6e9cdc5d2f44549ea1f6 Binary files /dev/null and b/public/data/9.png differ diff --git a/public/data/90.png b/public/data/90.png new file mode 100644 index 0000000000000000000000000000000000000000..ceb21625c385d4056619f8a99927f333bd305a2c Binary files /dev/null and b/public/data/90.png differ diff --git a/public/data/91.png b/public/data/91.png new file mode 100644 index 0000000000000000000000000000000000000000..270b3d1e10325b47a0da6bbd3a7bc9b468bbdeb0 Binary files /dev/null and b/public/data/91.png differ diff --git a/public/data/92.png b/public/data/92.png new file mode 100644 index 0000000000000000000000000000000000000000..995670025ecd057df1f37b298d646432154c8747 Binary files /dev/null and b/public/data/92.png differ diff --git a/public/data/93.png b/public/data/93.png new file mode 100644 index 0000000000000000000000000000000000000000..4e1291e19400d969a63f9b84f64790f62cb5833a Binary files /dev/null and b/public/data/93.png differ diff --git a/public/data/94.png b/public/data/94.png new file mode 100644 index 0000000000000000000000000000000000000000..cb01902165d28367e00d94df5be900b440489d89 Binary files /dev/null and b/public/data/94.png differ diff --git a/public/data/95.png b/public/data/95.png new file mode 100644 index 0000000000000000000000000000000000000000..5bef4cdf1722a85da4ed0657afe3b2f19a0241b5 Binary files /dev/null and b/public/data/95.png differ diff --git a/public/data/96.png b/public/data/96.png new file mode 100644 index 0000000000000000000000000000000000000000..200f11cd4737c803059bf6359080f1ab6d3f1aba Binary files /dev/null and b/public/data/96.png differ diff --git a/public/data/97.png b/public/data/97.png new file mode 100644 index 0000000000000000000000000000000000000000..c5647c3cf25c8eee29797d176e6e05001811643c Binary files /dev/null and b/public/data/97.png differ diff --git a/public/data/98.png b/public/data/98.png new file mode 100644 index 0000000000000000000000000000000000000000..db60173552fed333645230b6992400068209a047 Binary files /dev/null and b/public/data/98.png differ diff --git a/public/data/99.png b/public/data/99.png new file mode 100644 index 0000000000000000000000000000000000000000..0fc4719eba71a65b27346fc22422db3a9077eab2 Binary files /dev/null and b/public/data/99.png differ diff --git a/public/data/costume.svg b/public/data/costume.svg new file mode 100644 index 0000000000000000000000000000000000000000..5e30024a23b43440315d32e93b0ee243215e60ce --- /dev/null +++ b/public/data/costume.svg @@ -0,0 +1,12 @@ + + + + sprite-library + Created with Sketch. + + + + + + + diff --git a/public/data/repeat.svg b/public/data/repeat.svg new file mode 100644 index 0000000000000000000000000000000000000000..e51234e711941a06e4e7584cafc877d5b188442c --- /dev/null +++ b/public/data/repeat.svg @@ -0,0 +1,18 @@ + + + + +repeat + + + diff --git a/public/func.js b/public/func.js new file mode 100644 index 0000000000000000000000000000000000000000..e51a7e1569e57e9f58186c22dbe51203202f8fc8 --- /dev/null +++ b/public/func.js @@ -0,0 +1,382 @@ +const adj = text => text.slice(2, text.length); +const con = text => text == `` || Number(text) < 2 ? ` #` : ` ${text}`.slice(text.length - 1, text.length + 2); +const stc = (block, generator, name) => adj(generator.statementToCode(block, name)); + +javascript.javascriptGenerator.forBlock[`set_player`] = (block, generator) => { + const type = block.getFieldValue(`type`); + const value = stc(block, generator, `value`); + return `sp[${type}][${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`change_player`] = (block, generator) => { + const type = block.getFieldValue(`type`); + const value = stc(block, generator, `value`); + return `cp[${type}][${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`set_inventory`] = (block, generator) => { + const place = stc(block, generator, `place`); + const type = block.getFieldValue(`type`); + const value = stc(block, generator, `value`); + return `si[${place}][${type}][${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`set_block`] = (block, generator) => { + const place = stc(block, generator, `place`); + const value = stc(block, generator, `value`); + return `sl[${place}][${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`set_flymode`] = (block, generator) => { + const value = stc(block, generator, `value`); + return `sf[${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`drop`] = (block, generator) => { + const place = stc(block, generator, `place`); + const value = stc(block, generator, `value`); + const quant = stc(block, generator, `quant`); + return `di[${place}][${value}][${quant}]`; +}; + +javascript.javascriptGenerator.forBlock[`explosion`] = (block, generator) => { + const place = stc(block, generator, `place`); + const radius = stc(block, generator, `radius`); + return `ex[${place}][${radius}]`; +}; + +javascript.javascriptGenerator.forBlock[`craft_recipe`] = (block, generator) => { + const v1 = stc(block, generator, `1`); + const v2 = stc(block, generator, `2`); + const v3 = stc(block, generator, `3`); + const v4 = stc(block, generator, `4`); + const v5 = stc(block, generator, `5`); + const v6 = stc(block, generator, `6`); + const value = stc(block, generator, `value`); + const quant = stc(block, generator, `quant`); + const v7 = stc(block, generator, `7`); + const v8 = stc(block, generator, `8`); + const v9 = stc(block, generator, `9`); + const npo = stc(block, generator, `npo`); + let recipe = ``; + if (con(v1) == ` #` && con(v2) == ` #` && con(v3) == ` #`) { + if (con(v4) == ` #` && con(v5) == ` #` && con(v6) == ` #`) recipe = `${con(v7)}${con(v8)}${con(v9)} # # # # # #`; + else recipe = `${con(v4)}${con(v5)}${con(v6)}${con(v7)}${con(v8)}${con(v9)} # # #`; + } else recipe = `${con(v1)}${con(v2)}${con(v3)}${con(v4)}${con(v5)}${con(v6)}${con(v7)}${con(v8)}${con(v9)}`; + return `ar[${value}][${quant}][${recipe}][${npo ? `L` : `S`}]`; +}; + +javascript.javascriptGenerator.forBlock[`smelt_recipe`] = (block, generator) => { + const original = stc(block, generator, `original`); + const processed = stc(block, generator, `processed`); + return `as[${original}][${processed}]`; +}; + +javascript.javascriptGenerator.forBlock[`add_data`] = (block, generator) => { + const v1 = stc(block, generator, `1`); + const v2 = stc(block, generator, `2`); + const v3 = stc(block, generator, `3`); + const v4 = stc(block, generator, `4`); + const v5 = stc(block, generator, `5`); + const v6 = stc(block, generator, `6`); + const v7 = stc(block, generator, `7`); + const v8 = stc(block, generator, `8`); + const v9 = stc(block, generator, `9`); + const v10 = stc(block, generator, `10`); + return `ad[${v1}][${v2}][${v3}][${v4}][${v5}][${v6}][${v7}][${v8}][${v9}][${v10}]`; +}; + +javascript.javascriptGenerator.forBlock[`add_food`] = (block, generator) => { + const v1 = stc(block, generator, `1`); + const v2 = stc(block, generator, `2`); + const v3 = stc(block, generator, `3`); + const v4 = stc(block, generator, `4`); + const v5 = stc(block, generator, `5`); + const v6 = stc(block, generator, `6`); + return `af[${v1}][${v2}][${v3}][${v4}][${v5}][${v6 ? `Y` : `N`}]`; +}; + +javascript.javascriptGenerator.forBlock[`set_texture`] = (block, generator) => { + const bl = stc(block, generator, `block`); + const value = stc(block, generator, `value`); + return `st[${bl}][${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`set_skin`] = (block, generator) => { + const value = stc(block, generator, `value`); + return `ss[${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`player_skin`] = (block, generator) => { + return `gs`; +}; + +javascript.javascriptGenerator.forBlock[`skin`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`play_sound`] = (block, generator) => { + const value = stc(block, generator, `value`); + return `ps[${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`world_loads`] = (block, generator) => { + return `$`; +}; + +javascript.javascriptGenerator.forBlock[`forever`] = (block, generator) => { + const value = stc(block, generator, `value`); + return `fo[${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`if`] = (block, generator) => { + const bool = stc(block, generator, `bool`); + const value = stc(block, generator, `value`); + return `if[${bool}][${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`else`] = (block, generator) => { + const bool = stc(block, generator, `bool`); + const value = stc(block, generator, `value`); + const value2 = stc(block, generator, `value2`); + return `el[${bool}][${value}][${value2}]`; +}; + +javascript.javascriptGenerator.forBlock[`search`] = (block, generator) => { + const value = stc(block, generator, `value`); + return `pc[${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`search_place`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return `pp[${type}]`; +}; + +javascript.javascriptGenerator.forBlock[`press_key`] = (block, generator) => { + const value = stc(block, generator, `value`); + return `pk[${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`player`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return `gp[${type}]`; +}; + +javascript.javascriptGenerator.forBlock[`inventory`] = (block, generator) => { + const value = stc(block, generator, `value`); + const type = block.getFieldValue(`type`); + return `gi[${value}][${type}]`; +}; + +javascript.javascriptGenerator.forBlock[`get_block`] = (block, generator) => { + const value = stc(block, generator, `value`); + return `gl[${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`flymode`] = (block, generator) => { + return `gf`; +}; + +javascript.javascriptGenerator.forBlock[`get_data`] = (block, generator) => { + const value = stc(block, generator, `value`); + const type = stc(block, generator, `type`); + return `gd[${value}][${type}]`; +}; + +javascript.javascriptGenerator.forBlock[`seed`] = (block, generator) => { + return `se`; +}; + +javascript.javascriptGenerator.forBlock[`input`] = (block, generator) => { + const text_value = block.getFieldValue(`value`); + return text_value; +}; + +javascript.javascriptGenerator.forBlock[`bool`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`calc`] = (block, generator) => { + const value = stc(block, generator, `value`); + const type = block.getFieldValue(`type`); + const value2 = stc(block, generator, `value2`); + return `${`+-*/`[type - 1]}[${value}][${value2}]`; +}; + +javascript.javascriptGenerator.forBlock[`random`] = (block, generator) => { + const value = stc(block, generator, `value`); + const value2 = stc(block, generator, `value2`); + return `rd[${value}][${value2}]`; +}; + +javascript.javascriptGenerator.forBlock[`comparison`] = (block, generator) => { + const value = stc(block, generator, `value`); + const type = block.getFieldValue(`type`); + const value2 = stc(block, generator, `value2`); + return `${`><=`[type - 1]}[${value}][${value2}]`; +}; + +javascript.javascriptGenerator.forBlock[`logic`] = (block, generator) => { + const value = stc(block, generator, `value`); + const type = block.getFieldValue(`type`); + const value2 = stc(block, generator, `value2`); + return `${[`an`, `or`][type - 1]}[${value}][${value2}]`; +}; + +javascript.javascriptGenerator.forBlock[`not`] = (block, generator) => { + const value = stc(block, generator, `value`); + return `no[${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`place`] = (block, generator) => { + const x = stc(block, generator, `x`); + const y = stc(block, generator, `y`); + return `gc[${x}][${y}]`; +}; + +javascript.javascriptGenerator.forBlock[`split_place`] = (block, generator) => { + const value = stc(block, generator, `value`); + const type = block.getFieldValue(`type`); + return `sc[${value}][${type}]`; +}; + +javascript.javascriptGenerator.forBlock[`variable`] = (block, generator) => { + const value = generator.nameDB_.getName(block.getFieldValue(`value`), Blockly.Variables.NAME_TYPE); + return `va[${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`set_var`] = (block, generator) => { + const variable = generator.nameDB_.getName(block.getFieldValue(`var`), Blockly.Variables.NAME_TYPE); + const value = stc(block, generator, `value`); + return `sv[${variable}][${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`change_var`] = (block, generator) => { + const variable = generator.nameDB_.getName(block.getFieldValue(`var`), Blockly.Variables.NAME_TYPE); + const value = stc(block, generator, `value`); + return `cv[${variable}][${value}]`; +}; + +javascript.javascriptGenerator.forBlock[`building_blocks`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`wooden_blocks`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`ore_blocks`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`oreblocks`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`deco_blocks`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`wool_blocks`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`stairs_blocks`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`terracotta_blocks`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`plant_deco`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`flower_deco`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`decoration`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`redstone`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`miscellanceous`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`spawnegg`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`food`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`tool`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`weapon`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`armor`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`ore_mate`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`material`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`dye`] = (block, generator) => { + const type = block.getFieldValue(`type`); + return type; +}; + +javascript.javascriptGenerator.forBlock[`add_tool`] = (block, generator) => { + const v1 = stc(block, generator, `1`); + const v7 = stc(block, generator, `7`); + const v2 = stc(block, generator, `2`); + const v4 = block.getFieldValue(`4`); + const v3 = block.getFieldValue(`3`); + const v5 = stc(block, generator, `5`); + const v6 = stc(block, generator, `6`); + return `at[${v1}][${v7}][${v2}][${v3}${v4}][${v5}][${v6}]`; +}; + +javascript.javascriptGenerator.forBlock[`join`] = (block, generator) => { + const value = stc(block, generator, `value`); + const value2 = stc(block, generator, `value2`); + return `jo[${value}][${value2}]`; +}; \ No newline at end of file diff --git a/public/icon.png b/public/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5f4fbdf5dbf40b75a5c9ef4549c85dcd9252cc71 Binary files /dev/null and b/public/icon.png differ diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000000000000000000000000000000000000..c16064ec8fd1662333265f9bb871f37a8fe9b16a --- /dev/null +++ b/public/index.html @@ -0,0 +1,524 @@ + + + + + + + Minecraft MOD Maker 4 + + + + + + +
+
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 6 + + + + + 7 + + + + + 1000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + + + + + + + 2 + + + + + + + + + + 3 + + + + + + + + + + 4 + + + + + + + + + + + + 1 + + + + + 10 + + + + + + 1 + + + + + + 50 + + + + + + 2 + + + + + + 50 + + + + + + 3 + + + + + + 50 + + + + + + 1 + + + + 2 + + + + + + + + apple + + + + + banana + + + + + + + + + + + + + + + + + + 1 + + + + + + + 2 + + + + + + + + + + + 0 + + + + + + + + 1 + + + + + + + + 2 + + + + + + 16 + + + + 247 + + + + 312 + + + + + + 239 + + + + + + + + + + 47 + + + + + + 95 + + + + 128 + + + + + + 39 + + + + 108 + + + + 157 + + + + 89 + + + + 96 + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/mmp4.zip b/public/mmp4.zip new file mode 100644 index 0000000000000000000000000000000000000000..70e92ed6b4ec1ed6e46ef6f44c3e62be3b0b2703 --- /dev/null +++ b/public/mmp4.zip @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c631bc11a539f9cfa027d2682c42bafbeb9a928f75978d7d83234c4b1f7e487a +size 11144356 diff --git a/public/script.js b/public/script.js new file mode 100644 index 0000000000000000000000000000000000000000..27ba99cf2ba9dc184350e2df5bbe330e1e3d2ffb --- /dev/null +++ b/public/script.js @@ -0,0 +1,191 @@ +const workspace = Blockly.inject(`blocklyDiv`, { + toolbox: document.getElementById(`toolbox`), + renderer: `zelos`, + move: { wheel: true }, + zoom: { + controls: true, + startScale: 0.7, + maxScale: 3, + minScale: 0.3, + scaleSpeed: 1.2, + pinch: true + }, + grid: { + spacing: 40, + length: 3, + colour: '#ccc', + snap: true + }, + trashcan: false, + ADD_START_HATS: true, + theme: Blockly.Theme.defineTheme('mmm', { + 'blockStyles': { + 'motion': { + 'colourPrimary': `#5597fc`, + 'colourSecondary': `#3b73ca` + }, + 'looks': { + 'colourPrimary': `#9a65fc`, + 'colourSecondary': `#784cc9` + }, + 'sound': { + 'colourPrimary': `#ce62cd`, + 'colourSecondary': `#bb40bb` + }, + 'events': { + 'colourPrimary': `#fcbf29`, + 'colourSecondary': `#ca991f` + }, + 'control': { + 'colourPrimary': `#fcaa2f`, + 'colourSecondary': `#cd8a27` + }, + 'sensing': { + 'colourPrimary': `#62b1d4`, + 'colourSecondary': `#388eb6` + }, + 'operators': { + 'colourPrimary': `#5dc05d`, + 'colourSecondary': `#3c943c` + }, + 'variables': { + 'colourPrimary': `#fc8b2d`, + 'colourSecondary': `#d86d1b` + }, + 'data': { + 'colourPrimary': `#fb642a`, + 'colourSecondary': `#e34b1a` + } + }, + 'componentStyles': { + 'workspaceBackgroundColour': `#f9f9f9`, + 'toolboxBackgroundColour': `#ffffff`, + 'toolboxForegroundColour': `6f6f6f`, + 'flyoutBackgroundColour': `#f9f9f9` + }, + 'startHats': true + }) +}); + +workspace.registerButtonCallback(`createVar`, Button => { + Blockly.Variables.createVariableButtonHandler(Button.getTargetWorkspace(), null, ``); +}); + +const style = document.getElementsByTagName(`style`)[0]; +style.textContent = style.textContent.replace(/\.blocklyText/g, ``); + + +const sideBtns = /** @type { HTMLCollectionOf } */ (document.getElementsByClassName(`sideBtn`)); +const cosBtn = /** @type { HTMLButtonElement } */ (document.getElementById(`cosBtn`)); +const coses = /** @type { HTMLDivElement } */ (document.getElementById(`costumes`)); + +let costumes = []; + +const reloadCos = () => { + [...coses.childNodes].forEach(v => { if (v.nodeName == `DIV`) v.remove() }); + for (let i = 0; i < costumes.length; i++) { + const div = document.createElement(`div`); + const div2 = document.createElement(`div`); + const div3 = document.createElement(`div`); + const img = document.createElement(`img`); + div.classList.add(`cos`); + div2.textContent = i + 1; + img.src = costumes[i]; + div3.appendChild(img); + div.append(div2, div3); + div.addEventListener(`click`, () => { + if (confirm(`Are you sure you want to delete it?`)) { + costumes.splice(costumes.indexOf(div.childNodes[1].childNodes[0].src), 1); + reloadCos(); + } + }); + coses.appendChild(div); + } +} + +const addCos = () => { + const file = document.createElement(`input`); + file.accept = `.png`; + file.type = `file`; + file.click(); + file.addEventListener(`change`, () => { + const fileReader = new FileReader(); + fileReader.addEventListener(`load`, () => { + costumes.push(fileReader.result); + reloadCos(); + }); + fileReader.readAsDataURL(file.files[0]); + }); +} + +const sb3 = async () => { + fetch(`/api/check`) + .then(res => res.text()) + .then(resData => { + if (resData == `"ok"`) { + fetch(`/api/sb3`, { + method: `POST`, + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ text: JSON.stringify([Blockly.JavaScript.workspaceToCode(workspace).split('$')[1], ...costumes]) }) + }) + .then(data => data.json()) + .then(sb3Base64 => { + const sb3Data = Uint8Array.from(atob(sb3Base64), c => c.charCodeAt(0)); + + const a = document.createElement('a'); + a.href = URL.createObjectURL(new Blob([sb3Data], { type: 'application/x-scratch-project' })); + a.download = 'project.sb3'; + a.click(); + }); + } else alert(`.sb3 There is a user currently outputting, please wait a while before pressing`); + }) +}; + +const save = async () => { + fetch(`/api/save`, { + method: `POST`, + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ text: JSON.stringify([Blockly.Xml.domToText(Blockly.Xml.workspaceToDom(workspace)), Blockly.JavaScript.workspaceToCode(workspace), ...costumes]) }) + }) + .then(data => data.json()) + .then(base64Zip => { + const zipData = Uint8Array.from(atob(base64Zip), c => c.charCodeAt(0)); + + const a = document.createElement(`a`); + a.href = URL.createObjectURL(new Blob([zipData], { type: `application/zip` })); + a.download = `project.mf4`; + a.click(); + }); +}; + +const load = async () => { + const file = document.createElement(`input`); + file.type = `file`; + file.accept = `.mf4`; + file.click(); + file.addEventListener(`change`, async () => { + const fileReader = new FileReader(); + fileReader.addEventListener(`load`, async () => { + const base64Data = btoa(String.fromCharCode.apply(null, new Uint8Array(fileReader.result))); + fetch(`/api/load`, { + method: `post`, + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ text: base64Data }) + }) + .then(res => res.json()) + .then(data => { + const dom = (new DOMParser()).parseFromString(data[0], `application/xml`); + workspace.clear(); + Blockly.Xml.domToWorkspace(dom.documentElement, workspace); + costumes = data.slice(2, data.length); + reloadCos(); + }); + }); + fileReader.readAsArrayBuffer(file.files[0]); + }); +} + +cosBtn.addEventListener(`click`, addCos); +sideBtns[0].addEventListener(`click`, sb3); +sideBtns[1].addEventListener(`click`, save); +sideBtns[2].addEventListener(`click`, load); \ No newline at end of file diff --git a/public/style.css b/public/style.css new file mode 100644 index 0000000000000000000000000000000000000000..56351162631b941faf8dd7148d94ab50f55cec6e --- /dev/null +++ b/public/style.css @@ -0,0 +1,159 @@ +* { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + user-select: none; + cursor: default; + padding: 0; + margin: 0; +} + +body { + background-color: hsla(215, 100%, 95%, 1); +} + +html, +body { + overflow: hidden; + height: 100%; + width: 100%; +} + +#display { + height: calc(100% - 50px); + display: flex; + width: 100%; +} + +#sideBar { + background-color: hsl(30, 100%, 65%); + height: 50px; + width: 100%; +} + +#sideBar>div { + height: fit-content; + width: fit-content; + margin: 0 auto; + display: flex; +} + +#blocklyDiv { + width: calc(100% - 125px); + height: 100%; +} + +.createVar>rect { + width: 160px; + height: 40px; +} + +.blocklyFlyoutButtonShadow { + fill: transparent; +} + +.blocklyFlyoutButton, +#costumes::-webkit-scrollbar { + fill: none; +} + +.blocklyFlyoutButtonBackground { + pointer-events: all; + stroke: #c6c6c6; +} + +.createVar>.blocklyText { + transform: translateX(35px); + dominant-baseline: central; + text-anchor: middle; + font-weight: 500; + fill: #575E75; + font-size: 12pt; + width: 160px; + height: 40px; +} + +.blocklyTreeRow { + line-height: 27.5px; + height: 30px; +} + +.blocklyFlyout, +.blocklyToolboxDiv { + border-right: 1px solid hsla(0, 0%, 0%, 0.15); +} + +.sideBtn { + padding: 13px 15px 4px 15px; + width: fit-content; + font-weight: bold; + font-size: 13.6px; + line-height: 24px; + cursor: pointer; + color: white; + height: 33px; +} + +.sideBtn:hover { + background-color: hsl(30, 64%, 55%); +} + +#costumes { + overflow-y: scroll; + height: 100%; + width: 125px; +} + +.cos { + border: 2px solid hsla(0, 0%, 0%, 0.15); + box-sizing: border-box; + flex-direction: column; + border-radius: 0.5rem; + margin: 0.5rem auto; + text-align: center; + position: relative; + cursor: pointer; + display: flex; + height: 5rem; + width: 5rem; +} + +.cos>div:nth-child(1) { + color: hsla(225, 15%, 40%, 1); + font-size: 0.625rem; + position: absolute; + font-weight: bold; + left: 0.15rem; + top: 0.15rem; +} + +.cos>div:nth-child(2) { + justify-content: center; + align-items: center; + display: flex; + height: 100%; + width: 100%; +} + +.cos>div:nth-child(2)>img { + filter: drop-shadow(0 0 2px hsla(0, 0%, 0%, 0.15)); + max-height: 50px; + max-width: 50px; +} + +#costumes::-webkit-scrollbar { + width: 0; +} + +#cosBtn { + box-shadow: 0 0 0 3px hsla(30, 60%, 60%, 0.35); + background-color: hsla(30, 60%, 60%, 1); + border-radius: 7.5px; + margin: 7.5px; + width: 110px; + height: 30px; + border: 0; +} + +#cosBtn>img { + position: relative; + top: 2px; +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..d8821dd29ee6045808a96baefb367afb4cefa32d --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +fastapi +StringGenerator +pillow +uvicorn \ No newline at end of file