From 14e51610a66099af5cba7cb92876e691fe017216 Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Sat, 31 Aug 2024 21:19:36 +0200 Subject: next commit --- Assets/Mobs/angesnow-front.png | Bin 0 -> 1877 bytes Assets/Mobs/angesnow-front.png.import | 34 ++++ Assets/Mobs/angesnow-menu01.png | Bin 0 -> 14469 bytes Assets/Mobs/angesnow-menu01.png.import | 34 ++++ Assets/Mobs/banling-front.png | Bin 0 -> 1815 bytes Assets/Mobs/banling-front.png.import | 34 ++++ Assets/Mobs/banling-menu01.png | Bin 0 -> 681 bytes Assets/Mobs/banling-menu01.png.import | 34 ++++ Assets/Mobs/firomenis-front.png | Bin 0 -> 1922 bytes Assets/Mobs/firomenis-front.png.import | 34 ++++ Assets/Mobs/firomenis-menu01.png | Bin 0 -> 11416 bytes Assets/Mobs/firomenis-menu01.png.import | 34 ++++ Assets/Mobs/mob-hovered.png | Bin 0 -> 629 bytes Assets/Mobs/mob-hovered.png.import | 34 ++++ Assets/Mobs/mob-pressed.png | Bin 0 -> 647 bytes Assets/Mobs/mob-pressed.png.import | 34 ++++ Assets/Mobs/mob.png | Bin 0 -> 531 bytes Assets/Mobs/mob.png.import | 34 ++++ Assets/Mobs/windeye-front.png | Bin 0 -> 17367 bytes Assets/Mobs/windeye-front.png.import | 34 ++++ Assets/Mobs/windeye-menu01.png | Bin 0 -> 281 bytes Assets/Mobs/windeye-menu01.png.import | 34 ++++ Assets/UI/door.png | Bin 0 -> 15149 bytes Assets/UI/door.png.import | 34 ++++ Assets/UI/gear.png | Bin 0 -> 15475 bytes Assets/UI/gear.png.import | 34 ++++ Assets/UI/key_e.png | Bin 0 -> 138 bytes Assets/UI/key_e.png.import | 34 ++++ Assets/UI/key_r.png | Bin 0 -> 144 bytes Assets/UI/key_r.png.import | 34 ++++ Assets/UI/wrench.png | Bin 0 -> 15327 bytes Assets/UI/wrench.png.import | 34 ++++ Assets/UI/zoom.png | Bin 0 -> 15329 bytes Assets/UI/zoom.png.import | 34 ++++ Assets/UI/zoomDefault.png | Bin 0 -> 15343 bytes Assets/UI/zoomDefault.png.import | 34 ++++ Assets/UI/zoomIn.png | Bin 0 -> 15343 bytes Assets/UI/zoomIn.png.import | 34 ++++ Assets/UI/zoomOut.png | Bin 0 -> 15339 bytes Assets/UI/zoomOut.png.import | 34 ++++ BuildGrid.gd | 34 +--- BuilderElement.gd | 87 ++++++++-- BuilderElement.tscn | 1 + CollisionVisibilityArea.tscn | 11 ++ Game.gd | 70 ++++---- Goal.gd | 5 + Goal.tscn | 8 +- Mob.gd | 32 ++-- Mob.tscn | 37 ++-- PathNode.gd | 4 + PathNode.tscn | 5 + Readme.md | 5 + Spawn.gd | 4 + Spawn.tscn | 10 +- SpawnButton.tscn | 12 ++ Tower.gd | 10 +- Tower.tscn | 9 +- area_2d.gd | 53 ++++++ collision_visibility_area.gd | 40 +++++ hp_bar.gd | 5 + project.godot | 17 +- spawn_button.gd | 16 ++ world.gd | 53 +++--- world.tscn | 299 +++++++++++++++++++++++++------- 64 files changed, 1309 insertions(+), 198 deletions(-) create mode 100644 Assets/Mobs/angesnow-front.png create mode 100644 Assets/Mobs/angesnow-front.png.import create mode 100644 Assets/Mobs/angesnow-menu01.png create mode 100644 Assets/Mobs/angesnow-menu01.png.import create mode 100644 Assets/Mobs/banling-front.png create mode 100644 Assets/Mobs/banling-front.png.import create mode 100644 Assets/Mobs/banling-menu01.png create mode 100644 Assets/Mobs/banling-menu01.png.import create mode 100644 Assets/Mobs/firomenis-front.png create mode 100644 Assets/Mobs/firomenis-front.png.import create mode 100644 Assets/Mobs/firomenis-menu01.png create mode 100644 Assets/Mobs/firomenis-menu01.png.import create mode 100644 Assets/Mobs/mob-hovered.png create mode 100644 Assets/Mobs/mob-hovered.png.import create mode 100644 Assets/Mobs/mob-pressed.png create mode 100644 Assets/Mobs/mob-pressed.png.import create mode 100644 Assets/Mobs/mob.png create mode 100644 Assets/Mobs/mob.png.import create mode 100644 Assets/Mobs/windeye-front.png create mode 100644 Assets/Mobs/windeye-front.png.import create mode 100644 Assets/Mobs/windeye-menu01.png create mode 100644 Assets/Mobs/windeye-menu01.png.import create mode 100644 Assets/UI/door.png create mode 100644 Assets/UI/door.png.import create mode 100644 Assets/UI/gear.png create mode 100644 Assets/UI/gear.png.import create mode 100644 Assets/UI/key_e.png create mode 100644 Assets/UI/key_e.png.import create mode 100644 Assets/UI/key_r.png create mode 100644 Assets/UI/key_r.png.import create mode 100644 Assets/UI/wrench.png create mode 100644 Assets/UI/wrench.png.import create mode 100644 Assets/UI/zoom.png create mode 100644 Assets/UI/zoom.png.import create mode 100644 Assets/UI/zoomDefault.png create mode 100644 Assets/UI/zoomDefault.png.import create mode 100644 Assets/UI/zoomIn.png create mode 100644 Assets/UI/zoomIn.png.import create mode 100644 Assets/UI/zoomOut.png create mode 100644 Assets/UI/zoomOut.png.import create mode 100644 CollisionVisibilityArea.tscn create mode 100644 Readme.md create mode 100644 SpawnButton.tscn create mode 100644 area_2d.gd create mode 100644 collision_visibility_area.gd create mode 100644 spawn_button.gd diff --git a/Assets/Mobs/angesnow-front.png b/Assets/Mobs/angesnow-front.png new file mode 100644 index 0000000..3dc4783 Binary files /dev/null and b/Assets/Mobs/angesnow-front.png differ diff --git a/Assets/Mobs/angesnow-front.png.import b/Assets/Mobs/angesnow-front.png.import new file mode 100644 index 0000000..903ea50 --- /dev/null +++ b/Assets/Mobs/angesnow-front.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsy7k2v5fhh6v" +path="res://.godot/imported/angesnow-front.png-8159a467ddaf31022ea66e62ffaf1aad.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Mobs/angesnow-front.png" +dest_files=["res://.godot/imported/angesnow-front.png-8159a467ddaf31022ea66e62ffaf1aad.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Mobs/angesnow-menu01.png b/Assets/Mobs/angesnow-menu01.png new file mode 100644 index 0000000..0522d12 Binary files /dev/null and b/Assets/Mobs/angesnow-menu01.png differ diff --git a/Assets/Mobs/angesnow-menu01.png.import b/Assets/Mobs/angesnow-menu01.png.import new file mode 100644 index 0000000..bce564d --- /dev/null +++ b/Assets/Mobs/angesnow-menu01.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://up1rtweit3ut" +path="res://.godot/imported/angesnow-menu01.png-2dc671a21f7bfcab5ac9ed3e860d68cc.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Mobs/angesnow-menu01.png" +dest_files=["res://.godot/imported/angesnow-menu01.png-2dc671a21f7bfcab5ac9ed3e860d68cc.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Mobs/banling-front.png b/Assets/Mobs/banling-front.png new file mode 100644 index 0000000..f7216b9 Binary files /dev/null and b/Assets/Mobs/banling-front.png differ diff --git a/Assets/Mobs/banling-front.png.import b/Assets/Mobs/banling-front.png.import new file mode 100644 index 0000000..92014af --- /dev/null +++ b/Assets/Mobs/banling-front.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d3modiw2b30kh" +path="res://.godot/imported/banling-front.png-d2f95fc474705a8aef7ccd3bad7f0ffe.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Mobs/banling-front.png" +dest_files=["res://.godot/imported/banling-front.png-d2f95fc474705a8aef7ccd3bad7f0ffe.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Mobs/banling-menu01.png b/Assets/Mobs/banling-menu01.png new file mode 100644 index 0000000..d749756 Binary files /dev/null and b/Assets/Mobs/banling-menu01.png differ diff --git a/Assets/Mobs/banling-menu01.png.import b/Assets/Mobs/banling-menu01.png.import new file mode 100644 index 0000000..c569dd9 --- /dev/null +++ b/Assets/Mobs/banling-menu01.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dsui46tcf0pys" +path="res://.godot/imported/banling-menu01.png-6077925eb6e4f6290270974076d28844.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Mobs/banling-menu01.png" +dest_files=["res://.godot/imported/banling-menu01.png-6077925eb6e4f6290270974076d28844.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Mobs/firomenis-front.png b/Assets/Mobs/firomenis-front.png new file mode 100644 index 0000000..e17f4f5 Binary files /dev/null and b/Assets/Mobs/firomenis-front.png differ diff --git a/Assets/Mobs/firomenis-front.png.import b/Assets/Mobs/firomenis-front.png.import new file mode 100644 index 0000000..9705e59 --- /dev/null +++ b/Assets/Mobs/firomenis-front.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxr5ckrvhyp1t" +path="res://.godot/imported/firomenis-front.png-4111c49d68da41f463ffc60f6ea4d8ad.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Mobs/firomenis-front.png" +dest_files=["res://.godot/imported/firomenis-front.png-4111c49d68da41f463ffc60f6ea4d8ad.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Mobs/firomenis-menu01.png b/Assets/Mobs/firomenis-menu01.png new file mode 100644 index 0000000..c930776 Binary files /dev/null and b/Assets/Mobs/firomenis-menu01.png differ diff --git a/Assets/Mobs/firomenis-menu01.png.import b/Assets/Mobs/firomenis-menu01.png.import new file mode 100644 index 0000000..fee4701 --- /dev/null +++ b/Assets/Mobs/firomenis-menu01.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://75o7x0jadi08" +path="res://.godot/imported/firomenis-menu01.png-b9c1b59a6f1f99e6f7cbeac9c3848cf2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Mobs/firomenis-menu01.png" +dest_files=["res://.godot/imported/firomenis-menu01.png-b9c1b59a6f1f99e6f7cbeac9c3848cf2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Mobs/mob-hovered.png b/Assets/Mobs/mob-hovered.png new file mode 100644 index 0000000..d0df121 Binary files /dev/null and b/Assets/Mobs/mob-hovered.png differ diff --git a/Assets/Mobs/mob-hovered.png.import b/Assets/Mobs/mob-hovered.png.import new file mode 100644 index 0000000..a6c74e7 --- /dev/null +++ b/Assets/Mobs/mob-hovered.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dnkr5y0cfxu68" +path="res://.godot/imported/mob-hovered.png-7c4d8a06b0014a2f2c83b84aa4f8b158.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Mobs/mob-hovered.png" +dest_files=["res://.godot/imported/mob-hovered.png-7c4d8a06b0014a2f2c83b84aa4f8b158.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Mobs/mob-pressed.png b/Assets/Mobs/mob-pressed.png new file mode 100644 index 0000000..3bec652 Binary files /dev/null and b/Assets/Mobs/mob-pressed.png differ diff --git a/Assets/Mobs/mob-pressed.png.import b/Assets/Mobs/mob-pressed.png.import new file mode 100644 index 0000000..fad4a30 --- /dev/null +++ b/Assets/Mobs/mob-pressed.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dq2i36oe1wj0m" +path="res://.godot/imported/mob-pressed.png-65f7dcfbb05bdb86b3a33139fd81d2c5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Mobs/mob-pressed.png" +dest_files=["res://.godot/imported/mob-pressed.png-65f7dcfbb05bdb86b3a33139fd81d2c5.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Mobs/mob.png b/Assets/Mobs/mob.png new file mode 100644 index 0000000..9b92b47 Binary files /dev/null and b/Assets/Mobs/mob.png differ diff --git a/Assets/Mobs/mob.png.import b/Assets/Mobs/mob.png.import new file mode 100644 index 0000000..6d00b50 --- /dev/null +++ b/Assets/Mobs/mob.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dr02nqmrnciy0" +path="res://.godot/imported/mob.png-d843b7126a1c2e4d93740631f4cda217.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Mobs/mob.png" +dest_files=["res://.godot/imported/mob.png-d843b7126a1c2e4d93740631f4cda217.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Mobs/windeye-front.png b/Assets/Mobs/windeye-front.png new file mode 100644 index 0000000..0277dfd Binary files /dev/null and b/Assets/Mobs/windeye-front.png differ diff --git a/Assets/Mobs/windeye-front.png.import b/Assets/Mobs/windeye-front.png.import new file mode 100644 index 0000000..3d8e585 --- /dev/null +++ b/Assets/Mobs/windeye-front.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://coiiq1yaonxeg" +path="res://.godot/imported/windeye-front.png-b54e5ce9b5a837f373c8e11eb730c6d2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Mobs/windeye-front.png" +dest_files=["res://.godot/imported/windeye-front.png-b54e5ce9b5a837f373c8e11eb730c6d2.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/Mobs/windeye-menu01.png b/Assets/Mobs/windeye-menu01.png new file mode 100644 index 0000000..6efabc4 Binary files /dev/null and b/Assets/Mobs/windeye-menu01.png differ diff --git a/Assets/Mobs/windeye-menu01.png.import b/Assets/Mobs/windeye-menu01.png.import new file mode 100644 index 0000000..1310ac8 --- /dev/null +++ b/Assets/Mobs/windeye-menu01.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://byrx3c087exvb" +path="res://.godot/imported/windeye-menu01.png-612593ceb0b48d2b35984448dfb08663.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/Mobs/windeye-menu01.png" +dest_files=["res://.godot/imported/windeye-menu01.png-612593ceb0b48d2b35984448dfb08663.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/UI/door.png b/Assets/UI/door.png new file mode 100644 index 0000000..1e53791 Binary files /dev/null and b/Assets/UI/door.png differ diff --git a/Assets/UI/door.png.import b/Assets/UI/door.png.import new file mode 100644 index 0000000..af577ab --- /dev/null +++ b/Assets/UI/door.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dau8u0yw83a6d" +path="res://.godot/imported/door.png-d0f63278718c5bd4601c344ae908f26f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/UI/door.png" +dest_files=["res://.godot/imported/door.png-d0f63278718c5bd4601c344ae908f26f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/UI/gear.png b/Assets/UI/gear.png new file mode 100644 index 0000000..9663f90 Binary files /dev/null and b/Assets/UI/gear.png differ diff --git a/Assets/UI/gear.png.import b/Assets/UI/gear.png.import new file mode 100644 index 0000000..7ebd295 --- /dev/null +++ b/Assets/UI/gear.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://vq0n0i5f4mtu" +path="res://.godot/imported/gear.png-12f1faf7ecafe454972c6403792ca576.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/UI/gear.png" +dest_files=["res://.godot/imported/gear.png-12f1faf7ecafe454972c6403792ca576.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/UI/key_e.png b/Assets/UI/key_e.png new file mode 100644 index 0000000..2e51475 Binary files /dev/null and b/Assets/UI/key_e.png differ diff --git a/Assets/UI/key_e.png.import b/Assets/UI/key_e.png.import new file mode 100644 index 0000000..9185b04 --- /dev/null +++ b/Assets/UI/key_e.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c7ntdvxvv16io" +path="res://.godot/imported/key_e.png-0490407c00ee1ed04d9cc3982c76c5e3.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/UI/key_e.png" +dest_files=["res://.godot/imported/key_e.png-0490407c00ee1ed04d9cc3982c76c5e3.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/UI/key_r.png b/Assets/UI/key_r.png new file mode 100644 index 0000000..22d4284 Binary files /dev/null and b/Assets/UI/key_r.png differ diff --git a/Assets/UI/key_r.png.import b/Assets/UI/key_r.png.import new file mode 100644 index 0000000..39758d7 --- /dev/null +++ b/Assets/UI/key_r.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://hljlcokgys6y" +path="res://.godot/imported/key_r.png-426194ec7b97b0c993a65e92a9019d5e.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/UI/key_r.png" +dest_files=["res://.godot/imported/key_r.png-426194ec7b97b0c993a65e92a9019d5e.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/UI/wrench.png b/Assets/UI/wrench.png new file mode 100644 index 0000000..fd16f6b Binary files /dev/null and b/Assets/UI/wrench.png differ diff --git a/Assets/UI/wrench.png.import b/Assets/UI/wrench.png.import new file mode 100644 index 0000000..e2769d4 --- /dev/null +++ b/Assets/UI/wrench.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://8nwosf1t03m7" +path="res://.godot/imported/wrench.png-61c0530a9d050d82809d4082feb36c87.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/UI/wrench.png" +dest_files=["res://.godot/imported/wrench.png-61c0530a9d050d82809d4082feb36c87.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/UI/zoom.png b/Assets/UI/zoom.png new file mode 100644 index 0000000..f8c60c8 Binary files /dev/null and b/Assets/UI/zoom.png differ diff --git a/Assets/UI/zoom.png.import b/Assets/UI/zoom.png.import new file mode 100644 index 0000000..708a32f --- /dev/null +++ b/Assets/UI/zoom.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cdmyw6ucmvq5a" +path="res://.godot/imported/zoom.png-4c9db4e8dff03b69a403d6a02fcdee5a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/UI/zoom.png" +dest_files=["res://.godot/imported/zoom.png-4c9db4e8dff03b69a403d6a02fcdee5a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/UI/zoomDefault.png b/Assets/UI/zoomDefault.png new file mode 100644 index 0000000..a18677f Binary files /dev/null and b/Assets/UI/zoomDefault.png differ diff --git a/Assets/UI/zoomDefault.png.import b/Assets/UI/zoomDefault.png.import new file mode 100644 index 0000000..444087e --- /dev/null +++ b/Assets/UI/zoomDefault.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ciojbjh3mpiag" +path="res://.godot/imported/zoomDefault.png-c794fd94cc5f1e0b2b51fe72be58a49f.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/UI/zoomDefault.png" +dest_files=["res://.godot/imported/zoomDefault.png-c794fd94cc5f1e0b2b51fe72be58a49f.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/UI/zoomIn.png b/Assets/UI/zoomIn.png new file mode 100644 index 0000000..70fff49 Binary files /dev/null and b/Assets/UI/zoomIn.png differ diff --git a/Assets/UI/zoomIn.png.import b/Assets/UI/zoomIn.png.import new file mode 100644 index 0000000..9f67f36 --- /dev/null +++ b/Assets/UI/zoomIn.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bvv4vc5rot73y" +path="res://.godot/imported/zoomIn.png-75af0da2f71fa13fc8406a56542770a9.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/UI/zoomIn.png" +dest_files=["res://.godot/imported/zoomIn.png-75af0da2f71fa13fc8406a56542770a9.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/Assets/UI/zoomOut.png b/Assets/UI/zoomOut.png new file mode 100644 index 0000000..7f20ad2 Binary files /dev/null and b/Assets/UI/zoomOut.png differ diff --git a/Assets/UI/zoomOut.png.import b/Assets/UI/zoomOut.png.import new file mode 100644 index 0000000..89b8746 --- /dev/null +++ b/Assets/UI/zoomOut.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dwed1e2bvyixn" +path="res://.godot/imported/zoomOut.png-0ef5413113ddcaafc3bea6a552f539b6.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/UI/zoomOut.png" +dest_files=["res://.godot/imported/zoomOut.png-0ef5413113ddcaafc3bea6a552f539b6.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/BuildGrid.gd b/BuildGrid.gd index e7d3149..76d4998 100644 --- a/BuildGrid.gd +++ b/BuildGrid.gd @@ -1,46 +1,28 @@ extends Node2D -var map: TileMapLayer - - func _ready(): Game.mode_changed.connect(func(): queue_redraw() ) - - map = get_parent().get_node("Layer0") as TileMapLayer + func _draw(): if Game.mode == Game.Mode.BUILD: - var area = map.get_used_rect() - #area = area.grow_individual(0, 0, area.size.x, area.size.y) - var cell_size = map.tile_set.tile_size #/ 2 - #draw_rect( - #Rect2(0, 0, area.size.x * cell_size.x, area.size.y * cell_size.y), - #Color("#ffffff"), - #false, - #1.0 - #) - #for row in range(area.size.x): - #for column in range(area.size.y): - #draw_rect( - #Rect2(row * cell_size.x, column * cell_size.y, cell_size.x, cell_size.y), - #Color("#fffffhttps://challonge.com/smash_nes_2024f"), - #false, - #1.0 - #) + var area = Game.map.get_used_rect() + var cell_size = Game.map.tile_set.tile_size + var offset = Game.map.position for row in range(0, area.size.y + 1): draw_line( - Vector2(0, row * cell_size.y), - Vector2(area.size.x * cell_size.x, row * cell_size.y), + Vector2(offset.x, offset.y + row * cell_size.y), + Vector2(offset.x + area.size.x * cell_size.x, offset.y + row * cell_size.y), Color(1, 1, 1, 0.25), 1.0 ) for column in range(0, area.size.x + 1): draw_line( - Vector2(column * cell_size.x, 0), - Vector2(column * cell_size.x, area.size.y * cell_size.y), + Vector2(offset.x + column * cell_size.x, offset.y), + Vector2(offset.x + column * cell_size.x, offset.y + area.size.y * cell_size.y), Color(1, 1, 1, 0.25), 1.0 ) diff --git a/BuilderElement.gd b/BuilderElement.gd index 6a82c0a..5f1e3ca 100644 --- a/BuilderElement.gd +++ b/BuilderElement.gd @@ -6,6 +6,10 @@ extends Node2D var collision_shape: Shape2D +var previous_position + +var collision_areas: Array[Area2D] = [] + func _ready(): var element_sprite: Sprite2D = element.get_node("Sprite2D") @@ -16,35 +20,94 @@ func _ready(): $Sprite2D.position = element_sprite.position var element_collision_shape = element.get_node("CollisionShape2D").duplicate() as CollisionShape2D - $Area2D.add_child(element_collision_shape) + #$Area2D.add_child(element_collision_shape) collision_shape = element_collision_shape.shape + + var snapped_size = collision_shape.size.snapped(Game.map.tile_set.tile_size) + for x in (snapped_size.x / Game.map.tile_set.tile_size.x): + for y in (snapped_size.y / Game.map.tile_set.tile_size.y): + var collision_visibility_area_scene = preload("res://CollisionVisibilityArea.tscn") + var collision_visibility_area = collision_visibility_area_scene.instantiate() + collision_visibility_area.position = Vector2( + x * Game.map.tile_set.tile_size.x, + y * Game.map.tile_set.tile_size.y + ) + collision_visibility_area.set_collision_layer_value(3, true) + collision_visibility_area.set_collision_mask_value(1, true) + collision_visibility_area.set_collision_mask_value(2, true) + collision_visibility_area.set_collision_mask_value(3, true) + collision_visibility_area.colliding_color = Color(1, 0, 0, 0.5) + collision_visibility_area.not_colliding_color = Color(0, 1, 0, 0.25) + + var shape = RectangleShape2D.new() + shape.size = Vector2(Game.map.tile_set.tile_size - Vector2i(1, 1)) + var cshape = CollisionShape2D.new() + cshape.shape = shape + cshape.position = Game.map.tile_set.tile_size / 2 + + collision_visibility_area.add_child(cshape) + add_child(collision_visibility_area) + + collision_areas.append(collision_visibility_area) func _draw(): draw_circle( - Vector2.ZERO, + Game.map.tile_set.tile_size, 8 + element.attack_range, Color(1, 1, 1, 0.75), false, 1.0 ) - if not can_build(): - if collision_shape is RectangleShape2D: - draw_rect(Rect2((collision_shape.size / 2) * -1, collision_shape.size), Color(1, 0, 0, 0.75)) + #if collision_shape is RectangleShape2D: + #var nodes = $Area2D.get_overlapping_nodes() + #for key in nodes: + #var node = nodes[key] + #if node.collision_points.size() == 4: + #var rect_size = (node.collision_points[0] - node.collision_points[1] + + #node.collision_points[2] - node.collision_points[0]).snapped(Game.map.tile_set.tile_size) + #var relative_position = global_position - node.body.global_position.snapped(Game.map.tile_set.tile_size) + #if relative_position.x > 0: + #relative_position.x = 0 + #if relative_position.y > 0: + #relative_position.y = 0 + #if rect_size.x == 0: + #rect_size.x = 16 + #if rect_size.y == 0: + #rect_size.y = 16 + #draw_rect( + #Rect2( + #abs(relative_position), + #abs(rect_size) + #), + #Color(0, 0, 1) + #) + #draw_rect( + #Rect2( + #Vector2.ZERO, + #collision_shape.size + #), + #Color(1, 0, 0, 0.5) if not can_build() else Color(0, 1, 0, 0.25) + #) func _process(_delta): - #global_position = get_global_mouse_position().snapped(Game.map.tile_set.tile_size / 2) - global_position = get_global_mouse_position().snapped(Game.map.tile_set.tile_size) + previous_position = global_position + global_position = get_global_mouse_position().snapped(Game.map.tile_set.tile_size) - Vector2(16,16) + #global_position = Game.map.map_to_local(Game.map.local_to_map(get_global_mouse_position())) - Vector2(16,16) + + if global_position != previous_position: + queue_redraw() func can_build(): - if $Area2D.get_overlapping_areas().size() > 0: - return false - - if $Area2D.get_overlapping_bodies().size() > 0: - return false + for area in collision_areas: + if area.get_overlapping_areas().size() > 0: + return false + + if area.get_overlapping_bodies().size() > 0: + return false return true diff --git a/BuilderElement.tscn b/BuilderElement.tscn index a0d892a..7b176a2 100644 --- a/BuilderElement.tscn +++ b/BuilderElement.tscn @@ -7,6 +7,7 @@ script = ExtResource("1_xxacj") [node name="Sprite2D" type="Sprite2D" parent="."] texture_filter = 1 +centered = false [node name="Area2D" type="Area2D" parent="."] collision_layer = 4 diff --git a/CollisionVisibilityArea.tscn b/CollisionVisibilityArea.tscn new file mode 100644 index 0000000..4effcf5 --- /dev/null +++ b/CollisionVisibilityArea.tscn @@ -0,0 +1,11 @@ +[gd_scene load_steps=2 format=3 uid="uid://cddsncmdb8g2j"] + +[ext_resource type="Script" path="res://collision_visibility_area.gd" id="1_8fa5c"] + +[node name="CollisionVisibilityArea" type="Area2D"] +script = ExtResource("1_8fa5c") + +[connection signal="area_entered" from="." to="." method="_on_area_entered"] +[connection signal="area_exited" from="." to="." method="_on_area_exited"] +[connection signal="body_entered" from="." to="." method="_on_body_entered"] +[connection signal="body_exited" from="." to="." method="_on_body_exited"] diff --git a/Game.gd b/Game.gd index 4f2106a..15c92b9 100644 --- a/Game.gd +++ b/Game.gd @@ -16,6 +16,7 @@ var mode: Mode = Mode.DEFAULT : mode = value mode_changed.emit() +var current_builder_element var score: int : set(value): @@ -29,35 +30,20 @@ var map: TileMapLayer func initialize_stage(tilemap: TileMapLayer): map = tilemap - var region = map.get_used_rect() - #region = region.grow_individual(0, 0, region.size.x, region.size.y) - path_grid = AStarGrid2D.new() - path_grid.region = region - path_grid.cell_size = map.tile_set.tile_size #/ 2 - #path_grid.offset = path_grid.cell_size - path_grid.diagonal_mode = AStarGrid2D.DIAGONAL_MODE_ONLY_IF_NO_OBSTACLES + path_grid.region = map.get_used_rect() + path_grid.cell_size = map.tile_set.tile_size + path_grid.offset = map.tile_set.tile_size / 2 + path_grid.diagonal_mode = AStarGrid2D.DIAGONAL_MODE_AT_LEAST_ONE_WALKABLE path_grid.update() for tower in get_tree().current_scene.get_node("Towers").get_children(): - path_grid.set_point_solid(map.local_to_map(tower.global_position)) - #var tower_region = tower.get_region().size.snapped(path_grid.cell_size) - #path_grid.fill_solid_region(Rect2i( - #map.local_to_map(tower.global_position) + Vector2i(-1,-1), - #tower_region / path_grid.cell_size - #)) + fill_tower_region(tower, true) func place_tower(tower: Tower, position: Vector2): - var grid_position = map.local_to_map(position) - path_grid.set_point_solid(grid_position, true) - #var tower_region = tower.get_region().size.snapped(path_grid.cell_size) - #path_grid.fill_solid_region(Rect2i( - #map.local_to_map(position), - #tower_region / path_grid.cell_size - #), true) - tower.global_position = position + fill_tower_region(tower, true) get_tree().current_scene.get_node("Towers").add_child(tower) Game.score += 1 @@ -69,13 +55,7 @@ func remove_tower(tower: Tower): Game.score -= 1 func destroy_tower(tower: Tower): - var grid_position = map.local_to_map(tower.global_position) - path_grid.set_point_solid(grid_position, false) - #var tower_region = tower.get_region().size.snapped(path_grid.cell_size) - #path_grid.fill_solid_region(Rect2i( - #map.local_to_map(tower.global_position), - #tower_region / path_grid.cell_size, - #), false) + fill_tower_region(tower, false) tower.queue_free() @@ -90,11 +70,41 @@ func deselect_tower(): get_tree().current_scene.get_node("%Tower").text = "" +func fill_tower_region(tower: Tower, solid = true): + var region = tower.get_region().size.snapped(path_grid.cell_size) + path_grid.fill_solid_region( + Rect2i( + map.local_to_map(tower.global_position), + (region / path_grid.cell_size) + ), + solid + ) + + func spawn_mob(mob: Mob, spawn: Spawn): - mob.global_position = spawn.global_position + mob.global_position = spawn.spawn_position mob.target = spawn.next_node mob.hp = randi_range(50, 200) mob.speed = randi_range(50, 150) - mob.get_node("Sprite2D").modulate = Color(randf_range(0, 1), randf_range(0, 1), randf_range(0, 1)) + #mob.get_node("Sprite2D").modulate = Color(randf_range(0, 1), randf_range(0, 1), randf_range(0, 1)) return mob + + +func start_build_mode(): + Game.mode = Game.Mode.BUILD + var scene = preload("res://BuilderElement.tscn") + var builder_element = scene.instantiate() + var tower = preload("res://Tower.tscn").instantiate() as Tower + tower.attack_range = [ + Game.map.tile_set.tile_size.x * 2, + Game.map.tile_set.tile_size.x * 3, + Game.map.tile_set.tile_size.x * 4, + ].pick_random() + builder_element.element = tower + get_tree().current_scene.add_child(builder_element) + current_builder_element = builder_element + +func stop_build_mode(): + current_builder_element.queue_free() + Game.mode = Game.Mode.DEFAULT diff --git a/Goal.gd b/Goal.gd index e7bb29a..534ef3c 100644 --- a/Goal.gd +++ b/Goal.gd @@ -1,2 +1,7 @@ class_name Goal extends Node2D + + +var path_position: Vector2: + get(): + return $PathPosition.global_position diff --git a/Goal.tscn b/Goal.tscn index 735add4..73842ad 100644 --- a/Goal.tscn +++ b/Goal.tscn @@ -4,14 +4,16 @@ [ext_resource type="Texture2D" uid="uid://b1b18rd0tqbar" path="res://core_outdoor.png" id="2_0qdti"] [sub_resource type="CircleShape2D" id="CircleShape2D_m11hr"] -radius = 1.0 +radius = 4.0 [node name="Goal" type="Node2D"] script = ExtResource("1_04oso") [node name="Sprite2D" type="Sprite2D" parent="."] texture_filter = 1 +scale = Vector2(0.25, 0.333333) texture = ExtResource("2_0qdti") +centered = false region_enabled = true region_rect = Rect2(192, 816, 64, 48) @@ -19,4 +21,8 @@ region_rect = Rect2(192, 816, 64, 48) collision_layer = 2 [node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2(8, 8) shape = SubResource("CircleShape2D_m11hr") + +[node name="PathPosition" type="Node2D" parent="."] +position = Vector2(8, 8) diff --git a/Mob.gd b/Mob.gd index a83a119..9dfa923 100644 --- a/Mob.gd +++ b/Mob.gd @@ -11,9 +11,11 @@ var is_selected = false : if value: Mob.selected_unit = self selected.emit() + $Label.visible = true else: if Mob.selected_unit == self: Mob.selected_unit = null + $Label.visible = false is_selected = value queue_redraw() @@ -58,6 +60,8 @@ func _ready(): %HPBar.init(hp) set_hp(hp) + + $SelectionArea/CollisionShape2D.shape.size = $Sprite2D.texture.get_size() * $Sprite2D.scale func _physics_process(delta): @@ -87,7 +91,7 @@ func _draw(): if is_selected: draw_circle( Vector2.ZERO, - 8, + Game.map.tile_set.tile_size.x * 0.75, Color(1, 1, 1, 0.75), false, 1.0 @@ -96,7 +100,7 @@ func _draw(): elif is_hovered: draw_circle( Vector2.ZERO, - 8, + Game.map.tile_set.tile_size.x * 0.75, Color(1, 1, 1, 0.5), false, 1.0 @@ -131,10 +135,7 @@ func set_hp(value): hp = value %HPBar.set_value(value) - if is_selected: - $Label.text = str(hp) - else: - $Label.text = "" + $Label.text = str(hp) if hp <= 0: queue_free() @@ -151,12 +152,12 @@ func reset_path(): # reached end of partial path if current_path.size() == 1 and current_path[0] == global_position: roaming_mode = true - current_path = PackedVector2Array([target.global_position]) + current_path = PackedVector2Array([target.path_position + Vector2(16,16)]) # iterating between one or more closest paths elif recent_closest_paths.count(current_path) >= 2: roaming_mode = true - current_path = PackedVector2Array([target.global_position]) + current_path = PackedVector2Array([target.path_position + Vector2(16,16)]) recent_closest_paths = [] else: recent_closest_paths = [] @@ -165,29 +166,26 @@ func reset_path(): current_path_idx = 0 func get_grid_path(partial = false): - #return Game.path_grid.get_point_path( - #Game.map.local_to_map(global_position) * 2, - #Game.map.local_to_map(target.global_position) * 2, - #partial - #) return Game.path_grid.get_point_path( Game.map.local_to_map(global_position), - Game.map.local_to_map(target.global_position), + Game.map.local_to_map(target.path_position), partial ) -func _on_input_event(_viewport: Node, event: InputEvent, _shape_idx: int) -> void: +func _on_selection_area_input_event(_viewport: Node, event: InputEvent, _shape_idx: int) -> void: if Game.mode == Game.Mode.DEFAULT: if event.is_action_pressed("select"): + if selected_unit: + selected_unit.is_selected = false is_selected = true $Label.text = str(hp) -func _on_mouse_entered() -> void: +func _on_selection_area_mouse_entered() -> void: is_hovered = true -func _on_mouse_exited() -> void: +func _on_selection_area_mouse_exited() -> void: is_hovered = false diff --git a/Mob.tscn b/Mob.tscn index c209adb..95274ac 100644 --- a/Mob.tscn +++ b/Mob.tscn @@ -1,15 +1,18 @@ -[gd_scene load_steps=6 format=3 uid="uid://cslaufgh6ber3"] +[gd_scene load_steps=7 format=3 uid="uid://cslaufgh6ber3"] [ext_resource type="Script" path="res://Mob.gd" id="1_bbcew"] -[ext_resource type="Texture2D" uid="uid://b1b18rd0tqbar" path="res://core_outdoor.png" id="2_xcu8u"] +[ext_resource type="Texture2D" uid="uid://dsy7k2v5fhh6v" path="res://Assets/Mobs/angesnow-front.png" id="2_rxqq1"] [ext_resource type="PackedScene" uid="uid://bjcrf4o4a80iv" path="res://HPBar.tscn" id="3_e777u"] -[sub_resource type="CircleShape2D" id="CircleShape2D_rsrm7"] -radius = 3.0 +[sub_resource type="RectangleShape2D" id="RectangleShape2D_1cqix"] +size = Vector2(3, 3) [sub_resource type="RectangleShape2D" id="RectangleShape2D_iaxxs"] size = Vector2(8, 8) +[sub_resource type="RectangleShape2D" id="RectangleShape2D_o5ax3"] +size = Vector2(16, 16) + [node name="Mob" type="CharacterBody2D"] y_sort_enabled = true collision_mask = 4 @@ -18,13 +21,12 @@ script = ExtResource("1_bbcew") [node name="Sprite2D" type="Sprite2D" parent="."] texture_filter = 1 -scale = Vector2(0.25, 0.25) -texture = ExtResource("2_xcu8u") -region_enabled = true +scale = Vector2(0.5, 0.5) +texture = ExtResource("2_rxqq1") region_rect = Rect2(480, 880, 96, 64) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource("CircleShape2D_rsrm7") +shape = SubResource("RectangleShape2D_1cqix") [node name="NavigationBase" type="Area2D" parent="." groups=["mob_navigation_base"]] collision_mask = 2 @@ -40,14 +42,25 @@ offset_right = 10.0 offset_bottom = -9.0 [node name="Label" type="Label" parent="."] -offset_left = -3.0 -offset_top = 7.0 -offset_right = 3.0 -offset_bottom = 19.0 +visible = false +offset_left = -9.0 +offset_top = 12.0 +offset_right = 10.0 +offset_bottom = 24.0 theme_override_font_sizes/font_size = 8 +text = "1000" +horizontal_alignment = 1 + +[node name="SelectionArea" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="SelectionArea"] +shape = SubResource("RectangleShape2D_o5ax3") [connection signal="input_event" from="." to="." method="_on_input_event"] [connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"] [connection signal="mouse_exited" from="." to="." method="_on_mouse_exited"] [connection signal="tree_exiting" from="." to="." method="_on_tree_exiting"] [connection signal="area_entered" from="NavigationBase" to="." method="_on_navigation_base_area_entered"] +[connection signal="input_event" from="SelectionArea" to="." method="_on_selection_area_input_event"] +[connection signal="mouse_entered" from="SelectionArea" to="." method="_on_selection_area_mouse_entered"] +[connection signal="mouse_exited" from="SelectionArea" to="." method="_on_selection_area_mouse_exited"] diff --git a/PathNode.gd b/PathNode.gd index afbf6eb..848c7b3 100644 --- a/PathNode.gd +++ b/PathNode.gd @@ -3,3 +3,7 @@ extends Node2D @export var next_node: Node2D + +var path_position: Vector2: + get(): + return $PathPosition.global_position diff --git a/PathNode.tscn b/PathNode.tscn index 467d989..594c4c3 100644 --- a/PathNode.tscn +++ b/PathNode.tscn @@ -12,6 +12,7 @@ script = ExtResource("1_ge3jf") [node name="Sprite2D" type="Sprite2D" parent="."] texture_filter = 1 texture = ExtResource("2_wcpbq") +centered = false region_enabled = true region_rect = Rect2(384, 496, 16, 16) @@ -19,4 +20,8 @@ region_rect = Rect2(384, 496, 16, 16) collision_layer = 2 [node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2(8, 8) shape = SubResource("RectangleShape2D_7mk1q") + +[node name="PathPosition" type="Node2D" parent="."] +position = Vector2(8, 8) diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..84362b6 --- /dev/null +++ b/Readme.md @@ -0,0 +1,5 @@ +Make Tower yourself +Power / Range / Speed - per cost and upgradelevel rpg-like points to distribute +Give them abilities/skills +Splash yes/no + splash range - could only be available at tower upgrade level 2+ +exp system for towers?? diff --git a/Spawn.gd b/Spawn.gd index d59765c..36b4580 100644 --- a/Spawn.gd +++ b/Spawn.gd @@ -2,3 +2,7 @@ class_name Spawn extends Node2D @export var next_node: Node2D + +var spawn_position: Vector2: + get(): + return $SpawnPosition.global_position diff --git a/Spawn.tscn b/Spawn.tscn index c7097ce..f34e515 100644 --- a/Spawn.tscn +++ b/Spawn.tscn @@ -4,14 +4,16 @@ [ext_resource type="Texture2D" uid="uid://b1b18rd0tqbar" path="res://core_outdoor.png" id="2_y5h4t"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_66y0l"] -size = Vector2(8, 8) +size = Vector2(4, 4) -[node name="Spawn" type="Node2D"] +[node name="Spawn" type="Node2D" groups=["spawn"]] script = ExtResource("1_ge8q7") [node name="Sprite2D" type="Sprite2D" parent="."] texture_filter = 1 +scale = Vector2(0.5, 0.5) texture = ExtResource("2_y5h4t") +centered = false region_enabled = true region_rect = Rect2(216, 488, 32, 32) @@ -19,4 +21,8 @@ region_rect = Rect2(216, 488, 32, 32) collision_layer = 2 [node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"] +position = Vector2(8, 8) shape = SubResource("RectangleShape2D_66y0l") + +[node name="SpawnPosition" type="Node2D" parent="."] +position = Vector2(8, 8) diff --git a/SpawnButton.tscn b/SpawnButton.tscn new file mode 100644 index 0000000..aa0a48b --- /dev/null +++ b/SpawnButton.tscn @@ -0,0 +1,12 @@ +[gd_scene load_steps=2 format=3 uid="uid://x6kohecnw7f5"] + +[ext_resource type="Script" path="res://spawn_button.gd" id="1_ayei4"] + +[node name="SpawnButton" type="TextureButton"] +offset_left = 2.0 +offset_top = 2.0 +offset_right = 38.0 +offset_bottom = 38.0 +script = ExtResource("1_ayei4") + +[connection signal="pressed" from="." to="." method="_on_pressed"] diff --git a/Tower.gd b/Tower.gd index 9d7f870..78e35d0 100644 --- a/Tower.gd +++ b/Tower.gd @@ -27,7 +27,7 @@ var is_hovered = false : var mobs_in_range: Array = [] -@export var attack_range: int = 16 +@export var attack_range: int = 32 @export var attack_power: int = 1 @export var attack_speed: int = 1 @@ -40,7 +40,7 @@ func _ready(): func _draw(): if is_selected: draw_circle( - Vector2.ZERO, + Game.map.tile_set.tile_size, 8 + attack_range, Color(1, 1, 1, 0.75), false, @@ -50,7 +50,7 @@ func _draw(): elif is_hovered: if Game.mode == Game.Mode.DEFAULT: draw_circle( - Vector2.ZERO, + Game.map.tile_set.tile_size, 8 + attack_range, Color(1, 1, 1, 0.5), false, @@ -90,7 +90,7 @@ func _on_mouse_exited() -> void: func is_melee_range(): - return attack_range <= Game.map.tile_set.tile_size.x + return attack_range <= (Game.map.tile_set.tile_size.x * 2) func shoot(): @@ -108,7 +108,7 @@ func get_region(): return Rect2( collision_shape.position, - shape.size.snapped(Game.map.tile_set.tile_size) + shape.size ) diff --git a/Tower.tscn b/Tower.tscn index 310e438..d33df5a 100644 --- a/Tower.tscn +++ b/Tower.tscn @@ -4,7 +4,7 @@ [ext_resource type="Texture2D" uid="uid://b1b18rd0tqbar" path="res://core_outdoor.png" id="1_mrep8"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_atm5x"] -size = Vector2(15, 15) +size = Vector2(31, 31) [sub_resource type="CircleShape2D" id="CircleShape2D_qa8kt"] @@ -17,19 +17,22 @@ script = ExtResource("1_axo1d") [node name="Sprite2D" type="Sprite2D" parent="."] texture_filter = 1 -position = Vector2(0, -8) -scale = Vector2(0.625, 0.625) +position = Vector2(0, -19) +scale = Vector2(1.0625, 1.0625) texture = ExtResource("1_mrep8") +centered = false region_enabled = true region_rect = Rect2(400, 432, 32, 48) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2(16, 16) shape = SubResource("RectangleShape2D_atm5x") [node name="Range" type="Area2D" parent="."] collision_layer = 0 [node name="CollisionShape2D" type="CollisionShape2D" parent="Range"] +position = Vector2(16, 16) shape = SubResource("CircleShape2D_qa8kt") [node name="ShootCooldown" type="Timer" parent="."] diff --git a/area_2d.gd b/area_2d.gd new file mode 100644 index 0000000..b9ed0d4 --- /dev/null +++ b/area_2d.gd @@ -0,0 +1,53 @@ +extends Area2D + +var overlapping_nodes: Dictionary = {} + +func _ready(): + connect("body_shape_entered", Callable(self, "_on_body_shape_entered")) + connect("body_shape_exited", Callable(self, "_on_body_shape_exited")) + + +func get_overlapping_nodes(): + for key in overlapping_nodes: + var body = overlapping_nodes[key].body + var body_shape: int = overlapping_nodes[key].body_shape + var area_shape: int = overlapping_nodes[key].area_shape + + var body_shape2d: Shape2D = body.shape_owner_get_shape(body_shape, 0) + var area_shape2d: Shape2D = shape_owner_get_shape(area_shape, 0) + + var body_shape2d_transform = body.shape_owner_get_owner(body_shape).get_global_transform() + var area_shape2d_transform = shape_owner_get_owner(area_shape).get_global_transform() + + var collision_points = area_shape2d.collide_and_get_contacts(area_shape2d_transform, body_shape2d, body_shape2d_transform) + overlapping_nodes[key].collision_points = collision_points + + if collision_points.size() == 2: + overlapping_nodes[key].collision_points.append( + overlapping_nodes[key].collision_points[0] + Vector2(0, 16) + ) + overlapping_nodes[key].collision_points.append( + overlapping_nodes[key].collision_points[1] + Vector2(0, 16) + ) + + + return overlapping_nodes + + +func _on_body_shape_entered(id, body, body_shape, area_shape): + if body != null: + #print("Id: ", id, " [", body, ", ", body_shape, ", ", area_shape, "] has entered. ") + var key := str(id) + ":" + str(body_shape) + overlapping_nodes[key] = { + "body": body, + "body_shape": body_shape, + "area_shape": area_shape, + "collision_points": [], + } + + +func _on_body_shape_exited(id, body, body_shape, area_shape): + if body != null: + #print("Id: ", id, " [", body, ", ", body_shape, ", ", area_shape, "] has exited. ") + var key := str(id) + ":" + str(body_shape) + overlapping_nodes.erase(key) diff --git a/collision_visibility_area.gd b/collision_visibility_area.gd new file mode 100644 index 0000000..da4683c --- /dev/null +++ b/collision_visibility_area.gd @@ -0,0 +1,40 @@ +extends Area2D + + +@onready var collision_shape = get_child(0) as CollisionShape2D + +var colliding_nodes = [] + +@export var not_colliding_color: Color +@export var colliding_color: Color + + +func _draw(): + var shape = collision_shape.shape as RectangleShape2D + draw_rect( + Rect2( + Vector2.ZERO, + shape.size.snapped(Game.map.tile_set.tile_size) + ), + colliding_color if colliding_nodes else not_colliding_color + ) + + +func _on_area_entered(area: Area2D) -> void: + colliding_nodes.append(area) + queue_redraw() + + +func _on_area_exited(area: Area2D) -> void: + colliding_nodes.remove_at(colliding_nodes.find(area)) + queue_redraw() + + +func _on_body_entered(body: Node2D) -> void: + colliding_nodes.append(body) + queue_redraw() + + +func _on_body_exited(body: Node2D) -> void: + colliding_nodes.remove_at(colliding_nodes.find(body)) + queue_redraw() diff --git a/hp_bar.gd b/hp_bar.gd index e8c304f..9df85e8 100644 --- a/hp_bar.gd +++ b/hp_bar.gd @@ -18,6 +18,11 @@ func init(health): func set_value(value): value_difference = $HealthBar.value - value $HealthBar.value = value + + if $HealthBar.max_value == $HealthBar.value: + visible = false + else: + visible = true func _on_health_bar_value_changed(value: float) -> void: diff --git a/project.godot b/project.godot index b3e68ab..31fad73 100644 --- a/project.godot +++ b/project.godot @@ -21,10 +21,15 @@ Game="*res://Game.gd" [display] -window/size/viewport_height=640 +window/size/viewport_width=1280 +window/size/viewport_height=720 window/stretch/mode="viewport" window/stretch/aspect="expand" +[global_group] + +spawn="" + [input] camera_zoom_out={ @@ -62,6 +67,16 @@ select={ "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(101, 19),"global_position":Vector2(110, 65),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null) ] } +build_mode_start={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null) +] +} +spawn_box_toggle={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":114,"location":0,"echo":false,"script":null) +] +} [layer_names] diff --git a/spawn_button.gd b/spawn_button.gd new file mode 100644 index 0000000..c9872e0 --- /dev/null +++ b/spawn_button.gd @@ -0,0 +1,16 @@ +extends TextureButton + + +@export var texture: Texture2D + + +func _on_pressed() -> void: + var mob = preload("res://Mob.tscn").instantiate() as Mob + var spawn = get_tree().get_first_node_in_group("spawn") as Spawn + var spawn_mob = Game.spawn_mob(mob, spawn) + + if texture: + spawn_mob.get_node("Sprite2D").texture = texture + spawn_mob.get_node("Sprite2D").scale = Vector2(32,32) / texture.get_size() + + get_tree().current_scene.add_child(spawn_mob) diff --git a/world.gd b/world.gd index fa2b6dd..6817412 100644 --- a/world.gd +++ b/world.gd @@ -14,11 +14,11 @@ func _ready(): ] ) - while true: - var scene = preload("res://Mob.tscn") - var mob = scene.instantiate() - add_child(Game.spawn_mob(mob, $Spawn)) - await get_tree().create_timer(randi_range(1, 2)).timeout + #while true: + #var scene = preload("res://Mob.tscn") + #var mob = scene.instantiate() + #add_child(Game.spawn_mob(mob, $Spawn)) + #await get_tree().create_timer(randi_range(1, 2)).timeout #await get_tree().create_timer(0.01).timeout #break @@ -27,7 +27,7 @@ func _draw(): if Game.debug: var area = Game.path_grid.region var cell_size = Game.path_grid.cell_size - var offset = Game.path_grid.offset + var offset = Game.path_grid.offset + (Game.path_grid.cell_size / 2) for row in range(0, area.size.y + 1): draw_line( Vector2(offset.x, offset.y + row * cell_size.y), @@ -58,12 +58,18 @@ func _draw(): func _input(event: InputEvent): if event.is_action_pressed("ui_accept"): - for _i in range(0, 2): + for _i in range(0, 1): var scene = preload("res://Mob.tscn") var mob = scene.instantiate() add_child(Game.spawn_mob(mob, $Spawn)) + if event.is_action_pressed("spawn_box_toggle"): + %SpawnBox.visible = not %SpawnBox.visible + if Game.mode == Game.Mode.DEFAULT: + if event.is_action_pressed("build_mode_start"): + Game.start_build_mode() + if event.is_action_pressed("builder_tower_select"): if Tower.selected_tower: Tower.selected_tower.is_selected = false @@ -71,13 +77,13 @@ func _input(event: InputEvent): if Mob.selected_unit: Mob.selected_unit.is_selected = false - if Game.mode == Game.Mode.BUILD: + elif Game.mode == Game.Mode.BUILD: if event.is_action_pressed("builder_tower_select"): get_viewport().set_input_as_handled() - if current_builder_element.can_build(): - var placed_tower = current_builder_element.element.duplicate() as Tower - Game.place_tower(placed_tower, get_global_mouse_position().snapped(Game.map.tile_set.tile_size)) + if Game.current_builder_element.can_build(): + var placed_tower = Game.current_builder_element.element.duplicate() as Tower + Game.place_tower(placed_tower, Game.current_builder_element.global_position) placed_tower.selected.connect(func(): %Tower.text = "Range: %s - Power: %s - Speed: %s" % [ @@ -86,24 +92,19 @@ func _input(event: InputEvent): ) if not Input.is_action_pressed("builder_tower_place_keep"): - current_builder_element.queue_free() - Game.mode = Game.Mode.DEFAULT + Game.stop_build_mode() - if event.is_action_pressed("builder_cancel"): + if event.is_action_pressed("builder_cancel") or event.is_action_pressed("build_mode_start"): get_viewport().set_input_as_handled() - - current_builder_element.queue_free() - Game.mode = Game.Mode.DEFAULT + Game.stop_build_mode() -func _on_texture_rect_gui_input(event: InputEvent): +func _on_build_mode_button_gui_input(event: InputEvent) -> void: if event.is_action_pressed("builder_tower_select"): Game.mode = Game.Mode.BUILD - - var scene = preload("res://BuilderElement.tscn") - var builder_element = scene.instantiate() - var tower = preload("res://Tower.tscn").instantiate() as Tower - tower.attack_range = [16, 32, 64].pick_random() - builder_element.element = tower - add_child(builder_element) - current_builder_element = builder_element + Game.start_build_mode() + + +func _on_spawner_box_button_gui_input(event: InputEvent) -> void: + if event.is_action_pressed("select"): + %SpawnBox.visible = not %SpawnBox.visible diff --git a/world.tscn b/world.tscn index ad92062..8066b9e 100644 --- a/world.tscn +++ b/world.tscn @@ -1,14 +1,30 @@ -[gd_scene load_steps=13 format=4 uid="uid://bl65jllb3e2py"] +[gd_scene load_steps=27 format=4 uid="uid://bl65jllb3e2py"] [ext_resource type="Texture2D" uid="uid://b1b18rd0tqbar" path="res://core_outdoor.png" id="1_luil3"] [ext_resource type="Script" path="res://world.gd" id="1_o88ua"] +[ext_resource type="Texture2D" uid="uid://c7ntdvxvv16io" path="res://Assets/UI/key_e.png" id="2_ytgig"] +[ext_resource type="Texture2D" uid="uid://hljlcokgys6y" path="res://Assets/UI/key_r.png" id="3_5qbjb"] [ext_resource type="PackedScene" uid="uid://of5ggu6lifwy" path="res://Spawn.tscn" id="3_f2sda"] +[ext_resource type="Texture2D" uid="uid://dr02nqmrnciy0" path="res://Assets/Mobs/mob.png" id="4_e5a4b"] +[ext_resource type="PackedScene" uid="uid://x6kohecnw7f5" path="res://SpawnButton.tscn" id="4_fh2by"] [ext_resource type="Script" path="res://BuildGrid.gd" id="5_28i18"] [ext_resource type="PackedScene" uid="uid://2lt8m7df0e2u" path="res://Goal.tscn" id="5_dp16q"] +[ext_resource type="Texture2D" uid="uid://up1rtweit3ut" path="res://Assets/Mobs/angesnow-menu01.png" id="5_undrn"] +[ext_resource type="Texture2D" uid="uid://dq2i36oe1wj0m" path="res://Assets/Mobs/mob-pressed.png" id="6_1buj5"] [ext_resource type="PackedScene" uid="uid://d0ukgoppkh1fn" path="res://PathNode.tscn" id="6_lh0f6"] [ext_resource type="PackedScene" uid="uid://t8feyd2giabm" path="res://Camera.tscn" id="6_yijl8"] [ext_resource type="PackedScene" uid="uid://by1x56w21o165" path="res://Tower.tscn" id="7_5o3d3"] -[ext_resource type="Texture2D" uid="uid://yvdccnxqt51o" path="res://icon.svg" id="8_6vxea"] +[ext_resource type="Texture2D" uid="uid://dnkr5y0cfxu68" path="res://Assets/Mobs/mob-hovered.png" id="7_a8tr5"] +[ext_resource type="Texture2D" uid="uid://dsy7k2v5fhh6v" path="res://Assets/Mobs/angesnow-front.png" id="8_ocqiy"] +[ext_resource type="Texture2D" uid="uid://dsui46tcf0pys" path="res://Assets/Mobs/banling-menu01.png" id="9_q6xah"] +[ext_resource type="Texture2D" uid="uid://d3modiw2b30kh" path="res://Assets/Mobs/banling-front.png" id="10_vm7kp"] +[ext_resource type="Texture2D" uid="uid://75o7x0jadi08" path="res://Assets/Mobs/firomenis-menu01.png" id="11_ndl2o"] +[ext_resource type="Texture2D" uid="uid://bxr5ckrvhyp1t" path="res://Assets/Mobs/firomenis-front.png" id="12_3th5s"] +[ext_resource type="Texture2D" uid="uid://byrx3c087exvb" path="res://Assets/Mobs/windeye-menu01.png" id="13_q4gbd"] +[ext_resource type="Texture2D" uid="uid://coiiq1yaonxeg" path="res://Assets/Mobs/windeye-front.png" id="14_46ihl"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_rlr65"] +bg_color = Color(0, 0, 0, 0.54902) [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_vqyn1"] texture = ExtResource("1_luil3") @@ -1942,13 +1958,79 @@ script = ExtResource("1_o88ua") [node name="CanvasLayer" type="CanvasLayer" parent="."] -[node name="GridContainer" type="GridContainer" parent="CanvasLayer"] -offset_right = 40.0 -offset_bottom = 40.0 +[node name="Panel" type="PanelContainer" parent="CanvasLayer"] +anchors_preset = 10 +anchor_right = 1.0 +offset_bottom = 29.0 +grow_horizontal = 2 +theme_override_styles/panel = SubResource("StyleBoxFlat_rlr65") + +[node name="VBoxContainer" type="VBoxContainer" parent="CanvasLayer/Panel"] +layout_mode = 2 + +[node name="Container" type="HBoxContainer" parent="CanvasLayer/Panel/VBoxContainer"] +layout_mode = 2 + +[node name="GridContainer" type="GridContainer" parent="CanvasLayer/Panel/VBoxContainer/Container"] +layout_mode = 2 +columns = 2 + +[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/Panel/VBoxContainer/Container/GridContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 4 +theme_override_constants/margin_top = 4 +theme_override_constants/margin_right = 4 +theme_override_constants/margin_bottom = 4 + +[node name="HBoxContainer" type="HBoxContainer" parent="CanvasLayer/Panel/VBoxContainer/Container/GridContainer/MarginContainer"] +layout_mode = 2 + +[node name="BuildModeButton" type="TextureRect" parent="CanvasLayer/Panel/VBoxContainer/Container/GridContainer/MarginContainer/HBoxContainer"] +custom_minimum_size = Vector2(24, 24) +layout_mode = 2 +texture = ExtResource("2_ytgig") +expand_mode = 1 + +[node name="Label" type="Label" parent="CanvasLayer/Panel/VBoxContainer/Container/GridContainer/MarginContainer/HBoxContainer"] +layout_mode = 2 +text = "Build Mode" -[node name="TextureRect" type="TextureRect" parent="CanvasLayer/GridContainer"] +[node name="MarginContainer2" type="MarginContainer" parent="CanvasLayer/Panel/VBoxContainer/Container/GridContainer"] +layout_mode = 2 +theme_override_constants/margin_left = 4 +theme_override_constants/margin_top = 4 +theme_override_constants/margin_right = 4 +theme_override_constants/margin_bottom = 4 + +[node name="HBoxContainer2" type="HBoxContainer" parent="CanvasLayer/Panel/VBoxContainer/Container/GridContainer/MarginContainer2"] +layout_mode = 2 + +[node name="SpawnerBoxButton" type="TextureRect" parent="CanvasLayer/Panel/VBoxContainer/Container/GridContainer/MarginContainer2/HBoxContainer2"] +custom_minimum_size = Vector2(24, 24) +layout_mode = 2 +texture = ExtResource("3_5qbjb") +expand_mode = 1 + +[node name="Label" type="Label" parent="CanvasLayer/Panel/VBoxContainer/Container/GridContainer/MarginContainer2/HBoxContainer2"] +layout_mode = 2 +text = "Spawn Box" + +[node name="Control" type="Control" parent="CanvasLayer/Panel/VBoxContainer/Container"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/Panel/VBoxContainer/Container"] +layout_mode = 2 +theme_override_constants/margin_right = 8 + +[node name="Score" type="Label" parent="CanvasLayer/Panel/VBoxContainer/Container/MarginContainer"] +unique_name_in_owner = true +layout_mode = 2 +text = "0" + +[node name="ColorRect" type="ColorRect" parent="CanvasLayer/Panel/VBoxContainer"] +custom_minimum_size = Vector2(0, 1) layout_mode = 2 -texture = ExtResource("8_6vxea") [node name="CenterContainer" type="CenterContainer" parent="CanvasLayer"] anchors_preset = 12 @@ -1962,54 +2044,168 @@ grow_vertical = 0 unique_name_in_owner = true layout_mode = 2 -[node name="Score" type="Label" parent="CanvasLayer"] +[node name="SpawnBox" type="PanelContainer" parent="CanvasLayer"] unique_name_in_owner = true -anchors_preset = 1 +anchors_preset = 3 anchor_left = 1.0 +anchor_top = 1.0 anchor_right = 1.0 +anchor_bottom = 1.0 offset_left = -40.0 -offset_bottom = 23.0 +offset_top = -40.0 grow_horizontal = 0 +grow_vertical = 0 + +[node name="MarginContainer" type="MarginContainer" parent="CanvasLayer/SpawnBox"] +layout_mode = 2 +theme_override_constants/margin_left = 8 +theme_override_constants/margin_top = 8 +theme_override_constants/margin_right = 8 +theme_override_constants/margin_bottom = 8 + +[node name="GridContainer" type="GridContainer" parent="CanvasLayer/SpawnBox/MarginContainer"] +layout_mode = 2 +theme_override_constants/h_separation = 12 +theme_override_constants/v_separation = 12 +columns = 4 + +[node name="SpawnButton" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("5_undrn") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") +texture = ExtResource("8_ocqiy") + +[node name="SpawnButton2" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("9_q6xah") +texture_hover = ExtResource("7_a8tr5") +texture = ExtResource("10_vm7kp") + +[node name="SpawnButton3" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("11_ndl2o") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") +texture = ExtResource("12_3th5s") + +[node name="SpawnButton4" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("13_q4gbd") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") +texture = ExtResource("14_46ihl") + +[node name="SpawnButton5" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("4_e5a4b") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") + +[node name="SpawnButton6" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("4_e5a4b") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") + +[node name="SpawnButton7" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("4_e5a4b") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") + +[node name="SpawnButton8" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("4_e5a4b") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") + +[node name="SpawnButton9" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("4_e5a4b") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") + +[node name="SpawnButton10" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("4_e5a4b") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") + +[node name="SpawnButton11" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("4_e5a4b") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") + +[node name="SpawnButton12" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("4_e5a4b") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") + +[node name="SpawnButton13" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("4_e5a4b") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") + +[node name="SpawnButton14" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("4_e5a4b") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") + +[node name="SpawnButton15" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("4_e5a4b") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") + +[node name="SpawnButton16" parent="CanvasLayer/SpawnBox/MarginContainer/GridContainer" instance=ExtResource("4_fh2by")] +layout_mode = 2 +texture_normal = ExtResource("4_e5a4b") +texture_pressed = ExtResource("6_1buj5") +texture_hover = ExtResource("7_a8tr5") [node name="Layer0" type="TileMapLayer" parent="."] texture_filter = 1 use_parent_material = true -position = Vector2(8, 8) tile_map_data = PackedByteArray("AAAAAAAAAAABAAMAAAAAAAEAAAABAAMAAAAAAAIAAAABAAMAAAAAAAMAAAABAAMAAAAAAAQAAAABAAMAAAAAAAUAAAABAAMAAAAAAAYAAAABAAMAAAAAAAcAAAABAAMAAAAAAAgAAAABAAMAAAAAAAkAAAABAAMAAAAAAAoAAAABAAMAAAAAAAsAAAABAAMAAAAAAAwAAAABAAMAAAAAAA0AAAABAAMAAAAAAA4AAAABAAMAAAAAAA8AAAABAAMAAAAAABAAAAABAAMAAAAAABEAAAABAAMAAAAAABIAAAABAAMAAAAAABMAAAABAAMAAAAAABQAAAABAAMAAAAAABUAAAABAAMAAAAAABYAAAABAAMAAAAAABcAAAABAAMAAAAAABgAAAABAAMAAAAAABkAAAABAAMAAAAAABoAAAABAAMAAAAAABsAAAABAAMAAAAAABwAAAABAAMAAAAAAB0AAAABAAMAAAAAAB4AAAABAAMAAAAAAB8AAAABAAMAAAAAACAAAAABAAMAAAAAACEAAAABAAMAAAAAACIAAAABAAMAAAAAACMAAAABAAMAAAAAACQAAAABAAMAAAAAACUAAAABAAMAAAAAACYAAAABAAMAAAAAACcAAAABAAMAAAAAACgAAAABAAMAAAAAACkAAAABAAMAAAAAACoAAAABAAMAAAAAACsAAAABAAMAAAAAACwAAAABAAMAAAAAAC0AAAABAAMAAAAAAC4AAAABAAMAAAAAAC8AAAABAAMAAAAAADAAAAABAAMAAAAAADEAAAABAAMAAAAAADIAAAABAAMAAAAAADMAAAABAAMAAAAAADQAAAABAAMAAAAAADUAAAABAAMAAAABAAAAAAABAAMAAAABAAEAAAABAAMAAAABAAIAAAABAAMAAAABAAMAAAABAAMAAAABAAQAAAABAAMAAAABAAUAAAABAAMAAAABAAYAAAABAAMAAAABAAcAAAABAAMAAAABAAgAAAABAAMAAAABAAkAAAABAAMAAAABAAoAAAABAAMAAAABAAsAAAABAAMAAAABAAwAAAABAAMAAAABAA0AAAABAAMAAAABAA4AAAABAAMAAAABAA8AAAABAAMAAAABABAAAAABAAMAAAABABEAAAABAAMAAAABABIAAAABAAMAAAABABMAAAABAAMAAAABABQAAAABAAMAAAABABUAAAABAAMAAAABABYAAAABAAMAAAABABcAAAABAAMAAAABABgAAAABAAMAAAABABkAAAABAAMAAAABABoAAAABAAMAAAABABsAAAABAAMAAAABABwAAAABAAMAAAABAB0AAAABAAMAAAABAB4AAAABAAMAAAABAB8AAAABAAMAAAABACAAAAABAAMAAAABACEAAAABAAMAAAABACIAAAABAAMAAAABACMAAAABAAMAAAABACQAAAABAAMAAAABACUAAAABAAMAAAABACYAAAABAAMAAAABACcAAAABAAMAAAABACgAAAABAAMAAAABACkAAAABAAMAAAABACoAAAABAAMAAAABACsAAAABAAMAAAABACwAAAABAAMAAAABAC0AAAABAAMAAAABAC4AAAABAAMAAAABAC8AAAABAAMAAAABADAAAAABAAMAAAABADEAAAABAAMAAAABADIAAAABAAMAAAABADMAAAABAAMAAAABADQAAAABAAMAAAABADUAAAABAAMAAAACAAAAAAABAAMAAAACAAEAAAABAAMAAAACAAIAAAABAAMAAAACAAMAAAABAAMAAAACAAQAAAABAAMAAAACAAUAAAABAAMAAAACAAYAAAABAAMAAAACAAcAAAABAAMAAAACAAgAAAABAAMAAAACAAkAAAABAAMAAAACAAoAAAABAAMAAAACAAsAAAABAAMAAAACAAwAAAABAAMAAAACAA0AAAABAAMAAAACAA4AAAABAAMAAAACAA8AAAABAAMAAAACABAAAAABAAMAAAACABEAAAABAAMAAAACABIAAAABAAMAAAACABMAAAABAAMAAAACABQAAAABAAMAAAACABUAAAABAAMAAAACABYAAAABAAMAAAACABcAAAABAAMAAAACABgAAAABAAMAAAACABkAAAABAAMAAAACABoAAAABAAMAAAACABsAAAABAAMAAAACABwAAAABAAMAAAACAB0AAAABAAMAAAACAB4AAAABAAMAAAACAB8AAAABAAMAAAACACAAAAABAAMAAAACACEAAAABAAMAAAACACIAAAABAAMAAAACACMAAAABAAMAAAACACQAAAABAAMAAAACACUAAAABAAMAAAACACYAAAABAAMAAAACACcAAAABAAMAAAACACgAAAABAAMAAAACACkAAAABAAMAAAACACoAAAABAAMAAAACACsAAAABAAMAAAACACwAAAABAAMAAAACAC0AAAABAAMAAAACAC4AAAABAAMAAAACAC8AAAABAAMAAAACADAAAAABAAMAAAACADEAAAABAAMAAAACADIAAAABAAMAAAACADMAAAABAAMAAAACADQAAAABAAMAAAACADUAAAABAAMAAAADAAAAAAABAAMAAAADAAEAAAABAAMAAAADAAIAAAABAAMAAAADAAMAAAABAAMAAAADAAQAAAABAAMAAAADAAUAAAABAAMAAAADAAYAAAABAAMAAAADAAcAAAABAAMAAAADAAgAAAABAAMAAAADAAkAAAABAAMAAAADAAoAAAABAAMAAAADAAsAAAABAAMAAAADAAwAAAABAAMAAAADAA0AAAABAAMAAAADAA4AAAABAAMAAAADAA8AAAABAAMAAAADABAAAAABAAMAAAADABEAAAABAAMAAAADABIAAAABAAMAAAADABMAAAABAAMAAAADABQAAAABAAMAAAADABUAAAABAAMAAAADABYAAAABAAMAAAADABcAAAABAAMAAAADABgAAAABAAMAAAADABkAAAABAAMAAAADABoAAAABAAMAAAADABsAAAABAAMAAAADABwAAAABAAMAAAADAB0AAAABAAMAAAADAB4AAAABAAMAAAADAB8AAAABAAMAAAADACAAAAABAAMAAAADACEAAAABAAMAAAADACIAAAABAAMAAAADACMAAAABAAMAAAADACQAAAABAAMAAAADACUAAAABAAMAAAADACYAAAABAAMAAAADACcAAAABAAMAAAADACgAAAABAAMAAAADACkAAAABAAMAAAADACoAAAABAAMAAAADACsAAAABAAMAAAADACwAAAABAAMAAAADAC0AAAABAAMAAAADAC4AAAABAAMAAAADAC8AAAABAAMAAAADADAAAAABAAMAAAADADEAAAABAAMAAAADADIAAAABAAMAAAADADMAAAABAAMAAAADADQAAAABAAMAAAADADUAAAABAAMAAAAEAAAAAAABAAMAAAAEAAEAAAABAAMAAAAEAAIAAAABAAMAAAAEAAMAAAABAAMAAAAEAAQAAAABAAMAAAAEAAUAAAABAAMAAAAEAAYAAAABAAMAAAAEAAcAAAABAAMAAAAEAAgAAAABAAMAAAAEAAkAAAABAAMAAAAEAAoAAAABAAMAAAAEAAsAAAABAAMAAAAEAAwAAAABAAMAAAAEAA0AAAABAAMAAAAEAA4AAAABAAMAAAAEAA8AAAABAAMAAAAEABAAAAABAAMAAAAEABEAAAABAAMAAAAEABIAAAABAAMAAAAEABMAAAABAAMAAAAEABQAAAABAAMAAAAEABUAAAABAAMAAAAEABYAAAABAAMAAAAEABcAAAABAAMAAAAEABgAAAABAAMAAAAEABkAAAABAAMAAAAEABoAAAABAAMAAAAEABsAAAABAAMAAAAEABwAAAABAAMAAAAEAB0AAAABAAMAAAAEAB4AAAABAAMAAAAEAB8AAAABAAMAAAAEACAAAAABAAMAAAAEACEAAAABAAMAAAAEACIAAAABAAMAAAAEACMAAAABAAMAAAAEACQAAAABAAMAAAAEACUAAAABAAMAAAAEACYAAAABAAMAAAAEACcAAAABAAMAAAAEACgAAAABAAMAAAAEACkAAAABAAMAAAAEACoAAAABAAMAAAAEACsAAAABAAMAAAAEACwAAAABAAMAAAAEAC0AAAABAAMAAAAEAC4AAAABAAMAAAAEAC8AAAABAAMAAAAEADAAAAABAAMAAAAEADEAAAABAAMAAAAEADIAAAABAAMAAAAEADMAAAABAAMAAAAEADQAAAABAAMAAAAEADUAAAABAAMAAAAFAAAAAAABAAMAAAAFAAEAAAABAAMAAAAFAAIAAAABAAMAAAAFAAMAAAABAAMAAAAFAAQAAAABAAMAAAAFAAUAAAABAAMAAAAFAAYAAAABAAMAAAAFAAcAAAABAAMAAAAFAAgAAAABAAMAAAAFAAkAAAABAAMAAAAFAAoAAAABAAMAAAAFAAsAAAABAAMAAAAFAAwAAAABAAMAAAAFAA0AAAABAAMAAAAFAA4AAAABAAMAAAAFAA8AAAABAAMAAAAFABAAAAABAAMAAAAFABEAAAABAAMAAAAFABIAAAABAAMAAAAFABMAAAABAAMAAAAFABQAAAABAAMAAAAFABUAAAABAAMAAAAFABYAAAABAAMAAAAFABcAAAABAAMAAAAFABgAAAABAAMAAAAFABkAAAABAAMAAAAFABoAAAABAAMAAAAFABsAAAABAAMAAAAFABwAAAABAAMAAAAFAB0AAAABAAMAAAAFAB4AAAABAAMAAAAFAB8AAAABAAMAAAAFACAAAAABAAMAAAAFACEAAAABAAMAAAAFACIAAAABAAMAAAAFACMAAAABAAMAAAAFACQAAAABAAMAAAAFACUAAAABAAMAAAAFACYAAAABAAMAAAAFACcAAAABAAMAAAAFACgAAAABAAMAAAAFACkAAAABAAMAAAAFACoAAAABAAMAAAAFACsAAAABAAMAAAAFACwAAAABAAMAAAAFAC0AAAABAAMAAAAFAC4AAAABAAMAAAAFAC8AAAABAAMAAAAFADAAAAABAAMAAAAFADEAAAABAAMAAAAFADIAAAABAAMAAAAFADMAAAABAAMAAAAFADQAAAABAAMAAAAFADUAAAABAAMAAAAGAAAAAAABAAMAAAAGAAEAAAABAAMAAAAGAAIAAAABAAMAAAAGAAMAAAABAAMAAAAGAAQAAAABAAMAAAAGAAUAAAABAAMAAAAGAAYAAAABAAMAAAAGAAcAAAABAAMAAAAGAAgAAAABAAMAAAAGAAkAAAABAAMAAAAGAAoAAAABAAMAAAAGAAsAAAABAAMAAAAGAAwAAAABAAMAAAAGAA0AAAABAAMAAAAGAA4AAAABAAMAAAAGAA8AAAABAAMAAAAGABAAAAABAAMAAAAGABEAAAABAAMAAAAGABIAAAABAAMAAAAGABMAAAABAAMAAAAGABQAAAABAAMAAAAGABUAAAABAAMAAAAGABYAAAABAAMAAAAGABcAAAABAAMAAAAGABgAAAABAAMAAAAGABkAAAABAAMAAAAGABoAAAABAAMAAAAGABsAAAABAAMAAAAGABwAAAABAAMAAAAGAB0AAAABAAMAAAAGAB4AAAABAAMAAAAGAB8AAAABAAMAAAAGACAAAAABAAMAAAAGACEAAAABAAMAAAAGACIAAAABAAMAAAAGACMAAAABAAMAAAAGACQAAAABAAMAAAAGACUAAAABAAMAAAAGACYAAAABAAMAAAAGACcAAAABAAMAAAAGACgAAAABAAMAAAAGACkAAAABAAMAAAAGACoAAAABAAMAAAAGACsAAAABAAMAAAAGACwAAAABAAMAAAAGAC0AAAABAAMAAAAGAC4AAAABAAMAAAAGAC8AAAABAAMAAAAGADAAAAABAAMAAAAGADEAAAABAAMAAAAGADIAAAABAAMAAAAGADMAAAABAAMAAAAGADQAAAABAAMAAAAGADUAAAABAAMAAAAHAAAAAAABAAMAAAAHAAEAAAABAAMAAAAHAAIAAAABAAMAAAAHAAMAAAABAAMAAAAHAAQAAAABAAMAAAAHAAUAAAABAAMAAAAHAAYAAAABAAMAAAAHAAcAAAABAAMAAAAHAAgAAAABAAMAAAAHAAkAAAABAAMAAAAHAAoAAAABAAMAAAAHAAsAAAABAAMAAAAHAAwAAAABAAMAAAAHAA0AAAABAAMAAAAHAA4AAAABAAMAAAAHAA8AAAABAAMAAAAHABAAAAABAAMAAAAHABEAAAABAAMAAAAHABIAAAABAAMAAAAHABMAAAABAAMAAAAHABQAAAABAAMAAAAHABUAAAABAAMAAAAHABYAAAABAAMAAAAHABcAAAABAAMAAAAHABgAAAABAAMAAAAHABkAAAABAAMAAAAHABoAAAABAAMAAAAHABsAAAABAAMAAAAHABwAAAABAAMAAAAHAB0AAAABAAMAAAAHAB4AAAABAAMAAAAHAB8AAAABAAMAAAAHACAAAAABAAMAAAAHACEAAAABAAMAAAAHACIAAAABAAMAAAAHACMAAAABAAMAAAAHACQAAAABAAMAAAAHACUAAAABAAMAAAAHACYAAAABAAMAAAAHACcAAAABAAMAAAAHACgAAAABAAMAAAAHACkAAAABAAMAAAAHACoAAAABAAMAAAAHACsAAAABAAMAAAAHACwAAAABAAMAAAAHAC0AAAABAAMAAAAHAC4AAAABAAMAAAAHAC8AAAABAAMAAAAHADAAAAABAAMAAAAHADEAAAABAAMAAAAHADIAAAABAAMAAAAHADMAAAABAAMAAAAHADQAAAABAAMAAAAHADUAAAABAAMAAAAIAAAAAAABAAMAAAAIAAEAAAABAAMAAAAIAAIAAAABAAMAAAAIAAMAAAABAAMAAAAIAAQAAAABAAMAAAAIAAUAAAABAAMAAAAIAAYAAAABAAMAAAAIAAcAAAABAAMAAAAIAAgAAAABAAMAAAAIAAkAAAABAAMAAAAIAAoAAAABAAMAAAAIAAsAAAABAAMAAAAIAAwAAAABAAMAAAAIAA0AAAABAAMAAAAIAA4AAAABAAMAAAAIAA8AAAABAAMAAAAIABAAAAABAAMAAAAIABEAAAABAAMAAAAIABIAAAABAAMAAAAIABMAAAABAAMAAAAIABQAAAABAAMAAAAIABUAAAABAAMAAAAIABYAAAABAAMAAAAIABcAAAABAAMAAAAIABgAAAABAAMAAAAIABkAAAABAAMAAAAIABoAAAABAAMAAAAIABsAAAABAAMAAAAIABwAAAABAAMAAAAIAB0AAAABAAMAAAAIAB4AAAABAAMAAAAIAB8AAAABAAMAAAAIACAAAAABAAMAAAAIACEAAAABAAMAAAAIACIAAAABAAMAAAAIACMAAAABAAMAAAAIACQAAAABAAMAAAAIACUAAAABAAMAAAAIACYAAAABAAMAAAAIACcAAAABAAMAAAAIACgAAAABAAMAAAAIACkAAAABAAMAAAAIACoAAAABAAMAAAAIACsAAAABAAMAAAAIACwAAAABAAMAAAAIAC0AAAABAAMAAAAIAC4AAAABAAMAAAAIAC8AAAABAAMAAAAIADAAAAABAAMAAAAIADEAAAABAAMAAAAIADIAAAABAAMAAAAIADMAAAABAAMAAAAIADQAAAABAAMAAAAIADUAAAABAAMAAAAJAAAAAAABAAMAAAAJAAEAAAABAAMAAAAJAAIAAAABAAMAAAAJAAMAAAABAAMAAAAJAAQAAAABAAMAAAAJAAUAAAABAAMAAAAJAAYAAAABAAMAAAAJAAcAAAABAAMAAAAJAAgAAAABAAMAAAAJAAkAAAABAAMAAAAJAAoAAAABAAMAAAAJAAsAAAABAAMAAAAJAAwAAAABAAMAAAAJAA0AAAABAAMAAAAJAA4AAAABAAMAAAAJAA8AAAABAAMAAAAJABAAAAABAAMAAAAJABEAAAABAAMAAAAJABIAAAABAAMAAAAJABMAAAABAAMAAAAJABQAAAABAAMAAAAJABUAAAABAAMAAAAJABYAAAABAAMAAAAJABcAAAABAAMAAAAJABgAAAABAAMAAAAJABkAAAABAAMAAAAJABoAAAABAAMAAAAJABsAAAABAAMAAAAJABwAAAABAAMAAAAJAB0AAAABAAMAAAAJAB4AAAABAAMAAAAJAB8AAAABAAMAAAAJACAAAAABAAMAAAAJACEAAAABAAMAAAAJACIAAAABAAMAAAAJACMAAAABAAMAAAAJACQAAAABAAMAAAAJACUAAAABAAMAAAAJACYAAAABAAMAAAAJACcAAAABAAMAAAAJACgAAAABAAMAAAAJACkAAAABAAMAAAAJACoAAAABAAMAAAAJACsAAAABAAMAAAAJACwAAAABAAMAAAAJAC0AAAABAAMAAAAJAC4AAAABAAMAAAAJAC8AAAABAAMAAAAJADAAAAABAAMAAAAJADEAAAABAAMAAAAJADIAAAABAAMAAAAJADMAAAABAAMAAAAJADQAAAABAAMAAAAJADUAAAABAAMAAAAKAAAAAAABAAMAAAAKAAEAAAABAAMAAAAKAAIAAAABAAMAAAAKAAMAAAABAAMAAAAKAAQAAAABAAMAAAAKAAUAAAABAAMAAAAKAAYAAAABAAMAAAAKAAcAAAABAAMAAAAKAAgAAAABAAMAAAAKAAkAAAABAAMAAAAKAAoAAAABAAMAAAAKAAsAAAABAAMAAAAKAAwAAAABAAMAAAAKAA0AAAABAAMAAAAKAA4AAAABAAMAAAAKAA8AAAABAAMAAAAKABAAAAABAAMAAAAKABEAAAABAAMAAAAKABIAAAABAAMAAAAKABMAAAABAAMAAAAKABQAAAABAAMAAAAKABUAAAABAAMAAAAKABYAAAABAAMAAAAKABcAAAABAAMAAAAKABgAAAABAAMAAAAKABkAAAABAAMAAAAKABoAAAABAAMAAAAKABsAAAABAAMAAAAKABwAAAABAAMAAAAKAB0AAAABAAMAAAAKAB4AAAABAAMAAAAKAB8AAAABAAMAAAAKACAAAAABAAMAAAAKACEAAAABAAMAAAAKACIAAAABAAMAAAAKACMAAAABAAMAAAAKACQAAAABAAMAAAAKACUAAAABAAMAAAAKACYAAAABAAMAAAAKACcAAAABAAMAAAAKACgAAAABAAMAAAAKACkAAAABAAMAAAAKACoAAAABAAMAAAAKACsAAAABAAMAAAAKACwAAAABAAMAAAAKAC0AAAABAAMAAAAKAC4AAAABAAMAAAAKAC8AAAABAAMAAAAKADAAAAABAAMAAAAKADEAAAABAAMAAAAKADIAAAABAAMAAAAKADMAAAABAAMAAAAKADQAAAABAAMAAAAKADUAAAABAAMAAAALAAAAAAABAAMAAAALAAEAAAABAAMAAAALAAIAAAABAAMAAAALAAMAAAABAAMAAAALAAQAAAABAAMAAAALAAUAAAABAAMAAAALAAYAAAABAAMAAAALAAcAAAABAAMAAAALAAgAAAABAAMAAAALAAkAAAABAAMAAAALAAoAAAABAAMAAAALAAsAAAABAAMAAAALAAwAAAABAAMAAAALAA0AAAABAAMAAAALAA4AAAABAAMAAAALAA8AAAABAAMAAAALABAAAAABAAMAAAALABEAAAABAAMAAAALABIAAAABAAMAAAALABMAAAABAAMAAAALABQAAAABAAMAAAALABUAAAABAAMAAAALABYAAAABAAMAAAALABcAAAABAAMAAAALABgAAAABAAMAAAALABkAAAABAAMAAAALABoAAAABAAMAAAALABsAAAABAAMAAAALABwAAAABAAMAAAALAB0AAAABAAMAAAALAB4AAAABAAMAAAALAB8AAAABAAMAAAALACAAAAABAAMAAAALACEAAAABAAMAAAALACIAAAABAAMAAAALACMAAAABAAMAAAALACQAAAABAAMAAAALACUAAAABAAMAAAALACYAAAABAAMAAAALACcAAAABAAMAAAALACgAAAABAAMAAAALACkAAAABAAMAAAALACoAAAABAAMAAAALACsAAAABAAMAAAALACwAAAABAAMAAAALAC0AAAABAAMAAAALAC4AAAABAAMAAAALAC8AAAABAAMAAAALADAAAAABAAMAAAALADEAAAABAAMAAAALADIAAAABAAMAAAALADMAAAABAAMAAAALADQAAAABAAMAAAALADUAAAABAAMAAAAMAAAAAAABAAMAAAAMAAEAAAABAAMAAAAMAAIAAAABAAMAAAAMAAMAAAABAAMAAAAMAAQAAAABAAMAAAAMAAUAAAABAAMAAAAMAAYAAAABAAMAAAAMAAcAAAABAAMAAAAMAAgAAAABAAMAAAAMAAkAAAABAAMAAAAMAAoAAAABAAMAAAAMAAsAAAABAAMAAAAMAAwAAAABAAMAAAAMAA0AAAABAAMAAAAMAA4AAAABAAMAAAAMAA8AAAABAAMAAAAMABAAAAABAAMAAAAMABEAAAABAAMAAAAMABIAAAABAAMAAAAMABMAAAABAAMAAAAMABQAAAABAAMAAAAMABUAAAABAAMAAAAMABYAAAABAAMAAAAMABcAAAABAAMAAAAMABgAAAABAAMAAAAMABkAAAABAAMAAAAMABoAAAABAAMAAAAMABsAAAABAAMAAAAMABwAAAABAAMAAAAMAB0AAAABAAMAAAAMAB4AAAABAAMAAAAMAB8AAAABAAMAAAAMACAAAAABAAMAAAAMACEAAAABAAMAAAAMACIAAAABAAMAAAAMACMAAAABAAMAAAAMACQAAAABAAMAAAAMACUAAAABAAMAAAAMACYAAAABAAMAAAAMACcAAAABAAMAAAAMACgAAAABAAMAAAAMACkAAAABAAMAAAAMACoAAAABAAMAAAAMACsAAAABAAMAAAAMACwAAAABAAMAAAAMAC0AAAABAAMAAAAMAC4AAAABAAMAAAAMAC8AAAABAAMAAAAMADAAAAABAAMAAAAMADEAAAABAAMAAAAMADIAAAABAAMAAAAMADMAAAABAAMAAAAMADQAAAABAAMAAAAMADUAAAABAAMAAAANAAAAAAABAAMAAAANAAEAAAABAAMAAAANAAIAAAABAAMAAAANAAMAAAABAAMAAAANAAQAAAABAAMAAAANAAUAAAABAAMAAAANAAYAAAABAAMAAAANAAcAAAABAAMAAAANAAgAAAABAAMAAAANAAkAAAABAAMAAAANAAoAAAABAAMAAAANAAsAAAABAAMAAAANAAwAAAABAAMAAAANAA0AAAABAAMAAAANAA4AAAABAAMAAAANAA8AAAABAAMAAAANABAAAAABAAMAAAANABEAAAABAAMAAAANABIAAAABAAMAAAANABMAAAABAAMAAAANABQAAAABAAMAAAANABUAAAABAAMAAAANABYAAAABAAMAAAANABcAAAABAAMAAAANABgAAAABAAMAAAANABkAAAABAAMAAAANABoAAAABAAMAAAANABsAAAABAAMAAAANABwAAAABAAMAAAANAB0AAAABAAMAAAANAB4AAAABAAMAAAANAB8AAAABAAMAAAANACAAAAABAAMAAAANACEAAAABAAMAAAANACIAAAABAAMAAAANACMAAAABAAMAAAANACQAAAABAAMAAAANACUAAAABAAMAAAANACYAAAABAAMAAAANACcAAAABAAMAAAANACgAAAABAAMAAAANACkAAAABAAMAAAANACoAAAABAAMAAAANACsAAAABAAMAAAANACwAAAABAAMAAAANAC0AAAABAAMAAAANAC4AAAABAAMAAAANAC8AAAABAAMAAAANADAAAAABAAMAAAANADEAAAABAAMAAAANADIAAAABAAMAAAANADMAAAABAAMAAAANADQAAAABAAMAAAANADUAAAABAAMAAAAOAAAAAAABAAMAAAAOAAEAAAABAAMAAAAOAAIAAAABAAMAAAAOAAMAAAABAAMAAAAOAAQAAAABAAMAAAAOAAUAAAABAAMAAAAOAAYAAAABAAMAAAAOAAcAAAABAAMAAAAOAAgAAAABAAMAAAAOAAkAAAABAAMAAAAOAAoAAAABAAMAAAAOAAsAAAABAAMAAAAOAAwAAAABAAMAAAAOAA0AAAABAAMAAAAOAA4AAAABAAMAAAAOAA8AAAABAAMAAAAOABAAAAABAAMAAAAOABEAAAABAAMAAAAOABIAAAABAAMAAAAOABMAAAABAAMAAAAOABQAAAABAAMAAAAOABUAAAABAAMAAAAOABYAAAABAAMAAAAOABcAAAABAAMAAAAOABgAAAABAAMAAAAOABkAAAABAAMAAAAOABoAAAABAAMAAAAOABsAAAABAAMAAAAOABwAAAABAAMAAAAOAB0AAAABAAMAAAAOAB4AAAABAAMAAAAOAB8AAAABAAMAAAAOACAAAAABAAMAAAAOACEAAAABAAMAAAAOACIAAAABAAMAAAAOACMAAAABAAMAAAAOACQAAAABAAMAAAAOACUAAAABAAMAAAAOACYAAAABAAMAAAAOACcAAAABAAMAAAAOACgAAAABAAMAAAAOACkAAAABAAMAAAAOACoAAAABAAMAAAAOACsAAAABAAMAAAAOACwAAAABAAMAAAAOAC0AAAABAAMAAAAOAC4AAAABAAMAAAAOAC8AAAABAAMAAAAOADAAAAABAAMAAAAOADEAAAABAAMAAAAOADIAAAABAAMAAAAOADMAAAABAAMAAAAOADQAAAABAAMAAAAOADUAAAABAAMAAAAPAAAAAAABAAMAAAAPAAEAAAABAAMAAAAPAAIAAAABAAMAAAAPAAMAAAABAAMAAAAPAAQAAAABAAMAAAAPAAUAAAABAAMAAAAPAAYAAAABAAMAAAAPAAcAAAABAAMAAAAPAAgAAAABAAMAAAAPAAkAAAABAAMAAAAPAAoAAAABAAMAAAAPAAsAAAABAAMAAAAPAAwAAAABAAMAAAAPAA0AAAABAAMAAAAPAA4AAAABAAMAAAAPAA8AAAABAAMAAAAPABAAAAABAAMAAAAPABEAAAABAAMAAAAPABIAAAABAAMAAAAPABMAAAABAAMAAAAPABQAAAABAAMAAAAPABUAAAABAAMAAAAPABYAAAABAAMAAAAPABcAAAABAAMAAAAPABgAAAABAAMAAAAPABkAAAABAAMAAAAPABoAAAABAAMAAAAPABsAAAABAAMAAAAPABwAAAABAAMAAAAPAB0AAAABAAMAAAAPAB4AAAABAAMAAAAPAB8AAAABAAMAAAAPACAAAAABAAMAAAAPACEAAAABAAMAAAAPACIAAAABAAMAAAAPACMAAAABAAMAAAAPACQAAAABAAMAAAAPACUAAAABAAMAAAAPACYAAAABAAMAAAAPACcAAAABAAMAAAAPACgAAAABAAMAAAAPACkAAAABAAMAAAAPACoAAAABAAMAAAAPACsAAAABAAMAAAAPACwAAAABAAMAAAAPAC0AAAABAAMAAAAPAC4AAAABAAMAAAAPAC8AAAABAAMAAAAPADAAAAABAAMAAAAPADEAAAABAAMAAAAPADIAAAABAAMAAAAPADMAAAABAAMAAAAPADQAAAABAAMAAAAPADUAAAABAAMAAAAQAAAAAAABAAMAAAAQAAEAAAABAAMAAAAQAAIAAAABAAMAAAAQAAMAAAABAAMAAAAQAAQAAAABAAMAAAAQAAUAAAABAAMAAAAQAAYAAAABAAMAAAAQAAcAAAABAAMAAAAQAAgAAAABAAMAAAAQAAkAAAABAAMAAAAQAAoAAAABAAMAAAAQAAsAAAABAAMAAAAQAAwAAAABAAMAAAAQAA0AAAABAAMAAAAQAA4AAAABAAMAAAAQAA8AAAABAAMAAAAQABAAAAABAAMAAAAQABEAAAABAAMAAAAQABIAAAABAAMAAAAQABMAAAABAAMAAAAQABQAAAABAAMAAAAQABUAAAABAAMAAAAQABYAAAABAAMAAAAQABcAAAABAAMAAAAQABgAAAABAAMAAAAQABkAAAABAAMAAAAQABoAAAABAAMAAAAQABsAAAABAAMAAAAQABwAAAABAAMAAAAQAB0AAAABAAMAAAAQAB4AAAABAAMAAAAQAB8AAAABAAMAAAAQACAAAAABAAMAAAAQACEAAAABAAMAAAAQACIAAAABAAMAAAAQACMAAAABAAMAAAAQACQAAAABAAMAAAAQACUAAAABAAMAAAAQACYAAAABAAMAAAAQACcAAAABAAMAAAAQACgAAAABAAMAAAAQACkAAAABAAMAAAAQACoAAAABAAMAAAAQACsAAAABAAMAAAAQACwAAAABAAMAAAAQAC0AAAABAAMAAAAQAC4AAAABAAMAAAAQAC8AAAABAAMAAAAQADAAAAABAAMAAAAQADEAAAABAAMAAAAQADIAAAABAAMAAAAQADMAAAABAAMAAAAQADQAAAABAAMAAAAQADUAAAABAAMAAAARAAAAAAABAAMAAAARAAEAAAABAAMAAAARAAIAAAABAAMAAAARAAMAAAABAAMAAAARAAQAAAABAAMAAAARAAUAAAABAAMAAAARAAYAAAABAAMAAAARAAcAAAABAAMAAAARAAgAAAABAAMAAAARAAkAAAABAAMAAAARAAoAAAABAAMAAAARAAsAAAABAAMAAAARAAwAAAABAAMAAAARAA0AAAABAAMAAAARAA4AAAABAAMAAAARAA8AAAABAAMAAAARABAAAAABAAMAAAARABEAAAABAAMAAAARABIAAAABAAMAAAARABMAAAABAAMAAAARABQAAAABAAMAAAARABUAAAABAAMAAAARABYAAAABAAMAAAARABcAAAABAAMAAAARABgAAAABAAMAAAARABkAAAABAAMAAAARABoAAAABAAMAAAARABsAAAABAAMAAAARABwAAAABAAMAAAARAB0AAAABAAMAAAARAB4AAAABAAMAAAARAB8AAAABAAMAAAARACAAAAABAAMAAAARACEAAAABAAMAAAARACIAAAABAAMAAAARACMAAAABAAMAAAARACQAAAABAAMAAAARACUAAAABAAMAAAARACYAAAABAAMAAAARACcAAAABAAMAAAARACgAAAABAAMAAAARACkAAAABAAMAAAARACoAAAABAAMAAAARACsAAAABAAMAAAARACwAAAABAAMAAAARAC0AAAABAAMAAAARAC4AAAABAAMAAAARAC8AAAABAAMAAAARADAAAAABAAMAAAARADEAAAABAAMAAAARADIAAAABAAMAAAARADMAAAABAAMAAAARADQAAAABAAMAAAARADUAAAABAAMAAAASAAAAAAABAAMAAAASAAEAAAABAAMAAAASAAIAAAABAAMAAAASAAMAAAABAAMAAAASAAQAAAABAAMAAAASAAUAAAABAAMAAAASAAYAAAABAAMAAAASAAcAAAABAAMAAAASAAgAAAABAAMAAAASAAkAAAABAAMAAAASAAoAAAABAAMAAAASAAsAAAABAAMAAAASAAwAAAABAAMAAAASAA0AAAABAAMAAAASAA4AAAABAAMAAAASAA8AAAABAAMAAAASABAAAAABAAMAAAASABEAAAABAAMAAAASABIAAAABAAMAAAASABMAAAABAAMAAAASABQAAAABAAMAAAASABUAAAABAAMAAAASABYAAAABAAMAAAASABcAAAABAAMAAAASABgAAAABAAMAAAASABkAAAABAAMAAAASABoAAAABAAMAAAASABsAAAABAAMAAAASABwAAAABAAMAAAASAB0AAAABAAMAAAASAB4AAAABAAMAAAASAB8AAAABAAMAAAASACAAAAABAAMAAAASACEAAAABAAMAAAASACIAAAABAAMAAAASACMAAAABAAMAAAASACQAAAABAAMAAAASACUAAAABAAMAAAASACYAAAABAAMAAAASACcAAAABAAMAAAASACgAAAABAAMAAAASACkAAAABAAMAAAASACoAAAABAAMAAAASACsAAAABAAMAAAASACwAAAABAAMAAAASAC0AAAABAAMAAAASAC4AAAABAAMAAAASAC8AAAABAAMAAAASADAAAAABAAMAAAASADEAAAABAAMAAAASADIAAAABAAMAAAASADMAAAABAAMAAAASADQAAAABAAMAAAASADUAAAABAAMAAAATAAAAAAABAAMAAAATAAEAAAABAAMAAAATAAIAAAABAAMAAAATAAMAAAABAAMAAAATAAQAAAABAAMAAAATAAUAAAABAAMAAAATAAYAAAABAAMAAAATAAcAAAABAAMAAAATAAgAAAABAAMAAAATAAkAAAABAAMAAAATAAoAAAABAAMAAAATAAsAAAABAAMAAAATAAwAAAABAAMAAAATAA0AAAABAAMAAAATAA4AAAABAAMAAAATAA8AAAABAAMAAAATABAAAAABAAMAAAATABEAAAABAAMAAAATABIAAAABAAMAAAATABMAAAABAAMAAAATABQAAAABAAMAAAATABUAAAABAAMAAAATABYAAAABAAMAAAATABcAAAABAAMAAAATABgAAAABAAMAAAATABkAAAABAAMAAAATABoAAAABAAMAAAATABsAAAABAAMAAAATABwAAAABAAMAAAATAB0AAAABAAMAAAATAB4AAAABAAMAAAATAB8AAAABAAMAAAATACAAAAABAAMAAAATACEAAAABAAMAAAATACIAAAABAAMAAAATACMAAAABAAMAAAATACQAAAABAAMAAAATACUAAAABAAMAAAATACYAAAABAAMAAAATACcAAAABAAMAAAATACgAAAABAAMAAAATACkAAAABAAMAAAATACoAAAABAAMAAAATACsAAAABAAMAAAATACwAAAABAAMAAAATAC0AAAABAAMAAAATAC4AAAABAAMAAAATAC8AAAABAAMAAAATADAAAAABAAMAAAATADEAAAABAAMAAAATADIAAAABAAMAAAATADMAAAABAAMAAAATADQAAAABAAMAAAATADUAAAABAAMAAAAUAAAAAAABAAMAAAAUAAEAAAABAAMAAAAUAAIAAAABAAMAAAAUAAMAAAABAAMAAAAUAAQAAAABAAMAAAAUAAUAAAABAAMAAAAUAAYAAAABAAMAAAAUAAcAAAABAAMAAAAUAAgAAAABAAMAAAAUAAkAAAABAAMAAAAUAAoAAAABAAMAAAAUAAsAAAABAAMAAAAUAAwAAAABAAMAAAAUAA0AAAABAAMAAAAUAA4AAAABAAMAAAAUAA8AAAABAAMAAAAUABAAAAABAAMAAAAUABEAAAABAAMAAAAUABIAAAABAAMAAAAUABMAAAABAAMAAAAUABQAAAABAAMAAAAUABUAAAABAAMAAAAUABYAAAABAAMAAAAUABcAAAABAAMAAAAUABgAAAABAAMAAAAUABkAAAABAAMAAAAUABoAAAABAAMAAAAUABsAAAABAAMAAAAUABwAAAABAAMAAAAUAB0AAAABAAMAAAAUAB4AAAABAAMAAAAUAB8AAAABAAMAAAAUACAAAAABAAMAAAAUACEAAAABAAMAAAAUACIAAAABAAMAAAAUACMAAAABAAMAAAAUACQAAAABAAMAAAAUACUAAAABAAMAAAAUACYAAAABAAMAAAAUACcAAAABAAMAAAAUACgAAAABAAMAAAAUACkAAAABAAMAAAAUACoAAAABAAMAAAAUACsAAAABAAMAAAAUACwAAAABAAMAAAAUAC0AAAABAAMAAAAUAC4AAAABAAMAAAAUAC8AAAABAAMAAAAUADAAAAABAAMAAAAUADEAAAABAAMAAAAUADIAAAABAAMAAAAUADMAAAABAAMAAAAUADQAAAABAAMAAAAUADUAAAABAAMAAAAVAAAAAAABAAMAAAAVAAEAAAABAAMAAAAVAAIAAAABAAMAAAAVAAMAAAABAAMAAAAVAAQAAAABAAMAAAAVAAUAAAABAAMAAAAVAAYAAAABAAMAAAAVAAcAAAABAAMAAAAVAAgAAAABAAMAAAAVAAkAAAABAAMAAAAVAAoAAAABAAMAAAAVAAsAAAABAAMAAAAVAAwAAAABAAMAAAAVAA0AAAABAAMAAAAVAA4AAAABAAMAAAAVAA8AAAABAAMAAAAVABAAAAABAAMAAAAVABEAAAABAAMAAAAVABIAAAABAAMAAAAVABMAAAABAAMAAAAVABQAAAABAAMAAAAVABUAAAABAAMAAAAVABYAAAABAAMAAAAVABcAAAABAAMAAAAVABgAAAABAAMAAAAVABkAAAABAAMAAAAVABoAAAABAAMAAAAVABsAAAABAAMAAAAVABwAAAABAAMAAAAVAB0AAAABAAMAAAAVAB4AAAABAAMAAAAVAB8AAAABAAMAAAAVACAAAAABAAMAAAAVACEAAAABAAMAAAAVACIAAAABAAMAAAAVACMAAAABAAMAAAAVACQAAAABAAMAAAAVACUAAAABAAMAAAAVACYAAAABAAMAAAAVACcAAAABAAMAAAAVACgAAAABAAMAAAAVACkAAAABAAMAAAAVACoAAAABAAMAAAAVACsAAAABAAMAAAAVACwAAAABAAMAAAAVAC0AAAABAAMAAAAVAC4AAAABAAMAAAAVAC8AAAABAAMAAAAVADAAAAABAAMAAAAVADEAAAABAAMAAAAVADIAAAABAAMAAAAVADMAAAABAAMAAAAVADQAAAABAAMAAAAVADUAAAABAAMAAAAWAAAAAAABAAMAAAAWAAEAAAABAAMAAAAWAAIAAAABAAMAAAAWAAMAAAABAAMAAAAWAAQAAAABAAMAAAAWAAUAAAABAAMAAAAWAAYAAAABAAMAAAAWAAcAAAABAAMAAAAWAAgAAAABAAMAAAAWAAkAAAABAAMAAAAWAAoAAAABAAMAAAAWAAsAAAABAAMAAAAWAAwAAAABAAMAAAAWAA0AAAABAAMAAAAWAA4AAAABAAMAAAAWAA8AAAABAAMAAAAWABAAAAABAAMAAAAWABEAAAABAAMAAAAWABIAAAABAAMAAAAWABMAAAABAAMAAAAWABQAAAABAAMAAAAWABUAAAABAAMAAAAWABYAAAABAAMAAAAWABcAAAABAAMAAAAWABgAAAABAAMAAAAWABkAAAABAAMAAAAWABoAAAABAAMAAAAWABsAAAABAAMAAAAWABwAAAABAAMAAAAWAB0AAAABAAMAAAAWAB4AAAABAAMAAAAWAB8AAAABAAMAAAAWACAAAAABAAMAAAAWACEAAAABAAMAAAAWACIAAAABAAMAAAAWACMAAAABAAMAAAAWACQAAAABAAMAAAAWACUAAAABAAMAAAAWACYAAAABAAMAAAAWACcAAAABAAMAAAAWACgAAAABAAMAAAAWACkAAAABAAMAAAAWACoAAAABAAMAAAAWACsAAAABAAMAAAAWACwAAAABAAMAAAAWAC0AAAABAAMAAAAWAC4AAAABAAMAAAAWAC8AAAABAAMAAAAWADAAAAABAAMAAAAWADEAAAABAAMAAAAWADIAAAABAAMAAAAWADMAAAABAAMAAAAWADQAAAABAAMAAAAWADUAAAABAAMAAAAXAAAAAAABAAMAAAAXAAEAAAABAAMAAAAXAAIAAAABAAMAAAAXAAMAAAABAAMAAAAXAAQAAAABAAMAAAAXAAUAAAABAAMAAAAXAAYAAAABAAMAAAAXAAcAAAABAAMAAAAXAAgAAAABAAMAAAAXAAkAAAABAAMAAAAXAAoAAAABAAMAAAAXAAsAAAABAAMAAAAXAAwAAAABAAMAAAAXAA0AAAABAAMAAAAXAA4AAAABAAMAAAAXAA8AAAABAAMAAAAXABAAAAABAAMAAAAXABEAAAABAAMAAAAXABIAAAABAAMAAAAXABMAAAABAAMAAAAXABQAAAABAAMAAAAXABUAAAABAAMAAAAXABYAAAABAAMAAAAXABcAAAABAAMAAAAXABgAAAABAAMAAAAXABkAAAABAAMAAAAXABoAAAABAAMAAAAXABsAAAABAAMAAAAXABwAAAABAAMAAAAXAB0AAAABAAMAAAAXAB4AAAABAAMAAAAXAB8AAAABAAMAAAAXACAAAAABAAMAAAAXACEAAAABAAMAAAAXACIAAAABAAMAAAAXACMAAAABAAMAAAAXACQAAAABAAMAAAAXACUAAAABAAMAAAAXACYAAAABAAMAAAAXACcAAAABAAMAAAAXACgAAAABAAMAAAAXACkAAAABAAMAAAAXACoAAAABAAMAAAAXACsAAAABAAMAAAAXACwAAAABAAMAAAAXAC0AAAABAAMAAAAXAC4AAAABAAMAAAAXAC8AAAABAAMAAAAXADAAAAABAAMAAAAXADEAAAABAAMAAAAXADIAAAABAAMAAAAXADMAAAABAAMAAAAXADQAAAABAAMAAAAXADUAAAABAAMAAAAYAAAAAAABAAMAAAAYAAEAAAABAAMAAAAYAAIAAAABAAMAAAAYAAMAAAABAAMAAAAYAAQAAAABAAMAAAAYAAUAAAABAAMAAAAYAAYAAAABAAMAAAAYAAcAAAABAAMAAAAYAAgAAAABAAMAAAAYAAkAAAABAAMAAAAYAAoAAAABAAMAAAAYAAsAAAABAAMAAAAYAAwAAAABAAMAAAAYAA0AAAABAAMAAAAYAA4AAAABAAMAAAAYAA8AAAABAAMAAAAYABAAAAABAAMAAAAYABEAAAABAAMAAAAYABIAAAABAAMAAAAYABMAAAABAAMAAAAYABQAAAABAAMAAAAYABUAAAABAAMAAAAYABYAAAABAAMAAAAYABcAAAABAAMAAAAYABgAAAABAAMAAAAYABkAAAABAAMAAAAYABoAAAABAAMAAAAYABsAAAABAAMAAAAYABwAAAABAAMAAAAYAB0AAAABAAMAAAAYAB4AAAABAAMAAAAYAB8AAAABAAMAAAAYACAAAAABAAMAAAAYACEAAAABAAMAAAAYACIAAAABAAMAAAAYACMAAAABAAMAAAAYACQAAAABAAMAAAAYACUAAAABAAMAAAAYACYAAAABAAMAAAAYACcAAAABAAMAAAAYACgAAAABAAMAAAAYACkAAAABAAMAAAAYACoAAAABAAMAAAAYACsAAAABAAMAAAAYACwAAAABAAMAAAAYAC0AAAABAAMAAAAYAC4AAAABAAMAAAAYAC8AAAABAAMAAAAYADAAAAABAAMAAAAYADEAAAABAAMAAAAYADIAAAABAAMAAAAYADMAAAABAAMAAAAYADQAAAABAAMAAAAYADUAAAABAAMAAAAZAAAAAAABAAMAAAAZAAEAAAABAAMAAAAZAAIAAAABAAMAAAAZAAMAAAABAAMAAAAZAAQAAAABAAMAAAAZAAUAAAABAAMAAAAZAAYAAAABAAMAAAAZAAcAAAABAAMAAAAZAAgAAAABAAMAAAAZAAkAAAABAAMAAAAZAAoAAAABAAMAAAAZAAsAAAABAAMAAAAZAAwAAAABAAMAAAAZAA0AAAABAAMAAAAZAA4AAAABAAMAAAAZAA8AAAABAAMAAAAZABAAAAABAAMAAAAZABEAAAABAAMAAAAZABIAAAABAAMAAAAZABMAAAABAAMAAAAZABQAAAABAAMAAAAZABUAAAABAAMAAAAZABYAAAABAAMAAAAZABcAAAABAAMAAAAZABgAAAABAAMAAAAZABkAAAABAAMAAAAZABoAAAABAAMAAAAZABsAAAABAAMAAAAZABwAAAABAAMAAAAZAB0AAAABAAMAAAAZAB4AAAABAAMAAAAZAB8AAAABAAMAAAAZACAAAAABAAMAAAAZACEAAAABAAMAAAAZACIAAAABAAMAAAAZACMAAAABAAMAAAAZACQAAAABAAMAAAAZACUAAAABAAMAAAAZACYAAAABAAMAAAAZACcAAAABAAMAAAAZACgAAAABAAMAAAAZACkAAAABAAMAAAAZACoAAAABAAMAAAAZACsAAAABAAMAAAAZACwAAAABAAMAAAAZAC0AAAABAAMAAAAZAC4AAAABAAMAAAAZAC8AAAABAAMAAAAZADAAAAABAAMAAAAZADEAAAABAAMAAAAZADIAAAABAAMAAAAZADMAAAABAAMAAAAZADQAAAABAAMAAAAZADUAAAABAAMAAAAaAAAAAAABAAMAAAAaAAEAAAABAAMAAAAaAAIAAAABAAMAAAAaAAMAAAABAAMAAAAaAAQAAAABAAMAAAAaAAUAAAABAAMAAAAaAAYAAAABAAMAAAAaAAcAAAABAAMAAAAaAAgAAAABAAMAAAAaAAkAAAABAAMAAAAaAAoAAAABAAMAAAAaAAsAAAABAAMAAAAaAAwAAAABAAMAAAAaAA0AAAABAAMAAAAaAA4AAAABAAMAAAAaAA8AAAABAAMAAAAaABAAAAABAAMAAAAaABEAAAABAAMAAAAaABIAAAABAAMAAAAaABMAAAABAAMAAAAaABQAAAABAAMAAAAaABUAAAABAAMAAAAaABYAAAABAAMAAAAaABcAAAABAAMAAAAaABgAAAABAAMAAAAaABkAAAABAAMAAAAaABoAAAABAAMAAAAaABsAAAABAAMAAAAaABwAAAABAAMAAAAaAB0AAAABAAMAAAAaAB4AAAABAAMAAAAaAB8AAAABAAMAAAAaACAAAAABAAMAAAAaACEAAAABAAMAAAAaACIAAAABAAMAAAAaACMAAAABAAMAAAAaACQAAAABAAMAAAAaACUAAAABAAMAAAAaACYAAAABAAMAAAAaACcAAAABAAMAAAAaACgAAAABAAMAAAAaACkAAAABAAMAAAAaACoAAAABAAMAAAAaACsAAAABAAMAAAAaACwAAAABAAMAAAAaAC0AAAABAAMAAAAaAC4AAAABAAMAAAAaAC8AAAABAAMAAAAaADAAAAABAAMAAAAaADEAAAABAAMAAAAaADIAAAABAAMAAAAaADMAAAABAAMAAAAaADQAAAABAAMAAAAaADUAAAABAAMAAAAbAAAAAAABAAMAAAAbAAEAAAABAAMAAAAbAAIAAAABAAMAAAAbAAMAAAABAAMAAAAbAAQAAAABAAMAAAAbAAUAAAABAAMAAAAbAAYAAAABAAMAAAAbAAcAAAABAAMAAAAbAAgAAAABAAMAAAAbAAkAAAABAAMAAAAbAAoAAAABAAMAAAAbAAsAAAABAAMAAAAbAAwAAAABAAMAAAAbAA0AAAABAAMAAAAbAA4AAAABAAMAAAAbAA8AAAABAAMAAAAbABAAAAABAAMAAAAbABEAAAABAAMAAAAbABIAAAABAAMAAAAbABMAAAABAAMAAAAbABQAAAABAAMAAAAbABUAAAABAAMAAAAbABYAAAABAAMAAAAbABcAAAABAAMAAAAbABgAAAABAAMAAAAbABkAAAABAAMAAAAbABoAAAABAAMAAAAbABsAAAABAAMAAAAbABwAAAABAAMAAAAbAB0AAAABAAMAAAAbAB4AAAABAAMAAAAbAB8AAAABAAMAAAAbACAAAAABAAMAAAAbACEAAAABAAMAAAAbACIAAAABAAMAAAAbACMAAAABAAMAAAAbACQAAAABAAMAAAAbACUAAAABAAMAAAAbACYAAAABAAMAAAAbACcAAAABAAMAAAAbACgAAAABAAMAAAAbACkAAAABAAMAAAAbACoAAAABAAMAAAAbACsAAAABAAMAAAAbACwAAAABAAMAAAAbAC0AAAABAAMAAAAbAC4AAAABAAMAAAAbAC8AAAABAAMAAAAbADAAAAABAAMAAAAbADEAAAABAAMAAAAbADIAAAABAAMAAAAbADMAAAABAAMAAAAbADQAAAABAAMAAAAbADUAAAABAAMAAAAcAAAAAAABAAMAAAAcAAEAAAABAAMAAAAcAAIAAAABAAMAAAAcAAMAAAABAAMAAAAcAAQAAAABAAMAAAAcAAUAAAABAAMAAAAcAAYAAAABAAMAAAAcAAcAAAABAAMAAAAcAAgAAAABAAMAAAAcAAkAAAABAAMAAAAcAAoAAAABAAMAAAAcAAsAAAABAAMAAAAcAAwAAAABAAMAAAAcAA0AAAABAAMAAAAcAA4AAAABAAMAAAAcAA8AAAABAAMAAAAcABAAAAABAAMAAAAcABEAAAABAAMAAAAcABIAAAABAAMAAAAcABMAAAABAAMAAAAcABQAAAABAAMAAAAcABUAAAABAAMAAAAcABYAAAABAAMAAAAcABcAAAABAAMAAAAcABgAAAABAAMAAAAcABkAAAABAAMAAAAcABoAAAABAAMAAAAcABsAAAABAAMAAAAcABwAAAABAAMAAAAcAB0AAAABAAMAAAAcAB4AAAABAAMAAAAcAB8AAAABAAMAAAAcACAAAAABAAMAAAAcACEAAAABAAMAAAAcACIAAAABAAMAAAAcACMAAAABAAMAAAAcACQAAAABAAMAAAAcACUAAAABAAMAAAAcACYAAAABAAMAAAAcACcAAAABAAMAAAAcACgAAAABAAMAAAAcACkAAAABAAMAAAAcACoAAAABAAMAAAAcACsAAAABAAMAAAAcACwAAAABAAMAAAAcAC0AAAABAAMAAAAcAC4AAAABAAMAAAAcAC8AAAABAAMAAAAcADAAAAABAAMAAAAcADEAAAABAAMAAAAcADIAAAABAAMAAAAcADMAAAABAAMAAAAcADQAAAABAAMAAAAcADUAAAABAAMAAAAdAAAAAAABAAMAAAAdAAEAAAABAAMAAAAdAAIAAAABAAMAAAAdAAMAAAABAAMAAAAdAAQAAAABAAMAAAAdAAUAAAABAAMAAAAdAAYAAAABAAMAAAAdAAcAAAABAAMAAAAdAAgAAAABAAMAAAAdAAkAAAABAAMAAAAdAAoAAAABAAMAAAAdAAsAAAABAAMAAAAdAAwAAAABAAMAAAAdAA0AAAABAAMAAAAdAA4AAAABAAMAAAAdAA8AAAABAAMAAAAdABAAAAABAAMAAAAdABEAAAABAAMAAAAdABIAAAABAAMAAAAdABMAAAABAAMAAAAdABQAAAABAAMAAAAdABUAAAABAAMAAAAdABYAAAABAAMAAAAdABcAAAABAAMAAAAdABgAAAABAAMAAAAdABkAAAABAAMAAAAdABoAAAABAAMAAAAdABsAAAABAAMAAAAdABwAAAABAAMAAAAdAB0AAAABAAMAAAAdAB4AAAABAAMAAAAdAB8AAAABAAMAAAAdACAAAAABAAMAAAAdACEAAAABAAMAAAAdACIAAAABAAMAAAAdACMAAAABAAMAAAAdACQAAAABAAMAAAAdACUAAAABAAMAAAAdACYAAAABAAMAAAAdACcAAAABAAMAAAAdACgAAAABAAMAAAAdACkAAAABAAMAAAAdACoAAAABAAMAAAAdACsAAAABAAMAAAAdACwAAAABAAMAAAAdAC0AAAABAAMAAAAdAC4AAAABAAMAAAAdAC8AAAABAAMAAAAdADAAAAABAAMAAAAdADEAAAABAAMAAAAdADIAAAABAAMAAAAdADMAAAABAAMAAAAdADQAAAABAAMAAAAdADUAAAABAAMAAAAeAAAAAAABAAMAAAAeAAEAAAABAAMAAAAeAAIAAAABAAMAAAAeAAMAAAABAAMAAAAeAAQAAAABAAMAAAAeAAUAAAABAAMAAAAeAAYAAAABAAMAAAAeAAcAAAABAAMAAAAeAAgAAAABAAMAAAAeAAkAAAABAAMAAAAeAAoAAAABAAMAAAAeAAsAAAABAAMAAAAeAAwAAAABAAMAAAAeAA0AAAABAAMAAAAeAA4AAAABAAMAAAAeAA8AAAABAAMAAAAeABAAAAABAAMAAAAeABEAAAABAAMAAAAeABIAAAABAAMAAAAeABMAAAABAAMAAAAeABQAAAABAAMAAAAeABUAAAABAAMAAAAeABYAAAABAAMAAAAeABcAAAABAAMAAAAeABgAAAABAAMAAAAeABkAAAABAAMAAAAeABoAAAABAAMAAAAeABsAAAABAAMAAAAeABwAAAABAAMAAAAeAB0AAAABAAMAAAAeAB4AAAABAAMAAAAeAB8AAAABAAMAAAAeACAAAAABAAMAAAAeACEAAAABAAMAAAAeACIAAAABAAMAAAAeACMAAAABAAMAAAAeACQAAAABAAMAAAAeACUAAAABAAMAAAAeACYAAAABAAMAAAAeACcAAAABAAMAAAAeACgAAAABAAMAAAAeACkAAAABAAMAAAAeACoAAAABAAMAAAAeACsAAAABAAMAAAAeACwAAAABAAMAAAAeAC0AAAABAAMAAAAeAC4AAAABAAMAAAAeAC8AAAABAAMAAAAeADAAAAABAAMAAAAeADEAAAABAAMAAAAeADIAAAABAAMAAAAeADMAAAABAAMAAAAeADQAAAABAAMAAAAeADUAAAABAAMAAAAfAAAAAAABAAMAAAAfAAEAAAABAAMAAAAfAAIAAAABAAMAAAAfAAMAAAABAAMAAAAfAAQAAAABAAMAAAAfAAUAAAABAAMAAAAfAAYAAAABAAMAAAAfAAcAAAABAAMAAAAfAAgAAAABAAMAAAAfAAkAAAABAAMAAAAfAAoAAAABAAMAAAAfAAsAAAABAAMAAAAfAAwAAAABAAMAAAAfAA0AAAABAAMAAAAfAA4AAAABAAMAAAAfAA8AAAABAAMAAAAfABAAAAABAAMAAAAfABEAAAABAAMAAAAfABIAAAABAAMAAAAfABMAAAABAAMAAAAfABQAAAABAAMAAAAfABUAAAABAAMAAAAfABYAAAABAAMAAAAfABcAAAABAAMAAAAfABgAAAABAAMAAAAfABkAAAABAAMAAAAfABoAAAABAAMAAAAfABsAAAABAAMAAAAfABwAAAABAAMAAAAfAB0AAAABAAMAAAAfAB4AAAABAAMAAAAfAB8AAAABAAMAAAAfACAAAAABAAMAAAAfACEAAAABAAMAAAAfACIAAAABAAMAAAAfACMAAAABAAMAAAAfACQAAAABAAMAAAAfACUAAAABAAMAAAAfACYAAAABAAMAAAAfACcAAAABAAMAAAAfACgAAAABAAMAAAAfACkAAAABAAMAAAAfACoAAAABAAMAAAAfACsAAAABAAMAAAAfACwAAAABAAMAAAAfAC0AAAABAAMAAAAfAC4AAAABAAMAAAAfAC8AAAABAAMAAAAfADAAAAABAAMAAAAfADEAAAABAAMAAAAfADIAAAABAAMAAAAfADMAAAABAAMAAAAfADQAAAABAAMAAAAfADUAAAABAAMAAAAgAAAAAAABAAMAAAAgAAEAAAABAAMAAAAgAAIAAAABAAMAAAAgAAMAAAABAAMAAAAgAAQAAAABAAMAAAAgAAUAAAABAAMAAAAgAAYAAAABAAMAAAAgAAcAAAABAAMAAAAgAAgAAAABAAMAAAAgAAkAAAABAAMAAAAgAAoAAAABAAMAAAAgAAsAAAABAAMAAAAgAAwAAAABAAMAAAAgAA0AAAABAAMAAAAgAA4AAAABAAMAAAAgAA8AAAABAAMAAAAgABAAAAABAAMAAAAgABEAAAABAAMAAAAgABIAAAABAAMAAAAgABMAAAABAAMAAAAgABQAAAABAAMAAAAgABUAAAABAAMAAAAgABYAAAABAAMAAAAgABcAAAABAAMAAAAgABgAAAABAAMAAAAgABkAAAABAAMAAAAgABoAAAABAAMAAAAgABsAAAABAAMAAAAgABwAAAABAAMAAAAgAB0AAAABAAMAAAAgAB4AAAABAAMAAAAgAB8AAAABAAMAAAAgACAAAAABAAMAAAAgACEAAAABAAMAAAAgACIAAAABAAMAAAAgACMAAAABAAMAAAAgACQAAAABAAMAAAAgACUAAAABAAMAAAAgACYAAAABAAMAAAAgACcAAAABAAMAAAAgACgAAAABAAMAAAAgACkAAAABAAMAAAAgACoAAAABAAMAAAAgACsAAAABAAMAAAAgACwAAAABAAMAAAAgAC0AAAABAAMAAAAgAC4AAAABAAMAAAAgAC8AAAABAAMAAAAgADAAAAABAAMAAAAgADEAAAABAAMAAAAgADIAAAABAAMAAAAgADMAAAABAAMAAAAgADQAAAABAAMAAAAgADUAAAABAAMAAAAhAAAAAAABAAMAAAAhAAEAAAABAAMAAAAhAAIAAAABAAMAAAAhAAMAAAABAAMAAAAhAAQAAAABAAMAAAAhAAUAAAABAAMAAAAhAAYAAAABAAMAAAAhAAcAAAABAAMAAAAhAAgAAAABAAMAAAAhAAkAAAABAAMAAAAhAAoAAAABAAMAAAAhAAsAAAABAAMAAAAhAAwAAAABAAMAAAAhAA0AAAABAAMAAAAhAA4AAAABAAMAAAAhAA8AAAABAAMAAAAhABAAAAABAAMAAAAhABEAAAABAAMAAAAhABIAAAABAAMAAAAhABMAAAABAAMAAAAhABQAAAABAAMAAAAhABUAAAABAAMAAAAhABYAAAABAAMAAAAhABcAAAABAAMAAAAhABgAAAABAAMAAAAhABkAAAABAAMAAAAhABoAAAABAAMAAAAhABsAAAABAAMAAAAhABwAAAABAAMAAAAhAB0AAAABAAMAAAAhAB4AAAABAAMAAAAhAB8AAAABAAMAAAAhACAAAAABAAMAAAAhACEAAAABAAMAAAAhACIAAAABAAMAAAAhACMAAAABAAMAAAAhACQAAAABAAMAAAAhACUAAAABAAMAAAAhACYAAAABAAMAAAAhACcAAAABAAMAAAAhACgAAAABAAMAAAAhACkAAAABAAMAAAAhACoAAAABAAMAAAAhACsAAAABAAMAAAAhACwAAAABAAMAAAAhAC0AAAABAAMAAAAhAC4AAAABAAMAAAAhAC8AAAABAAMAAAAhADAAAAABAAMAAAAhADEAAAABAAMAAAAhADIAAAABAAMAAAAhADMAAAABAAMAAAAhADQAAAABAAMAAAAhADUAAAABAAMAAAAiAAAAAAABAAMAAAAiAAEAAAABAAMAAAAiAAIAAAABAAMAAAAiAAMAAAABAAMAAAAiAAQAAAABAAMAAAAiAAUAAAABAAMAAAAiAAYAAAABAAMAAAAiAAcAAAABAAMAAAAiAAgAAAABAAMAAAAiAAkAAAABAAMAAAAiAAoAAAABAAMAAAAiAAsAAAABAAMAAAAiAAwAAAABAAMAAAAiAA0AAAABAAMAAAAiAA4AAAABAAMAAAAiAA8AAAABAAMAAAAiABAAAAABAAMAAAAiABEAAAABAAMAAAAiABIAAAABAAMAAAAiABMAAAABAAMAAAAiABQAAAABAAMAAAAiABUAAAABAAMAAAAiABYAAAABAAMAAAAiABcAAAABAAMAAAAiABgAAAABAAMAAAAiABkAAAABAAMAAAAiABoAAAABAAMAAAAiABsAAAABAAMAAAAiABwAAAABAAMAAAAiAB0AAAABAAMAAAAiAB4AAAABAAMAAAAiAB8AAAABAAMAAAAiACAAAAABAAMAAAAiACEAAAABAAMAAAAiACIAAAABAAMAAAAiACMAAAABAAMAAAAiACQAAAABAAMAAAAiACUAAAABAAMAAAAiACYAAAABAAMAAAAiACcAAAABAAMAAAAiACgAAAABAAMAAAAiACkAAAABAAMAAAAiACoAAAABAAMAAAAiACsAAAABAAMAAAAiACwAAAABAAMAAAAiAC0AAAABAAMAAAAiAC4AAAABAAMAAAAiAC8AAAABAAMAAAAiADAAAAABAAMAAAAiADEAAAABAAMAAAAiADIAAAABAAMAAAAiADMAAAABAAMAAAAiADQAAAABAAMAAAAiADUAAAABAAMAAAAjAAAAAAABAAMAAAAjAAEAAAABAAMAAAAjAAIAAAABAAMAAAAjAAMAAAABAAMAAAAjAAQAAAABAAMAAAAjAAUAAAABAAMAAAAjAAYAAAABAAMAAAAjAAcAAAABAAMAAAAjAAgAAAABAAMAAAAjAAkAAAABAAMAAAAjAAoAAAABAAMAAAAjAAsAAAABAAMAAAAjAAwAAAABAAMAAAAjAA0AAAABAAMAAAAjAA4AAAABAAMAAAAjAA8AAAABAAMAAAAjABAAAAABAAMAAAAjABEAAAABAAMAAAAjABIAAAABAAMAAAAjABMAAAABAAMAAAAjABQAAAABAAMAAAAjABUAAAABAAMAAAAjABYAAAABAAMAAAAjABcAAAABAAMAAAAjABgAAAABAAMAAAAjABkAAAABAAMAAAAjABoAAAABAAMAAAAjABsAAAABAAMAAAAjABwAAAABAAMAAAAjAB0AAAABAAMAAAAjAB4AAAABAAMAAAAjAB8AAAABAAMAAAAjACAAAAABAAMAAAAjACEAAAABAAMAAAAjACIAAAABAAMAAAAjACMAAAABAAMAAAAjACQAAAABAAMAAAAjACUAAAABAAMAAAAjACYAAAABAAMAAAAjACcAAAABAAMAAAAjACgAAAABAAMAAAAjACkAAAABAAMAAAAjACoAAAABAAMAAAAjACsAAAABAAMAAAAjACwAAAABAAMAAAAjAC0AAAABAAMAAAAjAC4AAAABAAMAAAAjAC8AAAABAAMAAAAjADAAAAABAAMAAAAjADEAAAABAAMAAAAjADIAAAABAAMAAAAjADMAAAABAAMAAAAjADQAAAABAAMAAAAjADUAAAABAAMAAAAkAAAAAAABAAMAAAAkAAEAAAABAAMAAAAkAAIAAAABAAMAAAAkAAMAAAABAAMAAAAkAAQAAAABAAMAAAAkAAUAAAABAAMAAAAkAAYAAAABAAMAAAAkAAcAAAABAAMAAAAkAAgAAAABAAMAAAAkAAkAAAABAAMAAAAkAAoAAAABAAMAAAAkAAsAAAABAAMAAAAkAAwAAAABAAMAAAAkAA0AAAABAAMAAAAkAA4AAAABAAMAAAAkAA8AAAABAAMAAAAkABAAAAABAAMAAAAkABEAAAABAAMAAAAkABIAAAABAAMAAAAkABMAAAABAAMAAAAkABQAAAABAAMAAAAkABUAAAABAAMAAAAkABYAAAABAAMAAAAkABcAAAABAAMAAAAkABgAAAABAAMAAAAkABkAAAABAAMAAAAkABoAAAABAAMAAAAkABsAAAABAAMAAAAkABwAAAABAAMAAAAkAB0AAAABAAMAAAAkAB4AAAABAAMAAAAkAB8AAAABAAMAAAAkACAAAAABAAMAAAAkACEAAAABAAMAAAAkACIAAAABAAMAAAAkACMAAAABAAMAAAAkACQAAAABAAMAAAAkACUAAAABAAMAAAAkACYAAAABAAMAAAAkACcAAAABAAMAAAAkACgAAAABAAMAAAAkACkAAAABAAMAAAAkACoAAAABAAMAAAAkACsAAAABAAMAAAAkACwAAAABAAMAAAAkAC0AAAABAAMAAAAkAC4AAAABAAMAAAAkAC8AAAABAAMAAAAkADAAAAABAAMAAAAkADEAAAABAAMAAAAkADIAAAABAAMAAAAkADMAAAABAAMAAAAkADQAAAABAAMAAAAkADUAAAABAAMAAAAlAAAAAAABAAMAAAAlAAEAAAABAAMAAAAlAAIAAAABAAMAAAAlAAMAAAABAAMAAAAlAAQAAAABAAMAAAAlAAUAAAABAAMAAAAlAAYAAAABAAMAAAAlAAcAAAABAAMAAAAlAAgAAAABAAMAAAAlAAkAAAABAAMAAAAlAAoAAAABAAMAAAAlAAsAAAABAAMAAAAlAAwAAAABAAMAAAAlAA0AAAABAAMAAAAlAA4AAAABAAMAAAAlAA8AAAABAAMAAAAlABAAAAABAAMAAAAlABEAAAABAAMAAAAlABIAAAABAAMAAAAlABMAAAABAAMAAAAlABQAAAABAAMAAAAlABUAAAABAAMAAAAlABYAAAABAAMAAAAlABcAAAABAAMAAAAlABgAAAABAAMAAAAlABkAAAABAAMAAAAlABoAAAABAAMAAAAlABsAAAABAAMAAAAlABwAAAABAAMAAAAlAB0AAAABAAMAAAAlAB4AAAABAAMAAAAlAB8AAAABAAMAAAAlACAAAAABAAMAAAAlACEAAAABAAMAAAAlACIAAAABAAMAAAAlACMAAAABAAMAAAAlACQAAAABAAMAAAAlACUAAAABAAMAAAAlACYAAAABAAMAAAAlACcAAAABAAMAAAAlACgAAAABAAMAAAAlACkAAAABAAMAAAAlACoAAAABAAMAAAAlACsAAAABAAMAAAAlACwAAAABAAMAAAAlAC0AAAABAAMAAAAlAC4AAAABAAMAAAAlAC8AAAABAAMAAAAlADAAAAABAAMAAAAlADEAAAABAAMAAAAlADIAAAABAAMAAAAlADMAAAABAAMAAAAlADQAAAABAAMAAAAlADUAAAABAAMAAAAmAAAAAAABAAMAAAAmAAEAAAABAAMAAAAmAAIAAAABAAMAAAAmAAMAAAABAAMAAAAmAAQAAAABAAMAAAAmAAUAAAABAAMAAAAmAAYAAAABAAMAAAAmAAcAAAABAAMAAAAmAAgAAAABAAMAAAAmAAkAAAABAAMAAAAmAAoAAAABAAMAAAAmAAsAAAABAAMAAAAmAAwAAAABAAMAAAAmAA0AAAABAAMAAAAmAA4AAAABAAMAAAAmAA8AAAABAAMAAAAmABAAAAABAAMAAAAmABEAAAABAAMAAAAmABIAAAABAAMAAAAmABMAAAABAAMAAAAmABQAAAABAAMAAAAmABUAAAABAAMAAAAmABYAAAABAAMAAAAmABcAAAABAAMAAAAmABgAAAABAAMAAAAmABkAAAABAAMAAAAmABoAAAABAAMAAAAmABsAAAABAAMAAAAmABwAAAABAAMAAAAmAB0AAAABAAMAAAAmAB4AAAABAAMAAAAmAB8AAAABAAMAAAAmACAAAAABAAMAAAAmACEAAAABAAMAAAAmACIAAAABAAMAAAAmACMAAAABAAMAAAAmACQAAAABAAMAAAAmACUAAAABAAMAAAAmACYAAAABAAMAAAAmACcAAAABAAMAAAAmACgAAAABAAMAAAAmACkAAAABAAMAAAAmACoAAAABAAMAAAAmACsAAAABAAMAAAAmACwAAAABAAMAAAAmAC0AAAABAAMAAAAmAC4AAAABAAMAAAAmAC8AAAABAAMAAAAmADAAAAABAAMAAAAmADEAAAABAAMAAAAmADIAAAABAAMAAAAmADMAAAABAAMAAAAmADQAAAABAAMAAAAmADUAAAABAAMAAAAnAAAAAAABAAMAAAAnAAEAAAABAAMAAAAnAAIAAAABAAMAAAAnAAMAAAABAAMAAAAnAAQAAAABAAMAAAAnAAUAAAABAAMAAAAnAAYAAAABAAMAAAAnAAcAAAABAAMAAAAnAAgAAAABAAMAAAAnAAkAAAABAAMAAAAnAAoAAAABAAMAAAAnAAsAAAABAAMAAAAnAAwAAAABAAMAAAAnAA0AAAABAAMAAAAnAA4AAAABAAMAAAAnAA8AAAABAAMAAAAnABAAAAABAAMAAAAnABEAAAABAAMAAAAnABIAAAABAAMAAAAnABMAAAABAAMAAAAnABQAAAABAAMAAAAnABUAAAABAAMAAAAnABYAAAABAAMAAAAnABcAAAABAAMAAAAnABgAAAABAAMAAAAnABkAAAABAAMAAAAnABoAAAABAAMAAAAnABsAAAABAAMAAAAnABwAAAABAAMAAAAnAB0AAAABAAMAAAAnAB4AAAABAAMAAAAnAB8AAAABAAMAAAAnACAAAAABAAMAAAAnACEAAAABAAMAAAAnACIAAAABAAMAAAAnACMAAAABAAMAAAAnACQAAAABAAMAAAAnACUAAAABAAMAAAAnACYAAAABAAMAAAAnACcAAAABAAMAAAAnACgAAAABAAMAAAAnACkAAAABAAMAAAAnACoAAAABAAMAAAAnACsAAAABAAMAAAAnACwAAAABAAMAAAAnAC0AAAABAAMAAAAnAC4AAAABAAMAAAAnAC8AAAABAAMAAAAnADAAAAABAAMAAAAnADEAAAABAAMAAAAnADIAAAABAAMAAAAnADMAAAABAAMAAAAnADQAAAABAAMAAAAnADUAAAABAAMAAAAoAAAAAAABAAMAAAAoAAEAAAABAAMAAAAoAAIAAAABAAMAAAAoAAMAAAABAAMAAAAoAAQAAAABAAMAAAAoAAUAAAABAAMAAAAoAAYAAAABAAMAAAAoAAcAAAABAAMAAAAoAAgAAAABAAMAAAAoAAkAAAABAAMAAAAoAAoAAAABAAMAAAAoAAsAAAABAAMAAAAoAAwAAAABAAMAAAAoAA0AAAABAAMAAAAoAA4AAAABAAMAAAAoAA8AAAABAAMAAAAoABAAAAABAAMAAAAoABEAAAABAAMAAAAoABIAAAABAAMAAAAoABMAAAABAAMAAAAoABQAAAABAAMAAAAoABUAAAABAAMAAAAoABYAAAABAAMAAAAoABcAAAABAAMAAAAoABgAAAABAAMAAAAoABkAAAABAAMAAAAoABoAAAABAAMAAAAoABsAAAABAAMAAAAoABwAAAABAAMAAAAoAB0AAAABAAMAAAAoAB4AAAABAAMAAAAoAB8AAAABAAMAAAAoACAAAAABAAMAAAAoACEAAAABAAMAAAAoACIAAAABAAMAAAAoACMAAAABAAMAAAAoACQAAAABAAMAAAAoACUAAAABAAMAAAAoACYAAAABAAMAAAAoACcAAAABAAMAAAAoACgAAAABAAMAAAAoACkAAAABAAMAAAAoACoAAAABAAMAAAAoACsAAAABAAMAAAAoACwAAAABAAMAAAAoAC0AAAABAAMAAAAoAC4AAAABAAMAAAAoAC8AAAABAAMAAAAoADAAAAABAAMAAAAoADEAAAABAAMAAAAoADIAAAABAAMAAAAoADMAAAABAAMAAAAoADQAAAABAAMAAAAoADUAAAABAAMAAAApAAAAAAABAAMAAAApAAEAAAABAAMAAAApAAIAAAABAAMAAAApAAMAAAABAAMAAAApAAQAAAABAAMAAAApAAUAAAABAAMAAAApAAYAAAABAAMAAAApAAcAAAABAAMAAAApAAgAAAABAAMAAAApAAkAAAABAAMAAAApAAoAAAABAAMAAAApAAsAAAABAAMAAAApAAwAAAABAAMAAAApAA0AAAABAAMAAAApAA4AAAABAAMAAAApAA8AAAABAAMAAAApABAAAAABAAMAAAApABEAAAABAAMAAAApABIAAAABAAMAAAApABMAAAABAAMAAAApABQAAAABAAMAAAApABUAAAABAAMAAAApABYAAAABAAMAAAApABcAAAABAAMAAAApABgAAAABAAMAAAApABkAAAABAAMAAAApABoAAAABAAMAAAApABsAAAABAAMAAAApABwAAAABAAMAAAApAB0AAAABAAMAAAApAB4AAAABAAMAAAApAB8AAAABAAMAAAApACAAAAABAAMAAAApACEAAAABAAMAAAApACIAAAABAAMAAAApACMAAAABAAMAAAApACQAAAABAAMAAAApACUAAAABAAMAAAApACYAAAABAAMAAAApACcAAAABAAMAAAApACgAAAABAAMAAAApACkAAAABAAMAAAApACoAAAABAAMAAAApACsAAAABAAMAAAApACwAAAABAAMAAAApAC0AAAABAAMAAAApAC4AAAABAAMAAAApAC8AAAABAAMAAAApADAAAAABAAMAAAApADEAAAABAAMAAAApADIAAAABAAMAAAApADMAAAABAAMAAAApADQAAAABAAMAAAApADUAAAABAAMAAAAqAAAAAAABAAMAAAAqAAEAAAABAAMAAAAqAAIAAAABAAMAAAAqAAMAAAABAAMAAAAqAAQAAAABAAMAAAAqAAUAAAABAAMAAAAqAAYAAAABAAMAAAAqAAcAAAABAAMAAAAqAAgAAAABAAMAAAAqAAkAAAABAAMAAAAqAAoAAAABAAMAAAAqAAsAAAABAAMAAAAqAAwAAAABAAMAAAAqAA0AAAABAAMAAAAqAA4AAAABAAMAAAAqAA8AAAABAAMAAAAqABAAAAABAAMAAAAqABEAAAABAAMAAAAqABIAAAABAAMAAAAqABMAAAABAAMAAAAqABQAAAABAAMAAAAqABUAAAABAAMAAAAqABYAAAABAAMAAAAqABcAAAABAAMAAAAqABgAAAABAAMAAAAqABkAAAABAAMAAAAqABoAAAABAAMAAAAqABsAAAABAAMAAAAqABwAAAABAAMAAAAqAB0AAAABAAMAAAAqAB4AAAABAAMAAAAqAB8AAAABAAMAAAAqACAAAAABAAMAAAAqACEAAAABAAMAAAAqACIAAAABAAMAAAAqACMAAAABAAMAAAAqACQAAAABAAMAAAAqACUAAAABAAMAAAAqACYAAAABAAMAAAAqACcAAAABAAMAAAAqACgAAAABAAMAAAAqACkAAAABAAMAAAAqACoAAAABAAMAAAAqACsAAAABAAMAAAAqACwAAAABAAMAAAAqAC0AAAABAAMAAAAqAC4AAAABAAMAAAAqAC8AAAABAAMAAAAqADAAAAABAAMAAAAqADEAAAABAAMAAAAqADIAAAABAAMAAAAqADMAAAABAAMAAAAqADQAAAABAAMAAAAqADUAAAABAAMAAAArAAAAAAABAAMAAAArAAEAAAABAAMAAAArAAIAAAABAAMAAAArAAMAAAABAAMAAAArAAQAAAABAAMAAAArAAUAAAABAAMAAAArAAYAAAABAAMAAAArAAcAAAABAAMAAAArAAgAAAABAAMAAAArAAkAAAABAAMAAAArAAoAAAABAAMAAAArAAsAAAABAAMAAAArAAwAAAABAAMAAAArAA0AAAABAAMAAAArAA4AAAABAAMAAAArAA8AAAABAAMAAAArABAAAAABAAMAAAArABEAAAABAAMAAAArABIAAAABAAMAAAArABMAAAABAAMAAAArABQAAAABAAMAAAArABUAAAABAAMAAAArABYAAAABAAMAAAArABcAAAABAAMAAAArABgAAAABAAMAAAArABkAAAABAAMAAAArABoAAAABAAMAAAArABsAAAABAAMAAAArABwAAAABAAMAAAArAB0AAAABAAMAAAArAB4AAAABAAMAAAArAB8AAAABAAMAAAArACAAAAABAAMAAAArACEAAAABAAMAAAArACIAAAABAAMAAAArACMAAAABAAMAAAArACQAAAABAAMAAAArACUAAAABAAMAAAArACYAAAABAAMAAAArACcAAAABAAMAAAArACgAAAABAAMAAAArACkAAAABAAMAAAArACoAAAABAAMAAAArACsAAAABAAMAAAArACwAAAABAAMAAAArAC0AAAABAAMAAAArAC4AAAABAAMAAAArAC8AAAABAAMAAAArADAAAAABAAMAAAArADEAAAABAAMAAAArADIAAAABAAMAAAArADMAAAABAAMAAAArADQAAAABAAMAAAArADUAAAABAAMAAAAsAAAAAAABAAMAAAAsAAEAAAABAAMAAAAsAAIAAAABAAMAAAAsAAMAAAABAAMAAAAsAAQAAAABAAMAAAAsAAUAAAABAAMAAAAsAAYAAAABAAMAAAAsAAcAAAABAAMAAAAsAAgAAAABAAMAAAAsAAkAAAABAAMAAAAsAAoAAAABAAMAAAAsAAsAAAABAAMAAAAsAAwAAAABAAMAAAAsAA0AAAABAAMAAAAsAA4AAAABAAMAAAAsAA8AAAABAAMAAAAsABAAAAABAAMAAAAsABEAAAABAAMAAAAsABIAAAABAAMAAAAsABMAAAABAAMAAAAsABQAAAABAAMAAAAsABUAAAABAAMAAAAsABYAAAABAAMAAAAsABcAAAABAAMAAAAsABgAAAABAAMAAAAsABkAAAABAAMAAAAsABoAAAABAAMAAAAsABsAAAABAAMAAAAsABwAAAABAAMAAAAsAB0AAAABAAMAAAAsAB4AAAABAAMAAAAsAB8AAAABAAMAAAAsACAAAAABAAMAAAAsACEAAAABAAMAAAAsACIAAAABAAMAAAAsACMAAAABAAMAAAAsACQAAAABAAMAAAAsACUAAAABAAMAAAAsACYAAAABAAMAAAAsACcAAAABAAMAAAAsACgAAAABAAMAAAAsACkAAAABAAMAAAAsACoAAAABAAMAAAAsACsAAAABAAMAAAAsACwAAAABAAMAAAAsAC0AAAABAAMAAAAsAC4AAAABAAMAAAAsAC8AAAABAAMAAAAsADAAAAABAAMAAAAsADEAAAABAAMAAAAsADIAAAABAAMAAAAsADMAAAABAAMAAAAsADQAAAABAAMAAAAsADUAAAABAAMAAAAtAAAAAAABAAMAAAAtAAEAAAABAAMAAAAtAAIAAAABAAMAAAAtAAMAAAABAAMAAAAtAAQAAAABAAMAAAAtAAUAAAABAAMAAAAtAAYAAAABAAMAAAAtAAcAAAABAAMAAAAtAAgAAAABAAMAAAAtAAkAAAABAAMAAAAtAAoAAAABAAMAAAAtAAsAAAABAAMAAAAtAAwAAAABAAMAAAAtAA0AAAABAAMAAAAtAA4AAAABAAMAAAAtAA8AAAABAAMAAAAtABAAAAABAAMAAAAtABEAAAABAAMAAAAtABIAAAABAAMAAAAtABMAAAABAAMAAAAtABQAAAABAAMAAAAtABUAAAABAAMAAAAtABYAAAABAAMAAAAtABcAAAABAAMAAAAtABgAAAABAAMAAAAtABkAAAABAAMAAAAtABoAAAABAAMAAAAtABsAAAABAAMAAAAtABwAAAABAAMAAAAtAB0AAAABAAMAAAAtAB4AAAABAAMAAAAtAB8AAAABAAMAAAAtACAAAAABAAMAAAAtACEAAAABAAMAAAAtACIAAAABAAMAAAAtACMAAAABAAMAAAAtACQAAAABAAMAAAAtACUAAAABAAMAAAAtACYAAAABAAMAAAAtACcAAAABAAMAAAAtACgAAAABAAMAAAAtACkAAAABAAMAAAAtACoAAAABAAMAAAAtACsAAAABAAMAAAAtACwAAAABAAMAAAAtAC0AAAABAAMAAAAtAC4AAAABAAMAAAAtAC8AAAABAAMAAAAtADAAAAABAAMAAAAtADEAAAABAAMAAAAtADIAAAABAAMAAAAtADMAAAABAAMAAAAtADQAAAABAAMAAAAtADUAAAABAAMAAAAuAAAAAAABAAMAAAAuAAEAAAABAAMAAAAuAAIAAAABAAMAAAAuAAMAAAABAAMAAAAuAAQAAAABAAMAAAAuAAUAAAABAAMAAAAuAAYAAAABAAMAAAAuAAcAAAABAAMAAAAuAAgAAAABAAMAAAAuAAkAAAABAAMAAAAuAAoAAAABAAMAAAAuAAsAAAABAAMAAAAuAAwAAAABAAMAAAAuAA0AAAABAAMAAAAuAA4AAAABAAMAAAAuAA8AAAABAAMAAAAuABAAAAABAAMAAAAuABEAAAABAAMAAAAuABIAAAABAAMAAAAuABMAAAABAAMAAAAuABQAAAABAAMAAAAuABUAAAABAAMAAAAuABYAAAABAAMAAAAuABcAAAABAAMAAAAuABgAAAABAAMAAAAuABkAAAABAAMAAAAuABoAAAABAAMAAAAuABsAAAABAAMAAAAuABwAAAABAAMAAAAuAB0AAAABAAMAAAAuAB4AAAABAAMAAAAuAB8AAAABAAMAAAAuACAAAAABAAMAAAAuACEAAAABAAMAAAAuACIAAAABAAMAAAAuACMAAAABAAMAAAAuACQAAAABAAMAAAAuACUAAAABAAMAAAAuACYAAAABAAMAAAAuACcAAAABAAMAAAAuACgAAAABAAMAAAAuACkAAAABAAMAAAAuACoAAAABAAMAAAAuACsAAAABAAMAAAAuACwAAAABAAMAAAAuAC0AAAABAAMAAAAuAC4AAAABAAMAAAAuAC8AAAABAAMAAAAuADAAAAABAAMAAAAuADEAAAABAAMAAAAuADIAAAABAAMAAAAuADMAAAABAAMAAAAuADQAAAABAAMAAAAuADUAAAABAAMAAAAvAAAAAAABAAMAAAAvAAEAAAABAAMAAAAvAAIAAAABAAMAAAAvAAMAAAABAAMAAAAvAAQAAAABAAMAAAAvAAUAAAABAAMAAAAvAAYAAAABAAMAAAAvAAcAAAABAAMAAAAvAAgAAAABAAMAAAAvAAkAAAABAAMAAAAvAAoAAAABAAMAAAAvAAsAAAABAAMAAAAvAAwAAAABAAMAAAAvAA0AAAABAAMAAAAvAA4AAAABAAMAAAAvAA8AAAABAAMAAAAvABAAAAABAAMAAAAvABEAAAABAAMAAAAvABIAAAABAAMAAAAvABMAAAABAAMAAAAvABQAAAABAAMAAAAvABUAAAABAAMAAAAvABYAAAABAAMAAAAvABcAAAABAAMAAAAvABgAAAABAAMAAAAvABkAAAABAAMAAAAvABoAAAABAAMAAAAvABsAAAABAAMAAAAvABwAAAABAAMAAAAvAB0AAAABAAMAAAAvAB4AAAABAAMAAAAvAB8AAAABAAMAAAAvACAAAAABAAMAAAAvACEAAAABAAMAAAAvACIAAAABAAMAAAAvACMAAAABAAMAAAAvACQAAAABAAMAAAAvACUAAAABAAMAAAAvACYAAAABAAMAAAAvACcAAAABAAMAAAAvACgAAAABAAMAAAAvACkAAAABAAMAAAAvACoAAAABAAMAAAAvACsAAAABAAMAAAAvACwAAAABAAMAAAAvAC0AAAABAAMAAAAvAC4AAAABAAMAAAAvAC8AAAABAAMAAAAvADAAAAABAAMAAAAvADEAAAABAAMAAAAvADIAAAABAAMAAAAvADMAAAABAAMAAAAvADQAAAABAAMAAAAvADUAAAABAAMAAAAwAAAAAAABAAMAAAAwAAEAAAABAAMAAAAwAAIAAAABAAMAAAAwAAMAAAABAAMAAAAwAAQAAAABAAMAAAAwAAUAAAABAAMAAAAwAAYAAAABAAMAAAAwAAcAAAABAAMAAAAwAAgAAAABAAMAAAAwAAkAAAABAAMAAAAwAAoAAAABAAMAAAAwAAsAAAABAAMAAAAwAAwAAAABAAMAAAAwAA0AAAABAAMAAAAwAA4AAAABAAMAAAAwAA8AAAABAAMAAAAwABAAAAABAAMAAAAwABEAAAABAAMAAAAwABIAAAABAAMAAAAwABMAAAABAAMAAAAwABQAAAABAAMAAAAwABUAAAABAAMAAAAwABYAAAABAAMAAAAwABcAAAABAAMAAAAwABgAAAABAAMAAAAwABkAAAABAAMAAAAwABoAAAABAAMAAAAwABsAAAABAAMAAAAwABwAAAABAAMAAAAwAB0AAAABAAMAAAAwAB4AAAABAAMAAAAwAB8AAAABAAMAAAAwACAAAAABAAMAAAAwACEAAAABAAMAAAAwACIAAAABAAMAAAAwACMAAAABAAMAAAAwACQAAAABAAMAAAAwACUAAAABAAMAAAAwACYAAAABAAMAAAAwACcAAAABAAMAAAAwACgAAAABAAMAAAAwACkAAAABAAMAAAAwACoAAAABAAMAAAAwACsAAAABAAMAAAAwACwAAAABAAMAAAAwAC0AAAABAAMAAAAwAC4AAAABAAMAAAAwAC8AAAABAAMAAAAwADAAAAABAAMAAAAwADEAAAABAAMAAAAwADIAAAABAAMAAAAwADMAAAABAAMAAAAwADQAAAABAAMAAAAwADUAAAABAAMAAAAxAAAAAAABAAMAAAAxAAEAAAABAAMAAAAxAAIAAAABAAMAAAAxAAMAAAABAAMAAAAxAAQAAAABAAMAAAAxAAUAAAABAAMAAAAxAAYAAAABAAMAAAAxAAcAAAABAAMAAAAxAAgAAAABAAMAAAAxAAkAAAABAAMAAAAxAAoAAAABAAMAAAAxAAsAAAABAAMAAAAxAAwAAAABAAMAAAAxAA0AAAABAAMAAAAxAA4AAAABAAMAAAAxAA8AAAABAAMAAAAxABAAAAABAAMAAAAxABEAAAABAAMAAAAxABIAAAABAAMAAAAxABMAAAABAAMAAAAxABQAAAABAAMAAAAxABUAAAABAAMAAAAxABYAAAABAAMAAAAxABcAAAABAAMAAAAxABgAAAABAAMAAAAxABkAAAABAAMAAAAxABoAAAABAAMAAAAxABsAAAABAAMAAAAxABwAAAABAAMAAAAxAB0AAAABAAMAAAAxAB4AAAABAAMAAAAxAB8AAAABAAMAAAAxACAAAAABAAMAAAAxACEAAAABAAMAAAAxACIAAAABAAMAAAAxACMAAAABAAMAAAAxACQAAAABAAMAAAAxACUAAAABAAMAAAAxACYAAAABAAMAAAAxACcAAAABAAMAAAAxACgAAAABAAMAAAAxACkAAAABAAMAAAAxACoAAAABAAMAAAAxACsAAAABAAMAAAAxACwAAAABAAMAAAAxAC0AAAABAAMAAAAxAC4AAAABAAMAAAAxAC8AAAABAAMAAAAxADAAAAABAAMAAAAxADEAAAABAAMAAAAxADIAAAABAAMAAAAxADMAAAABAAMAAAAxADQAAAABAAMAAAAxADUAAAABAAMAAAAyAAAAAAABAAMAAAAyAAEAAAABAAMAAAAyAAIAAAABAAMAAAAyAAMAAAABAAMAAAAyAAQAAAABAAMAAAAyAAUAAAABAAMAAAAyAAYAAAABAAMAAAAyAAcAAAABAAMAAAAyAAgAAAABAAMAAAAyAAkAAAABAAMAAAAyAAoAAAABAAMAAAAyAAsAAAABAAMAAAAyAAwAAAABAAMAAAAyAA0AAAABAAMAAAAyAA4AAAABAAMAAAAyAA8AAAABAAMAAAAyABAAAAABAAMAAAAyABEAAAABAAMAAAAyABIAAAABAAMAAAAyABMAAAABAAMAAAAyABQAAAABAAMAAAAyABUAAAABAAMAAAAyABYAAAABAAMAAAAyABcAAAABAAMAAAAyABgAAAABAAMAAAAyABkAAAABAAMAAAAyABoAAAABAAMAAAAyABsAAAABAAMAAAAyABwAAAABAAMAAAAyAB0AAAABAAMAAAAyAB4AAAABAAMAAAAyAB8AAAABAAMAAAAyACAAAAABAAMAAAAyACEAAAABAAMAAAAyACIAAAABAAMAAAAyACMAAAABAAMAAAAyACQAAAABAAMAAAAyACUAAAABAAMAAAAyACYAAAABAAMAAAAyACcAAAABAAMAAAAyACgAAAABAAMAAAAyACkAAAABAAMAAAAyACoAAAABAAMAAAAyACsAAAABAAMAAAAyACwAAAABAAMAAAAyAC0AAAABAAMAAAAyAC4AAAABAAMAAAAyAC8AAAABAAMAAAAyADAAAAABAAMAAAAyADEAAAABAAMAAAAyADIAAAABAAMAAAAyADMAAAABAAMAAAAyADQAAAABAAMAAAAyADUAAAABAAMAAAAzAAAAAAABAAMAAAAzAAEAAAABAAMAAAAzAAIAAAABAAMAAAAzAAMAAAABAAMAAAAzAAQAAAABAAMAAAAzAAUAAAABAAMAAAAzAAYAAAABAAMAAAAzAAcAAAABAAMAAAAzAAgAAAABAAMAAAAzAAkAAAABAAMAAAAzAAoAAAABAAMAAAAzAAsAAAABAAMAAAAzAAwAAAABAAMAAAAzAA0AAAABAAMAAAAzAA4AAAABAAMAAAAzAA8AAAABAAMAAAAzABAAAAABAAMAAAAzABEAAAABAAMAAAAzABIAAAABAAMAAAAzABMAAAABAAMAAAAzABQAAAABAAMAAAAzABUAAAABAAMAAAAzABYAAAABAAMAAAAzABcAAAABAAMAAAAzABgAAAABAAMAAAAzABkAAAABAAMAAAAzABoAAAABAAMAAAAzABsAAAABAAMAAAAzABwAAAABAAMAAAAzAB0AAAABAAMAAAAzAB4AAAABAAMAAAAzAB8AAAABAAMAAAAzACAAAAABAAMAAAAzACEAAAABAAMAAAAzACIAAAABAAMAAAAzACMAAAABAAMAAAAzACQAAAABAAMAAAAzACUAAAABAAMAAAAzACYAAAABAAMAAAAzACcAAAABAAMAAAAzACgAAAABAAMAAAAzACkAAAABAAMAAAAzACoAAAABAAMAAAAzACsAAAABAAMAAAAzACwAAAABAAMAAAAzAC0AAAABAAMAAAAzAC4AAAABAAMAAAAzAC8AAAABAAMAAAAzADAAAAABAAMAAAAzADEAAAABAAMAAAAzADIAAAABAAMAAAAzADMAAAABAAMAAAAzADQAAAABAAMAAAAzADUAAAABAAMAAAA0AAAAAAABAAMAAAA0AAEAAAABAAMAAAA0AAIAAAABAAMAAAA0AAMAAAABAAMAAAA0AAQAAAABAAMAAAA0AAUAAAABAAMAAAA0AAYAAAABAAMAAAA0AAcAAAABAAMAAAA0AAgAAAABAAMAAAA0AAkAAAABAAMAAAA0AAoAAAABAAMAAAA0AAsAAAABAAMAAAA0AAwAAAABAAMAAAA0AA0AAAABAAMAAAA0AA4AAAABAAMAAAA0AA8AAAABAAMAAAA0ABAAAAABAAMAAAA0ABEAAAABAAMAAAA0ABIAAAABAAMAAAA0ABMAAAABAAMAAAA0ABQAAAABAAMAAAA0ABUAAAABAAMAAAA0ABYAAAABAAMAAAA0ABcAAAABAAMAAAA0ABgAAAABAAMAAAA0ABkAAAABAAMAAAA0ABoAAAABAAMAAAA0ABsAAAABAAMAAAA0ABwAAAABAAMAAAA0AB0AAAABAAMAAAA0AB4AAAABAAMAAAA0AB8AAAABAAMAAAA0ACAAAAABAAMAAAA0ACEAAAABAAMAAAA0ACIAAAABAAMAAAA0ACMAAAABAAMAAAA0ACQAAAABAAMAAAA0ACUAAAABAAMAAAA0ACYAAAABAAMAAAA0ACcAAAABAAMAAAA0ACgAAAABAAMAAAA0ACkAAAABAAMAAAA0ACoAAAABAAMAAAA0ACsAAAABAAMAAAA0ACwAAAABAAMAAAA0AC0AAAABAAMAAAA0AC4AAAABAAMAAAA0AC8AAAABAAMAAAA0ADAAAAABAAMAAAA0ADEAAAABAAMAAAA0ADIAAAABAAMAAAA0ADMAAAABAAMAAAA0ADQAAAABAAMAAAA0ADUAAAABAAMAAAA1AAAAAAABAAMAAAA1AAEAAAABAAMAAAA1AAIAAAABAAMAAAA1AAMAAAABAAMAAAA1AAQAAAABAAMAAAA1AAUAAAABAAMAAAA1AAYAAAABAAMAAAA1AAcAAAABAAMAAAA1AAgAAAABAAMAAAA1AAkAAAABAAMAAAA1AAoAAAABAAMAAAA1AAsAAAABAAMAAAA1AAwAAAABAAMAAAA1AA0AAAABAAMAAAA1AA4AAAABAAMAAAA1AA8AAAABAAMAAAA1ABAAAAABAAMAAAA1ABEAAAABAAMAAAA1ABIAAAABAAMAAAA1ABMAAAABAAMAAAA1ABQAAAABAAMAAAA1ABUAAAABAAMAAAA1ABYAAAABAAMAAAA1ABcAAAABAAMAAAA1ABgAAAABAAMAAAA1ABkAAAABAAMAAAA1ABoAAAABAAMAAAA1ABsAAAABAAMAAAA1ABwAAAABAAMAAAA1AB0AAAABAAMAAAA1AB4AAAABAAMAAAA1AB8AAAABAAMAAAA1ACAAAAABAAMAAAA1ACEAAAABAAMAAAA1ACIAAAABAAMAAAA1ACMAAAABAAMAAAA1ACQAAAABAAMAAAA1ACUAAAABAAMAAAA1ACYAAAABAAMAAAA1ACcAAAABAAMAAAA1ACgAAAABAAMAAAA1ACkAAAABAAMAAAA1ACoAAAABAAMAAAA1ACsAAAABAAMAAAA1ACwAAAABAAMAAAA1AC0AAAABAAMAAAA1AC4AAAABAAMAAAA1AC8AAAABAAMAAAA1ADAAAAABAAMAAAA1ADEAAAABAAMAAAA1ADIAAAABAAMAAAA1ADMAAAABAAMAAAA1ADQAAAABAAMAAAA1ADUAAAABAAMAAAA2AAAAAAABAAMAAAA2AAEAAAABAAMAAAA2AAIAAAABAAMAAAA2AAMAAAABAAMAAAA2AAQAAAABAAMAAAA2AAUAAAABAAMAAAA2AAYAAAABAAMAAAA2AAcAAAABAAMAAAA2AAgAAAABAAMAAAA2AAkAAAABAAMAAAA2AAoAAAABAAMAAAA2AAsAAAABAAMAAAA2AAwAAAABAAMAAAA2AA0AAAABAAMAAAA2AA4AAAABAAMAAAA2AA8AAAABAAMAAAA2ABAAAAABAAMAAAA2ABEAAAABAAMAAAA2ABIAAAABAAMAAAA2ABMAAAABAAMAAAA2ABQAAAABAAMAAAA2ABUAAAABAAMAAAA2ABYAAAABAAMAAAA2ABcAAAABAAMAAAA2ABgAAAABAAMAAAA2ABkAAAABAAMAAAA2ABoAAAABAAMAAAA2ABsAAAABAAMAAAA2ABwAAAABAAMAAAA2AB0AAAABAAMAAAA2AB4AAAABAAMAAAA2AB8AAAABAAMAAAA2ACAAAAABAAMAAAA2ACEAAAABAAMAAAA2ACIAAAABAAMAAAA2ACMAAAABAAMAAAA2ACQAAAABAAMAAAA2ACUAAAABAAMAAAA2ACYAAAABAAMAAAA2ACcAAAABAAMAAAA2ACgAAAABAAMAAAA2ACkAAAABAAMAAAA2ACoAAAABAAMAAAA2ACsAAAABAAMAAAA2ACwAAAABAAMAAAA2AC0AAAABAAMAAAA2AC4AAAABAAMAAAA2AC8AAAABAAMAAAA2ADAAAAABAAMAAAA2ADEAAAABAAMAAAA2ADIAAAABAAMAAAA2ADMAAAABAAMAAAA2ADQAAAABAAMAAAA2ADUAAAABAAMAAAA3AAAAAAABAAMAAAA3AAEAAAABAAMAAAA3AAIAAAABAAMAAAA3AAMAAAABAAMAAAA3AAQAAAABAAMAAAA3AAUAAAABAAMAAAA3AAYAAAABAAMAAAA3AAcAAAABAAMAAAA3AAgAAAABAAMAAAA3AAkAAAABAAMAAAA3AAoAAAABAAMAAAA3AAsAAAABAAMAAAA3AAwAAAABAAMAAAA3AA0AAAABAAMAAAA3AA4AAAABAAMAAAA3AA8AAAABAAMAAAA3ABAAAAABAAMAAAA3ABEAAAABAAMAAAA3ABIAAAABAAMAAAA3ABMAAAABAAMAAAA3ABQAAAABAAMAAAA3ABUAAAABAAMAAAA3ABYAAAABAAMAAAA3ABcAAAABAAMAAAA3ABgAAAABAAMAAAA3ABkAAAABAAMAAAA3ABoAAAABAAMAAAA3ABsAAAABAAMAAAA3ABwAAAABAAMAAAA3AB0AAAABAAMAAAA3AB4AAAABAAMAAAA3AB8AAAABAAMAAAA3ACAAAAABAAMAAAA3ACEAAAABAAMAAAA3ACIAAAABAAMAAAA3ACMAAAABAAMAAAA3ACQAAAABAAMAAAA3ACUAAAABAAMAAAA3ACYAAAABAAMAAAA3ACcAAAABAAMAAAA3ACgAAAABAAMAAAA3ACkAAAABAAMAAAA3ACoAAAABAAMAAAA3ACsAAAABAAMAAAA3ACwAAAABAAMAAAA3AC0AAAABAAMAAAA3AC4AAAABAAMAAAA3AC8AAAABAAMAAAA3ADAAAAABAAMAAAA3ADEAAAABAAMAAAA3ADIAAAABAAMAAAA3ADMAAAABAAMAAAA3ADQAAAABAAMAAAA3ADUAAAABAAMAAAA4AAAAAAABAAMAAAA4AAEAAAABAAMAAAA4AAIAAAABAAMAAAA4AAMAAAABAAMAAAA4AAQAAAABAAMAAAA4AAUAAAABAAMAAAA4AAYAAAABAAMAAAA4AAcAAAABAAMAAAA4AAgAAAABAAMAAAA4AAkAAAABAAMAAAA4AAoAAAABAAMAAAA4AAsAAAABAAMAAAA4AAwAAAABAAMAAAA4AA0AAAABAAMAAAA4AA4AAAABAAMAAAA4AA8AAAABAAMAAAA4ABAAAAABAAMAAAA4ABEAAAABAAMAAAA4ABIAAAABAAMAAAA4ABMAAAABAAMAAAA4ABQAAAABAAMAAAA4ABUAAAABAAMAAAA4ABYAAAABAAMAAAA4ABcAAAABAAMAAAA4ABgAAAABAAMAAAA4ABkAAAABAAMAAAA4ABoAAAABAAMAAAA4ABsAAAABAAMAAAA4ABwAAAABAAMAAAA4AB0AAAABAAMAAAA4AB4AAAABAAMAAAA4AB8AAAABAAMAAAA4ACAAAAABAAMAAAA4ACEAAAABAAMAAAA4ACIAAAABAAMAAAA4ACMAAAABAAMAAAA4ACQAAAABAAMAAAA4ACUAAAABAAMAAAA4ACYAAAABAAMAAAA4ACcAAAABAAMAAAA4ACgAAAABAAMAAAA4ACkAAAABAAMAAAA4ACoAAAABAAMAAAA4ACsAAAABAAMAAAA4ACwAAAABAAMAAAA4AC0AAAABAAMAAAA4AC4AAAABAAMAAAA4AC8AAAABAAMAAAA4ADAAAAABAAMAAAA4ADEAAAABAAMAAAA4ADIAAAABAAMAAAA4ADMAAAABAAMAAAA4ADQAAAABAAMAAAA4ADUAAAABAAMAAAA5AAAAAAABAAMAAAA5AAEAAAABAAMAAAA5AAIAAAABAAMAAAA5AAMAAAABAAMAAAA5AAQAAAABAAMAAAA5AAUAAAABAAMAAAA5AAYAAAABAAMAAAA5AAcAAAABAAMAAAA5AAgAAAABAAMAAAA5AAkAAAABAAMAAAA5AAoAAAABAAMAAAA5AAsAAAABAAMAAAA5AAwAAAABAAMAAAA5AA0AAAABAAMAAAA5AA4AAAABAAMAAAA5AA8AAAABAAMAAAA5ABAAAAABAAMAAAA5ABEAAAABAAMAAAA5ABIAAAABAAMAAAA5ABMAAAABAAMAAAA5ABQAAAABAAMAAAA5ABUAAAABAAMAAAA5ABYAAAABAAMAAAA5ABcAAAABAAMAAAA5ABgAAAABAAMAAAA5ABkAAAABAAMAAAA5ABoAAAABAAMAAAA5ABsAAAABAAMAAAA5ABwAAAABAAMAAAA5AB0AAAABAAMAAAA5AB4AAAABAAMAAAA5AB8AAAABAAMAAAA5ACAAAAABAAMAAAA5ACEAAAABAAMAAAA5ACIAAAABAAMAAAA5ACMAAAABAAMAAAA5ACQAAAABAAMAAAA5ACUAAAABAAMAAAA5ACYAAAABAAMAAAA5ACcAAAABAAMAAAA5ACgAAAABAAMAAAA5ACkAAAABAAMAAAA5ACoAAAABAAMAAAA5ACsAAAABAAMAAAA5ACwAAAABAAMAAAA5AC0AAAABAAMAAAA5AC4AAAABAAMAAAA5AC8AAAABAAMAAAA5ADAAAAABAAMAAAA5ADEAAAABAAMAAAA5ADIAAAABAAMAAAA5ADMAAAABAAMAAAA5ADQAAAABAAMAAAA5ADUAAAABAAMAAAA6AAAAAAABAAMAAAA6AAEAAAABAAMAAAA6AAIAAAABAAMAAAA6AAMAAAABAAMAAAA6AAQAAAABAAMAAAA6AAUAAAABAAMAAAA6AAYAAAABAAMAAAA6AAcAAAABAAMAAAA6AAgAAAABAAMAAAA6AAkAAAABAAMAAAA6AAoAAAABAAMAAAA6AAsAAAABAAMAAAA6AAwAAAABAAMAAAA6AA0AAAABAAMAAAA6AA4AAAABAAMAAAA6AA8AAAABAAMAAAA6ABAAAAABAAMAAAA6ABEAAAABAAMAAAA6ABIAAAABAAMAAAA6ABMAAAABAAMAAAA6ABQAAAABAAMAAAA6ABUAAAABAAMAAAA6ABYAAAABAAMAAAA6ABcAAAABAAMAAAA6ABgAAAABAAMAAAA6ABkAAAABAAMAAAA6ABoAAAABAAMAAAA6ABsAAAABAAMAAAA6ABwAAAABAAMAAAA6AB0AAAABAAMAAAA6AB4AAAABAAMAAAA6AB8AAAABAAMAAAA6ACAAAAABAAMAAAA6ACEAAAABAAMAAAA6ACIAAAABAAMAAAA6ACMAAAABAAMAAAA6ACQAAAABAAMAAAA6ACUAAAABAAMAAAA6ACYAAAABAAMAAAA6ACcAAAABAAMAAAA6ACgAAAABAAMAAAA6ACkAAAABAAMAAAA6ACoAAAABAAMAAAA6ACsAAAABAAMAAAA6ACwAAAABAAMAAAA6AC0AAAABAAMAAAA6AC4AAAABAAMAAAA6AC8AAAABAAMAAAA6ADAAAAABAAMAAAA6ADEAAAABAAMAAAA6ADIAAAABAAMAAAA6ADMAAAABAAMAAAA6ADQAAAABAAMAAAA6ADUAAAABAAMAAAA7AAAAAAABAAMAAAA7AAEAAAABAAMAAAA7AAIAAAABAAMAAAA7AAMAAAABAAMAAAA7AAQAAAABAAMAAAA7AAUAAAABAAMAAAA7AAYAAAABAAMAAAA7AAcAAAABAAMAAAA7AAgAAAABAAMAAAA7AAkAAAABAAMAAAA7AAoAAAABAAMAAAA7AAsAAAABAAMAAAA7AAwAAAABAAMAAAA7AA0AAAABAAMAAAA7AA4AAAABAAMAAAA7AA8AAAABAAMAAAA7ABAAAAABAAMAAAA7ABEAAAABAAMAAAA7ABIAAAABAAMAAAA7ABMAAAABAAMAAAA7ABQAAAABAAMAAAA7ABUAAAABAAMAAAA7ABYAAAABAAMAAAA7ABcAAAABAAMAAAA7ABgAAAABAAMAAAA7ABkAAAABAAMAAAA7ABoAAAABAAMAAAA7ABsAAAABAAMAAAA7ABwAAAABAAMAAAA7AB0AAAABAAMAAAA7AB4AAAABAAMAAAA7AB8AAAABAAMAAAA7ACAAAAABAAMAAAA7ACEAAAABAAMAAAA7ACIAAAABAAMAAAA7ACMAAAABAAMAAAA7ACQAAAABAAMAAAA7ACUAAAABAAMAAAA7ACYAAAABAAMAAAA7ACcAAAABAAMAAAA7ACgAAAABAAMAAAA7ACkAAAABAAMAAAA7ACoAAAABAAMAAAA7ACsAAAABAAMAAAA7ACwAAAABAAMAAAA7AC0AAAABAAMAAAA7AC4AAAABAAMAAAA7AC8AAAABAAMAAAA7ADAAAAABAAMAAAA7ADEAAAABAAMAAAA7ADIAAAABAAMAAAA7ADMAAAABAAMAAAA7ADQAAAABAAMAAAA7ADUAAAABAAMAAAA8AAAAAAABAAMAAAA8AAEAAAABAAMAAAA8AAIAAAABAAMAAAA8AAMAAAABAAMAAAA8AAQAAAABAAMAAAA8AAUAAAABAAMAAAA8AAYAAAABAAMAAAA8AAcAAAABAAMAAAA8AAgAAAABAAMAAAA8AAkAAAABAAMAAAA8AAoAAAABAAMAAAA8AAsAAAABAAMAAAA8AAwAAAABAAMAAAA8AA0AAAABAAMAAAA8AA4AAAABAAMAAAA8AA8AAAABAAMAAAA8ABAAAAABAAMAAAA8ABEAAAABAAMAAAA8ABIAAAABAAMAAAA8ABMAAAABAAMAAAA8ABQAAAABAAMAAAA8ABUAAAABAAMAAAA8ABYAAAABAAMAAAA8ABcAAAABAAMAAAA8ABgAAAABAAMAAAA8ABkAAAABAAMAAAA8ABoAAAABAAMAAAA8ABsAAAABAAMAAAA8ABwAAAABAAMAAAA8AB0AAAABAAMAAAA8AB4AAAABAAMAAAA8AB8AAAABAAMAAAA8ACAAAAABAAMAAAA8ACEAAAABAAMAAAA8ACIAAAABAAMAAAA8ACMAAAABAAMAAAA8ACQAAAABAAMAAAA8ACUAAAABAAMAAAA8ACYAAAABAAMAAAA8ACcAAAABAAMAAAA8ACgAAAABAAMAAAA8ACkAAAABAAMAAAA8ACoAAAABAAMAAAA8ACsAAAABAAMAAAA8ACwAAAABAAMAAAA8AC0AAAABAAMAAAA8AC4AAAABAAMAAAA8AC8AAAABAAMAAAA8ADAAAAABAAMAAAA8ADEAAAABAAMAAAA8ADIAAAABAAMAAAA8ADMAAAABAAMAAAA8ADQAAAABAAMAAAA8ADUAAAABAAMAAAA9AAAAAAABAAMAAAA9AAEAAAABAAMAAAA9AAIAAAABAAMAAAA9AAMAAAABAAMAAAA9AAQAAAABAAMAAAA9AAUAAAABAAMAAAA9AAYAAAABAAMAAAA9AAcAAAABAAMAAAA9AAgAAAABAAMAAAA9AAkAAAABAAMAAAA9AAoAAAABAAMAAAA9AAsAAAABAAMAAAA9AAwAAAABAAMAAAA9AA0AAAABAAMAAAA9AA4AAAABAAMAAAA9AA8AAAABAAMAAAA9ABAAAAABAAMAAAA9ABEAAAABAAMAAAA9ABIAAAABAAMAAAA9ABMAAAABAAMAAAA9ABQAAAABAAMAAAA9ABUAAAABAAMAAAA9ABYAAAABAAMAAAA9ABcAAAABAAMAAAA9ABgAAAABAAMAAAA9ABkAAAABAAMAAAA9ABoAAAABAAMAAAA9ABsAAAABAAMAAAA9ABwAAAABAAMAAAA9AB0AAAABAAMAAAA9AB4AAAABAAMAAAA9AB8AAAABAAMAAAA9ACAAAAABAAMAAAA9ACEAAAABAAMAAAA9ACIAAAABAAMAAAA9ACMAAAABAAMAAAA9ACQAAAABAAMAAAA9ACUAAAABAAMAAAA9ACYAAAABAAMAAAA9ACcAAAABAAMAAAA9ACgAAAABAAMAAAA9ACkAAAABAAMAAAA9ACoAAAABAAMAAAA9ACsAAAABAAMAAAA9ACwAAAABAAMAAAA9AC0AAAABAAMAAAA9AC4AAAABAAMAAAA9AC8AAAABAAMAAAA9ADAAAAABAAMAAAA9ADEAAAABAAMAAAA9ADIAAAABAAMAAAA9ADMAAAABAAMAAAA9ADQAAAABAAMAAAA9ADUAAAABAAMAAAA+AAAAAAABAAMAAAA+AAEAAAABAAMAAAA+AAIAAAABAAMAAAA+AAMAAAABAAMAAAA+AAQAAAABAAMAAAA+AAUAAAABAAMAAAA+AAYAAAABAAMAAAA+AAcAAAABAAMAAAA+AAgAAAABAAMAAAA+AAkAAAABAAMAAAA+AAoAAAABAAMAAAA+AAsAAAABAAMAAAA+AAwAAAABAAMAAAA+AA0AAAABAAMAAAA+AA4AAAABAAMAAAA+AA8AAAABAAMAAAA+ABAAAAABAAMAAAA+ABEAAAABAAMAAAA+ABIAAAABAAMAAAA+ABMAAAABAAMAAAA+ABQAAAABAAMAAAA+ABUAAAABAAMAAAA+ABYAAAABAAMAAAA+ABcAAAABAAMAAAA+ABgAAAABAAMAAAA+ABkAAAABAAMAAAA+ABoAAAABAAMAAAA+ABsAAAABAAMAAAA+ABwAAAABAAMAAAA+AB0AAAABAAMAAAA+AB4AAAABAAMAAAA+AB8AAAABAAMAAAA+ACAAAAABAAMAAAA+ACEAAAABAAMAAAA+ACIAAAABAAMAAAA+ACMAAAABAAMAAAA+ACQAAAABAAMAAAA+ACUAAAABAAMAAAA+ACYAAAABAAMAAAA+ACcAAAABAAMAAAA+ACgAAAABAAMAAAA+ACkAAAABAAMAAAA+ACoAAAABAAMAAAA+ACsAAAABAAMAAAA+ACwAAAABAAMAAAA+AC0AAAABAAMAAAA+AC4AAAABAAMAAAA+AC8AAAABAAMAAAA+ADAAAAABAAMAAAA+ADEAAAABAAMAAAA+ADIAAAABAAMAAAA+ADMAAAABAAMAAAA+ADQAAAABAAMAAAA+ADUAAAABAAMAAAA/AAAAAAABAAMAAAA/AAEAAAABAAMAAAA/AAIAAAABAAMAAAA/AAMAAAABAAMAAAA/AAQAAAABAAMAAAA/AAUAAAABAAMAAAA/AAYAAAABAAMAAAA/AAcAAAABAAMAAAA/AAgAAAABAAMAAAA/AAkAAAABAAMAAAA/AAoAAAABAAMAAAA/AAsAAAABAAMAAAA/AAwAAAABAAMAAAA/AA0AAAABAAMAAAA/AA4AAAABAAMAAAA/AA8AAAABAAMAAAA/ABAAAAABAAMAAAA/ABEAAAABAAMAAAA/ABIAAAABAAMAAAA/ABMAAAABAAMAAAA/ABQAAAABAAMAAAA/ABUAAAABAAMAAAA/ABYAAAABAAMAAAA/ABcAAAABAAMAAAA/ABgAAAABAAMAAAA/ABkAAAABAAMAAAA/ABoAAAABAAMAAAA/ABsAAAABAAMAAAA/ABwAAAABAAMAAAA/AB0AAAABAAMAAAA/AB4AAAABAAMAAAA/AB8AAAABAAMAAAA/ACAAAAABAAMAAAA/ACEAAAABAAMAAAA/ACIAAAABAAMAAAA/ACMAAAABAAMAAAA/ACQAAAABAAMAAAA/ACUAAAABAAMAAAA/ACYAAAABAAMAAAA/ACcAAAABAAMAAAA/ACgAAAABAAMAAAA/ACkAAAABAAMAAAA/ACoAAAABAAMAAAA/ACsAAAABAAMAAAA/ACwAAAABAAMAAAA/AC0AAAABAAMAAAA/AC4AAAABAAMAAAA/AC8AAAABAAMAAAA/ADAAAAABAAMAAAA/ADEAAAABAAMAAAA/ADIAAAABAAMAAAA/ADMAAAABAAMAAAA/ADQAAAABAAMAAAA/ADUAAAABAAMAAABAAAAAAAABAAMAAABAAAEAAAABAAMAAABAAAIAAAABAAMAAABAAAMAAAABAAMAAABAAAQAAAABAAMAAABAAAUAAAABAAMAAABAAAYAAAABAAMAAABAAAcAAAABAAMAAABAAAgAAAABAAMAAABAAAkAAAABAAMAAABAAAoAAAABAAMAAABAAAsAAAABAAMAAABAAAwAAAABAAMAAABAAA0AAAABAAMAAABAAA4AAAABAAMAAABAAA8AAAABAAMAAABAABAAAAABAAMAAABAABEAAAABAAMAAABAABIAAAABAAMAAABAABMAAAABAAMAAABAABQAAAABAAMAAABAABUAAAABAAMAAABAABYAAAABAAMAAABAABcAAAABAAMAAABAABgAAAABAAMAAABAABkAAAABAAMAAABAABoAAAABAAMAAABAABsAAAABAAMAAABAABwAAAABAAMAAABAAB0AAAABAAMAAABAAB4AAAABAAMAAABAAB8AAAABAAMAAABAACAAAAABAAMAAABAACEAAAABAAMAAABAACIAAAABAAMAAABAACMAAAABAAMAAABAACQAAAABAAMAAABAACUAAAABAAMAAABAACYAAAABAAMAAABAACcAAAABAAMAAABAACgAAAABAAMAAABAACkAAAABAAMAAABAACoAAAABAAMAAABAACsAAAABAAMAAABAACwAAAABAAMAAABAAC0AAAABAAMAAABAAC4AAAABAAMAAABAAC8AAAABAAMAAABAADAAAAABAAMAAABAADEAAAABAAMAAABAADIAAAABAAMAAABAADMAAAABAAMAAABAADQAAAABAAMAAABAADUAAAABAAMAAABBAAAAAAABAAMAAABBAAEAAAABAAMAAABBAAIAAAABAAMAAABBAAMAAAABAAMAAABBAAQAAAABAAMAAABBAAUAAAABAAMAAABBAAYAAAABAAMAAABBAAcAAAABAAMAAABBAAgAAAABAAMAAABBAAkAAAABAAMAAABBAAoAAAABAAMAAABBAAsAAAABAAMAAABBAAwAAAABAAMAAABBAA0AAAABAAMAAABBAA4AAAABAAMAAABBAA8AAAABAAMAAABBABAAAAABAAMAAABBABEAAAABAAMAAABBABIAAAABAAMAAABBABMAAAABAAMAAABBABQAAAABAAMAAABBABUAAAABAAMAAABBABYAAAABAAMAAABBABcAAAABAAMAAABBABgAAAABAAMAAABBABkAAAABAAMAAABBABoAAAABAAMAAABBABsAAAABAAMAAABBABwAAAABAAMAAABBAB0AAAABAAMAAABBAB4AAAABAAMAAABBAB8AAAABAAMAAABBACAAAAABAAMAAABBACEAAAABAAMAAABBACIAAAABAAMAAABBACMAAAABAAMAAABBACQAAAABAAMAAABBACUAAAABAAMAAABBACYAAAABAAMAAABBACcAAAABAAMAAABBACgAAAABAAMAAABBACkAAAABAAMAAABBACoAAAABAAMAAABBACsAAAABAAMAAABBACwAAAABAAMAAABBAC0AAAABAAMAAABBAC4AAAABAAMAAABBAC8AAAABAAMAAABBADAAAAABAAMAAABBADEAAAABAAMAAABBADIAAAABAAMAAABBADMAAAABAAMAAABBADQAAAABAAMAAABBADUAAAABAAMAAABCAAAAAAABAAMAAABCAAEAAAABAAMAAABCAAIAAAABAAMAAABCAAMAAAABAAMAAABCAAQAAAABAAMAAABCAAUAAAABAAMAAABCAAYAAAABAAMAAABCAAcAAAABAAMAAABCAAgAAAABAAMAAABCAAkAAAABAAMAAABCAAoAAAABAAMAAABCAAsAAAABAAMAAABCAAwAAAABAAMAAABCAA0AAAABAAMAAABCAA4AAAABAAMAAABCAA8AAAABAAMAAABCABAAAAABAAMAAABCABEAAAABAAMAAABCABIAAAABAAMAAABCABMAAAABAAMAAABCABQAAAABAAMAAABCABUAAAABAAMAAABCABYAAAABAAMAAABCABcAAAABAAMAAABCABgAAAABAAMAAABCABkAAAABAAMAAABCABoAAAABAAMAAABCABsAAAABAAMAAABCABwAAAABAAMAAABCAB0AAAABAAMAAABCAB4AAAABAAMAAABCAB8AAAABAAMAAABCACAAAAABAAMAAABCACEAAAABAAMAAABCACIAAAABAAMAAABCACMAAAABAAMAAABCACQAAAABAAMAAABCACUAAAABAAMAAABCACYAAAABAAMAAABCACcAAAABAAMAAABCACgAAAABAAMAAABCACkAAAABAAMAAABCACoAAAABAAMAAABCACsAAAABAAMAAABCACwAAAABAAMAAABCAC0AAAABAAMAAABCAC4AAAABAAMAAABCAC8AAAABAAMAAABCADAAAAABAAMAAABCADEAAAABAAMAAABCADIAAAABAAMAAABCADMAAAABAAMAAABCADQAAAABAAMAAABCADUAAAABAAMAAABDAAAAAAABAAMAAABDAAEAAAABAAMAAABDAAIAAAABAAMAAABDAAMAAAABAAMAAABDAAQAAAABAAMAAABDAAUAAAABAAMAAABDAAYAAAABAAMAAABDAAcAAAABAAMAAABDAAgAAAABAAMAAABDAAkAAAABAAMAAABDAAoAAAABAAMAAABDAAsAAAABAAMAAABDAAwAAAABAAMAAABDAA0AAAABAAMAAABDAA4AAAABAAMAAABDAA8AAAABAAMAAABDABAAAAABAAMAAABDABEAAAABAAMAAABDABIAAAABAAMAAABDABMAAAABAAMAAABDABQAAAABAAMAAABDABUAAAABAAMAAABDABYAAAABAAMAAABDABcAAAABAAMAAABDABgAAAABAAMAAABDABkAAAABAAMAAABDABoAAAABAAMAAABDABsAAAABAAMAAABDABwAAAABAAMAAABDAB0AAAABAAMAAABDAB4AAAABAAMAAABDAB8AAAABAAMAAABDACAAAAABAAMAAABDACEAAAABAAMAAABDACIAAAABAAMAAABDACMAAAABAAMAAABDACQAAAABAAMAAABDACUAAAABAAMAAABDACYAAAABAAMAAABDACcAAAABAAMAAABDACgAAAABAAMAAABDACkAAAABAAMAAABDACoAAAABAAMAAABDACsAAAABAAMAAABDACwAAAABAAMAAABDAC0AAAABAAMAAABDAC4AAAABAAMAAABDAC8AAAABAAMAAABDADAAAAABAAMAAABDADEAAAABAAMAAABDADIAAAABAAMAAABDADMAAAABAAMAAABDADQAAAABAAMAAABDADUAAAABAAMAAABEAAAAAAABAAMAAABEAAEAAAABAAMAAABEAAIAAAABAAMAAABEAAMAAAABAAMAAABEAAQAAAABAAMAAABEAAUAAAABAAMAAABEAAYAAAABAAMAAABEAAcAAAABAAMAAABEAAgAAAABAAMAAABEAAkAAAABAAMAAABEAAoAAAABAAMAAABEAAsAAAABAAMAAABEAAwAAAABAAMAAABEAA0AAAABAAMAAABEAA4AAAABAAMAAABEAA8AAAABAAMAAABEABAAAAABAAMAAABEABEAAAABAAMAAABEABIAAAABAAMAAABEABMAAAABAAMAAABEABQAAAABAAMAAABEABUAAAABAAMAAABEABYAAAABAAMAAABEABcAAAABAAMAAABEABgAAAABAAMAAABEABkAAAABAAMAAABEABoAAAABAAMAAABEABsAAAABAAMAAABEABwAAAABAAMAAABEAB0AAAABAAMAAABEAB4AAAABAAMAAABEAB8AAAABAAMAAABEACAAAAABAAMAAABEACEAAAABAAMAAABEACIAAAABAAMAAABEACMAAAABAAMAAABEACQAAAABAAMAAABEACUAAAABAAMAAABEACYAAAABAAMAAABEACcAAAABAAMAAABEACgAAAABAAMAAABEACkAAAABAAMAAABEACoAAAABAAMAAABEACsAAAABAAMAAABEACwAAAABAAMAAABEAC0AAAABAAMAAABEAC4AAAABAAMAAABEAC8AAAABAAMAAABEADAAAAABAAMAAABEADEAAAABAAMAAABEADIAAAABAAMAAABEADMAAAABAAMAAABEADQAAAABAAMAAABEADUAAAABAAMAAABFAAAAAAABAAMAAABFAAEAAAABAAMAAABFAAIAAAABAAMAAABFAAMAAAABAAMAAABFAAQAAAABAAMAAABFAAUAAAABAAMAAABFAAYAAAABAAMAAABFAAcAAAABAAMAAABFAAgAAAABAAMAAABFAAkAAAABAAMAAABFAAoAAAABAAMAAABFAAsAAAABAAMAAABFAAwAAAABAAMAAABFAA0AAAABAAMAAABFAA4AAAABAAMAAABFAA8AAAABAAMAAABFABAAAAABAAMAAABFABEAAAABAAMAAABFABIAAAABAAMAAABFABMAAAABAAMAAABFABQAAAABAAMAAABFABUAAAABAAMAAABFABYAAAABAAMAAABFABcAAAABAAMAAABFABgAAAABAAMAAABFABkAAAABAAMAAABFABoAAAABAAMAAABFABsAAAABAAMAAABFABwAAAABAAMAAABFAB0AAAABAAMAAABFAB4AAAABAAMAAABFAB8AAAABAAMAAABFACAAAAABAAMAAABFACEAAAABAAMAAABFACIAAAABAAMAAABFACMAAAABAAMAAABFACQAAAABAAMAAABFACUAAAABAAMAAABFACYAAAABAAMAAABFACcAAAABAAMAAABFACgAAAABAAMAAABFACkAAAABAAMAAABFACoAAAABAAMAAABFACsAAAABAAMAAABFACwAAAABAAMAAABFAC0AAAABAAMAAABFAC4AAAABAAMAAABFAC8AAAABAAMAAABFADAAAAABAAMAAABFADEAAAABAAMAAABFADIAAAABAAMAAABFADMAAAABAAMAAABFADQAAAABAAMAAABFADUAAAABAAMAAABGAAAAAAABAAMAAABGAAEAAAABAAMAAABGAAIAAAABAAMAAABGAAMAAAABAAMAAABGAAQAAAABAAMAAABGAAUAAAABAAMAAABGAAYAAAABAAMAAABGAAcAAAABAAMAAABGAAgAAAABAAMAAABGAAkAAAABAAMAAABGAAoAAAABAAMAAABGAAsAAAABAAMAAABGAAwAAAABAAMAAABGAA0AAAABAAMAAABGAA4AAAABAAMAAABGAA8AAAABAAMAAABGABAAAAABAAMAAABGABEAAAABAAMAAABGABIAAAABAAMAAABGABMAAAABAAMAAABGABQAAAABAAMAAABGABUAAAABAAMAAABGABYAAAABAAMAAABGABcAAAABAAMAAABGABgAAAABAAMAAABGABkAAAABAAMAAABGABoAAAABAAMAAABGABsAAAABAAMAAABGABwAAAABAAMAAABGAB0AAAABAAMAAABGAB4AAAABAAMAAABGAB8AAAABAAMAAABGACAAAAABAAMAAABGACEAAAABAAMAAABGACIAAAABAAMAAABGACMAAAABAAMAAABGACQAAAABAAMAAABGACUAAAABAAMAAABGACYAAAABAAMAAABGACcAAAABAAMAAABGACgAAAABAAMAAABGACkAAAABAAMAAABGACoAAAABAAMAAABGACsAAAABAAMAAABGACwAAAABAAMAAABGAC0AAAABAAMAAABGAC4AAAABAAMAAABGAC8AAAABAAMAAABGADAAAAABAAMAAABGADEAAAABAAMAAABGADIAAAABAAMAAABGADMAAAABAAMAAABGADQAAAABAAMAAABGADUAAAABAAMAAAA=") tile_set = SubResource("TileSet_lwiie") [node name="BuildGrid" type="Node2D" parent="."] -position = Vector2(8, 8) script = ExtResource("5_28i18") [node name="Spawn" parent="." node_paths=PackedStringArray("next_node") instance=ExtResource("3_f2sda")] -position = Vector2(592, 656) +position = Vector2(608, 656) next_node = NodePath("../PathNode") [node name="PathNode" parent="." node_paths=PackedStringArray("next_node") instance=ExtResource("6_lh0f6")] -position = Vector2(192, 656) +position = Vector2(208, 656) next_node = NodePath("../PathNode2") [node name="PathNode2" parent="." node_paths=PackedStringArray("next_node") instance=ExtResource("6_lh0f6")] -position = Vector2(192, 256) +position = Vector2(208, 272) next_node = NodePath("../PathNode3") [node name="PathNode3" parent="." node_paths=PackedStringArray("next_node") instance=ExtResource("6_lh0f6")] -position = Vector2(576, 256) +position = Vector2(592, 272) next_node = NodePath("../PathNode4") [node name="PathNode4" parent="." node_paths=PackedStringArray("next_node") instance=ExtResource("6_lh0f6")] -position = Vector2(800, 416) +position = Vector2(816, 432) next_node = NodePath("../PathNode5") [node name="PathNode5" parent="." node_paths=PackedStringArray("next_node") instance=ExtResource("6_lh0f6")] -position = Vector2(912, 160) +position = Vector2(928, 176) next_node = NodePath("../Goal") [node name="Goal" parent="." instance=ExtResource("5_dp16q")] -position = Vector2(592, 64) +position = Vector2(608, 48) [node name="Camera" parent="." instance=ExtResource("6_yijl8")] +zoom = Vector2(1.5, 1.5) drag_horizontal_enabled = true drag_vertical_enabled = true @@ -2019,96 +2215,73 @@ drag_vertical_enabled = true position = Vector2(176, 256) [node name="Tower2" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(208, 656) - -[node name="Tower3" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(560, 656) - -[node name="Tower4" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(560, 640) +position = Vector2(224, 640) [node name="Tower5" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(560, 672) - -[node name="Tower6" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(576, 688) +position = Vector2(592, 672) [node name="Tower7" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(576, 624) +position = Vector2(576, 640) [node name="Tower8" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(192, 672) - -[node name="Tower9" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(592, 688) - -[node name="Tower13" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(608, 688) - -[node name="Tower10" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(608, 624) +position = Vector2(208, 672) [node name="Tower11" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(592, 624) +position = Vector2(608, 624) [node name="Tower12" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(192, 240) - -[node name="Tower14" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(624, 656) +position = Vector2(208, 240) [node name="Tower15" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(624, 640) +position = Vector2(624, 656) [node name="Tower19" parent="Towers" instance=ExtResource("7_5o3d3")] position = Vector2(176, 656) [node name="Tower23" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(192, 640) - -[node name="Tower28" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(624, 672) +position = Vector2(192, 624) [node name="Tower29" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(576, 272) +position = Vector2(576, 288) [node name="Tower30" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(592, 256) +position = Vector2(608, 272) [node name="Tower31" parent="Towers" instance=ExtResource("7_5o3d3")] position = Vector2(560, 256) [node name="Tower32" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(576, 240) +position = Vector2(592, 240) [node name="Tower33" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(816, 416) +position = Vector2(832, 432) [node name="Tower34" parent="Towers" instance=ExtResource("7_5o3d3")] position = Vector2(784, 416) [node name="Tower35" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(800, 400) +position = Vector2(816, 400) [node name="Tower41" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(912, 176) +position = Vector2(928, 192) [node name="Tower37" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(928, 160) +position = Vector2(944, 160) [node name="Tower38" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(896, 160) +position = Vector2(896, 176) [node name="Tower40" parent="Towers" instance=ExtResource("7_5o3d3")] position = Vector2(912, 144) [node name="Tower36" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(800, 432) +position = Vector2(800, 448) [node name="Tower39" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(192, 272) +position = Vector2(192, 288) [node name="Tower43" parent="Towers" instance=ExtResource("7_5o3d3")] -position = Vector2(208, 256) +position = Vector2(224, 272) -[connection signal="gui_input" from="CanvasLayer/GridContainer/TextureRect" to="." method="_on_texture_rect_gui_input"] +[connection signal="gui_input" from="CanvasLayer/Panel/VBoxContainer/Container/GridContainer/MarginContainer/HBoxContainer/BuildModeButton" to="." method="_on_build_mode_button_gui_input"] +[connection signal="gui_input" from="CanvasLayer/Panel/VBoxContainer/Container/GridContainer/MarginContainer2/HBoxContainer2/SpawnerBoxButton" to="." method="_on_spawner_box_button_gui_input"] -- cgit v1.2.3