From 2d123bd731234caadebd683c1fcd171064aca744 Mon Sep 17 00:00:00 2001 From: Lexi Quinn Date: Thu, 16 Nov 2023 00:07:41 +1100 Subject: [PATCH] we're so close to working multiplayer --- Assets/TextureAtlases/green.tres | 7 -- Assets/TextureAtlases/red.tres | 7 -- Assets/Textures/cardborders.png | Bin 1924 -> 1370 bytes Assets/Textures/cardborders.png~ | Bin 0 -> 1924 bytes Assets/Textures/cardhand.png | Bin 1188 -> 1084 bytes Assets/Textures/cardhand.png.kra | Bin 0 -> 12727 bytes Assets/Textures/cardhand.png~ | Bin 1173 -> 1188 bytes PCs/Blue/blue.png | Bin 0 -> 5067 bytes PCs/Blue/blue.png.import | 34 +++++++++ PCs/Blue/blue.tres | 4 +- {Assets/Textures => PCs/Green}/green.png | Bin .../Textures => PCs/Green}/green.png.import | 6 +- PCs/Green/green.tres | 4 +- {Assets/Textures => PCs/Red}/red.png | Bin {Assets/Textures => PCs/Red}/red.png.import | 6 +- PCs/Red/red.tres | 4 +- .../ClassCards/Assault/tower_stats.tres | 2 +- .../ClassCards/Blowdart/blowdart.png.import | 9 +-- .../ClassCards/Blowdart/blowdarttower.gd | 10 --- .../ClassCards/Blowdart/card_blowdart.tres | 18 ++++- .../ClassCards/Blowdart/tower_blowdart.gd | 8 ++ .../ClassCards/Blowdart/tower_blowdart.tscn | 46 +++-------- .../ClassCards/Blowdart/tower_stats.tres | 25 ++++++ .../ClassCards/Blowdart/weapon_blowdart.tscn | 8 -- .../ClassCards/Blowdart/weapon_stats.tres | 1 + .../ClassCards/BombLauncher/bombtower.gd | 30 -------- .../BombLauncher/tower_bomb_launcher.gd | 2 +- .../ClassCards/Fireball/card_fireball.tres | 6 +- .../ClassCards/Fireball/fireballtower.gd | 13 ---- .../ClassCards/Fireball/tower_fireball.gd | 2 + .../ClassCards/Fireball/tower_fireball.tscn | 48 +++--------- .../ClassCards/Fireball/tower_stats.tres | 25 ++++++ .../ClassCards/Fireball/weapon_stats.tres | 23 +++++- .../ClassCards/Gatling/tower_stats.tres | 6 +- .../ClassCards/Gatling/weapon_stats.tres | 4 +- .../GlueLauncher/card_glue_launcher.tres | 20 ++++- .../ClassCards/GlueLauncher/stickytower.gd | 10 --- .../GlueLauncher/tower_glue_launcher.gd | 8 ++ .../GlueLauncher/tower_glue_launcher.tscn | 54 +++---------- .../ClassCards/GlueLauncher/tower_stats.tres | 25 ++++++ .../ClassCards/GlueLauncher/weapon_stats.tres | 3 +- .../ClassCards/Icicle/card_icicle.tres | 6 +- .../ClassCards/Icicle/icicletower.gd | 13 ---- .../ClassCards/Icicle/tower_icicle.gd | 2 + .../ClassCards/Icicle/tower_icicle.tscn | 48 +++--------- .../ClassCards/Icicle/tower_stats.tres | 25 ++++++ .../ClassCards/Icicle/weapon_stats.tres | 23 +++++- .../ClassCards/Sniper/weapon_stats.tres | 2 +- PCs/hero.gd | 6 +- PCs/hero.tscn | 72 +++++++++++++----- Scenes/Menus/options_menu.tscn | 46 ++++++++++- .../status_applying_projectile.tscn | 1 - Scenes/Towers/status_applying_tower.tscn | 8 ++ Scenes/UI/card_hand.tscn | 49 ++++++++---- Scenes/card_constructor.tscn | 9 +-- Scripts/Projectiles/projectile.gd | 4 + Scripts/Resources/card.gd | 2 +- Scripts/Resources/hero_class.gd | 2 +- Scripts/Resources/player_preferences.gd | 4 + Scripts/StatusEffector.gd | 2 +- Scripts/Towers/projectile_tower.gd | 2 +- Scripts/Towers/status_applying_tower.gd | 22 ++++++ Scripts/Weapons/hitscan_weapon.gd | 4 + Scripts/Weapons/projectile_weapon.gd | 24 +++--- Scripts/Weapons/weapon.gd | 9 +++ Scripts/card_hand.gd | 4 + Scripts/card_printer.gd | 2 + Scripts/data.gd | 8 +- Scripts/edit_tool.gd | 1 + Scripts/game.gd | 11 ++- Scripts/health.gd | 5 -- Scripts/multiplayer_lobby.gd | 6 +- Scripts/options_menu.gd | 13 +++- Scripts/wave_manager.gd | 6 +- Worlds/GreenPlanet/Enemies/air_enemy.tscn | 5 +- Worlds/GreenPlanet/Enemies/dog_heavy.tres | 2 +- .../GreenPlanet/Enemies/enemy_controller.gd | 3 +- Worlds/GreenPlanet/Enemies/land_enemy.tscn | 9 ++- Worlds/GreenPlanet/Levels/first_level.tscn | 14 +++- Worlds/GreenPlanet/tilemap.tres | 8 +- health_bar_gradient.tres | 6 ++ 81 files changed, 578 insertions(+), 388 deletions(-) delete mode 100644 Assets/TextureAtlases/green.tres delete mode 100644 Assets/TextureAtlases/red.tres create mode 100644 Assets/Textures/cardborders.png~ create mode 100644 Assets/Textures/cardhand.png.kra create mode 100644 PCs/Blue/blue.png create mode 100644 PCs/Blue/blue.png.import rename {Assets/Textures => PCs/Green}/green.png (100%) rename {Assets/Textures => PCs/Green}/green.png.import (72%) rename {Assets/Textures => PCs/Red}/red.png (100%) rename {Assets/Textures => PCs/Red}/red.png.import (73%) delete mode 100644 PCs/Universal/ClassCards/Blowdart/blowdarttower.gd create mode 100644 PCs/Universal/ClassCards/Blowdart/tower_blowdart.gd create mode 100644 PCs/Universal/ClassCards/Blowdart/tower_stats.tres delete mode 100644 PCs/Universal/ClassCards/BombLauncher/bombtower.gd delete mode 100644 PCs/Universal/ClassCards/Fireball/fireballtower.gd create mode 100644 PCs/Universal/ClassCards/Fireball/tower_fireball.gd create mode 100644 PCs/Universal/ClassCards/Fireball/tower_stats.tres delete mode 100644 PCs/Universal/ClassCards/GlueLauncher/stickytower.gd create mode 100644 PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.gd create mode 100644 PCs/Universal/ClassCards/GlueLauncher/tower_stats.tres delete mode 100644 PCs/Universal/ClassCards/Icicle/icicletower.gd create mode 100644 PCs/Universal/ClassCards/Icicle/tower_icicle.gd create mode 100644 PCs/Universal/ClassCards/Icicle/tower_stats.tres create mode 100644 Scenes/Towers/status_applying_tower.tscn create mode 100644 Scripts/Towers/status_applying_tower.gd create mode 100644 health_bar_gradient.tres diff --git a/Assets/TextureAtlases/green.tres b/Assets/TextureAtlases/green.tres deleted file mode 100644 index af4dbd6..0000000 --- a/Assets/TextureAtlases/green.tres +++ /dev/null @@ -1,7 +0,0 @@ -[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://bgt3j4cuq814m"] - -[ext_resource type="Texture2D" uid="uid://dyqh1uu4pocv1" path="res://Assets/Textures/green.png" id="1_gvbxi"] - -[resource] -atlas = ExtResource("1_gvbxi") -region = Rect2(0, 0, 96, 96) diff --git a/Assets/TextureAtlases/red.tres b/Assets/TextureAtlases/red.tres deleted file mode 100644 index a3d9361..0000000 --- a/Assets/TextureAtlases/red.tres +++ /dev/null @@ -1,7 +0,0 @@ -[gd_resource type="AtlasTexture" load_steps=2 format=3 uid="uid://hxev3a2ktya"] - -[ext_resource type="Texture2D" uid="uid://cjqxkraykhxxk" path="res://Assets/Textures/red.png" id="1_ecb2i"] - -[resource] -atlas = ExtResource("1_ecb2i") -region = Rect2(0, 0, 96, 96) diff --git a/Assets/Textures/cardborders.png b/Assets/Textures/cardborders.png index fef93d019cb99f8c9550f58771b275dc99613dbe..1fd677177b8de0813fe2f63f52fc2619c186b035 100644 GIT binary patch literal 1370 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 diff --git a/Assets/Textures/cardhand.png.kra b/Assets/Textures/cardhand.png.kra new file mode 100644 index 0000000000000000000000000000000000000000..0f1af2f723f49f358993076bda2969dd0007c7e8 GIT binary patch literal 12727 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

