diff --git a/game/scripts/dungeons/dungeon.gd b/game/scripts/dungeons/dungeon.gd new file mode 100644 index 00000000..d67ba6fe --- /dev/null +++ b/game/scripts/dungeons/dungeon.gd @@ -0,0 +1,45 @@ +tool +extends Spatial + +export(bool) var generate_on_ready : bool = true +export(PropData) var start_room : PropData +export(Array, PropData) var rooms : Array +export(bool) var generate : bool setget set_generate, get_generate + +var portal_map : Dictionary + +var debug : bool = true + +func _enter_tree(): + if not Engine.editor_hint && generate_on_ready: + call_deferred("generate") + +func set_up_room_data(): + clear_room_data() + +func clear_room_data(): + portal_map.clear() + +func generate(): + clear() + set_up_room_data() + + +func clear(): + if not debug: + for c in get_children(): + if c.owner == self: + #don't destroy the user's nodes + continue + + c.queue_delete() + else: + for c in get_children(): + c.queue_delete() + +func set_generate(on): + if on: + generate() + +func get_generate(): + return false diff --git a/game/test_dungeon/Dungtest.tscn b/game/test_dungeon/Dungtest.tscn new file mode 100644 index 00000000..12b70af0 --- /dev/null +++ b/game/test_dungeon/Dungtest.tscn @@ -0,0 +1,15 @@ +[gd_scene load_steps=7 format=2] + +[ext_resource path="res://scripts/dungeons/dungeon.gd" type="Script" id=1] +[ext_resource path="res://test_rooms/Room1.tres" type="PropData" id=2] +[ext_resource path="res://test_rooms/Room2.tres" type="PropData" id=3] +[ext_resource path="res://test_rooms/Room3.tres" type="PropData" id=4] +[ext_resource path="res://test_rooms/Room5.tres" type="PropData" id=5] +[ext_resource path="res://test_rooms/Room4.tres" type="PropData" id=6] + +[node name="Dungtest" type="Spatial"] + +[node name="Dungeon" type="Spatial" parent="."] +script = ExtResource( 1 ) +start_room = ExtResource( 2 ) +rooms = [ ExtResource( 2 ), ExtResource( 3 ), ExtResource( 4 ), ExtResource( 6 ), ExtResource( 5 ) ] diff --git a/game/test_rooms/Room1.tscn b/game/test_rooms/Room1.tscn index 856151e1..5a4d3c07 100644 --- a/game/test_rooms/Room1.tscn +++ b/game/test_rooms/Room1.tscn @@ -1,8 +1,7 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=5 format=2] [ext_resource path="res://modules/planets/test_planet/voxel_library/textures/stone_dungeon_1_albedo.png" type="Texture" id=4] [ext_resource path="res://modules/core_models/wall_zn.gltf" type="MeshDataResource" id=5] -[ext_resource path="res://test_rooms/Room1.gd" type="Script" id=9] [ext_resource path="res://test_rooms/test2_tiledwalldata.tres" type="TiledWallData" id=10] [sub_resource type="SpatialMaterial" id=3] @@ -10,7 +9,6 @@ albedo_texture = ExtResource( 4 ) [node name="Room" type="Room"] points = PoolVector3Array( 5.01, -0.01, -6.01, 5.01, -0.01, 0.00999975, 5.01, 3.01, 0.00999975, 5.01, 3.01, -6.01, -0.0100001, -0.01, -6.01, -0.0100001, 3.01, -6.01, -0.0100001, -0.01, 0.00999975, -0.0100001, 0.745, 0.00999975, -0.0100001, 3.01, 0.00999975, 0.826667, 3.01, 0.00999975, 0.826667, 0.745, 0.00999975 ) -script = ExtResource( 9 ) [node name="Portal" type="Portal" parent="."] transform = Transform( -1, 0, -9.61651e-07, 0, 1, 0, 9.61651e-07, 0, -1, 2, 1, 0 ) diff --git a/game/test_rooms/Room2.tscn b/game/test_rooms/Room2.tscn index 25374991..c59d7276 100644 --- a/game/test_rooms/Room2.tscn +++ b/game/test_rooms/Room2.tscn @@ -1,10 +1,9 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=13 format=2] [ext_resource path="res://modules/species/Human/Female/character_models/huf_spine2.gltf" type="MeshDataResource" id=1] [ext_resource path="res://modules/species/Human/Female/character_textures/100_seamless/armor_simple.png" type="Texture" id=2] [ext_resource path="res://modules/planets/test_planet/voxel_library/textures/stone_dungeon_1_albedo.png" type="Texture" id=4] [ext_resource path="res://modules/core_models/wall_zn.gltf" type="MeshDataResource" id=5] -[ext_resource path="res://test_rooms/Room1.gd" type="Script" id=9] [ext_resource path="res://test_rooms/test2_tiledwalldata.tres" type="TiledWallData" id=10] [sub_resource type="SpatialMaterial" id=3] @@ -15,7 +14,7 @@ albedo_texture = ExtResource( 4 ) [sub_resource type="SpatialMaterial" id=5] albedo_color = Color( 0.643137, 0.133333, 0.133333, 1 ) -[sub_resource type="Image" id=10] +[sub_resource type="Image" id=12] data = { "data": PoolByteArray( 65, 78, 96, 255, 66, 77, 95, 255, 67, 80, 96, 255, 63, 76, 95, 255, 52, 64, 76, 255, 56, 64, 81, 255, 48, 59, 76, 255, 45, 56, 69, 255, 48, 58, 72, 255, 51, 58, 73, 255, 50, 58, 72, 255, 52, 56, 68, 255, 50, 57, 71, 255, 49, 56, 71, 255, 50, 57, 72, 255, 50, 58, 71, 255, 49, 61, 72, 255, 61, 71, 84, 255, 61, 72, 82, 255, 73, 87, 102, 255, 69, 84, 100, 255, 63, 74, 87, 255, 48, 60, 72, 255, 54, 67, 79, 255, 59, 75, 90, 255, 54, 69, 85, 255, 56, 67, 81, 255, 54, 67, 83, 255, 54, 67, 85, 255, 51, 67, 84, 255, 51, 66, 85, 255, 59, 73, 90, 255, 56, 69, 85, 255, 58, 76, 95, 255, 69, 86, 105, 255, 66, 79, 97, 255, 62, 69, 81, 255, 55, 64, 73, 255, 59, 72, 85, 255, 56, 69, 85, 255, 61, 73, 87, 255, 73, 82, 97, 255, 68, 81, 97, 255, 65, 76, 89, 255, 60, 69, 83, 255, 59, 67, 79, 255, 55, 64, 76, 255, 51, 60, 74, 255, 50, 60, 77, 255, 55, 64, 78, 255, 64, 68, 83, 255, 58, 63, 79, 255, 50, 56, 70, 255, 54, 60, 75, 255, 60, 70, 84, 255, 68, 80, 98, 255, 49, 61, 79, 255, 48, 61, 77, 255, 48, 59, 75, 255, 52, 65, 84, 255, 47, 59, 76, 255, 59, 74, 94, 255, 77, 96, 120, 255, 74, 93, 112, 255, 79, 93, 106, 255, 77, 87, 105, 255, 68, 81, 100, 255, 69, 83, 105, 255, 61, 75, 95, 255, 57, 67, 84, 255, 58, 69, 80, 255, 53, 66, 78, 255, 51, 66, 83, 255, 62, 75, 93, 255, 48, 55, 66, 255, 53, 55, 68, 255, 54, 57, 71, 255, 54, 60, 75, 255, 47, 57, 68, 255, 53, 63, 76, 255, 52, 62, 75, 255, 61, 70, 83, 255, 64, 77, 86, 255, 70, 88, 103, 255, 67, 83, 100, 255, 60, 76, 91, 255, 59, 70, 82, 255, 54, 65, 77, 255, 59, 72, 86, 255, 57, 69, 80, 255, 53, 65, 81, 255, 49, 63, 79, 255, 61, 73, 91, 255, 51, 66, 84, 255, 48, 61, 79, 255, 56, 70, 88, 255, 57, 71, 88, 255, 72, 90, 108, 255, 67, 81, 98, 255, 70, 76, 99, 255, 67, 74, 91, 255, 69, 71, 78, 255, 63, 70, 79, 255, 68, 78, 94, 255, 67, 76, 91, 255, 72, 84, 101, 255, 69, 85, 102, 255, 57, 70, 83, 255, 48, 59, 72, 255, 51, 61, 72, 255, 54, 64, 75, 255, 56, 64, 79, 255, 55, 66, 82, 255, 65, 75, 89, 255, 70, 76, 91, 255, 62, 67, 82, 255, 54, 61, 76, 255, 48, 57, 71, 255, 48, 58, 69, 255, 56, 67, 78, 255, 53, 67, 87, 255, 50, 63, 80, 255, 52, 64, 81, 255, 50, 64, 81, 255, 54, 67, 85, 255, 43, 59, 78, 255, 59, 75, 95, 255, 69, 85, 102, 255, 73, 85, 96, 255, 68, 80, 93, 255, 71, 83, 101, 255, 76, 89, 107, 255, 69, 83, 104, 255, 65, 80, 97, 255, 60, 71, 81, 255, 66, 77, 87, 255, 68, 82, 94, 255, 66, 79, 95, 255, 62, 72, 87, 255, 53, 64, 73, 255, 50, 58, 71, 255, 53, 62, 73, 255, 57, 65, 76, 255, 51, 59, 66, 255, 58, 65, 76, 255, 74, 80, 97, 255, 66, 75, 89, 255, 62, 78, 92, 255, 60, 77, 92, 255, 59, 77, 91, 255, 67, 80, 91, 255, 60, 72, 84, 255, 58, 70, 85, 255, 57, 67, 78, 255, 54, 64, 79, 255, 47, 60, 76, 255, 55, 67, 84, 255, 50, 63, 79, 255, 53, 67, 85, 255, 49, 60, 76, 255, 59, 71, 87, 255, 66, 80, 94, 255, 70, 78, 95, 255, 73, 83, 102, 255, 66, 72, 89, 255, 69, 73, 85, 255, 61, 64, 72, 255, 68, 73, 90, 255, 70, 81, 99, 255, 64, 77, 94, 255, 60, 75, 95, 255, 53, 66, 82, 255, 43, 53, 65, 255, 47, 57, 70, 255, 56, 64, 74, 255, 58, 66, 79, 255, 67, 76, 96, 255, 68, 77, 93, 255, 63, 71, 84, 255, 54, 59, 68, 255, 53, 60, 76, 255, 40, 50, 62, 255, 47, 57, 68, 255, 64, 75, 85, 255, 43, 54, 66, 255, 45, 56, 70, 255, 50, 63, 79, 255, 46, 61, 78, 255, 57, 74, 93, 255, 42, 57, 75, 255, 55, 70, 90, 255, 63, 75, 90, 255, 66, 76, 92, 255, 73, 85, 101, 255, 67, 80, 97, 255, 76, 89, 107, 255, 66, 78, 90, 255, 64, 77, 90, 255, 66, 81, 94, 255, 65, 78, 90, 255, 74, 86, 102, 255, 69, 84, 100, 255, 59, 72, 87, 255, 56, 68, 80, 255, 59, 67, 76, 255, 62, 68, 78, 255, 61, 68, 79, 255, 64, 72, 88, 255, 59, 65, 77, 255, 67, 73, 89, 255, 69, 75, 90, 255, 60, 66, 78, 255, 59, 74, 88, 255, 64, 81, 96, 255, 78, 94, 108, 255, 68, 83, 94, 255, 52, 64, 77, 255, 54, 64, 74, 255, 56, 66, 80, 255, 52, 65, 81, 255, 56, 69, 88, 255, 48, 61, 79, 255, 52, 65, 79, 255, 54, 65, 77, 255, 52, 64, 78, 255, 70, 87, 101, 255, 66, 76, 89, 255, 74, 82, 98, 255, 68, 74, 92, 255, 64, 73, 85, 255, 67, 76, 87, 255, 67, 71, 88, 255, 68, 77, 90, 255, 60, 71, 89, 255, 50, 64, 81, 255, 48, 61, 78, 255, 51, 63, 79, 255, 58, 70, 87, 255, 60, 69, 79, 255, 64, 74, 84, 255, 73, 82, 102, 255, 61, 71, 85, 255, 63, 71, 86, 255, 58, 64, 76, 255, 52, 60, 72, 255, 41, 50, 63, 255, 42, 53, 68, 255, 56, 68, 81, 255, 60, 73, 84, 255, 52, 65, 80, 255, 51, 64, 81, 255, 54, 68, 88, 255, 57, 71, 87, 255, 47, 60, 78, 255, 49, 65, 85, 255, 56, 69, 88, 255, 52, 65, 82, 255, 65, 76, 92, 255, 70, 82, 100, 255, 67, 79, 97, 255, 60, 72, 83, 255, 58, 68, 79, 255, 63, 76, 91, 255, 74, 87, 104, 255, 67, 79, 94, 255, 62, 73, 88, 255, 60, 71, 89, 255, 65, 73, 89, 255, 69, 79, 93, 255, 67, 74, 85, 255, 64, 73, 87, 255, 66, 74, 90, 255, 77, 83, 100, 255, 67, 73, 88, 255, 66, 73, 85, 255, 62, 65, 77, 255, 58, 67, 81, 255, 60, 75, 90, 255, 67, 85, 97, 255, 65, 77, 91, 255, 52, 64, 77, 255, 54, 64, 75, 255, 53, 62, 74, 255, 55, 66, 83, 255, 51, 64, 81, 255, 53, 64, 80, 255, 57, 67, 80, 255, 54, 63, 75, 255, 55, 66, 76, 255, 67, 80, 100, 255, 68, 82, 96, 255, 68, 76, 90, 255, 72, 80, 96, 255, 76, 87, 106, 255, 74, 81, 95, 255, 80, 85, 102, 255, 77, 88, 112, 255, 54, 66, 86, 255, 43, 58, 74, 255, 48, 64, 80, 255, 45, 59, 74, 255, 67, 79, 96, 255, 69, 78, 89, 255, 61, 70, 80, 255, 66, 78, 94, 255, 70, 83, 100, 255, 65, 74, 90, 255, 62, 70, 85, 255, 56, 65, 81, 255, 43, 52, 65, 255, 39, 48, 60, 255, 49, 60, 75, 255, 51, 61, 70, 255, 46, 57, 71, 255, 50, 62, 81, 255, 58, 72, 92, 255, 55, 69, 88, 255, 50, 63, 80, 255, 44, 57, 75, 255, 48, 60, 77, 255, 45, 58, 74, 255, 55, 66, 83, 255, 60, 71, 86, 255, 64, 74, 91, 255, 67, 77, 91, 255, 59, 69, 79, 255, 61, 73, 85, 255, 66, 75, 91, 255, 63, 76, 92, 255, 57, 71, 85, 255, 64, 73, 86, 255, 56, 65, 77, 255, 68, 79, 92, 255, 72, 79, 92, 255, 57, 67, 81, 255, 55, 65, 79, 255, 64, 69, 90, 255, 79, 89, 110, 255, 61, 69, 82, 255, 62, 69, 81, 255, 53, 60, 73, 255, 48, 59, 73, 255, 62, 74, 86, 255, 59, 69, 81, 255, 57, 68, 81, 255, 54, 63, 76, 255, 51, 61, 71, 255, 53, 63, 78, 255, 52, 64, 80, 255, 56, 65, 79, 255, 55, 67, 83, 255, 63, 74, 87, 255, 68, 77, 91, 255, 59, 69, 83, 255, 62, 75, 94, 255, 72, 84, 99, 255, 71, 76, 94, 255, 77, 84, 103, 255, 63, 72, 87, 255, 60, 71, 86, 255, 48, 62, 81, 255, 49, 62, 80, 255, 43, 57, 74, 255, 56, 71, 86, 255, 51, 65, 81, 255, 62, 75, 91, 255, 70, 79, 95, 255, 67, 71, 83, 255, 59, 69, 83, 255, 66, 79, 94, 255, 59, 69, 85, 255, 58, 69, 84, 255, 48, 57, 71, 255, 43, 53, 68, 255, 36, 47, 60, 255, 49, 61, 76, 255, 57, 67, 74, 255, 47, 57, 71, 255, 54, 68, 86, 255, 61, 75, 96, 255, 56, 70, 89, 255, 54, 67, 83, 255, 46, 60, 76, 255, 41, 56, 74, 255, 39, 51, 65, 255, 47, 59, 76, 255, 50, 60, 77, 255, 63, 73, 92, 255, 61, 71, 86, 255, 66, 78, 94, 255, 66, 74, 86, 255, 70, 82, 100, 255, 58, 68, 85, 255, 62, 73, 86, 255, 60, 70, 79, 255, 66, 81, 93, 255, 70, 85, 98, 255, 60, 69, 79, 255, 55, 64, 74, 255, 59, 69, 84, 255, 63, 69, 87, 255, 66, 73, 91, 255, 57, 65, 80, 255, 52, 62, 77, 255, 46, 55, 68, 255, 47, 55, 70, 255, 52, 61, 74, 255, 57, 66, 80, 255, 54, 62, 75, 255, 58, 67, 82, 255, 54, 65, 78, 255, 47, 57, 70, 255, 55, 68, 84, 255, 60, 70, 84, 255, 60, 70, 84, 255, 71, 81, 93, 255, 65, 76, 87, 255, 64, 75, 89, 255, 55, 66, 79, 255, 63, 75, 91, 255, 72, 85, 102, 255, 68, 79, 98, 255, 66, 75, 92, 255, 61, 72, 91, 255, 46, 58, 77, 255, 43, 56, 73, 255, 42, 55, 71, 255, 46, 58, 72, 255, 61, 76, 92, 255, 68, 85, 102, 255, 68, 82, 98, 255, 61, 71, 85, 255, 57, 66, 80, 255, 65, 75, 92, 255, 66, 79, 96, 255, 58, 70, 86, 255, 54, 63, 76, 255, 40, 51, 67, 255, 38, 48, 63, 255, 54, 65, 79, 255, 62, 71, 83, 255, 46, 56, 68, 255, 53, 67, 82, 255, 56, 69, 87, 255, 55, 69, 88, 255, 55, 68, 85, 255, 49, 61, 77, 255, 48, 60, 77, 255, 42, 56, 69, 255, 38, 51, 67, 255, 46, 58, 76, 255, 53, 62, 79, 255, 60, 69, 82, 255, 65, 77, 92, 255, 66, 78, 95, 255, 65, 76, 92, 255, 59, 70, 85, 255, 57, 68, 78, 255, 61, 71, 78, 255, 71, 84, 98, 255, 71, 84, 97, 255, 61, 72, 83, 255, 61, 69, 82, 255, 68, 75, 91, 255, 54, 64, 79, 255, 55, 65, 82, 255, 51, 60, 75, 255, 51, 61, 78, 255, 52, 60, 79, 255, 45, 53, 68, 255, 51, 61, 73, 255, 54, 64, 80, 255, 55, 63, 78, 255, 55, 61, 77, 255, 58, 67, 83, 255, 51, 60, 75, 255, 56, 65, 80, 255, 68, 78, 92, 255, 70, 83, 98, 255, 65, 75, 89, 255, 67, 80, 96, 255, 61, 73, 87, 255, 56, 68, 83, 255, 59, 70, 87, 255, 68, 80, 96, 255, 50, 62, 73, 255, 63, 73, 91, 255, 65, 74, 91, 255, 49, 59, 75, 255, 42, 54, 70, 255, 44, 56, 70, 255, 42, 54, 69, 255, 60, 76, 91, 255, 70, 84, 97, 255, 65, 80, 90, 255, 73, 84, 97, 255, 55, 67, 81, 255, 57, 67, 81, 255, 58, 73, 89, 255, 56, 68, 81, 255, 57, 66, 77, 255, 42, 50, 62, 255, 45, 53, 67, 255, 52, 59, 66, 255, 45, 55, 66, 255, 49, 60, 76, 255, 50, 63, 77, 255, 54, 68, 84, 255, 51, 65, 85, 255, 57, 71, 91, 255, 53, 66, 82, 255, 45, 58, 73, 255, 37, 49, 64, 255, 40, 53, 69, 255, 43, 56, 71, 255, 42, 51, 66, 255, 48, 57, 72, 255, 53, 64, 78, 255, 51, 63, 75, 255, 61, 72, 86, 255, 52, 63, 78, 255, 62, 72, 88, 255, 60, 70, 80, 255, 61, 74, 85, 255, 78, 97, 112, 255, 79, 94, 108, 255, 62, 73, 86, 255, 69, 76, 97, 255, 53, 62, 77, 255, 53, 60, 71, 255, 49, 59, 75, 255, 50, 59, 73, 255, 63, 72, 92, 255, 57, 65, 80, 255, 64, 72, 84, 255, 62, 73, 89, 255, 58, 66, 80, 255, 58, 66, 82, 255, 60, 67, 85, 255, 54, 62, 78, 255, 53, 61, 75, 255, 77, 87, 103, 255, 79, 95, 110, 255, 68, 78, 92, 255, 60, 72, 89, 255, 57, 65, 79, 255, 55, 67, 82, 255, 54, 67, 83, 255, 56, 69, 85, 255, 54, 63, 78, 255, 54, 61, 77, 255, 59, 69, 83, 255, 53, 65, 81, 255, 51, 63, 75, 255, 43, 55, 69, 255, 49, 61, 77, 255, 47, 58, 73, 255, 63, 75, 90, 255, 74, 88, 102, 255, 71, 83, 97, 255, 57, 70, 87, 255, 63, 75, 93, 255, 54, 68, 81, 255, 59, 70, 79, 255, 57, 63, 71, 255, 50, 55, 65, 255, 56, 60, 74, 255, 45, 50, 60, 255, 48, 56, 70, 255, 49, 57, 75, 255, 47, 57, 72, 255, 52, 63, 80, 255, 47, 60, 79, 255, 56, 67, 85, 255, 58, 71, 85, 255, 49, 62, 77, 255, 46, 58, 73, 255, 41, 52, 69, 255, 41, 53, 68, 255, 37, 47, 61, 255, 42, 50, 67, 255, 53, 63, 79, 255, 64, 75, 92, 255, 59, 71, 83, 255, 53, 63, 75, 255, 59, 68, 83, 255, 55, 65, 76, 255, 58, 69, 78, 255, 64, 78, 95, 255, 74, 87, 103, 255, 76, 92, 109, 255, 55, 67, 84, 255, 56, 65, 84, 255, 58, 65, 79, 255, 57, 66, 83, 255, 54, 61, 76, 255, 58, 66, 83, 255, 62, 70, 85, 255, 72, 81, 101, 255, 58, 66, 83, 255, 58, 67, 81, 255, 63, 71, 85, 255, 56, 62, 75, 255, 59, 67, 83, 255, 69, 77, 88, 255, 69, 77, 93, 255, 78, 90, 108, 255, 75, 86, 98, 255, 65, 80, 95, 255, 50, 59, 75, 255, 49, 60, 76, 255, 43, 54, 70, 255, 52, 62, 79, 255, 54, 60, 75, 255, 50, 57, 72, 255, 52, 61, 76, 255, 50, 60, 74, 255, 49, 62, 78, 255, 47, 59, 74, 255, 49, 62, 77, 255, 47, 58, 73, 255, 50, 61, 74, 255, 66, 78, 91, 255, 76, 89, 103, 255, 63, 77, 97, 255, 62, 78, 95, 255, 66, 78, 88, 255, 64, 73, 83, 255, 59, 65, 76, 255, 58, 62, 76, 255, 57, 64, 81, 255, 43, 49, 62, 255, 44, 51, 65, 255, 48, 57, 75, 255, 48, 57, 70, 255, 44, 54, 69, 255, 44, 56, 72, 255, 50, 62, 77, 255, 60, 73, 88, 255, 58, 68, 85, 255, 46, 59, 72, 255, 42, 53, 66, 255, 45, 57, 72, 255, 35, 44, 55, 255, 41, 50, 64, 255, 47, 57, 71, 255, 53, 60, 73, 255, 55, 61, 70, 255, 52, 59, 64, 255, 56, 65, 77, 255, 54, 65, 74, 255, 64, 77, 90, 255, 70, 82, 96, 255, 67, 78, 95, 255, 64, 76, 93, 255, 47, 59, 76, 255, 46, 56, 73, 255, 52, 61, 74, 255, 54, 63, 77, 255, 57, 65, 80, 255, 65, 74, 93, 255, 58, 70, 85, 255, 75, 88, 106, 255, 72, 83, 98, 255, 69, 78, 91, 255, 80, 90, 108, 255, 76, 83, 102, 255, 71, 80, 96, 255, 74, 82, 95, 255, 82, 96, 117, 255, 89, 104, 126, 255, 69, 83, 96, 255, 54, 68, 83, 255, 54, 65, 82, 255, 46, 58, 76, 255, 39, 52, 67, 255, 46, 55, 69, 255, 49, 58, 74, 255, 53, 62, 80, 255, 56, 64, 79, 255, 55, 67, 83, 255, 54, 66, 83, 255, 54, 66, 83, 255, 54, 66, 80, 255, 53, 62, 74, 255, 50, 59, 71, 255, 58, 66, 77, 255, 69, 83, 95, 255, 75, 88, 105, 255, 78, 93, 107, 255, 74, 86, 100, 255, 68, 76, 89, 255, 53, 56, 68, 255, 50, 55, 70, 255, 43, 51, 67, 255, 44, 51, 66, 255, 44, 50, 65, 255, 44, 53, 67, 255, 44, 54, 66, 255, 46, 55, 70, 255, 47, 60, 76, 255, 51, 63, 77, 255, 61, 72, 87, 255, 58, 71, 86, 255, 45, 55, 67, 255, 44, 53, 64, 255, 42, 51, 62, 255, 39, 49, 62, 255, 35, 44, 57, 255, 45, 53, 66, 255, 45, 52, 61, 255, 51, 58, 67, 255, 53, 58, 62, 255, 56, 60, 67, 255, 56, 63, 69, 255, 59, 70, 79, 255, 82, 96, 115, 255, 63, 76, 89, 255, 68, 81, 87, 255, 56, 65, 77, 255, 48, 60, 76, 255, 60, 69, 87, 255, 51, 60, 74, 255, 57, 67, 83, 255, 59, 67, 82, 255, 55, 64, 78, 255, 58, 70, 85, 255, 66, 76, 92, 255, 76, 84, 99, 255, 77, 85, 104, 255, 77, 84, 105, 255, 68, 76, 94, 255, 81, 99, 117, 255, 69, 83, 103, 255, 66, 80, 102, 255, 54, 69, 89, 255, 48, 61, 77, 255, 49, 63, 77, 255, 49, 57, 74, 255, 38, 50, 66, 255, 43, 52, 66, 255, 55, 64, 80, 255, 50, 58, 75, 255, 49, 59, 79, 255, 50, 61, 79, 255, 51, 64, 80, 255, 50, 61, 77, 255, 53, 62, 75, 255, 50, 58, 68, 255, 49, 59, 70, 255, 54, 63, 77, 255, 59, 69, 81, 255, 66, 78, 91, 255, 78, 87, 94, 255, 75, 84, 91, 255, 60, 67, 74, 255, 51, 54, 65, 255, 40, 45, 57, 255, 38, 47, 63, 255, 49, 56, 73, 255, 54, 59, 72, 255, 47, 54, 69, 255, 44, 52, 65, 255, 40, 50, 61, 255, 39, 49, 61, 255, 48, 62, 80, 255, 47, 59, 73, 255, 52, 64, 79, 255, 40, 48, 58, 255, 40, 47, 56, 255, 37, 45, 56, 255, 37, 45, 59, 255, 36, 44, 56, 255, 45, 53, 65, 255, 50, 54, 65, 255, 52, 57, 64, 255, 52, 58, 63, 255, 59, 66, 77, 255, 62, 70, 78, 255, 56, 67, 73, 255, 67, 81, 99, 255, 57, 70, 84, 255, 69, 84, 102, 255, 68, 82, 97, 255, 56, 72, 89, 255, 59, 70, 85, 255, 54, 67, 84, 255, 59, 71, 88, 255, 59, 71, 90, 255, 55, 66, 85, 255, 52, 64, 81, 255, 62, 77, 94, 255, 78, 93, 107, 255, 76, 88, 102, 255, 74, 87, 98, 255, 63, 74, 86, 255, 69, 85, 101, 255, 59, 71, 88, 255, 49, 61, 80, 255, 55, 67, 87, 255, 45, 55, 70, 255, 48, 57, 73, 255, 48, 58, 75, 255, 39, 50, 67, 255, 43, 52, 68, 255, 48, 56, 71, 255, 47, 57, 74, 255, 50, 59, 75, 255, 46, 58, 75, 255, 50, 61, 77, 255, 51, 61, 78, 255, 56, 66, 83, 255, 55, 63, 76, 255, 66, 74, 87, 255, 56, 66, 80, 255, 56, 69, 83, 255, 66, 79, 92, 255, 73, 83, 91, 255, 64, 72, 80, 255, 63, 68, 80, 255, 58, 62, 77, 255, 40, 47, 58, 255, 42, 50, 65, 255, 41, 49, 65, 255, 56, 63, 79, 255, 59, 67, 82, 255, 48, 56, 64, 255, 50, 57, 67, 255, 46, 56, 70, 255, 50, 61, 80, 255, 48, 61, 77, 255, 47, 58, 71, 255, 43, 52, 63, 255, 39, 47, 58, 255, 35, 43, 55, 255, 34, 40, 52, 255, 33, 39, 49, 255, 45, 52, 64, 255, 63, 68, 81, 255, 61, 66, 77, 255, 65, 67, 79, 255, 66, 72, 85, 255, 73, 80, 96, 255, 67, 77, 89, 255, 71, 82, 103, 255, 59, 72, 89, 255, 73, 88, 113, 255, 65, 79, 100, 255, 59, 74, 90, 255, 59, 69, 86, 255, 59, 72, 90, 255, 55, 67, 81, 255, 58, 67, 85, 255, 52, 64, 79, 255, 55, 69, 88, 255, 60, 76, 93, 255, 70, 87, 103, 255, 60, 74, 87, 255, 77, 91, 107, 255, 73, 84, 98, 255, 72, 86, 99, 255, 54, 63, 73, 255, 48, 59, 76, 255, 52, 64, 82, 255, 48, 58, 72, 255, 45, 53, 67, 255, 36, 45, 59, 255, 41, 51, 68, 255, 40, 49, 66, 255, 41, 49, 64, 255, 44, 53, 68, 255, 46, 57, 73, 255, 50, 59, 75, 255, 51, 64, 78, 255, 52, 63, 78, 255, 60, 70, 85, 255, 73, 85, 98, 255, 73, 86, 97, 255, 73, 87, 102, 255, 75, 88, 106, 255, 81, 96, 114, 255, 77, 88, 100, 255, 75, 80, 96, 255, 68, 70, 91, 255, 72, 74, 99, 255, 49, 55, 68, 255, 42, 51, 68, 255, 47, 58, 78, 255, 48, 60, 75, 255, 51, 63, 80, 255, 51, 62, 75, 255, 61, 71, 83, 255, 65, 78, 95, 255, 54, 65, 79, 255, 42, 53, 68, 255, 45, 56, 70, 255, 47, 55, 68, 255, 37, 45, 57, 255, 36, 45, 57, 255, 33, 39, 51, 255, 35, 41, 53, 255, 36, 45, 57, 255, 43, 51, 67, 255, 53, 59, 75, 255, 62, 69, 80, 255, 63, 71, 83, 255, 68, 79, 94, 255, 71, 81, 101, 255, 71, 82, 100, 255, 69, 85, 100, 255, 73, 92, 110, 255, 52, 66, 79, 255, 49, 64, 80, 255, 48, 60, 76, 255, 57, 68, 85, 255, 57, 69, 83, 255, 55, 63, 78, 255, 52, 63, 76, 255, 58, 73, 94, 255, 61, 77, 94, 255, 69, 86, 105, 255, 66, 81, 97, 255, 54, 70, 83, 255, 53, 63, 72, 255, 68, 75, 92, 255, 63, 68, 87, 255, 48, 57, 75, 255, 48, 56, 75, 255, 48, 58, 74, 255, 48, 56, 69, 255, 42, 50, 64, 255, 38, 48, 65, 255, 40, 49, 66, 255, 40, 49, 64, 255, 44, 52, 69, 255, 42, 53, 69, 255, 50, 58, 74, 255, 58, 71, 90, 255, 64, 77, 92, 255, 76, 88, 101, 255, 83, 93, 108, 255, 78, 89, 103, 255, 72, 84, 102, 255, 66, 78, 95, 255, 62, 72, 88, 255, 77, 89, 103, 255, 67, 81, 94, 255, 63, 70, 89, 255, 70, 75, 98, 255, 71, 78, 95, 255, 44, 52, 69, 255, 49, 60, 79, 255, 55, 66, 82, 255, 52, 64, 78, 255, 64, 77, 95, 255, 70, 83, 102, 255, 64, 77, 90, 255, 62, 75, 89, 255, 37, 46, 58, 255, 45, 53, 65, 255, 46, 54, 66, 255, 42, 51, 64, 255, 32, 41, 53, 255, 32, 38, 50, 255, 34, 41, 54, 255, 35, 43, 56, 255, 41, 48, 61, 255, 50, 59, 71, 255, 57, 67, 79, 255, 54, 63, 71, 255, 58, 70, 80, 255, 68, 83, 102, 255, 59, 71, 86, 255, 72, 89, 103, 255, 67, 85, 100, 255, 63, 79, 94, 255, 46, 61, 77, 255, 50, 66, 85, 255, 56, 70, 85, 255, 56, 68, 83, 255, 58, 69, 83, 255, 55, 67, 81, 255, 56, 70, 83, 255, 61, 77, 94, 255, 68, 84, 102, 255, 68, 84, 100, 255, 63, 74, 91, 255, 60, 66, 81, 255, 59, 65, 79, 255, 60, 65, 88, 255, 70, 78, 98, 255, 48, 56, 70, 255, 45, 54, 70, 255, 49, 58, 71, 255, 45, 52, 67, 255, 40, 48, 63, 255, 45, 53, 68, 255, 45, 53, 68, 255, 44, 53, 68, 255, 51, 61, 77, 255, 52, 65, 80, 255, 61, 74, 87, 255, 69, 78, 91, 255, 76, 85, 99, 255, 78, 88, 103, 255, 72, 83, 98, 255, 68, 81, 99, 255, 68, 80, 94, 255, 63, 75, 92, 255, 64, 72, 87, 255, 65, 77, 90, 255, 64, 75, 95, 255, 67, 77, 95, 255, 65, 73, 85, 255, 46, 55, 67, 255, 44, 52, 65, 255, 52, 64, 81, 255, 63, 76, 93, 255, 65, 81, 98, 255, 60, 72, 86, 255, 74, 89, 107, 255, 66, 76, 89, 255, 56, 64, 75, 255, 37, 47, 57, 255, 47, 56, 71, 255, 46, 55, 68, 255, 46, 54, 67, 255, 38, 44, 56, 255, 35, 42, 53, 255, 37, 44, 57, 255, 43, 51, 64, 255, 47, 54, 63, 255, 56, 66, 75, 255, 52, 58, 64, 255, 60, 70, 85, 255, 65, 80, 96, 255, 67, 80, 94, 255, 70, 87, 104, 255, 72, 90, 109, 255, 64, 81, 101, 255, 60, 77, 94, 255, 53, 70, 88, 255, 56, 68, 83, 255, 55, 68, 81, 255, 53, 65, 81, 255, 58, 73, 89, 255, 60, 73, 85, 255, 59, 74, 89, 255, 57, 70, 85, 255, 71, 85, 102, 255, 67, 79, 89, 255, 57, 66, 74, 255, 63, 67, 79, 255, 61, 68, 83, 255, 62, 69, 84, 255, 53, 60, 79, 255, 47, 55, 74, 255, 52, 61, 79, 255, 43, 49, 64, 255, 45, 53, 71, 255, 46, 53, 68, 255, 52, 63, 77, 255, 51, 59, 71, 255, 60, 69, 89, 255, 61, 71, 91, 255, 60, 76, 91, 255, 69, 81, 99, 255, 75, 86, 104, 255, 74, 87, 110, 255, 73, 84, 103, 255, 66, 76, 91, 255, 79, 92, 108, 255, 71, 81, 94, 255, 75, 83, 96, 255, 73, 84, 94, 255, 60, 69, 83, 255, 66, 79, 98, 255, 65, 75, 88, 255, 46, 56, 70, 255, 44, 51, 66, 255, 44, 53, 69, 255, 57, 66, 82, 255, 72, 86, 104, 255, 70, 82, 100, 255, 66, 78, 95, 255, 61, 71, 82, 255, 43, 50, 60, 255, 39, 48, 59, 255, 45, 53, 66, 255, 53, 61, 74, 255, 44, 49, 57, 255, 50, 56, 69, 255, 40, 46, 57, 255, 35, 43, 53, 255, 41, 50, 60, 255, 54, 61, 73, 255, 52, 60, 73, 255, 59, 67, 77, 255, 60, 74, 90, 255, 60, 76, 89, 255, 78, 94, 112, 255, 73, 89, 104, 255, 68, 86, 103, 255, 70, 85, 106, 255, 66, 84, 104, 255, 64, 81, 102, 255, 56, 72, 87, 255, 58, 72, 87, 255, 60, 77, 91, 255, 60, 77, 89, 255, 55, 69, 82, 255, 61, 77, 96, 255, 63, 79, 91, 255, 70, 83, 93, 255, 63, 74, 88, 255, 66, 78, 90, 255, 62, 68, 78, 255, 64, 71, 83, 255, 64, 74, 92, 255, 59, 66, 81, 255, 43, 51, 65, 255, 40, 47, 63, 255, 46, 54, 72, 255, 51, 61, 79, 255, 51, 63, 80, 255, 53, 60, 77, 255, 50, 58, 71, 255, 67, 75, 100, 255, 64, 73, 94, 255, 60, 72, 89, 255, 73, 89, 109, 255, 82, 92, 106, 255, 73, 86, 104, 255, 66, 81, 99, 255, 73, 85, 100, 255, 72, 85, 101, 255, 66, 79, 98, 255, 66, 78, 93, 255, 73, 83, 96, 255, 78, 92, 104, 255, 58, 67, 79, 255, 65, 73, 91, 255, 43, 53, 67, 255, 51, 57, 72, 255, 65, 72, 85, 255, 63, 75, 89, 255, 65, 73, 86, 255, 60, 71, 83, 255, 77, 87, 106, 255, 60, 69, 80, 255, 49, 54, 60, 255, 37, 44, 53, 255, 46, 52, 64, 255, 64, 71, 86, 255, 53, 60, 70, 255, 44, 49, 59, 255, 37, 44, 54, 255, 42, 49, 61, 255, 46, 54, 65, 255, 56, 65, 77, 255, 50, 60, 69, 255, 54, 62, 70, 255, 57, 67, 78, 255, 65, 79, 91, 255, 73, 88, 104, 255, 67, 84, 104, 255, 71, 91, 111, 255, 74, 94, 115, 255, 69, 88, 109, 255, 60, 79, 98, 255, 63, 82, 101, 255, 63, 83, 104, 255, 59, 76, 94, 255, 56, 71, 89, 255, 51, 65, 81, 255, 60, 73, 87, 255, 64, 77, 89, 255, 69, 80, 93, 255, 70, 82, 95, 255, 71, 79, 96, 255, 67, 74, 88, 255, 50, 56, 67, 255, 63, 67, 80, 255, 57, 64, 76, 255, 54, 65, 80, 255, 45, 56, 74, 255, 45, 53, 72, 255, 56, 67, 87, 255, 58, 71, 91, 255, 56, 62, 77, 255, 60, 72, 90, 255, 61, 71, 93, 255, 64, 75, 97, 255, 58, 71, 89, 255, 68, 83, 98, 255, 72, 84, 101, 255, 71, 84, 99, 255, 70, 86, 106, 255, 63, 75, 90, 255, 65, 79, 98, 255, 66, 81, 99, 255, 67, 79, 95, 255, 69, 81, 97, 255, 71, 86, 102, 255, 71, 86, 102, 255, 62, 74, 88, 255, 40, 50, 62, 255, 45, 56, 70, 255, 47, 59, 73, 255, 51, 62, 74, 255, 53, 62, 71, 255, 60, 63, 71, 255, 64, 67, 75, 255, 62, 67, 73, 255, 61, 65, 71, 255, 58, 66, 75, 255, 57, 66, 79, 255, 61, 67, 77, 255, 60, 69, 77, 255, 45, 53, 63, 255, 35, 43, 53, 255, 42, 51, 62, 255, 49, 59, 67, 255, 47, 57, 66, 255, 57, 69, 80, 255, 54, 63, 77, 255, 58, 69, 85, 255, 71, 83, 100, 255, 70, 85, 104, 255, 62, 79, 98, 255, 73, 91, 113, 255, 79, 97, 120, 255, 65, 81, 100, 255, 67, 83, 101, 255, 56, 74, 94, 255, 62, 82, 102, 255, 64, 81, 98, 255, 61, 76, 92, 255, 55, 67, 85, 255, 59, 73, 89, 255, 71, 81, 95, 255, 79, 89, 103, 255, 76, 91, 109, 255, 69, 87, 102, 255, 64, 72, 89, 255, 54, 62, 75, 255, 50, 54, 64, 255, 48, 53, 64, 255, 48, 56, 72, 255, 48, 58, 73, 255, 47, 59, 72, 255, 59, 72, 87, 255, 59, 72, 92, 255, 54, 61, 78, 255, 57, 65, 82, 255, 57, 68, 83, 255, 56, 64, 82, 255, 57, 67, 85, 255, 74, 87, 101, 255, 74, 86, 102, 255, 74, 91, 108, 255, 60, 74, 94, 255, 60, 72, 90, 255, 61, 71, 86, 255, 63, 72, 87, 255, 66, 76, 91, 255, 55, 72, 86, 255, 78, 95, 115, 255, 64, 76, 90, 255, 59, 71, 83, 255, 55, 64, 75, 255, 54, 64, 76, 255, 56, 69, 79, 255, 50, 62, 72, 255, 65, 76, 87, 255, 62, 69, 78, 255, 62, 66, 73, 255, 59, 65, 78, 255, 61, 67, 78, 255, 59, 68, 81, 255, 64, 74, 88, 255, 63, 72, 83, 255, 63, 69, 82, 255, 48, 55, 65, 255, 44, 53, 66, 255, 43, 53, 63, 255, 49, 58, 67, 255, 56, 66, 78, 255, 62, 76, 93, 255, 54, 67, 82, 255, 62, 75, 90, 255, 72, 83, 103, 255, 63, 78, 96, 255, 65, 81, 100, 255, 72, 89, 107, 255, 75, 90, 110, 255, 66, 82, 102, 255, 64, 81, 99, 255, 77, 98, 114, 255, 64, 83, 100, 255, 70, 87, 106, 255, 60, 75, 93, 255, 64, 79, 99, 255, 65, 78, 95, 255, 65, 75, 92, 255, 78, 90, 110, 255, 74, 87, 106, 255, 85, 97, 116, 255, 82, 97, 114, 255, 70, 85, 106, 255, 53, 62, 75, 255, 47, 55, 72, 255, 48, 53, 66, 255, 57, 62, 79, 255, 59, 65, 78, 255, 67, 76, 90, 255, 63, 68, 85, 255, 58, 66, 81, 255, 59, 64, 75, 255, 65, 71, 84, 255, 65, 70, 88, 255, 62, 69, 87, 255, 59, 68, 83, 255, 59, 72, 88, 255, 71, 85, 104, 255, 59, 70, 88, 255, 56, 67, 85, 255, 64, 74, 87, 255, 59, 68, 81, 255, 58, 69, 83, 255, 67, 81, 99, 255, 61, 73, 92, 255, 58, 70, 85, 255, 64, 76, 91, 255, 55, 65, 77, 255, 51, 63, 75, 255, 50, 62, 73, 255, 58, 66, 75, 255, 56, 63, 73, 255, 56, 67, 78, 255, 57, 65, 75, 255, 56, 63, 77, 255, 69, 74, 88, 255, 58, 65, 75, 255, 61, 70, 86, 255, 65, 74, 88, 255, 61, 69, 82, 255, 48, 54, 65, 255, 39, 48, 60, 255, 44, 53, 65, 255, 50, 62, 76, 255, 53, 64, 80, 255, 55, 68, 86, 255, 62, 74, 91, 255, 80, 92, 109, 255, 73, 84, 94, 255, 63, 73, 83, 255, 78, 92, 107, 255, 77, 95, 113, 255, 82, 97, 112, 255, 65, 80, 96, 255, 69, 87, 100, 255, 76, 96, 111, 255, 71, 89, 103, 255, 65, 82, 100, 255, 64, 79, 96, 255, 66, 81, 100, 255, 73, 87, 108, 255, 79, 92, 109, 255, 74, 86, 105, 255, 67, 81, 97, 255, 71, 83, 102, 255, 64, 77, 92, 255, 55, 69, 85, 255, 53, 66, 83, 255, 47, 61, 80, 255, 65, 75, 95, 255, 71, 84, 100, 255, 71, 82, 92, 255, 66, 77, 85, 255, 61, 66, 80, 255, 60, 68, 80, 255, 61, 68, 78, 255, 71, 78, 98, 255, 59, 69, 78, 255, 75, 82, 110, 255, 56, 66, 82, 255, 59, 71, 86, 255, 60, 71, 87, 255, 61, 74, 91, 255, 48, 59, 75, 255, 53, 64, 78, 255, 59, 70, 84, 255, 71, 79, 94, 255, 71, 84, 97, 255, 59, 72, 86, 255, 64, 78, 96, 255, 59, 72, 88, 255, 59, 70, 85, 255, 59, 72, 85, 255, 60, 72, 84, 255, 60, 69, 77, 255, 53, 60, 73, 255, 49, 59, 73, 255, 57, 65, 77, 255, 62, 68, 83, 255, 66, 76, 88, 255, 62, 71, 82, 255, 65, 73, 88, 255, 65, 74, 91, 255, 58, 66, 81, 255, 46, 54, 67, 255, 42, 52, 66, 255, 41, 49, 60, 255, 49, 61, 78, 255, 52, 61, 74, 255, 59, 69, 85, 255, 62, 68, 80, 255, 68, 76, 92, 255, 76, 88, 102, 255, 64, 79, 94, 255, 66, 81, 102, 255, 74, 93, 116, 255, 76, 92, 113, 255, 73, 87, 103, 255, 73, 91, 105, 255, 67, 83, 99, 255, 56, 69, 85, 255, 74, 90, 105, 255, 58, 74, 91, 255, 66, 82, 103, 255, 73, 89, 106, 255, 79, 89, 102, 255, 81, 90, 107, 255, 73, 87, 106, 255, 69, 86, 107, 255, 62, 75, 92, 255, 62, 75, 89, 255, 56, 71, 91, 255, 53, 67, 83, 255, 82, 98, 115, 255, 77, 95, 116, 255, 74, 89, 103, 255, 65, 76, 82, 255, 63, 72, 82, 255, 62, 69, 82, 255, 61, 72, 85, 255, 57, 65, 80, 255, 58, 63, 75, 255, 68, 71, 93, 255, 53, 58, 71, 255, 49, 57, 72, 255, 55, 62, 81, 255, 55, 65, 81, 255, 49, 60, 75, 255, 48, 56, 70, 255, 55, 65, 76, 255, 70, 81, 96, 255, 64, 76, 89, 255, 65, 80, 94, 255, 64, 77, 95, 255, 61, 75, 91, 255, 58, 72, 87, 255, 58, 72, 89, 255, 67, 81, 101, 255, 69, 80, 92, 255, 59, 68, 82, 255, 63, 73, 88, 255, 65, 73, 84, 255, 59, 66, 78, 255, 55, 64, 74, 255, 67, 75, 89, 255, 63, 71, 84, 255, 57, 66, 78, 255, 55, 64, 78, 255, 52, 62, 74, 255, 41, 53, 67, 255, 46, 55, 70, 255, 44, 56, 72, 255, 55, 62, 82, 255, 58, 71, 87, 255, 74, 81, 101, 255, 67, 75, 90, 255, 69, 83, 100, 255, 61, 76, 87, 255, 69, 83, 103, 255, 74, 91, 111, 255, 71, 90, 111, 255, 70, 85, 101, 255, 69, 86, 104, 255, 68, 87, 104, 255, 68, 83, 99, 255, 77, 91, 110, 255, 59, 74, 86, 255, 59, 71, 87, 255, 70, 85, 103, 255, 71, 84, 97, 255, 65, 78, 95, 255, 73, 88, 107, 255, 64, 78, 96, 255, 70, 85, 105, 255, 56, 69, 91, 255, 53, 66, 82, 255, 54, 65, 81, 255, 68, 81, 97, 255, 83, 96, 116, 255, 74, 88, 107, 255, 62, 74, 84, 255, 70, 82, 100, 255, 62, 69, 86, 255, 63, 70, 87, 255, 55, 58, 71, 255, 66, 68, 88, 255, 67, 69, 84, 255, 52, 59, 72, 255, 49, 58, 71, 255, 50, 57, 70, 255, 44, 52, 66, 255, 50, 61, 75, 255, 46, 56, 68, 255, 52, 61, 70, 255, 61, 73, 90, 255, 64, 76, 91, 255, 66, 76, 90, 255, 56, 68, 81, 255, 56, 67, 76, 255, 57, 68, 79, 255, 57, 68, 79, 255, 59, 70, 88, 255, 64, 74, 89, 255, 68, 77, 92, 255, 66, 77, 95, 255, 71, 80, 96, 255, 66, 76, 87, 255, 62, 69, 84, 255, 73, 79, 96, 255, 63, 71, 86, 255, 64, 77, 91, 255, 72, 82, 98, 255, 52, 62, 73, 255, 45, 54, 67, 255, 49, 62, 75, 255, 45, 58, 73, 255, 45, 56, 73, 255, 48, 59, 76, 255, 55, 66, 85, 255, 56, 68, 84, 255, 52, 64, 80, 255, 69, 84, 100, 255, 75, 97, 113, 255, 77, 99, 116, 255, 68, 88, 109, 255, 69, 84, 102, 255, 67, 83, 101, 255, 77, 97, 117, 255, 70, 84, 96, 255, 73, 86, 102, 255, 64, 77, 89, 255, 57, 74, 85, 255, 68, 83, 99, 255, 62, 71, 82, 255, 63, 73, 81, 255, 62, 72, 87, 255, 58, 73, 87, 255, 69, 85, 105, 255, 61, 73, 94, 255, 71, 87, 104, 255, 62, 75, 94, 255, 66, 78, 92, 255, 78, 90, 108, 255, 84, 95, 113, 255, 73, 85, 98, 255, 58, 68, 77, 255, 56, 62, 75, 255, 68, 73, 91, 255, 55, 62, 74, 255, 63, 67, 82, 255, 59, 66, 77, 255, 62, 68, 80, 255, 50, 56, 67, 255, 46, 54, 67, 255, 45, 51, 66, 255, 48, 57, 74, 255, 45, 55, 68, 255, 49, 61, 75, 255, 46, 57, 72, 255, 52, 63, 79, 255, 64, 75, 87, 255, 55, 67, 80, 255, 56, 66, 75, 255, 51, 61, 71, 255, 51, 63, 74, 255, 62, 69, 85, 255, 61, 70, 84, 255, 61, 70, 85, 255, 61, 70, 87, 255, 72, 82, 107, 255, 59, 71, 83, 255, 58, 66, 78, 255, 58, 66, 80, 255, 54, 61, 71, 255, 60, 68, 78, 255, 45, 53, 67, 255, 43, 51, 62, 255, 44, 54, 66, 255, 44, 56, 69, 255, 42, 55, 72, 255, 45, 56, 75, 255, 43, 55, 73, 255, 49, 60, 78, 255, 49, 58, 75, 255, 49, 59, 73, 255, 47, 59, 74, 255, 74, 93, 108, 255, 84, 106, 117, 255, 72, 92, 106, 255, 54, 69, 85, 255, 59, 74, 90, 255, 61, 78, 94, 255, 67, 79, 93, 255, 70, 80, 95, 255, 69, 78, 92, 255, 64, 77, 89, 255, 63, 75, 89, 255, 68, 74, 92, 255, 64, 75, 83, 255, 60, 69, 82, 255, 60, 70, 83, 255, 62, 73, 88, 255, 62, 75, 95, 255, 74, 95, 118, 255, 70, 90, 109, 255, 64, 79, 92, 255, 71, 86, 100, 255, 78, 91, 110, 255, 69, 83, 100, 255, 65, 76, 85, 255, 51, 56, 64, 255, 61, 66, 79, 255, 72, 75, 89, 255, 64, 69, 85, 255, 65, 72, 86, 255, 55, 62, 74, 255, 55, 60, 74, 255, 46, 54, 66, 255, 50, 57, 70, 255, 50, 61, 78, 255, 48, 58, 73, 255, 42, 52, 68, 255, 40, 51, 67, 255, 39, 51, 68, 255, 57, 69, 88, 255, 64, 77, 94, 255, 67, 77, 86, 255, 58, 62, 74, 255, 55, 61, 70, 255, 58, 62, 74, 255, 57, 62, 75, 255, 67, 72, 92, 255, 56, 68, 82, 255, 60, 71, 84, 255, 64, 75, 87, 255, 56, 65, 76, 255, 58, 65, 76, 255, 52, 58, 67, 255, 61, 68, 81, 255, 42, 51, 61, 255, 48, 56, 71, 255, 42, 53, 69, 255, 42, 55, 69, 255, 42, 55, 71, 255, 44, 53, 70, 255, 48, 58, 77, 255, 49, 62, 77, 255, 45, 56, 72, 255, 51, 65, 81, 255, 48, 60, 76, 255, 49, 64, 80, 255, 51, 66, 82, 255, 63, 77, 92, 255, 63, 75, 88, 255, 57, 66, 78, 255, 65, 75, 86, 255, 64, 75, 85, 255, 68, 79, 90, 255, 65, 75, 88, 255, 68, 76, 91, 255, 62, 70, 84, 255, 62, 65, 79, 255, 60, 64, 76, 255, 60, 65, 80, 255, 59, 67, 78, 255, 66, 75, 88, 255, 60, 71, 87, 255, 63, 80, 99, 255, 66, 84, 98, 255, 61, 75, 89, 255, 68, 87, 102, 255, 75, 91, 110, 255, 76, 91, 110, 255, 66, 77, 90, 255, 53, 64, 77, 255, 53, 60, 72, 255, 60, 63, 77, 255, 61, 67, 84, 255, 50, 60, 70, 255, 54, 63, 77, 255, 62, 68, 85, 255, 55, 61, 80, 255, 55, 63, 79, 255, 47, 54, 71, 255, 47, 56, 70, 255, 39, 48, 62, 255, 35, 44, 56, 255, 37, 48, 62, 255, 43, 55, 70, 255, 60, 70, 84, 255, 66, 77, 93, 255, 62, 71, 80, 255, 57, 61, 72, 255, 56, 62, 78, 255, 58, 63, 80, 255, 66, 72, 90, 255, 62, 71, 82, 255, 54, 67, 78, 255, 62, 74, 88, 255, 53, 61, 76, 255, 55, 62, 75, 255, 57, 65, 82, 255, 52, 59, 76, 255, 55, 66, 84, 255, 44, 54, 68, 255, 43, 53, 67, 255, 40, 49, 63, 255, 37, 46, 62, 255, 42, 52, 66, 255, 39, 49, 63, 255, 40, 50, 63, 255, 42, 54, 70, 255, 45, 54, 70, 255, 43, 56, 72, 255, 42, 56, 72, 255, 41, 54, 70, 255, 46, 61, 77, 255, 61, 75, 91, 255, 63, 74, 87, 255, 65, 76, 93, 255, 67, 78, 91, 255, 64, 72, 86, 255, 64, 73, 85, 255, 59, 67, 76, 255, 54, 63, 74, 255, 69, 74, 93, 255, 55, 58, 69, 255, 57, 60, 73, 255, 68, 71, 84, 255, 63, 69, 79, 255, 61, 67, 81, 255, 52, 64, 76, 255, 48, 60, 73, 255, 59, 72, 87, 255, 60, 76, 91, 255, 70, 86, 105, 255, 75, 91, 115, 255, 67, 81, 98, 255, 55, 70, 85, 255, 57, 69, 83, 255, 60, 68, 82, 255, 51, 60, 72, 255, 53, 62, 72, 255, 63, 73, 92, 255, 53, 60, 78, 255, 50, 60, 78, 255, 50, 61, 78, 255, 55, 68, 87, 255, 41, 49, 61, 255, 34, 44, 56, 255, 35, 44, 55, 255, 44, 55, 69, 255, 45, 56, 71, 255, 48, 60, 73, 255, 54, 67, 82, 255, 51, 59, 74, 255, 54, 61, 77, 255, 53, 59, 73, 255, 59, 63, 77, 255, 54, 58, 68, 255, 55, 64, 74, 255, 55, 65, 79, 255, 49, 61, 74, 255, 52, 63, 76, 255, 62, 74, 90, 255, 58, 72, 85, 255, 59, 70, 85, 255, 59, 70, 87, 255, 51, 64, 78, 255, 50, 60, 73, 255, 46, 54, 69, 255, 39, 49, 64, 255, 34, 44, 57, 255, 37, 46, 60, 255, 37, 47, 60, 255, 41, 50, 67, 255, 38, 49, 63, 255, 39, 51, 66, 255, 40, 53, 69, 255, 41, 55, 72, 255, 52, 68, 85, 255, 68, 85, 105, 255, 71, 84, 101, 255, 66, 75, 92, 255, 70, 79, 92, 255, 78, 84, 101, 255, 61, 70, 81, 255, 56, 63, 75, 255, 64, 72, 83, 255, 66, 68, 84, 255, 67, 69, 81, 255, 61, 65, 76, 255, 57, 63, 73, 255, 66, 72, 85, 255, 53, 59, 72, 255, 46, 55, 66, 255, 44, 54, 64, 255, 54, 65, 78, 255, 44, 56, 71, 255, 41, 55, 72, 255, 54, 68, 88, 255, 74, 89, 106, 255, 74, 90, 107, 255, 63, 77, 91, 255, 59, 69, 85, 255, 68, 78, 94, 255, 61, 70, 82, 255, 65, 71, 93, 255, 53, 65, 81, 255, 53, 66, 82, 255, 49, 59, 77, 255, 54, 65, 82, 255, 53, 62, 73, 255, 40, 50, 61, 255, 40, 49, 60, 255, 40, 51, 65, 255, 38, 49, 63, 255, 42, 51, 66, 255, 45, 54, 68, 255, 52, 59, 73, 255, 45, 51, 63, 255, 45, 51, 62, 255, 59, 65, 77, 255, 55, 58, 67, 255, 49, 56, 64, 255, 46, 57, 67, 255, 45, 58, 72, 255, 46, 58, 73, 255, 51, 63, 79, 255, 57, 70, 84, 255, 60, 73, 87, 255, 62, 75, 91, 255, 63, 75, 89, 255, 65, 77, 88, 255, 42, 49, 60, 255, 43, 52, 66, 255, 40, 47, 59, 255, 37, 44, 55, 255, 42, 51, 65, 255, 45, 53, 69, 255, 37, 47, 60, 255, 42, 52, 67, 255, 44, 56, 72, 255, 45, 58, 75, 255, 50, 65, 85, 255, 66, 83, 103, 255, 60, 75, 90, 255, 61, 72, 86, 255, 64, 75, 90, 255, 65, 75, 86, 255, 60, 70, 77, 255, 53, 64, 71, 255, 56, 64, 75, 255, 67, 71, 88, 255, 68, 74, 91, 255, 62, 68, 84, 255, 59, 67, 81, 255, 66, 74, 91, 255, 55, 65, 80, 255, 52, 61, 76, 255, 47, 57, 72, 255, 53, 64, 78, 255, 52, 64, 81, 255, 48, 62, 80, 255, 42, 55, 72, 255, 54, 67, 84, 255, 64, 80, 98, 255, 71, 89, 110, 255, 63, 74, 87, 255, 60, 70, 82, 255, 66, 77, 92, 255, 57, 64, 83, 255, 50, 60, 77, 255, 45, 57, 74, 255, 47, 59, 74, 255, 48, 58, 76, 255, 45, 54, 69, 255, 40, 50, 64, 255, 40, 50, 65, 255, 40, 53, 67, 255, 42, 54, 70, 255, 41, 51, 66, 255, 47, 56, 72, 255, 47, 55, 67, 255, 51, 59, 72, 255, 53, 57, 71, 255, 54, 61, 72, 255, 63, 68, 85, 255, 54, 61, 78, 255, 53, 66, 83, 255, 47, 60, 76, 255, 46, 58, 73, 255, 49, 61, 77, 255, 52, 63, 81, 255, 62, 73, 91, 255, 57, 67, 85, 255, 60, 73, 88, 255, 58, 64, 77, 255, 49, 55, 68, 255, 45, 52, 60, 255, 43, 50, 59, 255, 40, 48, 59, 255, 50, 58, 72, 255, 41, 50, 65, 255, 44, 54, 66, 255, 44, 52, 65, 255, 46, 56, 69, 255, 40, 50, 65, 255, 51, 64, 82, 255, 62, 79, 99, 255, 68, 84, 102, 255, 62, 73, 88, 255, 59, 70, 86, 255, 66, 76, 87, 255, 75, 87, 104, 255, 64, 76, 90, 255, 60, 67, 82, 255, 68, 73, 92, 255, 72, 75, 89, 255, 64, 70, 89, 255, 54, 61, 77, 255, 59, 66, 85, 255, 48, 59, 75, 255, 50, 61, 79, 255, 46, 55, 69, 255, 55, 65, 80, 255, 57, 72, 92, 255, 50, 63, 81, 255, 46, 59, 75, 255, 55, 69, 85, 255, 55, 67, 82, 255, 69, 80, 93, 255, 64, 70, 83, 255, 60, 69, 81, 255, 57, 64, 74, 255, 57, 66, 79, 255, 50, 62, 77, 255, 50, 62, 77, 255, 47, 58, 73, 255, 42, 53, 64, 255, 37, 46, 60, 255, 39, 48, 64, 255, 38, 47, 61, 255, 38, 48, 62, 255, 41, 52, 67, 255, 44, 53, 69, 255, 44, 53, 65, 255, 43, 53, 64, 255, 45, 52, 66, 255, 53, 59, 70, 255, 52, 56, 72, 255, 56, 62, 77, 255, 51, 61, 74, 255, 54, 65, 80, 255, 47, 57, 72, 255, 45, 57, 72, 255, 43, 54, 69, 255, 43, 52, 67, 255, 50, 62, 75, 255, 64, 77, 95, 255, 60, 72, 82, 255, 61, 66, 79, 255, 59, 66, 77, 255, 52, 59, 68, 255, 44, 48, 56, 255, 42, 48, 60, 255, 44, 52, 64, 255, 37, 46, 60, 255, 35, 44, 59, 255, 38, 46, 59, 255, 36, 46, 59, 255, 39, 52, 68, 255, 46, 55, 68, 255, 60, 74, 91, 255, 65, 80, 98, 255, 65, 76, 92, 255, 69, 80, 98, 255, 66, 75, 86, 255, 68, 81, 97, 255, 56, 72, 89, 255, 60, 72, 85, 255, 60, 67, 82, 255, 62, 69, 76, 255, 63, 70, 80, 255, 58, 66, 79, 255, 47, 55, 73, 255, 43, 55, 72, 255, 44, 57, 72, 255, 51, 63, 77, 255, 64, 75, 88, 255, 53, 67, 84, 255, 42, 55, 69, 255, 50, 64, 81, 255, 61, 74, 89, 255, 56, 68, 81, 255, 62, 70, 82, 255, 66, 75, 92, 255, 57, 68, 84, 255, 62, 70, 84, 255, 54, 60, 74, 255, 41, 50, 64, 255, 45, 55, 68, 255, 39, 48, 61, 255, 39, 48, 60, 255, 39, 48, 63, 255, 36, 45, 60, 255, 32, 41, 55, 255, 39, 47, 58, 255, 42, 51, 63, 255, 44, 53, 66, 255, 62, 71, 86, 255, 44, 53, 62, 255, 45, 52, 64, 255, 49, 60, 69, 255, 56, 63, 77, 255, 59, 67, 76, 255, 56, 64, 77, 255, 59, 69, 86, 255, 52, 61, 77, 255, 48, 57, 72, 255, 44, 53, 69, 255, 47, 56, 73, 255, 52, 60, 77, 255, 66, 73, 92, 255, 56, 63, 76, 255, 44, 50, 57, 255, 45, 51, 57, 255, 53, 58, 66, 255, 46, 53, 61, 255, 39, 46, 56, 255, 46, 52, 63, 255, 41, 51, 66, 255, 42, 50, 65, 255, 36, 44, 58, 255, 36, 44, 56, 255, 43, 54, 68, 255, 46, 55, 70, 255, 53, 62, 76, 255, 69, 81, 101, 255, 66, 75, 92, 255, 70, 80, 97, 255, 61, 73, 84, 255, 66, 81, 93, 255, 66, 80, 96, 255, 64, 77, 94, 255, 61, 75, 89, 255, 67, 76, 90, 255, 67, 79, 92, 255, 62, 75, 89, 255, 43, 54, 70, 255, 43, 56, 73, 255, 55, 68, 84, 255, 68, 85, 104, 255, 72, 89, 108, 255, 63, 76, 95, 255, 72, 83, 105, 255, 62, 73, 93, 255, 57, 67, 81, 255, 70, 80, 95, 255, 59, 68, 82, 255, 60, 71, 86, 255, 60, 70, 87, 255, 61, 72, 87, 255, 42, 50, 63, 255, 41, 49, 61, 255, 45, 56, 71, 255, 48, 57, 72, 255, 40, 49, 62, 255, 40, 52, 66, 255, 39, 48, 65, 255, 35, 44, 57, 255, 44, 51, 62, 255, 40, 48, 60, 255, 43, 52, 65, 255, 56, 67, 81, 255, 50, 58, 66, 255, 54, 62, 73, 255, 58, 67, 81, 255, 43, 53, 67, 255, 60, 69, 82, 255, 67, 73, 89, 255, 58, 71, 87, 255, 53, 64, 79, 255, 42, 54, 70, 255, 45, 55, 70, 255, 61, 69, 88, 255, 61, 70, 87, 255, 59, 66, 78, 255, 63, 66, 82, 255, 59, 67, 79, 255, 51, 55, 63, 255, 50, 54, 61, 255, 47, 52, 59, 255, 39, 46, 58, 255, 49, 55, 68, 255, 44, 52, 65, 255, 46, 54, 70, 255, 39, 48, 64, 255, 39, 49, 64, 255, 35, 47, 61, 255, 40, 50, 65, 255, 49, 59, 77, 255, 59, 70, 86, 255, 65, 74, 84, 255, 55, 65, 78, 255, 61, 77, 94, 255, 60, 73, 85, 255, 60, 71, 83, 255, 64, 76, 91, 255, 65, 78, 94, 255, 64, 76, 91, 255, 65, 76, 87, 255, 55, 67, 78, 255, 44, 52, 65, 255, 49, 58, 74, 255, 50, 60, 74, 255, 67, 80, 94, 255, 80, 96, 115, 255, 80, 94, 114, 255, 70, 83, 96, 255, 68, 77, 88, 255, 62, 72, 84, 255, 59, 66, 79, 255, 53, 61, 72, 255, 58, 67, 78, 255, 53, 62, 75, 255, 63, 69, 86, 255, 45, 52, 69, 255, 36, 46, 58, 255, 35, 45, 57, 255, 39, 48, 63, 255, 52, 62, 74, 255, 44, 56, 68, 255, 53, 65, 79, 255, 58, 68, 82, 255, 56, 64, 74, 255, 54, 60, 73, 255, 56, 64, 80, 255, 56, 65, 79, 255, 46, 52, 61, 255, 55, 63, 73, 255, 54, 63, 77, 255, 42, 53, 66, 255, 59, 70, 84, 255, 70, 80, 96, 255, 59, 70, 83, 255, 45, 54, 67, 255, 42, 52, 68, 255, 50, 59, 73, 255, 68, 79, 97, 255, 63, 72, 87, 255, 54, 62, 70, 255, 60, 66, 78, 255, 69, 76, 97, 255, 63, 70, 85, 255, 55, 60, 70, 255, 40, 47, 59, 255, 40, 47, 60, 255, 38, 44, 56, 255, 48, 56, 70, 255, 34, 43, 56, 255, 35, 47, 62, 255, 37, 49, 65, 255, 37, 46, 61, 255, 44, 53, 66, 255, 45, 55, 70, 255, 51, 60, 76, 255, 44, 53, 67, 255, 55, 64, 78, 255, 65, 79, 98, 255, 66, 79, 95, 255, 67, 78, 92, 255, 62, 77, 89, 255, 63, 74, 85, 255, 59, 68, 81, 255, 70, 82, 94, 255, 48, 58, 67, 255, 49, 61, 75, 255, 43, 54, 69, 255, 43, 55, 69, 255, 56, 69, 85, 255, 67, 83, 104, 255, 69, 86, 107, 255, 62, 79, 93, 255, 65, 80, 95, 255, 67, 77, 94, 255, 58, 66, 78, 255, 57, 66, 78, 255, 68, 78, 89, 255, 64, 71, 82, 255, 43, 52, 63, 255, 42, 51, 65, 255, 35, 44, 60, 255, 36, 45, 59, 255, 37, 46, 60, 255, 49, 59, 74, 255, 53, 65, 80, 255, 54, 67, 84, 255, 52, 64, 83, 255, 56, 67, 80, 255, 53, 61, 72, 255, 52, 62, 76, 255, 46, 55, 66, 255, 52, 60, 69, 255, 59, 66, 74, 255, 61, 71, 86, 255, 42, 50, 61, 255, 46, 56, 69, 255, 60, 70, 85, 255, 57, 66, 81, 255, 52, 65, 80, 255, 34, 44, 58, 255, 54, 65, 85, 255, 58, 70, 87, 255, 60, 70, 84, 255, 69, 76, 90, 255, 61, 71, 87, 255, 66, 76, 94, 255, 60, 67, 86, 255, 60, 67, 80, 255, 45, 53, 65, 255, 38, 47, 60, 255, 36, 43, 56, 255, 34, 44, 56, 255, 40, 48, 63, 255, 38, 48, 61, 255, 49, 60, 75, 255, 54, 67, 84, 255, 43, 55, 70, 255, 46, 60, 78, 255, 49, 62, 78, 255, 45, 57, 72, 255, 48, 61, 76, 255, 52, 64, 81, 255, 63, 75, 91, 255, 63, 75, 91, 255, 71, 86, 100, 255, 61, 73, 86, 255, 57, 67, 76, 255, 69, 81, 91, 255, 52, 64, 76, 255, 44, 55, 72, 255, 41, 51, 66, 255, 46, 57, 72, 255, 57, 68, 86, 255, 56, 67, 85, 255, 52, 65, 82, 255, 60, 72, 88, 255, 71, 83, 100, 255, 70, 82, 99, 255, 62, 71, 87, 255, 58, 69, 83, 255, 64, 75, 88, 255, 60, 69, 83, 255, 40, 49, 64, 255, 38, 47, 61, 255, 42, 51, 64, 255, 39, 49, 62, 255, 46, 55, 72, 255, 46, 55, 68, 255, 41, 52, 65, 255, 44, 58, 74, 255, 43, 56, 71, 255, 41, 54, 69, 255, 45, 55, 68, 255, 47, 57, 68, 255, 50, 60, 72, 255, 60, 69, 84, 255, 65, 75, 87, 255, 57, 67, 72, 255, 49, 58, 68, 255, 46, 54, 68, 255, 59, 66, 78, 255, 60, 68, 81, 255, 59, 69, 81, 255, 41, 51, 64, 255, 42, 54, 70, 255, 62, 72, 92, 255, 64, 72, 89, 255, 58, 67, 83, 255, 62, 72, 86, 255, 65, 73, 90, 255, 62, 69, 80, 255, 58, 67, 79, 255, 51, 58, 67, 255, 41, 48, 59, 255, 39, 48, 61, 255, 44, 56, 69, 255, 41, 53, 70, 255, 44, 55, 73, 255, 50, 60, 78, 255, 44, 57, 75, 255, 40, 52, 68, 255, 47, 61, 78, 255, 46, 58, 76, 255, 51, 65, 84, 255, 54, 69, 86, 255, 48, 61, 77, 255, 54, 68, 85, 255, 48, 59, 74, 255, 57, 70, 83, 255, 67, 80, 97, 255, 60, 71, 83, 255, 76, 86, 99, 255, 57, 67, 78, 255, 41, 51, 66, 255, 40, 48, 63, 255, 45, 53, 66, 255, 50, 59, 73, 255, 57, 65, 84, 255, 46, 57, 74, 255, 45, 57, 72, 255, 46, 58, 72, 255, 43, 54, 70, 255, 49, 57, 71, 255, 54, 64, 76, 255, 57, 68, 82, 255, 44, 55, 70, 255, 38, 48, 63, 255, 42, 51, 65, 255, 43, 52, 65, 255, 44, 53, 67, 255, 44, 54, 67, 255, 45, 55, 70, 255, 43, 56, 72, 255, 46, 61, 76, 255, 43, 56, 71, 255, 38, 49, 63, 255, 48, 59, 71, 255, 52, 62, 73, 255, 56, 68, 83, 255, 50, 60, 74, 255, 55, 64, 77, 255, 67, 78, 94, 255, 51, 58, 71, 255, 50, 57, 68, 255, 51, 58, 69, 255, 53, 61, 73, 255, 69, 71, 83, 255, 44, 53, 64, 255, 39, 51, 66, 255, 44, 54, 65, 255, 48, 59, 72, 255, 50, 61, 75, 255, 54, 62, 74, 255, 64, 69, 83, 255, 59, 65, 79, 255, 66, 74, 90, 255, 62, 70, 80, 255, 44, 51, 61, 255, 37, 45, 57, 255, 37, 46, 62, 255, 39, 51, 66, 255, 47, 56, 72, 255, 49, 59, 76, 255, 39, 49, 64, 255, 38, 49, 65, 255, 40, 52, 66, 255, 47, 60, 76, 255, 49, 62, 77, 255, 57, 72, 90, 255, 69, 82, 101, 255, 64, 76, 95, 255, 63, 74, 89, 255, 63, 72, 86, 255, 73, 83, 98, 255, 66, 76, 90, 255, 72, 84, 99, 255, 49, 58, 72, 255, 41, 50, 63, 255, 44, 51, 63, 255, 50, 58, 75, 255, 57, 64, 79, 255, 46, 52, 61, 255, 41, 51, 67, 255, 41, 50, 63, 255, 37, 47, 60, 255, 45, 55, 68, 255, 62, 70, 86, 255, 66, 76, 91, 255, 50, 61, 74, 255, 36, 48, 62, 255, 38, 50, 65, 255, 40, 50, 63, 255, 49, 58, 70, 255, 41, 51, 62, 255, 46, 56, 69, 255, 38, 51, 66, 255, 42, 55, 70, 255, 40, 53, 68, 255, 44, 58, 72, 255, 49, 61, 74, 255, 49, 58, 68, 255, 49, 58, 68, 255, 56, 67, 81, 255, 57, 68, 80, 255, 57, 65, 79, 255, 71, 81, 96, 255, 55, 64, 76, 255, 52, 59, 72, 255, 58, 67, 79, 255, 44, 54, 67, 255, 58, 64, 77, 255, 54, 63, 76, 255, 37, 49, 62, 255, 39, 49, 59, 255, 46, 58, 72, 255, 48, 60, 75, 255, 58, 72, 87, 255, 60, 72, 85, 255, 59, 75, 83, 255, 74, 86, 101, 255, 63, 78, 86, 255, 50, 63, 74, 255, 35, 45, 59, 255, 37, 47, 61, 255, 41, 51, 65, 255, 51, 59, 75, 255, 53, 61, 79, 255, 39, 50, 64, 255, 36, 45, 60, 255, 40, 51, 67, 255, 43, 56, 73, 255, 49, 62, 77, 255, 58, 73, 92, 255, 54, 67, 85, 255, 42, 55, 72, 255, 47, 58, 72, 255, 67, 77, 91, 255, 69, 78, 90, 255, 68, 78, 90, 255, 64, 76, 90, 255, 52, 65, 82, 255, 41, 51, 67, 255, 50, 60, 70, 255, 41, 49, 62, 255, 53, 59, 72, 255, 51, 53, 66, 255, 39, 48, 61, 255, 39, 46, 58, 255, 35, 44, 57, 255, 56, 67, 83, 255, 67, 79, 95, 255, 64, 73, 86, 255, 58, 68, 79, 255, 36, 47, 60, 255, 39, 50, 67, 255, 41, 53, 67, 255, 48, 60, 75, 255, 53, 66, 81, 255, 49, 62, 76, 255, 41, 53, 69, 255, 38, 52, 67, 255, 39, 52, 66, 255, 42, 54, 68, 255, 54, 67, 79, 255, 56, 70, 82, 255, 59, 71, 84, 255, 58, 72, 87, 255, 53, 66, 79, 255, 56, 63, 77, 255, 62, 73, 88, 255, 63, 74, 90, 255, 56, 68, 85, 255, 61, 72, 90, 255, 45, 57, 72, 255, 43, 53, 65, 255, 47, 58, 69, 255, 46, 56, 67, 255, 43, 54, 65, 255, 53, 65, 79, 255, 46, 59, 72, 255, 57, 72, 91, 255, 76, 94, 115, 255, 73, 87, 100, 255, 66, 81, 97, 255, 67, 81, 97, 255, 51, 60, 74, 255, 50, 56, 69, 255, 38, 47, 58, 255, 45, 52, 67, 255, 44, 51, 65, 255, 53, 59, 73, 255, 55, 63, 74, 255, 51, 59, 74, 255, 38, 48, 62, 255, 45, 59, 75, 255, 58, 72, 85, 255, 66, 78, 96, 255, 52, 64, 81, 255, 44, 57, 73, 255, 47, 61, 77, 255, 59, 73, 91, 255, 64, 77, 92, 255, 69, 81, 93, 255, 67, 83, 94, 255, 58, 69, 87, 255, 40, 50, 64, 255, 53, 61, 80, 255, 50, 57, 72, 255, 50, 55, 66, 255, 45, 47, 58, 255, 44, 52, 65, 255, 42, 49, 65, 255, 36, 46, 62, 255, 55, 66, 83, 255, 59, 69, 84, 255, 47, 59, 74, 255, 47, 58, 73, 255, 35, 45, 59, 255, 38, 50, 66, 255, 38, 51, 68, 255, 47, 62, 79, 255, 48, 60, 76, 255, 51, 63, 80, 255, 44, 56, 73, 255, 41, 53, 68, 255, 39, 51, 63, 255, 43, 55, 69, 255, 51, 64, 78, 255, 55, 70, 84, 255, 63, 77, 93, 255, 51, 63, 74, 255, 53, 62, 74, 255, 60, 65, 79, 255, 57, 64, 75, 255, 50, 56, 67, 255, 50, 59, 72, 255, 51, 60, 69, 255, 47, 61, 71, 255, 50, 62, 76, 255, 56, 66, 79, 255, 51, 61, 69, 255, 50, 61, 74, 255, 49, 62, 77, 255, 50, 62, 77, 255, 53, 66, 77, 255, 59, 72, 80, 255, 68, 82, 94, 255, 64, 76, 90, 255, 54, 64, 73, 255, 50, 61, 74, 255, 58, 62, 79, 255, 38, 45, 58, 255, 48, 54, 67, 255, 42, 48, 61, 255, 53, 60, 71, 255, 53, 62, 77, 255, 57, 66, 86, 255, 45, 56, 71, 255, 57, 71, 89, 255, 67, 79, 96, 255, 64, 78, 94, 255, 62, 76, 95, 255, 58, 70, 88, 255, 55, 70, 89, 255, 53, 67, 84, 255, 65, 80, 100, 255, 69, 82, 93, 255, 64, 76, 86, 255, 51, 61, 73, 255, 37, 45, 58, 255, 52, 59, 72, 255, 52, 57, 72, 255, 60, 66, 81, 255, 58, 64, 80, 255, 48, 56, 71, 255, 38, 47, 64, 255, 36, 46, 62, 255, 60, 68, 84, 255, 55, 63, 78, 255, 44, 53, 70, 255, 45, 53, 71, 255, 40, 48, 66, 255, 38, 50, 65, 255, 41, 54, 69, 255, 48, 62, 81, 255, 50, 65, 84, 255, 49, 61, 76, 255, 50, 64, 80, 255, 42, 55, 71, 255, 38, 52, 65, 255, 49, 61, 75, 255, 57, 70, 86, 255, 61, 79, 94, 255, 67, 85, 101, 255, 54, 67, 78, 255, 54, 62, 72, 255, 69, 74, 88, 255, 69, 75, 89, 255, 53, 59, 70, 255, 46, 54, 65, 255, 47, 53, 61, 255, 50, 60, 68, 255, 58, 67, 82, 255, 61, 71, 85, 255, 59, 68, 78, 255, 66, 76, 91, 255, 56, 65, 78, 255, 59, 68, 81, 255, 58, 71, 89, 255, 72, 83, 100, 255, 71, 84, 96, 255, 72, 87, 104, 255, 58, 70, 78, 255, 53, 64, 76, 255, 52, 59, 73, 255, 42, 46, 56, 255, 48, 55, 67, 255, 50, 57, 68, 255, 52, 56, 68, 255, 52, 58, 68, 255, 58, 70, 82, 255, 62, 74, 90, 255, 70, 81, 101, 255, 80, 95, 114, 255, 69, 84, 98, 255, 59, 72, 87, 255, 59, 69, 86, 255, 64, 74, 92, 255, 62, 74, 89, 255, 71, 80, 98, 255, 70, 79, 89, 255, 64, 76, 85, 255, 50, 57, 68, 255, 44, 51, 61, 255, 54, 60, 75, 255, 56, 64, 78, 255, 64, 76, 86, 255, 40, 48, 58, 255, 38, 46, 59, 255, 37, 48, 63, 255, 35, 44, 56, 255, 52, 58, 69, 255, 44, 52, 62, 255, 41, 50, 65, 255, 48, 57, 75, 255, 46, 52, 66, 255, 41, 51, 65, 255, 46, 58, 76, 255, 46, 58, 74, 255, 48, 61, 74, 255, 48, 60, 74, 255, 44, 57, 72, 255, 54, 68, 86, 255, 44, 56, 70, 255, 49, 60, 75, 255, 62, 76, 92, 255, 73, 88, 107, 255, 56, 69, 79, 255, 55, 68, 80, 255, 56, 65, 79, 255, 60, 63, 76, 255, 72, 74, 88, 255, 55, 60, 67, 255, 49, 56, 64, 255, 54, 63, 76, 255, 65, 72, 83, 255, 58, 68, 80, 255, 63, 71, 84, 255, 65, 73, 85, 255, 62, 74, 92, 255, 66, 77, 92, 255, 60, 70, 82, 255, 55, 64, 77, 255, 68, 79, 93, 255, 67, 79, 95, 255, 59, 72, 85, 255, 58, 66, 78, 255, 47, 57, 67, 255, 55, 63, 77, 255, 58, 63, 79, 255, 60, 66, 81, 255, 57, 63, 75, 255, 68, 73, 89, 255, 57, 66, 76, 255, 49, 62, 72, 255, 66, 79, 97, 255, 59, 72, 86, 255, 79, 92, 113, 255, 63, 77, 95, 255, 63, 72, 88, 255, 72, 79, 96, 255, 71, 77, 98, 255, 64, 72, 84, 255, 68, 73, 88, 255, 67, 72, 82, 255, 68, 75, 84, 255, 56, 62, 72, 255, 51, 59, 71, 255, 59, 65, 82, 255, 50, 58, 76, 255, 66, 81, 97, 255, 54, 66, 76, 255, 41, 49, 59, 255, 46, 54, 67, 255, 39, 46, 58, 255, 47, 51, 59, 255, 40, 47, 57, 255, 39, 47, 60, 255, 43, 49, 58, 255, 48, 51, 63, 255, 50, 56, 72, 255, 51, 61, 81, 255, 47, 57, 73, 255, 49, 57, 72, 255, 45, 54, 70, 255, 45, 58, 76, 255, 50, 62, 77, 255, 44, 56, 72, 255, 58, 66, 84, 255, 59, 69, 82, 255, 65, 73, 90, 255, 62, 70, 83, 255, 63, 69, 85, 255, 56, 59, 72, 255, 57, 60, 70, 255, 57, 59, 70, 255, 64, 68, 79, 255, 49, 53, 63, 255, 66, 67, 79, 255, 64, 73, 83, 255, 65, 75, 88, 255, 71, 82, 95, 255, 65, 76, 91, 255, 69, 83, 101, 255, 63, 76, 94, 255, 63, 77, 93, 255, 57, 67, 80, 255, 51, 58, 71, 255, 55, 64, 74, 255, 66, 69, 79, 255, 55, 63, 69, 255, 50, 59, 65, 255, 53, 62, 71, 255, 57, 62, 76, 255, 55, 61, 77, 255, 56, 62, 75, 255, 56, 65, 77, 255, 57, 67, 77, 255, 49, 63, 76, 255, 68, 82, 101, 255, 78, 89, 110, 255, 70, 81, 96, 255, 71, 80, 96, 255, 67, 76, 93, 255, 62, 69, 81, 255, 62, 67, 84, 255, 69, 76, 89, 255, 73, 80, 92, 255, 65, 71, 78, 255, 63, 66, 74, 255, 59, 63, 71, 255, 60, 67, 83, 255, 54, 66, 78, 255, 52, 67, 81, 255, 52, 66, 84, 255, 63, 77, 92, 255, 54, 64, 72, 255, 44, 51, 61, 255, 45, 52, 63, 255, 47, 54, 65, 255, 38, 46, 56, 255, 42, 48, 62, 255, 53, 56, 69, 255, 53, 57, 71, 255, 50, 57, 68, 255, 51, 60, 76, 255, 53, 60, 77, 255, 50, 54, 67, 255, 49, 57, 76, 255, 45, 57, 74, 255, 48, 60, 75, 255, 53, 63, 76, 255, 54, 61, 73, 255, 62, 68, 80, 255, 72, 78, 97, 255, 62, 71, 83, 255, 62, 60, 72, 255, 57, 59, 72, 255, 58, 58, 73, 255, 66, 65, 81, 255, 66, 71, 82, 255, 50, 54, 62, 255, 54, 55, 63, 255, 63, 73, 89, 255, 67, 79, 96, 255, 75, 86, 102, 255, 77, 87, 104, 255, 72, 83, 103, 255, 68, 81, 97, 255, 68, 81, 98, 255, 55, 66, 80, 255, 44, 52, 63, 255, 51, 61, 75, 255, 56, 64, 74, 255, 53, 57, 69, 255, 54, 57, 67, 255, 69, 73, 88, 255, 70, 74, 92, 255, 55, 60, 71, 255, 62, 73, 87, 255, 56, 65, 80, 255, 55, 62, 74, 255, 50, 58, 69, 255, 65, 79, 96, 255, 80, 89, 109, 255, 78, 90, 107, 255, 74, 84, 105, 255, 71, 84, 102, 255, 61, 70, 88, 255, 58, 67, 80, 255, 67, 74, 91, 255, 71, 81, 95, 255, 83, 89, 106, 255, 68, 73, 85, 255, 64, 68, 78, 255, 71, 77, 92, 255, 69, 79, 94, 255, 73, 88, 105, 255, 68, 83, 96, 255, 59, 68, 85, 255, 62, 70, 82, 255, 49, 54, 62, 255, 53, 61, 71, 255, 41, 48, 57, 255, 33, 41, 53, 255, 44, 53, 68, 255, 56, 59, 72, 255, 44, 49, 63, 255, 43, 52, 65, 255, 47, 57, 72, 255, 54, 63, 80, 255, 50, 58, 72, 255, 48, 58, 74, 255, 49, 60, 77, 255, 54, 66, 82, 255, 49, 58, 71, 255, 64, 71, 84, 255, 58, 64, 73, 255, 55, 62, 74, 255, 62, 69, 83, 255, 62, 62, 77, 255, 62, 65, 79, 255, 60, 63, 78, 255, 57, 60, 76, 255, 57, 63, 75, 255, 59, 59, 70, 255, 52, 51, 56, 255, 53, 63, 74, 255, 66, 81, 102, 255, 68, 79, 98, 255, 70, 80, 97, 255, 58, 70, 80, 255, 63, 74, 88, 255, 59, 70, 86, 255, 66, 80, 101, 255, 52, 61, 76, 255, 43, 53, 66, 255, 56, 61, 76, 255, 51, 54, 69, 255, 55, 58, 72, 255, 45, 51, 63, 255, 50, 58, 69, 255, 58, 64, 78, 255, 68, 78, 98, 255, 57, 68, 79, 255, 66, 75, 92, 255, 67, 77, 90, 255, 66, 82, 100, 255, 83, 100, 118, 255, 82, 98, 111, 255, 68, 78, 91, 255, 66, 73, 88, 255, 63, 72, 89, 255, 53, 60, 72, 255, 63, 73, 92, 255, 68, 78, 93, 255, 66, 74, 85, 255, 66, 72, 82, 255, 70, 75, 88, 255, 69, 76, 89, 255, 66, 71, 88, 255, 56, 65, 78, 255, 59, 66, 80, 255, 60, 62, 72, 255, 67, 74, 85, 255, 50, 56, 67, 255, 54, 62, 76, 255, 37, 46, 56, 255, 30, 38, 51, 255, 39, 46, 61, 255, 53, 57, 72, 255, 50, 57, 70, 255, 48, 57, 72, 255, 43, 53, 65, 255, 46, 53, 68, 255, 49, 58, 75, 255, 52, 60, 77, 255, 48, 58, 76, 255, 62, 73, 90, 255, 61, 73, 91, 255, 61, 71, 84, 255, 57, 65, 74, 255, 64, 70, 85, 255, 64, 69, 85, 255, 56, 61, 74, 255, 51, 58, 71, 255, 56, 61, 77, 255, 59, 62, 77, 255, 56, 61, 73, 255, 62, 66, 75, 255, 69, 81, 93, 255, 75, 89, 101, 255, 57, 71, 84, 255, 62, 75, 93, 255, 59, 72, 89, 255, 56, 65, 82, 255, 68, 81, 95, 255, 61, 77, 92, 255, 50, 61, 75, 255, 48, 57, 69, 255, 50, 59, 72, 255, 40, 46, 59, 255, 41, 46, 57, 255, 41, 47, 56, 255, 49, 53, 67, 255, 50, 59, 70, 255, 55, 62, 77, 255, 58, 65, 81, 255, 56, 67, 78, 255, 65, 76, 90, 255, 68, 79, 95, 255, 60, 76, 95, 255, 72, 88, 108, 255, 74, 84, 103, 255, 80, 86, 104, 255, 76, 83, 101, 255, 65, 77, 93, 255, 75, 86, 106, 255, 59, 68, 84, 255, 60, 68, 79, 255, 56, 61, 71, 255, 59, 66, 76, 255, 63, 72, 83, 255, 64, 72, 83, 255, 70, 76, 94, 255, 59, 68, 76, 255, 45, 53, 63, 255, 52, 58, 66, 255, 66, 73, 83, 255, 62, 70, 80, 255, 40, 46, 58, 255, 35, 43, 58, 255, 33, 42, 56, 255, 36, 44, 57, 255, 39, 47, 60, 255, 49, 58, 73, 255, 46, 55, 67, 255, 48, 59, 73, 255, 52, 60, 74, 255, 47, 55, 65, 255, 52, 59, 70, 255, 47, 57, 69, 255, 54, 66, 81, 255, 56, 68, 85, 255, 62, 74, 94, 255, 70, 81, 97, 255, 59, 66, 80, 255, 61, 67, 79, 255, 70, 78, 96, 255, 56, 62, 77, 255, 58, 63, 81, 255, 50, 55, 66, 255, 54, 56, 70, 255, 60, 67, 86, 255, 65, 77, 90, 255, 73, 89, 99, 255, 65, 80, 93, 255, 58, 69, 83, 255, 47, 58, 70, 255, 40, 49, 63, 255, 55, 67, 81, 255, 63, 76, 88, 255, 57, 66, 85, 255, 51, 61, 71, 255, 56, 60, 71, 255, 48, 51, 61, 255, 38, 41, 49, 255, 45, 50, 61, 255, 47, 52, 63, 255, 67, 73, 90, 255, 58, 66, 77, 255, 65, 77, 99, 255, 70, 80, 99, 255, 71, 82, 100, 255, 73, 83, 100, 255, 73, 88, 105, 255, 71, 88, 106, 255, 71, 90, 107, 255, 80, 94, 108, 255, 70, 83, 95, 255, 66, 77, 86, 255, 68, 78, 88, 255, 62, 69, 81, 255, 58, 65, 76, 255, 66, 73, 85, 255, 57, 65, 74, 255, 59, 67, 76, 255, 56, 65, 75, 255, 61, 69, 79, 255, 60, 69, 82, 255, 55, 63, 75, 255, 56, 63, 78, 255, 57, 65, 76, 255, 62, 72, 84, 255, 46, 53, 65, 255, 34, 42, 56, 255, 38, 47, 62, 255, 39, 47, 60, 255, 37, 46, 58, 255, 46, 55, 70, 255, 49, 58, 72, 255, 49, 57, 73, 255, 47, 53, 67, 255, 41, 48, 61, 255, 46, 55, 66, 255, 42, 49, 60, 255, 51, 61, 72, 255, 50, 62, 73, 255, 60, 69, 87, 255, 59, 67, 76, 255, 59, 66, 79, 255, 72, 80, 95, 255, 66, 73, 92, 255, 61, 65, 79, 255, 55, 58, 72, 255, 52, 58, 69, 255, 55, 58, 70, 255, 64, 75, 90, 255, 67, 81, 98, 255, 74, 86, 100, 255, 63, 75, 87, 255, 56, 65, 78, 255, 50, 59, 75, 255, 34, 44, 57, 255, 51, 60, 74, 255, 63, 74, 87, 255, 50, 60, 71, 255, 45, 53, 63, 255, 40, 45, 56, 255, 49, 52, 60, 255, 48, 50, 59, 255, 49, 53, 62, 255, 44, 50, 56, 255, 55, 58, 74, 255, 57, 66, 76, 255, 54, 62, 76, 255, 55, 65, 74, 255, 66, 79, 96, 255, 66, 78, 91, 255, 72, 87, 104, 255, 78, 93, 110, 255, 73, 91, 111, 255, 86, 102, 118, 255, 78, 95, 110, 255, 76, 89, 100, 255, 56, 63, 72, 255, 59, 65, 76, 255, 62, 66, 74, 255, 65, 70, 80, 255, 67, 75, 88, 255, 65, 69, 81, 255, 59, 66, 80, 255, 59, 69, 82, 255, 55, 64, 75, 255, 65, 73, 91, 255, 58, 65, 79, 255, 63, 69, 79, 255, 52, 60, 72, 255, 47, 55, 68, 255, 37, 45, 58, 255, 44, 55, 71, 255, 46, 56, 68, 255, 36, 44, 53, 255, 41, 50, 65, 255, 49, 59, 71, 255, 46, 53, 66, 255, 52, 56, 67, 255, 47, 58, 72, 255, 49, 58, 72, 255, 46, 54, 67, 255, 60, 71, 85, 255, 56, 69, 82, 255, 66, 80, 96, 255, 74, 83, 98, 255, 66, 76, 92, 255, 61, 69, 82, 255, 69, 83, 103, 255, 70, 89, 110, 255, 70, 87, 106, 255, 69, 86, 102, 255, 65, 77, 85, 255, 70, 82, 101, 255, 65, 76, 94, 255, 70, 81, 97, 255, 58, 69, 80, 255, 57, 68, 80, 255, 49, 57, 72, 255, 34, 41, 55, 255, 43, 50, 66, 255, 59, 65, 83, 255, 57, 64, 75, 255, 52, 62, 72, 255, 45, 54, 63, 255, 48, 55, 63, 255, 49, 53, 60, 255, 48, 52, 61, 255, 56, 60, 70, 255, 62, 63, 79, 255, 55, 62, 73, 255, 59, 67, 82, 255, 60, 70, 78, 255, 60, 72, 89, 255, 68, 81, 98, 255, 85, 96, 113, 255, 78, 92, 107, 255, 83, 96, 112, 255, 84, 99, 118, 255, 77, 94, 112, 255, 70, 84, 97, 255, 68, 76, 88, 255, 59, 65, 75, 255, 58, 66, 75, 255, 62, 69, 82, 255, 73, 80, 93, 255, 71, 78, 92, 255, 56, 62, 74, 255, 58, 66, 82, 255, 66, 73, 91, 255, 59, 66, 84, 255, 58, 65, 80, 255, 61, 68, 81, 255, 47, 56, 68, 255, 48, 56, 72, 255, 40, 49, 62, 255, 44, 54, 70, 255, 37, 46, 60, 255, 39, 48, 61, 255, 41, 51, 65, 255, 49, 59, 71, 255, 58, 72, 81, 255, 65, 76, 90, 255, 54, 62, 72, 255, 52, 63, 75, 255, 60, 70, 86, 255, 62, 74, 94, 255, 58, 73, 90, 255, 67, 80, 103, 255, 72, 84, 102, 255, 68, 80, 96, 255, 71, 82, 96, 255, 59, 72, 91, 255, 62, 77, 95, 255, 54, 67, 80, 255, 68, 80, 101, 255, 55, 68, 77, 255, 57, 69, 81, 255, 63, 78, 89, 255, 61, 71, 81, 255, 62, 67, 81, 255, 57, 65, 81, 255, 40, 45, 55, 255, 34, 41, 54, 255, 42, 50, 63, 255, 40, 46, 57, 255, 49, 55, 64, 255, 60, 67, 78, 255, 53, 61, 71, 255, 53, 59, 68, 255, 57, 63, 73, 255, 46, 53, 61, 255, 50, 56, 63, 255, 54, 60, 71, 255, 50, 57, 69, 255, 59, 68, 82, 255, 55, 67, 80, 255, 64, 78, 94, 255, 71, 86, 105, 255, 82, 92, 111, 255, 75, 87, 100, 255, 77, 92, 107, 255, 76, 95, 112, 255, 65, 77, 89, 255, 63, 76, 92, 255, 57, 68, 83, 255, 59, 69, 82, 255, 63, 71, 84, 255, 71, 75, 87, 255, 73, 80, 91, 255, 70, 81, 94, 255, 57, 64, 77, 255, 62, 71, 84, 255, 66, 73, 88, 255, 59, 66, 85, 255, 48, 56, 69, 255, 50, 57, 71, 255, 51, 59, 76, 255, 44, 55, 69, 255, 43, 54, 69, 255, 36, 45, 60, 255, 39, 49, 64, 255, 43, 53, 67, 255, 47, 56, 71, 255, 53, 63, 77, 255, 71, 88, 105, 255, 67, 84, 94, 255, 48, 57, 64, 255, 55, 67, 80, 255, 56, 69, 82, 255, 61, 74, 93, 255, 51, 64, 82, 255, 59, 71, 88, 255, 53, 65, 76, 255, 49, 61, 70, 255, 48, 61, 70, 255, 53, 59, 74, 255, 50, 59, 74, 255, 55, 66, 79, 255, 51, 59, 75, 255, 48, 56, 65, 255, 58, 66, 79, 255, 74, 87, 99, 255, 62, 71, 82, 255, 61, 68, 79, 255, 58, 65, 74, 255, 53, 57, 70, 255, 42, 46, 55, 255, 34, 40, 50, 255, 42, 48, 58, 255, 42, 46, 55, 255, 53, 57, 66, 255, 56, 66, 74, 255, 49, 57, 67, 255, 49, 54, 64, 255, 54, 62, 69, 255, 45, 52, 63, 255, 43, 52, 64, 255, 61, 74, 90, 255, 55, 68, 84, 255, 53, 68, 84, 255, 63, 78, 96, 255, 61, 74, 87, 255, 68, 77, 89, 255, 73, 83, 95, 255, 69, 83, 99, 255, 70, 89, 109, 255, 65, 82, 96, 255, 62, 78, 94, 255, 60, 73, 88, 255, 60, 73, 86, 255, 66, 79, 93, 255, 66, 75, 86, 255, 65, 74, 84, 255, 58, 68, 79, 255, 56, 64, 77, 255, 52, 60, 72, 255, 53, 60, 71, 255, 56, 62, 71, 255, 49, 57, 69, 255, 46, 55, 68, 255, 47, 56, 69, 255, 43, 55, 70, 255, 49, 60, 77, 255, 40, 49, 64, 255, 40, 48, 62, 255, 50, 59, 73, 255, 59, 68, 84, 255, 60, 72, 86, 255, 69, 79, 92, 255, 65, 76, 87, 255, 55, 64, 71, 255, 42, 47, 51, 255, 49, 55, 67, 255, 57, 65, 78, 255, 51, 55, 66, 255, 48, 54, 64, 255, 54, 65, 79, 255, 56, 68, 80, 255, 50, 61, 71, 255, 52, 61, 76, 255, 57, 68, 80, 255, 56, 61, 76, 255, 58, 68, 81, 255, 51, 56, 67, 255, 69, 76, 97, 255, 64, 69, 89, 255, 72, 84, 102, 255, 56, 65, 80, 255, 72, 75, 97, 255, 48, 53, 61, 255, 47, 51, 57, 255, 38, 46, 58, 255, 42, 50, 63, 255, 42, 48, 59, 255, 54, 63, 75, 255, 59, 68, 81, 255, 62, 71, 84, 255, 61, 70, 82, 255, 59, 70, 81, 255, 47, 58, 67, 255, 44, 56, 72, 255, 54, 67, 84, 255, 46, 61, 75, 255, 49, 61, 76, 255, 61, 75, 93, 255, 60, 73, 87, 255, 61, 74, 90, 255, 57, 70, 84, 255, 60, 75, 88, 255, 50, 65, 79, 255, 67, 83, 99, 255, 68, 83, 96, 255, 57, 70, 84, 255, 62, 77, 93, 255, 81, 94, 112, 255, 73, 86, 102, 255, 65, 76, 90, 255, 56, 66, 80, 255, 56, 66, 83, 255, 60, 71, 88, 255, 51, 59, 70, 255, 49, 56, 68, 255, 50, 58, 71, 255, 46, 54, 64, 255, 47, 57, 67, 255, 45, 54, 66, 255, 49, 60, 74, 255, 47, 58, 70, 255, 50, 59, 74, 255, 64, 73, 91, 255, 63, 74, 93, 255, 57, 66, 80, 255, 56, 71, 88, 255, 59, 72, 88, 255, 46, 52, 59, 255, 45, 47, 52, 255, 44, 48, 59, 255, 54, 61, 73, 255, 49, 56, 68, 255, 66, 73, 89, 255, 53, 59, 73, 255, 62, 71, 86, 255, 55, 59, 71, 255, 50, 59, 70, 255, 54, 61, 78, 255, 58, 60, 78, 255, 55, 61, 68, 255, 56, 63, 81, 255, 62, 70, 91, 255, 56, 66, 78, 255, 57, 67, 79, 255, 46, 53, 64, 255, 55, 61, 76, 255, 52, 59, 66, 255, 54, 58, 77, 255, 52, 61, 80, 255, 49, 55, 68, 255, 45, 51, 63, 255, 56, 65, 77, 255, 50, 59, 72, 255, 64, 76, 87, 255, 70, 80, 93, 255, 71, 81, 92, 255, 60, 74, 85, 255, 60, 74, 91, 255, 55, 68, 84, 255, 49, 62, 75, 255, 49, 60, 72, 255, 53, 66, 81, 255, 58, 71, 87, 255, 59, 74, 90, 255, 55, 68, 82, 255, 71, 84, 99, 255, 63, 75, 92, 255, 59, 71, 87, 255, 70, 84, 99, 255, 66, 79, 95, 255, 58, 73, 88, 255, 59, 72, 87, 255, 64, 76, 95, 255, 62, 74, 91, 255, 61, 73, 86, 255, 52, 65, 80, 255, 60, 71, 91, 255, 54, 65, 79, 255, 44, 56, 71, 255, 45, 55, 69, 255, 47, 56, 71, 255, 50, 59, 70, 255, 47, 55, 67, 255, 51, 61, 77, 255, 55, 64, 81, 255, 61, 68, 84, 255, 70, 77, 97, 255, 70, 78, 95, 255, 72, 81, 102, 255, 63, 77, 95, 255, 62, 77, 95, 255, 60, 69, 85, 255, 47, 50, 58, 255, 41, 46, 57, 255, 42, 49, 60, 255, 52, 57, 69, 255, 51, 56, 68, 255, 56, 59, 70, 255, 53, 58, 68, 255, 46, 52, 62, 255, 48, 55, 64, 255, 50, 55, 74, 255, 42, 47, 60, 255, 57, 65, 74, 255, 58, 65, 79, 255, 55, 63, 77, 255, 60, 66, 80, 255, 64, 72, 86, 255, 61, 69, 81, 255, 60, 68, 82, 255, 62, 68, 87, 255, 58, 64, 79, 255, 60, 66, 88, 255, 61, 67, 87, 255, 44, 51, 64, 255, 42, 54, 66, 255, 46, 60, 74, 255, 59, 70, 87, 255, 71, 84, 99, 255, 80, 94, 110, 255, 72, 88, 104, 255, 85, 102, 127, 255, 55, 67, 82, 255, 48, 62, 76, 255, 48, 62, 77, 255, 55, 71, 89, 255, 57, 71, 87, 255, 66, 79, 94, 255, 65, 78, 92, 255, 57, 69, 83, 255, 51, 64, 79, 255, 52, 63, 80, 255, 52, 63, 80, 255, 63, 76, 96, 255, 62, 76, 94, 255, 63, 76, 93, 255, 58, 68, 83, 255, 55, 66, 80, 255, 59, 71, 88, 255, 54, 67, 84, 255, 52, 64, 82, 255, 52, 63, 78, 255, 50, 60, 73, 255, 47, 59, 74, 255, 53, 65, 82, 255, 56, 66, 78, 255, 58, 66, 79, 255, 65, 76, 90, 255, 65, 75, 91, 255, 66, 74, 93, 255, 66, 73, 91, 255, 73, 82, 99, 255, 67, 77, 94, 255, 66, 78, 94, 255, 58, 69, 85, 255, 49, 58, 73, 255, 50, 58, 69, 255, 52, 57, 73, 255, 43, 49, 58, 255, 56, 59, 69, 255, 50, 56, 67, 255, 64, 67, 80, 255, 57, 59, 70, 255, 42, 47, 55, 255, 45, 51, 65, 255, 55, 61, 81, 255, 48, 52, 64, 255, 52, 57, 63, 255, 45, 51, 58, 255, 58, 66, 79, 255, 72, 78, 102, 255, 74, 84, 104, 255, 56, 66, 74, 255, 67, 75, 87, 255, 70, 73, 95, 255, 52, 61, 76, 255, 52, 62, 81, 255, 53, 62, 81, 255, 41, 49, 64, 255, 41, 53, 69, 255, 50, 66, 82, 255, 48, 61, 78, 255, 48, 61, 78, 255, 57, 70, 86, 255, 48, 62, 75, 255, 65, 80, 97, 255, 71, 88, 105, 255, 67, 82, 100, 255, 58, 71, 90, 255, 59, 73, 92, 255, 55, 68, 84, 255, 62, 74, 89, 255, 63, 74, 91, 255, 50, 60, 75, 255, 46, 59, 75, 255, 59, 73, 93, 255, 69, 83, 101, 255, 54, 66, 83, 255, 57, 71, 89, 255, 72, 84, 106, 255, 64, 77, 96, 255, 62, 75, 91, 255, 60, 74, 92, 255, 51, 66, 83, 255, 49, 61, 76, 255, 51, 63, 77, 255, 52, 61, 75, 255, 64, 74, 91, 255, 71, 82, 97, 255, 77, 86, 101, 255, 59, 69, 80, 255, 60, 70, 80, 255, 64, 74, 85, 255, 66, 77, 95, 255, 62, 74, 92, 255, 65, 77, 97, 255, 70, 84, 98, 255, 58, 70, 85, 255, 54, 66, 84, 255, 44, 52, 65, 255, 48, 58, 71, 255, 48, 54, 69, 255, 47, 53, 67, 255, 54, 60, 72, 255, 47, 52, 60, 255, 51, 53, 62, 255, 44, 47, 55, 255, 44, 48, 58, 255, 46, 52, 67, 255, 45, 48, 58, 255, 50, 53, 65, 255, 60, 63, 76, 255, 66, 72, 90, 255, 66, 72, 86, 255, 65, 72, 93, 255, 62, 72, 87, 255, 56, 63, 73, 255, 52, 57, 65, 255, 64, 69, 84, 255, 56, 64, 81, 255, 52, 62, 77, 255, 49, 58, 76, 255, 48, 56, 72, 255, 42, 53, 68, 255, 56, 71, 86, 255, 46, 60, 75, 255, 51, 64, 80, 255, 54, 65, 80, 255, 54, 64, 77, 255, 65, 76, 88, 255, 67, 79, 90, 255, 80, 96, 112, 255, 72, 87, 110, 255, 69, 84, 107, 255, 51, 65, 83, 255, 49, 63, 78, 255, 53, 66, 82, 255, 49, 59, 73, 255, 54, 67, 84, 255, 68, 80, 100, 255, 64, 75, 91, 255, 57, 69, 84, 255, 58, 71, 87, 255, 64, 79, 95, 255, 60, 71, 86, 255, 55, 68, 85, 255, 58, 72, 88, 255, 77, 92, 109, 255, 64, 79, 91, 255, 66, 77, 89, 255, 64, 75, 88, 255, 56, 64, 78, 255, 67, 77, 91, 255, 67, 78, 90, 255, 56, 64, 75, 255, 53, 60, 69, 255, 53, 64, 76, 255, 59, 69, 85, 255, 57, 69, 87, 255, 60, 70, 87, 255, 58, 68, 78, 255, 55, 65, 78, 255, 57, 68, 82, 255, 61, 72, 83, 255, 51, 63, 74, 255, 48, 57, 72, 255, 52, 58, 72, 255, 54, 57, 72, 255, 47, 56, 64, 255, 48, 55, 64, 255, 48, 51, 55, 255, 46, 48, 57, 255, 45, 49, 61, 255, 44, 47, 57, 255, 50, 53, 66, 255, 56, 58, 75, 255, 65, 68, 85, 255, 61, 65, 82, 255, 69, 77, 99, 255, 59, 71, 84, 255, 53, 61, 66, 255, 53, 59, 65, 255, 75, 81, 98, 255, 59, 68, 83, 255, 56, 65, 83, 255, 58, 66, 82, 255, 49, 59, 78, 255, 52, 66, 84, 255, 51, 66, 84, 255, 53, 65, 85, 255, 45, 58, 76, 255, 47, 56, 69, 255, 43, 52, 62, 255, 57, 66, 84, 255, 62, 68, 84, 255, 55, 67, 78, 255, 65, 79, 94, 255, 70, 81, 103, 255, 64, 73, 93, 255, 62, 75, 93, 255, 61, 74, 91, 255, 59, 71, 87, 255, 74, 81, 99, 255, 63, 71, 92, 255, 60, 68, 88, 255, 59, 71, 90, 255, 65, 80, 98, 255, 61, 74, 90, 255, 63, 75, 90, 255, 68, 83, 98, 255, 75, 90, 104, 255, 78, 95, 108, 255, 77, 94, 110, 255, 64, 79, 93, 255, 62, 73, 87, 255, 54, 65, 77, 255, 52, 62, 75, 255, 54, 65, 75, 255, 56, 66, 74, 255, 62, 71, 84, 255, 60, 74, 90, 255, 65, 79, 101, 255, 62, 75, 95, 255, 56, 66, 79, 255, 65, 76, 89, 255, 59, 74, 91, 255, 68, 83, 99, 255, 67, 80, 97, 255, 65, 78, 94, 255, 61, 74, 92, 255, 55, 63, 78, 255, 51, 59, 73, 255, 51, 60, 73, 255, 49, 57, 66, 255, 57, 61, 69, 255, 65, 66, 81, 255, 45, 50, 58, 255, 44, 48, 57, 255, 41, 46, 57, 255, 46, 51, 62, 255, 59, 66, 81, 255, 65, 70, 91, 255, 64, 78, 98, 255, 66, 81, 94, 255, 65, 73, 85, 255, 64, 72, 85, 255, 65, 66, 82, 255, 62, 70, 88, 255, 58, 66, 85, 255, 61, 70, 86, 255, 48, 56, 69, 255, 48, 58, 76, 255, 52, 65, 82, 255, 42, 53, 67, 255, 39, 49, 65, 255, 42, 52, 68, 255, 43, 52, 65, 255, 59, 67, 84, 255, 57, 65, 83, 255, 56, 64, 77, 255, 56, 64, 76, 255, 51, 59, 74, 255, 59, 69, 87, 255, 51, 63, 83, 255, 57, 68, 84, 255, 49, 60, 72, 255, 74, 85, 103, 255, 73, 82, 106, 255, 71, 80, 102, 255, 74, 86, 104, 255, 72, 88, 107, 255, 71, 83, 103, 255, 69, 84, 99, 255, 75, 93, 110, 255, 81, 97, 113, 255, 83, 98, 120, 255, 73, 91, 116, 255, 69, 85, 104, 255, 65, 80, 97, 255, 70, 84, 98, 255, 55, 69, 84, 255, 57, 68, 80, 255, 59, 70, 80, 255, 58, 70, 85, 255, 59, 71, 88, 255, 58, 70, 88, 255, 55, 68, 83, 255, 58, 68, 82, 255, 62, 75, 92, 255, 68, 85, 102, 255, 71, 88, 111, 255, 62, 77, 89, 255, 67, 82, 98, 255, 60, 71, 87, 255, 61, 73, 88, 255, 53, 62, 72, 255, 49, 57, 65, 255, 55, 57, 68, 255, 61, 64, 73, 255, 61, 65, 78, 255, 47, 55, 67, 255, 40, 47, 56, 255, 46, 53, 67, 255, 57, 64, 80, 255, 57, 65, 81, 255, 58, 74, 91, 255, 73, 92, 112, 255, 72, 91, 105, 255, 60, 70, 85, 255, 75, 79, 104, 255, 71, 79, 103, 255, 65, 75, 91, 255, 57, 67, 82, 255, 53, 66, 80, 255, 58, 68, 81, 255, 61, 75, 97, 255, 71, 91, 111, 255, 65, 80, 96, 255, 49, 59, 71, 255, 41, 49, 65, 255, 41, 49, 62, 255, 49, 59, 72, 255, 54, 61, 74, 255, 56, 63, 81, 255, 54, 61, 77, 255, 61, 69, 85, 255, 46, 56, 69, 255, 44, 54, 66, 255, 60, 68, 85, 255, 59, 71, 83, 255, 64, 76, 93, 255, 66, 80, 95, 255, 67, 81, 102, 255, 70, 86, 104, 255, 76, 89, 108, 255, 80, 94, 112, 255, 62, 77, 93, 255, 68, 83, 100, 255, 76, 89, 106, 255, 83, 99, 120, 255, 74, 90, 112, 255, 67, 84, 104, 255, 65, 84, 105, 255, 66, 80, 100, 255, 70, 83, 101, 255, 57, 69, 87, 255, 69, 85, 103, 255, 65, 81, 96, 255, 59, 69, 85, 255, 57, 69, 84, 255, 57, 70, 87, 255, 56, 68, 85, 255, 48, 60, 79, 255, 66, 80, 101, 255, 62, 77, 97, 255, 60, 72, 89, 255, 62, 76, 93, 255, 63, 75, 89, 255, 56, 66, 79, 255, 54, 64, 75, 255, 51, 60, 67, 255, 55, 57, 68, 255, 62, 67, 81, 255, 49, 54, 65, 255, 46, 53, 69, 255, 41, 49, 62, 255, 48, 58, 74, 255, 61, 70, 87, 255, 50, 58, 70, 255, 61, 76, 95, 255, 78, 96, 117, 255, 85, 102, 124, 255, 80, 95, 104, 255, 55, 61, 68, 255, 74, 80, 95, 255, 66, 71, 90, 255, 59, 67, 82, 255, 53, 62, 77, 255, 52, 61, 74, 255, 67, 79, 96, 255, 78, 95, 116, 255, 66, 78, 95, 255, 60, 68, 84, 255, 53, 58, 71, 255, 44, 49, 61, 255, 47, 53, 70, 255, 56, 63, 77, 255, 53, 59, 75, 255, 55, 61, 75, 255, 57, 61, 76, 255, 67, 74, 90, 255, 75, 86, 105, 255, 65, 73, 89, 255, 62, 72, 84, 255, 70, 82, 97, 255, 67, 79, 90, 255, 74, 90, 108, 255, 76, 90, 108, 255, 65, 80, 101, 255, 58, 70, 86, 255, 57, 67, 77, 255, 62, 73, 88, 255, 67, 80, 96, 255, 67, 80, 98, 255, 61, 74, 92, 255, 70, 84, 103, 255, 69, 82, 101, 255, 70, 82, 101, 255, 58, 70, 86, 255, 51, 66, 84, 255, 50, 65, 82, 255, 57, 69, 82, 255, 59, 75, 92, 255, 53, 67, 84, 255, 63, 75, 92, 255, 55, 66, 85, 255, 55, 68, 85, 255, 54, 66, 83, 255, 57, 69, 87, 255, 52, 64, 79, 255, 51, 64, 80, 255, 51, 64, 79, 255, 45, 56, 66, 255, 62, 75, 90, 255, 64, 73, 88, 255, 65, 70, 87, 255, 64, 71, 85, 255, 54, 60, 69, 255, 48, 54, 70, 255, 42, 51, 65, 255, 45, 57, 72, 255, 52, 63, 77, 255, 47, 57, 70, 255, 46, 56, 69, 255, 71, 86, 102, 255, 78, 94, 109, 255, 70, 85, 103, 255, 77, 89, 101, 255, 68, 68, 80, 255, 63, 70, 87, 255, 67, 80, 97, 255, 67, 79, 101, 255, 59, 70, 85, 255, 58, 69, 86, 255, 61, 76, 92, 255, 66, 77, 92, 255, 57, 63, 76, 255, 58, 64, 81, 255, 62, 68, 83, 255, 49, 54, 67, 255, 59, 63, 77, 255, 62, 66, 83, 255, 65, 72, 90, 255, 54, 59, 70, 255, 48, 54, 67, 255, 50, 59, 74, 255, 57, 68, 84, 255, 69, 79, 91, 255, 72, 85, 100, 255, 69, 82, 102, 255, 69, 85, 102, 255, 62, 77, 94, 255, 55, 69, 88, 255, 58, 69, 83, 255, 62, 72, 83, 255, 53, 65, 80, 255, 56, 66, 82, 255, 58, 69, 84, 255, 56, 69, 87, 255, 60, 75, 96, 255, 58, 72, 94, 255, 56, 72, 91, 255, 62, 79, 98, 255, 50, 65, 82, 255, 47, 62, 79, 255, 50, 65, 81, 255, 62, 76, 92, 255, 58, 72, 87, 255, 50, 63, 82, 255, 49, 61, 79, 255, 47, 57, 71, 255, 53, 66, 83, 255, 46, 58, 72, 255, 45, 56, 70, 255, 52, 66, 82, 255, 52, 66, 85, 255, 45, 58, 74, 255, 47, 60, 78, 255, 54, 64, 78, 255, 53, 61, 77, 255, 54, 63, 76, 255, 60, 70, 83, 255, 57, 65, 80, 255, 49, 56, 73, 255, 43, 54, 69, 255, 48, 60, 76, 255, 46, 55, 69, 255, 48, 61, 79, 255, 54, 67, 85, 255, 73, 87, 106, 255, 71, 88, 109, 255, 85, 104, 125, 255, 64, 77, 90, 255, 62, 72, 89, 255, 62, 75, 92, 255, 65, 75, 92, 255, 55, 68, 83, 255, 54, 67, 84, 255, 54, 68, 86, 255, 51, 62, 78, 255, 59, 68, 83, 255, 57, 66, 80, 255, 55, 63, 73, 255, 50, 58, 68, 255, 46, 53, 67, 255, 57, 62, 78, 255, 51, 60, 73, 255, 51, 59, 67, 255, 44, 53, 61, 255, 51, 62, 74, 255, 58, 68, 81, 255, 74, 87, 99, 255, 72, 83, 98, 255, 67, 83, 104, 255, 64, 80, 98, 255, 49, 62, 78, 255, 54, 68, 84, 255, 59, 72, 88, 255, 61, 73, 87, 255, 55, 67, 82, 255, 52, 63, 76, 255, 56, 68, 80, 255, 57, 70, 86, 255, 62, 77, 98, 255, 59, 73, 92, 255, 56, 71, 88, 255, 58, 73, 90, 255, 61, 77, 93, 255, 55, 70, 87, 255, 51, 67, 83, 255, 67, 83, 99, 255, 65, 80, 97, 255, 50, 64, 80, 255, 61, 73, 88, 255, 73, 82, 97, 255, 52, 63, 76, 255, 52, 63, 77, 255, 48, 60, 74, 255, 45, 57, 71, 255, 40, 50, 63, 255, 40, 50, 65, 255, 41, 54, 69, 255, 57, 69, 81, 255, 50, 59, 71, 255, 59, 65, 82, 255, 57, 63, 77, 255, 57, 68, 85, 255, 66, 76, 93, 255, 49, 58, 74, 255, 47, 60, 76, 255, 50, 64, 80, 255, 49, 63, 82, 255, 47, 60, 79, 255, 65, 81, 100, 255, 76, 92, 112, 255, 69, 88, 110, 255, 66, 80, 99, 255, 68, 80, 100, 255, 71, 84, 102, 255, 64, 77, 94, 255, 58, 71, 85, 255, 53, 64, 75, 255, 46, 58, 74, 255, 51, 63, 81, 255, 46, 57, 71, 255, 54, 64, 78, 255, 50, 58, 69, 255, 51, 60, 72, 255, 45, 52, 65, 255, 51, 56, 73, 255, 47, 54, 66, 255, 52, 59, 73, 255, 52, 59, 73, 255, 54, 64, 78, 255, 61, 71, 86, 255, 55, 63, 73, 255, 75, 89, 104, 255, 68, 82, 97, 255, 58, 73, 86, 255, 43, 56, 71, 255, 52, 65, 80, 255, 54, 66, 81, 255, 54, 68, 81, 255, 55, 66, 83, 255, 57, 71, 86, 255, 54, 67, 82, 255, 52, 66, 83, 255, 56, 72, 92, 255, 61, 75, 93, 255, 58, 72, 88, 255, 60, 77, 95, 255, 58, 73, 92, 255, 58, 72, 92, 255, 68, 80, 99, 255, 64, 77, 91, 255, 53, 67, 79, 255, 60, 73, 90, 255, 66, 77, 93, 255, 66, 76, 91, 255, 69, 79, 96, 255, 54, 63, 75, 255, 63, 74, 86, 255, 56, 67, 77, 255, 53, 61, 77, 255, 40, 49, 62, 255, 44, 57, 74, 255, 52, 62, 76, 255, 62, 69, 87, 255, 55, 62, 78, 255, 61, 68, 79, 255, 59, 68, 78, 255, 55, 62, 75, 255, 53, 62, 75, 255, 41, 54, 69, 255, 48, 61, 78, 255, 52, 65, 84, 255, 53, 65, 87, 255, 54, 69, 87, 255, 69, 88, 111, 255, 67, 85, 108, 255, 65, 79, 101, 255 ), "format": "RGBA8", @@ -27,7 +26,7 @@ data = { [sub_resource type="ImageTexture" id=11] flags = 0 flags = 0 -image = SubResource( 10 ) +image = SubResource( 12 ) size = Vector2( 64, 64 ) [sub_resource type="SpatialMaterial" id=8] @@ -38,7 +37,6 @@ size = Vector3( 0.1, 0.1, 0.1 ) [node name="Room" type="Room"] points = PoolVector3Array( 5.01, -0.01, -6.01, 5.01, -0.01, 0.00999975, 5.01, 3.01, 0.00999975, 5.01, 3.01, -6.01, -0.0100001, -0.01, -6.01, -0.0100001, 3.01, -6.01, -0.0100001, -0.01, 0.00999975, -0.0100001, 0.745, 0.00999975, -0.0100001, 3.01, 0.00999975, 0.826667, 3.01, 0.00999975, 0.826667, 0.745, 0.00999975 ) -script = ExtResource( 9 ) [node name="Portal" type="Portal" parent="."] transform = Transform( -1, 0, -9.61651e-07, 0, 1, 0, 9.61651e-07, 0, -1, 2, 1, 0 ) diff --git a/game/test_rooms/Room3.tres b/game/test_rooms/Room3.tres new file mode 100644 index 00000000..d0168f72 --- /dev/null +++ b/game/test_rooms/Room3.tres @@ -0,0 +1,76 @@ +[gd_resource type="PropData" load_steps=16 format=2] + +[ext_resource path="res://modules/core_models/wall_zn.gltf" type="MeshDataResource" id=1] +[ext_resource path="res://modules/planets/test_planet/voxel_library/textures/stone_dungeon_1_albedo.png" type="Texture" id=2] +[ext_resource path="res://test_rooms/test2_tiledwalldata.tres" type="TiledWallData" id=3] + +[sub_resource type="PropDataTiledWall" id=1] +transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 5, 0, 0 ) +width = 10 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=2] +transform = Transform( 1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 0, 0, -10 ) +width = 10 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=3] +transform = Transform( -1, 0, 3.17865e-08, -3.17865e-08, -5.96046e-08, -1, 2.66454e-15, -1, 5.96046e-08, 5, 0, 0 ) +width = 5 +heigth = 10 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=4] +transform = Transform( -1, 0, 3.17865e-08, 3.17865e-08, 5.96046e-08, 1, -1.77636e-15, 1, -5.96046e-08, 5, 3, -10 ) +width = 5 +heigth = 10 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=5] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 0, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=6] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 3, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataMeshData" id=7] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, 0 ) +mesh = ExtResource( 1 ) +texture = ExtResource( 2 ) + +[sub_resource type="PropDataPortal" id=8] +transform = Transform( -1, 0, -9.61651e-07, 0, 1, 0, 9.61651e-07, 0, -1, 2, 1, 0 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[sub_resource type="PropDataTiledWall" id=9] +transform = Transform( -1, 0, -1.43059e-07, 0, 1, 0, 1.43059e-07, 0, -1, 5, 0, -10 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=10] +transform = Transform( -1, 0, -1.43059e-07, 0, 1, 0, 1.43059e-07, 0, -1, 2, 0, -10 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataMeshData" id=11] +transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 3, 2, -10 ) +mesh = ExtResource( 1 ) +texture = ExtResource( 2 ) + +[sub_resource type="PropDataPortal" id=12] +transform = Transform( 1, 0, 1.04907e-06, 0, 1, 0, -1.04907e-06, 0, 1, 3, 1, -10 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[resource] +props = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ), SubResource( 11 ), SubResource( 12 ) ] +is_room = true +room_bounds = PoolVector3Array( 5.01, -0.01, -6.01, 5.01, -0.01, 0.00999975, 5.01, 3.01, 0.00999975, 5.01, 3.01, -6.01, -0.0100001, -0.01, -6.01, -0.0100001, 3.01, -6.01, -0.0100001, -0.01, 0.00999975, -0.0100001, 0.745, 0.00999975, -0.0100001, 3.01, 0.00999975, 0.826667, 3.01, 0.00999975, 0.826667, 0.745, 0.00999975 ) diff --git a/game/test_rooms/Room3.tscn b/game/test_rooms/Room3.tscn new file mode 100644 index 00000000..52407ed3 --- /dev/null +++ b/game/test_rooms/Room3.tscn @@ -0,0 +1,90 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://modules/planets/test_planet/voxel_library/textures/stone_dungeon_1_albedo.png" type="Texture" id=4] +[ext_resource path="res://modules/core_models/wall_zn.gltf" type="MeshDataResource" id=5] +[ext_resource path="res://test_rooms/test2_tiledwalldata.tres" type="TiledWallData" id=10] + +[sub_resource type="SpatialMaterial" id=3] +albedo_texture = ExtResource( 4 ) + +[node name="Room" type="Room"] +points = PoolVector3Array( 5.01, -0.01, -6.01, 5.01, -0.01, 0.00999975, 5.01, 3.01, 0.00999975, 5.01, 3.01, -6.01, -0.0100001, -0.01, -6.01, -0.0100001, 3.01, -6.01, -0.0100001, -0.01, 0.00999975, -0.0100001, 0.745, 0.00999975, -0.0100001, 3.01, 0.00999975, 0.826667, 3.01, 0.00999975, 0.826667, 0.745, 0.00999975 ) + +[node name="WallXP" type="TiledWall" parent="."] +transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 5, 0, 0 ) +width = 10 +heigth = 3 +data = ExtResource( 10 ) + +[node name="WallXN" type="TiledWall" parent="."] +transform = Transform( 1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 0, 0, -10 ) +width = 10 +heigth = 3 +data = ExtResource( 10 ) + +[node name="Floor" type="TiledWall" parent="."] +transform = Transform( -1, 0, 3.17865e-08, -3.17865e-08, -5.96046e-08, -1, 2.66454e-15, -1, 5.96046e-08, 5, 0, 0 ) +width = 5 +heigth = 10 +data = ExtResource( 10 ) + +[node name="Ceiling" type="TiledWall" parent="."] +transform = Transform( -1, 0, 3.17865e-08, 3.17865e-08, 5.96046e-08, 1, -1.77636e-15, 1, -5.96046e-08, 5, 3, -10 ) +width = 5 +heigth = 10 +data = ExtResource( 10 ) + +[node name="wallzp" type="Spatial" parent="."] + +[node name="WallZN2" type="TiledWall" parent="wallzp"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 0, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="WallZN3" type="TiledWall" parent="wallzp"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 3, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="wallsegment3" type="Spatial" parent="wallzp"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0 ) + +[node name="MeshDataInstance3" type="MeshDataInstance" parent="wallzp/wallsegment3"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0 ) +mesh_data = ExtResource( 5 ) +texture = ExtResource( 4 ) +material = SubResource( 3 ) + +[node name="Portal" type="Portal" parent="wallzp"] +transform = Transform( -1, 0, -9.61651e-07, 0, 1, 0, 9.61651e-07, 0, -1, 2, 1, 0 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[node name="wallzp2" type="Spatial" parent="."] +transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 5, 0, -10 ) + +[node name="WallZN2" type="TiledWall" parent="wallzp2"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 0, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="WallZN3" type="TiledWall" parent="wallzp2"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 3, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="wallsegment3" type="Spatial" parent="wallzp2"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0 ) + +[node name="MeshDataInstance3" type="MeshDataInstance" parent="wallzp2/wallsegment3"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0 ) +mesh_data = ExtResource( 5 ) +texture = ExtResource( 4 ) +material = SubResource( 3 ) + +[node name="Portal" type="Portal" parent="wallzp2"] +transform = Transform( -1, 0, -9.61651e-07, 0, 1, 0, 9.61651e-07, 0, -1, 2, 1, 0 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) diff --git a/game/test_rooms/Room4.tres b/game/test_rooms/Room4.tres new file mode 100644 index 00000000..a038a3ad --- /dev/null +++ b/game/test_rooms/Room4.tres @@ -0,0 +1,76 @@ +[gd_resource type="PropData" load_steps=16 format=2] + +[ext_resource path="res://modules/core_models/wall_zn.gltf" type="MeshDataResource" id=1] +[ext_resource path="res://modules/planets/test_planet/voxel_library/textures/stone_dungeon_1_albedo.png" type="Texture" id=2] +[ext_resource path="res://test_rooms/test2_tiledwalldata.tres" type="TiledWallData" id=3] + +[sub_resource type="PropDataTiledWall" id=1] +transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 5, 0, 0 ) +width = 16 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=2] +transform = Transform( 1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 0, 0, -16 ) +width = 16 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=3] +transform = Transform( -1, 0, 3.17865e-08, -3.17865e-08, -5.96046e-08, -1, 2.66454e-15, -1, 5.96046e-08, 5, 0, 0 ) +width = 5 +heigth = 16 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=4] +transform = Transform( -1, 0, 3.17865e-08, 3.17865e-08, 5.96046e-08, 1, -1.77636e-15, 1, -5.96046e-08, 5, 3, -16 ) +width = 5 +heigth = 16 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=5] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 0, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=6] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 3, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataMeshData" id=7] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, 0 ) +mesh = ExtResource( 1 ) +texture = ExtResource( 2 ) + +[sub_resource type="PropDataPortal" id=8] +transform = Transform( -1, 0, -9.61651e-07, 0, 1, 0, 9.61651e-07, 0, -1, 2, 1, 0 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[sub_resource type="PropDataTiledWall" id=9] +transform = Transform( -1, 0, -1.43059e-07, 0, 1, 0, 1.43059e-07, 0, -1, 5, 0, -16 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=10] +transform = Transform( -1, 0, -1.43059e-07, 0, 1, 0, 1.43059e-07, 0, -1, 2, 0, -16 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataMeshData" id=11] +transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 3, 2, -16 ) +mesh = ExtResource( 1 ) +texture = ExtResource( 2 ) + +[sub_resource type="PropDataPortal" id=12] +transform = Transform( 1, 0, 1.04907e-06, 0, 1, 0, -1.04907e-06, 0, 1, 3, 1, -16 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[resource] +props = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ), SubResource( 11 ), SubResource( 12 ) ] +is_room = true +room_bounds = PoolVector3Array( 5.01, -0.01, -6.01, 5.01, -0.01, 0.00999975, 5.01, 3.01, 0.00999975, 5.01, 3.01, -6.01, -0.0100001, -0.01, -6.01, -0.0100001, 3.01, -6.01, -0.0100001, -0.01, 0.00999975, -0.0100001, 0.745, 0.00999975, -0.0100001, 3.01, 0.00999975, 0.826667, 3.01, 0.00999975, 0.826667, 0.745, 0.00999975 ) diff --git a/game/test_rooms/Room4.tscn b/game/test_rooms/Room4.tscn new file mode 100644 index 00000000..72954951 --- /dev/null +++ b/game/test_rooms/Room4.tscn @@ -0,0 +1,90 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://modules/planets/test_planet/voxel_library/textures/stone_dungeon_1_albedo.png" type="Texture" id=4] +[ext_resource path="res://modules/core_models/wall_zn.gltf" type="MeshDataResource" id=5] +[ext_resource path="res://test_rooms/test2_tiledwalldata.tres" type="TiledWallData" id=10] + +[sub_resource type="SpatialMaterial" id=3] +albedo_texture = ExtResource( 4 ) + +[node name="Room" type="Room"] +points = PoolVector3Array( 5.01, -0.01, -6.01, 5.01, -0.01, 0.00999975, 5.01, 3.01, 0.00999975, 5.01, 3.01, -6.01, -0.0100001, -0.01, -6.01, -0.0100001, 3.01, -6.01, -0.0100001, -0.01, 0.00999975, -0.0100001, 0.745, 0.00999975, -0.0100001, 3.01, 0.00999975, 0.826667, 3.01, 0.00999975, 0.826667, 0.745, 0.00999975 ) + +[node name="WallXP" type="TiledWall" parent="."] +transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 5, 0, 0 ) +width = 16 +heigth = 3 +data = ExtResource( 10 ) + +[node name="WallXN" type="TiledWall" parent="."] +transform = Transform( 1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 0, 0, -16 ) +width = 16 +heigth = 3 +data = ExtResource( 10 ) + +[node name="Floor" type="TiledWall" parent="."] +transform = Transform( -1, 0, 3.17865e-08, -3.17865e-08, -5.96046e-08, -1, 2.66454e-15, -1, 5.96046e-08, 5, 0, 0 ) +width = 5 +heigth = 16 +data = ExtResource( 10 ) + +[node name="Ceiling" type="TiledWall" parent="."] +transform = Transform( -1, 0, 3.17865e-08, 3.17865e-08, 5.96046e-08, 1, -1.77636e-15, 1, -5.96046e-08, 5, 3, -16 ) +width = 5 +heigth = 16 +data = ExtResource( 10 ) + +[node name="wallzp" type="Spatial" parent="."] + +[node name="WallZN2" type="TiledWall" parent="wallzp"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 0, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="WallZN3" type="TiledWall" parent="wallzp"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 3, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="wallsegment3" type="Spatial" parent="wallzp"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0 ) + +[node name="MeshDataInstance3" type="MeshDataInstance" parent="wallzp/wallsegment3"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0 ) +mesh_data = ExtResource( 5 ) +texture = ExtResource( 4 ) +material = SubResource( 3 ) + +[node name="Portal" type="Portal" parent="wallzp"] +transform = Transform( -1, 0, -9.61651e-07, 0, 1, 0, 9.61651e-07, 0, -1, 2, 1, 0 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[node name="wallzp2" type="Spatial" parent="."] +transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 5, 0, -16 ) + +[node name="WallZN2" type="TiledWall" parent="wallzp2"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 0, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="WallZN3" type="TiledWall" parent="wallzp2"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 3, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="wallsegment3" type="Spatial" parent="wallzp2"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0 ) + +[node name="MeshDataInstance3" type="MeshDataInstance" parent="wallzp2/wallsegment3"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0 ) +mesh_data = ExtResource( 5 ) +texture = ExtResource( 4 ) +material = SubResource( 3 ) + +[node name="Portal" type="Portal" parent="wallzp2"] +transform = Transform( -1, 0, -9.61651e-07, 0, 1, 0, 9.61651e-07, 0, -1, 2, 1, 0 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) diff --git a/game/test_rooms/Room5.tres b/game/test_rooms/Room5.tres new file mode 100644 index 00000000..8939f39b --- /dev/null +++ b/game/test_rooms/Room5.tres @@ -0,0 +1,106 @@ +[gd_resource type="PropData" load_steps=22 format=2] + +[ext_resource path="res://modules/core_models/wall_zn.gltf" type="MeshDataResource" id=1] +[ext_resource path="res://modules/planets/test_planet/voxel_library/textures/stone_dungeon_1_albedo.png" type="Texture" id=2] +[ext_resource path="res://test_rooms/test2_tiledwalldata.tres" type="TiledWallData" id=3] + +[sub_resource type="PropDataTiledWall" id=1] +transform = Transform( -1, 0, 3.17865e-08, -3.17865e-08, -5.96046e-08, -1, 2.66454e-15, -1, 5.96046e-08, 5, 0, 0 ) +width = 5 +heigth = 6 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=2] +transform = Transform( -1, 0, 3.17865e-08, 3.17865e-08, 5.96046e-08, 1, -1.77636e-15, 1, -5.96046e-08, 5, 3, -6 ) +width = 5 +heigth = 6 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=3] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 0, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=4] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 3, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataPortal" id=5] +transform = Transform( -1, 0, -9.61651e-07, 0, 1, 0, 9.61651e-07, 0, -1, 2, 1, 0 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[sub_resource type="PropDataMeshData" id=6] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 2, 0 ) +mesh = ExtResource( 1 ) +texture = ExtResource( 2 ) + +[sub_resource type="PropDataTiledWall" id=7] +transform = Transform( -1, 0, -1.43059e-07, 0, 1, 0, 1.43059e-07, 0, -1, 5, 0, -6 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=8] +transform = Transform( -1, 0, -1.43059e-07, 0, 1, 0, 1.43059e-07, 0, -1, 2, 0, -6 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataPortal" id=9] +transform = Transform( 1, 0, 1.04907e-06, 0, 1, 0, -1.04907e-06, 0, 1, 3, 1, -6 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[sub_resource type="PropDataMeshData" id=10] +transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 3, 2, -6 ) +mesh = ExtResource( 1 ) +texture = ExtResource( 2 ) + +[sub_resource type="PropDataTiledWall" id=11] +transform = Transform( 6.75612e-08, 0, -1, 0, 1, 0, 1, 0, 6.75612e-08, 0, 0, -6 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=12] +transform = Transform( 6.75612e-08, 0, -1, 0, 1, 0, 1, 0, 6.75612e-08, 3.57746e-08, 0, -3 ) +width = 3 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataPortal" id=13] +transform = Transform( -9.73576e-07, 0, 1, 0, 1, 0, -1, 0, -9.73576e-07, 2.38498e-08, 1, -4 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[sub_resource type="PropDataMeshData" id=14] +transform = Transform( 1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 2.38498e-08, 2, -4 ) +mesh = ExtResource( 1 ) +texture = ExtResource( 2 ) + +[sub_resource type="PropDataTiledWall" id=15] +transform = Transform( -9.93477e-08, 0, 1, 0, 1, 0, -1, 0, -9.93477e-08, 5, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataTiledWall" id=16] +transform = Transform( -9.93477e-08, 0, 1, 0, 1, 0, -1, 0, -9.93477e-08, 5, 0, -3 ) +width = 3 +heigth = 3 +data = ExtResource( 3 ) + +[sub_resource type="PropDataPortal" id=17] +transform = Transform( 1.00536e-06, 0, -1, 0, 1, 0, 1, 0, 1.00536e-06, 5, 1, -2 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[sub_resource type="PropDataMeshData" id=18] +transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 5, 2, -2 ) +mesh = ExtResource( 1 ) +texture = ExtResource( 2 ) + +[resource] +props = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ), SubResource( 9 ), SubResource( 10 ), SubResource( 11 ), SubResource( 12 ), SubResource( 13 ), SubResource( 14 ), SubResource( 15 ), SubResource( 16 ), SubResource( 17 ), SubResource( 18 ) ] +is_room = true +room_bounds = PoolVector3Array( 5.01, -0.01, -6.01, 5.01, -0.01, 0.00999975, 5.01, 3.01, 0.00999975, 5.01, 3.01, -6.01, -0.0100001, -0.01, -6.01, -0.0100001, 3.01, -6.01, -0.0100001, -0.01, 0.00999975, -0.0100001, 0.745, 0.00999975, -0.0100001, 3.01, 0.00999975, 0.826667, 3.01, 0.00999975, 0.826667, 0.745, 0.00999975 ) diff --git a/game/test_rooms/Room5.tscn b/game/test_rooms/Room5.tscn new file mode 100644 index 00000000..64875779 --- /dev/null +++ b/game/test_rooms/Room5.tscn @@ -0,0 +1,134 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://modules/planets/test_planet/voxel_library/textures/stone_dungeon_1_albedo.png" type="Texture" id=4] +[ext_resource path="res://modules/core_models/wall_zn.gltf" type="MeshDataResource" id=5] +[ext_resource path="res://test_rooms/test2_tiledwalldata.tres" type="TiledWallData" id=10] + +[sub_resource type="SpatialMaterial" id=3] +albedo_texture = ExtResource( 4 ) + +[node name="Room" type="Room"] +points = PoolVector3Array( 5.01, -0.01, -6.01, 5.01, -0.01, 0.00999975, 5.01, 3.01, 0.00999975, 5.01, 3.01, -6.01, -0.0100001, -0.01, -6.01, -0.0100001, 3.01, -6.01, -0.0100001, -0.01, 0.00999975, -0.0100001, 0.745, 0.00999975, -0.0100001, 3.01, 0.00999975, 0.826667, 3.01, 0.00999975, 0.826667, 0.745, 0.00999975 ) + +[node name="Floor" type="TiledWall" parent="."] +transform = Transform( -1, 0, 3.17865e-08, -3.17865e-08, -5.96046e-08, -1, 2.66454e-15, -1, 5.96046e-08, 5, 0, 0 ) +width = 5 +heigth = 6 +data = ExtResource( 10 ) + +[node name="Ceiling" type="TiledWall" parent="."] +transform = Transform( -1, 0, 3.17865e-08, 3.17865e-08, 5.96046e-08, 1, -1.77636e-15, 1, -5.96046e-08, 5, 3, -6 ) +width = 5 +heigth = 6 +data = ExtResource( 10 ) + +[node name="wallzp" type="Spatial" parent="."] + +[node name="WallZN2" type="TiledWall" parent="wallzp"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 0, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="WallZN3" type="TiledWall" parent="wallzp"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 3, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="Portal" type="Portal" parent="wallzp"] +transform = Transform( -1, 0, -9.61651e-07, 0, 1, 0, 9.61651e-07, 0, -1, 2, 1, 0 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[node name="wallsegment3" type="Spatial" parent="wallzp"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0 ) + +[node name="MeshDataInstance3" type="MeshDataInstance" parent="wallzp/wallsegment3"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0 ) +mesh_data = ExtResource( 5 ) +texture = ExtResource( 4 ) +material = SubResource( 3 ) + +[node name="wallzp2" type="Spatial" parent="."] +transform = Transform( -1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 5, 0, -6 ) + +[node name="WallZN2" type="TiledWall" parent="wallzp2"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 0, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="WallZN3" type="TiledWall" parent="wallzp2"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 3, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="Portal" type="Portal" parent="wallzp2"] +transform = Transform( -1, 0, -9.61651e-07, 0, 1, 0, 9.61651e-07, 0, -1, 2, 1, 0 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[node name="wallsegment3" type="Spatial" parent="wallzp2"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0 ) + +[node name="MeshDataInstance3" type="MeshDataInstance" parent="wallzp2/wallsegment3"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0 ) +mesh_data = ExtResource( 5 ) +texture = ExtResource( 4 ) +material = SubResource( 3 ) + +[node name="wallzp3" type="Spatial" parent="."] +transform = Transform( 1.19249e-08, 0, -1, 0, 1, 0, 1, 0, 1.19249e-08, 0, 0, -6 ) + +[node name="WallZN2" type="TiledWall" parent="wallzp3"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 0, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="WallZN3" type="TiledWall" parent="wallzp3"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 3, 0, 0 ) +width = 3 +heigth = 3 +data = ExtResource( 10 ) + +[node name="Portal" type="Portal" parent="wallzp3"] +transform = Transform( -1, 0, -9.61651e-07, 0, 1, 0, 9.61651e-07, 0, -1, 2, 1, 0 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[node name="wallsegment3" type="Spatial" parent="wallzp3"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0 ) + +[node name="MeshDataInstance3" type="MeshDataInstance" parent="wallzp3/wallsegment3"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0 ) +mesh_data = ExtResource( 5 ) +texture = ExtResource( 4 ) +material = SubResource( 3 ) + +[node name="wallzp4" type="Spatial" parent="."] +transform = Transform( -4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 5, 0, 0 ) + +[node name="WallZN2" type="TiledWall" parent="wallzp4"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 0, 0, 0 ) +width = 2 +heigth = 3 +data = ExtResource( 10 ) + +[node name="WallZN3" type="TiledWall" parent="wallzp4"] +transform = Transform( 1, 0, 5.56363e-08, 0, 1, 0, -5.56363e-08, 0, 1, 3, 0, 0 ) +width = 3 +heigth = 3 +data = ExtResource( 10 ) + +[node name="Portal" type="Portal" parent="wallzp4"] +transform = Transform( -1, 0, -9.61651e-07, 0, 1, 0, 9.61651e-07, 0, -1, 2, 1, 0 ) +points = PoolVector2Array( -1, 1, -1, -1, 0, -1, 0, 1 ) + +[node name="wallsegment3" type="Spatial" parent="wallzp4"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0 ) + +[node name="MeshDataInstance3" type="MeshDataInstance" parent="wallzp4/wallsegment3"] +transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0 ) +mesh_data = ExtResource( 5 ) +texture = ExtResource( 4 ) +material = SubResource( 3 )