From 1d6b75b286c0d868c2ee497c6aa667a507c0bc62 Mon Sep 17 00:00:00 2001 From: Ivan-267 <61947090+Ivan-267@users.noreply.github.com> Date: Thu, 13 Feb 2025 12:01:11 +0100 Subject: [PATCH 1/5] Adds the PushBall environment --- .gitignore | 1 + examples/PushBall/.gitattributes | 2 + examples/PushBall/.gitignore | 3 + examples/PushBall/PushBall.csproj | 11 + examples/PushBall/PushBall.sln | 19 + .../controller/ai_controller_2d.gd | 136 ++++ .../controller/ai_controller_3d.gd | 136 ++++ .../addons/godot_rl_agents/godot_rl_agents.gd | 16 + .../PushBall/addons/godot_rl_agents/icon.png | Bin 0 -> 198 bytes .../onnx/csharp/ONNXInference.cs | 109 ++++ .../onnx/csharp/SessionConfigurator.cs | 131 ++++ .../onnx/csharp/docs/ONNXInference.xml | 31 + .../onnx/csharp/docs/SessionConfigurator.xml | 29 + .../onnx/wrapper/ONNX_wrapper.gd | 51 ++ .../addons/godot_rl_agents/plugin.cfg | 7 + .../sensors_2d/ExampleRaycastSensor2D.tscn | 48 ++ .../sensors/sensors_2d/GridSensor2D.gd | 235 +++++++ .../sensors/sensors_2d/ISensor2D.gd | 25 + .../sensors/sensors_2d/RaycastSensor2D.gd | 118 ++++ .../sensors/sensors_2d/RaycastSensor2D.tscn | 7 + .../sensors_3d/ExampleRaycastSensor3D.tscn | 6 + .../sensors/sensors_3d/GridSensor3D.gd | 258 ++++++++ .../sensors/sensors_3d/ISensor3D.gd | 25 + .../sensors/sensors_3d/RGBCameraSensor3D.gd | 63 ++ .../sensors/sensors_3d/RGBCameraSensor3D.tscn | 35 + .../sensors/sensors_3d/RaycastSensor3D.gd | 185 ++++++ .../sensors/sensors_3d/RaycastSensor3D.tscn | 27 + .../PushBall/addons/godot_rl_agents/sync.gd | 598 ++++++++++++++++++ examples/PushBall/assets/goal.glb | Bin 0 -> 11052 bytes examples/PushBall/assets/license.md | 3 + examples/PushBall/assets/robot.glb | Bin 0 -> 134992 bytes examples/PushBall/assets/tiles/grass.glb | Bin 0 -> 62112 bytes .../PushBall/assets/tiles/grass_grass.png | Bin 0 -> 57940 bytes examples/PushBall/assets/tiles/gray.glb | Bin 0 -> 2512 bytes examples/PushBall/assets/tiles/green.glb | Bin 0 -> 2468 bytes examples/PushBall/assets/tiles/platform.glb | Bin 0 -> 5604 bytes examples/PushBall/assets/tiles/tree.glb | Bin 0 -> 20712 bytes .../PushBall/assets/tiles/wooden_fence.glb | Bin 0 -> 8880 bytes examples/PushBall/ground_sensor.tscn | 106 ++++ examples/PushBall/icon.svg | 1 + examples/PushBall/model.onnx | Bin 0 -> 27996 bytes examples/PushBall/project.godot | 61 ++ examples/PushBall/readme.md | 127 ++++ examples/PushBall/scenes/ball/ball.gd | 10 + examples/PushBall/scenes/ball/ball.tscn | 64 ++ examples/PushBall/scenes/goal/goal.gd | 13 + examples/PushBall/scenes/goal/goal.tscn | 35 + .../PushBall/scenes/levels/all_levels.tscn | 22 + .../PushBall/scenes/levels/game_scene.tscn | 65 ++ .../PushBall/scenes/levels/game_scene3.tscn | 69 ++ .../PushBall/scenes/levels/game_scene4.tscn | 89 +++ .../PushBall/scenes/levels/game_scene5.tscn | 66 ++ .../PushBall/scenes/levels/level_manager.gd | 22 + examples/PushBall/scenes/levels/platform.gd | 7 + examples/PushBall/scenes/levels/platform.tscn | 32 + examples/PushBall/scenes/onnx_test_scene.tscn | 88 +++ examples/PushBall/scenes/robot/robot.gd | 127 ++++ examples/PushBall/scenes/robot/robot.tscn | 346 ++++++++++ .../scenes/robot/robot_ai_controller.gd | 97 +++ .../spawn_position_manager/spawn_positions.gd | 14 + .../spawn_positions.tscn | 6 + .../PushBall/scenes/tiles/mesh_library.tres | 465 ++++++++++++++ examples/PushBall/scenes/tiles/tiles.tscn | 59 ++ examples/PushBall/scenes/training_scene.tscn | 57 ++ 64 files changed, 4363 insertions(+) create mode 100644 examples/PushBall/.gitattributes create mode 100644 examples/PushBall/.gitignore create mode 100644 examples/PushBall/PushBall.csproj create mode 100644 examples/PushBall/PushBall.sln create mode 100644 examples/PushBall/addons/godot_rl_agents/controller/ai_controller_2d.gd create mode 100644 examples/PushBall/addons/godot_rl_agents/controller/ai_controller_3d.gd create mode 100644 examples/PushBall/addons/godot_rl_agents/godot_rl_agents.gd create mode 100644 examples/PushBall/addons/godot_rl_agents/icon.png create mode 100644 examples/PushBall/addons/godot_rl_agents/onnx/csharp/ONNXInference.cs create mode 100644 examples/PushBall/addons/godot_rl_agents/onnx/csharp/SessionConfigurator.cs create mode 100644 examples/PushBall/addons/godot_rl_agents/onnx/csharp/docs/ONNXInference.xml create mode 100644 examples/PushBall/addons/godot_rl_agents/onnx/csharp/docs/SessionConfigurator.xml create mode 100644 examples/PushBall/addons/godot_rl_agents/onnx/wrapper/ONNX_wrapper.gd create mode 100644 examples/PushBall/addons/godot_rl_agents/plugin.cfg create mode 100644 examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/ExampleRaycastSensor2D.tscn create mode 100644 examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/GridSensor2D.gd create mode 100644 examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/ISensor2D.gd create mode 100644 examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.gd create mode 100644 examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.tscn create mode 100644 examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/ExampleRaycastSensor3D.tscn create mode 100644 examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/GridSensor3D.gd create mode 100644 examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/ISensor3D.gd create mode 100644 examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.gd create mode 100644 examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.tscn create mode 100644 examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.gd create mode 100644 examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.tscn create mode 100644 examples/PushBall/addons/godot_rl_agents/sync.gd create mode 100644 examples/PushBall/assets/goal.glb create mode 100644 examples/PushBall/assets/license.md create mode 100644 examples/PushBall/assets/robot.glb create mode 100644 examples/PushBall/assets/tiles/grass.glb create mode 100644 examples/PushBall/assets/tiles/grass_grass.png create mode 100644 examples/PushBall/assets/tiles/gray.glb create mode 100644 examples/PushBall/assets/tiles/green.glb create mode 100644 examples/PushBall/assets/tiles/platform.glb create mode 100644 examples/PushBall/assets/tiles/tree.glb create mode 100644 examples/PushBall/assets/tiles/wooden_fence.glb create mode 100644 examples/PushBall/ground_sensor.tscn create mode 100644 examples/PushBall/icon.svg create mode 100644 examples/PushBall/model.onnx create mode 100644 examples/PushBall/project.godot create mode 100644 examples/PushBall/readme.md create mode 100644 examples/PushBall/scenes/ball/ball.gd create mode 100644 examples/PushBall/scenes/ball/ball.tscn create mode 100644 examples/PushBall/scenes/goal/goal.gd create mode 100644 examples/PushBall/scenes/goal/goal.tscn create mode 100644 examples/PushBall/scenes/levels/all_levels.tscn create mode 100644 examples/PushBall/scenes/levels/game_scene.tscn create mode 100644 examples/PushBall/scenes/levels/game_scene3.tscn create mode 100644 examples/PushBall/scenes/levels/game_scene4.tscn create mode 100644 examples/PushBall/scenes/levels/game_scene5.tscn create mode 100644 examples/PushBall/scenes/levels/level_manager.gd create mode 100644 examples/PushBall/scenes/levels/platform.gd create mode 100644 examples/PushBall/scenes/levels/platform.tscn create mode 100644 examples/PushBall/scenes/onnx_test_scene.tscn create mode 100644 examples/PushBall/scenes/robot/robot.gd create mode 100644 examples/PushBall/scenes/robot/robot.tscn create mode 100644 examples/PushBall/scenes/robot/robot_ai_controller.gd create mode 100644 examples/PushBall/scenes/spawn_position_manager/spawn_positions.gd create mode 100644 examples/PushBall/scenes/spawn_position_manager/spawn_positions.tscn create mode 100644 examples/PushBall/scenes/tiles/mesh_library.tres create mode 100644 examples/PushBall/scenes/tiles/tiles.tscn create mode 100644 examples/PushBall/scenes/training_scene.tscn diff --git a/.gitignore b/.gitignore index ddcbc2f..b5e9975 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ builds/ # Blender *.blend1 +*.tmp diff --git a/examples/PushBall/.gitattributes b/examples/PushBall/.gitattributes new file mode 100644 index 0000000..8ad74f7 --- /dev/null +++ b/examples/PushBall/.gitattributes @@ -0,0 +1,2 @@ +# Normalize EOL for all files that Git considers text files. +* text=auto eol=lf diff --git a/examples/PushBall/.gitignore b/examples/PushBall/.gitignore new file mode 100644 index 0000000..7de8ea5 --- /dev/null +++ b/examples/PushBall/.gitignore @@ -0,0 +1,3 @@ +# Godot 4+ specific ignores +.godot/ +android/ diff --git a/examples/PushBall/PushBall.csproj b/examples/PushBall/PushBall.csproj new file mode 100644 index 0000000..6fa3be0 --- /dev/null +++ b/examples/PushBall/PushBall.csproj @@ -0,0 +1,11 @@ + + + net6.0 + net7.0 + net8.0 + true + + + + + \ No newline at end of file diff --git a/examples/PushBall/PushBall.sln b/examples/PushBall/PushBall.sln new file mode 100644 index 0000000..4d52e29 --- /dev/null +++ b/examples/PushBall/PushBall.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PushBall", "PushBall.csproj", "{B0EAFC65-EF15-457D-88AA-02DC8422CE19}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + ExportDebug|Any CPU = ExportDebug|Any CPU + ExportRelease|Any CPU = ExportRelease|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B0EAFC65-EF15-457D-88AA-02DC8422CE19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B0EAFC65-EF15-457D-88AA-02DC8422CE19}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B0EAFC65-EF15-457D-88AA-02DC8422CE19}.ExportDebug|Any CPU.ActiveCfg = ExportDebug|Any CPU + {B0EAFC65-EF15-457D-88AA-02DC8422CE19}.ExportDebug|Any CPU.Build.0 = ExportDebug|Any CPU + {B0EAFC65-EF15-457D-88AA-02DC8422CE19}.ExportRelease|Any CPU.ActiveCfg = ExportRelease|Any CPU + {B0EAFC65-EF15-457D-88AA-02DC8422CE19}.ExportRelease|Any CPU.Build.0 = ExportRelease|Any CPU + EndGlobalSection +EndGlobal diff --git a/examples/PushBall/addons/godot_rl_agents/controller/ai_controller_2d.gd b/examples/PushBall/addons/godot_rl_agents/controller/ai_controller_2d.gd new file mode 100644 index 0000000..06d928b --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/controller/ai_controller_2d.gd @@ -0,0 +1,136 @@ +extends Node2D +class_name AIController2D + +enum ControlModes { + INHERIT_FROM_SYNC, ## Inherit setting from sync node + HUMAN, ## Test the environment manually + TRAINING, ## Train a model + ONNX_INFERENCE, ## Load a pretrained model using an .onnx file + RECORD_EXPERT_DEMOS ## Record observations and actions for expert demonstrations +} +@export var control_mode: ControlModes = ControlModes.INHERIT_FROM_SYNC +## The path to a trained .onnx model file to use for inference (overrides the path set in sync node). +@export var onnx_model_path := "" +## Once the number of steps has passed, the flag 'needs_reset' will be set to 'true' for this instance. +@export var reset_after := 1000 + +@export_group("Record expert demos mode options") +## Path where the demos will be saved. The file can later be used for imitation learning. +@export var expert_demo_save_path: String +## The action that erases the last recorded episode from the currently recorded data. +@export var remove_last_episode_key: InputEvent +## Action will be repeated for n frames. Will introduce control lag if larger than 1. +## Can be used to ensure that action_repeat on inference and training matches +## the recorded demonstrations. +@export var action_repeat: int = 1 + +@export_group("Multi-policy mode options") +## Allows you to set certain agents to use different policies. +## Changing has no effect with default SB3 training. Works with Rllib example. +## Tutorial: https://github.com/edbeeching/godot_rl_agents/blob/main/docs/TRAINING_MULTIPLE_POLICIES.md +@export var policy_name: String = "shared_policy" + +var onnx_model: ONNXModel + +var heuristic := "human" +var done := false +var reward := 0.0 +var n_steps := 0 +var needs_reset := false + +var _player: Node2D + + +func _ready(): + add_to_group("AGENT") + + +func init(player: Node2D): + _player = player + + +#region Methods that need implementing using the "extend script" option in Godot +func get_obs() -> Dictionary: + assert(false, "the get_obs method is not implemented when extending from ai_controller") + return {"obs": []} + + +func get_reward() -> float: + assert(false, "the get_reward method is not implemented when extending from ai_controller") + return 0.0 + + +func get_action_space() -> Dictionary: + assert( + false, "the get_action_space method is not implemented when extending from ai_controller" + ) + return { + "example_actions_continous": {"size": 2, "action_type": "continuous"}, + "example_actions_discrete": {"size": 2, "action_type": "discrete"}, + } + + +func set_action(action) -> void: + assert(false, "the set_action method is not implemented when extending from ai_controller") + + +#endregion + + +#region Methods that sometimes need implementing using the "extend script" option in Godot +# Only needed if you are recording expert demos with this AIController +func get_action() -> Array: + assert( + false, + "the get_action method is not implemented in extended AIController but demo_recorder is used" + ) + return [] + + +# For providing additional info (e.g. `is_success` for SB3 training) +func get_info() -> Dictionary: + return {} + + +#endregion + + +func _physics_process(delta): + n_steps += 1 + if n_steps > reset_after: + needs_reset = true + + +func get_obs_space(): + # may need overriding if the obs space is complex + var obs = get_obs() + return { + "obs": {"size": [len(obs["obs"])], "space": "box"}, + } + + +func reset(): + n_steps = 0 + needs_reset = false + + +func reset_if_done(): + if done: + reset() + + +func set_heuristic(h): + # sets the heuristic from "human" or "model" nothing to change here + heuristic = h + + +func get_done(): + return done + + +func set_done_false(): + done = false + + +func zero_reward(): + reward = 0.0 diff --git a/examples/PushBall/addons/godot_rl_agents/controller/ai_controller_3d.gd b/examples/PushBall/addons/godot_rl_agents/controller/ai_controller_3d.gd new file mode 100644 index 0000000..61a0529 --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/controller/ai_controller_3d.gd @@ -0,0 +1,136 @@ +extends Node3D +class_name AIController3D + +enum ControlModes { + INHERIT_FROM_SYNC, ## Inherit setting from sync node + HUMAN, ## Test the environment manually + TRAINING, ## Train a model + ONNX_INFERENCE, ## Load a pretrained model using an .onnx file + RECORD_EXPERT_DEMOS ## Record observations and actions for expert demonstrations +} +@export var control_mode: ControlModes = ControlModes.INHERIT_FROM_SYNC +## The path to a trained .onnx model file to use for inference (overrides the path set in sync node). +@export var onnx_model_path := "" +## Once the number of steps has passed, the flag 'needs_reset' will be set to 'true' for this instance. +@export var reset_after := 1000 + +@export_group("Record expert demos mode options") +## Path where the demos will be saved. The file can later be used for imitation learning. +@export var expert_demo_save_path: String +## The action that erases the last recorded episode from the currently recorded data. +@export var remove_last_episode_key: InputEvent +## Action will be repeated for n frames. Will introduce control lag if larger than 1. +## Can be used to ensure that action_repeat on inference and training matches +## the recorded demonstrations. +@export var action_repeat: int = 1 + +@export_group("Multi-policy mode options") +## Allows you to set certain agents to use different policies. +## Changing has no effect with default SB3 training. Works with Rllib example. +## Tutorial: https://github.com/edbeeching/godot_rl_agents/blob/main/docs/TRAINING_MULTIPLE_POLICIES.md +@export var policy_name: String = "shared_policy" + +var onnx_model: ONNXModel + +var heuristic := "human" +var done := false +var reward := 0.0 +var n_steps := 0 +var needs_reset := false + +var _player: Node3D + + +func _ready(): + add_to_group("AGENT") + + +func init(player: Node3D): + _player = player + + +#region Methods that need implementing using the "extend script" option in Godot +func get_obs() -> Dictionary: + assert(false, "the get_obs method is not implemented when extending from ai_controller") + return {"obs": []} + + +func get_reward() -> float: + assert(false, "the get_reward method is not implemented when extending from ai_controller") + return 0.0 + + +func get_action_space() -> Dictionary: + assert( + false, "the get_action_space method is not implemented when extending from ai_controller" + ) + return { + "example_actions_continous": {"size": 2, "action_type": "continuous"}, + "example_actions_discrete": {"size": 2, "action_type": "discrete"}, + } + + +func set_action(action) -> void: + assert(false, "the set_action method is not implemented when extending from ai_controller") + + +#endregion + + +#region Methods that sometimes need implementing using the "extend script" option in Godot +# Only needed if you are recording expert demos with this AIController +func get_action() -> Array: + assert( + false, + "the get_action method is not implemented in extended AIController but demo_recorder is used" + ) + return [] + + +# For providing additional info (e.g. `is_success` for SB3 training) +func get_info() -> Dictionary: + return {} + + +#endregion + + +func _physics_process(delta): + n_steps += 1 + if n_steps > reset_after: + needs_reset = true + + +func get_obs_space(): + # may need overriding if the obs space is complex + var obs = get_obs() + return { + "obs": {"size": [len(obs["obs"])], "space": "box"}, + } + + +func reset(): + n_steps = 0 + needs_reset = false + + +func reset_if_done(): + if done: + reset() + + +func set_heuristic(h): + # sets the heuristic from "human" or "model" nothing to change here + heuristic = h + + +func get_done(): + return done + + +func set_done_false(): + done = false + + +func zero_reward(): + reward = 0.0 diff --git a/examples/PushBall/addons/godot_rl_agents/godot_rl_agents.gd b/examples/PushBall/addons/godot_rl_agents/godot_rl_agents.gd new file mode 100644 index 0000000..e4fe136 --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/godot_rl_agents.gd @@ -0,0 +1,16 @@ +@tool +extends EditorPlugin + + +func _enter_tree(): + # Initialization of the plugin goes here. + # Add the new type with a name, a parent type, a script and an icon. + add_custom_type("Sync", "Node", preload("sync.gd"), preload("icon.png")) + #add_custom_type("RaycastSensor2D2", "Node", preload("raycast_sensor_2d.gd"), preload("icon.png")) + + +func _exit_tree(): + # Clean-up of the plugin goes here. + # Always remember to remove it from the engine when deactivated. + remove_custom_type("Sync") + #remove_custom_type("RaycastSensor2D2") diff --git a/examples/PushBall/addons/godot_rl_agents/icon.png b/examples/PushBall/addons/godot_rl_agents/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..fd8190e710eafcd44b723917e69f8a028e697f4b GIT binary patch literal 198 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPHF3h)VW1=92H&!72h^YV{tmc3iE z?8EA%@76ATw`S>kbo66k0w+*4Z%L3}Farmdxo=y?%=15f{`ngim75Ecu=8|r45_%4 zoZ!H;NBn|B&bH~o2YBx9-M+p-GO7B#h~pETS&{_}Yj&4UZ<5S@e{U~m+MT`C-}QRf eHb3AgVPI&!A~QdCx-=WmBnD4cKbLh*2~7Y1GgDds literal 0 HcmV?d00001 diff --git a/examples/PushBall/addons/godot_rl_agents/onnx/csharp/ONNXInference.cs b/examples/PushBall/addons/godot_rl_agents/onnx/csharp/ONNXInference.cs new file mode 100644 index 0000000..6dcfa18 --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/onnx/csharp/ONNXInference.cs @@ -0,0 +1,109 @@ +using Godot; +using Microsoft.ML.OnnxRuntime; +using Microsoft.ML.OnnxRuntime.Tensors; +using System.Collections.Generic; +using System.Linq; + +namespace GodotONNX +{ + /// + public partial class ONNXInference : GodotObject + { + + private InferenceSession session; + /// + /// Path to the ONNX model. Use Initialize to change it. + /// + private string modelPath; + private int batchSize; + + private SessionOptions SessionOpt; + + /// + /// init function + /// + /// + /// + /// Returns the output size of the model + public int Initialize(string Path, int BatchSize) + { + modelPath = Path; + batchSize = BatchSize; + SessionOpt = SessionConfigurator.MakeConfiguredSessionOptions(); + session = LoadModel(modelPath); + return session.OutputMetadata["output"].Dimensions[1]; + } + + + /// + public Godot.Collections.Dictionary> RunInference(Godot.Collections.Array obs, int state_ins) + { + //Current model: Any (Godot Rl Agents) + //Expects a tensor of shape [batch_size, input_size] type float named obs and a tensor of shape [batch_size] type float named state_ins + + //Fill the input tensors + // create span from inputSize + var span = new float[obs.Count]; //There's probably a better way to do this + for (int i = 0; i < obs.Count; i++) + { + span[i] = obs[i]; + } + + IReadOnlyCollection inputs = new List + { + NamedOnnxValue.CreateFromTensor("obs", new DenseTensor(span, new int[] { batchSize, obs.Count })), + NamedOnnxValue.CreateFromTensor("state_ins", new DenseTensor(new float[] { state_ins }, new int[] { batchSize })) + }; + IReadOnlyCollection outputNames = new List { "output", "state_outs" }; //ONNX is sensible to these names, as well as the input names + + IDisposableReadOnlyCollection results; + //We do not use "using" here so we get a better exception explaination later + try + { + results = session.Run(inputs, outputNames); + } + catch (OnnxRuntimeException e) + { + //This error usually means that the model is not compatible with the input, beacause of the input shape (size) + GD.Print("Error at inference: ", e); + return null; + } + //Can't convert IEnumerable to Variant, so we have to convert it to an array or something + Godot.Collections.Dictionary> output = new Godot.Collections.Dictionary>(); + DisposableNamedOnnxValue output1 = results.First(); + DisposableNamedOnnxValue output2 = results.Last(); + Godot.Collections.Array output1Array = new Godot.Collections.Array(); + Godot.Collections.Array output2Array = new Godot.Collections.Array(); + + foreach (float f in output1.AsEnumerable()) + { + output1Array.Add(f); + } + + foreach (float f in output2.AsEnumerable()) + { + output2Array.Add(f); + } + + output.Add(output1.Name, output1Array); + output.Add(output2.Name, output2Array); + + //Output is a dictionary of arrays, ex: { "output" : [0.1, 0.2, 0.3, 0.4, ...], "state_outs" : [0.5, ...]} + results.Dispose(); + return output; + } + /// + public InferenceSession LoadModel(string Path) + { + using Godot.FileAccess file = FileAccess.Open(Path, Godot.FileAccess.ModeFlags.Read); + byte[] model = file.GetBuffer((int)file.GetLength()); + //file.Close(); file.Dispose(); //Close the file, then dispose the reference. + return new InferenceSession(model, SessionOpt); //Load the model + } + public void FreeDisposables() + { + session.Dispose(); + SessionOpt.Dispose(); + } + } +} diff --git a/examples/PushBall/addons/godot_rl_agents/onnx/csharp/SessionConfigurator.cs b/examples/PushBall/addons/godot_rl_agents/onnx/csharp/SessionConfigurator.cs new file mode 100644 index 0000000..ad7a41c --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/onnx/csharp/SessionConfigurator.cs @@ -0,0 +1,131 @@ +using Godot; +using Microsoft.ML.OnnxRuntime; + +namespace GodotONNX +{ + /// + + public static class SessionConfigurator + { + public enum ComputeName + { + CUDA, + ROCm, + DirectML, + CoreML, + CPU + } + + /// + public static SessionOptions MakeConfiguredSessionOptions() + { + SessionOptions sessionOptions = new(); + SetOptions(sessionOptions); + return sessionOptions; + } + + private static void SetOptions(SessionOptions sessionOptions) + { + sessionOptions.LogSeverityLevel = OrtLoggingLevel.ORT_LOGGING_LEVEL_WARNING; + ApplySystemSpecificOptions(sessionOptions); + } + + /// + static public void ApplySystemSpecificOptions(SessionOptions sessionOptions) + { + //Most code for this function is verbose only, the only reason it exists is to track + //implementation progress of the different compute APIs. + + //December 2022: CUDA is not working. + + string OSName = OS.GetName(); //Get OS Name + + //ComputeName ComputeAPI = ComputeCheck(); //Get Compute API + // //TODO: Get CPU architecture + + //Linux can use OpenVINO (C#) on x64 and ROCm on x86 (GDNative/C++) + //Windows can use OpenVINO (C#) on x64 + //TODO: try TensorRT instead of CUDA + //TODO: Use OpenVINO for Intel Graphics + + // Temporarily using CPU on all platforms to avoid errors detected with DML + ComputeName ComputeAPI = ComputeName.CPU; + + //match OS and Compute API + GD.Print($"OS: {OSName} Compute API: {ComputeAPI}"); + + // CPU is set by default without appending necessary + // sessionOptions.AppendExecutionProvider_CPU(0); + + /* + switch (OSName) + { + case "Windows": //Can use CUDA, DirectML + if (ComputeAPI is ComputeName.CUDA) + { + //CUDA + //sessionOptions.AppendExecutionProvider_CUDA(0); + //sessionOptions.AppendExecutionProvider_DML(0); + } + else if (ComputeAPI is ComputeName.DirectML) + { + //DirectML + //sessionOptions.AppendExecutionProvider_DML(0); + } + break; + case "X11": //Can use CUDA, ROCm + if (ComputeAPI is ComputeName.CUDA) + { + //CUDA + //sessionOptions.AppendExecutionProvider_CUDA(0); + } + if (ComputeAPI is ComputeName.ROCm) + { + //ROCm, only works on x86 + //Research indicates that this has to be compiled as a GDNative plugin + //GD.Print("ROCm not supported yet, using CPU."); + //sessionOptions.AppendExecutionProvider_CPU(0); + } + break; + case "macOS": //Can use CoreML + if (ComputeAPI is ComputeName.CoreML) + { //CoreML + //TODO: Needs testing + //sessionOptions.AppendExecutionProvider_CoreML(0); + //CoreML on ARM64, out of the box, on x64 needs .tar file from GitHub + } + break; + default: + GD.Print("OS not Supported."); + break; + } + */ + } + + + /// + public static ComputeName ComputeCheck() + { + string adapterName = Godot.RenderingServer.GetVideoAdapterName(); + //string adapterVendor = Godot.RenderingServer.GetVideoAdapterVendor(); + adapterName = adapterName.ToUpper(new System.Globalization.CultureInfo("")); + //TODO: GPU vendors for MacOS, what do they even use these days? + + if (adapterName.Contains("INTEL")) + { + return ComputeName.DirectML; + } + if (adapterName.Contains("AMD") || adapterName.Contains("RADEON")) + { + return ComputeName.DirectML; + } + if (adapterName.Contains("NVIDIA")) + { + return ComputeName.CUDA; + } + + GD.Print("Graphics Card not recognized."); //Should use CPU + return ComputeName.CPU; + } + } +} diff --git a/examples/PushBall/addons/godot_rl_agents/onnx/csharp/docs/ONNXInference.xml b/examples/PushBall/addons/godot_rl_agents/onnx/csharp/docs/ONNXInference.xml new file mode 100644 index 0000000..91b07d6 --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/onnx/csharp/docs/ONNXInference.xml @@ -0,0 +1,31 @@ + + + + + The main ONNXInference Class that handles the inference process. + + + + + Starts the inference process. + + Path to the ONNX model, expects a path inside resources. + How many observations will the model recieve. + + + + Runs the given input through the model and returns the output. + + Dictionary containing all observations. + How many different agents are creating these observations. + A Dictionary of arrays, containing instructions based on the observations. + + + + Loads the given model into the inference process, using the best Execution provider available. + + Path to the ONNX model, expects a path inside resources. + InferenceSession ready to run. + + + \ No newline at end of file diff --git a/examples/PushBall/addons/godot_rl_agents/onnx/csharp/docs/SessionConfigurator.xml b/examples/PushBall/addons/godot_rl_agents/onnx/csharp/docs/SessionConfigurator.xml new file mode 100644 index 0000000..f160c02 --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/onnx/csharp/docs/SessionConfigurator.xml @@ -0,0 +1,29 @@ + + + + + The main SessionConfigurator Class that handles the execution options and providers for the inference process. + + + + + Creates a SessionOptions with all available execution providers. + + SessionOptions with all available execution providers. + + + + Appends any execution provider available in the current system. + + + This function is mainly verbose for tracking implementation progress of different compute APIs. + + + + + Checks for available GPUs. + + An integer identifier for each compute platform. + + + \ No newline at end of file diff --git a/examples/PushBall/addons/godot_rl_agents/onnx/wrapper/ONNX_wrapper.gd b/examples/PushBall/addons/godot_rl_agents/onnx/wrapper/ONNX_wrapper.gd new file mode 100644 index 0000000..e27f2c3 --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/onnx/wrapper/ONNX_wrapper.gd @@ -0,0 +1,51 @@ +extends Resource +class_name ONNXModel +var inferencer_script = load("res://addons/godot_rl_agents/onnx/csharp/ONNXInference.cs") + +var inferencer = null + +## How many action values the model outputs +var action_output_size: int + +## Used to differentiate models +## that only output continuous action mean (e.g. sb3, cleanrl export) +## versus models that output mean and logstd (e.g. rllib export) +var action_means_only: bool + +## Whether action_means_value has been set already for this model +var action_means_only_set: bool + +# Must provide the path to the model and the batch size +func _init(model_path, batch_size): + inferencer = inferencer_script.new() + action_output_size = inferencer.Initialize(model_path, batch_size) + +# This function is the one that will be called from the game, +# requires the observation as an array and the state_ins as an int +# returns an Array containing the action the model takes. +func run_inference(obs: Array, state_ins: int) -> Dictionary: + if inferencer == null: + printerr("Inferencer not initialized") + return {} + return inferencer.RunInference(obs, state_ins) + + +func _notification(what): + if what == NOTIFICATION_PREDELETE: + inferencer.FreeDisposables() + inferencer.free() + +# Check whether agent uses a continuous actions model with only action means or not +func set_action_means_only(agent_action_space): + action_means_only_set = true + var continuous_only: bool = true + var continuous_actions: int + for action in agent_action_space: + if not agent_action_space[action]["action_type"] == "continuous": + continuous_only = false + break + else: + continuous_actions += agent_action_space[action]["size"] + if continuous_only: + if continuous_actions == action_output_size: + action_means_only = true diff --git a/examples/PushBall/addons/godot_rl_agents/plugin.cfg b/examples/PushBall/addons/godot_rl_agents/plugin.cfg new file mode 100644 index 0000000..b1bc988 --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/plugin.cfg @@ -0,0 +1,7 @@ +[plugin] + +name="GodotRLAgents" +description="Custom nodes for the godot rl agents toolkit " +author="Edward Beeching" +version="0.1" +script="godot_rl_agents.gd" diff --git a/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/ExampleRaycastSensor2D.tscn b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/ExampleRaycastSensor2D.tscn new file mode 100644 index 0000000..5edb6c7 --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/ExampleRaycastSensor2D.tscn @@ -0,0 +1,48 @@ +[gd_scene load_steps=5 format=3 uid="uid://ddeq7mn1ealyc"] + +[ext_resource type="Script" path="res://addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.gd" id="1"] + +[sub_resource type="GDScript" id="2"] +script/source = "extends Node2D + + + +func _physics_process(delta: float) -> void: + print(\"step start\") + +" + +[sub_resource type="GDScript" id="1"] +script/source = "extends RayCast2D + +var steps = 1 + +func _physics_process(delta: float) -> void: + print(\"processing raycast\") + steps += 1 + if steps % 2: + force_raycast_update() + + print(is_colliding()) +" + +[sub_resource type="CircleShape2D" id="3"] + +[node name="ExampleRaycastSensor2D" type="Node2D"] +script = SubResource("2") + +[node name="ExampleAgent" type="Node2D" parent="."] +position = Vector2(573, 314) +rotation = 0.286234 + +[node name="RaycastSensor2D" type="Node2D" parent="ExampleAgent"] +script = ExtResource("1") + +[node name="TestRayCast2D" type="RayCast2D" parent="."] +script = SubResource("1") + +[node name="StaticBody2D" type="StaticBody2D" parent="."] +position = Vector2(1, 52) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"] +shape = SubResource("3") diff --git a/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/GridSensor2D.gd b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/GridSensor2D.gd new file mode 100644 index 0000000..da170ba --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/GridSensor2D.gd @@ -0,0 +1,235 @@ +@tool +extends ISensor2D +class_name GridSensor2D + +@export var debug_view := false: + get: + return debug_view + set(value): + debug_view = value + _update() + +@export_flags_2d_physics var detection_mask := 0: + get: + return detection_mask + set(value): + detection_mask = value + _update() + +@export var collide_with_areas := false: + get: + return collide_with_areas + set(value): + collide_with_areas = value + _update() + +@export var collide_with_bodies := true: + get: + return collide_with_bodies + set(value): + collide_with_bodies = value + _update() + +@export_range(1, 200, 0.1) var cell_width := 20.0: + get: + return cell_width + set(value): + cell_width = value + _update() + +@export_range(1, 200, 0.1) var cell_height := 20.0: + get: + return cell_height + set(value): + cell_height = value + _update() + +@export_range(1, 21, 2, "or_greater") var grid_size_x := 3: + get: + return grid_size_x + set(value): + grid_size_x = value + _update() + +@export_range(1, 21, 2, "or_greater") var grid_size_y := 3: + get: + return grid_size_y + set(value): + grid_size_y = value + _update() + +var _obs_buffer: PackedFloat64Array +var _rectangle_shape: RectangleShape2D +var _collision_mapping: Dictionary +var _n_layers_per_cell: int + +var _highlighted_cell_color: Color +var _standard_cell_color: Color + + +func get_observation(): + return _obs_buffer + + +func _update(): + if Engine.is_editor_hint(): + if is_node_ready(): + _spawn_nodes() + + +func _ready() -> void: + _set_colors() + + if Engine.is_editor_hint(): + if get_child_count() == 0: + _spawn_nodes() + else: + _spawn_nodes() + + +func _set_colors() -> void: + _standard_cell_color = Color(100.0 / 255.0, 100.0 / 255.0, 100.0 / 255.0, 100.0 / 255.0) + _highlighted_cell_color = Color(255.0 / 255.0, 100.0 / 255.0, 100.0 / 255.0, 100.0 / 255.0) + + +func _get_collision_mapping() -> Dictionary: + # defines which layer is mapped to which cell obs index + var total_bits = 0 + var collision_mapping = {} + for i in 32: + var bit_mask = 2 ** i + if (detection_mask & bit_mask) > 0: + collision_mapping[i] = total_bits + total_bits += 1 + + return collision_mapping + + +func _spawn_nodes(): + for cell in get_children(): + cell.name = "_%s" % cell.name # Otherwise naming below will fail + cell.queue_free() + + _collision_mapping = _get_collision_mapping() + #prints("collision_mapping", _collision_mapping, len(_collision_mapping)) + # allocate memory for the observations + _n_layers_per_cell = len(_collision_mapping) + _obs_buffer = PackedFloat64Array() + _obs_buffer.resize(grid_size_x * grid_size_y * _n_layers_per_cell) + _obs_buffer.fill(0) + #prints(len(_obs_buffer), _obs_buffer ) + + _rectangle_shape = RectangleShape2D.new() + _rectangle_shape.set_size(Vector2(cell_width, cell_height)) + + var shift := Vector2( + -(grid_size_x / 2) * cell_width, + -(grid_size_y / 2) * cell_height, + ) + + for i in grid_size_x: + for j in grid_size_y: + var cell_position = Vector2(i * cell_width, j * cell_height) + shift + _create_cell(i, j, cell_position) + + +func _create_cell(i: int, j: int, position: Vector2): + var cell := Area2D.new() + cell.position = position + cell.name = "GridCell %s %s" % [i, j] + cell.modulate = _standard_cell_color + + if collide_with_areas: + cell.area_entered.connect(_on_cell_area_entered.bind(i, j)) + cell.area_exited.connect(_on_cell_area_exited.bind(i, j)) + + if collide_with_bodies: + cell.body_entered.connect(_on_cell_body_entered.bind(i, j)) + cell.body_exited.connect(_on_cell_body_exited.bind(i, j)) + + cell.collision_layer = 0 + cell.collision_mask = detection_mask + cell.monitorable = true + add_child(cell) + cell.set_owner(get_tree().edited_scene_root) + + var col_shape := CollisionShape2D.new() + col_shape.shape = _rectangle_shape + col_shape.name = "CollisionShape2D" + cell.add_child(col_shape) + col_shape.set_owner(get_tree().edited_scene_root) + + if debug_view: + var quad = MeshInstance2D.new() + quad.name = "MeshInstance2D" + var quad_mesh = QuadMesh.new() + + quad_mesh.set_size(Vector2(cell_width, cell_height)) + + quad.mesh = quad_mesh + cell.add_child(quad) + quad.set_owner(get_tree().edited_scene_root) + + +func _update_obs(cell_i: int, cell_j: int, collision_layer: int, entered: bool): + for key in _collision_mapping: + var bit_mask = 2 ** key + if (collision_layer & bit_mask) > 0: + var collison_map_index = _collision_mapping[key] + + var obs_index = ( + (cell_i * grid_size_x * _n_layers_per_cell) + + (cell_j * _n_layers_per_cell) + + collison_map_index + ) + #prints(obs_index, cell_i, cell_j) + if entered: + _obs_buffer[obs_index] += 1 + else: + _obs_buffer[obs_index] -= 1 + + +func _toggle_cell(cell_i: int, cell_j: int): + var cell = get_node_or_null("GridCell %s %s" % [cell_i, cell_j]) + + if cell == null: + print("cell not found, returning") + + var n_hits = 0 + var start_index = (cell_i * grid_size_x * _n_layers_per_cell) + (cell_j * _n_layers_per_cell) + for i in _n_layers_per_cell: + n_hits += _obs_buffer[start_index + i] + + if n_hits > 0: + cell.modulate = _highlighted_cell_color + else: + cell.modulate = _standard_cell_color + + +func _on_cell_area_entered(area: Area2D, cell_i: int, cell_j: int): + #prints("_on_cell_area_entered", cell_i, cell_j) + _update_obs(cell_i, cell_j, area.collision_layer, true) + if debug_view: + _toggle_cell(cell_i, cell_j) + #print(_obs_buffer) + + +func _on_cell_area_exited(area: Area2D, cell_i: int, cell_j: int): + #prints("_on_cell_area_exited", cell_i, cell_j) + _update_obs(cell_i, cell_j, area.collision_layer, false) + if debug_view: + _toggle_cell(cell_i, cell_j) + + +func _on_cell_body_entered(body: Node2D, cell_i: int, cell_j: int): + #prints("_on_cell_body_entered", cell_i, cell_j) + _update_obs(cell_i, cell_j, body.collision_layer, true) + if debug_view: + _toggle_cell(cell_i, cell_j) + + +func _on_cell_body_exited(body: Node2D, cell_i: int, cell_j: int): + #prints("_on_cell_body_exited", cell_i, cell_j) + _update_obs(cell_i, cell_j, body.collision_layer, false) + if debug_view: + _toggle_cell(cell_i, cell_j) diff --git a/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/ISensor2D.gd b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/ISensor2D.gd new file mode 100644 index 0000000..67669a1 --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/ISensor2D.gd @@ -0,0 +1,25 @@ +extends Node2D +class_name ISensor2D + +var _obs: Array = [] +var _active := false + + +func get_observation(): + pass + + +func activate(): + _active = true + + +func deactivate(): + _active = false + + +func _update_observation(): + pass + + +func reset(): + pass diff --git a/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.gd b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.gd new file mode 100644 index 0000000..9bb54ed --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.gd @@ -0,0 +1,118 @@ +@tool +extends ISensor2D +class_name RaycastSensor2D + +@export_flags_2d_physics var collision_mask := 1: + get: + return collision_mask + set(value): + collision_mask = value + _update() + +@export var collide_with_areas := false: + get: + return collide_with_areas + set(value): + collide_with_areas = value + _update() + +@export var collide_with_bodies := true: + get: + return collide_with_bodies + set(value): + collide_with_bodies = value + _update() + +@export var n_rays := 16.0: + get: + return n_rays + set(value): + n_rays = value + _update() + +@export_range(5, 3000, 5.0) var ray_length := 200: + get: + return ray_length + set(value): + ray_length = value + _update() +@export_range(5, 360, 5.0) var cone_width := 360.0: + get: + return cone_width + set(value): + cone_width = value + _update() + +@export var debug_draw := true: + get: + return debug_draw + set(value): + debug_draw = value + _update() + +var _angles = [] +var rays := [] + + +func _update(): + if Engine.is_editor_hint(): + if debug_draw: + _spawn_nodes() + else: + for ray in get_children(): + if ray is RayCast2D: + remove_child(ray) + + +func _ready() -> void: + _spawn_nodes() + + +func _spawn_nodes(): + for ray in rays: + ray.queue_free() + rays = [] + + _angles = [] + var step = cone_width / (n_rays) + var start = step / 2 - cone_width / 2 + + for i in n_rays: + var angle = start + i * step + var ray = RayCast2D.new() + ray.set_target_position( + Vector2(ray_length * cos(deg_to_rad(angle)), ray_length * sin(deg_to_rad(angle))) + ) + ray.set_name("node_" + str(i)) + ray.enabled = false + ray.collide_with_areas = collide_with_areas + ray.collide_with_bodies = collide_with_bodies + ray.collision_mask = collision_mask + add_child(ray) + rays.append(ray) + + _angles.append(start + i * step) + + +func get_observation() -> Array: + return self.calculate_raycasts() + + +func calculate_raycasts() -> Array: + var result = [] + for ray in rays: + ray.enabled = true + ray.force_raycast_update() + var distance = _get_raycast_distance(ray) + result.append(distance) + ray.enabled = false + return result + + +func _get_raycast_distance(ray: RayCast2D) -> float: + if !ray.is_colliding(): + return 0.0 + + var distance = (global_position - ray.get_collision_point()).length() + distance = clamp(distance, 0.0, ray_length) + return (ray_length - distance) / ray_length diff --git a/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.tscn b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.tscn new file mode 100644 index 0000000..5ca402c --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.tscn @@ -0,0 +1,7 @@ +[gd_scene load_steps=2 format=3 uid="uid://drvfihk5esgmv"] + +[ext_resource type="Script" path="res://addons/godot_rl_agents/sensors/sensors_2d/RaycastSensor2D.gd" id="1"] + +[node name="RaycastSensor2D" type="Node2D"] +script = ExtResource("1") +n_rays = 17.0 diff --git a/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/ExampleRaycastSensor3D.tscn b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/ExampleRaycastSensor3D.tscn new file mode 100644 index 0000000..a8057c7 --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/ExampleRaycastSensor3D.tscn @@ -0,0 +1,6 @@ +[gd_scene format=3 uid="uid://biu787qh4woik"] + +[node name="ExampleRaycastSensor3D" type="Node3D"] + +[node name="Camera3D" type="Camera3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.804183, 0, 2.70146) diff --git a/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/GridSensor3D.gd b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/GridSensor3D.gd new file mode 100644 index 0000000..24de9a4 --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/GridSensor3D.gd @@ -0,0 +1,258 @@ +@tool +extends ISensor3D +class_name GridSensor3D + +@export var debug_view := false: + get: + return debug_view + set(value): + debug_view = value + _update() + +@export_flags_3d_physics var detection_mask := 0: + get: + return detection_mask + set(value): + detection_mask = value + _update() + +@export var collide_with_areas := false: + get: + return collide_with_areas + set(value): + collide_with_areas = value + _update() + +@export var collide_with_bodies := false: + # NOTE! The sensor will not detect StaticBody3D, add an area to static bodies to detect them + get: + return collide_with_bodies + set(value): + collide_with_bodies = value + _update() + +@export_range(0.1, 2, 0.1) var cell_width := 1.0: + get: + return cell_width + set(value): + cell_width = value + _update() + +@export_range(0.1, 2, 0.1) var cell_height := 1.0: + get: + return cell_height + set(value): + cell_height = value + _update() + +@export_range(1, 21, 1, "or_greater") var grid_size_x := 3: + get: + return grid_size_x + set(value): + grid_size_x = value + _update() + +@export_range(1, 21, 1, "or_greater") var grid_size_z := 3: + get: + return grid_size_z + set(value): + grid_size_z = value + _update() + +var _obs_buffer: PackedFloat64Array +var _box_shape: BoxShape3D +var _collision_mapping: Dictionary +var _n_layers_per_cell: int + +var _highlighted_box_material: StandardMaterial3D +var _standard_box_material: StandardMaterial3D + + +func get_observation(): + return _obs_buffer + + +func reset(): + _obs_buffer.fill(0) + + +func _update(): + if Engine.is_editor_hint(): + if is_node_ready(): + _spawn_nodes() + + +func _ready() -> void: + _make_materials() + + if Engine.is_editor_hint(): + if get_child_count() == 0: + _spawn_nodes() + else: + _spawn_nodes() + + +func _make_materials() -> void: + if _highlighted_box_material != null and _standard_box_material != null: + return + + _standard_box_material = StandardMaterial3D.new() + _standard_box_material.set_transparency(1) # ALPHA + _standard_box_material.albedo_color = Color( + 100.0 / 255.0, 100.0 / 255.0, 100.0 / 255.0, 100.0 / 255.0 + ) + + _highlighted_box_material = StandardMaterial3D.new() + _highlighted_box_material.set_transparency(1) # ALPHA + _highlighted_box_material.albedo_color = Color( + 255.0 / 255.0, 100.0 / 255.0, 100.0 / 255.0, 100.0 / 255.0 + ) + + +func _get_collision_mapping() -> Dictionary: + # defines which layer is mapped to which cell obs index + var total_bits = 0 + var collision_mapping = {} + for i in 32: + var bit_mask = 2 ** i + if (detection_mask & bit_mask) > 0: + collision_mapping[i] = total_bits + total_bits += 1 + + return collision_mapping + + +func _spawn_nodes(): + for cell in get_children(): + cell.name = "_%s" % cell.name # Otherwise naming below will fail + cell.queue_free() + + _collision_mapping = _get_collision_mapping() + #prints("collision_mapping", _collision_mapping, len(_collision_mapping)) + # allocate memory for the observations + _n_layers_per_cell = len(_collision_mapping) + _obs_buffer = PackedFloat64Array() + _obs_buffer.resize(grid_size_x * grid_size_z * _n_layers_per_cell) + _obs_buffer.fill(0) + #prints(len(_obs_buffer), _obs_buffer ) + + _box_shape = BoxShape3D.new() + _box_shape.set_size(Vector3(cell_width, cell_height, cell_width)) + + var shift := Vector3( + -(grid_size_x / 2) * cell_width, + 0, + -(grid_size_z / 2) * cell_width, + ) + + for i in grid_size_x: + for j in grid_size_z: + var cell_position = Vector3(i * cell_width, 0.0, j * cell_width) + shift + _create_cell(i, j, cell_position) + + +func _create_cell(i: int, j: int, position: Vector3): + var cell := Area3D.new() + cell.position = position + cell.name = "GridCell %s %s" % [i, j] + + if collide_with_areas: + cell.area_entered.connect(_on_cell_area_entered.bind(i, j)) + cell.area_exited.connect(_on_cell_area_exited.bind(i, j)) + + if collide_with_bodies: + cell.body_entered.connect(_on_cell_body_entered.bind(i, j)) + cell.body_exited.connect(_on_cell_body_exited.bind(i, j)) + +# cell.body_shape_entered.connect(_on_cell_body_shape_entered.bind(i, j)) +# cell.body_shape_exited.connect(_on_cell_body_shape_exited.bind(i, j)) + + cell.collision_layer = 0 + cell.collision_mask = detection_mask + cell.monitorable = true + cell.input_ray_pickable = false + add_child(cell) + cell.set_owner(get_tree().edited_scene_root) + + var col_shape := CollisionShape3D.new() + col_shape.shape = _box_shape + col_shape.name = "CollisionShape3D" + cell.add_child(col_shape) + col_shape.set_owner(get_tree().edited_scene_root) + + if debug_view: + var box = MeshInstance3D.new() + box.name = "MeshInstance3D" + var box_mesh = BoxMesh.new() + + box_mesh.set_size(Vector3(cell_width, cell_height, cell_width)) + box_mesh.material = _standard_box_material + + box.mesh = box_mesh + cell.add_child(box) + box.set_owner(get_tree().edited_scene_root) + + +func _update_obs(cell_i: int, cell_j: int, collision_layer: int, entered: bool): + for key in _collision_mapping: + var bit_mask = 2 ** key + if (collision_layer & bit_mask) > 0: + var collison_map_index = _collision_mapping[key] + + var obs_index = ( + (cell_i * grid_size_z * _n_layers_per_cell) + + (cell_j * _n_layers_per_cell) + + collison_map_index + ) + #prints(obs_index, cell_i, cell_j) + if entered: + _obs_buffer[obs_index] += 1 + else: + _obs_buffer[obs_index] -= 1 + + +func _toggle_cell(cell_i: int, cell_j: int): + var cell = get_node_or_null("GridCell %s %s" % [cell_i, cell_j]) + + if cell == null: + print("cell not found, returning") + + var n_hits = 0 + var start_index = (cell_i * grid_size_z * _n_layers_per_cell) + (cell_j * _n_layers_per_cell) + for i in _n_layers_per_cell: + n_hits += _obs_buffer[start_index + i] + + var cell_mesh = cell.get_node_or_null("MeshInstance3D") + if n_hits > 0: + cell_mesh.mesh.material = _highlighted_box_material + else: + cell_mesh.mesh.material = _standard_box_material + + +func _on_cell_area_entered(area: Area3D, cell_i: int, cell_j: int): + #prints("_on_cell_area_entered", cell_i, cell_j) + _update_obs(cell_i, cell_j, area.collision_layer, true) + if debug_view: + _toggle_cell(cell_i, cell_j) + #print(_obs_buffer) + + +func _on_cell_area_exited(area: Area3D, cell_i: int, cell_j: int): + #prints("_on_cell_area_exited", cell_i, cell_j) + _update_obs(cell_i, cell_j, area.collision_layer, false) + if debug_view: + _toggle_cell(cell_i, cell_j) + + +func _on_cell_body_entered(body: Node3D, cell_i: int, cell_j: int): + #prints("_on_cell_body_entered", cell_i, cell_j) + _update_obs(cell_i, cell_j, body.collision_layer, true) + if debug_view: + _toggle_cell(cell_i, cell_j) + + +func _on_cell_body_exited(body: Node3D, cell_i: int, cell_j: int): + #prints("_on_cell_body_exited", cell_i, cell_j) + _update_obs(cell_i, cell_j, body.collision_layer, false) + if debug_view: + _toggle_cell(cell_i, cell_j) diff --git a/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/ISensor3D.gd b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/ISensor3D.gd new file mode 100644 index 0000000..aca3c2d --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/ISensor3D.gd @@ -0,0 +1,25 @@ +extends Node3D +class_name ISensor3D + +var _obs: Array = [] +var _active := false + + +func get_observation(): + pass + + +func activate(): + _active = true + + +func deactivate(): + _active = false + + +func _update_observation(): + pass + + +func reset(): + pass diff --git a/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.gd b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.gd new file mode 100644 index 0000000..96dfb6a --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.gd @@ -0,0 +1,63 @@ +extends Node3D +class_name RGBCameraSensor3D +var camera_pixels = null + +@onready var camera_texture := $Control/CameraTexture as Sprite2D +@onready var processed_texture := $Control/ProcessedTexture as Sprite2D +@onready var sub_viewport := $SubViewport as SubViewport +@onready var displayed_image: ImageTexture + +@export var render_image_resolution := Vector2(36, 36) +## Display size does not affect rendered or sent image resolution. +## Scale is relative to either render image or downscale image resolution +## depending on which mode is set. +@export var displayed_image_scale_factor := Vector2(8, 8) + +@export_group("Downscale image options") +## Enable to downscale the rendered image before sending the obs. +@export var downscale_image: bool = false +## If downscale_image is true, will display the downscaled image instead of rendered image. +@export var display_downscaled_image: bool = true +## This is the resolution of the image that will be sent after downscaling +@export var resized_image_resolution := Vector2(36, 36) + + +func _ready(): + sub_viewport.size = render_image_resolution + camera_texture.scale = displayed_image_scale_factor + + if downscale_image and display_downscaled_image: + camera_texture.visible = false + processed_texture.scale = displayed_image_scale_factor + else: + processed_texture.visible = false + + +func get_camera_pixel_encoding(): + var image := camera_texture.get_texture().get_image() as Image + + if downscale_image: + image.resize( + resized_image_resolution.x, resized_image_resolution.y, Image.INTERPOLATE_NEAREST + ) + if display_downscaled_image: + if not processed_texture.texture: + displayed_image = ImageTexture.create_from_image(image) + processed_texture.texture = displayed_image + else: + displayed_image.update(image) + + return image.get_data().hex_encode() + + +func get_camera_shape() -> Array: + var size = resized_image_resolution if downscale_image else render_image_resolution + + assert( + size.x >= 36 and size.y >= 36, + "Camera sensor sent image resolution must be 36x36 or larger." + ) + if sub_viewport.transparent_bg: + return [4, size.y, size.x] + else: + return [3, size.y, size.x] diff --git a/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.tscn b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.tscn new file mode 100644 index 0000000..d58649c --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=3 format=3 uid="uid://baaywi3arsl2m"] + +[ext_resource type="Script" path="res://addons/godot_rl_agents/sensors/sensors_3d/RGBCameraSensor3D.gd" id="1"] + +[sub_resource type="ViewportTexture" id="ViewportTexture_y72s3"] +viewport_path = NodePath("SubViewport") + +[node name="RGBCameraSensor3D" type="Node3D"] +script = ExtResource("1") + +[node name="RemoteTransform" type="RemoteTransform3D" parent="."] +remote_path = NodePath("../SubViewport/Camera") + +[node name="SubViewport" type="SubViewport" parent="."] +size = Vector2i(36, 36) +render_target_update_mode = 3 + +[node name="Camera" type="Camera3D" parent="SubViewport"] +near = 0.5 + +[node name="Control" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +metadata/_edit_use_anchors_ = true + +[node name="CameraTexture" type="Sprite2D" parent="Control"] +texture = SubResource("ViewportTexture_y72s3") +centered = false + +[node name="ProcessedTexture" type="Sprite2D" parent="Control"] +centered = false diff --git a/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.gd b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.gd new file mode 100644 index 0000000..1357529 --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.gd @@ -0,0 +1,185 @@ +@tool +extends ISensor3D +class_name RayCastSensor3D +@export_flags_3d_physics var collision_mask = 1: + get: + return collision_mask + set(value): + collision_mask = value + _update() +@export_flags_3d_physics var boolean_class_mask = 1: + get: + return boolean_class_mask + set(value): + boolean_class_mask = value + _update() + +@export var n_rays_width := 6.0: + get: + return n_rays_width + set(value): + n_rays_width = value + _update() + +@export var n_rays_height := 6.0: + get: + return n_rays_height + set(value): + n_rays_height = value + _update() + +@export var ray_length := 10.0: + get: + return ray_length + set(value): + ray_length = value + _update() + +@export var cone_width := 60.0: + get: + return cone_width + set(value): + cone_width = value + _update() + +@export var cone_height := 60.0: + get: + return cone_height + set(value): + cone_height = value + _update() + +@export var collide_with_areas := false: + get: + return collide_with_areas + set(value): + collide_with_areas = value + _update() + +@export var collide_with_bodies := true: + get: + return collide_with_bodies + set(value): + collide_with_bodies = value + _update() + +@export var class_sensor := false + +var rays := [] +var geo = null + + +func _update(): + if Engine.is_editor_hint(): + if is_node_ready(): + _spawn_nodes() + + +func _ready() -> void: + if Engine.is_editor_hint(): + if get_child_count() == 0: + _spawn_nodes() + else: + _spawn_nodes() + + +func _spawn_nodes(): + print("spawning nodes") + for ray in get_children(): + ray.queue_free() + if geo: + geo.clear() + #$Lines.remove_points() + rays = [] + + var horizontal_step = cone_width / (n_rays_width) + var vertical_step = cone_height / (n_rays_height) + + var horizontal_start = horizontal_step / 2 - cone_width / 2 + var vertical_start = vertical_step / 2 - cone_height / 2 + + var points = [] + + for i in n_rays_width: + for j in n_rays_height: + var angle_w = horizontal_start + i * horizontal_step + var angle_h = vertical_start + j * vertical_step + #angle_h = 0.0 + var ray = RayCast3D.new() + var cast_to = to_spherical_coords(ray_length, angle_w, angle_h) + ray.set_target_position(cast_to) + + points.append(cast_to) + + ray.set_name("node_" + str(i) + " " + str(j)) + ray.enabled = true + ray.collide_with_bodies = collide_with_bodies + ray.collide_with_areas = collide_with_areas + ray.collision_mask = collision_mask + add_child(ray) + ray.set_owner(get_tree().edited_scene_root) + rays.append(ray) + ray.force_raycast_update() + + +# if Engine.editor_hint: +# _create_debug_lines(points) + + +func _create_debug_lines(points): + if not geo: + geo = ImmediateMesh.new() + add_child(geo) + + geo.clear() + geo.begin(Mesh.PRIMITIVE_LINES) + for point in points: + geo.set_color(Color.AQUA) + geo.add_vertex(Vector3.ZERO) + geo.add_vertex(point) + geo.end() + + +func display(): + if geo: + geo.display() + + +func to_spherical_coords(r, inc, azimuth) -> Vector3: + return Vector3( + r * sin(deg_to_rad(inc)) * cos(deg_to_rad(azimuth)), + r * sin(deg_to_rad(azimuth)), + r * cos(deg_to_rad(inc)) * cos(deg_to_rad(azimuth)) + ) + + +func get_observation() -> Array: + return self.calculate_raycasts() + + +func calculate_raycasts() -> Array: + var result = [] + for ray in rays: + ray.set_enabled(true) + ray.force_raycast_update() + var distance = _get_raycast_distance(ray) + + result.append(distance) + if class_sensor: + var hit_class: float = 0 + if ray.get_collider(): + var hit_collision_layer = ray.get_collider().collision_layer + hit_collision_layer = hit_collision_layer & collision_mask + hit_class = (hit_collision_layer & boolean_class_mask) > 0 + result.append(float(hit_class)) + ray.set_enabled(false) + return result + + +func _get_raycast_distance(ray: RayCast3D) -> float: + if !ray.is_colliding(): + return 0.0 + + var distance = (global_transform.origin - ray.get_collision_point()).length() + distance = clamp(distance, 0.0, ray_length) + return (ray_length - distance) / ray_length diff --git a/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.tscn b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.tscn new file mode 100644 index 0000000..35f9796 --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=2 format=3 uid="uid://b803cbh1fmy66"] + +[ext_resource type="Script" path="res://addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.gd" id="1"] + +[node name="RaycastSensor3D" type="Node3D"] +script = ExtResource("1") +n_rays_width = 4.0 +n_rays_height = 2.0 +ray_length = 11.0 + +[node name="node_1 0" type="RayCast3D" parent="."] +target_position = Vector3(-1.38686, -2.84701, 10.5343) + +[node name="node_1 1" type="RayCast3D" parent="."] +target_position = Vector3(-1.38686, 2.84701, 10.5343) + +[node name="node_2 0" type="RayCast3D" parent="."] +target_position = Vector3(1.38686, -2.84701, 10.5343) + +[node name="node_2 1" type="RayCast3D" parent="."] +target_position = Vector3(1.38686, 2.84701, 10.5343) + +[node name="node_3 0" type="RayCast3D" parent="."] +target_position = Vector3(4.06608, -2.84701, 9.81639) + +[node name="node_3 1" type="RayCast3D" parent="."] +target_position = Vector3(4.06608, 2.84701, 9.81639) diff --git a/examples/PushBall/addons/godot_rl_agents/sync.gd b/examples/PushBall/addons/godot_rl_agents/sync.gd new file mode 100644 index 0000000..f47decb --- /dev/null +++ b/examples/PushBall/addons/godot_rl_agents/sync.gd @@ -0,0 +1,598 @@ +extends Node +class_name Sync + +# --fixed-fps 2000 --disable-render-loop + +enum ControlModes { + HUMAN, ## Test the environment manually + TRAINING, ## Train a model + ONNX_INFERENCE ## Load a pretrained model using an .onnx file +} +@export var control_mode: ControlModes = ControlModes.TRAINING +## Action will be repeated for n frames (Godot physics steps). +@export_range(1, 10, 1, "or_greater") var action_repeat := 8 +## Speeds up the physics in the environment to enable faster training. +@export_range(0, 10, 0.1, "or_greater") var speed_up := 1.0 +## The path to a trained .onnx model file to use for inference (only needed for the 'Onnx Inference' control mode). +@export var onnx_model_path := "" + +# Onnx model stored for each requested path +var onnx_models: Dictionary + +@onready var start_time = Time.get_ticks_msec() + +const MAJOR_VERSION := "0" +const MINOR_VERSION := "7" +const DEFAULT_PORT := "11008" +const DEFAULT_SEED := "1" +var stream: StreamPeerTCP = null +var connected = false +var message_center +var should_connect = true + +var all_agents: Array +var agents_training: Array +## Policy name of each agent, for use with multi-policy multi-agent RL cases +var agents_training_policy_names: Array[String] = ["shared_policy"] +var agents_inference: Array +var agents_heuristic: Array + +## For recording expert demos +var agent_demo_record: Node +## File path for writing recorded trajectories +var expert_demo_save_path: String +## Stores recorded trajectories +var demo_trajectories: Array +## A trajectory includes obs: Array, acts: Array, terminal (set in Python env instead) +var current_demo_trajectory: Array + +var need_to_send_obs = false +var args = null +var initialized = false +var just_reset = false +var onnx_model = null +var n_action_steps = 0 + +var _action_space_training: Array[Dictionary] = [] +var _action_space_inference: Array[Dictionary] = [] +var _obs_space_training: Array[Dictionary] = [] + + +# Called when the node enters the scene tree for the first time. +func _ready(): + await get_parent().ready + get_tree().set_pause(true) + _initialize() + await get_tree().create_timer(1.0).timeout + get_tree().set_pause(false) + + +func _initialize(): + _get_agents() + args = _get_args() + Engine.physics_ticks_per_second = _get_speedup() * 60 # Replace with function body. + Engine.time_scale = _get_speedup() * 1.0 + prints( + "physics ticks", + Engine.physics_ticks_per_second, + Engine.time_scale, + _get_speedup(), + speed_up + ) + + _set_heuristic("human", all_agents) + + _initialize_training_agents() + _initialize_inference_agents() + _initialize_demo_recording() + + _set_seed() + _set_action_repeat() + initialized = true + + +func _initialize_training_agents(): + if agents_training.size() > 0: + _obs_space_training.resize(agents_training.size()) + _action_space_training.resize(agents_training.size()) + for agent_idx in range(0, agents_training.size()): + _obs_space_training[agent_idx] = agents_training[agent_idx].get_obs_space() + _action_space_training[agent_idx] = agents_training[agent_idx].get_action_space() + connected = connect_to_server() + if connected: + _set_heuristic("model", agents_training) + _handshake() + _send_env_info() + else: + push_warning( + "Couldn't connect to Python server, using human controls instead. ", + "Did you start the training server using e.g. `gdrl` from the console?" + ) + + +func _initialize_inference_agents(): + if agents_inference.size() > 0: + if control_mode == ControlModes.ONNX_INFERENCE: + assert( + FileAccess.file_exists(onnx_model_path), + "Onnx Model Path set on Sync node does not exist: %s" % onnx_model_path + ) + onnx_models[onnx_model_path] = ONNXModel.new(onnx_model_path, 1) + + for agent in agents_inference: + var action_space = agent.get_action_space() + _action_space_inference.append(action_space) + + var agent_onnx_model: ONNXModel + if agent.onnx_model_path.is_empty(): + assert( + onnx_models.has(onnx_model_path), + ( + "Node %s has no onnx model path set " % agent.get_path() + + "and sync node's control mode is not set to OnnxInference. " + + "Either add the path to the AIController, " + + "or if you want to use the path set on sync node instead, " + + "set control mode to OnnxInference." + ) + ) + prints( + "Info: AIController %s" % agent.get_path(), + "has no onnx model path set.", + "Using path set on the sync node instead." + ) + agent_onnx_model = onnx_models[onnx_model_path] + else: + if not onnx_models.has(agent.onnx_model_path): + assert( + FileAccess.file_exists(agent.onnx_model_path), + ( + "Onnx Model Path set on %s node does not exist: %s" + % [agent.get_path(), agent.onnx_model_path] + ) + ) + onnx_models[agent.onnx_model_path] = ONNXModel.new(agent.onnx_model_path, 1) + agent_onnx_model = onnx_models[agent.onnx_model_path] + + agent.onnx_model = agent_onnx_model + if not agent_onnx_model.action_means_only_set: + agent_onnx_model.set_action_means_only(action_space) + + _set_heuristic("model", agents_inference) + + +func _initialize_demo_recording(): + if agent_demo_record: + expert_demo_save_path = agent_demo_record.expert_demo_save_path + assert( + not expert_demo_save_path.is_empty(), + "Expert demo save path set in %s is empty." % agent_demo_record.get_path() + ) + + InputMap.add_action("RemoveLastDemoEpisode") + InputMap.action_add_event( + "RemoveLastDemoEpisode", agent_demo_record.remove_last_episode_key + ) + current_demo_trajectory.resize(2) + current_demo_trajectory[0] = [] + current_demo_trajectory[1] = [] + agent_demo_record.heuristic = "demo_record" + + +func _physics_process(_delta): + # two modes, human control, agent control + # pause tree, send obs, get actions, set actions, unpause tree + + _demo_record_process() + + if n_action_steps % action_repeat != 0: + n_action_steps += 1 + return + + n_action_steps += 1 + + _training_process() + _inference_process() + _heuristic_process() + + +func _training_process(): + if connected: + get_tree().set_pause(true) + + var obs = _get_obs_from_agents(agents_training) + var info = _get_info_from_agents(agents_training) + + if just_reset: + just_reset = false + + var reply = {"type": "reset", "obs": obs, "info": info} + _send_dict_as_json_message(reply) + # this should go straight to getting the action and setting it checked the agent, no need to perform one phyics tick + get_tree().set_pause(false) + return + + if need_to_send_obs: + need_to_send_obs = false + var reward = _get_reward_from_agents() + var done = _get_done_from_agents() + #_reset_agents_if_done() # this ensures the new observation is from the next env instance : NEEDS REFACTOR + + var reply = {"type": "step", "obs": obs, "reward": reward, "done": done, "info": info} + _send_dict_as_json_message(reply) + + var handled = handle_message() + + +func _inference_process(): + if agents_inference.size() > 0: + var obs: Array = _get_obs_from_agents(agents_inference) + var actions = [] + + for agent_id in range(0, agents_inference.size()): + var model: ONNXModel = agents_inference[agent_id].onnx_model + var action = model.run_inference(obs[agent_id]["obs"], 1.0) + var action_dict = _extract_action_dict( + action["output"], _action_space_inference[agent_id], model.action_means_only + ) + actions.append(action_dict) + + _set_agent_actions(actions, agents_inference) + _reset_agents_if_done(agents_inference) + get_tree().set_pause(false) + + +func _demo_record_process(): + if not agent_demo_record: + return + + if Input.is_action_just_pressed("RemoveLastDemoEpisode"): + print("[Sync script][Demo recorder] Removing last recorded episode.") + demo_trajectories.remove_at(demo_trajectories.size() - 1) + print("Remaining episode count: %d" % demo_trajectories.size()) + + if n_action_steps % agent_demo_record.action_repeat != 0: + return + + var obs_dict: Dictionary = agent_demo_record.get_obs() + + # Get the current obs from the agent + assert( + obs_dict.has("obs"), + "Demo recorder needs an 'obs' key in get_obs() returned dictionary to record obs from." + ) + current_demo_trajectory[0].append(obs_dict.obs) + + # Get the action applied for the current obs from the agent + agent_demo_record.set_action() + var acts = agent_demo_record.get_action() + + var terminal = agent_demo_record.get_done() + # Record actions only for non-terminal states + if terminal: + agent_demo_record.set_done_false() + else: + current_demo_trajectory[1].append(acts) + + if terminal: + #current_demo_trajectory[2].append(true) + demo_trajectories.append(current_demo_trajectory.duplicate(true)) + print("[Sync script][Demo recorder] Recorded episode count: %d" % demo_trajectories.size()) + current_demo_trajectory[0].clear() + current_demo_trajectory[1].clear() + + +func _heuristic_process(): + for agent in agents_heuristic: + _reset_agents_if_done(agents_heuristic) + + +func _extract_action_dict(action_array: Array, action_space: Dictionary, action_means_only: bool): + var index = 0 + var result = {} + for key in action_space.keys(): + var size = action_space[key]["size"] + var action_type = action_space[key]["action_type"] + if action_type == "discrete": + var largest_logit: float # Value of the largest logit for this action in the actions array + var largest_logit_idx: int # Index of the largest logit for this action in the actions array + for logit_idx in range(0, size): + var logit_value = action_array[index + logit_idx] + if logit_value > largest_logit: + largest_logit = logit_value + largest_logit_idx = logit_idx + result[key] = largest_logit_idx # Index of the largest logit is the discrete action value + index += size + elif action_type == "continuous": + # For continous actions, we only take the action mean values + result[key] = clamp_array(action_array.slice(index, index + size), -1.0, 1.0) + if action_means_only: + index += size # model only outputs action means, so we move index by size + else: + index += size * 2 # model outputs logstd after action mean, we skip the logstd part + + else: + assert( + false, + ( + 'Only "discrete" and "continuous" action types supported. Found: %s action type set.' + % action_type + ) + ) + + return result + + +## For AIControllers that inherit mode from sync, sets the correct mode. +func _set_agent_mode(agent: Node): + var agent_inherits_mode: bool = agent.control_mode == agent.ControlModes.INHERIT_FROM_SYNC + + if agent_inherits_mode: + match control_mode: + ControlModes.HUMAN: + agent.control_mode = agent.ControlModes.HUMAN + ControlModes.TRAINING: + agent.control_mode = agent.ControlModes.TRAINING + ControlModes.ONNX_INFERENCE: + agent.control_mode = agent.ControlModes.ONNX_INFERENCE + + +func _get_agents(): + all_agents = get_tree().get_nodes_in_group("AGENT") + for agent in all_agents: + _set_agent_mode(agent) + + if agent.control_mode == agent.ControlModes.TRAINING: + agents_training.append(agent) + elif agent.control_mode == agent.ControlModes.ONNX_INFERENCE: + agents_inference.append(agent) + elif agent.control_mode == agent.ControlModes.HUMAN: + agents_heuristic.append(agent) + elif agent.control_mode == agent.ControlModes.RECORD_EXPERT_DEMOS: + assert( + not agent_demo_record, + "Currently only a single AIController can be used for recording expert demos." + ) + agent_demo_record = agent + + var training_agent_count = agents_training.size() + agents_training_policy_names.resize(training_agent_count) + for i in range(0, training_agent_count): + agents_training_policy_names[i] = agents_training[i].policy_name + + +func _set_heuristic(heuristic, agents: Array): + for agent in agents: + agent.set_heuristic(heuristic) + + +func _handshake(): + print("performing handshake") + + var json_dict = _get_dict_json_message() + assert(json_dict["type"] == "handshake") + var major_version = json_dict["major_version"] + var minor_version = json_dict["minor_version"] + if major_version != MAJOR_VERSION: + print("WARNING: major verison mismatch ", major_version, " ", MAJOR_VERSION) + if minor_version != MINOR_VERSION: + print("WARNING: minor verison mismatch ", minor_version, " ", MINOR_VERSION) + + print("handshake complete") + + +func _get_dict_json_message(): + # returns a dictionary from of the most recent message + # this is not waiting + while stream.get_available_bytes() == 0: + stream.poll() + if stream.get_status() != 2: + print("server disconnected status, closing") + get_tree().quit() + return null + + OS.delay_usec(10) + + var message = stream.get_string() + var json_data = JSON.parse_string(message) + + return json_data + + +func _send_dict_as_json_message(dict): + stream.put_string(JSON.stringify(dict, "", false)) + + +func _send_env_info(): + var json_dict = _get_dict_json_message() + assert(json_dict["type"] == "env_info") + + var message = { + "type": "env_info", + "observation_space": _obs_space_training, + "action_space": _action_space_training, + "n_agents": len(agents_training), + "agent_policy_names": agents_training_policy_names + } + _send_dict_as_json_message(message) + + +func connect_to_server(): + print("Waiting for one second to allow server to start") + OS.delay_msec(1000) + print("trying to connect to server") + stream = StreamPeerTCP.new() + + # "localhost" was not working on windows VM, had to use the IP + var ip = "127.0.0.1" + var port = _get_port() + var connect = stream.connect_to_host(ip, port) + stream.set_no_delay(true) # TODO check if this improves performance or not + stream.poll() + # Fetch the status until it is either connected (2) or failed to connect (3) + while stream.get_status() < 2: + stream.poll() + return stream.get_status() == 2 + + +func _get_args(): + print("getting command line arguments") + var arguments = {} + for argument in OS.get_cmdline_args(): + print(argument) + if argument.find("=") > -1: + var key_value = argument.split("=") + arguments[key_value[0].lstrip("--")] = key_value[1] + else: + # Options without an argument will be present in the dictionary, + # with the value set to an empty string. + arguments[argument.lstrip("--")] = "" + + return arguments + + +func _get_speedup(): + print(args) + return args.get("speedup", str(speed_up)).to_float() + + +func _get_port(): + return args.get("port", DEFAULT_PORT).to_int() + + +func _set_seed(): + var _seed = args.get("env_seed", DEFAULT_SEED).to_int() + seed(_seed) + + +func _set_action_repeat(): + action_repeat = args.get("action_repeat", str(action_repeat)).to_int() + + +func disconnect_from_server(): + stream.disconnect_from_host() + + +func handle_message() -> bool: + # get json message: reset, step, close + var message = _get_dict_json_message() + if message["type"] == "close": + print("received close message, closing game") + get_tree().quit() + get_tree().set_pause(false) + return true + + if message["type"] == "reset": + print("resetting all agents") + _reset_agents() + just_reset = true + get_tree().set_pause(false) + #print("resetting forcing draw") +# RenderingServer.force_draw() +# var obs = _get_obs_from_agents() +# print("obs ", obs) +# var reply = { +# "type": "reset", +# "obs": obs +# } +# _send_dict_as_json_message(reply) + return true + + if message["type"] == "call": + var method = message["method"] + var returns = _call_method_on_agents(method) + var reply = {"type": "call", "returns": returns} + print("calling method from Python") + _send_dict_as_json_message(reply) + return handle_message() + + if message["type"] == "action": + var action = message["action"] + _set_agent_actions(action, agents_training) + need_to_send_obs = true + get_tree().set_pause(false) + return true + + print("message was not handled") + return false + + +func _call_method_on_agents(method): + var returns = [] + for agent in all_agents: + returns.append(agent.call(method)) + + return returns + + +func _reset_agents_if_done(agents = all_agents): + for agent in agents: + if agent.get_done(): + agent.set_done_false() + + +func _reset_agents(agents = all_agents): + for agent in agents: + agent.needs_reset = true + #agent.reset() + + +func _get_obs_from_agents(agents: Array = all_agents): + var obs = [] + for agent in agents: + obs.append(agent.get_obs()) + return obs + + +func _get_reward_from_agents(agents: Array = agents_training): + var rewards = [] + for agent in agents: + rewards.append(agent.get_reward()) + agent.zero_reward() + return rewards + + +func _get_info_from_agents(agents: Array = all_agents): + var info = [] + for agent in agents: + info.append(agent.get_info()) + return info + + +func _get_done_from_agents(agents: Array = agents_training): + var dones = [] + for agent in agents: + var done = agent.get_done() + if done: + agent.set_done_false() + dones.append(done) + return dones + + +func _set_agent_actions(actions, agents: Array = all_agents): + for i in range(len(actions)): + agents[i].set_action(actions[i]) + + +func clamp_array(arr: Array, min: float, max: float): + var output: Array = [] + for a in arr: + output.append(clamp(a, min, max)) + return output + + +## Save recorded export demos on window exit (Close game window instead of "Stop" button in Godot Editor) +func _notification(what): + if demo_trajectories.size() == 0 or expert_demo_save_path.is_empty(): + return + + if what == NOTIFICATION_PREDELETE: + var json_string = JSON.stringify(demo_trajectories, "", false) + var file = FileAccess.open(expert_demo_save_path, FileAccess.WRITE) + + if not file: + var error: Error = FileAccess.get_open_error() + assert(not error, "There was an error opening the file: %d" % error) + + file.store_line(json_string) + var error = file.get_error() + assert(not error, "There was an error after trying to write to the file: %d" % error) diff --git a/examples/PushBall/assets/goal.glb b/examples/PushBall/assets/goal.glb new file mode 100644 index 0000000000000000000000000000000000000000..c283f3d1977109d7c24a69e6a71242c8c24b6e68 GIT binary patch literal 11052 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 SpYK5rUx9AkjDoVC6a5>w?4$tz literal 0 HcmV?d00001 diff --git a/examples/PushBall/assets/license.md b/examples/PushBall/assets/license.md new file mode 100644 index 0000000..3ce90a3 --- /dev/null +++ b/examples/PushBall/assets/license.md @@ -0,0 +1,3 @@ +The following license is only for the graphical assets in the folder "assets", including subfolders, specifically .glb and .png files: +Author: Ivan Dodic (https://github.com/Ivan-267), +License: https://creativecommons.org/licenses/by/4.0/ \ No newline at end of file diff --git a/examples/PushBall/assets/robot.glb b/examples/PushBall/assets/robot.glb new file mode 100644 index 0000000000000000000000000000000000000000..f14e0b7b5745356247a5d453520a772f795d90bd GIT binary patch literal 134992 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