dchlOlJh0H75K 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 literal 0 HcmV?d00001 diff --git a/Assets/Textures/cardhand.png~ b/Assets/Textures/cardhand.png~ index 54fdca944cb7d5852d1c562c05ac87d9bd4a089e..e2f248c6b12d64f1776f06a5f450680c6e1a3f92 100644 GIT binary patch delta 1153 zcmV-{1b+LK38V>-GJnl01YsP%UqUR(h zW7=G5UTb)!nJ`WC(xaQMJ)TI!`FDNXQlsikRQ3A*-k+-_oqusnsA&`)F>S{amT8Eu zc(&qA;Z8HJr-cuM2OJqt_)_Ucz)y;E0lz7BW|9*SQa!cY4>o?VnRg1p{lbxgRWiTl zQD4%UDb7wy?Uo(JCCMZ)Gz>~CVc`*#T9nNG_6=5iQ!IieAIJD6FMUvve#d(bEM z+ZVq8GmU5=?SoKo00009a7bBm001QD001QD0fJ)%9De`+0^LbOK~#7F?OAQIgCG#A zop+nw|0q3=uW^inD=rHPh|)g@>_-w-wD@}UUsvGK3JeF?j|cr@-H+nk5dVI^ zo1i%cKA+EC*i;TvycFk&d@164tTFBpC7MsP!!PeB$$NlkxRd5&P8mdCF!M4S&IvcG z&&1=n+lm&H@LL`v$&_72jpC= zYO$YC0jjuN09Bp`O!f+Rz#^*@dj+WSJYcd{zylUprPwP#mFEGIp$fS5Spe2IB*3lD z0)I>b-2E;HR>0i_IQ(S@0?Ct?mcACb0z_?ik~F{0;yWScS`h&PEW}BIW$*jw=@OUr z@WWV3B1{$FBSI0_hKSP+ZA&7&W5~nSVowoVQA%IC3#R1`J_Q)aN?c1;VNN{}2A-e* zFd}*1o`Ct5f4c&ZEXk83$JuYa-3S1JB!4N%%YN(Rfqx}{OI#yMyQ>PoeanJx5rCvL z;t0rj+V3R^&F}f0I3C;pk!uowU`Z|nf_Ctuug|B2x4}0Fkd%*zZw&VIVGP>IKF3S6 zG35_D<~PAT@DzdbBwu;;P2~^FrZ+*73$?Y$$FBY)K!}uezBYLWr+M{H6W~JR9eN#X zm&;?&X1=w$3i*`s2OIZ5WXnz&A#s>g-tgQLsi^V?_9OvFzBX|Xa8^E=e6#>04#zWo z4)~+tlE@?J@OzFgM`9WZlBYTQnvZcV8N4yRYG%3xNS5Rg(Y@9(%)V7gYWV&E7(3nv TD&;}000000NkvXXu0mjfTy`fx delta 1138 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 StatusEffect: + var status = StatusDoT.new() + status.stats = status_stats + return status diff --git a/PCs/Universal/ClassCards/Blowdart/tower_blowdart.tscn b/PCs/Universal/ClassCards/Blowdart/tower_blowdart.tscn index cb7ab80..c749bce 100644 --- a/PCs/Universal/ClassCards/Blowdart/tower_blowdart.tscn +++ b/PCs/Universal/ClassCards/Blowdart/tower_blowdart.tscn @@ -1,39 +1,11 @@ -[gd_scene load_steps=5 format=3 uid="uid://qkvo6ibgfrlb"] +[gd_scene load_steps=5 format=3 uid="uid://cq5q6c28pwi47"] -[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Blowdart/blowdarttower.gd" id="1_ah52c"] -[ext_resource type="Resource" uid="uid://cbskijhnnj3kw" path="res://Resources/StatusEffects/poisoned.tres" id="2_vfr4o"] -[ext_resource type="Resource" uid="uid://by1gyra5a4aks" path="res://Resources/TurretStats/blowdart.tres" id="3_m1c6u"] +[ext_resource type="PackedScene" uid="uid://dxwtlvv632ae8" path="res://Scenes/Towers/status_applying_tower.tscn" id="1_lnpfa"] +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Blowdart/tower_blowdart.gd" id="2_s3qd0"] +[ext_resource type="Resource" uid="uid://cbskijhnnj3kw" path="res://Resources/StatusEffects/poisoned.tres" id="3_ix50y"] +[ext_resource type="Resource" uid="uid://cfbap4o68urti" path="res://PCs/Universal/ClassCards/Blowdart/tower_stats.tres" id="4_1w7pa"] -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mrhfj"] -transparency = 1 -cull_mode = 2 -shading_mode = 0 -albedo_color = Color(0.686275, 0, 0, 0.278431) - -[node name="Node3D" type="Node3D" node_paths=PackedStringArray("model", "range_sphere", "minimap_range_sphere")] -script = ExtResource("1_ah52c") -status_stats = ExtResource("2_vfr4o") -stats = ExtResource("3_m1c6u") -model = NodePath("Model") -range_sphere = NodePath("Model/CSGSphere3D") -minimap_range_sphere = NodePath("Model/CSGSphere3D2") - -[node name="Model" type="Node3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) - -[node name="CSGBox3D2" type="CSGBox3D" parent="Model"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0158235, 0, -0.623444) -size = Vector3(0.481654, 0.427749, 1.38438) - -[node name="CSGSphere3D" type="CSGSphere3D" parent="Model"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0) -visible = false -radius = 7.5 -material = SubResource("StandardMaterial3D_mrhfj") - -[node name="CSGSphere3D2" type="CSGSphere3D" parent="Model"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0) -visible = false -layers = 4 -radius = 7.5 -material = SubResource("StandardMaterial3D_mrhfj") +[node name="BlowdartTower" instance=ExtResource("1_lnpfa")] +script = ExtResource("2_s3qd0") +status_stats = ExtResource("3_ix50y") +stats = ExtResource("4_1w7pa") diff --git a/PCs/Universal/ClassCards/Blowdart/tower_stats.tres b/PCs/Universal/ClassCards/Blowdart/tower_stats.tres new file mode 100644 index 0000000..3af070c --- /dev/null +++ b/PCs/Universal/ClassCards/Blowdart/tower_stats.tres @@ -0,0 +1,25 @@ +[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://cfbap4o68urti"] + +[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_jxacs"] +[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_eifl4"] + +[sub_resource type="Resource" id="Resource_1txa7"] +script = ExtResource("1_jxacs") +key = "Damage" +value = 0.0 + +[sub_resource type="Resource" id="Resource_46kv2"] +script = ExtResource("1_jxacs") +key = "Range" +value = 20.0 + +[sub_resource type="Resource" id="Resource_gb76x"] +script = ExtResource("1_jxacs") +key = "Fire Delay" +value = 2.0 + +[resource] +script = ExtResource("2_eifl4") +target_type = 3 +attributes = Array[ExtResource("1_jxacs")]([SubResource("Resource_1txa7"), SubResource("Resource_46kv2"), SubResource("Resource_gb76x")]) +text = "Fires every /Fire Delay\\s, applying one stack of Poison at a range of /Range\\m" diff --git a/PCs/Universal/ClassCards/Blowdart/weapon_blowdart.tscn b/PCs/Universal/ClassCards/Blowdart/weapon_blowdart.tscn index 96b23d9..9377f79 100644 --- a/PCs/Universal/ClassCards/Blowdart/weapon_blowdart.tscn +++ b/PCs/Universal/ClassCards/Blowdart/weapon_blowdart.tscn @@ -13,15 +13,7 @@ region = Rect2(0, 0, 64, 64) [node name="BlowdartWeapon" instance=ExtResource("1_t3gfv")] script = ExtResource("2_g1m1f") status_stats = ExtResource("3_wculg") -raycast = Object(RayCast3D,"_import_path":NodePath(""),"unique_name_in_owner":false,"process_mode":0,"process_priority":0,"process_physics_priority":0,"process_thread_group":0,"editor_description":"","transform":Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0),"rotation_edit_mode":0,"rotation_order":2,"top_level":false,"visible":true,"visibility_parent":NodePath(""),"enabled":true,"exclude_parent":true,"target_position":Vector3(0, 0, -1),"collision_mask":4,"hit_from_inside":false,"collide_with_areas":false,"collide_with_bodies":true,"debug_shape_custom_color":Color(0, 0, 0, 1),"debug_shape_thickness":2,"script":null) - -range_debug_indicator = Object(CSGSphere3D,"_import_path":NodePath(""),"unique_name_in_owner":false,"process_mode":0,"process_priority":0,"process_physics_priority":0,"process_thread_group":0,"editor_description":"","transform":Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0),"rotation_edit_mode":0,"rotation_order":2,"top_level":false,"visible":false,"visibility_parent":NodePath(""),"layers":1,"sorting_offset":0.0,"sorting_use_aabb_center":true,"material_override":null,"material_overlay":null,"transparency":0.0,"cast_shadow":1,"extra_cull_margin":0.0,"custom_aabb":AABB(0, 0, 0, 0, 0, 0),"lod_bias":1.0,"ignore_occlusion_culling":false,"gi_mode":1,"gi_lightmap_scale":0,"visibility_range_begin":0.0,"visibility_range_begin_margin":0.0,"visibility_range_end":0.0,"visibility_range_end_margin":0.0,"visibility_range_fade_mode":0,"operation":0,"snap":0.001,"calculate_tangents":true,"use_collision":false,"collision_layer":1,"collision_mask":1,"collision_priority":1.0,"flip_faces":false,"radius":4.104,"radial_segments":16,"rings":16,"smooth_faces":true,"material":null,"script":null) - stats = ExtResource("4_dwqec") -animator = Object(AnimationPlayer,"_import_path":NodePath(""),"unique_name_in_owner":false,"process_mode":0,"process_priority":0,"process_physics_priority":0,"process_thread_group":0,"editor_description":"","root_node":NodePath(".."),"autoplay":"","reset_on_save":true,"playback_process_mode":1,"playback_default_blend_time":0.0,"speed_scale":1.0,"method_call_mode":0,"audio_max_polyphony":32,"movie_quit_on_finish":false,"libraries":{ -"": null -},"blend_times":[],"script":null) - [node name="Sprite3D" parent="." index="0"] texture = SubResource("AtlasTexture_85web") diff --git a/PCs/Universal/ClassCards/Blowdart/weapon_stats.tres b/PCs/Universal/ClassCards/Blowdart/weapon_stats.tres index 4441be2..803bea2 100644 --- a/PCs/Universal/ClassCards/Blowdart/weapon_stats.tres +++ b/PCs/Universal/ClassCards/Blowdart/weapon_stats.tres @@ -20,5 +20,6 @@ value = 0.8 [resource] script = ExtResource("1_5ldx7") +target_type = 0 attributes = Array[ExtResource("1_pw5it")]([SubResource("Resource_1txa7"), SubResource("Resource_46kv2"), SubResource("Resource_gb76x")]) text = "Fires every /Fire Delay\\s, applying one stack of Poison at a range of /Range\\m" diff --git a/PCs/Universal/ClassCards/BombLauncher/bombtower.gd b/PCs/Universal/ClassCards/BombLauncher/bombtower.gd deleted file mode 100644 index e88a867..0000000 --- a/PCs/Universal/ClassCards/BombLauncher/bombtower.gd +++ /dev/null @@ -1,30 +0,0 @@ -extends Tower -class_name BombTower - -@export var bomb_scene: PackedScene -var firing_velocity - -func _ready() -> void: - super._ready() - firing_velocity = sqrt((stats.fire_range * ProjectSettings.get_setting("physics/3d/default_gravity")) / sin(2 * 45)) - - -func shoot(): - var bomb = bomb_scene.instantiate() as Bomb - bomb.position = model.global_position - bomb.damage = stats.damage - get_tree().root.add_child(bomb) - bomb.apply_impulse(-model.global_transform.basis.z * firing_velocity) - - -func aim(): - var pos = Vector2(global_position.x, global_position.z) - var t_pos = Vector2(targeted_enemy.global_position.x, targeted_enemy.global_position.z) - var x = pos.distance_to(t_pos) - var y = targeted_enemy.global_position.y - global_position.y - var v = firing_velocity - var g = ProjectSettings.get_setting("physics/3d/default_gravity") - var v2 = pow(v, 2) - var angle = atan((v2 + sqrt(pow(v, 4) - g * ((g * pow(x, 2)) + (2 * y * v2)))) / (g * x)) - model.look_at(Vector3(t_pos.x, model.global_position.y, t_pos.y)) - model.rotate(model.global_transform.basis.x.normalized(), angle) diff --git a/PCs/Universal/ClassCards/BombLauncher/tower_bomb_launcher.gd b/PCs/Universal/ClassCards/BombLauncher/tower_bomb_launcher.gd index a3d1301..de0f29c 100644 --- a/PCs/Universal/ClassCards/BombLauncher/tower_bomb_launcher.gd +++ b/PCs/Universal/ClassCards/BombLauncher/tower_bomb_launcher.gd @@ -11,7 +11,7 @@ func aim(): var pos = Vector2(global_position.x, global_position.z) var t_pos = Vector2(targeted_enemy.global_position.x, targeted_enemy.global_position.z) var x = pos.distance_to(t_pos) - var y = targeted_enemy.global_position.y - (global_position.y + 1) + var y = targeted_enemy.global_position.y - global_position.y var v = force var g = ProjectSettings.get_setting("physics/3d/default_gravity") var v2 = pow(v, 2) diff --git a/PCs/Universal/ClassCards/Fireball/card_fireball.tres b/PCs/Universal/ClassCards/Fireball/card_fireball.tres index 1433ca3..3637cff 100644 --- a/PCs/Universal/ClassCards/Fireball/card_fireball.tres +++ b/PCs/Universal/ClassCards/Fireball/card_fireball.tres @@ -1,8 +1,10 @@ -[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://bibx2my7igspq"] +[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://bibx2my7igspq"] [ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_qktm8"] [ext_resource type="Texture2D" uid="uid://mwgpnnm3g3re" path="res://PCs/Universal/ClassCards/Fireball/fireball.png" id="2_lfltq"] +[ext_resource type="Resource" uid="uid://dnvqghpwyuw84" path="res://PCs/Universal/ClassCards/Fireball/tower_stats.tres" id="3_1l6fp"] [ext_resource type="PackedScene" uid="uid://dnwjfb4fexr0o" path="res://PCs/Universal/ClassCards/Fireball/weapon_fireball.tscn" id="3_4c0mu"] +[ext_resource type="PackedScene" uid="uid://dwwgvgn0ds8tk" path="res://PCs/Universal/ClassCards/Fireball/tower_fireball.tscn" id="4_e3adw"] [ext_resource type="Resource" uid="uid://dhwhwicgpw7yh" path="res://PCs/Universal/ClassCards/Fireball/weapon_stats.tres" id="4_folo6"] [sub_resource type="AtlasTexture" id="AtlasTexture_wvh1s"] @@ -15,5 +17,7 @@ title = "Fireball" rarity = 3 faction = 0 sprite = SubResource("AtlasTexture_wvh1s") +turret_scene = ExtResource("4_e3adw") weapon_scene = ExtResource("3_4c0mu") weapon_stats = ExtResource("4_folo6") +tower_stats = ExtResource("3_1l6fp") diff --git a/PCs/Universal/ClassCards/Fireball/fireballtower.gd b/PCs/Universal/ClassCards/Fireball/fireballtower.gd deleted file mode 100644 index cec51e3..0000000 --- a/PCs/Universal/ClassCards/Fireball/fireballtower.gd +++ /dev/null @@ -1,13 +0,0 @@ -extends Tower -class_name FireballTower - -@export var fireball_scene : PackedScene -@export var status_stats : StatusStats - - -func shoot(): - var fireball = fireball_scene.instantiate() as Fireball - fireball.position = model.global_position - fireball.status_stats = status_stats - get_tree().root.add_child(fireball) - fireball.direction = -model.global_transform.basis.z diff --git a/PCs/Universal/ClassCards/Fireball/tower_fireball.gd b/PCs/Universal/ClassCards/Fireball/tower_fireball.gd new file mode 100644 index 0000000..14ac0b1 --- /dev/null +++ b/PCs/Universal/ClassCards/Fireball/tower_fireball.gd @@ -0,0 +1,2 @@ +extends ProjectileTower +class_name FireballTower diff --git a/PCs/Universal/ClassCards/Fireball/tower_fireball.tscn b/PCs/Universal/ClassCards/Fireball/tower_fireball.tscn index 31f5098..0904e70 100644 --- a/PCs/Universal/ClassCards/Fireball/tower_fireball.tscn +++ b/PCs/Universal/ClassCards/Fireball/tower_fireball.tscn @@ -1,41 +1,11 @@ -[gd_scene load_steps=6 format=3 uid="uid://dr2bmfj8fquxr"] +[gd_scene load_steps=5 format=3 uid="uid://dwwgvgn0ds8tk"] -[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Fireball/fireballtower.gd" id="1_076bl"] -[ext_resource type="PackedScene" uid="uid://dyglfv8lh2rbg" path="res://PCs/Universal/ClassCards/Fireball/fireball.tscn" id="2_0kqdt"] -[ext_resource type="Resource" uid="uid://dbanx8taicddm" path="res://Resources/StatusEffects/on_fire.tres" id="3_88y8d"] -[ext_resource type="Resource" uid="uid://b8a635kajtq6" path="res://Resources/TurretStats/fireball.tres" id="4_cd3q3"] +[ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_rkdu6"] +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Fireball/tower_fireball.gd" id="2_td8dh"] +[ext_resource type="PackedScene" uid="uid://ddpixntjsbpqp" path="res://PCs/Universal/ClassCards/Fireball/fireball_projectile.tscn" id="3_1akv8"] +[ext_resource type="Resource" uid="uid://dnvqghpwyuw84" path="res://PCs/Universal/ClassCards/Fireball/tower_stats.tres" id="4_uu77s"] -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fouf8"] -transparency = 1 -cull_mode = 2 -shading_mode = 0 -albedo_color = Color(0.686275, 0, 0, 0.278431) - -[node name="Node3D" type="Node3D" node_paths=PackedStringArray("model", "range_sphere", "minimap_range_sphere")] -script = ExtResource("1_076bl") -fireball_scene = ExtResource("2_0kqdt") -status_stats = ExtResource("3_88y8d") -stats = ExtResource("4_cd3q3") -model = NodePath("Model") -range_sphere = NodePath("Model/CSGSphere3D") -minimap_range_sphere = NodePath("Model/CSGSphere3D2") - -[node name="Model" type="Node3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.97939, 0) - -[node name="CSGBox3D" type="CSGBox3D" parent="Model"] - -[node name="CSGBox3D2" type="CSGBox3D" parent="Model"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.486166) -size = Vector3(1.10238, 1.08881, 1.04243) - -[node name="CSGSphere3D" type="CSGSphere3D" parent="Model"] -visible = false -radius = 7.5 -material = SubResource("StandardMaterial3D_fouf8") - -[node name="CSGSphere3D2" type="CSGSphere3D" parent="Model"] -visible = false -layers = 4 -radius = 7.5 -material = SubResource("StandardMaterial3D_fouf8") +[node name="FireballTower" instance=ExtResource("1_rkdu6")] +script = ExtResource("2_td8dh") +projectile_scene = ExtResource("3_1akv8") +stats = ExtResource("4_uu77s") diff --git a/PCs/Universal/ClassCards/Fireball/tower_stats.tres b/PCs/Universal/ClassCards/Fireball/tower_stats.tres new file mode 100644 index 0000000..dcbf389 --- /dev/null +++ b/PCs/Universal/ClassCards/Fireball/tower_stats.tres @@ -0,0 +1,25 @@ +[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://dnvqghpwyuw84"] + +[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_tvubo"] +[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_26lj8"] + +[sub_resource type="Resource" id="Resource_68ba3"] +script = ExtResource("1_tvubo") +key = "Fire Delay" +value = 3.0 + +[sub_resource type="Resource" id="Resource_gogvm"] +script = ExtResource("1_tvubo") +key = "Damage" +value = 5.0 + +[sub_resource type="Resource" id="Resource_pswb4"] +script = ExtResource("1_tvubo") +key = "Range" +value = 15.0 + +[resource] +script = ExtResource("2_26lj8") +target_type = 3 +attributes = Array[ExtResource("1_tvubo")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4")]) +text = "Conjures a fireball every /Fire Delay\\s that deals /Damage\\ and apply Burning to enemies caught in its blast" diff --git a/PCs/Universal/ClassCards/Fireball/weapon_stats.tres b/PCs/Universal/ClassCards/Fireball/weapon_stats.tres index f30753a..df17060 100644 --- a/PCs/Universal/ClassCards/Fireball/weapon_stats.tres +++ b/PCs/Universal/ClassCards/Fireball/weapon_stats.tres @@ -1,8 +1,25 @@ -[gd_resource type="Resource" script_class="CardText" load_steps=2 format=3 uid="uid://dhwhwicgpw7yh"] +[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://dhwhwicgpw7yh"] +[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_80jfw"] [ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="1_hmbwy"] +[sub_resource type="Resource" id="Resource_68ba3"] +script = ExtResource("1_80jfw") +key = "Fire Delay" +value = 2.0 + +[sub_resource type="Resource" id="Resource_gogvm"] +script = ExtResource("1_80jfw") +key = "Damage" +value = 5.0 + +[sub_resource type="Resource" id="Resource_pswb4"] +script = ExtResource("1_80jfw") +key = "Range" +value = 15.0 + [resource] script = ExtResource("1_hmbwy") -attributes = Array[Resource("res://Scripts/Resources/stat_attribute.gd")]([]) -text = "" +target_type = 0 +attributes = Array[ExtResource("1_80jfw")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4")]) +text = "Conjure a fireball every /Fire Delay\\s that can be thrown to deal /Damage\\ and apply Burning to enemies caught in its blast" diff --git a/PCs/Universal/ClassCards/Gatling/tower_stats.tres b/PCs/Universal/ClassCards/Gatling/tower_stats.tres index abf2616..861eb3f 100644 --- a/PCs/Universal/ClassCards/Gatling/tower_stats.tres +++ b/PCs/Universal/ClassCards/Gatling/tower_stats.tres @@ -6,7 +6,7 @@ [sub_resource type="Resource" id="Resource_oayfg"] script = ExtResource("1_nu6vr") key = "Fire Delay" -value = 1.0 +value = 0.6 [sub_resource type="Resource" id="Resource_fekle"] script = ExtResource("1_nu6vr") @@ -32,6 +32,6 @@ value = 3.0 script = ExtResource("1_80xci") target_type = 1 attributes = Array[ExtResource("1_nu6vr")]([SubResource("Resource_oayfg"), SubResource("Resource_fekle"), SubResource("Resource_ud8xi"), SubResource("Resource_cvkxf"), SubResource("Resource_pivwn")]) -text = "Fires a shot every [Fire Delay] seconds dealing [Damage] damage at a range of [Range]m +text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m -While attacking the same target, gradually accelerates to [Speed Multiplier] times the fire rate over [Speed Time]" +While attacking the same target, gradually accelerates to /Speed Multiplier\\x the fire rate over /Speed Time\\s" diff --git a/PCs/Universal/ClassCards/Gatling/weapon_stats.tres b/PCs/Universal/ClassCards/Gatling/weapon_stats.tres index 80badf7..1dfa107 100644 --- a/PCs/Universal/ClassCards/Gatling/weapon_stats.tres +++ b/PCs/Universal/ClassCards/Gatling/weapon_stats.tres @@ -32,6 +32,6 @@ value = 3.0 script = ExtResource("1_630yu") target_type = 0 attributes = Array[ExtResource("1_vpmor")]([SubResource("Resource_fi7tc"), SubResource("Resource_r6h5d"), SubResource("Resource_gwg1i"), SubResource("Resource_ogk1x"), SubResource("Resource_wdp3h")]) -text = "Fires a shot every [Fire Delay] seconds dealing [Damage] damage at a range of [Range]m +text = "Fires a shot every /Fire Delay\\ seconds dealing /Damage\\ damage at a range of /Range\\m -While held, gradually accelerates to [Speed Multiplier] times the fire rate over [Speed Time]" +While held, gradually accelerates to /Speed Multiplier\\x the fire rate over /Speed Time\\" diff --git a/PCs/Universal/ClassCards/GlueLauncher/card_glue_launcher.tres b/PCs/Universal/ClassCards/GlueLauncher/card_glue_launcher.tres index ec60c45..60a6d6b 100644 --- a/PCs/Universal/ClassCards/GlueLauncher/card_glue_launcher.tres +++ b/PCs/Universal/ClassCards/GlueLauncher/card_glue_launcher.tres @@ -1,9 +1,23 @@ -[gd_resource type="Resource" script_class="Card" load_steps=2 format=3 uid="uid://fwsg5av1egp2"] +[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://fwsg5av1egp2"] [ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_tdu8a"] +[ext_resource type="Texture2D" uid="uid://oblavj8vj30n" path="res://PCs/Universal/ClassCards/GlueLauncher/glue_gun.png" id="2_lh4dk"] +[ext_resource type="Resource" uid="uid://boj1ho5x0sxtq" path="res://PCs/Universal/ClassCards/GlueLauncher/weapon_stats.tres" id="3_dukui"] +[ext_resource type="Resource" uid="uid://bvkwgmbxje0dp" path="res://PCs/Universal/ClassCards/GlueLauncher/tower_stats.tres" id="3_e5fta"] +[ext_resource type="PackedScene" uid="uid://bb44pintbwdcf" path="res://PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.tscn" id="4_xcrut"] +[ext_resource type="PackedScene" uid="uid://takm6diuy71m" path="res://PCs/Universal/ClassCards/GlueLauncher/weapon_glue_launcher.tscn" id="5_l3c38"] + +[sub_resource type="AtlasTexture" id="AtlasTexture_7gjas"] +atlas = ExtResource("2_lh4dk") +region = Rect2(0, 0, 64, 64) [resource] script = ExtResource("1_tdu8a") -title = "" -rarity = 0 +title = "Glue Launcher" +rarity = 1 faction = 0 +sprite = SubResource("AtlasTexture_7gjas") +turret_scene = ExtResource("4_xcrut") +weapon_scene = ExtResource("5_l3c38") +weapon_stats = ExtResource("3_dukui") +tower_stats = ExtResource("3_e5fta") diff --git a/PCs/Universal/ClassCards/GlueLauncher/stickytower.gd b/PCs/Universal/ClassCards/GlueLauncher/stickytower.gd deleted file mode 100644 index 03a71bb..0000000 --- a/PCs/Universal/ClassCards/GlueLauncher/stickytower.gd +++ /dev/null @@ -1,10 +0,0 @@ -extends Tower -class_name StickyTower - -@export var status_stats : StatusStats - - -func shoot(): - var status = StatusSticky.new() - status.stats = status_stats - targeted_enemy.status_manager.add_effect(status) diff --git a/PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.gd b/PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.gd new file mode 100644 index 0000000..e71e5b2 --- /dev/null +++ b/PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.gd @@ -0,0 +1,8 @@ +extends StatusApplyingTower +class_name GlueLauncherTower + + +func build_status_object() -> StatusEffect: + var status = StatusSlow.new() + status.stats = status_stats + return status diff --git a/PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.tscn b/PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.tscn index 82da8fa..2498816 100644 --- a/PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.tscn +++ b/PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.tscn @@ -1,47 +1,11 @@ -[gd_scene load_steps=4 format=3 uid="uid://dja1b2ke8clo5"] +[gd_scene load_steps=5 format=3 uid="uid://bb44pintbwdcf"] -[ext_resource type="Script" path="res://PCs/Universal/ClassCards/GlueLauncher/stickytower.gd" id="1_0fo13"] -[ext_resource type="Resource" uid="uid://d0643gfp52x3s" path="res://Resources/StatusEffects/sticky.tres" id="2_f8mxi"] +[ext_resource type="PackedScene" uid="uid://dxwtlvv632ae8" path="res://Scenes/Towers/status_applying_tower.tscn" id="1_r1dvg"] +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/GlueLauncher/tower_glue_launcher.gd" id="2_ot8fu"] +[ext_resource type="Resource" uid="uid://d0643gfp52x3s" path="res://Resources/StatusEffects/sticky.tres" id="3_ibb53"] +[ext_resource type="Resource" uid="uid://bvkwgmbxje0dp" path="res://PCs/Universal/ClassCards/GlueLauncher/tower_stats.tres" id="4_etcd4"] -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mrhfj"] -transparency = 1 -cull_mode = 2 -shading_mode = 0 -albedo_color = Color(0.686275, 0, 0, 0.278431) - -[node name="Node3D" type="Node3D" node_paths=PackedStringArray("model", "range_sphere", "minimap_range_sphere")] -script = ExtResource("1_0fo13") -status_stats = ExtResource("2_f8mxi") -model = NodePath("Model") -range_sphere = NodePath("Model/CSGSphere3D") -minimap_range_sphere = NodePath("Model/CSGSphere3D2") - -[node name="Model" type="Node3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) - -[node name="CSGBox3D" type="CSGBox3D" parent="Model"] - -[node name="CSGBox3D2" type="CSGBox3D" parent="Model"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0158235, 0, -0.956956) -size = Vector3(0.481654, 0.427749, 1.38438) - -[node name="CSGBox3D3" type="CSGBox3D" parent="Model"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00590318, 0.717947, 0.210929) -size = Vector3(0.329535, 0.622842, 0.319929) - -[node name="CSGBox3D4" type="CSGBox3D" parent="Model"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00590295, 0.453314, -0.265725) -size = Vector3(0.329535, 0.622842, 0.319929) - -[node name="CSGSphere3D" type="CSGSphere3D" parent="Model"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0) -visible = false -radius = 7.5 -material = SubResource("StandardMaterial3D_mrhfj") - -[node name="CSGSphere3D2" type="CSGSphere3D" parent="Model"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2, 0) -visible = false -layers = 4 -radius = 7.5 -material = SubResource("StandardMaterial3D_mrhfj") +[node name="GlueLauncherTower" instance=ExtResource("1_r1dvg")] +script = ExtResource("2_ot8fu") +status_stats = ExtResource("3_ibb53") +stats = ExtResource("4_etcd4") diff --git a/PCs/Universal/ClassCards/GlueLauncher/tower_stats.tres b/PCs/Universal/ClassCards/GlueLauncher/tower_stats.tres new file mode 100644 index 0000000..8b938d3 --- /dev/null +++ b/PCs/Universal/ClassCards/GlueLauncher/tower_stats.tres @@ -0,0 +1,25 @@ +[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://bvkwgmbxje0dp"] + +[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_0wpdf"] +[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="2_we1js"] + +[sub_resource type="Resource" id="Resource_gbocu"] +script = ExtResource("1_0wpdf") +key = "Damage" +value = 0.0 + +[sub_resource type="Resource" id="Resource_6a2im"] +script = ExtResource("1_0wpdf") +key = "Range" +value = 10.0 + +[sub_resource type="Resource" id="Resource_7npe0"] +script = ExtResource("1_0wpdf") +key = "Fire Delay" +value = 2.0 + +[resource] +script = ExtResource("2_we1js") +target_type = 1 +attributes = Array[ExtResource("1_0wpdf")]([SubResource("Resource_gbocu"), SubResource("Resource_6a2im"), SubResource("Resource_7npe0")]) +text = "Fires every /Fire Delay\\s, making the target Sticky at a range of /Range\\m" diff --git a/PCs/Universal/ClassCards/GlueLauncher/weapon_stats.tres b/PCs/Universal/ClassCards/GlueLauncher/weapon_stats.tres index d68e88a..644aaf3 100644 --- a/PCs/Universal/ClassCards/GlueLauncher/weapon_stats.tres +++ b/PCs/Universal/ClassCards/GlueLauncher/weapon_stats.tres @@ -20,5 +20,6 @@ value = 0.5 [resource] script = ExtResource("1_8sdo4") +target_type = 0 attributes = Array[ExtResource("1_gheu8")]([SubResource("Resource_gbocu"), SubResource("Resource_6a2im"), SubResource("Resource_7npe0")]) -text = "Fires every [Fire Delay]s, making the target Sticky at a range of [Range]m" +text = "Fires every /Fire Delay\\s, making the target Sticky at a range of /Range\\m" diff --git a/PCs/Universal/ClassCards/Icicle/card_icicle.tres b/PCs/Universal/ClassCards/Icicle/card_icicle.tres index 48d132f..778b49a 100644 --- a/PCs/Universal/ClassCards/Icicle/card_icicle.tres +++ b/PCs/Universal/ClassCards/Icicle/card_icicle.tres @@ -1,8 +1,10 @@ -[gd_resource type="Resource" script_class="Card" load_steps=6 format=3 uid="uid://cb1uqjl1387kk"] +[gd_resource type="Resource" script_class="Card" load_steps=8 format=3 uid="uid://cb1uqjl1387kk"] [ext_resource type="Script" path="res://Scripts/Resources/card.gd" id="1_cmmto"] [ext_resource type="Texture2D" uid="uid://mqo5qcghfit8" path="res://PCs/Universal/ClassCards/Icicle/icicle.png" id="2_w5fi7"] +[ext_resource type="Resource" uid="uid://d34bfj5togyyt" path="res://PCs/Universal/ClassCards/Icicle/tower_stats.tres" id="3_p8y0m"] [ext_resource type="PackedScene" uid="uid://v3iuf4lt2iff" path="res://PCs/Universal/ClassCards/Icicle/weapon_icicle.tscn" id="3_ve3rv"] +[ext_resource type="PackedScene" uid="uid://miawrarbb1up" path="res://PCs/Universal/ClassCards/Icicle/tower_icicle.tscn" id="4_vgqev"] [ext_resource type="Resource" uid="uid://ckjmym1ofww4" path="res://PCs/Universal/ClassCards/Icicle/weapon_stats.tres" id="4_yv37w"] [sub_resource type="AtlasTexture" id="AtlasTexture_7due4"] @@ -15,5 +17,7 @@ title = "Icicle" rarity = 3 faction = 0 sprite = SubResource("AtlasTexture_7due4") +turret_scene = ExtResource("4_vgqev") weapon_scene = ExtResource("3_ve3rv") weapon_stats = ExtResource("4_yv37w") +tower_stats = ExtResource("3_p8y0m") diff --git a/PCs/Universal/ClassCards/Icicle/icicletower.gd b/PCs/Universal/ClassCards/Icicle/icicletower.gd deleted file mode 100644 index a86ade1..0000000 --- a/PCs/Universal/ClassCards/Icicle/icicletower.gd +++ /dev/null @@ -1,13 +0,0 @@ -extends Tower -class_name IcicleTower - -@export var icicle_scene : PackedScene -@export var status_stats : StatusStats - - -func shoot(): - var icicle = icicle_scene.instantiate() as Icicle - icicle.position = model.global_position - icicle.status_stats = status_stats - get_tree().root.add_child(icicle) - icicle.direction = -model.global_transform.basis.z diff --git a/PCs/Universal/ClassCards/Icicle/tower_icicle.gd b/PCs/Universal/ClassCards/Icicle/tower_icicle.gd new file mode 100644 index 0000000..14c2534 --- /dev/null +++ b/PCs/Universal/ClassCards/Icicle/tower_icicle.gd @@ -0,0 +1,2 @@ +extends ProjectileTower +class_name IcicleTower diff --git a/PCs/Universal/ClassCards/Icicle/tower_icicle.tscn b/PCs/Universal/ClassCards/Icicle/tower_icicle.tscn index 1829f1c..8874a59 100644 --- a/PCs/Universal/ClassCards/Icicle/tower_icicle.tscn +++ b/PCs/Universal/ClassCards/Icicle/tower_icicle.tscn @@ -1,41 +1,11 @@ -[gd_scene load_steps=6 format=3 uid="uid://clabvrajn6k3r"] +[gd_scene load_steps=5 format=3 uid="uid://miawrarbb1up"] -[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Icicle/icicletower.gd" id="1_diocy"] -[ext_resource type="PackedScene" uid="uid://cdme5v2sq7u3p" path="res://PCs/Universal/ClassCards/Icicle/icicle.tscn" id="2_706hd"] -[ext_resource type="Resource" uid="uid://fed6kimfbcwv" path="res://Resources/StatusEffects/cold.tres" id="3_ei6qp"] -[ext_resource type="Resource" uid="uid://cdmkajdgfpk6h" path="res://Resources/TurretStats/icicle.tres" id="4_vyj5f"] +[ext_resource type="PackedScene" uid="uid://t0b32qb8eub2" path="res://Scenes/Towers/projectile_tower.tscn" id="1_d6g88"] +[ext_resource type="Script" path="res://PCs/Universal/ClassCards/Icicle/tower_icicle.gd" id="2_qcpgh"] +[ext_resource type="PackedScene" uid="uid://dyurjxotdkf1u" path="res://PCs/Universal/ClassCards/Icicle/icicle_projectile.tscn" id="3_o4uqf"] +[ext_resource type="Resource" uid="uid://d34bfj5togyyt" path="res://PCs/Universal/ClassCards/Icicle/tower_stats.tres" id="4_3il5a"] -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fouf8"] -transparency = 1 -cull_mode = 2 -shading_mode = 0 -albedo_color = Color(0.686275, 0, 0, 0.278431) - -[node name="Node3D" type="Node3D" node_paths=PackedStringArray("model", "range_sphere", "minimap_range_sphere")] -script = ExtResource("1_diocy") -icicle_scene = ExtResource("2_706hd") -status_stats = ExtResource("3_ei6qp") -stats = ExtResource("4_vyj5f") -model = NodePath("Model") -range_sphere = NodePath("Model/CSGSphere3D") -minimap_range_sphere = NodePath("Model/CSGSphere3D2") - -[node name="Model" type="Node3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.97939, 0) - -[node name="CSGBox3D" type="CSGBox3D" parent="Model"] - -[node name="CSGBox3D2" type="CSGBox3D" parent="Model"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.486166) -size = Vector3(1.10238, 1.08881, 1.04243) - -[node name="CSGSphere3D" type="CSGSphere3D" parent="Model"] -visible = false -radius = 7.5 -material = SubResource("StandardMaterial3D_fouf8") - -[node name="CSGSphere3D2" type="CSGSphere3D" parent="Model"] -visible = false -layers = 4 -radius = 7.5 -material = SubResource("StandardMaterial3D_fouf8") +[node name="IcicleTower" instance=ExtResource("1_d6g88")] +script = ExtResource("2_qcpgh") +projectile_scene = ExtResource("3_o4uqf") +stats = ExtResource("4_3il5a") diff --git a/PCs/Universal/ClassCards/Icicle/tower_stats.tres b/PCs/Universal/ClassCards/Icicle/tower_stats.tres new file mode 100644 index 0000000..6cbcaf5 --- /dev/null +++ b/PCs/Universal/ClassCards/Icicle/tower_stats.tres @@ -0,0 +1,25 @@ +[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://d34bfj5togyyt"] + +[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_3sgqf"] +[ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="1_x2vtw"] + +[sub_resource type="Resource" id="Resource_68ba3"] +script = ExtResource("1_3sgqf") +key = "Fire Delay" +value = 3.0 + +[sub_resource type="Resource" id="Resource_gogvm"] +script = ExtResource("1_3sgqf") +key = "Damage" +value = 4.0 + +[sub_resource type="Resource" id="Resource_pswb4"] +script = ExtResource("1_3sgqf") +key = "Range" +value = 15.0 + +[resource] +script = ExtResource("1_x2vtw") +target_type = 3 +attributes = Array[ExtResource("1_3sgqf")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4")]) +text = "Conjures an icicle every /Fire Delay\\s that deals /Damage\\ and applies Cold to enemies caught in its blast" diff --git a/PCs/Universal/ClassCards/Icicle/weapon_stats.tres b/PCs/Universal/ClassCards/Icicle/weapon_stats.tres index 03f1629..6473ce3 100644 --- a/PCs/Universal/ClassCards/Icicle/weapon_stats.tres +++ b/PCs/Universal/ClassCards/Icicle/weapon_stats.tres @@ -1,8 +1,25 @@ -[gd_resource type="Resource" script_class="CardText" load_steps=2 format=3 uid="uid://ckjmym1ofww4"] +[gd_resource type="Resource" script_class="CardText" load_steps=6 format=3 uid="uid://ckjmym1ofww4"] +[ext_resource type="Script" path="res://Scripts/Resources/stat_attribute.gd" id="1_c13s0"] [ext_resource type="Script" path="res://Scripts/Resources/card_text.gd" id="1_fpi27"] +[sub_resource type="Resource" id="Resource_68ba3"] +script = ExtResource("1_c13s0") +key = "Fire Delay" +value = 2.0 + +[sub_resource type="Resource" id="Resource_gogvm"] +script = ExtResource("1_c13s0") +key = "Damage" +value = 5.0 + +[sub_resource type="Resource" id="Resource_pswb4"] +script = ExtResource("1_c13s0") +key = "Range" +value = 15.0 + [resource] script = ExtResource("1_fpi27") -attributes = Array[Resource("res://Scripts/Resources/stat_attribute.gd")]([]) -text = "" +target_type = 0 +attributes = Array[ExtResource("1_c13s0")]([SubResource("Resource_68ba3"), SubResource("Resource_gogvm"), SubResource("Resource_pswb4")]) +text = "Conjure an icicle every /Fire Delay\\s that can be thrown to deal /Damage\\ and apply Cold to enemies caught in its blast" diff --git a/PCs/Universal/ClassCards/Sniper/weapon_stats.tres b/PCs/Universal/ClassCards/Sniper/weapon_stats.tres index 3e9b884..a75e53d 100644 --- a/PCs/Universal/ClassCards/Sniper/weapon_stats.tres +++ b/PCs/Universal/ClassCards/Sniper/weapon_stats.tres @@ -16,7 +16,7 @@ value = 30.0 [sub_resource type="Resource" id="Resource_28kyj"] script = ExtResource("1_7xbx2") key = "Range" -value = 50.0 +value = 100.0 [resource] script = ExtResource("1_t3oy2") diff --git a/PCs/hero.gd b/PCs/hero.gd index 8b6423d..d5eb983 100644 --- a/PCs/hero.gd +++ b/PCs/hero.gd @@ -21,12 +21,13 @@ signal died @export var hud : HUD @export var movement : PlayerMovement @export var sprint_zoom_speed := 0.2 +@export var player_name_tag : Label var equipped_card : Card var weapon : Weapon var paused := false var editing_mode := true -var profile: PlayerProfile +var profile : PlayerProfile var ready_state := false : set(value): ready_state = value @@ -49,6 +50,7 @@ func _ready() -> void: right_hand_animator.speed_scale = 0 camera.make_current() sprite.queue_free() + player_name_tag.queue_free() else: camera.set_visible(false) gun_camera.set_visible(false) @@ -56,7 +58,7 @@ func _ready() -> void: if weapon != null: weapon.set_raycast_origin(camera) inventory.contents.append_array(hero_class.deck) - sprite.texture = hero_class.texture + sprite.texture.atlas = hero_class.texture check_left_hand_valid() Input.mouse_mode = Input.MOUSE_MODE_CAPTURED diff --git a/PCs/hero.tscn b/PCs/hero.tscn index a5dbe10..d74e57a 100644 --- a/PCs/hero.tscn +++ b/PCs/hero.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=28 format=3 uid="uid://dxgxbtf68lcv5"] +[gd_scene load_steps=30 format=3 uid="uid://dxgxbtf68lcv5"] [ext_resource type="Script" path="res://PCs/hero.gd" id="1_pihpe"] [ext_resource type="Resource" uid="uid://b5pc3frhx467q" path="res://PCs/Red/red.tres" id="2_dbyo0"] @@ -8,7 +8,7 @@ [ext_resource type="PackedScene" uid="uid://dixtx38u4jhd7" path="res://Scenes/UI/card_hand.tscn" id="4_mwtvp"] [ext_resource type="PackedScene" uid="uid://dqt1ggtkpkuhs" path="res://Scenes/gauntlet.tscn" id="5_jlxb3"] [ext_resource type="Script" path="res://Scripts/inventory.gd" id="6_cf5ap"] -[ext_resource type="Texture2D" uid="uid://hxev3a2ktya" path="res://Assets/TextureAtlases/red.tres" id="6_loffy"] +[ext_resource type="Texture2D" uid="uid://cjqxkraykhxxk" path="res://PCs/Red/red.png" id="6_yyp8i"] [ext_resource type="Texture2D" uid="uid://d0btebva6djdl" path="res://Assets/Textures/crosshair.png" id="8_fq3f6"] [ext_resource type="Script" path="res://Scripts/HUD.gd" id="8_yl6ka"] [ext_resource type="Script" path="res://Scripts/on_top_camera.gd" id="11_4sdwe"] @@ -22,6 +22,11 @@ [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_jbu13"] +[sub_resource type="AtlasTexture" id="AtlasTexture_oyv4e"] +resource_local_to_scene = true +atlas = ExtResource("6_yyp8i") +region = Rect2(0, 0, 96, 96) + [sub_resource type="Environment" id="Environment_ekmug"] [sub_resource type="Animation" id="Animation_2q50p"] @@ -54,7 +59,10 @@ viewport_path = NodePath("SubViewport") [sub_resource type="ViewportTexture" id="ViewportTexture_574jy"] viewport_path = NodePath("MiniMapViewport") -[node name="Character" type="CharacterBody3D" node_paths=PackedStringArray("camera", "gun_camera", "left_hand", "right_hand", "right_hand_animator", "edit_tool", "gauntlet_sprite", "sprite", "interaction_raycast", "inventory", "card", "hud", "movement")] +[sub_resource type="ViewportTexture" id="ViewportTexture_m3ots"] +viewport_path = NodePath("Nametag") + +[node name="Character" type="CharacterBody3D" node_paths=PackedStringArray("camera", "gun_camera", "left_hand", "right_hand", "right_hand_animator", "edit_tool", "gauntlet_sprite", "sprite", "interaction_raycast", "inventory", "card", "hud", "movement", "player_name_tag")] collision_layer = 2 collision_mask = 37 script = ExtResource("1_pihpe") @@ -73,6 +81,7 @@ card = NodePath("SubViewport/Head2/LeftHand/SubViewport/Node2D") pause_menu_scene = ExtResource("3_avnsx") hud = NodePath("HUD") movement = NodePath("PlayerMovement") +player_name_tag = NodePath("Nametag/Label") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) @@ -94,7 +103,7 @@ collision_mask = 24 [node name="EightDirectionSprite" parent="." instance=ExtResource("2_ib0t5")] transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0.915529, 0) -texture = ExtResource("6_loffy") +texture = SubResource("AtlasTexture_oyv4e") [node name="Inventory" type="Node" parent="."] script = ExtResource("6_cf5ap") @@ -130,12 +139,12 @@ transform = Transform3D(0.235, 0, 0, 0, 0.235, 0, 0, 0, 0.235, -0.665, -0.275, - [node name="SubViewport" type="SubViewport" parent="SubViewport/Head2/LeftHand"] transparent_bg = true -size = Vector2i(192, 192) render_target_update_mode = 4 [node name="Node2D" parent="SubViewport/Head2/LeftHand/SubViewport" instance=ExtResource("4_mwtvp")] [node name="Sprite3D" type="Sprite3D" parent="SubViewport/Head2/LeftHand"] +transform = Transform3D(0.45, 0, 0, 0, 0.45, 0, 0, 0, 0.45, 0.2, 0.19, 0) layers = 2 texture_filter = 0 texture = SubResource("ViewportTexture_8f12g") @@ -168,20 +177,6 @@ hover_text = NodePath("Label2") enemy_sprites = [NodePath("TextureRect4/TextureRect"), NodePath("TextureRect4/TextureRect2"), NodePath("TextureRect4/TextureRect3"), NodePath("TextureRect4/TextureRect4"), NodePath("TextureRect4/TextureRect5")] enemy_counts = [NodePath("TextureRect4/TextureRect/Label"), NodePath("TextureRect4/TextureRect2/Label2"), NodePath("TextureRect4/TextureRect3/Label3"), NodePath("TextureRect4/TextureRect4/Label4"), NodePath("TextureRect4/TextureRect5/Label5")] -[node name="WaveCount" type="Label" parent="HUD"] -anchors_preset = 5 -anchor_left = 0.5 -anchor_right = 0.5 -offset_left = -30.0 -offset_top = 83.0 -offset_right = 30.0 -offset_bottom = 26.0 -grow_horizontal = 2 -theme_override_colors/font_color = Color(0, 0, 0, 1) -text = "1" -horizontal_alignment = 1 -vertical_alignment = 1 - [node name="EnemyCount" type="Label" parent="HUD"] visible = false offset_left = 10.0 @@ -434,6 +429,20 @@ text = "Press button to do thing" horizontal_alignment = 1 vertical_alignment = 1 +[node name="WaveCount" type="Label" parent="HUD"] +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -30.0 +offset_top = 83.0 +offset_right = 30.0 +offset_bottom = 109.0 +grow_horizontal = 2 +theme_override_colors/font_color = Color(0, 0, 0, 1) +text = "1" +horizontal_alignment = 1 +vertical_alignment = 1 + [node name="MinimapIcon" type="Sprite3D" parent="."] transform = Transform3D(4, 0, 0, 0, 0.0698095, 3.99939, 0, -3.99939, 0.0698095, 0, 2.86288, 0) layers = 4 @@ -444,3 +453,28 @@ texture = ExtResource("15_nhlam") script = ExtResource("20_cfhw8") player = NodePath("..") head = NodePath("../Head") + +[node name="Nametag" type="SubViewport" parent="."] +transparent_bg = true +size = Vector2i(300, 40) +render_target_update_mode = 4 + +[node name="Label" type="Label" parent="Nametag"] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +text = "QUITE LONG PLAYER NAME" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Sprite3D" type="Sprite3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) +layers = 5 +sorting_offset = 500.0 +pixel_size = 0.002 +billboard = 1 +no_depth_test = true +fixed_size = true +texture = SubResource("ViewportTexture_m3ots") diff --git a/Scenes/Menus/options_menu.tscn b/Scenes/Menus/options_menu.tscn index 864076f..0ea02ed 100644 --- a/Scenes/Menus/options_menu.tscn +++ b/Scenes/Menus/options_menu.tscn @@ -5,7 +5,7 @@ [sub_resource type="ImageTexture" id="ImageTexture_03x6q"] -[node name="OptionsMenu" type="PanelContainer" node_paths=PackedStringArray("look_sens_slider", "look_sens_input", "toggle_sprint_checkbox", "vsync_dropdown", "aa_dropdown", "window_dropdown", "invert_lookY", "invert_lookX", "fov_input", "fov_slider", "fixed_minimap")] +[node name="OptionsMenu" type="PanelContainer" node_paths=PackedStringArray("look_sens_slider", "look_sens_input", "toggle_sprint_checkbox", "vsync_dropdown", "aa_dropdown", "window_dropdown", "invert_lookY", "invert_lookX", "fov_input", "fov_slider", "fixed_minimap", "tower_damage", "self_damage", "party_damage")] anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 @@ -28,6 +28,9 @@ invert_lookX = NodePath("VBoxContainer/TabContainer/Gameplay/InvertMouseX/Center fov_input = NodePath("VBoxContainer/TabContainer/Graphics/FOV/HBoxContainer/SpinBox") fov_slider = NodePath("VBoxContainer/TabContainer/Graphics/FOV/HBoxContainer/HSlider") fixed_minimap = NodePath("VBoxContainer/TabContainer/Gameplay/FixedMinimap/CenterContainer/CheckButton") +tower_damage = NodePath("VBoxContainer/TabContainer/Gameplay/FloatingDamageIndicators/CenterContainer/HBoxContainer/Button") +self_damage = NodePath("VBoxContainer/TabContainer/Gameplay/FloatingDamageIndicators/CenterContainer/HBoxContainer/Button2") +party_damage = NodePath("VBoxContainer/TabContainer/Gameplay/FloatingDamageIndicators/CenterContainer/HBoxContainer/Button3") [node name="VBoxContainer" type="VBoxContainer" parent="."] layout_mode = 2 @@ -139,6 +142,47 @@ size_flags_horizontal = 3 [node name="CheckButton" type="CheckButton" parent="VBoxContainer/TabContainer/Gameplay/FixedMinimap/CenterContainer"] layout_mode = 2 +[node name="FloatingDamageIndicators" type="HBoxContainer" parent="VBoxContainer/TabContainer/Gameplay"] +layout_mode = 2 + +[node name="Label" type="Label" parent="VBoxContainer/TabContainer/Gameplay/FloatingDamageIndicators"] +layout_mode = 2 +size_flags_horizontal = 3 +text = "Floating Damage Indicators" +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="CenterContainer" type="CenterContainer" parent="VBoxContainer/TabContainer/Gameplay/FloatingDamageIndicators"] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/TabContainer/Gameplay/FloatingDamageIndicators/CenterContainer"] +layout_mode = 2 + +[node name="Button" type="Button" parent="VBoxContainer/TabContainer/Gameplay/FloatingDamageIndicators/CenterContainer/HBoxContainer"] +layout_mode = 2 +toggle_mode = true +button_pressed = true +text = "Tower Damage" + +[node name="Button2" type="Button" parent="VBoxContainer/TabContainer/Gameplay/FloatingDamageIndicators/CenterContainer/HBoxContainer"] +layout_mode = 2 +toggle_mode = true +button_pressed = true +text = "Self Damage" + +[node name="Button3" type="Button" parent="VBoxContainer/TabContainer/Gameplay/FloatingDamageIndicators/CenterContainer/HBoxContainer"] +layout_mode = 2 +toggle_mode = true +button_pressed = true +text = "Party Damage" + +[node name="Button4" type="Button" parent="VBoxContainer/TabContainer/Gameplay/FloatingDamageIndicators/CenterContainer/HBoxContainer"] +layout_mode = 2 +toggle_mode = true +button_pressed = true +text = "Status Effect Damage" + [node name="Graphics" type="VBoxContainer" parent="VBoxContainer/TabContainer"] visible = false layout_mode = 2 diff --git a/Scenes/Projectiles/status_applying_projectile.tscn b/Scenes/Projectiles/status_applying_projectile.tscn index 2bb9760..77e9bca 100644 --- a/Scenes/Projectiles/status_applying_projectile.tscn +++ b/Scenes/Projectiles/status_applying_projectile.tscn @@ -4,6 +4,5 @@ [ext_resource type="Script" path="res://Scripts/Projectiles/status_applying_projectile.gd" id="2_4p44n"] [node name="StatusApplyingProjectile" instance=ExtResource("1_atrjq")] -max_contacts_reported = 0 script = ExtResource("2_4p44n") status_stats = null diff --git a/Scenes/Towers/status_applying_tower.tscn b/Scenes/Towers/status_applying_tower.tscn new file mode 100644 index 0000000..41566c5 --- /dev/null +++ b/Scenes/Towers/status_applying_tower.tscn @@ -0,0 +1,8 @@ +[gd_scene load_steps=3 format=3 uid="uid://dxwtlvv632ae8"] + +[ext_resource type="PackedScene" uid="uid://dumiyjlnea4gq" path="res://Scenes/Towers/hitscan_tower.tscn" id="1_suc1i"] +[ext_resource type="Script" path="res://Scripts/Towers/status_applying_tower.gd" id="2_rd0fq"] + +[node name="StatusApplyingTower" instance=ExtResource("1_suc1i")] +script = ExtResource("2_rd0fq") +status_stats = null diff --git a/Scenes/UI/card_hand.tscn b/Scenes/UI/card_hand.tscn index 1113419..4d01a84 100644 --- a/Scenes/UI/card_hand.tscn +++ b/Scenes/UI/card_hand.tscn @@ -4,42 +4,59 @@ [ext_resource type="Texture2D" uid="uid://dlqnhs8or4ik2" path="res://Assets/Textures/cardhand.png" id="1_d5oo3"] [ext_resource type="Texture2D" uid="uid://buf8t5gc7iw3a" path="res://Assets/TextureAtlases/rarityborders.tres" id="3_pclfx"] -[node name="Node2D" type="Node2D" node_paths=PackedStringArray("rarity_sprite", "title_text", "description")] +[node name="Node2D" type="Node2D" node_paths=PackedStringArray("rarity_sprite", "title_text", "description", "target_label")] script = ExtResource("1_2cfmh") rarity_sprite = NodePath("Sprite2D2") title_text = NodePath("Title") description = NodePath("Description") +target_label = NodePath("Title2") [node name="Sprite2D" type="Sprite2D" parent="."] texture_filter = 1 -position = Vector2(96, 96) -scale = Vector2(3, 3) +position = Vector2(256, 256) +scale = Vector2(8, 8) texture = ExtResource("1_d5oo3") [node name="Sprite2D2" type="Sprite2D" parent="."] texture_filter = 1 -position = Vector2(96, 96) -scale = Vector2(3, 3) +position = Vector2(256, 256) +scale = Vector2(8, 8) texture = ExtResource("3_pclfx") region_enabled = true region_rect = Rect2(0, 0, 64, 64) [node name="Title" type="Label" parent="."] -offset_left = 48.0 -offset_top = 20.0 -offset_right = 150.0 -offset_bottom = 46.0 +offset_left = 89.0 +offset_top = 56.0 +offset_right = 373.0 +offset_bottom = 96.0 theme_override_colors/font_color = Color(0, 0, 0, 1) -text = "spider queen" +theme_override_font_sizes/font_size = 27 +text = "Rocket Launcher 50" horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="Title2" type="Label" parent="."] +offset_left = 183.0 +offset_top = 424.0 +offset_right = 296.0 +offset_bottom = 464.0 +theme_override_colors/font_color = Color(0, 0, 0, 1) +theme_override_font_sizes/font_size = 27 +text = "Land +" +horizontal_alignment = 1 +vertical_alignment = 1 [node name="Description" type="RichTextLabel" parent="."] -offset_left = 66.0 -offset_top = 42.0 -offset_right = 167.0 -offset_bottom = 178.0 +offset_left = 107.0 +offset_top = 144.0 +offset_right = 357.0 +offset_bottom = 389.0 theme_override_colors/default_color = Color(0, 0, 0, 1) -theme_override_font_sizes/normal_font_size = 11 +theme_override_font_sizes/normal_font_size = 17 bbcode_enabled = true -text = "In here goes some card text that really be quite long sometimes if you're not really really careful to describe the card's effects concisely" +text = "In here goes some card text that really be quite long sometimes if you're not really really careful to describe the card's effects concisely + +In fact, sometimes its really really really rediculously long, when it needs to be and im too dumb to shorten it" fit_content = true diff --git a/Scenes/card_constructor.tscn b/Scenes/card_constructor.tscn index 963391e..e0d166c 100644 --- a/Scenes/card_constructor.tscn +++ b/Scenes/card_constructor.tscn @@ -45,21 +45,18 @@ shape = SubResource("BoxShape3D_0ebt5") [node name="SubViewport" type="SubViewport" parent="."] transparent_bg = true -size = Vector2i(192, 192) render_target_update_mode = 4 [node name="Node2D" parent="SubViewport" instance=ExtResource("2_7ouw1")] [node name="SubViewport2" type="SubViewport" parent="."] transparent_bg = true -size = Vector2i(192, 192) render_target_update_mode = 4 [node name="Node2D" parent="SubViewport2" instance=ExtResource("2_7ouw1")] [node name="SubViewport3" type="SubViewport" parent="."] transparent_bg = true -size = Vector2i(192, 192) render_target_update_mode = 4 [node name="Node2D" parent="SubViewport3" instance=ExtResource("2_7ouw1")] @@ -68,17 +65,17 @@ render_target_update_mode = 4 visible = false [node name="Sprite3D" type="Sprite3D" parent="Node3D"] -transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, -0.805106, 1.12938, 0.500052) +transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, -0.805106, 1.12938, 0.500052) texture_filter = 0 texture = SubResource("ViewportTexture_yf4je") [node name="Sprite3D2" type="Sprite3D" parent="Node3D"] -transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0.0180808, 1.12938, 0.500052) +transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0.0180808, 1.12938, 0.500052) texture_filter = 0 texture = SubResource("ViewportTexture_3q3h0") [node name="Sprite3D3" type="Sprite3D" parent="Node3D"] -transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0.843507, 1.12938, 0.500052) +transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0.843507, 1.12938, 0.500052) texture_filter = 0 texture = SubResource("ViewportTexture_vyyy4") diff --git a/Scripts/Projectiles/projectile.gd b/Scripts/Projectiles/projectile.gd index f99c693..31f35b8 100644 --- a/Scripts/Projectiles/projectile.gd +++ b/Scripts/Projectiles/projectile.gd @@ -10,6 +10,10 @@ var lifetime := 10.0 var time_alive := 0.0 +func _ready() -> void: + apply_central_impulse(direction * force) + + func _process(delta: float) -> void: time_alive += delta diff --git a/Scripts/Resources/card.gd b/Scripts/Resources/card.gd index 3f70e01..44ade20 100644 --- a/Scripts/Resources/card.gd +++ b/Scripts/Resources/card.gd @@ -6,7 +6,7 @@ enum Faction {GENERIC = 0} @export var title : String @export var rarity : Data.Rarity @export var faction : Faction -@export var sprite : AtlasTexture +@export var sprite : Texture @export var turret_scene : PackedScene @export var weapon_scene : PackedScene @export var weapon_stats : CardText diff --git a/Scripts/Resources/hero_class.gd b/Scripts/Resources/hero_class.gd index 6b7d451..75dd9c3 100644 --- a/Scripts/Resources/hero_class.gd +++ b/Scripts/Resources/hero_class.gd @@ -2,5 +2,5 @@ extends Resource class_name HeroClass @export var hero_name : String = "Default" -@export var texture : AtlasTexture +@export var texture : Texture @export var deck : Array[Card] diff --git a/Scripts/Resources/player_preferences.gd b/Scripts/Resources/player_preferences.gd index 4e186ae..9ef494b 100644 --- a/Scripts/Resources/player_preferences.gd +++ b/Scripts/Resources/player_preferences.gd @@ -12,6 +12,10 @@ const SAVE_PATH := "user://preferences.tres" @export var windowed_mode := 0 @export var hfov := 100.0 @export var fixed_minimap := false +@export var display_tower_damage_indicators := true +@export var display_self_damage_indicators := true +@export var display_party_damage_indicators := true +@export var display_status_effect_damage_indicators := true func apply_graphical_settings(viewport): diff --git a/Scripts/StatusEffector.gd b/Scripts/StatusEffector.gd index d055e89..08cab45 100644 --- a/Scripts/StatusEffector.gd +++ b/Scripts/StatusEffector.gd @@ -55,6 +55,6 @@ func add_effect(new_effect : StatusEffect): existing_effect.on_attached(enemy, effects) icons[existing_effect].set_visible(true) effects[existing_effect] += 1 - existing_effect.time_existed = 0.0 + existing_effect.time_existed = 0.0 if existing_effect.stats.max_stacks != 0 and effects[existing_effect] > existing_effect.stats.max_stacks: effects[existing_effect] = existing_effect.stats.max_stacks diff --git a/Scripts/Towers/projectile_tower.gd b/Scripts/Towers/projectile_tower.gd index 5c05677..1d65c24 100644 --- a/Scripts/Towers/projectile_tower.gd +++ b/Scripts/Towers/projectile_tower.gd @@ -3,7 +3,7 @@ class_name ProjectileTower @export var projectile_scene : PackedScene -var force := 2.0 +var force := 20.0 var projectile_id := 0 diff --git a/Scripts/Towers/status_applying_tower.gd b/Scripts/Towers/status_applying_tower.gd new file mode 100644 index 0000000..0118846 --- /dev/null +++ b/Scripts/Towers/status_applying_tower.gd @@ -0,0 +1,22 @@ +extends HitscanTower +class_name StatusApplyingTower + +@export var status_stats : StatusStats + + +func shoot(): + super.shoot() + if targeted_enemy and is_instance_valid(targeted_enemy) and targeted_enemy.alive: + targeted_enemy.damage(damage) + targeted_enemy.status_manager.add_effect(build_status_object()) + + +func build_status_object() -> StatusEffect: + var status = StatusEffect.new() + status.stats = status_stats + return status + + +@rpc("reliable") +func networked_shoot(): + super.networked_shoot() diff --git a/Scripts/Weapons/hitscan_weapon.gd b/Scripts/Weapons/hitscan_weapon.gd index 624e75a..460d092 100644 --- a/Scripts/Weapons/hitscan_weapon.gd +++ b/Scripts/Weapons/hitscan_weapon.gd @@ -23,6 +23,8 @@ func shoot(): var target_hitbox = target.shape_owner_get_owner(raycast.get_collider_shape()) if target_hitbox is Hitbox: hit(target, target_hitbox) + if Data.preferences.display_self_damage_indicators: + spawn_damage_indicator(raycast.get_collision_point()) networked_hit.rpc(get_tree().root.get_path_to(target), get_tree().root.get_path_to(target_hitbox)) @@ -35,3 +37,5 @@ func networked_hit(target_path : String, target_hitbox_path : String): var target = get_tree().root.get_node(target_path) var target_hitbox = get_tree().root.get_node(target_hitbox_path) as Hitbox hit(target, target_hitbox) + if Data.preferences.display_party_damage_indicators: + spawn_damage_indicator(target.sprite.global_position) diff --git a/Scripts/Weapons/projectile_weapon.gd b/Scripts/Weapons/projectile_weapon.gd index 577a81c..22b40fd 100644 --- a/Scripts/Weapons/projectile_weapon.gd +++ b/Scripts/Weapons/projectile_weapon.gd @@ -3,23 +3,27 @@ class_name ProjectileWeapon @export var projectile_scene : PackedScene -var force := 2.0 +var force := 20.0 var projectile_id := 0 func shoot(): super.shoot() - var projectile = projectile_scene.instantiate() as Projectile - projectile.position = global_position - projectile.damage = damage - projectile.direction = -global_transform.basis.z - projectile.force = force - projectile.name = str(multiplayer.get_unique_id()) + str(projectile_id) - get_tree().root.add_child(projectile) - projectile_id += 1 + networked_spawn_projectile.rpc(multiplayer.get_unique_id(), -global_transform.basis.z) @rpc("reliable") func networked_shoot(): super.networked_shoot() - shoot() + + +@rpc("reliable", "call_local") +func networked_spawn_projectile(peer_id, direction): + var projectile = projectile_scene.instantiate() as Projectile + projectile.position = global_position + projectile.damage = damage + projectile.direction = direction + projectile.force = force + projectile.name = str(peer_id) + str(projectile_id) + get_tree().root.add_child(projectile) + projectile_id += 1 diff --git a/Scripts/Weapons/weapon.gd b/Scripts/Weapons/weapon.gd index 5e10fbd..50d8793 100644 --- a/Scripts/Weapons/weapon.gd +++ b/Scripts/Weapons/weapon.gd @@ -4,6 +4,7 @@ class_name Weapon @export var stats : CardText @export var animator : AnimationPlayer +var damage_particle_scene = preload("res://Scenes/damage_particle.tscn") var hero : Hero var trigger_held := false var second_trigger_held := false @@ -49,6 +50,14 @@ func release_second_trigger(): second_trigger_held = false +func spawn_damage_indicator(pos): + if damage > 0: + var marker = damage_particle_scene.instantiate() + get_tree().root.add_child(marker) + marker.set_number(damage) + marker.position = pos + + func shoot(): animator.play("shoot") diff --git a/Scripts/card_hand.gd b/Scripts/card_hand.gd index 5e5edb5..aab9f3d 100644 --- a/Scripts/card_hand.gd +++ b/Scripts/card_hand.gd @@ -5,10 +5,12 @@ var stats : Card @export var rarity_sprite : Sprite2D @export var title_text : Label @export var description : RichTextLabel +@export var target_label : Label func set_card(value): stats = value title_text.text = stats.title + target_label.text = str(Data.TargetType.keys()[stats.tower_stats.target_type]) rarity_sprite.region_rect = Rect2(64 * stats.rarity, 0, 64, 64) @@ -23,7 +25,9 @@ func process_card_text(card_text : CardText) -> String: func view_weapon(): description.text = process_card_text(stats.weapon_stats) + target_label.text = "Both" func view_tower(): description.text = process_card_text(stats.tower_stats) + target_label.text = str(stats.tower_stats.target_type) diff --git a/Scripts/card_printer.gd b/Scripts/card_printer.gd index 9dfa5d5..6a9cee3 100644 --- a/Scripts/card_printer.gd +++ b/Scripts/card_printer.gd @@ -33,6 +33,8 @@ func randomize_cards(): card = card_array.pick_random() card_array.erase(card) x.set_card(card) + #TODO: in reality this should just show the icon and then hovering over it lets you see either side at the players own discretion + x.view_tower() $Node3D.set_visible(true) for x in choice_colliders: x.disabled = false diff --git a/Scripts/data.gd b/Scripts/data.gd index b52086c..9ab9009 100644 --- a/Scripts/data.gd +++ b/Scripts/data.gd @@ -38,16 +38,16 @@ func _ready() -> void: cards.append(preload("res://PCs/Universal/ClassCards/Gatling/card_gatling.tres")) cards.append(preload("res://PCs/Universal/ClassCards/RocketLauncher/card_rocket_launcher.tres")) #Uncommon - #cards.append(preload("res://PCs/Universal/ClassCards/Blowdart/card_blowdart.tres")) + cards.append(preload("res://PCs/Universal/ClassCards/Blowdart/card_blowdart.tres")) #cards.append(preload("res://PCs/Universal/ClassCards/Refridgerator/card_refridgerator.tres")) - #cards.append(preload("res://PCs/Universal/ClassCards/GlueLauncher/card_glue_launcher.tres")) + cards.append(preload("res://PCs/Universal/ClassCards/GlueLauncher/card_glue_launcher.tres")) #Rare #cards.append(preload("res://PCs/Universal/ClassCards/Flamethrower/card_flamethrower.tres")) #cards.append(preload("res://PCs/Universal/ClassCards/DamageEnhancer/card_damage_enhancer.tres")) #cards.append(preload("res://PCs/Universal/ClassCards/SpeedEnhancer/card_speed_enhancer.tres")) #Epic - #cards.append(preload("res://PCs/Universal/ClassCards/Icicle/card_icicle.tres")) - #cards.append(preload("res://PCs/Universal/ClassCards/Fireball/card_fireball.tres")) + cards.append(preload("res://PCs/Universal/ClassCards/Icicle/card_icicle.tres")) + cards.append(preload("res://PCs/Universal/ClassCards/Fireball/card_fireball.tres")) #cards.append(preload("res://PCs/Universal/ClassCards/GammaLaser/card_gamma_laser.tres")) #Legendary cards.append(preload("res://PCs/Universal/ClassCards/Sniper/card_sniper.tres")) diff --git a/Scripts/edit_tool.gd b/Scripts/edit_tool.gd index 06beb90..631eb2d 100644 --- a/Scripts/edit_tool.gd +++ b/Scripts/edit_tool.gd @@ -95,6 +95,7 @@ func spawn_tower_preview(): last_card = card tower_preview = card.turret_scene.instantiate() as Tower tower_preview.stats = card.tower_stats + tower_preview.position = Vector3.UP tower_preview.preview_range(true) ray_collider.add_child(tower_preview) diff --git a/Scripts/game.gd b/Scripts/game.gd index e7b1143..9041fba 100644 --- a/Scripts/game.gd +++ b/Scripts/game.gd @@ -59,9 +59,11 @@ func spawn_players(player_array, player_profiles, chatbox_open_signal, chatbox_c for peer_id in player_array: var player = player_scene.instantiate() as Hero player.name = str(peer_id) + player.player_name_tag.text = player_profiles[peer_id].display_name player.position = level.player_spawns[p_i].global_position player.profile = player_profiles[peer_id] player.hero_class = Data.characters[player_profiles[peer_id].preferred_class] + print(player.hero_class.hero_name) player.ready_state_changed.connect(ready_player) if peer_id == multiplayer.get_unique_id(): chatbox_open_signal.connect(player.pause) @@ -152,14 +154,15 @@ func end_wave(): func remove_player(peer_id): - connected_players_nodes[peer_id].queue_free() - connected_players_nodes.erase(peer_id) + if connected_players_nodes.has(peer_id): + connected_players_nodes[peer_id].queue_free() + connected_players_nodes.erase(peer_id) func start_game(): game_active = true enemies = 0 - objective_health = 100 + objective_health = 120 wave = 0 level.a_star_graph_3d.make_grid() level.a_star_graph_3d.find_path() @@ -176,7 +179,7 @@ func restart_game(): connected_players_nodes.clear() level.queue_free() enemies = 0 - objective_health = 100 + objective_health = 120 wave = 0 spawn_level() game_restarted.emit() diff --git a/Scripts/health.gd b/Scripts/health.gd index be26e9b..d655d9b 100644 --- a/Scripts/health.gd +++ b/Scripts/health.gd @@ -10,11 +10,6 @@ signal health_changed(health) var current_health func take_damage(damage): - #var marker = damage_particle_scene.instantiate() - #get_tree().root.add_child(marker) - #marker.set_number(damage) - #marker.position = get_parent().global_position + Vector3.UP - current_health -= damage health_changed.emit(current_health) if current_health <= 0: diff --git a/Scripts/multiplayer_lobby.gd b/Scripts/multiplayer_lobby.gd index b6b952b..6aab1a2 100644 --- a/Scripts/multiplayer_lobby.gd +++ b/Scripts/multiplayer_lobby.gd @@ -28,11 +28,11 @@ func _ready(): func _on_player_connected(peer_id): add_player.rpc_id(peer_id, Data.player_profile.to_dict()) - if multiplayer.get_unique_id() == 1: - print("Player connected with id: " + str(peer_id)) func _on_player_disconnected(peer_id): + if chatbox: + chatbox.append_message("SERVER", connected_players_profiles[peer_id].display_name + " has disconnected!") connected_players_profiles.erase(peer_id) player_disconnected.emit(peer_id) @@ -115,6 +115,8 @@ func networked_edit_player_profile(peer_id, new_profile_dict): func add_player(new_player_profile_dict): var new_player_peer_id = multiplayer.get_remote_sender_id() var new_player_profile = PlayerProfile.from_dict(new_player_profile_dict) + if chatbox: + chatbox.append_message("SERVER", new_player_profile.display_name + " has connected!") connected_players_profiles[new_player_peer_id] = new_player_profile player_connected.emit(new_player_peer_id, new_player_profile) diff --git a/Scripts/options_menu.gd b/Scripts/options_menu.gd index dd08932..1229162 100644 --- a/Scripts/options_menu.gd +++ b/Scripts/options_menu.gd @@ -13,6 +13,10 @@ class_name OptionsMenu @export var fov_input : SpinBox @export var fov_slider : HSlider @export var fixed_minimap : CheckButton +@export var tower_damage : Button +@export var self_damage : Button +@export var party_damage : Button +@export var status_damage : Button var keybind_boxes = [] var keybind_buttons = {} var key_event @@ -31,7 +35,10 @@ func _ready(): fov_input.value = Data.preferences.hfov fov_slider.value = Data.preferences.hfov fixed_minimap.button_pressed = Data.preferences.fixed_minimap - + tower_damage.button_pressed = Data.preferences.display_tower_damage_indicators + self_damage.button_pressed = Data.preferences.display_self_damage_indicators + party_damage.button_pressed = Data.preferences.display_party_damage_indicators + status_damage.button_pressed = Data.preferences.display_status_effect_damage_indicators for index in Data.keymaps.size(): var map = Data.keymaps[index] var button = Button.new() @@ -85,6 +92,10 @@ func _on_confirm_pressed() -> void: Data.preferences.invert_lookY = invert_lookY.button_pressed Data.preferences.invert_lookX = invert_lookX.button_pressed Data.preferences.fixed_minimap = fixed_minimap.button_pressed + Data.preferences.display_tower_damage_indicators = tower_damage.button_pressed + Data.preferences.display_self_damage_indicators = self_damage.button_pressed + Data.preferences.display_party_damage_indicators = party_damage.button_pressed + Data.preferences.display_status_effect_damage_indicators = status_damage.button_pressed Data.preferences.apply_graphical_settings(get_viewport()) Data.preferences.save_profile_to_disk() Data.player_keymap.save_profile_to_disk() diff --git a/Scripts/wave_manager.gd b/Scripts/wave_manager.gd index fe5168b..0d16ef4 100644 --- a/Scripts/wave_manager.gd +++ b/Scripts/wave_manager.gd @@ -7,7 +7,7 @@ func calculate_spawn_power(wave_number : int, number_of_players : int) -> int: func generate_wave(spawn_power : int, spawn_pool : Array[Enemy]) -> Dictionary: var wave = {} - var sp_used = 0 + #var sp_used = 0 var enemy_types = randi_range(1, 5) var enemy_choices = spawn_pool.duplicate() var sp_allotment = floori(spawn_power / enemy_types) @@ -16,6 +16,6 @@ func generate_wave(spawn_power : int, spawn_pool : Array[Enemy]) -> Dictionary: enemy_choices.erase(choice) if sp_allotment / choice.spawn_power > 0: wave[Data.enemies.find(choice)] = sp_allotment / choice.spawn_power - sp_used += wave[Data.enemies.find(choice)] * choice.spawn_power - print("tried to generate wave with " + str(spawn_power) + " spawn power, used " + str(sp_used)) + #sp_used += wave[Data.enemies.find(choice)] * choice.spawn_power + #print("Generated wave with spawn power: " + str(sp_used) + "/" + str(spawn_power)) return wave diff --git a/Worlds/GreenPlanet/Enemies/air_enemy.tscn b/Worlds/GreenPlanet/Enemies/air_enemy.tscn index 62ae9ad..d02be08 100644 --- a/Worlds/GreenPlanet/Enemies/air_enemy.tscn +++ b/Worlds/GreenPlanet/Enemies/air_enemy.tscn @@ -1,6 +1,7 @@ -[gd_scene load_steps=12 format=3 uid="uid://bjo2q6vca5qlv"] +[gd_scene load_steps=13 format=3 uid="uid://bjo2q6vca5qlv"] [ext_resource type="Script" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_m83kr"] +[ext_resource type="Gradient" uid="uid://dx7auy3oqw82t" path="res://health_bar_gradient.tres" id="2_ql1oc"] [ext_resource type="Script" path="res://Scripts/health.gd" id="3_wiose"] [ext_resource type="PackedScene" uid="uid://cqtew0t8sttpm" path="res://Scenes/damage_particle.tscn" id="4_mhq3m"] [ext_resource type="Script" path="res://Scripts/hitbox.gd" id="5_433ie"] @@ -24,6 +25,7 @@ status_manager = NodePath("StatusEffector") movement_controller = NodePath("BeeliningController") health = NodePath("Health") sprite = NodePath("DirectionSprite") +health_bar_gradient = ExtResource("2_ql1oc") [node name="Health" type="Node" parent="."] script = ExtResource("3_wiose") @@ -42,6 +44,7 @@ texture = ExtResource("6_ke2c8") [node name="Sprite3D" type="Sprite3D" parent="."] transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 1.15918, 0) +sorting_offset = 1.0 pixel_size = 0.02 billboard = 1 texture_filter = 0 diff --git a/Worlds/GreenPlanet/Enemies/dog_heavy.tres b/Worlds/GreenPlanet/Enemies/dog_heavy.tres index d643aff..ba76637 100644 --- a/Worlds/GreenPlanet/Enemies/dog_heavy.tres +++ b/Worlds/GreenPlanet/Enemies/dog_heavy.tres @@ -12,6 +12,6 @@ icon = ExtResource("1_lck53") sprite = ExtResource("2_7nc4x") spawn_power = 14 health = 350 -penalty = 10 +penalty = 15 movement_speed = 0.8 spawn_cooldown = 2.0 diff --git a/Worlds/GreenPlanet/Enemies/enemy_controller.gd b/Worlds/GreenPlanet/Enemies/enemy_controller.gd index 5b06599..cfd2fde 100644 --- a/Worlds/GreenPlanet/Enemies/enemy_controller.gd +++ b/Worlds/GreenPlanet/Enemies/enemy_controller.gd @@ -9,6 +9,7 @@ signal died(enemy) @export var movement_controller : EnemyMovement @export var health : Health @export var sprite : Sprite3D +@export var health_bar_gradient : Gradient var movement_speed var movement_speed_penalty := 1.0 @@ -45,5 +46,5 @@ func die(): func _on_health_health_changed(value) -> void: $SubViewport/ProgressBar.value = value var percent = float(health.current_health) / float(health.max_health) - $SubViewport/ProgressBar.tint_progress = Color(1 - percent, percent, 0.0) + $SubViewport/ProgressBar.tint_progress = health_bar_gradient.sample(percent) $SubViewport/ProgressBar.set_visible(true) diff --git a/Worlds/GreenPlanet/Enemies/land_enemy.tscn b/Worlds/GreenPlanet/Enemies/land_enemy.tscn index 30c62a2..a2780bf 100644 --- a/Worlds/GreenPlanet/Enemies/land_enemy.tscn +++ b/Worlds/GreenPlanet/Enemies/land_enemy.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=14 format=3 uid="uid://b0nady5xm88bo"] +[gd_scene load_steps=15 format=3 uid="uid://b0nady5xm88bo"] [ext_resource type="Script" path="res://Worlds/GreenPlanet/Enemies/enemy_controller.gd" id="1_fwsjt"] [ext_resource type="Script" path="res://Scripts/hitbox.gd" id="2_j8yin"] +[ext_resource type="Gradient" uid="uid://dx7auy3oqw82t" path="res://health_bar_gradient.tres" id="2_jn5to"] [ext_resource type="PackedScene" uid="uid://ri8r03wqy80t" path="res://Scenes/8_direction_sprite.tscn" id="2_o7jmg"] [ext_resource type="Script" path="res://Scripts/health.gd" id="2_swu53"] [ext_resource type="Texture2D" uid="uid://dj13g1w14mekw" path="res://Assets/Textures/eye_dog.png" id="3_naknq"] @@ -13,7 +14,7 @@ [sub_resource type="SphereShape3D" id="SphereShape3D_21dgw"] -[sub_resource type="AtlasTexture" id="AtlasTexture_sn7du"] +[sub_resource type="AtlasTexture" id="AtlasTexture_s4568"] resource_local_to_scene = true atlas = ExtResource("3_naknq") region = Rect2(0, 0, 32, 32) @@ -29,6 +30,7 @@ status_manager = NodePath("StatusEffector") movement_controller = NodePath("PathingController") health = NodePath("Health") sprite = NodePath("DirectionSprite") +health_bar_gradient = ExtResource("2_jn5to") [node name="Health" type="Node" parent="."] script = ExtResource("2_swu53") @@ -42,10 +44,11 @@ script = ExtResource("2_j8yin") [node name="DirectionSprite" parent="." instance=ExtResource("2_o7jmg")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.642479, 0) pixel_size = 0.04 -texture = SubResource("AtlasTexture_sn7du") +texture = SubResource("AtlasTexture_s4568") [node name="Sprite3D" type="Sprite3D" parent="."] transform = Transform3D(0.2, 0, 0, 0, 0.2, 0, 0, 0, 0.2, 0, 1.20821, 0) +sorting_offset = 1.0 pixel_size = 0.02 billboard = 1 texture_filter = 0 diff --git a/Worlds/GreenPlanet/Levels/first_level.tscn b/Worlds/GreenPlanet/Levels/first_level.tscn index ddb9c03..63339a9 100644 --- a/Worlds/GreenPlanet/Levels/first_level.tscn +++ b/Worlds/GreenPlanet/Levels/first_level.tscn @@ -15,15 +15,20 @@ [ext_resource type="Script" path="res://Scripts/visualized_path.gd" id="11_d7ofl"] [ext_resource type="MeshLibrary" uid="uid://jfr8j8kycfa5" path="res://Worlds/GreenPlanet/tilemap.tres" id="12_ywwug"] -[sub_resource type="PhysicalSkyMaterial" id="PhysicalSkyMaterial_h1csw"] -energy_multiplier = 3.0 +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_w6p0p"] +sky_top_color = Color(0.333333, 0.447059, 0.658824, 1) +sky_curve = 0.0349887 [sub_resource type="Sky" id="Sky_t42h5"] -sky_material = SubResource("PhysicalSkyMaterial_h1csw") +sky_material = SubResource("ProceduralSkyMaterial_w6p0p") [sub_resource type="Environment" id="Environment_l41d0"] background_mode = 2 sky = SubResource("Sky_t42h5") +ssao_radius = 0.01 +fog_light_energy = 1.1 +fog_density = 0.0416 +adjustment_contrast = 2.18 [sub_resource type="BoxShape3D" id="BoxShape3D_awjk1"] @@ -92,6 +97,7 @@ enemy_path = NodePath("../Enemies") transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, 25.1496, 0.499996, 5.79039) [node name="Trees" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.02, 0) [node name="Tree" parent="Trees" instance=ExtResource("10_7v1co")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -24.9581, 0.5, -4.16029) @@ -535,7 +541,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 1) [node name="AStarGraph3D" type="Node3D" parent="." node_paths=PackedStringArray("start", "end", "spawner", "visualized_path", "tower_path")] script = ExtResource("11_07ukk") -grid_size = Vector2(19, 9) +grid_size = Vector2i(19, 9) point_gap = 1.5 start = NodePath("../GroundSpawn") end = NodePath("../EnemyGoal") diff --git a/Worlds/GreenPlanet/tilemap.tres b/Worlds/GreenPlanet/tilemap.tres index e426bc4..e68523a 100644 --- a/Worlds/GreenPlanet/tilemap.tres +++ b/Worlds/GreenPlanet/tilemap.tres @@ -11,7 +11,7 @@ texture_filter = 0 material = SubResource("StandardMaterial3D_ulcfh") orientation = 1 -[sub_resource type="Image" id="Image_jqni1"] +[sub_resource type="Image" id="Image_nskyb"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 179, 90, 255, 95, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 61, 129, 57, 255, 74, 149, 70, 255, 95, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 179, 90, 255, 95, 179, 90, 255, 74, 149, 70, 255, 74, 149, 70, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 60, 129, 57, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 60, 129, 57, 255, 60, 129, 57, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 129, 57, 255, 95, 179, 90, 255, 95, 179, 90, 255, 60, 128, 57, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 74, 149, 70, 255, 74, 149, 70, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 74, 148, 70, 255, 74, 148, 70, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 149, 70, 255, 74, 149, 70, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 95, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 60, 128, 56, 255, 74, 148, 70, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 60, 128, 56, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 74, 148, 70, 255, 74, 148, 70, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 74, 148, 70, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 60, 128, 56, 255, 74, 148, 70, 255, 74, 148, 70, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 74, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 179, 90, 255, 60, 128, 56, 255, 94, 179, 90, 255, 94, 179, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 74, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 60, 128, 56, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 73, 148, 69, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 60, 128, 56, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 73, 148, 69, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 60, 128, 56, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 73, 148, 69, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 128, 56, 255, 60, 128, 56, 255, 73, 147, 69, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 90, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 128, 56, 255, 60, 128, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 73, 147, 69, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 60, 128, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 128, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 128, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 60, 128, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 127, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 128, 56, 255, 73, 147, 69, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 60, 127, 56, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 60, 127, 56, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 73, 147, 69, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 59, 127, 56, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 59, 127, 56, 255, 73, 147, 69, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 178, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 59, 127, 56, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 73, 147, 69, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 59, 127, 56, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 59, 127, 56, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 59, 127, 56, 255, 73, 147, 69, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 73, 147, 69, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 94, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 59, 127, 56, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 69, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 69, 255, 73, 147, 69, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 127, 56, 255, 73, 147, 69, 255, 73, 147, 69, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 59, 127, 55, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 59, 127, 55, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 68, 255, 73, 147, 68, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 73, 147, 68, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 59, 127, 55, 255, 59, 127, 55, 255, 73, 147, 68, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 93, 177, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 146, 68, 255, 72, 146, 68, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -21,7 +21,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_p1rdv"] -image = SubResource("Image_jqni1") +image = SubResource("Image_nskyb") [sub_resource type="BoxShape3D" id="BoxShape3D_mtfk2"] @@ -32,7 +32,7 @@ albedo_texture = ExtResource("1_sntky") material = SubResource("StandardMaterial3D_jnpkd") orientation = 1 -[sub_resource type="Image" id="Image_6qi5f"] +[sub_resource type="Image" id="Image_kf41u"] data = { "data": PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 100, 92, 255, 103, 106, 99, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 104, 97, 255, 110, 113, 108, 255, 117, 120, 115, 255, 112, 115, 110, 255, 106, 109, 103, 255, 101, 105, 97, 255, 105, 107, 99, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 112, 107, 255, 106, 109, 103, 255, 101, 105, 98, 255, 98, 103, 96, 255, 106, 109, 103, 255, 105, 109, 102, 255, 104, 107, 100, 255, 105, 105, 98, 255, 102, 102, 94, 255, 103, 103, 96, 255, 107, 107, 100, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 98, 92, 255, 107, 106, 100, 255, 106, 106, 99, 255, 105, 107, 101, 255, 108, 110, 104, 255, 114, 116, 111, 255, 114, 117, 112, 255, 109, 111, 105, 255, 109, 109, 102, 255, 108, 107, 100, 255, 103, 104, 96, 255, 103, 103, 95, 255, 106, 105, 98, 255, 108, 108, 101, 255, 109, 109, 103, 255, 106, 108, 103, 255, 103, 105, 100, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 108, 101, 255, 104, 104, 98, 255, 93, 94, 88, 255, 91, 92, 86, 255, 94, 95, 89, 255, 99, 100, 94, 255, 108, 107, 101, 255, 101, 102, 94, 255, 94, 96, 87, 255, 94, 96, 87, 255, 96, 97, 88, 255, 102, 102, 94, 255, 104, 104, 97, 255, 107, 107, 100, 255, 108, 109, 103, 255, 110, 111, 107, 255, 110, 112, 108, 255, 107, 109, 104, 255, 94, 97, 91, 255, 83, 87, 78, 255, 84, 88, 79, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 93, 255, 99, 100, 94, 255, 92, 94, 88, 255, 92, 93, 87, 255, 93, 95, 88, 255, 96, 97, 91, 255, 95, 96, 90, 255, 88, 90, 82, 255, 80, 83, 75, 255, 74, 78, 69, 255, 77, 81, 72, 255, 83, 86, 77, 255, 86, 89, 80, 255, 88, 91, 81, 255, 92, 94, 85, 255, 100, 102, 95, 255, 105, 107, 102, 255, 108, 110, 105, 255, 104, 106, 101, 255, 95, 98, 92, 255, 86, 89, 81, 255, 83, 87, 78, 255, 81, 86, 76, 255, 89, 93, 83, 255, 98, 102, 92, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 97, 255, 101, 101, 97, 255, 103, 104, 99, 255, 98, 99, 94, 255, 93, 93, 87, 255, 90, 90, 84, 255, 81, 83, 78, 255, 84, 87, 80, 255, 85, 88, 79, 255, 83, 87, 77, 255, 78, 81, 73, 255, 72, 76, 68, 255, 66, 71, 63, 255, 69, 73, 66, 255, 68, 71, 66, 255, 67, 69, 66, 255, 74, 76, 72, 255, 83, 86, 80, 255, 93, 96, 90, 255, 95, 98, 91, 255, 97, 100, 94, 255, 102, 105, 97, 255, 100, 103, 93, 255, 103, 106, 96, 255, 106, 108, 99, 255, 109, 111, 102, 255, 105, 107, 98, 255, 98, 101, 91, 255, 101, 105, 94, 255, 113, 115, 107, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 99, 94, 255, 101, 101, 97, 255, 99, 100, 95, 255, 99, 100, 96, 255, 102, 103, 99, 255, 92, 92, 86, 255, 88, 87, 81, 255, 91, 92, 86, 255, 91, 94, 87, 255, 84, 88, 81, 255, 73, 77, 70, 255, 70, 74, 66, 255, 71, 75, 67, 255, 71, 76, 69, 255, 72, 75, 71, 255, 72, 74, 71, 255, 73, 75, 73, 255, 69, 71, 69, 255, 66, 69, 66, 255, 72, 74, 72, 255, 77, 79, 75, 255, 89, 92, 85, 255, 98, 102, 93, 255, 102, 105, 95, 255, 109, 111, 101, 255, 114, 116, 106, 255, 111, 113, 104, 255, 105, 108, 98, 255, 110, 113, 104, 255, 124, 127, 122, 255, 125, 128, 123, 255, 127, 130, 125, 255, 123, 126, 120, 255, 118, 121, 113, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 107, 101, 255, 106, 104, 97, 255, 99, 99, 92, 255, 99, 100, 94, 255, 99, 100, 95, 255, 102, 102, 98, 255, 98, 99, 95, 255, 88, 88, 82, 255, 85, 84, 78, 255, 85, 84, 78, 255, 88, 89, 83, 255, 87, 87, 81, 255, 83, 83, 76, 255, 78, 80, 73, 255, 82, 84, 79, 255, 81, 83, 80, 255, 76, 78, 75, 255, 80, 83, 80, 255, 84, 86, 84, 255, 86, 88, 85, 255, 89, 92, 89, 255, 89, 92, 87, 255, 91, 95, 89, 255, 92, 96, 90, 255, 93, 97, 91, 255, 98, 101, 94, 255, 107, 109, 102, 255, 112, 114, 105, 255, 111, 114, 106, 255, 106, 111, 101, 255, 101, 106, 94, 255, 105, 110, 98, 255, 114, 119, 110, 255, 123, 127, 120, 255, 125, 128, 123, 255, 112, 116, 107, 255, 101, 104, 91, 255, 104, 109, 96, 255, 106, 110, 99, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 112, 105, 255, 113, 111, 104, 255, 111, 108, 102, 255, 116, 114, 106, 255, 122, 120, 111, 255, 126, 124, 114, 255, 120, 119, 109, 255, 105, 105, 98, 255, 95, 97, 91, 255, 89, 90, 84, 255, 90, 91, 85, 255, 92, 95, 88, 255, 90, 91, 85, 255, 85, 85, 79, 255, 84, 85, 77, 255, 84, 87, 77, 255, 85, 89, 78, 255, 89, 93, 82, 255, 83, 87, 78, 255, 79, 83, 76, 255, 79, 81, 77, 255, 82, 85, 81, 255, 90, 94, 89, 255, 97, 101, 96, 255, 102, 105, 100, 255, 97, 100, 95, 255, 89, 94, 87, 255, 93, 97, 91, 255, 100, 103, 98, 255, 97, 101, 94, 255, 98, 102, 95, 255, 104, 108, 100, 255, 110, 114, 106, 255, 122, 125, 119, 255, 121, 125, 118, 255, 120, 124, 117, 255, 107, 111, 101, 255, 96, 100, 86, 255, 96, 99, 85, 255, 96, 99, 85, 255, 105, 109, 95, 255, 112, 117, 104, 255, 114, 119, 106, 255, 106, 110, 99, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 101, 96, 255, 109, 107, 101, 255, 118, 116, 108, 255, 122, 120, 111, 255, 117, 116, 108, 255, 120, 119, 110, 255, 125, 123, 113, 255, 119, 118, 110, 255, 107, 108, 102, 255, 94, 97, 90, 255, 85, 88, 82, 255, 88, 90, 84, 255, 93, 95, 89, 255, 95, 98, 92, 255, 96, 97, 90, 255, 92, 95, 85, 255, 95, 98, 88, 255, 96, 99, 89, 255, 91, 95, 84, 255, 86, 90, 79, 255, 89, 93, 82, 255, 95, 98, 89, 255, 92, 95, 88, 255, 91, 94, 87, 255, 90, 94, 87, 255, 90, 94, 88, 255, 94, 98, 93, 255, 99, 102, 97, 255, 101, 103, 99, 255, 89, 91, 84, 255, 84, 87, 78, 255, 86, 89, 80, 255, 93, 96, 88, 255, 100, 104, 96, 255, 104, 109, 100, 255, 106, 109, 102, 255, 109, 112, 103, 255, 108, 113, 101, 255, 104, 108, 96, 255, 101, 104, 91, 255, 99, 103, 89, 255, 105, 109, 96, 255, 110, 115, 102, 255, 111, 115, 103, 255, 111, 116, 104, 255, 97, 100, 90, 255, 88, 90, 81, 255, 83, 84, 77, 255, 81, 83, 75, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 102, 104, 95, 255, 105, 106, 97, 255, 118, 117, 110, 255, 121, 120, 112, 255, 125, 123, 114, 255, 125, 123, 114, 255, 121, 119, 111, 255, 114, 114, 107, 255, 110, 111, 104, 255, 102, 104, 98, 255, 93, 96, 89, 255, 92, 94, 88, 255, 87, 90, 83, 255, 84, 88, 81, 255, 90, 92, 85, 255, 101, 101, 94, 255, 109, 110, 102, 255, 114, 115, 106, 255, 115, 115, 107, 255, 115, 116, 108, 255, 114, 115, 107, 255, 102, 104, 96, 255, 94, 97, 90, 255, 99, 100, 94, 255, 104, 104, 98, 255, 99, 100, 94, 255, 93, 96, 89, 255, 100, 101, 95, 255, 99, 100, 94, 255, 96, 99, 92, 255, 92, 95, 87, 255, 89, 92, 84, 255, 90, 93, 85, 255, 94, 97, 89, 255, 95, 99, 91, 255, 91, 94, 85, 255, 85, 86, 79, 255, 83, 83, 76, 255, 86, 85, 79, 255, 89, 88, 81, 255, 86, 87, 78, 255, 87, 89, 77, 255, 92, 95, 82, 255, 104, 108, 96, 255, 111, 115, 104, 255, 113, 117, 106, 255, 104, 107, 97, 255, 94, 96, 87, 255, 87, 89, 81, 255, 84, 86, 78, 255, 89, 91, 84, 255, 95, 99, 90, 255, 95, 99, 88, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 116, 108, 255, 110, 111, 103, 255, 105, 106, 97, 255, 107, 109, 100, 255, 117, 118, 110, 255, 124, 124, 116, 255, 126, 126, 119, 255, 120, 122, 114, 255, 113, 114, 108, 255, 110, 111, 104, 255, 110, 110, 104, 255, 104, 105, 99, 255, 91, 94, 88, 255, 86, 90, 84, 255, 90, 92, 85, 255, 93, 93, 87, 255, 94, 95, 89, 255, 98, 99, 94, 255, 102, 102, 98, 255, 107, 108, 103, 255, 109, 110, 103, 255, 108, 109, 101, 255, 107, 106, 100, 255, 100, 101, 95, 255, 96, 98, 91, 255, 97, 98, 92, 255, 101, 102, 96, 255, 103, 103, 96, 255, 100, 101, 94, 255, 101, 103, 94, 255, 97, 100, 90, 255, 90, 94, 83, 255, 90, 93, 83, 255, 87, 90, 80, 255, 87, 90, 81, 255, 95, 97, 90, 255, 94, 96, 88, 255, 88, 89, 81, 255, 87, 86, 80, 255, 76, 76, 69, 255, 70, 69, 63, 255, 70, 69, 64, 255, 69, 69, 63, 255, 67, 70, 64, 255, 78, 81, 74, 255, 91, 94, 85, 255, 96, 99, 90, 255, 95, 97, 88, 255, 97, 100, 91, 255, 100, 103, 93, 255, 99, 102, 93, 255, 101, 105, 97, 255, 104, 108, 101, 255, 103, 106, 99, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 109, 100, 255, 108, 109, 100, 255, 113, 114, 106, 255, 118, 119, 111, 255, 119, 119, 112, 255, 120, 120, 112, 255, 117, 118, 110, 255, 118, 122, 114, 255, 114, 118, 111, 255, 102, 105, 97, 255, 97, 100, 91, 255, 99, 100, 92, 255, 107, 107, 101, 255, 114, 114, 108, 255, 107, 108, 103, 255, 103, 103, 99, 255, 105, 106, 102, 255, 103, 104, 100, 255, 99, 100, 96, 255, 99, 100, 95, 255, 102, 103, 98, 255, 109, 109, 104, 255, 110, 109, 104, 255, 113, 112, 107, 255, 112, 111, 105, 255, 106, 106, 100, 255, 97, 99, 92, 255, 95, 97, 90, 255, 98, 99, 92, 255, 97, 99, 90, 255, 97, 100, 90, 255, 101, 103, 93, 255, 99, 101, 92, 255, 94, 97, 87, 255, 92, 95, 85, 255, 90, 94, 84, 255, 95, 97, 90, 255, 101, 102, 95, 255, 104, 104, 97, 255, 92, 92, 85, 255, 76, 75, 69, 255, 74, 74, 68, 255, 75, 75, 69, 255, 71, 74, 67, 255, 69, 73, 67, 255, 64, 69, 63, 255, 73, 77, 70, 255, 79, 83, 75, 255, 90, 93, 85, 255, 99, 102, 93, 255, 101, 104, 96, 255, 106, 109, 103, 255, 109, 112, 106, 255, 107, 110, 104, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 106, 96, 255, 110, 112, 103, 255, 124, 124, 116, 255, 117, 118, 109, 255, 114, 115, 106, 255, 112, 113, 104, 255, 115, 117, 108, 255, 119, 122, 115, 255, 117, 121, 114, 255, 110, 113, 105, 255, 103, 106, 97, 255, 96, 98, 90, 255, 95, 98, 90, 255, 101, 103, 96, 255, 108, 107, 103, 255, 112, 110, 107, 255, 113, 112, 109, 255, 103, 104, 99, 255, 93, 94, 88, 255, 87, 88, 82, 255, 83, 84, 77, 255, 84, 85, 79, 255, 96, 97, 92, 255, 100, 101, 95, 255, 102, 102, 97, 255, 118, 116, 111, 255, 120, 118, 112, 255, 120, 118, 112, 255, 113, 113, 105, 255, 105, 107, 96, 255, 98, 101, 90, 255, 98, 101, 91, 255, 100, 103, 93, 255, 106, 108, 99, 255, 108, 110, 101, 255, 103, 106, 98, 255, 96, 100, 93, 255, 98, 101, 95, 255, 98, 102, 96, 255, 91, 95, 88, 255, 84, 87, 80, 255, 81, 83, 77, 255, 79, 81, 74, 255, 74, 77, 70, 255, 76, 80, 73, 255, 89, 92, 83, 255, 96, 98, 89, 255, 94, 97, 88, 255, 96, 99, 90, 255, 97, 100, 91, 255, 90, 94, 87, 255, 86, 90, 85, 255, 92, 96, 90, 255, 103, 106, 100, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 99, 88, 255, 97, 100, 89, 255, 96, 100, 89, 255, 101, 104, 94, 255, 108, 110, 101, 255, 117, 118, 109, 255, 122, 124, 116, 255, 121, 125, 118, 255, 113, 117, 109, 255, 101, 104, 95, 255, 102, 104, 96, 255, 108, 111, 103, 255, 114, 118, 111, 255, 118, 120, 115, 255, 117, 115, 112, 255, 119, 116, 114, 255, 118, 115, 113, 255, 113, 111, 108, 255, 100, 99, 94, 255, 90, 90, 83, 255, 87, 88, 81, 255, 84, 86, 79, 255, 85, 88, 82, 255, 97, 98, 92, 255, 100, 101, 95, 255, 103, 103, 97, 255, 112, 111, 105, 255, 113, 113, 107, 255, 109, 110, 102, 255, 111, 112, 102, 255, 118, 118, 108, 255, 124, 123, 112, 255, 127, 126, 114, 255, 119, 119, 108, 255, 111, 113, 103, 255, 109, 112, 104, 255, 110, 114, 108, 255, 107, 111, 104, 255, 102, 106, 100, 255, 103, 107, 100, 255, 101, 105, 99, 255, 95, 98, 92, 255, 87, 91, 85, 255, 86, 90, 84, 255, 87, 92, 86, 255, 84, 89, 82, 255, 81, 85, 79, 255, 79, 83, 76, 255, 89, 92, 84, 255, 95, 98, 89, 255, 98, 102, 95, 255, 96, 100, 94, 255, 91, 95, 89, 255, 92, 94, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 103, 94, 255, 103, 105, 95, 255, 109, 111, 101, 255, 107, 109, 100, 255, 95, 98, 87, 255, 91, 95, 84, 255, 93, 97, 86, 255, 99, 101, 91, 255, 106, 109, 99, 255, 107, 111, 100, 255, 105, 108, 97, 255, 100, 102, 91, 255, 94, 96, 84, 255, 100, 103, 93, 255, 105, 107, 100, 255, 109, 107, 103, 255, 110, 108, 105, 255, 111, 109, 106, 255, 106, 104, 100, 255, 100, 99, 94, 255, 101, 99, 94, 255, 103, 102, 97, 255, 101, 103, 95, 255, 98, 102, 92, 255, 102, 105, 96, 255, 103, 106, 97, 255, 100, 102, 95, 255, 97, 98, 93, 255, 100, 101, 95, 255, 112, 113, 104, 255, 116, 118, 107, 255, 116, 117, 107, 255, 117, 118, 108, 255, 121, 122, 111, 255, 122, 123, 112, 255, 119, 120, 109, 255, 115, 117, 106, 255, 105, 108, 98, 255, 99, 102, 94, 255, 99, 102, 95, 255, 105, 109, 103, 255, 105, 108, 102, 255, 98, 102, 96, 255, 94, 97, 92, 255, 93, 97, 92, 255, 94, 97, 93, 255, 88, 92, 86, 255, 85, 89, 83, 255, 87, 91, 85, 255, 90, 94, 88, 255, 90, 95, 88, 255, 88, 92, 85, 255, 87, 91, 85, 255, 91, 94, 89, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 101, 102, 93, 255, 103, 105, 94, 255, 103, 105, 94, 255, 103, 104, 94, 255, 103, 104, 94, 255, 96, 98, 88, 255, 91, 94, 84, 255, 94, 97, 87, 255, 95, 98, 86, 255, 96, 98, 87, 255, 102, 105, 95, 255, 109, 113, 105, 255, 103, 106, 97, 255, 92, 94, 82, 255, 91, 93, 84, 255, 91, 94, 88, 255, 91, 94, 89, 255, 92, 95, 90, 255, 91, 92, 86, 255, 91, 92, 85, 255, 89, 90, 83, 255, 91, 93, 85, 255, 96, 99, 90, 255, 101, 104, 95, 255, 104, 108, 99, 255, 109, 111, 104, 255, 112, 114, 107, 255, 107, 110, 102, 255, 108, 111, 103, 255, 121, 123, 114, 255, 123, 125, 115, 255, 124, 126, 115, 255, 124, 125, 113, 255, 121, 122, 111, 255, 114, 115, 105, 255, 113, 114, 104, 255, 111, 114, 103, 255, 110, 113, 102, 255, 102, 104, 95, 255, 94, 96, 87, 255, 90, 92, 83, 255, 89, 91, 82, 255, 95, 97, 89, 255, 102, 105, 98, 255, 109, 111, 108, 255, 112, 114, 112, 255, 112, 114, 112, 255, 110, 112, 110, 255, 104, 107, 104, 255, 92, 96, 91, 255, 92, 95, 89, 255, 102, 102, 96, 255, 97, 99, 92, 255, 92, 95, 88, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, 120, 111, 255, 111, 112, 101, 255, 99, 101, 91, 255, 101, 103, 93, 255, 105, 106, 96, 255, 110, 111, 100, 255, 112, 113, 102, 255, 106, 106, 98, 255, 99, 99, 92, 255, 96, 97, 89, 255, 100, 101, 92, 255, 101, 103, 93, 255, 99, 101, 90, 255, 96, 98, 86, 255, 97, 100, 92, 255, 98, 100, 96, 255, 89, 93, 87, 255, 85, 89, 83, 255, 88, 92, 86, 255, 86, 90, 84, 255, 82, 86, 80, 255, 83, 86, 80, 255, 91, 94, 87, 255, 93, 96, 88, 255, 93, 97, 88, 255, 104, 107, 99, 255, 111, 113, 106, 255, 113, 115, 108, 255, 114, 116, 108, 255, 113, 114, 106, 255, 107, 107, 100, 255, 110, 111, 103, 255, 118, 120, 112, 255, 125, 127, 118, 255, 124, 127, 118, 255, 115, 117, 107, 255, 107, 110, 99, 255, 109, 112, 101, 255, 110, 114, 103, 255, 103, 106, 96, 255, 89, 91, 82, 255, 87, 88, 80, 255, 85, 87, 79, 255, 91, 94, 85, 255, 94, 97, 87, 255, 94, 97, 88, 255, 100, 103, 95, 255, 106, 109, 102, 255, 105, 109, 103, 255, 104, 106, 103, 255, 101, 103, 99, 255, 95, 99, 92, 255, 94, 98, 91, 255, 100, 101, 95, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 106, 97, 255, 110, 111, 101, 255, 119, 119, 108, 255, 127, 127, 115, 255, 128, 128, 116, 255, 120, 120, 109, 255, 107, 108, 99, 255, 106, 106, 98, 255, 112, 112, 105, 255, 112, 112, 105, 255, 108, 109, 101, 255, 107, 107, 100, 255, 111, 111, 104, 255, 110, 110, 103, 255, 101, 102, 95, 255, 97, 99, 93, 255, 98, 100, 96, 255, 94, 96, 92, 255, 85, 89, 83, 255, 79, 84, 77, 255, 82, 86, 79, 255, 86, 89, 83, 255, 88, 90, 85, 255, 89, 91, 85, 255, 92, 93, 88, 255, 98, 98, 94, 255, 102, 103, 98, 255, 104, 106, 99, 255, 104, 106, 98, 255, 107, 108, 101, 255, 113, 114, 106, 255, 116, 117, 109, 255, 118, 120, 112, 255, 118, 120, 112, 255, 119, 122, 114, 255, 114, 116, 107, 255, 103, 104, 93, 255, 97, 97, 85, 255, 96, 96, 84, 255, 101, 103, 91, 255, 106, 108, 97, 255, 109, 113, 102, 255, 103, 107, 97, 255, 99, 102, 93, 255, 99, 102, 93, 255, 100, 103, 94, 255, 96, 99, 90, 255, 102, 106, 97, 255, 108, 112, 103, 255, 109, 113, 104, 255, 109, 111, 104, 255, 111, 111, 106, 255, 109, 110, 105, 255, 102, 103, 97, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 110, 102, 255, 114, 114, 107, 255, 113, 113, 105, 255, 114, 114, 106, 255, 119, 119, 111, 255, 122, 122, 114, 255, 120, 120, 112, 255, 121, 120, 113, 255, 118, 118, 111, 255, 109, 109, 102, 255, 99, 99, 91, 255, 103, 103, 96, 255, 107, 107, 100, 255, 104, 104, 97, 255, 102, 103, 95, 255, 107, 107, 100, 255, 106, 106, 99, 255, 99, 99, 92, 255, 95, 97, 91, 255, 97, 99, 94, 255, 95, 97, 92, 255, 91, 93, 88, 255, 87, 90, 85, 255, 87, 89, 85, 255, 95, 96, 91, 255, 103, 103, 97, 255, 106, 106, 100, 255, 105, 106, 100, 255, 109, 111, 105, 255, 120, 122, 117, 255, 119, 121, 116, 255, 116, 117, 112, 255, 113, 115, 108, 255, 117, 119, 111, 255, 117, 120, 111, 255, 111, 114, 103, 255, 106, 109, 97, 255, 103, 105, 93, 255, 100, 101, 89, 255, 101, 102, 90, 255, 105, 108, 95, 255, 108, 111, 100, 255, 109, 112, 103, 255, 104, 107, 98, 255, 92, 95, 87, 255, 89, 91, 83, 255, 82, 83, 75, 255, 81, 82, 75, 255, 90, 92, 85, 255, 96, 98, 92, 255, 100, 101, 96, 255, 109, 109, 104, 255, 114, 113, 108, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 109, 100, 255, 109, 110, 102, 255, 110, 111, 104, 255, 112, 112, 106, 255, 117, 116, 110, 255, 108, 108, 102, 255, 99, 100, 93, 255, 97, 97, 90, 255, 98, 98, 90, 255, 100, 100, 93, 255, 102, 103, 95, 255, 108, 108, 101, 255, 111, 111, 104, 255, 115, 115, 108, 255, 116, 116, 109, 255, 106, 106, 99, 255, 93, 95, 89, 255, 93, 96, 91, 255, 100, 102, 98, 255, 98, 100, 95, 255, 92, 94, 89, 255, 96, 97, 91, 255, 100, 101, 95, 255, 96, 97, 90, 255, 93, 96, 86, 255, 97, 100, 91, 255, 103, 106, 98, 255, 110, 113, 107, 255, 119, 123, 118, 255, 125, 128, 124, 255, 118, 120, 114, 255, 108, 109, 100, 255, 101, 103, 92, 255, 102, 104, 93, 255, 111, 115, 104, 255, 113, 118, 106, 255, 113, 117, 106, 255, 114, 117, 107, 255, 119, 120, 112, 255, 118, 119, 111, 255, 104, 107, 99, 255, 94, 98, 91, 255, 85, 90, 82, 255, 83, 86, 79, 255, 85, 87, 80, 255, 96, 96, 90, 255, 100, 100, 94, 255, 104, 104, 99, 255, 111, 110, 104, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 106, 107, 100, 255, 102, 103, 97, 255, 89, 92, 86, 255, 86, 88, 82, 255, 87, 89, 80, 255, 93, 95, 87, 255, 98, 99, 92, 255, 105, 105, 97, 255, 110, 110, 103, 255, 111, 110, 103, 255, 109, 109, 102, 255, 102, 104, 98, 255, 95, 98, 92, 255, 92, 95, 89, 255, 97, 99, 94, 255, 99, 102, 97, 255, 99, 102, 97, 255, 100, 102, 96, 255, 102, 104, 97, 255, 106, 108, 101, 255, 96, 98, 89, 255, 91, 93, 82, 255, 91, 93, 83, 255, 94, 96, 87, 255, 103, 105, 97, 255, 107, 108, 102, 255, 104, 105, 97, 255, 100, 100, 92, 255, 96, 96, 88, 255, 96, 97, 88, 255, 101, 103, 93, 255, 101, 103, 92, 255, 100, 103, 93, 255, 103, 106, 98, 255, 103, 106, 98, 255, 97, 101, 93, 255, 96, 99, 92, 255, 99, 101, 94, 255, 99, 101, 94, 255, 97, 100, 92, 255, 102, 104, 95, 255, 107, 108, 100, 255, 109, 109, 102, 255, 103, 103, 96, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 100, 93, 255, 96, 99, 93, 255, 98, 100, 95, 255, 95, 97, 91, 255, 93, 95, 88, 255, 100, 102, 96, 255, 105, 106, 100, 255, 103, 105, 99, 255, 107, 109, 104, 255, 110, 112, 108, 255, 105, 107, 102, 255, 101, 103, 98, 255, 99, 101, 96, 255, 99, 102, 96, 255, 101, 103, 94, 255, 98, 99, 90, 255, 100, 101, 91, 255, 98, 99, 89, 255, 92, 94, 84, 255, 93, 94, 84, 255, 92, 93, 83, 255, 99, 99, 91, 255, 105, 106, 99, 255, 113, 113, 106, 255, 107, 107, 100, 255, 97, 96, 88, 255, 94, 93, 84, 255, 93, 92, 84, 255, 91, 92, 85, 255, 90, 92, 87, 255, 88, 91, 85, 255, 89, 92, 85, 255, 87, 90, 84, 255, 85, 89, 82, 255, 92, 95, 88, 255, 98, 100, 92, 255, 103, 103, 95, 255, 110, 111, 102, 255, 111, 111, 103, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 89, 80, 255, 86, 90, 80, 255, 93, 97, 87, 255, 96, 99, 89, 255, 96, 99, 89, 255, 109, 111, 104, 255, 116, 117, 112, 255, 118, 120, 116, 255, 114, 115, 109, 255, 108, 109, 100, 255, 100, 101, 92, 255, 105, 105, 96, 255, 107, 107, 98, 255, 116, 116, 105, 255, 112, 113, 102, 255, 108, 108, 98, 255, 97, 98, 89, 255, 98, 99, 91, 255, 103, 103, 96, 255, 98, 98, 91, 255, 96, 96, 88, 255, 94, 93, 84, 255, 93, 92, 84, 255, 85, 86, 78, 255, 82, 84, 79, 255, 86, 88, 84, 255, 89, 91, 87, 255, 89, 91, 86, 255, 86, 88, 83, 255, 88, 91, 86, 255, 92, 94, 88, 255, 97, 98, 91, 255, 106, 106, 98, 255, 113, 113, 105, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 99, 88, 255, 102, 105, 95, 255, 108, 110, 101, 255, 109, 111, 102, 255, 108, 110, 101, 255, 110, 113, 104, 255, 119, 119, 110, 255, 119, 119, 109, 255, 122, 121, 111, 255, 115, 115, 105, 255, 107, 107, 98, 255, 107, 107, 98, 255, 108, 108, 100, 255, 105, 105, 98, 255, 100, 100, 93, 255, 106, 105, 98, 255, 107, 106, 99, 255, 101, 101, 93, 255, 97, 97, 90, 255, 99, 99, 94, 255, 96, 97, 94, 255, 87, 89, 84, 255, 83, 85, 80, 255, 75, 78, 72, 255, 82, 85, 80, 255, 86, 89, 84, 255, 89, 92, 86, 255, 89, 92, 85, 255, 96, 97, 91, 255, 100, 102, 95, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 111, 255, 116, 117, 110, 255, 115, 115, 109, 255, 118, 117, 112, 255, 121, 119, 113, 255, 118, 118, 110, 255, 112, 112, 103, 255, 106, 106, 98, 255, 99, 100, 92, 255, 95, 96, 88, 255, 94, 95, 87, 255, 98, 99, 91, 255, 101, 101, 94, 255, 100, 101, 94, 255, 105, 106, 100, 255, 106, 108, 102, 255, 100, 102, 95, 255, 94, 96, 89, 255, 94, 96, 90, 255, 96, 97, 93, 255, 94, 96, 92, 255, 90, 92, 86, 255, 87, 90, 83, 255, 92, 94, 87, 255, 98, 100, 92, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 118, 111, 255, 109, 112, 104, 255, 103, 106, 99, 255, 93, 94, 88, 255, 86, 88, 80, 255, 88, 90, 82, 255, 87, 89, 81, 255, 89, 91, 81, 255, 91, 93, 84, 255, 96, 97, 89, 255, 99, 101, 93, 255, 106, 107, 102, 255, 112, 113, 109, 255, 110, 112, 108, 255, 107, 109, 104, 255, 94, 96, 88, 255, 90, 92, 83, 255, 96, 97, 90, 255, 97, 98, 92, 255, 91, 94, 87, 255, 92, 96, 87, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 100, 103, 94, 255, 96, 98, 91, 255, 87, 89, 81, 255, 83, 86, 77, 255, 86, 89, 81, 255, 90, 92, 84, 255, 94, 96, 88, 255, 98, 99, 91, 255, 100, 102, 94, 255, 106, 107, 102, 255, 101, 103, 96, 255, 97, 100, 91, 255, 96, 97, 89, 255, 95, 96, 89, 255, 95, 95, 88, 255, 96, 97, 90, 255, 100, 101, 92, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 101, 92, 255, 100, 101, 93, 255, 97, 98, 90, 255, 95, 96, 88, 255, 98, 99, 91, 255, 104, 105, 98, 255, 103, 104, 98, 255, 105, 106, 100, 255, 112, 113, 109, 255, 111, 111, 107, 255, 107, 107, 102, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 87, 78, 255, 82, 85, 76, 255, 88, 90, 82, 255, 96, 98, 89, 255, 96, 98, 89, 255, 103, 105, 97, 255, 112, 114, 107, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 100, 90, 255, 102, 104, 95, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), "format": "RGBA8", @@ -42,7 +42,7 @@ data = { } [sub_resource type="ImageTexture" id="ImageTexture_35hew"] -image = SubResource("Image_6qi5f") +image = SubResource("Image_kf41u") [sub_resource type="BoxShape3D" id="BoxShape3D_d3j6k"] diff --git a/health_bar_gradient.tres b/health_bar_gradient.tres new file mode 100644 index 0000000..456f57d --- /dev/null +++ b/health_bar_gradient.tres @@ -0,0 +1,6 @@ +[gd_resource type="Gradient" format=3 uid="uid://dx7auy3oqw82t"] + +[resource] +interpolation_color_space = 2 +offsets = PackedFloat32Array(0, 0.131148, 0.409836, 1) +colors = PackedColorArray(0.788235, 0, 0, 1, 0.818896, 0.282651, 0.000353087, 1, 0.839216, 0.847059, 0, 1, 0, 0.917647, 0, 1)