diff --git a/.gitattributes b/.gitattributes index 95c7256..c990771 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9,3 +9,17 @@ *.so filter=lfs diff=lfs merge=lfs -text *.dylib filter=lfs diff=lfs merge=lfs -text *.wasm filter=lfs diff=lfs merge=lfs -text +*.dmg filter=lfs diff=lfs merge=lfs -text +*.apk filter=lfs diff=lfs merge=lfs -text +*.ipa filter=lfs diff=lfs merge=lfs -text +*.exe filter=lfs diff=lfs merge=lfs -text +*.dll filter=lfs diff=lfs merge=lfs -text +*.so filter=lfs diff=lfs merge=lfs -text +*.dylib filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.ai filter=lfs diff=lfs merge=lfs -text +*.sketch filter=lfs diff=lfs merge=lfs -text +*.blend filter=lfs diff=lfs merge=lfs -text +*.fbx filter=lfs diff=lfs merge=lfs -text +*.obj filter=lfs diff=lfs merge=lfs -text +*.xcf filter=lfs diff=lfs merge=lfs -text diff --git a/addons/resources_spreadsheet_view/saved_state.json b/addons/resources_spreadsheet_view/saved_state.json index c9ee95d..84b8b03 100644 --- a/addons/resources_spreadsheet_view/saved_state.json +++ b/addons/resources_spreadsheet_view/saved_state.json @@ -10,10 +10,22 @@ "resource_name": { "visibility": 0.0 } + }, + "res://objects/buildings/": { + "metadata/_custom_type_script": { + "visibility": 0.0 + }, + "resource_local_to_scene": { + "visibility": 0.0 + }, + "resource_name": { + "visibility": 0.0 + } } }, "recent_paths": [ - "res://items/" + "res://items/", + "res://objects/buildings/" ], "table_functions": { "filter": [ diff --git a/assets/blends/Conveyor.blend b/assets/blends/Conveyor.blend index bcf0d9b..1e032da 100644 Binary files a/assets/blends/Conveyor.blend and b/assets/blends/Conveyor.blend differ diff --git a/assets/blends/Miner.blend b/assets/blends/Miner.blend index 932582f..bd438df 100644 Binary files a/assets/blends/Miner.blend and b/assets/blends/Miner.blend differ diff --git a/assets/blends/Resources.blend b/assets/blends/Resources.blend index 1d16647..7cf333a 100644 Binary files a/assets/blends/Resources.blend and b/assets/blends/Resources.blend differ diff --git a/assets/blends/Tiles.blend b/assets/blends/Tiles.blend index a2d27e1..d2c7a4e 100644 Binary files a/assets/blends/Tiles.blend and b/assets/blends/Tiles.blend differ diff --git a/assets/models/Block Nav.obj b/assets/models/Block Nav.obj index d4ae7eb..c3386bd 100644 --- a/assets/models/Block Nav.obj +++ b/assets/models/Block Nav.obj @@ -1,14 +1,3 @@ -# Blender 4.4.1 -# www.blender.org -o Block_Nav -v -1.000000 0.500000 1.000000 -v -1.000000 0.500000 -1.000000 -v 1.000000 0.500000 1.000000 -v 1.000000 0.500000 -1.000000 -vn -0.0000 1.0000 -0.0000 -vt 0.625000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.625000 0.750000 -s 0 -f 4/1/1 2/2/1 1/3/1 3/4/1 +version https://git-lfs.github.com/spec/v1 +oid sha256:2c7b0e06b4e6d1a27a80b8d9c1858b53e77d9d30bdb9f5b785c72b28a99b9336 +size 306 diff --git a/assets/models/Block.obj b/assets/models/Block.obj index 48f9c73..552901a 100644 --- a/assets/models/Block.obj +++ b/assets/models/Block.obj @@ -1,38 +1,3 @@ -# Blender 4.4.1 -# www.blender.org -o Block -v -1.000000 -0.500000 1.000000 -v -1.000000 0.500000 1.000000 -v -1.000000 -0.500000 -1.000000 -v -1.000000 0.500000 -1.000000 -v 1.000000 -0.500000 1.000000 -v 1.000000 0.500000 1.000000 -v 1.000000 -0.500000 -1.000000 -v 1.000000 0.500000 -1.000000 -vn -1.0000 -0.0000 -0.0000 -vn -0.0000 -0.0000 -1.0000 -vn 1.0000 -0.0000 -0.0000 -vn -0.0000 -0.0000 1.0000 -vn -0.0000 -1.0000 -0.0000 -vn -0.0000 1.0000 -0.0000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -s 0 -f 1/1/1 2/2/1 4/3/1 3/4/1 -f 3/4/2 4/3/2 8/5/2 7/6/2 -f 7/6/3 8/5/3 6/7/3 5/8/3 -f 5/8/4 6/7/4 2/9/4 1/10/4 -f 3/11/5 7/6/5 5/8/5 1/12/5 -f 8/5/6 4/13/6 2/14/6 6/7/6 +version https://git-lfs.github.com/spec/v1 +oid sha256:8b044a89d45d686eaefe7667c7a7fb243d03aaa905e67a299219643cbbdb11ee +size 904 diff --git a/assets/models/Bullets.obj b/assets/models/Bullets.obj index f1fb1a6..25d3cea 100644 --- a/assets/models/Bullets.obj +++ b/assets/models/Bullets.obj @@ -1,148 +1,3 @@ -# Blender 4.4.1 -# www.blender.org -mtllib Bullets.mtl -o Bullets -v -0.189740 0.000000 -0.054773 -v -0.189740 0.350000 -0.054773 -v -0.142305 0.000000 -0.027387 -v -0.142305 0.350000 -0.027387 -v -0.142305 0.000000 0.027387 -v -0.142305 0.350000 0.027387 -v -0.189740 0.000000 0.054773 -v -0.189740 0.350000 0.054773 -v -0.237175 0.000000 0.027387 -v -0.237175 0.350000 0.027387 -v -0.237175 0.000000 -0.027387 -v -0.237175 0.350000 -0.027387 -v -0.189740 0.500000 0.000000 -v -0.094870 0.000000 -0.054773 -v -0.094870 0.350000 -0.054773 -v -0.047435 0.000000 -0.027387 -v -0.047435 0.350000 -0.027387 -v -0.047435 0.000000 0.027387 -v -0.047435 0.350000 0.027387 -v -0.094870 0.000000 0.054773 -v -0.094870 0.350000 0.054773 -v -0.094870 0.500000 0.000000 -v -0.000000 0.000000 -0.054773 -v -0.000000 0.350000 -0.054773 -v 0.047435 0.000000 -0.027387 -v 0.047435 0.350000 -0.027387 -v 0.047435 0.000000 0.027387 -v 0.047435 0.350000 0.027387 -v -0.000000 0.000000 0.054773 -v -0.000000 0.350000 0.054773 -v -0.000000 0.500000 0.000000 -v 0.094870 0.000000 -0.054773 -v 0.094870 0.350000 -0.054773 -v 0.142305 0.000000 -0.027387 -v 0.142305 0.350000 -0.027387 -v 0.142305 0.000000 0.027387 -v 0.142305 0.350000 0.027387 -v 0.094870 0.000000 0.054773 -v 0.094870 0.350000 0.054773 -v 0.094870 0.500000 0.000000 -v 0.189740 0.000000 -0.054773 -v 0.189740 0.350000 -0.054773 -v 0.237175 0.000000 -0.027387 -v 0.237175 0.350000 -0.027387 -v 0.237175 0.000000 0.027387 -v 0.237175 0.350000 0.027387 -v 0.189740 0.000000 0.054773 -v 0.189740 0.350000 0.054773 -v 0.189740 0.500000 0.000000 -vn 0.5000 -0.0000 -0.8660 -vn 1.0000 -0.0000 -0.0000 -vn 0.5000 -0.0000 0.8660 -vn -0.5000 -0.0000 0.8660 -vn 0.9535 0.3015 -0.0000 -vn -1.0000 -0.0000 -0.0000 -vn -0.5000 -0.0000 -0.8660 -vn -0.0000 -1.0000 -0.0000 -vn -0.9535 0.3015 -0.0000 -vn 0.4767 0.3015 -0.8257 -vn 0.4767 0.3015 0.8257 -vn -0.4767 0.3015 -0.8257 -vn -0.4767 0.3015 0.8257 -vt 1.000000 0.500000 -vt 1.000000 1.000000 -vt 0.833333 1.000000 -vt 0.833333 0.500000 -vt 0.666667 1.000000 -vt 0.666667 0.500000 -vt 0.500000 1.000000 -vt 0.500000 0.500000 -vt 0.333333 1.000000 -vt 0.333333 0.500000 -vt 0.166667 1.000000 -vt 0.166667 0.500000 -vt -0.000000 1.000000 -vt -0.000000 0.500000 -vt 0.750000 0.490000 -vt 0.957846 0.370000 -vt 0.957846 0.130000 -vt 0.750000 0.010000 -vt 0.542154 0.130000 -vt 0.542154 0.370000 -s 0 -f 1/1/1 2/2/1 4/3/1 3/4/1 -f 3/4/2 4/3/2 6/5/2 5/6/2 -f 5/6/3 6/5/3 8/7/3 7/8/3 -f 7/8/4 8/7/4 10/9/4 9/10/4 -f 6/5/5 4/3/5 13/5/5 -f 9/10/6 10/9/6 12/11/6 11/12/6 -f 11/12/7 12/11/7 2/13/7 1/14/7 -f 1/15/8 3/16/8 5/17/8 7/18/8 9/19/8 11/20/8 -f 12/11/9 10/9/9 13/11/9 -f 4/3/10 2/2/10 13/3/10 -f 8/7/11 6/5/11 13/7/11 -f 2/13/12 12/11/12 13/13/12 -f 10/9/13 8/7/13 13/9/13 -f 14/1/1 15/2/1 17/3/1 16/4/1 -f 16/4/2 17/3/2 19/5/2 18/6/2 -f 18/6/3 19/5/3 21/7/3 20/8/3 -f 20/8/4 21/7/4 6/9/4 5/10/4 -f 19/5/5 17/3/5 22/5/5 -f 3/12/7 4/11/7 15/13/7 14/14/7 -f 14/15/8 16/16/8 18/17/8 20/18/8 5/19/8 3/20/8 -f 4/11/9 6/9/9 22/11/9 -f 17/3/10 15/2/10 22/3/10 -f 21/7/11 19/5/11 22/7/11 -f 15/13/12 4/11/12 22/13/12 -f 6/9/13 21/7/13 22/9/13 -f 23/1/1 24/2/1 26/3/1 25/4/1 -f 25/4/2 26/3/2 28/5/2 27/6/2 -f 27/6/3 28/5/3 30/7/3 29/8/3 -f 29/8/4 30/7/4 19/9/4 18/10/4 -f 28/5/5 26/3/5 31/5/5 -f 16/12/7 17/11/7 24/13/7 23/14/7 -f 23/15/8 25/16/8 27/17/8 29/18/8 18/19/8 16/20/8 -f 17/11/9 19/9/9 31/11/9 -f 26/3/10 24/2/10 31/3/10 -f 30/7/11 28/5/11 31/7/11 -f 24/13/12 17/11/12 31/13/12 -f 19/9/13 30/7/13 31/9/13 -f 32/1/1 33/2/1 35/3/1 34/4/1 -f 34/4/6 36/6/6 37/5/6 35/3/6 -f 36/6/3 37/5/3 39/7/3 38/8/3 -f 38/8/4 39/7/4 28/9/4 27/10/4 -f 37/5/5 35/3/5 40/5/5 -f 25/12/7 26/11/7 33/13/7 32/14/7 -f 32/15/8 34/16/8 36/17/8 38/18/8 27/19/8 25/20/8 -f 26/11/9 28/9/9 40/11/9 -f 35/3/10 33/2/10 40/3/10 -f 39/7/11 37/5/11 40/7/11 -f 33/13/12 26/11/12 40/13/12 -f 28/9/13 39/7/13 40/9/13 -f 41/1/1 42/2/1 44/3/1 43/4/1 -f 43/4/2 44/3/2 46/5/2 45/6/2 -f 45/6/3 46/5/3 48/7/3 47/8/3 -f 47/8/4 48/7/4 37/9/4 36/10/4 -f 46/5/5 44/3/5 49/5/5 -f 34/12/7 35/11/7 42/13/7 41/14/7 -f 41/15/8 43/16/8 45/17/8 47/18/8 36/19/8 34/20/8 -f 35/11/9 37/9/9 49/11/9 -f 44/3/10 42/2/10 49/3/10 -f 48/7/11 46/5/11 49/7/11 -f 42/13/12 35/11/12 49/13/12 -f 37/9/13 48/7/13 49/9/13 +version https://git-lfs.github.com/spec/v1 +oid sha256:0c43bd372787791abb3c13bc6a476f1b95d63bd4b68d8bbfa5768fa97cc17431 +size 4086 diff --git a/assets/models/Conveyor.obj b/assets/models/Conveyor.obj index 2135557..dd63f88 100644 --- a/assets/models/Conveyor.obj +++ b/assets/models/Conveyor.obj @@ -1,172 +1,3 @@ -# Blender 4.4.1 -# www.blender.org -mtllib Conveyor.mtl -o Cube -v -0.500000 0.000000 0.500000 -v -0.500000 0.000000 -0.500000 -v 0.000000 0.000000 0.500000 -v 0.000000 0.375000 0.500000 -v 0.000000 0.000000 -0.500000 -v 0.000000 0.375000 -0.500000 -v 0.000000 0.500000 0.500000 -v 0.000000 0.500000 -0.500000 -v -0.375000 0.375000 -0.500000 -v -0.375000 0.375000 0.500000 -v -0.375000 0.500000 -0.500000 -v -0.375000 0.500000 0.500000 -v -0.475000 0.375000 0.500000 -v -0.500000 0.350000 0.500000 -v -0.500000 0.350000 -0.500000 -v -0.475000 0.375000 -0.500000 -v -0.375000 0.414062 -0.485938 -v -0.375000 0.389062 -0.460938 -v -0.375000 0.375035 -0.499965 -v -0.375000 0.389062 0.460938 -v -0.375000 0.414062 0.485938 -v -0.375000 0.375035 0.499965 -v -0.375000 0.485938 -0.460938 -v -0.375000 0.460938 -0.485938 -v -0.375000 0.499965 -0.499965 -v -0.375000 0.460938 0.485938 -v -0.375000 0.485938 0.460938 -v -0.375000 0.499965 0.499965 -v -0.325000 0.389062 -0.460938 -v -0.325000 0.414062 -0.485938 -v -0.325000 0.414062 0.485938 -v -0.325000 0.389062 0.460938 -v -0.325000 0.460938 -0.485938 -v -0.325000 0.485938 -0.460938 -v -0.325000 0.485938 0.460938 -v -0.325000 0.460938 0.485938 -v 0.500000 0.000000 0.500000 -v 0.500000 0.000000 -0.500000 -v 0.375000 0.375000 -0.500000 -v 0.375000 0.375000 0.500000 -v 0.375000 0.500000 -0.500000 -v 0.375000 0.500000 0.500000 -v 0.475000 0.375000 0.500000 -v 0.500000 0.350000 0.500000 -v 0.500000 0.350000 -0.500000 -v 0.475000 0.375000 -0.500000 -v 0.375000 0.414062 -0.485938 -v 0.375000 0.389062 -0.460938 -v 0.375000 0.375035 -0.499965 -v 0.375000 0.389062 0.460938 -v 0.375000 0.414062 0.485938 -v 0.375000 0.375035 0.499965 -v 0.375000 0.485938 -0.460938 -v 0.375000 0.460938 -0.485938 -v 0.375000 0.499965 -0.499965 -v 0.375000 0.460938 0.485938 -v 0.375000 0.485938 0.460938 -v 0.375000 0.499965 0.499965 -v 0.325000 0.389062 -0.460938 -v 0.325000 0.414062 -0.485938 -v 0.325000 0.414062 0.485938 -v 0.325000 0.389062 0.460938 -v 0.325000 0.460938 -0.485938 -v 0.325000 0.485938 -0.460938 -v 0.325000 0.485938 0.460938 -v 0.325000 0.460938 0.485938 -vn -0.0000 1.0000 -0.0000 -vn 1.0000 -0.0000 -0.0000 -vn -1.0000 -0.0000 -0.0000 -vn -0.0000 -1.0000 -0.0000 -vn -0.0000 -0.0000 -1.0000 -vn -0.0000 -0.0000 1.0000 -vn -0.7071 0.7071 -0.0000 -vn -0.0000 0.7071 -0.7071 -vn -0.0000 -0.7071 -0.7071 -vn -0.0000 -0.7071 0.7071 -vn -0.0000 0.7071 0.7071 -vn 0.7071 0.7071 -0.0000 -vt 0.750000 0.500000 -vt 0.850000 0.500000 -vt 0.850000 0.750000 -vt 0.750000 0.750000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 0.000000 -vt 0.608333 0.000000 -vt 0.608333 0.250000 -vt 0.375000 0.250000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.625000 0.275000 -vt 0.625000 0.375000 -vt 0.750000 0.509766 -vt 0.750000 0.740234 -vt 0.000000 0.000000 -vt 0.750000 0.503516 -vt 0.750000 0.746484 -vt 0.750000 0.740234 -vt 0.750000 0.749991 -vt 0.750000 0.749991 -vt 0.750000 0.746484 -vt 0.750000 0.500009 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.625000 0.875000 -vt 0.625000 0.975000 -vt 0.608333 1.000000 -vt 0.375000 1.000000 -s 0 -usemtl Conveyor_Frame -f 9/1/1 16/2/1 13/3/1 10/4/1 -f 5/5/2 6/6/2 4/7/2 3/8/2 -f 1/9/3 14/10/3 15/11/3 2/12/3 -f 2/13/4 5/5/4 3/8/4 1/14/4 -f 2/12/5 15/11/5 16/15/5 9/16/5 6/6/5 5/5/5 -f 6/6/1 9/1/1 10/4/1 4/7/1 -f 31/21/3 36/21/3 35/18/3 34/17/3 33/20/3 30/20/3 29/17/3 32/22/3 -f 13/3/7 16/2/7 15/27/7 14/28/7 -f 3/8/6 4/7/6 10/29/6 13/30/6 14/31/6 1/32/6 -f 39/1/1 40/4/1 43/3/1 46/2/1 -f 37/9/2 38/12/2 45/11/2 44/10/2 -f 38/13/4 37/14/4 3/8/4 5/5/4 -f 38/12/5 5/5/5 6/6/5 39/16/5 46/15/5 45/11/5 -f 6/6/1 4/7/1 40/4/1 39/1/1 -f 61/21/2 62/22/2 59/17/2 60/20/2 63/20/2 64/17/2 65/18/2 66/21/2 -f 43/3/12 44/28/12 45/27/12 46/2/12 -f 3/8/6 37/32/6 44/31/6 43/30/6 40/29/6 4/7/6 -usemtl Converyor_Belt -f 23/17/4 34/17/4 35/18/4 27/18/4 -f 7/19/6 12/19/6 10/19/6 4/19/6 -f 11/19/5 8/19/5 6/19/5 9/19/5 -f 11/19/1 12/19/1 7/19/1 8/19/1 -f 17/20/6 30/20/6 33/20/6 24/20/6 -f 22/23/3 10/4/3 12/4/3 28/24/3 26/25/3 21/25/3 -f 26/21/5 36/25/5 31/25/5 21/21/5 -f 28/23/3 12/4/3 11/1/3 25/26/3 23/17/3 27/18/3 -f 25/26/3 11/1/3 9/1/3 19/26/3 17/20/3 24/20/3 -f 19/26/3 9/1/3 10/4/3 22/24/3 20/22/3 18/17/3 -f 17/20/3 19/26/3 18/20/3 -f 20/22/3 22/23/3 21/25/3 -f 23/17/3 25/26/3 24/20/3 -f 26/21/3 28/23/3 27/21/3 -f 20/22/8 21/21/8 31/25/8 32/22/8 -f 35/18/9 36/25/9 26/21/9 27/18/9 -f 33/20/10 34/17/10 23/17/10 24/20/10 -f 29/17/11 30/20/11 17/20/11 18/17/11 -f 20/22/1 32/22/1 29/17/1 18/17/1 -f 53/17/4 57/18/4 65/18/4 64/17/4 -f 7/19/6 4/19/6 40/19/6 42/19/6 -f 41/19/5 39/19/5 6/19/5 8/19/5 -f 41/19/1 8/19/1 7/19/1 42/19/1 -f 47/20/6 54/20/6 63/20/6 60/20/6 -f 52/23/2 51/25/2 56/25/2 58/24/2 42/4/2 40/4/2 -f 56/21/5 51/21/5 61/25/5 66/25/5 -f 58/23/2 57/18/2 53/17/2 55/26/2 41/1/2 42/4/2 -f 55/26/2 54/20/2 47/20/2 49/26/2 39/1/2 41/1/2 -f 49/26/2 48/17/2 50/22/2 52/24/2 40/4/2 39/1/2 -f 47/20/2 48/20/2 49/26/2 -f 50/22/2 51/25/2 52/23/2 -f 53/17/2 54/20/2 55/26/2 -f 56/21/2 57/21/2 58/23/2 -f 50/22/8 62/22/8 61/25/8 51/21/8 -f 65/18/9 57/18/9 56/21/9 66/25/9 -f 63/20/10 54/20/10 53/17/10 64/17/10 -f 59/17/11 48/17/11 47/20/11 60/20/11 -f 50/22/1 48/17/1 59/17/1 62/22/1 +version https://git-lfs.github.com/spec/v1 +oid sha256:b1363762bff40c7227079be060c49e44c82f3fae0914a3448977a61edab21db7 +size 5056 diff --git a/assets/models/Ingot.obj b/assets/models/Ingot.obj index 4bb93ec..c49fa97 100644 --- a/assets/models/Ingot.obj +++ b/assets/models/Ingot.obj @@ -1,38 +1,3 @@ -# Blender 4.4.1 -# www.blender.org -o Ingot -v -0.330249 -0.155252 0.718030 -v -0.242297 0.155252 0.526804 -v -0.330249 -0.155252 -0.718030 -v -0.242297 0.155252 -0.526804 -v 0.330249 -0.155252 0.718030 -v 0.242297 0.155252 0.526804 -v 0.330249 -0.155252 -0.718030 -v 0.242297 0.155252 -0.526804 -vn -0.9621 0.2725 -0.0000 -vn -0.0000 0.5244 -0.8515 -vn 0.9621 0.2725 -0.0000 -vn -0.0000 0.5244 0.8515 -vn -0.0000 -1.0000 -0.0000 -vn -0.0000 1.0000 -0.0000 -vt 0.375000 0.000000 -vt 0.625000 0.000000 -vt 0.625000 0.250000 -vt 0.375000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.625000 1.000000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -s 0 -f 1/1/1 2/2/1 4/3/1 3/4/1 -f 3/4/2 4/3/2 8/5/2 7/6/2 -f 7/6/3 8/5/3 6/7/3 5/8/3 -f 5/8/4 6/7/4 2/9/4 1/10/4 -f 3/11/5 7/6/5 5/8/5 1/12/5 -f 8/5/6 4/13/6 2/14/6 6/7/6 +version https://git-lfs.github.com/spec/v1 +oid sha256:8469517427492261f19f8db0cc67dedcb285d02ae14b907ecb0ad69afe93e261 +size 900 diff --git a/assets/models/Miner.obj b/assets/models/Miner.obj index 5848d41..d74c685 100644 --- a/assets/models/Miner.obj +++ b/assets/models/Miner.obj @@ -1,332 +1,3 @@ -# Blender 4.4.1 -# www.blender.org -mtllib Miner.mtl -o Miner -v -1.000000 0.000000 -1.000000 -v 1.000000 0.000000 -1.000000 -v -1.000000 2.000000 -1.000000 -v 1.000000 2.000000 -1.000000 -v 1.000000 2.000000 -0.125000 -v -1.000000 2.000000 -0.125000 -v 1.000000 1.500000 -0.125000 -v -1.000000 1.500000 -0.125000 -v 1.000000 0.000000 -0.750000 -v 0.750000 1.500000 -0.125000 -v 1.000000 1.500000 -0.750000 -v -1.000000 1.500000 -0.750000 -v 0.750000 1.500000 -1.000000 -v 0.750000 0.000000 -1.000000 -v 0.750000 0.000000 -0.750000 -v 0.750000 2.000000 -0.750000 -v -1.000000 0.000000 -0.750000 -v -0.750000 0.000000 -1.000000 -v -0.750000 0.000000 -0.750000 -v -0.750000 2.000000 -0.750000 -v -0.750000 1.500000 -1.000000 -v -0.750000 2.000000 -0.125000 -v -0.750000 1.500000 -0.750000 -v 0.750000 1.500000 -0.750000 -v -0.750000 1.500000 -0.125000 -v 0.750000 2.000000 -0.125000 -v 0.000000 2.000000 -0.125000 -v 0.000000 0.965207 0.000000 -v 0.090908 1.669364 0.000000 -v 0.064282 1.669364 0.064282 -v -0.000000 1.669364 0.090908 -v -0.064282 1.669364 0.064282 -v -0.090908 1.669364 0.000000 -v -0.064282 1.669364 -0.064282 -v 0.000000 1.669364 -0.090908 -v 0.064282 1.669364 -0.064282 -v 0.090908 1.162943 0.000000 -v 0.064282 1.162943 0.064282 -v -0.000000 1.162943 0.090908 -v -0.064282 1.162943 0.064282 -v -0.090908 1.162943 0.000000 -v -0.064282 1.162943 -0.064282 -v 0.000000 1.162943 -0.090908 -v 0.064282 1.162943 -0.064282 -v -1.000000 2.000000 0.000000 -v 0.000000 1.750000 -0.125000 -v -1.000000 1.500000 0.000000 -v -0.750000 2.000000 0.000000 -v -0.750000 1.500000 0.000000 -v 1.000000 2.000000 0.000000 -v 1.000000 1.500000 0.000000 -v 0.750000 1.500000 0.000000 -v 0.750000 2.000000 0.000000 -v 0.750000 1.750000 -0.125000 -v -0.750000 1.750000 -0.125000 -v 0.000000 2.000000 0.000000 -v 0.750000 1.750000 0.000000 -v -0.750000 1.750000 0.000000 -v 0.000000 1.677939 -0.122530 -v -0.086642 1.677939 -0.086642 -v -0.122530 1.677939 0.000000 -v -0.086642 1.677939 0.086642 -v -0.000000 1.677939 0.122530 -v 0.086642 1.677939 0.086642 -v 0.122530 1.677939 0.000000 -v 0.086642 1.677939 -0.086642 -v 0.000000 1.750000 -0.122530 -v -0.086642 1.750000 -0.086642 -v -0.122530 1.750000 0.000000 -v -0.086642 1.750000 0.086642 -v 0.000000 1.750000 0.122530 -v 0.086642 1.750000 0.086642 -v 0.122530 1.750000 0.000000 -v 0.086642 1.750000 -0.086642 -v -1.000000 0.000000 1.000000 -v 1.000000 0.000000 1.000000 -v -1.000000 2.000000 1.000000 -v 1.000000 2.000000 1.000000 -v 1.000000 2.000000 0.125000 -v -1.000000 2.000000 0.125000 -v 1.000000 1.500000 0.125000 -v -1.000000 1.500000 0.125000 -v 1.000000 0.000000 0.750000 -v 0.750000 1.500000 0.125000 -v 1.000000 1.500000 0.750000 -v -1.000000 1.500000 0.750000 -v 0.750000 1.500000 1.000000 -v 0.750000 0.000000 1.000000 -v 0.750000 0.000000 0.750000 -v 0.750000 2.000000 0.750000 -v -1.000000 0.000000 0.750000 -v -0.750000 0.000000 1.000000 -v -0.750000 0.000000 0.750000 -v -0.750000 2.000000 0.750000 -v -0.750000 1.500000 1.000000 -v -0.750000 2.000000 0.125000 -v -0.750000 1.500000 0.750000 -v 0.750000 1.500000 0.750000 -v -0.750000 1.500000 0.125000 -v 0.750000 2.000000 0.125000 -v 0.000000 2.000000 0.125000 -v 0.064282 1.669364 -0.064282 -v -0.000000 1.669364 -0.090908 -v -0.064282 1.669364 -0.064282 -v -0.064282 1.669364 0.064282 -v 0.000000 1.669364 0.090908 -v 0.064282 1.669364 0.064282 -v 0.064282 1.162943 -0.064282 -v -0.000000 1.162943 -0.090908 -v -0.064282 1.162943 -0.064282 -v -0.064282 1.162943 0.064282 -v 0.000000 1.162943 0.090908 -v 0.064282 1.162943 0.064282 -v 0.000000 1.750000 0.125000 -v 0.750000 1.750000 0.125000 -v -0.750000 1.750000 0.125000 -v 0.000000 1.677939 0.122530 -v -0.086642 1.677939 0.086642 -v -0.086642 1.677939 -0.086642 -v -0.000000 1.677939 -0.122530 -v 0.086642 1.677939 -0.086642 -v 0.086642 1.677939 0.086642 -v 0.000000 1.750000 0.122530 -v -0.086642 1.750000 0.086642 -v -0.086642 1.750000 -0.086642 -v 0.000000 1.750000 -0.122530 -v 0.086642 1.750000 -0.086642 -v 0.086642 1.750000 0.086642 -vn -0.0000 -0.0000 -1.0000 -vn 1.0000 -0.0000 -0.0000 -vn -0.0000 -0.0000 1.0000 -vn -0.0000 -1.0000 -0.0000 -vn -0.0000 1.0000 -0.0000 -vn -1.0000 -0.0000 -0.0000 -vn 0.9239 -0.0000 0.3827 -vn 0.7071 -0.0000 0.7071 -vn -0.7071 -0.0000 0.7071 -vn -0.9239 -0.0000 0.3827 -vn -0.9239 -0.0000 -0.3827 -vn -0.7071 -0.0000 -0.7071 -vn 0.7071 -0.0000 -0.7071 -vn 0.9239 -0.0000 -0.3827 -vn -0.0000 -0.9651 -0.2617 -vn -0.1851 -0.9651 -0.1851 -vn -0.0000 -0.4177 -0.9086 -vn 0.6425 -0.4177 -0.6425 -vn -0.0000 -0.5451 -0.8384 -vn -0.1851 -0.9651 0.1851 -vn -0.0000 -0.9651 0.2617 -vn -0.8504 -0.3909 -0.3522 -vn -0.6425 -0.4177 -0.6425 -vn -0.0000 -0.4177 0.9086 -vn -0.6425 -0.4177 0.6425 -vn -0.0000 -0.5451 0.8384 -vn 0.8504 -0.3909 0.3522 -vn 0.6425 -0.4177 0.6425 -vn 0.8504 -0.3909 -0.3522 -vn -0.8504 -0.3909 0.3522 -vn -0.2602 -0.9595 -0.1078 -vn 0.1851 -0.9651 -0.1851 -vn 0.1851 -0.9651 0.1851 -vn -0.2602 -0.9595 0.1078 -vn 0.2602 -0.9595 0.1078 -vn 0.2602 -0.9595 -0.1078 -vt 1.000000 1.000000 -vt 0.500000 1.000000 -vt 0.000000 0.000000 -vt 0.250000 1.000000 -vt 0.000000 1.000000 -vt 1.000000 0.500000 -vt 0.000000 0.500000 -s 0 -usemtl Miner_Frame -f 2/1/1 14/2/1 13/3/1 4/3/1 -f 18/4/1 1/5/1 3/3/1 21/3/1 -f 9/6/2 2/1/2 4/3/2 11/3/2 -f 13/3/1 21/3/1 3/3/1 4/3/1 -f 21/3/2 23/3/2 19/3/2 18/4/2 -f 19/3/3 23/3/3 12/3/3 17/7/3 -f 13/3/4 24/3/4 23/3/4 21/3/4 -f 22/3/5 20/3/5 3/3/5 6/3/5 -f 25/3/4 8/3/4 12/3/4 23/3/4 -f 23/3/2 20/3/2 22/3/2 55/3/2 25/3/2 -f 16/3/3 20/3/3 23/3/3 24/3/3 -f 3/3/5 20/3/5 16/3/5 4/3/5 -f 12/3/6 3/3/6 1/5/6 17/7/6 -f 8/3/6 6/3/6 3/3/6 12/3/6 -f 16/3/5 26/3/5 5/3/5 4/3/5 -f 4/3/2 5/3/2 7/3/2 11/3/2 -f 26/3/6 16/3/6 24/3/6 10/3/6 54/3/6 -f 11/3/4 7/3/4 10/3/4 24/3/4 -f 11/3/3 24/3/3 15/3/3 9/6/3 -f 13/3/6 14/2/6 15/3/6 24/3/6 -f 15/3/4 14/3/4 2/3/4 9/3/4 -f 19/3/4 17/3/4 1/3/4 18/3/4 -f 6/3/6 8/3/6 47/3/6 45/3/6 -f 6/3/5 45/3/5 22/3/5 -f 48/3/5 22/3/5 45/3/5 -f 22/3/2 48/3/2 58/3/2 49/3/2 25/3/2 55/3/2 -f 10/3/6 52/3/6 57/3/6 53/3/6 26/3/6 54/3/6 -f 5/3/2 50/3/2 51/3/2 7/3/2 -f 10/3/4 7/3/4 52/3/4 -f 5/3/5 26/3/5 53/3/5 -f 53/3/5 50/3/5 5/3/5 -f 51/3/4 52/3/4 7/3/4 -f 8/3/4 25/3/4 47/3/4 -f 47/3/4 25/3/4 49/3/4 -f 76/1/3 78/3/3 87/3/3 88/2/3 -f 92/4/3 95/3/3 77/3/3 75/5/3 -f 83/6/2 85/3/2 78/3/2 76/1/2 -f 87/3/3 78/3/3 77/3/3 95/3/3 -f 95/3/2 92/4/2 93/3/2 97/3/2 -f 93/3/1 91/7/1 86/3/1 97/3/1 -f 87/3/4 95/3/4 97/3/4 98/3/4 -f 96/3/5 80/3/5 77/3/5 94/3/5 -f 99/3/4 97/3/4 86/3/4 82/3/4 -f 97/3/2 99/3/2 116/3/2 96/3/2 94/3/2 -f 90/3/1 98/3/1 97/3/1 94/3/1 -f 77/3/5 78/3/5 90/3/5 94/3/5 -f 86/3/6 91/7/6 75/5/6 77/3/6 -f 82/3/6 86/3/6 77/3/6 80/3/6 -f 90/3/5 78/3/5 79/3/5 100/3/5 -f 78/3/2 85/3/2 81/3/2 79/3/2 -f 100/3/6 115/3/6 84/3/6 98/3/6 90/3/6 -f 85/3/4 98/3/4 84/3/4 81/3/4 -f 85/3/1 83/6/1 89/3/1 98/3/1 -f 87/3/6 98/3/6 89/3/6 88/2/6 -f 89/3/4 83/3/4 76/3/4 88/3/4 -f 93/3/4 92/3/4 75/3/4 91/3/4 -f 80/3/6 45/3/6 47/3/6 82/3/6 -f 80/3/5 96/3/5 45/3/5 -f 48/3/5 45/3/5 96/3/5 -f 96/3/2 116/3/2 99/3/2 49/3/2 58/3/2 48/3/2 -f 84/3/6 115/3/6 100/3/6 53/3/6 57/3/6 52/3/6 -f 79/3/2 81/3/2 51/3/2 50/3/2 -f 84/3/4 52/3/4 81/3/4 -f 79/3/5 53/3/5 100/3/5 -f 53/3/5 79/3/5 50/3/5 -f 51/3/4 81/3/4 52/3/4 -f 82/3/4 47/3/4 99/3/4 -f 47/3/4 49/3/4 99/3/4 -s 1 -usemtl Miner_Bushing -f 35/3/15 34/3/16 60/3/16 59/3/15 -f 32/3/20 31/3/21 63/3/21 62/3/20 -f 34/3/16 33/3/31 61/3/31 60/3/16 -f 36/3/32 35/3/15 59/3/15 66/3/32 -f 31/3/21 30/3/33 64/3/33 63/3/21 -f 33/3/34 32/3/20 62/3/20 61/3/34 -f 64/3/8 65/3/7 73/3/7 72/3/8 -f 30/3/33 29/3/35 65/3/35 64/3/33 -f 29/3/36 36/3/32 66/3/32 65/3/36 -s 0 -f 74/3/5 67/3/5 68/3/5 69/3/5 70/3/5 71/3/5 72/3/5 73/3/5 -s 1 -f 62/3/9 63/3/3 71/3/3 70/3/9 -f 60/3/12 61/3/11 69/3/11 68/3/12 -f 59/3/1 60/3/12 68/3/12 67/3/1 -f 65/3/14 66/3/13 74/3/13 73/3/14 -f 63/3/3 64/3/8 72/3/8 71/3/3 -f 61/3/10 62/3/9 70/3/9 69/3/10 -f 66/3/13 59/3/1 67/3/1 74/3/13 -f 106/3/21 117/3/21 118/3/20 105/3/20 -f 104/3/16 119/3/16 120/3/15 103/3/15 -f 105/3/20 118/3/20 61/3/34 33/3/34 -f 107/3/33 122/3/33 117/3/21 106/3/21 -f 103/3/15 120/3/15 121/3/32 102/3/32 -f 33/3/31 61/3/31 119/3/16 104/3/16 -f 121/3/13 127/3/13 73/3/14 65/3/14 -f 102/3/32 121/3/32 65/3/36 29/3/36 -f 29/3/35 65/3/35 122/3/33 107/3/33 -s 0 -f 128/3/5 73/3/5 127/3/5 126/3/5 125/3/5 69/3/5 124/3/5 123/3/5 -s 1 -f 119/3/12 125/3/12 126/3/1 120/3/1 -f 118/3/9 124/3/9 69/3/10 61/3/10 -f 117/3/3 123/3/3 124/3/9 118/3/9 -f 65/3/7 73/3/7 128/3/8 122/3/8 -f 120/3/1 126/3/1 127/3/13 121/3/13 -f 61/3/11 69/3/11 125/3/12 119/3/12 -f 122/3/8 128/3/8 123/3/3 117/3/3 -usemtl Miner_Poke -f 29/3/7 30/3/8 38/3/8 37/3/7 -f 30/3/8 31/3/3 39/3/3 38/3/8 -f 31/3/3 32/3/9 40/3/9 39/3/3 -f 32/3/9 33/3/10 41/3/10 40/3/9 -f 33/3/11 34/3/12 42/3/12 41/3/11 -f 34/3/12 35/3/1 43/3/1 42/3/12 -f 35/3/1 36/3/13 44/3/13 43/3/1 -f 36/3/13 29/3/14 37/3/14 44/3/13 -f 43/3/17 44/3/18 28/3/19 -s 0 -f 54/3/1 46/3/1 27/3/1 26/3/1 -f 55/3/1 22/3/1 27/3/1 46/3/1 -f 56/3/5 53/3/5 26/3/5 27/3/5 -f 55/3/4 54/3/4 57/3/4 58/3/4 -f 22/3/5 48/3/5 56/3/5 27/3/5 -s 1 -f 41/3/22 42/3/23 28/3/19 -f 39/3/24 40/3/25 28/3/26 -f 37/3/27 38/3/28 28/3/26 -f 44/3/18 37/3/29 28/3/19 -f 42/3/23 43/3/17 28/3/19 -f 40/3/25 41/3/30 28/3/26 -f 38/3/28 39/3/24 28/3/26 -f 29/3/14 37/3/14 108/3/13 102/3/13 -f 102/3/13 108/3/13 109/3/1 103/3/1 -f 103/3/1 109/3/1 110/3/12 104/3/12 -f 104/3/12 110/3/12 41/3/11 33/3/11 -f 33/3/10 41/3/10 111/3/9 105/3/9 -f 105/3/9 111/3/9 112/3/3 106/3/3 -f 106/3/3 112/3/3 113/3/8 107/3/8 -f 107/3/8 113/3/8 37/3/7 29/3/7 -f 112/3/24 28/3/26 113/3/28 -s 0 -f 115/3/3 100/3/3 101/3/3 114/3/3 -f 116/3/3 114/3/3 101/3/3 96/3/3 -f 56/3/5 101/3/5 100/3/5 53/3/5 -f 116/3/4 58/3/4 57/3/4 115/3/4 -f 96/3/5 101/3/5 56/3/5 48/3/5 -s 1 -f 41/3/30 28/3/26 111/3/25 -f 109/3/17 28/3/19 110/3/23 -f 37/3/29 28/3/19 108/3/18 -f 113/3/28 28/3/26 37/3/27 -f 111/3/25 28/3/26 112/3/24 -f 110/3/23 28/3/19 41/3/22 -f 108/3/18 28/3/19 109/3/17 +version https://git-lfs.github.com/spec/v1 +oid sha256:ed187db8ce50fd7dd22744a97388ddd529167c540f562af22f2838320d493eca +size 9546 diff --git a/assets/models/Ore.obj b/assets/models/Ore.obj index 2f9cef7..fba9dcd 100644 --- a/assets/models/Ore.obj +++ b/assets/models/Ore.obj @@ -1,269 +1,3 @@ -# Blender 4.4.1 -# www.blender.org -o Ore -v 0.000000 0.045676 -0.000000 -v 0.400976 0.387061 0.291323 -v -0.125129 0.432411 0.385115 -v -0.508578 0.380591 -0.000000 -v -0.189398 0.328419 -0.582918 -v 0.472392 0.342923 -0.343209 -v 0.127435 0.841084 0.392212 -v -0.381643 0.870754 0.277277 -v -0.315045 0.829594 -0.228891 -v 0.105368 0.805378 -0.324296 -v 0.709129 0.989449 -0.000000 -v -0.000000 1.148198 -0.000000 -v -0.097895 0.122277 0.301297 -v 0.316965 0.000945 0.230286 -v 0.107101 0.420679 0.329616 -v 0.473395 0.342304 -0.000000 -v 0.195024 0.244828 -0.141692 -v -0.238467 0.249033 -0.000000 -v -0.291686 0.412050 0.211921 -v -0.100681 0.107690 -0.309871 -v -0.417393 0.316018 -0.303252 -v 0.190750 0.253381 -0.587057 -v 0.600946 0.634882 0.195256 -v 0.547966 0.634882 -0.178041 -v -0.000000 0.634882 0.818088 -v 0.271936 0.634882 0.374287 -v -0.580850 0.634882 0.188726 -v -0.413591 0.634882 0.569258 -v -0.391991 0.634882 -0.539529 -v -0.717882 0.634882 -0.233250 -v 0.481987 0.634882 -0.663398 -v 0.000000 0.634882 -0.536576 -v 0.514271 1.027755 0.373638 -v -0.154206 0.943294 0.474587 -v -0.624968 1.021138 -0.000000 -v -0.125761 0.886405 -0.387045 -v 0.413404 0.950699 -0.300354 -v 0.105635 1.188011 0.325116 -v 0.354581 1.208608 -0.000000 -v -0.199289 1.033466 0.144790 -v -0.268654 1.172196 -0.195186 -v 0.085834 1.084330 -0.264175 -vn -0.2516 -0.9544 0.1609 -vn 0.9314 -0.2452 0.2692 -vn -0.6488 -0.7608 -0.0174 -vn -0.6478 -0.7596 0.0585 -vn 0.5455 -0.7699 -0.3313 -vn 0.7972 -0.5346 0.2803 -vn 0.0521 -0.9103 0.4106 -vn -0.5123 -0.6009 0.6135 -vn -0.7074 -0.3836 -0.5937 -vn 0.6297 -0.5834 -0.5131 -vn 0.4775 -0.0451 0.8775 -vn -0.2842 -0.8344 0.4723 -vn -0.8509 -0.4469 0.2763 -vn 0.0075 0.1450 -0.9894 -vn 0.9752 -0.1774 -0.1326 -vn -0.0432 0.1871 0.9814 -vn -0.5105 0.8091 0.2910 -vn -0.5240 0.1534 -0.8378 -vn 0.3269 0.2209 -0.9189 -vn 0.4454 0.7205 -0.5315 -vn -0.1612 0.9460 -0.2811 -vn 0.2429 0.7590 -0.6041 -vn -0.0227 0.2091 -0.9776 -vn 0.2067 0.9642 -0.1660 -vn -0.0269 0.5479 -0.8361 -vn -0.6609 0.1616 -0.7329 -vn -0.2159 0.8878 0.4063 -vn -0.1625 0.9015 0.4010 -vn -0.2302 0.7564 0.6122 -vn -0.4731 0.8798 0.0460 -vn -0.5632 0.7743 0.2887 -vn 0.3410 0.1991 0.9187 -vn -0.1676 0.9836 -0.0660 -vn 0.3172 0.8997 0.2999 -vn 0.5168 0.8361 0.1838 -vn 0.7103 0.0303 -0.7033 -vn 0.9293 0.3470 -0.1263 -vn -0.2781 0.6981 -0.6598 -vn 0.3994 0.6078 -0.6864 -vn 0.0065 0.5134 -0.8581 -vn -0.5273 0.7726 -0.3536 -vn -0.2543 0.5440 -0.7996 -vn -0.9503 0.0422 0.3086 -vn -0.6436 0.2754 0.7141 -vn -0.6055 0.6502 0.4590 -vn -0.4230 0.5716 0.7031 -vn 0.4206 0.7608 0.4942 -vn 0.0670 -0.0397 0.9970 -vn 0.4586 -0.2815 0.8429 -vn 0.8859 -0.0150 0.4636 -vn -0.1506 0.8059 -0.5725 -vn -0.2545 0.0007 -0.9671 -vn 0.0167 0.1394 -0.9901 -vn -0.3919 0.8201 -0.4170 -vn -0.6161 -0.4367 -0.6555 -vn -0.7340 -0.6748 -0.0770 -vn -0.7773 0.5282 0.3417 -vn -0.6019 -0.7535 0.2645 -vn -0.3292 -0.8476 0.4162 -vn 0.7465 0.4833 0.4574 -vn 0.6772 -0.6077 0.4149 -vn 0.0937 -0.2718 0.9578 -vn 0.9257 -0.3548 -0.1314 -vn 0.9380 -0.3201 -0.1331 -vn 0.9685 -0.2489 -0.0033 -vn 0.3196 -0.9473 -0.0213 -vn 0.4306 -0.9023 -0.0215 -vn -0.1628 -0.7925 -0.5877 -vn -0.4998 -0.7458 -0.4405 -vn -0.5424 -0.8289 0.1369 -vn -0.4371 -0.8974 0.0597 -vn -0.3785 -0.7772 0.5028 -vn -0.8424 -0.5081 0.1793 -vn -0.6841 -0.2457 0.6868 -vn 0.3317 -0.9434 -0.0027 -vn 0.5162 -0.6288 -0.5815 -vn 0.3250 -0.7385 -0.5907 -vn 0.2145 -0.2372 0.9475 -vn 0.1168 -0.1730 0.9780 -vn 0.1071 -0.1779 0.9782 -vt 0.181819 0.000000 -vt 0.227273 0.078731 -vt 0.136365 0.078731 -vt 0.272728 0.157461 -vt 0.318182 0.078731 -vt 0.363637 0.157461 -vt 0.909091 0.000000 -vt 0.954545 0.078731 -vt 0.863636 0.078731 -vt 0.727273 0.000000 -vt 0.772727 0.078731 -vt 0.681818 0.078731 -vt 0.545455 0.000000 -vt 0.590909 0.078731 -vt 0.500000 0.078731 -vt 0.318182 0.236191 -vt 0.090910 0.157461 -vt 0.181819 0.157461 -vt 0.136365 0.236191 -vt 0.818182 0.157461 -vt 0.909091 0.157461 -vt 0.863636 0.236191 -vt 0.636364 0.157461 -vt 0.727273 0.157461 -vt 0.681818 0.236191 -vt 0.454546 0.157461 -vt 0.545455 0.157461 -vt 0.500000 0.236191 -vt 0.227273 0.236191 -vt 0.045455 0.236191 -vt 0.772727 0.236191 -vt 0.590909 0.236191 -vt 0.409092 0.236191 -vt 0.181819 0.314921 -vt 0.272728 0.314921 -vt 0.227273 0.393651 -vt 0.000000 0.314921 -vt 0.090910 0.314921 -vt 0.045455 0.393651 -vt 0.727273 0.314921 -vt 0.818182 0.314921 -vt 0.772727 0.393651 -vt 0.545455 0.314921 -vt 0.636364 0.314921 -vt 0.590909 0.393651 -vt 0.363637 0.314921 -vt 0.454546 0.314921 -vt 0.409092 0.393651 -vt 0.500000 0.393651 -vt 0.454546 0.472382 -vt 0.681818 0.393651 -vt 0.636364 0.472382 -vt 0.863636 0.393651 -vt 0.818182 0.472382 -vt 0.909091 0.314921 -vt 0.136365 0.393651 -vt 0.090910 0.472382 -vt 0.318182 0.393651 -vt 0.272728 0.472382 -vt 0.954545 0.236191 -vt 1.000000 0.157461 -vt 0.409092 0.078731 -vt 0.363637 0.000000 -s 0 -f 1/1/1 14/2/1 13/3/1 -f 2/4/2 14/5/2 16/6/2 -f 1/7/3 13/8/3 18/9/3 -f 1/10/4 18/11/4 20/12/4 -f 1/13/5 20/14/5 17/15/5 -f 2/4/6 16/6/6 23/16/6 -f 3/17/7 15/18/7 25/19/7 -f 4/20/8 19/21/8 27/22/8 -f 5/23/9 21/24/9 29/25/9 -f 6/26/10 22/27/10 31/28/10 -f 2/4/11 23/16/11 26/29/11 -f 3/17/12 25/19/12 28/30/12 -f 4/20/13 27/22/13 30/31/13 -f 5/23/14 29/25/14 32/32/14 -f 6/26/15 31/28/15 24/33/15 -f 7/34/16 33/35/16 38/36/16 -f 8/37/17 34/38/17 40/39/17 -f 9/40/18 35/41/18 41/42/18 -f 10/43/19 36/44/19 42/45/19 -f 11/46/20 37/47/20 39/48/20 -f 39/48/21 42/49/21 12/50/21 -f 39/48/22 37/47/22 42/49/22 -f 37/47/23 10/43/23 42/49/23 -f 42/45/24 41/51/24 12/52/24 -f 42/45/25 36/44/25 41/51/25 -f 36/44/26 9/40/26 41/51/26 -f 41/42/27 40/53/27 12/54/27 -f 41/42/28 35/41/28 40/53/28 -f 35/41/29 8/55/29 40/53/29 -f 40/39/30 38/56/30 12/57/30 -f 40/39/31 34/38/31 38/56/31 -f 34/38/32 7/34/32 38/56/32 -f 38/36/33 39/58/33 12/59/33 -f 38/36/34 33/35/34 39/58/34 -f 33/35/35 11/46/35 39/58/35 -f 24/33/36 37/47/36 11/46/36 -f 24/33/37 31/28/37 37/47/37 -f 31/28/38 10/43/38 37/47/38 -f 32/32/39 36/44/39 10/43/39 -f 32/32/40 29/25/40 36/44/40 -f 29/25/41 9/40/41 36/44/41 -f 30/31/42 35/41/42 9/40/42 -f 30/31/43 27/22/43 35/41/43 -f 27/22/44 8/55/44 35/41/44 -f 28/30/45 34/38/45 8/37/45 -f 28/30/46 25/19/46 34/38/46 -f 25/19/47 7/34/47 34/38/47 -f 26/29/48 33/35/48 7/34/48 -f 26/29/49 23/16/49 33/35/49 -f 23/16/50 11/46/50 33/35/50 -f 31/28/51 32/32/51 10/43/51 -f 31/28/52 22/27/52 32/32/52 -f 22/27/53 5/23/53 32/32/53 -f 29/25/54 30/31/54 9/40/54 -f 29/25/55 21/24/55 30/31/55 -f 21/24/56 4/20/56 30/31/56 -f 27/22/57 28/60/57 8/55/57 -f 27/22/58 19/21/58 28/60/58 -f 19/21/59 3/61/59 28/60/59 -f 25/19/60 26/29/60 7/34/60 -f 25/19/61 15/18/61 26/29/61 -f 15/18/62 2/4/62 26/29/62 -f 23/16/63 24/33/63 11/46/63 -f 23/16/64 16/6/64 24/33/64 -f 16/6/65 6/26/65 24/33/65 -f 17/15/66 22/27/66 6/26/66 -f 17/15/67 20/14/67 22/27/67 -f 20/14/68 5/23/68 22/27/68 -f 20/12/69 21/24/69 5/23/69 -f 20/12/70 18/11/70 21/24/70 -f 18/11/71 4/20/71 21/24/71 -f 18/9/72 19/21/72 4/20/72 -f 18/9/73 13/8/73 19/21/73 -f 13/8/74 3/61/74 19/21/74 -f 16/6/75 17/62/75 6/26/75 -f 16/6/76 14/5/76 17/62/76 -f 14/5/77 1/63/77 17/62/77 -f 13/3/78 15/18/78 3/17/78 -f 13/3/79 14/2/79 15/18/79 -f 14/2/80 2/4/80 15/18/80 +version https://git-lfs.github.com/spec/v1 +oid sha256:f2f0a536463d87eec825a7c8a906ac7da495d099d45644ef5bcb5e3b7b604b24 +size 6893 diff --git a/assets/models/Ramp Corner Inner Nav.obj b/assets/models/Ramp Corner Inner Nav.obj index 7da3a14..59ddfa9 100644 --- a/assets/models/Ramp Corner Inner Nav.obj +++ b/assets/models/Ramp Corner Inner Nav.obj @@ -1,16 +1,3 @@ -# Blender 4.4.1 -# www.blender.org -o Ramp_Corner_Inner_Nav -v -1.000000 -0.500000 1.000000 -v 1.000000 0.500000 1.000000 -v 1.000000 0.500000 -1.000000 -v -1.000000 0.500000 -1.000000 -vn -0.0000 0.8944 0.4472 -vn -0.4472 0.8944 -0.0000 -vt 0.625000 0.500000 -vt 0.000000 0.000000 -vt 0.125000 0.750000 -vt 0.625000 0.750000 -s 0 -f 3/1/1 4/2/1 1/3/1 -f 2/4/2 3/1/2 1/3/2 +version https://git-lfs.github.com/spec/v1 +oid sha256:3e04553da393c6badeb1a3f0310c72cde2851ac17d8392c23f984bcdafa4f6b3 +size 358 diff --git a/assets/models/Ramp Corner Inner.obj b/assets/models/Ramp Corner Inner.obj index e45f49a..6fe2173 100644 --- a/assets/models/Ramp Corner Inner.obj +++ b/assets/models/Ramp Corner Inner.obj @@ -1,33 +1,3 @@ -# Blender 4.4.1 -# www.blender.org -o Ramp_Corner_Inner -v -1.000000 -0.500000 1.000000 -v -1.000000 -0.500000 -1.000000 -v 1.000000 -0.500000 1.000000 -v 1.000000 0.500000 1.000000 -v 1.000000 -0.500000 -1.000000 -v 1.000000 0.500000 -1.000000 -v -1.000000 0.500000 -1.000000 -vn -1.0000 -0.0000 -0.0000 -vn 1.0000 -0.0000 -0.0000 -vn -0.0000 -0.0000 1.0000 -vn -0.0000 -1.0000 -0.0000 -vn -0.0000 -0.0000 -1.0000 -vn -0.0000 0.8944 0.4472 -vn -0.4472 0.8944 -0.0000 -vt 0.125000 0.750000 -vt 0.000000 0.000000 -vt 0.125000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 1.000000 -s 0 -f 1/1/1 7/2/1 2/3/1 -f 5/4/2 6/5/2 4/6/2 3/7/2 -f 3/7/3 4/6/3 1/8/3 -f 2/3/4 5/4/4 3/7/4 1/1/4 -f 2/3/5 7/2/5 6/5/5 5/4/5 -f 6/5/6 7/2/6 1/1/6 -f 4/6/7 6/5/7 1/1/7 +version https://git-lfs.github.com/spec/v1 +oid sha256:6b2e06dc58dbf0856564e4d9a9b20fab90d5837e1bce6481a64b795e7541ce5b +size 782 diff --git a/assets/models/Ramp Corner Outer Nav.obj b/assets/models/Ramp Corner Outer Nav.obj index e5e634a..66b8dae 100644 --- a/assets/models/Ramp Corner Outer Nav.obj +++ b/assets/models/Ramp Corner Outer Nav.obj @@ -1,15 +1,3 @@ -# Blender 4.4.1 -# www.blender.org -o Ramp_Corner_Outer_Nav -v -1.000000 -0.500000 1.000000 -v 1.000000 0.500000 1.000000 -v 1.000000 -0.500000 -1.000000 -v -1.000000 -0.500000 -1.000000 -vn -0.0000 0.8944 -0.4472 -vn -0.4472 0.8944 -0.0000 -vt 0.000000 0.000000 -vt 0.625000 0.750000 -vt 0.375000 1.000000 -s 0 -f 3/1/1 4/1/1 2/2/1 -f 1/3/2 2/2/2 4/1/2 +version https://git-lfs.github.com/spec/v1 +oid sha256:93a2bb8e66a8c222bc80b0683b7465f79d62dbe05a27900b29acfaec975de17e +size 340 diff --git a/assets/models/Ramp Corner Outer.obj b/assets/models/Ramp Corner Outer.obj index 784c5be..eeaa9e6 100644 --- a/assets/models/Ramp Corner Outer.obj +++ b/assets/models/Ramp Corner Outer.obj @@ -1,36 +1,3 @@ -# Blender 4.4.1 -# www.blender.org -o Ramp_Corner_Outer -v -1.000000 -0.500000 1.000000 -v 1.000000 -0.500000 1.000000 -v 1.000000 0.500000 1.000000 -v 1.000000 -0.500000 -1.000000 -v -1.000000 -0.500000 -1.000000 -vn -0.0000 -0.0000 1.0000 -vn -0.0000 0.8944 -0.4472 -vn 1.0000 -0.0000 -0.0000 -vn -0.4472 0.8944 -0.0000 -vn -0.0000 -1.0000 -0.0000 -vt 0.375000 0.750000 -vt 0.625000 0.750000 -vt 0.375000 1.000000 -vt 0.000000 0.000000 -s 0 -f 2/1/1 3/2/1 1/3/1 -f 4/4/2 5/4/2 3/2/2 -f 2/1/3 4/4/3 3/2/3 -f 1/3/4 3/2/4 5/4/4 -f 4/4/5 2/1/5 1/3/5 5/4/5 -o Ramp_Corner_Outer_Nav -v -1.000000 -0.500000 1.000000 -v 1.000000 0.500000 1.000000 -v 1.000000 -0.500000 -1.000000 -v -1.000000 -0.500000 -1.000000 -vn -0.0000 0.8944 -0.4472 -vn -0.4472 0.8944 -0.0000 -vt 0.000000 0.000000 -vt 0.625000 0.750000 -vt 0.375000 1.000000 -s 0 -f 8/5/6 9/5/6 7/6/6 -f 6/7/7 7/6/7 9/5/7 +version https://git-lfs.github.com/spec/v1 +oid sha256:c8e4310f7e7182d44e0d5752ea487eafe9b34eec4655028f0c29c1518e85a565 +size 838 diff --git a/assets/models/Ramp Nav.obj b/assets/models/Ramp Nav.obj index 84b88d4..868dff7 100644 --- a/assets/models/Ramp Nav.obj +++ b/assets/models/Ramp Nav.obj @@ -1,14 +1,3 @@ -# Blender 4.4.1 -# www.blender.org -o Ramp_Nav -v -1.000000 -0.500000 1.000000 -v -1.000000 -0.500000 -1.000000 -v 1.000000 0.500000 1.000000 -v 1.000000 0.500000 -1.000000 -vn -0.4472 0.8944 -0.0000 -vt 0.625000 0.500000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -vt 0.625000 0.750000 -s 0 -f 4/1/1 2/2/1 1/3/1 3/4/1 +version https://git-lfs.github.com/spec/v1 +oid sha256:b156b91cd3a4c78fab067e50c3f6d008fc5210786f12f065356826c13eac21c2 +size 307 diff --git a/assets/models/Ramp.obj b/assets/models/Ramp.obj index 732e38d..d9d433e 100644 --- a/assets/models/Ramp.obj +++ b/assets/models/Ramp.obj @@ -1,30 +1,3 @@ -# Blender 4.4.1 -# www.blender.org -o Ramp -v -1.000000 -0.500000 1.000000 -v -1.000000 -0.500000 -1.000000 -v 1.000000 -0.500000 1.000000 -v 1.000000 0.500000 1.000000 -v 1.000000 -0.500000 -1.000000 -v 1.000000 0.500000 -1.000000 -vn -0.0000 -0.0000 -1.0000 -vn 1.0000 -0.0000 -0.0000 -vn -0.0000 -0.0000 1.0000 -vn -0.0000 -1.0000 -0.0000 -vn -0.4472 0.8944 -0.0000 -vt 0.625000 0.250000 -vt 0.625000 0.500000 -vt 0.375000 0.500000 -vt 0.625000 0.750000 -vt 0.375000 0.750000 -vt 0.375000 1.000000 -vt 0.125000 0.500000 -vt 0.125000 0.750000 -vt 0.875000 0.500000 -vt 0.875000 0.750000 -s 0 -f 2/1/1 6/2/1 5/3/1 -f 5/3/2 6/2/2 4/4/2 3/5/2 -f 3/5/3 4/4/3 1/6/3 -f 2/7/4 5/3/4 3/5/4 1/8/4 -f 6/2/5 2/9/5 1/10/5 4/4/5 +version https://git-lfs.github.com/spec/v1 +oid sha256:53ac7718d4f78cbc4a36a18b7f508a9adfad1626615f53a7ba5bd970ed4852b2 +size 689 diff --git a/grid_map_test.gd b/grid_map_test.gd index e1607e1..1b679d7 100644 --- a/grid_map_test.gd +++ b/grid_map_test.gd @@ -1,4 +1,5 @@ -extends GridMap +@tool +extends CustomGridMap var postprocess_done: bool = false diff --git a/node_3d.tscn b/node_3d.tscn index 8ad185a..4ce9375 100644 --- a/node_3d.tscn +++ b/node_3d.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=49 format=4 uid="uid://bwftban1ppo17"] +[gd_scene load_steps=56 format=4 uid="uid://bwftban1ppo17"] [ext_resource type="Script" uid="uid://y8qfdplqsijx" path="res://grid_map_test.gd" id="1_noarx"] [ext_resource type="Script" uid="uid://tx3j02eib7ba" path="res://scripts/camera.gd" id="1_wlxy5"] [ext_resource type="PackedScene" uid="uid://c6e1nifka3h4v" path="res://objects/buildings/processor.tscn" id="3_a0tk4"] [ext_resource type="PackedScene" uid="uid://dhfqv26h4i0i3" path="res://objects/buildings/conveyor.tscn" id="4_jka67"] +[ext_resource type="Script" uid="uid://bxd8ftp1hcf7e" path="res://scripts/building_manager.gd" id="4_tcnuu"] [ext_resource type="PackedScene" uid="uid://cw3vtaevqx20y" path="res://objects/buildings/turret.tscn" id="6_i5arm"] [ext_resource type="PackedScene" uid="uid://q80xjurpsmjb" path="res://objects/units/enemy.tscn" id="6_wc5p8"] [ext_resource type="Script" uid="uid://b0fgl7qg8ha4n" path="res://scripts/spawner.gd" id="7_jsk3o"] @@ -13,6 +14,12 @@ [ext_resource type="FontFile" uid="uid://bbfeoo2kuf30n" path="res://addons/icons-fonts/icons_fonts/MaterialIcons/material_design_icons.ttf" id="10_cdqbm"] [ext_resource type="Script" uid="uid://sfoyl3fbn8so" path="res://addons/icons-fonts/nodes/FontIcon.gd" id="11_imku0"] [ext_resource type="Script" uid="uid://dpyof2t0wn8k1" path="res://addons/icons-fonts/resources/FontIconSetting.gd" id="12_wlxy5"] +[ext_resource type="Script" uid="uid://vcf7wcmyewl8" path="res://scripts/fps_label.gd" id="14_wlxy5"] +[ext_resource type="Texture2D" uid="uid://c41pea1l3e5b8" path="res://assets/images/icons/miner.png" id="15_3v7ru"] +[ext_resource type="Script" uid="uid://tmyvv1p7co51" path="res://scripts/building_place_button.gd" id="17_tuemg"] +[ext_resource type="Texture2D" uid="uid://dh2iqb21845yr" path="res://assets/images/icons/processor.png" id="18_ealrb"] +[ext_resource type="Texture2D" uid="uid://c1mmxh7v77d8j" path="res://assets/images/icons/turret.png" id="19_jsnrv"] +[ext_resource type="Texture2D" uid="uid://b48vbil24uyma" path="res://assets/images/icons/conveyor.png" id="20_jsnrv"] [sub_resource type="PhysicalSkyMaterial" id="PhysicalSkyMaterial_4xowi"] @@ -54,7 +61,7 @@ agent_radius = 0.2 region_min_size = 1.0 filter_walkable_low_height_spans = true -[sub_resource type="Image" id="Image_cdqbm"] +[sub_resource type="Image" id="Image_jsnrv"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLT/tLS0/7S0tP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAC0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAC0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAC0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAC0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAC0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv9qamr/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/ampq/2pqav9qamr/ampq/2pqav+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/tLS0/7S0tP+0tLT/tLS0/7S0tP+0tLT/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/7S0tP+0tLT/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qamp/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/6mpqf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -64,7 +71,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_6iypd"] -image = SubResource("Image_cdqbm") +image = SubResource("Image_jsnrv") [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_7h0kd"] data = PackedVector3Array(-1, 0.5, 1, 1, 0.5, 1, -1, -0.5, 1, 1, 0.5, 1, 1, -0.5, 1, -1, -0.5, 1, 1, 0.5, -1, -1, 0.5, -1, 1, -0.5, -1, -1, 0.5, -1, -1, -0.5, -1, 1, -0.5, -1, 1, 0.5, 1, 1, 0.5, -1, 1, -0.5, 1, 1, 0.5, -1, 1, -0.5, -1, 1, -0.5, 1, -1, 0.5, -1, -1, 0.5, 1, -1, -0.5, -1, -1, 0.5, 1, -1, -0.5, 1, -1, -0.5, -1, 1, 0.5, 1, -1, 0.5, 1, 1, 0.5, -1, -1, 0.5, 1, -1, 0.5, -1, 1, 0.5, -1, -1, -0.5, 1, 1, -0.5, 1, -1, -0.5, -1, 1, -0.5, 1, 1, -0.5, -1, -1, -0.5, -1) @@ -78,7 +85,7 @@ vertices = PackedVector3Array(-0.735052, 0.760437, -0.75, -0.735052, 0.760437, 0 polygons = [PackedInt32Array(3, 2, 0), PackedInt32Array(0, 2, 1)] agent_radius = 0.2 -[sub_resource type="Image" id="Image_imku0"] +[sub_resource type="Image" id="Image_lggff"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJycn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJycn/ycnJ/8nJyf/Jycn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/wAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/AAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf8AAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf8AAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf8AAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf8AAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8rKyv8AAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8rKyv8AAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ysrK/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ysrK/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ysrK/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Kysr/ysrK/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Kysr/ysrK/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Kysr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8rKyv/Kysr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8rKyv/Kysr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ysrK/8rKyv/Kysr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ycnJ/8nJyf/Jycn/ycnJ/8nJyf/Jycn/ysrK/8rKyv/Kysr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav/Jycn/ycnJ/8nJyf/Kysr/ysrK/8rKyv/Kysr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/8nJyf/Kysr/ysrK/8rKyv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/8rKyv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -88,7 +95,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_imku0"] -image = SubResource("Image_imku0") +image = SubResource("Image_lggff") [sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_qra7f"] points = PackedVector3Array(-1, -0.5, -1, -1, 0.5, -1, 1, -0.5, -1, -1, -0.5, 1, -1, 0.5, 1, 1, -0.5, 1) @@ -128,7 +135,7 @@ vertices = PackedVector3Array(-0.75, 0.75, -0.75, -0.75, 0, 0.75, 0.75, 0.75, 0. polygons = [PackedInt32Array(3, 2, 0), PackedInt32Array(0, 2, 1)] agent_radius = 0.2 -[sub_resource type="Image" id="Image_wlxy5"] +[sub_resource type="Image" id="Image_s0gvp"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/62trf+tra3/ra2t/62trf+tra3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/62trf+tra3/ra2t/62trf+IiIj/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/62trf+tra3/ra2t/4iIiP+IiIj/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/62trf+tra3/iIiI/4iIiP+IiIj/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/4iIiP+IiIj/iIiI/4iIiP+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/iIiI/4iIiP+IiIj/iIiI/4iIiP+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAArKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAKysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAKysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAKysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/6ysrP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/rKys/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrKz/rKys/6ysrP+srKz/rKys/6ysrP+srKz/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKys/6ysrP+srKz/rKys/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKys/6ysrP+srKz/iIiI/4iIiP+IiIj/iIiI/4iIiP9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrP+IiIj/iIiI/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qamp/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/6mpqf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -138,7 +145,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_tcnuu"] -image = SubResource("Image_wlxy5") +image = SubResource("Image_s0gvp") [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_7ivye"] data = PackedVector3Array(-1, 0.5, -1, -1, -0.5, 1, -1, -0.5, -1, 1, 0.5, -1, 1, -0.5, -1, 1, 0.5, 1, 1, 0.5, 1, 1, -0.5, -1, 1, -0.5, 1, 1, 0.5, 1, 1, -0.5, 1, -1, -0.5, 1, 1, -0.5, -1, -1, -0.5, -1, 1, -0.5, 1, 1, -0.5, 1, -1, -0.5, -1, -1, -0.5, 1, -1, 0.5, -1, -1, -0.5, -1, 1, 0.5, -1, 1, 0.5, -1, -1, -0.5, -1, 1, -0.5, -1, -1, 0.5, -1, 1, 0.5, -1, -1, -0.5, 1, 1, 0.5, -1, 1, 0.5, 1, -1, -0.5, 1) @@ -199,7 +206,7 @@ vertices = PackedVector3Array(-1, 0, -1, -1, 0, 1, 1, 0.75, 1, 1, 0, -1) polygons = [PackedInt32Array(3, 2, 0), PackedInt32Array(0, 2, 1)] agent_radius = 0.0 -[sub_resource type="Image" id="Image_3v7ru"] +[sub_resource type="Image" id="Image_vxd74"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiP+tra3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiP+IiIj/iIiI/62trf+tra3/ra2t/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/62trf+tra3/ra2t/62trf+tra3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+srKz/rKys/6ysrP+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/62trf+tra3/ra2t/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiIiP+IiIj/iIiI/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qqqq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/6qqqv+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav+qqqr/qqqq/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav9qamr/ampq/2pqav9qamr/ampq/2pqav9qamr/qamp/6qqqv+qqqr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqav9qamr/ampq/2pqav9qamr/ampq/6mpqf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamr/ampq/2pqav8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -209,7 +216,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_ealrb"] -image = SubResource("Image_3v7ru") +image = SubResource("Image_vxd74") [sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_7ivye"] points = PackedVector3Array(-1, -0.5, -1, 1, -0.5, -1, -1, -0.5, 1, 1, 0.5, 1, 1, -0.5, 1) @@ -257,13 +264,6 @@ metadata/_editor_source_scene = "res://tiles.tscn" [sub_resource type="MultiMesh" id="MultiMesh_a0tk4"] -[sub_resource type="Curve3D" id="Curve3D_i5arm"] -_data = { -"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2), -"tilts": PackedFloat32Array(0, 0) -} -point_count = 2 - [sub_resource type="LabelSettings" id="LabelSettings_ealrb"] font = ExtResource("10_cdqbm") font_size = 64 @@ -295,6 +295,11 @@ shadow_size = 0 shadow_color = Color(0, 0, 0, 0.709804) shadow_offset = Vector2(4, 4) +[sub_resource type="LabelSettings" id="LabelSettings_imku0"] +font_size = 32 +outline_size = 3 +outline_color = Color(0, 0, 0, 1) + [node name="Node3D" type="Node3D"] [node name="WorldEnvironment" type="WorldEnvironment" parent="."] @@ -307,6 +312,8 @@ shadow_enabled = true [node name="Game Camera" type="Camera3D" parent="."] process_mode = 3 +process_priority = -1 +physics_interpolation_mode = 2 transform = Transform3D(0.866025, -0.353553, 0.353554, -1.77636e-15, 0.707107, 0.707107, -0.5, -0.612373, 0.612373, 52.8308, 11, 19.0051) doppler_tracking = 2 current = true @@ -326,77 +333,87 @@ cell_size = Vector3(2, 1, 2) collision_mask = 31 bake_navigation = true data = { -"cells": PackedInt32Array(0, 0, 0, 0, 10, 0, 1, 3, 0, 1, 4, 0, 1, 6, 0, 2, 0, 0, 2, 1, 0, 2, 2, 0, 2, 5, 0, 2, 6, 0, 2, 7, 0, 2, 8, 0, 2, 9, 0, 2, 10, 0, 3, 1, 0, 3, 2, 0, 3, 3, 0, 3, 4, 0, 3, 5, 0, 3, 6, 0, 3, 7, 0, 3, 8, 0, 3, 9, 0, 3, 10, 0, 4, 1, 0, 4, 2, 0, 4, 3, 0, 4, 4, 0, 4, 5, 0, 4, 6, 0, 4, 7, 0, 4, 8, 0, 4, 9, 0, 4, 10, 0, 5, 1, 0, 5, 2, 0, 5, 3, 0, 5, 4, 0, 5, 5, 0, 5, 6, 0, 5, 7, 0, 5, 8, 0, 5, 9, 0, 5, 10, 0, 6, 1, 0, 6, 2, 0, 6, 3, 0, 6, 4, 0, 6, 5, 0, 6, 6, 0, 6, 7, 0, 6, 8, 0, 6, 9, 0, 6, 10, 0, 7, 2, 0, 7, 3, 0, 7, 4, 0, 7, 5, 0, 7, 6, 0, 7, 7, 0, 7, 8, 0, 7, 9, 0, 7, 10, 0, 8, 2, 0, 8, 3, 0, 8, 4, 0, 8, 5, 0, 8, 6, 0, 8, 7, 0, 8, 8, 0, 8, 9, 0, 8, 10, 0, 9, 1, 0, 9, 2, 0, 9, 3, 0, 9, 4, 0, 9, 5, 0, 9, 6, 0, 9, 7, 0, 9, 8, 0, 9, 9, 0, 9, 10, 0, 10, 0, 0, 10, 1, 0, 10, 2, 0, 10, 3, 0, 10, 4, 0, 10, 5, 0, 10, 6, 0, 10, 7, 0, 10, 8, 0, 10, 9, 0, 10, 10, 0, 11, 0, 0, 11, 1, 0, 11, 2, 0, 11, 3, 0, 11, 4, 0, 11, 5, 0, 11, 6, 0, 11, 7, 0, 11, 8, 0, 11, 9, 0, 11, 10, 0, 65536, 1, 0, 65536, 2, 0, 65537, 1, 1, 65537, 2, 1, 65536, 3, 0, 65536, 4, 0, 65536, 5, 0, 65536, 6, 0, 65536, 7, 0, 65536, 8, 0, 65536, 9, 0, 65537, 8, 1, 65537, 9, 1, 8, 1, 0, 7, 1, 0, 65539, 0, 655361, 131076, 0, 655361, 196613, 0, 655361, 262150, 0, 655361, 327687, 0, 655361, 393224, 0, 655361, 393225, 0, 655360, 393226, 0, 655360, 393226, 1, 655360, 393225, 1, 655360, 393225, 2, 655360, 393226, 2, 655360, 393225, 3, 655360, 393226, 3, 655360, 393224, 3, 655360, 393224, 2, 655360, 9, 0, 655360, 8, 0, 655360, 7, 0, 655360, 6, 0, 524288, 5, 0, 524288, 4, 0, 524288, 65537, 0, 1441795, 65536, 0, 1048577, 65537, 3, 655362, 65537, 4, 1048578, 65538, 4, 655363, 65538, 3, 1441795, 65537, 5, 655363, 65537, 7, 1441795, 65537, 10, 655363, 65536, 10, 1441793, 393224, 1, 1441794, 1, 10, 0, 1, 7, 0, 1, 5, 0, 2, 4, 0, 2, 3, 0, 1, 0, 0, 3, 0, 131072, 65540, 0, 524289, 131077, 0, 524289, 196614, 0, 524289, 262151, 0, 524289, 327688, 0, 524289, 0, 65525, 0, 0, 65526, 0, 0, 65527, 0, 0, 65528, 0, 0, 65529, 0, 0, 65530, 0, 0, 65531, 0, 0, 65532, 0, 0, 65533, 0, 0, 65534, 0, 0, 65535, 0, 1, 65525, 0, 1, 65526, 0, 1, 65527, 0, 1, 65528, 0, 1, 65529, 0, 1, 65530, 0, 1, 65531, 0, 1, 65532, 0, 1, 65533, 0, 1, 65534, 0, 1, 65535, 0, 2, 65525, 0, 2, 65526, 0, 2, 65527, 0, 2, 65528, 0, 2, 65529, 0, 2, 65530, 0, 2, 65531, 0, 2, 65532, 0, 2, 65533, 0, 2, 65534, 0, 2, 65535, 0, 3, 65525, 0, 3, 65526, 0, 3, 65527, 0, 3, 65528, 0, 3, 65529, 0, 3, 65530, 0, 3, 65531, 0, 3, 65532, 0, 3, 65533, 0, 3, 65534, 0, 3, 65535, 0, 4, 65525, 0, 4, 65526, 0, 4, 65527, 0, 4, 65528, 0, 4, 65529, 0, 4, 65530, 0, 4, 65531, 0, 4, 65532, 0, 4, 65533, 0, 4, 65534, 0, 4, 65535, 0, 5, 65525, 0, 5, 65526, 0, 5, 65527, 0, 5, 65528, 0, 5, 65529, 0, 5, 65530, 0, 5, 65531, 0, 5, 65532, 0, 5, 65533, 0, 5, 65534, 0, 5, 65535, 0, 6, 65525, 0, 6, 65526, 0, 6, 65527, 0, 6, 65528, 0, 6, 65529, 0, 6, 65530, 0, 6, 65531, 0, 6, 65532, 0, 6, 65533, 0, 6, 65534, 0, 6, 65535, 0, 7, 65525, 0, 7, 65526, 0, 7, 65527, 0, 7, 65528, 0, 7, 65529, 0, 7, 65530, 0, 7, 65531, 0, 7, 65532, 0, 7, 65533, 0, 7, 65534, 0, 7, 65535, 0, 8, 65525, 0, 8, 65526, 0, 8, 65527, 0, 8, 65528, 0, 8, 65529, 0, 8, 65530, 0, 8, 65531, 0, 8, 65532, 0, 8, 65533, 0, 8, 65534, 0, 8, 65535, 0, 9, 65525, 0, 9, 65526, 0, 9, 65527, 0, 9, 65528, 0, 9, 65529, 0, 9, 65530, 0, 9, 65531, 0, 9, 65532, 0, 9, 65533, 0, 9, 65534, 0, 9, 65535, 0, 10, 65525, 0, 10, 65526, 0, 10, 65527, 0, 10, 65528, 0, 10, 65529, 0, 10, 65530, 0, 10, 65531, 0, 10, 65532, 0, 10, 65533, 0, 10, 65534, 0, 10, 65535, 0, 11, 65525, 0, 11, 65526, 0, 11, 65527, 0, 11, 65528, 0, 11, 65529, 0, 11, 65530, 0, 11, 65531, 0, 11, 65532, 0, 11, 65533, 0, 11, 65534, 0, 11, 65535, 0, 12, 65525, 0, 12, 65526, 0, 12, 65527, 0, 12, 65528, 0, 12, 65529, 0, 12, 65530, 0, 12, 65531, 0, 12, 65532, 0, 12, 65533, 0, 12, 65534, 0, 12, 65535, 0, 12, 0, 0, 12, 1, 0, 12, 2, 0, 12, 3, 0, 12, 4, 0, 12, 5, 0, 12, 6, 0, 12, 7, 0, 12, 8, 0, 12, 9, 0, 12, 10, 0, 13, 65525, 0, 13, 65526, 0, 13, 65527, 0, 13, 65528, 0, 13, 65529, 0, 13, 65530, 0, 13, 65531, 0, 13, 65532, 0, 13, 65533, 0, 13, 65534, 0, 13, 65535, 0, 13, 0, 0, 13, 1, 0, 13, 2, 0, 13, 3, 0, 13, 4, 0, 13, 5, 0, 13, 6, 0, 13, 7, 0, 13, 8, 0, 13, 9, 0, 13, 10, 0, 14, 65525, 0, 14, 65526, 0, 14, 65527, 0, 14, 65528, 0, 14, 65529, 0, 14, 65530, 0, 14, 65531, 0, 14, 65532, 0, 14, 65533, 0, 14, 65534, 0, 14, 65535, 0, 14, 0, 0, 14, 1, 0, 14, 2, 0, 14, 3, 0, 14, 4, 0, 14, 5, 0, 14, 6, 0, 14, 7, 0, 14, 8, 0, 14, 9, 0, 14, 10, 0, 15, 65525, 0, 15, 65526, 0, 15, 65527, 0, 15, 65528, 0, 15, 65529, 0, 15, 65530, 0, 15, 65531, 0, 15, 65532, 0, 15, 65533, 0, 15, 65534, 0, 15, 65535, 0, 15, 0, 0, 15, 1, 0, 15, 2, 0, 15, 3, 0, 15, 4, 0, 15, 5, 0, 15, 6, 0, 15, 7, 0, 15, 8, 0, 15, 9, 0, 15, 10, 0, 16, 65525, 0, 16, 65526, 0, 16, 65527, 0, 16, 65528, 0, 16, 65529, 0, 16, 65530, 0, 16, 65531, 0, 16, 65532, 0, 16, 65533, 0, 16, 65534, 0, 16, 65535, 0, 16, 0, 0, 16, 1, 0, 16, 2, 0, 16, 3, 0, 16, 4, 0, 16, 5, 0, 16, 6, 0, 16, 7, 0, 16, 8, 0, 16, 9, 0, 16, 10, 0, 17, 65525, 0, 17, 65526, 0, 17, 65527, 0, 17, 65528, 0, 17, 65529, 0, 17, 65530, 0, 17, 65531, 0, 17, 65532, 0, 17, 65533, 0, 17, 65534, 0, 17, 65535, 0, 17, 0, 0, 17, 1, 0, 17, 2, 0, 17, 3, 0, 17, 4, 0, 17, 5, 0, 17, 6, 0, 17, 7, 0, 17, 8, 0, 17, 9, 0, 17, 10, 0, 18, 65525, 0, 18, 65526, 0, 18, 65527, 0, 18, 65528, 0, 18, 65529, 0, 18, 65530, 0, 18, 65531, 0, 18, 65532, 0, 18, 65533, 0, 18, 65534, 0, 18, 65535, 0, 18, 0, 0, 18, 1, 0, 18, 2, 0, 18, 3, 0, 18, 4, 0, 18, 5, 0, 18, 6, 0, 18, 7, 0, 18, 8, 0, 18, 9, 0, 18, 10, 0, 19, 65525, 0, 19, 65526, 0, 19, 65527, 0, 19, 65528, 0, 19, 65529, 0, 19, 65530, 0, 19, 65531, 0, 19, 65532, 0, 19, 65533, 0, 19, 65534, 0, 19, 65535, 0, 19, 0, 0, 19, 1, 0, 19, 2, 0, 19, 3, 0, 19, 4, 0, 19, 5, 0, 19, 6, 0, 19, 7, 0, 19, 8, 0, 19, 9, 0, 19, 10, 0, 20, 65525, 0, 20, 65526, 0, 20, 65527, 0, 20, 65528, 0, 20, 65529, 0, 20, 65530, 0, 20, 65531, 0, 20, 65532, 0, 20, 65533, 0, 20, 65534, 0, 20, 65535, 0, 20, 0, 0, 20, 1, 0, 20, 2, 0, 20, 3, 0, 20, 4, 0, 20, 5, 0, 20, 6, 0, 20, 7, 0, 20, 8, 0, 20, 9, 0, 20, 10, 0, 21, 65525, 0, 21, 65526, 0, 21, 65527, 0, 21, 65528, 0, 21, 65529, 0, 21, 65530, 0, 21, 65531, 0, 21, 65532, 0, 21, 65533, 0, 21, 65534, 0, 21, 65535, 0, 21, 0, 0, 21, 1, 0, 21, 2, 0, 21, 3, 0, 21, 4, 0, 21, 5, 0, 21, 6, 0, 21, 7, 0, 21, 8, 0, 21, 9, 0, 21, 10, 0, 22, 65525, 0, 22, 65526, 0, 22, 65527, 0, 22, 65528, 0, 22, 65529, 0, 22, 65530, 0, 22, 65531, 0, 22, 65532, 0, 22, 65533, 0, 22, 65534, 0, 22, 65535, 0, 22, 0, 0, 22, 1, 0, 22, 2, 0, 22, 3, 0, 22, 4, 0, 22, 5, 0, 22, 6, 0, 22, 7, 0, 22, 8, 0, 22, 9, 0, 22, 10, 0, 23, 65525, 0, 23, 65526, 0, 23, 65527, 0, 23, 65528, 0, 23, 65529, 0, 23, 65530, 0, 23, 65531, 0, 23, 65532, 0, 23, 65533, 0, 23, 65534, 0, 23, 65535, 0, 23, 0, 0, 23, 1, 0, 23, 2, 0, 23, 3, 0, 23, 4, 0, 23, 5, 0, 23, 6, 0, 23, 7, 0, 23, 8, 0, 23, 9, 0, 23, 10, 0, 24, 65525, 0, 24, 65526, 0, 24, 65527, 0, 24, 65528, 0, 24, 65529, 0, 24, 65530, 0, 24, 65531, 0, 24, 65532, 0, 24, 65533, 0, 24, 65534, 0, 24, 65535, 0, 24, 0, 0, 24, 1, 0, 24, 2, 0, 24, 3, 0, 24, 4, 0, 24, 5, 0, 24, 6, 0, 24, 7, 0, 24, 8, 0, 24, 9, 0, 24, 10, 0, 25, 65525, 0, 25, 65526, 0, 25, 65527, 0, 25, 65528, 0, 25, 65529, 0, 25, 65530, 0, 25, 65531, 0, 25, 65532, 0, 25, 65533, 0, 25, 65534, 0, 25, 65535, 0, 25, 0, 0, 25, 1, 0, 25, 2, 0, 25, 3, 0, 25, 4, 0, 25, 5, 0, 25, 6, 0, 25, 7, 0, 25, 8, 0, 25, 9, 0, 25, 10, 0, 26, 65525, 0, 26, 65526, 0, 26, 65527, 0, 26, 65528, 0, 26, 65529, 0, 26, 65530, 0, 26, 65531, 0, 26, 65532, 0, 26, 65533, 0, 26, 65534, 0, 26, 65535, 0, 26, 0, 0, 26, 1, 0, 26, 2, 0, 26, 3, 0, 26, 4, 0, 26, 5, 0, 26, 6, 0, 26, 7, 0, 26, 8, 0, 26, 9, 0, 26, 10, 0, 27, 65525, 0, 27, 65526, 0, 27, 65527, 0, 27, 65528, 0, 27, 65529, 0, 27, 65530, 0, 27, 65531, 0, 27, 65532, 0, 27, 65533, 0, 27, 65534, 0, 27, 65535, 0, 27, 0, 0, 27, 1, 0, 27, 2, 0, 27, 3, 0, 27, 4, 0, 27, 5, 0, 27, 6, 0, 27, 7, 0, 27, 8, 0, 27, 9, 0, 27, 10, 0, 65555, 6, 655360, 65555, 5, 655360, 65554, 4, 655360, 65552, 2, 655360, 65552, 1, 655360, 65551, 0, 655360, 65551, 65533, 655360, 65551, 65532, 655360, 65552, 65532, 655360, 65552, 65533, 655360, 65553, 65533, 655360, 65556, 2, 655360, 65556, 3, 655360, 65557, 3, 655360, 65557, 4, 655360, 65556, 4, 655360, 65555, 4, 655360, 65552, 0, 655360, 65542, 65529, 655360, 65543, 65529, 655360, 65543, 65530, 655360, 65544, 65530, 655360, 65545, 65530, 655360, 65546, 65530, 655360, 65547, 65530, 655360, 65547, 65529, 655360, 65547, 65528, 655360, 65546, 65528, 655360, 65545, 65527, 655360, 65544, 65527, 655360, 65543, 65527, 655360, 65542, 65527, 655360, 65541, 65527, 655360, 65540, 65527, 655360, 65540, 65528, 655360, 65541, 65528, 655360, 65542, 65528, 655360, 65544, 65529, 655360, 65545, 65529, 655360, 65546, 65529, 655360, 65543, 65528, 655360, 65544, 65528, 655360, 65545, 65528, 655360, 65561, 65532, 655360, 65560, 65531, 655360, 65559, 65530, 655360, 65558, 65529, 655360, 65558, 65528, 655360, 65559, 65528, 655360, 65559, 65529, 655360, 65560, 65529, 655360, 65560, 65530, 655360, 65561, 65530, 655360, 65561, 65531, 655360, 65562, 65532, 655360, 65557, 65528, 655360, 65561, 6, 655360, 65561, 5, 655360, 65561, 4, 655360, 65560, 3, 655360, 65560, 2, 655360, 65560, 1, 655360, 65561, 2, 655360, 65561, 3, 655360, 65562, 4, 655360, 65562, 5, 655360, 65562, 6, 655360, 65558, 4, 1, 65558, 3, 1, 65552, 65531, 1048577, 65551, 65531, 1048577, 65548, 65530, 1, 65548, 65529, 1, 65548, 65528, 1, 65545, 65526, 1048577, 65544, 65526, 1048577, 65543, 65526, 1048577, 65542, 65526, 1048577, 65541, 65526, 1048577, 65540, 65526, 1048577, 65548, 65527, 1441795, 65546, 65526, 1441795, 65547, 65527, 1048577, 65546, 65527, 655362, 65539, 65526, 3, 65539, 65527, 655361, 65539, 65528, 655361, 65556, 0, 1, 65558, 2, 1441795, 65557, 1, 1441795, 65557, 2, 655362, 65556, 1, 655362, 65553, 65532, 655362, 65554, 65533, 1, 65556, 65535, 1441795, 65554, 65532, 1441795, 65553, 65531, 1441795, 65558, 5, 655363, 65556, 7, 655363, 65556, 6, 1, 65556, 5, 1048578, 65557, 5, 1441793, 65551, 1, 1441793, 65550, 1, 1441793, 65550, 65535, 1441794, 65549, 65535, 3, 65549, 1, 1048579, 65549, 0, 655361, 65550, 0, 655360, 65550, 65531, 3, 65550, 65532, 655361, 65550, 65533, 655361, 131079, 65528, 655360, 131080, 65528, 655360, 131081, 65529, 655360, 131080, 65529, 655360, 131090, 2, 655360, 131090, 1, 655360, 131089, 1, 655360, 131089, 0, 655360, 131088, 65535, 655360, 131089, 65535, 655360, 131090, 0, 655360, 131082, 65529, 1, 131080, 65527, 1048577, 131079, 65527, 1048577, 131078, 65528, 655361, 131081, 65530, 1441793, 131080, 65530, 1441793, 131082, 65528, 1441795, 131081, 65527, 1441795, 131081, 65528, 655362, 131078, 65527, 3, 131078, 65529, 1048579, 131079, 65530, 1048579, 131079, 65529, 2, 65541, 65529, 2, 65542, 65530, 2, 65539, 65529, 1048579, 65542, 65531, 1048579, 65540, 65529, 1441793, 65543, 65531, 1441793, 65544, 65531, 1441793, 65545, 65531, 1441793, 65546, 65531, 1441793, 65541, 65530, 1048579, 65548, 65531, 655363, 65547, 65531, 1441793, 131082, 65530, 655363, 65550, 65534, 655361, 131091, 2, 1, 131091, 1, 1, 131091, 0, 1, 131089, 65534, 1048577, 131088, 65534, 1048577, 131090, 65535, 655362, 131091, 65535, 1441795, 131088, 0, 655361, 131087, 65535, 655361, 131087, 65534, 3, 131088, 2, 1048579, 131089, 3, 1048579, 131089, 2, 2, 131088, 1, 655361, 131090, 3, 1441793, 131091, 3, 655363, 65560, 65527, 1441795, 65561, 65528, 1441795, 65562, 65529, 1441795, 65563, 65531, 1441795, 65563, 65533, 655363, 65559, 65532, 1048579, 65560, 65533, 1048579, 65558, 65531, 1048579, 65557, 65530, 1048579, 65556, 65529, 1048579, 65556, 65527, 3, 65561, 65533, 1441793, 65562, 65533, 1441793, 65556, 65528, 655361, 65559, 65527, 1048577, 65558, 65527, 1048577, 65557, 65527, 1048577, 65562, 65530, 1, 65562, 65531, 655362, 65561, 65529, 655362, 65560, 65528, 655362, 65563, 65532, 1, 65557, 65529, 2, 65558, 65530, 2, 65559, 65531, 2, 65560, 65532, 2, 393227, 3, 0, 393227, 2, 0, 393227, 1, 0, 393227, 0, 0, 393226, 65535, 0, 393226, 65534, 0, 393226, 65533, 0, 393226, 65532, 0, 393226, 65531, 0, 393226, 65530, 0, 393225, 65530, 0, 393227, 65530, 0, 393227, 65529, 0, 393227, 65528, 0, 393226, 65528, 0, 393225, 65528, 0, 393225, 65529, 0, 393226, 65529, 0, 393224, 65528, 655361, 327687, 65528, 655361, 262150, 65528, 655361, 196613, 65528, 655361, 131076, 65528, 655361, 131077, 65528, 524289, 196614, 65528, 524289, 262151, 65528, 524289, 327688, 65528, 524289, 393228, 1, 0, 393229, 1, 0, 393230, 1, 1, 327695, 1, 1, 262160, 1, 1, 196625, 1, 1, 196624, 1, 131073, 262159, 1, 131073, 327694, 1, 131073, 65560, 5, 655361, 65560, 6, 655361, 65561, 7, 1441793, 65562, 7, 1441793, 65559, 1, 655361, 65559, 2, 655361, 65559, 3, 655361, 65560, 0, 1048577, 65562, 3, 1, 65562, 2, 1, 65563, 4, 1, 65563, 5, 1, 65563, 6, 1, 65563, 7, 655363, 65560, 7, 1048579, 65559, 4, 1048579, 65560, 4, 2, 65559, 0, 3, 65561, 0, 1441795, 65561, 1, 1, 131090, 65534, 1441795, 65555, 65535, 524288) +"cells": PackedInt32Array(0, 0, 0, 0, 10, 0, 1, 3, 0, 1, 4, 0, 1, 6, 0, 2, 0, 0, 2, 1, 0, 2, 2, 0, 2, 5, 0, 2, 6, 0, 2, 7, 0, 2, 8, 0, 2, 9, 0, 2, 10, 0, 3, 1, 0, 3, 2, 0, 3, 3, 0, 3, 4, 0, 3, 5, 0, 3, 6, 0, 3, 7, 0, 3, 8, 0, 3, 9, 0, 3, 10, 0, 4, 1, 0, 4, 2, 0, 4, 3, 0, 4, 4, 0, 4, 5, 0, 4, 6, 0, 4, 7, 0, 4, 8, 0, 4, 9, 0, 4, 10, 0, 5, 1, 0, 5, 2, 0, 5, 3, 0, 5, 4, 0, 5, 5, 0, 5, 6, 0, 5, 7, 0, 5, 8, 0, 5, 9, 0, 5, 10, 0, 6, 1, 0, 6, 2, 0, 6, 3, 0, 6, 4, 0, 6, 5, 0, 6, 6, 0, 6, 7, 0, 6, 8, 0, 6, 9, 0, 6, 10, 0, 7, 2, 0, 7, 3, 0, 7, 4, 0, 7, 5, 0, 7, 6, 0, 7, 7, 0, 7, 8, 0, 7, 9, 0, 7, 10, 0, 8, 2, 0, 8, 3, 0, 8, 4, 0, 8, 5, 0, 8, 6, 0, 8, 7, 0, 8, 8, 0, 8, 9, 0, 8, 10, 0, 9, 1, 0, 9, 2, 0, 9, 3, 0, 9, 4, 0, 9, 5, 0, 9, 6, 0, 9, 7, 0, 9, 8, 0, 9, 9, 0, 9, 10, 0, 10, 0, 0, 10, 1, 0, 10, 2, 0, 10, 3, 0, 10, 4, 0, 10, 5, 0, 10, 6, 0, 10, 7, 0, 10, 8, 0, 10, 9, 0, 10, 10, 0, 11, 0, 0, 11, 1, 0, 11, 2, 0, 11, 3, 0, 11, 4, 0, 11, 5, 0, 11, 6, 0, 11, 7, 0, 11, 8, 0, 11, 9, 0, 11, 10, 0, 65536, 1, 0, 65536, 2, 0, 65537, 1, 1, 65537, 2, 1, 65536, 3, 0, 65536, 4, 0, 65536, 5, 0, 65536, 6, 0, 65536, 7, 0, 65536, 8, 0, 65536, 9, 0, 65537, 8, 1, 65537, 9, 1, 8, 1, 0, 7, 1, 0, 393226, 0, 655360, 393226, 1, 655360, 393225, 1, 655360, 393225, 2, 655360, 393226, 2, 655360, 393225, 3, 655360, 393226, 3, 655360, 9, 0, 655360, 8, 0, 655360, 7, 0, 655360, 6, 0, 524288, 5, 0, 524288, 4, 0, 524288, 65537, 0, 1441795, 65536, 0, 1048577, 65537, 3, 655362, 65537, 4, 1048578, 65538, 4, 655363, 65538, 3, 1441795, 65537, 5, 655363, 65537, 7, 1441795, 65537, 10, 655363, 65536, 10, 1441793, 1, 10, 0, 1, 7, 0, 1, 5, 0, 2, 4, 0, 2, 3, 0, 1, 0, 0, 3, 0, 131072, 0, 65525, 0, 0, 65526, 0, 0, 65527, 0, 0, 65528, 0, 0, 65529, 0, 0, 65530, 0, 0, 65531, 0, 0, 65532, 0, 0, 65533, 0, 0, 65534, 0, 0, 65535, 0, 1, 65525, 0, 1, 65526, 0, 1, 65527, 0, 1, 65528, 0, 1, 65529, 0, 1, 65530, 0, 1, 65531, 0, 1, 65532, 0, 1, 65533, 0, 1, 65534, 0, 1, 65535, 0, 2, 65525, 0, 2, 65526, 0, 2, 65527, 0, 2, 65528, 0, 2, 65529, 0, 2, 65530, 0, 2, 65531, 0, 2, 65532, 0, 2, 65533, 0, 2, 65534, 0, 2, 65535, 0, 3, 65525, 0, 3, 65526, 0, 3, 65527, 0, 3, 65528, 0, 3, 65529, 0, 3, 65530, 0, 3, 65531, 0, 3, 65532, 0, 3, 65533, 0, 3, 65534, 0, 3, 65535, 0, 4, 65525, 0, 4, 65526, 0, 4, 65527, 0, 4, 65528, 0, 4, 65529, 0, 4, 65530, 0, 4, 65531, 0, 4, 65532, 0, 4, 65533, 0, 4, 65534, 0, 4, 65535, 0, 5, 65525, 0, 5, 65526, 0, 5, 65527, 0, 5, 65528, 0, 5, 65529, 0, 5, 65530, 0, 5, 65531, 0, 5, 65532, 0, 5, 65533, 0, 5, 65534, 0, 5, 65535, 0, 6, 65525, 0, 6, 65526, 0, 6, 65527, 0, 6, 65528, 0, 6, 65529, 0, 6, 65530, 0, 6, 65531, 0, 6, 65532, 0, 6, 65533, 0, 6, 65534, 0, 6, 65535, 0, 7, 65525, 0, 7, 65526, 0, 7, 65527, 0, 7, 65528, 0, 7, 65529, 0, 7, 65530, 0, 7, 65531, 0, 7, 65532, 0, 7, 65533, 0, 7, 65534, 0, 7, 65535, 0, 8, 65525, 0, 8, 65526, 0, 8, 65527, 0, 8, 65528, 0, 8, 65529, 0, 8, 65530, 0, 8, 65531, 0, 8, 65532, 0, 8, 65533, 0, 8, 65534, 0, 8, 65535, 0, 9, 65525, 0, 9, 65526, 0, 9, 65527, 0, 9, 65528, 0, 9, 65529, 0, 9, 65530, 0, 9, 65531, 0, 9, 65532, 0, 9, 65533, 0, 9, 65534, 0, 9, 65535, 0, 10, 65525, 0, 10, 65526, 0, 10, 65527, 0, 10, 65528, 0, 10, 65529, 0, 10, 65530, 0, 10, 65531, 0, 10, 65532, 0, 10, 65533, 0, 10, 65534, 0, 10, 65535, 0, 11, 65525, 0, 11, 65526, 0, 11, 65527, 0, 11, 65528, 0, 11, 65529, 0, 11, 65530, 0, 11, 65531, 0, 11, 65532, 0, 11, 65533, 0, 11, 65534, 0, 11, 65535, 0, 12, 65525, 0, 12, 65526, 0, 12, 65527, 0, 12, 65528, 0, 12, 65529, 0, 12, 65530, 0, 12, 65531, 0, 12, 65532, 0, 12, 65533, 0, 12, 65534, 0, 12, 65535, 0, 12, 0, 0, 12, 1, 0, 12, 2, 0, 12, 3, 0, 12, 4, 0, 12, 5, 0, 12, 6, 0, 12, 7, 0, 12, 8, 0, 12, 9, 0, 12, 10, 0, 13, 65525, 0, 13, 65526, 0, 13, 65527, 0, 13, 65528, 0, 13, 65529, 0, 13, 65530, 0, 13, 65531, 0, 13, 65532, 0, 13, 65533, 0, 13, 65534, 0, 13, 65535, 0, 13, 0, 0, 13, 1, 0, 13, 2, 0, 13, 3, 0, 13, 4, 0, 13, 5, 0, 13, 6, 0, 13, 7, 0, 13, 8, 0, 13, 9, 0, 13, 10, 0, 14, 65525, 0, 14, 65526, 0, 14, 65527, 0, 14, 65528, 0, 14, 65529, 0, 14, 65530, 0, 14, 65531, 0, 14, 65532, 0, 14, 65533, 0, 14, 65534, 0, 14, 65535, 0, 14, 0, 0, 14, 1, 0, 14, 2, 0, 14, 3, 0, 14, 4, 0, 14, 5, 0, 14, 6, 0, 14, 7, 0, 14, 8, 0, 14, 9, 0, 14, 10, 0, 15, 65525, 0, 15, 65526, 0, 15, 65527, 0, 15, 65528, 0, 15, 65529, 0, 15, 65530, 0, 15, 65531, 0, 15, 65532, 0, 15, 65533, 0, 15, 65534, 0, 15, 65535, 0, 15, 0, 0, 15, 1, 0, 15, 2, 0, 15, 3, 0, 15, 4, 0, 15, 5, 0, 15, 6, 0, 15, 7, 0, 15, 8, 0, 15, 9, 0, 15, 10, 0, 16, 65525, 0, 16, 65526, 0, 16, 65527, 0, 16, 65528, 0, 16, 65529, 0, 16, 65530, 0, 16, 65531, 0, 16, 65532, 0, 16, 65533, 0, 16, 65534, 0, 16, 65535, 0, 16, 0, 0, 16, 1, 0, 16, 2, 0, 16, 3, 0, 16, 4, 0, 16, 5, 0, 16, 6, 0, 16, 7, 0, 16, 8, 0, 16, 9, 0, 16, 10, 0, 17, 65525, 0, 17, 65526, 0, 17, 65527, 0, 17, 65528, 0, 17, 65529, 0, 17, 65530, 0, 17, 65531, 0, 17, 65532, 0, 17, 65533, 0, 17, 65534, 0, 17, 65535, 0, 17, 0, 0, 17, 1, 0, 17, 2, 0, 17, 3, 0, 17, 4, 0, 17, 5, 0, 17, 6, 0, 17, 7, 0, 17, 8, 0, 17, 9, 0, 17, 10, 0, 18, 65525, 0, 18, 65526, 0, 18, 65527, 0, 18, 65528, 0, 18, 65529, 0, 18, 65530, 0, 18, 65531, 0, 18, 65532, 0, 18, 65533, 0, 18, 65534, 0, 18, 65535, 0, 18, 0, 0, 18, 1, 0, 18, 2, 0, 18, 3, 0, 18, 4, 0, 18, 5, 0, 18, 6, 0, 18, 7, 0, 18, 8, 0, 18, 9, 0, 18, 10, 0, 19, 65525, 0, 19, 65526, 0, 19, 65527, 0, 19, 65528, 0, 19, 65529, 0, 19, 65530, 0, 19, 65531, 0, 19, 65532, 0, 19, 65533, 0, 19, 65534, 0, 19, 65535, 0, 19, 0, 0, 19, 1, 0, 19, 2, 0, 19, 3, 0, 19, 4, 0, 19, 5, 0, 19, 6, 0, 19, 7, 0, 19, 8, 0, 19, 9, 0, 19, 10, 0, 20, 65525, 0, 20, 65526, 0, 20, 65527, 0, 20, 65528, 0, 20, 65529, 0, 20, 65530, 0, 20, 65531, 0, 20, 65532, 0, 20, 65533, 0, 20, 65534, 0, 20, 65535, 0, 20, 0, 0, 20, 1, 0, 20, 2, 0, 20, 3, 0, 20, 4, 0, 20, 5, 0, 20, 6, 0, 20, 7, 0, 20, 8, 0, 20, 9, 0, 20, 10, 0, 21, 65525, 0, 21, 65526, 0, 21, 65527, 0, 21, 65528, 0, 21, 65529, 0, 21, 65530, 0, 21, 65531, 0, 21, 65532, 0, 21, 65533, 0, 21, 65534, 0, 21, 65535, 0, 21, 0, 0, 21, 1, 0, 21, 2, 0, 21, 3, 0, 21, 4, 0, 21, 5, 0, 21, 6, 0, 21, 7, 0, 21, 8, 0, 21, 9, 0, 21, 10, 0, 22, 65525, 0, 22, 65526, 0, 22, 65527, 0, 22, 65528, 0, 22, 65529, 0, 22, 65530, 0, 22, 65531, 0, 22, 65532, 0, 22, 65533, 0, 22, 65534, 0, 22, 65535, 0, 22, 0, 0, 22, 1, 0, 22, 2, 0, 22, 3, 0, 22, 4, 0, 22, 5, 0, 22, 6, 0, 22, 7, 0, 22, 8, 0, 22, 9, 0, 22, 10, 0, 23, 65525, 0, 23, 65526, 0, 23, 65527, 0, 23, 65528, 0, 23, 65529, 0, 23, 65530, 0, 23, 65531, 0, 23, 65532, 0, 23, 65533, 0, 23, 65534, 0, 23, 65535, 0, 23, 0, 0, 23, 1, 0, 23, 2, 0, 23, 3, 0, 23, 4, 0, 23, 5, 0, 23, 6, 0, 23, 7, 0, 23, 8, 0, 23, 9, 0, 23, 10, 0, 24, 65525, 0, 24, 65526, 0, 24, 65527, 0, 24, 65528, 0, 24, 65529, 0, 24, 65530, 0, 24, 65531, 0, 24, 65532, 0, 24, 65533, 0, 24, 65534, 0, 24, 65535, 0, 24, 0, 0, 24, 1, 0, 24, 2, 0, 24, 3, 0, 24, 4, 0, 24, 5, 0, 24, 6, 0, 24, 7, 0, 24, 8, 0, 24, 9, 0, 24, 10, 0, 25, 65525, 0, 25, 65526, 0, 25, 65527, 0, 25, 65528, 0, 25, 65529, 0, 25, 65530, 0, 25, 65531, 0, 25, 65532, 0, 25, 65533, 0, 25, 65534, 0, 25, 65535, 0, 25, 0, 0, 25, 1, 0, 25, 2, 0, 25, 3, 0, 25, 4, 0, 25, 5, 0, 25, 6, 0, 25, 7, 0, 25, 8, 0, 25, 9, 0, 25, 10, 0, 26, 65525, 0, 26, 65526, 0, 26, 65527, 0, 26, 65528, 0, 26, 65529, 0, 26, 65530, 0, 26, 65531, 0, 26, 65532, 0, 26, 65533, 0, 26, 65534, 0, 26, 65535, 0, 26, 0, 0, 26, 1, 0, 26, 2, 0, 26, 3, 0, 26, 4, 0, 26, 5, 0, 26, 6, 0, 26, 7, 0, 26, 8, 0, 26, 9, 0, 26, 10, 0, 27, 65525, 0, 27, 65526, 0, 27, 65527, 0, 27, 65528, 0, 27, 65529, 0, 27, 65530, 0, 27, 65531, 0, 27, 65532, 0, 27, 65533, 0, 27, 65534, 0, 27, 65535, 0, 27, 0, 0, 27, 1, 0, 27, 2, 0, 27, 3, 0, 27, 4, 0, 27, 5, 0, 27, 6, 0, 27, 7, 0, 27, 8, 0, 27, 9, 0, 27, 10, 0, 65555, 6, 655360, 65555, 5, 655360, 65554, 4, 655360, 65552, 2, 655360, 65552, 1, 655360, 65551, 0, 655360, 65551, 65533, 655360, 65551, 65532, 655360, 65552, 65532, 655360, 65552, 65533, 655360, 65553, 65533, 655360, 65556, 2, 655360, 65556, 3, 655360, 65557, 3, 655360, 65557, 4, 655360, 65556, 4, 655360, 65555, 4, 655360, 65552, 0, 655360, 65542, 65529, 655360, 65543, 65529, 655360, 65543, 65530, 655360, 65544, 65530, 655360, 65545, 65530, 655360, 65546, 65530, 655360, 65547, 65530, 655360, 65547, 65529, 655360, 65547, 65528, 655360, 65546, 65528, 655360, 65545, 65527, 655360, 65544, 65527, 655360, 65543, 65527, 655360, 65542, 65527, 655360, 65541, 65527, 655360, 65540, 65527, 655360, 65540, 65528, 655360, 65541, 65528, 655360, 65542, 65528, 655360, 65544, 65529, 655360, 65545, 65529, 655360, 65546, 65529, 655360, 65543, 65528, 655360, 65544, 65528, 655360, 65545, 65528, 655360, 65561, 65532, 655360, 65560, 65531, 655360, 65559, 65530, 655360, 65558, 65529, 655360, 65558, 65528, 655360, 65559, 65528, 655360, 65559, 65529, 655360, 65560, 65529, 655360, 65560, 65530, 655360, 65561, 65530, 655360, 65561, 65531, 655360, 65562, 65532, 655360, 65557, 65528, 655360, 65561, 6, 655360, 65561, 5, 655360, 65561, 4, 655360, 65560, 3, 655360, 65560, 2, 655360, 65560, 1, 655360, 65561, 2, 655360, 65561, 3, 655360, 65562, 4, 655360, 65562, 5, 655360, 65562, 6, 655360, 65558, 4, 1, 65558, 3, 1, 65552, 65531, 1048577, 65551, 65531, 1048577, 65548, 65530, 1, 65548, 65528, 1, 65545, 65526, 1048577, 65544, 65526, 1048577, 65543, 65526, 1048577, 65542, 65526, 1048577, 65541, 65526, 1048577, 65540, 65526, 1048577, 65548, 65527, 1441795, 65546, 65526, 1441795, 65547, 65527, 1048577, 65546, 65527, 655362, 65539, 65526, 3, 65539, 65527, 655361, 65539, 65528, 655361, 65556, 0, 1, 65558, 2, 1441795, 65557, 1, 1441795, 65557, 2, 655362, 65556, 1, 655362, 65553, 65532, 655362, 65554, 65533, 1, 65556, 65535, 1441795, 65554, 65532, 1441795, 65553, 65531, 1441795, 65558, 5, 655363, 65556, 7, 655363, 65556, 6, 1, 65556, 5, 1048578, 65557, 5, 1441793, 65551, 1, 1441793, 65550, 1, 1441793, 65550, 65535, 1441794, 65549, 65535, 3, 65549, 1, 1048579, 65549, 0, 655361, 65550, 0, 655360, 65550, 65531, 3, 65550, 65532, 655361, 65550, 65533, 655361, 131079, 65528, 655360, 131080, 65528, 655360, 131081, 65529, 655360, 131080, 65529, 655360, 131090, 2, 655360, 131090, 1, 655360, 131089, 1, 655360, 131089, 0, 655360, 131088, 65535, 655360, 131089, 65535, 655360, 131090, 0, 655360, 131082, 65529, 1, 131080, 65527, 1048577, 131079, 65527, 1048577, 131078, 65528, 655361, 131081, 65530, 1441793, 131080, 65530, 1441793, 131082, 65528, 1441795, 131081, 65527, 1441795, 131081, 65528, 655362, 131078, 65527, 3, 131078, 65529, 1048579, 131079, 65530, 1048579, 131079, 65529, 2, 65541, 65529, 2, 65542, 65530, 2, 65539, 65529, 1048579, 65542, 65531, 1048579, 65540, 65529, 1441793, 65543, 65531, 1441793, 65544, 65531, 1441793, 65545, 65531, 1441793, 65546, 65531, 1441793, 65541, 65530, 1048579, 65548, 65531, 655363, 65547, 65531, 1441793, 131082, 65530, 655363, 65550, 65534, 655361, 131091, 2, 1, 131091, 1, 1, 131091, 0, 1, 131089, 65534, 1048577, 131088, 65534, 1048577, 131090, 65535, 655362, 131091, 65535, 1441795, 131088, 0, 655361, 131087, 65535, 655361, 131087, 65534, 3, 131088, 2, 1048579, 131089, 3, 1048579, 131089, 2, 2, 131088, 1, 655361, 131090, 3, 1441793, 131091, 3, 655363, 65560, 65527, 1441795, 65561, 65528, 1441795, 65562, 65529, 1441795, 65563, 65531, 1441795, 65563, 65533, 655363, 65559, 65532, 1048579, 65560, 65533, 1048579, 65558, 65531, 1048579, 65557, 65530, 1048579, 65556, 65529, 1048579, 65556, 65527, 3, 65561, 65533, 1441793, 65562, 65533, 1441793, 65556, 65528, 655361, 65559, 65527, 1048577, 65558, 65527, 1048577, 65557, 65527, 1048577, 65562, 65530, 1, 65562, 65531, 655362, 65561, 65529, 655362, 65560, 65528, 655362, 65563, 65532, 1, 65557, 65529, 2, 65558, 65530, 2, 65559, 65531, 2, 65560, 65532, 2, 393227, 3, 0, 393227, 2, 0, 393227, 1, 0, 393226, 65535, 0, 393226, 65534, 0, 393226, 65533, 0, 393226, 65532, 0, 393226, 65531, 0, 393226, 65530, 0, 393227, 65529, 0, 393227, 65528, 0, 393226, 65528, 0, 393225, 65528, 0, 393225, 65529, 0, 393226, 65529, 0, 393224, 65528, 655361, 327687, 65528, 655361, 262150, 65528, 655361, 196613, 65528, 655361, 131076, 65528, 655361, 131077, 65528, 524289, 196614, 65528, 524289, 262151, 65528, 524289, 327688, 65528, 524289, 65560, 5, 655361, 65560, 6, 655361, 65561, 7, 1441793, 65562, 7, 1441793, 65559, 1, 655361, 65559, 2, 655361, 65559, 3, 655361, 65560, 0, 1048577, 65562, 3, 1, 65562, 2, 1, 65563, 4, 1, 65563, 5, 1, 65563, 6, 1, 65563, 7, 655363, 65560, 7, 1048579, 65559, 4, 1048579, 65560, 4, 2, 65559, 0, 3, 65561, 0, 1441795, 65561, 1, 1, 131090, 65534, 1441795, 65555, 65535, 524288, 65546, 5, 0, 65546, 6, 0, 65546, 7, 0, 65546, 9, 0, 65546, 10, 0, 131082, 6, 1441793, 65546, 8, 1441793, 0, 11, 1441792, 0, 12, 1441792, 0, 13, 1441792, 0, 14, 1441792, 0, 15, 1441792, 0, 16, 1441792, 0, 17, 1441792, 0, 18, 1441792, 0, 19, 1441792, 0, 20, 1441792, 0, 21, 1441792, 0, 22, 1441792, 0, 23, 1441792, 1, 11, 1441792, 1, 12, 1441792, 1, 13, 1441792, 1, 14, 1441792, 1, 15, 1441792, 1, 16, 1441792, 1, 17, 1441792, 1, 18, 1441792, 1, 19, 1441792, 1, 20, 1441792, 1, 21, 1441792, 1, 22, 1441792, 1, 23, 1441792, 2, 11, 1441792, 2, 12, 1441792, 2, 13, 1441792, 2, 14, 1441792, 2, 15, 1441792, 2, 16, 1441792, 2, 17, 1441792, 2, 18, 1441792, 2, 19, 1441792, 2, 20, 1441792, 2, 21, 1441792, 2, 22, 1441792, 2, 23, 1441792, 3, 11, 1441792, 3, 12, 1441792, 3, 13, 1441792, 3, 14, 1441792, 3, 15, 1441792, 3, 16, 1441792, 3, 17, 1441792, 3, 18, 1441792, 3, 19, 1441792, 3, 20, 1441792, 3, 21, 1441792, 3, 22, 1441792, 3, 23, 1441792, 4, 11, 1441792, 4, 12, 1441792, 4, 13, 1441792, 4, 14, 1441792, 4, 15, 1441792, 4, 16, 1441792, 4, 17, 1441792, 4, 18, 1441792, 4, 19, 1441792, 4, 20, 1441792, 4, 21, 1441792, 4, 22, 1441792, 4, 23, 1441792, 5, 11, 1441792, 5, 12, 1441792, 5, 13, 1441792, 5, 14, 1441792, 5, 15, 1441792, 5, 16, 1441792, 5, 17, 1441792, 5, 18, 1441792, 5, 19, 1441792, 5, 20, 1441792, 5, 21, 1441792, 5, 22, 1441792, 5, 23, 1441792, 6, 11, 1441792, 6, 12, 1441792, 6, 13, 1441792, 6, 14, 1441792, 6, 15, 1441792, 6, 16, 1441792, 6, 17, 1441792, 6, 18, 1441792, 6, 19, 1441792, 6, 20, 1441792, 6, 21, 1441792, 6, 22, 1441792, 6, 23, 1441792, 7, 11, 1441792, 7, 12, 1441792, 7, 13, 1441792, 7, 14, 1441792, 7, 15, 1441792, 7, 16, 1441792, 7, 17, 1441792, 7, 18, 1441792, 7, 19, 1441792, 7, 20, 1441792, 7, 21, 1441792, 7, 22, 1441792, 7, 23, 1441792, 8, 11, 1441792, 8, 12, 1441792, 8, 13, 1441792, 8, 14, 1441792, 8, 15, 1441792, 8, 16, 1441792, 8, 17, 1441792, 8, 18, 1441792, 8, 19, 1441792, 8, 20, 1441792, 8, 21, 1441792, 8, 22, 1441792, 8, 23, 1441792, 9, 11, 1441792, 9, 12, 1441792, 9, 13, 1441792, 9, 14, 1441792, 9, 15, 1441792, 9, 16, 1441792, 9, 17, 1441792, 9, 18, 1441792, 9, 19, 1441792, 9, 20, 1441792, 9, 21, 1441792, 9, 22, 1441792, 9, 23, 1441792, 10, 11, 1441792, 10, 12, 1441792, 10, 13, 1441792, 10, 14, 1441792, 10, 15, 1441792, 10, 16, 1441792, 10, 17, 1441792, 10, 18, 1441792, 10, 19, 1441792, 10, 20, 1441792, 10, 21, 1441792, 10, 22, 1441792, 10, 23, 1441792, 11, 11, 1441792, 11, 12, 1441792, 11, 13, 1441792, 11, 14, 1441792, 11, 15, 1441792, 11, 16, 1441792, 11, 17, 1441792, 11, 18, 1441792, 11, 19, 1441792, 11, 20, 1441792, 11, 21, 1441792, 11, 22, 1441792, 11, 23, 1441792, 12, 11, 1441792, 12, 12, 1441792, 12, 13, 1441792, 12, 14, 1441792, 12, 15, 1441792, 12, 16, 1441792, 12, 17, 1441792, 12, 18, 1441792, 12, 19, 1441792, 12, 20, 1441792, 12, 21, 1441792, 12, 22, 1441792, 12, 23, 1441792, 13, 11, 1441792, 13, 12, 1441792, 13, 13, 1441792, 13, 14, 1441792, 13, 15, 1441792, 13, 16, 1441792, 13, 17, 1441792, 13, 18, 1441792, 13, 19, 1441792, 13, 20, 1441792, 13, 21, 1441792, 13, 22, 1441792, 13, 23, 1441792, 14, 11, 1441792, 14, 12, 1441792, 14, 13, 1441792, 14, 14, 1441792, 14, 15, 1441792, 14, 16, 1441792, 14, 17, 1441792, 14, 18, 1441792, 14, 19, 1441792, 14, 20, 1441792, 14, 21, 1441792, 14, 22, 1441792, 14, 23, 1441792, 15, 11, 1441792, 15, 12, 1441792, 15, 13, 1441792, 15, 14, 1441792, 15, 15, 1441792, 15, 16, 1441792, 15, 17, 1441792, 15, 18, 1441792, 15, 19, 1441792, 15, 20, 1441792, 15, 21, 1441792, 15, 22, 1441792, 15, 23, 1441792, 16, 11, 1441792, 16, 12, 1441792, 16, 13, 1441792, 16, 14, 1441792, 16, 15, 1441792, 16, 16, 1441792, 16, 17, 1441792, 16, 18, 1441792, 16, 19, 1441792, 16, 20, 1441792, 16, 21, 1441792, 16, 22, 1441792, 16, 23, 1441792, 17, 11, 1441792, 17, 12, 1441792, 17, 13, 1441792, 17, 14, 1441792, 17, 15, 1441792, 17, 16, 1441792, 17, 17, 1441792, 17, 18, 1441792, 17, 19, 1441792, 17, 20, 1441792, 17, 21, 1441792, 17, 22, 1441792, 17, 23, 1441792, 18, 11, 1441792, 18, 12, 1441792, 18, 13, 1441792, 18, 14, 1441792, 18, 15, 1441792, 18, 16, 1441792, 18, 17, 1441792, 18, 18, 1441792, 18, 19, 1441792, 18, 20, 1441792, 18, 21, 1441792, 18, 22, 1441792, 18, 23, 1441792, 19, 11, 1441792, 19, 12, 1441792, 19, 13, 1441792, 19, 14, 1441792, 19, 15, 1441792, 19, 16, 1441792, 19, 17, 1441792, 19, 18, 1441792, 19, 19, 1441792, 19, 20, 1441792, 19, 21, 1441792, 19, 22, 1441792, 19, 23, 1441792, 20, 11, 1441792, 20, 12, 1441792, 20, 13, 1441792, 20, 14, 1441792, 20, 15, 1441792, 20, 16, 1441792, 20, 17, 1441792, 20, 18, 1441792, 20, 19, 1441792, 20, 20, 1441792, 20, 21, 1441792, 20, 22, 1441792, 20, 23, 1441792, 21, 11, 1441792, 21, 12, 1441792, 21, 13, 1441792, 21, 14, 1441792, 21, 15, 1441792, 21, 16, 1441792, 21, 17, 1441792, 21, 18, 1441792, 21, 19, 1441792, 21, 20, 1441792, 21, 21, 1441792, 21, 22, 1441792, 21, 23, 1441792, 22, 11, 1441792, 22, 12, 1441792, 22, 13, 1441792, 22, 14, 1441792, 22, 15, 1441792, 22, 16, 1441792, 22, 17, 1441792, 22, 18, 1441792, 22, 19, 1441792, 22, 20, 1441792, 22, 21, 1441792, 22, 22, 1441792, 22, 23, 1441792, 23, 11, 1441792, 23, 12, 1441792, 23, 13, 1441792, 23, 14, 1441792, 23, 15, 1441792, 23, 16, 1441792, 23, 17, 1441792, 23, 18, 1441792, 23, 19, 1441792, 23, 20, 1441792, 23, 21, 1441792, 23, 22, 1441792, 23, 23, 1441792, 24, 11, 1441792, 24, 12, 1441792, 24, 13, 1441792, 24, 14, 1441792, 24, 15, 1441792, 24, 16, 1441792, 24, 17, 1441792, 24, 18, 1441792, 24, 19, 1441792, 24, 20, 1441792, 24, 21, 1441792, 24, 22, 1441792, 24, 23, 1441792, 25, 11, 1441792, 25, 12, 1441792, 25, 13, 1441792, 25, 14, 1441792, 25, 15, 1441792, 25, 16, 1441792, 25, 17, 1441792, 25, 18, 1441792, 25, 19, 1441792, 25, 20, 1441792, 25, 21, 1441792, 25, 22, 1441792, 25, 23, 1441792, 26, 11, 1441792, 26, 12, 1441792, 26, 13, 1441792, 26, 14, 1441792, 26, 15, 1441792, 26, 16, 1441792, 26, 17, 1441792, 26, 18, 1441792, 26, 19, 1441792, 26, 20, 1441792, 26, 21, 1441792, 26, 22, 1441792, 26, 23, 1441792, 27, 11, 1441792, 27, 12, 1441792, 27, 13, 1441792, 27, 14, 1441792, 27, 15, 1441792, 27, 16, 1441792, 27, 17, 1441792, 27, 18, 1441792, 27, 19, 1441792, 27, 20, 1441792, 27, 21, 1441792, 27, 22, 1441792, 27, 23, 1441792, 393225, 11, 1441792, 393225, 12, 1441792, 393225, 13, 1441792, 393226, 11, 1441792, 393226, 12, 1441792, 393226, 13, 1441792, 393227, 11, 1441792, 393227, 12, 1441792, 393227, 13, 1441792, 393225, 19, 1441792, 393225, 20, 1441792, 393225, 21, 1441792, 393226, 19, 1441792, 393226, 20, 1441792, 393226, 21, 1441792, 393227, 19, 1441792, 393227, 20, 1441792, 393227, 21, 0, 393226, 14, 1441792, 393226, 15, 1441792, 393226, 16, 1441792, 393226, 17, 1441792, 393226, 18, 1441792, 393224, 2, 655361, 327687, 2, 655361, 262150, 2, 655361, 196613, 2, 655361, 131076, 2, 655361, 65539, 2, 655361, 65540, 2, 524289, 131077, 2, 524289, 196614, 2, 524289, 262151, 2, 524289, 327688, 2, 524289, 196625, 2, 1, 262160, 2, 1, 327695, 2, 1, 393230, 2, 1, 393228, 2, 0, 393229, 2, 0, 196624, 2, 131073, 262159, 2, 131073, 327694, 2, 131073, 393226, 65527, 0, 393225, 65527, 0, 393226, 65526, 0, 393226, 65525, 0, 393226, 65524, 0, 393224, 12, 0, 393228, 12, 0, 393226, 22, 0, 393226, 23, 0, 393228, 20, 0, 393223, 20, 655361, 393223, 12, 655361, 327686, 20, 655361, 262149, 20, 655361, 196612, 20, 655361, 131075, 20, 655361, 65538, 20, 655361, 393229, 20, 1, 327694, 20, 1, 262159, 20, 1, 196624, 20, 1, 131089, 20, 1, 65554, 20, 0, 65553, 20, 131073, 131088, 20, 131073, 196623, 20, 131073, 262158, 20, 131073, 327693, 20, 131073, 327687, 20, 524289, 262150, 20, 524289, 196613, 20, 524289, 131076, 20, 524289, 65539, 20, 524289, 327686, 12, 655361, 262149, 12, 655361, 196612, 12, 655361, 131075, 12, 655361, 65538, 12, 655361, 393229, 12, 1, 327694, 12, 1, 262159, 12, 1, 196624, 12, 1, 131089, 12, 1, 65554, 12, 1, 65539, 12, 524289, 131076, 12, 524289, 196613, 12, 524289, 262150, 12, 524289, 327687, 12, 524289, 327693, 12, 131073, 262158, 12, 131073, 196623, 12, 131073, 131088, 12, 131073, 65553, 12, 131073, 65542, 15, 0, 65542, 16, 0, 65541, 16, 0, 65541, 17, 0, 65540, 17, 1441793, 65539, 17, 0, 65538, 16, 0, 65539, 16, 0, 65540, 16, 0, 65551, 21, 0, 65552, 21, 0, 65552, 22, 0, 65553, 22, 0, 65553, 21, 0, 65554, 21, 0, 65555, 21, 1441793, 65554, 19, 0, 65555, 19, 0, 65555, 18, 0, 65556, 18, 0, 65556, 17, 0, 65557, 17, 0, 65557, 18, 0, 65557, 19, 0, 65556, 19, 0, 65556, 20, 0, 65555, 20, 0, 131093, 17, 0, 131092, 17, 0, 131091, 17, 0, 131092, 18, 0, 131093, 18, 0, 131094, 18, 0, 131094, 17, 0, 131094, 16, 0, 131094, 15, 0, 131094, 14, 0, 131095, 14, 0, 131095, 13, 0, 131096, 13, 0, 131096, 12, 0, 131097, 12, 0, 131097, 13, 0, 131097, 14, 0, 131096, 14, 0, 131096, 15, 0, 131095, 15, 0, 131095, 16, 0, 131096, 16, 0, 131096, 17, 0, 131097, 17, 0, 131097, 16, 0, 131098, 16, 0, 131098, 15, 0, 131097, 15, 0, 65563, 13, 0, 65562, 13, 0, 65562, 12, 0, 65562, 11, 0, 65561, 11, 0, 65560, 11, 655361, 65560, 12, 0, 65561, 12, 0, 65562, 10, 0, 65561, 10, 0, 65560, 10, 0, 65561, 9, 0, 65562, 9, 0, 65543, 16, 0, 65544, 16, 0, 65545, 16, 0, 65546, 16, 0, 65547, 16, 0, 65547, 17, 0, 65546, 17, 0, 65548, 17, 0, 65549, 17, 0, 65549, 16, 0, 65550, 16, 0, 65551, 16, 0, 65551, 15, 0, 65552, 15, 1048577, 65552, 16, 0, 65548, 16, 0, 65553, 15, 0, 65554, 15, 0, 65553, 16, 0, 65554, 22, 1, 131092, 19, 1441793, 131093, 19, 1441793, 131091, 18, 1441793, 131098, 13, 1, 131098, 12, 1, 65550, 17, 1441793, 65551, 17, 1441793, 65552, 17, 1441793, 65553, 17, 1441793, 65549, 18, 1441793, 65548, 18, 1441793, 65547, 18, 1441793, 65546, 18, 1441793, 65554, 16, 1441793, 65554, 14, 1048577, 65553, 14, 1048577, 65551, 14, 1048577, 65541, 15, 1048577, 65540, 15, 1048577, 65539, 15, 1048577, 65538, 15, 1048577, 65542, 14, 1048577, 65543, 15, 1048577, 65544, 15, 1048577, 65545, 15, 1048577, 65555, 7, 1441793, 65548, 65529, 131072, 65549, 65529, 1, 65550, 65529, 655361, 65551, 65529, 655361, 65552, 65529, 655360, 131088, 65529, 1, 131084, 65529, 1, 65553, 65529, 1, 65546, 11, 1441793, 393224, 20, 0, 393227, 65527, 0) } script = ExtResource("1_noarx") -metadata/_editor_floor_ = Vector3(0, 1, 0) +metadata/_custom_type_script = "uid://b61ea0hhhekmp" +metadata/_editor_floor_ = Vector3(0, 6, 0) [node name="Units" type="Node" parent="."] -[node name="MultiMeshInstance3D" type="MultiMeshInstance3D" parent="."] -multimesh = SubResource("MultiMesh_a0tk4") +[node name="Enemy" parent="Units" instance=ExtResource("6_wc5p8")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 2, 8) -[node name="Miner" parent="." instance=ExtResource("9_4arys")] +[node name="Enemy2" parent="Units" instance=ExtResource("6_wc5p8")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 2, 14) + +[node name="Enemy3" parent="Units" instance=ExtResource("6_wc5p8")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 2, 18) + +[node name="Enemy4" parent="Units" instance=ExtResource("6_wc5p8")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 2, 11) + +[node name="Enemy5" parent="Units" instance=ExtResource("6_wc5p8")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 2, 5) + +[node name="Buildings" type="Node3D" parent="."] +script = ExtResource("4_tcnuu") + +[node name="Miner" parent="Buildings" instance=ExtResource("9_4arys")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17, 1, 19) -[node name="CollisionShape3D" parent="Miner" index="1"] -disabled = false +[node name="NavObstacle" parent="Buildings/Miner" index="2"] +enabled = false -[node name="Producer" parent="Miner" index="6" node_paths=PackedStringArray("consumers")] +[node name="Producer" parent="Buildings/Miner" index="6" node_paths=PackedStringArray("consumers")] consumers = [NodePath("../../Conveyor/Consumer")] -[node name="Conveyor" parent="." instance=ExtResource("4_jka67")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17, 2, 18) +[node name="Conveyor" parent="Buildings" instance=ExtResource("4_jka67")] +transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 17, 2, 18) extra_distance_start = 0.25 extra_distance_end = 0.25 -[node name="Producer" parent="Conveyor" index="2" node_paths=PackedStringArray("consumers")] +[node name="Producer" parent="Buildings/Conveyor" index="2" node_paths=PackedStringArray("consumers")] consumers = [NodePath("../../Processor/Consumer")] -[node name="Processor" parent="." instance=ExtResource("3_a0tk4")] +[node name="Processor" parent="Buildings" instance=ExtResource("3_a0tk4")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17, 1, 15) -[node name="CollisionShape3D" parent="Processor" index="1"] -disabled = false - -[node name="Producer" parent="Processor" index="3" node_paths=PackedStringArray("consumers")] +[node name="Producer" parent="Buildings/Processor" index="3" node_paths=PackedStringArray("consumers")] consumers = [NodePath("../../Conveyor2/Consumer")] -[node name="Conveyor2" parent="." instance=ExtResource("4_jka67")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17, 2, 14) -curve = SubResource("Curve3D_i5arm") +[node name="NavObstacle" parent="Buildings/Processor" index="4"] +enabled = false + +[node name="Conveyor2" parent="Buildings" instance=ExtResource("4_jka67")] +transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 17, 2, 14) extra_distance_start = 0.25 extra_distance_end = 0.25 -[node name="Producer" parent="Conveyor2" index="2" node_paths=PackedStringArray("consumers")] +[node name="Producer" parent="Buildings/Conveyor2" index="2" node_paths=PackedStringArray("consumers")] consumers = [NodePath("../../Turret/Consumer")] -[node name="Turret" parent="." instance=ExtResource("6_i5arm")] +[node name="Turret" parent="Buildings" instance=ExtResource("6_i5arm")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17, 1, 11) lead_shot_factor = 0.015 -[node name="CollisionShape3D" parent="Turret" index="1"] -disabled = false +[node name="NavObstacle" parent="Buildings/Turret" index="2"] +enabled = false -[node name="Enemy" parent="." instance=ExtResource("6_wc5p8")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 2, 8) - -[node name="Enemy2" parent="." instance=ExtResource("6_wc5p8")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 2, 14) - -[node name="Enemy3" parent="." instance=ExtResource("6_wc5p8")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 2, 18) - -[node name="Enemy4" parent="." instance=ExtResource("6_wc5p8")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 2, 11) - -[node name="Enemy5" parent="." instance=ExtResource("6_wc5p8")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9, 2, 5) +[node name="MultiMeshInstance3D" type="MultiMeshInstance3D" parent="."] +multimesh = SubResource("MultiMesh_a0tk4") [node name="Spawner" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 52, 2, -20) script = ExtResource("7_jsk3o") spawn_scene = ExtResource("6_wc5p8") +spawn_time = 4.0 + +[node name="Spawner2" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21, 8, 47) +script = ExtResource("7_jsk3o") +spawn_scene = ExtResource("6_wc5p8") +spawn_time = 4.0 [node name="Bullet" parent="." instance=ExtResource("7_wc5p8")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21, 3, -3) @@ -417,8 +434,13 @@ grow_vertical = 2 [node name="HBoxContainer" type="HBoxContainer" parent="UI"] layout_mode = 1 -offset_right = 141.0 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -70.5 +offset_right = 70.5 offset_bottom = 88.0 +grow_horizontal = 2 [node name="FontIcon" type="Label" parent="UI/HBoxContainer"] layout_mode = 2 @@ -433,8 +455,60 @@ layout_mode = 2 text = "69" label_settings = SubResource("LabelSettings_cdqbm") -[editable path="Miner"] -[editable path="Conveyor"] -[editable path="Processor"] -[editable path="Conveyor2"] -[editable path="Turret"] +[node name="VBoxContainer" type="VBoxContainer" parent="UI"] +layout_mode = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="FPSLabel" type="Label" parent="UI/VBoxContainer"] +layout_mode = 2 +text = "FPS: 69" +label_settings = SubResource("LabelSettings_imku0") +script = ExtResource("14_wlxy5") + +[node name="Button" type="Button" parent="UI/VBoxContainer"] +layout_mode = 2 +text = "Miner" +icon = ExtResource("15_3v7ru") +icon_alignment = 1 +vertical_icon_alignment = 0 +script = ExtResource("17_tuemg") +place_scene = ExtResource("9_4arys") + +[node name="Button2" type="Button" parent="UI/VBoxContainer"] +layout_mode = 2 +text = "Processor" +icon = ExtResource("18_ealrb") +icon_alignment = 1 +vertical_icon_alignment = 0 +script = ExtResource("17_tuemg") +place_scene = ExtResource("3_a0tk4") + +[node name="Button3" type="Button" parent="UI/VBoxContainer"] +layout_mode = 2 +text = "Turret" +icon = ExtResource("19_jsnrv") +icon_alignment = 1 +vertical_icon_alignment = 0 +script = ExtResource("17_tuemg") +place_scene = ExtResource("6_i5arm") + +[node name="Button4" type="Button" parent="UI/VBoxContainer"] +layout_mode = 2 +text = "Conveyor" +icon = ExtResource("20_jsnrv") +icon_alignment = 1 +vertical_icon_alignment = 0 +script = ExtResource("17_tuemg") +place_scene = ExtResource("4_jka67") + +[connection signal="place_requested" from="UI/VBoxContainer/Button" to="Buildings" method="start_placement"] +[connection signal="place_requested" from="UI/VBoxContainer/Button2" to="Buildings" method="start_placement"] +[connection signal="place_requested" from="UI/VBoxContainer/Button3" to="Buildings" method="start_placement"] +[connection signal="place_requested" from="UI/VBoxContainer/Button4" to="Buildings" method="start_placement"] + +[editable path="Buildings/Miner"] +[editable path="Buildings/Conveyor"] +[editable path="Buildings/Processor"] +[editable path="Buildings/Conveyor2"] +[editable path="Buildings/Turret"] diff --git a/objects/buildings/building.tscn b/objects/buildings/building.tscn index be3f227..695a3de 100644 --- a/objects/buildings/building.tscn +++ b/objects/buildings/building.tscn @@ -30,11 +30,10 @@ mesh = SubResource("BoxMesh_cee1v") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) shape = SubResource("BoxShape3D_k07no") -disabled = true [node name="NavObstacle" type="Node3D" parent="."] script = ExtResource("2_0gk2u") -make_solid = false +enabled = true [node name="NavigationObstacle3D" type="NavigationObstacle3D" parent="."] radius = 2.0 @@ -47,3 +46,9 @@ navigation_mesh = SubResource("NavigationMesh_0gk2u") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) visible = false mesh = SubResource("QuadMesh_oywkk") + +[node name="Label3D" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.00872, 0) +billboard = 1 +text = "Input: 1 +Output: 2" diff --git a/objects/buildings/conveyor.tscn b/objects/buildings/conveyor.tscn index a1422d0..eb89709 100644 --- a/objects/buildings/conveyor.tscn +++ b/objects/buildings/conveyor.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=8 format=3 uid="uid://dhfqv26h4i0i3"] +[gd_scene load_steps=10 format=3 uid="uid://dhfqv26h4i0i3"] [ext_resource type="Script" uid="uid://cnoyykkcidp1d" path="res://scripts/buildings/conveyor.gd" id="1_m8ga5"] [ext_resource type="ArrayMesh" uid="uid://bv225xw8xssl4" path="res://assets/models/Conveyor.obj" id="2_dyib0"] @@ -6,25 +6,36 @@ [ext_resource type="Script" uid="uid://c4fquatkjmsgu" path="res://scripts/building_components/producer.gd" id="4_d3uke"] [ext_resource type="ArrayMesh" uid="uid://c6yj8uwsgqxv0" path="res://assets/models/Ingot.obj" id="5_w2262"] -[sub_resource type="Curve3D" id="Curve3D_r3fl7"] +[sub_resource type="Curve3D" id="Curve3D_m8ga5"] _data = { -"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -2), +"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2), "tilts": PackedFloat32Array(0, 0) } point_count = 2 +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_m8ga5"] +albedo_color = Color(0.0703125, 0.0703125, 0.0703125, 1) + +[sub_resource type="BoxMesh" id="BoxMesh_dyib0"] +material = SubResource("StandardMaterial3D_m8ga5") +size = Vector3(0.5, 0.3, 1) + [sub_resource type="MultiMesh" id="MultiMesh_6iypd"] transform_format = 1 instance_count = 1 mesh = ExtResource("5_w2262") buffer = PackedFloat32Array(1, 8.40779e-44, 8.54792e-44, 9.10844e-44, 8.54792e-44, 1, 9.10844e-44, 0.325, 8.82818e-44, 9.10844e-44, 1, 8.96831e-44) -[node name="Conveyor" type="Path3D"] -curve = SubResource("Curve3D_r3fl7") +[node name="Conveyor" type="Node3D"] script = ExtResource("1_m8ga5") item_offset = Vector3(0, 0.325, 0) +spacing = 0.5 -[node name="PathMesh3D" type="PathMesh3D" parent="." node_paths=PackedStringArray("path_3d")] +[node name="Path3D" type="Path3D" parent="."] +curve = SubResource("Curve3D_m8ga5") + +[node name="PathMesh3D" type="PathMesh3D" parent="Path3D" node_paths=PackedStringArray("path_3d")] +mesh_transform = 1 mesh = ExtResource("2_dyib0") path_3d = NodePath("..") surface_0/tile_rotation = Vector3(0, 0, 0) @@ -43,19 +54,37 @@ surface_1/warp_along_curve = true surface_1/sample_cubic = false surface_1/tilt = true surface_1/offset = Vector2(0, 0) +visibility_range_end = 100.0 + +[node name="PathMesh3D2" type="PathMesh3D" parent="Path3D" node_paths=PackedStringArray("path_3d")] +mesh_transform = 1 +mesh = SubResource("BoxMesh_dyib0") +path_3d = NodePath("..") +surface_0/tile_rotation = Vector3(0, 0, 0) +surface_0/tile_rotation_order = 2 +surface_0/distribution = 0 +surface_0/alignment = 0 +surface_0/warp_along_curve = true +surface_0/sample_cubic = false +surface_0/tilt = true +surface_0/offset = Vector2(0, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0) +visibility_range_begin = 100.0 [node name="Consumer" type="Node" parent="."] script = ExtResource("3_vjqud") storage_size = 1 metadata/_custom_type_script = "uid://bshiyw2k3op02" -[node name="Producer" type="Node" parent="." node_paths=PackedStringArray("consumers")] +[node name="Producer" type="Node" parent="."] script = ExtResource("4_d3uke") -consumers = [null] metadata/_custom_type_script = "uid://c4fquatkjmsgu" [node name="MultiMeshInstance3D" type="MultiMeshInstance3D" parent="."] physics_interpolation_mode = 2 +visibility_range_end = 50.0 +visibility_range_end_margin = 50.0 +visibility_range_fade_mode = 1 multimesh = SubResource("MultiMesh_6iypd") [connection signal="item_added" from="Consumer" to="." method="consumer_has_item"] diff --git a/objects/buildings/miner.tscn b/objects/buildings/miner.tscn index 6acfd19..d32e49a 100644 --- a/objects/buildings/miner.tscn +++ b/objects/buildings/miner.tscn @@ -2,14 +2,14 @@ [ext_resource type="PackedScene" uid="uid://b1fnsl3k1mo5c" path="res://objects/buildings/building.tscn" id="1_8r86l"] [ext_resource type="Script" uid="uid://6dy54s70qf0x" path="res://scripts/buildings/miner.gd" id="2_k13eg"] -[ext_resource type="PackedScene" uid="uid://cjg7f5ktk20yq" path="res://assets/blends/Miner.blend" id="2_la0h1"] -[ext_resource type="Resource" uid="uid://dbkxys3mr5u80" path="res://items/metal.tres" id="3_8y6s2"] +[ext_resource type="PackedScene" uid="uid://dx13fyjv0d8st" path="res://assets/blends/Miner.blend" id="2_la0h1"] +[ext_resource type="Resource" uid="uid://dxlb2ixt3fx7l" path="res://items/ore.tres" id="3_k13eg"] [ext_resource type="Script" uid="uid://c4fquatkjmsgu" path="res://scripts/building_components/producer.gd" id="5_65oni"] [node name="Miner" instance=ExtResource("1_8r86l")] script = ExtResource("2_k13eg") -mined_item = ExtResource("3_8y6s2") mine_period = 1.0 +can_stack = false [node name="MeshInstance3D" parent="." index="0"] visible = false @@ -18,4 +18,5 @@ visible = false [node name="Producer" type="Node" parent="." index="6"] script = ExtResource("5_65oni") +produced_item = ExtResource("3_k13eg") metadata/_custom_type_script = "uid://c4fquatkjmsgu" diff --git a/objects/buildings/processor.tscn b/objects/buildings/processor.tscn index 419a293..cdc288f 100644 --- a/objects/buildings/processor.tscn +++ b/objects/buildings/processor.tscn @@ -5,8 +5,8 @@ [ext_resource type="Script" uid="uid://kcdpck5ufgcc" path="res://scripts/item.gd" id="3_3h7kv"] [ext_resource type="Resource" uid="uid://ed64yksg1y6m" path="res://items/bullets.tres" id="4_3h7kv"] [ext_resource type="Script" uid="uid://bshiyw2k3op02" path="res://scripts/building_components/consumer.gd" id="4_dx8de"] -[ext_resource type="Resource" uid="uid://dbkxys3mr5u80" path="res://items/metal.tres" id="4_miqab"] [ext_resource type="Script" uid="uid://c4fquatkjmsgu" path="res://scripts/building_components/producer.gd" id="5_p3dou"] +[ext_resource type="Resource" uid="uid://dxlb2ixt3fx7l" path="res://items/ore.tres" id="7_dx8de"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_evfwj"] albedo_color = Color(0.023159, 1, 0, 1) @@ -18,18 +18,19 @@ size = Vector3(2, 2, 2) [node name="Processor" instance=ExtResource("1_hxugg")] script = ExtResource("2_evfwj") ingredients = Dictionary[ExtResource("3_3h7kv"), int]({ -ExtResource("4_miqab"): 2 +ExtResource("7_dx8de"): 2 }) process_time = 1.0 -created_item = ExtResource("4_3h7kv") [node name="MeshInstance3D" parent="." index="0"] mesh = SubResource("BoxMesh_3h7kv") [node name="Consumer" type="Node" parent="." index="2"] script = ExtResource("4_dx8de") +accepted_items = Array[ExtResource("3_3h7kv")]([ExtResource("7_dx8de")]) metadata/_custom_type_script = "uid://bshiyw2k3op02" [node name="Producer" type="Node" parent="." index="3"] script = ExtResource("5_p3dou") +produced_item = ExtResource("4_3h7kv") metadata/_custom_type_script = "uid://c4fquatkjmsgu" diff --git a/objects/bullet.tscn b/objects/bullet.tscn index c27049a..fc9985a 100644 --- a/objects/bullet.tscn +++ b/objects/bullet.tscn @@ -1,9 +1,10 @@ -[gd_scene load_steps=17 format=3 uid="uid://cav22qho14o47"] +[gd_scene load_steps=25 format=3 uid="uid://cav22qho14o47"] [ext_resource type="Script" uid="uid://ca8i18spgok4i" path="res://scripts/bullet.gd" id="1_rsjgb"] [ext_resource type="Shader" uid="uid://jtlad4viky6j" path="res://addons/GPUTrail/shaders/trail.gdshader" id="1_ucnj8"] [ext_resource type="Shader" uid="uid://cxd8wfunwre2a" path="res://addons/GPUTrail/shaders/trail_draw_pass.gdshader" id="2_rsjgb"] [ext_resource type="Script" uid="uid://cdubip3a6325r" path="res://addons/GPUTrail/GPUTrail3D.gd" id="4_pt3a8"] +[ext_resource type="Texture2D" uid="uid://ct31fhxvcragr" path="res://addons/GPUTrail/defaults/curve.tres" id="4_rsjgb"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_3ndsa"] radius = 0.1 @@ -13,21 +14,12 @@ height = 0.3 shader = ExtResource("1_ucnj8") [sub_resource type="Gradient" id="Gradient_6sxjd"] -offsets = PackedFloat32Array(0, 0.150862, 0.642241, 1) -colors = PackedColorArray(1, 1, 1, 1, 1, 0.920817, 0, 0.849138, 0.695312, 0.044384, 0, 0.357759, 1, 1, 1, 0) +offsets = PackedFloat32Array(0, 0.0818966, 0.965517, 1) +colors = PackedColorArray(0.983734, 1, 0.952478, 0, 0.996515, 0.887301, 0.259986, 1, 1, 0.0352941, 0.0352941, 1, 1, 0, 0.0265193, 0) [sub_resource type="GradientTexture1D" id="GradientTexture1D_od3fb"] gradient = SubResource("Gradient_6sxjd") -[sub_resource type="Curve" id="Curve_tmmim"] -_limits = [0.0, 0.1, 0.0, 1.0] -bake_resolution = 16 -_data = [Vector2(0, 0.1), 0.0, -0.167493, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] -point_count = 2 - -[sub_resource type="CurveTexture" id="CurveTexture_7thed"] -curve = SubResource("Curve_tmmim") - [sub_resource type="Curve" id="Curve_ucnj8"] _data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.511628, 1), -1.30273, -1.30273, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] point_count = 3 @@ -41,9 +33,9 @@ shader = ExtResource("2_rsjgb") shader_parameter/tex = SubResource("CurveTexture_rsjgb") shader_parameter/uv_offset = Vector2(0, 0) shader_parameter/color_ramp = SubResource("GradientTexture1D_od3fb") -shader_parameter/curve = SubResource("CurveTexture_7thed") +shader_parameter/curve = ExtResource("4_rsjgb") shader_parameter/emmission_transform = Projection(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) -shader_parameter/flags = 45 +shader_parameter/flags = 47 [sub_resource type="QuadMesh" id="QuadMesh_ucnj8"] material = SubResource("ShaderMaterial_xbcx7") @@ -63,6 +55,54 @@ height = 0.3 radial_segments = 6 rings = 0 +[sub_resource type="Curve" id="Curve_rsjgb"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), -2.95938, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_4agyf"] +curve = SubResource("Curve_rsjgb") + +[sub_resource type="Gradient" id="Gradient_pt3a8"] +colors = PackedColorArray(1, 0.952478, 0.959973, 1, 1, 0, 0.00575256, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_fsn5s"] +gradient = SubResource("Gradient_pt3a8") + +[sub_resource type="Gradient" id="Gradient_od3fb"] +colors = PackedColorArray(1, 1, 1, 1, 0.995088, 1, 0, 1) + +[sub_resource type="GradientTexture1D" id="GradientTexture1D_tmmim"] +gradient = SubResource("Gradient_od3fb") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_7thed"] +particle_flag_align_y = true +direction = Vector3(1, 0.2, 0) +spread = 5.164 +initial_velocity_max = 67.46 +scale_max = 3.0 +color = Color(0.946782, 1, 0.245254, 1) +color_ramp = SubResource("GradientTexture1D_tmmim") +color_initial_ramp = SubResource("GradientTexture1D_fsn5s") +alpha_curve = SubResource("CurveTexture_4agyf") +turbulence_enabled = true +turbulence_influence_min = 0.0 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1r0jv"] +transparency = 1 +vertex_color_use_as_albedo = true +albedo_color = Color(0.978998, 1, 0.633145, 1) +emission_enabled = true +emission = Color(1, 1, 1, 1) +emission_energy_multiplier = 4.1 +billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false + +[sub_resource type="QuadMesh" id="QuadMesh_oabvv"] +material = SubResource("StandardMaterial3D_1r0jv") +size = Vector2(0.1, 0.1) + [node name="Bullet" type="RigidBody3D"] collision_layer = 16 collision_mask = 5 @@ -79,7 +119,7 @@ shape = SubResource("CapsuleShape3D_3ndsa") [node name="GPUTrail3D" type="GPUParticles3D" parent="."] physics_interpolation_mode = 2 -transform = Transform3D(0.233971, -0.972243, 0, 0.972243, 0.233971, 0, 0, 0, 1, 0, 0, 0) +transform = Transform3D(0.0233971, -0.0972244, 0, 0.0972244, 0.0233971, 0, 0, 0, 0.1, 0, 0, 0) amount = 19 lifetime = 19.0 explosiveness = 1.0 @@ -91,8 +131,8 @@ length = 19 length_seconds = 0.322034 texture = SubResource("CurveTexture_rsjgb") color_ramp = SubResource("GradientTexture1D_od3fb") -curve = SubResource("CurveTexture_7thed") vertical_texture = true +use_red_as_alpha = true billboard = true _defaults_have_been_set = true metadata/_custom_type_script = "uid://cdubip3a6325r" @@ -105,4 +145,12 @@ mesh = SubResource("CylinderMesh_xbcx7") [node name="AudioStreamPlayer3D" type="AudioStreamPlayer3D" parent="."] max_polyphony = 2 +[node name="GPUParticles3D" type="GPUParticles3D" parent="."] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 0, 0, 0) +visible = false +emitting = false +amount = 40 +process_material = SubResource("ParticleProcessMaterial_7thed") +draw_pass_1 = SubResource("QuadMesh_oabvv") + [connection signal="body_entered" from="." to="." method="_on_body_entered"] diff --git a/project.godot b/project.godot index b070377..66a33c3 100644 --- a/project.godot +++ b/project.godot @@ -27,7 +27,7 @@ config/name="TowerGame3D" run/main_scene="uid://bwftban1ppo17" config/features=PackedStringArray("4.4") config/icon="uid://u1hpdb62rxlc" -addons/icon_finder/preview_size=24 +addons/icon_finder/preview_size=25 [autoload] @@ -36,6 +36,20 @@ IconsFonts="*res://addons/icons-fonts/icons_fonts/IconsFonts.gd" [debug] settings/stdout/print_fps=true +gdscript/warnings/unassigned_variable=2 +gdscript/warnings/unassigned_variable_op_assign=2 +gdscript/warnings/shadowed_variable=2 +gdscript/warnings/shadowed_variable_base_class=2 +gdscript/warnings/shadowed_global_identifier=2 +gdscript/warnings/incompatible_ternary=2 +gdscript/warnings/untyped_declaration=1 +gdscript/warnings/unsafe_property_access=1 +gdscript/warnings/unsafe_method_access=1 +gdscript/warnings/unsafe_cast=1 +gdscript/warnings/unsafe_call_argument=2 +gdscript/warnings/static_called_on_instance=2 +gdscript/warnings/missing_tool=2 +gdscript/warnings/assert_always_false=2 shapes/navigation/enable_edge_connections=false shapes/navigation/enable_edge_connections_xray=false shapes/navigation/enable_edge_lines_xray=false @@ -90,6 +104,23 @@ camera_set_target={ "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":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":3,"canceled":false,"pressed":false,"double_click":false,"script":null) ] } +camera_zoom_in={ +"deadzone": 0.2, +"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":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} +camera_zoom_out={ +"deadzone": 0.2, +"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":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"canceled":false,"pressed":false,"double_click":false,"script":null) +] +} +building_place={ +"deadzone": 0.2, +"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":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) +] +} [layer_names] @@ -109,6 +140,7 @@ camera_set_target={ 3d/default_edge_connection_margin=0.6 3d/default_link_connection_radius=0.5 +pathfinding/max_threads=-1 [physics] @@ -118,6 +150,3 @@ common/physics_interpolation=true lights_and_shadows/directional_shadow/soft_shadow_filter_quality=0 lights_and_shadows/positional_shadow/soft_shadow_filter_quality=0 -anti_aliasing/quality/msaa_2d=1 -anti_aliasing/quality/msaa_3d=1 -anti_aliasing/quality/screen_space_aa=1 diff --git a/scripts/building_components/building.gd b/scripts/building_components/building.gd index ba57921..a3fd748 100644 --- a/scripts/building_components/building.gd +++ b/scripts/building_components/building.gd @@ -1,8 +1,23 @@ extends Node3D class_name Building +@export_category("Defence") @export var max_hp: int = 100 +@export_category("Stacking") +@export var can_stack: bool = true +@export var can_be_stacked_on: bool = true +@export var stack_position: Vector3 = Vector3(0,2,0) + +@onready var build_position: Vector3 = global_position + +@onready var nav_obstacle: NavObstable = $NavObstacle +@onready var consumer: Consumer = $Consumer +@onready var producer: Producer = $Producer +@onready var collision_shape: CollisionShape3D = $CollisionShape3D + +signal functional_changed(functional: bool) + enum BuildState { UNPLACED, BUILDING, @@ -10,11 +25,88 @@ enum BuildState { DESTROYED } +const PLACEMENT_POSITION_OK: int = 0b0001 +const PLACEMENT_FOUNDATION_REQUIRED: int = 0b0010 +const PLACEMENT_PART_ADDED: int = 0b0100 +const PLACEMENT_COMPLETED: int = 0b1000 + var hp: int = max_hp +var stacked_buildings: Array[Building] = [] + var build_state: BuildState = BuildState.READY: set(state): build_state = state + functional_changed.emit(is_functional()) + +func _ready() -> void: + if nav_obstacle != null: + functional_changed.connect(func(enable:bool): nav_obstacle.enabled = enable) + if consumer != null: + functional_changed.connect(func(enable:bool): consumer.enabled = enable) + if producer != null: + functional_changed.connect(func(enable:bool): producer.enabled = enable) + if collision_shape != null: + functional_changed.connect(func(enable:bool): collision_shape.disabled = !enable) + +func _process(delta: float) -> void: + if build_state == BuildState.UNPLACED: + global_position = global_position.lerp(build_position, 0.4) + + var debug_text: String = "" + debug_text += "State: %s\n" % build_state + if consumer != null: + var consumer_state: String + if consumer.enabled: + consumer_state = "OK" + else: + consumer_state = "Off" + debug_text += "Input: %s \nStorage: %d\n" % [consumer_state, consumer.storage_total] + if producer != null: + var producer_state = "OK" + if !producer.enabled: + producer_state = "Off" + elif !producer.can_produce(): + producer_state = "Blocked" + debug_text += "Output: %s\n" % producer_state + + $Label3D.text = debug_text func is_functional() -> bool: return build_state == BuildState.READY + +func _start_placement() -> void: + build_state = BuildState.UNPLACED + +func _end_placement() -> void: + build_state = BuildState.READY + +func _placement_select_building(building: Building, confirmed: bool) -> int: + while !building.stacked_buildings.is_empty(): + building = building.stacked_buildings[0] + + var stack_ok: bool = can_stack and building.can_be_stacked_on + var ret: int = 0 + + if stack_ok: + build_position = building.global_position + building.stack_position + ret |= PLACEMENT_POSITION_OK + + if confirmed and stack_ok: + global_position = build_position + building.stacked_buildings.append(self) + + ret |= PLACEMENT_COMPLETED + + return ret + +func _placement_select_position(pos: Vector3, confirmed: bool) -> int: + var ret: int = 0 + + ret |= PLACEMENT_POSITION_OK + build_position = Vector3(roundf(pos.x), ceilf(pos.y-0.01), roundf(pos.z)) + if confirmed: + build_state = BuildState.BUILDING + ret |= PLACEMENT_COMPLETED + + return ret diff --git a/scripts/building_components/building_part.gd b/scripts/building_components/building_part.gd new file mode 100644 index 0000000..baac83a --- /dev/null +++ b/scripts/building_components/building_part.gd @@ -0,0 +1,4 @@ +extends Node +class_name BuildingPart + +@export var enabled: bool = true diff --git a/scripts/building_components/building_part.gd.uid b/scripts/building_components/building_part.gd.uid new file mode 100644 index 0000000..b239157 --- /dev/null +++ b/scripts/building_components/building_part.gd.uid @@ -0,0 +1 @@ +uid://cfx1esms1e7py diff --git a/scripts/building_components/consumer.gd b/scripts/building_components/consumer.gd index 5594b5e..2802f2b 100644 --- a/scripts/building_components/consumer.gd +++ b/scripts/building_components/consumer.gd @@ -1,4 +1,4 @@ -extends Node +extends BuildingPart class_name Consumer signal item_added(item: Item) @@ -12,7 +12,8 @@ var storage: Dictionary[Item, int] = {} func can_accept_item(item: Item) -> bool: return ((storage_total < storage_size) or void_excess_items) \ - and (accepted_items.has(item) or accepted_items.is_empty()) + and (accepted_items.has(item) or accepted_items.is_empty()) \ + and enabled func offer_item(item: Item) -> bool: if !can_accept_item(item): @@ -30,13 +31,13 @@ func check_storage_for_item(item: Item) -> bool: return check_storage_for_items({item:1}) func check_storage_for_items(items: Dictionary[Item, int]) -> bool: - for item in items.keys(): + for item: Item in items.keys(): if storage.get(item, 0) < items[item]: return false return true func take_any_item_from_storage() -> Item: - for item in storage.keys(): + for item: Item in storage.keys(): if storage[item] >= 1: storage[item] -= 1 storage_total -= 1 @@ -49,7 +50,7 @@ func take_item_from_storage(item: Item) -> bool: func take_items_from_storage(items: Dictionary[Item, int]) -> bool: if !check_storage_for_items(items): return false - for item in items.keys(): + for item: Item in items.keys(): var old_count: int = storage.get(item, 0) storage.set(item, old_count - items[item]) storage_total -= items[item] diff --git a/scripts/building_components/producer.gd b/scripts/building_components/producer.gd index dfe90e6..aa9d113 100644 --- a/scripts/building_components/producer.gd +++ b/scripts/building_components/producer.gd @@ -1,11 +1,12 @@ -extends Node +extends BuildingPart class_name Producer +@export var produced_item: Item @export var output_period: float = 0.1 @export var max_outputs: int = 1 @export var consumers: Array[Consumer] -var next_consumer_idx: int = 0 +var last_consumer_idx: int = 0 #var output_timer: float = 0.0 #var output_item: Item @@ -14,16 +15,39 @@ var next_consumer_idx: int = 0 #if output_timer >= output_period: #output_timer -= output_period #output() +func can_produce() -> bool: + return can_send_item(produced_item) + +func produce() -> bool: + return send_item(produced_item) + +func can_send_item(item: Item) -> bool: + if !enabled: + return false + for consumer in consumers: + if consumer.can_accept_item(item): + return true + return false func send_item(item: Item) -> bool: + if !enabled: + return false if consumers.is_empty(): return false - next_consumer_idx += 1 - if next_consumer_idx >= consumers.size(): - next_consumer_idx = 0 + var start_idx: int = last_consumer_idx + var first_try: bool = true + var idx: int = start_idx + while idx != start_idx or first_try: + idx += 1 + if idx >= consumers.size(): + idx = 0 + first_try = false - var consumer: Consumer = consumers[next_consumer_idx] - var accepted: bool = consumer.offer_item(item) - return accepted + var consumer: Consumer = consumers[idx] + var accepted: bool = consumer.offer_item(item) + if accepted: + last_consumer_idx = idx + return true + return false diff --git a/scripts/building_manager.gd b/scripts/building_manager.gd new file mode 100644 index 0000000..7e34c75 --- /dev/null +++ b/scripts/building_manager.gd @@ -0,0 +1,43 @@ +extends Node3D +class_name BuildingManager + +@export_flags_3d_physics var buildings_layer_mask: int = 0b10 +var placing_building: Building = null + +func start_placement(scene: PackedScene) -> void: + var object: Node = scene.instantiate() + add_child(object) + if object is Building: + placing_building = object + placing_building._start_placement() + +func _input(event: InputEvent) -> void: + if placing_building == null: + return + if event is InputEventMouseButton and event.is_action("building_place"): + placement_mouse_input((event as InputEventMouseButton).global_position, true) + get_viewport().set_input_as_handled() + elif event is InputEventMouseMotion: + placement_mouse_input((event as InputEventMouseMotion).global_position, false) + get_viewport().set_input_as_handled() + +func placement_mouse_input(screen_position: Vector2, confirmed: bool) -> void: + # try to raycast to see what we clicked on/are hovering + var camera: Camera3D = get_viewport().get_camera_3d() + var ray_origin: Vector3 = camera.project_ray_origin(screen_position) + var ray_normal: Vector3 = ray_origin + camera.project_ray_normal(screen_position) * 200 + var params: PhysicsRayQueryParameters3D = PhysicsRayQueryParameters3D.create(ray_origin, ray_normal) + if placing_building.collision_shape != null: + params.exclude = [placing_building.get_rid()] + var result: Dictionary = get_world_3d().direct_space_state.intersect_ray(params) + + var placment_feedback: int = 0 + if result.has("collider") and result["collider"] is Building: + placment_feedback = placing_building._placement_select_building(result["collider"] as Building, confirmed) + elif result.has("position"): + DebugDraw3D.draw_sphere(result["position"] as Vector3) + placment_feedback = placing_building._placement_select_position(result["position"] as Vector3, confirmed) + + if placment_feedback & Building.PLACEMENT_COMPLETED: + placing_building._end_placement() + placing_building = null diff --git a/scripts/building_manager.gd.uid b/scripts/building_manager.gd.uid new file mode 100644 index 0000000..9e3540a --- /dev/null +++ b/scripts/building_manager.gd.uid @@ -0,0 +1 @@ +uid://bxd8ftp1hcf7e diff --git a/scripts/building_place_button.gd b/scripts/building_place_button.gd new file mode 100644 index 0000000..6c4cdd8 --- /dev/null +++ b/scripts/building_place_button.gd @@ -0,0 +1,11 @@ +@tool +extends Button + +signal place_requested(scene: PackedScene) +@export var place_scene: PackedScene: + set(value): + place_scene = value + text = place_scene.get_state().get_node_name(0) + +func _pressed() -> void: + place_requested.emit(place_scene) diff --git a/scripts/building_place_button.gd.uid b/scripts/building_place_button.gd.uid new file mode 100644 index 0000000..c5282d2 --- /dev/null +++ b/scripts/building_place_button.gd.uid @@ -0,0 +1 @@ +uid://tmyvv1p7co51 diff --git a/scripts/buildings/conveyor.gd b/scripts/buildings/conveyor.gd index 70ef88a..bb0a6ca 100644 --- a/scripts/buildings/conveyor.gd +++ b/scripts/buildings/conveyor.gd @@ -1,35 +1,111 @@ -extends Path3D +extends Building @export var speed: float = 1.0 @export var item_offset: Vector3 = Vector3(0,2.0,0) @export var extra_distance_start: float = 1.0 @export var extra_distance_end: float = 1.0 +@export var spacing: float = 1.0 var transported_items: Dictionary[Item, PackedFloat64Array] = {} +var belt_moving: bool = true +var closest_item: float = 0.0 -@onready var consumer: Consumer = $Consumer -@onready var producer: Producer = $Producer +@onready var path: Path3D = $Path3D @onready var multimesh: MultiMeshInstance3D = $MultiMeshInstance3D var test_timer: float = 0 @onready var test_item: Item = load("res://items/metal.tres") +var input_building: Building = null: + set(value): + if value.producer != null: + input_building = value + input_building.producer.consumers.append(consumer) +var output_building: Building = null: + set(value): + if value.consumer != null: + output_building = value + producer.consumers.append(output_building.consumer) + +var waypoints: Array[Vector3] = [] +var editing_waypoint: int = 0 + +func _placement_select_building(building: Building, confirmed: bool) -> int: + var ret: int = 0 + if input_building == null: + if building.producer != null: + ret |= PLACEMENT_POSITION_OK + if confirmed: + input_building = building + ret |= PLACEMENT_PART_ADDED + set_path_waypoint(building.global_position + Vector3(0,1,0), confirmed) + elif output_building == null and building != input_building: + if building.consumer != null: + ret |= PLACEMENT_POSITION_OK + if confirmed: + output_building = building + ret |= PLACEMENT_COMPLETED + set_path_waypoint(building.global_position + Vector3(0,1,0), confirmed) + return ret + #return super(building, confirmed) + +func _placement_select_position(pos: Vector3, confirmed: bool) -> int: + var ret: int = PLACEMENT_POSITION_OK + set_path_waypoint(pos.round() + Vector3(0,1,0), confirmed) + if confirmed: + ret |= PLACEMENT_PART_ADDED + return confirmed + +func set_path_waypoint(global_pos: Vector3, add: bool) -> void: + var local_pos: Vector3 + if editing_waypoint == 0: + global_position = global_pos + local_pos = Vector3() + else: + local_pos = to_local(global_pos) + while waypoints.size() <= editing_waypoint: + waypoints.append(Vector3()) + waypoints[editing_waypoint] = local_pos + if add: + editing_waypoint += 1 + update_path_from_waypoints() + +func update_path_from_waypoints() -> void: + path.curve.clear_points() + + for waypoint in waypoints: + path.curve.add_point(waypoint) + # find paths between the defined points + #for i in range(1, waypoints.size()): + #var a: Vector3 = to_global(waypoints[i-1]) + #var b: Vector3 = to_global(waypoints[i]) + #var route: PackedVector3Array = NavigationServer3D.map_get_path(NavigationServer3D.get_maps()[0], a, b, false, 1) + # + #for point in route: + #path.curve.add_point(to_local(point + Vector3(0,1,0))) + + + + # set the path3d's points to the path points + # adjust the control points to some uniform amount + pass + func _ready() -> void: multimesh.multimesh = multimesh.multimesh.duplicate() + path.curve = path.curve.duplicate() func _process(delta: float) -> void: - #test_timer += delta - #if test_timer >= 2.0: - #test_timer -= 2.0 - #add_item(test_item) + belt_moving = check_items_at_end() + consumer.enabled = belt_moving and (closest_item >= spacing) - var belt_moving: bool = check_items_at_end() + var movement: float = (delta * speed) + closest_item += movement if belt_moving: - for transported_item_type in transported_items.keys(): + for transported_item_type: Item in transported_items.keys(): var offsets: PackedFloat64Array = transported_items[transported_item_type] multimesh.multimesh.instance_count = offsets.size() for i in range(offsets.size()): - offsets[i] += (delta * speed) + offsets[i] += movement position_item(i, transported_item_type, offsets[i]) func consumer_has_item(item: Item) -> void: @@ -47,45 +123,47 @@ func add_item(item: Item) -> void: offsets = [] offsets.append(get_start_offset()) transported_items[item] = offsets + + closest_item = 0.0 func check_items_at_end() -> bool: var length: float = get_end_offset() - var belt_moving: bool = true - for transported_item_type in transported_items.keys(): + var ret: bool = true + for transported_item_type: Item in transported_items.keys(): var offsets: PackedFloat64Array = transported_items[transported_item_type] var to_delete: Array[int] = [] for i in range(offsets.size()): if offsets[i] >= length: var sent: bool = producer.send_item(transported_item_type) if !sent: - belt_moving = false + ret = false else: to_delete.append(i) for d in to_delete: offsets.remove_at(d) - return belt_moving + return ret func get_start_offset() -> float: return -extra_distance_start func get_end_offset() -> float: - return curve.get_baked_length() + extra_distance_end + return path.curve.get_baked_length() + extra_distance_end -func position_item(instance: int, item: Item, offset: float) -> void: +func position_item(instance: int, _item: Item, offset: float) -> void: var trans: Transform3D trans = sample_curve_with_extrapolation(offset).translated_local(item_offset) multimesh.multimesh.set_instance_transform(instance, trans) func sample_curve_with_extrapolation(offset: float) -> Transform3D: - var end_offset: float = curve.get_baked_length() + var end_offset: float = path.curve.get_baked_length() if offset <= 0: - var zero: Transform3D = curve.sample_baked_with_rotation(0) - var almost_zero: Transform3D = curve.sample_baked_with_rotation(0.1) + var zero: Transform3D = path.curve.sample_baked_with_rotation(0) + var almost_zero: Transform3D = path.curve.sample_baked_with_rotation(0.1) return almost_zero.interpolate_with(zero, (0.1-offset) * 10) elif offset > end_offset: - var end: Transform3D = curve.sample_baked_with_rotation(end_offset) - var almost_end: Transform3D = curve.sample_baked_with_rotation(end_offset-0.1) + var end: Transform3D = path.curve.sample_baked_with_rotation(end_offset) + var almost_end: Transform3D = path.curve.sample_baked_with_rotation(end_offset-0.1) return almost_end.interpolate_with(end, (offset - (end_offset - 0.1)) * 10) else: - return curve.sample_baked_with_rotation(offset) + return path.curve.sample_baked_with_rotation(offset) diff --git a/scripts/buildings/miner.gd b/scripts/buildings/miner.gd index 39f7ee6..d0c2b74 100644 --- a/scripts/buildings/miner.gd +++ b/scripts/buildings/miner.gd @@ -1,16 +1,16 @@ extends Building -@export var mined_item: Item = preload("res://items/metal.tres") +#@export var mined_item: Item = preload("res://items/metal.tres") @export var mine_period: float = 1.0 -@onready var producer: Producer = $Producer var mine_timer: float = 0.0 func _process(delta: float) -> void: + super(delta) mine_timer += delta if mine_timer >= mine_period: mine_timer -= mine_period mine() func mine() -> void: - producer.send_item(mined_item) + producer.produce() diff --git a/scripts/buildings/processor.gd b/scripts/buildings/processor.gd index 3a67f10..cfb20e1 100644 --- a/scripts/buildings/processor.gd +++ b/scripts/buildings/processor.gd @@ -2,15 +2,14 @@ extends Building @export var ingredients: Dictionary[Item, int] = {} @export var process_time: float = 1.0 -@export var created_item: Item +#@export var created_item: Item var process_timer: float = 0.0 var processing: bool = false -@onready var consumer: Consumer = $Consumer -@onready var producer: Producer = $Producer func _process(delta: float) -> void: - if is_functional(): + super(delta) + if is_functional() and producer.can_produce(): if !processing: processing = consume_ingredients() if processing: @@ -24,4 +23,4 @@ func consume_ingredients() -> bool: return consumer.take_items_from_storage(ingredients) func produce_item() -> void: - producer.send_item(created_item) + producer.produce() diff --git a/scripts/buildings/turret.gd b/scripts/buildings/turret.gd index 031bf66..9bdb763 100644 --- a/scripts/buildings/turret.gd +++ b/scripts/buildings/turret.gd @@ -8,7 +8,6 @@ extends Building @export var shot_impulse: float = 100 @export var lead_shot_factor: float = 0.01 -@onready var consumer: Consumer = $Consumer enum LoadState {UNLOADED, RELOADING, LOADED} @onready var ammo: int = 0 @@ -17,10 +16,11 @@ var cooldown_timer: float = 0.0 var reload_timer: float = 0.0 var current_target: Enemy = null -func _on_consumer_item_added(item: Item) -> void: +func _on_consumer_item_added(_item: Item) -> void: pass func _process(delta: float) -> void: + super(delta) if loaded == LoadState.UNLOADED: if consumer.take_any_item_from_storage(): #Engine.time_scale = 1.0 @@ -47,25 +47,24 @@ func check_target_status() -> void: func search_for_enemy() -> void: var enemies: Array[Node] = get_tree().get_nodes_in_group("Enemies") var closest: float = 9999999999 - for enemy in enemies: - if enemy is Enemy: - if !enemy.sighted: - continue - var distance_sqr = global_position.distance_squared_to(enemy.global_position) - if distance_sqr <= closest: - var params: PhysicsRayQueryParameters3D = PhysicsRayQueryParameters3D.new() - params.collision_mask = 0b00101 - params.from = to_global(fire_position) - params.to = enemy.global_position - var result: Dictionary = get_world_3d().direct_space_state.intersect_ray(params) - #DebugDraw3D.draw_line_hit(params.from, params.to, result["position"] if result.has("position") else Vector3(), result.has("position"), 0.25, Color.YELLOW, Color.BLACK, 1.0) - if result.has("collider"): - if !result["collider"] is PhysicsBody3D: - continue - var body: PhysicsBody3D = result["collider"] - if body is Enemy: - current_target = body - closest = body.global_position.distance_squared_to(global_position) + for enemy: Enemy in enemies: + if !enemy.sighted: + continue + var distance_sqr = global_position.distance_squared_to(enemy.global_position) + if distance_sqr <= closest: + var params: PhysicsRayQueryParameters3D = PhysicsRayQueryParameters3D.new() + params.collision_mask = 0b00101 + params.from = to_global(fire_position) + params.to = enemy.global_position + var result: Dictionary = get_world_3d().direct_space_state.intersect_ray(params) + #DebugDraw3D.draw_line_hit(params.from, params.to, result["position"] if result.has("position") else Vector3(), result.has("position"), 0.25, Color.YELLOW, Color.BLACK, 1.0) + if result.has("collider"): + if !result["collider"] is PhysicsBody3D: + continue + var body: PhysicsBody3D = result["collider"] + if body is Enemy: + current_target = body + closest = body.global_position.distance_squared_to(global_position) func fire_at_target() -> void: #Engine.time_scale = 0.1 @@ -74,8 +73,8 @@ func fire_at_target() -> void: bullet.global_position = to_global(fire_position) var aim_target: Vector3 = current_target.global_position - var range: float = global_position.distance_to(current_target.global_position) - aim_target += current_target.linear_velocity * lead_shot_factor * range + var target_range: float = global_position.distance_to(current_target.global_position) + aim_target += current_target.linear_velocity * lead_shot_factor * target_range DebugDraw3D.draw_sphere(aim_target, 0.25, Color.RED, 0.1) bullet.look_at(aim_target) diff --git a/scripts/bullet.gd b/scripts/bullet.gd index 154d943..8c4f934 100644 --- a/scripts/bullet.gd +++ b/scripts/bullet.gd @@ -10,7 +10,7 @@ func _on_body_entered(body: Node) -> void: var speed: float = linear_velocity.length() var damage: float = speed * damage_per_speed if damage >= min_damage: - body.hurt(damage) + (body as Unit).hurt(damage) func _process(delta: float) -> void: lifetime -= delta diff --git a/scripts/camera.gd b/scripts/camera.gd index 2ff8c01..71015ac 100644 --- a/scripts/camera.gd +++ b/scripts/camera.gd @@ -1,40 +1,50 @@ extends Camera3D +class_name GameCamera + +@export var keyboard_movement_speed: float = 10 +@export var maximum_movement_speed: float = 30 +@export var mouse_orbit_sensitivity: float = 0.003 +@export var zoom_sensitivity: float = 0.1 +@export var focus_follows_terrain: bool = true -@export var pan_speed: float = 10 var focus_offset: Vector3 = Vector3(10, 10, 10) var focus_object: Node3D = null var focus_position: Vector3 - -var last_mouse_position: Vector2 +var mouse_movement: Vector2 +var mouse_wheel_delta: int = 0 @onready var focus_marker: Node3D = $"Camera Focus" +@onready var viewport: Viewport = get_viewport() -func _physics_process(delta: float) -> void: - var mouse_position: Vector2 = get_viewport().get_mouse_position() - var ray_origin: Vector3 = project_ray_origin(mouse_position) - var ray_normal: Vector3 = ray_origin + project_ray_normal(mouse_position) * 200 - var params = PhysicsRayQueryParameters3D.create(ray_origin, ray_normal) - var result: Dictionary = get_world_3d().direct_space_state.intersect_ray(params) - if result.has("position"): - DebugDraw3D.draw_sphere(result["position"], 0.5, Color.REBECCA_PURPLE) - if Input.is_action_just_released("camera_set_target"): - if result.has("collider") and !(result["collider"] is GridMap): - focus_object = result["collider"] - else: - focus_object = null - focus_position = result["position"] +func _process(delta: float) -> void: + if Input.is_action_just_released("camera_set_target"): + var mouse_position: Vector2 = get_viewport().get_mouse_position() + var ray_origin: Vector3 = project_ray_origin(mouse_position) + var ray_normal: Vector3 = ray_origin + project_ray_normal(mouse_position) * 200 + var params: PhysicsRayQueryParameters3D = PhysicsRayQueryParameters3D.create(ray_origin, ray_normal) + var result: Dictionary = get_world_3d().direct_space_state.intersect_ray(params) + if result.has("position"): + #DebugDraw3D.draw_sphere(result["position"], 0.5, Color.REBECCA_PURPLE) + if result.has("collider") and !(result["collider"] is GridMap): + focus_object = result["collider"] + else: + focus_object = null + focus_position = result["position"] if focus_object != null: focus_position = focus_object.global_position process_focus_movement(delta) process_camera_rotation(delta) + process_camera_zoom(delta) var target_position: Vector3 = focus_position + focus_offset if target_position.distance_squared_to(global_position) > 0: - global_position = global_position.move_toward(target_position, 30*(1/60.0)) - else: - look_at(focus_position) + global_position = global_position.move_toward(target_position, maximum_movement_speed*delta) + #else: + + basis = basis.slerp(Basis.looking_at(focus_position - target_position), 0.05) + #global_position = global_position.lerp(target_position, 0.05) #basis = basis.slerp(Basis.looking_at(focus_position - global_position), 0.05) @@ -58,29 +68,46 @@ func process_focus_movement(delta: float) -> void: focus_object = null input = input_basis * input - var movement: Vector3 = input * pan_speed * delta + var movement: Vector3 = input * keyboard_movement_speed * delta global_position += movement focus_position += movement # handle moving on/off ramps - var params: PhysicsRayQueryParameters3D = PhysicsRayQueryParameters3D.new() - params.from = focus_position + Vector3(0,2,0) - params.to = focus_position - Vector3(0,2,0) - var result: Dictionary = get_world_3d().direct_space_state.intersect_ray(params) - if result.has("position"): - focus_position = result["position"] - - - DebugDraw3D.draw_gizmo(Transform3D(input_basis, focus_position)) + if focus_follows_terrain: + var params: PhysicsRayQueryParameters3D = PhysicsRayQueryParameters3D.new() + params.from = focus_position + Vector3(0,2,0) + params.to = focus_position - Vector3(0,2,0) + params.collision_mask = 1 + var result: Dictionary = get_world_3d().direct_space_state.intersect_ray(params) + if result.has("position"): + focus_position = result["position"] func process_camera_rotation(delta: float) -> void: - var mouse_position: Vector2 = get_viewport().get_mouse_position() - var mouse_movement: Vector2 = mouse_position - last_mouse_position - last_mouse_position = mouse_position + #var mouse_position: Vector2 = viewport.get_mouse_position() + #var mouse_position: Vector2 = Vector2() + #var mouse_movement: Vector2 = (mouse_position - last_mouse_position) * delta + #last_mouse_position = mouse_position if Input.is_mouse_button_pressed(MOUSE_BUTTON_RIGHT): - - focus_offset = focus_offset.rotated(Vector3.UP, -mouse_movement.x * 0.006) + focus_offset = focus_offset.rotated(Vector3.UP, -mouse_movement.x * mouse_orbit_sensitivity) var vertical_axis: Vector3 = focus_offset.cross(Vector3.UP).normalized() - focus_offset = focus_offset.rotated(vertical_axis, mouse_movement.y * 0.006) + focus_offset = focus_offset.rotated(vertical_axis, mouse_movement.y * mouse_orbit_sensitivity) global_position = focus_position + focus_offset look_at(focus_position) + mouse_movement = Vector2() + +func process_camera_zoom(_delta: float) -> void: + #var wheel_input: float = Input.get_axis("camera_zoom_in", "camera_zoom_out") + var change: float = 1.0 + (-mouse_wheel_delta * zoom_sensitivity) + focus_offset *= change + mouse_wheel_delta = 0 + +func _input(event: InputEvent) -> void: + if event is InputEventMouseButton: + var button_event: InputEventMouseButton = event + if button_event.button_index == MOUSE_BUTTON_WHEEL_UP: + mouse_wheel_delta += 1 + elif button_event.button_index == MOUSE_BUTTON_WHEEL_DOWN: + mouse_wheel_delta -= 1 + elif event is InputEventMouseMotion: + var motion_event: InputEventMouseMotion = event + mouse_movement += motion_event.relative diff --git a/scripts/custom_grid_map.gd b/scripts/custom_grid_map.gd new file mode 100644 index 0000000..5f9d9ab --- /dev/null +++ b/scripts/custom_grid_map.gd @@ -0,0 +1,12 @@ +@tool +extends GridMap +class_name CustomGridMap + +@export var travel_costs: Dictionary[String, float] + +func _enter_tree() -> void: + mesh_library.changed.connect(update_dicts) + +func update_dicts() -> void: + var keys: Array[String] = [] + mesh_library.get_item_list() diff --git a/scripts/custom_grid_map.gd.uid b/scripts/custom_grid_map.gd.uid new file mode 100644 index 0000000..54449fa --- /dev/null +++ b/scripts/custom_grid_map.gd.uid @@ -0,0 +1 @@ +uid://b61ea0hhhekmp diff --git a/scripts/fps_label.gd b/scripts/fps_label.gd new file mode 100644 index 0000000..ece8581 --- /dev/null +++ b/scripts/fps_label.gd @@ -0,0 +1,4 @@ +extends Label + +func _process(_delta: float) -> void: + text = "FPS: %d" % [Engine.get_frames_per_second()] diff --git a/scripts/fps_label.gd.uid b/scripts/fps_label.gd.uid new file mode 100644 index 0000000..09a400d --- /dev/null +++ b/scripts/fps_label.gd.uid @@ -0,0 +1 @@ +uid://vcf7wcmyewl8 diff --git a/scripts/nav_obstacle.gd b/scripts/nav_obstacle.gd index 6aa7838..04a5a5b 100644 --- a/scripts/nav_obstacle.gd +++ b/scripts/nav_obstacle.gd @@ -1,20 +1,23 @@ extends Node3D +class_name NavObstable +@export var enabled: bool = false: + set(val): + if val != enabled: + enabled = val + update(enabled) @export var aabb: AABB = AABB(Vector3(-1,0,-1),Vector3(2,2,2)) @export var weight: float = 10.0 -@export var make_solid: bool = true +@export var make_solid: bool = false -var enable_timer: float = 1.0 -var enabled: bool = false +var updated_regions: Array[RID] = [] -func _process(delta: float) -> void: - if enable_timer > 0: - enable_timer -= delta - if !enabled and enable_timer <= 0: - enabled = true - update() +func _exit_tree() -> void: + update(false) -func update() -> void: +func update(enable: bool) -> void: + if !is_node_ready(): + await ready var global_aabb: AABB = global_transform * aabb #DebugDraw3D.draw_aabb(global_aabb, Color.DARK_CYAN, 5) for map_rid in NavigationServer3D.get_maps(): @@ -22,6 +25,9 @@ func update() -> void: var region_aabb: AABB = NavigationServer3D.region_get_bounds(region_rid).grow(0.1) #DebugDraw3D.draw_aabb(region_aabb, Color.YELLOW, 5) if global_aabb.intersects(region_aabb): - NavigationServer3D.region_set_travel_cost(region_rid, weight) - #NavigationServer3D.region_set_enabled(region_rid, false) - DebugDraw3D.draw_aabb(region_aabb, Color.RED, 5) + var old_weight: float = NavigationServer3D.region_get_travel_cost(region_rid) + var new_weight: float = (old_weight * weight) if enable else (old_weight / weight) + NavigationServer3D.region_set_travel_cost(region_rid, new_weight) + if make_solid: + NavigationServer3D.region_set_enabled(region_rid, enable) + DebugDraw3D.draw_aabb(region_aabb, Color.RED if enable else Color.GREEN, 5) diff --git a/scripts/spawner.gd b/scripts/spawner.gd index b21fa21..d6d3dd3 100644 --- a/scripts/spawner.gd +++ b/scripts/spawner.gd @@ -12,4 +12,4 @@ func _process(delta: float) -> void: var node: Node = spawn_scene.instantiate() add_child(node) if node is Node3D: - node.global_position = global_position + (node as Node3D).global_position = global_position diff --git a/scripts/unit.gd b/scripts/unit.gd index f3fc1ae..c959777 100644 --- a/scripts/unit.gd +++ b/scripts/unit.gd @@ -16,8 +16,12 @@ var stuck_timer: float = 0.0 var move_target: Vector3 = Vector3(16, 1, 13) var move_radius: float = 5.0 +@onready var shapecast_3d: ShapeCast3D = $ShapeCast3D +@onready var nav_agent_3d: NavigationAgent3D = $NavigationAgent3D +@onready var label_3d: Label3D = $Label3D + func _ready() -> void: - $NavigationAgent3D.connect("velocity_computed", avoidance_velocity_computed) + nav_agent_3d.connect("velocity_computed", avoidance_velocity_computed) pass func avoidance_velocity_computed(velocity: Vector3) -> void: @@ -26,17 +30,17 @@ func avoidance_velocity_computed(velocity: Vector3) -> void: avoidance_timeout = 0.5 func _process(delta: float) -> void: - $Label3D.text = "HP: %d" % hp + label_3d.text = "HP: %d" % hp - if $NavigationAgent3D.is_target_reached() \ - or $NavigationAgent3D.target_position.is_zero_approx() \ - or !$NavigationAgent3D.is_target_reachable(): - $NavigationAgent3D.target_position = move_target + Vector3(randfn(0, move_radius), 0, randfn(0, move_radius)) - #$NavigationAgent3D.target_position = NavigationServer3D.map_get_random_point(NavigationServer3D.get_maps()[0], 1, true) - last_distance_to_target = $NavigationAgent3D.distance_to_target() + if nav_agent_3d.is_target_reached() \ + or nav_agent_3d.target_position.is_zero_approx() \ + or !nav_agent_3d.is_target_reachable(): + nav_agent_3d.target_position = move_target + Vector3(randfn(0, move_radius), 0, randfn(0, move_radius)) + #nav_agent_3d.target_position = NavigationServer3D.map_get_random_point(NavigationServer3D.get_maps()[0], 1, true) + last_distance_to_target = nav_agent_3d.distance_to_target() else: - if $ShapeCast3D.is_colliding(): - var distance_to_target: float = $NavigationAgent3D.distance_to_target() + if shapecast_3d.is_colliding(): + var distance_to_target: float = nav_agent_3d.distance_to_target() var progress_rate: float = (last_distance_to_target - distance_to_target) / delta last_distance_to_target = distance_to_target if progress_rate < minimum_progress_rate: @@ -44,24 +48,24 @@ func _process(delta: float) -> void: if stuck_timer >= stuck_time: unstuck() else: - $Label3D.modulate = Color.WHITE + label_3d.modulate = Color.WHITE stuck_timer = 0 if global_position.y <= -10: unstuck() - #DebugDraw3D.draw_sphere($NavigationAgent3D.target_position, 0.5, Color.RED) - var next_point: Vector3 = $NavigationAgent3D.get_next_path_position() + #DebugDraw3D.draw_sphere(nav_agent_3d.target_position, 0.5, Color.RED) + var next_point: Vector3 = nav_agent_3d.get_next_path_position() #DebugDraw3D.draw_sphere(next_point, 0.1, Color.YELLOW) var direction: Vector3 = (next_point - global_position).normalized() #DebugDraw3D.draw_line(global_position, global_position + linear_velocity, Color.BLUE) target_velocity = direction * max_speed - $NavigationAgent3D.velocity = target_velocity + nav_agent_3d.velocity = target_velocity #DebugDraw3D.draw_line(global_position, global_position + target_velocity, Color.MAGENTA) - #DebugDraw3D.draw_text(global_position + Vector3(0,1,0), "%f" % $NavigationAgent3D.distance_to_target()) + #DebugDraw3D.draw_text(global_position + Vector3(0,1,0), "%f" % nav_agent_3d.distance_to_target()) func unstuck() -> void: # teleport to next path point linear_velocity = Vector3() - global_position = $NavigationAgent3D.get_next_path_position() + global_position = nav_agent_3d.get_next_path_position() stuck_timer = 0 func hurt(damage: float) -> void: @@ -74,14 +78,14 @@ func die() -> void: queue_free() func _physics_process(delta: float) -> void: - if $ShapeCast3D.is_colliding(): + if shapecast_3d.is_colliding(): var actual_target_velocity: Vector3 = target_velocity if avoidance_timeout > 0: avoidance_timeout -= delta actual_target_velocity = actual_target_velocity.slerp(avoidance_velocity, 0.25) #DebugDraw3D.draw_line(global_position, global_position + actual_target_velocity, Color.ORANGE) var force_direction: Vector3 = (actual_target_velocity-linear_velocity) - var normal: Vector3 = $ShapeCast3D.get_collision_normal(0) + var normal: Vector3 = shapecast_3d.get_collision_normal(0) #DebugDraw3D.draw_line(global_position, global_position + normal, Color.DODGER_BLUE) var force: Vector3 = (force_direction * movement_force).slide(normal) #DebugDraw3D.draw_line(global_position, global_position + force, Color.GREEN)