p2v}azB9}#mc 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

Y;s|SVTVXysY(W&jn@sv$Ve{kFgn8OpKF}SGH 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 h)z4nkLi<}yVX)3`aaZA{{ad|j?w@C literal 0 HcmV?d00001 diff --git a/examples/PushBall/ground_sensor.tscn b/examples/PushBall/ground_sensor.tscn new file mode 100644 index 0000000..b0ecdd8 --- /dev/null +++ b/examples/PushBall/ground_sensor.tscn @@ -0,0 +1,106 @@ +[gd_scene load_steps=2 format=3 uid="uid://cs4v3usqu455o"] + +[ext_resource type="Script" path="res://scenes/robot/RayGridSensor.gd" id="1_e1dtn"] + +[node name="GroundSensor" type="Node3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.25, 0, -3.2) +script = ExtResource("1_e1dtn") +n_rays_height = 4.0 +ray_length = 2.025 +grid_width = 3.0 +grid_height = 5.0 + +[node name="node_0 0" type="RayCast3D" parent="."] +target_position = Vector3(0, -2.025, 0) + +[node name="_RayCast3D_22425" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.25) +target_position = Vector3(0, -2.025, 0) + +[node name="node_0 2" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2.5) +target_position = Vector3(0, -2.025, 0) + +[node name="node_0 3" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 3.75) +target_position = Vector3(0, -2.025, 0) + +[node name="node_1 0" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0, 0) +target_position = Vector3(0, -2.025, 0) + +[node name="_RayCast3D_22426" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0, 1.25) +target_position = Vector3(0, -2.025, 0) + +[node name="node_1 2" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0, 2.5) +target_position = Vector3(0, -2.025, 0) + +[node name="node_1 3" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 0, 3.75) +target_position = Vector3(0, -2.025, 0) + +[node name="_RayCast3D_22427" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0) +target_position = Vector3(0, -2.025, 0) + +[node name="_RayCast3D_22428" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1.25) +target_position = Vector3(0, -2.025, 0) + +[node name="node_2 2" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 2.5) +target_position = Vector3(0, -2.025, 0) + +[node name="node_2 3" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 3.75) +target_position = Vector3(0, -2.025, 0) + +[node name="node_3 0" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 0) +target_position = Vector3(0, -2.025, 0) + +[node name="node_3 1" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 1.25) +target_position = Vector3(0, -2.025, 0) + +[node name="node_3 2" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 2.5) +target_position = Vector3(0, -2.025, 0) + +[node name="node_3 3" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 3.75) +target_position = Vector3(0, -2.025, 0) + +[node name="node_4 0" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0) +target_position = Vector3(0, -2.025, 0) + +[node name="node_4 1" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 1.25) +target_position = Vector3(0, -2.025, 0) + +[node name="node_4 2" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 2.5) +target_position = Vector3(0, -2.025, 0) + +[node name="node_4 3" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 3.75) +target_position = Vector3(0, -2.025, 0) + +[node name="node_5 0" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, 0) +target_position = Vector3(0, -2.025, 0) + +[node name="node_5 1" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, 1.25) +target_position = Vector3(0, -2.025, 0) + +[node name="node_5 2" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, 2.5) +target_position = Vector3(0, -2.025, 0) + +[node name="node_5 3" type="RayCast3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.5, 0, 3.75) +target_position = Vector3(0, -2.025, 0) diff --git a/examples/PushBall/icon.svg b/examples/PushBall/icon.svg new file mode 100644 index 0000000..3fe4f4a --- /dev/null +++ b/examples/PushBall/icon.svg @@ -0,0 +1 @@ + diff --git a/examples/PushBall/model.onnx b/examples/PushBall/model.onnx new file mode 100644 index 0000000000000000000000000000000000000000..7d1b3a5065e485226f011c97bfe34ce0f1457cf1 GIT binary patch literal 27996 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

R0pTYo|r5OO#ZgBXZEV0j) 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 literal 0 HcmV?d00001 diff --git a/examples/PushBall/project.godot b/examples/PushBall/project.godot new file mode 100644 index 0000000..f1a3052 --- /dev/null +++ b/examples/PushBall/project.godot @@ -0,0 +1,61 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="PushTheBall" +run/main_scene="res://scenes/training_scene.tscn" +config/features=PackedStringArray("4.3", "C#", "Forward Plus") +config/icon="res://icon.svg" + +[dotnet] + +project/assembly_name="PushBall" + +[editor_plugins] + +enabled=PackedStringArray("res://addons/godot_rl_agents/plugin.cfg") + +[input] + +move_left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +move_right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +move_up={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +move_down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +] +} +push={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":101,"location":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"location":0,"echo":false,"script":null) +] +} + +[physics] + +common/max_physics_steps_per_frame=32 diff --git a/examples/PushBall/readme.md b/examples/PushBall/readme.md new file mode 100644 index 0000000..1722668 --- /dev/null +++ b/examples/PushBall/readme.md @@ -0,0 +1,127 @@ +# Push Ball +A ball-pushing robot environment. + +# Goal: +The robot needs to push the ball into the goal. + +# Observations: +```gdscript +func get_obs() -> Dictionary: + var observations: Array[float] = [] + for raycast_sensor in raycast_sensors: + var obs = raycast_sensor.get_observation() + observations.append_array(obs) + + var player_to_goal := player.to_local(player.goal.global_position) + var player_to_goal_dir := player_to_goal.normalized() + var player_to_goal_dist := clampf(player_to_goal.length() / 5.0, 0, 1.0) + + var player_to_ball := player.to_local(player.ball.global_position) + var player_to_ball_dir := player_to_ball.normalized() + var player_to_ball_dist := clampf(player_to_ball.length() / 10.0, 0, 1.0) + + var player_velocity = player.linear_velocity + player_velocity = player.global_basis.inverse() * player_velocity + player_velocity = player_velocity.limit_length(4) / 4 + + var player_angular_velocity = player.angular_velocity.y + player_angular_velocity = clampf(player_angular_velocity / 4.0, 0.0, 1.0) + + var ball_velocity = player.ball.linear_velocity + ball_velocity = player.global_basis.inverse() * ball_velocity + ball_velocity = ball_velocity.limit_length(4) / 4 + + ( + observations + . append_array( + [ + player_to_goal_dir.x, + player_to_goal_dir.z, + player_to_goal_dist, + player_to_ball_dir.x, + player_to_ball_dir.z, + player_to_ball_dist, + player_velocity.x, + player_velocity.z, + ball_velocity.x, + ball_velocity.z, + n_steps / float(reset_after), + ] + ) + ) + + return {"obs": observations} +``` + +# Action space: + +There are 2 continuous actions used by the agent, for moving and turning: + +```gdscript +func get_action_space() -> Dictionary: + return { + "move": {"size": 1, "action_type": "continuous"}, + "turn": {"size": 1, "action_type": "continuous"} + } + +``` + +To incentivize forward movement, the backward action is clamped in `set_action` (so moving backward is slower): + +```gdscript + player.requested_movement = clampf(action.move[0], -1.0, 0.2) + player.requested_turn = clampf(action.turn[0], -1.0, 1.0) +``` + +# Rewards and episode end condition: +Reward is given when: +- The ball approaches the goal (best distance based) +- The robot approaches the ball (best distance based) +- The robot falls down or the episode times out (negative rewards in these cases) + +Episode ends when: +- The ball reaches the goal +- Either the player or ball fall down +- Episode times out after a certain amount of steps (adjustable in AIController) + + +# Training: + +These are the training settings used to train the included onnx file: + +[SB3 example script](https://github.com/edbeeching/godot_rl_agents/blob/main/examples/stable_baselines3_example.py) was used for training, with the following changes: + +```python + learning_rate = 0.0001 if not args.linear_lr_schedule else linear_schedule(0.0003) + model: PPO = PPO( + "MlpPolicy", + env, + n_steps=256, + batch_size=256 * env.num_envs, + clip_range=0.1, + target_kl=0.01, + learning_rate=learning_rate, + n_epochs=50, + ent_coef=0.0065, + tensorboard_log=args.experiment_dir, + verbose=2, + ) +``` + +Note: Additional changes not detailed above are needed to use the MlpPolicy (`SBGSingleObsEnv` should be used), but you should be able to use the `MultiInput` policy instead. + +SB3 example script cmd arguments: + +```python +--n_parallel=4 +--onnx_export_path=model.onnx +--timesteps=100_000_000 +--save_model_path=model.zip +--speedup=20 +``` + +Notes: +- Training was manually stopped at around 21m steps. +- `--env_path` also needs to be set to the exported executable. + +This environment was made by [Ivan267.](https://github.com/Ivan-267) diff --git a/examples/PushBall/scenes/ball/ball.gd b/examples/PushBall/scenes/ball/ball.gd new file mode 100644 index 0000000..99034f5 --- /dev/null +++ b/examples/PushBall/scenes/ball/ball.gd @@ -0,0 +1,10 @@ +extends RigidBody3D +class_name Ball + +@export var spawn_position_manager: SpawnPositionManager + + +func reset(): + global_transform = spawn_position_manager.get_spawn_position() + linear_velocity = Vector3.ZERO + angular_velocity = Vector3.ZERO diff --git a/examples/PushBall/scenes/ball/ball.tscn b/examples/PushBall/scenes/ball/ball.tscn new file mode 100644 index 0000000..c43773c --- /dev/null +++ b/examples/PushBall/scenes/ball/ball.tscn @@ -0,0 +1,64 @@ +[gd_scene load_steps=10 format=3 uid="uid://i2xan4njr6b3"] + +[ext_resource type="Script" path="res://scenes/ball/ball.gd" id="1_ctddt"] +[ext_resource type="PackedScene" uid="uid://bmc018ke831mi" path="res://scenes/spawn_position_manager/spawn_positions.tscn" id="2_r851m"] + +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_o5xow"] +friction = 0.5 +bounce = 0.5 + +[sub_resource type="SphereShape3D" id="SphereShape3D_7ksrn"] + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_bwtfo"] +noise_type = 5 + +[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_1w6s6"] +in_3d_space = true +seamless = true +seamless_blend_skirt = 1.0 +noise = SubResource("FastNoiseLite_bwtfo") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4qk56"] +render_priority = -1 +cull_mode = 1 +shading_mode = 0 +albedo_color = Color(0, 0, 0, 1) +disable_receive_shadows = true +grow = true +grow_amount = 0.04 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_25ryc"] +next_pass = SubResource("StandardMaterial3D_4qk56") +albedo_color = Color(0.2494, 0.86, 0.82947, 1) +albedo_texture = SubResource("NoiseTexture2D_1w6s6") +metallic_specular = 1.0 +roughness = 0.0 +uv1_triplanar = true +texture_filter = 0 + +[sub_resource type="SphereMesh" id="SphereMesh_tah8n"] +material = SubResource("StandardMaterial3D_25ryc") +radial_segments = 32 +rings = 16 + +[node name="Ball" type="RigidBody3D" node_paths=PackedStringArray("spawn_position_manager")] +collision_layer = 8388608 +collision_mask = 513 +mass = 0.1 +physics_material_override = SubResource("PhysicsMaterial_o5xow") +gravity_scale = 4.0 +continuous_cd = true +linear_damp_mode = 1 +linear_damp = 4.0 +angular_damp_mode = 1 +angular_damp = 10.0 +script = ExtResource("1_ctddt") +spawn_position_manager = NodePath("SpawnPositions") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("SphereShape3D_7ksrn") + +[node name="SpawnPositions" parent="." instance=ExtResource("2_r851m")] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +mesh = SubResource("SphereMesh_tah8n") diff --git a/examples/PushBall/scenes/goal/goal.gd b/examples/PushBall/scenes/goal/goal.gd new file mode 100644 index 0000000..63616bb --- /dev/null +++ b/examples/PushBall/scenes/goal/goal.gd @@ -0,0 +1,13 @@ +extends Area3D + +@export var spawn_position_manager: SpawnPositionManager +@onready var initial_transform := transform +@onready var pointer := $goal/GoalPointer + + +func _physics_process(delta: float) -> void: + pointer.rotate_y(delta * 2) + + +func reset(): + global_transform = spawn_position_manager.get_spawn_position() diff --git a/examples/PushBall/scenes/goal/goal.tscn b/examples/PushBall/scenes/goal/goal.tscn new file mode 100644 index 0000000..4bb0e06 --- /dev/null +++ b/examples/PushBall/scenes/goal/goal.tscn @@ -0,0 +1,35 @@ +[gd_scene load_steps=7 format=3 uid="uid://b44vhh42y4dsq"] + +[ext_resource type="Script" path="res://scenes/goal/goal.gd" id="1_3bxxn"] +[ext_resource type="PackedScene" uid="uid://8cvhxosmcq6" path="res://assets/goal.glb" id="2_dhf6t"] +[ext_resource type="PackedScene" uid="uid://bmc018ke831mi" path="res://scenes/spawn_position_manager/spawn_positions.tscn" id="2_mxo1m"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fw6v3"] +transparency = 1 +albedo_color = Color(1, 1, 0, 0.670588) + +[sub_resource type="BoxMesh" id="BoxMesh_kg8u1"] +material = SubResource("StandardMaterial3D_fw6v3") +size = Vector3(2, 1, 2) + +[sub_resource type="BoxShape3D" id="BoxShape3D_ntota"] +size = Vector3(2, 1, 2) + +[node name="Goal" type="Area3D" node_paths=PackedStringArray("spawn_position_manager")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, -4.814) +collision_layer = 129 +collision_mask = 8388609 +script = ExtResource("1_3bxxn") +spawn_position_manager = NodePath("SpawnPositions") + +[node name="goal" parent="." instance=ExtResource("2_dhf6t")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.015, 0) + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +visible = false +mesh = SubResource("BoxMesh_kg8u1") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("BoxShape3D_ntota") + +[node name="SpawnPositions" parent="." instance=ExtResource("2_mxo1m")] diff --git a/examples/PushBall/scenes/levels/all_levels.tscn b/examples/PushBall/scenes/levels/all_levels.tscn new file mode 100644 index 0000000..747bbd0 --- /dev/null +++ b/examples/PushBall/scenes/levels/all_levels.tscn @@ -0,0 +1,22 @@ +[gd_scene load_steps=5 format=3 uid="uid://cck7kpuva1vvs"] + +[ext_resource type="PackedScene" uid="uid://d32ntbmtrnc2q" path="res://scenes/levels/game_scene4.tscn" id="2_ow08o"] +[ext_resource type="PackedScene" uid="uid://c53ucq8gavhuw" path="res://scenes/levels/game_scene3.tscn" id="3_gjead"] +[ext_resource type="PackedScene" uid="uid://b0x45hi2a0acs" path="res://scenes/levels/game_scene5.tscn" id="4_8wn7o"] +[ext_resource type="PackedScene" uid="uid://bhcgcxco45ugn" path="res://scenes/levels/game_scene.tscn" id="5_sko1o"] + +[node name="AllLevels" type="Node3D"] + +[node name="Camera3D" type="Camera3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.515038, 0.857167, 0, -0.857167, 0.515038, 40, 16.555, 14.165) + +[node name="GameScene" parent="." instance=ExtResource("5_sko1o")] + +[node name="GameScene3" parent="." instance=ExtResource("3_gjead")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 40, 0, -2) + +[node name="GameScene4" parent="." instance=ExtResource("2_ow08o")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 80, 0, 0) + +[node name="GameScene5" parent="." instance=ExtResource("4_8wn7o")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 120, 0, 0) diff --git a/examples/PushBall/scenes/levels/game_scene.tscn b/examples/PushBall/scenes/levels/game_scene.tscn new file mode 100644 index 0000000..c9df679 --- /dev/null +++ b/examples/PushBall/scenes/levels/game_scene.tscn @@ -0,0 +1,65 @@ +[gd_scene load_steps=7 format=3 uid="uid://bhcgcxco45ugn"] + +[ext_resource type="Script" path="res://scenes/levels/level_manager.gd" id="1_7koww"] +[ext_resource type="PackedScene" uid="uid://dj6uaupgnjtgm" path="res://scenes/robot/robot.tscn" id="2_5xkem"] +[ext_resource type="PackedScene" uid="uid://i2xan4njr6b3" path="res://scenes/ball/ball.tscn" id="4_0fucp"] +[ext_resource type="MeshLibrary" uid="uid://dd25bvxh87k52" path="res://scenes/tiles/mesh_library.tres" id="4_f0s4p"] +[ext_resource type="PackedScene" uid="uid://b44vhh42y4dsq" path="res://scenes/goal/goal.tscn" id="5_wf7cw"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_e2xuh"] +size = Vector3(8, 2, 18) + +[node name="GameScene" type="Node3D" node_paths=PackedStringArray("nodes_to_reset")] +script = ExtResource("1_7koww") +nodes_to_reset = [NodePath("Ball"), NodePath("Goal")] + +[node name="Robot" parent="." instance=ExtResource("2_5xkem")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, 0) + +[node name="Map" type="Node3D" parent="."] + +[node name="GridMap" type="GridMap" parent="Map"] +mesh_library = ExtResource("4_f0s4p") +data = { +"cells": PackedInt32Array(5, 65535, 5, 5, 0, 5, 0, 2, 1, 65535, 2, 1, 65534, 2, 1, 1, 2, 1, 1, 1, 1, 1, 0, 1, 1, 65535, 1, 1, 65534, 1, 1, 65533, 1, 65534, 65533, 1, 65534, 65534, 1, 65534, 65535, 1, 65534, 1, 1, 65534, 0, 1, 65535, 1, 1, 0, 1, 1, 0, 0, 1, 0, 65535, 1, 0, 65534, 1, 0, 65533, 1, 65535, 65533, 1, 65535, 65534, 1, 65535, 65535, 1, 65535, 0, 1, 65534, 3, 1, 65535, 3, 1, 0, 3, 1, 1, 3, 1, 1, 65532, 1, 65535, 65532, 1, 65534, 65532, 1, 65537, 65532, 1441796, 65538, 65532, 1048580, 65538, 65533, 1048580, 65538, 65534, 1048580, 65538, 65535, 1048580, 65538, 0, 1048580, 65538, 1, 1048580, 65538, 3, 1048580, 131069, 65532, 1441796, 131069, 65533, 1441796, 131069, 65534, 1441796, 131069, 65535, 1441796, 131069, 0, 1441796, 131069, 1, 1441796, 131069, 2, 1441796, 131069, 3, 1441796, 131070, 4, 4, 131071, 4, 4, 65536, 4, 4, 65537, 4, 4, 65538, 2, 1048580, 1, 65531, 0, 0, 65531, 0, 65533, 65531, 3, 65534, 65531, 0, 65535, 65531, 0, 1, 4, 0, 0, 4, 0, 65535, 4, 0, 65534, 4, 0, 65533, 4, 3, 65533, 3, 0, 65533, 2, 0, 65533, 1, 3, 65533, 0, 0, 65533, 65535, 0, 65533, 65534, 3, 65533, 65533, 0, 65533, 65532, 0, 2, 65532, 0, 2, 0, 0, 2, 65535, 0, 2, 3, 0, 2, 4, 3, 2, 1, 3, 2, 2, 0, 2, 65534, 3, 2, 65533, 0, 2, 65531, 3, 0, 65532, 1, 65537, 65531, 655364, 65536, 65531, 655364, 131071, 65531, 655364, 131070, 65531, 655364) +} +metadata/_editor_floor_ = Vector3(0, 1, 0) + +[node name="FloorCollider" type="StaticBody3D" parent="Map"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1) + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Map/FloorCollider"] +shape = SubResource("BoxShape3D_e2xuh") + +[node name="Ball" parent="." instance=ExtResource("4_0fucp")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, 0) + +[node name="Node3D" type="Node3D" parent="Ball/SpawnPositions" index="0"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, -1) + +[node name="Node3D2" type="Node3D" parent="Ball/SpawnPositions" index="1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, -1) + +[node name="Node3D3" type="Node3D" parent="Ball/SpawnPositions" index="2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1) + +[node name="Node3D4" type="Node3D" parent="Ball/SpawnPositions" index="3"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, 1) + +[node name="Goal" parent="." instance=ExtResource("5_wf7cw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 2, -7) + +[node name="Node3D" type="Node3D" parent="Goal/SpawnPositions" index="0"] + +[node name="Node3D2" type="Node3D" parent="Goal/SpawnPositions" index="1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 0) + +[node name="Node3D3" type="Node3D" parent="Goal/SpawnPositions" index="2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 14) + +[node name="Node3D4" type="Node3D" parent="Goal/SpawnPositions" index="3"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6, 0, 14) + +[editable path="Ball"] +[editable path="Goal"] +[editable path="Goal/SpawnPositions"] diff --git a/examples/PushBall/scenes/levels/game_scene3.tscn b/examples/PushBall/scenes/levels/game_scene3.tscn new file mode 100644 index 0000000..910fb37 --- /dev/null +++ b/examples/PushBall/scenes/levels/game_scene3.tscn @@ -0,0 +1,69 @@ +[gd_scene load_steps=9 format=3 uid="uid://c53ucq8gavhuw"] + +[ext_resource type="Script" path="res://scenes/levels/level_manager.gd" id="1_rqk3a"] +[ext_resource type="PackedScene" uid="uid://dj6uaupgnjtgm" path="res://scenes/robot/robot.tscn" id="2_he2qg"] +[ext_resource type="MeshLibrary" uid="uid://dd25bvxh87k52" path="res://scenes/tiles/mesh_library.tres" id="3_3vxpv"] +[ext_resource type="PackedScene" uid="uid://i2xan4njr6b3" path="res://scenes/ball/ball.tscn" id="4_2f4cs"] +[ext_resource type="PackedScene" uid="uid://b44vhh42y4dsq" path="res://scenes/goal/goal.tscn" id="5_3guq0"] +[ext_resource type="PackedScene" uid="uid://ddlyhy8ad7r6h" path="res://scenes/levels/platform.tscn" id="5_qgr7p"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_eqybw"] +size = Vector3(6, 2, 8) + +[sub_resource type="BoxShape3D" id="BoxShape3D_ok4dv"] +size = Vector3(6, 2, 8) + +[node name="GameScene3" type="Node3D" node_paths=PackedStringArray("nodes_to_reset")] +script = ExtResource("1_rqk3a") +nodes_to_reset = [NodePath("Ball"), NodePath("Goal"), NodePath("Platform")] + +[node name="Robot" parent="." instance=ExtResource("2_he2qg")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, 9.5) + +[node name="Map" type="Node3D" parent="."] + +[node name="GridMap" type="GridMap" parent="Map"] +mesh_library = ExtResource("3_3vxpv") +data = { +"cells": PackedInt32Array(65534, 3, 1048579, 65534, 4, 1048576, 65534, 5, 1048579, 65535, 3, 1048577, 65535, 4, 1048577, 65535, 5, 1048576, 0, 3, 1048577, 0, 4, 1048577, 0, 5, 1048576, 1, 3, 1048579, 1, 4, 1048576, 1, 5, 1048579, 65536, 5, 4, 131071, 5, 4, 131070, 4, 1441796, 131070, 3, 1441796, 65537, 3, 1048580, 65537, 4, 1048580, 65534, 65533, 655363, 65534, 65534, 0, 65534, 65535, 655363, 65535, 65533, 0, 65535, 65534, 1, 65535, 65535, 1, 0, 65533, 0, 0, 65534, 1, 0, 65535, 1, 1, 65533, 655363, 1, 65534, 0, 1, 65535, 655363, 131070, 65534, 1441796, 131070, 65535, 1441796, 131071, 65533, 655364, 65536, 65533, 655364, 65537, 65534, 1048580, 65537, 65535, 1048580) +} +metadata/_editor_floor_ = Vector3(0, 1, 0) + +[node name="FloorCollider" type="StaticBody3D" parent="Map"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1) + +[node name="CollisionShape3D8" type="CollisionShape3D" parent="Map/FloorCollider"] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -1.6292e-07, 0, 8) +shape = SubResource("BoxShape3D_eqybw") + +[node name="CollisionShape3D9" type="CollisionShape3D" parent="Map/FloorCollider"] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -2.06632e-07, 0, -4) +shape = SubResource("BoxShape3D_ok4dv") + +[node name="Ball" parent="." instance=ExtResource("4_2f4cs")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, 7) + +[node name="SpawnPositions" parent="Ball" index="1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1) + +[node name="Node3D" type="Node3D" parent="Ball/SpawnPositions" index="0"] + +[node name="Goal" parent="." instance=ExtResource("5_3guq0")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 2, -3) + +[node name="Node3D" type="Node3D" parent="Goal/SpawnPositions" index="0"] + +[node name="Node3D2" type="Node3D" parent="Goal/SpawnPositions" index="1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0) + +[node name="Platform" parent="." instance=ExtResource("5_qgr7p")] +transform = Transform3D(1, 0, -1.74846e-07, 0, 1, 0, 1.74846e-07, 0, 1, -1, 0, 3) + +[node name="Node3D" type="Node3D" parent="Platform/SpawnPositions" index="0"] + +[node name="Node3D2" type="Node3D" parent="Platform/SpawnPositions" index="1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, -4.76837e-07) + +[editable path="Ball"] +[editable path="Goal"] +[editable path="Platform"] diff --git a/examples/PushBall/scenes/levels/game_scene4.tscn b/examples/PushBall/scenes/levels/game_scene4.tscn new file mode 100644 index 0000000..d08d676 --- /dev/null +++ b/examples/PushBall/scenes/levels/game_scene4.tscn @@ -0,0 +1,89 @@ +[gd_scene load_steps=8 format=3 uid="uid://d32ntbmtrnc2q"] + +[ext_resource type="Script" path="res://scenes/levels/level_manager.gd" id="1_flvlp"] +[ext_resource type="PackedScene" uid="uid://dj6uaupgnjtgm" path="res://scenes/robot/robot.tscn" id="2_h11iq"] +[ext_resource type="MeshLibrary" uid="uid://dd25bvxh87k52" path="res://scenes/tiles/mesh_library.tres" id="3_dhg3i"] +[ext_resource type="PackedScene" uid="uid://i2xan4njr6b3" path="res://scenes/ball/ball.tscn" id="4_pwn6m"] +[ext_resource type="PackedScene" uid="uid://b44vhh42y4dsq" path="res://scenes/goal/goal.tscn" id="5_bvys5"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_mlj80"] +size = Vector3(2, 2, 22) + +[sub_resource type="BoxShape3D" id="BoxShape3D_4nr14"] +size = Vector3(2, 2, 18) + +[node name="GameScene4" type="Node3D" node_paths=PackedStringArray("nodes_to_reset")] +script = ExtResource("1_flvlp") +nodes_to_reset = [NodePath("Ball"), NodePath("Goal")] + +[node name="Robot" parent="." instance=ExtResource("2_h11iq")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 2.5, 1) +level_id = [0, 0, 1, 0] + +[node name="Map" type="Node3D" parent="."] + +[node name="GridMap" type="GridMap" parent="Map"] +mesh_library = ExtResource("3_dhg3i") +data = { +"cells": PackedInt32Array(65530, 65531, 655360, 65530, 65532, 655360, 65530, 65533, 655360, 65530, 65534, 655360, 65530, 0, 655360, 65530, 1, 655360, 65530, 2, 655360, 65531, 65531, 655361, 65531, 65532, 655361, 65531, 65533, 655361, 65531, 65534, 655361, 65531, 65535, 655361, 65531, 0, 655361, 65531, 1, 655361, 65531, 2, 655361, 65531, 3, 655361, 65532, 65535, 655361, 65533, 65535, 655361, 65534, 65535, 655361, 65535, 65531, 655361, 65535, 65532, 655361, 65535, 65533, 655361, 65535, 65534, 655361, 65535, 65535, 655361, 65535, 0, 655361, 65535, 1, 655361, 65535, 2, 655361, 65535, 3, 655361, 0, 65535, 655361, 1, 65535, 655361, 2, 65535, 655361, 3, 65531, 1, 3, 65532, 655361, 3, 65533, 655361, 3, 65534, 655361, 3, 65535, 655361, 3, 0, 655361, 3, 1, 655361, 3, 2, 655361, 3, 3, 655361, 4, 65531, 655360, 4, 65532, 655360, 4, 65533, 655360, 4, 65534, 655360, 4, 0, 655360, 4, 1, 655360, 4, 2, 655360, 4, 3, 655360, 131066, 3, 1441796, 131066, 2, 1441796, 131066, 1, 1441796, 131066, 0, 1441796, 131066, 65535, 1441796, 131066, 65534, 1441796, 131066, 65533, 1441796, 131066, 65531, 1441796, 131066, 65532, 1441796, 65540, 65531, 1048580, 65540, 65532, 1048580, 65540, 65533, 1048580, 65540, 65534, 1048580, 65540, 65535, 1048580, 65540, 0, 1048580, 65540, 1, 1048580, 65540, 2, 1048580, 65540, 3, 1048580, 0, 3, 1, 1, 3, 1, 2, 3, 1, 65534, 3, 1, 65533, 3, 1, 65532, 3, 1, 65532, 65531, 1, 65533, 65531, 1, 65534, 65531, 1, 0, 65531, 1, 1, 65531, 1, 2, 65531, 1, 4, 4, 655363, 3, 4, 0, 2, 4, 655360, 1, 4, 0, 0, 4, 0, 65535, 4, 655363, 65534, 4, 655360, 65533, 4, 655360, 65532, 4, 655360, 65531, 4, 0, 65530, 65530, 655363, 65531, 65530, 0, 65532, 65530, 655360, 65533, 65530, 655360, 65534, 65530, 655360, 65535, 65530, 655363, 0, 65530, 655360, 1, 65530, 655360, 2, 65530, 655360, 3, 65530, 0, 4, 65530, 655363, 131067, 4, 4, 131068, 4, 4, 131069, 4, 4, 131070, 4, 4, 131071, 4, 4, 65536, 4, 4, 65537, 4, 4, 65538, 4, 4, 65539, 4, 4, 65539, 65530, 655364, 65538, 65530, 655364, 65537, 65530, 655364, 65536, 65530, 655364, 131069, 65530, 655364, 131068, 65530, 655364, 131067, 65530, 655364, 131070, 65530, 655364, 131071, 65530, 655364, 65530, 4, 655363, 65530, 3, 655360, 65530, 65535, 655363, 4, 65535, 655363) +} +metadata/_editor_floor_ = Vector3(0, 0, 0) + +[node name="FloorCollider" type="StaticBody3D" parent="Map"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1) + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Map/FloorCollider"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 0, -2) +shape = SubResource("BoxShape3D_mlj80") + +[node name="CollisionShape3D5" type="CollisionShape3D" parent="Map/FloorCollider"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, -2) +shape = SubResource("BoxShape3D_mlj80") + +[node name="CollisionShape3D2" type="CollisionShape3D" parent="Map/FloorCollider"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7, 0, -2) +shape = SubResource("BoxShape3D_mlj80") + +[node name="CollisionShape3D3" type="CollisionShape3D" parent="Map/FloorCollider"] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -1, 0, -10) +shape = SubResource("BoxShape3D_4nr14") + +[node name="CollisionShape3D6" type="CollisionShape3D" parent="Map/FloorCollider"] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -1, 0, -2) +shape = SubResource("BoxShape3D_4nr14") + +[node name="CollisionShape3D4" type="CollisionShape3D" parent="Map/FloorCollider"] +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -1, 0, 6) +shape = SubResource("BoxShape3D_4nr14") + +[node name="Ball" parent="." instance=ExtResource("4_pwn6m")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -9, 2.5, -9) + +[node name="Node3D" type="Node3D" parent="Ball/SpawnPositions" index="0"] + +[node name="Node3D2" type="Node3D" parent="Ball/SpawnPositions" index="1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, 0) + +[node name="Node3D3" type="Node3D" parent="Ball/SpawnPositions" index="2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16, 0, 0) + +[node name="Node3D4" type="Node3D" parent="Ball/SpawnPositions" index="3"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16, 0, 8) + +[node name="Node3D5" type="Node3D" parent="Ball/SpawnPositions" index="4"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 16, 0, 16) + +[node name="Node3D6" type="Node3D" parent="Ball/SpawnPositions" index="5"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 8, 0, 16) + +[node name="Node3D7" type="Node3D" parent="Ball/SpawnPositions" index="6"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 16) + +[node name="Goal" parent="." instance=ExtResource("5_bvys5")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 2, -1) + +[node name="Node3D" type="Node3D" parent="Goal/SpawnPositions" index="0"] + +[editable path="Ball"] +[editable path="Goal"] +[editable path="Goal/SpawnPositions"] diff --git a/examples/PushBall/scenes/levels/game_scene5.tscn b/examples/PushBall/scenes/levels/game_scene5.tscn new file mode 100644 index 0000000..6fe3a47 --- /dev/null +++ b/examples/PushBall/scenes/levels/game_scene5.tscn @@ -0,0 +1,66 @@ +[gd_scene load_steps=7 format=3 uid="uid://b0x45hi2a0acs"] + +[ext_resource type="Script" path="res://scenes/levels/level_manager.gd" id="1_wdfa4"] +[ext_resource type="PackedScene" uid="uid://dj6uaupgnjtgm" path="res://scenes/robot/robot.tscn" id="2_7h777"] +[ext_resource type="MeshLibrary" uid="uid://dd25bvxh87k52" path="res://scenes/tiles/mesh_library.tres" id="3_0fuqq"] +[ext_resource type="PackedScene" uid="uid://i2xan4njr6b3" path="res://scenes/ball/ball.tscn" id="4_g3ck8"] +[ext_resource type="PackedScene" uid="uid://b44vhh42y4dsq" path="res://scenes/goal/goal.tscn" id="5_xykhe"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_arno1"] +size = Vector3(12, 2, 16) + +[node name="GameScene5" type="Node3D" node_paths=PackedStringArray("nodes_to_reset")] +script = ExtResource("1_wdfa4") +nodes_to_reset = [NodePath("Ball"), NodePath("Goal")] + +[node name="Robot" parent="." instance=ExtResource("2_7h777")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, 0) + +[node name="Map" type="Node3D" parent="."] + +[node name="GridMap" type="GridMap" parent="Map"] +mesh_library = ExtResource("3_0fuqq") +data = { +"cells": PackedInt32Array(65535, 65535, 1441793, 0, 65535, 1441793, 1, 65535, 1441793, 2, 65535, 1441793, 2, 65534, 1441793, 2, 65533, 1441793, 65534, 3, 1, 65535, 3, 1, 0, 3, 1441793, 1, 3, 1441793, 2, 3, 1441793, 2, 2, 1441793, 2, 1, 1441793, 2, 0, 1441793, 1, 0, 1441793, 0, 0, 1441793, 65535, 0, 1441793, 65534, 0, 1441793, 65534, 65535, 1441793, 1, 65533, 1441795, 1, 65534, 655363, 0, 65534, 1441792, 65535, 65534, 1441792, 65534, 65534, 655363, 65534, 65533, 1441795, 65535, 65533, 1441792, 0, 65533, 1441792, 1, 1, 655363, 1, 2, 1441795, 0, 2, 1441792, 65535, 2, 1441792, 65534, 2, 1441795, 65534, 1, 655363, 65535, 1, 1441792, 0, 1, 1441792, 3, 2, 1441792, 3, 0, 1441792, 65533, 3, 1, 65533, 2, 1441793, 65533, 1, 1441793, 65533, 0, 1441793, 65533, 65535, 1441793, 65533, 65534, 1441793, 65533, 65533, 1441793, 65532, 3, 1441792, 65532, 2, 1441792, 65532, 1, 1441792, 65532, 0, 1441792, 65532, 65535, 1441792, 65532, 65534, 1441792, 65532, 65533, 1441792, 65532, 65532, 1441792, 65532, 65531, 1441792, 65533, 65531, 1441792, 65534, 65531, 1441792, 65535, 65531, 1441792, 0, 65531, 1441792, 1, 65531, 1441792, 65533, 65532, 1441793, 65534, 65532, 1441793, 65535, 65532, 1441793, 0, 65532, 1441793, 1, 65532, 1441793, 2, 65532, 1441793, 2, 65531, 1441792, 3, 65531, 1441792, 3, 65533, 1441792, 3, 65532, 1441792, 3, 65534, 1441792, 3, 65535, 1441792, 3, 1, 1441792, 3, 3, 1441792, 65539, 3, 1048580, 65539, 2, 1048580, 65539, 1, 1048580, 65539, 0, 1048580, 65539, 65535, 1048580, 65539, 65534, 1048580, 65539, 65533, 1048580, 65539, 65532, 1048580, 131068, 65532, 1441796, 131068, 65533, 1441796, 131068, 65534, 1441796, 131068, 65535, 1441796, 131068, 0, 1441796, 131068, 1, 1441796, 131068, 2, 1441796, 131068, 3, 1441796, 131069, 65531, 655364, 131070, 65531, 655364, 131071, 65531, 655364, 65536, 65531, 655364, 65537, 65531, 655364, 65538, 65531, 655364, 131070, 0, 655364, 131071, 0, 655364, 65536, 0, 655364, 65537, 0, 655364, 65537, 65535, 4, 65536, 65535, 4, 131071, 65535, 4, 131070, 65535, 4, 131069, 1, 1441796, 131069, 2, 1441796, 131070, 3, 4, 131071, 3, 4, 65536, 3, 4, 65537, 3, 4, 65538, 1, 1048580, 65538, 2, 1048580, 65538, 65533, 1048580, 65538, 65534, 1048580, 131069, 65534, 1441796, 131069, 65533, 1441796, 131070, 65532, 655364, 131071, 65532, 655364, 65536, 65532, 655364, 65537, 65532, 655364, 3, 4, 1441792, 2, 4, 1441792, 1, 4, 1441792, 0, 4, 1441792, 65535, 4, 1441792, 65532, 4, 1441792, 65533, 4, 1441792, 65534, 4, 1441792, 65538, 4, 4, 65537, 4, 4, 65536, 4, 4, 131071, 4, 4, 131070, 4, 4, 131069, 4, 4) +} +metadata/_editor_floor_ = Vector3(0, 0, 0) + +[node name="FloorCollider" type="StaticBody3D" parent="Map"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1) + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Map/FloorCollider"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1) +shape = SubResource("BoxShape3D_arno1") + +[node name="Ball" parent="." instance=ExtResource("4_g3ck8")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.5, 1) + +[node name="Node3D" type="Node3D" parent="Ball/SpawnPositions" index="0"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, 0) + +[node name="Node3D4" type="Node3D" parent="Ball/SpawnPositions" index="1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0) + +[node name="Node3D5" type="Node3D" parent="Ball/SpawnPositions" index="2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 0, -2) + +[node name="Node3D8" type="Node3D" parent="Ball/SpawnPositions" index="3"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, -2) + +[node name="Goal" parent="." instance=ExtResource("5_xykhe")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 2, -7) + +[node name="Node3D" type="Node3D" parent="Goal/SpawnPositions" index="0"] + +[node name="Node3D2" type="Node3D" parent="Goal/SpawnPositions" index="1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 0) + +[node name="Node3D3" type="Node3D" parent="Goal/SpawnPositions" index="2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 14) + +[node name="Node3D4" type="Node3D" parent="Goal/SpawnPositions" index="3"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 14) + +[editable path="Ball"] +[editable path="Goal"] +[editable path="Goal/SpawnPositions"] diff --git a/examples/PushBall/scenes/levels/level_manager.gd b/examples/PushBall/scenes/levels/level_manager.gd new file mode 100644 index 0000000..9361fb4 --- /dev/null +++ b/examples/PushBall/scenes/levels/level_manager.gd @@ -0,0 +1,22 @@ +extends Node3D +class_name LevelManager + +## Nodes to reset, must implement reset() method +@export var nodes_to_reset: Array[Node] + +@onready var player := $Robot +@onready var ball := $Ball +@onready var goal := $Goal + + +func _ready(): + reset_all_resetables() + player.level_manager = self + player.ball = ball + player.goal = goal + goal.connect("body_entered", player._on_goal_body_entered) + + +func reset_all_resetables(): + for node in nodes_to_reset: + node.reset() diff --git a/examples/PushBall/scenes/levels/platform.gd b/examples/PushBall/scenes/levels/platform.gd new file mode 100644 index 0000000..c3e245e --- /dev/null +++ b/examples/PushBall/scenes/levels/platform.gd @@ -0,0 +1,7 @@ +extends AnimatableBody3D + +@export var spawn_position_manager: SpawnPositionManager + + +func reset() -> void: + global_transform = spawn_position_manager.get_spawn_position() diff --git a/examples/PushBall/scenes/levels/platform.tscn b/examples/PushBall/scenes/levels/platform.tscn new file mode 100644 index 0000000..729cbc9 --- /dev/null +++ b/examples/PushBall/scenes/levels/platform.tscn @@ -0,0 +1,32 @@ +[gd_scene load_steps=6 format=3 uid="uid://ddlyhy8ad7r6h"] + +[ext_resource type="Script" path="res://scenes/levels/platform.gd" id="1_kygys"] +[ext_resource type="PackedScene" uid="uid://s1bbjv46d7pu" path="res://assets/tiles/platform.glb" id="1_nridm"] +[ext_resource type="PackedScene" uid="uid://bmc018ke831mi" path="res://scenes/spawn_position_manager/spawn_positions.tscn" id="2_h5deu"] + +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_t6ebn"] +rough = true + +[sub_resource type="BoxShape3D" id="BoxShape3D_nq455"] +size = Vector3(2, 0.2, 6) + +[node name="Platform" type="AnimatableBody3D" node_paths=PackedStringArray("spawn_position_manager")] +transform = Transform3D(1, 0, -1.74846e-07, 0, 1, 0, 1.74846e-07, 0, 1, 0, 0, 3) +physics_material_override = SubResource("PhysicsMaterial_t6ebn") +script = ExtResource("1_kygys") +spawn_position_manager = NodePath("SpawnPositions") + +[node name="platform" parent="." instance=ExtResource("1_nridm")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) + +[node name="platform3" parent="." instance=ExtResource("1_nridm")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.49692e-07, 2, -2) + +[node name="platform2" parent="." instance=ExtResource("1_nridm")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 2) + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.9, 0) +shape = SubResource("BoxShape3D_nq455") + +[node name="SpawnPositions" parent="." instance=ExtResource("2_h5deu")] diff --git a/examples/PushBall/scenes/onnx_test_scene.tscn b/examples/PushBall/scenes/onnx_test_scene.tscn new file mode 100644 index 0000000..ba301de --- /dev/null +++ b/examples/PushBall/scenes/onnx_test_scene.tscn @@ -0,0 +1,88 @@ +[gd_scene load_steps=9 format=3 uid="uid://dx5rplq74i3ja"] + +[ext_resource type="PackedScene" uid="uid://cck7kpuva1vvs" path="res://scenes/levels/all_levels.tscn" id="1_4mept"] +[ext_resource type="Script" path="res://addons/godot_rl_agents/sync.gd" id="2_8d7lx"] + +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_7p42g"] +ground_bottom_color = Color(0, 0, 0, 1) + +[sub_resource type="Sky" id="Sky_o1jv5"] +sky_material = SubResource("ProceduralSkyMaterial_7p42g") + +[sub_resource type="Environment" id="Environment_mom6d"] +background_mode = 2 +sky = SubResource("Sky_o1jv5") +tonemap_mode = 2 +ssao_radius = 2.85 +sdfgi_enabled = true +glow_enabled = true + +[sub_resource type="Animation" id="Animation_7vl40"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 17.854, 10.898)] +} + +[sub_resource type="Animation" id="Animation_vose7"] +resource_name = "new_animation" +length = 40.0 +loop_mode = 2 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 8, 10, 18, 20.1, 28, 30), +"transitions": PackedFloat32Array(1, 0.5, 1, 0.5, 1, 0.5, 1), +"update": 0, +"values": [Vector3(0, 17.854, 10.898), Vector3(0, 17.854, 10.898), Vector3(40, 17.854, 10.898), Vector3(40, 17.854, 10.898), Vector3(78.9, 17.854, 10.898), Vector3(78.9, 17.854, 10.898), Vector3(120, 17.854, 10.898)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_fuhyb"] +_data = { +"RESET": SubResource("Animation_7vl40"), +"new_animation": SubResource("Animation_vose7") +} + +[node name="OnnxInferenceScene" type="Node3D"] + +[node name="AllLevels" parent="." instance=ExtResource("1_4mept")] + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_mom6d") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866025, -0.5, 0.75, -0.433013, 0, 0, 0) +shadow_enabled = true + +[node name="Node3D" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.743145, 0.669131, 0, -0.669131, 0.743145, 0, -3.7, 23.76) + +[node name="Camera3D" type="Camera3D" parent="Node3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 17.854, 10.898) +current = true +fov = 45.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Node3D/Camera3D"] +libraries = { +"": SubResource("AnimationLibrary_fuhyb") +} +autoplay = "new_animation" +speed_scale = 0.5 + +[node name="Sync" type="Node" parent="."] +script = ExtResource("2_8d7lx") +control_mode = 2 +speed_up = 1.5 +onnx_model_path = "model.onnx" diff --git a/examples/PushBall/scenes/robot/robot.gd b/examples/PushBall/scenes/robot/robot.gd new file mode 100644 index 0000000..9d368f4 --- /dev/null +++ b/examples/PushBall/scenes/robot/robot.gd @@ -0,0 +1,127 @@ +extends RigidBody3D +class_name Player + +#region Set by LevelManager +@onready var ball: Ball +@onready var goal: Area3D +#endregion + +## Reward given when the robot or ball falls +## (affects training behavior only) +var fall_reward = -2.0 + +## Node with player animations +@export var animation_player: AnimationPlayer +## Movement speed of the robot +@export var movement_speed := 2.0 +## Rotation speed of the robot +@export var rotation_speed := 12.0 + +@onready var _ai_controller := $AIController3D +@onready var _initial_transform = transform +@onready var level_manager := get_parent() as LevelManager +@onready var visual_robot: Node3D = $robot +@onready var floor_sensor := $FloorSensor + +var closest_goal_dist +var closest_ball_dist + +#region Set by AIController +var requested_movement: float +var requested_turn: float +#endregion + + +func _physics_process(_delta): + # Set to true by the sync node when reset is requested from Python (starting training, evaluation, etc.) + if _ai_controller.needs_reset: + reset() + _ai_controller.reset() + + _process_movement() + _process_rotation() + + _process_fell_down_check() + _process_distance_rewards() + + +## Gives positive rewards when: +## - Ball approaches the goal position +## - Player approaches the ball position + + +func _process_distance_rewards(): +#region Reward for the ball approaching the goal + var current_dist = get_goal_dist() + if not closest_goal_dist: + closest_goal_dist = current_dist + + if current_dist < closest_goal_dist: + _ai_controller.reward += (closest_goal_dist - current_dist) + closest_goal_dist = current_dist +#endregion + +#region Reward for the robot approaching the ball + var current_ball_dist = global_position.distance_to(ball.global_position) + if not closest_ball_dist: + closest_ball_dist = current_ball_dist + + if current_ball_dist < closest_ball_dist: + _ai_controller.reward += (closest_ball_dist - current_ball_dist) + closest_ball_dist = current_ball_dist + + +#endregion + + +## Ensures that the player (or ball) did not fall down +## otherwise, restarts the episode with fall_reward +func _process_fell_down_check(): + if ball.global_position.y < 0 or global_position.y < 0: + game_over(fall_reward) + + +func _process_rotation(): + if not floor_sensor.is_colliding(): + return + if requested_turn: + apply_torque(Vector3.UP * requested_turn * rotation_speed) + + +func _process_movement(): + if not floor_sensor.is_colliding(): + return + if requested_movement: + apply_central_force(global_basis.z * (requested_movement * movement_speed)) + + animation_player.play("walking") + else: + animation_player.play("idle") + + +func game_over(reward = 0.0, success := false): + reset() + _ai_controller.reset() + _ai_controller.reward += reward + _ai_controller.done = true + _ai_controller.is_success = success + + +## Returns the ball's distance to the goal +func get_goal_dist(): + return ball.global_position.distance_to(goal.global_position) + + +func reset(): + level_manager.reset_all_resetables() + linear_velocity = Vector3.ZERO + angular_velocity = Vector3.ZERO + transform = _initial_transform + await get_tree().physics_frame + closest_goal_dist = null + closest_ball_dist = null + + +func _on_goal_body_entered(body: Node3D) -> void: + if body is Ball: + game_over(10.0, true) diff --git a/examples/PushBall/scenes/robot/robot.tscn b/examples/PushBall/scenes/robot/robot.tscn new file mode 100644 index 0000000..5576a7d --- /dev/null +++ b/examples/PushBall/scenes/robot/robot.tscn @@ -0,0 +1,346 @@ +[gd_scene load_steps=14 format=3 uid="uid://dj6uaupgnjtgm"] + +[ext_resource type="PackedScene" uid="uid://bb2je1c8jc1qr" path="res://assets/robot.glb" id="1_n7jto"] +[ext_resource type="Script" path="res://scenes/robot/robot.gd" id="1_vywkg"] +[ext_resource type="Script" path="res://addons/godot_rl_agents/sensors/sensors_3d/RaycastSensor3D.gd" id="2_0pavx"] +[ext_resource type="Script" path="res://scenes/robot/robot_ai_controller.gd" id="5_sx7mj"] + +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_mfev2"] + +[sub_resource type="Animation" id="Animation_2kfmf"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Robot/Arm:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Robot/Arm_001:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Robot/Torso:position") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0, 0)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Robot/Head:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0, 0)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Robot/Head:rotation") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0, 0, 0)] +} + +[sub_resource type="Animation" id="Animation_ly00x"] +resource_name = "idle" +length = 4.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Robot/Arm:rotation") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0.349066, 0, 0.0610865)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Robot/Arm_001:rotation") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 2), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(-0.349066, 0, -0.148353)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Robot/Head:rotation") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 1, 2, 3), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0, 0.162316, 0.0488692), Vector3(0, 0, 0), Vector3(0.139626, -0.178024, 0.0226893)] +} + +[sub_resource type="Animation" id="Animation_6jb0l"] +resource_name = "idle" +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Robot/Arm:rotation") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0, -0.174533, 0)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("Robot/Arm_001:rotation") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0, 0.174533, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("Robot/Torso:position") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.25, 0.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0, -0.01, 0), Vector3(0, 0, 0)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Robot/Head:position") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 0.5), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(0, -0.02, 0)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("Robot/Head:rotation") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 0.25, 0.5), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Vector3(0, 0, 0), Vector3(-0.0349066, 0, 0), Vector3(0, 0, 0)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_g7kmm"] +_data = { +"RESET": SubResource("Animation_2kfmf"), +"idle": SubResource("Animation_ly00x"), +"walking": SubResource("Animation_6jb0l") +} + +[sub_resource type="InputEventKey" id="InputEventKey_25ja1"] +device = -1 +keycode = 82 +unicode = 114 + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_e2j88"] +radius = 0.279 +height = 1.0 + +[sub_resource type="BoxShape3D" id="BoxShape3D_6w8t5"] +size = Vector3(0.6, 0.5, 0.6) + +[sub_resource type="SphereShape3D" id="SphereShape3D_yuuhn"] +radius = 0.279 + +[node name="Robot" type="RigidBody3D" node_paths=PackedStringArray("animation_player") groups=["resetable"]] +collision_layer = 512 +collision_mask = 8388609 +axis_lock_angular_x = true +axis_lock_angular_z = true +mass = 10.0 +physics_material_override = SubResource("PhysicsMaterial_mfev2") +gravity_scale = 4.0 +continuous_cd = true +contact_monitor = true +max_contacts_reported = 3 +linear_damp_mode = 1 +linear_damp = 10.0 +angular_damp_mode = 1 +angular_damp = 10.0 +script = ExtResource("1_vywkg") +animation_player = NodePath("robot/AnimationPlayer") +movement_speed = 650.0 +rotation_speed = 30.0 + +[node name="RaycastSensors" type="Node3D" parent="."] + +[node name="360Sensor" type="Node3D" parent="RaycastSensors"] +script = ExtResource("2_0pavx") +n_rays_width = 8.0 +n_rays_height = 1.0 +cone_width = 360.0 +cone_height = 1.0 + +[node name="@RayCast3D@75028" type="RayCast3D" parent="RaycastSensors/360Sensor"] +target_position = Vector3(-3.82683, 0, -9.2388) + +[node name="@RayCast3D@75029" type="RayCast3D" parent="RaycastSensors/360Sensor"] +target_position = Vector3(-9.2388, 0, -3.82683) + +[node name="@RayCast3D@75030" type="RayCast3D" parent="RaycastSensors/360Sensor"] +target_position = Vector3(-9.2388, 0, 3.82683) + +[node name="@RayCast3D@75031" type="RayCast3D" parent="RaycastSensors/360Sensor"] +target_position = Vector3(-3.82683, 0, 9.2388) + +[node name="@RayCast3D@75032" type="RayCast3D" parent="RaycastSensors/360Sensor"] +target_position = Vector3(3.82683, 0, 9.2388) + +[node name="@RayCast3D@75033" type="RayCast3D" parent="RaycastSensors/360Sensor"] +target_position = Vector3(9.2388, 0, 3.82683) + +[node name="@RayCast3D@75034" type="RayCast3D" parent="RaycastSensors/360Sensor"] +target_position = Vector3(9.2388, 0, -3.82683) + +[node name="@RayCast3D@75035" type="RayCast3D" parent="RaycastSensors/360Sensor"] +target_position = Vector3(3.82683, 0, -9.2388) + +[node name="GroundSensor" type="Node3D" parent="RaycastSensors"] +transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 1.36046, 0) +script = ExtResource("2_0pavx") +n_rays_width = 4.0 +n_rays_height = 4.0 +ray_length = 6.0 +cone_width = 120.0 +cone_height = 120.0 + +[node name="node_0 0" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(-3, -4.24264, 3) + +[node name="node_0 1" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(-4.09808, -1.55291, 4.09808) + +[node name="node_0 2" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(-4.09808, 1.55291, 4.09808) + +[node name="node_0 3" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(-3, 4.24264, 3) + +[node name="node_1 0" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(-1.09808, -4.24264, 4.09808) + +[node name="node_1 1" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(-1.5, -1.55291, 5.59808) + +[node name="node_1 2" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(-1.5, 1.55291, 5.59808) + +[node name="node_1 3" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(-1.09808, 4.24264, 4.09808) + +[node name="node_2 0" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(1.09808, -4.24264, 4.09808) + +[node name="node_2 1" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(1.5, -1.55291, 5.59808) + +[node name="node_2 2" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(1.5, 1.55291, 5.59808) + +[node name="node_2 3" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(1.09808, 4.24264, 4.09808) + +[node name="@RayCast3D@63805" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(3, -4.24264, 3) + +[node name="@RayCast3D@63806" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(4.09808, -1.55291, 4.09808) + +[node name="@RayCast3D@63807" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(4.09808, 1.55291, 4.09808) + +[node name="node_3 3" type="RayCast3D" parent="RaycastSensors/GroundSensor"] +target_position = Vector3(3, 4.24264, 3) + +[node name="robot" parent="." instance=ExtResource("1_n7jto")] +transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, -0.3, 0) + +[node name="Robot" parent="robot" index="0"] +transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 0, 0, 0) + +[node name="Arm_001" parent="robot/Robot" index="1"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00394951, 0, -0.18) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="robot"] +libraries = { +"": SubResource("AnimationLibrary_g7kmm") +} +autoplay = "idle" + +[node name="AIController3D" type="Node3D" parent="." node_paths=PackedStringArray("raycast_sensors")] +script = ExtResource("5_sx7mj") +raycast_sensors = [NodePath("../RaycastSensors/360Sensor"), NodePath("../RaycastSensors/GroundSensor")] +reset_after = 3500 +expert_demo_save_path = "demo.json" +remove_last_episode_key = SubResource("InputEventKey_25ja1") +action_repeat = 4 + +[node name="CollisionShape3D4" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.0502479, -0.00153814) +shape = SubResource("CapsuleShape3D_e2j88") + +[node name="CollisionShape3D5" type="CollisionShape3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.155767, -0.00153814) +shape = SubResource("BoxShape3D_6w8t5") + +[node name="FloorSensor" type="ShapeCast3D" parent="."] +shape = SubResource("SphereShape3D_yuuhn") +target_position = Vector3(0, -0.5, 0) +max_results = 1 + +[editable path="robot"] diff --git a/examples/PushBall/scenes/robot/robot_ai_controller.gd b/examples/PushBall/scenes/robot/robot_ai_controller.gd new file mode 100644 index 0000000..a66b981 --- /dev/null +++ b/examples/PushBall/scenes/robot/robot_ai_controller.gd @@ -0,0 +1,97 @@ +extends AIController3D +class_name RobotAIController + +@export var raycast_sensors: Array[Node3D] +@onready var player = get_parent() as Player +var is_success: bool = false + + +func get_obs() -> Dictionary: + var observations: Array[float] = [] + for raycast_sensor in raycast_sensors: + var obs = raycast_sensor.get_observation() + observations.append_array(obs) + + var player_to_goal := player.to_local(player.goal.global_position) + var player_to_goal_dir := player_to_goal.normalized() + var player_to_goal_dist := clampf(player_to_goal.length() / 5.0, 0, 1.0) + + var player_to_ball := player.to_local(player.ball.global_position) + var player_to_ball_dir := player_to_ball.normalized() + var player_to_ball_dist := clampf(player_to_ball.length() / 10.0, 0, 1.0) + + var player_velocity = player.linear_velocity + player_velocity = player.global_basis.inverse() * player_velocity + player_velocity = player_velocity.limit_length(4) / 4 + + var player_angular_velocity = player.angular_velocity.y + player_angular_velocity = clampf(player_angular_velocity / 4.0, 0.0, 1.0) + + var ball_velocity = player.ball.linear_velocity + ball_velocity = player.global_basis.inverse() * ball_velocity + ball_velocity = ball_velocity.limit_length(4) / 4 + + ( + observations + . append_array( + [ + player_to_goal_dir.x, + player_to_goal_dir.z, + player_to_goal_dist, + player_to_ball_dir.x, + player_to_ball_dir.z, + player_to_ball_dist, + player_velocity.x, + player_velocity.z, + ball_velocity.x, + ball_velocity.z, + n_steps / float(reset_after), + ] + ) + ) + + return {"obs": observations} + + +func get_info() -> Dictionary: + return {"is_success": is_success} + + +func get_reward() -> float: + return reward + + +func _physics_process(_delta: float) -> void: + # Reset on timeout, this is implemented in parent class to set needs_reset to true, + # we are re-implementing here to call player.game_over() that handles the game reset. + n_steps += 1 + if n_steps > reset_after: + n_steps = 0 + player.game_over(-10, false) + + # In training or onnx inference modes, this method will be called by sync node with actions provided, + # For human control mode the method will not be called, so we call it here without any actions provided. + if control_mode == ControlModes.HUMAN: + set_action() + + +func get_action_space() -> Dictionary: + return { + "move": {"size": 1, "action_type": "continuous"}, + "turn": {"size": 1, "action_type": "continuous"} + } + + +func get_action() -> Array: + return [player.requested_movement, player.requested_turn, player.requested_ball_kick] + + +func set_action(action = null) -> void: + # If there's no action provided, it means that AI is not controlling the robot (human control) + if not action: + var input = Input.get_vector("move_left", "move_right", "move_up", "move_down") + player.requested_movement = input.y + player.requested_turn = -input.x + else: + player.requested_movement = clampf(action.move[0], -1.0, 0.2) + player.requested_turn = clampf(action.turn[0], -1.0, 1.0) diff --git a/examples/PushBall/scenes/spawn_position_manager/spawn_positions.gd b/examples/PushBall/scenes/spawn_position_manager/spawn_positions.gd new file mode 100644 index 0000000..6f769c4 --- /dev/null +++ b/examples/PushBall/scenes/spawn_position_manager/spawn_positions.gd @@ -0,0 +1,14 @@ +extends Node3D +class_name SpawnPositionManager + +@onready var position_nodes = get_children() +var spawn_transforms: Array[Transform3D] + + +func _ready() -> void: + for position_node in position_nodes: + spawn_transforms.append(position_node.global_transform) + + +func get_spawn_position() -> Transform3D: + return spawn_transforms.pick_random() diff --git a/examples/PushBall/scenes/spawn_position_manager/spawn_positions.tscn b/examples/PushBall/scenes/spawn_position_manager/spawn_positions.tscn new file mode 100644 index 0000000..5d23e45 --- /dev/null +++ b/examples/PushBall/scenes/spawn_position_manager/spawn_positions.tscn @@ -0,0 +1,6 @@ +[gd_scene load_steps=2 format=3 uid="uid://bmc018ke831mi"] + +[ext_resource type="Script" path="res://scenes/spawn_position_manager/spawn_positions.gd" id="1_3q5jt"] + +[node name="SpawnPositions" type="Node3D"] +script = ExtResource("1_3q5jt") diff --git a/examples/PushBall/scenes/tiles/mesh_library.tres b/examples/PushBall/scenes/tiles/mesh_library.tres new file mode 100644 index 0000000..d374ccf --- /dev/null +++ b/examples/PushBall/scenes/tiles/mesh_library.tres @@ -0,0 +1,465 @@ +[gd_resource type="MeshLibrary" load_steps=35 format=4 uid="uid://dd25bvxh87k52"] + +[ext_resource type="Texture2D" uid="uid://n5cpgvg4uorg" path="res://assets/tiles/grass_grass.png" id="1_j1v2u"] + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5tm3b"] +resource_name = "grass.004" +transparency = 4 +cull_mode = 2 +albedo_texture = ExtResource("1_j1v2u") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_oxje1"] +resource_name = "grass" +cull_mode = 2 +albedo_color = Color(0.146383, 0.792724, 0, 1) + +[sub_resource type="ArrayMesh" id="ArrayMesh_0c4lr"] +_surfaces = [{ +"aabb": AABB(-0.663943, 0.810673, -0.730111, 1.17936, 0.597767, 1.45198), +"format": 34896613377, +"index_count": 24, +"index_data": PackedByteArray("AAADAAEAAAACAAMABAAHAAUABAAGAAcACAALAAkACAAKAAsADAAPAA0ADAAOAA8A"), +"name": "grass.004", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 16, +"vertex_data": PackedByteArray("AAA8/1T7AAAYCtMa/vsAAMYYPP/jAgAA3yLTGo0DAABr9mnkYe4AAP//AAC06wAAnJJp5KwCAAAwnAAAAAAAAKw8//8T/gAAhUaVG///AABThP//tQsAACyOlRuhDQAALn1p5JXrAADAhgAASO4AAMPhaeQZAAAAVesAAMsCAAA=") +}, { +"aabb": AABB(-1, -1, -1, 2, 2, 2), +"format": 34896613377, +"index_count": 60, +"index_data": PackedByteArray("CgAEAAYACgAIAAQAAwAJAAsAAwACAAkAAAAHAAUAAAABAAcAAQACAAMAAQAAAAIAAQALAAcAAQADAAsABAAHAAYABAAFAAcABgALAAoABgAHAAsACgAJAAgACgALAAkACAAFAAQACAAJAAUAAgAFAAkAAgAAAAUA"), +"name": "grass", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 12, +"vertex_data": PackedByteArray("AAAAAP//AAAAAAAAAAAAAP7/AAD//wAA//8AAAAAAAC4A///RvwAAAAARvz//wAAuAP//7gDAAAAAEb8AAAAAEb8//9G/AAA/v9G/P//AABG/P//uAMAAP//RvwAAAAA") +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_455vr"] +resource_name = "grass_Plane_001" +_surfaces = [{ +"aabb": AABB(-0.663943, 0.810673, -0.730111, 1.17936, 0.597767, 1.45198), +"attribute_data": PackedByteArray("/3//f/9///////9////+//9//3//f///////f////v//f/9//3///////3////7//3//f/9///////9////+/w=="), +"format": 34896613399, +"index_count": 24, +"index_data": PackedByteArray("AAADAAEAAAACAAMABAAHAAUABAAGAAcACAALAAkACAAKAAsADAAPAA0ADAAOAA8A"), +"material": SubResource("StandardMaterial3D_5tm3b"), +"name": "grass.004", +"primitive": 3, +"uv_scale": Vector4(2, 1.75, 0, 0), +"vertex_count": 16, +"vertex_data": PackedByteArray("AAA8/1T7yrwYCtMa/vvKvMYYPP/jAsq83yLTGo0Dyrxr9mnkYe6Mzf//AAC064zNnJJp5KwCjM0wnAAAAACMzaw8//8T/n62hUaVG///frZThP//tQt+tiyOlRuhDX62Ln1p5JXrgLLAhgAASO6AssPhaeQZAICyVesAAMsCgLKuio4FroqOBa6KjgWuio4F6Yi2A+mItgPpiLYD6Yi2A4mLdAaJi3QGiYt0BomLdAYrjBwHK4wcByuMHAcrjBwH") +}, { +"aabb": AABB(-1, -1, -1, 2, 2, 2), +"attribute_data": PackedByteArray("/18AAP8f/z//X////1//v/8f/3//X/+//1//P/9f/z//X/8//1//f/9f/3//X/9/Ed/tQBHf7UAR3+1AEZ8AAP/f/z//3/8/EZ///xHfEX8R3xF/Ed8RfxGf/7//3/9//9//fxGf/7/toO1A7aDtQO2g7UARn/8//5//PxGf/z8Rn/8/7aARf+2gEX/toBF/EZ//f/+f/38Rn/9/EZ//fw=="), +"format": 34896613399, +"index_count": 60, +"index_data": PackedByteArray("IgANABQAIgAbAA0ACwAgACcACwAIACAAAgAZABIAAgAFABkABAAHAAoABAABAAcAAwAkABYAAwAJACQADgAYABUADgARABgAEwAlACEAEwAXACUAIwAfABwAIwAmAB8AGgAQAAwAGgAeABAABgAPAB0ABgAAAA8A"), +"material": SubResource("StandardMaterial3D_oxje1"), +"name": "grass", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 40, +"vertex_data": PackedByteArray("AAAAAP///78AAAAA////vwAAAAD//1TVAAAAAAAA//8AAAAAAAD/vwAAAAAAAFTV/v8AAP///7/+/wAA////v/7/AAD//1TV//8AAAAA/////wAAAAD/v///AAAAAFTVuAP//0b8//+4A///Rvz//7gD//9G/KrpAABG/P///78AAEb8/////wAARvz//6rpAABG/P//VNW4A///uAP//7gD//+4A///uAP//7gDqukAAEb8AAD//wAARvwAAP//AABG/AAAqukAAEb8AABU1Ub8//9G/P//Rvz//0b8//9G/P//Rvyr6f7/Rvz///+//v9G/P/////+/0b8//+r6f7/Rvz//1TVRvz//7gD//9G/P//uAP//0b8//+4A6rp//9G/AAA/////0b8AAD/////RvwAAKrp//9G/AAAVNX/////AAD/f1TVVNX/v/+/AAD/f1TVVNX/////AAD/f6oqqir/v/+/AAD/f6oqqir/f3yl/3//vwlqBLX//////398pQlqBLVU1VTV/3+B2v9//78JagS1/7//v/9/gdoJagS1VNVU1f9/fKX/f/+/BDX2Ff//////f3ylBDX2Faoqqir/f4Ha/3//vwQ19RX/v/+//3+B2gQ19RWqKqoq") +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_0c4lr") + +[sub_resource type="Image" id="Image_42gb1"] +data = { +"data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgMCDAEBAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwUDEQEBAQYCAwIJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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ML0f/zC+H/8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zG/H/8xwB//McAg/zHAIP8xwCD/McAg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvR//ML0f/zC9H/8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xvx//McAg/zHAIP8xwCD/McAg/zHAIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML0f/zC9H/8wvh//ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8xvx//McAf/zHAIP8xwCD/McAg/zHAIP8xwCD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC9H/8wvR//ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//Mb8f/zHAH/8xwCD/McAg/zHAIP8xwCD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvR//ML4f/zC+H/8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAg/zHAIP8xwCD/McAg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML0f/zC+H/8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zG/H/8xwB//McAf/zHAIP8xwCD/McAg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAIP8xwCD/McAg/zHAIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwCD/McAg/zHAIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//Mb8f/zHAH/8xwB//McAg/zHAIP8xwCD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAf/zHAIP8xwCD/McEg/zHBIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAIP8xwCD/McAg/zHBIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwCD/McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwB//McAg/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//MMAf/zHAH/8xwB//McAg/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/zHCIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAf/zHAIP8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8xwiD/McIg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwB//McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/McIg/zHCIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/ML8f/zC/H/8wvx//ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/McIg/zHCIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//ML8f/zC/H/8wvx//MMAf/zHAH/8xwB//McAf/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/zHCIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zC/H/8wvx//MMAf/zHAH/8xwB//McAf/zHAH/8xwSD/McEg/zHBIP8xwSD/McEg/zHCIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwB//McEg/zHBIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McAf/zHBIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wwB//MMAf/zHAH/8xwB//McAf/zHBH/8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//MMAf/zHAH/8xwB//McAf/zHAH/8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwR//McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zDAH/8xwB//McAf/zHAH/8xwB//McEf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wwB//McAf/zHAH/8xwB//McEf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wwB//MMAf/zHAH/8xwB//McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/MMAf/zHAH/8xwB//McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zDAH/8xwB//McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8xwB//McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), +"format": "RGBA8", +"height": 64, +"mipmaps": false, +"width": 64 +} + +[sub_resource type="ImageTexture" id="ImageTexture_5xgod"] +image = SubResource("Image_42gb1") + +[sub_resource type="BoxShape3D" id="BoxShape3D_snubt"] +size = Vector3(2, 5, 2) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mkc52"] +resource_name = "concrete" +cull_mode = 2 +albedo_color = Color(0.199087, 0.199087, 0.199087, 1) +roughness = 0.5 + +[sub_resource type="ArrayMesh" id="ArrayMesh_ejvnk"] +_surfaces = [{ +"aabb": AABB(-1, -1, -1, 2, 2, 2), +"format": 34896613377, +"index_count": 60, +"index_data": PackedByteArray("CgAEAAYACgAIAAQAAwAJAAsAAwACAAkAAAAHAAUAAAABAAcAAQACAAMAAQAAAAIAAQALAAcAAQADAAsABAAHAAYABAAFAAcABgALAAoABgAHAAsACgAJAAgACgALAAkACAAFAAQACAAJAAUAAgAFAAkAAgAAAAUA"), +"name": "concrete", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 12, +"vertex_data": PackedByteArray("AAAAAP//AAAAAAAAAAAAAP//AAD//wAA//8AAAAAAAC4A///RvwAAAAARvz//wAAuAP//7gDAAAAAEb8AAAAAEb8//9G/AAA//9G/P//AABG/P//uAMAAP//RvwAAAAA") +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_2e2w7"] +resource_name = "gray_Cube_002" +_surfaces = [{ +"aabb": AABB(-1, -1, -1, 2, 2, 2), +"attribute_data": PackedByteArray("/18AAP8f/z//X////1//v/8f/3//X/+//1//P/9f/z//X/8//1//f/9f/3//X/9/Ed/tQBHf7UAR3+1AEZ8AAP/f/z//3/8/EZ///xHfEX8R3xF/Ed8RfxGf/7//3/9//9//fxGf/7/toO1A7aDtQO2g7UARn/8//5//PxGf/z8Rn/8/7aARf+2gEX/toBF/EZ//f/+f/38Rn/9/EZ//fw=="), +"format": 34896613399, +"index_count": 60, +"index_data": PackedByteArray("IgANABQAIgAbAA0ACwAgACcACwAIACAAAgAZABIAAgAFABkABAAHAAoABAABAAcAAwAkABYAAwAJACQADgAYABUADgARABgAEwAlACEAEwAXACUAIwAfABwAIwAmAB8AGgAQAAwAGgAeABAABgAPAB0ABgAAAA8A"), +"material": SubResource("StandardMaterial3D_mkc52"), +"name": "concrete", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 40, +"vertex_data": PackedByteArray("AAAAAP///78AAAAA////vwAAAAD//1TVAAAAAAAA//8AAAAAAAD/vwAAAAAAAFTV//8AAP///7///wAA////v///AAD//1TV//8AAAAA/////wAAAAD/v///AAAAAFTVuAP//0b8//+4A///Rvz//7gD//9G/KrpAABG/P///78AAEb8/////wAARvz//6rpAABG/P//VNW4A///uAP//7gD//+4A///uAP//7gDqukAAEb8AAD//wAARvwAAP//AABG/AAAqukAAEb8AABU1Ub8//9G/P//Rvz//0b8//9G/P//Rvyq6f//Rvz///+///9G/P///////0b8//+q6f//Rvz//1TVRvz//7gD//9G/P//uAP//0b8//+4A6rp//9G/AAA/////0b8AAD/////RvwAAKrp//9G/AAAVNX/////AAD/f1TVVNX/v/+/AAD/f1TVVNX/////AAD/f6oqqir/v/+/AAD/f6oqqir/f3yl/3//vwlqBLX//////398pQlqBLVU1VTV/3+B2v9//78JagS1/7//v/9/gdoJagS1VNVU1f9/fKX/f/+/BDX2Ff//////f3ylBDX2Faoqqir/f4Ha/3//vwQ19RX/v/+//3+B2gQ19RWqKqoq") +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_ejvnk") + +[sub_resource type="Image" id="Image_njsqr"] +data = { +"data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISEh/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0/zQ0NP80NDT/NDQ0/zQ0NP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/SkpK/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/SkpK/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/S0tL/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEhIf80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/S0tL/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/S0tL/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/S0tL/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP9LS0v/S0tL/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP9MTEz/TExM/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs7O/87Ozv/PDw8/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP9MTEz/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/PDw8/zw8PP89PT3/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP9MTEz/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/z09Pf89PT3/PT09/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP9MTEz/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8+Pj7/Pj4+/z4+Pv80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP9NTU3/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/z8/P/8/Pz//Pz8//zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/01NTf9NTU3/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/9AQED/QEBA/0BAQP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/05OTv9NTU3/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/0FBQf9BQUH/QkJC/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/05OTv8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/9CQkL/QkJC/0NDQ/80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/05OTv8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/0NDQ/9ERET/RERE/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/09PT/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/9FRUX/RUVF/0VFRf80NDT/NDQ0/09PT/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/0ZGRv8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoa/xoaGv8aGhr/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), +"format": "RGBA8", +"height": 64, +"mipmaps": false, +"width": 64 +} + +[sub_resource type="ImageTexture" id="ImageTexture_op0o1"] +image = SubResource("Image_njsqr") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_phtkf"] +resource_name = "grass" +cull_mode = 2 +albedo_color = Color(0.146383, 0.792724, 0, 1) + +[sub_resource type="ArrayMesh" id="ArrayMesh_f4oji"] +_surfaces = [{ +"aabb": AABB(-1, -1, -1, 2, 2, 2), +"format": 34896613377, +"index_count": 60, +"index_data": PackedByteArray("CgAEAAYACgAIAAQAAwAJAAsAAwACAAkAAAAHAAUAAAABAAcAAQACAAMAAQAAAAIAAQALAAcAAQADAAsABAAHAAYABAAFAAcABgALAAoABgAHAAsACgAJAAgACgALAAkACAAFAAQACAAJAAUAAgAFAAkAAgAAAAUA"), +"name": "grass", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 12, +"vertex_data": PackedByteArray("AAAAAP//AAAAAAAAAAAAAP//AAD//wAA//8AAAAAAAC4A///RvwAAAAARvz//wAAuAP//7gDAAAAAEb8AAAAAEb8//9G/AAA//9G/P//AABG/P//uAMAAP//RvwAAAAA") +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_1mtgn"] +resource_name = "green_Cube_004" +_surfaces = [{ +"aabb": AABB(-1, -1, -1, 2, 2, 2), +"attribute_data": PackedByteArray("/18AAP8f/z//X////1//v/8f/3//X/+//1//P/9f/z//X/8//1//f/9f/3//X/9/Ed/tQBHf7UAR3+1AEZ8AAP/f/z//3/8/EZ///xHfEX8R3xF/Ed8RfxGf/7//3/9//9//fxGf/7/toO1A7aDtQO2g7UARn/8//5//PxGf/z8Rn/8/7aARf+2gEX/toBF/EZ//f/+f/38Rn/9/EZ//fw=="), +"format": 34896613399, +"index_count": 60, +"index_data": PackedByteArray("IgANABQAIgAbAA0ACwAgACcACwAIACAAAgAZABIAAgAFABkABAAHAAoABAABAAcAAwAkABYAAwAJACQADgAYABUADgARABgAEwAlACEAEwAXACUAIwAfABwAIwAmAB8AGgAQAAwAGgAeABAABgAPAB0ABgAAAA8A"), +"material": SubResource("StandardMaterial3D_phtkf"), +"name": "grass", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 40, +"vertex_data": PackedByteArray("AAAAAP///78AAAAA////vwAAAAD//1TVAAAAAAAA//8AAAAAAAD/vwAAAAAAAFTV//8AAP///7///wAA////v///AAD//1TV//8AAAAA/////wAAAAD/v///AAAAAFTVuAP//0b8//+4A///Rvz//7gD//9G/KrpAABG/P///78AAEb8/////wAARvz//6rpAABG/P//VNW4A///uAP//7gD//+4A///uAP//7gDqukAAEb8AAD//wAARvwAAP//AABG/AAAqukAAEb8AABU1Ub8//9G/P//Rvz//0b8//9G/P//Rvyq6f//Rvz///+///9G/P///////0b8//+q6f//Rvz//1TVRvz//7gD//9G/P//uAP//0b8//+4A6rp//9G/AAA/////0b8AAD/////RvwAAKrp//9G/AAAVNX/////AAD/f1TVVNX/v/+/AAD/f1TVVNX/////AAD/f6oqqir/v/+/AAD/f6oqqir/f3yl/3//vwlqBLX//////398pQlqBLVU1VTV/3+B2v9//78JagS1/7//v/9/gdoJagS1VNVU1f9/fKX/f/+/BDX2Ff//////f3ylBDX2Faoqqir/f4Ha/3//vwQ19RX/v/+//3+B2gQ19RWqKqoq") +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_f4oji") + +[sub_resource type="Image" id="Image_1f7lx"] +data = { +"data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ6QY/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANs0k/zbNJP82zST/Nswk/zbMJP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbLJP82yyT/Nssk/zbLJP82yyT/Nssk/zbLJP82yyT/Nssk/zbLJP82yyT/Nssk/zbLJP82yyT/Nssk/zbLJP82yyT/Nssk/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1zCT/Ncwk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/ON0k/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/ON0j/zG/IP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/ON0j/zG/IP8xvyD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACekGP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/ON0j/zG/IP8xvyD/Mb8g/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/ON0j/zC/H/8xvyD/Mb8g/zG/IP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81ySP/Nckk/zXJJP81yST/Nckk/zXJJP81yST/ON0j/zC/H/8wvx//Mb8g/zG/IP8xvyD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/843CP/ONwj/zC/H/8wvx//Mb8f/zG/IP8xvyD/Mb8g/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/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ML0f/zC+H/8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xvx//McAf/zHAIP8xwCD/McAg/zHAIP8xwCD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML0f/zC9H/8wvh//ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//Mb8f/zHAH/8xwCD/McAg/zHAIP8xwCD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC9H/8wvR//ML4f/zC+H/8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//Mb8f/zHAH/8xwCD/McAg/zHAIP8xwCD/McAg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvR//ML4f/zC+H/8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zG/H/8xwB//McAg/zHAIP8xwCD/McAg/zHBIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML0f/zC+H/8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAIP8xwCD/McAg/zHAIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xvx//McAf/zHAH/8xwCD/McAg/zHAIP8xwCD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//Mb8f/zHAH/8xwCD/McAg/zHAIP8xwCD/McEg/zHBIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAg/zHAIP8xwCD/McAg/zHBIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zG/H/8xwB//McAf/zHAIP8xwCD/McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwCD/McAg/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwCD/McAg/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/zHCIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwB//McAg/zHAIP8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAf/zHAIP8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8xwiD/McIg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwCD/McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/McIg/zHCIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwCD/McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/McIg/zHCIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McAg/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/zHCIP8xwiD/McIg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/ML8f/zC/H/8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwB//McAf/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/zHCIP8xwiD/McIg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/zC/H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAf/zHAH/8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8wvx//ML8f/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwB//McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McAf/zHBIP8xwSD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zC/H/8wvx//MMAf/zHAH/8xwB//McAf/zHAIP8xwSD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wvx//MMAf/zHAH/8xwB//McAf/zHAH/8xwSD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwB//McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwB//McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McAf/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wwB//MMAf/zHAH/8xwB//McAf/zHBH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//MMAf/zHAH/8xwB//McAf/zHAH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/MMAf/zDAH/8xwB//McAf/zHAH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zDAH/8xwB//McAf/zHAH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wwB//McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/MMAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), +"format": "RGBA8", +"height": 64, +"mipmaps": false, +"width": 64 +} + +[sub_resource type="ImageTexture" id="ImageTexture_613u0"] +image = SubResource("Image_1f7lx") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ijvmk"] +resource_name = "grass" +cull_mode = 2 +albedo_color = Color(0.146383, 0.792724, 0, 1) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ufxyo"] +resource_name = "Material.011" +cull_mode = 2 +albedo_color = Color(0.906392, 0.554774, 0, 1) +roughness = 0.5 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5esuj"] +resource_name = "Material.012" +cull_mode = 2 +albedo_color = Color(0.214332, 0.0889574, 0.0230044, 1) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yf47a"] +resource_name = "Material.004" +cull_mode = 2 +albedo_color = Color(0.685558, 0.363767, 0.110521, 1) +roughness = 0.5 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_u8d04"] +resource_name = "Material.005" +cull_mode = 2 +albedo_color = Color(0.204015, 0.906473, 0, 1) +roughness = 0.5 + +[sub_resource type="ArrayMesh" id="ArrayMesh_iscf7"] +_surfaces = [{ +"aabb": AABB(-1, -1, -1, 2, 2, 2), +"format": 34896613377, +"index_count": 60, +"index_data": PackedByteArray("CgAEAAYACgAIAAQAAwAJAAsAAwACAAkAAAAHAAUAAAABAAcAAQACAAMAAQAAAAIAAQALAAcAAQADAAsABAAHAAYABAAFAAcABgALAAoABgAHAAsACgAJAAgACgALAAkACAAFAAQACAAJAAUAAgAFAAkAAgAAAAUA"), +"name": "grass", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 12, +"vertex_data": PackedByteArray("AAAAAP//AAAAAAAAAAAAAP//AAD//wAA//8AAAAAAAC4A///RvwAAAAARvz//wAAuAP//7gDAAAAAEb8AAAAAEb8//9G/AAA//9G/P//AABG/P//uAMAAP//RvwAAAAA") +}, { +"aabb": AABB(-0.911349, 1.00623, -0.911349, 1.8227, 0.127916, 1.8227), +"format": 34896613377, +"index_count": 144, +"index_data": PackedByteArray("AAAEAAMAAAABAAQAAQAFAAQAAQACAAUAAwAHAAYAAwAEAAcABAAIAAcABAAFAAgABgAKAAkABgAHAAoABwALAAoABwAIAAsACQANAAwACQAKAA0ACgAOAA0ACgALAA4ADAAQAA8ADAANABAADQARABAADQAOABEADwATABIADwAQABMAEAAUABMAEAARABQAEgAWABUAEgATABYAEwAXABYAEwAUABcAFQAZABgAFQAWABkAFgAaABkAFgAXABoAGAAcABsAGAAZABwAGQAdABwAGQAaAB0AGwAfAB4AGwAcAB8AHAAgAB8AHAAdACAAHgAiACEAHgAfACIAHwAjACIAHwAgACMAIQABAAAAIQAiAAEAIgACAAEAIgAjAAIA"), +"name": "Material.011", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 36, +"vertex_data": PackedByteArray("//8AAP9/AAAq+P///38AAH7rNp7/fwAA2O4AAP8/AAAQ6P//6kMAABfdNp4/SgAA/78AACYRAAAUvP//7hcAAL+1Np7nIgAA/38AAAAAAAD/f///1AcAAP9/Np6AFAAA/z8AACYRAADqQ///7hcAAD9KNp7nIgAAJhEAAP8/AADuF///6kMAAOciNp4/SgAAAAAAAP9/AADUB////38AAIAUNp7/fwAAJhEAAP+/AADuF///FLwAAOciNp6/tQAA/z8AANjuAADqQ///EOgAAD9KNp4X3QAA/38AAP//AAD/f///KvgAAP9/Np5+6wAA/78AANjuAAAUvP//EOgAAL+1Np4X3QAA2O4AAP+/AAAQ6P//FLwAABfdNp6/tQAA") +}, { +"aabb": AABB(-0.911349, 1.00623, -0.911349, 1.8227, 1e-05, 1.8227), +"format": 34896613377, +"index_count": 30, +"index_data": PackedByteArray("AQALAAAACwAJAAoACQAHAAgABwAFAAYABQADAAQAAwABAAIAAQAJAAsACQAFAAcABQABAAMACQABAAUA"), +"name": "Material.012", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 12, +"vertex_data": PackedByteArray("//8AAP9/AADY7gAA/z8AAP+/AAAmEQAA/38AAAAAAAD/PwAAJhEAACYRAAD/PwAAAAAAAP9/AAAmEQAA/78AAP8/AADY7gAA/38AAP//AAD/vwAA2O4AANjuAAD/vwAA") +}, { +"aabb": AABB(-0.248464, 0.846295, -0.256822, 0.44153, 1.51265, 0.449862), +"format": 34896613377, +"index_count": 99, +"index_data": PackedByteArray("BAABAAAAAQADAAIAAQAEAAMABAAFABMABAAAAAUAEwAGABIAEwAFAAYAEgAHABEAEgAGAAcAAwATABAAAwAEABMAEAASAA8AEAATABIADwARAA4ADwASABEAAgAQAA0AAgADABAADQAPAAwADQAQAA8ADAAOAAsADAAPAA4AAQANAAoAAQACAA0ACgAMAAkACgANAAwACQALAAgACQAMAAsAAAAKAAUAAAABAAoABQAJAAYABQAKAAkABgAIAAcABgAJAAgA"), +"lods": [0.0193507, PackedByteArray("BAABAAAAAQAEAAMAAQADAAIABAAFABMABAAAAAUAEwAFAAcAEwAHABEAAwATABAAAwAEABMAEAATABEAEAARAA4AAgAQAA0AAgADABAADQAQAA4ADQAOAAsAAQANAAoAAQACAA0ACgANAAsACgALAAgAAAAKAAUAAAABAAoABQAKAAgABQAIAAcA")], +"name": "Material.004", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 20, +"vertex_data": PackedByteArray("//8AAErAAACXawAA//8AAAAAAAAniQAA6VEAAAAAAAAg8AAAEyIAAK/XY28ZqQAAPcgrqDGgAAC7yf//CaEAAA95kf4TxQAAn3mjqL7BAACadWNvNNMAAFo+Wf8+gwAAAEEpqeqCAAB/LmNvqYQAAAVr/v7iNwAAHmwNqaQ6AACiZGNvAyoAAJjBdv/wSgAAur9yqGxMAAAyzWNviUAAAA==") +}, { +"aabb": AABB(-0.718427, 2.05751, -0.753282, 1.36393, 1.3161, 1.33542), +"format": 34896613377, +"index_count": 240, +"index_data": PackedByteArray("AAAMAA0AAQAPAA0AAAARAAwAAAATABEAAAAQABMAAQAWAA8AAgAYAA4AAwAaABIABAAcABQABQAeABUAAQAZABYAAgAbABgAAwAdABoABAAfABwABQAXAB4ABgAlACAABwAnACEACAAoACIACQApACMACgAmACQAJgALACkAJgApACQAJAApAAkAKQALACgAKQAoACMAIwAoAAgAKAALACcAKAAnACIAIgAnAAcAJwALACUAJwAlACEAIQAlAAYAJQALACYAJQAmACAAIAAmAAoAFwAKACQAFwAkAB4AHgAkAAkAHwAJACMAHwAjABwAHAAjAAgAHQAIACIAHQAiABoAGgAiAAcAGwAHACEAGwAhABgAGAAhAAYAGQAGACAAGQAgABYAFgAgAAoAHgAJAB8AHgAfABUAFQAfAAQAHAAIAB0AHAAdABQAFAAdAAMAGgAHABsAGgAbABIAEgAbAAIAGAAGABkAGAAZAA4ADgAZAAEAFgAKABcAFgAXAA8ADwAXAAUAEAAFABUAEAAVABMAEwAVAAQAEwAEABQAEwAUABEAEQAUAAMAEQADABIAEQASAAwADAASAAIADwAFABAADwAQAA0ADQAQAAAADAACAA4ADAAOAA0ADQAOAAEA"), +"lods": [0.229579, PackedByteArray("AAAbAA0AGwABAA0AGwAlAAYAGwAGAAEAAQAGABYABgAgABYABgAlACAAJQAmACAAJQALACYAAQAWAAUAAQAFAA0ABQAQAA0ADQAQAAAAFgAKAAUAFgAgAAoAIAAmAAoAEAAFABUAEAAVABMAAAAQABMAEwAVAAQABQAKABUACgAJABUAFQAJAAQACgAmAAkAJgApAAkAJgALACkAKQAoAAkAKQALACgACQAoAAgABAAJAAgACAAdAAQABAAdAAMAEQAEAAMAEwAEABEAAAATABEAAwAdABoAAwAaABEAGgAbABEAAAARABsAHQAIACIAHQAiABoACAAoACIAKAAbACIAGgAiABsAKAALABsAGwALACUA")], +"name": "Material.005", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 42, +"vertex_data": PackedByteArray("uogAAB2KAAAKIT1UwrIAAH8uKE8+LwAAHb9TUOMnAACZ6ktWr54AAAuPbU3//wAAbBXlxiFvAACgewDAmBwAAMLjh78KXwAASsnPuo3XAACaV/69I+QAAJyG//+DjAAAXVviGwdYAAC1RxkbeKIAAL8qvk6JcwAA80pSRTbsAABAh2MjMccAANilYCdwTwAA/HtTSQQeAABHxbwWHZUAAGPhqkR+YQAAncwGOp/fAAD8JbqFtOEAAD5tkIwA+QAA1hfAiktGAAAAAAqMVpUAAECeGIQAAAAA7UhyiiUSAAD//zaK0HwAAD/ZkoapOAAA+rIKiSb9AAAO6+yDVsMAAHUYu9XktgAAMjZ51A8zAAC1sS3H0jAAAF/lbsdynAAAfpLpwZftAADHQdP8RnsAAAJiRPwOyQAAWH7A7NRHAACQwG/3tW4AAAau7/N4ugAA") +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_emgrj"] +resource_name = "tree_Cube_005" +_surfaces = [{ +"aabb": AABB(-1, -1, -1, 2, 2, 2), +"attribute_data": PackedByteArray("/18AAP8f/z//X////1//v/8f/3//X/+//1//P/9f/z//X/8//1//f/9f/3//X/9/Ed/tQBHf7UAR3+1AEZ8AAP/f/z//3/8/EZ///xHfEX8R3xF/Ed8RfxGf/7//3/9//9//fxGf/7/toO1A7aDtQO2g7UARn/8//5//PxGf/z8Rn/8/7aARf+2gEX/toBF/EZ//f/+f/38Rn/9/EZ//fw=="), +"format": 34896613399, +"index_count": 60, +"index_data": PackedByteArray("IgANABQAIgAbAA0ACwAgACcACwAIACAAAgAZABIAAgAFABkABAAHAAoABAABAAcAAwAkABYAAwAJACQADgAYABUADgARABgAEwAlACEAEwAXACUAIwAfABwAIwAmAB8AGgAQAAwAGgAeABAABgAPAB0ABgAAAA8A"), +"material": SubResource("StandardMaterial3D_ijvmk"), +"name": "grass", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 40, +"vertex_data": PackedByteArray("AAAAAP///78AAAAA////vwAAAAD//1TVAAAAAAAA//8AAAAAAAD/vwAAAAAAAFTV//8AAP///7///wAA////v///AAD//1TV//8AAAAA/////wAAAAD/v///AAAAAFTVuAP//0b8//+4A///Rvz//7gD//9G/KrpAABG/P///78AAEb8/////wAARvz//6rpAABG/P//VNW4A///uAP//7gD//+4A///uAP//7gDqukAAEb8AAD//wAARvwAAP//AABG/AAAqukAAEb8AABU1Ub8//9G/P//Rvz//0b8//9G/P//Rvyq6f//Rvz///+///9G/P///////0b8//+q6f//Rvz//1TVRvz//7gD//9G/P//uAP//0b8//+4A6rp//9G/AAA/////0b8AAD/////RvwAAKrp//9G/AAAVNX/////AAD/f1TVVNX/v/+/AAD/f1TVVNX/////AAD/f6oqqir/v/+/AAD/f6oqqir/f3yl/3//vwlqBLX//////398pQlqBLVU1VTV/3+B2v9//78JagS1/7//v/9/gdoJagS1VNVU1f9/fKX/f/+/BDX2Ff//////f3ylBDX2Faoqqir/f4Ha/3//vwQ19RX/v/+//3+B2gQ19RWqKqoq") +}, { +"aabb": AABB(-0.911349, 1.00623, -0.911349, 1.8227, 0.127916, 1.8227), +"attribute_data": PackedByteArray("/39lZv9/ZWb/fzIz/38yM/9/MjP/fzIz/38AAP9/AABUlWVmVJVlZlSVMjNUlTIzVJUyM1SVMjNUlQAAVJUAAKqqZWaqqmVmqqoyM6qqMjOqqjIzqqoyM6qqAACqqgAA/79lZv+/ZWb/vzIz/78yM/+/MjP/vzIz/78AAP+/AABU1WVmVNVlZlTVMjNU1TIzVNUyM1TVMjNU1QAAVNUAAKnqZWap6mVmqeoyM6nqMjOp6jIzqeoyM6nqAACp6gAAAABlZv//ZWb//zIzAAAyMwAAMjMAADIz//8yM///AAAAAAAAVRVlZlUVZWZVFTIzVRUyM1UVMjNVFTIzVRUAAFUVAABVFQAAqiplZqoqZWaqKjIzqioyM6oqMjOqKjIzqioAAKoqAAD/P2Vm/z9lZv8/MjP/PzIz/z8yM/8/MjP/PwAA/z8AAFVVZWZVVWVmVVUyM1VVMjNVVTIzVVUyM1VVAABVVQAAqmplZqpqZWaqajIzqmoyM6pqMjOqajIzqmoAAKpqAAA="), +"format": 34896613399, +"index_count": 144, +"index_data": PackedByteArray("AQALAAkAAQADAAsABAAPAA0ABAAGAA8ACAATABEACAAKABMADAAXABUADAAOABcAEAAbABgAEAASABsAFAAfABwAFAAWAB8AGQAkACAAGQAdACQAGgAmACIAGgAeACYAIQAsACgAIQAlACwAIwAuACoAIwAnAC4AKQA2ADEAKQAtADYAKwA3ADIAKwAvADcAMAA+ADoAMAA1AD4AMwBAADwANAA4AEEAOQBHAEMAOQA9AEcAOwBJAEUAOwA/AEkAQgBPAEsAQgBGAE8ARABQAEwARABIAFAASgBUAFIASgBNAFQATgBYAFYATgBRAFgAUwBcAFoAUwBVAFwAVwBgAF4AVwBZAGAAWwACAAAAWwBdAAIAXwAHAAUAXwBhAAcA"), +"material": SubResource("StandardMaterial3D_ufxyo"), +"name": "Material.011", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 98, +"vertex_data": PackedByteArray("//8AAP9/Zrf//wAA/3/kyyr4////f2a3Kvj///9/5Msq+P///3+C5ir4////f1/efus2nv9/guZ+6zae/39f3tjuAAD/P6ng2O4AAP8/5MsQ6P//6kOp4BDo///qQ+TLEOj//+pDIvAQ6P//6kOC5hfdNp4/SiLwF902nj9Kgub/vwAAJhGK9f+/AAAmEangFLz//+4XivUUvP//7hep4BS8///uF536FLz//+4XIvC/tTae5yKd+r+1Np7nIiLw/38AAAAAivX/fwAAAACK9f9////UB536/3///9QHivX/f///1Aed+v9////UB4r1/382noAUnfr/fzaegBSd+v8/AAAmEYr1/z8AACYRqeDqQ///7hed+upD///uFyLw6kP//+4XivXqQ///7hep4D9KNp7nIp36P0o2nuciIvAmEQAA/z+p4CYRAAD/P+TL7hf//+pDIvDuF///6kOC5u4X///qQ6ng7hf//+pD5MvnIjaeP0oi8OciNp4/SoLmAAAAAP9/ZrcAAAAA/3/ky9QH////f4Lm1Af///9/X97UB////39g3tQH////f2a31Af///9/5MuAFDae/3+C5oAUNp7/f2DeJhEAAP+/sKMmEQAA/79mt+4X//8UvGfY7hf//xS8X97uF///FLywo+4X//8UvGa35yI2nr+1Z9jnIjaev7Vf3uciNp6/tWDe/z8AANjuYpP/PwAA2O6wo+pD//8Q6DnV6kP//xDoZ9jqQ///EOhik+pD//8Q6LCjP0o2nhfdOdU/SjaeF91n2P9/AAD//2KT/38AAP//YpP/f///Kvg51f9///8q+GKT/3///yr4OdX/f///Kvhik/9/Np5+6znV/382nn7rOdX/vwAA2O5ik/+/AADY7rCjFLz//xDoYpMUvP//EOiwoxS8//8Q6DnVFLz//xDoZ9i/tTaeF9051b+1Np4X3WfY2O4AAP+/sKPY7gAA/79mtxDo//8UvLCjEOj//xS8ZrcQ6P//FLxn2BDo//8UvF/eF902nr+1Z9gX3Taev7Vf3qGo/RapoZ0Ooaj9FqmhnQ4h4L0pCua9OSHgvSkK5r05bZxTCKmhnQ5tnFMIqaGdDoHaghoh4L0pgdqCGiHgvSnOl8UCbZxTCM6XxQJtnFMIVtTQCYHaghpW1NAJgdqCGs6XxQLEgjDoz4mnq86XxQJW1NAJxIIw6M+Jp6tW1NAJxIIw6FOIkOPPiaergZp9pcSCMOhTiJDjz4mnq4GafaVTiJDjnY5U3oGafaW8qdyfU4iQ452OVN6Bmn2lvKncn/2WXdedjlTevKncn7y585m9ufOZ/ZZd152OVN68qdyfvbnzme6kw8v9ll3XQM2+kry585nupMPL/ZZd10DNvpK8ufOZvbnzmcPHyK7upMPL4+kpiEDNvpLDx8iu7qTDy+PpKYhAzb6SNtHDR8PHyK7j6SmINtHDR9T342nDx8iu4+kpiNT342k20cNHOrTuJDbRw0c6tO4k1PfjaUDtQE3U9+NpQO1ATTq07iShqP0WOrTuJKGo/RZA7UBNCua9OUDtQE0K5r05") +}, { +"aabb": AABB(-0.911349, 1.00623, -0.911349, 1.8227, 1e-05, 1.8227), +"attribute_data": PackedByteArray("/39lZlSVZWaqqmVm/79lZlTVZWap6mVmAABlZlUVZWaqKmVm/z9lZlVVZWaqamVm"), +"format": 34896613399, +"index_count": 30, +"index_data": PackedByteArray("AQALAAAACwAJAAoACQAHAAgABwAFAAYABQADAAQAAwABAAIAAQAJAAsACQAFAAcABQABAAMACQABAAUA"), +"material": SubResource("StandardMaterial3D_5esuj"), +"name": "Material.012", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 12, +"vertex_data": PackedByteArray("//8AAP9//7/Y7gAA/z//v/+/AAAmEf+//38AAAAA/7//PwAAJhH/vyYRAAD/P/+/AAAAAP9//78mEQAA/7//v/8/AADY7v+//38AAP///7//vwAA2O7/v9juAAD/v/+/AAD/fwAA/38AAP9/AAD/fwAA/38AAP9/AAD/fwAA/38AAP9/AAD/fwAA/38AAP9/") +}, { +"aabb": AABB(-0.248464, 0.846295, -0.256822, 0.44153, 1.51265, 0.449862), +"attribute_data": PackedByteArray("/7+Ogv///38AAP9/bfoCrczM/3/MzP9/mZn/fxzks/GZmf9/Zmb/f+Kbs/FmZv9/kIUCrTMz/38zM/9/////X////1////9fAAD/XwAA/1////8/////PwAA/z8AAP8/AAD/P////x8AAP8fzMz/H8zM/x/LzP8/y8z/P8vM/z/LzP8/y8z/P8vM/1/LzP9fy8z/X8vM/1/LzP9fmZn/H5mZ/x+Zmf8/mZn/P5mZ/z+Zmf8/mZn/P5mZ/1+Zmf9fmZn/X5mZ/1+Zmf9fZmb/H2Zm/x9mZv8/Zmb/P2Zm/z9mZv8/Zmb/P2Zm/19mZv9fZmb/X2Zm/19mZv9fMzP/HzMz/x8zM/8/MzP/PzMz/z8zM/8/MzP/PzMz/18zM/9fMzP/XzMz/18zM/9f"), +"format": 34896613399, +"index_count": 99, +"index_data": PackedByteArray("DAADAAAAAwAKAAcAAwAMAAoADQASAEYADQACABIARwAXAEIASAATABgAQQAaAD8AQQAWABoACwBJADwACwAOAEkAPQBDADgAPgBKAEQAOQBAADQAOQBFAEAABgA6AC4ABgAJADoAMAA2ACkALwA7ADUAKgAzACcAKgA3ADMABQAxACQABQAIADEAJQArACAAJgAyACwAIQAoABwAIQAtACgAAQAiAA8AAQAEACIAEAAeABUAEQAjAB8AFAAbABkAFAAdABsA"), +"lods": [0.0193507, PackedByteArray("DAADAAAAAwAMAAoAAwAKAAcADQASAEYADQACABIARgASABoARgAaAD8ACwBJADwACwAOAEkAPABJAEAAPABAADQABgA6AC4ABgAJADoALgA6ADMALgAzACcABQAxACQABQAIADEAJAAxACgAJAAoABwAAQAiAA8AAQAEACIADwAiABsADwAbABkA")], +"material": SubResource("StandardMaterial3D_yf47a"), +"name": "Material.004", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 75, +"vertex_data": PackedByteArray("//8AAErARR3//wAASsBEkf//AABKwBXEl2sAAP//RR2XawAA//9EkZdrAAD//56iAAAAACeJp9UAAAAAJ4lFHQAAAAAniZ6i6VEAAAAAp9XpUQAAAABFHelRAAAAADT3IPAAABMiRR0g8AAAEyIVxCDwAAATIjT3r9djbxmpRJGv12NvGakKka/XY28ZqRGRr9djbxmpFcSv12NvGakLxD3IK6gxoBGRPcgrqDGgCpE9yCuoMaDmwz3IK6gxoBXEPcgrqDGgC8S7yf//CaE0kbvJ//8JoejDD3mR/hPFJpEPeZH+E8Wgop95o6i+wRaRn3mjqL7BCpGfeaOovsERkZ95o6i+wZKin3mjqL7BnqKadWNvNNNEkZp1Y2800xGRmnVjbzTTnqKadWNvNNOSopp1Y28004qiWj5Z/z6DhdVaPln/PoOfogBBKanqgp7VAEEpqeqChNUAQSmp6oKSogBBKanqgoqiAEEpqeqCnqJ/LmNvqYSn1X8uY2+phKHVfy5jb6mEntV/LmNvqYSeon8uY2+phIqiBWv+/uI3hNUFa/7+4jco9x5sDamkOqHVHmwNqaQ6ntUebA2ppDqE1R5sDamkOkL3HmwNqaQ6KPeiZGNvAyqn1aJkY28DKqHVomRjbwMqNPeiZGNvAypC96JkY28DKjf3mMF2//BK6MOYwXb/8Eon97q/cqhsTObDur9yqGxMFcS6v3KobExC97q/cqhsTDf3ur9yqGxMJvcyzWNviUAVxDLNY2+JQBXEMs1jb4lAC8QyzWNviUA09zLNY2+JQDf3vzF+43GchhcEiz0FvzF+43GchhckjGTuXIPD9r8xfuMkjGTuXIPD9r8xfuOlhqYAvzF+4wSLPQWlhqYAcZyGFySU8xTBltISBIs9BXaIBgQwfqgDJJTzFLR+BQFviGEDdogGBFZt3gSfgNgB3HBNBA99h/kSf6oGJJTzFMGW0hJNiMbweX3k+nGchhfBltISJIxk7k2IxvCYiRbyjoFp/yZ91fnkgqr40YDi/02IxvCYiRbykn02+1yDw/afgsj45IKq+CSMZO6YiRbyZIGE/xSBrAGfgsj45IKq+KWA/v88ev0A5n50AVyDw/afgsj4pYamADx6/QAghYAA+YCEApmAJAFVf7kAb4hhAzx6/QAghYAAan7hAQSLPQVviGEDdogGBKWGpgAghYAA") +}, { +"aabb": AABB(-0.718427, 2.05751, -0.753282, 1.36393, 1.3161, 1.33542), +"attribute_data": PackedByteArray("iy7//6KL//8WXf//uej//y26///RRa/X0UWv19FFr9fRRa/X0UWv10UXr9dFF6/XRRev1///r9f//6/Xc9Gv13PRr9dz0a/Xc9Gv13PRr9fooq/X6KKv1+iir9fooq/X6KKv11x0r9dcdK/XXHSv11x0r9dcdK/Xiy5gr4suYK+LLmCviy5gr4suYK8AAGCvAABgr7noYK+56GCvuehgry26YK8tumCvLbpgry26YK8tumCvootgr6KLYK+ii2Cvootgr6KLYK8WXWCvFl1grxZdYK8WXWCvFl1gr9FFEYdcdBGH6KIRh3PREYdFFxGH6CLX6+gi1+voItfrXPTX61z01+tc9NfrLjrX6y461+suOtfrdFHX63RR1+t0Udfriy6v14sur9eLLq/Xiy6v14sur9eLLq/XFl2v1xZdr9cWXa/XFl2v1xZdr9cWXa/X/3/X6/9/1+v/f9fruWjX67lo1+u5aNfrFt3X69DF1+sW3dfr0MXX69DF1+sW3dfrueiv17nor9e56K/Xueiv17nor9e56K/XRZfX60WX1+tFl9friq7X64qu1+uKrtfrLbqv1y26r9ctuq/XLbqv1y26r9ctuq/Xoouv16KLr9eii6/Xoouv16KLr9eii6/XdFGIw3RRiMN0UYjDdFGIw3RRiMN0UYjDuWiIw7loiMO5aIjDuWiIw7loiMO5aIjD6CKIw+giiMPoIojD6CKIw+giiMPoIojDLjqIwy46iMMuOojDLjqIwy46iMMuOojDFt2IwxbdiMMW3YjDFt2IwxbdiMMW3YjDoguIw6ILiMNc9IjDXPSIw6ILiMNc9IjDiq6Iw4quiMOKrojDiq6Iw4quiMOKrojD0MWIw9DFiMPQxYjD0MWIw9DFiMPQxYjD/3+Iw/9/iMP/f4jD/3+Iw/9/iMP/f4jDRZeIw0WXiMNFl4jDRZeIw0WXiMNFl4jD0UVgr9FFYK/RRWCv0UVgr9FFYK/RRWCvRRdgr0UXYK9FF2CvRRdgr0UXYK9FF2Cvc9Fgr3PRYK9z0WCvc9Fgr3PRYK9z0WCv6KJgr+iiYK/oomCv6KJgr+iiYK/oomCvXHRgr1x0YK9cdGCvXHRgr1x0YK9cdGCvLjo5m+giOZsuOjmbLjo5m+giOZvoIjmbdFE5m7loOZt0UTmbuWg5m7loOZt0UTmbFt05m6ILOZuiCzmbogs5mxbdOZsW3Tmbiq45m4quOZvQxTmbiq45m9DFOZvQxTmbRZc5m/9/OZv/fzmb/385m0WXOZtFlzmb0UWv13PRr9fooq/XXHSv11x0r9eLLmCviy5gry26YK+ii2Cvootgry461+tFl9friq7X66KLr9eii6/XdFGIwxbdiMMW3YjDoguIw6ILiMOiC4jDXPSIw9FFYK9z0WCvLjo5m+giOZu5aDmbiq45m9DFOZtFlzmb/385mw=="), +"format": 34896613399, +"index_count": 240, +"index_data": PackedByteArray("AAA8AEIABwBQAEcAAwBaAEAABABqAFsAAQBVAGcACQB5AFEACwCHAE0AEQCSAGUAGACeAG0AGwCrAHUACACOAHgADACXAIkAEwCnAJUAFQCzAJ0AHAB/AK0AIQDUALQAIwDhAL4AKgDpAMIALQDqAMYAMgDcAM8A2QA4AOsA2wDtAM4AzADsAC8A7gA5AOQA7wDlAMgAygDnACgA5gA6AN4A6ADiAMAAwQDjACUA3wA7ANYA4ADXAL0AuwDTAB8A0gA3ANgA1QDaALUAuADdADQAgAAzANEAfgDQAKwAqgDNADAAsAAxAMcAsgDJAJwAnwDLACkApQAsAMQApgDFAJQAkwDDACcAmgAkAL8AlgC8AIgAhAC6AB4AjQAiALYAjwC3AHoAewC5ADUAqAAuAK4AqQCvAHIAdgCxABQAoQArAKMAoACiAHAAcQCkABIAkQAmAJsAkACZAGQAYwCYAA4AhgAgAIsAhQCKAEkATACMAAYAfAA2AIEAfQCDAFMAUgCCAB0AVgAZAHQAVABzAGYAaAB3ABYAaQAXAGwAawBuAF0AXgBvAA8AXwAQAGIAXABhAEEAPwBgAA0ATwAaAFkATgBYAEYARQBXAAIAPgAKAEoAPQBIAEMARABLAAUA"), +"lods": [0.229579, PackedByteArray("AAACAfoABAHwAPoABAHTAPYABAH1APAA8AD1AP8A9QC0AP8A9gAIAbQACAHYALQACAE3ANgA8AD/APMA8ADzAEUA8wBXAEUARQBXAAIA/wAyAPMA/wC5ADIABgHdADIAVADzAHMAVABzAPsAAQBUAPsA+wD+APIA9AAyAP0AMgD4AP0A/QD4APIAMgAKAfkACgEOAfkACgE4AA4BDQELAfgADQE5AAsB+AALAfcA8gD4APcA9wCiAPIA8gCiAPEAWwDyAPEA/ADyAFsABAD8AFsA8QCiAAAB8QAAAVoAAAGYAFoAAwBaAJgAogD3AAcBogAHAZQA9wAMAQcBDAEFAQcBAQEHAQUBDAE6AAUBAwE7AAkB")], +"material": SubResource("StandardMaterial3D_u8d04"), +"name": "Material.005", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 271, +"vertex_data": PackedByteArray("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") +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_iscf7") + +[sub_resource type="Image" id="Image_35j2f"] +data = { +"data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8orhb/Ntsh/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwCD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wwB//McAf/zHAH/8xwCD/McAg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwB//McAg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAf/zHAIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvh//ML8f/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwCD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McEg/zHBIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwB//McAf/zHBIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wvx//MMAf/zHAH/8xwB//McAf/zHBIP8xwSD/McEg/zHBIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwSD/McEg/zHBIP8xwSD/McIg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwR//McEg/zHBIP8xwSD/McIg/zHCIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McEg/zHBIP8xwSD/McEg/zHCIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wwB//McAf/zHAH/8xwB//McEf/zHBIP8xwSD/McEg/zHCIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//MMAf/zHAH/8xwB//McAf/zHBH/8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/MMAf/zDAH/8xwB//McAf/zHBH/8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zDAH/8xwB//McAf/zHAH/8xwR//McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wwB//McAf/zHAH/8xwR//McEf/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/McAf/zHAH/8xwB//McEf/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zHAH/8xwB//McEf/zHBH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8xwB//McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXQO/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), +"format": "RGBA8", +"height": 64, +"mipmaps": false, +"width": 64 +} + +[sub_resource type="ImageTexture" id="ImageTexture_3fakq"] +image = SubResource("Image_35j2f") + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ksx03"] +resource_name = "Wood" +cull_mode = 2 +albedo_color = Color(0.90643, 0.669319, 0.0971488, 1) +roughness = 0.5 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_a4lxw"] +resource_name = "metal" +cull_mode = 2 +albedo_color = Color(0.369313, 0.369313, 0.369313, 1) +metallic = 0.512 +roughness = 0.524 + +[sub_resource type="ArrayMesh" id="ArrayMesh_wl7qe"] +_surfaces = [{ +"aabb": AABB(-1.00116, -1.12542, -1.05409, 2.00487, 0.972221, 0.113565), +"format": 34896613377, +"index_count": 144, +"index_data": PackedByteArray("AAADAAEAAAACAAMAAgAHAAMAAgAGAAcABgAFAAcABgAEAAUABAABAAUABAAAAAEAAgAEAAYAAgAAAAQABwABAAMABwAFAAEACAALAAkACAAKAAsACgAPAAsACgAOAA8ADgANAA8ADgAMAA0ADAAJAA0ADAAIAAkACgAMAA4ACgAIAAwADwAJAAsADwANAAkAEAATABEAEAASABMAEgAXABMAEgAWABcAFgAVABcAFgAUABUAFAARABUAFAAQABEAEgAUABYAEgAQABQAFwARABMAFwAVABEAGAAbABkAGAAaABsAGgAfABsAGgAeAB8AHgAdAB8AHgAcAB0AHAAZAB0AHAAYABkAGgAcAB4AGgAYABwAHwAZABsAHwAdABkA"), +"name": "Wood", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 32, +"vertex_data": PackedByteArray("nLH//7HaAACezv//sdoAAJyx//8mFQAAns7//yYVAACcsQAAsdoAAJ7OAACx2gAAnLEAACYVAACezgAAJhUAAOwx//+x2gAA7k7//7HaAADsMf//JhUAAO5O//8mFQAA7DEAALHaAADuTgAAsdoAAOwxAAAmFQAA7k4AACYVAACMAJlhE8wAAI0Aa53IygAAnwCKYYoGAACgAFydPwUAAOr/jGGY6gAA6/9enU3pAAD+/31hDyUAAP//T53EIwAAwwCQtmHsAADpAITy//8AABwBz7V2MwAAAADl8UoaAABT/0m0WL8AAGX/cfLozAAAZP+Ws04AAADU/wHxAAAAAA==") +}, { +"aabb": AABB(-0.543871, -0.692006, -1.0571, 1.11774, 0.409166, 0.126927), +"format": 34896613377, +"index_count": 144, +"index_data": PackedByteArray("AAADAAEAAAACAAMAAgAFAAMAAgAEAAUAAwAHAAEAAwAFAAcABAAHAAUABAAGAAcABgABAAcABgAAAAEAAAAEAAIAAAAGAAQACAALAAkACAAKAAsACgANAAsACgAMAA0ACwAPAAkACwANAA8ADAAPAA0ADAAOAA8ADgAJAA8ADgAIAAkACAAMAAoACAAOAAwAEAATABEAEAASABMAEgAVABMAEgAUABUAEwAXABEAEwAVABcAFAAXABUAFAAWABcAFgARABcAFgAQABEAEAAUABIAEAAWABQAGAAbABkAGAAaABsAGgAdABsAGgAcAB0AGwAfABkAGwAdAB8AHAAfAB0AHAAeAB8AHgAZAB8AHgAYABkAGAAcABoAGAAeABwA"), +"name": "metal", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 32, +"vertex_data": PackedByteArray("W+0MPQAAAABb7Qw9//8AAAn7XiUAAAAACfteJf//AABe8gAAAAAAAF7yAAD//wAAsOStFwAAAACw5K0X//8AANcL//8AAAAA1wv/////AABLF7bgAAAAAEsXtuD//wAA1wtuwQAAAADXC27B//8AAGQAtuAAAAAAZAC24P//AACL9P7/AAAAAIv0/v///wAA//+24AAAAAD//7bg//8AAIv0bsEAAAAAi/Ruwf//AAAX6bbgAAAAABfptuD//wAAHgcdPAAAAAAeBx08//8AAKoVqygAAAAAqhWrKP//AACMDu4AAAAAAIwO7gD//wAAAABgFAAAAAAAAGAU//8AAA==") +}] +blend_shape_mode = 0 + +[sub_resource type="ArrayMesh" id="ArrayMesh_ysymx"] +resource_name = "wooden_fence_Cube_006" +_surfaces = [{ +"aabb": AABB(-1.00116, -1.12542, -1.05409, 2.00487, 0.972221, 0.113565), +"attribute_data": PackedByteArray("/18AAP9f////H/8//58AAP+f////3/8//1//v/9f/7//H/9//5//v/+f/7//3/9//1//P/9f/z//X/8//5//P/+f/z//n/8//1//f/9f/3//X/9//5//f/+f/3//n/9//18AAP9f////H/8//58AAP+f////3/8//1//v/9f/7//H/9//5//v/+f/7//3/9//1//P/9f/z//X/8//5//P/+f/z//n/8//1//f/9f/3//X/9//5//f/+f/3//n/9//x//P/9fAAD/X////9//P/+fAAD/n////1//v/8f/3//X/+//9//f/+f/7//n/+//1//P/9f/z//X/8//5//P/+f/z//n/8//1//f/9f/3//X/9//5//f/+f/3//n/9//18AAP8f/z//X////9//P/+fAAD/n////x//f/9f/7//X/+//9//f/+f/7//n/+//1//P/9f/z//X/8//5//P/+f/z//n/8//1//f/9f/3//X/9//5//f/+f/3//n/9/"), +"format": 34896613399, +"index_count": 144, +"index_data": PackedByteArray("AQAKAAQAAQAHAAoABgAVAAkABgASABUAEwAQABYAEwANABAADAADAA8ADAAAAAMACAAOABQACAACAA4AFwAFAAsAFwARAAUAGQAiABwAGQAfACIAHgAtACEAHgAqAC0AKwAoAC4AKwAlACgAJAAbACcAJAAYABsAIAAmACwAIAAaACYALwAdACMALwApAB0AMgA7ADUAMgA4ADsANgBGADoANgBCAEYAQwBAAEcAQwA8AEAAPgA0AEEAPgAxADQANwA9AEQANwAwAD0ARQAzADkARQA/ADMASgBTAE0ASgBQAFMATwBfAFIATwBcAF8AWgBZAF4AWgBVAFkAVABMAFgAVABIAEwATgBWAFsATgBJAFYAXQBLAFEAXQBXAEsA"), +"material": SubResource("StandardMaterial3D_ksx03"), +"name": "Wood", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 96, +"vertex_data": PackedByteArray("nLH//7HaAICcsf//sdr/v5yx//+x2lTVns7//7HaAICezv//sdr/v57O//+x2lTVnLH//yYV//+csf//JhX/v5yx//8mFVTVns7//yYV//+ezv//JhX/v57O//8mFVTVnLEAALHaAICcsQAAsdr/v5yxAACx2lTVns4AALHaAICezgAAsdr/v57OAACx2lTVnLEAACYV//+csQAAJhX/v5yxAAAmFVTVns4AACYV//+ezgAAJhX/v57OAAAmFVTV7DH//7HaAIDsMf//sdr/v+wx//+x2lTV7k7//7HaAIDuTv//sdr/v+5O//+x2lTV7DH//yYV///sMf//JhX/v+wx//8mFVTV7k7//yYV///uTv//JhX/v+5O//8mFVTV7DEAALHaAIDsMQAAsdr/v+wxAACx2lTV7k4AALHaAIDuTgAAsdr/v+5OAACx2lTV7DEAACYV///sMQAAJhX/v+wxAAAmFVTV7k4AACYV///uTgAAJhX/v+5OAAAmFVTVjACZYRPM5b+MAJlhE8z+v4wAmWETzIzVjQBrncjKzP+NAGudyMr+v40Aa53IyozVnwCKYYoGuv+fAIphigblv58AimGKBozVoABcnT8FzP+gAFydPwW6/6AAXJ0/BYzV6v+MYZjqG9Xq/4xhmOrlv+r/jGGY6v6/6/9enU3pzP/r/16dTekb1ev/Xp1N6f6//v99YQ8luv/+/31hDyUb1f7/fWEPJeW///9PncQjzP///0+dxCO6////T53EIxvVwwCQtmHszr/DAJC2YeynvsMAkLZh7MjV6QCE8v//1//pAITy///Qv+kAhPL//zjUHAHPtXYzp74cAc+1djON/xwBz7V2M1fWAADl8Uoa2P8AAOXxShqO/wAA5fFKGrDUU/9JtFi/6L9T/0m0WL8y1VP/SbRYv6e+Zf9x8ujMsf9l/3Hy6Mzrv2X/cfLozLbUZP+Ws04ADNVk/5azTgCnvmT/lrNOAIf/1P8B8QAAsv/U/wHxAACR1NT/AfEAAIj//3///////39UVaqq/3///////3+qKqoq////f////39UVaqq////f////3+qKqoq/3///wAA/39UVaqq/3///wAA/3+qKqoq////fwAA/39UVaqq////fwAA/3+qKqoq/3///////39UVaqq/3///////3+qKqoq////f////39UVaqq////f////3+qKqoq/3///wAA/39UVaqq/3///wAA/3+qKqoq////fwAA/39UVaqq////fwAA/3+qKqoqbwDcgLn/Z/9O1THVBsA2ALn/Z/9O1THV7T/vP28A3IBO1THVBsA2AO0/7z9O1THVoyqJKm8A3IC5/2f/BsA2AKMqiSq5/2f/7T/vP6MqiSpvANyABsA2AO0/7z+jKokqTwFb/UwBnH8w1sXVNoAuwU8BW/1a1LHWTgGbf5xBdD/V1nLVNYAvwbtBVT/p1GnWUAFc/X0p8ip4AYZ/YoAYwVABXP0RKqkqqincKnkBhn8PQP1AYYAZwTwqlCovQN5A") +}, { +"aabb": AABB(-0.543871, -0.692006, -1.0571, 1.11774, 0.409166, 0.126927), +"attribute_data": PackedByteArray("/7+Ogv///38AAP9//z+Ogv//AAAAAAAAb/3/v/+//3//v/9/cH3/v/+/AAD/vwAA/79v/f9//3//f/9//z9v/f9/AAD/fwAAjoL/v/8//3//P/9/jwL/v/8/AAD/PwAA/7+Ogv///38AAP9//z+Ogv//AAAAAAAAb/3/v/+//3//v/9/cH3/v/+/AAD/vwAA/79v/f9//3//f/9//z9v/f9/AAD/fwAAjoL/v/8//3//P/9/jwL/v/8/AAD/PwAA/7+Ogv///38AAP9//z+Ogv//AAAAAAAAb/3/v/+//3//v/9/cH3/v/+/AAD/vwAA/79v/f9//3//f/9//z9v/f9/AAD/fwAAjoL/v/8//3//P/9/jwL/v/8/AAD/PwAA/7+Ogv///38AAP9//z+Ogv//AAAAAAAAb/3/v/+//3//v/9/cH3/v/+/AAD/vwAA/79v/f9//3//f/9//z9v/f9/AAD/fwAAjoL/v/8//3//P/9/jwL/v/8/AAD/PwAA"), +"format": 34896613399, +"index_count": 144, +"index_data": PackedByteArray("AQAKAAQAAQAHAAoACAAQAAsACAANABAACQAVAAMACQAPABUADgAWABEADgATABYAFAAFABcAFAACAAUAAAAMAAYAAAASAAwAGQAiABwAGQAfACIAIAAoACMAIAAlACgAIQAtABsAIQAnAC0AJgAvACkAJgAsAC8AKwAdAC4AKwAaAB0AGAAkAB4AGAAqACQAMQA6ADQAMQA3ADoAOABAADsAOAA9AEAAOQBFADMAOQA/AEUAPgBHAEEAPgBEAEcAQwA1AEYAQwAyADUAMAA8ADYAMABCADwASQBSAEwASQBPAFIAUABYAFMAUABVAFgAUQBdAEsAUQBXAF0AVgBeAFkAVgBbAF4AXABNAF8AXABKAE0ASABUAE4ASABaAFQA"), +"material": SubResource("StandardMaterial3D_a4lxw"), +"name": "metal", +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 96, +"vertex_data": PackedByteArray("W+0MPQAAAABb7Qw9AADV71vtDD0AAKbjW+0MPf///Ihb7Qw9///V71vtDD3//6bjCfteJQAAAAAJ+14lAADV7wn7XiUAAI3JCfteJf///IgJ+14l///V7wn7XiX//43JXvIAAAAAAABe8gAAAACNyV7yAAAAACnDXvIAAP///Ihe8gAA//+NyV7yAAD//ynDsOStFwAAAACw5K0XAAApw7DkrRcAAKbjsOStF////Iiw5K0X//8pw7DkrRf//6bj1wv//wAAAADXC///AACq6dcL//8AAKrp1wv/////AIDXC/////+q6dcL/////6rpSxe24AAAAABLF7bgAACq6UsXtuAAAPzFSxe24P//AIBLF7bg//+q6UsXtuD///zF1wtuwQAAAADXC27BAAD8xdcLbsEAAPzF1wtuwf//AIDXC27B///8xdcLbsH///zFZAC24AAAAABkALbgAACq6WQAtuAAAPzFZAC24P//AIBkALbg//+q6WQAtuD///zFi/T+/wAAAACL9P7/AACq6Yv0/v8AAKrpi/T+////AICL9P7///+q6Yv0/v///6rp//+24AAAAAD//7bgAACq6f//tuAAAPzF//+24P//AID//7bg//+q6f//tuD///zFi/RuwQAAAACL9G7BAAD8xYv0bsEAAPzFi/Ruwf//AICL9G7B///8xYv0bsH///zFF+m24AAAAAAX6bbgAACq6RfptuAAAPzFF+m24P//AIAX6bbg//+q6RfptuD///zFHgcdPAAAAAAeBx08AADx8h4HHTwAALvgHgcdPP//dY0eBx08///x8h4HHTz//7vgqhWrKAAAAACqFasoAADx8qoVqygAAJHLqhWrKP//dY2qFaso///x8qoVqyj//5HLjA7uAAAAAACMDu4AAACRy4wO7gAAABLCjA7uAP//dY2MDu4A//+Ry4wO7gD//xLCAABgFAAAAAAAAGAUAAASwgAAYBQAALvgAABgFP//dY0AAGAU//8SwgAAYBT//7vgO/PDjOQ3NxBhZDCy/////+Q3NxBhZDCyO/PDjOQ3NxCHIfA8/////+Q3NxCHIfA8O/PDjIch8DwAL3+X/////4ch8DwAL3+XO/PDjAAvf5dhZDCy/////wAvf5dhZDCy////fwQ19hUJagS1/3///wQ19hUJagS1/v//fwQ19hX/HAFG/3///wQ19hX/HAFG////f/8cAUb+Of6c/3////8cAUb+Of6c/v//fwlqBLX+Of6c/3///wlqBLX+Of6c////fwQ19hUJagS1/3///wQ19hUJagS1/v//fwQ19hX/HAFG/3///wQ19hX/HAFG////f/8cAUb+Of6c/3////8cAUb+Of6c/v//fwlqBLX+Of6c/3///wlqBLX+Of6cte1Jkls5Rw2PYcew/////1s5Rw2PYcewte1Jkls5Rw2HI/A4/////1s5Rw2HI/A4te1Jkocj8DiDKEGU/////4cj8DiDKEGUte1JkoMoQZSPYcew/////4MoQZSPYcew") +}] +blend_shape_mode = 0 +shadow_mesh = SubResource("ArrayMesh_wl7qe") + +[sub_resource type="Image" id="Image_dlfnv"] +data = { +"data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgpR7/4KUe/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOClHv/gpR7/4KUe/+ClHv/gpR7/4KUe/+ClHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCXw3/gl8N/4JfDf+CXw3/36Ue/9+lHv/fpR7/36Ue/9+lHv/fpR7/36Ue/wAAAAAAAAAA36Ue/9+lHv/fpR7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/9+lHv/fpR7/36Ue/9+lHv/fpR7/36Ue/4RgDv/fpR7/36Ue/9+lHv/fpR7/36Ue/9+lHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/36Ue/9+lHv+EYA3/hGAN/4RgDv+EYA7/36Ue/9+lHv/fpR7/0Zoe/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/9+lHv+EYA3/hGAN/4RgDf+EYA7/hGAO/9GaHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/36Ue/4RgDf/fpR7/36Ue/9+lHv/fpR7/36Ue/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/9+lHv/fpR7/36Ue/9+lHv/fpR7/36Ue/9+lHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/36Ue/9+lHv/fpR7/36Ue/9+lHv/fpR7/36Ue/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf8lJSX/JSUl/2tra/+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf/fpR7/36Ue/9+lHv/fpR7/36Ue/9+lHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADfpR7/36Ue/9+lHv/fpR7/AAAAAAAAAAAAAAAAgl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/yUlJf8lJSX/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/36Ue/9+lHv/fpR7/36Ue/9+lHv/fpR7/36Ue/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGEN/9+lHv/fpR7/36Ue/9+lHv/fpR7/36Ue/wAAAAAAAAAAAAAAAIJfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf/fpR7/36Ue/9+lHv/fpR7/36Ue/9+lHv8AAAAAAAAAAN+kHv/fpB7/36Qe/96kHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRhDf+EYQ3/hGEN/4RhDf/fpR7/36Ue/9+lHv/fpR7/36Ue/9+lHv/fpR7/AAAAAIRgDf+EYA3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/36Ue/9+lHv/fpR7/36Ue/4RgDv+EYA7/3qQe/96kHv/epB7/3qQe/96kHv/epB7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYQ3/hGEN/4RhDf+EYQ3/hGEN/4RhDf+EYQ3/hGEN/9+kHv/fpB7/36Qe/9+kHv+EYA3/hGAN/4RgDf+EYA3/hGAN/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+EYA7/hGAO/4RgDv+EYA7/hGAO/96kHv/epB7/3qQe/9GbHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGEN/4RhDf+EYQ3/hGEN/4RhDf+EYQ3/hGAN/4RgDf+EYA3/hGAN/4RgDf/fpB7/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9GaHf8AAAAAgl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+EYA7/hGAO/4RgDv+EYA7/hGAO/9GbHf/Rmx3/36Ue/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRhDf+EYQ3/hGEN/4RhDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Rmh3/3qQe/wAAAAAAAAAAAAAAAIJfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/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hGAN/4RgDf+EYA3/JSUl/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9KbHf/Smx3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Rmh3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Smx3/0psd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/0Zod/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/0psd/9KbHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9GaHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9KbHf/Smx3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Rmh3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Smx3/0psd/wAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Smx3/0psd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/0psd/9KbHf8AAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/0psd/9KbHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9KbHf/Smx3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/9KbHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Smx3/0psd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/0psd/9KbHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9KbHf/Smx3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Smx3/0psd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/0psd/9KbHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9KbHf/Smx3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf/Smx3/0psd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/0psd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), +"format": "RGBA8", +"height": 64, +"mipmaps": false, +"width": 64 +} + +[sub_resource type="ImageTexture" id="ImageTexture_sxfgn"] +image = SubResource("Image_dlfnv") + +[sub_resource type="BoxShape3D" id="BoxShape3D_0fe72"] +size = Vector3(2, 4, 0.265) + +[resource] +item/0/name = "Grass" +item/0/mesh = SubResource("ArrayMesh_455vr") +item/0/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/0/shapes = [SubResource("BoxShape3D_snubt"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)] +item/0/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/0/navigation_layers = 1 +item/0/preview = SubResource("ImageTexture_5xgod") +item/1/name = "Gray" +item/1/mesh = SubResource("ArrayMesh_2e2w7") +item/1/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/1/shapes = [] +item/1/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/1/navigation_layers = 1 +item/1/preview = SubResource("ImageTexture_op0o1") +item/2/name = "Green" +item/2/mesh = SubResource("ArrayMesh_1mtgn") +item/2/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/2/shapes = [SubResource("BoxShape3D_snubt"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)] +item/2/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/2/navigation_layers = 1 +item/2/preview = SubResource("ImageTexture_613u0") +item/3/name = "Tree" +item/3/mesh = SubResource("ArrayMesh_emgrj") +item/3/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/3/shapes = [SubResource("BoxShape3D_snubt"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0)] +item/3/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/3/navigation_layers = 1 +item/3/preview = SubResource("ImageTexture_3fakq") +item/4/name = "WoodFence" +item/4/mesh = SubResource("ArrayMesh_ysymx") +item/4/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/4/shapes = [SubResource("BoxShape3D_0fe72"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.872101, -1)] +item/4/navigation_mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) +item/4/navigation_layers = 1 +item/4/preview = SubResource("ImageTexture_sxfgn") diff --git a/examples/PushBall/scenes/tiles/tiles.tscn b/examples/PushBall/scenes/tiles/tiles.tscn new file mode 100644 index 0000000..1e9b427 --- /dev/null +++ b/examples/PushBall/scenes/tiles/tiles.tscn @@ -0,0 +1,59 @@ +[gd_scene load_steps=8 format=3 uid="uid://48qkk328vkwu"] + +[ext_resource type="PackedScene" uid="uid://8kbips6v0udq" path="res://assets/tiles/grass.glb" id="1_mnvew"] +[ext_resource type="PackedScene" uid="uid://bujd1vfmbe5ba" path="res://assets/tiles/gray.glb" id="2_ttdf0"] +[ext_resource type="PackedScene" uid="uid://42ejkug73b60" path="res://assets/tiles/green.glb" id="3_ktywo"] +[ext_resource type="PackedScene" uid="uid://dtbi6bkhvj2vn" path="res://assets/tiles/tree.glb" id="4_80i4m"] +[ext_resource type="PackedScene" uid="uid://dj56ae4k54bna" path="res://assets/tiles/wooden_fence.glb" id="5_d1kmr"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_snubt"] +size = Vector3(2, 5, 2) + +[sub_resource type="BoxShape3D" id="BoxShape3D_0fe72"] +size = Vector3(2, 4, 0.265) + +[node name="Tiles" type="Node3D"] + +[node name="grass" parent="." instance=ExtResource("1_mnvew")] +visible = false + +[node name="StaticBody3D" type="StaticBody3D" parent="grass/Grass" index="0"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="grass/Grass/StaticBody3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +shape = SubResource("BoxShape3D_snubt") + +[node name="gray" parent="." instance=ExtResource("2_ttdf0")] +visible = false + +[node name="green" parent="." instance=ExtResource("3_ktywo")] +visible = false + +[node name="StaticBody3D" type="StaticBody3D" parent="green/Green" index="0"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="green/Green/StaticBody3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +shape = SubResource("BoxShape3D_snubt") + +[node name="tree" parent="." instance=ExtResource("4_80i4m")] +visible = false + +[node name="StaticBody3D" type="StaticBody3D" parent="tree/Tree" index="0"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="tree/Tree/StaticBody3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.5, 0) +shape = SubResource("BoxShape3D_snubt") + +[node name="wooden_fence" parent="." instance=ExtResource("5_d1kmr")] +visible = false + +[node name="StaticBody3D" type="StaticBody3D" parent="wooden_fence/WoodFence" index="0"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="wooden_fence/WoodFence/StaticBody3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.872101, -1) +shape = SubResource("BoxShape3D_0fe72") + +[editable path="grass"] +[editable path="green"] +[editable path="tree"] +[editable path="wooden_fence"] diff --git a/examples/PushBall/scenes/training_scene.tscn b/examples/PushBall/scenes/training_scene.tscn new file mode 100644 index 0000000..d7c59cf --- /dev/null +++ b/examples/PushBall/scenes/training_scene.tscn @@ -0,0 +1,57 @@ +[gd_scene load_steps=6 format=3 uid="uid://csfbca4jihdku"] + +[ext_resource type="Script" path="res://addons/godot_rl_agents/sync.gd" id="2_4sdps"] +[ext_resource type="PackedScene" uid="uid://cck7kpuva1vvs" path="res://scenes/levels/all_levels.tscn" id="2_n4cfp"] + +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_cojh0"] +sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) +ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) + +[sub_resource type="Sky" id="Sky_ddj2e"] +sky_material = SubResource("ProceduralSkyMaterial_cojh0") + +[sub_resource type="Environment" id="Environment_evcys"] +background_mode = 2 +sky = SubResource("Sky_ddj2e") +tonemap_mode = 2 +glow_enabled = true + +[node name="TrainingScene" type="Node3D"] + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_evcys") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866025, -0.5, 0.75, -0.433013, 0, 0, 0) + +[node name="AllLevels" parent="." instance=ExtResource("2_n4cfp")] + +[node name="AllLevels2" parent="." instance=ExtResource("2_n4cfp")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -100) + +[node name="AllLevels3" parent="." instance=ExtResource("2_n4cfp")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -200) + +[node name="AllLevels4" parent="." instance=ExtResource("2_n4cfp")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -300) + +[node name="AllLevels5" parent="." instance=ExtResource("2_n4cfp")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -400) + +[node name="AllLevels6" parent="." instance=ExtResource("2_n4cfp")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -500) + +[node name="AllLevels7" parent="." instance=ExtResource("2_n4cfp")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -600) + +[node name="AllLevels8" parent="." instance=ExtResource("2_n4cfp")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -700) + +[node name="AllLevels9" parent="." instance=ExtResource("2_n4cfp")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -800) + +[node name="AllLevels10" parent="." instance=ExtResource("2_n4cfp")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -900) + +[node name="Sync" type="Node" parent="."] +script = ExtResource("2_4sdps") From 0d24c328ff56a3706668442229eb5b4dacf633dd Mon Sep 17 00:00:00 2001 From: Ivan-267 <61947090+Ivan-267@users.noreply.github.com> Date: Thu, 13 Feb 2025 12:13:00 +0100 Subject: [PATCH 2/5] Update readme.md --- examples/PushBall/readme.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/examples/PushBall/readme.md b/examples/PushBall/readme.md index 1722668..7aea503 100644 --- a/examples/PushBall/readme.md +++ b/examples/PushBall/readme.md @@ -1,6 +1,8 @@ # Push Ball A ball-pushing robot environment. +https://github.com/user-attachments/assets/71cf8787-db48-4c9f-a6da-dbbbbaa52211 + # Goal: The robot needs to push the ball into the goal. @@ -125,3 +127,7 @@ Notes: - `--env_path` also needs to be set to the exported executable. This environment was made by [Ivan267.](https://github.com/Ivan-267) + + +# Testing the trained onnx: +A trained onnx file is included. To test it, open the environment, then open the `res://scenes/onnx_test_scene.tscn` scene, then press `F6`. From 6a3cf607781e5c7c70f860dd5f4e9751bf4ff3b3 Mon Sep 17 00:00:00 2001 From: Ivan-267 <61947090+Ivan-267@users.noreply.github.com> Date: Thu, 13 Feb 2025 12:14:19 +0100 Subject: [PATCH 3/5] Removes unused angular velocity from obs --- .../scenes/robot/robot_ai_controller.gd | 3 --- .../PushBall/scenes/tiles/mesh_library.tres | 20 +++++++++---------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/examples/PushBall/scenes/robot/robot_ai_controller.gd b/examples/PushBall/scenes/robot/robot_ai_controller.gd index a66b981..c23a4f0 100644 --- a/examples/PushBall/scenes/robot/robot_ai_controller.gd +++ b/examples/PushBall/scenes/robot/robot_ai_controller.gd @@ -24,9 +24,6 @@ func get_obs() -> Dictionary: player_velocity = player.global_basis.inverse() * player_velocity player_velocity = player_velocity.limit_length(4) / 4 - var player_angular_velocity = player.angular_velocity.y - player_angular_velocity = clampf(player_angular_velocity / 4.0, 0.0, 1.0) - var ball_velocity = player.ball.linear_velocity ball_velocity = player.global_basis.inverse() * ball_velocity ball_velocity = ball_velocity.limit_length(4) / 4 diff --git a/examples/PushBall/scenes/tiles/mesh_library.tres b/examples/PushBall/scenes/tiles/mesh_library.tres index d374ccf..5085258 100644 --- a/examples/PushBall/scenes/tiles/mesh_library.tres +++ b/examples/PushBall/scenes/tiles/mesh_library.tres @@ -67,7 +67,7 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_0c4lr") -[sub_resource type="Image" id="Image_42gb1"] +[sub_resource type="Image" id="Image_tet6u"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgMCDAEBAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwUDEQEBAQYCAwIJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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ML0f/zC+H/8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zG/H/8xwB//McAg/zHAIP8xwCD/McAg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvR//ML0f/zC9H/8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xvx//McAg/zHAIP8xwCD/McAg/zHAIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML0f/zC9H/8wvh//ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8xvx//McAf/zHAIP8xwCD/McAg/zHAIP8xwCD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC9H/8wvR//ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//Mb8f/zHAH/8xwCD/McAg/zHAIP8xwCD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvR//ML4f/zC+H/8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAg/zHAIP8xwCD/McAg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML0f/zC+H/8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zG/H/8xwB//McAf/zHAIP8xwCD/McAg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAIP8xwCD/McAg/zHAIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwCD/McAg/zHAIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//Mb8f/zHAH/8xwB//McAg/zHAIP8xwCD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAf/zHAIP8xwCD/McEg/zHBIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAIP8xwCD/McAg/zHBIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwCD/McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwB//McAg/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//MMAf/zHAH/8xwB//McAg/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/zHCIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAf/zHAIP8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8xwiD/McIg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwB//McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/McIg/zHCIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/ML8f/zC/H/8wvx//ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/McIg/zHCIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//ML8f/zC/H/8wvx//MMAf/zHAH/8xwB//McAf/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/zHCIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zC/H/8wvx//MMAf/zHAH/8xwB//McAf/zHAH/8xwSD/McEg/zHBIP8xwSD/McEg/zHCIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwB//McEg/zHBIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McAf/zHBIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wwB//MMAf/zHAH/8xwB//McAf/zHBH/8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//MMAf/zHAH/8xwB//McAf/zHAH/8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwR//McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zDAH/8xwB//McAf/zHAH/8xwB//McEf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wwB//McAf/zHAH/8xwB//McEf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wwB//MMAf/zHAH/8xwB//McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/MMAf/zHAH/8xwB//McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zDAH/8xwB//McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8xwB//McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -77,7 +77,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_5xgod"] -image = SubResource("Image_42gb1") +image = SubResource("Image_tet6u") [sub_resource type="BoxShape3D" id="BoxShape3D_snubt"] size = Vector3(2, 5, 2) @@ -120,7 +120,7 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_ejvnk") -[sub_resource type="Image" id="Image_njsqr"] +[sub_resource type="Image" id="Image_jmsqj"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAISEh/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0/zQ0NP80NDT/NDQ0/zQ0NP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/SkpK/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/SkpK/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/S0tL/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEhIf80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/S0tL/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/S0tL/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/S0tL/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP9LS0v/S0tL/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP9MTEz/TExM/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs7O/87Ozv/PDw8/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP9MTEz/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/PDw8/zw8PP89PT3/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP9MTEz/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/z09Pf89PT3/PT09/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP9MTEz/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8+Pj7/Pj4+/z4+Pv80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP9NTU3/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/z8/P/8/Pz//Pz8//zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/01NTf9NTU3/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/9AQED/QEBA/0BAQP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/05OTv9NTU3/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/0FBQf9BQUH/QkJC/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/05OTv8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/9CQkL/QkJC/0NDQ/80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/05OTv8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/0NDQ/9ERET/RERE/zQ0NP80NDT/NDQ0/zQ0NP80NDT/NDQ0/09PT/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/9FRUX/RUVF/0VFRf80NDT/NDQ0/09PT/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/0ZGRv8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoa/xoaGv8aGhr/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/xsbG/8bGxv/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xsbG/8bGxv/Gxsb/xsbG/8bGxv/Gxsb/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Gxsb/xsbG/8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/MTEx/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/zExMf8xMTH/MTEx/zExMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/Ghoa/xoaGv8xMTH/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoa/xoaGv8aGhr/Ghoa/xoaGv8aGhr/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/Ghoa/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -130,7 +130,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_op0o1"] -image = SubResource("Image_njsqr") +image = SubResource("Image_jmsqj") [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_phtkf"] resource_name = "grass" @@ -169,7 +169,7 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_f4oji") -[sub_resource type="Image" id="Image_1f7lx"] +[sub_resource type="Image" id="Image_fsj22"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ6QY/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANs0k/zbNJP82zST/Nswk/zbMJP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbMJP82zCT/Nswk/zbLJP82yyT/Nssk/zbLJP82yyT/Nssk/zbLJP82yyT/Nssk/zbLJP82yyT/Nssk/zbLJP82yyT/Nssk/zbLJP82yyT/Nssk/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1zCT/Ncwk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/ON0k/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/ON0j/zG/IP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1yyT/Ncsk/zXLJP81yyT/Ncsk/zXLJP81yyT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/ON0j/zG/IP8xvyD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACekGP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/ON0j/zG/IP8xvyD/Mb8g/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/Ncok/zXKJP81yiT/ON0j/zC/H/8xvyD/Mb8g/zG/IP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81ySP/Nckk/zXJJP81yST/Nckk/zXJJP81yST/ON0j/zC/H/8wvx//Mb8g/zG/IP8xvyD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/843CP/ONwj/zC/H/8wvx//Mb8f/zG/IP8xvyD/Mb8g/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Ncoj/zXKI/81yiP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/Nckj/zXJI/81ySP/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ML0f/zC+H/8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xvx//McAf/zHAIP8xwCD/McAg/zHAIP8xwCD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML0f/zC9H/8wvh//ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//Mb8f/zHAH/8xwCD/McAg/zHAIP8xwCD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC9H/8wvR//ML4f/zC+H/8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//Mb8f/zHAH/8xwCD/McAg/zHAIP8xwCD/McAg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvR//ML4f/zC+H/8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zG/H/8xwB//McAg/zHAIP8xwCD/McAg/zHBIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML0f/zC+H/8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAIP8xwCD/McAg/zHAIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xvx//McAf/zHAH/8xwCD/McAg/zHAIP8xwCD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//Mb8f/zHAH/8xwCD/McAg/zHAIP8xwCD/McEg/zHBIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML4f/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAg/zHAIP8xwCD/McAg/zHBIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvh//ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zG/H/8xwB//McAf/zHAIP8xwCD/McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwCD/McAg/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML4f/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwCD/McAg/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/zHCIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwB//McAg/zHAIP8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAf/zHAIP8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8xwiD/McIg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/GXQN/xl0Df8ZdA3/ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwCD/McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/McIg/zHCIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/xl0Df8ZdA3/GXQN/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwCD/McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/McIg/zHCIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8ZdA3/GXQN/xl0Df8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McAg/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/zHCIP8xwiD/McIg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8ZdA3/ML8f/zC/H/8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwB//McAf/zHAIP8xwSD/McEg/zHBIP8xwSD/McEg/zHCIP8xwiD/McIg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/GXQN/zC/H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAf/zHAH/8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8wvx//ML8f/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwCD/McEg/zHBIP8xwSD/McEg/zHBIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwB//McAg/zHBIP8xwSD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McAf/zHBIP8xwSD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zC/H/8wvx//MMAf/zHAH/8xwB//McAf/zHAIP8xwSD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wvx//MMAf/zHAH/8xwB//McAf/zHAH/8xwSD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwB//McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwB//McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McAf/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wwB//MMAf/zHAH/8xwB//McAf/zHBH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//MMAf/zHAH/8xwB//McAf/zHAH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/MMAf/zDAH/8xwB//McAf/zHAH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zDAH/8xwB//McAf/zHAH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wwB//McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/MMAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -179,7 +179,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_613u0"] -image = SubResource("Image_1f7lx") +image = SubResource("Image_fsj22") [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ijvmk"] resource_name = "grass" @@ -333,7 +333,7 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_iscf7") -[sub_resource type="Image" id="Image_35j2f"] +[sub_resource type="Image" id="Image_ep661"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Df8orhb/Ntsh/zC+H/8wvh//ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwCD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQN/xl0Df8wvh//ML4f/zC/H/8wvx//ML8f/zC/H/8wwB//McAf/zHAH/8xwCD/McAg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA3/ML4f/zC+H/8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwB//McAg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC+H/8wvx//ML8f/zC/H/8wvx//ML8f/zHAH/8xwB//McAf/zHAIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvh//ML8f/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wvx//ML8f/zC/H/8xwB//McAf/zHAH/8xwCD/McEg/zHBIP8xwSD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McEg/zHBIP8xwSD/McEg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zC/H/8wvx//McAf/zHAH/8xwB//McAf/zHBIP8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wvx//MMAf/zHAH/8xwB//McAf/zHBIP8xwSD/McEg/zHBIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwSD/McEg/zHBIP8xwSD/McIg/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//ML8f/zDAH/8xwB//McAf/zHAH/8xwR//McEg/zHBIP8xwSD/McIg/zHCIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/ML8f/zC/H/8wwB//McAf/zHAH/8xwB//McEg/zHBIP8xwSD/McEg/zHCIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zC/H/8wwB//McAf/zHAH/8xwB//McEf/zHBIP8xwSD/McEg/zHCIP8xwiD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wvx//MMAf/zHAH/8xwB//McAf/zHBH/8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/MMAf/zDAH/8xwB//McAf/zHBH/8xwSD/McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGnUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zDAH/8xwB//McAf/zHAH/8xwR//McEg/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8wwB//McAf/zHAH/8xwR//McEf/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXQO/xl0Dv8ZdA7/GXQO/xl0Dv8ZdA7/McAf/zHAH/8xwB//McEf/zHBIP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl1Dv8ZdA7/GXQO/xl0Dv8ZdA7/GXQO/zHAH/8xwB//McEf/zHBH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/GXQO/xl0Dv8xwB//McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGXUO/xl1Dv8ZdQ7/GXUO/xl0Dv8ZdA7/McAf/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZdQ7/GXQO/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -343,7 +343,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_3fakq"] -image = SubResource("Image_35j2f") +image = SubResource("Image_ep661") [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ksx03"] resource_name = "Wood" @@ -412,7 +412,7 @@ _surfaces = [{ blend_shape_mode = 0 shadow_mesh = SubResource("ArrayMesh_wl7qe") -[sub_resource type="Image" id="Image_dlfnv"] +[sub_resource type="Image" id="Image_gnm4j"] data = { "data": PackedByteArray("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgpR7/4KUe/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOClHv/gpR7/4KUe/+ClHv/gpR7/4KUe/+ClHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCXw3/gl8N/4JfDf+CXw3/36Ue/9+lHv/fpR7/36Ue/9+lHv/fpR7/36Ue/wAAAAAAAAAA36Ue/9+lHv/fpR7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/9+lHv/fpR7/36Ue/9+lHv/fpR7/36Ue/4RgDv/fpR7/36Ue/9+lHv/fpR7/36Ue/9+lHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/36Ue/9+lHv+EYA3/hGAN/4RgDv+EYA7/36Ue/9+lHv/fpR7/0Zoe/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/9+lHv+EYA3/hGAN/4RgDf+EYA7/hGAO/9GaHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/36Ue/4RgDf/fpR7/36Ue/9+lHv/fpR7/36Ue/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/9+lHv/fpR7/36Ue/9+lHv/fpR7/36Ue/9+lHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/36Ue/9+lHv/fpR7/36Ue/9+lHv/fpR7/36Ue/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf8lJSX/JSUl/2tra/+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf/fpR7/36Ue/9+lHv/fpR7/36Ue/9+lHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADfpR7/36Ue/9+lHv/fpR7/AAAAAAAAAAAAAAAAgl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/yUlJf8lJSX/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/36Ue/9+lHv/fpR7/36Ue/9+lHv/fpR7/36Ue/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGEN/9+lHv/fpR7/36Ue/9+lHv/fpR7/36Ue/wAAAAAAAAAAAAAAAIJfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf/fpR7/36Ue/9+lHv/fpR7/36Ue/9+lHv8AAAAAAAAAAN+kHv/fpB7/36Qe/96kHv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRhDf+EYQ3/hGEN/4RhDf/fpR7/36Ue/9+lHv/fpR7/36Ue/9+lHv/fpR7/AAAAAIRgDf+EYA3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/36Ue/9+lHv/fpR7/36Ue/4RgDv+EYA7/3qQe/96kHv/epB7/3qQe/96kHv/epB7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYQ3/hGEN/4RhDf+EYQ3/hGEN/4RhDf+EYQ3/hGEN/9+kHv/fpB7/36Qe/9+kHv+EYA3/hGAN/4RgDf+EYA3/hGAN/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+EYA7/hGAO/4RgDv+EYA7/hGAO/96kHv/epB7/3qQe/9GbHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGEN/4RhDf+EYQ3/hGEN/4RhDf+EYQ3/hGAN/4RgDf+EYA3/hGAN/4RgDf/fpB7/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9GaHf8AAAAAgl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+EYA7/hGAO/4RgDv+EYA7/hGAO/9GbHf/Rmx3/36Ue/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRhDf+EYQ3/hGEN/4RhDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Rmh3/3qQe/wAAAAAAAAAAAAAAAIJfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/gl8N/4JfDf+CXw3/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hGAN/4RgDf+EYA3/JSUl/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9KbHf/Smx3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Rmh3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Smx3/0psd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/0Zod/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/0psd/9KbHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9GaHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9KbHf/Smx3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Rmh3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Smx3/0psd/wAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Smx3/0psd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/0psd/9KbHf8AAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/0psd/9KbHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9KbHf/Smx3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/9KbHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Smx3/0psd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/0psd/9KbHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9KbHf/Smx3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIRgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf/Smx3/0psd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/hGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/0psd/9KbHf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf+EYA3/hGAN/9KbHf/Smx3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhGAN/4RgDf+EYA3/hGAN/4RgDf/Smx3/0psd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEYA3/0psd/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="), "format": "RGBA8", @@ -422,7 +422,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_sxfgn"] -image = SubResource("Image_dlfnv") +image = SubResource("Image_gnm4j") [sub_resource type="BoxShape3D" id="BoxShape3D_0fe72"] size = Vector3(2, 4, 0.265) From f3ec7f4dd3bebae79e1f2fa4a83355ad117add17 Mon Sep 17 00:00:00 2001 From: Ivan-267 <61947090+Ivan-267@users.noreply.github.com> Date: Thu, 13 Feb 2025 12:14:36 +0100 Subject: [PATCH 4/5] Update readme.md --- examples/PushBall/readme.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/examples/PushBall/readme.md b/examples/PushBall/readme.md index 7aea503..4be8dd6 100644 --- a/examples/PushBall/readme.md +++ b/examples/PushBall/readme.md @@ -26,9 +26,6 @@ func get_obs() -> Dictionary: player_velocity = player.global_basis.inverse() * player_velocity player_velocity = player_velocity.limit_length(4) / 4 - var player_angular_velocity = player.angular_velocity.y - player_angular_velocity = clampf(player_angular_velocity / 4.0, 0.0, 1.0) - var ball_velocity = player.ball.linear_velocity ball_velocity = player.global_basis.inverse() * ball_velocity ball_velocity = ball_velocity.limit_length(4) / 4 From b0ea1c1008fdf848f66a5026d5220700e08e5fae Mon Sep 17 00:00:00 2001 From: Ivan-267 <61947090+Ivan-267@users.noreply.github.com> Date: Thu, 13 Feb 2025 12:15:17 +0100 Subject: [PATCH 5/5] Update robot.gd Small formatting update --- examples/PushBall/scenes/robot/robot.gd | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/PushBall/scenes/robot/robot.gd b/examples/PushBall/scenes/robot/robot.gd index 9d368f4..175b0b4 100644 --- a/examples/PushBall/scenes/robot/robot.gd +++ b/examples/PushBall/scenes/robot/robot.gd @@ -69,8 +69,6 @@ func _process_distance_rewards(): if current_ball_dist < closest_ball_dist: _ai_controller.reward += (closest_ball_dist - current_ball_dist) closest_ball_dist = current_ball_dist - - #endregion