From a7f9557109078b28f56a179d27f24d3298159875 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 10:35:25 -0400 Subject: [PATCH 001/105] Increase nightmode brightness slightly --- code/modules/power/lighting.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index be2e6b5873..bd39b34d68 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -897,7 +897,7 @@ var/global/list/light_type_cache = list() var/brightness_color = LIGHT_COLOR_INCANDESCENT_TUBE var/nightshift_range = 8 - var/nightshift_power = 0.7 + var/nightshift_power = 1 var/nightshift_color = LIGHT_COLOR_NIGHTSHIFT /obj/item/weapon/light/tube @@ -917,7 +917,7 @@ var/global/list/light_type_cache = list() brightness_power = 9 nightshift_range = 10 - nightshift_power = 0.9 + nightshift_power = 1.5 /obj/item/weapon/light/bulb name = "light bulb" @@ -931,7 +931,7 @@ var/global/list/light_type_cache = list() brightness_color = LIGHT_COLOR_INCANDESCENT_BULB nightshift_range = 3 - nightshift_power = 0.35 + nightshift_power = 0.5 /obj/item/weapon/light/throw_impact(atom/hit_atom) ..() From f2d15ea5b849bfaaa82ca295d6707df603229cd6 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 10:43:34 -0400 Subject: [PATCH 002/105] Fix talon backup helm console access --- maps/tether/submaps/offmap/talon2.dmm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/maps/tether/submaps/offmap/talon2.dmm b/maps/tether/submaps/offmap/talon2.dmm index e23d847942..86b9c3669f 100644 --- a/maps/tether/submaps/offmap/talon2.dmm +++ b/maps/tether/submaps/offmap/talon2.dmm @@ -2049,7 +2049,9 @@ /obj/effect/floor_decal/borderfloor/corner2{ dir = 1 }, -/obj/machinery/computer/ship/helm, +/obj/machinery/computer/ship/helm{ + req_one_access = list(301) + }, /turf/simulated/floor/tiled/steel, /area/talon/decktwo/tech) "dD" = ( From dd697a23759bb5ad391e6498318b602b939fc81f Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 11:25:53 -0400 Subject: [PATCH 003/105] Don't step on people who are riding you --- code/modules/vore/resizing/resize_vr.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/modules/vore/resizing/resize_vr.dm b/code/modules/vore/resizing/resize_vr.dm index b7e671e9b3..07d3a7831f 100644 --- a/code/modules/vore/resizing/resize_vr.dm +++ b/code/modules/vore/resizing/resize_vr.dm @@ -158,6 +158,10 @@ var/const/RESIZE_A_SMALLTINY = (RESIZE_SMALL + RESIZE_TINY) / 2 * @return false if normal code should continue, true to prevent normal code. */ /mob/living/proc/handle_micro_bump_helping(mob/living/tmob) + //Riding and being moved to us or something similar + if(tmob in buckled_mobs) + return TRUE + //Both small! Go ahead and go. if(get_effective_size() <= RESIZE_A_SMALLTINY && tmob.get_effective_size() <= RESIZE_A_SMALLTINY) return TRUE @@ -214,6 +218,10 @@ var/const/RESIZE_A_SMALLTINY = (RESIZE_SMALL + RESIZE_TINY) / 2 if(!canmove || buckled) return + //Riding and being moved to us or something similar + if(tmob in buckled_mobs) + return TRUE + //Test/set if human var/mob/living/carbon/human/pred = src if(!istype(pred)) From d73af9ac5ef8a1482bd7bd8494f41762b8177999 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 11:49:42 -0400 Subject: [PATCH 004/105] Add airlock vox to phoronlocks too --- maps/tether/tether_phoronlock.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/maps/tether/tether_phoronlock.dm b/maps/tether/tether_phoronlock.dm index 4921680f15..9118284285 100644 --- a/maps/tether/tether_phoronlock.dm +++ b/maps/tether/tether_phoronlock.dm @@ -243,6 +243,7 @@ obj/machinery/airlock_sensor/phoron/airlock_exterior if(STATE_PREPARE) if (check_doors_secured()) if(target_state == TARGET_INOPEN) + playsound(master, 'sound/AI/airlockin.ogg', 100, 0) if(memory["chamber_sensor_phoron"] > memory["target_phoron"]) state = STATE_CLEAN signalScrubber(tag_scrubber, 1) // Start cleaning @@ -256,11 +257,13 @@ obj/machinery/airlock_sensor/phoron/airlock_exterior else if(memory["pump_status"] != "off") signalPump(tag_airpump, 0) else + playsound(master, 'sound/AI/airlockout.ogg', 100, 0) cycleDoors(target_state) state = STATE_IDLE target_state = TARGET_NONE if(STATE_CLEAN) + playsound(master, 'sound/machines/2beep.ogg', 100, 0) if(!check_doors_secured()) //the airlock will not allow itself to continue to cycle when any of the doors are forced open. stop_cycling() @@ -271,12 +274,14 @@ obj/machinery/airlock_sensor/phoron/airlock_exterior state = STATE_PRESSURIZE if(STATE_PRESSURIZE) + playsound(master, 'sound/machines/2beep.ogg', 100, 0) if(!check_doors_secured()) //the airlock will not allow itself to continue to cycle when any of the doors are forced open. stop_cycling() else if(memory["chamber_sensor_pressure"] >= memory["target_pressure"] * 0.95) signalPump(tag_airpump, 0) // send a signal to stop pumping. No need to wait for it tho. cycleDoors(target_state) + playsound(master, 'sound/AI/airlockdone.ogg', 100, 0) state = STATE_IDLE target_state = TARGET_NONE From d172e2dd04dc4f1e2ac52ff8df02ed0bbbc92da2 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 16:05:59 -0400 Subject: [PATCH 005/105] Cached version of icon_states() proc --- code/_helpers/icons.dm | 21 ++++++++++++++++++- code/_helpers/mobs.dm | 2 +- .../objects/items/weapons/storage/wallets.dm | 2 +- code/game/objects/structures/barsign.dm | 2 +- code/game/objects/structures/cliff.dm | 2 +- code/game/turfs/simulated/wall_icon.dm | 2 +- code/modules/client/asset_cache.dm | 4 ++-- .../preference_setup/general/03_body.dm | 2 +- code/modules/clothing/clothing.dm | 14 ++++++------- .../clothing/under/accessories/accessory.dm | 4 ++-- .../clothing/under/accessories/lockets.dm | 2 +- code/modules/customitems/item_spawning.dm | 2 +- code/modules/hydroponics/grown.dm | 2 +- code/modules/hydroponics/seed_controller.dm | 4 ++-- .../mob/living/carbon/human/update_icons.dm | 2 +- code/modules/mob/new_player/login.dm | 2 +- code/modules/projectiles/ammunition.dm | 2 +- 17 files changed, 45 insertions(+), 26 deletions(-) diff --git a/code/_helpers/icons.dm b/code/_helpers/icons.dm index 5abedfe9ac..97e66ac93d 100644 --- a/code/_helpers/icons.dm +++ b/code/_helpers/icons.dm @@ -107,7 +107,7 @@ AngleToHue(hue) Converts an angle to a hue in the valid range. RotateHue(hsv, angle) Takes an HSV or HSVA value and rotates the hue forward through red, green, and blue by an angle from 0 to 360. - (Rotating red by 60° produces yellow.) The result is another HSV or HSVA color with the same saturation and value + (Rotating red by 60� produces yellow.) The result is another HSV or HSVA color with the same saturation and value as the original, but a different hue. GrayScale(rgb) Takes an RGB or RGBA color and converts it to grayscale. Returns an RGB or RGBA string. @@ -899,6 +899,25 @@ proc/ColorTone(rgb, tone) composite.Blend(icon(I.icon, I.icon_state, I.dir, 1), ICON_OVERLAY) return composite +GLOBAL_LIST_EMPTY(icon_state_lists) +/proc/cached_icon_states(var/icon/I) + if(!I) + return list() + var/key = "\ref[I]" + var/returnlist = GLOB.icon_state_lists[key] + if(!returnlist) + returnlist = icon_state_lists(I) + GLOB.icon_state_lists[key] = returnlist + if((returnlist?.len == 1) && (returnlist[1] == "")) //It's some icon_state that was generated in-round probably, very likely to be reused \ref soon. + addtimer(CALLBACK(GLOBAL_PROC, .proc/expire_states_cache, key), 600, TIMER_UNIQUE) + return returnlist + +/proc/expire_states_cache(var/key) + if(GLOB.icon_state_lists[key]) + GLOB.icon_state_lists -= key + return TRUE + return FALSE + proc/adjust_brightness(var/color, var/value) if (!color) return "#FFFFFF" if (!value) return color diff --git a/code/_helpers/mobs.dm b/code/_helpers/mobs.dm index 73ae811193..d4400da8df 100644 --- a/code/_helpers/mobs.dm +++ b/code/_helpers/mobs.dm @@ -94,7 +94,7 @@ proc/age2agedescription(age) else return "unknown" /proc/RoundHealth(health) - var/list/icon_states = icon_states(ingame_hud_med) + var/list/icon_states = cached_icon_states(ingame_hud_med) for(var/icon_state in icon_states) if(health >= text2num(icon_state)) return icon_state diff --git a/code/game/objects/items/weapons/storage/wallets.dm b/code/game/objects/items/weapons/storage/wallets.dm index 95db86460e..a668075068 100644 --- a/code/game/objects/items/weapons/storage/wallets.dm +++ b/code/game/objects/items/weapons/storage/wallets.dm @@ -63,7 +63,7 @@ overlays.Cut() if(front_id) var/tiny_state = "id-generic" - if("id-"+front_id.icon_state in icon_states(icon)) + if("id-"+front_id.icon_state in cached_icon_states(icon)) tiny_state = "id-"+front_id.icon_state var/image/tiny_image = new/image(icon, icon_state = tiny_state) tiny_image.appearance_flags = RESET_COLOR diff --git a/code/game/objects/structures/barsign.dm b/code/game/objects/structures/barsign.dm index cd1c448b2f..e54c75eebb 100644 --- a/code/game/objects/structures/barsign.dm +++ b/code/game/objects/structures/barsign.dm @@ -6,7 +6,7 @@ var/cult = 0 /obj/structure/sign/double/barsign/proc/get_valid_states(initial=1) - . = icon_states(icon) + . = cached_icon_states(icon) . -= "on" . -= "narsiebistro" . -= "empty" diff --git a/code/game/objects/structures/cliff.dm b/code/game/objects/structures/cliff.dm index c4caf4b7ab..66fb945988 100644 --- a/code/game/objects/structures/cliff.dm +++ b/code/game/objects/structures/cliff.dm @@ -114,7 +114,7 @@ two tiles on initialization, and which way a cliff is facing may change during m var/subtraction_icon_state = "[icon_state]-subtract" var/cache_string = "[icon_state]_[T.icon]_[T.icon_state]" - if(T && subtraction_icon_state in icon_states(icon)) + if(T && subtraction_icon_state in cached_icon_states(icon)) cut_overlays() // If we've made the same icon before, just recycle it. if(cache_string in GLOB.cliff_icon_cache) diff --git a/code/game/turfs/simulated/wall_icon.dm b/code/game/turfs/simulated/wall_icon.dm index 5bf41c4a5f..dd49744a8f 100644 --- a/code/game/turfs/simulated/wall_icon.dm +++ b/code/game/turfs/simulated/wall_icon.dm @@ -67,7 +67,7 @@ I.color = reinf_material.icon_colour add_overlay(I) else - if("[reinf_material.icon_reinf]0" in icon_states('icons/turf/wall_masks.dmi')) + if("[reinf_material.icon_reinf]0" in cached_icon_states('icons/turf/wall_masks.dmi')) // Directional icon for(var/i = 1 to 4) I = image('icons/turf/wall_masks.dmi', "[reinf_material.icon_reinf][wall_connections[i]]", dir = 1<<(i-1)) diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index 5580c7fd98..ed6439d3cd 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -204,12 +204,12 @@ You can set verify to TRUE if you want send() to sleep until the client has the directions = list(SOUTH) var/sprites = list() - for (var/icon_state_name in icon_states(I)) + for (var/icon_state_name in cached_icon_states(I)) for (var/direction in directions) var/suffix = (directions.len > 1) ? "-[dir2text(direction)]" : "" var/sprite_name = "[prefix][icon_state_name][suffix]" var/icon/sprite = icon(I, icon_state=icon_state_name, dir=direction, frame=1, moving=FALSE) - if (!sprite || !length(icon_states(sprite))) // that direction or state doesn't exist + if (!sprite || !length(cached_icon_states(sprite))) // that direction or state doesn't exist continue sprites[sprite_name] = sprite return sprites diff --git a/code/modules/client/preference_setup/general/03_body.dm b/code/modules/client/preference_setup/general/03_body.dm index adb52397ff..3208179b91 100644 --- a/code/modules/client/preference_setup/general/03_body.dm +++ b/code/modules/client/preference_setup/general/03_body.dm @@ -841,7 +841,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O dat += "[current_species.blurb]" //vorestation edit end dat += "" - if("preview" in icon_states(current_species.icobase)) + if("preview" in cached_icon_states(current_species.icobase)) usr << browse_rsc(icon(current_species.icobase,"preview"), "species_preview_[current_species.name].png") dat += "

" dat += "Language: [current_species.species_language]
" diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 283406d6ba..eff875ee8d 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -805,7 +805,7 @@ //autodetect rollability if(rolled_down < 0) - if(("[worn_state]_d_s" in icon_states(icon)) || ("[worn_state]_s" in icon_states(rolled_down_icon)) || ("[worn_state]_d_s" in icon_states(icon_override))) + if(("[worn_state]_d_s" in cached_icon_states(icon)) || ("[worn_state]_s" in cached_icon_states(rolled_down_icon)) || ("[worn_state]_d_s" in cached_icon_states(icon_override))) rolled_down = 0 if(rolled_down == -1) @@ -842,11 +842,11 @@ under_icon = sprite_sheets[H.species.get_bodytype(H)] else if(item_icons && item_icons[slot_w_uniform_str]) under_icon = item_icons[slot_w_uniform_str] - else if ("[worn_state]_s" in icon_states(rolled_down_icon)) + else if ("[worn_state]_s" in cached_icon_states(rolled_down_icon)) under_icon = rolled_down_icon // The _s is because the icon update procs append it. - if((under_icon == rolled_down_icon && "[worn_state]_s" in icon_states(under_icon)) || ("[worn_state]_d_s" in icon_states(under_icon))) + if((under_icon == rolled_down_icon && "[worn_state]_s" in cached_icon_states(under_icon)) || ("[worn_state]_d_s" in cached_icon_states(under_icon))) if(rolled_down != 1) rolled_down = 0 else @@ -865,13 +865,13 @@ under_icon = sprite_sheets[H.species.get_bodytype(H)] else if(item_icons && item_icons[slot_w_uniform_str]) under_icon = item_icons[slot_w_uniform_str] - else if ("[worn_state]_s" in icon_states(rolled_down_sleeves_icon)) + else if ("[worn_state]_s" in cached_icon_states(rolled_down_sleeves_icon)) under_icon = rolled_down_sleeves_icon else if(index) under_icon = new /icon("[INV_W_UNIFORM_DEF_ICON]_[index].dmi") // The _s is because the icon update procs append it. - if((under_icon == rolled_down_sleeves_icon && "[worn_state]_s" in icon_states(under_icon)) || ("[worn_state]_r_s" in icon_states(under_icon))) + if((under_icon == rolled_down_sleeves_icon && "[worn_state]_s" in cached_icon_states(under_icon)) || ("[worn_state]_r_s" in cached_icon_states(under_icon))) if(rolled_sleeves != 1) rolled_sleeves = 0 else @@ -955,7 +955,7 @@ if(rolled_down) body_parts_covered = initial(body_parts_covered) body_parts_covered &= ~(UPPER_TORSO|ARMS) - if("[worn_state]_s" in icon_states(rolled_down_icon)) + if("[worn_state]_s" in cached_icon_states(rolled_down_icon)) icon_override = rolled_down_icon item_state_slots[slot_w_uniform_str] = "[worn_state]" else @@ -988,7 +988,7 @@ rolled_sleeves = !rolled_sleeves if(rolled_sleeves) body_parts_covered &= ~(ARMS) - if("[worn_state]_s" in icon_states(rolled_down_sleeves_icon)) + if("[worn_state]_s" in cached_icon_states(rolled_down_sleeves_icon)) icon_override = rolled_down_sleeves_icon item_state_slots[slot_w_uniform_str] = "[worn_state]" else diff --git a/code/modules/clothing/under/accessories/accessory.dm b/code/modules/clothing/under/accessories/accessory.dm index 57fe80cd76..6aed5daf39 100644 --- a/code/modules/clothing/under/accessories/accessory.dm +++ b/code/modules/clothing/under/accessories/accessory.dm @@ -24,7 +24,7 @@ if(!inv_overlay) var/tmp_icon_state = "[overlay_state? "[overlay_state]" : "[icon_state]"]" if(icon_override) - if("[tmp_icon_state]_tie" in icon_states(icon_override)) + if("[tmp_icon_state]_tie" in cached_icon_states(icon_override)) tmp_icon_state = "[tmp_icon_state]_tie" inv_overlay = image(icon = icon_override, icon_state = tmp_icon_state, dir = SOUTH) else @@ -48,7 +48,7 @@ tmp_icon_state = on_rolled["rolled"] if(icon_override) - if("[tmp_icon_state]_mob" in icon_states(icon_override)) + if("[tmp_icon_state]_mob" in cached_icon_states(icon_override)) tmp_icon_state = "[tmp_icon_state]_mob" mob_overlay = image("icon" = icon_override, "icon_state" = "[tmp_icon_state]") else if(wearer && sprite_sheets[wearer.species.get_bodytype(wearer)]) //Teshari can finally into webbing, too! diff --git a/code/modules/clothing/under/accessories/lockets.dm b/code/modules/clothing/under/accessories/lockets.dm index ca859addb5..153df0d584 100644 --- a/code/modules/clothing/under/accessories/lockets.dm +++ b/code/modules/clothing/under/accessories/lockets.dm @@ -13,7 +13,7 @@ if(!base_icon) base_icon = icon_state - if(!("[base_icon]_open" in icon_states(icon))) + if(!("[base_icon]_open" in cached_icon_states(icon))) to_chat(user, "\The [src] doesn't seem to open.") return diff --git a/code/modules/customitems/item_spawning.dm b/code/modules/customitems/item_spawning.dm index b87183c385..5e85c0123c 100644 --- a/code/modules/customitems/item_spawning.dm +++ b/code/modules/customitems/item_spawning.dm @@ -78,7 +78,7 @@ var/list/new_item_icons = list() var/list/new_item_state_slots = list() - var/list/available_states = icon_states(CUSTOM_ITEM_MOB) + var/list/available_states = cached_icon_states(CUSTOM_ITEM_MOB) //If l_hand or r_hand are not present, preserve them using item_icons/item_state_slots //Then use icon_override to make every other slot use the custom sprites by default. diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 982f44e794..90afa7f416 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -141,7 +141,7 @@ var/image/fruit_base = image('icons/obj/hydroponics_products.dmi',"[seed.get_trait(TRAIT_PRODUCT_ICON)]-product") fruit_base.color = "[seed.get_trait(TRAIT_PRODUCT_COLOUR)]" plant_icon.overlays |= fruit_base - if("[seed.get_trait(TRAIT_PRODUCT_ICON)]-leaf" in icon_states('icons/obj/hydroponics_products.dmi')) + if("[seed.get_trait(TRAIT_PRODUCT_ICON)]-leaf" in cached_icon_states('icons/obj/hydroponics_products.dmi')) var/image/fruit_leaves = image('icons/obj/hydroponics_products.dmi',"[seed.get_trait(TRAIT_PRODUCT_ICON)]-leaf") fruit_leaves.color = "[seed.get_trait(TRAIT_PLANT_COLOUR)]" plant_icon.overlays |= fruit_leaves diff --git a/code/modules/hydroponics/seed_controller.dm b/code/modules/hydroponics/seed_controller.dm index 1ca42f4c60..28315b361a 100644 --- a/code/modules/hydroponics/seed_controller.dm +++ b/code/modules/hydroponics/seed_controller.dm @@ -53,7 +53,7 @@ var/global/datum/controller/plants/plant_controller // Set in New(). /datum/controller/plants/proc/setup() // Build the icon lists. - for(var/icostate in icon_states('icons/obj/hydroponics_growing.dmi')) + for(var/icostate in cached_icon_states('icons/obj/hydroponics_growing.dmi')) var/split = findtext(icostate,"-") if(!split) // invalid icon_state @@ -71,7 +71,7 @@ var/global/datum/controller/plants/plant_controller // Set in New(). if(!(base in GLOB.forbidden_plant_growth_sprites)) accessible_plant_sprites[base] = ikey - for(var/icostate in icon_states('icons/obj/hydroponics_products.dmi')) + for(var/icostate in cached_icon_states('icons/obj/hydroponics_products.dmi')) var/split = findtext(icostate,"-") var/base = copytext(icostate,1,split) if(split) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 963ad4cd38..2903bf604f 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -321,7 +321,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() base_icon.MapColors(rgb(tone[1],0,0),rgb(0,tone[2],0),rgb(0,0,tone[3])) //Handle husk overlay. - if(husk && ("overlay_husk" in icon_states(species.icobase))) + if(husk && ("overlay_husk" in cached_icon_states(species.icobase))) var/icon/mask = new(base_icon) var/icon/husk_over = new(species.icobase,"overlay_husk") mask.MapColors(0,0,0,1, 0,0,0,1, 0,0,0,1, 0,0,0,1, 0,0,0,0) diff --git a/code/modules/mob/new_player/login.dm b/code/modules/mob/new_player/login.dm index 57a9574f11..fb7f28d112 100644 --- a/code/modules/mob/new_player/login.dm +++ b/code/modules/mob/new_player/login.dm @@ -11,7 +11,7 @@ var/obj/effect/lobby_image = new /obj/effect/lobby_image /obj/effect/lobby_image/Initialize() icon = using_map.lobby_icon - var/known_icon_states = icon_states(icon) + var/known_icon_states = cached_icon_states(icon) for(var/lobby_screen in using_map.lobby_screens) if(!(lobby_screen in known_icon_states)) error("Lobby screen '[lobby_screen]' did not exist in the icon set [icon].") diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index b07cacd92b..01f4e6003a 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -201,7 +201,7 @@ /proc/magazine_icondata_cache_add(var/obj/item/ammo_magazine/M) var/list/icon_keys = list() var/list/ammo_states = list() - var/list/states = icon_states(M.icon) + var/list/states = cached_icon_states(M.icon) for(var/i = 0, i <= M.max_ammo, i++) var/ammo_state = "[M.icon_state]-[i]" if(ammo_state in states) From 4a12194414553b8782462990e9316b0461357a82 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 16:06:12 -0400 Subject: [PATCH 006/105] VS: Cached version of icon_states() proc --- code/modules/clothing/clothing_vr.dm | 2 +- code/modules/food/drinkingglass/drinkingglass.dm | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/clothing/clothing_vr.dm b/code/modules/clothing/clothing_vr.dm index 1fb7d26548..470cb94c06 100644 --- a/code/modules/clothing/clothing_vr.dm +++ b/code/modules/clothing/clothing_vr.dm @@ -134,7 +134,7 @@ var/mob/living/carbon/human/H = user if(isTaurTail(H.tail_style)) var/datum/sprite_accessory/tail/taur/taurtail = H.tail_style - if(taurtail.suit_sprites && (get_worn_icon_state(slot_wear_suit_str) in icon_states(taurtail.suit_sprites))) + if(taurtail.suit_sprites && (get_worn_icon_state(slot_wear_suit_str) in cached_icon_states(taurtail.suit_sprites))) icon_override = taurtail.suit_sprites normalize = FALSE taurized = TRUE diff --git a/code/modules/food/drinkingglass/drinkingglass.dm b/code/modules/food/drinkingglass/drinkingglass.dm index 928c24954b..c2c5dc4219 100644 --- a/code/modules/food/drinkingglass/drinkingglass.dm +++ b/code/modules/food/drinkingglass/drinkingglass.dm @@ -74,9 +74,9 @@ update_icon() /obj/item/weapon/reagent_containers/food/drinks/glass2/proc/can_add_extra(obj/item/weapon/glass_extra/GE) - if(!("[base_icon]_[GE.glass_addition]left" in icon_states(icon))) //VOREStation Edit + if(!("[base_icon]_[GE.glass_addition]left" in cached_icon_states(icon))) //VOREStation Edit return 0 - if(!("[base_icon]_[GE.glass_addition]right" in icon_states(icon))) //VOREStation Edit + if(!("[base_icon]_[GE.glass_addition]right" in cached_icon_states(icon))) //VOREStation Edit return 0 return 1 @@ -106,9 +106,9 @@ over_liquid |= "[base_icon][amnt]_fizz" for(var/S in R.glass_special) - if("[base_icon]_[S]" in icon_states(icon)) //VOREStation Edit + if("[base_icon]_[S]" in cached_icon_states(icon)) //VOREStation Edit under_liquid |= "[base_icon]_[S]" - else if("[base_icon][amnt]_[S]" in icon_states(icon)) //VOREStation Edit + else if("[base_icon][amnt]_[S]" in cached_icon_states(icon)) //VOREStation Edit over_liquid |= "[base_icon][amnt]_[S]" for(var/k in under_liquid) From 6f9f3cd8971f2ac9cb23613f889516da206bc421 Mon Sep 17 00:00:00 2001 From: Little-119 Date: Wed, 6 May 2020 17:50:18 -0400 Subject: [PATCH 007/105] Add nightshift setting --- code/modules/power/apc.dm | 22 ++++++++++++++++++++-- nano/templates/apc.tmpl | 4 +++- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 4b3b398cff..45a3f0a012 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -39,6 +39,10 @@ #define POWERCHAN_ON 2 // Power channel is on until there is no power #define POWERCHAN_ON_AUTO 3 // Power channel is on until power drops below a threshold +#define NIGHTSHIFT_AUTO 1 +#define NIGHTSHIFT_NEVER 2 +#define NIGHTSHIFT_ALWAYS 3 + //NOTE: STUFF STOLEN FROM AIRLOCK.DM thx /obj/machinery/power/apc/critical @@ -121,6 +125,7 @@ var/alarms_hidden = FALSE //If power alarms from this APC are visible on consoles var/nightshift_lights = FALSE + var/nightshift_setting = NIGHTSHIFT_AUTO var/last_nightshift_switch = 0 /obj/machinery/power/apc/updateDialog() @@ -802,6 +807,7 @@ "siliconUser" = issilicon(user) || isobserver(user), //I add observer here so admins can have more control, even if it makes 'siliconUser' seem inaccurate. "emergencyLights" = !emergency_lights, "nightshiftLights" = nightshift_lights, + "nightshiftSetting" = nightshift_setting, "powerChannels" = list( list( @@ -926,7 +932,8 @@ to_chat(usr, "[src]'s night lighting circuit breaker is still cycling!") return 0 last_nightshift_switch = world.time - set_nightshift(!nightshift_lights) + nightshift_setting = text2num(href_list["nightshift"]) + update_nightshift() return 1 if(locked && !issilicon(usr) ) @@ -1383,8 +1390,19 @@ obj/machinery/power/apc/proc/autoset(var/cur_state, var/on) if(automated && istype(area, /area/shuttle)) return nightshift_lights = on + update_nightshift() + +/obj/machinery/power/apc/proc/update_nightshift() + var/new_state = nightshift_lights + + switch(nightshift_setting) + if(NIGHTSHIFT_NEVER) + new_state = FALSE + if(NIGHTSHIFT_ALWAYS) + new_state = TRUE + for(var/obj/machinery/light/L in area) - L.nightshift_mode(on) + L.nightshift_mode(new_state) CHECK_TICK #undef APC_UPDATE_ICON_COOLDOWN diff --git a/nano/templates/apc.tmpl b/nano/templates/apc.tmpl index 9b39900a81..a26abef4a0 100644 --- a/nano/templates/apc.tmpl +++ b/nano/templates/apc.tmpl @@ -206,7 +206,9 @@ Night Lighting:
- {{:helper.link(data.nightshiftLights ? 'Enabled' : 'Disabled', data.nightshiftLights ? 'power' : 'close', {'nightshift' : 1}, null)}} + {{:helper.link('Disabled', null, {'nightshift' : 2}, data.nightshiftSetting == 2 ? 'selected' : null)}} + {{:helper.link('Automatic', null, {'nightshift' : 1}, data.nightshiftSetting == 1 ? 'selected' : null)}} + {{:helper.link('Enabled', null, {'nightshift' : 3}, data.nightshiftSetting == 3 ? 'selected' : null)}}
From f5990cfe35f4ce3c82bcdbbebbf848986e672664 Mon Sep 17 00:00:00 2001 From: Little-119 Date: Wed, 6 May 2020 17:50:54 -0400 Subject: [PATCH 008/105] Fix cooldown math while I'm here --- code/modules/power/apc.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 45a3f0a012..33228c52f5 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -928,7 +928,7 @@ return 1 if(href_list["nightshift"]) - if(last_nightshift_switch > world.time + 10 SECONDS) // don't spam... + if(last_nightshift_switch > world.time - 10 SECONDS) // don't spam... to_chat(usr, "[src]'s night lighting circuit breaker is still cycling!") return 0 last_nightshift_switch = world.time From bd298810f205a2476487261984bf12ac0e22c3ce Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 18:37:46 -0400 Subject: [PATCH 009/105] Redo examining in general and tweak getFlatIcon --- code/ATMOSPHERICS/atmospherics.dm | 3 ++ code/_helpers/icons.dm | 41 +++++++++++------- code/game/atoms.dm | 4 ++ code/game/objects/structures/window.dm | 3 ++ code/game/turfs/simulated/walls.dm | 3 ++ code/modules/examine/examine.dm | 4 +- code/modules/mob/dead/observer/observer.dm | 7 ++++ code/modules/mob/living/carbon/human/human.dm | 7 ++++ code/modules/tables/tables.dm | 3 ++ code/modules/vchat/vchat_client.dm | 42 ++++++++++++------- 10 files changed, 85 insertions(+), 32 deletions(-) diff --git a/code/ATMOSPHERICS/atmospherics.dm b/code/ATMOSPHERICS/atmospherics.dm index 6559f28f26..6bd32c762c 100644 --- a/code/ATMOSPHERICS/atmospherics.dm +++ b/code/ATMOSPHERICS/atmospherics.dm @@ -48,6 +48,9 @@ Pipelines + Other Objects -> Pipe network pipe_color = null init_dir() +/obj/machinery/atmospherics/examine_icon() + return icon(icon=initial(icon),icon_state=initial(icon_state)) + // This is used to set up what directions pipes will connect to. Should be called inside New() and whenever a dir changes. /obj/machinery/atmospherics/proc/init_dir() return diff --git a/code/_helpers/icons.dm b/code/_helpers/icons.dm index 97e66ac93d..8bec734441 100644 --- a/code/_helpers/icons.dm +++ b/code/_helpers/icons.dm @@ -679,7 +679,7 @@ proc/ColorTone(rgb, tone) var/curstate = A.icon_state || defstate if(!((noIcon = (!curicon)))) - var/curstates = icon_states(curicon) + var/curstates = cached_icon_states(curicon) if(!(curstate in curstates)) if("" in curstates) curstate = "" @@ -689,19 +689,16 @@ proc/ColorTone(rgb, tone) var/curdir var/base_icon_dir //We'll use this to get the icon state to display if not null BUT NOT pass it to overlays as the dir we have - //These should use the parent's direction (most likely) - if(!A.dir || A.dir == SOUTH) - curdir = defdir - else - curdir = A.dir + // Use the requested dir or the atom's current dir + curdir = defdir || A.dir - //Try to remove/optimize this section ASAP, CPU hog. + //Try to remove/optimize this section ASAP, CPU hog. //Slightly mitigated by implementing caching using cached_icon_states //Determines if there's directionals. if(!noIcon && curdir != SOUTH) var/exist = FALSE var/static/list/checkdirs = list(NORTH, EAST, WEST) for(var/i in checkdirs) //Not using GLOB for a reason. - if(length(icon_states(icon(curicon, curstate, i)))) + if(length(cached_icon_states(icon(curicon, curstate, i)))) exist = TRUE break if(!exist) @@ -739,8 +736,8 @@ proc/ColorTone(rgb, tone) continue var/current_layer = current.layer if(current_layer < 0) - if(current_layer <= -1000) - return flat + //if(current_layer <= -1000) + //return flat current_layer = process_set + A.layer + current_layer / 1000 for(var/p in 1 to layers.len) @@ -768,7 +765,7 @@ proc/ColorTone(rgb, tone) curblend = BLEND_OVERLAY add = icon(I.icon, I.icon_state, base_icon_dir) else // 'I' is an appearance object. - add = getFlatIcon(image(I), curdir, curicon, curstate, curblend, FALSE, no_anim) + add = getFlatIcon(image(I), I.dir||curdir, curicon, curstate, curblend, FALSE, no_anim) if(!add) continue // Find the new dimensions of the flat icon to fit the added overlay @@ -903,13 +900,12 @@ GLOBAL_LIST_EMPTY(icon_state_lists) /proc/cached_icon_states(var/icon/I) if(!I) return list() - var/key = "\ref[I]" + var/key = I var/returnlist = GLOB.icon_state_lists[key] if(!returnlist) - returnlist = icon_state_lists(I) - GLOB.icon_state_lists[key] = returnlist - if((returnlist?.len == 1) && (returnlist[1] == "")) //It's some icon_state that was generated in-round probably, very likely to be reused \ref soon. - addtimer(CALLBACK(GLOBAL_PROC, .proc/expire_states_cache, key), 600, TIMER_UNIQUE) + returnlist = icon_states(I) + if(isfile(I)) // It's something that will stick around + GLOB.icon_state_lists[key] = returnlist return returnlist /proc/expire_states_cache(var/key) @@ -918,6 +914,19 @@ GLOBAL_LIST_EMPTY(icon_state_lists) return TRUE return FALSE +GLOBAL_LIST_EMPTY(cached_examine_icons) +/proc/set_cached_examine_icon(var/atom/A, var/icon/I, var/expiry = 12000) + GLOB.cached_examine_icons[weakref(A)] = I + if(expiry) + addtimer(CALLBACK(GLOBAL_PROC, .proc/uncache_examine_icon, weakref(A)), expiry, TIMER_UNIQUE) + +/proc/get_cached_examine_icon(var/atom/A) + var/weakref/WR = weakref(A) + return GLOB.cached_examine_icons[WR] + +/proc/uncache_examine_icon(var/weakref/WR) + GLOB.cached_examine_icons -= WR + proc/adjust_brightness(var/color, var/value) if (!color) return "#FFFFFF" if (!value) return color diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 5f8ccb3391..7d39676d51 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -192,6 +192,10 @@ return output +// Don't make these call bicon or anything, these are what bicon uses. They need to return an icon. +/atom/proc/examine_icon() + return icon(icon=src.icon, icon_state=src.icon_state, dir=SOUTH, frame=1, moving=0) + // called by mobs when e.g. having the atom as their machine, pulledby, loc (AKA mob being inside the atom) or buckled var set. // see code/modules/mob/mob_movement.dm for more. /atom/proc/relaymove() diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 3df62610c9..2434d33e89 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -47,6 +47,9 @@ else . += "There is a thick layer of silicate covering it." +/obj/structure/window/examine_icon() + return icon(icon=initial(icon),icon_state=initial(icon_state)) + /obj/structure/window/take_damage(var/damage = 0, var/sound_effect = 1) var/initialhealth = health diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index add0b3b11d..1fc49d58a9 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -46,6 +46,9 @@ dismantle_wall(null,null,1) ..() +/turf/simulated/wall/examine_icon() + return icon(icon=initial(icon), icon_state=initial(icon_state)) + /turf/simulated/wall/process() // Calling parent will kill processing if(!radiate()) diff --git a/code/modules/examine/examine.dm b/code/modules/examine/examine.dm index 6e2df0b1fa..f49c672bca 100644 --- a/code/modules/examine/examine.dm +++ b/code/modules/examine/examine.dm @@ -5,7 +5,7 @@ This means that this file can be unchecked, along with the other examine files, and can be removed entirely with no effort. */ -#define EXAMINE_PANEL_PADDING " " +#define EXAMINE_PANEL_PADDING " " /atom/ var/description_info = null //Helpful blue text. @@ -56,7 +56,7 @@ description_holders["interactions"] = A.get_description_interaction() description_holders["name"] = "[A.name]" - description_holders["icon"] = "\icon[A]" + description_holders["icon"] = "\icon[A.examine_icon()]" description_holders["desc"] = A.desc /mob/Stat() diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index e20d3740c9..349859029f 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -152,6 +152,13 @@ if(new_stat != DEAD) CRASH("It is best if observers stay dead, thank you.") +/mob/observer/dead/examine_icon() + var/icon/I = get_cached_examine_icon(src) + if(!I) + I = getFlatIcon(src, defdir = SOUTH, no_anim = TRUE) + set_cached_examine_icon(src, I, 200 SECONDS) + return I + /* Transfer_mind is there to check if mob is being deleted/not going to have a body. Works together with spawning an observer, noted above. diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index f7ee2d9520..9687bde18f 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1596,6 +1596,13 @@ else layer = HIDING_LAYER +/mob/living/carbon/human/examine_icon() + var/icon/I = get_cached_examine_icon(src) + if(!I) + I = getFlatIcon(src, defdir = SOUTH, no_anim = TRUE) + set_cached_examine_icon(src, I, 50 SECONDS) + return I + /mob/living/carbon/human/proc/get_display_species() //Shows species in tooltip if(src.custom_species) //VOREStation Add diff --git a/code/modules/tables/tables.dm b/code/modules/tables/tables.dm index f853e224fc..249c84be73 100644 --- a/code/modules/tables/tables.dm +++ b/code/modules/tables/tables.dm @@ -30,6 +30,9 @@ var/list/table_icon_cache = list() var/item_place = 1 //allows items to be placed on the table, but not on benches. +/obj/structure/table/examine_icon() + return icon(icon=initial(icon), icon_state=initial(icon_state)) //Basically the map preview version + /obj/structure/table/proc/update_material() var/old_maxhealth = maxhealth if(!material) diff --git a/code/modules/vchat/vchat_client.dm b/code/modules/vchat/vchat_client.dm index 6e0ac509b0..8456c5225f 100644 --- a/code/modules/vchat/vchat_client.dm +++ b/code/modules/vchat/vchat_client.dm @@ -266,31 +266,45 @@ GLOBAL_DATUM_INIT(iconCache, /savefile, new("data/iconCache.sav")) //Cache of ic var/list/partial = splittext(iconData, "{") return replacetext(copytext(partial[2], 3, -5), "\n", "") +/proc/expire_bicon_cache(key) + if(GLOB.bicon_cache[key]) + GLOB.bicon_cache -= key + return TRUE + return FALSE + +GLOBAL_LIST_EMPTY(bicon_cache) // Cache of the tag results, not the icons /proc/bicon(var/obj, var/use_class = 1, var/custom_classes = "") var/class = use_class ? "class='icon misc [custom_classes]'" : null - if (!obj) + if(!obj) return - var/static/list/bicon_cache = list() - if (isicon(obj)) - //Icon refs get reused all the time especially on temporarily made ones like chat tags, too difficult to cache. - //if (!bicon_cache["\ref[obj]"]) // Doesn't exist yet, make it. - //bicon_cache["\ref[obj]"] = icon2base64(obj) - + // Try to avoid passing bicon an /icon directly. It is better to pass it an atom so it can cache. + if(isicon(obj)) // Passed an icon directly, nothing to cache-key on, as icon refs get reused *often* return "" // Either an atom or somebody fucked up and is gonna get a runtime, which I'm fine with. var/atom/A = obj - var/key = "[istype(A.icon, /icon) ? "\ref[A.icon]" : A.icon]:[A.icon_state]" - if (!bicon_cache[key]) // Doesn't exist, make it. - var/icon/I = icon(A.icon, A.icon_state, SOUTH, 1) - if (ishuman(obj)) - I = getFlatIcon(obj) //Ugly - bicon_cache[key] = icon2base64(I, key) + var/key + var/changes_often = ishuman(A) || isobserver(A) // If this ends up with more, move it into a proc or var on atom. + + if(changes_often) + key = "\ref[A]" + else + key = "[istype(A.icon, /icon) ? "\ref[A.icon]" : A.icon]:[A.icon_state]" + + var/base64 = GLOB.bicon_cache[key] + // Non-human atom, no cache + if(!base64) // Doesn't exist, make it. + base64 = icon2base64(A.examine_icon(), key) + GLOB.bicon_cache[key] = base64 + if(changes_often) + addtimer(CALLBACK(GLOBAL_PROC, .proc/expire_bicon_cache, key), 50 SECONDS, TIMER_UNIQUE) + + // May add a class to the img tag created by bicon if(use_class) class = "class='icon [A.icon_state] [custom_classes]'" - return "" + return "" //Checks if the message content is a valid to_chat message /proc/is_valid_tochat_message(message) From 9acf6438281a6a23435677c061eae5173a443675 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 20:26:51 -0400 Subject: [PATCH 010/105] Make DS2NEARESTTICK macro --- code/_helpers/time.dm | 1 + code/modules/mob/mob_movement.dm | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/_helpers/time.dm b/code/_helpers/time.dm index 761bd6cae8..62d217de4e 100644 --- a/code/_helpers/time.dm +++ b/code/_helpers/time.dm @@ -18,6 +18,7 @@ #define DS2TICKS(DS) ((DS)/world.tick_lag) // Convert deciseconds to ticks #define TICKS2DS(T) ((T) TICKS) // Convert ticks to deciseconds +#define DS2NEARESTTICK(DS) TICKS2DS(-round(-(DS2TICKS(DS)))) /proc/get_game_time() var/global/time_offset = 0 diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index c7a4a94ce8..546013f959 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -278,7 +278,7 @@ direct = turn(direct, pick(90, -90)) n = get_step(my_mob, direct) - total_delay = TICKS2DS(-round(-(DS2TICKS(total_delay)))) //Rounded to the next tick in equivalent ds + total_delay = DS2NEARESTTICK(total_delay) //Rounded to the next tick in equivalent ds my_mob.setMoveCooldown(total_delay) . = my_mob.SelfMove(n, direct, total_delay) From b2fa5ec1363895f37b6505e39b0d5fc99d88551f Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 20:27:22 -0400 Subject: [PATCH 011/105] Move all mob movement cooldowns into one proc --- .../mob/living/carbon/human/human_movement.dm | 64 +++++++++---------- .../living/silicon/robot/robot_movement.dm | 8 +-- .../mob/living/simple_mob/simple_mob.dm | 20 +++--- code/modules/mob/mob.dm | 13 +++- code/modules/mob/mob_movement.dm | 19 +----- 5 files changed, 59 insertions(+), 65 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index a0892c9fc9..41887f801b 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -2,10 +2,10 @@ /mob/living/carbon/human/movement_delay(oldloc, direct) - var/tally = 0 + . = ..() if(species.slowdown) - tally = species.slowdown + . = species.slowdown if (istype(loc, /turf/space)) return -1 // It's hard to be slowed down in space by... anything @@ -19,23 +19,23 @@ if(!isnull(M.haste) && M.haste == TRUE) return HUMAN_LOWEST_SLOWDOWN // Returning -1 will actually result in a slowdown for Teshari. if(!isnull(M.slowdown)) - tally += M.slowdown + . += M.slowdown var/health_deficiency = (getMaxHealth() - health) - if(health_deficiency >= 40) tally += (health_deficiency / 25) + if(health_deficiency >= 40) . += (health_deficiency / 25) if(can_feel_pain()) - if(halloss >= 10) tally += (halloss / 10) //halloss shouldn't slow you down if you can't even feel it + if(halloss >= 10) . += (halloss / 10) //halloss shouldn't slow you down if you can't even feel it var/hungry = (500 - nutrition) / 5 //VOREStation Edit - Fixed 500 here instead of our huge MAX_NUTRITION - if (hungry >= 70) tally += hungry/50 + if (hungry >= 70) . += hungry/50 //VOREstation start if (feral >= 10) //crazy feral animals give less and less of a shit about pain and hunger as they get crazier - tally = max(species.slowdown, species.slowdown+((tally-species.slowdown)/(feral/10))) // As feral scales to damage, this amounts to an effective +1 slowdown cap - if(shock_stage >= 10) tally -= 1.5 //this gets a +3 later, feral critters take reduced penalty + . = max(species.slowdown, species.slowdown+((.-species.slowdown)/(feral/10))) // As feral scales to damage, this amounts to an effective +1 slowdown cap + if(shock_stage >= 10) . -= 1.5 //this gets a +3 later, feral critters take reduced penalty if(reagents.has_reagent("numbenzyme")) - tally += 1.5 //A tad bit of slowdown. + . += 1.5 //A tad bit of slowdown. if(riding_datum) //Bit of slowdown for taur rides if rider is bigger or fatter than mount. var/datum/riding/R = riding_datum var/mob/living/L = R.ridden @@ -43,48 +43,48 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.size_multiplier > L.size_multiplier) - tally += 1 + . += 1 if(H.weight > L.weight) - tally += 1 + . += 1 //VOREstation end if(istype(buckled, /obj/structure/bed/chair/wheelchair)) for(var/organ_name in list(BP_L_HAND, BP_R_HAND, BP_L_ARM, BP_R_ARM)) var/obj/item/organ/external/E = get_organ(organ_name) if(!E || E.is_stump()) - tally += 4 + . += 4 else if(E.splinted && E.splinted.loc != E) - tally += 0.5 + . += 0.5 else if(E.status & ORGAN_BROKEN) - tally += 1.5 + . += 1.5 else for(var/organ_name in list(BP_L_LEG, BP_R_LEG, BP_L_FOOT, BP_R_FOOT)) var/obj/item/organ/external/E = get_organ(organ_name) if(!E || E.is_stump()) - tally += 4 + . += 4 else if(E.splinted && E.splinted.loc != E) - tally += 0.5 + . += 0.5 else if(E.status & ORGAN_BROKEN) - tally += 1.5 + . += 1.5 - if(shock_stage >= 10) tally += 3 + if(shock_stage >= 10) . += 3 - if(aiming && aiming.aiming_at) tally += 5 // Iron sights make you slower, it's a well-known fact. + if(aiming && aiming.aiming_at) . += 5 // Iron sights make you slower, it's a well-known fact. if(FAT in src.mutations) - tally += 1.5 + . += 1.5 if (bodytemperature < species.cold_level_1) - tally += (species.cold_level_1 - bodytemperature) / 10 * 1.75 + . += (species.cold_level_1 - bodytemperature) / 10 * 1.75 - tally += max(2 * stance_damage, 0) //damaged/missing feet or legs is slow + . += max(2 * stance_damage, 0) //damaged/missing feet or legs is slow if(mRun in mutations) - tally = 0 + . = 0 // Turf related slowdown var/turf/T = get_turf(src) - tally += calculate_turf_slowdown(T, direct) + . += calculate_turf_slowdown(T, direct) // Item related slowdown. var/item_tally = calculate_item_encumbrance() @@ -101,19 +101,19 @@ item_tally *= species.item_slowdown_mod - tally += item_tally + . += item_tally if(CE_SLOWDOWN in chem_effects) - if (tally >= 0 ) - tally = (tally + tally/4) //Add a quarter of penalties on top. - tally += chem_effects[CE_SLOWDOWN] + if (. >= 0 ) + . *= 1.25 //Add a quarter of penalties on top. + . += chem_effects[CE_SLOWDOWN] if(CE_SPEEDBOOST in chem_effects) - if (tally >= 0) // cut any penalties in half - tally = tally/2 - tally -= chem_effects[CE_SPEEDBOOST] // give 'em a buff on top. + if (. >= 0) // cut any penalties in half + . *= 0.5 + . -= chem_effects[CE_SPEEDBOOST] // give 'em a buff on top. - return max(HUMAN_LOWEST_SLOWDOWN, tally+config.human_delay) // Minimum return should be the same as force_max_speed + . = max(HUMAN_LOWEST_SLOWDOWN, . + config.human_delay) // Minimum return should be the same as force_max_speed // This calculates the amount of slowdown to receive from items worn. This does NOT include species modifiers. // It is in a seperate place to avoid an infinite loop situation with dragging mobs dragging each other. diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index b83b7bfee9..7b268993fa 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -15,14 +15,14 @@ //No longer needed, but I'll leave it here incase we plan to re-use it. /mob/living/silicon/robot/movement_delay() - var/tally = 0 //Incase I need to add stuff other than "speed" later + . = ..() - tally = speed + . += speed if(module_active && istype(module_active,/obj/item/borg/combat/mobility)) - tally-=2 // VOREStation Edit + . -= 2 // VOREStation Edit - return tally+config.robot_delay + . += config.robot_delay // NEW: Use power while moving. /mob/living/silicon/robot/SelfMove(turf/n, direct) diff --git a/code/modules/mob/living/simple_mob/simple_mob.dm b/code/modules/mob/living/simple_mob/simple_mob.dm index 71e7736ebb..be70f6edd0 100644 --- a/code/modules/mob/living/simple_mob/simple_mob.dm +++ b/code/modules/mob/living/simple_mob/simple_mob.dm @@ -212,9 +212,9 @@ return ..() */ /mob/living/simple_mob/movement_delay() - var/tally = 0 //Incase I need to add stuff other than "speed" later + . = ..() - tally = movement_cooldown + . += movement_cooldown if(force_max_speed) return -3 @@ -223,25 +223,25 @@ if(!isnull(M.haste) && M.haste == TRUE) return -3 if(!isnull(M.slowdown)) - tally += M.slowdown + . += M.slowdown // Turf related slowdown var/turf/T = get_turf(src) if(T && T.movement_cost && !hovering) // Flying mobs ignore turf-based slowdown. Aquatic mobs ignore water slowdown, and can gain bonus speed in it. if(istype(T,/turf/simulated/floor/water) && aquatic_movement) - tally -= aquatic_movement - 1 + . -= aquatic_movement - 1 else - tally += T.movement_cost + . += T.movement_cost if(purge)//Purged creatures will move more slowly. The more time before their purge stops, the slower they'll move. - if(tally <= 0) - tally = 1 - tally *= purge + if(. <= 0) + . = 1 + . *= purge if(m_intent == "walk") - tally *= 1.5 + . *= 1.5 - return tally+config.animal_delay + . += config.animal_delay /mob/living/simple_mob/Stat() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 1c78078b98..d819630405 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -148,7 +148,18 @@ return 0 /mob/proc/movement_delay(oldloc, direct) - return 0 + . = 0 + if(locate(/obj/item/weapon/grab) in src) + . += 7 + + // Movespeed delay based on movement mode + switch(m_intent) + if("run") + if(drowsyness > 0) + . += 6 + . += config.run_speed + if("walk") + . += config.walk_speed /mob/proc/Life() // if(organStructure) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 546013f959..39c27c1ae0 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -246,26 +246,9 @@ // We are now going to move moving = 1 - var/total_delay = 0 + var/total_delay = my_mob.movement_delay(n, direct) var/pre_move_loc = loc - // Start tally'ing when we can next move - // Grabs slow you down - if(locate(/obj/item/weapon/grab) in my_mob) - total_delay += 7 - - // Movespeed delay based on movement mode - switch(my_mob.m_intent) - if("run") - if(my_mob.drowsyness > 0) - total_delay += 6 - total_delay += config.run_speed - if("walk") - total_delay += config.walk_speed - - // A billion other things can slow you down, ask the mob - total_delay += my_mob.movement_delay(n, direct) - // Confused direction randomization if(my_mob.confused) switch(my_mob.m_intent) From e55f9d2debf354d68bfcd26efdda26e2ac3e0626 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 20:27:55 -0400 Subject: [PATCH 012/105] Add Goon-style pushing --- code/modules/mob/living/living.dm | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 8fc975073e..d74f43bced 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -224,7 +224,15 @@ default behaviour is: for(var/obj/structure/window/win in get_step(AM,t)) now_pushing = 0 return - step(AM, t) + var/turf/T = AM.loc + var/turf/T2 = get_step(AM,t) + if(!T2) // Map edge + now_pushing = 0 + return + var/move_time = movement_delay(loc, t) + move_time = DS2NEARESTTICK(move_time) + if(AM.Move(T2, t, move_time)) + Move(T, t, move_time) if(ishuman(AM) && AM:grabbed_by) for(var/obj/item/weapon/grab/G in AM:grabbed_by) step(G:assailant, get_dir(G:assailant, AM)) From d56980bf012dd7abfd64a26b5a7aab292589f3f5 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 20:28:10 -0400 Subject: [PATCH 013/105] Add some un-push helpers --- code/_onclick/click.dm | 3 +++ code/modules/mob/mob_movement.dm | 3 +++ 2 files changed, 6 insertions(+) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 23269f5bab..89e0baa087 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -257,6 +257,9 @@ if(Adjacent(user)) user.start_pulling(src) +/turf/CtrlClick(var/mob/user) + user.stop_pulling() + /* Alt click Unused except for AI diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 39c27c1ae0..3d0f88e7a7 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -37,6 +37,9 @@ if(isliving(usr)) var/mob/living/carbon/C = usr if(!C.get_active_hand()) + if(C.pulling) + C.stop_pulling() + return to_chat(usr, "You have nothing to drop in your hand.") return drop_item() From 8cc4a53477fbc95d007d4f3efdeac50322171212 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 21:33:49 -0400 Subject: [PATCH 014/105] Increase intercom range to world.view --- code/game/objects/items/devices/radio/intercom.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index 6d823f217f..b9e778a105 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -7,7 +7,7 @@ layer = ABOVE_TURF_LAYER anchored = 1 w_class = ITEMSIZE_LARGE - canhear_range = 2 + canhear_range = 7 //VOREStation Edit flags = NOBLOODY var/circuit = /obj/item/weapon/circuitboard/intercom var/number = 0 From ab0f256c641f6ee721cb493545469a8a6c4afa63 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 21:12:36 -0400 Subject: [PATCH 015/105] Add ctrl/alt quick click functions on intercoms for AI --- code/game/objects/items/devices/radio/intercom.dm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/code/game/objects/items/devices/radio/intercom.dm b/code/game/objects/items/devices/radio/intercom.dm index b9e778a105..8c26e874d2 100644 --- a/code/game/objects/items/devices/radio/intercom.dm +++ b/code/game/objects/items/devices/radio/intercom.dm @@ -189,7 +189,19 @@ icon_state = "intercom_open" else icon_state = initial(icon_state) +//VOREStation Add Start +/obj/item/device/radio/intercom/AICtrlClick(var/mob/user) + ToggleBroadcast() + to_chat(user, "\The [src]'s microphone is now [broadcasting ? "enabled" : "disabled"].") +/obj/item/device/radio/intercom/AIAltClick(var/mob/user) + if(frequency == AI_FREQ) + set_frequency(initial(frequency)) + to_chat(user, "\The [src]'s frequency is now set to Default.") + else + set_frequency(AI_FREQ) + to_chat(user, "\The [src]'s frequency is now set to AI Private.") +//VOREStation Add End /obj/item/device/radio/intercom/locked var/locked_frequency From 939105952a6c1757a78eac186789175b0a02dc10 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Wed, 6 May 2020 23:11:29 -0400 Subject: [PATCH 016/105] "Deg" instead of symbol --- code/_helpers/icons.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_helpers/icons.dm b/code/_helpers/icons.dm index 8bec734441..a199c88622 100644 --- a/code/_helpers/icons.dm +++ b/code/_helpers/icons.dm @@ -107,7 +107,7 @@ AngleToHue(hue) Converts an angle to a hue in the valid range. RotateHue(hsv, angle) Takes an HSV or HSVA value and rotates the hue forward through red, green, and blue by an angle from 0 to 360. - (Rotating red by 60� produces yellow.) The result is another HSV or HSVA color with the same saturation and value + (Rotating red by 60deg produces yellow.) The result is another HSV or HSVA color with the same saturation and value as the original, but a different hue. GrayScale(rgb) Takes an RGB or RGBA color and converts it to grayscale. Returns an RGB or RGBA string. From c3e820165bd92f1ec70df339ddd1685f16ba0744 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 7 May 2020 00:18:54 -0400 Subject: [PATCH 017/105] Fix species with slowdown instead being super fast --- .../mob/living/carbon/human/human_movement.dm | 22 +++++++++++-------- .../living/silicon/robot/robot_movement.dm | 6 ++--- .../mob/living/simple_mob/simple_mob.dm | 6 ++--- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 41887f801b..cd2d368d6d 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -2,22 +2,20 @@ /mob/living/carbon/human/movement_delay(oldloc, direct) - . = ..() + . = 0 + + if (istype(loc, /turf/space)) + return ..() - 1 if(species.slowdown) - . = species.slowdown - - if (istype(loc, /turf/space)) return -1 // It's hard to be slowed down in space by... anything - - if(embedded_flag) - handle_embedded_objects() //Moving with objects stuck in you can cause bad times. + . += species.slowdown if(force_max_speed) - return HUMAN_LOWEST_SLOWDOWN + return ..() + HUMAN_LOWEST_SLOWDOWN for(var/datum/modifier/M in modifiers) if(!isnull(M.haste) && M.haste == TRUE) - return HUMAN_LOWEST_SLOWDOWN // Returning -1 will actually result in a slowdown for Teshari. + return ..() + HUMAN_LOWEST_SLOWDOWN // Returning -1 will actually result in a slowdown for Teshari. if(!isnull(M.slowdown)) . += M.slowdown @@ -114,6 +112,12 @@ . -= chem_effects[CE_SPEEDBOOST] // give 'em a buff on top. . = max(HUMAN_LOWEST_SLOWDOWN, . + config.human_delay) // Minimum return should be the same as force_max_speed + . += ..() + +/mob/living/carbon/human/Moved() + . = ..() + if(embedded_flag) + handle_embedded_objects() //Moving with objects stuck in you can cause bad times. // This calculates the amount of slowdown to receive from items worn. This does NOT include species modifiers. // It is in a seperate place to avoid an infinite loop situation with dragging mobs dragging each other. diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index 7b268993fa..77e0f0cbe9 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -15,15 +15,15 @@ //No longer needed, but I'll leave it here incase we plan to re-use it. /mob/living/silicon/robot/movement_delay() - . = ..() - - . += speed + . = speed if(module_active && istype(module_active,/obj/item/borg/combat/mobility)) . -= 2 // VOREStation Edit . += config.robot_delay + . += ..() + // NEW: Use power while moving. /mob/living/silicon/robot/SelfMove(turf/n, direct) if (!is_component_functioning("actuator")) diff --git a/code/modules/mob/living/simple_mob/simple_mob.dm b/code/modules/mob/living/simple_mob/simple_mob.dm index be70f6edd0..3b063e1ac4 100644 --- a/code/modules/mob/living/simple_mob/simple_mob.dm +++ b/code/modules/mob/living/simple_mob/simple_mob.dm @@ -212,9 +212,7 @@ return ..() */ /mob/living/simple_mob/movement_delay() - . = ..() - - . += movement_cooldown + . = movement_cooldown if(force_max_speed) return -3 @@ -243,6 +241,8 @@ . += config.animal_delay + . += ..() + /mob/living/simple_mob/Stat() ..() From 9c32a0e2b3b330ea165c96deb46204c894786856 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Wed, 6 May 2020 21:38:57 -0700 Subject: [PATCH 018/105] Updates machines to use default_apply_parts() --- .../components/unary/cold_sink.dm | 12 ++--- .../components/unary/heat_source.dm | 12 ++--- code/game/dna/dna_modifier.dm | 13 ++--- code/game/machinery/Sleeper.dm | 17 ++----- code/game/machinery/adv_med.dm | 11 ++--- code/game/machinery/autolathe.dm | 12 ++--- code/game/machinery/biogenerator.dm | 9 ++-- code/game/machinery/bioprinter.dm | 14 ++---- code/game/machinery/cell_charger.dm | 10 ++-- code/game/machinery/cloning.dm | 14 ++---- code/game/machinery/exonet_node.dm | 18 ++----- code/game/machinery/jukebox.dm | 6 +-- code/game/machinery/machinery.dm | 2 + code/game/machinery/mass_driver.dm | 12 +---- code/game/machinery/pda_multicaster.dm | 14 ++---- code/game/machinery/recharger.dm | 10 ++-- code/game/machinery/rechargestation.dm | 14 ++---- code/game/machinery/telecomms/broadcaster.dm | 8 +--- .../machinery/telecomms/telecomunications.dm | 47 ++++--------------- code/game/machinery/teleporter.dm | 35 ++++---------- .../machinery/virtual_reality/vr_console.dm | 10 ++-- code/game/machinery/washing_machine.dm | 12 ++--- code/game/mecha/mech_bay.dm | 12 ++--- code/game/mecha/mech_fabricator.dm | 17 ++----- code/game/mecha/mech_prosthetics.dm | 15 ++---- .../detectivework/microscope/dnascanner.dm | 11 ++--- code/modules/food/kitchen/microwave.dm | 8 +--- code/modules/mining/drilling/drill.dm | 13 ++--- code/modules/paperwork/papershredder.dm | 11 ++--- code/modules/paperwork/photocopier.dm | 11 ++--- code/modules/power/batteryrack.dm | 1 - code/modules/power/grid_checker.dm | 11 ++--- code/modules/power/pacman2.dm | 15 ++---- code/modules/power/port_gen.dm | 12 +---- code/modules/power/smes_construction.dm | 16 +++---- code/modules/reagents/Chemistry-Machinery.dm | 10 ++-- code/modules/recycling/conveyor2.dm | 8 +--- code/modules/research/circuitprinter.dm | 7 +-- code/modules/research/destructive_analyzer.dm | 10 ++-- code/modules/research/protolathe.dm | 9 +--- code/modules/research/server.dm | 10 ++-- .../xenobio2/machinery/core_extractor.dm | 12 ++--- .../xenobio2/machinery/gene_manipulators.dm | 28 +++-------- code/modules/xenobio2/machinery/injector.dm | 11 ++--- .../xenobio2/machinery/slime_replicator.dm | 12 ++--- 45 files changed, 149 insertions(+), 433 deletions(-) diff --git a/code/ATMOSPHERICS/components/unary/cold_sink.dm b/code/ATMOSPHERICS/components/unary/cold_sink.dm index b4c1e30fba..2c53c47583 100644 --- a/code/ATMOSPHERICS/components/unary/cold_sink.dm +++ b/code/ATMOSPHERICS/components/unary/cold_sink.dm @@ -21,15 +21,9 @@ var/set_temperature = T20C // Thermostat var/cooling = 0 -/obj/machinery/atmospherics/unary/freezer/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/stack/cable_coil(src, 2) - RefreshParts() +/obj/machinery/atmospherics/unary/freezer/Initialize() + . = ..() + default_apply_parts() /obj/machinery/atmospherics/unary/freezer/atmos_init() if(node) diff --git a/code/ATMOSPHERICS/components/unary/heat_source.dm b/code/ATMOSPHERICS/components/unary/heat_source.dm index 3537082ada..c91ef281f3 100644 --- a/code/ATMOSPHERICS/components/unary/heat_source.dm +++ b/code/ATMOSPHERICS/components/unary/heat_source.dm @@ -21,15 +21,9 @@ var/set_temperature = T20C //thermostat var/heating = 0 //mainly for icon updates -/obj/machinery/atmospherics/unary/heater/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/stack/cable_coil(src, 5) - - RefreshParts() +/obj/machinery/atmospherics/unary/heater/Initialize() + . = ..() + default_apply_parts() /obj/machinery/atmospherics/unary/heater/atmos_init() if(node) diff --git a/code/game/dna/dna_modifier.dm b/code/game/dna/dna_modifier.dm index c79a0e94be..b9b8f6db8a 100644 --- a/code/game/dna/dna_modifier.dm +++ b/code/game/dna/dna_modifier.dm @@ -56,16 +56,9 @@ var/obj/item/weapon/reagent_containers/glass/beaker = null var/opened = 0 -/obj/machinery/dna_scannernew/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src) - component_parts += new /obj/item/stack/cable_coil(src) - RefreshParts() +/obj/machinery/dna_scannernew/Initialize() + . = ..() + default_apply_parts() /obj/machinery/dna_scannernew/relaymove(mob/user as mob) if (user.stat) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 70fd190afe..c19873fd3d 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -180,21 +180,10 @@ idle_power_usage = 15 active_power_usage = 200 //builtin health analyzer, dialysis machine, injectors. -/obj/machinery/sleeper/New() - ..() +/obj/machinery/sleeper/Initialize() + . = ..() beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src) - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) - component_parts += new /obj/item/weapon/reagent_containers/syringe(src) - component_parts += new /obj/item/weapon/reagent_containers/syringe(src) - component_parts += new /obj/item/weapon/reagent_containers/syringe(src) - component_parts += new /obj/item/stack/material/glass/reinforced(src, 2) - - RefreshParts() + default_apply_parts() /obj/machinery/sleeper/Destroy() if(console) diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index f5034bcf71..482988caf2 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -15,14 +15,9 @@ light_color = "#00FF00" var/obj/machinery/body_scanconsole/console -/obj/machinery/bodyscanner/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/stack/material/glass/reinforced(src, 2) - RefreshParts() +/obj/machinery/bodyscanner/Initialize() + . = ..() + default_apply_parts() /obj/machinery/bodyscanner/Destroy() if(console) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index facb9e4402..4c9a03bf3a 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -27,17 +27,17 @@ var/datum/wires/autolathe/wires = null +<<<<<<< HEAD var/filtertext /obj/machinery/autolathe/New() ..() +======= +/obj/machinery/autolathe/Initialize() + . = ..() +>>>>>>> fcbcb0a... Merge pull request #7055 from VOREStation/pol-defaultparts wires = new(src) - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) + default_apply_parts() RefreshParts() /obj/machinery/autolathe/Destroy() diff --git a/code/game/machinery/biogenerator.dm b/code/game/machinery/biogenerator.dm index 6f62b2e056..220d9fd013 100644 --- a/code/game/machinery/biogenerator.dm +++ b/code/game/machinery/biogenerator.dm @@ -15,17 +15,14 @@ var/build_eff = 1 var/eat_eff = 1 -/obj/machinery/biogenerator/New() - ..() +/obj/machinery/biogenerator/Initialize() + . = ..() var/datum/reagents/R = new/datum/reagents(1000) reagents = R R.my_atom = src beaker = new /obj/item/weapon/reagent_containers/glass/bottle(src) - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - RefreshParts() + default_apply_parts() /obj/machinery/biogenerator/on_reagent_change() //When the reagents change, change the icon as well. update_icon() diff --git a/code/game/machinery/bioprinter.dm b/code/game/machinery/bioprinter.dm index d40a89c202..b5a25b24a0 100644 --- a/code/game/machinery/bioprinter.dm +++ b/code/game/machinery/bioprinter.dm @@ -77,14 +77,10 @@ add_overlay("bioprinter_working") //VOREStation Edit End -/obj/machinery/organ_printer/New() - ..() - - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - RefreshParts() - +/obj/machinery/organ_printer/Initialize() + . = ..() + default_apply_parts() + /obj/machinery/organ_printer/examine(var/mob/user) . = ..() var/biomass = get_biomass_volume() @@ -274,7 +270,7 @@ icon_state = "bioprinter" circuit = /obj/item/weapon/circuitboard/bioprinter -/obj/machinery/organ_printer/flesh/full/New() +/obj/machinery/organ_printer/flesh/full/Initialize() . = ..() container = new /obj/item/weapon/reagent_containers/glass/bottle/biomass(src) diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm index 917fed33eb..2b768fb3e6 100644 --- a/code/game/machinery/cell_charger.dm +++ b/code/game/machinery/cell_charger.dm @@ -13,13 +13,9 @@ var/chargelevel = -1 circuit = /obj/item/weapon/circuitboard/cell_charger -/obj/machinery/cell_charger/New() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/stack/cable_coil(src, 5) - RefreshParts() - ..() - return +/obj/machinery/cell_charger/Initialize() + . = ..() + default_apply_parts() /obj/machinery/cell_charger/update_icon() icon_state = "ccharger[charging ? 1 : 0]" diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index ebd740e5e5..e5fec765ca 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -46,17 +46,9 @@ var/list/containers = list() // Beakers for our liquid biomass var/container_limit = 3 // How many beakers can the machine hold? -/obj/machinery/clonepod/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/stack/cable_coil(src, 2) - - RefreshParts() +/obj/machinery/clonepod/Initialize() + . = ..() + default_apply_parts() update_icon() /obj/machinery/clonepod/attack_ai(mob/user as mob) diff --git a/code/game/machinery/exonet_node.dm b/code/game/machinery/exonet_node.dm index 1813d2dc71..473ab1977f 100644 --- a/code/game/machinery/exonet_node.dm +++ b/code/game/machinery/exonet_node.dm @@ -21,21 +21,9 @@ // Proc: New() // Parameters: None // Description: Adds components to the machine for deconstruction. -/obj/machinery/exonet_node/map/New() - ..() - - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/subspace/ansible(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/crystal(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/treatment(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/treatment(src) - component_parts += new /obj/item/stack/cable_coil(src, 2) - RefreshParts() - +/obj/machinery/exonet_node/map/Initialize() + . = ..() + default_apply_parts() desc = "This machine is one of many, many nodes inside [using_map.starsys_name]'s section of the Exonet, connecting the [using_map.station_short] to the rest of the system, at least \ electronically." diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm index a0ef0503fd..42f7b681b7 100644 --- a/code/game/machinery/jukebox.dm +++ b/code/game/machinery/jukebox.dm @@ -54,8 +54,8 @@ new/datum/track("Russkiy rep Diskoteka", 'sound/music/russianrapdisco.ogg') ) -/obj/machinery/media/jukebox/New() - ..() +/obj/machinery/media/jukebox/Initialize() + . = ..() default_apply_parts() wires = new/datum/wires/jukebox(src) update_icon() @@ -63,7 +63,7 @@ /obj/machinery/media/jukebox/Destroy() qdel(wires) wires = null - ..() + return ..() // On initialization, copy our tracks from the global list /obj/machinery/media/jukebox/Initialize() diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 3871908ff2..b0b63fc778 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -124,6 +124,8 @@ Class Procs: /obj/machinery/Initialize() . = ..() global.machines += src + if(ispath(circuit)) + circuit = new circuit(src) if(!speed_process) START_MACHINE_PROCESSING(src) else diff --git a/code/game/machinery/mass_driver.dm b/code/game/machinery/mass_driver.dm index 7c184c27de..25805c694e 100644 --- a/code/game/machinery/mass_driver.dm +++ b/code/game/machinery/mass_driver.dm @@ -17,16 +17,8 @@ var/drive_range = 50 //this is mostly irrelevant since current mass drivers throw into space, but you could make a lower-range mass driver for interstation transport or something I guess. /obj/machinery/mass_driver/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/motor(src) - component_parts += new /obj/item/weapon/stock_parts/motor(src) - component_parts += new /obj/item/weapon/stock_parts/gear(src) - component_parts += new /obj/item/weapon/stock_parts/gear(src) - component_parts += new /obj/item/weapon/stock_parts/spring(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/stack/cable_coil(src, 5) - RefreshParts() + . = ..() + default_apply_parts() /obj/machinery/mass_driver/attackby(var/obj/item/I, mob/user) if(default_deconstruction_screwdriver(user, I)) diff --git a/code/game/machinery/pda_multicaster.dm b/code/game/machinery/pda_multicaster.dm index 29de5307cf..29416e828e 100644 --- a/code/game/machinery/pda_multicaster.dm +++ b/code/game/machinery/pda_multicaster.dm @@ -23,17 +23,9 @@ "cargo" = new /obj/item/device/pda/multicaster/cargo(src), "civilian" = new /obj/item/device/pda/multicaster/civilian(src)) -/obj/machinery/pda_multicaster/prebuilt/New() - ..() - - component_parts = list() - component_parts += new /obj/item/weapon/circuitboard/telecomms/pda_multicaster(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/ansible(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/treatment(src) - component_parts += new /obj/item/stack/cable_coil(src, 2) - RefreshParts() +/obj/machinery/pda_multicaster/prebuilt/Initialize() + . = ..() + default_apply_parts() /obj/machinery/pda_multicaster/Destroy() for(var/atom/movable/AM in contents) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 06acd97d0b..2b8b8aa637 100644 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -17,13 +17,9 @@ var/portable = 1 circuit = /obj/item/weapon/circuitboard/recharger -/obj/machinery/recharger/New() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/stack/cable_coil(src, 5) - RefreshParts() - ..() - return +/obj/machinery/recharger/Initialize() + . = ..() + default_apply_parts() /obj/machinery/recharger/examine(mob/user) . = ..() diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 75cc5b55cc..c683a56c0e 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -22,17 +22,9 @@ var/weld_power_use = 2300 // power used per point of brute damage repaired. 2.3 kW ~ about the same power usage of a handheld arc welder var/wire_power_use = 500 // power used per point of burn damage repaired. -/obj/machinery/recharge_station/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/cell/high(src) - component_parts += new /obj/item/stack/cable_coil(src, 5) - RefreshParts() - +/obj/machinery/recharge_station/Initialize() + . = ..() + default_apply_parts() update_icon() /obj/machinery/recharge_station/proc/has_cell_power() diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 165df28298..46acbb4fdc 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -32,13 +32,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept /obj/machinery/telecomms/processor/Initialize() . = ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/crystal(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser/high(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) + default_apply_parts() /obj/machinery/telecomms/broadcaster/proc/link_radio(var/obj/item/device/radio/R) if(!istype(R)) diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index 1d765375be..5339b0c9ab 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -266,13 +266,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() /obj/machinery/telecomms/receiver/Initialize() . = ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/subspace/ansible(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - RefreshParts() + default_apply_parts() /obj/machinery/telecomms/receiver/proc/link_radio(var/obj/item/device/radio/R) if(!istype(R)) @@ -355,6 +349,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() /obj/machinery/telecomms/hub/Initialize() . = ..() +<<<<<<< HEAD component_parts = list() component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) @@ -362,6 +357,10 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() component_parts += new /obj/item/weapon/stock_parts/manipulator(src) component_parts += new /obj/item/stack/cable_coil(src, 2) RefreshParts() +======= + LAZYINITLIST(telecomms_map) + default_apply_parts() +>>>>>>> fcbcb0a... Merge pull request #7055 from VOREStation/pol-defaultparts /obj/machinery/telecomms/hub/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) if(is_freq_listening(signal)) @@ -401,13 +400,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() /obj/machinery/telecomms/relay/Initialize() . = ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/stack/cable_coil(src, 2) - RefreshParts() + default_apply_parts() /obj/machinery/telecomms/relay/forceMove(var/newloc) . = ..(newloc) @@ -464,12 +457,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() /obj/machinery/telecomms/bus/Initialize() . = ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) - RefreshParts() + default_apply_parts() /obj/machinery/telecomms/bus/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) @@ -525,17 +513,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() /obj/machinery/telecomms/processor/Initialize() . = ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/treatment(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/treatment(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/amplifier(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/analyzer(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/stack/cable_coil(src, 2) - RefreshParts() + default_apply_parts() /obj/machinery/telecomms/processor/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) @@ -596,12 +574,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() /obj/machinery/telecomms/server/Initialize() . = ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/stack/cable_coil(src, 1) - RefreshParts() + default_apply_parts() /obj/machinery/telecomms/server/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index c27de5c31c..7fb7836aa5 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -178,22 +178,10 @@ circuit = /obj/item/weapon/circuitboard/teleporter_hub var/obj/machinery/computer/teleporter/com -/obj/machinery/teleport/hub/New() - ..() - underlays.Cut() +/obj/machinery/teleport/hub/Initialize() + . = ..() underlays += image('icons/obj/stationobjs.dmi', icon_state = "tele-wires") - - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/stack/cable_coil(src, 10) - RefreshParts() + default_apply_parts() /obj/machinery/teleport/hub/Bumped(M as mob|obj) spawn() @@ -335,18 +323,11 @@ circuit = /obj/item/weapon/circuitboard/teleporter_station var/obj/machinery/teleport/hub/com -/obj/machinery/teleport/station/New() - ..() - overlays.Cut() - overlays += image('icons/obj/stationobjs.dmi', icon_state = "controller-wires") - - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/stack/cable_coil(src, 10) - RefreshParts() - +/obj/machinery/teleport/station/Initialize() + . = ..() + add_overlay("controller-wires") + default_apply_parts() + /obj/machinery/teleport/station/attackby(var/obj/item/weapon/W) attack_hand() diff --git a/code/game/machinery/virtual_reality/vr_console.dm b/code/game/machinery/virtual_reality/vr_console.dm index 8a417a98bc..75236c3cd2 100644 --- a/code/game/machinery/virtual_reality/vr_console.dm +++ b/code/game/machinery/virtual_reality/vr_console.dm @@ -23,13 +23,9 @@ active_power_usage = 200 light_color = "#FF0000" -/obj/machinery/vr_sleeper/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/stack/material/glass/reinforced(src, 2) - - RefreshParts() +/obj/machinery/vr_sleeper/Initialize() + . = ..() + default_apply_parts() /obj/machinery/vr_sleeper/Initialize() . = ..() diff --git a/code/game/machinery/washing_machine.dm b/code/game/machinery/washing_machine.dm index 2a6b90cdc6..edb8e56155 100644 --- a/code/game/machinery/washing_machine.dm +++ b/code/game/machinery/washing_machine.dm @@ -29,14 +29,10 @@ /obj/item/clothing/head/helmet/space ) -/obj/machinery/washing_machine/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/motor(src) - component_parts += new /obj/item/weapon/stock_parts/gear(src) - component_parts += new /obj/item/weapon/stock_parts/gear(src) - RefreshParts() - +/obj/machinery/washing_machine/Initialize() + . = ..() + default_apply_parts() + /obj/machinery/washing_machine/verb/start() set name = "Start Washing" set category = "Object" diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index 5584590f92..c2288709e5 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -12,15 +12,9 @@ var/charge = 45 var/repair = 0 -/obj/machinery/mech_recharger/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - RefreshParts() +/obj/machinery/mech_recharger/Initialize() + . = ..() + default_apply_parts() /obj/machinery/mech_recharger/Crossed(var/obj/mecha/M) . = ..() diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index a881cdb720..734c5bfa4c 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -26,22 +26,11 @@ var/category = null var/sync_message = "" -/obj/machinery/mecha_part_fabricator/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - RefreshParts() - - files = new /datum/research(src) //Setup the research data holder. - return - /obj/machinery/mecha_part_fabricator/Initialize() - update_categories() . = ..() + default_apply_parts() + files = new /datum/research(src) //Setup the research data holder. + update_categories() /obj/machinery/mecha_part_fabricator/process() ..() diff --git a/code/game/mecha/mech_prosthetics.dm b/code/game/mecha/mech_prosthetics.dm index 5e93378a0c..bb2c5f87ce 100644 --- a/code/game/mecha/mech_prosthetics.dm +++ b/code/game/mecha/mech_prosthetics.dm @@ -29,18 +29,11 @@ var/species = "Human" var/sync_message = "" -/obj/machinery/pros_fabricator/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - RefreshParts() - +/obj/machinery/pros_fabricator/Initialize() + . = ..() + default_apply_parts() + files = new /datum/research(src) //Setup the research data holder. - return /obj/machinery/pros_fabricator/Initialize() . = ..() diff --git a/code/modules/detectivework/microscope/dnascanner.dm b/code/modules/detectivework/microscope/dnascanner.dm index 94d4acd5cd..0b9782b2c8 100644 --- a/code/modules/detectivework/microscope/dnascanner.dm +++ b/code/modules/detectivework/microscope/dnascanner.dm @@ -16,14 +16,9 @@ var/last_process_worldtime = 0 var/report_num = 0 -/obj/machinery/dnaforensics/New() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - RefreshParts() - ..() +/obj/machinery/dnaforensics/Initialize() + . = ..() + default_apply_parts() /obj/machinery/dnaforensics/attackby(var/obj/item/W, mob/user as mob) diff --git a/code/modules/food/kitchen/microwave.dm b/code/modules/food/kitchen/microwave.dm index b9beeed09b..593a7892fd 100644 --- a/code/modules/food/kitchen/microwave.dm +++ b/code/modules/food/kitchen/microwave.dm @@ -31,13 +31,11 @@ ********************/ /obj/machinery/microwave/Initialize() + . = ..() reagents = new/datum/reagents(100) reagents.my_atom = src - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/console_screen(src) - component_parts += new /obj/item/weapon/stock_parts/motor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) + default_apply_parts() if (!available_recipes) available_recipes = new @@ -60,9 +58,7 @@ acceptable_items |= /obj/item/device/soulstone acceptable_items |= /obj/item/weapon/fuel_assembly/supermatter - RefreshParts() soundloop = new(list(src), FALSE) - return ..() /obj/machinery/microwave/Destroy() QDEL_NULL(soundloop) diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm index 3c38927910..f4e51a0c30 100644 --- a/code/modules/mining/drilling/drill.dm +++ b/code/modules/mining/drilling/drill.dm @@ -52,16 +52,9 @@ var/need_update_field = 0 var/need_player_check = 0 -/obj/machinery/mining/drill/New() - - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/cell/high(src) - - RefreshParts() +/obj/machinery/mining/drill/Initialize() + . = ..() + default_apply_parts() /obj/machinery/mining/drill/process() diff --git a/code/modules/paperwork/papershredder.dm b/code/modules/paperwork/papershredder.dm index 4c927b376e..cbbe7eeb4e 100644 --- a/code/modules/paperwork/papershredder.dm +++ b/code/modules/paperwork/papershredder.dm @@ -25,14 +25,9 @@ /obj/item/weapon/paper_bundle = 3, ) -/obj/machinery/papershredder/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/motor(src) - component_parts += new /obj/item/weapon/stock_parts/gear(src) - component_parts += new /obj/item/weapon/stock_parts/gear(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - RefreshParts() +/obj/machinery/papershredder/Initialize() + . = ..() + default_apply_parts() update_icon() /obj/machinery/papershredder/attackby(var/obj/item/W, var/mob/user) diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 6dcadea0a6..71a110b4bd 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -16,14 +16,9 @@ var/toner = 30 //how much toner is left! woooooo~ var/maxcopies = 10 //how many copies can be copied at once- idea shamelessly stolen from bs12's copier! -/obj/machinery/photocopier/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/motor(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - RefreshParts() +/obj/machinery/photocopier/Initialize() + . = ..() + default_apply_parts() /obj/machinery/photocopier/examine(mob/user as mob) . = ..() diff --git a/code/modules/power/batteryrack.dm b/code/modules/power/batteryrack.dm index d6fe46fa2b..f6bc1c9ff6 100644 --- a/code/modules/power/batteryrack.dm +++ b/code/modules/power/batteryrack.dm @@ -40,7 +40,6 @@ component_parts += new /obj/item/weapon/stock_parts/capacitor/ component_parts += new /obj/item/weapon/stock_parts/matter_bin/ // Matter Bin: Max. amount of cells. - /obj/machinery/power/smes/batteryrack/RefreshParts() var/capacitor_efficiency = 0 var/maxcells = 0 diff --git a/code/modules/power/grid_checker.dm b/code/modules/power/grid_checker.dm index 93d4918af0..224eade429 100644 --- a/code/modules/power/grid_checker.dm +++ b/code/modules/power/grid_checker.dm @@ -15,17 +15,12 @@ var/wire_allow_manual_3 = FALSE var/opened = FALSE -/obj/machinery/power/grid_checker/New() - ..() +/obj/machinery/power/grid_checker/Initialize() + . = ..() connect_to_network() update_icon() wires = new(src) - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new /obj/item/stack/cable_coil(src, 10) - RefreshParts() + default_apply_parts() /obj/machinery/power/grid_checker/Destroy() qdel(wires) diff --git a/code/modules/power/pacman2.dm b/code/modules/power/pacman2.dm index 33fb1fb97a..26a534e222 100644 --- a/code/modules/power/pacman2.dm +++ b/code/modules/power/pacman2.dm @@ -6,8 +6,8 @@ name = "Pacman II" desc = "P.A.C.M.A.N. type II portable generator. Uses liquid phoron as a fuel source." power_gen = 4500 + circuit = /obj/item/weapon/circuitboard/pacman2 var/obj/item/weapon/tank/phoron/P = null - var/board_path = "/obj/item/weapon/circuitboard/pacman2" var/emagged = 0 var/heat = 0 /* @@ -30,16 +30,9 @@ P.air_contents.phoron -= 0.01 return - New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/stack/cable_coil(src) - component_parts += new /obj/item/stack/cable_coil(src) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - component_parts += new board_path(src) - RefreshParts() + Initialize() + . = ..() + default_apply_parts() RefreshParts() var/temp_rating = 0 diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 852d4d5d0f..10b638121f 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -112,18 +112,10 @@ /obj/machinery/power/port_gen/pacman/Initialize() . = ..() + default_apply_parts() if(anchored) connect_to_network() - -/obj/machinery/power/port_gen/pacman/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/stack/cable_coil(src, 2) - component_parts += new /obj/item/weapon/stock_parts/capacitor(src) - RefreshParts() - + /obj/machinery/power/port_gen/pacman/Destroy() DropFuel() return ..() diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm index aadcc41ec4..558e879a87 100644 --- a/code/modules/power/smes_construction.dm +++ b/code/modules/power/smes_construction.dm @@ -41,23 +41,23 @@ // These are used on individual outposts as backup should power line be cut, or engineering outpost lost power. // 1M Charge, 150K I/O -/obj/machinery/power/smes/buildable/outpost_substation/New() - ..(0) +/obj/machinery/power/smes/buildable/outpost_substation/Initialize() + . = ..() component_parts += new /obj/item/weapon/smes_coil/weak(src) recalc_coils() // This one is pre-installed on engineering shuttle. Allows rapid charging/discharging for easier transport of power to outpost // 11M Charge, 2.5M I/O -/obj/machinery/power/smes/buildable/power_shuttle/New() - ..(0) +/obj/machinery/power/smes/buildable/power_shuttle/Initialize() + . = ..() component_parts += new /obj/item/weapon/smes_coil/super_io(src) component_parts += new /obj/item/weapon/smes_coil/super_io(src) component_parts += new /obj/item/weapon/smes_coil(src) recalc_coils() // Pre-installed and pre-charged SMES hidden from the station, for use in submaps. -/obj/machinery/power/smes/buildable/point_of_interest/New() - ..(1) +/obj/machinery/power/smes/buildable/point_of_interest/Initialize() + . = ..() charge = 1e7 // Should be enough for an individual POI. RCon = FALSE input_level = input_level_max @@ -119,7 +119,8 @@ // Proc: New() // Parameters: None // Description: Adds standard components for this SMES, and forces recalculation of properties. -/obj/machinery/power/smes/buildable/New(var/install_coils = 1) +/obj/machinery/power/smes/buildable/Initialize(var/install_coils = 1) + . = ..() component_parts = list() component_parts += new /obj/item/stack/cable_coil(src,30) wires = new /datum/wires/smes(src) @@ -129,7 +130,6 @@ for(var/i = 1, i <= cur_coils, i++) component_parts += new /obj/item/weapon/smes_coil(src) recalc_coils() - ..() // Proc: attack_hand() // Parameters: None diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 230bfb4bab..181514ef0c 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -365,14 +365,10 @@ /obj/item/stack/material/glass/phoronglass = list("platinum", "silicon", "silicon", "silicon"), //5 platinum, 15 silicon, ) -/obj/machinery/reagentgrinder/New() - ..() +/obj/machinery/reagentgrinder/Initialize() + . = ..() beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src) - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/motor(src) - component_parts += new /obj/item/weapon/stock_parts/gear(src) - RefreshParts() - return + default_apply_parts() /obj/machinery/reagentgrinder/update_icon() icon_state = "juicer"+num2text(!isnull(beaker)) diff --git a/code/modules/recycling/conveyor2.dm b/code/modules/recycling/conveyor2.dm index 4cc755d158..91b04cf494 100644 --- a/code/modules/recycling/conveyor2.dm +++ b/code/modules/recycling/conveyor2.dm @@ -38,13 +38,7 @@ operating = FORWARDS setmove() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/gear(src) - component_parts += new /obj/item/weapon/stock_parts/motor(src) - component_parts += new /obj/item/weapon/stock_parts/gear(src) - component_parts += new /obj/item/weapon/stock_parts/motor(src) - component_parts += new /obj/item/stack/cable_coil(src,5) - RefreshParts() + default_apply_parts() /obj/machinery/conveyor/proc/setmove() if(operating == FORWARDS) diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index f9ff3adb51..468c7ff6bb 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -26,12 +26,7 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid). /obj/machinery/r_n_d/circuit_imprinter/Initialize() . = ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) - RefreshParts() + default_apply_parts() /obj/machinery/r_n_d/circuit_imprinter/process() ..() diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm index a17bf370bf..78d8f9d323 100644 --- a/code/modules/research/destructive_analyzer.dm +++ b/code/modules/research/destructive_analyzer.dm @@ -16,13 +16,9 @@ Note: Must be placed within 3 tiles of the R&D Console idle_power_usage = 30 active_power_usage = 2500 -/obj/machinery/r_n_d/destructive_analyzer/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - RefreshParts() +/obj/machinery/r_n_d/destructive_analyzer/Initialize() + . = ..() + default_apply_parts() /obj/machinery/r_n_d/destructive_analyzer/RefreshParts() var/T = 0 diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index 1de0d5bed0..b2c7362d2e 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -40,14 +40,7 @@ /obj/machinery/r_n_d/protolathe/Initialize() . = ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) - component_parts += new /obj/item/weapon/reagent_containers/glass/beaker(src) - RefreshParts() + default_apply_parts() /obj/machinery/r_n_d/protolathe/process() ..() diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index a1bc577bb8..4776646105 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -15,13 +15,9 @@ req_access = list(access_rd) //Only the R&D can change server settings. circuit = /obj/item/weapon/circuitboard/rdserver -/obj/machinery/r_n_d/server/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/stack/cable_coil(src) - component_parts += new /obj/item/stack/cable_coil(src) - RefreshParts() +/obj/machinery/r_n_d/server/Initialize() + . = ..() + default_apply_parts() /obj/machinery/r_n_d/server/Destroy() griefProtection() diff --git a/code/modules/xenobio2/machinery/core_extractor.dm b/code/modules/xenobio2/machinery/core_extractor.dm index 1a23dcd758..01068e4cd1 100644 --- a/code/modules/xenobio2/machinery/core_extractor.dm +++ b/code/modules/xenobio2/machinery/core_extractor.dm @@ -18,16 +18,10 @@ var/operatingcolor = "#FFFF22" -/obj/machinery/slime/extractor/New() - ..() +/obj/machinery/slime/extractor/Initialize() + . = ..() + default_apply_parts() update_light_color() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - RefreshParts() /obj/machinery/slime/extractor/attackby(var/obj/item/W, var/mob/user) diff --git a/code/modules/xenobio2/machinery/gene_manipulators.dm b/code/modules/xenobio2/machinery/gene_manipulators.dm index 761a2a98d4..91ff77fc94 100644 --- a/code/modules/xenobio2/machinery/gene_manipulators.dm +++ b/code/modules/xenobio2/machinery/gene_manipulators.dm @@ -123,17 +123,10 @@ var/datum/xeno/traits/genetics // Currently scanned xeno genetic structure. var/degradation = 0 // Increments with each scan, stops allowing gene mods after a certain point. -/obj/machinery/xenobio/extractor/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - RefreshParts() - +/obj/machinery/xenobio/extractor/Initialize() + . = ..() + default_apply_parts() + /obj/machinery/xenobio/extractor/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W,/obj/item/xenoproduct)) if(product) @@ -265,16 +258,9 @@ var/mob/living/simple_mob/xeno/slime/occupant -/obj/machinery/xenobio/editor/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - component_parts += new /obj/item/weapon/stock_parts/scanning_module(src) - RefreshParts() +/obj/machinery/xenobio/editor/Initialize() + . = ..() + default_apply_parts() /obj/machinery/xenobio/editor/attackby(obj/item/weapon/W as obj, mob/user as mob) if(istype(W,/obj/item/weapon/grab)) diff --git a/code/modules/xenobio2/machinery/injector.dm b/code/modules/xenobio2/machinery/injector.dm index 59dfbf69c6..2c0454a8e2 100644 --- a/code/modules/xenobio2/machinery/injector.dm +++ b/code/modules/xenobio2/machinery/injector.dm @@ -19,18 +19,13 @@ circuit = /obj/item/weapon/circuitboard/xenobioinjectormachine -/obj/machinery/xenobio2/manualinjector/New() - ..() +/obj/machinery/xenobio2/manualinjector/Initialize() + . = ..() var/datum/reagents/R = new/datum/reagents(1000) reagents = R R.my_atom = src beaker = new /obj/item/weapon/reagent_containers/glass/beaker(src) - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - RefreshParts() + default_apply_parts() /obj/machinery/xenobio2/manualinjector/update_icon() if(beaker) diff --git a/code/modules/xenobio2/machinery/slime_replicator.dm b/code/modules/xenobio2/machinery/slime_replicator.dm index 4d45d6ca2a..b5e49b7c62 100644 --- a/code/modules/xenobio2/machinery/slime_replicator.dm +++ b/code/modules/xenobio2/machinery/slime_replicator.dm @@ -17,17 +17,11 @@ var/emptycolor = "#FF2222" var/operatingcolor = "#FFFF22" -/obj/machinery/slime/replicator/New() - ..() - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/matter_bin(src) - component_parts += new /obj/item/weapon/stock_parts/micro_laser(src) - RefreshParts() +/obj/machinery/slime/replicator/Initialize() + . = ..() + default_apply_parts() update_light_color() - /obj/machinery/slime/replicator/attackby(var/obj/item/W, var/mob/user) //Let's try to deconstruct first. if(W.is_screwdriver() && !inuse) From c42e536074840627641bf548a8d3bdcd0cf514bf Mon Sep 17 00:00:00 2001 From: Atermonera Date: Wed, 6 May 2020 22:59:29 -0700 Subject: [PATCH 019/105] Merge pull request #7088 from VOREStation/pol-smesexamine Fix SMES and debug power item examine messages --- code/modules/power/debug_items.dm | 34 ++++++++++++++++--------------- code/modules/power/smes.dm | 12 +++++------ 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/code/modules/power/debug_items.dm b/code/modules/power/debug_items.dm index 6fee9cce22..c7ca43705b 100644 --- a/code/modules/power/debug_items.dm +++ b/code/modules/power/debug_items.dm @@ -8,20 +8,22 @@ /obj/machinery/power/debug_items/examine(mob/user) . = ..() if(show_extended_information) - show_info(user) + . += show_info(user) /obj/machinery/power/debug_items/proc/show_info(var/mob/user) + var/list/extra_info = list() if(!powernet) - to_chat(user, "This device is not connected to a powernet") + extra_info += "This device is not connected to a powernet" return - to_chat(user, "Connected to powernet: [powernet]") - to_chat(user, "Available power: [num2text(powernet.avail, 20)] W") - to_chat(user, "Load: [num2text(powernet.viewload, 20)] W") - to_chat(user, "Has alert: [powernet.problem ? "YES" : "NO"]") - to_chat(user, "Cables: [powernet.cables.len]") - to_chat(user, "Nodes: [powernet.nodes.len]") + extra_info += "Connected to powernet: [powernet]" + extra_info += "Available power: [num2text(powernet.avail, 20)] W" + extra_info += "Load: [num2text(powernet.viewload, 20)] W" + extra_info += "Has alert: [powernet.problem ? "YES" : "NO"]" + extra_info += "Cables: [powernet.cables.len]" + extra_info += "Nodes: [powernet.nodes.len]" + return extra_info // An infinite power generator. Adds energy to connected cable. /obj/machinery/power/debug_items/infinite_generator @@ -33,8 +35,8 @@ add_avail(power_generation_rate) /obj/machinery/power/debug_items/infinite_generator/show_info(var/mob/user) - ..() - to_chat(user, "Generator is providing [num2text(power_generation_rate, 20)] W") + . = ..() + . += "Generator is providing [num2text(power_generation_rate, 20)] W" // A cable powersink, without the explosion/network alarms normal powersink causes. @@ -48,9 +50,9 @@ last_used = draw_power(power_usage_rate) /obj/machinery/power/debug_items/infinite_cable_powersink/show_info(var/mob/user) - ..() - to_chat(user, "Power sink is demanding [num2text(power_usage_rate, 20)] W") - to_chat(user, "[num2text(last_used, 20)] W was actually used last tick") + . = ..() + . += "Power sink is demanding [num2text(power_usage_rate, 20)] W" + . += "[num2text(last_used, 20)] W was actually used last tick" /obj/machinery/power/debug_items/infinite_apc_powersink @@ -60,6 +62,6 @@ active_power_usage = 0 /obj/machinery/power/debug_items/infinite_apc_powersink/show_info(var/mob/user) - ..() - to_chat(user, "Dummy load is using [num2text(active_power_usage, 20)] W") - to_chat(user, "Powered: [powered() ? "YES" : "NO"]") \ No newline at end of file + . = ..() + . += "Dummy load is using [num2text(active_power_usage, 20)] W" + . += "Powered: [powered() ? "YES" : "NO"]" diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 2ec394bc1f..10424cee18 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -459,17 +459,17 @@ take_damage(250 / severity) /obj/machinery/power/smes/examine(var/mob/user) - ..() - to_chat(user, "The service hatch is [panel_open ? "open" : "closed"].") + . = ..() + . += "The service hatch is [panel_open ? "open" : "closed"]." if(!damage) return var/damage_percentage = round((damage / maxdamage) * 100) switch(damage_percentage) if(75 to INFINITY) - to_chat(user, "It's casing is severely damaged, and sparking circuitry may be seen through the holes!") + . += "It's casing is severely damaged, and sparking circuitry may be seen through the holes!" if(50 to 74) - to_chat(user, "It's casing is considerably damaged, and some of the internal circuits appear to be exposed!") + . += "It's casing is considerably damaged, and some of the internal circuits appear to be exposed!" if(25 to 49) - to_chat(user, "It's casing is quite seriously damaged.") + . += "It's casing is quite seriously damaged." if(0 to 24) - to_chat(user, "It's casing has some minor damage.") \ No newline at end of file + . += "It's casing has some minor damage." \ No newline at end of file From baa3de91f07a946173e2cdd542a3733e631922f9 Mon Sep 17 00:00:00 2001 From: Rykka Date: Thu, 7 May 2020 08:58:13 -0400 Subject: [PATCH 021/105] Fix for Resetting Character Slot to Default Resets the character slot to default. Fixes https://github.com/VOREStation/VOREStation/issues/7693 Credit goes to Shadow Larkens for helping me figure it out. --- code/modules/client/preferences_savefile.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 652f2ac082..593d592187 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -81,6 +81,8 @@ else player_setup.load_character(S) S.cd = "/character[default_slot]" + player_setup.save_character(S) + sanitize_preferences() player_setup.load_character(S) return 1 From 074055cd807e48c38d8f74ce7e3593db05d76c7e Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 7 May 2020 10:28:41 -0400 Subject: [PATCH 022/105] Update autolathe.dm --- code/game/machinery/autolathe.dm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 4c9a03bf3a..bb1629c109 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -27,15 +27,10 @@ var/datum/wires/autolathe/wires = null -<<<<<<< HEAD var/filtertext -/obj/machinery/autolathe/New() - ..() -======= /obj/machinery/autolathe/Initialize() . = ..() ->>>>>>> fcbcb0a... Merge pull request #7055 from VOREStation/pol-defaultparts wires = new(src) default_apply_parts() RefreshParts() From c565ad8bb568eee952f130284a7870e73b41b86d Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 7 May 2020 10:30:02 -0400 Subject: [PATCH 023/105] Update telecomunications.dm --- code/game/machinery/telecomms/telecomunications.dm | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm index 5339b0c9ab..e89b9aa726 100644 --- a/code/game/machinery/telecomms/telecomunications.dm +++ b/code/game/machinery/telecomms/telecomunications.dm @@ -349,18 +349,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list() /obj/machinery/telecomms/hub/Initialize() . = ..() -<<<<<<< HEAD - component_parts = list() - component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) - component_parts += new /obj/item/weapon/stock_parts/subspace/sub_filter(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/weapon/stock_parts/manipulator(src) - component_parts += new /obj/item/stack/cable_coil(src, 2) - RefreshParts() -======= - LAZYINITLIST(telecomms_map) default_apply_parts() ->>>>>>> fcbcb0a... Merge pull request #7055 from VOREStation/pol-defaultparts /obj/machinery/telecomms/hub/receive_information(datum/signal/signal, obj/machinery/telecomms/machine_from) if(is_freq_listening(signal)) From ea7a2f7b6403b6e21605bd4d1567bac1e0a1d2f1 Mon Sep 17 00:00:00 2001 From: Little-119 Date: Thu, 7 May 2020 12:46:16 -0400 Subject: [PATCH 024/105] Rename 'Belter Shuttle' Airlock --- maps/tether/tether-07-station3.dmm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/maps/tether/tether-07-station3.dmm b/maps/tether/tether-07-station3.dmm index d3d445eb13..dc1beb3727 100644 --- a/maps/tether/tether-07-station3.dmm +++ b/maps/tether/tether-07-station3.dmm @@ -26017,7 +26017,7 @@ /area/shuttle/medivac/engines) "aOc" = ( /obj/machinery/door/airlock/glass_mining{ - name = "Belter Shuttle"; + name = "Mining Operations"; req_access = list(31); req_one_access = list() }, From db5d6470de9a1fa1b24143b0197c451499db1073 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 7 May 2020 16:07:43 -0400 Subject: [PATCH 025/105] Fix a nightshift bug in determining time --- maps/~map_system/maps.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/maps/~map_system/maps.dm b/maps/~map_system/maps.dm index 806698d08d..a4b9d0f4b1 100644 --- a/maps/~map_system/maps.dm +++ b/maps/~map_system/maps.dm @@ -146,9 +146,9 @@ var/list/all_maps = list() /datum/map/proc/get_zlevel_time(var/z) if(!z) z = 1 - var/datum/planet/P = SSplanets.z_to_planet[z] + var/datum/planet/P = z <= SSplanets.z_to_planet.len ? SSplanets.z_to_planet[z] : null // We found a planet tied to that zlevel, give them the time - if(istype(P)) + if(P?.current_time) return P.current_time // We have to invent a time From 37557622777859bccd283c14b99bc775a501bc09 Mon Sep 17 00:00:00 2001 From: Nepox Date: Thu, 7 May 2020 22:40:58 +0200 Subject: [PATCH 026/105] Fixes Rosey's pentatail Attempt 2: Electric Bogaloo. This time hopefully without undoing newer changes. Tail is now colorable. I hope. --- code/modules/vore/appearance/sprite_accessories_vr.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/vore/appearance/sprite_accessories_vr.dm b/code/modules/vore/appearance/sprite_accessories_vr.dm index 0cfbcf2995..cffdfbb659 100644 --- a/code/modules/vore/appearance/sprite_accessories_vr.dm +++ b/code/modules/vore/appearance/sprite_accessories_vr.dm @@ -1030,6 +1030,8 @@ name = "pentatail kitsune tails (Rosey)" //I predict seven tails next. ~CK desc = "" icon_state = "rosey_five" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY ckeys_allowed = list("joey4298") /datum/sprite_accessory/tail/scree From 942054ad660424754d6a231097ab85d579965628 Mon Sep 17 00:00:00 2001 From: Nepox Date: Thu, 7 May 2020 23:27:48 +0200 Subject: [PATCH 027/105] I dont want to do this anymore Please --- .../vore/appearance/sprite_accessories_vr.dm | 2 ++ icons/mob/vore/ears_vr.dmi | Bin 25032 -> 25030 bytes icons/mob/vore/tails_vr.dmi | Bin 104516 -> 104251 bytes 3 files changed, 2 insertions(+) diff --git a/code/modules/vore/appearance/sprite_accessories_vr.dm b/code/modules/vore/appearance/sprite_accessories_vr.dm index cffdfbb659..bbc7ad9d9f 100644 --- a/code/modules/vore/appearance/sprite_accessories_vr.dm +++ b/code/modules/vore/appearance/sprite_accessories_vr.dm @@ -484,6 +484,8 @@ name = "tritail kitsune ears (Rosey)" desc = "" icon_state = "rosey" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY ckeys_allowed = list("joey4298") /datum/sprite_accessory/ears/aronai diff --git a/icons/mob/vore/ears_vr.dmi b/icons/mob/vore/ears_vr.dmi index c2f4bcbd982589cb5b993a037d2684f784a2daef..cd9c9f1492e8fa47df59b1a9eadebbec2a2b617e 100644 GIT binary patch delta 16058 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 CYC{45 delta 15861 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 delta 77517 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 Hp2+_InRZ0l From 393366a8251ec28701e6292665c54ac5235b86a7 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 7 May 2020 19:48:25 -0400 Subject: [PATCH 028/105] Refactor job joins for noncarbons --- code/__defines/misc.dm | 5 + code/controllers/subsystems/ticker.dm | 28 +++-- code/game/antagonist/antagonist.dm | 1 + code/game/antagonist/antagonist_helpers.dm | 4 + code/game/antagonist/station/changeling.dm | 2 +- code/game/antagonist/station/cultist.dm | 3 +- code/game/antagonist/station/loyalist.dm | 2 +- code/game/antagonist/station/renegade.dm | 2 +- code/game/antagonist/station/revolutionary.dm | 2 +- code/game/antagonist/station/stowaway.dm | 2 +- code/game/antagonist/station/thug.dm | 2 +- code/game/jobs/job/job.dm | 1 + code/game/jobs/job/silicon.dm | 2 + code/game/jobs/job_controller.dm | 108 ++++++++++-------- .../modules/client/preferences_spawnpoints.dm | 13 ++- code/modules/mob/new_player/new_player.dm | 30 ++--- code/modules/mob/transform_procs.dm | 50 ++++---- 17 files changed, 148 insertions(+), 109 deletions(-) diff --git a/code/__defines/misc.dm b/code/__defines/misc.dm index e1505934e8..8534378b55 100644 --- a/code/__defines/misc.dm +++ b/code/__defines/misc.dm @@ -378,3 +378,8 @@ var/global/list/##LIST_NAME = list();\ // Used by radios to indicate that they have sent a message via something other than subspace #define RADIO_CONNECTION_FAIL 0 #define RADIO_CONNECTION_NON_SUBSPACE 1 + +#define JOB_CARBON 0x1 +#define JOB_SILICON_ROBOT 0x2 +#define JOB_SILICON_AI 0x4 +#define JOB_SILICON 0x6 // 2|4, probably don't set jobs to this, but good for checking diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm index 397f32078c..deaa65bcfb 100644 --- a/code/controllers/subsystems/ticker.dm +++ b/code/controllers/subsystems/ticker.dm @@ -394,21 +394,25 @@ var/global/datum/controller/subsystem/ticker/ticker /datum/controller/subsystem/ticker/proc/create_characters() for(var/mob/new_player/player in player_list) - if(player && player.ready && player.mind) - if(player.mind.assigned_role=="AI") + if(player && player.ready && player.mind?.assigned_role) + var/datum/job/J = SSjob.get_job(player.mind.assigned_role) + + // Snowflakey AI treatment + if(J.mob_type & JOB_SILICON_AI) player.close_spawn_windows() - player.AIize() - else if(!player.mind.assigned_role) + player.AIize(move = TRUE) continue - else - //VOREStation Edit Start - var/mob/living/carbon/human/new_char = player.create_character() - if(new_char) - qdel(player) - if(istype(new_char) && !(new_char.mind.assigned_role=="Cyborg")) - data_core.manifest_inject(new_char) - //VOREStation Edit End + + // Ask their new_player mob to spawn them + var/mob/living/carbon/human/new_char = player.create_character() + + // Created their playable character, delete their /mob/new_player + if(new_char) + qdel(player) + // If they're a carbon, they can get manifested + if(J.mob_type & JOB_CARBON) + data_core.manifest_inject(new_char) /datum/controller/subsystem/ticker/proc/collect_minds() for(var/mob/living/player in player_list) diff --git a/code/game/antagonist/antagonist.dm b/code/game/antagonist/antagonist.dm index 962c91a621..e00a4a99df 100644 --- a/code/game/antagonist/antagonist.dm +++ b/code/game/antagonist/antagonist.dm @@ -4,6 +4,7 @@ var/list/restricted_jobs = list() // Jobs that cannot be this antagonist (depending on config) var/list/protected_jobs = list() // As above. var/list/roundstart_restricted = list() //Jobs that can be this antag, but not at roundstart + var/avoid_silicons = FALSE // If we won't hand this antag role to silicons (AI, borg, etc) // Strings. var/welcome_text = "Cry havoc and let slip the dogs of war!" diff --git a/code/game/antagonist/antagonist_helpers.dm b/code/game/antagonist/antagonist_helpers.dm index c8f2928ced..10f7a75b15 100644 --- a/code/game/antagonist/antagonist_helpers.dm +++ b/code/game/antagonist/antagonist_helpers.dm @@ -10,6 +10,10 @@ return FALSE if(config.protect_roles_from_antagonist && (player.assigned_role in protected_jobs)) return FALSE + if(avoid_silicons) + var/datum/job/J = SSjob.get_job(player.assigned_role) + if(J.mob_type & JOB_SILICON) + return FALSE return TRUE /datum/antagonist/proc/antags_are_dead() diff --git a/code/game/antagonist/station/changeling.dm b/code/game/antagonist/station/changeling.dm index 860e73a052..694c4a3634 100644 --- a/code/game/antagonist/station/changeling.dm +++ b/code/game/antagonist/station/changeling.dm @@ -5,7 +5,7 @@ role_text_plural = "Changelings" bantype = "changeling" feedback_tag = "changeling_objective" - restricted_jobs = list("AI", "Cyborg") + avoid_silicons = TRUE protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Colony Director") welcome_text = "Use say \"#g message\" to communicate with your fellow changelings. Remember: you get all of their absorbed DNA if you absorb them." antag_sound = 'sound/effects/antag_notice/ling_alert.ogg' diff --git a/code/game/antagonist/station/cultist.dm b/code/game/antagonist/station/cultist.dm index dc98622ba7..06aab654b4 100644 --- a/code/game/antagonist/station/cultist.dm +++ b/code/game/antagonist/station/cultist.dm @@ -11,7 +11,8 @@ var/datum/antagonist/cultist/cult role_text = "Cultist" role_text_plural = "Cultists" bantype = "cultist" - restricted_jobs = list("Chaplain","AI", "Cyborg") + restricted_jobs = list("Chaplain") + avoid_silicons = TRUE protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Colony Director") roundstart_restricted = list("Internal Affairs Agent", "Head of Security", "Colony Director") role_type = BE_CULTIST diff --git a/code/game/antagonist/station/loyalist.dm b/code/game/antagonist/station/loyalist.dm index 9b2333b491..ec27584426 100644 --- a/code/game/antagonist/station/loyalist.dm +++ b/code/game/antagonist/station/loyalist.dm @@ -29,7 +29,7 @@ var/datum/antagonist/loyalists/loyalists faction_welcome = "Preserve NanoTrasen's interests against the traitorous recidivists amongst the crew. Protect the heads of staff with your life." faction_indicator = "loyal" faction_invisible = 1 - restricted_jobs = list("AI", "Cyborg") + avoid_silicons = TRUE /datum/antagonist/loyalists/New() ..() diff --git a/code/game/antagonist/station/renegade.dm b/code/game/antagonist/station/renegade.dm index ed3c804506..cdd4efb8f3 100644 --- a/code/game/antagonist/station/renegade.dm +++ b/code/game/antagonist/station/renegade.dm @@ -6,7 +6,7 @@ var/datum/antagonist/renegade/renegades role_text = "Renegade" role_text_plural = "Renegades" bantype = "renegade" - restricted_jobs = list("AI", "Cyborg") + avoid_silicons = TRUE welcome_text = "Something's going to go wrong today, you can just feel it. You're paranoid, you've got a gun, and you're going to survive." antag_sound = 'sound/effects/antag_notice/general_goodie_alert.ogg' antag_text = "You are a minor antagonist! Within the rules, \ diff --git a/code/game/antagonist/station/revolutionary.dm b/code/game/antagonist/station/revolutionary.dm index 17c519b7a0..1db40f396a 100644 --- a/code/game/antagonist/station/revolutionary.dm +++ b/code/game/antagonist/station/revolutionary.dm @@ -29,7 +29,7 @@ var/datum/antagonist/revolutionary/revs faction_indicator = "rev" faction_invisible = 1 - restricted_jobs = list("AI", "Cyborg") + avoid_silicons = TRUE protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Colony Director", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") roundstart_restricted = list("Internal Affairs Agent", "Colony Director", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") diff --git a/code/game/antagonist/station/stowaway.dm b/code/game/antagonist/station/stowaway.dm index dc3814b3b1..574fda0bca 100644 --- a/code/game/antagonist/station/stowaway.dm +++ b/code/game/antagonist/station/stowaway.dm @@ -6,7 +6,7 @@ var/datum/antagonist/stowaway/stowaways role_text = "Stowaway" role_text_plural = "Stowaways" bantype = "renegade" - restricted_jobs = list("AI") + avoid_silicons = TRUE // This was previously allowing cyborgs to be stowaways, but given that they would just connect to the AI, it didn't make much sense welcome_text = "People are known to run from many things, or to many things, for many different reasons. You happen to be one of those people." antag_text = "You are a minor antagonist! Within the server rules, do whatever it is \ that you came to the station to do. Espionage, thievery, or just running from the law are all examples. \ diff --git a/code/game/antagonist/station/thug.dm b/code/game/antagonist/station/thug.dm index 61d92e1646..f26d6441a8 100644 --- a/code/game/antagonist/station/thug.dm +++ b/code/game/antagonist/station/thug.dm @@ -6,7 +6,7 @@ var/datum/antagonist/thug/thugs role_text = "Thug" role_text_plural = "Thugs" bantype = "renegade" - restricted_jobs = list("AI", "Cyborg") + avoid_silicons = TRUE welcome_text = "Sometimes, people just need to get messed up. Luckily, that's what you're here to do." antag_text = "You are a minor antagonist! Within the server rules, do whatever it is \ that you came to the station to do, be it violence, theft, or just extreme self-defense. \ diff --git a/code/game/jobs/job/job.dm b/code/game/jobs/job/job.dm index 082753d0fc..a1ca756462 100644 --- a/code/game/jobs/job/job.dm +++ b/code/game/jobs/job/job.dm @@ -31,6 +31,7 @@ var/outfit_type // What outfit datum does this job use in its default title? var/offmap_spawn = FALSE // Do we require weird and special spawning and datacore handling? + var/mob_type = JOB_CARBON // Bitflags representing mob type this job spawns // Description of the job's role and minimum responsibilities. var/job_description = "This Job doesn't have a description! Please report it!" diff --git a/code/game/jobs/job/silicon.dm b/code/game/jobs/job/silicon.dm index 6f89adcd07..1619569c9d 100644 --- a/code/game/jobs/job/silicon.dm +++ b/code/game/jobs/job/silicon.dm @@ -18,6 +18,7 @@ economic_modifier = 0 has_headset = FALSE assignable = FALSE + mob_type = JOB_SILICON_AI outfit_type = /decl/hierarchy/outfit/job/silicon/ai job_description = "The AI oversees the operation of the station and its crew, but has no real authority over them. \ The AI is required to follow its Laws, and Lawbound Synthetics that are linked to it are expected to follow \ @@ -54,6 +55,7 @@ economic_modifier = 0 has_headset = FALSE assignable = FALSE + mob_type = JOB_SILICON_ROBOT outfit_type = /decl/hierarchy/outfit/job/silicon/cyborg job_description = "A Cyborg is a mobile station synthetic, piloted by a cybernetically preserved brain. It is considered a person, but is still required \ to follow its Laws." diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 34e75f4320..600abd899c 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -373,54 +373,64 @@ var/global/datum/controller/occupations/job_master //Equip custom gear loadout. var/list/custom_equip_slots = list() //If more than one item takes the same slot, all after the first one spawn in storage. var/list/custom_equip_leftovers = list() - if(H.client.prefs.gear && H.client.prefs.gear.len && job.title != "Cyborg" && job.title != "AI") + if(H.client.prefs.gear && H.client.prefs.gear.len && !(job.mob_type & JOB_SILICON)) for(var/thing in H.client.prefs.gear) var/datum/gear/G = gear_datums[thing] - if(G) - var/permitted - if(G.allowed_roles) - for(var/job_name in G.allowed_roles) - if(job.title == job_name) - permitted = 1 + if(!G) //Not a real gear datum (maybe removed, as this is loaded from their savefile) + continue + + var/permitted + // Check if it is restricted to certain roles + if(G.allowed_roles) + for(var/job_name in G.allowed_roles) + if(job.title == job_name) + permitted = 1 + else + permitted = 1 + + // Check if they're whitelisted for this gear (in alien whitelist? seriously?) + if(G.whitelisted && !is_alien_whitelisted(H, GLOB.all_species[G.whitelisted])) + permitted = 0 + + // If they aren't, tell them + if(!permitted) + to_chat(H, "Your current species, job or whitelist status does not permit you to spawn with [thing]!") + continue + + // Implants get special treatment + if(G.slot == "implant") + var/obj/item/weapon/implant/I = G.spawn_item(H) + I.invisibility = 100 + I.implant_loadout(H) + continue + + // Try desperately (and sorta poorly) to equip the item + if(G.slot && !(G.slot in custom_equip_slots)) + var/metadata = H.client.prefs.gear[G.display_name] + if(G.slot == slot_wear_mask || G.slot == slot_wear_suit || G.slot == slot_head) + custom_equip_leftovers += thing + else if(H.equip_to_slot_or_del(G.spawn_item(H, metadata), G.slot)) + to_chat(H, "Equipping you with \the [thing]!") + custom_equip_slots.Add(G.slot) else - permitted = 1 + custom_equip_leftovers.Add(thing) + else + spawn_in_storage += thing - if(G.whitelisted && !is_alien_whitelisted(H, GLOB.all_species[G.whitelisted])) - - //if(G.whitelisted && (G.whitelisted != H.species.name || !is_alien_whitelisted(H, G.whitelisted))) - permitted = 0 - - if(!permitted) - to_chat(H, "Your current species, job or whitelist status does not permit you to spawn with [thing]!") - continue - - if(G.slot == "implant") - var/obj/item/weapon/implant/I = G.spawn_item(H) - I.invisibility = 100 - I.implant_loadout(H) - continue - - if(G.slot && !(G.slot in custom_equip_slots)) - // This is a miserable way to fix the loadout overwrite bug, but the alternative requires - // adding an arg to a bunch of different procs. Will look into it after this merge. ~ Z - var/metadata = H.client.prefs.gear[G.display_name] - if(G.slot == slot_wear_mask || G.slot == slot_wear_suit || G.slot == slot_head) - custom_equip_leftovers += thing - else if(H.equip_to_slot_or_del(G.spawn_item(H, metadata), G.slot)) - to_chat(H, "Equipping you with \the [thing]!") - custom_equip_slots.Add(G.slot) - else - custom_equip_leftovers.Add(thing) - else - spawn_in_storage += thing - //Equip job items. + // Set up their account job.setup_account(H) + + // Equip job items. job.equip(H, H.mind ? H.mind.role_alt_title : "") + + // Stick their fingerprints on literally everything job.apply_fingerprints(H) - if(job.title != "Cyborg" && job.title != "AI") + + // Only non-silicons get post-job-equip equipment + if(!(job.mob_type & JOB_SILICON)) H.equip_post_job() - //If some custom items could not be equipped before, try again now. + // If some custom items could not be equipped before, try again now. for(var/thing in custom_equip_leftovers) var/datum/gear/G = gear_datums[thing] if(G.slot in custom_equip_slots) @@ -456,14 +466,16 @@ var/global/datum/controller/occupations/job_master H.mind.assigned_role = rank alt_title = H.mind.role_alt_title - switch(rank) - if("Cyborg") - return H.Robotize() - if("AI") - return H - if("Colony Director") - var/sound/announce_sound = (ticker.current_state <= GAME_STATE_SETTING_UP) ? null : sound('sound/misc/boatswain.ogg', volume=20) - captain_announcement.Announce("All hands, [alt_title ? alt_title : "Colony Director"] [H.real_name] on deck!", new_sound = announce_sound, zlevel = H.z) + // If we're a silicon, we may be done at this point + if(job.mob_type & JOB_SILICON_ROBOT) + return H.Robotize() + if(job.mob_type & JOB_SILICON_AI) + return H + + // TWEET PEEP + if(rank == "Colony Director") + var/sound/announce_sound = (ticker.current_state <= GAME_STATE_SETTING_UP) ? null : sound('sound/misc/boatswain.ogg', volume=20) + captain_announcement.Announce("All hands, [alt_title ? alt_title : "Colony Director"] [H.real_name] on deck!", new_sound = announce_sound, zlevel = H.z) //Deferred item spawning. if(spawn_in_storage && spawn_in_storage.len) @@ -573,7 +585,7 @@ var/global/datum/controller/occupations/job_master if(!J) continue J.total_positions = text2num(value) J.spawn_positions = text2num(value) - if(name == "AI" || name == "Cyborg")//I dont like this here but it will do for now + if(J.mob_type & JOB_SILICON) J.total_positions = 0 return 1 diff --git a/code/modules/client/preferences_spawnpoints.dm b/code/modules/client/preferences_spawnpoints.dm index acf1c771a7..e990ee1793 100644 --- a/code/modules/client/preferences_spawnpoints.dm +++ b/code/modules/client/preferences_spawnpoints.dm @@ -13,6 +13,7 @@ var/list/spawntypes = list() var/list/restrict_job = null var/list/disallow_job = null var/announce_channel = "Common" + var/allowed_mob_types = JOB_SILICON|JOB_CARBON proc/check_job_spawning(job) if(restrict_job && !(job in restrict_job)) @@ -22,9 +23,15 @@ var/list/spawntypes = list() return 0 var/datum/job/J = SSjob.get_job(job) - if(J?.offmap_spawn && !(job in restrict_job)) + if(!J) // Couldn't find, admin shenanigans? Allow it + return 1 + + if(J.offmap_spawn && !(job in restrict_job)) return 0 + if(!(J.mob_type & allowed_mob_types)) + return 0 + return 1 /datum/spawnpoint/proc/get_spawn_position() @@ -57,7 +64,7 @@ var/list/spawntypes = list() /datum/spawnpoint/cryo display_name = "Cryogenic Storage" msg = "has completed cryogenic revival" - disallow_job = list("Cyborg") + allowed_mob_types = JOB_CARBON /datum/spawnpoint/cryo/New() ..() @@ -66,7 +73,7 @@ var/list/spawntypes = list() /datum/spawnpoint/cyborg display_name = "Cyborg Storage" msg = "has been activated from storage" - restrict_job = list("Cyborg") + allowed_mob_types = JOB_SILICON /datum/spawnpoint/cyborg/New() ..() diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 314186936b..de3c51ae75 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -391,10 +391,10 @@ character = job_master.EquipRank(character, rank, 1) //equips the human UpdateFactionList(character) - // AIs don't need a spawnpoint, they must spawn at an empty core - if(character.mind.assigned_role == "AI") + var/datum/job/J = SSjob.get_job(rank) - character = character.AIize(move=0) // AIize the character, but don't move them yet + // AIs don't need a spawnpoint, they must spawn at an empty core + if(J.mob_type & JOB_SILICON_AI) // IsJobAvailable for AI checks that there is an empty core available in this list var/obj/structure/AIcore/deactivated/C = empty_playable_ai_cores[1] @@ -402,11 +402,14 @@ character.loc = C.loc + // AIize the character, but don't move them yet + character = character.AIize(move = FALSE) // Dupe of code in /datum/controller/subsystem/ticker/proc/create_characters() for non-latespawn, unify? + AnnounceCyborg(character, rank, "has been transferred to the empty core in \the [character.loc.loc]") ticker.mode.latespawn(character) - qdel(C) - qdel(src) + qdel(C) //Deletes empty core (really?) + qdel(src) //Deletes new_player return // Equip our custom items only AFTER deploying to spawn points eh? @@ -420,18 +423,15 @@ character.buckled.set_dir(character.dir) ticker.mode.latespawn(character) - - if(character.mind.assigned_role != "Cyborg") + + if(J.mob_type & JOB_SILICON) + AnnounceCyborg(character, rank, join_message, announce_channel, character.z) + else + AnnounceArrival(character, rank, join_message, announce_channel, character.z) data_core.manifest_inject(character) ticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn - - //Grab some data from the character prefs for use in random news procs. - - AnnounceArrival(character, rank, join_message, announce_channel, character.z) - else - AnnounceCyborg(character, rank, join_message, announce_channel, character.z) - - qdel(src) + + qdel(src) // Delete new_player mob /mob/new_player/proc/AnnounceCyborg(var/mob/living/character, var/rank, var/join_message, var/channel, var/zlevel) if (ticker.current_state == GAME_STATE_PLAYING) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 0e4e42bbeb..43acb519d4 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -64,10 +64,34 @@ invisibility = 101 return ..() -/mob/proc/AIize(move=1) +/mob/proc/AIize(var/move = TRUE) if(client) src << sound(null, repeat = 0, wait = 0, volume = 85, channel = 1) // stop the jams for AIs - var/mob/living/silicon/ai/O = new (loc, using_map.default_law_type,,1)//No MMI but safety is in effect. + + var/newloc = loc + if(move) + var/obj/loc_landmark + for(var/obj/effect/landmark/start/sloc in landmarks_list) + if (sloc.name != "AI") + continue + if ((locate(/mob/living) in sloc.loc) || (locate(/obj/structure/AIcore) in sloc.loc)) + continue + loc_landmark = sloc + if (!loc_landmark) + for(var/obj/effect/landmark/tripai in landmarks_list) + if (tripai.name == "tripai") + if((locate(/mob/living) in tripai.loc) || (locate(/obj/structure/AIcore) in tripai.loc)) + continue + loc_landmark = tripai + if (!loc_landmark) + to_chat(src, "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone.") + for(var/obj/effect/landmark/start/sloc in landmarks_list) + if (sloc.name == "AI") + loc_landmark = sloc + + newloc = loc_landmark.loc + + var/mob/living/silicon/ai/O = new (newloc, using_map.default_law_type,,1)//No MMI but safety is in effect. O.invisibility = 0 O.aiRestorePowerRoutine = 0 @@ -101,28 +125,6 @@ if(LANGUAGE_ROOTLOCAL in B.alternate_languages) O.add_language(LANGUAGE_ROOTLOCAL, 1) - if(move) - var/obj/loc_landmark - for(var/obj/effect/landmark/start/sloc in landmarks_list) - if (sloc.name != "AI") - continue - if ((locate(/mob/living) in sloc.loc) || (locate(/obj/structure/AIcore) in sloc.loc)) - continue - loc_landmark = sloc - if (!loc_landmark) - for(var/obj/effect/landmark/tripai in landmarks_list) - if (tripai.name == "tripai") - if((locate(/mob/living) in tripai.loc) || (locate(/obj/structure/AIcore) in tripai.loc)) - continue - loc_landmark = tripai - if (!loc_landmark) - to_chat(O, "Oh god sorry we can't find an unoccupied AI spawn location, so we're spawning you on top of someone.") - for(var/obj/effect/landmark/start/sloc in landmarks_list) - if (sloc.name == "AI") - loc_landmark = sloc - - O.loc = loc_landmark.loc - O.on_mob_init() O.add_ai_verbs() From 6fde6332a684cbd23a3414a77994dff228e50e4c Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 7 May 2020 19:48:44 -0400 Subject: [PATCH 029/105] VS: Some minitest additions to help test spawning --- maps/virgo_minitest/virgo_minitest-1.dmm | 188 +++++++++++++++--- maps/virgo_minitest/virgo_minitest_defines.dm | 6 +- 2 files changed, 167 insertions(+), 27 deletions(-) diff --git a/maps/virgo_minitest/virgo_minitest-1.dmm b/maps/virgo_minitest/virgo_minitest-1.dmm index 9ce7f531bf..fd81e96920 100644 --- a/maps/virgo_minitest/virgo_minitest-1.dmm +++ b/maps/virgo_minitest/virgo_minitest-1.dmm @@ -6,6 +6,7 @@ /turf/simulated/wall/r_wall, /area/tcommsat/computer) "ac" = ( +/obj/machinery/camera/network/civilian, /turf/simulated/floor/tiled/dark, /area/tcommsat/computer) "ad" = ( @@ -493,6 +494,10 @@ /obj/machinery/atmospherics/pipe/simple/visible/yellow{ dir = 4 }, +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 9 + }, /turf/simulated/floor/plating, /area/engineering/engine_room) "bc" = ( @@ -703,6 +708,10 @@ pixel_x = -25; pixel_y = 0 }, +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 4 + }, /turf/simulated/floor/plating, /area/engineering/engine_room) "br" = ( @@ -2289,6 +2298,10 @@ /obj/structure/cable{ icon_state = "0-8" }, +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 10 + }, /turf/simulated/floor/tiled, /area/crew_quarters/bar) "eU" = ( @@ -3291,10 +3304,39 @@ /turf/space, /turf/simulated/shuttle/plating/carry, /area/shuttle/overmapdemo) +"jA" = ( +/obj/machinery/cryopod, +/turf/simulated/floor/tiled, +/area/bridge) "kU" = ( /obj/structure/shuttle, /turf/simulated/shuttle/wall/voidcraft/green, /area/shuttle/overmapdemo) +"mj" = ( +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 10 + }, +/turf/simulated/floor/tiled, +/area/crew_quarters/bar) +"nM" = ( +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/crew_quarters/cafeteria) +"nQ" = ( +/obj/machinery/cryopod/robot, +/turf/simulated/floor/tiled, +/area/bridge) +"pG" = ( +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/bridge) "ql" = ( /obj/machinery/door/airlock/external{ frequency = 1379; @@ -3311,11 +3353,43 @@ }, /turf/simulated/shuttle/floor/voidcraft/light, /area/shuttle/overmapdemo) +"qZ" = ( +/obj/machinery/camera/network/civilian, +/turf/simulated/floor/tiled, +/area/medical/medbay) +"rn" = ( +/obj/machinery/computer/cryopod, +/turf/simulated/floor/tiled, +/area/bridge) +"rK" = ( +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 10 + }, +/turf/simulated/floor/bluegrid{ + name = "Mainframe Base"; + nitrogen = 100; + oxygen = 0; + temperature = 80 + }, +/area/tcommsat/chamber) "sA" = ( /obj/structure/shuttle/engine/heater, /turf/space, /turf/simulated/shuttle/plating/carry, /area/shuttle/multidemo) +"sB" = ( +/obj/effect/landmark{ + name = "JoinLateCyborg" + }, +/turf/simulated/floor/tiled, +/area/bridge) +"vI" = ( +/obj/effect/landmark/start{ + name = "AI" + }, +/turf/simulated/floor/tiled, +/area/crew_quarters/bar) "vP" = ( /obj/machinery/computer/ship/engines{ dir = 8; @@ -3323,6 +3397,20 @@ }, /turf/simulated/shuttle/floor/voidcraft/light, /area/shuttle/overmapdemo) +"xM" = ( +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 5 + }, +/turf/simulated/floor/tiled, +/area/crew_quarters/cafeteria) +"xX" = ( +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/medical/medbay) "zf" = ( /obj/effect/wingrille_spawn/reinforced, /turf/simulated/shuttle/floor/voidcraft/external/light, @@ -3338,10 +3426,24 @@ "Gz" = ( /turf/simulated/shuttle/wall/voidcraft/green, /area/shuttle/overmapdemo) +"GC" = ( +/obj/machinery/camera/network/civilian, +/turf/simulated/floor/tiled, +/area/bridge) "JA" = ( /obj/effect/overmap/visitable/sector/virgo_minitest/station, /turf/space, /area/space) +"La" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/hallway/primary/fore) "ML" = ( /obj/machinery/embedded_controller/radio/simple_docking_controller{ id_tag = "station_dock2"; @@ -3362,6 +3464,13 @@ }, /turf/simulated/shuttle/floor/voidcraft/light, /area/shuttle/overmapdemo) +"OA" = ( +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 10 + }, +/turf/simulated/floor/tiled, +/area/medical/medbay) "Pg" = ( /obj/structure/shuttle/engine/propulsion, /turf/space, @@ -3376,16 +3485,47 @@ }, /turf/simulated/floor/tiled, /area/bridge) +"Ug" = ( +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/medical/medbay2) "Uh" = ( /obj/machinery/computer/ship/sensors{ dir = 1 }, /turf/simulated/shuttle/floor/voidcraft/light, /area/shuttle/overmapdemo) +"Vf" = ( +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/crew_quarters/bar) +"Xm" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/camera/network/civilian, +/turf/simulated/floor/tiled, +/area/hallway/primary/fore) "XZ" = ( /obj/machinery/computer/ship/helm, /turf/simulated/shuttle/floor/voidcraft/light, /area/shuttle/overmapdemo) +"Yb" = ( +/obj/machinery/camera/network/civilian{ + icon_state = "camera"; + dir = 9 + }, +/turf/simulated/floor/tiled, +/area/medical/medbay2) (1,1,1) = {" aa @@ -4791,9 +4931,9 @@ aa aa fY gf -gf -gf -gf +rn +sB +nQ gf gf gf @@ -4996,8 +5136,8 @@ aa fY gg gf -gf -gf +gC +jA gf gx gA @@ -5205,7 +5345,7 @@ gf gf gy gf -gC +gf gf gf gf @@ -5402,7 +5542,7 @@ sA Pg aa fY -gf +GC gf gr gf @@ -5715,7 +5855,7 @@ gf gf gy gf -gC +gf gf gf gf @@ -5875,7 +6015,7 @@ bW bu bu bu -bf +rK aP aa aa @@ -6223,14 +6363,14 @@ gf gv gf gf -gf +pG gv hk hy hl gf gv -gf +pG gf gf fY @@ -6413,7 +6553,7 @@ aa aa aa fi -fo +Xm fu fi aa @@ -6595,14 +6735,14 @@ aa cF cM cM -cM +xX dd cM cM cM cM cM -cM +xX dd cM cM @@ -6906,7 +7046,7 @@ cM cM cM cM -cM +OA du cM cM @@ -7223,7 +7363,7 @@ eO eO eO eO -eO +La eO eO eO @@ -7415,7 +7555,7 @@ cM dh cM du -cM +qZ cM el cM @@ -8129,7 +8269,7 @@ cZ dm dv cZ -cZ +Yb cZ dR cZ @@ -8639,7 +8779,7 @@ cZ dl cZ cZ -cZ +Ug cZ dR cZ @@ -10298,7 +10438,7 @@ fI fS fI fI -fI +xM fS fI fI @@ -10573,6 +10713,7 @@ cC cK cR cW +vI cK cK cK @@ -10580,8 +10721,7 @@ cK cK cK cK -cK -cK +mj cR eE eL @@ -10675,7 +10815,7 @@ cC cK cR cK -cK +Vf cK cK cK @@ -11314,7 +11454,7 @@ aa aa fA fI -fI +nM fW fI fI diff --git a/maps/virgo_minitest/virgo_minitest_defines.dm b/maps/virgo_minitest/virgo_minitest_defines.dm index 8432fb7f22..db438c6476 100644 --- a/maps/virgo_minitest/virgo_minitest_defines.dm +++ b/maps/virgo_minitest/virgo_minitest_defines.dm @@ -9,8 +9,8 @@ lobby_icon = 'icons/misc/title_vr.dmi' lobby_screens = list("tether2_night") - accessible_z_levels = list("[Z_LEVEL_MAIN_VIRGO_TESTING]" = 100) - base_turf_by_z = list("[Z_LEVEL_MAIN_VIRGO_TESTING]" = /turf/space) + accessible_z_levels = list("1" = 100) + base_turf_by_z = list("1" = /turf/space) use_overmap = TRUE //var/overmap_size = 20 // Dimensions of overmap zlevel if overmap is used. @@ -56,7 +56,7 @@ NETWORK_INTERROGATION ) - allowed_spawns = list("Arrivals Shuttle") + allowed_spawns = list("Arrivals Shuttle","Gateway","Cryogenic Storage","Cyborg Storage") /datum/map_z_level/minitest/station z = Z_LEVEL_MAIN_VIRGO_TESTING From adcc8047d618b0fd729841fda53e51a6bdf95915 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 7 May 2020 21:10:58 -0400 Subject: [PATCH 030/105] Redo teleporter control in nanoui --- code/_onclick/observer.dm | 4 +- code/game/machinery/teleporter.dm | 301 ++++++++---------- .../objects/items/weapons/teleportation.dm | 6 +- nano/templates/teleport_control.tmpl | 44 +++ 4 files changed, 186 insertions(+), 169 deletions(-) create mode 100644 nano/templates/teleport_control.tmpl diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index 88309b5074..485df1de41 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -50,8 +50,8 @@ /obj/machinery/teleport/hub/attack_ghost(mob/user as mob) var/atom/l = loc var/obj/machinery/computer/teleporter/com = locate(/obj/machinery/computer/teleporter, locate(l.x - 2, l.y, l.z)) - if(com.locked) - user.loc = get_turf(com.locked) + if(com?.teleport_control.locked) + user.loc = get_turf(com.teleport_control.locked) /obj/effect/portal/attack_ghost(mob/user as mob) if(target) diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index 7fb7836aa5..1cf1e901fb 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -1,3 +1,6 @@ +////// +////// Teleporter computer +////// /obj/machinery/computer/teleporter name = "teleporter control console" desc = "Used to control a linked teleportation Hub and Station." @@ -5,23 +8,23 @@ icon_screen = "teleport" circuit = /obj/item/weapon/circuitboard/teleporter dir = 4 - var/obj/item/locked = null var/id = null var/one_time_use = 0 //Used for one-time-use teleport cards (such as clown planet coordinates.) //Setting this to 1 will set locked to null after a player enters the portal and will not allow hand-teles to open portals to that location. + var/datum/nano_module/program/teleport_control/teleport_control /obj/machinery/computer/teleporter/New() id = "[rand(1000, 9999)]" ..() underlays.Cut() underlays += image('icons/obj/stationobjs_vr.dmi', icon_state = "telecomp-wires") //VOREStation Edit: different direction for wires to account for dirs - return + teleport_control = new(src) /obj/machinery/computer/teleporter/Initialize() . = ..() - var/obj/machinery/teleport/station/station - var/obj/machinery/teleport/hub/hub - + var/obj/machinery/teleport/station/station = null + var/obj/machinery/teleport/hub/hub = null + // Search surrounding turfs for the station, and then search the station's surrounding turfs for the hub. for(var/direction in cardinal) station = locate(/obj/machinery/teleport/station, get_step(src, direction)) @@ -34,9 +37,15 @@ if(istype(station)) station.com = hub + teleport_control.hub = hub if(istype(hub)) hub.com = src + teleport_control.station = station + +/obj/machinery/computer/teleporter/Destroy() + qdel_null(teleport_control) + return ..() /obj/machinery/computer/teleporter/attackby(I as obj, mob/living/user as mob) if(istype(I, /obj/item/weapon/card/data/)) @@ -74,7 +83,7 @@ else for(var/mob/O in hearers(src, null)) O.show_message("Locked In", 2) - locked = L + teleport_control.locked = L one_time_use = 1 add_fingerprint(usr) @@ -86,57 +95,109 @@ /obj/machinery/teleport/station/attack_ai() attack_hand() -/obj/machinery/computer/teleporter/attack_hand(user as mob) - if(..()) return +/obj/machinery/computer/teleporter/attack_ai(mob/user) + ui_interact(user) - /* Ghosts can't use this one because it's a direct selection */ - if(istype(user, /mob/observer/dead)) return +/obj/machinery/computer/teleporter/attack_hand(mob/user) + add_fingerprint(user) + if(stat & (BROKEN|NOPOWER)) + return + ui_interact(user) - var/list/L = list() - var/list/areaindex = list() +/obj/machinery/computer/teleporter/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + teleport_control.ui_interact(user, ui_key, ui, force_open) - for(var/obj/item/device/radio/beacon/R in all_beacons) - var/turf/T = get_turf(R) - if(!T) - continue - if(!(T.z in using_map.player_levels)) - continue - var/tmpname = T.loc.name - if(areaindex[tmpname]) - tmpname = "[tmpname] ([++areaindex[tmpname]])" - else - areaindex[tmpname] = 1 - L[tmpname] = R +/obj/machinery/computer/teleporter/interact(mob/user) + teleport_control.ui_interact(user) - for (var/obj/item/weapon/implant/tracking/I in all_tracking_implants) - if(!I.implanted || !ismob(I.loc)) - continue - else - var/mob/M = I.loc - if(M.stat == 2) - if(M.timeofdeath + 6000 < world.time) - continue - var/turf/T = get_turf(M) - if(T) continue - if(T.z == 2) continue - var/tmpname = M.real_name +////// +////// Nano-module for teleporter +////// +/datum/nano_module/program/teleport_control + name = "Teleporter Control" + var/locked_name = "Not Locked" + var/obj/item/locked = null + var/obj/machinery/teleport/station/station = null + var/obj/machinery/teleport/hub/hub = null + +/datum/nano_module/program/teleport_control/Topic(href, href_list) + if(..()) return 1 + + if(href_list["select_target"]) + var/list/L = list() + var/list/areaindex = list() + + for(var/obj/item/device/radio/beacon/R in all_beacons) + var/turf/T = get_turf(R) + if(!T) + continue + if(!(T.z in using_map.player_levels)) + continue + var/tmpname = T.loc.name if(areaindex[tmpname]) tmpname = "[tmpname] ([++areaindex[tmpname]])" else areaindex[tmpname] = 1 - L[tmpname] = I + L[tmpname] = R - var/desc = input("Please select a location to lock in.", "Locking Computer") in L|null - if(!desc) - return - if(get_dist(src, usr) > 1 && !issilicon(usr)) - return + for (var/obj/item/weapon/implant/tracking/I in all_tracking_implants) + if(!I.implanted || !ismob(I.loc)) + continue + else + var/mob/M = I.loc + if(M.stat == 2) + if(M.timeofdeath + 6000 < world.time) + continue + var/turf/T = get_turf(M) + if(T) continue + if(T.z == 2) continue + var/tmpname = M.real_name + if(areaindex[tmpname]) + tmpname = "[tmpname] ([++areaindex[tmpname]])" + else + areaindex[tmpname] = 1 + L[tmpname] = I - locked = L[desc] - for(var/mob/O in hearers(src, null)) - O.show_message("Locked In", 2) - add_fingerprint(usr) - return + var/desc = input("Please select a location to lock in.", "Locking Menu") in L|null + if(!desc) + return 0 + if(get_dist(host, usr) > 1 && !issilicon(usr)) + return 0 + + locked = L[desc] + locked_name = desc + return 1 + + if(href_list["test_fire"]) + station?.testfire() + return 1 + + if(href_list["toggle_on"]) + if(!station) + return 0 + + if(station.engaged) + station.disengage() + else + station.engage() + + return 1 + +/datum/nano_module/program/teleport_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = default_state) + var/list/data = host.initial_data() + + data["locked_name"] = locked_name ? locked_name : "No Target" + data["station_connected"] = station ? 1 : 0 + data["hub_connected"] = hub ? 1 : 0 + data["calibrated"] = hub ? hub.accurate : 0 + data["teleporter_on"] = station ? station.engaged : 0 + + ui = SSnanoui.try_update_ui(user, src, ui_key, ui, data, force_open) + if(!ui) + ui = new(user, src, ui_key, "teleport_control.tmpl", "Teleport Control Console", 400, 500, state = state) + ui.set_initial_data(data) + ui.open() + ui.set_auto_update(1) /obj/machinery/computer/teleporter/verb/set_id(t as text) set category = "Object" @@ -158,6 +219,9 @@ if(!T || istype(T, /area)) return null return T +////// +////// Root of all the machinery +////// /obj/machinery/teleport name = "teleport" icon = 'icons/obj/stationobjs.dmi' @@ -165,6 +229,9 @@ anchored = 1.0 var/lockeddown = 0 +////// +////// The part you step into +////// /obj/machinery/teleport/hub name = "teleporter hub" desc = "It's the hub of a teleporting machine." @@ -183,6 +250,11 @@ underlays += image('icons/obj/stationobjs.dmi', icon_state = "tele-wires") default_apply_parts() +/obj/machinery/teleport/hub/Destroy() + com?.teleport_control.hub = null + com = null + return ..() + /obj/machinery/teleport/hub/Bumped(M as mob|obj) spawn() if(icon_state == "tele1") @@ -193,7 +265,7 @@ /obj/machinery/teleport/hub/proc/teleport(atom/movable/M as mob|obj) if(!com) return - if(!com.locked) + if(!com.teleport_control.locked) for(var/mob/O in hearers(src, null)) O.show_message("Failure: Cannot authenticate locked on coordinates. Please reinstate coordinate matrix.") return @@ -209,11 +281,11 @@ if(prob(5) && !accurate) //oh dear a problem, put em in deep space do_teleport(M, locate(rand((2*TRANSITIONEDGE), world.maxx - (2*TRANSITIONEDGE)), rand((2*TRANSITIONEDGE), world.maxy - (2*TRANSITIONEDGE)), 3), 2) else - do_teleport(M, com.locked) //dead-on precision + do_teleport(M, com.teleport_control.locked) //dead-on precision if(com.one_time_use) //Make one-time-use cards only usable one time! com.one_time_use = 0 - com.locked = null + com.teleport_control.locked = null else var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread s.set_up(5, 1, src) @@ -223,92 +295,10 @@ for(var/mob/B in hearers(src, null)) B.show_message("Test fire completed.") return -/* -/proc/do_teleport(atom/movable/M as mob|obj, atom/destination, precision) - if(istype(M, /obj/effect)) - qdel(M) - return - if(istype(M, /obj/item/weapon/disk/nuclear)) // Don't let nuke disks get teleported --NeoFite - for(var/mob/O in viewers(M, null)) - O.show_message(text("The [] bounces off of the portal!", M.name), 1) - return - if(istype(M, /mob/living)) - var/mob/living/MM = M - if(MM.check_contents_for(/obj/item/weapon/disk/nuclear)) - to_chat(MM, "Something you are carrying seems to be unable to pass through the portal. Better drop it if you want to go through.") - return - var/disky = 0 - for (var/atom/O in M.contents) //I'm pretty sure this accounts for the maximum amount of container in container stacking. --NeoFite - if(istype(O, /obj/item/weapon/storage) || istype(O, /obj/item/weapon/gift)) - for (var/obj/OO in O.contents) - if(istype(OO, /obj/item/weapon/storage) || istype(OO, /obj/item/weapon/gift)) - for (var/obj/OOO in OO.contents) - if(istype(OOO, /obj/item/weapon/disk/nuclear)) - disky = 1 - if(istype(OO, /obj/item/weapon/disk/nuclear)) - disky = 1 - if(istype(O, /obj/item/weapon/disk/nuclear)) - disky = 1 - if(istype(O, /mob/living)) - var/mob/living/MM = O - if(MM.check_contents_for(/obj/item/weapon/disk/nuclear)) - disky = 1 - if(disky) - for(var/mob/P in viewers(M, null)) - P.show_message(text("The [] bounces off of the portal!", M.name), 1) - return - -//Bags of Holding cause bluespace teleportation to go funky. --NeoFite - if(istype(M, /mob/living)) - var/mob/living/MM = M - if(MM.check_contents_for(/obj/item/weapon/storage/backpack/holding)) - to_chat(MM, "The Bluespace interface on your Bag of Holding interferes with the teleport!") - precision = rand(1,100) - if(istype(M, /obj/item/weapon/storage/backpack/holding)) - precision = rand(1,100) - for (var/atom/O in M.contents) //I'm pretty sure this accounts for the maximum amount of container in container stacking. --NeoFite - if(istype(O, /obj/item/weapon/storage) || istype(O, /obj/item/weapon/gift)) - for (var/obj/OO in O.contents) - if(istype(OO, /obj/item/weapon/storage) || istype(OO, /obj/item/weapon/gift)) - for (var/obj/OOO in OO.contents) - if(istype(OOO, /obj/item/weapon/storage/backpack/holding)) - precision = rand(1,100) - if(istype(OO, /obj/item/weapon/storage/backpack/holding)) - precision = rand(1,100) - if(istype(O, /obj/item/weapon/storage/backpack/holding)) - precision = rand(1,100) - if(istype(O, /mob/living)) - var/mob/living/MM = O - if(MM.check_contents_for(/obj/item/weapon/storage/backpack/holding)) - precision = rand(1,100) - - var/turf/destturf = get_turf(destination) - - var/tx = destturf.x + rand(precision * -1, precision) - var/ty = destturf.y + rand(precision * -1, precision) - - var/tmploc - - if(ismob(destination.loc)) //If this is an implant. - tmploc = locate(tx, ty, destturf.z) - else - tmploc = locate(tx, ty, destination.z) - - if(tx == destturf.x && ty == destturf.y && (istype(destination.loc, /obj/structure/closet) || istype(destination.loc, /obj/structure/closet/secure_closet))) - tmploc = destination.loc - - if(tmploc==null) - return - - M.loc = tmploc - sleep(2) - - var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread - s.set_up(5, 1, M) - s.start() - return -*/ +////// +////// The middle part +////// /obj/machinery/teleport/station name = "station" desc = "It's the station thingy of a teleport thingy." //seriously, wtf. @@ -327,18 +317,11 @@ . = ..() add_overlay("controller-wires") default_apply_parts() - -/obj/machinery/teleport/station/attackby(var/obj/item/weapon/W) - attack_hand() -/obj/machinery/teleport/station/attack_ai() - attack_hand() - -/obj/machinery/teleport/station/attack_hand() - if(engaged) - disengage() - else - engage() +/obj/machinery/teleport/station/Destroy() + com?.com?.teleport_control.station = null + com = null + return ..() /obj/machinery/teleport/station/proc/engage() if(stat & (BROKEN|NOPOWER)) @@ -370,27 +353,17 @@ engaged = 0 return -/obj/machinery/teleport/station/verb/testfire() - set name = "Test Fire Teleporter" - set category = "Object" - set src in oview(1) - - if(stat & (BROKEN|NOPOWER) || !istype(usr,/mob/living)) +/obj/machinery/teleport/station/proc/testfire() + if(!com || active) return - if(com && !active) - active = 1 - for(var/mob/O in hearers(src, null)) - O.show_message("Test firing!", 2) - com.teleport() - use_power(5000) - flick(src, "controller-c") //VOREStation Add + active = TRUE + visible_message("Test firing!") + com.teleport() + use_power(5000) + flick(src, "controller-c") //VOREStation Add - spawn(30) - active=0 - - add_fingerprint(usr) - return + VARSET_IN(src, active, FALSE, 3 SECONDS) /obj/machinery/teleport/station/power_change() ..() diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm index 03436bafb5..c219c89eb7 100644 --- a/code/game/objects/items/weapons/teleportation.dm +++ b/code/game/objects/items/weapons/teleportation.dm @@ -147,11 +147,11 @@ Frequency: if(com) break break - if (istype(com, /obj/machinery/computer/teleporter) && com.locked && !com.one_time_use) + if (istype(com, /obj/machinery/computer/teleporter) && com.teleport_control.locked && !com.one_time_use) if(R.icon_state == "tele1") - L["[com.id] (Active)"] = com.locked + L["[com.id] (Active)"] = com.teleport_control.locked else - L["[com.id] (Inactive)"] = com.locked + L["[com.id] (Inactive)"] = com.teleport_control.locked var/list/turfs = list( ) for(var/turf/T in orange(10)) if(T.x>world.maxx-8 || T.x<8) continue //putting them at the edge is dumb diff --git a/nano/templates/teleport_control.tmpl b/nano/templates/teleport_control.tmpl new file mode 100644 index 0000000000..c849eb516f --- /dev/null +++ b/nano/templates/teleport_control.tmpl @@ -0,0 +1,44 @@ +
+
+
Target:
+
+ {{:helper.link(data.locked_name, null, {'select_target' : 1}, null, null)}} +
+
+ +
+
Calibrated:
+
+ {{:helper.link(data.calibrated ? 'Accurate' : 'Test Fire', data.calibrated ? 'check' : 'close', {'test_fire' : 1}, null, data.calibrated ? 'linkOn' : 'redButton')}} +
+
+ +
+
Teleporter:
+
+ {{:helper.link(data.teleporter_on ? 'Online' : 'Offline', data.teleporter_on ? 'check' : 'close', {'toggle_on' : 1}, null, data.teleporter_on ? 'linkOn' : 'redButton')}} +
+
+ +
+
Station:
+
+ {{if data.station_connected}} + Connected + {{else}} + Not Connected! + {{/if}} +
+
+ +
+
Hub:
+
+ {{if data.hub_connected}} + Connected + {{else}} + Not Connected! + {{/if}} +
+
+
\ No newline at end of file From 98e54b1e3189c54172c01a176236ca3460a405fa Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 7 May 2020 21:11:21 -0400 Subject: [PATCH 031/105] VS: Fix teleporter console icon X --- icons/obj/stationobjs_vr.dmi | Bin 63318 -> 63885 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/stationobjs_vr.dmi b/icons/obj/stationobjs_vr.dmi index 3438e97b9f1976740e25f1f94ec6a7ada89a9dbe..5801c5302daae2acdbaeed53cbc91db559e29cfa 100644 GIT binary patch delta 20374 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 EFBmE^H~;_u delta 19803 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 From 84ed80960437757f7ced18379e9f1721197495a4 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 7 May 2020 21:29:10 -0400 Subject: [PATCH 032/105] Make multikey warning less rude --- code/modules/mob/login.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index fc326c8d03..34a7035d22 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -15,7 +15,7 @@ if(matches) matches += " and " matches += "ID ([client.computer_id])" if(!config.disable_cid_warn_popup) - spawn() alert("You have logged in already with another key this round, please log out of this one NOW or risk being banned!") + spawn() alert("You appear to have logged in with another key this round, which is not permitted. Please contact an administrator if you believe this message to be in error.") if(matches) if(M.client) message_admins("Notice: [key_name_admin(src)] has the same [matches] as [key_name_admin(M)].", 1) From 67c8945a661821793c16401d76c499675c4e4976 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 7 May 2020 21:34:21 -0400 Subject: [PATCH 033/105] Prevent holopad chat from going to lobby --- code/modules/mob/new_player/new_player.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index de3c51ae75..4c93ca5f8b 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -606,6 +606,9 @@ /mob/new_player/hear_say(var/list/message_pieces, var/verb = "says", var/italics = 0, var/mob/speaker = null) return +/mob/new_player/hear_holopad_talk(list/message_pieces, var/verb = "says", var/mob/speaker = null) + return + // Prevents lobby players from seeing emotes, even with ghosteyes /mob/new_player/show_message(msg, type, alt, alt_type) return From 82f8293b25efbacfa2760f4a123d9968ce1e9e0e Mon Sep 17 00:00:00 2001 From: Atermonera Date: Thu, 7 May 2020 18:37:16 -0700 Subject: [PATCH 034/105] Merge pull request #7101 from MisterLayne/prommie-lang-fix Fixes Promethean Language --- code/__defines/species_languages.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__defines/species_languages.dm b/code/__defines/species_languages.dm index 821576a29b..6ae81236de 100644 --- a/code/__defines/species_languages.dm +++ b/code/__defines/species_languages.dm @@ -53,7 +53,7 @@ #define LANGUAGE_AKHANI "Akhani" #define LANGUAGE_ALAI "Alai" #define LANGUAGE_ZADDAT "Vedahq" -#define LANGUAGE_PROMETHEAN "Promethean" +#define LANGUAGE_PROMETHEAN "Promethean Biolinguistics" #define LANGUAGE_BLOB "Blob" #define LANGUAGE_GIBBERISH "Babel" From 6dc177ebc73380d60554cc3463140771bb2c9e47 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 7 May 2020 22:23:28 -0400 Subject: [PATCH 036/105] Fix very curious orbit offset issue (513?) --- code/datums/orbit.dm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/code/datums/orbit.dm b/code/datums/orbit.dm index 5d457ff4ac..0176d7f23d 100644 --- a/code/datums/orbit.dm +++ b/code/datums/orbit.dm @@ -4,10 +4,12 @@ var/lock = TRUE var/turf/lastloc var/lastprocess + var/matrix/init_transform -/datum/orbit/New(_orbiter, _orbiting, _lock) +/datum/orbit/New(var/atom/movable/_orbiter, var/atom/_orbiting, _lock) orbiter = _orbiter orbiting = _orbiting + init_transform = _orbiter.transform SSorbit.processing += src if (!orbiting.orbiters) orbiting.orbiters = list() @@ -24,6 +26,7 @@ SSorbit.processing -= src if (orbiter) orbiter.orbiting = null + orbiter.transform = init_transform orbiter = null if (orbiting) if (orbiting.orbiters) @@ -84,7 +87,6 @@ new/datum/orbit(src, A, lockinorbit) if (!orbiting) //something failed, and our orbit datum deleted itself return - var/matrix/initial_transform = matrix(transform) //Head first! if (pre_rotation) @@ -101,9 +103,6 @@ SpinAnimation(rotation_speed, -1, clockwise, rotation_segments) - //we stack the orbits up client side, so we can assign this back to normal server side without it breaking the orbit - transform = initial_transform - /atom/movable/proc/stop_orbit() SpinAnimation(0,0) qdel(orbiting) From ee07d117f263868b88f318ec94553a88b9e36d8f Mon Sep 17 00:00:00 2001 From: Atermonera Date: Thu, 7 May 2020 20:41:19 -0700 Subject: [PATCH 037/105] Adds preference to control multilingual behaviour --- code/__defines/preferences.dm | 11 ++++++- code/game/atoms.dm | 4 +-- code/modules/client/client defines.dm | 2 -- code/modules/client/preferences.dm | 4 +++ .../client/preferences_toggle_procs.dm | 29 +++++++++++++++---- code/modules/mob/say.dm | 21 ++++++++++++++ .../atermonera_multilingual_pref.yml | 11 +++++++ 7 files changed, 71 insertions(+), 11 deletions(-) create mode 100644 html/changelogs/atermonera_multilingual_pref.yml diff --git a/code/__defines/preferences.dm b/code/__defines/preferences.dm index 0bb289d2e1..880d9318d8 100644 --- a/code/__defines/preferences.dm +++ b/code/__defines/preferences.dm @@ -1,6 +1,15 @@ +// Modes for examine text output #define EXAMINE_MODE_DEFAULT 0 #define EXAMINE_MODE_INCLUDE_USAGE 1 #define EXAMINE_MODE_SWITCH_TO_PANEL 2 // Should be one higher than the above -#define EXAMINE_MODE_MAX 3 \ No newline at end of file +#define EXAMINE_MODE_MAX 3 + +// Modes for parsing multilingual speech +#define MULTILINGUAL_DEFAULT 0 +#define MULTILINGUAL_SPACE 1 +#define MULTILINGUAL_DOUBLE_DELIMITER 2 +#define MULTILINGUAL_OFF 3 + +#define MULTILINGUAL_MODE_MAX 4 \ No newline at end of file diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 7d39676d51..ab703fa650 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -184,10 +184,10 @@ var/list/output = list("[bicon(src)] That's [f_name] [suffix]", desc) - if(user.client?.examine_text_mode == EXAMINE_MODE_INCLUDE_USAGE) + if(user.client?.prefs.examine_text_mode == EXAMINE_MODE_INCLUDE_USAGE) output += description_info - if(user.client?.examine_text_mode == EXAMINE_MODE_SWITCH_TO_PANEL) + if(user.client?.prefs.examine_text_mode == EXAMINE_MODE_SWITCH_TO_PANEL) user.client.statpanel = "Examine" // Switch to stat panel return output diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm index 1d99f83b35..99d975c454 100644 --- a/code/modules/client/client defines.dm +++ b/code/modules/client/client defines.dm @@ -27,8 +27,6 @@ var/chatOutputLoadedAt var/adminhelped = 0 - var/examine_text_mode = 0 // Just examine text, include usage (description_info), switch to examine panel. - /////////////// //SOUND STUFF// diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 284198507a..de149d80ee 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -131,6 +131,10 @@ datum/preferences var/lastnews // Hash of last seen lobby news content. + var/examine_text_mode = 0 // Just examine text, include usage (description_info), switch to examine panel. + var/multilingual_mode = 0 // Default behaviour, delimiter-key-space, delimiter-key-delimiter, off + + /datum/preferences/New(client/C) player_setup = new(src) set_biological_gender(pick(MALE, FEMALE)) diff --git a/code/modules/client/preferences_toggle_procs.dm b/code/modules/client/preferences_toggle_procs.dm index b8e0ea3d5c..e33f3645d1 100644 --- a/code/modules/client/preferences_toggle_procs.dm +++ b/code/modules/client/preferences_toggle_procs.dm @@ -328,17 +328,34 @@ set category = "Preferences" set desc = "Control the additional behaviour of examining things" - examine_text_mode++ - examine_text_mode %= EXAMINE_MODE_MAX // This cycles through them because if you're already specifically being routed to the examine panel, you probably don't need to have the extra text printed to chat - switch(examine_text_mode) // ... And I only wanted to add one verb + prefs.examine_text_mode++ + prefs.examine_text_mode %= EXAMINE_MODE_MAX // This cycles through them because if you're already specifically being routed to the examine panel, you probably don't need to have the extra text printed to chat + switch(prefs.examine_text_mode) // ... And I only wanted to add one verb if(EXAMINE_MODE_DEFAULT) - to_chat(src, "Examining things will only output the base examine text, and you will not be redirected to the examine panel automatically.") + to_chat(src, "Examining things will only output the base examine text, and you will not be redirected to the examine panel automatically.") if(EXAMINE_MODE_INCLUDE_USAGE) - to_chat(src, "Examining things will also print any extra usage information normally included in the examine panel to the chat.") + to_chat(src, "Examining things will also print any extra usage information normally included in the examine panel to the chat.") if(EXAMINE_MODE_SWITCH_TO_PANEL) - to_chat(src, "Examining things will direct you to the examine panel, where you can view extended information about the thing.") + to_chat(src, "Examining things will direct you to the examine panel, where you can view extended information about the thing.") + +/client/verb/toggle_multilingual_mode() + set name = "Toggle Multilingual Mode" + set category = "Preferences" + set desc = "Control the behaviour of multilingual speech parsing" + + prefs.multilingual_mode++ + prefs.multilingual_mode %= MULTILINGUAL_MODE_MAX // Cycles through the various options + switch(prefs.multilingual_mode) + if(MULTILINGUAL_DEFAULT) + to_chat(src, "Multilingual parsing will only check for the delimiter-key combination (,0galcom-2tradeband).") + if(MULTILINGUAL_SPACE) + to_chat(src, "Multilingual parsing will enforce a space after the delimiter-key combination (,0 galcom -2still galcom). The extra space will be consumed by the pattern-matching.") + if(MULTILINGUAL_DOUBLE_DELIMITER) + to_chat(src, "Multilingual parsing will enforce the a language delimiter after the delimiter-key combination (,0,galcom -2 still galcom). The extra delimiter will be consumed by the pattern-matching.") + if(MULTILINGUAL_OFF) + to_chat(src, "Multilingual parsing is now disabled. Entire messages will be in the language specified at the start of the message.") //Toggles for Staff diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 6db108fa6f..057b54df09 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -152,8 +152,13 @@ /mob/proc/find_valid_prefixes(message) var/list/prefixes = list() // [["Common", start, end], ["Gutter", start, end]] for(var/i in 1 to length(message)) +<<<<<<< HEAD // This grabs trimmed 3 character substrings, to allow for up to 1 prefix and 1 letter language keys var/selection = trim_right(copytext(message, i, i + 2)) // VOREStation Edit: We use uppercase keys to avoid Polaris key duplication, but this had lowertext() in it +======= + // This grabs 3 character substrings, to allow for up to 1 prefix, 1 letter language key, and one post-key character to more strictly control where the language breaks happen + var/selection = lowertext(copytext(message, i, i + 3)) +>>>>>>> 021f874... Adds preference to control multilingual behaviour (#7064) // The first character in the selection will always be the prefix (if this is a valid language invocation) var/prefix = copytext(selection, 1, 2) var/language_key = copytext(selection, 2, 3) @@ -161,6 +166,18 @@ // Okay, we're definitely now trying to invoke a language (probably) // This "[]" is probably unnecessary but BYOND will runtime if a number is used var/datum/language/L = GLOB.language_keys["[language_key]"] + + // MULTILINGUAL_SPACE enforces a space after the language key + if(client && (client.prefs.multilingual_mode == MULTILINGUAL_SPACE) && (text2ascii(copytext(selection, 3, 4)) != 32)) // If we're looking for a space and we don't find one + continue + + // MULTILINGUAL_DOUBLE_DELIMITER enforces a delimiter (valid prefix) after the language key + if(client && (client.prefs.multilingual_mode == MULTILINGUAL_DOUBLE_DELIMITER) && !is_language_prefix(copytext(selection, 3, 4))) + continue + + if(client && (client.prefs.multilingual_mode in list(MULTILINGUAL_DEFAULT))) + selection = copytext(selection, 1, 3) // These modes only use two characters, not three + // It's kinda silly that we have to check L != null and this isn't done for us by can_speak (it runtimes instead), but w/e if(L && can_speak(L)) // So we have a valid language invocation, and we can speak that language, let's make a piece for it @@ -174,6 +191,10 @@ // This covers the case of "no prefixes in use." prefixes[++prefixes.len] = list(get_default_language(), i, i) + // If multilingualism is disabled, then after the first pass we're guaranteed to have either found a language key at the start, or else there isn't one and we're using the default for the whole message + if(client && (client.prefs.multilingual_mode == MULTILINGUAL_OFF)) + break + return prefixes /mob/proc/strip_prefixes(message, mob/prefixer = null) diff --git a/html/changelogs/atermonera_multilingual_pref.yml b/html/changelogs/atermonera_multilingual_pref.yml new file mode 100644 index 0000000000..84552b9a13 --- /dev/null +++ b/html/changelogs/atermonera_multilingual_pref.yml @@ -0,0 +1,11 @@ +author: Atermonera +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added a preference to control multilingual parsing behaviour, with a few different modes. Should hopefully be less punishing to people who stutter and use hyphens as a language key." + - tweak: "The examine mode preference should now persist across reconnections during a single round, but if the server is fully restarted it still appears to reset. This issue is also present for the multilingual preference, and I'm still looking into it. Savefiles are crpytic." From 323f7e651fbe7075fdd9ac6e5bb42d7b3193fd50 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Fri, 8 May 2020 01:51:52 -0400 Subject: [PATCH 038/105] Fix/rename some timing stuff --- code/_helpers/time.dm | 28 ++++++++----------- code/controllers/autotransfer.dm | 6 ++-- code/controllers/subsystems/game_master.dm | 2 +- code/controllers/subsystems/nightshift.dm | 2 +- code/game/gamemodes/game_mode_latespawn.dm | 2 +- code/game/machinery/exonet_node.dm | 2 +- code/game/machinery/newscaster.dm | 2 +- code/modules/events/event_container.dm | 2 +- .../integrated_electronics/subtypes/time.dm | 8 +++--- maps/~map_system/maps.dm | 5 ++-- 10 files changed, 27 insertions(+), 32 deletions(-) diff --git a/code/_helpers/time.dm b/code/_helpers/time.dm index 62d217de4e..db0a22a721 100644 --- a/code/_helpers/time.dm +++ b/code/_helpers/time.dm @@ -36,25 +36,25 @@ return wtime + (time_offset + wusage) * world.tick_lag -var/roundstart_hour +GLOBAL_VAR_INIT(roundstart_hour, pick(2,7,12,17)) var/station_date = "" var/next_station_date_change = 1 DAY -#define duration2stationtime(time) time2text(station_time_in_ticks + time, "hh:mm") -#define worldtime2stationtime(time) time2text(roundstart_hour HOURS + time, "hh:mm") -#define round_duration_in_ticks (round_start_time ? world.time - round_start_time : 0) -#define station_time_in_ticks (roundstart_hour HOURS + round_duration_in_ticks) +#define duration2stationtime(time) time2text(station_time_in_ds + time, "hh:mm") +#define worldtime2stationtime(time) time2text(GLOB.roundstart_hour HOURS + time, "hh:mm") +#define round_duration_in_ds (GLOB.round_start_time ? world.time - GLOB.round_start_time : 0) +#define station_time_in_ds (GLOB.roundstart_hour HOURS + round_duration_in_ds) /proc/stationtime2text() - return time2text(station_time_in_ticks, "hh:mm") + return time2text(station_time_in_ds, "hh:mm") //For some reason, this is not accurate. It's expecting some other kind of times, maybe? Like ones from world.realtime? /proc/stationdate2text() var/update_time = FALSE - if(station_time_in_ticks > next_station_date_change) + if(station_time_in_ds > next_station_date_change) next_station_date_change += 1 DAY update_time = TRUE if(!station_date || update_time) - var/extra_days = round(station_time_in_ticks / (1 DAY)) DAYS + var/extra_days = round(station_time_in_ds / (1 DAY)) DAYS var/timeofday = world.timeofday + extra_days station_date = num2text((text2num(time2text(timeofday, "YYYY"))+300)) + "-" + time2text(timeofday, "MM-DD") //VOREStation Edit return station_date @@ -84,19 +84,19 @@ proc/isDay(var/month, var/day) var/next_duration_update = 0 var/last_round_duration = 0 -var/round_start_time = 0 +GLOBAL_VAR_INIT(round_start_time, 0) /hook/roundstart/proc/start_timer() - round_start_time = world.time + GLOB.round_start_time = world.time return 1 /proc/roundduration2text() - if(!round_start_time) + if(!GLOB.round_start_time) return "00:00" if(last_round_duration && world.time < next_duration_update) return last_round_duration - var/mills = round_duration_in_ticks // 1/10 of a second, not real milliseconds but whatever + var/mills = round_duration_in_ds // 1/10 of a second, not real milliseconds but whatever //var/secs = ((mills % 36000) % 600) / 10 //Not really needed, but I'll leave it here for refrence.. or something var/mins = round((mills % 36000) / 600) var/hours = round(mills / 36000) @@ -108,10 +108,6 @@ var/round_start_time = 0 next_duration_update = world.time + 1 MINUTES return last_round_duration -/hook/startup/proc/set_roundstart_hour() - roundstart_hour = pick(2,7,12,17) - return 1 - /var/midnight_rollovers = 0 /var/rollovercheck_last_timeofday = 0 /proc/update_midnight_rollover() diff --git a/code/controllers/autotransfer.dm b/code/controllers/autotransfer.dm index c59d124ab7..3d867473dc 100644 --- a/code/controllers/autotransfer.dm +++ b/code/controllers/autotransfer.dm @@ -17,14 +17,14 @@ datum/controller/transfer_controller/Destroy() datum/controller/transfer_controller/process() currenttick = currenttick + 1 //VOREStation Edit START - if (round_duration_in_ticks >= shift_last_vote - 2 MINUTES) + if (round_duration_in_ds >= shift_last_vote - 2 MINUTES) shift_last_vote = 999999999999 //Setting to a stupidly high number since it'll be not used again. to_world("Warning: You have one hour left in the shift. Wrap up your scenes in the next 60 minutes before the transfer is called.") //VOREStation Edit - if (round_duration_in_ticks >= shift_hard_end - 1 MINUTE) + if (round_duration_in_ds >= shift_hard_end - 1 MINUTE) init_shift_change(null, 1) shift_hard_end = timerbuffer + config.vote_autotransfer_interval //If shuttle somehow gets recalled, let's force it to call again next time a vote would occur. timerbuffer = timerbuffer + config.vote_autotransfer_interval //Just to make sure a vote doesn't occur immediately afterwords. - else if (round_duration_in_ticks >= timerbuffer - 1 MINUTE) + else if (round_duration_in_ds >= timerbuffer - 1 MINUTE) SSvote.autotransfer() //VOREStation Edit END timerbuffer = timerbuffer + config.vote_autotransfer_interval diff --git a/code/controllers/subsystems/game_master.dm b/code/controllers/subsystems/game_master.dm index d5326bfba6..ce7e8176c3 100644 --- a/code/controllers/subsystems/game_master.dm +++ b/code/controllers/subsystems/game_master.dm @@ -109,7 +109,7 @@ SUBSYSTEM_DEF(game_master) return FALSE // Last minute antagging is bad for humans to do, so the GM will respect the start and end of the round. - var/mills = round_duration_in_ticks + var/mills = round_duration_in_ds var/mins = round((mills % 36000) / 600) var/hours = round(mills / 36000) diff --git a/code/controllers/subsystems/nightshift.dm b/code/controllers/subsystems/nightshift.dm index 9e89a05cee..3f0d9bfda8 100644 --- a/code/controllers/subsystems/nightshift.dm +++ b/code/controllers/subsystems/nightshift.dm @@ -20,7 +20,7 @@ SUBSYSTEM_DEF(nightshift) return ..() /datum/controller/subsystem/nightshift/fire(resumed = FALSE) - if(round_duration_in_ticks < nightshift_first_check) + if(round_duration_in_ds < nightshift_first_check) return check_nightshift() diff --git a/code/game/gamemodes/game_mode_latespawn.dm b/code/game/gamemodes/game_mode_latespawn.dm index 578c1a0d8c..9fcb4bd0ea 100644 --- a/code/game/gamemodes/game_mode_latespawn.dm +++ b/code/game/gamemodes/game_mode_latespawn.dm @@ -34,7 +34,7 @@ if(emergency_shuttle.shuttle && (emergency_shuttle.shuttle.moving_status == SHUTTLE_WARMUP || emergency_shuttle.shuttle.moving_status == SHUTTLE_INTRANSIT)) return // Don't do anything if the shuttle's coming. - var/mills = round_duration_in_ticks + var/mills = round_duration_in_ds var/mins = round((mills % 36000) / 600) var/hours = round(mills / 36000) diff --git a/code/game/machinery/exonet_node.dm b/code/game/machinery/exonet_node.dm index 473ab1977f..b9b95e103c 100644 --- a/code/game/machinery/exonet_node.dm +++ b/code/game/machinery/exonet_node.dm @@ -175,7 +175,7 @@ // Description: This writes to the logs list, so that people can see what people are doing on the Exonet ingame. Note that this is not an admin logging function. // Communicators are already logged seperately. /obj/machinery/exonet_node/proc/write_log(var/origin_address, var/target_address, var/data_type, var/content) - //var/timestamp = time2text(station_time_in_ticks, "hh:mm:ss") + //var/timestamp = time2text(station_time_in_ds, "hh:mm:ss") var/timestamp = "[stationdate2text()] [stationtime2text()]" var/msg = "[timestamp] | FROM [origin_address] TO [target_address] | TYPE: [data_type] | CONTENT: [content]" logs.Add(msg) diff --git a/code/game/machinery/newscaster.dm b/code/game/machinery/newscaster.dm index 883a963fa2..9fd9f74999 100644 --- a/code/game/machinery/newscaster.dm +++ b/code/game/machinery/newscaster.dm @@ -79,7 +79,7 @@ newMsg.body = msg newMsg.time_stamp = "[stationtime2text()]" newMsg.is_admin_message = adminMessage - newMsg.post_time = round_duration_in_ticks // Should be almost universally unique + newMsg.post_time = round_duration_in_ds // Should be almost universally unique if(message_type) newMsg.message_type = message_type if(photo) diff --git a/code/modules/events/event_container.dm b/code/modules/events/event_container.dm index 79c294c5ac..458fe9fb56 100644 --- a/code/modules/events/event_container.dm +++ b/code/modules/events/event_container.dm @@ -22,7 +22,7 @@ var/global/list/severity_to_string = list(EVENT_LEVEL_MUNDANE = "Mundane", EVENT var/last_world_time = 0 /datum/event_container/process() - if(!round_start_time) + if(!GLOB.round_start_time) return //don't do events if the round hasn't even started yet if(!next_event_time) diff --git a/code/modules/integrated_electronics/subtypes/time.dm b/code/modules/integrated_electronics/subtypes/time.dm index df8e686b1f..9633ef7881 100644 --- a/code/modules/integrated_electronics/subtypes/time.dm +++ b/code/modules/integrated_electronics/subtypes/time.dm @@ -86,10 +86,10 @@ power_draw_per_use = 4 /obj/item/integrated_circuit/time/clock/do_work() - set_pin_data(IC_OUTPUT, 1, time2text(station_time_in_ticks, "hh:mm:ss") ) - set_pin_data(IC_OUTPUT, 2, text2num(time2text(station_time_in_ticks, "hh") ) ) - set_pin_data(IC_OUTPUT, 3, text2num(time2text(station_time_in_ticks, "mm") ) ) - set_pin_data(IC_OUTPUT, 4, text2num(time2text(station_time_in_ticks, "ss") ) ) + set_pin_data(IC_OUTPUT, 1, time2text(station_time_in_ds, "hh:mm:ss") ) + set_pin_data(IC_OUTPUT, 2, text2num(time2text(station_time_in_ds, "hh") ) ) + set_pin_data(IC_OUTPUT, 3, text2num(time2text(station_time_in_ds, "mm") ) ) + set_pin_data(IC_OUTPUT, 4, text2num(time2text(station_time_in_ds, "ss") ) ) push_data() activate_pin(2) diff --git a/maps/~map_system/maps.dm b/maps/~map_system/maps.dm index a4b9d0f4b1..ac26b495e6 100644 --- a/maps/~map_system/maps.dm +++ b/maps/~map_system/maps.dm @@ -153,8 +153,7 @@ var/list/all_maps = list() // We have to invent a time else - var/seconds_stationtime = round(station_time_in_ticks*0.1) //Not actually ticks...... - var/datum/time/T = new(seconds_stationtime) + var/datum/time/T = new (station_time_in_ds) return T // Returns a boolean for if it's night or not on a particular zlevel @@ -162,7 +161,7 @@ var/list/all_maps = list() if(!z) z = 1 var/datum/time/now = get_zlevel_time(z) - var/percent = now.seconds_stored / now.seconds_in_day + var/percent = now.seconds_stored / now.seconds_in_day //practically all of these are in DS // First quarter, last quarter if(percent < 0.25 || percent > 0.75) From 6d47c2f95c14e1c679483f68da171817ecc46718 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Fri, 8 May 2020 10:09:40 -0400 Subject: [PATCH 039/105] Further time fixes --- code/_helpers/time.dm | 9 ++++++++- code/game/world.dm | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/code/_helpers/time.dm b/code/_helpers/time.dm index db0a22a721..6e63dabb45 100644 --- a/code/_helpers/time.dm +++ b/code/_helpers/time.dm @@ -46,7 +46,7 @@ var/next_station_date_change = 1 DAY #define station_time_in_ds (GLOB.roundstart_hour HOURS + round_duration_in_ds) /proc/stationtime2text() - return time2text(station_time_in_ds, "hh:mm") //For some reason, this is not accurate. It's expecting some other kind of times, maybe? Like ones from world.realtime? + return time2text(station_time_in_ds + GLOB.timezoneOffset, "hh:mm") /proc/stationdate2text() var/update_time = FALSE @@ -65,6 +65,13 @@ var/next_station_date_change = 1 DAY var/time_portion = time2text(world.timeofday, "hh:mm:ss") return "[date_portion]T[time_portion]" +/proc/get_timezone_offset() + var/midnight_gmt_here = text2num(time2text(0,"hh")) * 36000 + if(midnight_gmt_here > 12 HOURS) + return 24 HOURS - midnight_gmt_here + else + return midnight_gmt_here + /proc/gameTimestamp(format = "hh:mm:ss", wtime=null) if(!wtime) wtime = world.time diff --git a/code/game/world.dm b/code/game/world.dm index e4735c9315..3385a494ae 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -25,7 +25,7 @@ // if(config && config.log_runtime) // log = file("data/logs/runtime/[time2text(world.realtime,"YYYY-MM-DD-(hh-mm-ss)")]-runtime.log") - GLOB.timezoneOffset = text2num(time2text(0,"hh")) * 36000 + GLOB.timezoneOffset = get_timezone_offset() callHook("startup") init_vchat() From c849c020b9a1922741787e553b4bdb07ec0fdf07 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 8 May 2020 10:53:08 -0400 Subject: [PATCH 040/105] Add some ctrl/alt vehicle helper clicks --- code/modules/vehicles/bike.dm | 14 +++++++++++++- code/modules/vehicles/cargo_train.dm | 16 ++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/code/modules/vehicles/bike.dm b/code/modules/vehicles/bike.dm index 5d8abe9fbd..1d4cb49a3b 100644 --- a/code/modules/vehicles/bike.dm +++ b/code/modules/vehicles/bike.dm @@ -54,6 +54,12 @@ return ..() +/obj/vehicle/bike/CtrlClick(var/mob/user) + if(Adjacent(user) && anchored) + toggle() + else + return ..() + /obj/vehicle/bike/verb/toggle() set name = "Toggle Engine" set category = "Vehicle" @@ -71,7 +77,13 @@ turn_off() src.visible_message("\The [src] putters before turning off.", "You hear something putter slowly.") -/obj/vehicle/bike/verb/kickstand(var/mob/user as mob) //TFF 22/3/20 - Tweaking the visible_message output so it's not "You put kickstand down" to everyone. +/obj/vehicle/bike/AltClick(var/mob/user) + if(Adjacent(user)) + kickstand(user) + else + return ..() + +/obj/vehicle/bike/verb/kickstand(var/mob/user as mob) set name = "Toggle Kickstand" set category = "Vehicle" set src in view(0) diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm index eb4f1141b8..939c72110e 100644 --- a/code/modules/vehicles/cargo_train.dm +++ b/code/modules/vehicles/cargo_train.dm @@ -197,6 +197,22 @@ . += "The power light is [on ? "on" : "off"].\nThere are[key ? "" : " no"] keys in the ignition." . += "The charge meter reads [cell? round(cell.percent(), 0.01) : 0]%" + +/obj/vehicle/train/engine/CtrlClick(var/mob/user) + if(Adjacent(user)) + if(on) + stop_engine() + else + start_engine() + else + return ..() + +/obj/vehicle/train/engine/AltClick(var/mob/user) + if(Adjacent(user)) + remove_key() + else + return ..() + /obj/vehicle/train/engine/verb/start_engine() set name = "Start engine" set category = "Vehicle" From 1acfafd62f61c881f38db03a922f72c502a1b43e Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 8 May 2020 11:13:20 -0400 Subject: [PATCH 041/105] When looking at machines, don't allow mesons/material/etc --- code/game/machinery/machinery.dm | 1 + code/modules/overmap/ships/computers/ship.dm | 1 + 2 files changed, 2 insertions(+) diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index b0b63fc778..fa4dfd452d 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -454,6 +454,7 @@ Class Procs: return 1 /datum/proc/apply_visual(mob/M) + M.sight = 0 //Just reset their mesons and stuff so they can't use them, by default. return /datum/proc/remove_visual(mob/M) diff --git a/code/modules/overmap/ships/computers/ship.dm b/code/modules/overmap/ships/computers/ship.dm index 6e6304f1f8..497077a76e 100644 --- a/code/modules/overmap/ships/computers/ship.dm +++ b/code/modules/overmap/ships/computers/ship.dm @@ -58,6 +58,7 @@ somewhere on that shuttle. Subtypes of these can be then used to perform ship ov /obj/machinery/computer/ship/proc/look(var/mob/user) if(linked) + apply_visual(user) user.reset_view(linked) user.set_viewsize(world.view + extra_view) GLOB.moved_event.register(user, src, /obj/machinery/computer/ship/proc/unlook) From de46f1a1528a390612dd7cee3508194121cd9af4 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 8 May 2020 12:21:25 -0400 Subject: [PATCH 042/105] Don't copy NIF when you copy characters --- code/modules/client/preferences_savefile.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 593d592187..efa91fc860 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -106,7 +106,9 @@ slot = sanitize_integer(slot, 1, config.character_slots, initial(default_slot)) if(slot != default_slot) default_slot = slot + nif_path = nif_durability = nif_savedata = null //VOREStation Add - Don't copy NIF S["default_slot"] << slot + else S["default_slot"] << default_slot From 00bda74f95493baa37480880362758cdca921bcd Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 8 May 2020 13:00:40 -0400 Subject: [PATCH 043/105] Check power on machine build --- code/game/machinery/machinery.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index b0b63fc778..911c97c6b4 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -121,7 +121,7 @@ Class Procs: if(ispath(circuit)) circuit = new circuit(src) -/obj/machinery/Initialize() +/obj/machinery/Initialize(var/mapload) . = ..() global.machines += src if(ispath(circuit)) @@ -130,6 +130,8 @@ Class Procs: START_MACHINE_PROCESSING(src) else START_PROCESSING(SSfastprocess, src) + if(!mapload) + power_change() /obj/machinery/Destroy() if(!speed_process) From dd3d4f4cfef182f9c8db5ea399e563a7f02f0cc5 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 8 May 2020 13:34:31 -0400 Subject: [PATCH 044/105] Refactor spawn_checks_vr and when it is called --- code/controllers/subsystems/ticker.dm | 1 + code/modules/mob/new_player/new_player.dm | 3 +-- code/modules/mob/new_player/new_player_vr.dm | 21 ++++++++++++-------- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/code/controllers/subsystems/ticker.dm b/code/controllers/subsystems/ticker.dm index deaa65bcfb..f213c6bf30 100644 --- a/code/controllers/subsystems/ticker.dm +++ b/code/controllers/subsystems/ticker.dm @@ -404,6 +404,7 @@ var/global/datum/controller/subsystem/ticker/ticker continue // Ask their new_player mob to spawn them + if(!player.spawn_checks_vr(player.mind.assigned_role)) continue //VOREStation Add var/mob/living/carbon/human/new_char = player.create_character() // Created their playable character, delete their /mob/new_player diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index de3c51ae75..7fa15cc383 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -365,7 +365,7 @@ if(!IsJobAvailable(rank)) alert(src,"[rank] is not available. Please try another.") return 0 - if(!attempt_vr(src,"spawn_checks_vr",list())) return 0 // VOREStation Insert + if(!spawn_checks_vr(rank)) return 0 // VOREStation Insert if(!client) return 0 @@ -491,7 +491,6 @@ /mob/new_player/proc/create_character(var/turf/T) - if (!attempt_vr(src,"spawn_checks_vr",list())) return 0 // VOREStation Insert spawning = 1 close_spawn_windows() diff --git a/code/modules/mob/new_player/new_player_vr.dm b/code/modules/mob/new_player/new_player_vr.dm index 711332e692..1c56e278f8 100644 --- a/code/modules/mob/new_player/new_player_vr.dm +++ b/code/modules/mob/new_player/new_player_vr.dm @@ -1,36 +1,41 @@ -/mob/new_player/proc/spawn_checks_vr() +/mob/new_player/proc/spawn_checks_vr(var/rank) var/pass = TRUE + var/datum/job/J = SSjob.get_job(rank) + + if(!J) + log_debug("Couldn't find job: [rank] for spawn_checks_vr, panic-returning that it's fine to spawn.") + return TRUE //No Flavor Text - if (config.require_flavor && client && client.prefs && client.prefs.flavor_texts && !client.prefs.flavor_texts["general"]) + if (config.require_flavor && !client?.prefs?.flavor_texts["general"] && !(J.mob_type & JOB_SILICON)) to_chat(src,"Please set your general flavor text to give a basic description of your character. Set it using the 'Set Flavor text' button on the 'General' tab in character setup, and choosing 'General' category.") pass = FALSE //No OOC notes - if (config.allow_Metadata && client && client.prefs && (isnull(client.prefs.metadata) || length(client.prefs.metadata) < 15)) + if (config.allow_Metadata && !(client?.prefs?.metadata || length(client.prefs.metadata) < 15)) to_chat(src,"Please set informative OOC notes related to ERP preferences. Set them using the 'OOC Notes' button on the 'General' tab in character setup.") pass = FALSE //Are they on the VERBOTEN LIST? - if (prevent_respawns.Find(client.prefs.real_name)) + if (prevent_respawns.Find(client?.prefs?.real_name)) to_chat(src,"You've already quit the round as this character. You can't go back now that you've free'd your job slot. Play another character, or wait for the next round.") pass = FALSE //Do they have their scale properly setup? - if(!client.prefs.size_multiplier) + if(!client?.prefs?.size_multiplier) pass = FALSE to_chat(src,"You have not set your scale yet. Do this on the VORE tab in character setup.") //Can they play? - if(!is_alien_whitelisted(src,GLOB.all_species[client.prefs.species]) && !check_rights(R_ADMIN, 0)) + if(!is_alien_whitelisted(src,GLOB.all_species[client?.prefs?.species]) && !check_rights(R_ADMIN, 0)) pass = FALSE to_chat(src,"You are not allowed to spawn in as this species.") //Custom species checks - if (client && client.prefs && client.prefs.species == "Custom Species") + if (client?.prefs?.species == "Custom Species") //Didn't name it - if(!client.prefs.custom_species) + if(!client?.prefs?.custom_species) pass = FALSE to_chat(src,"You have to name your custom species. Do this on the VORE tab in character setup.") From 069b8829adf96b59a92eaa33cc1c31e4abe189fa Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 8 May 2020 14:44:54 -0400 Subject: [PATCH 045/105] Update say.dm --- code/modules/mob/say.dm | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 057b54df09..7a20d0ee8e 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -152,13 +152,8 @@ /mob/proc/find_valid_prefixes(message) var/list/prefixes = list() // [["Common", start, end], ["Gutter", start, end]] for(var/i in 1 to length(message)) -<<<<<<< HEAD - // This grabs trimmed 3 character substrings, to allow for up to 1 prefix and 1 letter language keys - var/selection = trim_right(copytext(message, i, i + 2)) // VOREStation Edit: We use uppercase keys to avoid Polaris key duplication, but this had lowertext() in it -======= // This grabs 3 character substrings, to allow for up to 1 prefix, 1 letter language key, and one post-key character to more strictly control where the language breaks happen - var/selection = lowertext(copytext(message, i, i + 3)) ->>>>>>> 021f874... Adds preference to control multilingual behaviour (#7064) + var/selection = trim_right(copytext(message, i, i + 3)) // VOREStation Edit: We use uppercase keys to avoid Polaris key duplication, but this had lowertext() in it // The first character in the selection will always be the prefix (if this is a valid language invocation) var/prefix = copytext(selection, 1, 2) var/language_key = copytext(selection, 2, 3) From 40f1198e12bedf15df42a50257b9efbfaf51e525 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 8 May 2020 12:17:11 -0700 Subject: [PATCH 046/105] Merge pull request #7059 from atlantiscze/2020_04_28_DelamChange Supermatter delamination tweaks --- code/modules/power/singularity/act.dm | 57 +++------ code/modules/power/supermatter/supermatter.dm | 108 ++++++++++++------ html/changelogs/atlantiscze-sm.yml | 6 + 3 files changed, 93 insertions(+), 78 deletions(-) create mode 100644 html/changelogs/atlantiscze-sm.yml diff --git a/code/modules/power/singularity/act.dm b/code/modules/power/singularity/act.dm index 5d33ee440e..9c3a5b8621 100644 --- a/code/modules/power/singularity/act.dm +++ b/code/modules/power/singularity/act.dm @@ -47,12 +47,19 @@ return 2 /obj/singularity_pull(S, current_size) - if(simulated) - if(anchored) - if(current_size >= STAGE_FIVE) - step_towards(src, S) - else - step_towards(src, S) + set waitfor = 0 + + if(anchored) + return + + sleep(0) //this is needed or multiple items will be thrown sequentially and not simultaneously + if(current_size >= STAGE_FOUR) + step_towards(src,S) + sleep(1) + step_towards(src,S) + else if(current_size > STAGE_ONE) + step_towards(src,S) + else ..() /obj/effect/beam/singularity_pull() return @@ -60,20 +67,6 @@ /obj/effect/overlay/singularity_pull() return -/obj/item/singularity_pull(S, current_size) - spawn(0) //this is needed or multiple items will be thrown sequentially and not simultaneously - if(current_size >= STAGE_FOUR) - //throw_at(S, 14, 3) - step_towards(src,S) - sleep(1) - step_towards(src,S) - else if(current_size > STAGE_ONE) - step_towards(src,S) - else ..() - -/obj/machinery/atmospherics/pipe/singularity_pull() - return - /obj/machinery/power/supermatter/shard/singularity_act() qdel(src) return 5000 @@ -113,30 +106,6 @@ ChangeTurf(get_base_turf_by_area(src)) return 2 -/turf/simulated/floor/singularity_pull(S, current_size) - if(flooring && current_size >= STAGE_THREE) - if(prob(current_size / 2)) - var/leave_tile = TRUE - if(broken || burnt || flooring.flags & TURF_IS_FRAGILE) - leave_tile = FALSE - playsound(src, 'sound/items/crowbar.ogg', 50, 1) - make_plating(leave_tile) - -/turf/simulated/wall/singularity_pull(S, current_size) - - if(!reinf_material) - if(current_size >= STAGE_FIVE) - if(prob(75)) - dismantle_wall() - return - if(current_size == STAGE_FOUR) - if(prob(30)) - dismantle_wall() - else - if(current_size >= STAGE_FIVE) - if(prob(30)) - dismantle_wall() - /turf/space/singularity_act() return diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index b89b906e8a..621cdcba0b 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -25,11 +25,21 @@ // Base variants are applied to everyone on the same Z level // Range variants are applied on per-range basis: numbers here are on point blank, it scales with the map size (assumes square shaped Z levels) -#define DETONATION_RADS 20 -#define DETONATION_HALLUCINATION_BASE 300 -#define DETONATION_HALLUCINATION_RANGE 300 -#define DETONATION_HALLUCINATION 600 +#define DETONATION_RADS 40 +#define DETONATION_MOB_CONCUSSION 4 // Value that will be used for Weaken() for mobs. +// Base amount of ticks for which a specific type of machine will be offline for. +- 20% added by RNG. +// This does pretty much the same thing as an electrical storm, it just affects the whole Z level instantly. +#define DETONATION_APC_OVERLOAD_PROB 10 // prob() of overloading an APC's lights. +#define DETONATION_SHUTDOWN_APC 120 // Regular APC. +#define DETONATION_SHUTDOWN_CRITAPC 10 // Critical APC. AI core and such. Considerably shorter as we don't want to kill the AI with a single blast. Still a nuisance. +#define DETONATION_SHUTDOWN_SMES 60 // SMES +#define DETONATION_SHUTDOWN_RNG_FACTOR 20 // RNG factor. Above shutdown times can be +- X%, where this setting is the percent. Do not set to 100 or more. +#define DETONATION_SOLAR_BREAK_CHANCE 60 // prob() of breaking solar arrays (this is per-panel, and only affects the Z level SM is on) + +// If power level is between these two, explosion strength will be scaled accordingly between min_explosion_power and max_explosion_power +#define DETONATION_EXPLODE_MIN_POWER 200 // If power level is this or lower, minimal detonation strength will be used +#define DETONATION_EXPLODE_MAX_POWER 2000 // If power level is this or higher maximal detonation strength will be used #define WARNING_DELAY 20 //seconds between warnings. @@ -65,7 +75,8 @@ var/pull_radius = 14 // Time in ticks between delamination ('exploding') and exploding (as in the actual boom) var/pull_time = 100 - var/explosion_power = 8 + var/min_explosion_power = 8 + var/max_explosion_power = 16 var/emergency_issued = 0 @@ -142,29 +153,71 @@ /obj/machinery/power/supermatter/proc/explode() + + set waitfor = 0 + message_admins("Supermatter exploded at ([x],[y],[z] - JMP)",0,1) log_game("SUPERMATTER([x],[y],[z]) Exploded. Power:[power], Oxygen:[oxygen], Damage:[damage], Integrity:[get_integrity()]") anchored = 1 grav_pulling = 1 exploded = 1 - var/turf/TS = get_turf(src) // The turf supermatter is on. SM being in a locker, mecha, or other container shouldn't block it's effects that way. - if(!TS) + sleep(pull_time) + var/turf/TS = get_turf(src) // The turf supermatter is on. SM being in a locker, exosuit, or other container shouldn't block it's effects that way. + if(!istype(TS)) return - for(var/z in GetConnectedZlevels(TS.z)) + + var/list/affected_z = GetConnectedZlevels(TS.z) + + // Effect 1: Radiation, weakening to all mobs on Z level + for(var/z in affected_z) SSradiation.z_radiate(locate(1, 1, z), DETONATION_RADS, 1) + for(var/mob/living/mob in living_mob_list) - var/turf/T = get_turf(mob) - if(T && (loc.z == T.z)) - if(istype(mob, /mob/living/carbon/human)) - //Hilariously enough, running into a closet should make you get hit the hardest. - var/mob/living/carbon/human/H = mob - H.hallucination += max(50, min(300, DETONATION_HALLUCINATION * sqrt(1 / (get_dist(mob, src) + 1)) ) ) - spawn(pull_time) - explosion(get_turf(src), explosion_power, explosion_power * 2, explosion_power * 3, explosion_power * 4, 1) - spawn(5) //to allow the explosion to finish - new /obj/item/broken_sm(TS) + var/turf/TM = get_turf(mob) + if(!TM) + continue + if(!(TM.z in affected_z)) + continue + + mob.Weaken(DETONATION_MOB_CONCUSSION) + to_chat(mob, "An invisible force slams you against the ground!") + + // Effect 2: Z-level wide electrical pulse + for(var/obj/machinery/power/apc/A in machines) + if(!(A.z in affected_z)) + continue + + // Overloads lights + if(prob(DETONATION_APC_OVERLOAD_PROB)) + A.overload_lighting() + // Causes the APCs to go into system failure mode. + var/random_change = rand(100 - DETONATION_SHUTDOWN_RNG_FACTOR, 100 + DETONATION_SHUTDOWN_RNG_FACTOR) / 100 + if(A.is_critical) + A.energy_fail(round(DETONATION_SHUTDOWN_CRITAPC * random_change)) + else + A.energy_fail(round(DETONATION_SHUTDOWN_APC * random_change)) + + // Effect 3: Break solar arrays + for(var/obj/machinery/power/solar/S in machines) + if(!(S.z in affected_z)) + continue + if(prob(DETONATION_SOLAR_BREAK_CHANCE)) + S.health = -1 + S.broken() + + // Effect 4: Medium scale explosion + spawn(0) + var/explosion_power = min_explosion_power + if(power > 0) + // 0-100% where 0% is at DETONATION_EXPLODE_MIN_POWER or lower and 100% is at DETONATION_EXPLODE_MAX_POWER or higher + var/strength_percentage = between(0, (power - DETONATION_EXPLODE_MIN_POWER) / ((DETONATION_EXPLODE_MAX_POWER - DETONATION_EXPLODE_MIN_POWER) / 100), 100) + explosion_power = between(min_explosion_power, (((max_explosion_power - min_explosion_power) * (strength_percentage / 100)) + min_explosion_power), max_explosion_power) + + explosion(TS, explosion_power/2, explosion_power, max_explosion_power, explosion_power * 4, 1) qdel(src) - return + // Allow the explosion to finish + spawn(5) + new /obj/item/broken_sm(TS) //Changes color and luminosity of the light to these values if they were not already set /obj/machinery/power/supermatter/proc/shift_light(var/lum, var/clr) @@ -212,20 +265,6 @@ global_announcer.autosay(alert_msg, "Supermatter Monitor") public_alert = 0 - -/obj/machinery/power/supermatter/get_transit_zlevel() - //don't send it back to the station -- most of the time - if(prob(99)) - var/list/candidates = using_map.accessible_z_levels.Copy() - for(var/zlevel in using_map.station_levels) - candidates.Remove("[zlevel]") - candidates.Remove("[src.z]") - - if(candidates.len) - return text2num(pickweight(candidates)) - - return ..() - /obj/machinery/power/supermatter/process() var/turf/L = loc @@ -460,7 +499,8 @@ pull_radius = 5 pull_time = 45 - explosion_power = 3 + min_explosion_power = 3 + max_explosion_power = 6 /obj/machinery/power/supermatter/shard/announce_warning() //Shards don't get announcements return diff --git a/html/changelogs/atlantiscze-sm.yml b/html/changelogs/atlantiscze-sm.yml new file mode 100644 index 0000000000..d6d8ddbfcf --- /dev/null +++ b/html/changelogs/atlantiscze-sm.yml @@ -0,0 +1,6 @@ +author: atlantiscze + +delete-after: True + +changes: + - tweak: "Supermatter delamination effects have been tweaked. Delamination is considerably less laggy, and less directly destructive. Instead, it causes larger health hazard and secondary engineering problems such as power outage or partial damage of solar arrays." \ No newline at end of file From e02fc2550a0b3b144e77c33858d9f4c125b33584 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Fri, 8 May 2020 12:19:50 -0700 Subject: [PATCH 048/105] Rewrite airlock electronics --- code/game/machinery/doors/airlock_electronics.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 41e3297c2b..6376db129a 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -6,7 +6,11 @@ matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 50) +<<<<<<< HEAD req_one_access = list(access_engine, access_talon) // Access to unlock the device, ignored if emagged //VOREStation Edit - Add talon +======= + req_one_access = list(access_engine) // Access to unlock the device, ignored if emagged +>>>>>>> 62c6693... Merge pull request #7099 from VOREStation/aro-airlockelec var/list/apply_any_access = list(access_engine) // Can apply any access, not just their own var/secure = 0 //if set, then wires will be randomized and bolts will drop if the door is broken @@ -64,7 +68,11 @@ if (usr.stat || usr.restrained() || (!ishuman(usr) && !istype(usr,/mob/living/silicon))) return if (href_list["close"]) +<<<<<<< HEAD usr << browse(null, "window=airlock") +======= + usr << browse(null, "window=airlock_electronics") +>>>>>>> 62c6693... Merge pull request #7099 from VOREStation/aro-airlockelec return if (href_list["login"]) From f8fa0c09cf7428837a731d4475afe2788fdbb5f5 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 8 May 2020 15:53:32 -0400 Subject: [PATCH 049/105] Update airlock_electronics.dm --- code/game/machinery/doors/airlock_electronics.dm | 8 -------- 1 file changed, 8 deletions(-) diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 6376db129a..4393417e26 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -6,11 +6,7 @@ matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 50) -<<<<<<< HEAD req_one_access = list(access_engine, access_talon) // Access to unlock the device, ignored if emagged //VOREStation Edit - Add talon -======= - req_one_access = list(access_engine) // Access to unlock the device, ignored if emagged ->>>>>>> 62c6693... Merge pull request #7099 from VOREStation/aro-airlockelec var/list/apply_any_access = list(access_engine) // Can apply any access, not just their own var/secure = 0 //if set, then wires will be randomized and bolts will drop if the door is broken @@ -68,11 +64,7 @@ if (usr.stat || usr.restrained() || (!ishuman(usr) && !istype(usr,/mob/living/silicon))) return if (href_list["close"]) -<<<<<<< HEAD - usr << browse(null, "window=airlock") -======= usr << browse(null, "window=airlock_electronics") ->>>>>>> 62c6693... Merge pull request #7099 from VOREStation/aro-airlockelec return if (href_list["login"]) From a66eafb5cdaeefd81edc2afd4a59f8128418d79e Mon Sep 17 00:00:00 2001 From: Verkister Date: Fri, 8 May 2020 22:54:11 +0300 Subject: [PATCH 050/105] Another bunch of simplemob fixes -Fixes the issue with mob AI not getting properly disabled under player control. -Fixes mob eye overlays not respecting the mob's scaling setting. -Fixes the movement cooldown on logged in ridable mobs. -Fixes direwolf not getting belly icon when resting. -Makes the mob icon fullness check account for the mob's own size as well. --- code/controllers/subsystems/ai.dm | 2 ++ code/controllers/subsystems/aifast.dm | 2 ++ code/modules/ai/ai_holder_disabled.dm | 2 +- code/modules/mob/living/simple_mob/appearance.dm | 2 +- code/modules/mob/living/simple_mob/simple_mob_vr.dm | 3 ++- .../mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/horse.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/otie.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/panther.dm | 2 +- code/modules/mob/living/simple_mob/subtypes/vore/rat.dm | 4 ++-- code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm | 3 ++- 14 files changed, 19 insertions(+), 13 deletions(-) diff --git a/code/controllers/subsystems/ai.dm b/code/controllers/subsystems/ai.dm index 5ebbb22a2f..a1bd5b542d 100644 --- a/code/controllers/subsystems/ai.dm +++ b/code/controllers/subsystems/ai.dm @@ -26,6 +26,8 @@ SUBSYSTEM_DEF(ai) --currentrun.len if(!A || QDELETED(A) || A.busy) // Doesn't exist or won't exist soon or not doing it this tick continue + if(A.holder.client && !A.autopilot) + continue A.handle_strategicals() if(MC_TICK_CHECK) diff --git a/code/controllers/subsystems/aifast.dm b/code/controllers/subsystems/aifast.dm index f045a7fd35..ce8cc612dd 100644 --- a/code/controllers/subsystems/aifast.dm +++ b/code/controllers/subsystems/aifast.dm @@ -26,6 +26,8 @@ SUBSYSTEM_DEF(aifast) --currentrun.len if(!A || QDELETED(A) || A.busy) // Doesn't exist or won't exist soon or not doing it this tick continue + if(A.holder.client && !A.autopilot) + continue A.handle_tactics() if(MC_TICK_CHECK) diff --git a/code/modules/ai/ai_holder_disabled.dm b/code/modules/ai/ai_holder_disabled.dm index d68e2ecf5d..64a7cf3cc4 100644 --- a/code/modules/ai/ai_holder_disabled.dm +++ b/code/modules/ai/ai_holder_disabled.dm @@ -5,7 +5,7 @@ // If our holder is able to do anything. /datum/ai_holder/proc/can_act() - if(!holder) // Holder missing. + if(!holder || (holder.client && !autopilot)) // Holder missing or occupied. manage_processing(AI_NO_PROCESS) return FALSE if(holder.stat) // Dead or unconscious. diff --git a/code/modules/mob/living/simple_mob/appearance.dm b/code/modules/mob/living/simple_mob/appearance.dm index 05f758d7c4..14f09e9057 100644 --- a/code/modules/mob/living/simple_mob/appearance.dm +++ b/code/modules/mob/living/simple_mob/appearance.dm @@ -65,7 +65,7 @@ if(!eye_layer) eye_layer = image(icon, "[icon_state]-eyes") eye_layer.plane = PLANE_LIGHTING_ABOVE - + eye_layer.appearance_flags = appearance_flags //VOREStation Edit. Make eye overlays respect the mob's scaling settings. add_overlay(eye_layer) /mob/living/simple_mob/proc/remove_eyes() diff --git a/code/modules/mob/living/simple_mob/simple_mob_vr.dm b/code/modules/mob/living/simple_mob/simple_mob_vr.dm index 257aaff7f2..86380b5b26 100644 --- a/code/modules/mob/living/simple_mob/simple_mob_vr.dm +++ b/code/modules/mob/living/simple_mob/simple_mob_vr.dm @@ -66,6 +66,7 @@ var/obj/belly/B = belly for(var/mob/living/M in B) new_fullness += M.size_multiplier + new_fullness = new_fullness / size_multiplier //Divided by pred's size so a macro mob won't get macro belly from a regular prey. new_fullness = round(new_fullness, 1) // Because intervals of 0.25 are going to make sprite artists cry. vore_fullness = min(vore_capacity, new_fullness) @@ -430,4 +431,4 @@ var/armor_soak = get_armor_soak(T, "melee") T.apply_damage(20, HALLOSS,, armor_block, armor_soak) if(prob(33)) - T.apply_effect(3, WEAKEN, armor_block) \ No newline at end of file + T.apply_effect(3, WEAKEN, armor_block) diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm b/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm index 7d32b7b350..6a52dd69b4 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/corrupt_hounds.dm @@ -113,7 +113,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/aggressive/corrupthound/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm b/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm index 46be5ed4bc..5b96ab7ee8 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/deathclaw.dm @@ -56,7 +56,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/aggressive/deathclaw/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm b/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm index e6b33604b9..323e0d9c9b 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/dragon.dm @@ -80,7 +80,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/aggressive/dragon/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm b/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm index 42ee04c417..b58ebca5ae 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/hippo.dm @@ -72,7 +72,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/hippo/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm b/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm index b373dacfd7..8c9f08a471 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/horse.dm @@ -46,7 +46,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/horse/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm index 97313f4db1..cf75159b27 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/otie.dm @@ -285,7 +285,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/otie/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm b/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm index e0e952d001..23c6c4b1d3 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/panther.dm @@ -51,7 +51,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/aggressive/panther/MouseDrop_T(mob/living/M, mob/living/user) return diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm index 1c5443f6f5..11c19794f7 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/rat.dm @@ -197,7 +197,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 3 /mob/living/simple_mob/vore/aggressive/rat/MouseDrop_T(mob/living/M, mob/living/user) return @@ -236,4 +236,4 @@ say_got_target = list("SQUEEK!") /datum/ai_holder/simple_mob/melee/rat - speak_chance = 3 + speak_chance = 2 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm index a8bc70ac0c..65c64bb9f3 100644 --- a/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm +++ b/code/modules/mob/living/simple_mob/subtypes/vore/wolf.dm @@ -91,6 +91,7 @@ can_buckle = TRUE buckle_movable = TRUE buckle_lying = FALSE + vore_icons = SA_ICON_LIVING | SA_ICON_REST /mob/living/simple_mob/animal/wolf/direwolf/Login() . = ..() @@ -98,7 +99,7 @@ riding_datum = new /datum/riding/simple_mob(src) verbs |= /mob/living/simple_mob/proc/animal_mount verbs |= /mob/living/proc/toggle_rider_reins - movement_cooldown = 0 + movement_cooldown = 2 /mob/living/simple_mob/animal/wolf/direwolf/MouseDrop_T(mob/living/M, mob/living/user) return From 0ff0f19d0abaddd01faff9df79cbfb02c05969e9 Mon Sep 17 00:00:00 2001 From: Verkister Date: Fri, 8 May 2020 23:47:30 +0300 Subject: [PATCH 051/105] better ways to do things --- code/controllers/subsystems/ai.dm | 2 -- code/controllers/subsystems/aifast.dm | 2 -- code/modules/ai/ai_holder.dm | 20 ++++++++++++++++++-- code/modules/ai/ai_holder_disabled.dm | 2 +- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/code/controllers/subsystems/ai.dm b/code/controllers/subsystems/ai.dm index a1bd5b542d..5ebbb22a2f 100644 --- a/code/controllers/subsystems/ai.dm +++ b/code/controllers/subsystems/ai.dm @@ -26,8 +26,6 @@ SUBSYSTEM_DEF(ai) --currentrun.len if(!A || QDELETED(A) || A.busy) // Doesn't exist or won't exist soon or not doing it this tick continue - if(A.holder.client && !A.autopilot) - continue A.handle_strategicals() if(MC_TICK_CHECK) diff --git a/code/controllers/subsystems/aifast.dm b/code/controllers/subsystems/aifast.dm index ce8cc612dd..f045a7fd35 100644 --- a/code/controllers/subsystems/aifast.dm +++ b/code/controllers/subsystems/aifast.dm @@ -26,8 +26,6 @@ SUBSYSTEM_DEF(aifast) --currentrun.len if(!A || QDELETED(A) || A.busy) // Doesn't exist or won't exist soon or not doing it this tick continue - if(A.holder.client && !A.autopilot) - continue A.handle_tactics() if(MC_TICK_CHECK) diff --git a/code/modules/ai/ai_holder.dm b/code/modules/ai/ai_holder.dm index d4686e1537..3cabb3ffde 100644 --- a/code/modules/ai/ai_holder.dm +++ b/code/modules/ai/ai_holder.dm @@ -27,6 +27,16 @@ QDEL_NULL(ai_holder) return ..() +/mob/living/Login() + if(!stat && ai_holder) + ai_holder.manage_processing(AI_NO_PROCESS) + return ..() + +/mob/living/Logout() + if(!stat && !key && ai_holder) + ai_holder.manage_processing(AI_PROCESSING) + return ..() + /datum/ai_holder var/mob/living/holder = null // The mob this datum is going to control. var/stance = STANCE_IDLE // Determines if the mob should be doing a specific thing, e.g. attacking, following, standing around, etc. @@ -145,11 +155,15 @@ // 'Tactical' processes such as moving a step, meleeing an enemy, firing a projectile, and other fairly cheap actions that need to happen quickly. /datum/ai_holder/proc/handle_tactics() + if(holder.key && !autopilot) + return handle_special_tactic() handle_stance_tactical() // 'Strategical' processes that are more expensive on the CPU and so don't get run as often as the above proc, such as A* pathfinding or robust targeting. /datum/ai_holder/proc/handle_strategicals() + if(holder.key && !autopilot) + return handle_special_strategical() handle_stance_strategical() @@ -160,6 +174,8 @@ // For setting the stance WITHOUT processing it /datum/ai_holder/proc/set_stance(var/new_stance) + if(holder.key && !autopilot) + return if(stance == new_stance) ai_log("set_stance() : Ignoring change stance to same stance request.", AI_LOG_INFO) return @@ -277,11 +293,11 @@ if(STANCE_IDLE) if(speak_chance) // In the long loop since otherwise it wont shut up. handle_idle_speaking() - + if(hostile) ai_log("handle_stance_strategical() : STANCE_IDLE, going to find_target().", AI_LOG_TRACE) find_target() - + if(should_go_home()) ai_log("handle_stance_tactical() : STANCE_IDLE, going to go home.", AI_LOG_TRACE) go_home() diff --git a/code/modules/ai/ai_holder_disabled.dm b/code/modules/ai/ai_holder_disabled.dm index 64a7cf3cc4..d68e2ecf5d 100644 --- a/code/modules/ai/ai_holder_disabled.dm +++ b/code/modules/ai/ai_holder_disabled.dm @@ -5,7 +5,7 @@ // If our holder is able to do anything. /datum/ai_holder/proc/can_act() - if(!holder || (holder.client && !autopilot)) // Holder missing or occupied. + if(!holder) // Holder missing. manage_processing(AI_NO_PROCESS) return FALSE if(holder.stat) // Dead or unconscious. From ea8a068025fdb3c6d6d2b8d3cd2b5e982ec2c57e Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 8 May 2020 17:57:56 -0400 Subject: [PATCH 052/105] Add department playtime requirement config, code --- code/controllers/configuration_vr.dm | 3 +++ code/controllers/subsystems/persist_vr.dm | 24 +++++++++++++------ code/game/jobs/job/captain_vr.dm | 2 ++ code/game/jobs/job/civilian_vr.dm | 1 + code/game/jobs/job/engineering_vr.dm | 1 + code/game/jobs/job/exploration_vr.dm | 1 + code/game/jobs/job/job_vr.dm | 11 +++++++++ code/game/jobs/job/medical_vr.dm | 1 + code/game/jobs/job/science_vr.dm | 1 + code/game/jobs/job/security_vr.dm | 2 ++ code/game/jobs/job_controller.dm | 23 +++++++++++++++++- code/game/machinery/computer/timeclock_vr.dm | 1 + code/modules/client/client defines.dm | 1 + code/modules/client/client procs.dm | 6 +++-- .../preference_setup/occupation/occupation.dm | 6 +++++ code/modules/mob/new_player/new_player.dm | 7 ++++-- config/example/config.txt | 5 +++- 17 files changed, 83 insertions(+), 13 deletions(-) diff --git a/code/controllers/configuration_vr.dm b/code/controllers/configuration_vr.dm index ad839a5730..a91c04e517 100644 --- a/code/controllers/configuration_vr.dm +++ b/code/controllers/configuration_vr.dm @@ -11,6 +11,7 @@ var/static/pto_cap = 100 //Hours var/static/require_flavor = FALSE var/static/ipqualityscore_apikey //API key for ipqualityscore.com + var/static/use_playtime_restriction_for_jobs = FALSE /hook/startup/proc/read_vs_config() var/list/Lines = file2list("config/config.txt") @@ -61,4 +62,6 @@ config.require_flavor = TRUE if ("ipqualityscore_apikey") config.ipqualityscore_apikey = value + if ("use_playtime_restriction_for_jobs") + config.use_playtime_restriction_for_jobs = TRUE return 1 diff --git a/code/controllers/subsystems/persist_vr.dm b/code/controllers/subsystems/persist_vr.dm index 41811a2a6a..ca0feb37f6 100644 --- a/code/controllers/subsystems/persist_vr.dm +++ b/code/controllers/subsystems/persist_vr.dm @@ -47,23 +47,33 @@ SUBSYSTEM_DEF(persist) // Update client whatever var/client/C = M.client - var/wait_in_hours = (wait / (1 HOUR)) * J.timeoff_factor + var/wait_in_hours = wait / (1 HOUR) + var/pto_factored = wait_in_hours * J.timeoff_factor LAZYINITLIST(C.department_hours) + LAZYINITLIST(C.play_hours) var/dept_hours = C.department_hours - if(isnum(C.department_hours[department_earning])) - dept_hours[department_earning] += wait_in_hours + var/play_hours = C.play_hours + if(isnum(dept_hours[department_earning])) + dept_hours[department_earning] += pto_factored else - dept_hours[department_earning] = wait_in_hours + dept_hours[department_earning] = pto_factored - //Cap it + // If they're earning PTO they must be in a useful job so are earning playtime in that department + if(J.timeoff_factor > 0) + if(isnum(play_hours[department_earning])) + play_hours[department_earning] += wait_in_hours + else + play_hours[department_earning] = wait_in_hours + + // Cap it dept_hours[department_earning] = min(config.pto_cap, dept_hours[department_earning]) - // Okay we figured it out, lets update database! var/sql_ckey = sql_sanitize_text(C.ckey) var/sql_dpt = sql_sanitize_text(department_earning) var/sql_bal = text2num("[C.department_hours[department_earning]]") - var/DBQuery/query = dbcon.NewQuery("INSERT INTO vr_player_hours (ckey, department, hours) VALUES ('[sql_ckey]', '[sql_dpt]', [sql_bal]) ON DUPLICATE KEY UPDATE hours = VALUES(hours)") + var/sql_total = text2num("[C.play_hours[department_earning]]") + var/DBQuery/query = dbcon.NewQuery("INSERT INTO vr_player_hours (ckey, department, hours, total_hours) VALUES ('[sql_ckey]', '[sql_dpt]', [sql_bal], [sql_total]) ON DUPLICATE KEY UPDATE hours = VALUES(hours), total_hours = VALUES(total_hours)") query.Execute() if (MC_TICK_CHECK) diff --git a/code/game/jobs/job/captain_vr.dm b/code/game/jobs/job/captain_vr.dm index f08a1b4079..746d92cf86 100644 --- a/code/game/jobs/job/captain_vr.dm +++ b/code/game/jobs/job/captain_vr.dm @@ -1,12 +1,14 @@ /datum/job/captain disallow_jobhop = TRUE pto_type = PTO_CIVILIAN + //dept_time_required = 60 //Pending something more complicated /datum/job/hop disallow_jobhop = TRUE pto_type = PTO_CIVILIAN departments = list(DEPARTMENT_COMMAND, DEPARTMENT_CIVILIAN) departments_managed = list(DEPARTMENT_CIVILIAN, DEPARTMENT_CARGO, DEPARTMENT_PLANET) + dept_time_required = 60 alt_titles = list("Crew Resources Officer" = /datum/alt_title/cro, "Deputy Director" = /datum/alt_title/deputy_director) diff --git a/code/game/jobs/job/civilian_vr.dm b/code/game/jobs/job/civilian_vr.dm index 2844108187..433935e55b 100644 --- a/code/game/jobs/job/civilian_vr.dm +++ b/code/game/jobs/job/civilian_vr.dm @@ -12,6 +12,7 @@ /datum/job/qm pto_type = PTO_CARGO + dept_time_required = 20 /datum/job/cargo_tech total_positions = 3 diff --git a/code/game/jobs/job/engineering_vr.dm b/code/game/jobs/job/engineering_vr.dm index 10337d9881..0ed001bd28 100644 --- a/code/game/jobs/job/engineering_vr.dm +++ b/code/game/jobs/job/engineering_vr.dm @@ -1,6 +1,7 @@ /datum/job/chief_engineer disallow_jobhop = TRUE pto_type = PTO_ENGINEERING + dept_time_required = 60 /datum/job/engineer pto_type = PTO_ENGINEERING diff --git a/code/game/jobs/job/exploration_vr.dm b/code/game/jobs/job/exploration_vr.dm index 987041de61..d555c531a2 100644 --- a/code/game/jobs/job/exploration_vr.dm +++ b/code/game/jobs/job/exploration_vr.dm @@ -44,6 +44,7 @@ var/const/SAR =(1<<14) economic_modifier = 8 minimal_player_age = 7 pto_type = PTO_EXPLORATION + dept_time_required = 20 access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot, access_explorer, access_gateway) minimal_access = list(access_eva, access_maint_tunnels, access_external_airlocks, access_pilot, access_explorer, access_gateway) diff --git a/code/game/jobs/job/job_vr.dm b/code/game/jobs/job/job_vr.dm index ce982aaab9..05874df0d1 100644 --- a/code/game/jobs/job/job_vr.dm +++ b/code/game/jobs/job/job_vr.dm @@ -14,6 +14,17 @@ //Disallow joining as this job midround from off-duty position via going on-duty var/disallow_jobhop = FALSE + //Time required in the department as other jobs before playing this one (in hours) + var/dept_time_required = 0 + // Check client-specific availability rules. /datum/job/proc/player_has_enough_pto(client/C) return timeoff_factor >= 0 || (C && LAZYACCESS(C.department_hours, pto_type) > 0) + +/datum/job/proc/player_has_enough_playtime(client/C) + return (available_in_playhours(C) == 0) + +/datum/job/proc/available_in_playhours(client/C) + if(C && config.use_playtime_restriction_for_jobs && isnum(C.play_hours[pto_type]) && dept_time_required > 0) + return max(0, dept_time_required - C.play_hours[pto_type]) + return 0 \ No newline at end of file diff --git a/code/game/jobs/job/medical_vr.dm b/code/game/jobs/job/medical_vr.dm index 306fe9acaa..1a29d1ec9d 100644 --- a/code/game/jobs/job/medical_vr.dm +++ b/code/game/jobs/job/medical_vr.dm @@ -1,6 +1,7 @@ /datum/job/cmo disallow_jobhop = TRUE pto_type = PTO_MEDICAL + dept_time_required = 60 /datum/job/doctor spawn_positions = 5 diff --git a/code/game/jobs/job/science_vr.dm b/code/game/jobs/job/science_vr.dm index 367eb5dd8a..679fbcbc83 100644 --- a/code/game/jobs/job/science_vr.dm +++ b/code/game/jobs/job/science_vr.dm @@ -1,6 +1,7 @@ /datum/job/rd disallow_jobhop = TRUE pto_type = PTO_SCIENCE + dept_time_required = 60 access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, access_tox_storage, access_teleporter, access_sec_doors, diff --git a/code/game/jobs/job/security_vr.dm b/code/game/jobs/job/security_vr.dm index 9e55d807b0..24b4a33325 100644 --- a/code/game/jobs/job/security_vr.dm +++ b/code/game/jobs/job/security_vr.dm @@ -1,6 +1,7 @@ /datum/job/hos disallow_jobhop = TRUE pto_type = PTO_SECURITY + dept_time_required = 60 access = list(access_security, access_eva, access_sec_doors, access_brig, access_armory, access_forensics_lockers, access_morgue, access_maint_tunnels, access_all_personal_lockers, @@ -13,6 +14,7 @@ /datum/job/warden pto_type = PTO_SECURITY + dept_time_required = 20 /datum/job/detective pto_type = PTO_SECURITY diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 600abd899c..2470fdc114 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -60,8 +60,12 @@ var/global/datum/controller/occupations/job_master return 0 if(!job.player_old_enough(player.client)) return 0 - if(!is_job_whitelisted(player, rank)) //VOREStation Code + //VOREStation Add + if(!job.player_has_enough_playtime(player.client)) return 0 + if(!is_job_whitelisted(player, rank)) + return 0 + //VOREStation Add End var/position_limit = job.total_positions if(!latejoin) @@ -97,6 +101,9 @@ var/global/datum/controller/occupations/job_master Debug("FOC character not old enough, Player: [player]") continue //VOREStation Code Start + if(!job.player_has_enough_playtime(player.client)) + Debug("FOC character not enough playtime, Player: [player]") + continue if(!is_job_whitelisted(player, job.title)) Debug("FOC is_job_whitelisted failed, Player: [player]") continue @@ -133,6 +140,9 @@ var/global/datum/controller/occupations/job_master continue //VOREStation Code Start + if(!job.player_has_enough_playtime(player.client)) + Debug("GRJ player not enough playtime, Player: [player]") + continue if(!is_job_whitelisted(player, job.title)) Debug("GRJ player not whitelisted for this job, Player: [player], Job: [job.title]") continue @@ -283,6 +293,12 @@ var/global/datum/controller/occupations/job_master Debug("DO player not old enough, Player: [player], Job:[job.title]") continue + //VOREStation Add + if(!job.player_has_enough_playtime(player.client)) + Debug("DO player not enough playtime, Player: [player]") + continue + //VOREStation Add End + // If the player wants that job on this level, then try give it to him. if(player.client.prefs.GetJobDepartment(job, level) & job.flag) @@ -610,6 +626,11 @@ var/global/datum/controller/occupations/job_master if(!job.player_old_enough(player.client)) level6++ continue + //VOREStation Add + if(!job.player_has_enough_playtime(player.client)) + level6++ + continue + //VOREStation Add End if(player.client.prefs.GetJobDepartment(job, 1) & job.flag) level1++ else if(player.client.prefs.GetJobDepartment(job, 2) & job.flag) diff --git a/code/game/machinery/computer/timeclock_vr.dm b/code/game/machinery/computer/timeclock_vr.dm index 42e78683ec..85924d79f6 100644 --- a/code/game/machinery/computer/timeclock_vr.dm +++ b/code/game/machinery/computer/timeclock_vr.dm @@ -154,6 +154,7 @@ && !job.whitelist_only \ && !jobban_isbanned(user,job.title) \ && job.player_old_enough(user.client) \ + && job.player_has_enough_playtime(user.client) \ && job.pto_type == department \ && !job.disallow_jobhop \ && job.timeoff_factor > 0 diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm index 99d975c454..0a0810a54a 100644 --- a/code/modules/client/client defines.dm +++ b/code/modules/client/client defines.dm @@ -54,6 +54,7 @@ var/account_join_date = "(Requires database)" var/account_age = "(Requires database)" var/list/department_hours // VOREStation Edit - Track hours of leave accured for each department. + var/list/play_hours // VOREStation Edit - Tracks total playtime hours for each departments. preload_rsc = PRELOAD_RSC diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index f8ab8ec8e9..dd36a877e2 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -324,11 +324,13 @@ // VOREStation Edit Start - Department Hours if(config.time_off) - var/DBQuery/query_hours = dbcon.NewQuery("SELECT department, hours FROM vr_player_hours WHERE ckey = '[sql_ckey]'") + var/DBQuery/query_hours = dbcon.NewQuery("SELECT department, hours, total_hours FROM vr_player_hours WHERE ckey = '[sql_ckey]'") query_hours.Execute() + LAZYINITLIST(department_hours) + LAZYINITLIST(play_hours) while(query_hours.NextRow()) - LAZYINITLIST(department_hours) department_hours[query_hours.item[1]] = text2num(query_hours.item[2]) + play_hours[query_hours.item[1]] = text2num(query_hours.item[3]) // VOREStation Edit End - Department Hours if(sql_id) diff --git a/code/modules/client/preference_setup/occupation/occupation.dm b/code/modules/client/preference_setup/occupation/occupation.dm index 9ab76b9f4e..42794aa8bf 100644 --- a/code/modules/client/preference_setup/occupation/occupation.dm +++ b/code/modules/client/preference_setup/occupation/occupation.dm @@ -143,6 +143,12 @@ var/available_in_days = job.available_in_days(user.client) . += "[rank] \[IN [(available_in_days)] DAYS]" continue + //VOREStation Add + if(!job.player_has_enough_playtime(user.client)) + var/available_in_hours = job.available_in_playhours(user.client) + . += "[rank] \[IN [(available_in_hours)] DEPTHOURS]" + continue + //VOREStation Add End if(job.minimum_character_age && user.client && (user.client.prefs.age < job.minimum_character_age)) . += "[rank] \[MINIMUM CHARACTER AGE: [job.minimum_character_age]]" continue diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 1f0d451ee1..7daef70b53 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -348,8 +348,11 @@ if(!job.is_position_available()) return 0 if(jobban_isbanned(src,rank)) return 0 if(!job.player_old_enough(src.client)) return 0 - if(!is_job_whitelisted(src,rank)) return 0 //VOREStation Code - if(!job.player_has_enough_pto(src.client)) return 0 //VOREStation Code + //VOREStation Add + if(!job.player_has_enough_playtime(src.client)) return 0 + if(!is_job_whitelisted(src,rank)) return 0 + if(!job.player_has_enough_pto(src.client)) return 0 + //VOREStation Add End return 1 diff --git a/config/example/config.txt b/config/example/config.txt index cf7be2756f..ff0340bcea 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -531,4 +531,7 @@ SQLITE_FEEDBACK_MIN_AGE 7 #DISABLE_CID_WARN_POPUP ## Comment this out if you don't want to use the 'nightshift lighting' subsystem to adjust lights based on ingame time -ENABLE_NIGHT_SHIFTS \ No newline at end of file +ENABLE_NIGHT_SHIFTS + +## Comment this out to enable playtime restrictions for jobs in their respective departments (mostly for heads) +# USE_PLAYTIME_RESTRICTION_FOR_JOBS \ No newline at end of file From b9262c72f105d40db99bbd661849d853d3c552e1 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Fri, 8 May 2020 18:46:54 -0400 Subject: [PATCH 053/105] Make buildmode AI control reset home turfs when move orders given --- code/modules/admin/verbs/buildmode.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm index 6a0d8ba266..7f9e02b769 100644 --- a/code/modules/admin/verbs/buildmode.dm +++ b/code/modules/admin/verbs/buildmode.dm @@ -161,6 +161,7 @@ Right Mouse Button on enemy mob = Command selected mobs to attack mob
\ Right Mouse Button on allied mob = Command selected mobs to follow mob
\ Right Mouse Button + shift on any mob = Command selected mobs to follow mob regardless of faction
\ + Note: The following also reset the mob's home position:
\ Right Mouse Button on tile = Command selected mobs to move to tile (will cancel if enemies are seen)
\ Right Mouse Button + shift on tile = Command selected mobs to reposition to tile (will not be inturrupted by enemies)
\ Right Mouse Button + alt on obj/turfs = Command selected mobs to attack obj/turf
\ @@ -569,6 +570,7 @@ var/told = 0 for(var/mob/living/unit in holder.selected_mobs) var/datum/ai_holder/AI = unit.ai_holder + AI.home_turf = T if(unit.get_AI_stance() == STANCE_SLEEP) unit.forceMove(T) forced++ From 0959e5b18538ecadf7fa993139d6eb983b9dff24 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 9 May 2020 01:25:55 -0700 Subject: [PATCH 054/105] Fixes #6887 (#7112) --- maps/southern_cross/southern_cross-1.dmm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm index da2ec6cd40..cb8e5deb27 100644 --- a/maps/southern_cross/southern_cross-1.dmm +++ b/maps/southern_cross/southern_cross-1.dmm @@ -8865,6 +8865,7 @@ "doy" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/machinery/newscaster{pixel_y = -30},/turf/simulated/floor/wood,/area/library) "doz" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/turf/simulated/floor/carpet,/area/library) "doA" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/carpet,/area/library) +"doB" = (/obj/effect/shuttle_landmark{landmark_tag = "response_ship_thirddeck"; name = "SC Near Deck 3 NE"},/turf/space,/area/shuttle/response_ship/thirddeck) "doC" = (/obj/item/weapon/circuitboard/firealarm,/turf/simulated/floor/tiled/freezer,/area/construction/seconddeck/construction2) "doD" = (/obj/item/frame/light,/turf/simulated/floor/tiled/freezer,/area/construction/seconddeck/construction2) "doE" = (/turf/simulated/floor/tiled/freezer,/area/construction/seconddeck/construction2) @@ -11629,7 +11630,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaaaaaafaaaaaaaaaaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaadaaaaaaaaaaaaaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadAVaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadAVbjTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadAVdAVdAVdAVdAVaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaafbfGaaaaaaaaaaaaaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaagaaaaaaaaaaaaaaaaaadAWdAWdAWdAWdAWdAWdAWdAWdAWdAWdAWaaaaaaaaaaaaaaaaaaaaaaaadAVaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadAVdAVdAVdAVdAVaafdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaadaaaaaaaadaaaaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaadaaaaaaaaaaaaaaaaaadAWdAWdAWdAWdAWdAWdAWdAWdAWdAWdAWdAWaaaaaaaaaaaaaaaaaadAXdAXdAXaafaafaafaaaaaaaaaaafaafaafdAXdAXdAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafdAVdAVdAVdAVdAVaafdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaafaadaafabcaadaafaafaafdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaafaafaafaadaaaaaaaaaaaaaaaaaadAWdAWdAWdAWdAWdAWdAWdAWdAYdAWdAWdAWaaaaaaaaaaaaaaaaaadAVdAVdAVaaaaaaaafaaaaaaaaaaafaaaaaadAVdAVdAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafaafdAVdAVdAVdAVdAVaafdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaafaadaafabcaadaafaafaafdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaafaafaafaadaaaaaaaaaaaaaaaaaadAWdAWdAWdAWdAWdAWdAWdAWdAYdAWdoBdAWaaaaaaaaaaaaaaaaaadAVdAVdAVaaaaaaaafaaaaaaaaaaafaaaaaadAVdAVdAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadAVdAVdAVdAVdAVaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaafaaaaaaaaaaaaaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAZdAZdAZdAZdAZdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaadaaaaaaaaaaaaaaaaaadAWdAWdAWdAWdAWdAWdAWdAWdAWdAWdAWdAWaaaaaaaaaaaaaaaaaadAXdAXdAXaafaafaafaaaaaaaaaaafaafaafdAXdAXdAXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaaaaaaafaaaaafaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaafaaaaaaaabaaaaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAZdAZdAZdAZdAZdBadBadBadAZdAZdAZdAZdAZdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadAWdAWdAWdAWdAWdAWdAWdAWdAWdAWdAWaaaaaaaaaaaaaaaaaaaaaaaadAVaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaaaadAVdAVdAVdAVdAVaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaafaaaaaaaaaaaaaaaaaaaaadAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAZdBadBadBadAVdAVdAVdAVdAVdBadBadBadAZdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVdAVaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadAVaaaaaaaaaaafaaaaaaaaaaafaaaaaaaaadAVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From fc1b78d7f0cb8027f3b64c5d8df60d86d1a18650 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 9 May 2020 01:25:35 -0700 Subject: [PATCH 056/105] Fixes #7017 (#7111) --- code/game/machinery/computer/shutoff_monitor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/computer/shutoff_monitor.dm b/code/game/machinery/computer/shutoff_monitor.dm index e2413c5e21..89cd4127db 100644 --- a/code/game/machinery/computer/shutoff_monitor.dm +++ b/code/game/machinery/computer/shutoff_monitor.dm @@ -2,7 +2,7 @@ name = "automated shutoff valve monitor" desc = "Console used to remotely monitor shutoff valves on the station." icon_keyboard = "power_key" - icon_screen = "power:0" + icon_screen = "power_monitor" light_color = "#a97faa" circuit = /obj/item/weapon/circuitboard/shutoff_monitor var/datum/nano_module/shutoff_monitor/monitor From 40c698c79a0d118aa3eceb5e2132d835a8f930bf Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 9 May 2020 01:25:11 -0700 Subject: [PATCH 058/105] Fixes #7079 (#7108) --- .../wilderness/DecoupledEngine.dmm | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/maps/submaps/surface_submaps/wilderness/DecoupledEngine.dmm b/maps/submaps/surface_submaps/wilderness/DecoupledEngine.dmm index 840f2055c4..15a2bf604f 100644 --- a/maps/submaps/surface_submaps/wilderness/DecoupledEngine.dmm +++ b/maps/submaps/surface_submaps/wilderness/DecoupledEngine.dmm @@ -9,7 +9,6 @@ "ai" = (/obj/item/stack/material/steel,/turf/template_noop,/area/submap/DecoupledEngine) "aj" = (/turf/simulated/floor/outdoors/rocks,/area/submap/DecoupledEngine) "ak" = (/obj/structure/lattice,/obj/structure/girder/displaced,/turf/simulated/floor/outdoors/rocks,/area/submap/DecoupledEngine) -"al" = (/obj/item/projectile/bullet/magnetic/fuelrod,/turf/template_noop,/area/submap/DecoupledEngine) "am" = (/obj/item/weapon/arrow/rod,/turf/template_noop,/area/submap/DecoupledEngine) "an" = (/turf/simulated/floor/water,/area/submap/DecoupledEngine) "ao" = (/obj/structure/lattice,/turf/simulated/floor/outdoors/rocks,/area/submap/DecoupledEngine) @@ -23,10 +22,9 @@ "aw" = (/obj/structure/girder,/obj/item/stack/material/steel,/turf/simulated/floor,/area/submap/DecoupledEngine) "ax" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/simulated/floor/outdoors/rocks,/area/submap/DecoupledEngine) "ay" = (/obj/effect/floor_decal/rust,/obj/item/stack/material/steel,/turf/simulated/floor,/area/submap/DecoupledEngine) -"az" = (/obj/machinery/atmospherics/pipe/simple/visible{ icon_state = "intact"; dir = 6},/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) +"az" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) "aA" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) "aB" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/effect/floor_decal/rust,/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor,/area/submap/DecoupledEngine) -"aC" = (/obj/structure/shuttle/engine/propulsion{ icon_state = "propulsion_r"; dir = 4},/turf/simulated/floor/water,/area/submap/DecoupledEngine) "aD" = (/obj/structure/lattice,/obj/structure/grille,/turf/template_noop,/area/submap/DecoupledEngine) "aE" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/template_noop,/area/submap/DecoupledEngine) "aF" = (/obj/structure/sign/warning/radioactive{dir = 8},/turf/simulated/wall/durasteel,/area/submap/DecoupledEngine) @@ -35,7 +33,7 @@ "aI" = (/obj/effect/decal/cleanable/blood/oil/streak{amount = 0},/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) "aJ" = (/obj/machinery/power/rad_collector,/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor,/area/submap/DecoupledEngine) "aK" = (/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor,/area/submap/DecoupledEngine) -"aL" = (/obj/structure/grille/broken,/obj/structure/window/phoronreinforced{ icon_state = "phoronrwindow"; dir = 4},/obj/item/weapon/material/shard/phoron,/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) +"aL" = (/obj/structure/grille/broken,/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 4},/obj/item/weapon/material/shard/phoron,/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) "aM" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) "aN" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 4},/obj/effect/floor_decal/rust,/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor,/area/submap/DecoupledEngine) "aO" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/turf/simulated/floor/water,/area/submap/DecoupledEngine) @@ -45,8 +43,8 @@ "aS" = (/obj/structure/closet/crate/oldreactor{anchored = 1},/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) "aT" = (/obj/item/poi/brokenoldreactor{anchored = 1},/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor,/area/submap/DecoupledEngine) "aU" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) -"aV" = (/obj/structure/grille,/obj/structure/window/phoronreinforced{ icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced{ icon_state = "phoronrwindow"; dir = 8},/turf/simulated/floor,/area/submap/DecoupledEngine) -"aW" = (/obj/machinery/atmospherics/pipe/simple/visible{ icon_state = "intact"; dir = 5},/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) +"aV" = (/obj/structure/grille,/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/turf/simulated/floor,/area/submap/DecoupledEngine) +"aW" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 5},/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) "aX" = (/obj/structure/shuttle/engine/router,/turf/simulated/floor,/area/submap/DecoupledEngine) "aY" = (/obj/structure/shuttle/engine/propulsion{dir = 4},/turf/simulated/floor/water,/area/submap/DecoupledEngine) "aZ" = (/obj/item/stack/material/steel,/turf/simulated/floor/outdoors/rocks,/area/submap/DecoupledEngine) @@ -54,22 +52,22 @@ "bb" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/window/reinforced{dir = 2; health = 1e+006},/turf/template_noop,/area/submap/DecoupledEngine) "bc" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/window/reinforced{dir = 2; health = 1e+006},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1; health = 1e+006},/turf/template_noop,/area/submap/DecoupledEngine) "bd" = (/obj/machinery/atmospherics/pipe/tank/carbon_dioxide,/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) -"be" = (/obj/machinery/power/rad_collector,/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{ icon_state = "phoronrwindow"; dir = 8},/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor,/area/submap/DecoupledEngine) +"be" = (/obj/machinery/power/rad_collector,/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor,/area/submap/DecoupledEngine) "bf" = (/obj/machinery/power/rad_collector,/obj/structure/window/phoronreinforced,/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor,/area/submap/DecoupledEngine) -"bg" = (/obj/machinery/power/rad_collector,/obj/structure/window/phoronreinforced{ icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced,/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor,/area/submap/DecoupledEngine) +"bg" = (/obj/machinery/power/rad_collector,/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced,/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor,/area/submap/DecoupledEngine) "bh" = (/obj/structure/shuttle/engine/propulsion{dir = 4},/turf/simulated/floor/outdoors/rocks,/area/submap/DecoupledEngine) "bi" = (/obj/machinery/atmospherics/tvalve/digital{dir = 8},/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) "bj" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) "bk" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) -"bl" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/grille,/obj/structure/window/phoronreinforced{ icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{ icon_state = "phoronrwindow"; dir = 8},/turf/simulated/floor,/area/submap/DecoupledEngine) +"bl" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/structure/grille,/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced,/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/turf/simulated/floor,/area/submap/DecoupledEngine) "bm" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/simulated/floor/outdoors/rocks,/area/submap/DecoupledEngine) "bn" = (/obj/effect/floor_decal/rust,/obj/structure/closet/crate/radiation,/turf/simulated/floor,/area/submap/DecoupledEngine) "bo" = (/obj/effect/decal/cleanable/blood/oil,/obj/effect/floor_decal/rust,/turf/simulated/floor,/area/submap/DecoupledEngine) "bp" = (/obj/effect/floor_decal/rust,/obj/effect/decal/cleanable/dirt,/obj/item/weapon/rcd,/turf/simulated/floor,/area/submap/DecoupledEngine) "bq" = (/obj/structure/sign/warning/radioactive,/turf/simulated/wall/durasteel,/area/submap/DecoupledEngine) -"br" = (/obj/structure/grille,/obj/structure/window/phoronreinforced{ icon_state = "phoronrwindow"; dir = 1},/obj/structure/window/phoronreinforced{ icon_state = "phoronrwindow"; dir = 8},/obj/structure/window/phoronreinforced,/turf/simulated/floor,/area/submap/DecoupledEngine) -"bs" = (/obj/structure/grille,/obj/structure/window/phoronreinforced{ icon_state = "phoronrwindow"; dir = 1},/obj/structure/window/phoronreinforced,/turf/simulated/floor,/area/submap/DecoupledEngine) -"bt" = (/obj/structure/grille,/obj/structure/window/phoronreinforced{ icon_state = "phoronrwindow"; dir = 1},/obj/structure/window/phoronreinforced{ icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced,/turf/simulated/floor,/area/submap/DecoupledEngine) +"br" = (/obj/structure/grille,/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 1},/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 8},/obj/structure/window/phoronreinforced,/turf/simulated/floor,/area/submap/DecoupledEngine) +"bs" = (/obj/structure/grille,/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 1},/obj/structure/window/phoronreinforced,/turf/simulated/floor,/area/submap/DecoupledEngine) +"bt" = (/obj/structure/grille,/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 1},/obj/structure/window/phoronreinforced{icon_state = "phoronrwindow"; dir = 4},/obj/structure/window/phoronreinforced,/turf/simulated/floor,/area/submap/DecoupledEngine) "bu" = (/obj/structure/sign/poi/engineleft,/turf/simulated/wall/durasteel,/area/submap/DecoupledEngine) "bv" = (/obj/structure/sign/poi/engineright,/turf/simulated/wall/r_wall,/area/submap/DecoupledEngine) "bw" = (/obj/structure/girder,/turf/simulated/floor/outdoors/rocks,/area/submap/DecoupledEngine) @@ -86,12 +84,12 @@ aaababababababababababadababababacababababababababababababaa aaababafabababababababababababababababababababababababababaa aaabababababababababababababagababababababababababababababaa aaabababababadabahabababababababababaiabababababababababajaa -aaababababababakababababababababababalababababababababababaa +aaababababababakababababababababababacababababababababababaa aaababababababababababababababababababababababababajabajabaa aaabababaiababababababababababafababababamabajabajababababaa aaabababababacabababababababajajabababababajanajajajabadabaa aaabadabafababaoaoaoaoacabaoapaqaqarasatatanananajababababaa -aaamababababauavavavawaxaoapayaqazaAaBaCanananajabababababaa +aaamababababauavavavawaxaoapayaqazaAaBaOanananajabababababaa aaababauauaDaEaFaGaHaIaJaoaKaIaLaMaAaNaOananajajabababababaa aaababababaPaPaQaPaPaPaRaSaTaUaVaWaNaXaYanajajababababababaa aaababaZbabbbcavbdbdaPbebfbgaUaVazaNaXbhajajabadabajabababaa From f7588794311a4fe0d27164c18688a0dd3c05d152 Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 9 May 2020 01:26:31 -0700 Subject: [PATCH 060/105] mechs trigger mines. They're not very effective... (#7113) --- code/game/objects/effects/mines.dm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm index fb82e6515a..f2a15be551 100644 --- a/code/game/objects/effects/mines.dm +++ b/code/game/objects/effects/mines.dm @@ -49,6 +49,9 @@ if(triggered) return + if(istype(M, /obj/mecha)) + explode(M) + if(istype(M, /mob/living/)) if(!M.hovering) explode(M) @@ -79,7 +82,7 @@ triggered = 1 s.set_up(3, 1, src) s.start() - if(M) + if(istype(M)) M.radiation += 50 randmutb(M) domutcheck(M,null) @@ -96,7 +99,7 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() s.set_up(3, 1, src) s.start() - if(M) + if(istype(M)) M.Stun(30) visible_message("\The [src.name] flashes violently before disintegrating!") spawn(0) @@ -136,7 +139,10 @@ triggered = 1 s.set_up(3, 1, src) s.start() - if(M) + if(istype(M, /obj/mecha)) + var/obj/mecha/E = M + M = E.occupant + if(istype(M)) qdel(M.client) spawn(0) qdel(s) @@ -195,7 +201,7 @@ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread() s.set_up(3, 1, src) s.start() - if(M) + if(istype(M)) M.adjust_fire_stacks(5) M.fire_act() visible_message("\The [src.name] bursts into flames!") From b1ee72ea1549b120ad8958ceac960d749ba7df83 Mon Sep 17 00:00:00 2001 From: Verkister Date: Sat, 9 May 2020 14:25:37 +0300 Subject: [PATCH 062/105] Un-reverts the pis off sign. Apparently it took literally two years to notice that someone forgot to update their fork for a map update smh --- icons/obj/decals_vr.dmi | Bin 29912 -> 30725 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/decals_vr.dmi b/icons/obj/decals_vr.dmi index 6b05d6a00396fc66c7482d47becff9a49b27835b..391d37b91835ac04e58bbb943660dc450ce1213f 100644 GIT binary patch delta 13071 zcmZ`gWmr@}yGw&~mxQ2zbR%67f|RthbW4|TDCv|CX(Xk)ySuxU?pi<=7Vh!;e%CGc#}JoLxLX_eUSbrNnQ|mJH>mp3}nbJy+0&$9g!Do?-Ee&vonl zHJpf=(!lA{*~@^JahL&+4+PxEQ^pwY!?KC_as%;*wE@QM?FqNj~&vDO*kIX8i3}{`&2@ZxtlFAtGM4+=8%tz46HJfnisBKI}>N!w{ zIFt~#wV}2?IG36X&+VN*-Z!3%3s+%vragn(YL|A#3JK>QdAL0>`f(t;oZYrYqP$W+ z)jtPRMDAIsznqC)oh8=PnVF?H`fTH`UQGaq98Z>5bac4#4M z)8plL_ElexMw_1!LnjTPrWb$ETjB1O`|w*+OV?Uo&HV(G%IaF8h8rlPqV>7$e)0oO z$m4G+a`NAe*Ym$U?{*Z)gxQf_yg+Sg_SlIa#t1hF3xm8b;2cfmdmbL1vtJ{hb#_$q z=})if_O7h%)s=9!$4R&JO8pOUW)6;fAQ>7NSyj_W_F^PihL*m^D~$p2RwmT=MrvV? zsc9$qw@y7PA^=k_{H+2=O{H+v-)F^};FJ|fbd^*fl9TsTnT2~N^hXfmr-3Aj8RH!>5=zOxM+E2pDEJ7YI+YRlvQXxZ*9Y<#ke>G^nvikso zhtXD!f`Cx!;|3()(V0wx4w8Bi78&=ZrbaQ*wNd5o z*IUt)Tyr)knLgupK?xwj(UiGP3u|ml@NCSC3@umpj~9;t%4X|xfkxuw(eDz{L(8FS zPmgCQSequxPn{7f#p&ZDLLm1=4zIX*vbI-d%F8*?7a(gYwGAbwF19}C zjcpHQVrTf?ELpKOsvp{wjFJe^b8!*HinA+iJPxxkjSh0+7CHbl#KfHweioFDhcS(B zkPLlak%VJpGCuqEEw8>T;@M{1g6i9u+q0#hJ^)VX&kOjeb6(0 z{~rD3lq!0k3F+|Yp0iC{`T>5_eLf|(ws`rT*YDblw_Lw|kdR@Kla`_1e|43~Rt7~? z^J^iyVej8ZbJTUsPuG8m12^HP<}GSRxVb%2@aOO`fbo^)we%|s>3>7Y!s7KQhHoPExK&lc<(8QV)#X%+SBY`};n0fW?D$Dd4#8y7crY2z{oEW7 z?A)^nDIS#D)gbtSQEb9lTj;fRd1p(hf;b7LH!DeF7U?@lvzM$a+JE|-Or`yRY4fTW z$t(mCojh_KtcbmhXGIO@%{_;cVsyKiu`0qeh?y6_}ty7v(SBshu4 zCZjvSK_{V!KVkr_6+S8x9(o|j|C&sM7@#8~N%x$Y@4MJ@h8;`|bVX4yMVaYQq z^Xcj(>}Hn(<>T-n=9i3&xqoIYwX_+Suv9sXIn%}-`a7?;Y>HWOXmot}4i672`3>}p zt^*^4@><9ZX~9Lb;G+4|R0>FEUnJ?&LZS8NNJUVsM=feJPhJqg0_JX$10!7A&+1b1 zI3>FLfB)%=OcC~AcRya75@&0B`g;)zL@gKrfWbblF>b*ZqSFZ>uW3ddH1Z{$hL(1}?HYYD!v~Eqn%84;jK3 z_zZJJ<`)&BAZ6FlXOHQ1hC#{RXFjN;i%|u*So&0XOY*V1DPmTQr7xjJHKOd6>e~W- ze(i_Sw9p{Ej)sN>>+LFsH6bsb`6v{xEEm z=}XsF9Ay6N6Z12f526qQ2_r^TtvbZ~EDPfS*i*9B=R@ZwFRdrEn!LXFcN?wzJ=cE* z(xC|1rJV(ihKl#kNB*ez?!XuBVFCcrm$eGZd8G~Vqxmv*-;~7r^o%_gDe+2}ziC=l z%T{JR#xl9_LE&C}-K76ef?fdPX5T=R&ZU*;u=}{njTf4g(m3`LLD00yL~f%UO0ucS z6JlTa3bBr_i+f0h-;#1?dPYEXM!DtKWy2%=%3;8{7sPvep*o`{J-N>aHVoWX++OEG z-nd^%id0AY0nL63e}A4ms~eP>u#(nvG@N#%s}0#D^guXtv9cXqRK(j@i~Vy zSN7MQ^1iq@#O`iu;qo!G{vYkqjo!;A4wzuhknSbB?l_(tC8q+HtDh^$ls5leMzeop zd5y6Sv#G?@rll78r&~Z~(W6SHND~SKMsw-iVmkhKC2TtGma7Uo@Tw5w@p4uK63rcX z$D=|+#UM>s3bVug(njH#3loO)B_#uA6}?N+g{u{IX_pH~%%G?y2n(OmJW4qRv>DT> z+_n#`uRdSbdM#G1lb}F4EwhX|W3G1$wFBCPoX~~mrP+I8fa_W#8sBC==AasF(d+A0 zzne#v3Qb&J5|!nw)stJ4e>iqlDaAU9ce39<^$O2_Uuo0ME!~Ved<0o;+N29p4))PO zA%Jz2ogoB7@amgOdnNZ|lvD3~p2sPQdWI&wEmuUbX*u8*T%GY0TA{r7sD7q%mV%J@ zSWI{Yy9K(~pH;%I(L|yl!G52Qd=N#U-r{x&25rN?m9=A?kq88=jtW_&^ogK5HIR z4w_8U*3R*(6)LI2$4xJBsT`VBSf2=ZxLG2! zdAR*Jg$_wgv$L1fW)${29*pNp@$t<$yrsJT^4g-HPLP@qCS`;aU=#Y`5cMaAA&@=% zTOp{h{pO%@m9j7hVO|4HeBm^G6DGg8!T@1P*dUztqqH1n>)Q_h`nUd_&{T8)^CAV3)gas=MqF4lUpY+LyeF3wTNh?_NuTiPxx2CF89 zd>)v6GduS#-b7M{>RUpB+Fz5e85oFE)V_r|rKO{Lff&e-w39ppnD78Tde^>R47M^x zUpl5T5{%~PB!-~0juWv*5+Fu-q5LiSq;JWxC1}awDp8A2RIpS>(b@0-bX3-%p&_QC z$#y0Jid2J4dO8WvzZ>I^e0qi)nBA8Va2H|el7Weg*oF6>-RK{K5&pfA`FGU+Iq9<( zmsqF5|JpuD3X>97g|W*8YNXp#*E5X8qfz@PIy-a!p%9z-LKxgW84Cbs&umI;c@GLx zEwa6=^S~|31BgC64awjB`T9^BSP}RL;=g=I!MdE5dr)(K#?~F2FM#fwb4D~~?|*Dp zQak2yXp`>_()ipiy1Q$h>8_0$98J59ZcOqWd7bovk97VJ?%XE-eQQvWu?RTg-)!jR zwXl~^6>(Prsowhwds=VW<|WqAel~2EGWb?t$5HdA0!PNSMDqo)31BHR7U((}d(`>R zhyx0?Jk7ztAj7U5Jnrr{N70+Yrs6k?MI|K(jD^T~;mp_VH?Y-bAhJO+J}$1ndHRn| z)dlUyUJz!m#thb-QT8KQA_-N{k6uq$dxT3b8bBW7Vj7A2)NtqxP)LU_yGq6v>QUd`If#bP&^t@cz!vmqFMOejxv9A|YOK?WaE#cbp7< zo<|6I*`uzjCN@|(#yoeMMCt^zg1k~8G9r-Y+zGWtj#sa)W)w?m_x&?2X0;X;HANL8 zarQqX!}M2Zd?Oy>G4HKrky?upL8Xq%W&0QwOeb;k{Iefz-i_>v54U9mx>rxR66A04 z>$$+{F`l^iYyr&4zr#P<1oznlBS9USUAHYcyh%<^TFLTEi+%9lSq9$6m7&hBmz0f! z2=Hq0f!=+$u&yMGWKkS(cun zH`hgw#bhbLb`jnz(5+51%8!Ihn21uaA;qB(i957sp7aR$!p( zfnb_o+tgcC&wxHH9hg3b@_uSQb5*I`tU~y(J41D~CDbS@ji#5oT`V9u_qnb46Ol%G zLWPSx?2Q)+a~sn`W%qB`b<`v4ML0N?YJUVBjVqUA#5rh3c=cwjtJi_lUzP_VLG?Q> zHXI)wAgss6iyMut_p&tp<*m5n(OGq(6wBYa{;lRx+z7ZR#>U&x!F@2Wk+5+pT2e$^_Pk)5xV~Tci5L|{A_0$N2uSXjuQQ} z=Czkcw^nix@AY)P11GB;QGqs%gt@?T_l|~J$*bxVGhT(BsoW=BS|{S)hjZ9y=&Qb! ze1MB<<7y#V!2WUR^MF6cDVaNyNP=6X?-`&jSn|Eti$|o<}Xs zq>wCTW;p6B_Sa#_cVvdQnYD9%w)p^m1$QO6vCVDH<7YeB#N}TP1~Pe%9<%sqCsCvB z(mB45!-R>C{xS>-)! z{91KtXbt8OXesf`O_OGL?ZI>qzu?j1H0GvGp>qI z8u2+^X+OwPJgphQV+h=V!mBHlog8v60VACE{6#~1!onux4+{V8P0~ab)0tpW09W)>7G*F&|+T0`qIac$3dn61eP-d zsx1ry0U!A49uk)IW4{A$*a>mW%5$Bg?EC@_H>KZPbX`q;PbEF@-x{d8a%#yI?b3KB zyi~R6aHDe?yQB!1PZhj<_U2-;kd^76Qdce0T=kH}D9L;?zXB-8amV%ieJo}*=Vt3a zJD`XOMq>%-nu3XEzB#yyvf5VgQpZCnpy;SYpBRS>Hu49xEO_cKvYA9>EWLLMoZ>z({ya zOnEABP=3PE$}QnBGI3WelEKJC+EZRu9$&Xl#&Jb2x)YoNIbNTMs%w2hFI{fK7W@&p zW8X&OFCpshx~3U@!!w)r>ZMBuE&##_dhI4OP4JBh`U^`Y|Gx2nC1=BkV@&gCjg5OAHF4u&X6aKR3Q^kl56B$b);-L4u5w@0d9 z##cV6)W(FpR;$vx$)KV_jBof%w+A^OAIo8#+6&YkOf#x-W5HgZxbuOVG?fB7skym2 z9ZiGCbXM!E+0%YB57ZVLcp9XYM^b6zQ*|T(609t=IE4GpAM;+DNE6{S#Po$W+_;c7C zwdqe%ky+oz?io^90Ang_&qjxadt3B?{W=V9bN_KH39qQzKqiHR+%QFQ3>alTMm0WD zQqV08VubTFft~t9&B{lfkjzdoGf>o33OV_O2uDuGq*(k-RoQlZZYnzuLqf$J#8_Nr8?Y1TgbT~X#fx{qDu%hpVwhCKR2V{7~BK} z;l?A@>9vwZux{^kR{mwQ9G<|$yhchiL|b=XF+dXp5-_r2z3`G2q=M*#ISHE!9B61S z4Da0u6TGY`gZ)(F7axN9do(<%#>kTv4EShb-!4Mtem-9={8Az3LtBEjII3NN#jA&^ zZ4cx=22-DFwlw4vS1I$0Mm+PP^kc(p zHZg&k;;t09c9h&uVotw$>CVT$>gfDtfKY^A!ttlD;hbv3Bh%5ah52jzoY1>(A>0&m zEmRt3vVi&Q4wh*3H?zQk*#l?2yv)j}21B5dq2iVX!hiU4KbEfJr$PSU&@lAZM5b_& zQmo-Wk%2%?c$4-#0}GfdtDAq-Tk)wZ^1V9{wT)<1Qw&2!G)FE%%hU)6bn#-t9+V9*`x31gjbi|)dv-JE z4SHS|-w;}347r~Kbls?aK+cnU5+~6H?4YM;MFNTb*)P#)f2dBe-?MYC-}GG(DOAVt zzcSRi)^6EYgGpBqa#2%e3#i2!%6767t?A4a`FK2^#znS!S)eWJnq7lv!?1H-Ig`#ydKlES;=~>!L!Ge$S8~`t#YNF`~nY7tD8H;a>1!;oItDbYA*Ln-qDTU(JaF+kJ+L#Xd&V*7&$Cy3Sp^uq=`+Kw<+(3hk?+0;U)pD!55qeOB+T5;9 zm6Mb!vFPWSFN1a*bKlZjI)CuPkjLeef)nP-;Telop!+UD;dTfkAbqq?hm7xQyYn4}&*W&wV{&tX(|4-hncM69s?3fSfv*!fTbhd-a zuuu7jXi<4mF2FwTIv8w>@e+VQh!ftumDKR;p|GDLjjk4>#PH_%+O7?UAn5fcj5Q0b z+%TFb_P5MxwWBJ~Y^D*{mn?Ixv5{O-Kbw1kW2zS{dR(cl>@H%z)veRp-}d`F=jIN7 zKC-ErueokZbt<~4Q{vj%|lQS1B{FQXcD}o#X}Dv z=mzJKlXU;uo5*bc|HMHq5bHW74h+7S@Xa|7YrvnlFtrp-#np$eF-3+VV)|e3MGf@( zas=em*Dr&;(Y%6GRi{JA9PzO0vm$^f)MngfI!nM*M64TA3V{4K0w1}6I?n~9IwlYz zf9$BQr--C}RGqQB?WlziI{2#Y<9>om^I3BF%y8Lft%(q#=BivuW!1DVMA89OleFfB zkuORlS=3%LO6F;2nlC*~BgT%;z&dfv7Hw6O>c$$oWG#RFV#vZ8N#m}JqxSj2^oUx{ znYkJ@pAb4#zs=EXO${Cj;iXLENQG2#+X_OmueVJg68ghqMJh|%bGLV(Vg2*gppzEz z-BBt?`&F)>h}dB)#6bdxKD@Z;sO`*AQ0OnLD?Y@yH~P2 zAbo~OeT+!6JeTUq;nE3o%tqoxRyV-27hSeo12N4M9p%+NDg}x=*|+^G zfA~CEWnOWbr4Oud|CPQ{%%#D}v5xI)LU3iP%@( z*$oHPCtu7yM;mD`CB4AA4JhvPeknOiCnk}_%&F-H?oBpA&}$*JjcFaui2_)YLI$p= zC$Fng?Ff-+;p~@!)Uvs$D-f@8gyN8D>`C3(p%!esN=G!aTn(lD2-F4td~lFW3*8W~k_}YtX#Z*OAyID4 zB(VZ>W~=G@D>5~A*MdCh?nIC6V$KOQTF7=O59LW!u8Jq4BxDf#q89+wdJ1(Y{jiBy z*y0m{9UljG;b(c9(s!L(;`z#yJrG~!j)bUqDM+rr@f9^R2uZoq6Ny zJCj}uvLAVP8C%#v7QoA}pn_PIZd;RVP08zC&lN3A^{K1OI1)V^cb}psu>d>M5|t(7 zyha+Eh54sg4?%fMe-$`2Sc8|b)Z9l(9Qg<#EA8Vd`POH=+s9?|jm4V$eo*uvnSJg1 zBL;lp=UW#4y@OgmXF_G;D4rH{Bw!kuXOQ4u%t3KdkcSBT)s6+-QoW-8z8X~_TEvNW zj$N#R5?>dHNx8YPTaxs2H^aq{-#2zQ-yH5rm|fF@0hOEE+1$;Y-V+lKOoAG>l6WH}CJWj%(yX+$S6Qjp*-;_b9r|@LCy!SjOC^k{xXg#)esw9BR@#{b=FDG*5}7*= zzh0WC12^I`^zXV4zuoOi+S}Ll)O}ATS~BplDGt{Y7qPs}qzaeXyG!%p>0gQNHojFS z;Rfa35u<)x``iq2tf3~N^P^7x6p*hdZ5LtxF(ay)x&hj;yYxlvDpCbj+zIeKA?dZ8 z&oH`bh4QpFR+swE=iagvW~knsso1v2t=CCF|Ib!;X50$rqBWm<@+%k>&Rlwu9Q~w^ zH~K->HW%`kuHc~A;1_FgmBfW1i?0}UzK?I0cD}C9z|U`}ttg)@WH}k6oHnXdys*-s zZsGnct6TPSydGLCw}8nU^dX_4p6B0H#_>8OC%MWI4D=m!#$*!!NG}nr6=Xm`ZLq+T^ucyhPW=Y8H zP~)zx<&5wg?7`FSFIB<4%trNsVK8s9XxSDA(yQIE8sYDJ?>$7|(3yGZP@JWcqXmh( z9Jr^|+EzP}-XKQti7>OymyYqAN%rRayK0V%x!eTr&e6`&G>tF4d;TWr1 z(-0Q$b{EW5G_E!+teJ)}waRe2Bqqfly4Y3kV;f$+dWA4Z07KGw8sX@83;6nqF0ZU0 zK!iO`ks-YU1N0&y`U&OV%FEe#1q4jziZutv$7Owd!0w0Ehx5zG`FMKS!7~nn_Nae@ zies@?-`S1&gR4xZTpwH49_z$`x3xS%UG~WPBMR!F{1d@lMF+V^vK=`&2rKorX$IR> zZi0UZznEjBvQ|JmA_T3wC$^XHSu)5DeLLH>6QLiV@Qx9y?x_562y7TfY~ z-@cVc8;Fw3>rSt5b<1H9qR@&&p_hx27#)m<_!nI5se#mJnE-)@Sk3&MxwQ|pp)%U~ z7u}AR8uambc`rp^BO(SP1f{L#X(D%qKGkK!5f30npvVvUVz z7Gw5e7!u139A$f7W|FR#KAdt;P*B7rCI$y1uRITqj*hN=-44QrOwM7^=rN8>6!J-3 zhVny3GlWT5s6E3|Ye z@O$9kp!{2|x!>id4v@~ULHS@@8up}<=~oqJ(v_QT$b-r%^c5c}QrLZ%s_lL7sr9~Z z;h}uHv$8Lo9yUF4hOIQ_*{?GU9^ymWtE$u$A-@V)y4s2Ey#HGxfNmrIR zZRY`24K1zVkb>al%TJ#^ZQr_{f`oj&yqdtLqAan=w0SH0mKK!em&ct2i2v==M;u6s zO**n|7Rm;%?>||CUrGHvH+^j?%FK@{Fq$4vWh%RMnZyF2?db387pld0X6I?|59WoY z)How6kmC&(!(7*!0@H85=SN)^Cnzle+-neDPLEUl7JF)Ze99fBT(uiA6&|x_!!all zel#rM_}C5&DfeW626%pQauOCEUS)e_+Td}z8V<4=ME=kAUKagM^O35qZg`F51f8%j zB}W_do7_&L!y!@nV*!4_QGv-H%`FI|jC7e3MAK+CL$>?xg?!r$MXe!V)$^pGph%|* zmD6u`mWe?`IRp`|B@o4ITQL3VDJ6LObUMa^)a<~lN3|Qy{Y?FIPZw1|Ue(R@bhYV? z^L7~fNj8zmWjUgHQhk0tN>Wl1#9w!YF}J$4pZp<6i}>d^eS;J-^SMNeQoQS-vI%rzorh}6fqhaLnlGn(d0oOmxI54 z75ZXio3^glfXj}mL=bH7$H9Ewd9F{@oo8>~Jj6y*+7R?BL-z6hX3ea}T!3^u)eo9B zk2$BstbI+C@sSZ}(57W$siTvVNt&LC*uu#pQ%=s!?Rw9mFfoO75kM+J7MJrp!0nlz->y3~h zQ0NVv5c4xNdb+9Qd4^?(!DbS|hx@b|^Rq9&LCs$Hjf2dkj8fM498$z%kx)_8peN`D zwr9<*!`|LLn1t%D71}Dx%g5bbaKCLU?nEZ1f%NwF4({F_Vor1!$2HFyv@($^ySnm< zJ#HhHYO(mi_BoEl_N>#gzJcZoT5ilu49*uF2Tb+?BVpoqgdL2Gaw7f5gE&wN| zzqQS>>!hO2F9|9rVz=|&bwdoYo1Trz26)%O?(J-Gk=ne=>>W*v=QQ>T)P*m43l1@oG(L`nBw@vGN-aWlE-kz z7iBKnsLp##(71mVkg{BJ+9z|QhMQ*^5CnTXbx3qFuq>K5L(XU9fPhsc%ANh#u$Y+o z$VVo<(g${rA{pBZ(KRa}fZDf>Vs|d(WIa7phS8(PK?yCSh4|N7f=qw8K7oz%xm}N-aX*{5=6xaw8 zb0niA4IMEsXe zC50DPpjnk8qAj265aIwDy3o@H5j^zSO7RGhYqDo(Z&K$E=SnW-^&Ef4jLIxN{yF=6 z6g^Y7Dm&Aa53QT2r2CWz0hEU?tUuhVFZOOzwgCk2BFD5EF>cujyhbgMojTy;e-GjQ|FKpOP-0Bo^@5&aMY_++ibk}94m)f#5aBU-3jF**ceO+e%zd?`1LEk;q{NM%iaX9zZ)vJ zi?5_IJ-JoD{q|4vgPn;LnREpmmsqhSopQv4)TN^zV}P}m2rkEd&))o1R>!NuNI6|2 z_i7aFGkBQ_E}<|*5U7tYOj;R`zzZWjU3+R6WSdo>B!6}L%RU!A^pL$wa7EG+HysSp;&n?H(o!%&$`e;`evNc?|xw;MxSf_D! zCJm^pkTW>#j*|ad1b(uIs$C2hJJK-t5qHHJIb01&YO)Uz?lI2A+ z=@l(EH-T&}KBIEFgq>Y!MtBpwm>9Lay?qM5J;mYCk<-pF@%uFXv6gPkMpGsh7ED)i zeF{!W+J{57m6k9I%Bydln1PO) zVoDAF^6vO(IEe-P%L4V?Y5)O3>e#LX>5FWv!+2Um1l*hBB~weSz?^@@3~8UrfS4!q z9!0Q0r%o7EM;16n9y9fzGxwOr`zWbI!8~pLB^MUzBg64tuGjAxL z4A;+@gk`~NzyVNA=tP?q67d*Hh{)c1vE zE@tZ6v7}yjXG+vrLo;tGJ6P|;yBY%a|Bb**nk0ZVX;mOk;qiNeUCoqLAG7Or|H5%Q z<8vdUSb8VEzFg;%>^!Ksp`ldfOmr=ni0{b%Zm0)8WxJUC^mm+>fw&R1;(lU2GXucb- z$^s^%M1HNLYMry9}LOxN&Xt@nv|=P|&)&QMX0&D#?@!Yv+`Y|@E)wKN^; z1Whx(OYUv=G_EN2*vD0{cAz*&{P{EOh$bawz+`*ta^n!qibv6Z!$mkneV3!M#vJpZ ztQ1G1&U)yjj-gsP$B}keUs9#i&LjlI6kZ=)?Y!=Mu;jg>tsnXLUOBk*wH1`s-ggsE zP7AoAaQc`^6mzw*KS<-*k6^*6zdtXkNfBVhcWR#`?XbXZ92hDqlcDnuk)NGyZYjd_ zIt@)Ie2U-o)z;KY(b199vGazZ{iN5E+~1odH&;d3{rKKn{JYktXJnWuV|*$6TMYU6 za(Pv&rw^Ty;)Ag<3NEKuzP7g32bYJ0N5MRi%7N zHb~F9LmfqXG@zqfQguUSa{lS+h`ao*Az;qs^5B&oC)s+EF85mJ-HE1S~#1ylFGzs#vyzNNgOYg`&aP-i!Z@DecRQJ;QXG*70WW%$)QLdoP6pscakPw?q2e zzY?AciBa40^qnLcT4J1e3!_q#TnADlyYkUtTYvQudk`=ar5 zvdYSW!Vax7Mc>#U5*?G1InDX#BFoNSEm;nsV-4T@k?x#z3(k|9aRZAyT@pA*!gY@+DI3vkGv~|{@oTrHM^q52O%3|nCE$-glCw->~pe*?lT#dUo z^r@g$G&U0HasTOtxiIms&HWZn^G!vQv$*Pq_#fsi$eJN%*^j@l)g+DY@re#HK+ zY$k_US{u&q)dqBWa1AaVb_+n8yIeFib89>tBpkc)Xl9Sy^2$bHE4jrV>YJW=H#Kd- z;s!T|IhMmK&lesaj>$1i0p`Ol>vb-e$JKeoQ5z)jX9|WDd@_aZ*WImIZ$I{A1O-M) zuFCIg`e#)8#i(%i*ApQR#->Pf4=puzAbe;%qc0`M62tiQmwvu6e}lB0eJQb*IGFfun<8C%+DMvL6ETx- zGph!Ybj6CGz!s_fpRtDi?QH|@^ z_cw>lextDe9=+yjGztp7=4&EiW8~pgaTTnJMI8Q3bJj$3PU8aFChu!1jp&`0FK^BZvwT!5k*RM6MN5Yfo>4T~sJXaT7Tpg)Y3IqK9Vb2W? zZ8pWd4h!4K8rmJsh`hXc8g@sb=HaZmLw)a>@&E1NZ!K!OR^Bej6D-1PM$11 z@Gx)wij*cMrNK_N@bRidOG5~dq>YG-tc9kL+EI#5{Vk*{U|}ETqg!cl_4r0ogcDq)95tgEEiCNnchREYE(yMO;S*z3!`Ox@D$Pw6m&;k3^;CBrw;eFn z)qdhTWQ`pk)sUn#CAl?K6ue!#+Yr_OF3J7en&}>|POc&%5swEMSCY+hC)mz1l}|bG zr^D$sM3R!cvb*R$>bg$z+mlzDq8RV(_uZ%?V6*Fu08;nklWtnlg2e+8H)`V2-pqK& z^wIMCO_7wDu{H^=>f$UcoVJaoGt`RmsGZoivJHP|HGoQf2in(FJ`6!3clUtf@GI{G zL0r1n2l?oe`>njZfXQX2E?j?>^So6)wCK04kBcbC=Wm?mjo{&jkX%)k7nBikF*k*u zp`9ame$^HcrZ#47k#Y|@ z*7r|lSo!bZ9Du}S)^`lH1f^c0{Yb6L*qIU=d;9Z%YW%&uz3R;C{-ZzW1t`kB7|{d0 zPPj{u%)-|1w>h)0yqX%qk-C@*9iBR2hQ*N+RNKJs)!mIXzso zd&kG&1D|U4mqRqA>Te%3tzK97ILHu@F+58^2R#vr9?KsQkcjwSGG?1Xzd5hrxMs-EtccDZ5 zzUlH4u%|-R*|w$^;qdS8^RdvkM*ROQpsK z=5ilB%GYKNk;w9gxT06j6{$pUEU3yj%%-?}no5J*BX!Ql~6MJ*e9b(yiMo?gORLU}A zpMG?N4XH^{)E-e?;WrzWQ=+EYTd<35Wqu^xR|Yj^8pC_4F6AWzeU|!qSSQ zEZEWjLG27N8r{`Kpo5 zFgiQY%#QGoEKhAm&C>abP1EG>O&!d{x02yp-_I8K*C_SuKMGM`!mm4#kha;!esJdE z%zX{5MiWl}B+xWy;50Sjq6UZQg3)jlQ-;*mYdGv5XSj$F;g&NDzc>a5Q}(aoF6A1l z;*soFBk&l`6D#^y()7H=3PRI`=syqgSC>Z_Hvzg~Skef^#!j9IRi0a`X+#wJ|K`A& z721i6MhUo>wM-F9Z4KOgM2It@THmD%aT6`0iF_v@44jFx_m7lg;>Peo%oLD|j87g0 z$3W`sxx@l@oBht+9q6t@Jr&SMp1f*YU;}!5(O-a+n(#N9=E)>X=1dApadBf@|H$&g ze)0LmU256qM;C{upFO(nV zWtDet#4$BJo%B}I*6=PZC&#&<04ON*#k4{@P4;f-@VX0J7}3b``h_P4GCsh>gw8nN z#&Z6!Co6e6Ib99(E~`|>zzPba+1-zUl8Pq5EVY3U^pk7=td##v_H+?caCT+}{UdKA z6M2Y_!lx2CV*wdMwO_S{ci%C-9o7FUCPNWZAsD{=*8e_HUyV_`b!-!8eK7@LCVH#a zOPNjR$0seySTDzbZ3t4SVI|bbMwGTFLCeS}4La?{-jnivmeVcF%{ng*F_#4o|2N zY4fL*3vg)LfHTz#@kMrrvtO+SWky!7WBh3ttE{Q|$w3Nv-bC=PS@>i!ZoTo=sI6{RIVL`hUpM~;|n^3046waIu z_sN5{7LqyQa`l7-s04__`50@6LAgGicCfeC9&M6(Dc^E4QeK3oONvPq6B9H1H!;vW zS9x-0McaPhz$i4OqfGreW@j8dthLjasS#Y&0!U+h3FO@J6<5wjxA!h01FBYk(8n(b z2@B`qLYyfrAwLPco~eHP{R3P#PbKw+)TZ7bG_6XujM&C?R7{+au)EtLCIK?m-^TNL znNPebdtXf?z0p99rTB_6j^E2CrpTlD4NRgU5nDQHz!>xLE+SQY@c8P^KCrxIvb^j7 zP$?G_y7=PKLvF<+hFh%iiwR<_b2WDwJ0S3DGF}fY|98{9QJMO(diRPpp66^{$$aUO zmm6_@k`*J~f-F4Za!Dr$qTa$aocm)oGvS6m=W1jffX2Mf+$g5kY)=O z+b)|k<}=~~9itjuO9@abbY|;XKUKxo3X+Ng=P&;$^36;Z6I|;&$xN6pku$7+hAkg> zz_;cn`wC8#0sZsqCBt95Her-!dWADsaAByrLhu8pG%;J9Cuwd|DJeLgAh5Jmj=22L zz<#LKKBm~x6P3a8`vV%)5&xWJADschfMk>YOaQLak980iDEv=zG(y0(U?FO~W{l4E z1PZ~k4sxQ&im()@OZxoc4K_-qASgFb3;qONvKC-Dg%q)+IABCDu{~8;4P`6kxMY}? z_`{5tP+({`W5fgUVx?1njbDhjG*%{c*;=V>T_&wFDfvuf z?SiZKztrA&H35&Jxm_g7Hj0s`Qpam6&x`#e7x6GQ>Lzo|U>25(4>ojAbaLM_+cslR z_Ss!E*a`7t-D1<-_aKo>E+=OBFk-BHLIgdHjAJ{w2PU%?N?f*Q;Qbdkgv8wqAXQ?7$C89$?Cw zq>PPt0IYNRwL&;bsqmk*?yuQz@18fSq37%#l+y%l90?_CJq!Bol3`ffX3{qH!!)x^ z4TBs(Z~R|q*jKr3gdm{s&%&L!c2nwUamf#`*vI6j`970;n|Wf#$$QadUe|5^A)bbo z?0}t8{3+hvvY4cX4y^~BlfN1abxljY;5e`q$Wa$%!|vOM|7cwCteD-_!4O7MIh35C ziye#56xXRPih4>Hmb6W!k6>a1_ln71}FAejD3?< zK=v}8DlSV?teV@M(GTIOE56lg0BRgUGyyWcDCs}y$qv4K_j!HT=;*(bF3rGIB z^WX7adv*=;I|uR7nGRM4XjY6S?2G`YZd`->7i5U|lnY+`A(^`|t!#ZzvRU#_~INzAj8UR-^;^WQt%%u&-^DR@waT{W{) z^PVRU{I~^SPqDI77cEhV>3dGp`V9!?krvgA|Btxr4lw;zKgN1_QP2q{HU4oJHm_ZV zGtV!*`@W_NfEt(KIqZ1OpoG-A^mk!3vwQVfY4w*V;VYC9o{N}$x;999MNdknD6w?l z0E9&ZinY-tZE8hKsl(LgBK2XUUr+%Z+m1N zVE_d&YC3gLQ>Tet@InZ-fn9==l4tt$OsjZNo)SG({59KGZDi!h5iSt{!VT;U4Rv_a?%)<2XI?b zB6d@G)ke2RQO^Eosr;7bjhI2-9M}6q%cVbl?9c_%ZmW54e@cf5SBKfl>+EQA0 zM07IYK3CYGBaX8%ELcc#4r?@(7?cltyK*~=IR?bE@6=!B91=dM@fYots&r&0#;_pC zsW#HeWb*=9rT=LVLz*uK&uKm$a98EGvSf9s!mrydB75?DduP2OM(S)49my~4iIMFe za}~^H@FOqc9ThePRRwk}AzRYdD*_aGQT;#TB|8fac@(lHrcV5ZeHxr|Hj#p+lap%A z+13vSk}I=j=@lqeu7#hx0_(UYtn47KD6;47>os0b(50@G+pm_c2Pg&}0B}sW5X7r0 zx?3T$92^=fw?<$Pb1VZIszbhRQ)uNw+wr=ScY~V<(cTl! z97Utg@4s7Zi?AEN94NahAJ}q-7g3X0ppCY&=wCFinVH;CIp{(|`q2F}18?t^Yzt?TRRDi3#C5#8*i8C|6UhWEw1dsUz z8#d}ImEuort1`s?9JCW6g)=8X^orJcsC! z>fH*Ta`|)Dr!bUsOhDRZ8U%BBonqCA&q=oMw>l#%fB?InDJU82Z0-rCLTLLuB(}9W zPVmaR@+Y9$pS9r}d6K3uym>7^VuZ9%G>s6Ha-fizB={~wsSz3O9Hbhoo}?{zqXgT( zcs|4OQVelr#clDeeWbd1SBQDx6Q~P|3UE5S7<6nQ_?P@Knm&JdA2rMD**$r}_f{nA zGVXXl?-o2shed2!ug!SH72D+V1 ztG*9Ila36uNhix6Q}D|lp{&L7f9}!BnK@4xTRN%)ede8z^sCaY9v%@dV&DH3Dxbn* zcY7d;=IlL=HkIwD2Djt>OF2)O2oy&P(eO_)Jmf(jMD}mx-e}XWR4W)>=||^6!DwA2 z=U7)tx;ypMqOS6&@$1{sB|h4QhPa$5%xkMq9UZE|wgJu+*&GZ>;KQH}!jaZzk-9C& zrp%*m=_5g9>(O|YImO4)dbl0e8XT=s=UoAmZpZ$l{D8@y3qB`#8=;E^;93+Wfzd`i zg-_88E9gY=M65vPjA{hpDrPqH+b!?E73uW~r_z#=Q?G7yljmyxOJQ4XjsHVfr7-pY z<~K|r;3C!++Vd+9a!txSu>|5Ha6AXQhMQ|Dgx!K zM@hF|^&aO6b>>Z0KPv&Z`Fvh<(6>n5xhqN(jM}-Kja(S7xs2%#;t+$boSv`+j#Z)a zmDlOk8&T;X4u91H0Dq1zb2NOHD;Gb^l%FaYBV6aMd^MPW=al)Qc6=7EZJ5~)nIg`A z*Kzs^L(lhK<%!t8>dW-CDs&yh6BZj86~wgAdq@llJ)eh#Z+Nan)^F}ly4=4QAN5yD z*Ep21R@qohYn$~T8b$A<{sd0ER8{qQ(O5qY;11rGC{=KxUjXf z5(gQ)*PhY={4+XOkeDt|RvxsjFGV~B7kBeLyt2m|Dy_ zu#bVu)|mS;Lta={rtni6OX>4v)9kZ8<$Lpi7~)}HB{$y6sMObe1JgwTe}nX9Z&hCGk$$@a5g3dE>~vAA>LW zHWh|krEnMGQCicpqKoKj?I6wR-i@Dp8(a;J=xqW++LR(Z&)+8eoQr5+L60a4-X7zU z1Kf2&iEe}h=i3$bf}}+jAA)uX0&5R>6#_7JCp?z!X@&?kPCUYo&fl6>cXg67mN^P& zQu#m%n*h{ngbyMMcdnAUyRrXY=~a0J{HxGkS4`eZ1#|miVktg}k(d(Pm0i zC$AKAtHG2A!R}~PNHMEJ$}J+A3aR>B3|!WoZ9mW58W9_CR+73Y<;;Oa)X&%I=<1kW z4!5=JZk3DYlG9qU+NOJ=4}N9^MY{KDHv;2~%v6k8M2d%4a Jzs@Ws+;~%;hGm+0 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 O&s+KTa+NZs!T%q3!aUmm From 6931dd3083b91812a0c00690313f8853f6986623 Mon Sep 17 00:00:00 2001 From: TheFurryFeline <38586851+TheFurryFeline@users.noreply.github.com> Date: Sat, 9 May 2020 11:05:57 -0400 Subject: [PATCH 063/105] Onions and Layers Changelog Notes: - Fixes layers for shutters and blast doors throughout the main station. - Also adding in removal of mining's old substation per a discussion from last night. Yet ANOTHER oversight I did with it, good job, old me. Substation replaced with couple maint loot stuff and filled in with rock/wall. - Making the door leading to old Mining EVA public access. Will restrict to Mining + Medical if needed. - Missing firelock added for door to Atmos Processing pipes. --- maps/tether/tether-01-surface1.dmm | 1803 ++++++++++++---------------- maps/tether/tether-02-surface2.dmm | 309 ++--- maps/tether/tether-03-surface3.dmm | 343 +++--- maps/tether/tether-05-station1.dmm | 62 +- maps/tether/tether-06-station2.dmm | 168 +-- maps/tether/tether-07-station3.dmm | 20 +- 6 files changed, 1300 insertions(+), 1405 deletions(-) diff --git a/maps/tether/tether-01-surface1.dmm b/maps/tether/tether-01-surface1.dmm index ba1c1625ce..caa717d6b7 100644 --- a/maps/tether/tether-01-surface1.dmm +++ b/maps/tether/tether-01-surface1.dmm @@ -53,16 +53,14 @@ name = "south bump"; pixel_y = -28 }, -/obj/structure/cable/green{ - d2 = 4; - icon_state = "0-4" +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 }, /turf/simulated/floor/tiled/steel_dirty/virgo3b, /area/tether/surfacebase/mining_main/external) "aal" = ( -/obj/structure/cable/green{ - d1 = 2; - d2 = 8; +/obj/structure/cable{ icon_state = "2-8" }, /turf/simulated/floor/tiled/steel_dirty/virgo3b, @@ -75,11 +73,6 @@ /turf/simulated/wall, /area/tether/surfacebase/cargo/mining/airlock) "aao" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/machinery/door/airlock/glass_external{ frequency = 1379; icon_state = "door_locked"; @@ -87,6 +80,9 @@ locked = 1 }, /obj/effect/map_helper/airlock/door/ext_door, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/simulated/floor/tiled/steel_grid, /area/tether/surfacebase/cargo/mining/airlock) "aap" = ( @@ -131,11 +127,6 @@ /obj/effect/floor_decal/industrial/warning{ dir = 8 }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 4 }, @@ -153,9 +144,10 @@ pixel_x = -25; pixel_y = 25 }, -/obj/structure/cable/green{ - d1 = 2; - d2 = 4; +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ icon_state = "2-4" }, /turf/simulated/floor/tiled, @@ -181,7 +173,8 @@ name = "east bump"; pixel_x = 28 }, -/obj/structure/cable/green{ +/obj/structure/cable{ + d2 = 8; icon_state = "0-8" }, /turf/simulated/floor/tiled, @@ -200,11 +193,6 @@ /obj/effect/floor_decal/industrial/warning{ dir = 8 }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/effect/floor_decal/steeldecal/steel_decals7{ dir = 6 }, @@ -214,6 +202,9 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/cyan{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining/airlock) "aax" = ( @@ -245,11 +236,6 @@ /obj/effect/floor_decal/industrial/warning{ dir = 8 }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 5 }, @@ -262,6 +248,9 @@ /obj/machinery/atmospherics/pipe/manifold/hidden/cyan{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining/airlock) "aaA" = ( @@ -294,11 +283,6 @@ /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining/airlock) "aaB" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/machinery/door/firedoor/glass, /obj/machinery/door/airlock/glass_external{ frequency = 1379; @@ -308,6 +292,9 @@ }, /obj/machinery/atmospherics/pipe/simple/hidden/cyan, /obj/effect/map_helper/airlock/door/int_door, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/simulated/floor/tiled/steel_grid, /area/tether/surfacebase/cargo/mining/airlock) "aaC" = ( @@ -360,11 +347,6 @@ /obj/effect/floor_decal/corner/brown/bordercorner2{ dir = 8 }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 4 }, @@ -375,6 +357,9 @@ dir = 6 }, /obj/machinery/atmospherics/pipe/simple/hidden/cyan, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining) "aaH" = ( @@ -450,11 +435,6 @@ /obj/effect/floor_decal/corner/brown/border{ dir = 8 }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, /obj/effect/floor_decal/steeldecal/steel_decals7{ dir = 5 }, @@ -462,6 +442,9 @@ dir = 6 }, /obj/machinery/atmospherics/pipe/simple/hidden/cyan, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining) "aaN" = ( @@ -498,18 +481,24 @@ /turf/simulated/floor/plating, /area/maintenance/lower/trash_pit) "aaP" = ( -/obj/machinery/door/airlock/glass_mining{ - name = "Warehouse" +/obj/effect/floor_decal/borderfloor{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; +/obj/effect/floor_decal/corner/brown/border{ + dir = 8 + }, +/obj/effect/floor_decal/steeldecal/steel_decals7{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan, +/obj/machinery/vending/wallmed_airlock{ + pixel_x = -32 + }, +/obj/structure/cable{ icon_state = "1-2" }, -/turf/simulated/floor/tiled/steel_grid, -/area/tether/surfacebase/cargo/warehouse) +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo/mining) "aaQ" = ( /obj/effect/floor_decal/borderfloor, /obj/effect/floor_decal/corner/lightgrey/border, @@ -606,6 +595,95 @@ }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining) +"aaY" = ( +/obj/effect/floor_decal/borderfloor{ + dir = 10 + }, +/obj/effect/floor_decal/corner/brown/border{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo/mining) +"aaZ" = ( +/obj/effect/floor_decal/borderfloor, +/obj/effect/floor_decal/corner/brown/border, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo/mining) +"aba" = ( +/obj/effect/floor_decal/borderfloor/corner{ + dir = 8 + }, +/obj/effect/floor_decal/corner/brown/bordercorner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo/mining) +"abb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo/mining) +"abc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/firedoor/glass, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan, +/obj/structure/catwalk, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance/common{ + name = "Mining Maintenance Access" + }, +/turf/simulated/floor/tiled/techfloor, +/area/tether/surfacebase/cargo/mining) "abd" = ( /obj/machinery/atmospherics/unary/vent_pump/on, /obj/effect/floor_decal/borderfloor{ @@ -617,24 +695,26 @@ /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining) "abe" = ( -/obj/effect/floor_decal/borderfloor{ +/obj/machinery/light{ dir = 8 }, +/obj/effect/floor_decal/borderfloor{ + dir = 10 + }, /obj/effect/floor_decal/corner/brown/border{ - dir = 8 + dir = 10 }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/power/apc{ + name = "south bump"; + pixel_x = 0; + pixel_y = -32 }, -/obj/effect/floor_decal/steeldecal/steel_decals7{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/cyan, -/obj/machinery/vending/wallmed_airlock{ - pixel_x = -32 +/obj/machinery/light_switch{ + dir = 1; + pixel_x = -13; + pixel_y = -30 }, +/obj/structure/cable, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining) "abf" = ( @@ -670,18 +750,18 @@ /turf/simulated/floor/tiled, /area/rnd/hallway) "abh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, /obj/effect/floor_decal/borderfloor, /obj/effect/floor_decal/corner/brown/border, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining) @@ -704,40 +784,68 @@ }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining) -"abl" = ( -/obj/effect/floor_decal/borderfloor/corner{ - dir = 8 - }, -/obj/effect/floor_decal/corner/brown/bordercorner{ - dir = 8 - }, +"abk" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/obj/structure/cable/green{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/floor_decal/borderfloor, +/obj/effect/floor_decal/corner/brown/border, +/obj/structure/cable{ d1 = 4; d2 = 8; - icon_state = "4-8" + icon_state = "4-8"; + pixel_x = 0 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/obj/structure/cable/green{ - d1 = 2; +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo/mining) +"abl" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/floor_decal/borderfloor, +/obj/effect/floor_decal/corner/brown/border, +/obj/structure/extinguisher_cabinet{ + dir = 1; + icon_state = "extinguisher_closed"; + pixel_y = -32 + }, +/obj/structure/cable{ + d1 = 4; d2 = 8; - icon_state = "2-8" + icon_state = "4-8"; + pixel_x = 0 }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining) "abm" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/effect/floor_decal/borderfloor, +/obj/effect/floor_decal/corner/brown/border, +/obj/effect/floor_decal/borderfloor/corner2{ + dir = 9 }, -/obj/structure/cable/green{ - d1 = 2; +/obj/effect/floor_decal/corner/brown/bordercorner2{ + dir = 9 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -24 + }, +/obj/structure/cable{ + d1 = 4; d2 = 8; - icon_state = "2-8" + icon_state = "4-8"; + pixel_x = 0 }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining) @@ -825,42 +933,39 @@ /turf/simulated/floor/plating, /area/maintenance/lower/trash_pit) "abv" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/maintenance/cargo{ - name = "Mining Maintenance Access"; - req_one_access = list(48) +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/cyan, -/obj/structure/catwalk, -/turf/simulated/floor/tiled/techfloor, +/obj/machinery/alarm{ + dir = 1; + pixel_y = -25 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining) "abw" = ( -/obj/machinery/light{ +/obj/effect/floor_decal/steeldecal/steel_decals4{ + dir = 5 + }, +/obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 8 }, -/obj/effect/floor_decal/borderfloor{ +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10 }, -/obj/effect/floor_decal/corner/brown/border{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 10 }, -/obj/machinery/power/apc{ - name = "south bump"; - pixel_x = 0; - pixel_y = -32 - }, -/obj/structure/cable/green, -/obj/machinery/light_switch{ - dir = 1; - pixel_x = -13; - pixel_y = -30 +/obj/structure/cable{ + icon_state = "2-8" }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining) @@ -1000,21 +1105,17 @@ /turf/simulated/floor/plating, /area/maintenance/lower/trash_pit) "abI" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/cable/green{ +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, +/obj/machinery/atmospherics/pipe/simple/visible/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan, +/obj/structure/cable{ d1 = 1; - d2 = 4; - icon_state = "1-4" + d2 = 2; + icon_state = "1-2" }, -/obj/effect/floor_decal/borderfloor, -/obj/effect/floor_decal/corner/brown/border, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo/mining) +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/mining_eva) "abJ" = ( /obj/structure/catwalk, /obj/structure/cable{ @@ -1023,42 +1124,25 @@ /turf/simulated/floor/plating, /area/maintenance/lower/trash_pit) "abK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/door/airlock/glass_mining{ + name = "Warehouse" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/floor_decal/borderfloor, -/obj/effect/floor_decal/corner/brown/border, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo/mining) +/turf/simulated/floor/tiled/steel_grid, +/area/tether/surfacebase/cargo/warehouse) "abL" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/floor_decal/borderfloor, -/obj/effect/floor_decal/corner/brown/border, -/obj/structure/extinguisher_cabinet{ - dir = 1; - icon_state = "extinguisher_closed"; - pixel_y = -32 - }, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo/mining) +/turf/simulated/floor/plating, +/area/construction/vacant_mining_ops) "abM" = ( /obj/structure/catwalk, /obj/random/junk, @@ -1068,30 +1152,22 @@ /turf/simulated/floor/plating, /area/maintenance/lower/trash_pit) "abN" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ + dir = 9; + icon_state = "intact" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/effect/floor_decal/borderfloor, -/obj/effect/floor_decal/corner/brown/border, -/obj/effect/floor_decal/borderfloor/corner2{ - dir = 9 +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, -/obj/effect/floor_decal/corner/brown/bordercorner2{ - dir = 9 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -24 - }, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo/mining) +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/mining_eva) "abO" = ( /obj/machinery/door/airlock/maintenance/common{ name = "Trash Pit Access"; @@ -1105,23 +1181,19 @@ /turf/simulated/floor/plating, /area/maintenance/lower/trash_pit) "abP" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/effect/floor_decal/steeldecal/steel_decals4{ + dir = 9 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ +/obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/alarm{ - dir = 1; - pixel_y = -25 - }, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo/mining) +/turf/simulated/floor/tiled/steel_dirty, +/area/tether/surfacebase/cargo/warehouse) "abQ" = ( /obj/structure/catwalk, /obj/structure/cable{ @@ -1154,25 +1226,13 @@ /turf/simulated/wall, /area/maintenance/lower/mining_eva) "abU" = ( -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 5 +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 8 - }, -/obj/structure/cable/green{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo/mining) +/turf/simulated/floor/plating, +/area/construction/vacant_mining_ops) "abV" = ( /obj/effect/floor_decal/steeldecal/steel_decals4{ dir = 5 @@ -1182,6 +1242,17 @@ }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/mining) +"abW" = ( +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, +/obj/machinery/atmospherics/pipe/simple/visible/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/mining_eva) "abX" = ( /obj/structure/catwalk, /obj/effect/decal/cleanable/dirt, @@ -1220,19 +1291,16 @@ /turf/simulated/wall, /area/tether/surfacebase/cargo/warehouse) "acd" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 9 - }, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/simulated/floor/tiled/steel_dirty, /area/tether/surfacebase/cargo/warehouse) "ace" = ( @@ -1273,18 +1341,12 @@ /turf/simulated/floor/plating, /area/maintenance/lower/mining_eva) "ach" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /turf/simulated/floor/tiled/steel_dirty, /area/tether/surfacebase/cargo/warehouse) "aci" = ( @@ -1307,25 +1369,27 @@ /turf/simulated/floor/plating, /area/maintenance/lower/mining_eva) "ack" = ( -/obj/structure/cable/green{ - d1 = 4; +/obj/machinery/power/apc{ + dir = 4; + name = "east bump"; + pixel_x = 28 + }, +/obj/structure/cable{ d2 = 8; - icon_state = "4-8" + icon_state = "0-8" }, /turf/simulated/floor/tiled/steel_dirty, /area/tether/surfacebase/cargo/warehouse) "acl" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/maintenance/common, +/obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel_dirty, -/area/tether/surfacebase/cargo/warehouse) +/turf/simulated/floor/plating, +/area/tether/surfacebase/cargo) "acm" = ( /obj/structure/window/reinforced, /obj/structure/closet/crate, @@ -1445,15 +1509,28 @@ /turf/simulated/floor/tiled, /area/crew_quarters/visitor_laundry) "acx" = ( -/obj/structure/cable/green{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ +/obj/structure/catwalk, +/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ +/obj/machinery/atmospherics/pipe/simple/visible/supply{ dir = 5 }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/mining_eva) +"acy" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/simulated/floor/tiled/steel_dirty, /area/tether/surfacebase/cargo/warehouse) "acz" = ( @@ -1469,15 +1546,101 @@ /obj/machinery/vending/loadout, /turf/simulated/floor/tiled, /area/crew_quarters/visitor_laundry) -"acE" = ( -/obj/structure/cable/green{ - d2 = 8; - icon_state = "0-8" +"acA" = ( +/obj/effect/floor_decal/borderfloor{ + dir = 1 + }, +/obj/effect/floor_decal/corner/brown/border{ + dir = 1 }, /obj/machinery/power/apc{ - dir = 4; - name = "east bump"; - pixel_x = 28 + dir = 1; + name = "north bump"; + pixel_x = 0; + pixel_y = 28 + }, +/obj/effect/floor_decal/borderfloor/corner2{ + dir = 1 + }, +/obj/effect/floor_decal/corner/brown/bordercorner2{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2"; + d2 = 2 + }, +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo) +"acB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo) +"acC" = ( +/obj/structure/table/rack, +/obj/random/maintenance/cargo, +/obj/random/maintenance/cargo, +/obj/random/maintenance/clean, +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/mining_eva) +"acD" = ( +/obj/structure/catwalk, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/mining_eva) +"acE" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether/surfacebase/cargo/warehouse) +"acF" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled/steel_dirty, +/area/tether/surfacebase/cargo/warehouse) +"acG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 }, /turf/simulated/floor/tiled/steel_dirty, /area/tether/surfacebase/cargo/warehouse) @@ -1487,6 +1650,27 @@ }, /turf/simulated/floor/tiled/steel_dirty, /area/tether/surfacebase/cargo/warehouse) +"acI" = ( +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/shutters{ + dir = 8; + id = "mine_warehouse"; + name = "Warehouse Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo/warehouse) "acJ" = ( /obj/effect/floor_decal/borderfloor, /obj/effect/floor_decal/corner/lightgrey/border, @@ -1534,16 +1718,16 @@ /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo) "acM" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/maintenance/common, -/turf/simulated/floor/plating, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, /area/tether/surfacebase/cargo) "acN" = ( /obj/structure/cable/ender{ @@ -1572,27 +1756,21 @@ /turf/simulated/floor/tiled/steel_dirty, /area/tether/surfacebase/cargo/warehouse) "acP" = ( -/obj/effect/floor_decal/borderfloor{ +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ dir = 1 }, -/obj/effect/floor_decal/corner/brown/border{ +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ dir = 1 }, -/obj/machinery/power/apc{ - dir = 1; - name = "north bump"; - pixel_x = 0; - pixel_y = 28 +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" }, -/obj/structure/cable/green{ - d2 = 2; - icon_state = "0-2" +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/floor_decal/borderfloor/corner2{ - dir = 1 - }, -/obj/effect/floor_decal/corner/brown/bordercorner2{ - dir = 1 +/obj/structure/cable{ + icon_state = "4-8" }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo) @@ -1605,31 +1783,25 @@ /turf/simulated/floor/plating, /area/maintenance/lower/mining_eva) "acR" = ( -/obj/effect/floor_decal/borderfloor{ - dir = 10 - }, -/obj/effect/floor_decal/corner/brown/border{ - dir = 10 - }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/green{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/cyan, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" }, /turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo/mining) +/area/tether/surfacebase/cargo) "acS" = ( /obj/machinery/atmospherics/pipe/tank/air{ dir = 4 @@ -1778,6 +1950,21 @@ "adf" = ( /turf/simulated/wall, /area/tether/surfacebase/cargo) +"adg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo) "adh" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/structure/cable/green{ @@ -1850,6 +2037,21 @@ }, /turf/simulated/floor/plating, /area/maintenance/lower/mining_eva) +"adm" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo) "adn" = ( /obj/effect/floor_decal/industrial/warning{ icon_state = "warning"; @@ -1874,65 +2076,64 @@ /turf/simulated/floor/plating, /area/maintenance/lower/mining_eva) "adq" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 }, -/turf/simulated/floor/tiled/steel_dirty, -/area/tether/surfacebase/cargo/warehouse) -"adr" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, -/turf/simulated/floor/tiled/steel_dirty, -/area/tether/surfacebase/cargo/warehouse) -"ads" = ( -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/blast/shutters{ - dir = 8; - id = "mine_warehouse"; - name = "Warehouse Shutters" - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo/warehouse) -"adt" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo) +"adr" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo) +"ads" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo) +"adt" = ( +/obj/machinery/space_heater, +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/mining_eva) "adu" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -1954,25 +2155,11 @@ /turf/simulated/floor/tiled, /area/hallway/lower/first_west) "adv" = ( -/obj/structure/cable/green{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4; - icon_state = "pipe-c" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo) @@ -1986,24 +2173,24 @@ /turf/simulated/floor/plating, /area/construction/vacant_mining_ops) "ady" = ( -/obj/structure/cable/green{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plating, -/area/construction/vacant_mining_ops) +/obj/machinery/portable_atmospherics/powered/pump/filled, +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/mining_eva) "adz" = ( -/obj/structure/cable/green{ +/obj/structure/catwalk, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ d1 = 1; d2 = 2; icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plating, -/area/construction/vacant_mining_ops) +/turf/simulated/floor/tiled/techfloor, +/area/maintenance/lower/mining_eva) "adA" = ( /obj/structure/disposaloutlet{ dir = 8 @@ -2018,44 +2205,31 @@ /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo) "adB" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/floor_decal/borderfloor, +/obj/effect/floor_decal/corner/brown/border, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/obj/structure/window/reinforced{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo) "adC" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/machinery/door/airlock/glass_mining{ + id_tag = "cargodoor"; + name = "Cargo Office"; + req_access = list(31); + req_one_access = list() }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" }, /turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo) +/area/tether/surfacebase/cargo/office) "adD" = ( /obj/structure/disposalpipe/segment{ dir = 8; @@ -2239,6 +2413,44 @@ }, /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo) +"adQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo/office) +"adR" = ( +/obj/machinery/power/apc{ + dir = 8; + name = "west bump"; + pixel_x = -28 + }, +/obj/structure/bed/chair/sofa/brown/left{ + dir = 4 + }, +/obj/effect/floor_decal/borderfloor{ + dir = 8; + icon_state = "borderfloor"; + pixel_x = 0 + }, +/obj/effect/floor_decal/corner/brown/border{ + dir = 8 + }, +/obj/effect/floor_decal/borderfloor/corner2{ + dir = 8 + }, +/obj/effect/floor_decal/corner/brown/bordercorner2{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4"; + d2 = 4 + }, +/turf/simulated/floor/tiled, +/area/tether/surfacebase/cargo/office) "adS" = ( /turf/simulated/floor/tiled/steel_dirty, /area/tether/surfacebase/cargo/warehouse) @@ -2252,22 +2464,11 @@ /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo/warehouse) "adU" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; +/obj/structure/cable{ icon_state = "4-8" }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo) +/area/tether/surfacebase/cargo/office) "adV" = ( /obj/structure/table/glass, /obj/machinery/atmospherics/unary/vent_scrubber/on{ @@ -2366,62 +2567,62 @@ /turf/simulated/floor/tiled, /area/tether/surfacebase/cargo) "aea" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" + dir = 5 }, /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8" }, /turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo) +/area/tether/surfacebase/cargo/office) "aeb" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 +/obj/machinery/door/airlock/maintenance/engi{ + name = "Atmospherics Substation" }, -/obj/structure/window/reinforced{ - dir = 1 +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/regular{ + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "atmoslockdown"; + layer = 1; + name = "Atmospherics Lockdown"; + opacity = 0; + open_layer = 1 }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo) +/turf/simulated/floor/plating, +/area/maintenance/substation/surface_atmos) "aec" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/catwalk, +/obj/machinery/door/airlock/maintenance/engi{ + name = "Atmospherics"; + req_access = list(24) }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/regular{ + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "atmoslockdown"; + layer = 1; + name = "Atmospherics Lockdown"; + opacity = 0; + open_layer = 1 }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo) +/turf/simulated/floor/plating, +/area/engineering/atmos) "aed" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2477,23 +2678,25 @@ /turf/simulated/floor/plating, /area/maintenance/lower/trash_pit) "aej" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/door/airlock/maintenance/engi{ - name = "Atmospherics Substation" + name = "Atmospherics"; + req_access = list(24) }, /obj/machinery/door/firedoor/glass, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/door/blast/regular{ density = 0; dir = 4; icon_state = "pdoor0"; id = "atmoslockdown"; + layer = 1; name = "Atmospherics Lockdown"; - opacity = 0 + opacity = 0; + open_layer = 1 }, /turf/simulated/floor/plating, -/area/maintenance/substation/surface_atmos) +/area/engineering/atmos/processing) "aek" = ( /obj/effect/floor_decal/techfloor, /obj/structure/railing{ @@ -2567,24 +2770,23 @@ /turf/simulated/floor/tiled, /area/hallway/lower/first_west) "aer" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 8; - icon_state = "1-8" +/obj/machinery/door/airlock/maintenance/engi{ + name = "Atmospherics"; + req_access = list(24) }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9; - pixel_y = 0 +/obj/machinery/door/firedoor, +/obj/machinery/door/blast/regular{ + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "atmoslockdown"; + layer = 1; + name = "Atmospherics Lockdown"; + opacity = 0; + open_layer = 1 }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo) +/turf/simulated/floor/plating, +/area/engineering/atmos) "aes" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -2619,16 +2821,23 @@ /turf/simulated/floor/tiled, /area/hallway/lower/first_west) "aeu" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/door/airlock/maintenance/engi{ + name = "Atmospherics"; + req_access = list(24) }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo) +/obj/machinery/door/blast/regular{ + density = 0; + dir = 1; + icon_state = "pdoor0"; + id = "atmoslockdown"; + layer = 1; + name = "Atmospherics Lockdown"; + opacity = 0; + open_layer = 1 + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plating, +/area/engineering/atmos/processing) "aev" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4 @@ -2661,9 +2870,6 @@ }, /turf/simulated/floor/tiled, /area/hallway/lower/first_west) -"aex" = ( -/turf/simulated/wall, -/area/maintenance/substation/mining) "aey" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -2833,23 +3039,6 @@ }, /turf/simulated/floor/tiled, /area/tether/surfacebase/north_stairs_one) -"aeM" = ( -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ - dir = 9; - icon_state = "intact" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor, -/area/maintenance/lower/mining_eva) "aeN" = ( /obj/machinery/conveyor{ dir = 8; @@ -2906,19 +3095,6 @@ dir = 8 }, /area/tether/surfacebase/surface_one_hall) -"aeR" = ( -/obj/effect/floor_decal/borderfloor, -/obj/effect/floor_decal/corner/brown/border, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo) "aeS" = ( /obj/effect/floor_decal/borderfloor{ dir = 10 @@ -3092,23 +3268,6 @@ "afd" = ( /turf/simulated/floor/tiled/techfloor, /area/maintenance/lower/mining_eva) -"afe" = ( -/obj/machinery/door/airlock/glass_mining{ - id_tag = "cargodoor"; - name = "Cargo Office"; - req_access = list(31); - req_one_access = list() - }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo/office) "aff" = ( /obj/machinery/door/firedoor/glass, /obj/effect/floor_decal/steeldecal/steel_decals_central1{ @@ -3118,17 +3277,6 @@ dir = 4 }, /area/tether/surfacebase/cargo) -"afg" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo/office) "afh" = ( /obj/effect/floor_decal/spline/plain{ dir = 4 @@ -3320,22 +3468,6 @@ /obj/machinery/lapvend, /turf/simulated/floor/tiled, /area/storage/primary) -"afu" = ( -/obj/structure/cable/green{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo/office) "afv" = ( /obj/structure/closet/firecloset, /turf/simulated/floor/tiled, @@ -3661,12 +3793,6 @@ /obj/structure/table/standard, /turf/simulated/floor/tiled, /area/storage/primary) -"afX" = ( -/obj/machinery/power/breakerbox/activated{ - RCon_tag = "Mining Substation Bypass" - }, -/turf/simulated/floor, -/area/maintenance/substation/mining) "afY" = ( /obj/machinery/camera/network/civilian, /turf/simulated/floor/tiled, @@ -4049,18 +4175,6 @@ }, /turf/simulated/floor/tiled/white, /area/rnd/chemistry_lab) -"aha" = ( -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/cyan, -/turf/simulated/floor/tiled/techfloor, -/area/maintenance/lower/mining_eva) "ahc" = ( /obj/machinery/portable_atmospherics/powered/scrubber/huge/stationary{ scrub_id = "atrium" @@ -4710,25 +4824,6 @@ /obj/machinery/light/small, /turf/simulated/floor/plating, /area/storage/surface_eva) -"aiB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/catwalk, -/obj/machinery/door/airlock/maintenance/engi{ - name = "Atmospherics"; - req_access = list(24) - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "atmoslockdown"; - name = "Atmospherics Lockdown"; - opacity = 0 - }, -/turf/simulated/floor/plating, -/area/engineering/atmos) "aiD" = ( /obj/effect/floor_decal/borderfloor{ dir = 8 @@ -6154,17 +6249,6 @@ }, /turf/simulated/floor/tiled/techfloor, /area/tether/surfacebase/public_garden) -"alt" = ( -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/techfloor, -/area/maintenance/lower/mining_eva) "alw" = ( /obj/effect/floor_decal/borderfloor{ dir = 10 @@ -6260,29 +6344,6 @@ }, /turf/simulated/floor/tiled, /area/tether/surfacebase/public_garden) -"alC" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/simulated/wall, -/area/maintenance/substation/mining) -"alD" = ( -/obj/structure/catwalk, -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/visible/supply{ - dir = 5 - }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/tiled/techfloor, -/area/maintenance/lower/mining_eva) "alM" = ( /obj/effect/floor_decal/borderfloor{ dir = 10 @@ -6365,73 +6426,6 @@ }, /turf/simulated/floor/tiled, /area/tether/surfacebase/public_garden) -"alS" = ( -/obj/machinery/power/sensor{ - name = "Powernet Sensor - Mining Subgrid"; - name_tag = "Mining Subgrid" - }, -/obj/structure/cable/green{ - icon_state = "0-4" - }, -/obj/structure/cable/green{ - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/floor_decal/industrial/warning, -/obj/random/drinkbottle, -/turf/simulated/floor, -/area/maintenance/substation/mining) -"alT" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 8 - }, -/obj/effect/floor_decal/rust, -/turf/simulated/floor, -/area/maintenance/substation/mining) -"alU" = ( -/obj/structure/cable/green{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/floor_decal/rust, -/turf/simulated/floor, -/area/maintenance/substation/mining) -"alV" = ( -/obj/machinery/door/airlock/engineering{ - name = "Mining Substation"; - req_one_access = list(11,24) - }, -/obj/machinery/door/firedoor/glass, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor, -/area/maintenance/substation/mining) -"alW" = ( -/obj/structure/catwalk, -/obj/structure/cable/green{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/simulated/floor/tiled/techfloor, -/area/maintenance/lower/mining_eva) "alX" = ( /obj/structure/railing{ dir = 8 @@ -6552,43 +6546,6 @@ }, /turf/simulated/floor/tiled, /area/storage/primary) -"amn" = ( -/obj/machinery/power/smes/buildable{ - charge = 0; - output_attempt = 0; - outputting = 0; - RCon_tag = "Substation - Mining" - }, -/obj/structure/cable/green, -/obj/structure/cable/green{ - d2 = 2; - icon_state = "0-2" - }, -/turf/simulated/floor, -/area/maintenance/substation/mining) -"amo" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "0-2"; - d2 = 2 - }, -/turf/simulated/floor, -/area/maintenance/substation/mining) -"amp" = ( -/obj/machinery/power/apc{ - dir = 4; - name = "east bump"; - pixel_x = 28 - }, -/obj/structure/cable/green, -/obj/effect/floor_decal/rust, -/turf/simulated/floor, -/area/maintenance/substation/mining) "amq" = ( /obj/structure/railing{ dir = 8 @@ -6704,68 +6661,6 @@ }, /turf/simulated/floor/tiled, /area/storage/primary) -"amI" = ( -/obj/effect/floor_decal/industrial/warning/corner{ - dir = 1 - }, -/obj/structure/cable{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 8 - }, -/obj/machinery/camera/network/engineering{ - dir = 1 - }, -/turf/simulated/floor, -/area/maintenance/substation/mining) -"amJ" = ( -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/turf/simulated/floor, -/area/maintenance/substation/mining) -"amK" = ( -/obj/machinery/door/firedoor/glass, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/machinery/door/airlock/engineering{ - name = "Mining Substation"; - req_one_access = list(11,24) - }, -/turf/simulated/floor, -/area/maintenance/substation/mining) -"amL" = ( -/obj/structure/catwalk, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8"; - pixel_x = 0 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/turf/simulated/floor/tiled/techfloor, -/area/maintenance/lower/mining_eva) "amM" = ( /obj/structure/railing{ dir = 8 @@ -24019,24 +23914,6 @@ "aOR" = ( /turf/simulated/wall/r_wall, /area/engineering/atmos/processing) -"aOS" = ( -/obj/machinery/door/airlock/maintenance/engi{ - name = "Atmospherics"; - req_access = list(24) - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "atmoslockdown"; - name = "Atmospherics Lockdown"; - opacity = 0 - }, -/turf/simulated/floor/plating, -/area/engineering/atmos/processing) "aOT" = ( /obj/effect/floor_decal/borderfloor{ dir = 8 @@ -26763,22 +26640,6 @@ }, /turf/simulated/floor/tiled/techmaint, /area/engineering/atmos) -"aTT" = ( -/obj/machinery/door/airlock/maintenance/engi{ - name = "Atmospherics"; - req_access = list(24) - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "atmoslockdown"; - name = "Atmospherics Lockdown"; - opacity = 0 - }, -/turf/simulated/floor/plating, -/area/engineering/atmos) "aTU" = ( /obj/effect/floor_decal/steeldecal/steel_decals7{ dir = 6 @@ -27958,21 +27819,6 @@ /obj/effect/decal/cleanable/dirt, /turf/simulated/floor/plating, /area/engineering/atmos/processing) -"aVY" = ( -/obj/machinery/door/airlock/maintenance/engi{ - name = "Atmospherics"; - req_access = list(24) - }, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 1; - icon_state = "pdoor0"; - id = "atmoslockdown"; - name = "Atmospherics Lockdown"; - opacity = 0 - }, -/turf/simulated/floor/plating, -/area/engineering/atmos/processing) "aVZ" = ( /obj/machinery/vending/boozeomat, /turf/simulated/floor/wood, @@ -30494,35 +30340,6 @@ }, /turf/simulated/floor/plating, /area/tether/surfacebase/cargo/office) -"bbs" = ( -/obj/machinery/power/apc{ - dir = 8; - name = "west bump"; - pixel_x = -28 - }, -/obj/structure/cable/green{ - d2 = 4; - icon_state = "0-4" - }, -/obj/structure/bed/chair/sofa/brown/left{ - dir = 4 - }, -/obj/effect/floor_decal/borderfloor{ - dir = 8; - icon_state = "borderfloor"; - pixel_x = 0 - }, -/obj/effect/floor_decal/corner/brown/border{ - dir = 8 - }, -/obj/effect/floor_decal/borderfloor/corner2{ - dir = 8 - }, -/obj/effect/floor_decal/corner/brown/bordercorner2{ - dir = 8 - }, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo/office) "bbt" = ( /obj/effect/floor_decal/borderfloor{ dir = 5 @@ -30545,14 +30362,6 @@ }, /turf/simulated/floor/tiled, /area/tether/surfacebase/surface_one_hall) -"bbv" = ( -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/tiled, -/area/tether/surfacebase/cargo/office) "bbw" = ( /obj/structure/table/rack, /obj/random/maintenance/cargo, @@ -31822,12 +31631,6 @@ /obj/random/trash_pile, /turf/simulated/floor/plating, /area/maintenance/lower/vacant_site) -"obY" = ( -/obj/machinery/alarm{ - pixel_y = 22 - }, -/turf/simulated/floor/plating, -/area/maintenance/substation/mining) "orF" = ( /obj/machinery/light/small{ dir = 4; @@ -31891,9 +31694,6 @@ }, /turf/simulated/floor/tiled/techmaint, /area/looking_glass/lg_1) -"vNx" = ( -/turf/simulated/floor/plating, -/area/maintenance/substation/mining) "xOH" = ( /obj/effect/floor_decal/spline/plain{ dir = 8 @@ -31909,11 +31709,6 @@ }, /turf/simulated/floor/tiled/techmaint, /area/looking_glass/lg_1) -"yiv" = ( -/obj/structure/closet/crate, -/obj/random/maintenance/cargo, -/turf/simulated/floor/plating, -/area/maintenance/substation/mining) (1,1,1) = {" aaa @@ -40241,7 +40036,7 @@ aLv aJD aJD aJD -aOS +aej aPm aPN aQr @@ -41250,7 +41045,7 @@ aOR aOR aOR aOR -aVY +aeu aOR aOR aOR @@ -41933,7 +41728,7 @@ aah aah aBO aHd -aej +aeb aIe aIM aJG @@ -42031,12 +41826,12 @@ abT abT abT abT -aex -aex -aex -aex -aex -aex +abT +abT +abT +abT +abT +abT abT abT bbI @@ -42173,12 +41968,12 @@ cGJ acS acS adp -aex -yiv -alS -amn -afX -aex +abT +aah +aah +aah +aah +aah aah abT bbJ @@ -42315,12 +42110,12 @@ acj acX acX adL -aex -vNx -alT -amo -amI -aex +abT +aah +aah +aah +aah +aah aah abT bbI @@ -42457,12 +42252,12 @@ acQ adl ado adM -aex -obY -alU -amp -amJ -aex +abT +abT +abT +abT +abT +abT aah abT bbI @@ -42599,12 +42394,12 @@ aar aar abT adN -aex -alC -alV -aex -amK -alC +abT +agd +acC +adt +ady +abT abT abT bbI @@ -42736,16 +42531,16 @@ aaz aaB aaG aaM -abe -acR -abv -aha -aeM -alt -alD -alW -afA -amL +aaP +aaY +abc +abI +abN +abW +acx +acD +acD +adz amW amW and @@ -42879,7 +42674,7 @@ aaC aaH aaN aaS -abh +aaZ aar abT abT @@ -43021,8 +42816,8 @@ aan aar aar abi -abl -abw +aba +abe abT acg abT @@ -43070,7 +42865,7 @@ aFN aGs aHi aHA -aiB +aec aIT aJL aKu @@ -43163,8 +42958,8 @@ aah aah aar aaX -abm -abI +abb +abh acc acc acc @@ -43306,7 +43101,7 @@ aah aar aaX agm -abK +abk acc abZ abZ @@ -43448,7 +43243,7 @@ aah aar aaX agm -abL +abl acc adS adS @@ -43590,7 +43385,7 @@ aah aar abd abn -abN +abm acc aca adS @@ -43658,7 +43453,7 @@ aRJ aSe aSO aTr -aTT +aer aTZ aUE aUE @@ -43732,7 +43527,7 @@ aah aar aaX agm -abP +abv acc adS adS @@ -43874,12 +43669,12 @@ aah aar aaX agm -abU -aaP +abw +abK +abP acd -ach -acl -acx +acy +acE adS afM acc @@ -44019,9 +43814,9 @@ abo abV abY ace -ack +ach acH -adq +acF adS aeJ afm @@ -44161,9 +43956,9 @@ aar aar acc acf -acE +ack acO -adr +acG adS agj acc @@ -44305,12 +44100,12 @@ acc acc acc acc -ads +acI adT acc amc amP -bbs +adR aHM amc aii @@ -44447,12 +44242,12 @@ aaL aaL adf acK -adt +acM adZ aeS amw afS -bbv +adU bbC amc bbl @@ -44589,12 +44384,12 @@ aaL aaL adf acL +acP adv -aeu -aeR -afe -afg -afu +adB +adC +adQ +aea aeg bbW bbm @@ -44730,8 +44525,8 @@ aaL aaL aaL adf -acP -adC +acA +acR aee aeZ amc @@ -44873,7 +44668,7 @@ aaL aaL adf afO -adU +adg acY acY adE @@ -45015,7 +44810,7 @@ aaL aaL adf acU -aea +adm aef afb amc @@ -45157,7 +44952,7 @@ aaL aaL adf aeE -aeb +adq acY aeU amc @@ -45299,7 +45094,7 @@ aaL aaL adf adA -aec +adr aes aeY afn @@ -45437,11 +45232,11 @@ aaL aaL adw adx -ady -adz -acM -adB -aer +abL +abU +acl +acB +ads agq acY aff diff --git a/maps/tether/tether-02-surface2.dmm b/maps/tether/tether-02-surface2.dmm index 07208a4295..39011de5dd 100644 --- a/maps/tether/tether-02-surface2.dmm +++ b/maps/tether/tether-02-surface2.dmm @@ -2649,6 +2649,31 @@ }, /turf/simulated/floor/tiled/techfloor, /area/maintenance/lower/bar) +"afw" = ( +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/maintenance/command{ + req_access = list(19) + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable/green{ + icon_state = "1-2"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/blast/regular{ + closed_layer = 10; + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "bridge blast"; + layer = 1; + name = "Bridge Blast Doors"; + opacity = 0; + open_layer = 1 + }, +/turf/simulated/floor, +/area/bridge_hallway) "afx" = ( /obj/structure/catwalk, /obj/structure/cable{ @@ -3154,6 +3179,33 @@ /obj/effect/floor_decal/industrial/outline/yellow, /turf/simulated/floor/plating, /area/maintenance/lower/bar) +"agD" = ( +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/maintenance/command{ + req_access = list(19) + }, +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/door/blast/regular{ + closed_layer = 10; + density = 0; + dir = 1; + icon_state = "pdoor0"; + id = "bridge blast"; + layer = 1; + name = "Bridge Blast Doors"; + opacity = 0; + open_layer = 1 + }, +/turf/simulated/floor, +/area/bridge_hallway) "agE" = ( /obj/structure/railing{ dir = 8 @@ -3298,6 +3350,30 @@ /obj/structure/catwalk, /turf/simulated/floor/tiled/techfloor/grid, /area/maintenance/lower/bar) +"agX" = ( +/obj/structure/cable/cyan{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan, +/obj/machinery/door/airlock/glass_atmos{ + name = "Atmospherics"; + req_access = list(24) + }, +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/regular{ + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "atmoslockdown"; + layer = 1; + name = "Atmospherics Lockdown"; + opacity = 0; + open_layer = 1 + }, +/turf/simulated/floor/tiled, +/area/engineering/lower/lobby) "agY" = ( /obj/structure/sign/department/chapel, /turf/simulated/wall, @@ -3376,6 +3452,29 @@ }, /turf/simulated/floor/tiled/white, /area/tether/surfacebase/medical/storage) +"ahj" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/red, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/airlock/glass_atmos{ + name = "Atmospherics"; + req_access = list(24) + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/regular{ + closed_layer = 10; + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "atmoslockdown"; + layer = 1; + name = "Atmospherics Lockdown"; + opacity = 0; + open_layer = 1 + }, +/turf/simulated/floor/tiled, +/area/engineering/lower/lobby) "ahk" = ( /obj/structure/catwalk, /obj/structure/disposalpipe/segment{ @@ -7876,27 +7975,26 @@ /turf/simulated/floor/tiled/techmaint, /area/tether/surfacebase/surface_two_hall) "apQ" = ( +/obj/machinery/door/airlock/maintenance/engi{ + name = "Atmospherics"; + req_access = list(24) + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/maintenance/command{ - req_access = list(19) - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/green{ - icon_state = "1-2"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/door/blast/regular{ density = 0; - dir = 4; + dir = 1; icon_state = "pdoor0"; - id = "bridge blast"; - name = "Bridge Blast Doors"; - opacity = 0 + id = "atmoslockdown"; + layer = 1; + name = "Atmospherics Lockdown"; + opacity = 0; + open_layer = 1 }, -/turf/simulated/floor, -/area/bridge_hallway) +/turf/simulated/floor/plating, +/area/engineering/atmos) "apR" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 9 @@ -9851,27 +9949,25 @@ /turf/simulated/floor/tiled, /area/engineering/lower/lobby) "atm" = ( -/obj/structure/cable/cyan{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/cyan, -/obj/machinery/door/airlock/glass_atmos{ +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/airlock/maintenance/engi{ name = "Atmospherics"; req_access = list(24) }, -/obj/machinery/door/firedoor/glass, +/obj/structure/catwalk, /obj/machinery/door/blast/regular{ density = 0; dir = 4; icon_state = "pdoor0"; id = "atmoslockdown"; + layer = 1; name = "Atmospherics Lockdown"; - opacity = 0 + opacity = 0; + open_layer = 1 }, -/turf/simulated/floor/tiled, -/area/engineering/lower/lobby) +/turf/simulated/floor/plating, +/area/engineering/atmos) "atn" = ( /obj/structure/cable/cyan{ d1 = 4; @@ -10833,25 +10929,29 @@ /turf/simulated/wall/r_wall, /area/engineering/lower/lobby) "avd" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/red, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/door/airlock/glass_atmos{ - name = "Atmospherics"; +/obj/machinery/door/airlock/maintenance/engi{ + name = "Drone Bay"; req_access = list(24) }, -/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, /obj/machinery/door/firedoor/glass, /obj/machinery/door/blast/regular{ density = 0; - dir = 4; + dir = 1; icon_state = "pdoor0"; id = "atmoslockdown"; + layer = 1; name = "Atmospherics Lockdown"; - opacity = 0 + opacity = 0; + open_layer = 1 }, -/turf/simulated/floor/tiled, -/area/engineering/lower/lobby) +/turf/simulated/floor/tiled/techfloor/grid, +/area/engineering/drone_fabrication) "ave" = ( /obj/effect/floor_decal/borderfloor{ dir = 1; @@ -10990,6 +11090,25 @@ }, /turf/simulated/floor/plating, /area/maintenance/lower/south) +"avp" = ( +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/maintenance/engi{ + name = "Atmospherics Balcony"; + req_access = list(24) + }, +/obj/structure/catwalk, +/obj/machinery/door/blast/regular{ + density = 0; + dir = 1; + icon_state = "pdoor0"; + id = "atmoslockdown"; + layer = 1; + name = "Atmospherics Lockdown"; + opacity = 0; + open_layer = 1 + }, +/turf/simulated/floor/plating, +/area/engineering/atmos) "avq" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/manifold/hidden/supply{ @@ -15739,25 +15858,6 @@ /obj/structure/catwalk, /turf/simulated/floor/plating, /area/maintenance/asmaint2) -"aCY" = ( -/obj/machinery/door/airlock/maintenance/engi{ - name = "Atmospherics"; - req_access = list(24) - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 1; - icon_state = "pdoor0"; - id = "atmoslockdown"; - name = "Atmospherics Lockdown"; - opacity = 0 - }, -/turf/simulated/floor/plating, -/area/engineering/atmos) "aCZ" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -16646,24 +16746,6 @@ /obj/random/tech_supply, /turf/simulated/floor/tiled/steel_dirty, /area/maintenance/asmaint2) -"aFa" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/door/airlock/maintenance/engi{ - name = "Atmospherics"; - req_access = list(24) - }, -/obj/structure/catwalk, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "atmoslockdown"; - name = "Atmospherics Lockdown"; - opacity = 0 - }, -/turf/simulated/floor/plating, -/area/engineering/atmos) "aFb" = ( /obj/structure/catwalk, /turf/simulated/open, @@ -24932,30 +25014,6 @@ /obj/structure/bed/padded, /turf/simulated/floor/tiled, /area/tether/surfacebase/security/solitary) -"aTK" = ( -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/maintenance/command{ - req_access = list(19) - }, -/obj/structure/cable/green{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 1; - icon_state = "pdoor0"; - id = "bridge blast"; - name = "Bridge Blast Doors"; - opacity = 0 - }, -/turf/simulated/floor, -/area/bridge_hallway) "aTL" = ( /obj/structure/cable/green{ icon_state = "4-8" @@ -26591,28 +26649,6 @@ }, /turf/simulated/floor/tiled/dark, /area/tether/surfacebase/security/brig) -"aVV" = ( -/obj/machinery/door/airlock/maintenance/engi{ - name = "Drone Bay"; - req_access = list(24) - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 1; - icon_state = "pdoor0"; - id = "atmoslockdown"; - name = "Atmospherics Lockdown"; - opacity = 0 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/engineering/drone_fabrication) "aVW" = ( /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ dir = 4 @@ -27236,23 +27272,6 @@ }, /turf/simulated/floor/reinforced, /area/rnd/outpost/xenobiology/outpost_slimepens) -"aWN" = ( -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/maintenance/engi{ - name = "Atmospherics Balcony"; - req_access = list(24) - }, -/obj/structure/catwalk, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 1; - icon_state = "pdoor0"; - id = "atmoslockdown"; - name = "Atmospherics Lockdown"; - opacity = 0 - }, -/turf/simulated/floor/plating, -/area/engineering/atmos) "aWO" = ( /obj/machinery/atmospherics/pipe/simple/hidden/green{ icon_state = "intact"; @@ -38423,7 +38442,7 @@ auk aAT aAT aAT -aVV +avd aAT aAT aAT @@ -38560,7 +38579,7 @@ atJ axP auv azl -aCY +apQ aAT aAT aBW @@ -39282,7 +39301,7 @@ aAU aAT azl azl -aWN +avp azl azl aEp @@ -40399,7 +40418,7 @@ asF ati atT auC -atm +agX avH awx axm @@ -40683,7 +40702,7 @@ asG atk atV auE -avd +ahj avJ awz axo @@ -41798,7 +41817,7 @@ aYg aXY aqy aob -aTK +agD asc avj aWY @@ -41934,7 +41953,7 @@ aiW anx apU arp -apQ +afw apS aXG aYa @@ -42111,7 +42130,7 @@ ayh ayO azG aAB -aFa +atm aBN aCj aBO diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm index a6148c7937..d4c6452678 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -13483,27 +13483,36 @@ /area/hallway/lower/third_south) "awI" = ( /obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/maintenance/command{ - req_access = list(19) +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/airlock/glass_security{ + id_tag = "SurfaceFoyer"; + layer = 2.8; + name = "Security"; + req_access = list(1) }, /obj/machinery/door/blast/regular{ density = 0; - dir = 4; + dir = 1; icon_state = "pdoor0"; - id = "bridge blast"; - name = "Bridge Blast Doors"; - opacity = 0 + id = "surfbriglockdown"; + layer = 1; + name = "Security Blast Doors"; + opacity = 0; + open_layer = 1 }, -/turf/simulated/floor, -/area/bridge_hallway) +/obj/structure/cable/green{ + icon_state = "4-8" + }, +/turf/simulated/floor/tiled/steel_grid, +/area/tether/surfacebase/security/lobby) "awJ" = ( /turf/simulated/wall, /area/maintenance/lower/atrium) @@ -27062,37 +27071,47 @@ /area/maintenance/lower/mining) "aTt" = ( /obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/glass_command{ - dir = 1; - name = "Bridge"; +/obj/machinery/door/airlock/maintenance/command{ req_access = list(19) }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable/green{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, /obj/machinery/door/blast/regular{ + closed_layer = 10; density = 0; - dir = 1; + dir = 4; icon_state = "pdoor0"; id = "bridge blast"; + layer = 1; name = "Bridge Blast Doors"; - opacity = 0 + opacity = 0; + open_layer = 1 }, -/turf/simulated/floor/tiled/dark, -/area/bridge) +/turf/simulated/floor, +/area/bridge_hallway) "aTu" = ( /obj/machinery/door/firedoor/glass, /obj/machinery/door/airlock/glass_command{ + dir = 1; name = "Bridge"; req_access = list(19) }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/door/blast/regular{ + closed_layer = 10; density = 0; dir = 1; icon_state = "pdoor0"; id = "bridge blast"; + layer = 1; name = "Bridge Blast Doors"; - opacity = 0 + opacity = 0; + open_layer = 1 }, /turf/simulated/floor/tiled/dark, /area/bridge) @@ -27758,34 +27777,26 @@ /area/tether/surfacebase/security/common) "aUy" = ( /obj/machinery/door/firedoor/glass, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 +/obj/machinery/door/airlock/glass_command{ + name = "Bridge"; + req_access = list(19) }, /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/door/airlock/glass_security{ - id_tag = "SurfaceFoyer"; - layer = 2.8; - name = "Security"; - req_access = list(1) - }, /obj/machinery/door/blast/regular{ + closed_layer = 10; density = 0; dir = 1; icon_state = "pdoor0"; - id = "surfbriglockdown"; - name = "Security Blast Doors"; - opacity = 0 + id = "bridge blast"; + layer = 1; + name = "Bridge Blast Doors"; + opacity = 0; + open_layer = 1 }, -/obj/structure/cable/green{ - icon_state = "4-8" - }, -/turf/simulated/floor/tiled/steel_grid, -/area/tether/surfacebase/security/lobby) +/turf/simulated/floor/tiled/dark, +/area/bridge) "aUz" = ( /obj/effect/floor_decal/steeldecal/steel_decals6{ dir = 9 @@ -29770,10 +29781,26 @@ /turf/simulated/floor/wood, /area/library) "aXx" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/simulated/floor/reinforced, -/turf/simulated/shuttle/plating/carry, -/area/shuttle/tether) +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/regular{ + closed_layer = 10; + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "bridge blast"; + layer = 1; + name = "Bridge Blast Doors"; + opacity = 0; + open_layer = 1 + }, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/obj/structure/cable/green{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/bridge) "aXy" = ( /obj/structure/table/standard, /obj/item/weapon/gun/energy/taser/xeno, @@ -29813,12 +29840,29 @@ /turf/simulated/floor/tiled/white, /area/rnd/outpost/xenobiology/outpost_first_aid) "aXB" = ( -/obj/machinery/atmospherics/unary/engine{ - dir = 1 +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/regular{ + closed_layer = 10; + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "bridge blast"; + layer = 1; + name = "Bridge Blast Doors"; + opacity = 0; + open_layer = 1 }, -/turf/simulated/floor/reinforced, -/turf/simulated/shuttle/plating/carry, -/area/shuttle/tourbus/engines) +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/obj/structure/cable/green{ + icon_state = "0-4" + }, +/obj/structure/cable/green{ + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/bridge) "aXC" = ( /obj/structure/bed/chair/office/dark{ dir = 8 @@ -29833,6 +29877,61 @@ }, /turf/simulated/floor/wood, /area/library) +"aXD" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/regular{ + closed_layer = 10; + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "bridge blast"; + layer = 1; + name = "Bridge Blast Doors"; + opacity = 0; + open_layer = 1 + }, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/obj/structure/cable/green{ + icon_state = "0-4" + }, +/obj/structure/cable/green{ + icon_state = "0-8" + }, +/obj/structure/cable/green{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/green{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/bridge) +"aXE" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/blast/regular{ + closed_layer = 10; + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "bridge blast"; + layer = 1; + name = "Bridge Blast Doors"; + opacity = 0; + open_layer = 1 + }, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/obj/structure/cable/green{ + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/bridge) "aXF" = ( /obj/machinery/power/apc{ dir = 2; @@ -30004,6 +30103,18 @@ }, /turf/simulated/floor/tiled, /area/rnd/research/researchdivision) +"aXU" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/simulated/floor/reinforced, +/turf/simulated/shuttle/plating/carry, +/area/shuttle/tether) +"aXV" = ( +/obj/machinery/atmospherics/unary/engine{ + dir = 1 + }, +/turf/simulated/floor/reinforced, +/turf/simulated/shuttle/plating/carry, +/area/shuttle/tourbus/engines) "aXW" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -31244,24 +31355,6 @@ /obj/structure/cable/green, /turf/simulated/floor/tiled, /area/crew_quarters/heads/hop) -"baq" = ( -/obj/structure/grille, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "bridge blast"; - name = "Bridge Blast Doors"; - opacity = 0 - }, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced, -/obj/structure/cable/green{ - icon_state = "0-4" - }, -/turf/simulated/floor/plating, -/area/bridge) "bar" = ( /obj/machinery/computer/communications, /obj/machinery/light/small{ @@ -31297,58 +31390,6 @@ }, /turf/simulated/floor/tiled, /area/crew_quarters/heads/hop) -"baw" = ( -/obj/structure/grille, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "bridge blast"; - name = "Bridge Blast Doors"; - opacity = 0 - }, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced, -/obj/structure/cable/green{ - icon_state = "0-4" - }, -/obj/structure/cable/green{ - icon_state = "0-8" - }, -/turf/simulated/floor/plating, -/area/bridge) -"bay" = ( -/obj/structure/grille, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "bridge blast"; - name = "Bridge Blast Doors"; - opacity = 0 - }, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced, -/obj/structure/cable/green{ - icon_state = "0-4" - }, -/obj/structure/cable/green{ - icon_state = "0-8" - }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/green{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/turf/simulated/floor/plating, -/area/bridge) "baz" = ( /obj/effect/floor_decal/borderfloor, /obj/effect/floor_decal/corner/lightgrey/border, @@ -31361,24 +31402,6 @@ /obj/structure/disposalpipe/segment, /turf/simulated/floor/tiled, /area/tether/surfacebase/surface_three_hall) -"baA" = ( -/obj/structure/grille, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "bridge blast"; - name = "Bridge Blast Doors"; - opacity = 0 - }, -/obj/structure/window/reinforced/full, -/obj/structure/window/reinforced, -/obj/structure/cable/green{ - icon_state = "0-8" - }, -/turf/simulated/floor/plating, -/area/bridge) "baG" = ( /obj/structure/bed/chair/comfy/brown{ dir = 8 @@ -42927,7 +42950,7 @@ ahy ahx ahx ahx -aUy +awI aVN aWb aWn @@ -43697,7 +43720,7 @@ mfi jHw jpB qWU -aXB +aXV aKU aOI aPb @@ -44085,7 +44108,7 @@ alj alj alj asT -aTt +aTu asT alX alX @@ -44549,7 +44572,7 @@ isR jHw gHh qWU -aXB +aXV aKU aOI aPb @@ -44657,7 +44680,7 @@ aYb aYs aYx aYE -baq +aXx bbF ajM ape @@ -44799,7 +44822,7 @@ aYb aYp aYy aYF -baw +aXB bbF ajM apf @@ -44941,7 +44964,7 @@ aYb aYp aYz aYG -baw +aXB bbF ajM apD @@ -45083,7 +45106,7 @@ aYb aYt aYA aYH -baw +aXB bbF aEq apE @@ -45207,7 +45230,7 @@ ajV akn aYO aZs -awI +aTt aEb aSE aYS @@ -45225,7 +45248,7 @@ aYo aYu aYI aPC -bay +aXD bbF avG aNE @@ -45367,7 +45390,7 @@ bae aYv aYB aYJ -baw +aXB bbF ajR akx @@ -45509,7 +45532,7 @@ bae aYb aTv aYK -baw +aXB bbF ajR aEx @@ -45651,7 +45674,7 @@ aZI aYb aYy aYL -baw +aXB bbF avH awq @@ -45793,7 +45816,7 @@ aYp aYw aYD aYM -baA +aXE bbF ajR awp @@ -46357,7 +46380,7 @@ ayx alo alo asT -aTu +aUy asT alZ alZ @@ -46534,7 +46557,7 @@ aNk uSA aNJ aNP -aXx +aXU aKU abg aOk @@ -46676,7 +46699,7 @@ aNl aNl aNK aNP -aXx +aXU aKU abg aOk @@ -46818,7 +46841,7 @@ aNm aNl aNK aNP -aXx +aXU aKU abg aOk diff --git a/maps/tether/tether-05-station1.dmm b/maps/tether/tether-05-station1.dmm index 3df928336f..8d3a0bf1f0 100644 --- a/maps/tether/tether-05-station1.dmm +++ b/maps/tether/tether-05-station1.dmm @@ -2822,12 +2822,15 @@ /obj/machinery/door/firedoor/glass, /obj/structure/disposalpipe/segment, /obj/machinery/door/blast/regular{ + closed_layer = 10; density = 0; dir = 8; icon_state = "pdoor0"; id = "secondary_bridge_blast"; + layer = 1; name = "Secondary Command Office Blast Doors"; - opacity = 0 + opacity = 0; + open_layer = 1 }, /turf/simulated/floor/tiled, /area/bridge/secondary) @@ -3705,26 +3708,23 @@ /turf/simulated/floor/tiled, /area/hallway/station/atrium) "agr" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/door/airlock/command{ + name = "Secondary Command Office" }, /obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/maintenance/engi{ - name = "Asteroid Command Substation"; - req_one_access = list(10,19) - }, /obj/machinery/door/blast/regular{ + closed_layer = 10; density = 0; dir = 8; icon_state = "pdoor0"; id = "secondary_bridge_blast"; + layer = 1; name = "Secondary Command Office Blast Doors"; - opacity = 0 + opacity = 0; + open_layer = 1 }, -/turf/simulated/floor, -/area/maintenance/substation/spacecommand) +/turf/simulated/floor/tiled, +/area/bridge/secondary) "ags" = ( /obj/effect/floor_decal/borderfloor{ dir = 8 @@ -5113,20 +5113,29 @@ /turf/simulated/floor/carpet/bcarpet, /area/tether/station/visitorhallway/office) "aiw" = ( -/obj/machinery/door/airlock/command{ - name = "Secondary Command Office" +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2" }, /obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/maintenance/engi{ + name = "Asteroid Command Substation"; + req_one_access = list(10,19) + }, /obj/machinery/door/blast/regular{ + closed_layer = 10; density = 0; dir = 8; icon_state = "pdoor0"; id = "secondary_bridge_blast"; + layer = 1; name = "Secondary Command Office Blast Doors"; - opacity = 0 + opacity = 0; + open_layer = 1 }, -/turf/simulated/floor/tiled, -/area/bridge/secondary) +/turf/simulated/floor, +/area/maintenance/substation/spacecommand) "aix" = ( /obj/structure/table/rack{ dir = 8; @@ -11605,12 +11614,15 @@ dir = 4 }, /obj/machinery/door/blast/regular{ + closed_layer = 10; density = 0; dir = 1; icon_state = "pdoor0"; id = "secondary_bridge_blast"; + layer = 1; name = "Secondary Command Office Blast Doors"; - opacity = 0 + opacity = 0; + open_layer = 1 }, /turf/simulated/floor, /area/bridge/secondary/hallway) @@ -16382,12 +16394,15 @@ req_one_access = list(17) }, /obj/machinery/door/blast/regular{ + closed_layer = 10; density = 0; dir = 8; icon_state = "pdoor0"; id = "secondary_bridge_blast"; + layer = 1; name = "Secondary Command Office Blast Doors"; - opacity = 0 + opacity = 0; + open_layer = 1 }, /turf/simulated/floor, /area/bridge/secondary/teleporter) @@ -17624,12 +17639,15 @@ /obj/machinery/door/firedoor/glass, /obj/machinery/door/airlock/maintenance/command, /obj/machinery/door/blast/regular{ + closed_layer = 10; density = 0; dir = 1; icon_state = "pdoor0"; id = "secondary_bridge_blast"; + layer = 1; name = "Secondary Command Office Blast Doors"; - opacity = 0 + opacity = 0; + open_layer = 1 }, /turf/simulated/floor, /area/bridge/meeting_room) @@ -35267,7 +35285,7 @@ aix aBx ait aut -agr +aiw agB ahj aiu @@ -35829,7 +35847,7 @@ acm acm acp are -aiw +agr asR afd afd diff --git a/maps/tether/tether-06-station2.dmm b/maps/tether/tether-06-station2.dmm index 82e8d15d44..562b659963 100644 --- a/maps/tether/tether-06-station2.dmm +++ b/maps/tether/tether-06-station2.dmm @@ -10492,24 +10492,40 @@ /turf/simulated/wall, /area/medical/surgery_hallway) "ps" = ( -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/medical{ - name = "Medical Waiting Room"; - req_one_access = list() - }, -/obj/machinery/door/blast/shutters{ - density = 0; - dir = 2; - icon_state = "shutter0"; - id = "medbayquar"; - name = "Medbay Emergency Lockdown Shutters"; - opacity = 0 - }, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/tiled/white, -/area/medical/surgery_hallway) +/obj/structure/cable/green{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/glass_engineering{ + closed_layer = 8; + layer = 2; + name = "Engineering Mezzenine"; + open_layer = 2; + req_one_access = list() + }, +/obj/machinery/door/firedoor/glass{ + closed_layer = 7; + layer = 1.5; + open_layer = 1.5 + }, +/obj/machinery/door/blast/regular{ + closed_layer = 10; + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "englockdown"; + layer = 1; + level = 1; + name = "Engineering Lockdown"; + opacity = 0; + open_layer = 1 + }, +/turf/simulated/floor/tiled/steel_grid, +/area/engineering/foyer_mezzenine) "pt" = ( /obj/effect/floor_decal/borderfloor, /obj/effect/floor_decal/corner/paleblue/border, @@ -10699,45 +10715,40 @@ /turf/simulated/floor/plating, /area/engineering/foyer_mezzenine) "pL" = ( -/obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/glass_engineering{ + closed_layer = 8; + layer = 2; name = "Engineering Mezzenine"; + open_layer = 2; req_one_access = list() }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/door/firedoor/glass, -/obj/structure/cable/green{ - d1 = 1; - d2 = 2; - icon_state = "1-2" +/obj/machinery/door/firedoor/glass{ + closed_layer = 7; + layer = 1.5; + open_layer = 1.5 }, /obj/machinery/door/blast/regular{ + closed_layer = 10; density = 0; dir = 4; icon_state = "pdoor0"; id = "englockdown"; + layer = 1; + level = 1; name = "Engineering Lockdown"; - opacity = 0 + opacity = 0; + open_layer = 1 }, /turf/simulated/floor/tiled/steel_grid, /area/engineering/foyer_mezzenine) "pM" = ( -/obj/machinery/door/airlock/glass_engineering{ - name = "Engineering Mezzenine"; - req_one_access = list() +/obj/structure/shuttle/engine/propulsion{ + dir = 8; + icon_state = "propulsion_r" }, -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "englockdown"; - name = "Engineering Lockdown"; - opacity = 0 - }, -/turf/simulated/floor/tiled/steel_grid, -/area/engineering/foyer_mezzenine) +/turf/space, +/turf/simulated/shuttle/plating/airless/carry, +/area/shuttle/large_escape_pod1) "pN" = ( /obj/machinery/requests_console{ department = "Tech storage"; @@ -10804,13 +10815,27 @@ /turf/simulated/floor/tiled, /area/hallway/station/starboard) "pS" = ( -/obj/structure/shuttle/engine/propulsion{ - dir = 8; - icon_state = "propulsion_r" +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/medical{ + name = "Medical Waiting Room"; + req_one_access = list() }, -/turf/space, -/turf/simulated/shuttle/plating/airless/carry, -/area/shuttle/large_escape_pod1) +/obj/machinery/door/blast/shutters{ + closed_layer = 10; + density = 0; + dir = 2; + icon_state = "shutter0"; + id = "medbayquar"; + layer = 1; + name = "Medbay Emergency Lockdown Shutters"; + opacity = 0; + open_layer = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/tiled/white, +/area/medical/surgery_hallway) "pT" = ( /obj/structure/cable{ d1 = 1; @@ -16170,6 +16195,30 @@ }, /turf/simulated/floor/tiled/white, /area/medical/ward) +"yp" = ( +/obj/machinery/door/firedoor/glass, +/obj/machinery/door/airlock/maintenance/medical, +/obj/structure/cable/green{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/blast/shutters{ + closed_layer = 10; + density = 0; + dir = 8; + icon_state = "shutter0"; + id = "medbayquar"; + layer = 1; + name = "Medbay Emergency Lockdown Shutters"; + opacity = 0; + open_layer = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor, +/area/medical/surgery_hallway) "ys" = ( /obj/structure/table/standard, /obj/item/weapon/reagent_containers/spray/cleaner{ @@ -17512,27 +17561,6 @@ }, /turf/simulated/floor/tiled/white, /area/medical/surgery_hallway) -"AS" = ( -/obj/machinery/door/firedoor/glass, -/obj/machinery/door/airlock/maintenance/medical, -/obj/structure/cable/green{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/blast/shutters{ - density = 0; - dir = 8; - icon_state = "shutter0"; - id = "medbayquar"; - name = "Medbay Emergency Lockdown Shutters"; - opacity = 0 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/simulated/floor, -/area/medical/surgery_hallway) "AT" = ( /obj/structure/cable/green{ d1 = 4; @@ -30817,7 +30845,7 @@ nB nk oh ox -pL +ps qr rh rU @@ -31101,7 +31129,7 @@ nD oj oN qx -pM +pL qt rj rV @@ -32951,7 +32979,7 @@ lK Fr fH op -ps +pS qO rx sb @@ -33965,7 +33993,7 @@ zQ xf pp pp -AS +yp pp Ay BM @@ -37493,7 +37521,7 @@ ot ou ou ou -pS +pM oY sW ef diff --git a/maps/tether/tether-07-station3.dmm b/maps/tether/tether-07-station3.dmm index dc1beb3727..3878984045 100644 --- a/maps/tether/tether-07-station3.dmm +++ b/maps/tether/tether-07-station3.dmm @@ -16093,12 +16093,15 @@ name = "Medbay Lobby" }, /obj/machinery/door/blast/shutters{ + closed_layer = 10; density = 0; dir = 2; icon_state = "shutter0"; id = "medbayquar"; + layer = 1; name = "Medbay Emergency Lockdown Shutters"; - opacity = 0 + opacity = 0; + open_layer = 1 }, /obj/effect/floor_decal/steeldecal/steel_decals_central1{ dir = 8 @@ -16476,12 +16479,15 @@ "azr" = ( /obj/machinery/door/firedoor/glass, /obj/machinery/door/blast/shutters{ + closed_layer = 10; density = 0; dir = 2; icon_state = "shutter0"; id = "medbayquar"; + layer = 1; name = "Medbay Emergency Lockdown Shutters"; - opacity = 0 + opacity = 0; + open_layer = 1 }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, @@ -16499,12 +16505,15 @@ name = "EMT Bay" }, /obj/machinery/door/blast/shutters{ + closed_layer = 10; density = 0; dir = 2; icon_state = "shutter0"; id = "medbayquar"; + layer = 1; name = "Medbay Emergency Lockdown Shutters"; - opacity = 0 + opacity = 0; + open_layer = 1 }, /turf/simulated/floor/tiled/dark, /area/medical/medbay_emt_bay) @@ -24584,12 +24593,15 @@ /obj/machinery/door/firedoor/glass, /obj/machinery/door/airlock/maintenance/medical, /obj/machinery/door/blast/shutters{ + closed_layer = 10; density = 0; dir = 8; icon_state = "shutter0"; id = "medbayquar"; + layer = 1; name = "Medbay Emergency Lockdown Shutters"; - opacity = 0 + opacity = 0; + open_layer = 1 }, /obj/structure/cable/green{ d1 = 4; From 480045ff60f5ac81419e13fcc78a53d1894860cd Mon Sep 17 00:00:00 2001 From: Rykka Date: Sat, 9 May 2020 11:08:14 -0400 Subject: [PATCH 064/105] Fixes fuel rod assembly issue Fixes longstanding bug from https://github.com/VOREStation/VOREStation/issues/7330, had been mapped for ~2 years ish. --- .../submaps/aerostat/submaps/DecoupledEngine.dmm | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/maps/tether/submaps/aerostat/submaps/DecoupledEngine.dmm b/maps/tether/submaps/aerostat/submaps/DecoupledEngine.dmm index 322dbbf62e..03044d8196 100644 --- a/maps/tether/submaps/aerostat/submaps/DecoupledEngine.dmm +++ b/maps/tether/submaps/aerostat/submaps/DecoupledEngine.dmm @@ -42,8 +42,9 @@ /turf/simulated/floor/outdoors/rocks, /area/submap/virgo2/DecoupledEngine) "al" = ( -/obj/item/projectile/bullet/magnetic/fuelrod, -/turf/simulated/mineral/floor/ignore_mapgen/virgo2, +/obj/effect/floor_decal/rust, +/obj/item/weapon/fuel_assembly/supermatter, +/turf/simulated/floor, /area/submap/virgo2/DecoupledEngine) "am" = ( /obj/item/weapon/arrow/rod, @@ -336,11 +337,6 @@ /obj/effect/floor_decal/rust, /turf/simulated/floor, /area/submap/virgo2/DecoupledEngine) -"be" = ( -/obj/effect/floor_decal/rust, -/obj/item/projectile/bullet/magnetic/fuelrod, -/turf/simulated/floor, -/area/submap/virgo2/DecoupledEngine) "bf" = ( /obj/machinery/power/rad_collector, /obj/structure/window/phoronreinforced, @@ -865,7 +861,7 @@ ao aw aI aP -be +al aA av br @@ -1113,7 +1109,7 @@ ab ab ad ai -al +bB ad ad ad From f18191da1e88f7f13e90039dc26af2f1ae946739 Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Sat, 9 May 2020 17:33:38 +0100 Subject: [PATCH 065/105] Update loadout_eyes_vr.dm --- .../loadout/loadout_eyes_vr.dm | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm b/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm index da9ad9021d..42c87335f6 100644 --- a/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_eyes_vr.dm @@ -13,6 +13,27 @@ display_name = "AR glasses, prescription" path = /obj/item/clothing/glasses/omnihud/prescription +/datum/gear/eyes/arglasses/sec + display_name = "AR-S glasses (Sec)" + path = /obj/item/clothing/glasses/omnihud/sec + allowed_roles = list("Security Officer","Head of Security","Warden","Detective") + +/datum/gear/eyes/arglasses/eng + display_name = "AR-E glasses (Eng)" + path = /obj/item/clothing/glasses/omnihud/eng + allowed_roles = list("Station Engineer","Chief Engineer","Atmospheric Technician") + +/datum/gear/eyes/arglasses/med + display_name = "AR-M glasses (Medical)" + path = /obj/item/clothing/glasses/omnihud/med + allowed_roles = list("Medical Doctor","Chief Medical Officer","Chemist","Paramedic","Geneticist", "Psychiatrist", "Field Medic") + +/datum/gear/eyes/arglasses/all + display_name = "AR-B glasses (CD, HoP)" + path = /obj/item/clothing/glasses/omnihud/all + cost = 2 + allowed_roles = list("Colony Director","Head of Personnel") + /datum/gear/eyes/spiffygogs display_name = "slick orange goggles" path = /obj/item/clothing/glasses/fluff/spiffygogs From 7ecdd7e0b878261a557864cb8d76b2d5d808893c Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 9 May 2020 01:22:44 -0700 Subject: [PATCH 066/105] adds logging variable to enable shuttle log spam --- code/modules/shuttles/shuttle.dm | 27 ++++++++++++++-------- code/modules/shuttles/shuttle_autodock.dm | 2 +- code/modules/shuttles/shuttle_console.dm | 6 +++-- code/modules/shuttles/shuttle_emergency.dm | 4 ++-- code/modules/shuttles/shuttles_web.dm | 4 ++-- code/modules/shuttles/web_datums.dm | 2 +- 6 files changed, 28 insertions(+), 17 deletions(-) diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm index 7e393c99d1..a062d2a3d3 100644 --- a/code/modules/shuttles/shuttle.dm +++ b/code/modules/shuttles/shuttle.dm @@ -30,6 +30,8 @@ var/tmp/depart_time = 0 //Similar to above, set when the shuttle leaves when long jumping. Used for progress bars. + var/debug_logging = FALSE // If set to true, the shuttle will start broadcasting its debug messages to admins + // Future Thoughts: Baystation put "docking" stuff in a subtype, leaving base type pure and free of docking stuff. Is this best? /datum/shuttle/New(_name, var/obj/effect/shuttle_landmark/initial_location) @@ -52,7 +54,8 @@ else current_location = SSshuttles.get_landmark(current_location) if(!istype(current_location)) - log_debug("UM whoops, no initial? [src]") + if(debug_logging) + log_shuttle("UM whoops, no initial? [src]") CRASH("Shuttle '[name]' could not find its starting location landmark [current_location].") if(src.name in SSshuttles.shuttles) @@ -239,14 +242,17 @@ // Returns TRUE if we actually moved, otherwise FALSE. /datum/shuttle/proc/attempt_move(var/obj/effect/shuttle_landmark/destination, var/interim = FALSE) if(current_location == destination) - log_shuttle("Shuttle [src] attempted to move to [destination] but is already there!") + if(debug_logging) + log_shuttle("Shuttle [src] attempted to move to [destination] but is already there!") return FALSE if(!destination.is_valid(src)) - log_shuttle("Shuttle [src] aborting attempt_move() because destination=[destination] is not valid") + if(debug_logging) + log_shuttle("Shuttle [src] aborting attempt_move() because destination=[destination] is not valid") return FALSE if(current_location.cannot_depart(src)) - log_shuttle("Shuttle [src] aborting attempt_move() because current_location=[current_location] refuses.") + if(debug_logging) + log_shuttle("Shuttle [src] aborting attempt_move() because current_location=[current_location] refuses.") return FALSE // Observer pattern pre-move @@ -254,19 +260,21 @@ GLOB.shuttle_pre_move_event.raise_event(src, old_location, destination) current_location.shuttle_departed(src) - log_shuttle("[src] moving to [destination]. Areas are [english_list(shuttle_area)]") + if(debug_logging) + log_shuttle("[src] moving to [destination]. Areas are [english_list(shuttle_area)]") var/list/translation = list() for(var/area/A in shuttle_area) - log_shuttle("Translating [A]") + if(debug_logging) + log_shuttle("Translating [A]") translation += get_turf_translation(get_turf(current_location), get_turf(destination), A.contents) // Actually do it! (This never fails) perform_shuttle_move(destination, translation) - + // Observer pattern post-move destination.shuttle_arrived(src) GLOB.shuttle_moved_event.raise_event(src, old_location, destination) - + return TRUE @@ -274,7 +282,8 @@ //A note to anyone overriding move in a subtype. perform_shuttle_move() must absolutely not, under any circumstances, fail to move the shuttle. //If you want to conditionally cancel shuttle launches, that logic must go in short_jump() or long_jump() /datum/shuttle/proc/perform_shuttle_move(var/obj/effect/shuttle_landmark/destination, var/list/turf_translation) - log_shuttle("perform_shuttle_move() current=[current_location] destination=[destination]") + if(debug_logging) + log_shuttle("perform_shuttle_move() current=[current_location] destination=[destination]") //to_world("move_shuttle() called for [name] leaving [origin] en route to [destination].") //to_world("area_coming_from: [origin]") diff --git a/code/modules/shuttles/shuttle_autodock.dm b/code/modules/shuttles/shuttle_autodock.dm index 4181af5b15..aa59856b50 100644 --- a/code/modules/shuttles/shuttle_autodock.dm +++ b/code/modules/shuttles/shuttle_autodock.dm @@ -65,7 +65,7 @@ current_dock_target = docking_controller_tag shuttle_docking_controller = SSshuttles.docking_registry[current_dock_target] if(current_dock_target && !shuttle_docking_controller) - to_world("warning: shuttle [src] can't find its controller with tag [current_dock_target]!") + log_shuttle("warning: shuttle [src] can't find its controller with tag [current_dock_target]!") // No toggle because this is an error message that needs to be seen /* Docking stuff */ diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm index 6d277edec1..3e3655ca5a 100644 --- a/code/modules/shuttles/shuttle_console.dm +++ b/code/modules/shuttles/shuttle_console.dm @@ -64,11 +64,13 @@ var/cannot_depart = shuttle.current_location.cannot_depart(shuttle) if(cannot_depart) to_chat(user, "[cannot_depart]") - log_shuttle("Shuttle [shuttle] cannot depart [shuttle.current_location] because: [cannot_depart].") + if(shuttle.debug_logging) + log_shuttle("Shuttle [shuttle] cannot depart [shuttle.current_location] because: [cannot_depart].") return FALSE if(!shuttle.next_location.is_valid(shuttle)) to_chat(user, "Destination zone is invalid or obstructed.") - log_shuttle("Shuttle [shuttle] destination [shuttle.next_location] is invalid.") + if(shuttle.debug_logging) + log_shuttle("Shuttle [shuttle] destination [shuttle.next_location] is invalid.") return FALSE return TRUE diff --git a/code/modules/shuttles/shuttle_emergency.dm b/code/modules/shuttles/shuttle_emergency.dm index efb321e55c..6c584e1762 100644 --- a/code/modules/shuttles/shuttle_emergency.dm +++ b/code/modules/shuttles/shuttle_emergency.dm @@ -70,7 +70,7 @@ if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console if (emergency_shuttle.autopilot) emergency_shuttle.autopilot = 0 - to_chat(world, "Alert: The shuttle autopilot has been overridden. Launch sequence initiated!") + to_world("Alert: The shuttle autopilot has been overridden. Launch sequence initiated!") if(usr) log_admin("[key_name(usr)] has overridden the departure shuttle's autopilot and activated the launch sequence.") @@ -84,7 +84,7 @@ if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console if (emergency_shuttle.autopilot) emergency_shuttle.autopilot = 0 - to_chat(world, "Alert: The shuttle autopilot has been overridden. Bluespace drive engaged!") + to_world("Alert: The shuttle autopilot has been overridden. Bluespace drive engaged!") if(usr) log_admin("[key_name(usr)] has overridden the departure shuttle's autopilot and forced immediate launch.") diff --git a/code/modules/shuttles/shuttles_web.dm b/code/modules/shuttles/shuttles_web.dm index 0aebd2bf42..00d9344b00 100644 --- a/code/modules/shuttles/shuttles_web.dm +++ b/code/modules/shuttles/shuttles_web.dm @@ -181,7 +181,7 @@ my_doors[find_doors[A.id_tag]] = A find_doors -= A.id_tag for(var/lost in find_doors) - log_debug("[my_area] shuttle computer couldn't find [lost] door!") + log_shuttle("[my_area] shuttle computer couldn't find [lost] door!") if(my_sensors) var/list/find_sensors = my_sensors @@ -191,7 +191,7 @@ my_sensors[find_sensors[S.id_tag]] = S find_sensors -= S.id_tag for(var/lost in find_sensors) - log_debug("[my_area] shuttle computer couldn't find [lost] sensor!") + log_shuttle("[my_area] shuttle computer couldn't find [lost] sensor!") /obj/machinery/computer/shuttle_control/web/attackby(obj/I, mob/user) var/datum/shuttle/autodock/web_shuttle/shuttle = shuttle_controller.shuttles[shuttle_tag] diff --git a/code/modules/shuttles/web_datums.dm b/code/modules/shuttles/web_datums.dm index 3e2abf9443..bbba42dd58 100644 --- a/code/modules/shuttles/web_datums.dm +++ b/code/modules/shuttles/web_datums.dm @@ -72,7 +72,7 @@ /datum/shuttle_destination/New(var/new_master) my_landmark = SSshuttles.get_landmark(my_landmark) if(!my_landmark) - log_debug("Web shuttle destination '[name]' could not find its landmark '[my_landmark]'.") + log_debug("Web shuttle destination '[name]' could not find its landmark '[my_landmark]'.") // Important error message master = new_master /datum/shuttle_destination/Destroy() From d1e7821b15697b7afd93f55d5ce7dbd7dcb0f8aa Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sat, 9 May 2020 16:53:59 -0400 Subject: [PATCH 067/105] VS: Language issues These issues don't prevent compiling, but are strange issues nonetheless. --- code/controllers/autotransfer.dm | 2 +- code/game/objects/items/weapons/RCD_vr.dm | 6 +++--- code/modules/media/mediamanager.dm | 2 +- .../silicon/robot/dogborg/dog_modules_vr.dm | 16 ++++++++-------- .../silicon/robot/subtypes/lost_drone_vr.dm | 2 +- code/modules/vore/eating/vorepanel_vr.dm | 4 ++-- maps/virgo_minitest/virgo_minitest.dm | 2 +- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/code/controllers/autotransfer.dm b/code/controllers/autotransfer.dm index 3d867473dc..a1cc369303 100644 --- a/code/controllers/autotransfer.dm +++ b/code/controllers/autotransfer.dm @@ -18,7 +18,7 @@ datum/controller/transfer_controller/process() currenttick = currenttick + 1 //VOREStation Edit START if (round_duration_in_ds >= shift_last_vote - 2 MINUTES) - shift_last_vote = 999999999999 //Setting to a stupidly high number since it'll be not used again. + shift_last_vote = 99999999 //Setting to a stupidly high number since it'll be not used again. to_world("Warning: You have one hour left in the shift. Wrap up your scenes in the next 60 minutes before the transfer is called.") //VOREStation Edit if (round_duration_in_ds >= shift_hard_end - 1 MINUTE) init_shift_change(null, 1) diff --git a/code/game/objects/items/weapons/RCD_vr.dm b/code/game/objects/items/weapons/RCD_vr.dm index 5cfc822efa..f4089e9b9c 100644 --- a/code/game/objects/items/weapons/RCD_vr.dm +++ b/code/game/objects/items/weapons/RCD_vr.dm @@ -9,9 +9,9 @@ var/ammostate var/list/effects = list() - var/static/image/radial_image_airlock = image(icon = 'icons/mob/radial.dmi', icon_state = "airlock"), - var/static/image/radial_image_decon = image(icon= 'icons/mob/radial.dmi', icon_state = "delete"), - var/static/image/radial_image_grillewind = image(icon = 'icons/mob/radial.dmi', icon_state = "grillewindow"), + var/static/image/radial_image_airlock = image(icon = 'icons/mob/radial.dmi', icon_state = "airlock") + var/static/image/radial_image_decon = image(icon= 'icons/mob/radial.dmi', icon_state = "delete") + var/static/image/radial_image_grillewind = image(icon = 'icons/mob/radial.dmi', icon_state = "grillewindow") var/static/image/radial_image_floorwall = image(icon = 'icons/mob/radial.dmi', icon_state = "wallfloor") // Ammo for the (non-electric) RCDs. diff --git a/code/modules/media/mediamanager.dm b/code/modules/media/mediamanager.dm index 96b9ab36cb..5ff00d5eee 100644 --- a/code/modules/media/mediamanager.dm +++ b/code/modules/media/mediamanager.dm @@ -11,7 +11,7 @@ #ifdef DEBUG_MEDIAPLAYER #define MP_DEBUG(x) to_chat(owner,x) -#warning Please comment out #define DEBUG_MEDIAPLAYER before committing. +#warn Please comment out #define DEBUG_MEDIAPLAYER before committing. #else #define MP_DEBUG(x) #endif diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm index 1a67275635..07b04dd9aa 100644 --- a/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm +++ b/code/modules/mob/living/silicon/robot/dogborg/dog_modules_vr.dm @@ -22,7 +22,7 @@ var/emagged = 0 /obj/item/weapon/dogborg/jaws/small/attack_self(mob/user) - var/mob/living/silicon/robot.R = user + var/mob/living/silicon/robot/R = user if(R.emagged || R.emag_items) emagged = !emagged if(emagged) @@ -187,7 +187,7 @@ . += "[src] is dry." /obj/item/device/dogborg/tongue/attack_self(mob/user) - var/mob/living/silicon/robot.R = user + var/mob/living/silicon/robot/R = user if(R.emagged || R.emag_items) emagged = !emagged if(emagged) @@ -222,7 +222,7 @@ to_chat(user, "You finish licking off \the [target.name].") water.use_charge(5) qdel(target) - var/mob/living/silicon/robot.R = user + var/mob/living/silicon/robot/R = user R.cell.charge += 50 else if(istype(target,/obj/item)) if(istype(target,/obj/item/trash)) @@ -231,7 +231,7 @@ user.visible_message("[user] finishes eating \the [target.name].", "You finish eating \the [target.name].") to_chat(user, "You finish off \the [target.name].") qdel(target) - var/mob/living/silicon/robot.R = user + var/mob/living/silicon/robot/R = user R.cell.charge += 250 water.use_charge(5) return @@ -240,8 +240,8 @@ if(do_after (user, 50)) user.visible_message("[user] finishes gulping down \the [target.name].", "You finish swallowing \the [target.name].") to_chat(user, "You finish off \the [target.name], and gain some charge!") - var/mob/living/silicon/robot.R = user - var/obj/item/weapon/cell.C = target + var/mob/living/silicon/robot/R = user + var/obj/item/weapon/cell/C = target R.cell.charge += C.maxcharge / 3 water.use_charge(5) qdel(target) @@ -255,7 +255,7 @@ target.clean_blood() else if(ishuman(target)) if(src.emagged) - var/mob/living/silicon/robot.R = user + var/mob/living/silicon/robot/R = user var/mob/living/L = target if(R.cell.charge <= 666) return @@ -298,7 +298,7 @@ flags |= NOBLUDGEON /obj/item/pupscrubber/attack_self(mob/user) - var/mob/living/silicon/robot.R = user + var/mob/living/silicon/robot/R = user if(!enabled) R.scrubbing = TRUE enabled = TRUE diff --git a/code/modules/mob/living/silicon/robot/subtypes/lost_drone_vr.dm b/code/modules/mob/living/silicon/robot/subtypes/lost_drone_vr.dm index 1af34a5ef6..1506fca4e3 100644 --- a/code/modules/mob/living/silicon/robot/subtypes/lost_drone_vr.dm +++ b/code/modules/mob/living/silicon/robot/subtypes/lost_drone_vr.dm @@ -157,7 +157,7 @@ if("corrupted") // Load them up with ion laws. var/datum/ai_laws/laws = new() // Start with an empty lawset. - for(1 to rand(1, 3)) + for(var/i=1 to rand(1, 3)) laws.add_ion_law(generate_ion_law(exclude_crew_names = TRUE)) return laws diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index 72575492ed..1c4079de15 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -935,7 +935,7 @@ if("Prevent Digestion") user.digestable = FALSE - message_admins("[key_name(user)] toggled their digestability to [user.digestable] ([user ? "JMP" : "null"])") + message_admins("[key_name(user)] toggled their digestability to [user.digestable] [ADMIN_COORDJMP(user)]") if(user.client.prefs_vr) user.client.prefs_vr.digestable = user.digestable @@ -1002,7 +1002,7 @@ if("Prevent Mob Predation") user.allowmobvore = FALSE - message_admins("[key_name(user)] toggled their mob vore preference to [user.allowmobvore] ([user ? "JMP" : "null"])") + message_admins("[key_name(user)] toggled their mob vore preference to [user.allowmobvore] [ADMIN_COORDJMP(user)]") if(user.client.prefs_vr) user.client.prefs_vr.allowmobvore = user.allowmobvore diff --git a/maps/virgo_minitest/virgo_minitest.dm b/maps/virgo_minitest/virgo_minitest.dm index 5906fae2f6..4a7f68fbaf 100644 --- a/maps/virgo_minitest/virgo_minitest.dm +++ b/maps/virgo_minitest/virgo_minitest.dm @@ -10,7 +10,7 @@ #define USING_MAP_DATUM /datum/map/virgo_minitest - #warning Please uncheck virgo_minitest.dm before committing. + #warn Please uncheck virgo_minitest before committing #elif !defined(MAP_OVERRIDE) From bb24ce3c407d25bd243bfc99fe04a7dc3d092cb5 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sat, 9 May 2020 16:54:14 -0400 Subject: [PATCH 068/105] Fix weird stray commas --- code/game/mecha/mecha.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index ba863c8c31..a5516c4c33 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -95,9 +95,9 @@ var/list/cargo = list() var/cargo_capacity = 3 - var/static/image/radial_image_eject = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_eject"), - var/static/image/radial_image_airtoggle = image(icon= 'icons/mob/radial.dmi', icon_state = "radial_airtank"), - var/static/image/radial_image_lighttoggle = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_light"), + var/static/image/radial_image_eject = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_eject") + var/static/image/radial_image_airtoggle = image(icon= 'icons/mob/radial.dmi', icon_state = "radial_airtank") + var/static/image/radial_image_lighttoggle = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_light") var/static/image/radial_image_statpanel = image(icon = 'icons/mob/radial.dmi', icon_state = "radial_examine2") From 3d5bb56f8f9d0a8629b5753c048f0c1d743d2eba Mon Sep 17 00:00:00 2001 From: Rykka Date: Sat, 9 May 2020 17:40:14 -0400 Subject: [PATCH 069/105] Add footstep sounds to almost every single tile. Shuttle tiles, default floors are still "regular". Lava, sand, water, grass, beach, mining turfs all have sounds playing now for each footstep. <3 Massive credit to @Arokha for helping me figure out the floor system and sitting through getting it put together. <3 <3 <3 --- code/game/turfs/flooring/flooring.dm | 97 +++++++++++++++++- code/game/turfs/flooring/flooring_premade.dm | 1 + code/game/turfs/simulated/lava.dm | 1 + code/game/turfs/simulated/outdoors/dirt.dm | 13 +-- code/game/turfs/simulated/outdoors/grass.dm | 14 ++- .../game/turfs/simulated/outdoors/outdoors.dm | 1 + code/game/turfs/simulated/water.dm | 2 + code/game/turfs/unsimulated/beach.dm | 24 +++-- code/modules/mining/mine_turfs.dm | 2 + icons/turf/outdoors.dmi | Bin 207628 -> 207629 bytes sound/effects/footstep/HeavySand1.ogg | Bin 0 -> 4617 bytes sound/effects/footstep/HeavySand2.ogg | Bin 0 -> 4737 bytes sound/effects/footstep/HeavySand3.ogg | Bin 0 -> 4598 bytes sound/effects/footstep/HeavySand4.ogg | Bin 0 -> 4851 bytes sound/effects/footstep/LightDirt2.ogg | Bin 0 -> 4932 bytes sound/effects/footstep/LightDirt4.ogg | Bin 0 -> 5135 bytes sound/effects/footstep/LightStone1.ogg | Bin 0 -> 5647 bytes sound/effects/footstep/LightStone2.ogg | Bin 0 -> 5765 bytes sound/effects/footstep/LightStone3.ogg | Bin 0 -> 5332 bytes sound/effects/footstep/LightStone4.ogg | Bin 0 -> 5648 bytes sound/effects/footstep/MedDirt1.ogg | Bin 0 -> 5301 bytes sound/effects/footstep/MedDirt2.ogg | Bin 0 -> 5052 bytes sound/effects/footstep/MedDirt3.ogg | Bin 0 -> 5030 bytes sound/effects/footstep/MedDirt4.ogg | Bin 0 -> 5261 bytes sound/effects/footstep/bubbles3.ogg | Bin 0 -> 10146 bytes sound/effects/footstep/bubbles4.ogg | Bin 0 -> 15532 bytes sound/effects/footstep/bubbles5.ogg | Bin 0 -> 13959 bytes sound/effects/footstep/mud1.ogg | Bin 0 -> 4971 bytes sound/effects/footstep/mud2.ogg | Bin 0 -> 5682 bytes sound/effects/footstep/mud3.ogg | Bin 0 -> 5418 bytes sound/effects/footstep/mud4.ogg | Bin 0 -> 5182 bytes 31 files changed, 131 insertions(+), 24 deletions(-) create mode 100644 sound/effects/footstep/HeavySand1.ogg create mode 100644 sound/effects/footstep/HeavySand2.ogg create mode 100644 sound/effects/footstep/HeavySand3.ogg create mode 100644 sound/effects/footstep/HeavySand4.ogg create mode 100644 sound/effects/footstep/LightDirt2.ogg create mode 100644 sound/effects/footstep/LightDirt4.ogg create mode 100644 sound/effects/footstep/LightStone1.ogg create mode 100644 sound/effects/footstep/LightStone2.ogg create mode 100644 sound/effects/footstep/LightStone3.ogg create mode 100644 sound/effects/footstep/LightStone4.ogg create mode 100644 sound/effects/footstep/MedDirt1.ogg create mode 100644 sound/effects/footstep/MedDirt2.ogg create mode 100644 sound/effects/footstep/MedDirt3.ogg create mode 100644 sound/effects/footstep/MedDirt4.ogg create mode 100644 sound/effects/footstep/bubbles3.ogg create mode 100644 sound/effects/footstep/bubbles4.ogg create mode 100644 sound/effects/footstep/bubbles5.ogg create mode 100644 sound/effects/footstep/mud1.ogg create mode 100644 sound/effects/footstep/mud2.ogg create mode 100644 sound/effects/footstep/mud3.ogg create mode 100644 sound/effects/footstep/mud4.ogg diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index 60157c1ee8..ca2a71e7e0 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -26,9 +26,10 @@ var/list/flooring_types var/name = "floor" var/desc var/icon - var/icon_base + var/icon_base // initial base icon_state without edges or corners. - var/has_base_range + var/has_base_range // This will pick between a range of 0 - x. Number icon_states accordingly. + // Note that this will append a 0 - x number automatically to icon_base, but NOT the dmi. Do icon_base = "grass", but name grass0 inside the dmi. etc etc. var/has_damage_range var/has_burn_range var/damage_temperature @@ -42,17 +43,69 @@ var/list/flooring_types var/descriptor = "tiles" var/flags var/can_paint - var/list/footstep_sounds = list() // key=species name, value = list of soundss + var/list/footstep_sounds = list() // key=species name, value = list of sounds, + // For instance, footstep_sounds = list("key" = list(sound.ogg)) /decl/flooring/grass name = "grass" desc = "Do they smoke grass out in space, Bowie? Or do they smoke AstroTurf?" icon = 'icons/turf/flooring/grass.dmi' icon_base = "grass" - has_base_range = 3 + has_base_range = 1 damage_temperature = T0C+80 flags = TURF_HAS_EDGES | TURF_REMOVE_SHOVEL build_type = /obj/item/stack/tile/grass + footstep_sounds = list("human" = list( + 'sound/effects/footstep/grass1.ogg', + 'sound/effects/footstep/grass2.ogg', + 'sound/effects/footstep/grass3.ogg', + 'sound/effects/footstep/grass4.ogg')) + +/decl/flooring/grass/sif // Subtype for Sif's grass. + name = "growth" + desc = "A natural moss that has adapted to the sheer cold climate." + icon = 'icons/turf/outdoors.dmi' + icon_base = "grass_sif" + has_base_range = 1 + +/decl/flooring/water + name = "water" + desc = "Water is wet, gosh, who knew!" + icon = 'icons/turf/outdoors.dmi' + icon_base = "seashallow" + footstep_sounds = list("human" = list( + 'sound/effects/footstep/water1.ogg', + 'sound/effects/footstep/water2.ogg', + 'sound/effects/footstep/water3.ogg', + 'sound/effects/footstep/water4.ogg')) + +/decl/flooring/sand + name = "sand" + desc = "I don't like sand. It's coarse and rough and irritating and it gets everywhere." + icon = 'icons/misc/beach.dmi' + icon_base = "sand" + footstep_sounds = list("human" = list( + 'sound/effects/footstep/HeavySand1.ogg', + 'sound/effects/footstep/HeavySand2.ogg', + 'sound/effects/footstep/HeavySand3.ogg', + 'sound/effects/footstep/HeavySand4.ogg')) + +/decl/flooring/sand/desert // Subtype of sand, desert. + name = "desert" + desc = "I don't like sand. It's coarse and rough and irritating and it gets everywhere." + icon = 'icons/turf/desert.dmi' + icon_base = "desert" + +/decl/flooring/mud + name = "mud" + desc = "STICKY AND WET!" + icon = 'icons/turf/outdoors.dmi' + icon_base = "mud_dark" + footstep_sounds = list("human" = list( + 'sound/effects/footstep/mud1.ogg', + 'sound/effects/footstep/mud2.ogg', + 'sound/effects/footstep/mud3.ogg', + 'sound/effects/footstep/mud4.ogg')) /decl/flooring/asteroid name = "coarse sand" @@ -61,6 +114,26 @@ var/list/flooring_types icon_base = "asteroid" flags = TURF_HAS_EDGES | TURF_REMOVE_SHOVEL build_type = null + footstep_sounds = list("human" = list( + 'sound/effects/footstep/asteroid1.ogg', + 'sound/effects/footstep/asteroid2.ogg', + 'sound/effects/footstep/asteroid3.ogg', + 'sound/effects/footstep/asteroid4.ogg', + 'sound/effects/footstep/asteroid5.ogg')) + +/decl/flooring/dirt + name = "dirt" + desc = "Gritty and unpleasant, just like dirt." + icon = 'icons/turf/outdoors.dmi' + icon_base = "dirt-dark" + flags = TURF_HAS_EDGES | TURF_REMOVE_SHOVEL + build_type = null + footstep_sounds = list("human" = list( + 'sound/effects/footstep/asteroid1.ogg', + 'sound/effects/footstep/asteroid2.ogg', + 'sound/effects/footstep/asteroid3.ogg', + 'sound/effects/footstep/asteroid4.ogg', + 'sound/effects/footstep/asteroid5.ogg')) /decl/flooring/snow name = "snow" @@ -315,6 +388,12 @@ var/list/flooring_types apply_thermal_conductivity = 0.025 apply_heat_capacity = 325000 can_paint = 1 + footstep_sounds = list("human" = list( + 'sound/effects/footstep/hull1.ogg', + 'sound/effects/footstep/hull2.ogg', + 'sound/effects/footstep/hull3.ogg', + 'sound/effects/footstep/hull4.ogg', + 'sound/effects/footstep/hull5.ogg')) /decl/flooring/reinforced/circuit name = "processing strata" @@ -337,3 +416,13 @@ var/list/flooring_types has_damage_range = 6 flags = TURF_ACID_IMMUNE | TURF_CAN_BREAK can_paint = null + +/decl/flooring/lava // Defining this in case someone DOES step on lava and survive. Somehow. + name = "lava" + desc = "Lava. Y'know. Sets you on fire. AAAAAAAAAAA" + icon = 'icons/turf/outdoors.dmi' + icon_base = "lava" + footstep_sounds = list("human" = list( + 'sound/effects/footstep/lava1.ogg', + 'sound/effects/footstep/lava2.ogg', + 'sound/effects/footstep/lava3.ogg')) \ No newline at end of file diff --git a/code/game/turfs/flooring/flooring_premade.dm b/code/game/turfs/flooring/flooring_premade.dm index 591ea77a6f..0a43992b73 100644 --- a/code/game/turfs/flooring/flooring_premade.dm +++ b/code/game/turfs/flooring/flooring_premade.dm @@ -386,6 +386,7 @@ name = "snow" icon = 'icons/turf/snow_new.dmi' icon_state = "snow" + initial_flooring = /decl/flooring/snow var/list/crossed_dirs = list() /turf/simulated/floor/snow/snow2 diff --git a/code/game/turfs/simulated/lava.dm b/code/game/turfs/simulated/lava.dm index 01ad912b70..902c38c16a 100644 --- a/code/game/turfs/simulated/lava.dm +++ b/code/game/turfs/simulated/lava.dm @@ -13,6 +13,7 @@ movement_cost = 2 can_build_into_floor = TRUE can_dirty = FALSE + initial_flooring = /decl/flooring/lava // Defining this in case someone DOES step on lava and survive. Somehow. /turf/simulated/floor/lava/outdoors outdoors = TRUE diff --git a/code/game/turfs/simulated/outdoors/dirt.dm b/code/game/turfs/simulated/outdoors/dirt.dm index 4d14205072..58e1db4951 100644 --- a/code/game/turfs/simulated/outdoors/dirt.dm +++ b/code/game/turfs/simulated/outdoors/dirt.dm @@ -1,6 +1,7 @@ -/turf/simulated/floor/outdoors/dirt - name = "dirt" - desc = "Quite dirty!" - icon_state = "dirt-dark" - edge_blending_priority = 2 - turf_layers = list(/turf/simulated/floor/outdoors/rocks) \ No newline at end of file +/turf/simulated/floor/outdoors/dirt + name = "dirt" + desc = "Quite dirty!" + icon_state = "dirt-dark" + edge_blending_priority = 2 + turf_layers = list(/turf/simulated/floor/outdoors/rocks) + initial_flooring = /decl/flooring/asteroid \ No newline at end of file diff --git a/code/game/turfs/simulated/outdoors/grass.dm b/code/game/turfs/simulated/outdoors/grass.dm index 553b4858bb..049cb82618 100644 --- a/code/game/turfs/simulated/outdoors/grass.dm +++ b/code/game/turfs/simulated/outdoors/grass.dm @@ -4,8 +4,9 @@ var/list/grass_types = list( /turf/simulated/floor/outdoors/grass name = "grass" - icon_state = "grass" + icon_state = "grass0" edge_blending_priority = 4 + initial_flooring = /decl/flooring/grass turf_layers = list( /turf/simulated/floor/outdoors/rocks, /turf/simulated/floor/outdoors/dirt @@ -34,7 +35,8 @@ var/list/grass_types = list( /turf/simulated/floor/outdoors/grass/sif name = "growth" - icon_state = "grass_sif" + icon_state = "grass_sif0" + initial_flooring = /decl/flooring/grass/sif edge_blending_priority = 4 grass_chance = 5 var/tree_chance = 2 @@ -63,10 +65,6 @@ var/list/grass_types = list( . = ..() /turf/simulated/floor/outdoors/grass/Initialize() - if(prob(50)) - icon_state = "[initial(icon_state)]2" - //edge_blending_priority++ - if(grass_chance && prob(grass_chance) && !check_density()) var/grass_type = pickweight(grass_types) new grass_type(src) @@ -79,14 +77,14 @@ var/list/grass_types = list( /turf/simulated/floor/outdoors/grass/forest name = "thick grass" - icon_state = "grass-dark" + icon_state = "grass-dark0" grass_chance = 80 //tree_chance = 20 edge_blending_priority = 5 /turf/simulated/floor/outdoors/grass/sif/forest name = "thick growth" - icon_state = "grass_sif_dark" + icon_state = "grass_sif_dark0" edge_blending_priority = 5 tree_chance = 10 grass_chance = 0 diff --git a/code/game/turfs/simulated/outdoors/outdoors.dm b/code/game/turfs/simulated/outdoors/outdoors.dm index 7bef49cd49..bbc71d536b 100644 --- a/code/game/turfs/simulated/outdoors/outdoors.dm +++ b/code/game/turfs/simulated/outdoors/outdoors.dm @@ -81,6 +81,7 @@ var/list/turf_edge_cache = list() name = "mud" icon_state = "mud_dark" edge_blending_priority = 3 + initial_flooring = /decl/flooring/mud /turf/simulated/floor/outdoors/rocks name = "rocks" diff --git a/code/game/turfs/simulated/water.dm b/code/game/turfs/simulated/water.dm index 2068bd2e35..0093f84849 100644 --- a/code/game/turfs/simulated/water.dm +++ b/code/game/turfs/simulated/water.dm @@ -20,6 +20,8 @@ /turf/simulated/floor/water/Initialize() . = ..() + var/decl/flooring/F = get_flooring_data(/decl/flooring/water) + footstep_sounds = F?.footstep_sounds update_icon() handle_fish() diff --git a/code/game/turfs/unsimulated/beach.dm b/code/game/turfs/unsimulated/beach.dm index 056facb60c..c5338b3db9 100644 --- a/code/game/turfs/unsimulated/beach.dm +++ b/code/game/turfs/unsimulated/beach.dm @@ -15,6 +15,7 @@ name = "Water" icon_state = "water" initialized = FALSE + movement_cost = 4 // Water should slow you down, just like simulated turf. /turf/unsimulated/beach/water/Initialize() . = ..() @@ -23,20 +24,17 @@ /turf/simulated/floor/beach name = "Beach" icon = 'icons/misc/beach.dmi' - footstep_sounds = list("human" = list( - 'sound/effects/footstep/carpet1.ogg', - 'sound/effects/footstep/carpet2.ogg', - 'sound/effects/footstep/carpet3.ogg', - 'sound/effects/footstep/carpet4.ogg', - 'sound/effects/footstep/carpet5.ogg')) + initial_flooring = /decl/flooring/sand /turf/simulated/floor/beach/sand name = "Sand" icon_state = "sand" + initial_flooring = /decl/flooring/sand /turf/simulated/floor/beach/sand/desert icon = 'icons/turf/desert.dmi' icon_state = "desert" + initial_flooring = /decl/flooring/sand/desert /turf/simulated/floor/beach/sand/desert/Initialize() . = ..() @@ -51,10 +49,24 @@ /turf/simulated/floor/beach/water name = "Water" icon_state = "water" + movement_cost = 4 // Water should slow you down, just like the original simulated turf. + initial_flooring = /decl/flooring/water /turf/simulated/floor/beach/water/ocean icon_state = "seadeep" + movement_cost = 8 // Deep water should be difficult to wade through. + initial_flooring = /decl/flooring/water/beach/deep /turf/simulated/floor/beach/water/Initialize() . = ..() add_overlay(image("icon"='icons/misc/beach.dmi',"icon_state"="water5","layer"=MOB_LAYER+0.1)) + +/decl/flooring/water/beach/deep // We're custom-defining a 'deep' water turf for the beach. + name = "deep water" + desc = "Deep Ocean Water" + icon = 'icons/misc/beach.dmi' + icon_base = "seadeep" + footstep_sounds = list("human" = list( + 'sound/effects/footstep/bubbles3.ogg', // No I don't get why it's named 3/4/5 either. Whatever. + 'sound/effects/footstep/bubbles4.ogg', + 'sound/effects/footstep/bubbles5.ogg')) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index e9c7f5db26..8d6f5ed991 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -154,6 +154,8 @@ turf/simulated/mineral/floor/light_corner if(random_icon) dir = pick(alldirs) . = INITIALIZE_HINT_LATELOAD + var/decl/flooring/F = get_flooring_data(/decl/flooring/sand) + footstep_sounds = F?.footstep_sounds /turf/simulated/mineral/LateInitialize() if(density && mineral) diff --git a/icons/turf/outdoors.dmi b/icons/turf/outdoors.dmi index b8af78d98673649523807e2ace7f0b250f224225..8bcc4308f6ed9ae80526af5b145925a4fbadc1af 100644 GIT binary patch delta 537 zcmV+!0_OdU)(nl-43H#$>v~jJbVOxyV{&P5bZKvH004NLt(MJh;xG_^&&g9*?G-AL zuv_+!%P!RlXZpao*2gYPKailbVIgyJbj!J?TJp4YA zu--ctq#QzNtfe6MvQ<(6HEd8?qgb%fRqcZ$*@CAeTZD@wTQm|3Gi^n<=aIY#p$F4} zG2!h%8*W%>@>5pgBgq1%a;ktDrdK*$GPTm_a)ecmsQAc-{jRkg z3mUO0KAP~+l#gbAEYu+=#7#e!#gRe-dy$K5l1;KWBJ6alJ}F!c#te;+XX(Hr$t#Fl zYdcw5>o=rZ|L)42_fO!6CVVsvq8n?&_sJTes0&LiQonF<*750cCOL&KMuxlE5*poN zzakkJ@>|qb)rVp~9?)+WF5PzR2?~D&*P)#rBlqa?j)zOzzhuMJMddhyS`? z!GSe@0;SqkOf-n;0)xyy*n#+CjV1962E7l57}&w6>E4Qmr=?gvuHyeo44%&$9BCE+ b03ZNKL_t)89|DIT0s)5~0s^-m0t4+Rt77^J delta 537 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 literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/HeavySand2.ogg b/sound/effects/footstep/HeavySand2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..6a32465a5ba5c98d3390c3a56ef0955f074eec6b GIT binary patch literal 4737 zcmcgPYgkjqwgaLBL>e(-z(5mABpZbi9+m_-g`fgkp|C;3_<{sPUMflOg{^473gHn$ zK%{{KB>@7)iZueYc+i>viopj2wTjj%K|MYyEf)3EGdmo6@44Uo&Ub&^`DV{vv)9a; z^HIq>aDi;4Bz=@!*^Q1 znLO~rV*B8C|E=k!O_7-ev8$4HZ1xZE@@083y_xv(58;!tmA@@HMGyp$e2DzS7b1PA znQ6SKeHPQF-U~RP@fIK$05XT@F;JWUE=19?q<_81jH52>mB**0_tm9k7SK`C1srG`II2Aok?+H%1*uQ;nYMptpc__xo zo1v{tlcVrBP6bXWQ{Sk5$#a1efVz4{(S3$J(fOn;=mmfnoJ|TlOj_ASxpdWS7Gc)f z>Cg^<0M~^dRE8I+5=u9x)h^ugHKY1#kJgiE7f&v}bn?k}UgquL07S=-blXYR=6%Tk z5E2kEENE7fRRj|_TB^p znzK`A4d$@k){#S*9qPg{gsN5Idq@GDe=YV{2!XcudC;qo+~-p!AOes?3OKaC$BjVC z=aJl(Wj9hG^w2Hg;_fjw!W}V@)1k<{)CqT(RRLw}rsfkla19&~r5p=K8mo9kNDoEW z&+MU!?R>`S%A?qQN?8>9qFX~LmVszVv8&o1I`TDIqeA#i2*NLB>dF5#d}LMw6qq=} zDOm~`%qN+N3Lrholvogn#{p$I<`yP!3zNC^$reYHFTM0F-XjN>Mb2G4v^r~eB5Tt` z*4?3$yAvrt4yA0UOu3`Y+F;zUVL0dCyIJ%+E09*JiW1t*vZKt8K!K-O^IjsBURVuWn5H z&)u?~)(U_P04_b*l(1|{Pc|-5;$>wb~{$Brx35-TmEg4&2Qplswg(_t{w_llGg-Q+!qfmExImVr-PLZJ*^hRh>OA34z=R;nsKnwtf znBj<$grUr)s!$Z^k@LfmhYCRytEWmt^e~Y{_NY=WC}lM%gbqH|6+(N?LYVUMfHiz( z)?bm%wFp+gxl~xhB+TX$IW|Z^G}fXhzZMdq7R#^*wN8c=R|qk-4U*%4c_6w3tjJRt z$4~PdzJ`@}>J{sXyAH~Ep6Vekx3yE3Ae8vO>Sdudaw8kjsEp~6nxR_}X`V_WFU?bL z z7U3%Q8KNJFm2?f)es!YDn#R2ZNr{V?zgG*r*(P3`<{T7Is&%Z-{TMY-%j znOZny4j*D7PH=|_W;6^xgXOLgm!hL}N*R`+Qj&Z}mC*YxQX4SnGAf5y$Q2}|QX09% z+QvbyCtV9kwaFcDQjRMlq068iOn62HbF`W(VL}9g=w)c8MpwNqll8B|(e$>VN`6M$ z=pa^tXd$9gFOMzLPAH&fXyb51!n$oRX$C?kgObyARa{9MbV~;PwE1u{+;Q5G|3Uq! z1V~Ehz=x-i*OjWZT!?5KhLCWzHX21WI!81@t#zCU0Ao8W zT_-|fdD(g9WMU3rlsTiGxdJg!{qzhSZfw1xJQ{)S9PI<$B^n)72#Kf-O^%@`EgyrV zV8B}90X*N2?r04eT0X@PU*T(@+198Gn47x67?Z(JIj=0P(Z}aL>Adcoo7MS=94%2B zOEWHY4vnNm2DMWlLxGT?z!OB;1DMDm2US9YQvn&T<#t#xUfPRbxregh2v}+$ z0y?7%miv4nI)?Lys6-G^FUQy>D&!BTf$SnGIjqRGc&^GM-BcvHHD8fdfM8eX;&vQE zM4Be4pGEK-y5X&-$mKiX*oGW2jmtzut(})ENkta+vrNTUF%xRAh^dE{ln@=6 zZ(v!|_z*$Om*NN_XG{UpB7r8t5&1;6sSXNDfI{FE`+pN609FxmE&u-?Agj;oL z7zdgQ8t(nTeh*z_A*ym5vCI&G;0}nWa093T#7YUeO<~y5G97%&gL5;9#dc`g4yXJi=a}L6=`+F;w{^6h$heoN%>Bjxp#J_~Hr-4X0NSQQI129BQjp#$kjSk(A?3 zSIXeDTn_iDHReULR>=g8mtylo!577#3fRlXG~6usu%ftTMky6y6yM^_IUP9X0dEMV0sBH-CiRC`%`Ye&=tE5#Eh%`s}HPM@q7Oqmz{k&!N?~n;A^=5 zW_P;LRW$y?2TndYmmPk;nH+YvV*28T@lVFv`v-`pEv(KUv^rHYt^Qlv6Ld4Dy`l6^1gXmz?^YJD79RiQUj-T9fdYYRi z-ShTOZ_YS@=1A*%mp^rpHoBg@!73>jDI5+;b+-DP-O4&*o!Yc}>E`RToAy=y?a`W@ zs}`Vs&%bglxiOh7lUKb#&OW^+E_k=kE{8gC)Oc7%)jWS)yWKP{>T!~-ScNmcgcP88zC?qVU@>zY1}pF zXFBS$yCcS1`+eb^bH2@Cj>V}-0$({Hb)~31=62DK8<*T|cjs)`(NK2WccNst=Ke%~ zLZ0}*MaPq(tXlyBV<7m8(^st>fmPuro?C%vO+cHp;cgNDSLR*FtX{B|88kRJiWTg6 z6aC>!zw6Sn1J>xHQA%LG~XWo4gvtj-mUfI0Igr0(0pUBCi8x&!q;?~xnTMoWH z9;;vWG0VD|YG1eQ*`~UgxU!6%1J07?=Z>6d5&iAFHUq3))UG)_Sob-jiogkzqS9fzh;N- z=-wA{cI#@J-%soUUmRjjyxkhyp8s%Ui8a`gA-Q?l@sIUh;dypXl%zE)jCEgzG%^0N z*P&{W$Ex}S3tv~kstvD>tz5O`5q-(GMVmH~UhrxPmrH!Ua2#SBpNxILjgy~ly*cOO z>cdV6%hcD8uK)FO`}~E|W1kV%yS7+z-dMWc=sfmzUY+E`xWz6H_{%eV*mU}-?fsaB zwUhf_f1h-cvPn?$y?k(`;q?dO48OUViNBrPQE2c{mgK~w3l3ktWS4h*^NRGB#?7mK z?v7-9&~OV7a|3An|HZ%fcf;n;LSx LX9V26YzO`cOkSlh literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/HeavySand3.ogg b/sound/effects/footstep/HeavySand3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..c71a89cea290f3fd1c34db965dd4488b5eef5157 GIT binary patch literal 4598 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 bU4-{+hQcx*hu?elGW=elOM`Sy72!Vt#}HRn literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/HeavySand4.ogg b/sound/effects/footstep/HeavySand4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..088519fb7585d9880af665630b2c3468042c5820 GIT binary patch literal 4851 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 literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/LightDirt4.ogg b/sound/effects/footstep/LightDirt4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8a72738b2166ef61c72d93ba31c101aab1844452 GIT binary patch literal 5135 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 E0Jza|fdBvi literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/LightStone2.ogg b/sound/effects/footstep/LightStone2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3409c1f4d8d62029a65531a3cfdcd04909ef3cb7 GIT binary patch literal 5765 zcmcgvdpwle-hYN-T+-0csG(7Yd4!DI1{FiaW4k@>Q!rsle=2C8@q;jj>{ifRcIA@K{KJRSMAb2;5D7z4RL5P^;}n=fHyJGSW>W$9lmp?AQo2J~K|GGn(Bj&j>p0&8Pq6qnw9 zq&FuBQfv?sL;MmwEv5wQGD1jK!ZZoYCP*<|32J08%cf2760@m4s9K4zV%-t^Ms7km z0nCI%Fso3^;;9Y1#BLgxO_GkIiI;5^R6>kaqJ{!RuE6_Uft+RA(EnrI+~T<*O94MO z+eMwyV_#OFfLG#=ZzP*2T_^{FN=hl*XA~{mk~(#$4T5kk3HXg?@LsjV&OYM>*aczp zfgK<$Sm$v}=)o0*W^aovHc7ciDZFS_RTtY)XWm)&`wh#v?H&;1=Z}}|!K=>gi-I8R zRtmSwA$vTOCkiW8O+Qwx1f@aHJg`o4V=dnMy>ZV6=bn%Mv;R1j1VPYIN)$o)FB4#m zmgu_`p*ow@_2@)xHv@XNn^?pdgEPpidjZw1Sfhh)*UXHjzWreW90Wz;9Zno+HO3mH zGx4VG371GZyK>_=UE6mEG$_f89te8^+5E!ST zAC&_bOvlfGCIUR-53vAI5eLNesPV=`2#O#262Ik3 z{F8y`CtspR2BO3BqaRD-!w18|hm!xj&xxKk4@%1(2U-W+BU|X9K4+X941|Ny${e`Q zJ%By3$zeQ`*!-9S`Q--+D^42DEdhoBS_3WZ;+)xx!}2f17MClGU0KP!B(AL7QFtl# zKX;{4qbdkegCK*}1mea7VrzmzsyPjllpzuXx%m^aT67bT^3otx z@Y5*m&C$iU2*7&|n@h!Nvv71ZIKvOE6y)A>^%Qe>sHa%QL$mVOsG}O3tb>}tvQU(3 zAq-^2S`6JoPg%$Xo3d^l<1;P90}Mu0qb!u2X*<(KLyGu=j<7^DxWijA@X#~XLO95b zwU7@o@4|AyYFLty&s-^%4Kq7!r3GvNg=h7^^5VGa##RBxN-`i|bkbx6sa>^G1?+`9 zHXlGGqYN*}Kp~^bHuoMQRwB<~WGW8Nq{g5ObFnOx!KKOy*qIhXy^PD?jDSp9D}%$U z{Sv{bQb2Jf0Lsd)wb%)1%pXj#lzfh0Tha#~Wp1~a>ff=@OkT|HZW(^W!AT|rJ6^4k z4X3`L5k}bWB!gp{?yheWaC#fRUP`svFz}GmCB>d&;~b}#C%tRm&);Dwnb^$uea+yK zgLi4zKE@kZJ{pjDYpD2q%`H_UMkj#caH(Gl*;bBI%s@#C5HLroSDLyCnIiEkrK;!R z{H%unlx(^ra}@+_ZN@;P=5%Yn?QL9$*u~Jl@�tIgIRY9_+2y@ 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 KowY($jeh{m`Gb-G literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/LightStone3.ogg b/sound/effects/footstep/LightStone3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..e0843c62af03fe749061252856f0fbd61a74ae0b GIT binary patch literal 5332 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 literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/LightStone4.ogg b/sound/effects/footstep/LightStone4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b262be5f8e9bf74f16ae02b68caeaffe940c254d GIT binary patch literal 5648 zcmcgPX;>48yfAOYD$2reMQ#33k~7(>8_ zfdNT?pixnRGLDW55O$O$tTMQ;sN*)H;4;I!3f{Tz-S@rkeec(+ue$nFpQ=-5Kh@i# zq5>dQ=$~!;$b&6PP{-jPI299>Ly5_Z7?$#b%Bmpc3xZ5azrH0Z+m$>2)s#C`!0dT@ z(Mny{zy3>WR{Kh33BY=XAKK@z$;O^yL$)O=m#+j*{5#wVR zU-zjj`ubi)bq`X3Tp^ zQZ*hxA_9PFlu!csIxo4K0-!142{ieVgA$96(oNP;QfX1rd#R+H?{K~U>$-)-3q!t= z`~tL}JZ-?bq@)6-gsm!yyTnH+!Amu(G>0*tpYD29Mgmq2Ad7j2?t0QzgG+TmM z60!)`0m6WFUdKgVx#Hl0eKBPgY3E5L=dCVWjcLESw&Uu{A8i)4dqI$&Kd$)zPIF;j z1O#EiNV%1p3Z4b?#35yxoZ}Z&AvOf5gLR8N>u^5r%zA!v?)m+{_piqiAqe`O6oFU! z+XNU>BSZI6RDYMY0hOTVZcOcVmxwbb;4E`yZ@@)2jA{BCm$~tyZ@!uU3qj$yP1(of zW*Acr183=xR7C{Pq*-u#>WmrYQ6`ppLwK~K5$sq{1(5L$k%OgzHDG{6eAElB5-@UM zIf2zlmJ>4<+s%|0`Z~6Wc)pJ9W|akK94x~Hc-KuDFr_kukagJ&X6BPy@c%iiUQh!N z7^`6z!37L*a0^6}0X@Q3u>evT2ZSxCnP;+@C(o>nx0Y7u+;L6Wefm9omhBkWkuW%$ zuy;1$mx0J%W+O)jB6k-@K9VKuR_xwAc<|r*g6M2@h+XguXdQH~0+E;Yf^oPi5Ef!r zZpwY?1?*8^9>TMTDUM1lu1+nf$uU`20t^GR1{(YPg4xVMimPJEs+GpBt<9~H)Yit9 zRK@)7UA4mW0t9J6kg+_8;F&~_Cn=>`&@fRAB0`Y6KVeJqS~+k1HXvi4N6-6R{u>Sk z>`eIE2w;h_$yv^zw*gfEpwOAtx8CRf*p-S^g@E&63%Q7I-OjCWi&_01D-o`+|7eYX z;qCZJLe+pZ8&4pn;_|+6J24kse6(6XZNX! zR=&3$ZAO-YMb;ki63@U&PY95T)x#B6&!hc@;3JDgiueIe-^+ z$RC2T$zHGsha%)^fja`r`Ajc(Qkd*Zkqc6=R@3+tT|~rBE}&EkS^9RGMJ!#a1xR^p zNE19d6%V+}R9uB%&SmA2F?viaRSVAYLu-YFy>2u~CJ&`ant5n`5es$Hf)DDWR&aAL znrkfzWX4zz_M#`PTZEzcw~q4}){+4_{X%1NFe}etu9bq6@)eG-RIG^gkq(T|Vys09 zMvQffg3$%H2<>5MRxx9ZqzLg{NI&B63sa;?g;=9%)mbr2MGM+G9@;n?{_x8_1bUx@A2N)h8Z2#l%V@TnwtM?S4pkjW!k ziuouVV=e<$JIh4v9&Qc{&66Eh zs=6r%jU~&#lsuSCh7G}vX^_!SAfK(k{UrEYfn-6dq#EJ~gh$Byx(DTRu0mCgkBwpHF5*knW=ix|f z-9Rxju5PLyJqgPIqOpY^a7s2S1fC%aR3d^y6G75+0!{`bH*Xfu^XhW7`oX}R{p^6d_#sn578cPm z<)a8<%0U4s5U{Gs0A8`)+&~jBwB;*9Ord?ZsdlNj8#R+uD*WR}Vxw*Or7b~6UpDp` z9ZhK5$VW~}6a{e|jRWH`J}%b@fFUQqkkb{c_L2}S=ov`lfCB-m+b|2StmTW*d}V3R z1?3*drbK{J0}#L&d7#{Lu*i&(KUkas5EXpXaheGDgG&Lsu$T`jvbHi;#p8yBVP-WC zxJ8hw32^bn)NWdgG`y37u^t$*Z6Waaj64t(XkO#iPB$;OrQC@G%kc4UOF4Xc9!0Yd z&2yL@&jhM0$?SF+2vVj{A>$(W#sUFz_^t}{>z%EqyR^1`|1TjhO67GMit(&Y%5*-O zPX-#yCAWY}id!?D*-goGu5#Vt^3Jiv2$cu?bX> zg95o2ib|Z-yz!v7oL1&F9@I%f$Y>y z!H7kCs+H-%ZZ}QyEH0{LT2$aTL*o0PR_6R(3Q5etAqZT=rFuzH_$bM|NV&KOMZC<5 zu!wf4C=k(>hyqbeX$qHWX)fY{X(1o%74s3qJO!m%!D0}(5P)ELLMnyZ)3Ks)wER@ z@|LrfOW+owOtkhsHh`D&4#&)=khZ$(lArPM%MnaPCd1jH$i3aqzwvrMWl^&MGyP57 za&Rrcs6y%-bqG%+2~;2rP0VUdRbv%(-2{kz40Bd%v3A8>Hw(zw)x&EMl%ti~n`MJB z{XRu6;@zFBr5np`Jm%;oe7$U8p|>g!*ALRud)T=ncvo0Nbo_yoBk62FTiGyBIs}=m za`o_7&st`%9B*i}f?#a2l4z>@lUZo4uC5DjA{bp=7ygjcf3jTo1S$WJlo!k#qU5o` z&hYg3h=}NYak1es%y0%{SJ=M2yJ+u80a;H~E)}m!Z@j&-t!L@UY4Z9T-}aQ%{H41+ z+cC1Ue&m8X9!~psYS~oAWbM#zKMSK;l3xEF`NLDnodERD_LI1|b$ur`X>Kq`({8|z zR=#^WU6=$|zP3Sa^P#0zAfL}^qrVH@Or*eF2W}irpKEJ>oJw1{w|=cdSNw?09}l~t zh}8vUF9Y6Nwrlg9#|=$ST&8q>J4@S7+5g*;{G7kE7#^#dICrd{N%8w;jGtwk?5cay zz6yd$J|>44Lat8^^#cJD@*0>XZ^Ga0Ppgn9@@#&^b&5arkeEjVS2jJ`6Y={o$gMK_ zheUF!VM6~6O9zcmqrA{bTTc&F+$VZ*q<7zvv1*RTnpxummO6U-BBN;?*Kx5?(JdOp zhsncH9apx8tDojCFMaEJcr3$^?xqTvcu|LZU7@98KO9nlVzzj9J{kKtc&*hVTU=58 z*pEZ&-i#gPg@p~gaNParr&br!bK$Lr<@bFH?yb4%`Zz)@!^SeM*2d}7`}xEbMD=YWp-_YX%OtDVE->y~Zb+jc;&D)PUwK(TO$;7xQLQIUQFx^SW^2%`KhF zHv-R}tp4G;fBJV*xtqQO>OKEMG*OVSn;U(}_Qi`n-1C_|t7o(qHI8*usM-o6HmCO_ z1ZZ5*ioUm3%Q5kG%%I=3qYw7oyL)rPx$U112C10@>o>{QU@2SA_^>0gw^7I4UoH<6 z2K%#?E)J3sTu&T-vZ0t9s)(U=Jqq8rcZWUk@VnpW7Csj)ADdHMH+=k6&o6RemtMoK z{Zqq#Ni<|<(qgJ(rptorU!1e0q>dbRdZ{%7txtcmRE#nA-L0WS@dU88;N+p!tof?)?mLnJJGDKj{Grf0G8Mf)jy9 zF7)nTss)6o1lcf_4~@8Dd)kZ3CTHsQy{3P+gYYx1m1Jo2@pal|O3coc?0lEfAE(vS z-e2a@DpOQqFV$T$(75B&ezU16@}b6|kyi<~H0Cw!CNv?fL(oW2QxoCSFQ-bSwV#?= zUkrG>csFhAj%!MpB(#|XZn@^`=Iy^|-BZJi04Yro`m^A@gQfa&#d~C;{PvM^6j;|ZoLw;M5vto_p&3fi_Yuftdk>9iA-`%ujPdLw8+O1V%XFpuzXKiOu)jp;3 zMyt{AklFsIldevOA2)0=m7Mwfh_=E>ykS&4T;p`1Lm+&bv7_mO*M;Y2Qb*erRqEw$ zS1oBZJK4_Oq&VUDk5|F%-rk>i*H@};e)y9Q)}m+eCHkkve=O3`nb*|5r}^-qK0)Kz z#IDYJADd3cwUx=YI-F@8GoJUa{@iL}W0e@ht3Pjfdoa8zG&XULKcKezbL!v;2iF5? zRyeBj(ws9Z4*qp>^Ln z9_t<$dJyp`!HyoVyNJ`$HKR5hpm*QSq?9rDB=DOxzn5&i^9t6C4;>;N!R*?Zx+O8` zUaKFB7rY<;@<(Y+cV}doL1N*qQ_0=r+Jq=*e)_qG)%o)t-a*M!{cF+f8SvT?gWRpaMi&N1a zPEDQ}?@w#pQBxhWGFxix(_jG2YZ?U(sJy+x^Y&uk9=%!0SM>T+Vva3W?1D&PK9_Db zrDRA^VpjacTUjTajgQ?J8{E^E&Q1#0_TK*R4o}IAMohf}Kd zBo**yv5^I6PY-idmv}VQB$S+OQco*%u)jIf_2+@Xbo}L8f)%f?dM7;_+2M3r->`9a z@_6vAm0O+XB0EY02QRVv>?_}Dg>*NBWpwpP>yp)S(w(;XkL1ht?e>g1M ziz9%3_C?5}DO#>ttCd4Zs&9<;KN;;;)o^Zg@A}E$#pSD9^x&ZH9X2;VFv9SYeouElv3%}##wi+!7txVhaf^?l{MFX^?#m!YTUwC3d$Hx)>C zWPr+B`uTCqrXAO&@`JT9eB8J8-;6VlNV$7%t)bp%eVSn4J{K`Me&&MZ`JFiTsMIw# zr(RIv_b66~vmbSQWQNkh&)HX3sP7-RGF+cJXtG@$e@A=1`V$)i>HhS7h{qXSvrkuh zqWeWiz4NC}G{MNn8$bC4HwfmAZ!Wv%{5CyRr3$x){SJ30ECa`8y?am9pLnv=w0!lk K!QIZ!q5lA4uw@4T literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/MedDirt1.ogg b/sound/effects/footstep/MedDirt1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8951c4580a9729b2ab4abbfb8502ad61b893e070 GIT binary patch literal 5301 zcmcgPX;@RqmKD|jf)N7*3>cI^E{YNaH9>6%DsTma3nB!xm9T|Hh2Vnt6bvA;i6JOr zK$ZlE8WlAxDz-}}tbz-Rtv1>!i=w!7BkHJAfoIRW`R04y{F?ge);)Dkol|G4bLy^* zit-0);Ga#m<@$LQ*nOTmfwREv*qRu|<*7d4<^-x<09cexy`{LdD$2i`iV_EBoH%dH zz~%dYYYO!#Hu@0jwRuOR)6xZt7z^n3bk*|N@QK*M*%}^^xEvxm5V>R#L^@F7xM5Rt zIL)c|9F|)k4!8h7Vi9aLWt@CwtC3}{X=OR99ceLV-L|ZpK%hC=eQ?M0Fn0aZ4!J7!lh79W zurcq9iVK{Qr@m1f!;L@z0Ob|5?58vXg4uap&xka(th(PX>;CXR`_#4+0Kk4)I7$773-Fd^rf#K} zVW_S#i#)^4oYmzfmGGY+8C1?)|I@B`%RO(Fe;i18GvxvT0Go+Rv(j3u@RsReM4Ocf z)f5N~S_QQyk67V<=Mz|sqLhv%NHJ*&sN*$CI)Me(zyT2pF%P7=I4m1!A@e%vEfoGV zhmrC^A7-0a;KOXUs>;V=5joM{t8UPkBa`=ucxPP^PA*+Z`mbT`q#2;X1TE9>0w`cQ zagu2wK`a!<5!7g)6k=6e<{>$srm-aRY5jn?(9i|-$g|9L$Aac{)q z@rZ}L5gU#~{4S5*(6?bj|Mq|Fld7j`fYkiw(CV;zu#B|)Xtq=hN!fC7Mc{1$=Z8mQyFmEC`a`Yqn>zdrtl6W|h6 zYvC<}y$zZI0)@*w?>Tz^AG^x1Y5)cwp|Ak;sawAqQCeNxXe%Zb_N3Gnhj}qyOIcco zcGCgWQc`|zz(G=gO-rdMX0?)DR`3hx8Rz;R@Vc8nT0rN`04rg>P*RixPAlD-$~UC9 zScPMAhDAaj)LJ4AWOs_wi_x6JJRj7CT8Odrq!9u%mRb#6sz!#-{B$Ub2JizQi|&Dl zi5N<+DRx7V79qz285AY@Fj|U}2)4tdBm-0|Ow4E0h8u+r=1mvygpk#C zjJ-zITf#o&RCt%ol_?9@IjYTb=usGZzEly!&ZaAhc{z6dx7lal9{xFu7B*i{H@=a5 zO2sN$23grJZYgs{n~wDDULgBxBX0q#?@>;)-EdFLbX#Q^uj~5#M|^^8P!#iOx#E7x z7=!eX_g2>TB;?krRuTVp(?oTO{p#Ka{7yOk7>~dlnUnOkZI>`+fow38J-WQlY|kwQ z{tkN#Q4aX$H20SsKi8~n$?kxx_}TP{5}rMCI4nSR9V%ELH?Bxohz?VPC*|75VtpO@ zAuGj5dCo!rHeJI3%C&R{-{{tCK=A>ouB{9SDIG=d73o424Oy4#*;>pO&}}3_jE$$t zq1TRaFoza#x*^+^deIQ&N`-gXG>QBOI~S1~yCKpHj6F|s@d*1QT^`8!wOH86Kp+K* z$cixbDRQBJPLuKrPy|t6SPt~F!$@rs0kxI>8h~+S;=33kfdLSQC;~!qgpW9^u5+ z4fSAoh#VrCltTYQ@^KN240(VG5fri&CQWA;WKeUeqL`gi2g8y^t)JYS1S#r`InygH z20>P0Lk`@H6p}BMvmv6oCrliVE-{YHsT+b3?$kfP@n#qSVE+W3`%NrUnqxQ> z5Mb>h-6U}cW)cxRqI@B*%d<@c6F&+=gXMwnd|0SmM3<|FRPKwSGKDefDU}=R0YKXZ zOV>G9|FDGA$z(ElfKj?u1${L#OmS4w6e?#cMTNcy3};^l7%sl(kcdY>bu5J#idv>) zkQF?zYN`V~%aLlV4Fy^?B@jonsLN8fRMLf6Nvrz&VrdeyHMynAz?9LZduA!|O-qDm zp0qDNwxg+cfa|@yfeZz5h5|XCBk1Y}>wxDlkwXcJd0nO%Bvmb+hUKbCdp0chP&X9< zmKunF!6<;`KAnJ$sN_Q=Nf1#X#F)brC?8S^#YH4SSdn#AxhjtMn`o0&?d^gh;9>zo zd>X6ElPlZY$-vw7-nUnhg~G5Lcq*`*rq!LU9*DBsnTE(oac@i0h3p)Lb|IGIG(5nE zrYzxiE$ch8mR`35?3B1a9U8WKeuahyHi{;Xx1+(c& zcu8?pkT_ioZA%VBP|^!j2m)(F1k)nkGD(F~@8MggW{S(MKlp$UC4TdMFbgC|BT9-~ zJpU%aUvTgpk(0}yt#&h@KNpfrP<#bHY?*bDTf47cQ$r6!Q(?^6^QO)OUJLMQKqFlP zkSMfb9MICn&(&5l$7vYEgVZ$qF`a3;71v#@!7`VX9-82wPWIi51$fK-Ni)LVUCWrc zq^$9ebc6V*%N7B=#eo7}Fk{A@&UHbdo5G{xwk7S_lL~pO8XoKcz-o@m%9V~hBV!Yi zso5;Dxy5XXrRq;+vbngpOui{_ba9#dL(=G(Gx-Uq{*Y7`%z)#m&cxuzl-Sq=E;lYJ zDl#fMVuQ~T3XZs_^iR#`q}N-2;dKW&@gHt|ylC;949$lv5qrMvX`9YLwcbDDozC1s zD*v!++1^IxrLX%o%+|g}{tt53>3y~lUYUebR^SzyO1_1;*;j zF5l1Kf3XJY!MK2}jgh0uxa#<;Wy*eD&v}XO-)vE+2nd9CE9-vYVc8 zr!_{r#+~KCE`57RVP=!WTp;0`_$2Neo_A`xa!lI4d)=EdYxNWQS1&X@dv{V#aXm=A z!z=YOLsKwV&_jRHJ?H;KD;u-u-`4=zBK=QeA8J zhvJ=ArJeKMJAHlUtLM)uY(MU(&?4@6-%js$Y^M7da8mnE%W*$_@~U@Bdwpr3t1NJu zPcrAZdGhWD)weCOC$ddDBPDf#H1I9@a^AqaVsP&J1K?6O|Jd`S$2&=SH*<|xxC;BC zV6E%T24Qt-rB;Fbhdb3NZO4yKjM?!P8gSiKDy#F%*J?)f)6pyS&Ap|>-*>ilyO3If zWrOeZkK7J>x%kG7+}NQBt&XVL`rx9Mwwf!FFaPyzSVQEsyZD-ZYQ+38r_%aW|jDye7(Gi|!>zky^z`cq3*f82U?|jR z;Rt%6+7mf<#{J5Px%f-oS5k%?n_kDQ^jl=f|5O>7X7T6dxsh7tztBo|U*Y7}+pK{lbGHO3%-tufLH;&nOfw}*c=}!(H*<~p@-*!32e!uV% z+<)8!QhV#EO?^LqNF(+v66y?nPWE=xcWTun#7Y}Ghq{Kh1)5xDUin=u_t<5JlAevY zqsI@ z+uCOvJx=h9N@^ViXCDrX)YaE_@1Doq-0OmkDr}Q9B__ya!~LV9*8RIvqEb58Ya)#Y zf*y`8wT%gZ9tI*9=xuK1T*3k>?GREwEE(_cOD>Z#GbsLXg`bl&w?Ckb0#w*%ESB%vu z$^+-zuNqgE%xdn=DhK1SdccEe?K%6~_THqMHy$0<&3Ze!x7}b}awRvhGw)u9?= znJH;fd|-^JpV!E{Exh)w;n3w*T>EXt-YnJEi@YS;Wj8Q5FnP43HR4l8fT z3GaDP_+71xqFiMR{7+U)E%jRS6FZQvA4Bn+XtjROrmW@HVsY&!#*2cBCXZSNq{~t8Of%4$P~V zdFRFPxn8sH>V30u{_P^rdAd9gxb*Ju@hS{iA8lVyFehQ-@i{pSk&!m<_@-XH@-yRu z<5zvo-}KaQ5->N#lpTGg06`}1r*IWC>0srpgH{K)Tw%!G9U)Js)8c1_thpyAeokEDh;Bp9lwRGNAbdY| zHFrGqbnD@~lSYEjeP3uUvon*Aym?Q1Rr36xr~hY(2zK>VkddYSAM`Xt)cceCzIU{DvX0HDm%gD5tv)N}c{nvXw zJaTefXrazJ8{W>D7D^?gWjfu~denJb#LhZDVDhd1lkGn6meQt^9;p3DujGBc;rTCT zqcd(yIRC-i5EW~7QeLj)FB$k_Tf>9K6NY~0Hp$Y}u1&KT`J}lIWPvt6HSigi|vvQf|=RKiOLD6j>@jq(VhLO=`;6@ntg2TGty0AmOU z7$Rtb1dM_j1g%!92`CsT^3Yb$*7ERCrALceYdy2WvG<<)-S2$&*PU-Nd(B?6)~wg8 zH9M=5lOupG_*e7tpPP<@Nv96B>sagT+?JWZ;o>iJY$Ndp0M<2APr1%&obvC6Q|iFk zV#94YvwT1Ox2Bpl#bzeNhQ#mO?B?#gl;KQYLdTacfWM@z>}`ojncfh|hR9`0A<~7C z#z~l>)6t)L+A{qkb$~AbBqq^OU%@W*=$vCyY;!^ zi|akEaJR#MxYY_qHl(I;1TmxE#$86?Pd~Y z#^^&o00LYWR45H9l0}zp=1A`WuG(&HpruO$ zfUt>Hbke=_muR6ZMq(A{_bczW!?~}fTtEaM-rW7*{ti2W z4KKmmAt0lk0-+JR=-WBtc7&mPBC}1L+tm&!w5EVMUZe1cOt=OPh*X3HA@!9BMMwvk z+fDDF#2zJZ{^aEX7h0rFle1%ZLSAp&Sr%&-x+kV!E32U&9w#GeCuj z(=8JPP(Yr!mT4yBN1jp(BJp!TUV+&KX4(Y`?QRJd1($hsoyU7)?K}K5V2y_4u;$+3Zyj7O*l$5oK%mSk_?~O%|FPqS)dev4h-CsatR-qCqPDxR!BJ{n)|cB*nGoXf ztDHF^#8OhEw57ix-{$nK=u zQ}fN}9d?PB?U+~;hT6-dk*sbhuM*`S;fA3O)G~}UL!Kl=Q>pdPrMhJJTf~F1=z%o= z9Ha*!QgaNYpQ`jnkq!|%2pJJ)hA}!Svxtskq^wz}RFqlDI3?zqxfqmlXEE(z%F6== z@HeBbM=(dnR}AL@ZV{be$|f=mk%DlnQC!yR7c9>gV!?8i5GyX{VjhOb4l~RVQAJ}# zPSUk(j?-W-R^p@<#};2H6eT#x`&q1}c2zW&@AkHnf!2ryJP?I!ASG1M|3fgxNji|g zaZ(Q?+(FdhrHG=SB4MFibw8oYOtjyVW5w#@sbbE(5e~F@B%<5vODs#JA#wxic zLaqq1+JUiFDf+8fO>SkqERI4gVDa(I`SfIrwMedtW);y@m0Z5lU=QmI+#`a|=wRgw zTP8QKns8P{3dm~7mmLyMw7p{BD`&;;8@SHQfrtDpPGfy3CXQ+eS9AUT!+fG*M4a-% zTXjG8C4=-McS14nIQGtpPH}!u`@8zwB`f=X$nRDXs<=dtaoenkTf0Ol&We%stmobX z^LF215WZ)(m* z2xAebO6avJHs;bH<(aV@sTa&pj$G8sqREsMtYSoI;g84*FxEoZg$h<9T^Y%~St;sf zAdmt@6y+GJiCiY6)8zRA6hTxN#)p1(8E?oUqK@*LYcY;O+KVAF7yxOAYHciES%{nZ zW+awESHdZM@E{$rgcM^iqha_S3_?8JSrGlnSzv zNe5WP%KAQ*6IBUWwTR4cRu-#5VaTA4bht+3`-idRl7L}QnXsI zP3kU0Lsn8VHr$OATPjzwAfmo6L7|)^$8PnOS)}q?Mqz}z4GyzI8FK(w@)(}`O-xIg zYa$g8VeKN_AhC(_WMX(k^F>@u@GUV+{3r|!W)Q*+W1>z;8owa9G8{z}Dho7NuC$l| z0Bt)gUCn+G2^o3XWTHL5D1CYzeI+tRaaGe)xU<#bvTy{3bGQo(mvD4c%q60RHX;l~ zZFm@D1rMw)et_q@QY{RiKr5yMVvCn*Y>aAT8q7|9a$rp=O*U^;ag91M_j&uhdAaHB z%S332e4sS7tG$1i6Y71D3kQyj1A``)iY=q~kH1h}IO?C}Ef^y(% z4MW_RsR`yN;=36Hr~dm()MSw;fe%jw#&2KQ?H7coYdvX*l9V=4!xORi41+R^?>07^ z4^3H}ukr4W#8ap^;WT{5g$E}4x(;}8ZRL?WhAR*Jtpou#p2ku};&wB}im_rkv|tfk z4KFEvDiT}6FtA}m1cfKS5k%&=7^X#nO%{&e5k1Cgp|S+11YWWKHznL*717r6|NjAs z3jOl$g9GTi_?^zRPuJC!kwT48VEzo;nY?KL82Qm;3D6f*c(Fig%Alu?Fus<+IWB$yION@DM~;@0<59(L@5(Nq!?;s%GLxwBg0Yzv(s$`K_(S39c^}K z{0yiC0?g2+ywqcyCJM(KsiIy6O~x}vQKVeJ43cMwFdDTSUtEr%LDX_0YE&a#iyFzL zYcWDimVoI%l?vgsOay6VA{3=&VN6Fv22ZYBL_~uSSs1K&QgbHFrU0r-l?maQD__er zgc4x1I>-g;EW{819&0l-!Q)oLIl}zVwh3T9@0=NcHxXY^)&S>Juq}bUqRL?=qNXUN zi*67jgol1JXBRVQEB$BDe-V-9qJ+Bq1TXt?|J&hf+AsDo^i>w@-LG2a!fOFR7wGZy z0Et4Y)B)2C2wxcJTIuM`N(XuS2~~#1Ms?Ty?17hWK#)E-WLVT&;7qVNkY$?q+qHt( z%Oq_-@n)q@UABl|LI()KfvM^D-Rq*)Z%W*fwmoat?mWmFZv?O#06SaXfB;wS9E-Um z%X#z3R@MtBHu#r}w)y({YM&H1`ub|Wko4})*S-Sy7ZQHKJZkmnDlv9rPTJPA?U`G* zr6s3siZCWG+nPhRX6;w^kAAl?dt_jf&qa@r34X~a(ktn0msFMidDyUZkHwh5gTthV zLs1t;Noh6S;a0*DIDYmy_*ZX688$hrAo|j@;a|?ig#b zi~i>azvU)oXDTu`#{XtH+hdi}SvyL|f}>6^;;SCU)b471wK(n+P4hvQ##lAd{cwPD zGu_RgY18Bp+F#MJ+z->i{o}8)oq(h4SG!4BYQc?`(>7)|E?sxpnW6{~9lM)TlR6gU z6>UFv@KJ2ruW^c;h41tFZ@B*=yMNTRa8B)_yO{B-)>OjaE}Zsg`OeZj;| zQnvAyu$GrM1FriaTl{r>qMx_rt`+26VZ5{i=I7JsJI{tJz0~;0ICXl!W=^Du!s`6j zHRbxYtdV`2_0H(-j4e5vcIw0X^bI4{C2v&sy&tgl%Fg8Gr~P^@r>rMB_he6^k-kSq z!_m7juiQkQ{>fcDYv4Q-@aMR-t*>d_E`i-c6qYCJ%8YW?uRSWKy7qZt90O< zA!1i*SCHe9xc=Jg9GAH2Cq0d`Won7xcCU)qro~SWmz2F#u*Ao|m}~$YRFB}J7ss~M zR4j2k*turtjk`3LtvGMuwkAdWW zAAF??()pPQFP?gsnMsL}?WH-pzP0rTukIe%@yOZbcjJOhL)R)D`{J6s7C)KT+?Abo z`@N|5VSMeZv7 z#MVF3^J%F1HR1jDPjemiCM@08>I?1-HI>#xg5kg!_b=;A-}K2^2dq2xK*;}Od~gOcz3JR@U;ReM zbG)6+MvuJLh5r6w-eAMLl~uJB8Y(F|)Ma-zdin#pGCsuZsy_}-ly->7g;fjdO?%$QH^J`Oaonw@5n=kTFeccsWuhuhp>0?kzWy@4)Lx zoO=$v6t9MXO6u+(wuvN zRsy*n^TbeJ~>hD_+&t! z`^~ZK{dK0#(-89kEaZ)HsOzqZlXB#TCTr{Q_jv?h-D(g$TSho!G6t_+U{BTcpG}9N zHn{m@-}+wh{^$n9TsG{`@^esf>Iu5TnvXuUk-ORy`)~9I V9D4H1g9HBRcwY!v(g6I!=$~9pH--QJ literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/MedDirt3.ogg b/sound/effects/footstep/MedDirt3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..141c542f0acc7348d93e01b6b03a00fdacd77591 GIT binary patch literal 5030 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 literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/MedDirt4.ogg b/sound/effects/footstep/MedDirt4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..7b980e6e31ac84929d740df89a831473fa1deece GIT binary patch literal 5261 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≫OzK`>7m|1|iqPuf48y!-uQrqv_o$9V#RSn>A4jvsn{ z4>Av~cQ$|bJn87bmBFW*C&2FC^I;X8{LiZt)QhJttyEC}_$=(_C z2l(&jEH1s(W^L-dc$dfi2fX+B=A5!~S~l5k$o_uRK?DC}cho|&ish>p4E22MSjBR6 zz4f|l*@EA8aSp!CnE2u@Pno&Qtm>fuG+k=0@W`^^)4JEMsu0_AM1#$Nr~~mU1&f}% z1KZhmw*JRNw)NB0u$)bE_`G$mO830IuGww8{K(P+q0G<0mgLQ}CGWm-WrQ?@Ukgqh znsYms{5B|2GOC#ozI1EuX!JQjMwITJOpwoTNEW9WQ%&2i#Z`P(pS8iG`9-b#aVH`Z7B2e$1A+i z#tU0^S2n%B>Jo(>P5WiV`}5`rs&8gy7q?ElM9kMYjJc$wtv^4qX42!!A4?H4T=(5zasBL>+&6Bg?vj3gdxV{3e%k4# zur&P5clV!bdxGba#Y;FnKh-vY<;r)X{wrQ0Zr3C$Z>dMv++KcspY z^w8t`$qiFol{JTMu*|J{MuvT*LwIUV&Wcz+@%4g%X3vyGwNzf*R)=qanv`@-BKk{qUHoeP? z1G8^YAJ?Cp^Coj2J6n*oZHWH#;@%fQ)%ibtN0r-L-Rv>lb#gdKlN~+jv`&~Ebmehq z`GtY4J1@GMR?zF%N6PH~wiVj^9+Hv;5C&`AJ!yvtD>a}#a zVTe+n#(eZ}YFyIU)BGtw5ukFbn9#5b$`+v)+K2>&Yq;d}i%Sbud%kqR< z^1_%-8;@|$XCsf?uX$X{s#NV-)$NZt9!XZxIxx^yJn_*36jF#%ZULD7*y$8#|-jV2858N2G`IqS~^s@1|4 zX5Bken^^tYSus~my-c{Ishs&3?YWV6_s{Tlg6N@B`0-f&1<%XVhEFzqlXl$8=}sCs zC9_F#X5y#jKXy(BTSnVCvJ3E!zKr6`hA_m4!|W}uP_E22OBdW9Xmh=7Z1KBG^w!*J bW1nGyk5^|5bJj`V`^oSJ%@X+GCGtN3Kf0sL literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/bubbles3.ogg b/sound/effects/footstep/bubbles3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..62070813e3c4e04db9622459a7022e834a807603 GIT binary patch literal 10146 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 literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/bubbles4.ogg b/sound/effects/footstep/bubbles4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..f94889c0606f6623a1e99bf49fc8d16dd7a8e73b GIT binary patch literal 15532 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 literal 0 HcmV?d00001 diff --git a/sound/effects/footstep/mud4.ogg b/sound/effects/footstep/mud4.ogg new file mode 100644 index 0000000000000000000000000000000000000000..158158125d29df8964ecb6582c48f5ae975a1f42 GIT binary patch literal 5182 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 literal 0 HcmV?d00001 From 215020e345e247292283d23b38eed5cd1372264d Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sat, 9 May 2020 18:09:13 -0400 Subject: [PATCH 070/105] Add bluespace flare to research designs --- code/modules/research/designs/misc.dm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/modules/research/designs/misc.dm b/code/modules/research/designs/misc.dm index 8faf037136..e12565479e 100644 --- a/code/modules/research/designs/misc.dm +++ b/code/modules/research/designs/misc.dm @@ -63,3 +63,12 @@ datum/design/item/general/laserpointer materials = list(DEFAULT_WALL_MATERIAL = 500) build_path = /obj/item/weapon/storage/box/syndie_kit/chameleon sort_string = "TBAAB" + +/datum/design/item/general/chameleon + name = "bluespace flare" + desc = "A marker that can be detected by shuttle landing systems." + id = "bsflare" + req_tech = list(TECH_DATA = 3, TECH_BLUESPACE = 4) + materials = list(DEFAULT_WALL_MATERIAL = 4000, MAT_GLASS = 2000, MAT_SILVER = 2000) + build_path = /obj/item/device/spaceflare + sort_string = "TBAAC" From 5ed15f56365c970494e9dee1dccc53f3152d580b Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 9 May 2020 15:58:43 -0700 Subject: [PATCH 071/105] Prevents simplemob spawning on random turfs, pending a better system. --- code/game/turfs/simulated/outdoors/grass.dm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/code/game/turfs/simulated/outdoors/grass.dm b/code/game/turfs/simulated/outdoors/grass.dm index 553b4858bb..90f4f790ae 100644 --- a/code/game/turfs/simulated/outdoors/grass.dm +++ b/code/game/turfs/simulated/outdoors/grass.dm @@ -11,14 +11,14 @@ var/list/grass_types = list( /turf/simulated/floor/outdoors/dirt ) var/grass_chance = 20 - +/* var/animal_chance = 1 // Weighted spawn list. var/list/animal_types = list( /mob/living/simple_mob/animal/passive/tindalos = 1 ) - +*/ var/list/grass_types = list( /obj/structure/flora/ausbushes/sparsegrass, /obj/structure/flora/ausbushes/fullgrass @@ -38,8 +38,13 @@ var/list/grass_types = list( edge_blending_priority = 4 grass_chance = 5 var/tree_chance = 2 +<<<<<<< HEAD animal_chance = 0 //VOREStation Edit +======= +/* + animal_chance = 0.5 +>>>>>>> ac4719e... Merge pull request #7132 from Mechoid/Simplemobageddon animal_types = list( /mob/living/simple_mob/animal/sif/diyaab = 10, @@ -48,7 +53,7 @@ var/list/grass_types = list( /mob/living/simple_mob/animal/sif/shantak/retaliate = 2, /obj/random/mob/multiple/sifmobs = 1 ) - +*/ grass_types = list( /obj/structure/flora/sif/eyes = 1, /obj/structure/flora/sif/tendrils = 10 @@ -70,11 +75,11 @@ var/list/grass_types = list( if(grass_chance && prob(grass_chance) && !check_density()) var/grass_type = pickweight(grass_types) new grass_type(src) - +/* if(animal_chance && prob(animal_chance) && !check_density()) var/animal_type = pickweight(animal_types) new animal_type(src) - +*/ . = ..() /turf/simulated/floor/outdoors/grass/forest From eafc97af6968b048b50a1b99603c576c1664169f Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sat, 9 May 2020 16:05:26 -0700 Subject: [PATCH 072/105] FloorTiles now properly show damage. --- code/game/turfs/flooring/flooring.dm | 9 +++------ code/game/turfs/simulated/floor_icon.dm | 15 +++++++++++---- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/code/game/turfs/flooring/flooring.dm b/code/game/turfs/flooring/flooring.dm index 60157c1ee8..fdc44a28d1 100644 --- a/code/game/turfs/flooring/flooring.dm +++ b/code/game/turfs/flooring/flooring.dm @@ -216,7 +216,7 @@ var/list/flooring_types icon_base = "lino" can_paint = 1 build_type = /obj/item/stack/tile/linoleum - flags = TURF_REMOVE_SCREWDRIVER + flags = TURF_REMOVE_SCREWDRIVER | TURF_CAN_BREAK | TURF_CAN_BURN /decl/flooring/tiling/red name = "floor" @@ -239,7 +239,6 @@ var/list/flooring_types name = "floor" icon_base = "asteroidfloor" has_damage_range = null - flags = TURF_REMOVE_CROWBAR build_type = /obj/item/stack/tile/floor/steel /decl/flooring/tiling/white @@ -252,7 +251,6 @@ var/list/flooring_types name = "floor" icon_base = "white" has_damage_range = null - flags = TURF_REMOVE_CROWBAR build_type = /obj/item/stack/tile/floor/yellow /decl/flooring/tiling/dark @@ -260,7 +258,6 @@ var/list/flooring_types desc = "How ominous." icon_base = "dark" has_damage_range = null - flags = TURF_REMOVE_CROWBAR build_type = /obj/item/stack/tile/floor/dark /decl/flooring/tiling/hydro @@ -308,7 +305,7 @@ var/list/flooring_types desc = "Heavily reinforced with steel rods." icon = 'icons/turf/flooring/tiles.dmi' icon_base = "reinforced" - flags = TURF_REMOVE_WRENCH | TURF_ACID_IMMUNE + flags = TURF_REMOVE_WRENCH | TURF_ACID_IMMUNE | TURF_CAN_BURN | TURF_CAN_BREAK build_type = /obj/item/stack/rods build_cost = 2 build_time = 30 @@ -321,7 +318,7 @@ var/list/flooring_types icon = 'icons/turf/flooring/circuit.dmi' icon_base = "bcircuit" build_type = null - flags = TURF_ACID_IMMUNE | TURF_CAN_BREAK | TURF_REMOVE_CROWBAR + flags = TURF_ACID_IMMUNE | TURF_CAN_BREAK | TURF_CAN_BURN | TURF_REMOVE_CROWBAR can_paint = 1 /decl/flooring/reinforced/circuit/green diff --git a/code/game/turfs/simulated/floor_icon.dm b/code/game/turfs/simulated/floor_icon.dm index cf5396aa96..9a132eb78a 100644 --- a/code/game/turfs/simulated/floor_icon.dm +++ b/code/game/turfs/simulated/floor_icon.dm @@ -1,4 +1,4 @@ -var/list/flooring_cache = list() +GLOBAL_LIST_EMPTY(flooring_cache) var/image/no_ceiling_image = null @@ -79,10 +79,17 @@ var/image/no_ceiling_image = null icon = 'icons/turf/flooring/plating.dmi' icon_state = "dmg[rand(1,4)]" else if(flooring) + var/rand_key = rand(0,2) if(!isnull(broken) && (flooring.flags & TURF_CAN_BREAK)) +<<<<<<< HEAD add_overlay(get_flooring_overlay("[flooring.icon_base]-broken-[broken]","broken[broken]")) // VOREStation Edit - Eris overlays if(!isnull(burnt) && (flooring.flags & TURF_CAN_BURN)) add_overlay(get_flooring_overlay("[flooring.icon_base]-burned-[burnt]","burned[burnt]")) // VOREStation Edit - Eris overlays +======= + add_overlay(get_flooring_overlay("[flooring.icon_base]-broken-[rand_key]","broken[rand_key]")) + if(!isnull(burnt) && (flooring.flags & TURF_CAN_BURN)) + add_overlay(get_flooring_overlay("[flooring.icon_base]-burned-[rand_key]","burned[rand_key]")) +>>>>>>> 6ea50f3... Merge pull request #7061 from Mechoid/FixFloorDamage if(update_neighbors) for(var/turf/simulated/floor/F in range(src, 1)) @@ -96,8 +103,8 @@ var/image/no_ceiling_image = null add_overlay(no_ceiling_image) /turf/simulated/floor/proc/get_flooring_overlay(var/cache_key, var/icon_base, var/icon_dir = 0) - if(!flooring_cache[cache_key]) + if(!GLOB.flooring_cache[cache_key]) var/image/I = image(icon = flooring.icon, icon_state = icon_base, dir = icon_dir) I.layer = layer - flooring_cache[cache_key] = I - return flooring_cache[cache_key] + GLOB.flooring_cache[cache_key] = I + return GLOB.flooring_cache[cache_key] From 145480fe6f9a21b4b028358fdc471cd1dc94e3d0 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sat, 9 May 2020 19:16:22 -0400 Subject: [PATCH 074/105] Swap default response for resleeving prompt --- code/modules/resleeving/computers.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/resleeving/computers.dm b/code/modules/resleeving/computers.dm index aaa55b446d..535c18c7a6 100644 --- a/code/modules/resleeving/computers.dm +++ b/code/modules/resleeving/computers.dm @@ -356,7 +356,7 @@ //Body to sleeve into, but mind is in another living body. if(active_mr.mind_ref.current && active_mr.mind_ref.current.stat < DEAD) //Mind is in a body already that's alive - var/answer = alert(active_mr.mind_ref.current,"Someone is attempting to restore a backup of your mind. Do you want to abandon this body, and move there? You MAY suffer memory loss! (Same rules as CMD apply)","Resleeving","Yes","No") + var/answer = alert(active_mr.mind_ref.current,"Someone is attempting to restore a backup of your mind. Do you want to abandon this body, and move there? You MAY suffer memory loss! (Same rules as CMD apply)","Resleeving","No","Yes") //They declined to be moved. if(answer == "No") From dc64755e520b4babd55af1bbb4687b88633b7904 Mon Sep 17 00:00:00 2001 From: Teletubby2 Date: Sat, 9 May 2020 19:49:02 -0400 Subject: [PATCH 075/105] ok --- .../guns/energy/cell_loaded_vr/multi_cannon.dm | 1 + .../guns/energy/cell_loaded_vr/multi_cannon_cells.dm | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/code/modules/projectiles/guns/energy/cell_loaded_vr/multi_cannon.dm b/code/modules/projectiles/guns/energy/cell_loaded_vr/multi_cannon.dm index cc8240b9af..4c40da9721 100644 --- a/code/modules/projectiles/guns/energy/cell_loaded_vr/multi_cannon.dm +++ b/code/modules/projectiles/guns/energy/cell_loaded_vr/multi_cannon.dm @@ -20,6 +20,7 @@ icon_override = 'icons/vore/custom_guns_vr.dmi' item_state = "multicannon" slot_flags = SLOT_BACK + recoil = FALSE /obj/item/weapon/gun/projectile/multi_cannon/update_icon() . = ..() diff --git a/code/modules/projectiles/guns/energy/cell_loaded_vr/multi_cannon_cells.dm b/code/modules/projectiles/guns/energy/cell_loaded_vr/multi_cannon_cells.dm index 3df1ef5022..53dd7c0ad3 100644 --- a/code/modules/projectiles/guns/energy/cell_loaded_vr/multi_cannon_cells.dm +++ b/code/modules/projectiles/guns/energy/cell_loaded_vr/multi_cannon_cells.dm @@ -11,7 +11,7 @@ var/charge var/max_charge = 10 var/ticks = 1 - var/ticks_to_charge = 5 //10 secs per shot charged + var/ticks_to_charge = 15 //10 secs per shot charged /obj/item/ammo_casing/macrobattery/Initialize(mapload, ...) . = ..() @@ -77,7 +77,7 @@ name = "Macrobattery - LETHAL" icon_state = "macrobat_ouchie" bat_colour = "#cc3300" - projectile_type = /obj/item/projectile/beam + projectile_type = /obj/item/projectile/beam/heavylaser/lessheavy /obj/item/ammo_casing/macrobattery/healie name = "Macrobattery - RESTORE" @@ -97,4 +97,8 @@ target.adjustToxLoss(-15) target.radiation = max(target.radiation - 75, 0) //worse than mlem for rad, better for tox. else - return 1 \ No newline at end of file + return 1 + +/obj/item/projectile/beam/heavylaser/lessheavy //all bark. no (or little) bite. + damage = 15 + fire_sound = 'sound/weapons/Gunshot_cannon.ogg' \ No newline at end of file From 90bc016390d8f65d3c7ee75162be34ba163a7d75 Mon Sep 17 00:00:00 2001 From: Rykka Date: Sat, 9 May 2020 22:18:37 -0400 Subject: [PATCH 076/105] Adds framework/backbone for TGS4 auto-update system Adds TGS4 from https://github.com/tgstation/tgstation-server to Virgo, allowing auto-update functionality and testmerges. How well it runs depends on how @Arokha sets things up. :p --- code/__defines/tgs.config.dm | 12 + code/__defines/tgs.dm | 273 ++++++++++++++++++++ code/controllers/master.dm | 5 +- code/game/world.dm | 6 +- code/modules/tgs/core/_definitions.dm | 2 + code/modules/tgs/core/core.dm | 171 +++++++++++++ code/modules/tgs/core/datum.dm | 82 ++++++ code/modules/tgs/core/tgs_version.dm | 28 ++ code/modules/tgs/includes.dm | 44 ++++ code/modules/tgs/v3210/api.dm | 255 +++++++++++++++++++ code/modules/tgs/v3210/commands.dm | 78 ++++++ code/modules/tgs/v4/api.dm | 342 +++++++++++++++++++++++++ code/modules/tgs/v4/commands.dm | 69 +++++ code/modules/tgs/v5/_defines.dm | 121 +++++++++ code/modules/tgs/v5/api.dm | 352 ++++++++++++++++++++++++++ code/modules/tgs/v5/commands.dm | 68 +++++ code/modules/tgs/v5/undef.dm | 121 +++++++++ vorestation.dme | 3 + 18 files changed, 2030 insertions(+), 2 deletions(-) create mode 100644 code/__defines/tgs.config.dm create mode 100644 code/__defines/tgs.dm create mode 100644 code/modules/tgs/core/_definitions.dm create mode 100644 code/modules/tgs/core/core.dm create mode 100644 code/modules/tgs/core/datum.dm create mode 100644 code/modules/tgs/core/tgs_version.dm create mode 100644 code/modules/tgs/includes.dm create mode 100644 code/modules/tgs/v3210/api.dm create mode 100644 code/modules/tgs/v3210/commands.dm create mode 100644 code/modules/tgs/v4/api.dm create mode 100644 code/modules/tgs/v4/commands.dm create mode 100644 code/modules/tgs/v5/_defines.dm create mode 100644 code/modules/tgs/v5/api.dm create mode 100644 code/modules/tgs/v5/commands.dm create mode 100644 code/modules/tgs/v5/undef.dm diff --git a/code/__defines/tgs.config.dm b/code/__defines/tgs.config.dm new file mode 100644 index 0000000000..1ae6593419 --- /dev/null +++ b/code/__defines/tgs.config.dm @@ -0,0 +1,12 @@ +#define TGS_EXTERNAL_CONFIGURATION +#define TGS_V3_API +#define TGS_DEFINE_AND_SET_GLOBAL(Name, Value) GLOBAL_VAR_INIT(##Name, ##Value); GLOBAL_PROTECT(##Name) +#define TGS_READ_GLOBAL(Name) GLOB.##Name +#define TGS_WRITE_GLOBAL(Name, Value) GLOB.##Name = ##Value +#define TGS_WORLD_ANNOUNCE(message) to_chat(world, "[html_encode(##message)]") +#define TGS_INFO_LOG(message) log_to_dd("TGS Info: [##message]") +#define TGS_WARNING_LOG(message) log_to_dd("TGS Warn: [##message]") +#define TGS_ERROR_LOG(message) log_to_dd("TGS Error: [##message]") +#define TGS_NOTIFY_ADMINS(event) message_admins(##event) +#define TGS_CLIENT_COUNT GLOB.clients.len +#define TGS_PROTECT_DATUM(Path) GENERAL_PROTECT_DATUM(##Path) diff --git a/code/__defines/tgs.dm b/code/__defines/tgs.dm new file mode 100644 index 0000000000..4e152ad3cf --- /dev/null +++ b/code/__defines/tgs.dm @@ -0,0 +1,273 @@ +//tgstation-server DMAPI + +#define TGS_DMAPI_VERSION "5.0.0" + +//All functions and datums outside this document are subject to change with any version and should not be relied on + +//CONFIGURATION + +//create this define if you want to do configuration outside of this file +#ifndef TGS_EXTERNAL_CONFIGURATION + +//Comment this out once you've filled in the below +#error TGS API unconfigured + +//Uncomment this if you wish to allow the game to interact with TGS 3 +//This will raise the minimum required security level of your game to TGS_SECURITY_TRUSTED due to it utilizing call()() +//#define TGS_V3_API + +//Required interfaces (fill in with your codebase equivalent): + +//create a global variable named `Name` and set it to `Value` +#define TGS_DEFINE_AND_SET_GLOBAL(Name, Value) + +//Read the value in the global variable `Name` +#define TGS_READ_GLOBAL(Name) + +//Set the value in the global variable `Name` to `Value` +#define TGS_WRITE_GLOBAL(Name, Value) + +//Disallow ANYONE from reflecting a given `path`, security measure to prevent in-game use of DD -> TGS capabilities +#define TGS_PROTECT_DATUM(Path) + +//Display an announcement `message` from the server to all players +#define TGS_WORLD_ANNOUNCE(message) + +//Notify current in-game administrators of a string `event` +#define TGS_NOTIFY_ADMINS(event) + +//Write an info `message` to a server log +#define TGS_INFO_LOG(message) + +//Write an warning `message` to a server log +#define TGS_WARNING_LOG(message) + +//Write an error `message` to a server log +#define TGS_ERROR_LOG(message) + +//Get the number of connected /clients +#define TGS_CLIENT_COUNT + +#endif + +//EVENT CODES + +#define TGS_EVENT_REBOOT_MODE_CHANGE -1 //Before a reboot mode change, extras parameters are the current and new reboot mode enums +#define TGS_EVENT_PORT_SWAP -2 //Before a port change is about to happen, extra parameters is new port +#define TGS_EVENT_INSTANCE_RENAMED -3 //Before the instance is renamed, extra prameter is the new name + +//See the descriptions for the parameters of these codes here: https://github.com/tgstation/tgstation-server/blob/master/src/Tgstation.Server.Host/Components/EventType.cs +#define TGS_EVENT_REPO_RESET_ORIGIN 0 +#define TGS_EVENT_REPO_CHECKOUT 1 +#define TGS_EVENT_REPO_FETCH 2 +#define TGS_EVENT_REPO_MERGE_PULL_REQUEST 3 +#define TGS_EVENT_REPO_PRE_SYNCHRONIZE 4 +#define TGS_EVENT_BYOND_INSTALL_START 5 +#define TGS_EVENT_BYOND_INSTALL_FAIL 6 +#define TGS_EVENT_BYOND_ACTIVE_VERSION_CHANGE 7 +#define TGS_EVENT_COMPILE_START 8 +#define TGS_EVENT_COMPILE_CANCELLED 9 +#define TGS_EVENT_COMPILE_FAILURE 10 +#define TGS_EVENT_COMPILE_COMPLETE 11 // Note, this event fires before the new .dmb is loaded into the watchdog. Consider using the TGS_EVENT_DEPLOYMENT_COMPLETE instead +#define TGS_EVENT_INSTANCE_AUTO_UPDATE_START 12 +#define TGS_EVENT_DEPLOYMENT_COMPLETE 13 + +//OTHER ENUMS + +#define TGS_REBOOT_MODE_NORMAL 0 +#define TGS_REBOOT_MODE_SHUTDOWN 1 +#define TGS_REBOOT_MODE_RESTART 2 + +#define TGS_SECURITY_TRUSTED 0 +#define TGS_SECURITY_SAFE 1 +#define TGS_SECURITY_ULTRASAFE 2 + +//REQUIRED HOOKS + +//Call this somewhere in /world/New() that is always run +//IMPORTANT: This function may sleep! Other TGS functions will not succeed until it completes +//event_handler: optional user defined event handler. The default behaviour is to broadcast the event in english to all connected admin channels +//minimum_required_security_level: The minimum required security level to run the game in which the DMAPI is integrated +/world/proc/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE) + return + +//Call this when your initializations are complete and your game is ready to play before any player interactions happen +//This may use world.sleep_offline to make this happen so ensure no changes are made to it while this call is running +//Most importantly, before this point, note that any static files or directories may be in use by another server. Your code should account for this +//This function should not be called before ..() in /world/New() +/world/proc/TgsInitializationComplete() + return + +//Put this at the start of /world/Topic() +#define TGS_TOPIC var/tgs_topic_return = TgsTopic(args[1]); if(tgs_topic_return) return tgs_topic_return + +//Call this at the beginning of world/Reboot(reason) +/world/proc/TgsReboot() + return + +//DATUM DEFINITIONS +//unless otherwise specified all datums defined here should be considered read-only, warranty void if written + +//represents git revision information about the current world build +/datum/tgs_revision_information + var/commit //full sha of compiled commit + var/origin_commit //full sha of last known remote commit. This may be null if the TGS repository is not currently tracking a remote branch + +//represents a version of tgstation-server +/datum/tgs_version + var/suite //The suite/major version, can be >=3 + + //this group of variables can be null to represent a wild card + var/minor //The minor version + var/patch //The patch version + var/deprecated_patch //The legacy version + + var/raw_parameter //The unparsed parameter + var/deprefixed_parameter //The version only bit of raw_parameter + +//if the tgs_version is a wildcard version +/datum/tgs_version/proc/Wildcard() + return + +//if the tgs_version equals some other_version +/datum/tgs_version/proc/Equals(datum/tgs_version/other_version) + return + +//represents a merge of a GitHub pull request +/datum/tgs_revision_information/test_merge + var/number //pull request number + var/title //pull request title + var/body //pull request body + var/author //pull request github author + var/url //link to pull request html + var/pull_request_commit //commit of the pull request when it was merged + var/time_merged //timestamp of when the merge commit for the pull request was created + var/comment //optional comment left by the one who initiated the test merge + +//represents a connected chat channel +/datum/tgs_chat_channel + var/id //internal channel representation + var/friendly_name //user friendly channel name + var/connection_name //the name of the configured chat connection + var/is_admin_channel //if the server operator has marked this channel for game admins only + var/is_private_channel //if this is a private chat channel + var/custom_tag //user defined string associated with channel + +//represents a chat user +/datum/tgs_chat_user + var/id //Internal user representation, requires channel to be unique + var/friendly_name //The user's public name + var/mention //The text to use to ping this user in a message + var/datum/tgs_chat_channel/channel //The /datum/tgs_chat_channel this user was from + +//user definable callback for handling events +//extra parameters may be specified depending on the event +/datum/tgs_event_handler/proc/HandleEvent(event_code, ...) + set waitfor = FALSE + return + +//user definable chat command +/datum/tgs_chat_command + var/name = "" //the string to trigger this command on a chat bot. e.g. TGS3_BOT: do_this_command + var/help_text = "" //help text for this command + var/admin_only = FALSE //set to TRUE if this command should only be usable by registered chat admins + +//override to implement command +//sender: The tgs_chat_user who send to command +//params: The trimmed string following the command name +//The return value will be stringified and sent to the appropriate chat +/datum/tgs_chat_command/proc/Run(datum/tgs_chat_user/sender, params) + CRASH("[type] has no implementation for Run()") + +//FUNCTIONS + +//Returns the respective supported /datum/tgs_version of the API +/world/proc/TgsMaximumAPIVersion() + return + +/world/proc/TgsMinimumAPIVersion() + return + +//Returns TRUE if the world was launched under the server tools and the API matches, FALSE otherwise +//No function below this succeeds if it returns FALSE or if TgsNew() has yet to be called +/world/proc/TgsAvailable() + return + +//Gets the current /datum/tgs_version of the server tools running the server +/world/proc/TgsVersion() + return + +//Gets the current /datum/tgs_version of the DMAPI being used +/world/proc/TgsApiVersion() + return + +//Gets the name of the TGS instance running the game +/world/proc/TgsInstanceName() + return + +//Get the current `/datum/tgs_revision_information` +/world/proc/TgsRevision() + return + +//Get the current BYOND security level +/world/proc/TgsSecurityLevel() + return + +//Gets a list of active `/datum/tgs_revision_information/test_merge`s +/world/proc/TgsTestMerges() + return + +//Forces a hard reboot of BYOND by ending the process +//unlike del(world) clients will try to reconnect +//If the service has not requested a shutdown, the next server will take over +/world/proc/TgsEndProcess() + return + +//Gets a list of connected tgs_chat_channel +/world/proc/TgsChatChannelInfo() + return + +//Sends a message to connected game chats +//message: The message to send +//channels: optional channels to limit the broadcast to +/world/proc/TgsChatBroadcast(message, list/channels) + return + +//Send a message to non-admin connected chats +//message: The message to send +//admin_only: If TRUE, message will instead be sent to only admin connected chats +/world/proc/TgsTargetedChatBroadcast(message, admin_only) + return + +//Send a private message to a specific user +//message: The message to send +//user: The /datum/tgs_chat_user to send to +/world/proc/TgsChatPrivateMessage(message, datum/tgs_chat_user/user) + return + +/* +The MIT License + +Copyright (c) 2017 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/controllers/master.dm b/code/controllers/master.dm index 07cf071246..f05714702b 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -156,12 +156,15 @@ GLOBAL_REAL(Master, /datum/controller/master) = new // Please don't stuff random bullshit here, // Make a subsystem, give it the SS_NO_FIRE flag, and do your work in it's Initialize() -/datum/controller/master/Initialize(delay, init_sss) +/datum/controller/master/Initialize(delay, init_sss, tgs_prime) set waitfor = 0 if(delay) sleep(delay) + if(tgs_prime) + world.TgsInitializationComplete() + if(init_sss) init_subtypes(/datum/controller/subsystem, subsystems) diff --git a/code/game/world.dm b/code/game/world.dm index 3385a494ae..5e5593d40d 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -15,6 +15,8 @@ if(byond_version < RECOMMENDED_VERSION) to_world_log("Your server's byond version does not meet the recommended requirements for this server. Please update BYOND") + TgsNew() + config.post_load() if(config && config.server_name != null && config.server_suffix && world.port > 0) @@ -62,7 +64,7 @@ master_controller = new /datum/controller/game_controller() - Master.Initialize(10, FALSE) + Master.Initialize(10, FALSE, TRUE) spawn(1) master_controller.setup() @@ -82,6 +84,7 @@ var/world_topic_spam_protect_ip = "0.0.0.0" var/world_topic_spam_protect_time = world.timeofday /world/Topic(T, addr, master, key) + TGS_TOPIC log_topic("\"[T]\", from:[addr], master:[master], key:[key]") if (T == "ping") @@ -409,6 +412,7 @@ var/world_topic_spam_protect_time = world.timeofday if(config.server) //if you set a server location in config.txt, it sends you there instead of trying to reconnect to the same world address. -- NeoFite C << link("byond://[config.server]") + TgsReboot() log_world("World rebooted at [time_stamp()]") ..() diff --git a/code/modules/tgs/core/_definitions.dm b/code/modules/tgs/core/_definitions.dm new file mode 100644 index 0000000000..ebf6d17c2a --- /dev/null +++ b/code/modules/tgs/core/_definitions.dm @@ -0,0 +1,2 @@ +#define TGS_UNIMPLEMENTED "___unimplemented" +#define TGS_VERSION_PARAMETER "server_service_version" diff --git a/code/modules/tgs/core/core.dm b/code/modules/tgs/core/core.dm new file mode 100644 index 0000000000..144f33926f --- /dev/null +++ b/code/modules/tgs/core/core.dm @@ -0,0 +1,171 @@ +/world/TgsNew(datum/tgs_event_handler/event_handler, minimum_required_security_level = TGS_SECURITY_ULTRASAFE) + var/current_api = TGS_READ_GLOBAL(tgs) + if(current_api) + TGS_ERROR_LOG("TgsNew(): TGS API datum already set ([current_api])! Was TgsNew() called more than once?") + return + +#ifdef TGS_V3_API + minimum_required_security_level = TGS_SECURITY_TRUSTED +#endif + var/raw_parameter = world.params[TGS_VERSION_PARAMETER] + if(!raw_parameter) + return + + var/datum/tgs_version/version = new(raw_parameter) + if(!version.Valid(FALSE)) + TGS_ERROR_LOG("Failed to validate TGS version parameter: [raw_parameter]!") + return + + var/api_datum + switch(version.suite) + if(3) +#ifndef TGS_V3_API + TGS_ERROR_LOG("Detected V3 API but TGS_V3_API isn't defined!") +#else + switch(version.minor) + if(2) + api_datum = /datum/tgs_api/v3210 +#endif + if(4) + switch(version.minor) + if(0) + api_datum = /datum/tgs_api/v4 + if(5) + api_datum = /datum/tgs_api/v5 + + var/datum/tgs_version/max_api_version = TgsMaximumAPIVersion(); + if(version.suite != null && version.minor != null && version.patch != null && version.deprecated_patch != null && version.deprefixed_parameter > max_api_version.deprefixed_parameter) + TGS_ERROR_LOG("Detected unknown API version! Defaulting to latest. Update the DMAPI to fix this problem.") + api_datum = /datum/tgs_api/latest + + if(!api_datum) + TGS_ERROR_LOG("Found unsupported API version: [raw_parameter]. If this is a valid version please report this, backporting is done on demand.") + return + + TGS_INFO_LOG("Activating API for version [version.deprefixed_parameter]") + var/datum/tgs_api/new_api = new api_datum(version) + + TGS_WRITE_GLOBAL(tgs, new_api) + + var/result = new_api.OnWorldNew(event_handler, minimum_required_security_level) + if(!result || result == TGS_UNIMPLEMENTED) + TGS_WRITE_GLOBAL(tgs, null) + TGS_ERROR_LOG("Failed to activate API!") + +/world/TgsMaximumAPIVersion() + return new /datum/tgs_version("5.x.x") + +/world/TgsMinimumAPIVersion() + return new /datum/tgs_version("3.2.x") + +/world/TgsInitializationComplete() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + api.OnInitializationComplete() + +/world/proc/TgsTopic(T) + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + var/result = api.OnTopic(T) + if(result != TGS_UNIMPLEMENTED) + return result + +/world/TgsRevision() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + var/result = api.Revision() + if(result != TGS_UNIMPLEMENTED) + return result + +/world/TgsReboot() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + api.OnReboot() + +/world/TgsAvailable() + return TGS_READ_GLOBAL(tgs) != null + +/world/TgsVersion() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + return api.version + +/world/TgsApiVersion() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + return api.ApiVersion() + +/world/TgsInstanceName() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + var/result = api.InstanceName() + if(result != TGS_UNIMPLEMENTED) + return result + +/world/TgsTestMerges() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + var/result = api.TestMerges() + if(result != TGS_UNIMPLEMENTED) + return result + return list() + +/world/TgsEndProcess() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + api.EndProcess() + +/world/TgsChatChannelInfo() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + var/result = api.ChatChannelInfo() + if(result != TGS_UNIMPLEMENTED) + return result + return list() + +/world/TgsChatBroadcast(message, list/channels) + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + api.ChatBroadcast(message, channels) + +/world/TgsTargetedChatBroadcast(message, admin_only) + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + api.ChatTargetedBroadcast(message, admin_only) + +/world/TgsChatPrivateMessage(message, datum/tgs_chat_user/user) + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + api.ChatPrivateMessage(message, user) + +/world/TgsSecurityLevel() + var/datum/tgs_api/api = TGS_READ_GLOBAL(tgs) + if(api) + api.SecurityLevel() + +/* +The MIT License + +Copyright (c) 2017 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/core/datum.dm b/code/modules/tgs/core/datum.dm new file mode 100644 index 0000000000..3adecbb556 --- /dev/null +++ b/code/modules/tgs/core/datum.dm @@ -0,0 +1,82 @@ +TGS_DEFINE_AND_SET_GLOBAL(tgs, null) + +/datum/tgs_api + var/datum/tgs_version/version + +/datum/tgs_api/New(datum/tgs_version/version) + . = ..() + src.version = version + +/datum/tgs_api/latest + parent_type = /datum/tgs_api/v5 + +TGS_PROTECT_DATUM(/datum/tgs_api) + +/datum/tgs_api/proc/ApiVersion() + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/OnWorldNew(datum/tgs_event_handler/event_handler) + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/OnInitializationComplete() + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/OnTopic(T) + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/OnReboot() + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/InstanceName() + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/TestMerges() + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/EndProcess() + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/Revision() + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/ChatChannelInfo() + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/ChatBroadcast(message, list/channels) + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/ChatTargetedBroadcast(message, admin_only) + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/ChatPrivateMessage(message, admin_only) + return TGS_UNIMPLEMENTED + +/datum/tgs_api/proc/SecurityLevel() + return TGS_UNIMPLEMENTED + +/* +The MIT License + +Copyright (c) 2017 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/core/tgs_version.dm b/code/modules/tgs/core/tgs_version.dm new file mode 100644 index 0000000000..a5dae1241a --- /dev/null +++ b/code/modules/tgs/core/tgs_version.dm @@ -0,0 +1,28 @@ +/datum/tgs_version/New(raw_parameter) + src.raw_parameter = raw_parameter + deprefixed_parameter = replacetext(raw_parameter, "/tg/station 13 Server v", "") + var/list/version_bits = splittext(deprefixed_parameter, ".") + + suite = text2num(version_bits[1]) + if(version_bits.len > 1) + minor = text2num(version_bits[2]) + if(version_bits.len > 2) + patch = text2num(version_bits[3]) + if(version_bits.len == 4) + deprecated_patch = text2num(version_bits[4]) + +/datum/tgs_version/proc/Valid(allow_wildcards = FALSE) + if(suite == null) + return FALSE + if(allow_wildcards) + return TRUE + return !Wildcard() + +/datum/tgs_version/Wildcard() + return minor == null || patch == null + +/datum/tgs_version/Equals(datum/tgs_version/other_version) + if(!istype(other_version)) + return FALSE + + return suite == other_version.suite && minor == other_version.minor && patch == other_version.patch && deprecated_patch == other_version.deprecated_patch diff --git a/code/modules/tgs/includes.dm b/code/modules/tgs/includes.dm new file mode 100644 index 0000000000..b3c1728f34 --- /dev/null +++ b/code/modules/tgs/includes.dm @@ -0,0 +1,44 @@ +#include "core\_definitions.dm" +#include "core\core.dm" +#include "core\datum.dm" +#include "core\tgs_version.dm" + +#ifdef TGS_V3_API +#include "v3210\api.dm" +#include "v3210\commands.dm" +#endif + +#include "v4\api.dm" +#include "v4\commands.dm" + +#include "v5\_defines.dm" +#include "v5\api.dm" +#include "v5\commands.dm" +#include "v5\undef.dm" + +/* +The MIT License + +Copyright (c) 2017 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/v3210/api.dm b/code/modules/tgs/v3210/api.dm new file mode 100644 index 0000000000..5327b9276b --- /dev/null +++ b/code/modules/tgs/v3210/api.dm @@ -0,0 +1,255 @@ +#define REBOOT_MODE_NORMAL 0 +#define REBOOT_MODE_HARD 1 +#define REBOOT_MODE_SHUTDOWN 2 + +#define SERVICE_WORLD_PARAM "server_service" +#define SERVICE_INSTANCE_PARAM "server_instance" +#define SERVICE_PR_TEST_JSON "prtestjob.json" +#define SERVICE_INTERFACE_DLL "TGDreamDaemonBridge.dll" +#define SERVICE_INTERFACE_FUNCTION "DDEntryPoint" + +#define SERVICE_CMD_HARD_REBOOT "hard_reboot" +#define SERVICE_CMD_GRACEFUL_SHUTDOWN "graceful_shutdown" +#define SERVICE_CMD_WORLD_ANNOUNCE "world_announce" +#define SERVICE_CMD_LIST_CUSTOM "list_custom_commands" +#define SERVICE_CMD_API_COMPATIBLE "api_compat" +#define SERVICE_CMD_PLAYER_COUNT "client_count" + +#define SERVICE_CMD_PARAM_KEY "serviceCommsKey" +#define SERVICE_CMD_PARAM_COMMAND "command" +#define SERVICE_CMD_PARAM_SENDER "sender" +#define SERVICE_CMD_PARAM_CUSTOM "custom" + +#define SERVICE_REQUEST_KILL_PROCESS "killme" +#define SERVICE_REQUEST_IRC_BROADCAST "irc" +#define SERVICE_REQUEST_IRC_ADMIN_CHANNEL_MESSAGE "send2irc" +#define SERVICE_REQUEST_WORLD_REBOOT "worldreboot" +#define SERVICE_REQUEST_API_VERSION "api_ver" + +#define SERVICE_RETURN_SUCCESS "SUCCESS" + +/datum/tgs_api/v3210 + var/reboot_mode = REBOOT_MODE_NORMAL + var/comms_key + var/instance_name + var/originmastercommit + var/commit + var/list/cached_custom_tgs_chat_commands + var/warned_revison = FALSE + var/warned_custom_commands = FALSE + +/datum/tgs_api/v3210/ApiVersion() + return new /datum/tgs_version("3.2.1.0") + +/datum/tgs_api/v3210/proc/trim_left(text) + for (var/i = 1 to length(text)) + if (text2ascii(text, i) > 32) + return copytext(text, i) + return "" + +/datum/tgs_api/v3210/proc/trim_right(text) + for (var/i = length(text), i > 0, i--) + if (text2ascii(text, i) > 32) + return copytext(text, 1, i + 1) + return "" + +/datum/tgs_api/v3210/proc/file2list(filename) + return splittext(trim_left(trim_right(file2text(filename))), "\n") + +/datum/tgs_api/v3210/OnWorldNew(datum/tgs_event_handler/event_handler, minimum_required_security_level) //don't use event handling in this version + . = FALSE + + comms_key = world.params[SERVICE_WORLD_PARAM] + instance_name = world.params[SERVICE_INSTANCE_PARAM] + if(!instance_name) + instance_name = "TG Station Server" //maybe just upgraded + + var/list/logs = file2list(".git/logs/HEAD") + if(logs.len) + logs = splittext(logs[logs.len - 1], " ") + commit = logs[2] + logs = file2list(".git/logs/refs/remotes/origin/master") + if(logs.len) + originmastercommit = splittext(logs[logs.len - 1], " ")[2] + + if(world.system_type != MS_WINDOWS) + TGS_ERROR_LOG("This API version is only supported on Windows. Not running on Windows. Aborting initialization!") + return + ListServiceCustomCommands(TRUE) + var/datum/tgs_version/api_version = ApiVersion() + ExportService("[SERVICE_REQUEST_API_VERSION] [api_version.deprefixed_parameter]", TRUE) + return TRUE + +//nothing to do for v3 +/datum/tgs_api/v3210/OnInitializationComplete() + return + +/datum/tgs_api/v3210/InstanceName() + return world.params[SERVICE_INSTANCE_PARAM] + +/datum/tgs_api/v3210/proc/ExportService(command, skip_compat_check = FALSE) + . = FALSE + if(skip_compat_check && !fexists(SERVICE_INTERFACE_DLL)) + TGS_ERROR_LOG("Service parameter present but no interface DLL detected. This is symptomatic of running a service less than version 3.1! Please upgrade.") + return + call(SERVICE_INTERFACE_DLL, SERVICE_INTERFACE_FUNCTION)(instance_name, command) //trust no retval + return TRUE + +/datum/tgs_api/v3210/OnTopic(T) + var/list/params = params2list(T) + var/their_sCK = params[SERVICE_CMD_PARAM_KEY] + if(!their_sCK) + return FALSE //continue world/Topic + + if(their_sCK != comms_key) + return "Invalid comms key!"; + + var/command = params[SERVICE_CMD_PARAM_COMMAND] + if(!command) + return "No command!" + + switch(command) + if(SERVICE_CMD_API_COMPATIBLE) + return SERVICE_RETURN_SUCCESS + if(SERVICE_CMD_HARD_REBOOT) + if(reboot_mode != REBOOT_MODE_HARD) + reboot_mode = REBOOT_MODE_HARD + TGS_INFO_LOG("Hard reboot requested by service") + TGS_NOTIFY_ADMINS("The world will hard reboot at the end of the game. Requested by TGS.") + if(SERVICE_CMD_GRACEFUL_SHUTDOWN) + if(reboot_mode != REBOOT_MODE_SHUTDOWN) + reboot_mode = REBOOT_MODE_SHUTDOWN + TGS_INFO_LOG("Shutdown requested by service") + TGS_NOTIFY_ADMINS("The world will shutdown at the end of the game. Requested by TGS.") + if(SERVICE_CMD_WORLD_ANNOUNCE) + var/msg = params["message"] + if(!istext(msg) || !msg) + return "No message set!" + TGS_WORLD_ANNOUNCE(msg) + return SERVICE_RETURN_SUCCESS + if(SERVICE_CMD_PLAYER_COUNT) + return "[TGS_CLIENT_COUNT]" + if(SERVICE_CMD_LIST_CUSTOM) + return json_encode(ListServiceCustomCommands(FALSE)) + else + var/custom_command_result = HandleServiceCustomCommand(lowertext(command), params[SERVICE_CMD_PARAM_SENDER], params[SERVICE_CMD_PARAM_CUSTOM]) + if(custom_command_result) + return istext(custom_command_result) ? custom_command_result : SERVICE_RETURN_SUCCESS + return "Unknown command: [command]" + +/datum/tgs_api/v3210/OnReboot() + switch(reboot_mode) + if(REBOOT_MODE_HARD) + TGS_WORLD_ANNOUNCE("Hard reboot triggered, you will automatically reconnect...") + EndProcess() + if(REBOOT_MODE_SHUTDOWN) + TGS_WORLD_ANNOUNCE("The server is shutting down...") + EndProcess() + else + ExportService(SERVICE_REQUEST_WORLD_REBOOT) //just let em know + +/datum/tgs_api/v3210/TestMerges() + //do the best we can here as the datum can't be completed using the v3 api + . = list() + if(!fexists(SERVICE_PR_TEST_JSON)) + return + var/list/json = json_decode(file2text(SERVICE_PR_TEST_JSON)) + if(!json) + return + for(var/I in json) + var/datum/tgs_revision_information/test_merge/tm = new + tm.number = text2num(I) + var/list/entry = json[I] + tm.pull_request_commit = entry["commit"] + tm.author = entry["author"] + tm.title = entry["title"] + . += tm + +/datum/tgs_api/v3210/Revision() + if(!warned_revison) + var/datum/tgs_version/api_version = ApiVersion() + TGS_ERROR_LOG("Use of TgsRevision on [api_version.deprefixed_parameter] origin_commit only points to master!") + warned_revison = TRUE + var/datum/tgs_revision_information/ri = new + ri.commit = commit + ri.origin_commit = originmastercommit + return ri + +/datum/tgs_api/v3210/EndProcess() + sleep(world.tick_lag) //flush the buffers + ExportService(SERVICE_REQUEST_KILL_PROCESS) + +/datum/tgs_api/v3210/ChatChannelInfo() + return list() + +/datum/tgs_api/v3210/ChatBroadcast(message, list/channels) + if(channels) + return TGS_UNIMPLEMENTED + ChatTargetedBroadcast(message, TRUE) + ChatTargetedBroadcast(message, FALSE) + +/datum/tgs_api/v3210/ChatTargetedBroadcast(message, admin_only) + ExportService("[admin_only ? SERVICE_REQUEST_IRC_ADMIN_CHANNEL_MESSAGE : SERVICE_REQUEST_IRC_BROADCAST] [message]") + +/datum/tgs_api/v3210/ChatPrivateMessage(message, datum/tgs_chat_user/user) + return TGS_UNIMPLEMENTED + +/datum/tgs_api/v3210/SecurityLevel() + return TGS_SECURITY_TRUSTED + +#undef REBOOT_MODE_NORMAL +#undef REBOOT_MODE_HARD +#undef REBOOT_MODE_SHUTDOWN + +#undef SERVICE_WORLD_PARAM +#undef SERVICE_INSTANCE_PARAM +#undef SERVICE_PR_TEST_JSON +#undef SERVICE_INTERFACE_DLL +#undef SERVICE_INTERFACE_FUNCTION + +#undef SERVICE_CMD_HARD_REBOOT +#undef SERVICE_CMD_GRACEFUL_SHUTDOWN +#undef SERVICE_CMD_WORLD_ANNOUNCE +#undef SERVICE_CMD_LIST_CUSTOM +#undef SERVICE_CMD_API_COMPATIBLE +#undef SERVICE_CMD_PLAYER_COUNT + +#undef SERVICE_CMD_PARAM_KEY +#undef SERVICE_CMD_PARAM_COMMAND +#undef SERVICE_CMD_PARAM_SENDER +#undef SERVICE_CMD_PARAM_CUSTOM + +#undef SERVICE_REQUEST_KILL_PROCESS +#undef SERVICE_REQUEST_IRC_BROADCAST +#undef SERVICE_REQUEST_IRC_ADMIN_CHANNEL_MESSAGE +#undef SERVICE_REQUEST_WORLD_REBOOT +#undef SERVICE_REQUEST_API_VERSION + +#undef SERVICE_RETURN_SUCCESS + +/* +The MIT License + +Copyright (c) 2017 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/v3210/commands.dm b/code/modules/tgs/v3210/commands.dm new file mode 100644 index 0000000000..5046631981 --- /dev/null +++ b/code/modules/tgs/v3210/commands.dm @@ -0,0 +1,78 @@ +#define SERVICE_JSON_PARAM_HELPTEXT "help_text" +#define SERVICE_JSON_PARAM_ADMINONLY "admin_only" +#define SERVICE_JSON_PARAM_REQUIREDPARAMETERS "required_parameters" + +/datum/tgs_api/v3210/proc/ListServiceCustomCommands(warnings_only) + if(!warnings_only) + . = list() + var/list/command_name_types = list() + var/list/warned_command_names = warnings_only ? list() : null + var/warned_about_the_dangers_of_robutussin = !warnings_only + for(var/I in typesof(/datum/tgs_chat_command) - /datum/tgs_chat_command) + if(!warned_about_the_dangers_of_robutussin) + TGS_ERROR_LOG("Custom chat commands in [ApiVersion()] lacks the /datum/tgs_chat_user/sender.channel field!") + warned_about_the_dangers_of_robutussin = TRUE + var/datum/tgs_chat_command/stc = I + var/command_name = initial(stc.name) + if(!command_name || findtext(command_name, " ") || findtext(command_name, "'") || findtext(command_name, "\"")) + if(warnings_only && !warned_command_names[command_name]) + TGS_ERROR_LOG("Custom command [command_name] can't be used as it is empty or contains illegal characters!") + warned_command_names[command_name] = TRUE + continue + + if(command_name_types[command_name]) + if(warnings_only) + TGS_ERROR_LOG("Custom commands [command_name_types[command_name]] and [stc] have the same name, only [command_name_types[command_name]] will be available!") + continue + command_name_types[stc] = command_name + + if(!warnings_only) + .[command_name] = list(SERVICE_JSON_PARAM_HELPTEXT = initial(stc.help_text), SERVICE_JSON_PARAM_ADMINONLY = initial(stc.admin_only), SERVICE_JSON_PARAM_REQUIREDPARAMETERS = 0) + +/datum/tgs_api/v3210/proc/HandleServiceCustomCommand(command, sender, params) + if(!cached_custom_tgs_chat_commands) + cached_custom_tgs_chat_commands = list() + for(var/I in typesof(/datum/tgs_chat_command) - /datum/tgs_chat_command) + var/datum/tgs_chat_command/stc = I + cached_custom_tgs_chat_commands[lowertext(initial(stc.name))] = stc + + var/command_type = cached_custom_tgs_chat_commands[command] + if(!command_type) + return FALSE + var/datum/tgs_chat_command/stc = new command_type + var/datum/tgs_chat_user/user = new + user.friendly_name = sender + user.mention = sender + return stc.Run(user, params) || TRUE + +/* + +#undef SERVICE_JSON_PARAM_HELPTEXT +#undef SERVICE_JSON_PARAM_ADMINONLY +#undef SERVICE_JSON_PARAM_REQUIREDPARAMETERS + +The MIT License + +Copyright (c) 2017 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/v4/api.dm b/code/modules/tgs/v4/api.dm new file mode 100644 index 0000000000..5c98a1a7a7 --- /dev/null +++ b/code/modules/tgs/v4/api.dm @@ -0,0 +1,342 @@ +#define TGS4_PARAM_INFO_JSON "tgs_json" + +#define TGS4_INTEROP_ACCESS_IDENTIFIER "tgs_tok" + +#define TGS4_RESPONSE_SUCCESS "tgs_succ" + +#define TGS4_TOPIC_CHANGE_PORT "tgs_port" +#define TGS4_TOPIC_CHANGE_REBOOT_MODE "tgs_rmode" +#define TGS4_TOPIC_CHAT_COMMAND "tgs_chat_comm" +#define TGS4_TOPIC_EVENT "tgs_event" +#define TGS4_TOPIC_INTEROP_RESPONSE "tgs_interop" + +#define TGS4_COMM_NEW_PORT "tgs_new_port" +#define TGS4_COMM_VALIDATE "tgs_validate" +#define TGS4_COMM_SERVER_PRIMED "tgs_prime" +#define TGS4_COMM_WORLD_REBOOT "tgs_reboot" +#define TGS4_COMM_END_PROCESS "tgs_kill" +#define TGS4_COMM_CHAT "tgs_chat_send" + +#define TGS4_PARAMETER_COMMAND "tgs_com" +#define TGS4_PARAMETER_DATA "tgs_data" + +#define TGS4_PORT_CRITFAIL_MESSAGE " Must exit to let watchdog reboot..." + +#define EXPORT_TIMEOUT_DS 200 + +/datum/tgs_api/v4 + var/access_identifier + var/instance_name + var/json_path + var/chat_channels_json_path + var/chat_commands_json_path + var/server_commands_json_path + var/reboot_mode = TGS_REBOOT_MODE_NORMAL + var/security_level + + var/requesting_new_port = FALSE + + var/list/intercepted_message_queue + + var/list/custom_commands + + var/list/cached_test_merges + var/datum/tgs_revision_information/cached_revision + + var/datum/tgs_event_handler/event_handler + + var/export_lock = FALSE + var/list/last_interop_response + +/datum/tgs_api/v4/ApiVersion() + return new /datum/tgs_version("4.0.0.0") + +/datum/tgs_api/v4/OnWorldNew(datum/tgs_event_handler/event_handler, minimum_required_security_level) + json_path = world.params[TGS4_PARAM_INFO_JSON] + if(!json_path) + TGS_ERROR_LOG("Missing [TGS4_PARAM_INFO_JSON] world parameter!") + return + var/json_file = file2text(json_path) + if(!json_file) + TGS_ERROR_LOG("Missing specified json file: [json_path]") + return + var/cached_json = json_decode(json_file) + if(!cached_json) + TGS_ERROR_LOG("Failed to decode info json: [json_file]") + return + + access_identifier = cached_json["accessIdentifier"] + server_commands_json_path = cached_json["serverCommandsJson"] + + if(cached_json["apiValidateOnly"]) + TGS_INFO_LOG("Validating API and exiting...") + Export(TGS4_COMM_VALIDATE, list(TGS4_PARAMETER_DATA = "[minimum_required_security_level]")) + del(world) + + security_level = cached_json["securityLevel"] + chat_channels_json_path = cached_json["chatChannelsJson"] + chat_commands_json_path = cached_json["chatCommandsJson"] + src.event_handler = event_handler + instance_name = cached_json["instanceName"] + + ListCustomCommands() + + var/list/revisionData = cached_json["revision"] + if(revisionData) + cached_revision = new + cached_revision.commit = revisionData["commitSha"] + cached_revision.origin_commit = revisionData["originCommitSha"] + + cached_test_merges = list() + var/list/json = cached_json["testMerges"] + for(var/entry in json) + var/datum/tgs_revision_information/test_merge/tm = new + tm.time_merged = text2num(entry["timeMerged"]) + + var/list/revInfo = entry["revision"] + if(revInfo) + tm.commit = revInfo["commitSha"] + tm.origin_commit = revInfo["originCommitSha"] + + tm.title = entry["titleAtMerge"] + tm.body = entry["bodyAtMerge"] + tm.url = entry["url"] + tm.author = entry["author"] + tm.number = entry["number"] + tm.pull_request_commit = entry["pullRequestRevision"] + tm.comment = entry["comment"] + + cached_test_merges += tm + + return TRUE + +/datum/tgs_api/v4/OnInitializationComplete() + Export(TGS4_COMM_SERVER_PRIMED) + + var/tgs4_secret_sleep_offline_sauce = 24051994 + var/old_sleep_offline = world.sleep_offline + world.sleep_offline = tgs4_secret_sleep_offline_sauce + sleep(1) + if(world.sleep_offline == tgs4_secret_sleep_offline_sauce) //if not someone changed it + world.sleep_offline = old_sleep_offline + +/datum/tgs_api/v4/OnTopic(T) + var/list/params = params2list(T) + var/their_sCK = params[TGS4_INTEROP_ACCESS_IDENTIFIER] + if(!their_sCK) + return FALSE //continue world/Topic + + if(their_sCK != access_identifier) + return "Invalid comms key!"; + + var/command = params[TGS4_PARAMETER_COMMAND] + if(!command) + return "No command!" + + . = TGS4_RESPONSE_SUCCESS + + switch(command) + if(TGS4_TOPIC_CHAT_COMMAND) + var/result = HandleCustomCommand(params[TGS4_PARAMETER_DATA]) + if(result == null) + result = "Error running chat command!" + return result + if(TGS4_TOPIC_EVENT) + intercepted_message_queue = list() + var/list/event_notification = json_decode(params[TGS4_PARAMETER_DATA]) + var/list/event_parameters = event_notification["Parameters"] + + var/list/event_call = list(event_notification["Type"]) + if(event_parameters) + event_call += event_parameters + + if(event_handler != null) + event_handler.HandleEvent(arglist(event_call)) + + . = json_encode(intercepted_message_queue) + intercepted_message_queue = null + return + if(TGS4_TOPIC_INTEROP_RESPONSE) + last_interop_response = json_decode(params[TGS4_PARAMETER_DATA]) + return + if(TGS4_TOPIC_CHANGE_PORT) + var/new_port = text2num(params[TGS4_PARAMETER_DATA]) + if (!(new_port > 0)) + return "Invalid port: [new_port]" + + //the topic still completes, miraculously + //I honestly didn't believe byond could do it + if(event_handler != null) + event_handler.HandleEvent(TGS_EVENT_PORT_SWAP, new_port) + if(!world.OpenPort(new_port)) + return "Port change failed!" + return + if(TGS4_TOPIC_CHANGE_REBOOT_MODE) + var/new_reboot_mode = text2num(params[TGS4_PARAMETER_DATA]) + if(event_handler != null) + event_handler.HandleEvent(TGS_EVENT_REBOOT_MODE_CHANGE, reboot_mode, new_reboot_mode) + reboot_mode = new_reboot_mode + return + + return "Unknown command: [command]" + +/datum/tgs_api/v4/proc/Export(command, list/data, override_requesting_new_port = FALSE) + if(!data) + data = list() + data[TGS4_PARAMETER_COMMAND] = command + var/json = json_encode(data) + + while(requesting_new_port && !override_requesting_new_port) + sleep(1) + + //we need some port open at this point to facilitate return communication + if(!world.port) + requesting_new_port = TRUE + if(!world.OpenPort(0)) //open any port + TGS_ERROR_LOG("Unable to open random port to retrieve new port![TGS4_PORT_CRITFAIL_MESSAGE]") + del(world) + + //request a new port + export_lock = FALSE + var/list/new_port_json = Export(TGS4_COMM_NEW_PORT, list(TGS4_PARAMETER_DATA = "[world.port]"), TRUE) //stringify this on purpose + + if(!new_port_json) + TGS_ERROR_LOG("No new port response from server![TGS4_PORT_CRITFAIL_MESSAGE]") + del(world) + + var/new_port = new_port_json[TGS4_PARAMETER_DATA] + if(!isnum(new_port) || new_port <= 0) + TGS_ERROR_LOG("Malformed new port json ([json_encode(new_port_json)])![TGS4_PORT_CRITFAIL_MESSAGE]") + del(world) + + if(new_port != world.port && !world.OpenPort(new_port)) + TGS_ERROR_LOG("Unable to open port [new_port]![TGS4_PORT_CRITFAIL_MESSAGE]") + del(world) + requesting_new_port = FALSE + + while(export_lock) + sleep(1) + export_lock = TRUE + + last_interop_response = null + fdel(server_commands_json_path) + text2file(json, server_commands_json_path) + + for(var/I = 0; I < EXPORT_TIMEOUT_DS && !last_interop_response; ++I) + sleep(1) + + if(!last_interop_response) + TGS_ERROR_LOG("Failed to get export result for: [json]") + else + . = last_interop_response + + export_lock = FALSE + +/datum/tgs_api/v4/OnReboot() + var/list/result = Export(TGS4_COMM_WORLD_REBOOT) + if(!result) + return + + //okay so the standard TGS4 proceedure is: right before rebooting change the port to whatever was sent to us in the above json's data parameter + + var/port = result[TGS4_PARAMETER_DATA] + if(!isnum(port)) + return //this is valid, server may just want use to reboot + + if(port == 0) + //to byond 0 means any port and "none" means close vOv + port = "none" + + if(!world.OpenPort(port)) + TGS_ERROR_LOG("Unable to set port to [port]!") + +/datum/tgs_api/v4/InstanceName() + return instance_name + +/datum/tgs_api/v4/TestMerges() + return cached_test_merges + +/datum/tgs_api/v4/EndProcess() + Export(TGS4_COMM_END_PROCESS) + +/datum/tgs_api/v4/Revision() + return cached_revision + +/datum/tgs_api/v4/ChatBroadcast(message, list/channels) + var/list/ids + if(length(channels)) + ids = list() + for(var/I in channels) + var/datum/tgs_chat_channel/channel = I + ids += channel.id + message = list("message" = message, "channelIds" = ids) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Export(TGS4_COMM_CHAT, message) + +/datum/tgs_api/v4/ChatTargetedBroadcast(message, admin_only) + var/list/channels = list() + for(var/I in ChatChannelInfo()) + var/datum/tgs_chat_channel/channel = I + if (!channel.is_private_channel && ((channel.is_admin_channel && admin_only) || (!channel.is_admin_channel && !admin_only))) + channels += channel.id + message = list("message" = message, "channelIds" = channels) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Export(TGS4_COMM_CHAT, message) + +/datum/tgs_api/v4/ChatPrivateMessage(message, datum/tgs_chat_user/user) + message = list("message" = message, "channelIds" = list(user.channel.id)) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Export(TGS4_COMM_CHAT, message) + +/datum/tgs_api/v4/ChatChannelInfo() + . = list() + //no caching cause tgs may change this + var/list/json = json_decode(file2text(chat_channels_json_path)) + for(var/I in json) + . += DecodeChannel(I) + +/datum/tgs_api/v4/proc/DecodeChannel(channel_json) + var/datum/tgs_chat_channel/channel = new + channel.id = channel_json["id"] + channel.friendly_name = channel_json["friendlyName"] + channel.connection_name = channel_json["connectionName"] + channel.is_admin_channel = channel_json["isAdminChannel"] + channel.is_private_channel = channel_json["isPrivateChannel"] + channel.custom_tag = channel_json["tag"] + return channel + +/datum/tgs_api/v4/SecurityLevel() + return security_level + +/* +The MIT License + +Copyright (c) 2017 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/v4/commands.dm b/code/modules/tgs/v4/commands.dm new file mode 100644 index 0000000000..1d9951bc04 --- /dev/null +++ b/code/modules/tgs/v4/commands.dm @@ -0,0 +1,69 @@ +/datum/tgs_api/v4/proc/ListCustomCommands() + var/results = list() + custom_commands = list() + for(var/I in typesof(/datum/tgs_chat_command) - /datum/tgs_chat_command) + var/datum/tgs_chat_command/stc = new I + var/command_name = stc.name + if(!command_name || findtext(command_name, " ") || findtext(command_name, "'") || findtext(command_name, "\"")) + TGS_ERROR_LOG("Custom command [command_name] ([I]) can't be used as it is empty or contains illegal characters!") + continue + + if(results[command_name]) + var/datum/other = custom_commands[command_name] + TGS_ERROR_LOG("Custom commands [other.type] and [I] have the same name (\"[command_name]\"), only [other.type] will be available!") + continue + results += list(list("name" = command_name, "help_text" = stc.help_text, "admin_only" = stc.admin_only)) + custom_commands[command_name] = stc + + var/commands_file = chat_commands_json_path + if(!commands_file) + return + text2file(json_encode(results), commands_file) + +/datum/tgs_api/v4/proc/HandleCustomCommand(command_json) + var/list/data = json_decode(command_json) + var/command = data["command"] + var/user = data["user"] + var/params = data["params"] + + var/datum/tgs_chat_user/u = new + u.id = user["id"] + u.friendly_name = user["friendlyName"] + u.mention = user["mention"] + u.channel = DecodeChannel(user["channel"]) + + var/datum/tgs_chat_command/sc = custom_commands[command] + if(sc) + var/result = sc.Run(u, params) + if(result == null) + result = "" + return result + return "Unknown command: [command]!" + +/* + +The MIT License + +Copyright (c) 2017 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/v5/_defines.dm b/code/modules/tgs/v5/_defines.dm new file mode 100644 index 0000000000..1117a1df50 --- /dev/null +++ b/code/modules/tgs/v5/_defines.dm @@ -0,0 +1,121 @@ +#define DMAPI5_PARAM_SERVER_PORT "tgs_port" +#define DMAPI5_PARAM_ACCESS_IDENTIFIER "tgs_key" + +#define DMAPI5_BRIDGE_DATA "data" +#define DMAPI5_TOPIC_DATA "tgs_data" + +#define DMAPI5_BRIDGE_COMMAND_PORT_UPDATE 0 +#define DMAPI5_BRIDGE_COMMAND_STARTUP 1 +#define DMAPI5_BRIDGE_COMMAND_PRIME 2 +#define DMAPI5_BRIDGE_COMMAND_REBOOT 3 +#define DMAPI5_BRIDGE_COMMAND_KILL 4 +#define DMAPI5_BRIDGE_COMMAND_CHAT_SEND 5 + +#define DMAPI5_PARAMETER_ACCESS_IDENTIFIER "accessIdentifier" +#define DMAPI5_RESPONSE_ERROR_MESSAGE "errorMessage" + +#define DMAPI5_BRIDGE_PARAMETER_COMMAND_TYPE "commandType" +#define DMAPI5_BRIDGE_PARAMETER_CURRENT_PORT "currentPort" +#define DMAPI5_BRIDGE_PARAMETER_VERSION "version" +#define DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE "chatMessage" +#define DMAPI5_BRIDGE_PARAMETER_CUSTOM_COMMANDS "customCommands" +#define DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL "minimumSecurityLevel" + +#define DMAPI5_BRIDGE_RESPONSE_NEW_PORT "newPort" +#define DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION "runtimeInformation" + +#define DMAPI5_CHAT_MESSAGE_TEXT "text" +#define DMAPI5_CHAT_MESSAGE_CHANNEL_IDS "channelIds" + +#define DMAPI5_RUNTIME_INFORMATION_ACCESS_IDENTIFIER "accessIdentifier" +#define DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION "serverVersion" +#define DMAPI5_RUNTIME_INFORMATION_SERVER_PORT "serverPort" +#define DMAPI5_RUNTIME_INFORMATION_API_VALIDATE_ONLY "apiValidateOnly" +#define DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME "instanceName" +#define DMAPI5_RUNTIME_INFORMATION_REVISION "revision" +#define DMAPI5_RUNTIME_INFORMATION_TEST_MERGES "testMerges" +#define DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL "securityLevel" + +#define DMAPI5_CHAT_UPDATE_CHANNELS "channels" + +#define DMAPI5_TEST_MERGE_TIME_MERGED "timeMerged" +#define DMAPI5_TEST_MERGE_REVISION "revision" +#define DMAPI5_TEST_MERGE_TITLE_AT_MERGE "titleAtMerge" +#define DMAPI5_TEST_MERGE_BODY_AT_MERGE "bodyAtMerge" +#define DMAPI5_TEST_MERGE_URL "url" +#define DMAPI5_TEST_MERGE_AUTHOR "author" +#define DMAPI5_TEST_MERGE_NUMBER "number" +#define DMAPI5_TEST_MERGE_PULL_REQUEST_REVISION "pullRequestRevision" +#define DMAPI5_TEST_MERGE_COMMENT "comment" + +#define DMAPI5_CHAT_COMMAND_NAME "name" +#define DMAPI5_CHAT_COMMAND_PARAMS "params" +#define DMAPI5_CHAT_COMMAND_USER "user" + +#define DMAPI5_EVENT_NOTIFICATION_TYPE "type" +#define DMAPI5_EVENT_NOTIFICATION_PARAMETERS "parameters" + +#define DMAPI5_TOPIC_COMMAND_CHAT_COMMAND 0 +#define DMAPI5_TOPIC_COMMAND_EVENT_NOTIFICATION 1 +#define DMAPI5_TOPIC_COMMAND_CHANGE_PORT 2 +#define DMAPI5_TOPIC_COMMAND_CHANGE_REBOOT_STATE 3 +#define DMAPI5_TOPIC_COMMAND_INSTANCE_RENAMED 4 +#define DMAPI5_TOPIC_COMMAND_CHAT_CHANNELS_UPDATE 4 +#define DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE 5 + +#define DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE "commandType" +#define DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND "chatCommand" +#define DMAPI5_TOPIC_PARAMETER_EVENT_NOTIFICATION "eventNotification" +#define DMAPI5_TOPIC_PARAMETER_NEW_PORT "newPort" +#define DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE "newRebootState" +#define DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME "newInstanceName" +#define DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE "chatUpdate" + +#define DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE "commandResponseMessage" +#define DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES "chatResponses" + +#define DMAPI5_REVISION_INFORMATION_COMMIT_SHA "commitSha" +#define DMAPI5_REVISION_INFORMATION_ORIGIN_COMMIT_SHA "originCommitSha" + +#define DMAPI5_CHAT_USER_ID "id" +#define DMAPI5_CHAT_USER_FRIENDLY_NAME "friendlyName" +#define DMAPI5_CHAT_USER_MENTION "mention" +#define DMAPI5_CHAT_USER_CHANNEL "channel" + +#define DMAPI5_CHAT_CHANNEL_ID "id" +#define DMAPI5_CHAT_CHANNEL_FRIENDLY_NAME "friendlyName" +#define DMAPI5_CHAT_CHANNEL_CONNECTION_NAME "connectionName" +#define DMAPI5_CHAT_CHANNEL_IS_ADMIN_CHANNEL "isAdminChannel" +#define DMAPI5_CHAT_CHANNEL_IS_PRIVATE_CHANNEL "isPrivateChannel" +#define DMAPI5_CHAT_CHANNEL_TAG "tag" + +#define DMAPI5_CUSTOM_CHAT_COMMAND_NAME "name" +#define DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT "helpText" +#define DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY "adminOnly" + +/* +The MIT License + +Copyright (c) 2020 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm new file mode 100644 index 0000000000..32f80c0ae4 --- /dev/null +++ b/code/modules/tgs/v5/api.dm @@ -0,0 +1,352 @@ +/datum/tgs_api/v5 + var/server_port + var/access_identifier + + var/instance_name + var/security_level + + var/reboot_mode = TGS_REBOOT_MODE_NORMAL + + var/list/intercepted_message_queue + + var/list/custom_commands + + var/list/test_merges + var/datum/tgs_revision_information/revision + var/list/chat_channels + + var/datum/tgs_event_handler/event_handler + +/datum/tgs_api/v5/ApiVersion() + return new /datum/tgs_version("5.0.0") + +/datum/tgs_api/v5/OnWorldNew(datum/tgs_event_handler/event_handler, minimum_required_security_level) + src.event_handler = event_handler + + server_port = world.params[DMAPI5_PARAM_SERVER_PORT] + access_identifier = world.params[DMAPI5_PARAM_ACCESS_IDENTIFIER] + + var/datum/tgs_version/api_version = ApiVersion() + var/list/bridge_response = Bridge(DMAPI5_BRIDGE_COMMAND_STARTUP, list(DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL = minimum_required_security_level, DMAPI5_BRIDGE_PARAMETER_VERSION = api_version.raw_parameter, DMAPI5_BRIDGE_PARAMETER_CUSTOM_COMMANDS = ListCustomCommands())) + if(!istype(bridge_response)) + TGS_ERROR_LOG("Failed initial bridge request!") + return FALSE + + var/list/runtime_information = bridge_response[DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION] + if(!istype(runtime_information)) + TGS_ERROR_LOG("Failed to decode runtime information from bridge response: [json_encode(bridge_response)]!") + return FALSE + + if(runtime_information[DMAPI5_RUNTIME_INFORMATION_API_VALIDATE_ONLY]) + TGS_INFO_LOG("DMAPI validation, exiting...") + del(world) + + security_level = runtime_information[DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL] + instance_name = runtime_information[DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME] + version = new /datum/tgs_version(runtime_information[DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION]) + + var/list/revisionData = runtime_information[DMAPI5_RUNTIME_INFORMATION_REVISION] + if(istype(revisionData)) + revision = new + revision.commit = revisionData[DMAPI5_REVISION_INFORMATION_COMMIT_SHA] + revision.origin_commit = revisionData[DMAPI5_REVISION_INFORMATION_ORIGIN_COMMIT_SHA] + else + TGS_ERROR_LOG("Failed to decode [DMAPI5_RUNTIME_INFORMATION_REVISION] from runtime information!") + + test_merges = list() + var/list/test_merge_json = runtime_information[DMAPI5_RUNTIME_INFORMATION_TEST_MERGES] + if(istype(test_merge_json)) + for(var/entry in test_merge_json) + var/datum/tgs_revision_information/test_merge/tm = new + tm.number = entry[DMAPI5_TEST_MERGE_NUMBER] + + var/list/revInfo = entry[DMAPI5_TEST_MERGE_REVISION] + if(revInfo) + tm.commit = revisionData[DMAPI5_REVISION_INFORMATION_COMMIT_SHA] + tm.origin_commit = revisionData[DMAPI5_REVISION_INFORMATION_ORIGIN_COMMIT_SHA] + else + TGS_WARNING_LOG("Failed to decode [DMAPI5_TEST_MERGE_REVISION] from test merge #[tm.number]!") + + tm.time_merged = text2num(entry[DMAPI5_TEST_MERGE_TIME_MERGED]) + tm.title = entry[DMAPI5_TEST_MERGE_TITLE_AT_MERGE] + tm.body = entry[DMAPI5_TEST_MERGE_BODY_AT_MERGE] + tm.url = entry[DMAPI5_TEST_MERGE_URL] + tm.author = entry[DMAPI5_TEST_MERGE_AUTHOR] + tm.pull_request_commit = entry[DMAPI5_TEST_MERGE_PULL_REQUEST_REVISION] + tm.comment = entry[DMAPI5_TEST_MERGE_COMMENT] + + test_merges += tm + else + TGS_WARNING_LOG("Failed to decode [DMAPI5_RUNTIME_INFORMATION_TEST_MERGES] from runtime information!") + + chat_channels = list() + DecodeChannels(runtime_information) + + return TRUE + +/datum/tgs_api/v5/OnInitializationComplete() + Bridge(DMAPI5_BRIDGE_COMMAND_PRIME) + + var/tgs4_secret_sleep_offline_sauce = 29051994 + var/old_sleep_offline = world.sleep_offline + world.sleep_offline = tgs4_secret_sleep_offline_sauce + sleep(1) + if(world.sleep_offline == tgs4_secret_sleep_offline_sauce) //if not someone changed it + world.sleep_offline = old_sleep_offline + +/datum/tgs_api/v5/proc/TopicResponse(error_message = null) + var/list/response = list() + response[DMAPI5_RESPONSE_ERROR_MESSAGE] = error_message + + return json_encode(response) + +/datum/tgs_api/v5/OnTopic(T) + var/list/params = params2list(T) + var/json = params[DMAPI5_TOPIC_DATA] + if(!json) + return FALSE //continue world/Topic + + var/list/topic_parameters = json_decode(json) + if(!topic_parameters) + return TopicResponse("Invalid topic parameters json!"); + + var/their_sCK = topic_parameters[DMAPI5_PARAMETER_ACCESS_IDENTIFIER] + if(their_sCK != access_identifier) + return TopicResponse("Failed to decode [DMAPI5_PARAMETER_ACCESS_IDENTIFIER] from: [json]!"); + + var/command = topic_parameters[DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE] + if(!isnum(command)) + return TopicResponse("Failed to decode [DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE] from: [json]!") + + switch(command) + if(DMAPI5_TOPIC_COMMAND_CHAT_COMMAND) + var/result = HandleCustomCommand(topic_parameters[DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND]) + if(!result) + result = TopicResponse("Error running chat command!") + return result + if(DMAPI5_TOPIC_COMMAND_EVENT_NOTIFICATION) + intercepted_message_queue = list() + var/list/event_notification = topic_parameters[DMAPI5_TOPIC_PARAMETER_EVENT_NOTIFICATION] + if(!istype(event_notification)) + return TopicResponse("Invalid [DMAPI5_TOPIC_PARAMETER_EVENT_NOTIFICATION]!") + + var/event_type = event_notification[DMAPI5_EVENT_NOTIFICATION_TYPE] + if(!isnum(event_type)) + return TopicResponse("Invalid or missing [DMAPI5_EVENT_NOTIFICATION_TYPE]!") + + var/list/event_parameters = event_notification[DMAPI5_EVENT_NOTIFICATION_PARAMETERS] + if(event_parameters && !istype(event_parameters)) + return TopicResponse("Invalid or missing [DMAPI5_EVENT_NOTIFICATION_PARAMETERS]!") + + var/list/event_call = list(event_type) + if(event_parameters) + event_call += event_parameters + + if(event_handler != null) + event_handler.HandleEvent(arglist(event_call)) + + var/list/response = list() + response[DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES] = intercepted_message_queue + intercepted_message_queue = null + return json_encode(response) + if(DMAPI5_TOPIC_COMMAND_CHANGE_PORT) + var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT] + if (!isnum(new_port) || !(new_port > 0)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]") + + if(event_handler != null) + event_handler.HandleEvent(TGS_EVENT_PORT_SWAP, new_port) + + //the topic still completes, miraculously + //I honestly didn't believe byond could do it without exploding + if(!world.OpenPort(new_port)) + return TopicResponse("Port change failed!") + + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_CHANGE_REBOOT_STATE) + var/new_reboot_mode = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE] + if(!isnum(new_reboot_mode)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE]!") + + if(event_handler != null) + event_handler.HandleEvent(TGS_EVENT_REBOOT_MODE_CHANGE, reboot_mode, new_reboot_mode) + + reboot_mode = new_reboot_mode + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_INSTANCE_RENAMED) + var/new_instance_name = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME] + if(!istext(new_instance_name)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME]!") + + if(event_handler != null) + event_handler.HandleEvent(TGS_EVENT_INSTANCE_RENAMED, new_instance_name) + + instance_name = new_instance_name + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_CHAT_CHANNELS_UPDATE) + var/list/chat_update_json = topic_parameters[DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE] + if(!istype(chat_update_json)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE]!") + + DecodeChannels(chat_update_json) + return TopicResponse() + if(DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE) + var/new_port = topic_parameters[DMAPI5_TOPIC_PARAMETER_NEW_PORT] + if (!isnum(new_port) || !(new_port > 0)) + return TopicResponse("Invalid or missing [DMAPI5_TOPIC_PARAMETER_NEW_PORT]]") + + server_port = new_port + return TopicResponse() + + return TopicResponse("Unknown command: [command]") + +/datum/tgs_api/v5/proc/Bridge(command, list/data) + if(!data) + data = list() + + data[DMAPI5_BRIDGE_PARAMETER_COMMAND_TYPE] = command + data[DMAPI5_PARAMETER_ACCESS_IDENTIFIER] = access_identifier + + var/json = json_encode(data) + var/encoded_json = url_encode(json) + + // This is an infinite sleep until we get a response + var/export_response = world.Export("http://127.0.0.1:[server_port]/Bridge?[DMAPI5_BRIDGE_DATA]=[encoded_json]") + if(!export_response) + TGS_ERROR_LOG("Failed export request: [json]") + return + + var/response_json = file2text(export_response["CONTENT"]) + if(!response_json) + TGS_ERROR_LOG("Failed export request, missing content!") + return + + var/list/bridge_response = json_decode(response_json) + if(!bridge_response) + TGS_ERROR_LOG("Failed export request, bad json: [response_json]") + return + + var/error = bridge_response[DMAPI5_RESPONSE_ERROR_MESSAGE] + if(error) + TGS_ERROR_LOG("Failed export request, bad request: [error]") + return + + return bridge_response + +/datum/tgs_api/v5/OnReboot() + var/list/result = Bridge(DMAPI5_BRIDGE_COMMAND_REBOOT) + if(!result) + return + + //okay so the standard TGS4 proceedure is: right before rebooting change the port to whatever was sent to us in the above json's data parameter + + var/port = result[DMAPI5_BRIDGE_RESPONSE_NEW_PORT] + if(!isnum(port)) + return //this is valid, server may just want use to reboot + + if(port == 0) + //to byond 0 means any port and "none" means close vOv + port = "none" + + if(!world.OpenPort(port)) + TGS_ERROR_LOG("Unable to set port to [port]!") + +/datum/tgs_api/v5/InstanceName() + return instance_name + +/datum/tgs_api/v5/TestMerges() + return test_merges + +/datum/tgs_api/v5/EndProcess() + Bridge(DMAPI5_BRIDGE_COMMAND_KILL) + +/datum/tgs_api/v5/Revision() + return revision + +/datum/tgs_api/v5/ChatBroadcast(message, list/channels) + if(!length(channels)) + channels = ChatChannelInfo() + + var/list/ids = list() + for(var/I in channels) + var/datum/tgs_chat_channel/channel = I + ids += channel.id + + message = list(DMAPI5_CHAT_MESSAGE_TEXT = message, DMAPI5_CHAT_MESSAGE_CHANNEL_IDS = ids) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = message)) + +/datum/tgs_api/v5/ChatTargetedBroadcast(message, admin_only) + var/list/channels = list() + for(var/I in ChatChannelInfo()) + var/datum/tgs_chat_channel/channel = I + if (!channel.is_private_channel && ((channel.is_admin_channel && admin_only) || (!channel.is_admin_channel && !admin_only))) + channels += channel.id + message = list(DMAPI5_CHAT_MESSAGE_TEXT = message, DMAPI5_CHAT_MESSAGE_CHANNEL_IDS = channels) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = message)) + +/datum/tgs_api/v5/ChatPrivateMessage(message, datum/tgs_chat_user/user) + message = list(DMAPI5_CHAT_MESSAGE_TEXT = message, DMAPI5_CHAT_MESSAGE_CHANNEL_IDS = list(user.channel.id)) + if(intercepted_message_queue) + intercepted_message_queue += list(message) + else + Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = message)) + +/datum/tgs_api/v5/ChatChannelInfo() + return chat_channels + +/datum/tgs_api/v5/proc/DecodeChannels(chat_update_json) + var/list/chat_channels_json = chat_update_json[DMAPI5_CHAT_UPDATE_CHANNELS] + if(istype(chat_channels_json)) + chat_channels.Cut() + for(var/channel_json in chat_channels_json) + var/datum/tgs_chat_channel/channel = DecodeChannel(channel_json) + if(channel) + chat_channels += channel + else + TGS_WARNING_LOG("Failed to decode [DMAPI5_CHAT_UPDATE_CHANNELS] from channel update!") + +/datum/tgs_api/v5/proc/DecodeChannel(channel_json) + var/datum/tgs_chat_channel/channel = new + channel.id = channel_json[DMAPI5_CHAT_CHANNEL_ID] + channel.friendly_name = channel_json[DMAPI5_CHAT_CHANNEL_FRIENDLY_NAME] + channel.connection_name = channel_json[DMAPI5_CHAT_CHANNEL_CONNECTION_NAME] + channel.is_admin_channel = channel_json[DMAPI5_CHAT_CHANNEL_IS_ADMIN_CHANNEL] + channel.is_private_channel = channel_json[DMAPI5_CHAT_CHANNEL_IS_PRIVATE_CHANNEL] + channel.custom_tag = channel_json[DMAPI5_CHAT_CHANNEL_TAG] + return channel + +/datum/tgs_api/v5/SecurityLevel() + return security_level + +/* +The MIT License + +Copyright (c) 2020 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/v5/commands.dm b/code/modules/tgs/v5/commands.dm new file mode 100644 index 0000000000..2775157656 --- /dev/null +++ b/code/modules/tgs/v5/commands.dm @@ -0,0 +1,68 @@ +/datum/tgs_api/v5/proc/ListCustomCommands() + var/results = list() + custom_commands = list() + for(var/I in typesof(/datum/tgs_chat_command) - /datum/tgs_chat_command) + var/datum/tgs_chat_command/stc = new I + var/command_name = stc.name + if(!command_name || findtext(command_name, " ") || findtext(command_name, "'") || findtext(command_name, "\"")) + TGS_WARNING_LOG("Custom command [command_name] ([I]) can't be used as it is empty or contains illegal characters!") + continue + + if(results[command_name]) + var/datum/other = custom_commands[command_name] + TGS_WARNING_LOG("Custom commands [other.type] and [I] have the same name (\"[command_name]\"), only [other.type] will be available!") + continue + results += list(list(DMAPI5_CUSTOM_CHAT_COMMAND_NAME = command_name, DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT = stc.help_text, DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY = stc.admin_only)) + custom_commands[command_name] = stc + + return results + +/datum/tgs_api/v5/proc/HandleCustomCommand(list/command_json) + var/command = command_json[DMAPI5_CHAT_COMMAND_NAME] + var/user = command_json[DMAPI5_CHAT_COMMAND_USER] + var/params = command_json[DMAPI5_CHAT_COMMAND_PARAMS] + + var/datum/tgs_chat_user/u = new + u.id = user[DMAPI5_CHAT_USER_ID] + u.friendly_name = user[DMAPI5_CHAT_USER_FRIENDLY_NAME] + u.mention = user[DMAPI5_CHAT_USER_MENTION] + u.channel = DecodeChannel(user[DMAPI5_CHAT_USER_CHANNEL]) + + var/datum/tgs_chat_command/sc = custom_commands[command] + if(sc) + var/text_response = sc.Run(u, params) + var/list/topic_response = list() + if(!istext(text_response)) + TGS_ERROR_LOG("Custom command [command] should return a string! Got: \"[text_response]\"") + text_response = null + topic_response[DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE] = text_response + return json_encode(topic_response) + return TopicResponse("Unknown custom chat command: [command]!") + +/* + +The MIT License + +Copyright (c) 2020 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/code/modules/tgs/v5/undef.dm b/code/modules/tgs/v5/undef.dm new file mode 100644 index 0000000000..72d673b9b1 --- /dev/null +++ b/code/modules/tgs/v5/undef.dm @@ -0,0 +1,121 @@ +#undef DMAPI5_PARAM_SERVER_PORT +#undef DMAPI5_PARAM_ACCESS_IDENTIFIER + +#undef DMAPI5_BRIDGE_DATA +#undef DMAPI5_TOPIC_DATA + +#undef DMAPI5_BRIDGE_COMMAND_PORT_UPDATE +#undef DMAPI5_BRIDGE_COMMAND_STARTUP +#undef DMAPI5_BRIDGE_COMMAND_PRIME +#undef DMAPI5_BRIDGE_COMMAND_REBOOT +#undef DMAPI5_BRIDGE_COMMAND_KILL +#undef DMAPI5_BRIDGE_COMMAND_CHAT_SEND + +#undef DMAPI5_PARAMETER_ACCESS_IDENTIFIER +#undef DMAPI5_RESPONSE_ERROR_MESSAGE + +#undef DMAPI5_BRIDGE_PARAMETER_COMMAND_TYPE +#undef DMAPI5_BRIDGE_PARAMETER_CURRENT_PORT +#undef DMAPI5_BRIDGE_PARAMETER_VERSION +#undef DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE +#undef DMAPI5_BRIDGE_PARAMETER_CUSTOM_COMMANDS +#undef DMAPI5_BRIDGE_PARAMETER_MINIMUM_SECURITY_LEVEL + +#undef DMAPI5_BRIDGE_RESPONSE_NEW_PORT +#undef DMAPI5_BRIDGE_RESPONSE_RUNTIME_INFORMATION + +#undef DMAPI5_CHAT_MESSAGE_TEXT +#undef DMAPI5_CHAT_MESSAGE_CHANNEL_IDS + +#undef DMAPI5_RUNTIME_INFORMATION_ACCESS_IDENTIFIER +#undef DMAPI5_RUNTIME_INFORMATION_SERVER_VERSION +#undef DMAPI5_RUNTIME_INFORMATION_SERVER_PORT +#undef DMAPI5_RUNTIME_INFORMATION_API_VALIDATE_ONLY +#undef DMAPI5_RUNTIME_INFORMATION_INSTANCE_NAME +#undef DMAPI5_RUNTIME_INFORMATION_REVISION +#undef DMAPI5_RUNTIME_INFORMATION_TEST_MERGES +#undef DMAPI5_RUNTIME_INFORMATION_SECURITY_LEVEL + +#undef DMAPI5_CHAT_UPDATE_CHANNELS + +#undef DMAPI5_TEST_MERGE_TIME_MERGED +#undef DMAPI5_TEST_MERGE_REVISION +#undef DMAPI5_TEST_MERGE_TITLE_AT_MERGE +#undef DMAPI5_TEST_MERGE_BODY_AT_MERGE +#undef DMAPI5_TEST_MERGE_URL +#undef DMAPI5_TEST_MERGE_AUTHOR +#undef DMAPI5_TEST_MERGE_NUMBER +#undef DMAPI5_TEST_MERGE_PULL_REQUEST_REVISION +#undef DMAPI5_TEST_MERGE_COMMENT + +#undef DMAPI5_CHAT_COMMAND_NAME +#undef DMAPI5_CHAT_COMMAND_PARAMS +#undef DMAPI5_CHAT_COMMAND_USER + +#undef DMAPI5_EVENT_NOTIFICATION_TYPE +#undef DMAPI5_EVENT_NOTIFICATION_PARAMETERS + +#undef DMAPI5_TOPIC_COMMAND_CHAT_COMMAND +#undef DMAPI5_TOPIC_COMMAND_EVENT_NOTIFICATION +#undef DMAPI5_TOPIC_COMMAND_CHANGE_PORT +#undef DMAPI5_TOPIC_COMMAND_CHANGE_REBOOT_STATE +#undef DMAPI5_TOPIC_COMMAND_INSTANCE_RENAMED +#undef DMAPI5_TOPIC_COMMAND_CHAT_CHANNELS_UPDATE +#undef DMAPI5_TOPIC_COMMAND_SERVER_PORT_UPDATE + +#undef DMAPI5_TOPIC_PARAMETER_COMMAND_TYPE +#undef DMAPI5_TOPIC_PARAMETER_CHAT_COMMAND +#undef DMAPI5_TOPIC_PARAMETER_EVENT_NOTIFICATION +#undef DMAPI5_TOPIC_PARAMETER_NEW_PORT +#undef DMAPI5_TOPIC_PARAMETER_NEW_REBOOT_STATE +#undef DMAPI5_TOPIC_PARAMETER_NEW_INSTANCE_NAME +#undef DMAPI5_TOPIC_PARAMETER_CHAT_UPDATE + +#undef DMAPI5_TOPIC_RESPONSE_COMMAND_RESPONSE_MESSAGE +#undef DMAPI5_TOPIC_RESPONSE_CHAT_RESPONSES + +#undef DMAPI5_REVISION_INFORMATION_COMMIT_SHA +#undef DMAPI5_REVISION_INFORMATION_ORIGIN_COMMIT_SHA + +#undef DMAPI5_CHAT_USER_ID +#undef DMAPI5_CHAT_USER_FRIENDLY_NAME +#undef DMAPI5_CHAT_USER_MENTION +#undef DMAPI5_CHAT_USER_CHANNEL + +#undef DMAPI5_CHAT_CHANNEL_ID +#undef DMAPI5_CHAT_CHANNEL_FRIENDLY_NAME +#undef DMAPI5_CHAT_CHANNEL_CONNECTION_NAME +#undef DMAPI5_CHAT_CHANNEL_IS_ADMIN_CHANNEL +#undef DMAPI5_CHAT_CHANNEL_IS_PRIVATE_CHANNEL +#undef DMAPI5_CHAT_CHANNEL_TAG + +#undef DMAPI5_CUSTOM_CHAT_COMMAND_NAME +#undef DMAPI5_CUSTOM_CHAT_COMMAND_HELP_TEXT +#undef DMAPI5_CUSTOM_CHAT_COMMAND_ADMIN_ONLY + +/* +The MIT License + +Copyright (c) 2020 Jordan Brown + +Permission is hereby granted, free of charge, +to any person obtaining a copy of this software and +associated documentation files (the "Software"), to +deal in the Software without restriction, including +without limitation the rights to use, copy, modify, +merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom +the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR +ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ diff --git a/vorestation.dme b/vorestation.dme index eb8b35e289..685107e498 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -80,6 +80,8 @@ #include "code\__defines\subsystems_vr.dm" #include "code\__defines\supply.dm" #include "code\__defines\targeting.dm" +#include "code\__defines\tgs.config.dm" +#include "code\__defines\tgs.dm" #include "code\__defines\turfs.dm" #include "code\__defines\typeids.dm" #include "code\__defines\unit_tests.dm" @@ -3397,6 +3399,7 @@ #include "code\modules\telesci\telepad.dm" #include "code\modules\telesci\telesci_computer.dm" #include "code\modules\tension\tension.dm" +#include "code\modules\tgs\includes.dm" #include "code\modules\tooltip\tooltip.dm" #include "code\modules\turbolift\_turbolift.dm" #include "code\modules\turbolift\turbolift.dm" From dd187c900df152e3dfb4447e50c2b09c6fd03de6 Mon Sep 17 00:00:00 2001 From: Rykka Date: Sun, 10 May 2020 07:29:53 -0400 Subject: [PATCH 077/105] Port over Hover Inventory and Body Zone Hover Indicator The body zone selector now indicates which body part you are about to select when hovered over, and the hover inventory indicator basically shows where you are trying to put an item, and then shows an item ghost in red or green, giving visual feedback as to if that item will go in the slot or not. Gifs of this in action: ![https://i.imgur.com/MTi7Kpn.gif](https://i.imgur.com/MTi7Kpn.gif) Body Selection parts. ![https://i.imgur.com/KbLqWKy.gifv](https://i.imgur.com/KbLqWKy.gifv) Inventory Icon Overlays! Credit goes to @ShadowLarkens for original port to Paradise and assistance with port to Virgo. Sending to Polaris ASAP. - A note on `code/game/objects/items/weapons/storage/internal.dm`, VSCode automatically corrected the line endings, hence the massive filediff. The only practical changes are the addition of `disable_warning = 0` --- code/_onclick/hud/human.dm | 3 + code/_onclick/hud/screen_objects.dm | 135 +++++++++---- .../objects/items/weapons/storage/internal.dm | 180 +++++++++--------- code/modules/clothing/clothing.dm | 2 +- code/modules/clothing/gloves/arm_guards.dm | 2 +- code/modules/clothing/gloves/gauntlets.dm | 2 +- code/modules/clothing/masks/monitor.dm | 2 +- code/modules/clothing/shoes/magboots.dm | 2 +- code/modules/clothing/suits/armor.dm | 2 +- .../vore/fluffstuff/custom_clothes_vr.dm | 2 +- 10 files changed, 201 insertions(+), 131 deletions(-) diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm index 1258e4ce94..adbee61eb8 100644 --- a/code/_onclick/hud/human.dm +++ b/code/_onclick/hud/human.dm @@ -28,6 +28,7 @@ inv_box.icon = ui_style inv_box.color = ui_color inv_box.alpha = ui_alpha + inv_box.hud = src var/list/slot_data = hud_data.gear[gear_slot] inv_box.name = gear_slot @@ -192,6 +193,7 @@ using.screen_loc = ui_swaphand1 using.color = ui_color using.alpha = ui_alpha + using.hud = src src.adding += using using = new /obj/screen/inventory() @@ -201,6 +203,7 @@ using.screen_loc = ui_swaphand2 using.color = ui_color using.alpha = ui_alpha + using.hud = src src.adding += using if(hud_data.has_resist) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index e82d3ea5f6..bdf2ed6496 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -31,7 +31,36 @@ /obj/screen/inventory var/slot_id //The indentifier for the slot. It has nothing to do with ID cards. + var/list/object_overlays = list() // Required for inventory/screen overlays. +/obj/screen/inventory/MouseEntered() + ..() + add_overlays() + +/obj/screen/inventory/MouseExited() + ..() + cut_overlay(object_overlays) + object_overlays.Cut() + +/obj/screen/inventory/proc/add_overlays() + var/mob/user = hud.mymob + + if(hud && user && slot_id) + var/obj/item/holding = user.get_active_hand() + + if(!holding || user.get_equipped_item(slot_id)) + return + + var/image/item_overlay = image(holding) + item_overlay.alpha = 92 + + if(!holding.mob_can_equip(user, slot_id, disable_warning = TRUE)) + item_overlay.color = "#ff0000" + else + item_overlay.color = "#00ff00" + + object_overlays += item_overlay + add_overlay(object_overlays) /obj/screen/close name = "close" @@ -102,78 +131,116 @@ icon_state = "zone_sel" screen_loc = ui_zonesel var/selecting = BP_TORSO + var/static/list/hover_overlays_cache = list() + var/hovering_choice + var/mutable_appearance/selecting_appearance /obj/screen/zone_sel/Click(location, control,params) + if(isobserver(usr)) + return + var/list/PL = params2list(params) var/icon_x = text2num(PL["icon-x"]) var/icon_y = text2num(PL["icon-y"]) - var/old_selecting = selecting //We're only going to update_icon() if there's been a change + var/choice = get_zone_at(icon_x, icon_y) + if(!choice) + return 1 + return set_selected_zone(choice, usr) + +/obj/screen/zone_sel/MouseEntered(location, control, params) + MouseMove(location, control, params) + +/obj/screen/zone_sel/MouseMove(location, control, params) + if(isobserver(usr)) + return + + var/list/PL = params2list(params) + var/icon_x = text2num(PL["icon-x"]) + var/icon_y = text2num(PL["icon-y"]) + var/choice = get_zone_at(icon_x, icon_y) + + if(hovering_choice == choice) + return + vis_contents -= hover_overlays_cache[hovering_choice] + hovering_choice = choice + + var/obj/effect/overlay/zone_sel/overlay_object = hover_overlays_cache[choice] + if(!overlay_object) + overlay_object = new + overlay_object.icon_state = "[choice]" + hover_overlays_cache[choice] = overlay_object + vis_contents += overlay_object + + +/obj/effect/overlay/zone_sel + icon = 'icons/mob/zone_sel.dmi' + mouse_opacity = MOUSE_OPACITY_TRANSPARENT + alpha = 128 + anchored = TRUE + layer = LAYER_HUD_ABOVE + plane = PLANE_PLAYER_HUD_ABOVE + +/obj/screen/zone_sel/MouseExited(location, control, params) + if(!isobserver(usr) && hovering_choice) + vis_contents -= hover_overlays_cache[hovering_choice] + hovering_choice = null + +/obj/screen/zone_sel/proc/get_zone_at(icon_x, icon_y) switch(icon_y) if(1 to 3) //Feet switch(icon_x) if(10 to 15) - selecting = BP_R_FOOT + return BP_R_FOOT if(17 to 22) - selecting = BP_L_FOOT - else - return 1 + return BP_L_FOOT if(4 to 9) //Legs switch(icon_x) if(10 to 15) - selecting = BP_R_LEG + return BP_R_LEG if(17 to 22) - selecting = BP_L_LEG - else - return 1 + return BP_L_LEG if(10 to 13) //Hands and groin switch(icon_x) if(8 to 11) - selecting = BP_R_HAND + return BP_R_HAND if(12 to 20) - selecting = BP_GROIN + return BP_GROIN if(21 to 24) - selecting = BP_L_HAND - else - return 1 + return BP_L_HAND if(14 to 22) //Chest and arms to shoulders switch(icon_x) if(8 to 11) - selecting = BP_R_ARM + return BP_R_ARM if(12 to 20) - selecting = BP_TORSO + return BP_TORSO if(21 to 24) - selecting = BP_L_ARM - else - return 1 + return BP_L_ARM if(23 to 30) //Head, but we need to check for eye or mouth if(icon_x in 12 to 20) - selecting = BP_HEAD switch(icon_y) if(23 to 24) if(icon_x in 15 to 17) - selecting = O_MOUTH + return O_MOUTH if(26) //Eyeline, eyes are on 15 and 17 if(icon_x in 14 to 18) - selecting = O_EYES + return O_EYES if(25 to 27) if(icon_x in 15 to 17) - selecting = O_EYES + return O_EYES + return BP_HEAD - if(old_selecting != selecting) - update_icon() - return 1 - -/obj/screen/zone_sel/proc/set_selected_zone(bodypart) - var/old_selecting = selecting - selecting = bodypart - if(old_selecting != selecting) +/obj/screen/zone_sel/proc/set_selected_zone(choice, mob/user) + if(isobserver(user)) + return + if(choice != selecting) + selecting = choice update_icon() /obj/screen/zone_sel/update_icon() - overlays.Cut() - overlays += image('icons/mob/zone_sel.dmi', "[selecting]") - + cut_overlay(selecting_appearance) + selecting_appearance = mutable_appearance('icons/mob/zone_sel.dmi', "[selecting]") + add_overlay(selecting_appearance) /obj/screen/Click(location, control, params) if(!usr) return 1 diff --git a/code/game/objects/items/weapons/storage/internal.dm b/code/game/objects/items/weapons/storage/internal.dm index 498f6aa5d3..00d6f79402 100644 --- a/code/game/objects/items/weapons/storage/internal.dm +++ b/code/game/objects/items/weapons/storage/internal.dm @@ -1,90 +1,90 @@ -//A storage item intended to be used by other items to provide storage functionality. -//Types that use this should consider overriding emp_act() and hear_talk(), unless they shield their contents somehow. -/obj/item/weapon/storage/internal - preserve_item = 1 - var/obj/item/master_item - -/obj/item/weapon/storage/internal/New(obj/item/MI) - master_item = MI - loc = master_item - //name = master_item.name //VOREStation Removal - verbs -= /obj/item/verb/verb_pickup //make sure this is never picked up. - ..() - -/obj/item/weapon/storage/internal/Destroy() - master_item = null - . = ..() - -/obj/item/weapon/storage/internal/attack_hand() - return //make sure this is never picked up - -/obj/item/weapon/storage/internal/mob_can_equip() - return 0 //make sure this is never picked up - -//Helper procs to cleanly implement internal storages - storage items that provide inventory slots for other items. -//These procs are completely optional, it is up to the master item to decide when it's storage get's opened by calling open() -//However they are helpful for allowing the master item to pretend it is a storage item itself. -//If you are using these you will probably want to override attackby() as well. -//See /obj/item/clothing/suit/storage for an example. - -//items that use internal storage have the option of calling this to emulate default storage MouseDrop behaviour. -//returns 1 if the master item's parent's MouseDrop() should be called, 0 otherwise. It's strange, but no other way of -//doing it without the ability to call another proc's parent, really. -/obj/item/weapon/storage/internal/proc/handle_mousedrop(mob/user as mob, obj/over_object as obj) - if (ishuman(user) || issmall(user)) //so monkeys can take off their backpacks -- Urist - - if (istype(user.loc,/obj/mecha)) // stops inventory actions in a mech - return 0 - - if(over_object == user && Adjacent(user)) // this must come before the screen objects only block - src.open(user) - return 0 - - if (!( istype(over_object, /obj/screen) )) - return 1 - - //makes sure master_item is equipped before putting it in hand, so that we can't drag it into our hand from miles away. - //there's got to be a better way of doing this... - if (!(master_item.loc == user) || (master_item.loc && master_item.loc.loc == user)) - return 0 - - if (!( user.restrained() ) && !( user.stat )) - switch(over_object.name) - if("r_hand") - user.unEquip(master_item) - user.put_in_r_hand(master_item) - if("l_hand") - user.unEquip(master_item) - user.put_in_l_hand(master_item) - master_item.add_fingerprint(user) - return 0 - return 0 - -//items that use internal storage have the option of calling this to emulate default storage attack_hand behaviour. -//returns 1 if the master item's parent's attack_hand() should be called, 0 otherwise. -//It's strange, but no other way of doing it without the ability to call another proc's parent, really. -/obj/item/weapon/storage/internal/proc/handle_attack_hand(mob/user as mob) - - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(H.l_store == master_item && !H.get_active_hand()) //Prevents opening if it's in a pocket. - H.put_in_hands(master_item) - H.l_store = null - return 0 - if(H.r_store == master_item && !H.get_active_hand()) - H.put_in_hands(master_item) - H.r_store = null - return 0 - - src.add_fingerprint(user) - if (master_item.loc == user) - src.open(user) - return 0 - - for(var/mob/M in range(1, master_item.loc)) - if (M.s_active == src) - src.close(M) - return 1 - -/obj/item/weapon/storage/internal/Adjacent(var/atom/neighbor) - return master_item.Adjacent(neighbor) +//A storage item intended to be used by other items to provide storage functionality. +//Types that use this should consider overriding emp_act() and hear_talk(), unless they shield their contents somehow. +/obj/item/weapon/storage/internal + preserve_item = 1 + var/obj/item/master_item + +/obj/item/weapon/storage/internal/New(obj/item/MI) + master_item = MI + loc = master_item + //name = master_item.name //VOREStation Removal + verbs -= /obj/item/verb/verb_pickup //make sure this is never picked up. + ..() + +/obj/item/weapon/storage/internal/Destroy() + master_item = null + . = ..() + +/obj/item/weapon/storage/internal/attack_hand() + return //make sure this is never picked up + +/obj/item/weapon/storage/internal/mob_can_equip(M as mob, slot, disable_warning = 0) + return 0 //make sure this is never picked up + +//Helper procs to cleanly implement internal storages - storage items that provide inventory slots for other items. +//These procs are completely optional, it is up to the master item to decide when it's storage get's opened by calling open() +//However they are helpful for allowing the master item to pretend it is a storage item itself. +//If you are using these you will probably want to override attackby() as well. +//See /obj/item/clothing/suit/storage for an example. + +//items that use internal storage have the option of calling this to emulate default storage MouseDrop behaviour. +//returns 1 if the master item's parent's MouseDrop() should be called, 0 otherwise. It's strange, but no other way of +//doing it without the ability to call another proc's parent, really. +/obj/item/weapon/storage/internal/proc/handle_mousedrop(mob/user as mob, obj/over_object as obj) + if (ishuman(user) || issmall(user)) //so monkeys can take off their backpacks -- Urist + + if (istype(user.loc,/obj/mecha)) // stops inventory actions in a mech + return 0 + + if(over_object == user && Adjacent(user)) // this must come before the screen objects only block + src.open(user) + return 0 + + if (!( istype(over_object, /obj/screen) )) + return 1 + + //makes sure master_item is equipped before putting it in hand, so that we can't drag it into our hand from miles away. + //there's got to be a better way of doing this... + if (!(master_item.loc == user) || (master_item.loc && master_item.loc.loc == user)) + return 0 + + if (!( user.restrained() ) && !( user.stat )) + switch(over_object.name) + if("r_hand") + user.unEquip(master_item) + user.put_in_r_hand(master_item) + if("l_hand") + user.unEquip(master_item) + user.put_in_l_hand(master_item) + master_item.add_fingerprint(user) + return 0 + return 0 + +//items that use internal storage have the option of calling this to emulate default storage attack_hand behaviour. +//returns 1 if the master item's parent's attack_hand() should be called, 0 otherwise. +//It's strange, but no other way of doing it without the ability to call another proc's parent, really. +/obj/item/weapon/storage/internal/proc/handle_attack_hand(mob/user as mob) + + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.l_store == master_item && !H.get_active_hand()) //Prevents opening if it's in a pocket. + H.put_in_hands(master_item) + H.l_store = null + return 0 + if(H.r_store == master_item && !H.get_active_hand()) + H.put_in_hands(master_item) + H.r_store = null + return 0 + + src.add_fingerprint(user) + if (master_item.loc == user) + src.open(user) + return 0 + + for(var/mob/M in range(1, master_item.loc)) + if (M.s_active == src) + src.close(M) + return 1 + +/obj/item/weapon/storage/internal/Adjacent(var/atom/neighbor) + return master_item.Adjacent(neighbor) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index eff875ee8d..c6cc7d3db9 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -59,7 +59,7 @@ user.recalculate_vis() //BS12: Species-restricted clothing check. -/obj/item/clothing/mob_can_equip(M as mob, slot) +/obj/item/clothing/mob_can_equip(M as mob, slot, disable_warning = 0) //if we can't equip the item anyway, don't bother with species_restricted (cuts down on spam) if (!..()) diff --git a/code/modules/clothing/gloves/arm_guards.dm b/code/modules/clothing/gloves/arm_guards.dm index 558f855545..791bb0a10b 100644 --- a/code/modules/clothing/gloves/arm_guards.dm +++ b/code/modules/clothing/gloves/arm_guards.dm @@ -7,7 +7,7 @@ w_class = ITEMSIZE_NORMAL drop_sound = 'sound/items/drop/metalshield.ogg' -/obj/item/clothing/gloves/arm_guard/mob_can_equip(var/mob/living/carbon/human/H, slot) +/obj/item/clothing/gloves/arm_guard/mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = 0) if(..()) //This will only run if no other problems occured when equiping. if(H.wear_suit) if(H.wear_suit.body_parts_covered & ARMS) diff --git a/code/modules/clothing/gloves/gauntlets.dm b/code/modules/clothing/gloves/gauntlets.dm index 8807fb93ad..eb5d05c909 100644 --- a/code/modules/clothing/gloves/gauntlets.dm +++ b/code/modules/clothing/gloves/gauntlets.dm @@ -14,7 +14,7 @@ punch_force = 5 var/obj/item/clothing/gloves/gloves = null //Undergloves -/obj/item/clothing/gloves/gauntlets/mob_can_equip(mob/user) +/obj/item/clothing/gloves/gauntlets/mob_can_equip(mob/user, slot, disable_warning = 0) var/mob/living/carbon/human/H = user if(H.gloves) gloves = H.gloves diff --git a/code/modules/clothing/masks/monitor.dm b/code/modules/clothing/masks/monitor.dm index 230f224d09..be337c9067 100644 --- a/code/modules/clothing/masks/monitor.dm +++ b/code/modules/clothing/masks/monitor.dm @@ -33,7 +33,7 @@ canremove = 1 return ..() -/obj/item/clothing/mask/monitor/mob_can_equip(var/mob/living/carbon/human/user, var/slot) +/obj/item/clothing/mask/monitor/mob_can_equip(var/mob/living/carbon/human/user, var/slot, disable_warning = FALSE) if (!..()) return 0 if(istype(user)) diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index 57b8a0911a..816c5052fc 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -42,7 +42,7 @@ user.update_inv_shoes() //so our mob-overlays update user.update_action_buttons() -/obj/item/clothing/shoes/magboots/mob_can_equip(mob/user, slot) +/obj/item/clothing/shoes/magboots/mob_can_equip(mob/user, slot, disable_warning = FALSE) var/mob/living/carbon/human/H = user if(H.shoes) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 691f53de5a..3920ddd636 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -520,7 +520,7 @@ |ACCESSORY_SLOT_ARMOR_M) blood_overlay_type = "armor" -/obj/item/clothing/suit/armor/pcarrier/mob_can_equip(var/mob/living/carbon/human/H, slot) +/obj/item/clothing/suit/armor/pcarrier/mob_can_equip(var/mob/living/carbon/human/H, slot, disable_warning = FALSE) if(..()) //This will only run if no other problems occured when equiping. if(H.gloves) if(H.gloves.body_parts_covered & ARMS) diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index a8e3f6f283..9dacba7f82 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -1885,7 +1885,7 @@ Departamental Swimsuits, for general use species_restricted = list("exclude", SPECIES_TESHARI) -/obj/item/clothing/under/fluff/slime_skeleton/mob_can_equip(M as mob, slot) +/obj/item/clothing/under/fluff/slime_skeleton/mob_can_equip(M as mob, slot, disable_warning = FALSE) if(!..()) return 0 From 55d1c001d08d6023a317e8d52b3ddb16df6f9b42 Mon Sep 17 00:00:00 2001 From: Novacat <35587478+Novacat@users.noreply.github.com> Date: Sun, 10 May 2020 09:03:45 -0400 Subject: [PATCH 078/105] Update misc.dm --- code/modules/research/designs/misc.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/designs/misc.dm b/code/modules/research/designs/misc.dm index e12565479e..2ce34f3485 100644 --- a/code/modules/research/designs/misc.dm +++ b/code/modules/research/designs/misc.dm @@ -64,7 +64,7 @@ datum/design/item/general/laserpointer build_path = /obj/item/weapon/storage/box/syndie_kit/chameleon sort_string = "TBAAB" -/datum/design/item/general/chameleon +/datum/design/item/general/bsflare name = "bluespace flare" desc = "A marker that can be detected by shuttle landing systems." id = "bsflare" From c1f81b6fd3a36dc3648a65366f9ef35f5ca1611e Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Sun, 10 May 2020 17:03:35 +0100 Subject: [PATCH 079/105] vulp hazard hardsuits --- icons/mob/species/vulpkanin/helmet.dmi | Bin 67733 -> 67649 bytes icons/mob/species/vulpkanin/suit.dmi | Bin 127679 -> 127281 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/species/vulpkanin/helmet.dmi b/icons/mob/species/vulpkanin/helmet.dmi index 47d3fd12aba985b14a2090d32ecf44245abb8b58..b1490dec6dc4a52cc2053f027c00ddd7ad645897 100644 GIT binary patch delta 63371 zcmce-WmFv9x-E=La7b_s9-Jh&lOQ2LAOgWP5ZoOK3xps+0|X6D2=3aryL;pAu3cZ{ z-FuI7zaMwpJI)#7{%ERut*S-$vuw`!%oP`f))I+U@(~4adpFV237AEfD3V5hlu?i> zN5U3$Qj>0utFoxf`_=wUmwGFhywJ$f${st;+;ZZvI)iy-rMkbm2ImvSHv(j>#0m;5 zoWy1Q(RhS@OpZ;G2mQPu$k>A^S#~}{F=h##W(S@J?whHni;hE$Ut3#c9zOUY^Xm=U z!xqLft0t35K#SS;_IDh)L<73-{JakGk-@Ae zC0d0T=@ZpbzMmWMHnZ8+xN%fyx_e^Q`(q#en6+}#e`&ZRepqy~2-o-YUjy@f0DeKi zsr2fmTwH!u)~-tl4h|0UE`8ULL-T9*b&$ZyrcH2-pGV90g3b zoRG@33LSc5*^wUN(REBmvNx^Q*4Abi)li&>)KA!U)-TwO5;Qo7X3Z_!PU@cR!^;O& z7@v2QF7mzJ;P#Y0 zgWf<=IL;gwoIr;pnZHJ|WQKg)W?6!8O0%%A&%sgl?BOLXAh_TZWBbw2&~P{cc90JH zG(gE+x0NB#cey{;70dqCe+6Ve>v;Y)2W<$XvU=DXQ!IT6!#SUtw_eToWgUMwhxgXs z=`Kx1GOtTA4*^dr-v>n>HUIfgu;*>bHvx$9KT}(^|6Ndkyaj#!u=^E%2p8oG%tuFu zTHfM2>Kk3%{jsS&wB2GKc0vr-!?b;)j9s7Kp#>##G@6{Bnx%Af0EwF!?mw=$@wI(F zw%=k5Ayl0fH)iZfTMV}LWo*6P>T?b$(DVjH{NXfo(yfn904X@SO%-meE=P(jTqL z2lb6VcXpmcyUu^R-I+qs!zeh%H>@0tJt+7P-N4v3b~TqzUPJv2F znpBHU1K%{jq3wJCKA!I@u!Cj?UF&vHIV)#sYSnd&9t;9gBk`k+^JuByLl} zCB0DE`y&0%bX`g-i5{bACbNeBqG}gSv zx}lqCO)f4*)koULE?v|{`;H|(=2Pphn?IE!^FC!pr@km|oV5~AS64^jn!^Zg!}skl z`t<451IFel@|}nXVpeA6j$FyNUH55m$ta@VDg|Xujavh; zr}tSe?+I1`R;=KOok?SfuT$WkKY!j95&Qt5@R^vJM#aRCh=Jl=_0`n-_mb}$(Z2n` zysH8pfN4HA6x8_jMF`Zt3rNYWUgK`S20-zUjO^_*`mbFucNDvuRmlQP*!_?P54zC( zF<9Y^5&`Zw-a+dN>H?T%kJL9X@Mw`?>1av`s0rNl-W50&2)2EdSyOY>A2;Nmlfwcp zXfy2co_O_5yz@Ibpa05=5e@4qcHxR-1A1HVcEZ3XPEwN9F4g8z7s~ipikjHnnf5uW z*No}1&Co){@7dK~5-1$Bp;VI^eqt?vr`)x7%`j`VPA>7f3t5Zz_Gm+@w|dzLaVt0s zc2o4p|8)?pjkL`b^MsHYV<|2Pk0oc_3g{@L*W zt^X8uM1%$yc=4YY1o973yu}t*suKW7h>p2-MK@4)I z^sb6F!LEv4RKy4THPV)QPju>~a}3JkZhH*{l8^E_ARpZ%dxojK1(@7!+w;?J;u!U&ly%903SH~n`O_mBwV?TeIq^g*~ z76t&@s|UY9_5iCb-Q5bWsZ>&deW9-0CEcP+CI#CE5h>ojO{L<(>YmB79jM4o6RK$f$}Eyv zeMI&0sxq&74WMB+NiSr{XZ;7sphd--Hsoljq=z_vqPm*sWD--x+}Q{_(zLmUUH zUeLiB_#ij{XJo@q`Sh7g-A!65x1_z$>{jJ5-0*TDgtppHwhI9y4Uk$@IiP8!;G%I0 zBspU*FZ6)1u`STrzUP7|pe>vZ1ND?`F^3oK=p+sOizUv^fa7PFssp06cZ=7&o?nFX z5Im_H27842>T7$CT7(gTl56IfQww*%;9FKQv$WeTuyz!5ed62F6Vwg-08NFgu8dJUp9la)t z32JB%(`8}I$<6JopXQcl-_$+Y-* zR+S%0{(*nP=z~3;b~*t@90~M#+z_y``lYo3$V=At8av}x9%_iRHLr8vR2H9`^0zqn zM02@7)S>AHke~%U&OozA&0=4U6TKwfA@Yx&W=|aU(=!PQmYhO+uO-{?9#9pPnrZ`d z_w|iEw@P`i4rt#E;hqbToFWLY_V36%Qnr0adci6-aL6_m++>AUfs(sOIp(2VUnje} zyM2Rsc%FXh#}aqh(>%St3pgCi%FR_0Z%pJf4qBcrH7@K04?<4BJGpBB;ZSuCdtmTy z+$Ft{+@SmZF9Lh;B||h5KuP!qjy-r8sfPUeU&W8R^N@1>xj}}=x6zqiW#!s378 z%lVcOmuqbhGbzW~MCDd1huNSI4zz z3$_1ptf#+!T=(#GB0xJ1qrLf+a_>K3@f@kJ2_5D2uC)-4GK1^KqOH9PU=Tyty(~E~ zx>Y?1@34T46Ze~o>u|MJAq{0pQUP$UUHAdHMpTp8(a|x0cnd-W{XIR$jnIPkpts4D z^)GDHK!DA1lfc`fCX5A;dlCYdwFkiG&+Pg6`J9?1QW9570ZrbzB?f+IYzvLrs_uA1 z&yrO0d9s=2cmla}fSM8|oOQ0y;aZ!)m!K$3v+v|$^+A@c6~TT=?7Oh9%opId|KLgu zG6=PCV&=R~Y&A(5xD=VTh?BPPt*Z~p7_{U`apx5vu%g#ll8}pjBR9c*|Gg;lKO*5f;>ykktr!$T&1OZoZKvo zjIy2N#%?al<&U2}eOsr)9VW-v7KAsZOjiLAk;n9ewb17k7Iv&VAV)?;G3a}rPoxL& zf*y1tPHd&6r8NsTlak4v2xtxYSomS)cG8HY?jX}c9*@3sj)vaQXuB zw@F(MO0>QpUET^%sd}6tQ@ei)UqSn<jR-9+`Sk;myIu)@;Jhklk*=kGw^BH~SPoczu3G ziEJm5QlrEDN=Yg4+2^w2Fux6*b1*C@tZ-5^a6;s5U9pzpNd&IyDqx#yH14owO@|!) z^LGH#Va=nN5*{iUxADuP_P`Px<-To;*3ZH#IRqn*ezJ zLR0{=4Fr;tsW%2wJYRvK-@bMC^o$IEP|3G%-&D3i2(P+}vC7Byy+NGYR*SMd$sDlM zxH?pQa|il`*IwsJAT~EtnKvGS zenD?1tXrptpgp>vdMq(LZ%H#3M>n%TGa(cfq>$wRr*Bd8Xa@x+ybb)x zcID{2B?BjfrJ@^zmT3X!vi00%5a_`3O=M?ZDgpK9<%$#_JP4=qsJ8H0LTxpadYRGOA&qtPSKXmx_}R*KDTM-dJiB73x2*uqXs9I zui{6?Y8BTkMR^y*h%GF5DZ{&`su*o(zr5(WTORp4Np~j;jYqQ-?<^O^cAh+8tpV6t+DJG zs}>_Z*0bavaLzOZFvuKTU+njz{EW)V$tiOK_O&cF25>6Gn6tAVPLA`|)ctf=Qe()o zG)Ef#F*W`MU#DmltAFLr3j@{u{??eEf-kXu?+JSg8Yl86MaA*=8c}I!JlU~2?(1>L z?ESNqmf3{<9K{XModl95*he_c%TD~9TzI)-(u#`M6R9G3?pwd4x~p2?fbZYFGgcV$(|WLfK$p)KxRXo4*lysG@MKL+@UQDH6d>`j~uVEx_M1SD&#zW-XoTB5VT{1@NCm~bFWH)>!c5w z4W)9Oo}3KgfR#s&tibxqV@XfoWlVn`&fT&8TTM2d#Kh5MC&RK9&hHcDz9a&6!n;V) z;VPMuGFUbg!o-;)U&q$7ib^7TVpvOU7U~50>?gJv2%6Ur_k2IYvM81JF6NKT2vO`$ z+4LIr_?rlxX>m?l2~gu>YUsI}N;wJI%zvG+>NG0lH5sJVLu>D%GbWq`)}`VLBF4wx z$^8r)uibHbPXF8b_!7pL3}zxiTU%S7B8~#uSd^F`lzv6|3u0!r*dc#W`VZbG8y~y1 zYx$QR8CGhUzI{s)6%~~rkSsRm9HH7$uXCtavUsn%Y-h(XD^~J3RZcKhoS6N>lO$4X@#obHnu$Xzz&9=Qq8|gPNx1Rx}vK2~E0Wvoy>wV4>mnwCFiLYaS{4jb(Ng?4Sq;`KZvPBWa&cTsc zdd$nyQ1Xo4^m?NBQ*U0LT@Wq>%F@_uts^UUd?*y$WEEERS6seaQ=1X}j{nT!CNr3u zfVj~WfCbNbYrDBRlWbO(@N8{;ecM4=02)~;&_Xw02Yw}D)P(so+A!K8t^`{VTMJkJ zp#AIbU$3SV)BB7nwbli%4oqX+_bs)^5~4i7d7!8~hLW&|{BThGuZY&**mO5^0}bgH9v*dO-5>v<45A)y z^qY@h4^g*VI`3h=)oK@XQT9T6bDOrxFk)3s-NQ*nM@O&2{C;ucYrAIJ zY8r1C7Q!GXNG4TX=5|&AhNjEh>Xh1{N92Y>#^X z%{RdEmeb1PbD)dr)tR~1@*3znJP7=nN<0vR*0NBDIc#{H0zJ{pWhEuPJuy547MpXr z$B60|9+HnFHAUdU$W$Uv6O zrV>pvFikic{AgPk=@<*v{a^(9@g)+0i7HDc_ri4u&c%bEt**@At((fUv zD#vs-rAtK*T+dp%r8gq9IZRHz7vXKaHcEIj*GxRO#|Ftr~CyMCye z*<_t;;u;`hv6DVb6)C`pE^e%AgX^DEYLMVE4!VN%$zv7vH`PA$*)Oo9r3H5aaS#Yg zb|8!*$y)#A|I;4wtP~w5Xw-R z;P1M7cYT@-fno!~@yW?D&r2J4orb>mbD`%;3=r2ayBq!`8xkJgvHt@?dK&{tWJhHt zjVY`I??0U0W~v{^qAw$YIJ6CM}C@H~3%IkLgr#Y7nSUeC2;zP*^tt z;g+X#W=by^rv~(%EV|p|P{$K@>~NH`X`S#BVcW0iq!opd{p}8KO#F0@)y*bTqT_q< zaDS%Fo908;;B`08FKEc>4qFD{w(j%U@a1m5Ck{?|;GgOb-EHrm-$`Wuu=d0!A*Sqo z4!bE}b6a=iXL=SE6*9t^UokvKExQ4jN)Gpcl%4$zDRka7z8T`mI-=UQ_u)zrYmEi8 zS>`=`fnAqV>z9}*my&#Zk15TM5&H|CTkVNkOe}I|NHUFp=OyiL+qV(iN0QJuaX1@h z)?sUIy7&NJ!YTYO}3g_=zav#$p}RxjQb?qbQ~c%#j%*;LBJuT8#ta) z$Ew*FW!iJ*u8Mzdf6bFR)dBj$KrNIoTFRcuQMs(~KV&k5;QLSp(~Ginr_M*Ag)34# z0du!{SS@)BL{>bafwBDQ=ZDx&12i~qc6%$v(L8Fjr$2m<)wRZJD?-RtpMg>FdbQ|m z`qc;B5mG;XJw@CGH1~QF)Ug*UqsgB_cnUeBfBPDUxRWS-;43UHu~|f$R!YB!p-ndi3YMJn)zU9^>WWJks}OKu z-ASl%j76couTxO@Iqqtr4*FyC)spaDr-R zNm;s>S>$kEy$-9v+9C$$o_gfD^h=(b|2PARS!J;Ffm?nLbEeTup1{q<+^6H`SMkvW z+=?=3ag=&Nf7RIh#)pC;o>uHfh+ojadnF?`*bs)fsJ z%{=Th0r*#(MEDY4H_>l6i41*uYxWWXs_FM^$}BOtoN~I)nP&;ayrh73X=Rwl*k&Xe zvEmCaVBboo7>$KF3UvFzC5Karpp=1xh@l+<^35{FFw&F<>Gn0hgW#+h$5X{kvM9VHp(2!ggU z2z&|e++T`csy;==3sVelomRDUEe0Bdf(Z1JnHjaUWIG3Ra+Jt#y|!tB+6;dcYUoBo z!i=3#Pr^H1IST3KG>!46EWWuki^g;{HSqK(FACyLsTle{szSE~Fq1bcYUV|UE(laI z&t70MQ-Pk-lj%OtG8Q)YwoUEhIQ`@kLf$*lG?Ur8w&#giZRom0u zg!0~3OZmsvWKS-7+f)E{S-&rwlCCGkJdcTJ|J>mdp{{!OvFP&Q`Oyzf6G*8y$)>^E zmZJD=jwp*9pVLSE>C<1m(z z6NqP|k}Y`}KO=jJOR1tb2A3jZp?Xjk{Wewd;v~XGRq1@f9%Um4*sx2>M2)l>4uGk? z419b>ON))cD3q-tC%|O5Br=-pW9}uwy}G>I)ifJHEI%r{`h|+Xz~Lv%>(Ko7zBmwf zs>rm4){(QQQ5qCnhx!mynQSJ#SGYt(C!)6zNj6mO;O@NZmXcK2T6oO$2U`$%@yYay zPUY`>cNvVn1J!^SzYm(|D{&i2-EL>Cc}`B=#dm(NWV*sr9ym55Q1HN*W|&x_M)BocSBtnuAm5FsY&J~$- zmnAzoMBVSRHx+A-i&@D!M_Hipazyz3&QvY8YA#>J$lga{&UG(6D+?`?FQ}s88TGzg z6SQ;ioC2q(>kw;3{lIEDRTOu9eO-2MsuDb=sHH_IXN=3t%xncO4d}SO_KUu!M9G^y zN;Eq|zM+UP2MO)$GF_y0L{M<4=Z_L6mr<}#)nDPZN{zKpqTS$2E2U4)ta;MiOx6cB zTniN4i41AEarM3G*t9h5*z`Mv*Edd;{b`D>0Zw+Y+)u4#;2u+#wOVFxr3hYtPnT|O z>u>h65F<>Nq-TcnV-q**bnUcFBvN>OZqJ>Npu3~L7 z=}1||WMnDEGlO5>pB=*BkD1@u96h^}@s*~!e}-i)qKPVVv<(Li#|Us@^5IRSDx*;# zKtlB-#EF`rOrE1rMvG0qJb6Xcb@9X9_Tb#`;G@Rez@Q(b(Imw4J-M?!GXA2q*yflMoc9w)L>|!N#4q1#}?ON=A(0aYlqS& zUPS1CPT87^o~V^!WZz&;E~3-1{BUG_@33~}@~h8W6%i3!Kk1Yc4O7tTTT6P+%g#$y zi`@?kXUGxnCXQ+gLyqGtg}s*O)$0@~g?w`luO%i_5kKMx=8>BxY3iqeI%ADyr~B&a z6F<>BpOb1a@1aZRMkMwHY6-hY=-KP}$@Zuxx^nc&QpJb(5sWfb>a3m)BXwkof8eTj zxy2(d2xKC0L%z#l$;irJVQTr=da~y{vI`Cz*1(dvwVsp9y0p<|&xdBtW)7RQi41UK zy+CPxFW|HW{Nek_0l+NNos}d!B|L(0ZZ3XpcQgF9*jp@qi8Nv(NV@czn-KTROJMd? z7b<;5BixSeeOt1b>1w_ZJroCjPG}j1{{uw2yE;*t_FSSz5-dV6xcXH1QfYvM&DD2{ z!H!PChy!mSdAD4uJK^F~zI-)blks6TL~`zVb)QC~=S?`^rJZFmW;Qpi{qYN-KM($g zRhN1SuT}lpwMM$9_Qot5<|N^99kI6hRJ=1M`6uNR-`+RRT6rJ z!^-!wC&~Z{d!nOf^M;;lSZr8<Y7smXLc#ShK3uSeSOv$M%|g9*5 z2UOmo!C!Ig%&&@xx@nqAGgOs??K2V+7LuTCF3p-fBRl&`lV_-XJ#)P)jnu0M0l`r9 zB{u-c35L>SVMA)F?(h)Xcy}*${N>wsBkd3kRf;MMNhvb#6y8^0pWCg*NXL~BIe}Fb z`GuovhdlVsRA!47<=uuYZMU|iHXP9@$6!Z+J8t*MaTK2%cO1(P$2ucU%;AiU0qgN? z5Xp?7f8LRT0I5~>A2kUIt3zRDPV;J_@r8?3NL7=Rj9{Oy^{2G6rdi9r>d8^9cDP?tDrs~l z*dQ-IJju;mY`G|tMIKwwn+z;p%x)wy_$Hu^=v>f|ye1ZK7gc0{(6Qmw;FzC8| zRcdTjxd5$N>wWQ|0x|p9q(ER+psIjv&YwSFWo7)7R0OB3I7+CKgbhcn>Lb%`)7AG- zt(-^2J!*X4`pU%mjW|BzeY|UEd!UdWaES_y0F34YqR$N%gSSk0)Xf918l|aPJDBH{ zeQ9;s&-N?C?3(5NvKbRznDLO`6Q9eY)w&%ecL#^ARMhv-14w|Bvo%fS1?66ZR-kWT z{gVVounn1`FZq^^RNM7EJ=!!)<@l^+UQr<`{pTg53%3Iw60{5A5&#wV57lksIBcBS zE?WPJorvtk8=ZG8=;GW4_c?`Lb%q@F*r=fUUCs3TXlv>Z(%!yad>}G`d}P<^JSnN; z0xHqc$`kU@0jv<0R6__yeN(&;Y}AU*LC4*<>N3=xPb{x4sX}MB1O-DgeBWcx+`^VK zts8DeJ*ofv$=ES?u1|~jX5Ar>qf(E^p8Rl8yHKO09px*^8CKT&O12}vO8?{MJS?0{ zT)XP3$Kvn>LFd_X9&3)OoxYeMqh>2_QYute~W zpx3sHCzz?SXL9QaY-;Y~PZr+>zS8F78hE3n)e)PvIQxm;$E?-hc1Yr6l%v`S6|B8n zrnX;7hc`#Vx2F68;>^~8+*H(!j$2&rOf#VMHn5MojhsZ*#)jL@A=)cFQNp_p4YGRv zTgdb!ZJ-w#dhEG>IMn-C8!xIctGH6q>2Y8ettY3s;A63<6z1TL@#9oOa!H3nqg)QH z%cJ%6zp5LZS}(W8Gj*BKW}z%r^tqH-t~y7b+ppZFAJ1~-nS494bT`ScE&%F0IV|!| zf6SieBg4>k1qpB~gz@zIJ-4#sl<_eqFm-hj$bS$_-)E<)A;&~Y;NnV7z>Y0^;)k!y8K_w2lB*vqLftf*A3(a=nWbA$J`c*zk4N9bhUnp3_~ry&pPS=+zjg3&(<=x>jJb7qW(wbRLHoM^tnYkeFY{ybg;rG(0K0 zxEUBQ(oS!i+CI7jTcyd)4rlrz(Fkd{cu-6<$+IyDC|{{MV`jxejYvQ&dVJ%PI0}9ytc z2@AWPfM{PJ+yndU0+ixy(~$qG?tO;sCADhMHx)o$9FXIG@#LT!mni(pY4hME>zn_P zZ3kd`DE;5@?fee}_&qVRwjH3Sh&ups9zp+qlPcwb0nxIzsgk2(FpUc&VTWNI7I>O1 zj?QyxYiTk07FJaBwFOk;at#dR{z;NL9&~)VJ~uS5_hxl}^ABYB5$OcCK8(cOq^zfG ze(H4<6B!aeE9bt1Yh!>8+Z{hm6Hj1${G#K-4W&E3!KyS6ny{2yN z-1yR?-QT=i#uL@0XuWIGfCTJ1i+graC6r`-F7$lTCPgqro^CjsX>tG65PWVS9n#cc z_w%o}xyZKOVuq%Ay#s>Iw_a*~*P|&S3nFaKU%V*F2IHVObO_$!=2MZqERWG-0sYFSq<+alzpmG=eYgkPyHqC{zmvf;>~psmuJ5|3etfXU95F2q~ReJWdMi&LjI+aE0LJTuBz;XhaUy;)0v6Zjt$4+YThK%@BrmE{W6Dvp@H#<2e+?$4(b@j%x^q)->`;n}sMEztL1E z)6ji8_OuFB;d>tjL(Oi_dXCwqifdi=**y#Noe%o~@y&a(l{MOc;RO(iVJ(zr$cn{c zh*U50x^{q4y33ZKS+QB!*?hK(4Zc&dE-qCS?VV-iH3@ZfB1U0+V)aKKqaeno%S|Si z83kqQmhFU`Mlh|>I!*YEd9f@kEob)0g!KM8npjZ(7e^Cu?%T9`4MbWJfCx_A#-yU8 zRBg)7UIjA4{l5f#N!k7+8ZtRdb~r!dV$VfbfX>(`o516By??1Om2><}A8QPi>rSDQ zS>B)UOi+%#8li^RA}*Abc?CB+8@s&I#_DAHd}AE_c)D(ra8X55(0jxM-cSb>e0~1% zao{B1&I0z|Q3wep0f4!4eQ7Ty09;~Ac!o>!WQwz`_xl|({$9_K>HHz4RM)~1B@Y%@9!4n*^AX5z`M9JjC zK!U7KW6Mka65d%OAV-LCc!66Aqh$e6iq8n3(I$%9nCP!!t4 zlCiHXEse|)gU!wi{TUW9YZO6T{I#M{hRY#A$!91F4b34I<)3>T#_4JZN0l3(GoGH= zJX0TtSJ}6_-%!d`f3I73NSGbCl2Y#m2}#HbwaXMY4cZxnr)U|EP&>Czan9f_)?K^R z)^kO-gw}xLLv5?@aiOFX}b3qm+!Z^+6U&q6I_~R+`0um9a-jBZuB%&7KT~Yq1GDHoG zOqHSyLDITh%>FKBb^z1AqQtdsn@;411R`gt@565}P{o6Bv0;XNqChN^{m8EZ1l4z~ zWKf{@qDPXvxAU~QW9V4PDwrzqq4D4`fliSK6h0Ivg+9uB=lSu!>{H0k1fJ0crZ@fa z6GWWSeJIq*E@&c)>G?Xg4H?mv9cm%_S!`@eQPBI4B4X3XHA#a#d$Vzz2cg(g zR7dVon=u3P#4q~oY5!rNuW3~D+Gzl{>frNZv2!yWQBNSm=4Fk|h5Cr#xj@yvc>kn$ zuvdV1u@`YKM_ORn*rNfc30;{QySv!?TfmorDU7z!qkPETUs{oDRDlUQgpBCKR_H#?e()T zHKJtr4WRBjJp3kFMpm(DAA#-|lRN)1)E;YKguR`B3LQo7`dOHU1h#4X6d)eC81+5` zaXuWt@ z@WJGq=mSi#`lVk|JypxC%W_Q7l$#7%T_DNvl6-^fHOJRK-|bZ0zEH}OPza}OX8?F5 zwX^Lx79=vh+NllGOxa1%b>`3jHX)9_`eS2SvwzElE9}HUe0A9J<*wR-VGuPKTiN5s zmSjU$5#N;kRWp7f`Pf^%hhvNe2v*9)VaF4*3O9Q=P|s%^djl{?VY&P|2wMaKZVk zj{=`JUu^{LnT`&|VJ)R4$s&2PG^2`LOdCJW0OSj7E0nQX>XVw5;#6fQK3O3#t*e2f z%0NxNU!f;HQS=oj)z4IUENLSzAeDWT+goYkHUH^FMLu z12n-ua|HI4({1H#u8!JZMH6>Zq*%xWf*L2itPHqMCmH?9x&eFd%M&1Sb2kM)3*vw% zCgyDSyE_*7mU-D4hrD4C;$F^6~v| z>mjR}&tmD$!`$&o)!4%_SPd~ip)w02WXXOuJ_UK&M0`j_LiL%tR-J^;BQK82 zSA%Q0f3rg4AXUj0(w2GGHUtTW#C+YBkfF0p0!iWFRDu|%9r8inI?86XTgsL?19@SJ|pZI~by9w0p_?t?kIA zHG;QTWW_?NkyHrBPd-JWx`BXcHL4yBeH!ED5ak+eZFa7ikl1Kad5VDnE~|Sh!A1}J zhgj1zk$RtpTxK+5njt+v`^n#pw}tnuIHYnyUlhojn`afW1Yt*BjSVpl5ER}+p6B9v zM{~P_))gUuO8AIquzB(Mi%YuJ!66Q|S+&JUa7|%>8(la>rJsewbFl^+I=7mQWiUh~ zXedBoFG5qdC2 z(6t_+wTyR2ym-W&$y5I`AvDOJ5Wtl@wpU1Znse;q;s1hEWdrZ=q)->??JH-t>Ir{Suf#p$Ga2A0C+;x4ru86^hBg&KlEvc znlz5CyiQ_c&rf&rL|2pzlEC{Ti$l8(zu;CFy6h95)4n_uBo%MGlzOg+ifPd7$gVD9 zNn{C-nnqL(7@%kU`A%IGWVyZrlzrRagb=5K&FQ^uds*1!}%yY zJlJ~f?cN ze%bW1Qc#qUL6OfWeo4PIcf=j9?^DZd%Ff0XDSx9I`eL*iq5Fh@7Omks;5%p5kM)Y? zj{O!nF@d-F@^ylNi%+_E%;%c?mR#7_3=iAQ;wI0&(*^1fGn+3TV=$2=UqGN%aKPH3 zPQDWG@ri^!hcVZzZjeiTKnBfhR$pV>gs(w@nq}mf&qKL`49T8AO%g7yLd}(o&yQ?; z&Uf|io;{0|R#S5*-ZX}b_(~^*Ts;%`*8YREDIrQ?6W*rm?3U}l?|^}*)u6G@L4Z3= zRC4Z3{NzJh8fLpj-H}HezL5~*(bk&A=?(`hPo~arM`!~rU4__Yi>_h0Wt7NGN<$vE zFq0nQTFWW!R>oFguPt8ayomASpO4a_e@_yuW%a~($0$QiAg4pGxm{E@I&|LUvOeC< z_Q<3HW#o|p&PD9S4+W1jbZK@a5#-ITGwhl}8S02MQAFB%q+JUMeUISFYtw`87QpNI zTf2zc^?3as*r=GqpKmn|?VrZejLEw8jf#3a&z`?|zwU=R5B1GTzI=ImyHKuRz%k7( ze>H6#&2jD?Cmi)n07X+BqpFFSVivBJxLcajV%&MtR*$@Cf%fR^Xm50U8U-dH6^C}i zF6uq~heH^ofw4(_oLSD0vIebYfWPX|@gz_U<->eaQC%nqQM${@+IAcI(z<<`GcN;= zek{-Jbhk6C%TU*wkdstK~S>+U{=%$R{EFfOnF0jgsB=KvOHI=I94 z?;~0dzm?1XZ!MOF=YTmg0$4tQXe?C=)z26`FSFVYQb|(;L znl0`d9Q=VIqC>`3r$uMr<5Jb083WOB=v--D!J^OZE`ctnWNnmg4e{ z&%PR5a`1<l?IMhB@vYi>_=7aD zBr#G#^XqJMJK&Ie?t^ij--IgbIi`vmLJR3~eE?>OE#>Zkl(Cr{(8Y3YX%CYGTix1t zssW8!eQIYuyY9CisyB;gGQFvL4;}s9ND~A{jen&(-&rGG zeGfkFMjyeT??1ivEfa!tHQbniak^;gzGN<{h&uOEGYZ`eFiEm65>I~NZ{aS1Vo=Y9 zfGHjmx}hqreK5952yMDMErF(3@dmLgftDvF8YjqO+gTP?NAFHtih!czzuHu6)IuQ$jcH#5g`3WTf5H&)_lBE zP>fM|d0Kq=OE#F8iYj!D%UP|s-yAt@5-2Bki*3rUyK;za&2=UFu~m4Z9$ufrX0 z_4!wceA4=|NN|C?jy_DI<;Or0*DbBst2YIqJIDbw;_0caK}b?1lF!h5MM+~6m)TO_E#9;PUKo z>o7tJHTB6f^l(aD_vztr$Dzef5}F4DB<4}?@MwC6+ID8()L7zZn2*~Ck$I00C21=$ z=n7%{7l|{Yu5$_vA7r;Y%2JwQi396pOquTGBQOkR`U;Rj#2Ju1Wl*ps)7JUlO$Yl( z0^>1l3SUqOR54?e6vdJ0VnP(z7$~N+_Se{}Xt^HIoPJk*WaT&BC(8Kv2X zX#Q!;sG=}%HMd*5YWFVlGbM_jtm77*0oLC`SPON|LMbZ$A7yU=6;=4Yiw-3q-7SI$ z3QBhi0!oO4fFdQ*-OWZ)k&+N31q7r)x*Mchy1ScUhM4>D`~S~9=iYVhUH7iVp4l@y znEihB#`8We=4)Mz0Ah4A6#{^cq6FXbX&Q9dR;63ey4Ep(e28oda&mHR8kvL7m<6wFMQoK9oP!AkRt5TUg+^CF(lQZqVDF5|2{c?DNeZ z$Rr=v!!k8UaA0?Kf z*Kq8hwQ*V_d3QcFvldFTM$pT>_(%>;8P4}-YRGW+p0>Nn+sO3|!ax%VryRtoYG!_T z#->U-UdBey->)Nn`OUwW7NdEtxE#80d!)|G_lHOZ=PR*)ZMHl;0o!k>VH`i=R$e~l zM&m1AJ|h{N@4fopzoW^1e#Bv7=p*rsVy(Sn61VtwGbQD#NEqHus(0%p!=hE5cxR8- ziNL!QiHRRfy6{!9KMH^cDt&UT@%Yz5a{m?U|VDx7O z$tBW$%@mJtaDwk7ehJ%snVJ8?@1B39As+ARLpdjy^dV@pmsF2!j%u*HP9lj@))|?+ zj~QQh**Wo~y{w`s$4QM-`>r9&`5>b{@RJHbpcqGK#|%!P6EOva;%ikr6T8$aY+EwQ zP%r8~Y_@#AH>&g;2PC)$hsdB8^bwZ3u5>`hN$Q`Y`P9-RDS>?X@}>3EAFQ0w?x>c4 z+@c~@uM^YgU?QPcGa>%|5|ewSI830OllnWi7wui|$o;e+1eti&IuDdn#ot;c2BbVA zDIg?-S2hr%*GYT_SIEE2zw+9wL|{wy&Z+KqK0V!+_%(L}0##9Uki*yXX?4YWX*aqo z(H9p?IJ4RKKiy{Uvs}#iC6fefTwhO?8(nBHt`(K(!uaZ>AUhi-zC=x{HZ;dIwp|D^2dxD{qtR7^R9@c zErY8MGCp|*&t!1sd(7vbuMsK0h==*eb=|2+n2cUL&b?Z~`DbD`g3>(Ly$X(smK@fS zA==;Q`o>ulY5hQAq(k7F4Zf8X)AA&b3?UU$l(T8Iz1!bs)naR9BqK`|d-y-3Ngb;{ ze>U!-{`ap{Ae9ulhjHVZJtipm;5kvKg1x+hP{1rVKN6gz-520cB z9P04ZwqD;`I@4;_YO$6o)Ug{oJ0UvoehR_jx(JWX4Q>WjXV_@-nyjZRJHs224X$=6 zSq{IZ&9z?Yy4o-9{eXG9Oog|zvP4DmzR&)J57)gpTj^kBIUF|;Lccv8M$PkSYScG? z{O~Kv32&uSe_tT$X8qWn%7F(GoR@sp8yNyOJROqe<>RB4V2Pp&#y-(#|kzlBt5%4FAxBSjy&yLr0$~(*8a=nzNZJg~s6QnZ{u(8g=TZ}=% zdaPI)GM}(Sd|hdjy7`p$_f9D3Wvb{{)57Cvx{{NQ%c>A0TJfx(W&mSXNq3wH7mbIUYp$niKZpSa7)s2-!Pna)SYt znqI~JM25TScVI`=eDm(&{pIClkl^}prqafDbgt5dE(i(=YVYXa5flD=d&X=A>62Co z`b~SynAq6Bb_vG6IGQ(gZZ~K}iZx*w%jz)RB-cN`E57xy!l@b?p_Y?k>S&Zgn*Nhh zk$aI+r*sGPY+#81d%CcHMY?u@rxw3HUQ&sW$Hg)QF4|j&fJjEVlura|=IUV#ItQ43 zGh)!4$RMzP(bR9idzv!{obS|bYZN$`avdhtGl&W`r~4+l)w_TxY)ka{G7c=LEF z>7UbazWO$yA}dR{46{XeW%yaVxf$736V7f66sgEmR6?x#oZ11K@No27<`fO}t`~(p z-q7;kmkS<5&}sNi8>@oA)GM|Lxk?9@=XBT*ItHSEDT-^McV+YB>(*mE{DIy~gPZ+` z5c93w>J6EutGU~6a-1Db5gpzL{d;Kwn2z_kqw*h2S9AUex6X-CiLgX=o-wgD9WKAB zl;Hfi_O*)?rTXjP=N;0R#Ttor@v5Y0$Xl+@$%}Z9!d|awDbRT7>)Y%7PM@Ni1TrXB zjJ-Hts_UxC<>K;d3)bIBJ+GIa54wWc!^0yii^9!~y$7`-dSH%p=#Spkklmc4N$AdO zYHLyp8lvWLW?k^E|2^Ii!B&3o&(^HFChckHshZK*k31iy(^Wl<0Z-IL9_Y|7mwW(T5$7*H72f=N{;F2eK+(c51Y z)|vp$3$!#&{&)|C6n#I&gDPTjau8KsV1D!{0bAa7DU>my)3Sp0!Tz(__tq$8>_EdI z6RDr5ziRl6yVx%tPaTL7)$QIEYCw%IT8XxiC_@z#8Vmd2ANW?w!Z;QZ^jWUj1*22??vaH5${$yy$ zma*glcm2pbuOv4{P6^mmszdhQdE2su(qiS%KEz@}pHyFX(WF~sCgaXA5mzX)bE?z763bGy8F0w*Xfb2Xr_ zW5_do|C&Pz-<;`OL25C7C7fIUb4Y9BgWYTH>JyJ11yq>brjvfKjM;F897rk+&dXz` zPYmw2W#il3%LkJ@H`iu~)`>@7jP0llo-ORm`<6 zr2)(9Ws@MoV0LGv2uAlUN?9rYp!X;&X}hVau+3m$3?YB4?&JZ)^v%&e$hxzQjEk$ws=fT z%>Eb(L{7%rCfdvU_Q@9>G zUOdj_7eqtU^DEI3{VAodb(u#|HAbMJfi$spaOIz!=dcGd@1{n{|NfSeU=w{mym?vu z@UUvIJpZ$YK3&92wV!IoliSa$sBMy5MlWS^IaY z89%i8;~ox25Jq|aT>iCz_8>@gc0X*vR?)@Yy6s34zjC~=wS?^Et=+pu)fk&iort~} z2pFMPCQxe?=%5+uJV9a}Jl4ow{9UwOrYePXNGSHBf-q&FU@$5M#I%A&lis~r_YnnlfK}VznVI?!=`f~wehW?3~#_X=-EgLA$=`B*nxFk4;Oik^j+#4))f56M} z@F77P=SmS4-c`+=1Om7HGc0*8hWC!U{kWf=KF7kboMC~|DzSK1s~Qe4>8rJaim?)l zY&>@T7cf%eHl8Ny<2}J2j0@U1;GD(U1KA&W>Dr5e;ws7d7`xPaAP#lzTy@2DIeO5Lb=qejF<*F$LiAvxvn-<5l!<>I!(@|6 z6wXw^dA2{J;}WDRQ&j$m~yN+#t;=0v8VPu|>|pow%0hwW`NFV`qq&0=s6{6H(_ z>I|)WKnO!`+@EpVs4O(#yUF9It}j0gsSfc;PKBh7bkFi*bOvh61HYmCH?8ZX5YTFO zdfRNuff6LR=5)Ax8uGDzTyd}!WA@K^TCgQjvqeU@q26EMwC%T>qtp4f=*0FfbXIHu z1)W{qXl$InkZYOwTvJ2CfiA8_vUsVMRK9`+sXCZB@liu7n`nWtX5JOWA|ApN6|Xu` zMNrz!gH`gJkhF&Nudi+>hOy}WbSiu_eoPySm2}YFmxZXAoMH9)LTF>UdQ$ zsN{?>7RcBaA8AW8C~H9WFJKgfJ)*tPVX=~xRK$lrDA&Gh)qLvZ^Oj`6{S<|1?BJ+9{c4^5V^nW*lPK27m{8<;#&2r&$1 zjuV(!^u&ru!`B=93bHiL|vQd`G(KK|QuaIk{9(n5wJP+)&ds zeG^T}b0j2p#yElXwzKIpnw!ZsNM^Wys>UgYUd+`x-eCe)162Fo|ZkTO7U#8OZ&-|6G?ZGsuQ#qg^!@xu6_`#;>iiv-+?S<=b0K$}V z;e#tAtT}wR;pdwV4lNNB0Z$FCiaO6`YMO)!jDQ(pqVwXjTU}}H7n9!aKfZr9kV5|6 ztv-kxl(a(98BMoEzPP;b`j$g$F#{JI7jVI0f+Yj8iLXaFTBfF^0)}zwq+|>)n-5X) zr#P}R=T!Q>MU!s+#x9JX4&8kGHZ4Lu|5mC`9x9a`#T#5%`_6C)0eG-cyZ)Sl==8lDoN@@jJeixoRIFA}K9j;m0r*rB`k zj)A%Of}*KucD?5|Udp~uZ{QiK7?rWtj+^m>G6L_DwFQstIsOw$DmN4Tu5;Dx$)*Da z`3U+iy=xhN{)~v4^u*RuaA-Y8%9;U!E*IB2i43=cd7USe>^+LqjtGIUI??D2DQKLL zbVE*??y%^ewzEW?>mKw01odIJQ3*Zz{vW%uH5%W)f9G}Go%|~L3Q&(VKQwDSePz&u zlHA!@&(9oA@*QO0Wnw}DIFND6HPGB6<|~<98EI}H*Osf{MqaF+LWxR|@57ej)fs{a z)9ws!wo|ETqF-B>cz23W{K|5r$zK+|L|*Q->ngWI4Ce-vHr};m7nzOxxwwR;H8I+n zP-6lJ5FBT#9WW^xW##08+#qjnaS)j1>koY6bBwF5m`sU>hIVg3)FOKLkJ-?A^p(vt zIV_M^Q&W@Jahm%1g&I5h&!VCTz_1cXOn=e!gz&13A>aof@aZ`{JssU6EU&2eVc9%7 zI*LXuU)EK+jRzz^JI7Mxb43e zG3`rmodGmL{1ptmyu6~# zFB8u#S5vbMY+k2P^E){epVjb5a94@*fbtZ?jy|)+^+QbQPLG!CsTl2#EGJXX6Uh<- z@xNM&5-T=6(&^+fKOiK1Zd@|S7t2%`Eq6c7I0vCO`2CF* zPyuQTt+cYU@X|Z1hLx4gH)=g4wJWFWl6|>G4|G^EpE5UBSN<+2_=vi>1{$NfwzdLf zWAoJOd^a6*A#N3ed(f4`)asV^^z^j3g++Q}W2%A}&3FFj2?Izk7z@kcc=d6fRYbr; zVkUsUGZCgIoCu}hxcVLlIv!3)+Y&nmhZB**JM`Qlk%8`*92~s6%V!e?LVL4qGBW12 zw%HjOtzLLIIL%eeCj9;V{V@HLEXXcN1@!r_FJG7>BvNiLutz4x0wwk&+fH{a;KP$+ z&rzQ+UaG3Hv9fkr!TJF=ob2?TYcbCwE-v7QOdF57pu6s^s;{5*qT@5gciI>bC}cP# ze9;tsPa<(RQ^B}u1|cdmVbz$en&vyafChj{RBLN%V8|c4*mAno&E-QIbOAJbO`s`$ zL??!VKD~XUeM{FhzEa$7SrHwbI6Z(vol6uI73DW>`4IH{X6|b+q5;;$4(NPJTULoo*qR)M#->j3(Yrg)Ibx;%3^>cf_q9AF{+YBlHb+;7`C97f(;GR)WifU z`I?Ihe~<^mg<&hkctIy@bs|!d{gR0OZ>7!5WEo@@2|qvTVjP7Qn_q3LBa$9|rRrT= zTy(wk4+v1{mq->g0P)h5uMA><4Z*NA?+rd`sY1L0iPzM1JhsiXddR5X8~7$499#tF zPzzco3Tj1VHmblE#FJitOfy*Bx z=b}}>X}VRm51&2_5AKw2D~HmrH>4`e$T_r&SSrlM+>j>+V%W-yf*+BRKI*=Po0a@#sjbR_1RNGHm^MiO(+U?r6@j&FELjfvBY@7P3LlwmO>tI9+EdH%ee&pkI-WZ z$c%E^sy@CygLZsZBJy&@N8IyKv-Ie)u1VcUo2IW;IS6G>&S6i*c%tbQyHb!a*rag zKHQ%vX}N~nb(WqHCj2ah5U$DSYWlz($R?keRt6mS`}x0r8=h_s!$1pmUD877Ns@ZK zaD5?P`O%@t7eJ0un0KhCPKfRoRwu|dQ;CRdjz4~IrWE=W3<(qMeOs_bg5JuLo4dNc z>dux<7jD}MbKTf*sxOM*SM{QPi#r-wXazlFVc~Tgdt|39p9$R%B_oMQRM6ft5KE6L z%!m+=be3c;^n+n^H{o;^_CB?%s9iSbv{3lPpdghaLX_|tnzFXRF*GnFmil77_HR>b zK0j}HugCcGU?#1a3y*X4iqj*4oC>34z2CYNY{N&TH}y32@OiHft*~xsuXGD2k%7jX z>m&H&b#aGrD!OC6O6woo`FFMWeCb#4h>qG@m|>~HI_(#&vSVS4X2If% zH^<}r{az>6yn+}$lWL><8BmoCyz^Up{6?V`!s(T=me%(n4nt3hK5bpb2!2|hR1K34 z88a~VeGW3R83{Yg5G9VuxVoAA6 zewOrcYv0iq5h0TD=SPA5g%;fqS*v8;@U6)H5Bq)2HHU~@P7ABD3V^uy zXl?!EmVWtUy?_3C0@C;T&-#;>*E7`J94~X@a+0N;^(s~PnXyL91o0U@!9z|?LO*|h z|F8GH!vzexA{bUyap74TwWfnZuL0S718d)=1q?|~+^{m(+bg>uXv|zB*|(lQJ|+3U zV=F8E*F0_*SPTxKh7K2*l9!5=1Pr@2R8U6@SlrKyBOosE)p5&b}C;?s?M6ONJU%~t5jXSK|kHw$2* zx|%0!JXvVAsTA!r>x=GTKW8{M4)K>$LX*#x1joYD0M*KfoozJ0bk~u2AbB?wdR>(1Jev zmwv?bE!qDXkW?OaS2Dbpn7_CiWf!y)V1dqpSZwiTQzh73I0NzhvTbw*9{Rt7 zgF=Pq4!O|)1LC6+FU4^mx#H*N$7yh4y+2!{KFVLkG+EN3NoJp$uASq(Vf+aNg>4?7 zHDrE`jD%ao?Y;j2G-h=nBhha>rMJS+_Zc}e@Vq7%cG$x5X&OdCo>+aB73$i$z1f46 zUg5;mT*}-%I8RgfG`3|6YS&$~!yoXn-_04dNW{GaN}mrw!U6Z{lvXPdY+CY%Uh=3= zkNjZ$-0AhDj#z5kk%SQNP!w2cvA%J}6TPe$p6l0k`^E8Zp_Y8>!h?Ie%<%g_70-35 z*hfH0K|nwd7!m@Nx$J0Z^i5>>+qQ07T6I63JkTR;!zat5Gt3zUQ48GM?syU!3X?>@ z%zJr=03#4BIW-nIhVV#D8p-tnr|=FRlZO^{O<*RNh;s^jANcWjCt^Zf?;w>F=uCz^ z^!z^ek|k$p$w*{A7C##8pMYZ(qXoFW;TE>3Kh4uofKF>ZaK<9kZ#mpvDmQHq+6ffZ z{U{z7nrXwwFb#g?mY#wZz^9yG_eQzc55dX5EbzX^`@hMflj+Q;xl;(`cj?sDmHvxx zdU;kPA8quAnrE{;?D0z0e^F06+<52z4>S1nMSKJ*^u>RjEn~zTgQoil*ui%pWkYT3 zLp{^~HfPD_dpWs}m)^g$U$()0p(bEwfHv|+>3iN6#MB28ETo@)b{pSuvqSytoqjhV znY$M!gHvlTLUFglji!y=P|R&V7Qk%67{tyqA~fE;yL%r@m|ich|G0>z?Cm!VB5M(e zyjHe#^tYn^0hC&hWno!yyp#w%v2Yepj+B!+0G5ir=XJPiBFA^m*qey8UzOU^WTZHI z6dl8Jh4^iHx}2IC)JY5RIovih2RU?;T#pS(q~3r`TbNOV4cx-sSQj z7kNZ+fUj6Hj-1c^uXLap)SaaCR5quOzXOB8+aq-I^2DIV*$3t&1EIfriL3JN6Mya9 z-=NiQ7X1lyIu-r@w~ zg_VW%wvt0NK{H)%d=Jp}OrLtrA5!1;NL@KYvFnFUX5G?LmY;nU9+Uxf-)EuQBS#yQi97l(_Hh3rx|LOuWYT{0&b}K;;^cn#ywvby%_Cy zJYL=3Ui)|0FVx@RWMTcbKk?e%MD}cValh=d`AYV#MGUwjudmeN=hxpn>}dD=@Pb|> zba@UDyrY^TxE3a_e{+0yRM|j#2V>T8=lK*@x@!E^B~beL+6*UjOEBX6ekHcS_QZfB`UNnl|NcQ=EYEwbJpG^(%U@m-*jJ3k!>1zp{bVqbT!%`I=7m`l*i=Qs{p%YpyIBDWAAU{2&@YzhADcS+{Yz2lhX- z_-|Z2oQg2%)gmFK36drzrNP3(!#mC_Vv^{JJy0$-w6_UUFol zG;+&-)%Y#29JT*p1VbuT7ymC{jj8I0c;5j*xwFN2YcK?$6H`}y>=PT2;EL+vL)kkdQ`_nbFEtBReS z{c~ib!YDt#$^$NlYq0p)`r2BBm?>~KP*70p>1QT!XR;gBBFxRL+e@E@1asdSJ%~M4Nvr-BRrcyd^RZaobiKm@wRWQL0mf$6qKU`lM%%R0 z8bTYYvNL$ArNs*S*JP%TO>D#P@}qf~TiyP1?kMBX^DzsJkJAEV^)rn&4hV|ekxj++ zr&X_F4WPJy`F-eptrq$(J-$!5quDR`*m+ha7}nRX&gS=s+>bo^LyD!QTrIt9?xK~E10-&gpPBN4q5lpa?Cfu`6i@05q1bQ=Au z!B}12CzIHFxeVm@HT9h3TT~U38^#4yl#vzzL8ng{N|0f(HiD@{JDk*BQq32}E z%(R!}0c&-Cyr01pl%`89bnf{5>5g}(zf|?wzb}rPLm!dndmL!RxSKOo#q^^5Q-=mi zwKrcnTU{?z`6)jH`?7Bsj|x% zJlmUz&(+9Dh1VEFp^f%OWm`PAn|by8tpLz#%`Y6QCh!quq;WvqbRL~JTmw$@2@*9e zmD9>S^F-5xtsRiU_v;CHV{L&D7on}OfjT~TTgmVB)S$H74ZLW}qS)=3+Y2{V?s*|k z05SF?#D3GC)2pcydH?Q6C8WmOxezoX7(}@^Rj-MeJRI!lib~sP>}3;~WYd*4`eHF` zU$hCh3WJ+w-j`7)u|4WsqDxYHALmFT*O3L&DYW5zXi{DNZiZ!Xu4xgWjn88oDcPWN zA5#YB9<(Vm?_qWxhza(pUWW6{rYoE%=AsIz4J~Fh>9J9j)Dh3`PCf7()S;+a~jVK6wf&= z;j{4n!d8_k9hyOa8e7_u*XmRnz%0EzHg<;ZsqTRe%U$p~`MSPGW%u z;6*R%QJY!u`q5zOGEeMO!3d5)rtQrtF+=GILU-DUZvwsnN@PTTAYje^3p`_^puP5m z)%V7G5Z%Ip^ixpCoGqKA992+AlDP{%kdYFPT&9_+hvlf4F z2hc(uzViI9fHTk|_VXDl-jy3atiL+mX>4=2nSfApE2Lj9g+>={Dk6G%0@}g6CsCy; zgYzkNd(VdZ;hpQN%QK>!QePMho5+TlRrLF8 zJ$)OS@#Q+IG2~#if@>sQ_;55&*~72=>cfa0*d=`7*tzwnyxU z&Je64&pX?rlaj1{0~O>z7`qSOCk1$md-T73TP5EG#i@co*}I~9P!`MPz%k;n6QMDw0-W86G z|NFC5wx|C9bKit1j92D%mOv8c7kSLRS@|3m3Mw(s>Z6UmJ&`A7XAr@DsCtM9oUyq&W3Btdi?ggrpy5YJ91TSe++j_2f3jd(d$kM-{lfM0FRp=vgecEQ5dq%-% ze6kAvF`XW$-TChlKdm3}FRPgTyChKPKun~&X-t~CGSrCip8_svLaMIkv-KV)1ISsp z9HU`lE*;&z}<>@W9~vf?shq6)r0W9CgP zLtT9I6iMn9LZml?yE6^kMlmB~N#A~7oiy||{T&!Mx6`~E)cX4W7AS;%ocFuuZY43u zYHtoE390VSR1y6bn!Z4w1R=ZBu${T2IRpX}AR#mU zy3|3XPY&uLMG=Nz0H7;HLHSkg_1m}Il8kMopopSI$|t)zB1XyN z`3A2Q$Cv#52`AbR0_D3dHI#4&gn3&$0>qx2<-=*$=Hk=RR6)Rlzs+wG2?PEaW+|zK zx&>t)1Dl17u!t7;mCLD4*ceElF6)39R&`~(c|$@;%WhLiy?d^cSI&;PA2IdF$I6-i zmcbfE>b}x1v=)d9^fGkdR!(3-+LFL)Z074}pt`w;Skk&V!fG+IOwpT&+r|L3?qK{X zZAaX9enY2QV_ z$0sV#G|oUIXF8>ci%9CKB%SB>xk4CyFT#LV9C%0Z$0zu)?+=x;^M?eGg8F`Dx3F01q#`v+t0+@9e==W{Bm@r+vo`5UDqO}n4p|>{>h_-V4 z16yBDQ_)7`RoVpc>R7IZ$wH%#$8k4X(2e`{Snh2Vqz^Y&h(CZz4FnPBOh1WP(q=g^ zC6FW)In1TYbpKYf7IhfOHNlJa;F&HyI~JHo;uDmFdldA5N7X7O+BHHeK9_dF3-Z2Y4HYR8C2&p5r#;y3^og) z8c$M+>h?up`^nxpyG4jJA-hKJ?Oe7Fz`ojXOZEN@F%crN(VxVX&%c*(0_jtffD)f- zT3Ve~25kO^?bb>i9I9oa1|9{D=V~4w3T(#aVq|G zX<6m>&TQ7Uax@Tp0Erce*$%&|C%sPQ%pevdVrxCWG#7V4Fag!;#hY4tWZO26tvcsk zwfTDj#5?t0MO2ZRY7(Y;Za+?U^M#RRdLDPpJIvBj`0HQV3)2Uy_)*IIRIRL>u>pR2 zjgWL?HRh7{&LkJ7z`1X(b3USFX->kltduXc#MN*%PnHY ziraSv5YVll>FgRGFSwtmSUBIfq~xS}s$V=nZJ0FwDJu(_$Gx2hK{h!rAd);C5E2uc z8G7}4VoXe=VcYoEIwX{?9k^JIps_W4EC`aEtY@oBM>hm*XU*L&-TIoWb|aMsZ(lj5 zu6BT6Ew10;5E7c+a2?PHpyJ_So_iG&fj7d!!U^TRPlGLXkU;YD95<&)jf3Xb03PyX zZ>Flu=h77x9K3$oAxIP$c*ymF%V+zYtZw4{0;X2X)Ll%)V>0V%{G{)uO>~)j-Q z@$Wa%CX0I_>aCwJu%|8RMQ^Y{tjG?ORu!J*{M&5zKmvvQL*{uy_4FM}ozqR(pFb=K zNvHy-;K^3xmBA1%Ip}L6Rb_kCHY{LIovXvYPGdiB=`S$16c>d1xS573_7=vGa}ub0 zD#`l?iFL>L;h^4brWPO!jD|}Z}8~< z7CQ?4e*lka2D*7omh=*%{}D2aiA`QDL@)jia)RbQ(Tf6{zMK~`Xu{)}YR^Rr@v`{YV7FQbBsaL2AG9{9N%1nzzV^{m zh)lOX&~H0yB#^knH*K)C;FMZeILC`B%U)nJQ)w#J2)Faxzsy)rGdmkW?Hyn3IEMgj z<~l-j?kVa(pfhmwe*}V2BC?I}jj&e&^Oq;FWs-28;R$2+h0K$UoPDU)yy2wCPfj;; z(5gwwLDY(K+XEu8313&|Hfl^Mrr9H6N8vnkcGj%wZ))w&8pBO85+~o=vPGcU>ZeGh zllQP#D_X0zxIES!WSNH}IV7s!S07uSySko>G?WxpypfkvU;<} zE_9*CC~6m=gq1n70H4)vACEHLk`sk)hU&RMWL9tOxRZ;4_aP_G2v6 z4H-t**#Lt1VKp4grpq&D7}E3_+p{hWm8Msx?4f$))R!;{F(MUl-WoLPX=Bq)-`q-e zkLTO0;2r&IRR)-nfv3u*!3`Y667A;pNlUM5Bwqh=ertyZ2IxM9^LC~s;3sMC$u2Ty ze5XtUZ53SWFRT27ZpyO8-O}uo7rJhBONl$1sR-y`P-C@l1^aNmGE*l|nz_d0-FF?7 zV{mLLn_cFY6|%QYg$cU%dU&53+>c5YG^!GhefY2G>gO27P#T{M)Xf*!8xtS+868Cy z!xY4iCLW^|?PQhpQ-)PmTqPL%2cIEweh-p`kuT+(;0ZXee?rVw}svUb+$xO%!^?4 zd%Z-d6L6FWUCGteTz$!AuAO&(l?0@g+{SeYUAx3o2R}gj8#5a$e%H+DMdO~xH}4sz z80HWGG>jOX5H4wj;huYIhw~wmh$RVcpG{$smu@@`(;OQVt>BK}dXWR$`GK;*zWs8i zsY;t9Og9CaJD&6mD~O4O?{wLSjF_&FS8qqGZWB?T_-qLnF*LQ8Ga;x1`PH}V;SQcy zzea}p@aSlPgOg9wYhs@{n2qRc8_>iUmFm>X8r?P>Xe0+)FJ;jxiS??hovyO3=bjsI zP}rw;Yj7>b_VZh`_c4DzGcsow@yz;|aKw*aqvKjX^7%wy!u6A4f=u{Au0ZuFNg{qh zCIlO?_hAZLE!017*pFJmX0>noDz$!yK~|3(k~m32 zI7);tCN%%fVKa2TQIL@M)JCLy|76V*)bZQC_IYmI>J-Bf`b>sdH&b#28kYh*%O}p+oG( z6otM<+lxVkGTiq?mCu;ZN}6F;g*zmba({hH<>w*xBaAMf2F3R6<1BTI_}9m1HZi7O zrJ%)hFVVELOVp&;!QrF4>u`uQoaL7p8Tzl+GBJc1&x=W=*Vx}bazVFIAVi` zUDOnhypU?9O(LnL3|sj81ch3#VlRQH$02d{lq^nNtiY&@H19Pg}V@PDQA z`vLLn^%ZM;m7KSCJ@P}(Ss!w}&*SSHV{Jdr-LXbFjCXPi`%;HfUU%Q;>Xi~6H6f9x z?e@~VXCH0I?Yjz75T0+CfkJx!jC(K~nsP=N{1Da>2+Io?%w;GKCs>WgU=!YhMw2me z6_m#fZsuQ)a|%YO3X0gmN4fI|u}30C?$;99=<3TpFSL(fkb0$~Lk&Y4F67Mru87U; zC-CJ<-dByy-_!B3!F1)x zqDLm7=|af%hiRgDs<)XP3#_REvUMLAmYV{$H&OXyUBBrGB(h9(=jaZhy0hu8=w-{qJ88dUKa zL|4A_{GnY~K59L`q;pDU(Dh)Gad41#&9P)ngArF*{CzB*yd^(95~F+4bL?SSA7)cEUb*;PaOcK%m$ z@3Z+fDv5LL;R&munYVVAdF_fQk%%HCI40-P?p#Tf?$qmL!^ALE_g;JndNaxq8c z{d4=58*vj)PL;o$k%4DPPDP=2nvjok2(SC)>(`XF zwCbfabN@)S>L_8S(S&B8ErJImx~puh!NLRg04w6-@9D+n}d1 z3bnshf7esmM|S17h-pKYdU^l#BmVxgG^~ijOmjv$oJ4sWUD$Sf{1}5ngtWhUr&FIa zkpVCzhry4KZL(>D`HI;4t7i>0i~AH_S&h2P2;$#oenPC`g!!OMR_6_ZC}M!(=e-Cb zWWt5Jz>vj^^>*BKd;Ivbw>j3*KjbbarIRFJF^i;Thl=s;?M%M~9_3*x};x21LsuXvQ(Q2z~u zGx8K3c12?1Oxf4$u#%Oefnr-l61bN`pNioC%BHw-Ft<= z&FSJViT&mT);0(h7CrjVHK6w-l@G&D-mM}0AapLmn1*;q>u*wsRbkt(K5{S(>JXkd z#MlVoGOM&x9WiL?1$e_M8pL07m^Vg155s7cf+TNZyuRlQ`SsT5#xmI=wa+Oo4my7@ z5%g18idqFDt@*yGGU}K5MxiEbhsXQ-`h+!XhG_ky_Y+y?`&qUm@r#c!*kXLLlW`Q5 zp|~BFj2jbajOgUHiJgNc=~gq)&HKzYDbLyZSJG+vnkF2>$&7L8CNn+t7dhm0e`KcO zXj;=7B4a$<$r%2UqL`Jj2_=^4R8nF8`&SOaT7sF{U zDF=VF0M;|KR-OleZ!X@?Rh_CiO zLY-+tF*ASHR~ZR~{~F)<{Q2|KDk)~>?_ghfTuYH>{m4x1k>x~$TpLLbjM-8^8qGLZ zN@MFp{~!5B3|)e(Smv#br@NLj0a1c;-HFa(iP=X-cZB!}_L~~pk3Omx@86kNn9I<| zqr2OocKOATDN{kWYvr3=s@iq7?b4PPZQXl1!F4Xb*txe%!4DUs?xhi@6tP=BhthGp;saF9!em|J-qMtt-HRv*8MRYX6Bs9%&Gg?XYXgzeJ7oR zR#0*%%Wo5OkwII3eQQit@58Y=!*zBPj3G1S{dG4eAD(buLg}r^`rPW7Vb3qz=kE92 zOWX6g=R8ifv1hFBJ$hbc%whFT*mO5n-7lx=<<2nmXXcMpu6~46^5={i6-5MwkE-2z zUptFjyY*#;drZ-HIQ8K`*SDizVv;f80fo+k(b0ag)DR(fy?B7@MyGDQQHm|M*t7UD;***ge{1!w5fbV`CJsA|3s(@@=X-JC2N?lfkZ9q zwE5OUi~aQu7Gn?#U+M4~If)$QdgONC#S1dWoG1RAQf@$oUid*J5H^7J9!0*rk(m9p z;qAH722&3GWTB4~=TF5MB{tv9QTN_k*T>!9;XWEF)kN(WQQtLJ{Yv~Lkb1lYqab8j zw}FXCkqvmLxv-J%4Jys~yXS;0C z@7R({h5}1rH2RYS_Lf7c`CH`D;Nj+`4{i}1BZ)D?Mo&P~ttCiXa@CAu!Jg8RZqn~t z(S0JH@~JI*r+|ZzTY?J$;f|JTUj3c9U6LfW7lHYlcwdR=-gP+iRP&txpwoo^qP60&Cigh9|IH#fG_pGJ$5siG_| z=_XY}eytw;pQCS(|HNbZZr~d_%*Oi(YiveE#Kn>7ir{ve>U7DID31*>OXw@6HeOz$ zX@w4ae}aY>m1bh1Ee@AfyDD+=GU^I~`H2hEh!f_#_KJV|Y~wz6SZf&*0_>Uiw}b7> z5|fi?Inus$5r*C_-9;ZtIX0Etl{Iwr+UeM{@6h1Hqgfi=y>=ALs)#9uKAI10xLVnW z0}JQA^m(F;@87?leY7>Vl1Fmn*GNJ0Th(MZ z>{J&@DFme9Tgm`O8oQg{fo~0D+1Xy=Z+$mvMQ08W=Sy@GZx$%+FQc0-5>_1gB4h>? z`QW5)=j>;0qulaG@t__O61}b?CP5P|tOut4ui_QC&Ri{rhoqN~09Ad_6QK0R8!z zAaByXu;?iFKWd4`gHS^2V}`qT)aS=5k1#%cO<6oWvTIsnn8NEK*}QjN2i5i^B+BwL=20of$T8yjyI^PgOAZF^mN_bbA0id@-g zV3t1H??^_RV739tjnlI!qMdvOc&Xpu)*$;+zSuW`E&$omWUPK?w0%Cl^7>%%ZGnPC>m3M)w)|kY)Uc_h1?2@VOw^90q)k)mtS@7IwO6DV5CpY~z5b7%_Bnn}AU$Q#vr zo$i6N%Ri{O;%A3$!B&Kix=%VpH|(VzA;F}3~|3P)&ORYm=7jkMX4 za^?NMa2Sm?*r=e8dI5R7wS$dUS*w9(X?$@yl_*8KiDtzXbP&~ccC7g^%#XSj>aYTF zZOQN5c`*uThI?$sjw8X&)mJ}-h2Qig`th*FYlW5MFVMM|w}u|FKL0@|Y}!*eC#ZJhWAMn)oskN;&ICpR8EzxZXqJrb^?b{I zwV^iMG!$1Va}s5C5n6rNb9#6vpm9(kvf##Q{8jT`+D`p-JYOAsfnSa@pS-$)VT!~^ z4T-hZh?6L^{ky%CD(jw2a6!x2C$F}YdDH2R9UB%c+obn4u|#W0LIFpJRAe2|?Ak>~ z71dkCx~BJzmj7lwA13e{{!>;GZe?j6(Usp%;KRx*N~nh?{kVKtRvW0y&#fn6#(>J8 z!+hEP|3_sY^HI=gqm4T{G2Q!GHWFKQzwg0%-hHCO3{i)%`9Em=QUG69@(KBWVf+Oa zg{YlK=O~S`hfusS#m~nlT&@5fk*rT{SHAOo79(FWx4$!$|EH;I$ct*jTOi*l&s2Lk zt!him=YDMAjDEHYQLoV)gWXI4aQNP8rg)@QBU67=^qpWV*ycMlO3ed|gB<6^}_ zV8E0Rqq-tqMBP$r_}&QuEe!uF&B#}QzLDeVB8o+E&`yiiCULoog0Im)U_`9A^&*jv z6ZpB)grm$-47A)@>)Zgm`zu0IPPH=BU80qv=2vt|>bp(7pAL|a_N`|I^eK|Zm5<*C znGadVYP;?e^BWZyjEqU4chP^3QHgK zGxttJPS*VLE@!4MAxJ-Cj{CJqC*hELWOaJ)RbIK@>sO4R&oEM@{j_;=V1JKVIK0|n zlvrD&CXpB{elYY(jhXSqx|TX>;zqUt^jvLm(M0`un^a*!51dAA!o6TS*V2dd!_%os zGV-GUQRlx79eI-+>nm0+Yp6M{tDaMJ9}ot*@@A**wC{EFx;pxevxt&5=I|fmA~Zj= zEm>zyE9m?MK3Z7gEaj@%*`4n7^dB_Vx?GV)G2*NGK2TEAE>2)6{%E*xNx#$=hE6oI ztQ;q3XdcGKJp1e5>Eh=Y#M`JjuM~OLUrd$k*i2nO`QffVu=Y$9sM^P;t!`-NJJ=*D zuH7QJfp;^Y;5zuq}eBIsM%gV|w zR0i&DR=8Kv^C;#5H|r13hYu>l6iTyJL-SriQ#FCZ`jfg9!zq(*l$I0VP*c{7KMuQ= z0|P!^%g%O`22#;N_#E2xiQ3QN1mP26I5CEcB-CndnIQ)WXVC~yP@rdKQW%oScrJ(+ zG*J2{lcC&}@q;ol;=0B+gdx7&uHvsS$F zlbc>piF93vNjUvVWKx`ETRXX1;GFKfe3IV^S&WOg`i!n@lsF`P&bEpeq~PHEeiwzV zDBCFO*WhKq>xAgfv;BxR@z%RTyKxn?#`USLwz5Mgv0C3M$^4OGeYF+ar);aq%jipd zijUigs~8AP3*DR?oZMMh(Eb!$FU1w86dfEaC2JqpSz64gtTMbcvVX793;Va}#I_d?%@_xELO7Tyg+mNZyV;9nE|e^$MINc0HM0SYmZ$ z6D^N67Pr5zin@0;u2R_vB2DjGEag02ouxEDu0@{f>BlZC7u8KOOy8K8Xo&!Jh`Pg#wxiH(a-6m7E078!qXLC zTF~{A&n90!!I-Bq#zi}dm$JaZ~^iva_Wkg#z%B61?`NDzO*JZJGPMu81c>V2JTbAp1 z?r0j{gQ54??DWn#Oxw87H!B5}_8KmdOFZrx?Ml60xkt|C?dkdVTJg=>&dwJuZ1cGb z{TCqj4k__=#6w+a3hB89Qp_|;cgQ~F4#UX%?Y1o*4|Le%&JvS}e(hB>a3>*D(nrzO z3$)bVoiN_au={54^D&ekSv>47UWz)xrXFkDB#`~Q=R{_u;B-#0>RvTmsO%>A|K9US zqr|EgAv*9L67olyMNZDB(NyLSFIce+CMFb_XjtOlAk?S3*uR!$_VVxkm7A=pP( zf|d_o&3*U$cV}UBAK&J-wiMMF{`R&uG6Z**9|n_<&dtH00vfPTzd8bJg_*F6-QeR3 zt^E8MI%`Nr$DdX>$ut2yL;L6)w@>0qNg^xGF8#@}NVgO3v?CV8x?QZ>X{g`

ks8 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 delta 63405 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�cq?W(IqfyY{ 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�CT<9P}l+*CvCj5;>QV?EvxEzlb>- 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

27L#RU>hEm{-c#%N^qr$wt`q6c`&=EXH3_Xa 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 diff --git a/icons/mob/species/vulpkanin/suit.dmi b/icons/mob/species/vulpkanin/suit.dmi index 452c1fca56a6903f813ee8a9df9a3f241cc703ab..c70734d3aea3282c65c20f568f72777b052c996b 100644 GIT binary patch delta 92650 zcmaI7bzB@lxA%!9KnPB-Ai+HZ55b)TPmtgi+?`;J6Wjs>cM0z9?h@SH-5F$No9DfE z-@UuL5Yfr!U`OgHIVL13ZP*Y zRW4W%711(B$#|h&sQkN71#6Lf8vm$nx=f~{mQmG0rTwnvm9K{KD;4Z=OCRc(0O1=W z{1~tg;di^YeW?x(bZFFxi5cwavrJ_JOYXaZyD4MCKLu}j$9PSc$A<&9fR$P)@eO|@ zpmPI9bJ}PqaJF$tG98bG`|@-Sr_+?P(sGIHILVG}WVWqAsJDbt`lKtDKo~NACPa=t zb?0JKznhur(2ZM%5C1{>$*jVRiDcBrK3)2Fg%}p$Mn3AZ`Z!mWY+Kv?4JMCgNNUB> z5cMcj?GS-t!DwI^#^^0&I)}StF?DHF-=N&($dqiRGJ8 zY*@{eSZa3Q{vGa{D8fv2^$dX{l`Jai_bA#uupfJvcD0wSH{k z_Q<6#L^(9Y7;d(T{6*atrDkgjT%JV}Zz!jeGcMk664_o7y!&Lc%$Fpp_Q!Uk+H*fsuB!^DZ(*usD!$YS#m(m7+F`UE|YPZ?@SBPCAv%cVu z*OM|b@bH)(TfL?egTGYt1U&dg%qI{?XDVuIqkGfHklvdU4aD$u0&l_loi084R-Wn+ z#}_{dJ81t{)}o=}lG4Vd6VmjwYPd@a<9;0ykS;g8o){Kzvbl;q(Z0TQopl(j8S1(* zL+RyiQ2}hKc(OXUy?@!@dys)IWI^;~#_O09>8Nd8%{&zPZB=d1lahDImq5L4v=o04 z=S2YmQlEuL=;fO?Z;l}5tcb5)j-WRFPz-vj)H74m(2&udwp^I{r+&S=C!D%9ylr&u z)D%X3T>7d3eu8Diy%APcWo+@F3px5Dmddrb-%JNUcxb4x^g?pM*`E*&NGPFj_U#Kg z@$S6jTzt*hXNGONM*lF6P$2Jred6-GmT{Rb?26(pF*B3bm8PRF zVEn)#W#Rwlj&Q?J%5h(&0UUL!7e55Pe*HREZHCLFR+^KOLCek_)88-6vVl#M3r%-K#pZNbq*@p!DDcf}Y}9bV zi;(_0WDlCvd?I~T$Gv1)KmgtBTWt_t4vy%@!HDq#L@Yc!$AKGDOeP`Ho$v7K+I~{6 z(trQ^!EI%QFY%W*EjUd2A-Y!(Z}H%BSp<+Nb;p&25(D5|JlWW=>~y3$ER>x3@tK6C zkICBJ7k|6T573LsQqZ|vz#cp5aAcECPOjxf`zml{G&5_YSe&%9jIA_>BNK@JO-o#416=ZQIQ_nHGUxHRQ#p?-Z)_3Cz=ZxFacE()apSz7My!tuHA) za4dqCY+K0lOkLu>>8ito^(|}!DnzP?mCykz;(k+Xw*MXiups1+-^NA-D_8}L5AS0} z={-Fe&7-Pzn)H$26t_tUy=Tk>{Z3klNxuO6k35&2G#dU4AZ{CqN3Emu0~$~G)y>*DB8S# z*}TR)YfoB^GJ_Vqjs(X6`RkY1dEF@~cYyikc1uF=)1BbYu^KdM?u9Uga%ig@G?)H@6SnU+ z#&{o>$%+dTEQA3uWPCeOw{tt$*Dfd{;Z72-CW+GTmG%&5%ogS_J-q;24OAjXOt-n*S#cak?u2$r<+FKSeiaK ztO#{h-bCK5k6v}Pli~EBd(w63hZo(w2dv;f@sx1`%S4VpW}^8X09M$@9rqdFI`A?9 zGK-`rAMe&NuyEO5n%%NDwylHpdT;z&&?8RBuXPOeH!qRyV`8Vd@*M}rh0$_AAIyFl zYg97xWsh;8iVHkV8jq=kx_>~IP^y24Re}57P4@-YIuZQL5n|G!DeL{E_Bt#zSyyq# z^8)xK?bxga_w5MD+}ym8(|lPS%7wi}TWxX(>KmjGV)K~Cgt>#7OHt}9#g!A!H+XW7 zdzZ#jdkTj?)=yu-Sml4}{xsbs5s{B}wgiRE)%%qe7t(w6k4d;!SP`tNSz1l&yPZ1r zuW3Y`>?@0S)!k%E^t)~Qn;n7KL@2BY0dTp6k@_USY%o7{w$XYYG^>WlYHl{c-O)Oascv4MV2R0$93AVKX_!q0SO++Zz!%+KEOA0BJ0b4^_2*W0wD z6VH9K#%`lAnaK|0G}@Of;A;Zf`k1 zcAH+#b06@%Ua4o!-e4Z5 zP+cLMfARMEp4Vbg`rGUL%inx5KnI#UQJH3C9k3oipyT?Vmvc`^o)^9?XPs!Q&Cf5b z0%xz@{jbyJvyBixHMpPu-B^vJ8KM8bnl;yNti2KbuRhj$-XNF3UHo?!r5{~iME!UF zc0C=p{}TRlFAu;y>TFQd$(?99#%ljo*G>1Gi{2FzS~W{AQdC8?`%!I>(jh)d3EY?4 zny&5c?H%0(;u>ooaH6sfWw0*Z5@pY_nAS9Ux)J=mlYj63ac3G*LcF$EE)-3$jK~U0 z!0ehC#p79VMJx;V6t_5a$83Aodbc5CpWwO1hC#N(s|k1{ZU#k0V#33F5`JhGmWH(| ztEBC04ZJ!y7==6Y(>GaIYFQyAY_azF!>iNcbTHsUA0nzRLg8EL(q8&o0zNA%8%y+q zwJ;kTISCFKOK1XY<}qKJ7W;R(wa?yrC{PRg8J&De=n zW59T}*{SSx>*mP0%zry;ouHhUJ*=5tCffrwx8OGI{1b8-SV?l#B;!$Cg#6ZJ_AHwm zid8fnvTRMq$*Jtll_>kTdpVXU#QSTpw5@#_-KMF8BwHtqRS+tJdGulzvN($i85v!i#sE^0fY7K6Wu7!n# zt`w}13}X!|1a;MzSjMj`dVmI%W#Fix>V}WmTaZYZ*?1(WM+{S-+a%rdWr4inr?&mc z{L9%kXq;R!_fK*E>S`hV`JsgdL@5$5w}{_McvFPpCX!6cOT)gY@WYGC zOL%EHx$E!CLJVKHXSZY0(V3vJVbkVD^YsGOWe*~4P2%7%g5x%qHkoY3X7V}3jjpV@Dfy6A z&fs*VWeMn`zBzVP;{(P-d#vQ87wQO7cC)nw=IV=H#twk}h`du&{E$5Iy+rloUPRZr z3F<4AvR2@9De?VJv_%)7U_RQbW1B|S<)!dbpW6nAIkDTNvztxJ@6qOv#KnIz6tJ|4 zOUitK6;e!Tg;YjuXq#J zCFlh-l7|8`MDd7R$Mp@b$;{XmiKT;P@guI5!V5Xu>ZFx+Z^{@c@l8yU#Cd zT3v?EYa8V0Jyt~=OimOzZLWW@C7uV!La<}$=)PJr(7hLo2fwSaSk~8#Z1wTcdh7MI zD7_mT{tBDErYZH%dT2?5!Cra{{|zbOeLl6_lcs}2YRxZCzLjm!lhc&ZRp+M{rRYMR zSKEc_<}NQ*!@_dk#zmZ+zIQ*)q`{!nzOghx_35=qgLgkq9J84UDi* zb6nEX#wMO)*i8vh`&*FA4vsa2fOe}l93>GI6`iXv4C-xrtkPgPnyc``>T~+%C1v{= zo)h%8Nt3!21`mazC68rb^!0j`v*t1AbLtb7&64a&jJUanE%abtUuE3{_}9^Zq?*#dK*jqiNo zz0;hCpl4rS-{nLpSV%5i@EBgl5n{pI38hMgy;$CMYpK z;P&{mOeMJB+XlQdqC5P{?-^1Z16SgC3_8X>x6BrDy$>HO%OdW6~) zY6ae}Z9EPE+~?Hyx5qA@p+@T30luu!h}q}2hh0(FxC|@|*_EA=s~K>#3i91x7eDPO zJ^c_0ip!NWzV?C*z;V(5cImm!E!K3+>gnu#Y2!aA4!os?6804c! z@7`sw!l$QYROf^VG~I5T&IVN&_SPjbFXNEj1A%{JY2iw`YUV99>R~mF@3u>w_&7~6 z+E%p37ZakCBEc19(Z_G3YcpxeX~3Sy*=JZapK_tph~~Bkt^n}j97RVSjSHctv5^K^ zsd!7}JlN0gb(gF7{3Al+w6IAS|FGfBLf4fLrbR5^qCX7{ptL(k<-gJ(w`|#|5CHOd z6a;JkbpLhv$C^VPn+NmP6|4>UJPC9b3biS0O!57^sOYgA+Yc|9UYi=;%t-s9{CWN3W(wAzr(d4OD1)O1;iL z3QR#>t4!-Xbaxe2t|_bi`tlU0*SsSKrNpn0kZ$Wb{fLNcHDGK7ZfghMfEzudvQqUe z0!Q-8sANqP;j*+AHmN>vmjl}#MWHnOc{(~`78Of=;2L^gP{bz(>I5GjcxBa@uWByD zL!~=ofq}#WqoW5=PoZBpAy+IEd`o9%wqDxxBERF}u*t~ef$>iUs1Ur9FFN9yH~9+b z^6KhD|7uA9oJ2v-#&6cY_>NqV(y&NKMOQYiEM-Fbjw1uHp8eXb^V_E_X|Uvk)qfPwKK5>^M?}&MfLW}3zSw%3e65QJ z02Eb^ZSfsgAh5kF24hyYK7p5u9lB}mUo9?g?qIfo4>1{HV&UIkRi0rgQJvJ(IDyvs z>XH`{5`txJaad4*l5ryY22Rz2_gckBKC4IN!MRDUW>rxx{jlTYqnf5>PzQD*moBCW z!o9EV2WR)bV_jvqXCViw2YH#&I6z+E)HG)=S}BT3hMSSygr1A*%>|#@y39N)6Vs&S z!HWcczT-NzG*D+$m`&1x$(-t1SK|SMTcQKFoMokK$@8m81q+DqN%7?*sPW#@CQOn1 zu{#zldCKJ7|4vIYwE4Uy1wkpY>4gL)Un+pl(B&U(Ef-*7Oiq&`7jXQI3tOfL%t5Dv z+6)@a9Gi<)Hyu1~bzgtcKcYO3y!IVScDr1cQ(*XP^Zrd-z5=}0-NSX@WI@?9I_Ug* zifp`wg9Z+NAC@@uU>c6vj&&MjRW{8KwSC<79DyR&_%w6h=#O|soWjG!L(N|eyCtV2 zAtpVsfR{|b1n9kh;(3>`-=cwW z11CxOqE&(i*51{-)Zq%#!}|P;^!eY>(GxqCZ#~5gB%#7Ri|BGiaB%P7K8uSef5M2Q z1#(9E$qR~y`^PC?Pu4Qux+0`>SF;RpHGv|BmE?HS`2m#Yy#-&nDtQcp-DEGAVo0Y2U?g@adiz@*t1Lh z+A}tNlYfc_Vkfwp@Vm{PTz85DE7Xhf(=zJ8@$B?ph5COJBt`PMcEipy0v0T|k zNcopePWim)Rf9ASEYVFKRTp=GT^j{PBy1wMgjx>XW01e`4-_vt&ZX*H0p<3yRhy)i^TH4&-2T73?T`ay`-DiRhS&Eu>9$wac55d*zauV$*29~6I9H9V zH-Y|AYCD4-{M_tE%%6gvAE&kip;9HutdEcPwt^-^2^(#EwhYjxM`$-FcmtRQ#_drG z!E(mJg1OwD)~k!gaYcZtOE{=!wGMr^Y$YTfm zr_HBzu0Q{=@+@VFx{a=%vy~ij$dhvhT?9*o^RY%PU5V1@N5I$CekXDm&CUhK-2FqM ztn6Z?)}BMfD1VzS8@xqb@f(hqnfjiHnY>wU@>qV&64kE`Ntf1Fk9F6)2}gC8P=j4= ztp|(eKJ__?Q)k?wABXl#T&TNc-lDatzDO&s!wWva+4#BhVyRxS!=&?L5(e}3DpC|wezX9PODTa4;Yl*i-T_YEm;%cry48+DdQPe_FYk%HY4j_ z0NwG}^35+eMZ6ajNMJQVv`7L@z)UwXbUwN17@J}U=TDgng300xPR>NPyv&uWIhSZDAPzOU|{otHFU2tvon(jiA-TcXWuaWdN zPl)B2Z)Nd*{Of%P=rQQ9Wals&es_Eaq)|b>7vm2bbGYxcZP-DB&gMovt>d#%SXMXddBI{+}Rva2U#bd`W$iJ_~*84~2JX)|` zS~p<8?z1&8Is>)S-lEoOl%OCzp}#bKybJnnb5&Rv=qyx8m{VaM%z$`Dy*`%`PQ{*B#jhO+~&Fe2a$MRz;cR4xob-IxG zphL}{JsB=Z`v`Qs2EbE+PFUd+S`YFn61Ksf!hSHPjvIYQzX%ompwJ*9z_L|HfvT*c z%ZC(kpWk9+m81&Vidb!$zqV+52THmMQfUm^nb2d1r&lu1~Yt& zFG5+~1Ms`n?&8B*1;)`BBp;(THVpi+zE|E>0bubkBT9WK1u=(J)5SVqd`3s>98nBj zWMdljk0D(aeTXWuH)w@}TK$TfJAgL(XW?F%R6`xr??=p2&2E;ikVGdwW-q~*>aV&l zCI0lY);12q{P>JR)9L82X6`Du7t!9ed;l56`uKVyN&Y_Ls5+4uAoc2(Sy~*QJc;i9` z`{!l8z>`uzx<&_1gb!{=JujpnXG84wgmmx5g!m3-wQHFm$S4tnJr&h3I9uw6-@UMG z4y(t@cGHqkIM%j`iOo@kjr+Qt5Zxs}K-WDz=?2|JR(e-~oRACJ*ImfV(1q(I?i5VS zaCHHgxkB1FDbpH1zb51V?w+2IkdGP(mf)+yF10Yx12DB?sljriDMCSJX68_5(Kj)@ zdzSabnn^+YSADVgE1|wgLF_KiMfsof3PMkuVD_cQye2CHi-csj6Iu0a1_&LSbj7FC zdMz~i@FOuwDSd5C53EhWE1x^OE16b|DZX9r3Tko^8-A9@3aR&sVWfPj?qxzkHj7l0 z*eIbgIgO1;K8VO)wY5iv17!Zx=_l?Let62EuSf(AbBv)*eE@d_8%V2 zHGfAru+r;me!(E7??M228j8-Ehi5h-_AdHk3gWilb&2RedH$@Pkt#!8fxfKfi6?q7k9}Kmydr&NO7ka z>gw#$#xRX7W|svFV{Tv^>GhF7izjN^J6yzUAJ)NwI?^9wZ2)E?-bupaEe87r!H=v= zNz$*eqY5kT)1?6$5r>nIe8aDUI{+Y8pLsoAKzH7KSr+|h$Tb9uK;3`N)SiCyntgV$ zaJ}6(*_pjxY`f`+&5IxTd3}Ne&n{NUnjc+W)3ia9qbCRD==2F$x|FBNa-Q9I3v+5_DcWMQKa)Vw!DPqERlJ@9*=WAf z2=4#DRk#=VZ%6F3KkpCH|ANUCgCeK=4SLKX8t??Gj7JP6^W;tnH4@h7{k(U!5vD2& zugm`arTF;qd(k&=GXWCoS`SnDe|56od^mKTtL93uV>6w=X|cT{;^$I0kzwhdcUZ`)`Sd;a^a0+?;_tWZYP>4gTKlSfnX3)foRh=mvo|Yy# zp_>y;UG#@5UjGlU!s#=Toa?4Fo5!8)kux8lqLP326#o(0>_LfHHm@KpjhM?NN5bbE zmg}-o>bXP5LEA8bDi2TTI3J!! zx$t36gKTwOm?_2Z5{@<*{f1wsr5?*-!8@2d9vlbZ=K;=|sS$s5e1Jz?4Jj>9< z=m;zQ14f?yzyc=cti;TS3j0@wDK5K-`G8E*V&N14ZkLaNdA?lTYlcTiT z#C3Ox1izgHc3Vr$+<9T^X}|ql=LDl0JTm(|?mVL-f9WxBUH=|UBYwN*?6n3opJoe7+m-cVaxl{{f*w4_||H_YtKU&zHrN`Fd z!t^*={KA;ic$2`f1e3q05o*_-CU>`J>=sUN*ZXaAs;ejCKCLUu;Ww6TAFn-g=Tyg{ zEuAzPfnxA}2{3N!-R-u?{sD9M>FJP=S2rFt3Gfjpa++D)Dg{ayb5)u(xVSti_4U!+ zb>}W@52-l9AWt!+Dm+6)LlXd&2P#0=0{kl|`MWNwj*&}4^G-Q)0|PA96j&})2Tx5Y z-;jP3{h624ru+BhW#1s#7f?^v@{RoES|FV z^5PB`DY&>)LZQt!3l`RYbxqz`4c&0}kL!uk68zMm&M*5A(WB4K)0q%Y6l z@m#d8u2IL!-Ejpu4l4U}ub(y+d$F_4&fT8wwoZ8ecJfL_e3dah6R({>SwZXK>>Qbc=+c%6CZ}VZ zWX8^$wh*|<%{w*pO)fKOXIKRKz6sUXU;aWh zFx2x-dUGw&{AW(_x5=G8iey?~&O*q)U266W!Qwgq&GJ-hODD_!fqXbmizk0<^$4}E z-1^hiniX7fNUJ-PGcbz-nh``k7GMOpBB0Qf0X}~=<6542W*-Vll|3IXk}~wayJu$p$;mj6#4A%`>DxRP|Ncf6Tn5b`a5RcZcBj&-8)@;hpbXk{a6DC4hua zW5|Co7!SYWh6z-Q;_za8UPnw(BRoi#MfjBPnsO_WXv~ZIwi5zw+ErAgcL%>0hWj-xuU5k;B_r`@?jj5|^%0+m!+%(-5?h0H?h! zS+Q^lzIfVnsOE6mL|vCp)5O7QYJKCnm4wa1LGb7<7ZeD1*Ab1isAxEy1*a{d`Dntt zTtNEpD`3Nqw80f}%l{r3#$s2w^}WdOMneT}UM4~WtlkgW^{o^icY58EWcmoqKTYcx zY#I`R8S-{Ly|I&)EtEf3euwX@KPIZLRzo22s2R05o~aSqMYK46pAaoU@UojLwMZdI z$$%*c5hyH(m2U+#L{btl++fuW{Hs^yQ`zAZORDsY@Bj4%<+xd&IxK{=TkBZWbJQzu z)QnF{ylOf~GSBB{Q9G{L(nWXaJ3CZ5j5A@!e^uM~Q|$fPlctW{mm9I}4~!rC82&}; zkoslOUwy=q{paubE0Xo;MN~R@(c7=)r~9XT9c@7A(O=#X>?ZZPx=VPTb#S1=VQeR! z(228IhEs--$D&jZC8!dfgmx*+c7~zP#+42+Tgs9C2w=9#zw`;^e*y^JQO%8~j3G$X zF#J0SOo@1s4NSV-+=g9rPCnMfX*yJH5q8==@A}VJ2xO&nE?$Wgn~lU!Pr;tup&ziD zngwCK7jsn)76u!Eb?)i%Qr_=hJiX5T{U1Q1Qnoryc!$xMyCYUW@~8%HIU(dljasE~GX~Xq9F!TR3B85|7UZ98(#Pi+OYJFC~Zc6NNqc z^gm3;!sHjIjOF!$(=*cnfKUhC|AIOeLZBWA8IcH|!I>G5wvlP$?S&qHvaKsvUflzm z2%S+AnII9@kas|;pL6TouKD(!juYwx&Op@w-#$0*9l`b?*mlqMnywI<4C_~Zc!u`C z($6?w{2A?Yrat~R_hAX6SUN^1pjm3cS9IsDz77KX3+Hof6K@CDqx*X6!noCu;BCRnX{WQ)io_hr|pA=Ot{}$qT3C&ZYg~!6q;P80#>cTuWWc z#%KV{ut;=URdA&!4P2Y-%ZAV>yb?0V<1J2!8E{%Lvvv*s19Kc9v2tHuc92#DWYya& zdfPCOfhu&5v^x$Cq;^1|$KCu00Bn|WF;QLiEMwZ(|C`A;6OFWfio#?OsfF7$(TCf={tK)j@&=s?qwEo;tVD|Ws z?QrwKza=YBQ4A~D`f1TfTOqG$kaF?Xz-lqt0?bpcfDnsI33I9rvMF%Y_(DEZI*)bP zR{ibTqH5ZS@X#l*+v$hJnU&Sr3rA!!SNpQ9UK^eJ17b6Eu&nYnhDfrXqScl#p>T-bg(}3ea|pO?*M0;MjOW_g)a)!g z*4wwp!utA`f?^3>s8SLV2vMo2FTC3TZ>hoas;9Bg=4Sq{7^E9J9bKuGVc<2ELwvo> z=bJ?Qt{-gVwbqp$T*Amg!6XX+6J}(x_*+o0mcAb(0GN}PYC+SV9t1$L$SR#e^9RzH z!b6L(VNV-CCo7SAaB(4r;DP5=bLUhSx85*I5Sm9TqHjhKl659mpd^sFxMGwu?VCj} zuJa~1i=KZ+^1+S&Zfk0%>4~kKR33agOxzrJ|Zk5-6l9tE#}p9A+0z zS7`e~0GW)XeL_oWBu$9Y;Z6uRVi*93ZKTIDQ+)W~4Q5hNAOwVj?cn?MwM?cK1v?o{{)bz@y?Z(w{n1gF zN|4^ekduv``88g^=ZbT<*X)Uq-XD@E9jQ-a4o;iuX`qR$cQ<^dzjYgCcS5H3itd~` zRm7#l&)W|eHcXPq-|!SS6)o0|wCXQw|K~ksaT;Y7Rn~K}NAoKces0Dkt7DAOQMyl* z%6!nfX2s)XXbS*sR1}MvEbn%i@Y0OJpxb65A4YTo=WCSn$pn=GinkFTjAYNc=_2i4 zZ|>j*M)fol3@5U|!@qsEB-lyyD*k%{7>kuwAv38&&JWcYH%rDh?(8E+BzI@zJ_PIPDlAfF>Y}MM%zLnt}0P)Ycg| z)nPOr!_rmi`BO>!N+z_w3iaYhj-LKK-zI1yY>8Zn*W5R2{x!ks#vBO!Osu->X`nvJSZ{MZn{!(we5e508?8Z0?i8|TdmWb z{uE;M>)Suc2t;_A`4wad+5J7Fx`D%k-j~oaQI^T3xK?rWFz3+J_)(LEU&PFG)A@%& zd2{OgEWc1u#lG{iNV_xErSK0`V{=*Ci6$(1xkq8--^jM?xWeUy7l;VPm8D+Tmhf2} zoc?@wj5H}ZrB%&*(!OmC1J{-SSO%t98Ucb{jB~O0xAUhG{)!~`Ne2`*0D~aAo23SM zf~@S1?k6O661;rAZ2?hlP1&D4Sf_B>) z2wq4B;gh}yQvZ*oO+fF+hE)9emrYpiG+*4_FZw`2_p{cXPRrQO;Yg?=>D5&H+@Dee z&4S?nSbQ9_j7_{993mn)5c?rc&04auAA{v?b}dhHQ7CQi4=?6{ASNfcfO!*fyt@yf z19m(XPzt()#6|=@gh{`LlE#Yvx&qSEr?@5*CeO_Eb z!k}*PgH+$d(8S-J{~P6y5#@eHIf`bQ)W%l+WN(6%VX&q1Jhsfk{JgsVV2&E{!GZiY zKwVu%PY*6Gu4ZaF)%g=Su{kv#-w;?gwaY!nJo{Hj`Xz8eeEAtTIqqpv5rEX6Ge1O< z(~W%{ZF`AHyZUw1XOr%3w&CSU$-w|^Q2+<3A*9#To>%1Vc{yiG;+o*}R<73ZAbYwy zXv>nktKY1;ymDKKY|p93CIR*`Lt+<{P)WFwmy@s_%X+Ku@CYs@qa!G`9UNsB6$3LvPDZ_VFu~|Kc*Uy_G>F=!dctw_ z8z*?M6yb~0^ew13NRW7w;UQkzb=XVhNaHHvq7To#3YP?{gf|5fGjjy!KIha~Egijw zoMBnTgUn&ZLP(=K}-YgzYq>( zkCde)(N_RkX#WUH&VMl+@xC)zJ#RpS105D+%W^@bq^Y@kB?#hEP>S`rWA3{7gnAqZ zaC3V5ONpBap2+M+fPd6{8+q2>U=dmlTv9PM+`!lR!cl`V#xSp`2>A?!1${{kmiKg& zLJ#)>200^NgzvGTPPJ)~V_b?}U!KyQ9DpR&a3330YXk~}$argDvf0s(Ll!vj zzO#6LLbV20Ip}X!s=m9@W|K%L4IMCEZBR{N<;dMmyWC7*XUdaSYDJ0zJJ!V`Bb2MLTk8Zeh(>q=d6MMayW{ znKf2l3aIT?kh+@{3&C=kvk8T@7t}&rf}U>PWh)7VFbYd1zdCYae)W+2Py3M-JbcwF zv#4TDZP5)vQUuA15MbF_47#6c0kUevs%VCNy|`H833i*MwCgr5jV%PftAHHzqUjB4 zlpMt!N*Ia; zD|0caskssvrUkutZ-%1eG#8t_`twTuWEp_1LWPY?On?TXFL$7VtODAkKnH4fikXk= zq(bfaFEYwTDM;s)rRoj2ki6-tFh<%(pO(g#J$*s^GQ2+fX5yG(#siVoS>-w9LzH{Z z!aOU6GA5kX>ApqG%>VXV(A~+LSDFrRVX|WqP9Ks*iu{X=aKy4IapNCln!9I(X8lK7 z8$kr%Zo0sB=g$bB6|1EyetNXM!1Ryeu#E32oS4+p(|tFe>hPHSo)%N=SM>2`3yt{% z>~}3s;2ECSFC``ywIkivHzCAFZ@8LUTL8(2RjjNV(4c$=Wq;+!?K@%y_4`)j;yet zla+#MmH5$>vMyd>DAe4Qk8|qRf2zyB^73f2vM5nOe!?g>=}ucmCk!w>aH?2zB652R znl3mbBr2l$)gP>0 z=iq4_SvrEye@rpBGe*TZC0(PUZ9&I+>CL^QqNF6Er{|4-{0z+L?7+hnmPq&q5(kHe zI}BmXxdgx}A(sG3lNA$qE2l(2@zUJ##-27ss86QIh0$;LU|gnpq8n6=<>{qHpfvG+ ziA>?I_lq}$KJiTN&o3yNw4Zt-bq*0z7gn28>~cnp8%n;Y>&MUP@a}BP}z#0VBB0G zDrbJ||Iv#zE~Ux*4;M>R4`r|GU0;%vx5i5f*Rtjmm>lc#B{wksF_s%=7Pmfz;uTkD zvva8tj^)s$)7bI1gS5rnuZwlfQk#&=rMQB((B)~5W9?uk`J4RP$574mM;hoKgV{Vj za%n!mN7wcbZF3_B>P?D*&7*Hu%HW0>@)8kLzz9}y@lZ|vz2yD!1$gG4f82E&3B!>4 z_URjtRD6^Tri~=v>#e(Na~I#o-%2TWGa{g=tIUmH^sD2mJ43!*UKU!%S zGrKdnJ=vLV&d#EoZqC_GUheGxSB=)D<%`W1U~{+m}}NVF=N zC#~F!y*KgANe>SG=)2g&g0z;OtI;SY=2ZQrgAb}`6NuS=4_6h2;1}4c$o*&mp0fe9 z4%zRzVvxVzz?eJuWIp*e6fH&Yl+oJNs8!L!qoBBmO18aBN>>7m9#07f*cUAWSD+r2 zHHwRC5RCG*98z~D^t$Vt-Gkn$g9{{M4!>{#SMHXu!NyN`fJ-)q^ zsJl$Bglcxdx_M5qy}p1%VobeMeJCtc()&3tDK<+Td^d;v8u&$6O3Fj{8tLVyvAc0T zT7^u3w;3=TflD zPM!xIKLRg7XB9s$n_k_OQvO>>QL7z{@#c3vydn|JDFVarcjkJWCX$is*;UtDaYfh} zB0C>?i&@v(V-QML6g%HJ5Ux`^4OIQUoS1hzkc^~Yq)hTPm^I#7z8mzg>ted>F_-x8 z&sg8ThD4FTjl}!_9_8lY=3f@u%>i+wl=smz7q9?(@N|dw&CDa)noox7K(XMZvcgwo z@_nn5$ZG9j)T)VwXHB+edo%L6JYPPQa*2OD)p$XooJ~Waz(uh5oPj zxn+E}`}>XjDR&Q)S5p*(Lb=c^1CFVT_c(LY%~-+t7c{1mdLu>3|LRz(oJhx2~n9hueH;SR?JQ_peM) z+*2&z9Vwp-TRI&R5_Rk`J|h+2BkKUo6-btj1r>b#3G!@( z%dHNUUXj(-j{&y(yIU)cPAm{JG5{%~qx=0KGAnQ35OzvH$;w(LCne;zj9`}sn7An1H1e3iPc;`uYXGut90~sqyhO?)B~M zwt$v|T~rCBJNx~`!RHKz--!OzXFgf&PC{W)+QZ~%$>Rbf(0E_|FTVZ)s){dc8;2P{@YN&)o`|C7}csgj$K7d*qRXTJe;|3@ukxJB8knC+{E(~{+z%)xhY2EM?#-c zeVtF3DInp==8U7qGUQ~nGyBCt&eC8-GLY>5mW#i`#W4h}jul>`XW_eQ`vA@1yQ>eE7 zlz#0cbWi6|f@$Z4m^+BXSRd?+tY$O#^R#UpC17WTCK*F;d5yifvdC;|Nz`1f@Fi@{ zoQsQZy$rzcc%Gg5bUgu{TjSFgKoflc$w|={T)*sglqs0~TkD}*%@{{ntai4R8!*L> zk%S#&@4mZ+U7*&AwQ?nc{eR$4vOTwp5{JZR{J1s4%Rh*SevMrH2pv>@Lm}Ejb8Frt zJ*XVZ!8d=m`e|WA(O5<>h`c=ge2yDga#h^z#~J|eScBhOdTKu+zFdR4_MwJIb-0ct zdRT2*wt`km{ZBKxP?2f@03rE#$Bl>897`?8PKH$y^w}{5f4}ueCi1%;$Yy#sF@W@l zg;Y?sa~}pGZV9BLW8K1s2Xjx?{zY{`e}0DfxL%l{f<+pWvvjxDB5BK5bs<>|#~ZaJ z$Dqc?r}j3KAi={ptg1|hw+FgDd?JU=Hj^(mTDFkF?qzfu1p$XN|R-kuQISb=8(h0#H4I(_vYJJ5W|Y#X5T4f z(80CWqR{px7mtXXV)C|+(jwa8vGi#5IHvUDun0_|(m003lqWT}*7(~xr+rm9{TnAK zKvQJ!f{r!?_->tuRLkv0LP%sT3iF++x_GUO%l=EN_is*y)l~Nqen?Uwet}e4+1F11 z?z9!G4x*)nnCmgZs1YrDIl0e-zj{n;ckjZaldli;?;i&&vWL<5T}MIYt#_AM+)(Uz z^Z^Q~!}z97@gw!JJVSX=83x9Wi6J#)MuoQAzc7=VKQW(eG@yWqhybU_{04`8X;mH7 z)E1!=gyEY3I$&ZDE<4vI@}&WkA#m2BCIus2D1eY zOFm{DiO>^*Y_KN+BU_EGe#Dq^JGae5iO$_Cr_3oX24y|&jZNkeL|Zkrp_)i=D>Ja6 zovzOWTENhV3l$PJ7IvU{3TWjuE&I-qdSFI$RPKwayq)I6}d zUukW&+t@e5{qCq1)bwCvaHu~+=D&zeL@MQe%Tr(2RMrsuRV{!#-R%QHdr@hkhI;{> z_+mF4h%wipD3uBULf|+!Zkv z=tGXfaMcqGf zhJI{iiK9i|&D>E#VOHI&y2^v)e4@CoL1PTpNUMYS)f`a23Mu-DDLCt6C!0gg*PM?9 zUE~f0weRv%*A4U=Y?^BGYYqJ;cx|iM_-c!W3=>YmORyl9G%{4F5vhq|Us2DtG?$HLiOgeikgRcV+)#w`-ld9qcnKlpz?lZW zZOZlC)w$9a6;?(*xR}>4YfQ|i9e*@rL+8n*PqVpO*=%xYzqQn8oexhzZDcBn}KsE zodj&`bUUC{I>XcH`Uh-MT*Md+P4MWLV2aduhNqxd3ndV-X?|Gdm>>KN3t>1O2y6LG zNJZL}SUctV2-{58$18iX_Zw3*y?E&X(XqZ1YR1ps%JL1K({ilSn$XGiqc5vi|r203d0{c=!6PkdW4qvq0Y74gY>%-E#nd{c4 zEsN)m-9AcLbcG#5;w}N1SLH%1Gr!-;jE`S5O++3pw3cCB3;X(wj;yCvjMK2pemKq+ zy>fajQj+b6R1`{syVZ4Lx9u}=#bXEf+}Ay4Md`)yaj6UvQEWN4dS&Y2S@gXX23M>S z5&f0<>gRrqc}*ZOtpO)s;A0x$ElY{Hf8ndlbX#C600e6yr&kxwJ|8`=Y z$!Q{VFP~iwmr7%|ARg7Gmy~$Zl4j@JO^x~)R@j(@pZw`fKoRWJb#0U&af`>7!sy#1zUedMpQw}D z??lDTUrh*3G<^$L=$$!AisoValqk+*kW0jS`kj8cFjtOCfiU^hLU@^9B2Lp?A!aR{ z1guKOK>f{5{5Skq-Lzb!y>V$deFXN{lA&c(+4~j>Agwj+n*WPw()Wh9kWxh@a)zAA z!U>kLKpIM*z_IqRnmgjBQwDmk7ooV=sYm3!@=D0u!iH^r^>q=V1XcK`dR~$kEYDN$ zHgQ-&7>1e=zR*+lGiM*mmq~qjy>I>Dc+|rxHs^jQ|3a+XgJS<2>7RCwGkc?VDM`?S zhD}T$8Dv2+@<1ZwopUxNi_^EFSlBGz6v|p!$+MhXn3}fEc)1!AZ0#_mT9A?xp~ql+qMtGWO@15-;{=Vfm^L1{gvwYYRhgd7Yv8ovhN?E=Wm?ta%Of`>Rbk(@%+_H2Zd& zLw@OMrQdnND3!y)-<)?@R9N`^Mc>}2gAq=qO3{amefZ${JJgluTqT*f#f*=*)2+9P z%-TC!eRH^Wc+KEiXZY{p4>9SbI2;CJ^EIWoGwEz^cxD4#jV@>ceJ02mI;l zSG2r`Ig?5`+x*S8h}ES8cHIRrrIjWr@?-1byR& zLOR+#zi8Sv+`hjOo#&V+`>| zSV~^qY|Tsb@zIFZ;_mOXae*TZD>r-s{tvxVqc^%7BS-@gI4v zT?T_knC5ZR-B;~EfF?*vTs95q@2#=5Ed*E(5mh@p4o%e!+=5{}EYLMYB}_YST)H`v z>6oQ?jl*kYPv0^<(l}plu(KVWjntpton6)>#r!{;F1HGMpv{~A*_@u4kEx9BpGzT3U8+D-Zca{XlGH0cvFww}GYW9Jk!p<)k`}+t zH4VjjZuryh-v(zA{`*F#ehHC}K~<|&?eb=6*Q-?)zErhk%^vvghRK;FAw)({qJZ}z z>VX=5AmYE<4`ugx1;hmw`rXGv5xz)fX8E2mf%QDXq!5KCe*Gvs=2blOWC@>-1a3d~ zqsDe7^5aLekDopjmzS?k7Hg&ScyNTtQT#gZU0?Wi=Hr-FB$BJr!l8Rh!7YWpm`QUo zxg?qK;;(OPvGF!hF?dQNA>I^JP4Z0tTQk&Nj&Fp7Ya@py{_QTYS3{jwOp6SjeIvwQm0;vhffCMP6p@Hahdj%CC~~ zu6oo7NT_$Juy*qEkX1o1DxO7kz#SV{`;TpNe)355us7&VPZ*ml&rYR-P1i;=ll?234 zBqWudbsv|qH@VT^@2hp~-)h`%+5#R4sZoN`BAca!K`(UD+_|-J0=MCVTCj?l7P1EY{6Pv;TXzo3v2SxMD8a$OSw83c zlhc#dBy~Ru0zp*|A_4-`fQ8o|`X*ku)uy*)q0}ChmY3%b>g4DfeOb2cINbfE@3#<# zFdqDXVM0`4=qrod@5_BrH*-LEXZ2(u6nJDhU(~@M7!w7R?Im*F0(i#8eVXT!gU~-e z`D|PJm`p1wF@C*gV2q?^e&?-RN9RZnc?U8+pHv3p!9}+#(J@jTY24(#vZ>z_UWN>A z)<8%fT7;a6LU-@Jq2)VT?e(iD0d0uKTTuT5vJ0Y3c&~6pTE;#g@?ZZttI;7p$8pj!4yGARF@Zmki>0G?B{xG{OD0e za{BsgM-TS{1OaG(ley!~Jw4|a@ejjRubWxJn*o(Lgj_bT#eB{%vVeZzu^KMAKFyi4 z&HdcDlJ(<9LaX2Pc%d51`+Q%;&5aK?Nap;)zcn3jYB^mt`SnFuN~*Xhk1ZG*7`Q{* zM&G=zQgb@l(tsibEtuF7=+yk!sl>eF(*6=*1Y)|Vyd?%_qJCRjQ#aCn5i+HytxXK> zHRAFk!THU2k7oOWM*-y3T(|MJ_ZV4IEKKHC1@ht4hYOcOM?tb$R|0X_W1;o=t1q;! zkd~L7jsA%0qhZVDxYU+ol_f9u>qEFcJOg4k=n~k4W{9Y$_Kpm|Sf2cP6VHDt10)j+ zPhCHg;HF;c6>Z$##6@}rhM0J(XFNParBnSX0t;(LB0M~?Wuh!0At8<35}63^pZ8}! zKVx7p;~#i=y}nt%xt{-)q})i!b{B5FZcxx1H#jh&g4$-sADfg^6o!f&9-fu8%(UQ5 zj{<>}5pSK3?7(P!7xd!)`9l$<@l^h<^}|;J@*X@!3AlJGhK}LA2Zv+wF)yTzc&B3? ze#UogazMHFrDuzfdit+RT`!7P4Hp3nrsm}(lPI^RnvpRV}7zr z==T?Ey(f8U``dfSQL$f0EnQgUvQHD`Y3|dl`C=j&$Ch~N@82oq)nZb;U{0HH->)9>I2Pv(NQWB<+(_UP&)#@eQDs6|yRK2&M6Ohwv3uYc4a-PBFv~ys={TQt0;P1VVX{&ISy~oU9F7zM z!C9ECwM|TkZ;ZQQWMF7aq7l<;wGr!?7-#Aq{)+rT{C-|j{s|IyXK6sUypTyGX!YGY zU~OJcTpU0b&t|XBwbIN{K_VtI8jXuF35tG$EDh9_Vo%G%7r$OQP50s$!DbLwfh<*Up%(PJFXkycAh7_o_wFPk@?UR zOkG4`sp%VKX4Y=K#|nYC*LdaBpUut9@BH|^_pd)@(q|S6V6F4rOxmmmRO^QTsXvzM zteKLdF<44E>!2Hi87t{z)V|`T-ZxUcVtj^U))To`Q-J6%TH0@V88V;%SoGh*4H16+r_P+;n=Vom+8d+4@l)&=!@J(us(q z^4tHWQ6R((`cziNN{K61Z9Mbkk1qoFuv5XcwllbRQ7&?F?^F~NI;q0_AYb2NCXtZ7 zi9CLF1OG=+hQg|XnN2x=>BYrc*`DW;ycmMfqCDMPU`C-=K-kGPdk3LlW%@K#z))n6 zN~K7m)t6u6t;*pmpnQ0E^--B9mqVPxcPVPqw?JM_}$I4Os#*YsGjL zdz;LJ`P1=IVi;n7eVqIC%!MaP0#3>^6;hFp?JK`+r}aP%kCvuN4OZ)C6G}psMJ?tXotmm7Esd6(oc!X&3w0wSWg{a>{?rK2Qd5@j zBw&2h!qSou6gkq-Apu^^#l;10X~z>q5Fb1%tqmqLBn!f$G8+(BQa8{E>|CMY=FS;umQ1tZ7-n{L&V$C^|Z2QEBZVr+dcPxwnoY3iI$wi@<97JlYKKt>iqui)wJ{S;D& z5k9F0D;Pl~FVG>u{(I+7kCQpv8fcT1t4sz42kE)F2?L6Xn7FyQgF`~b=<*cj$DKRo z=7M%?L==Ox0=`mMg~|lsqAkxA)4BWHYfTs4(ZpPz2fIPIRP_8mp6u=?l_#wKUi0}} zR~N+|^#=QPWamKH&W?jUAF;m$*X~9(P7UNo_TrI9eD8e(>%bxVBpXdA~fHvO-tnCRY8}TUt zf&QqbTlscy>x!UH&C$VmUhH80o?~ZWDN;t`hb;M7dwt`kqJqUMz8--! zb^TX3Xa!=|g0ey+)UQutm<0X9w?}Tv^_>kS?-x~6;0ATJ1ILX(`VDt-G<^tA4a?ix z3aR{8k!Z2>55j&zAL$ip9G9p$I5-GGpkT>0#~InMsB_g*a}a{b9^ z9at(IMtgf0uUR+q^1(T2MErNAO3BhucG4?>3gmaI=|=0kLWE*jcYjeLLYIa8_IV7u zsZ>gPg>lnXs}g(Vbd(HnC)a)mnN4mbZ&x3O>X;ZscA5!9<_@Ex8Uklc?s@<8n1)|h zXh=6y3|l&Nu_=7UtWlNd8XQz!^mfd*5nUK4jz`S)ae1e30zy6&omqyBNj~=u0Hm0|Ni}JqwkB7^uJtx zLa&fhQK7oXfEtr^=lUi@MDc*UfbO2kLpdsMUjK)~ICkb27neJrzW6BI`Sx+d$t1kk zr7jSW_^5yA^@uo3FC(5m&ec21e2@cJzJ5;(12Cbn5p zWVtWy_4W7X0Ko`DfzA&)&4wAq!uw{PxjF24*70;_fwAxga9!nX@9scO|1j!gehuBt~e-om3~jShX;r5 zs3wLtj34b)cR~9LBCk5l*_d^ssCc|7!DQCwx2||Gh|T4-C54%Gb@H*Yr%=t|J<9n0 z4~PT|lWU)6tvDiz^>WkhsZY;Xdr#)4rdD%AsnV~OYdJzf|IR9@O2sbaC$WJWF-|)s zn-NQP=qJZ(QTfq{U_loH5rJ`&mK~esxiQgLeA=oU1QvqPAip5D&uE!g9`|kl3o!_6Q#ubp<5^mhABG4{k98aP^B*yG|D z1XHH-L_EP^CvwFjKT~2sxE`oxgn9kuqUf!Ip@^)n*mHd|7}FeTcHw_RIKR8oN^|v1UTd^Vqgl7NmD%;!R2|m$a0FzYh zWw(6PGN&Q#ZTxq|OrLf&Gkf9VpJ)35--*ADj`q9HNYo2CjPE|@QJh$fZ=0XHz1z4n zoHStCU|3sU3bFM`+Y7iHSozdQ4!bw+;`mY%r_2JPx74vgYOx4_le5 zE?LcyFXo>M3mKQ@j|-I29j{K9HMFBEZG8cFap@m!J6~T1!v~cUH#U1*?QSS>pLSB1 zn6n6Ss*9;|q;Ly(k4RUj$DBU`)oX!aegCKHfoi(&y$lD?w0G5SFRkw{r5_`+yG~khy=m54huWcg+P#BI`=0Im@`_jxdQ%=J9YDG8XdQVLYpp*Hz;nAPnOdzb=Y;|F5jWJ zRggvxeXI(M(@Ei-Wb7YBj^`92Dk1hu4)mZ1%jrQY1$olmX&6L9Yf4jXDL&9Oy8j_p8}TE+576GqwszBM4u+RmC-b%)Pk0nqWD!1bP7V8=Fn#g}6=SuZ@$5 zNg<94+v*G)KXYG?gQv_uZZWd_k1_w9oODf0#2)P1r=P&bH#^d&dr^2H;?>?Ion7)7 zuU`^G)K0S=!<#hN^-|Z|^BzlnWhQWHH8r&?(_4Ffit_~zSgCI1bSuhfTGDLqV8M(; zzM-;*kvRHQBmzzo_wH)yrFx-q8}KKmc;W9|9D@_Objc+)9g*;aZnc%IxLWq8kbX6v zG57Gn!&gv@pl5rvJ?V=JnISUJn z=y9y)Oc9Akq^rKw!~!QDvLF@7{H?c6o0JrB^)Ke0pxI%I*_fx0G#sYqAE2&w}QVK51J z{f7mwr@nE4bX7bK&a>05XMSC@H|V1Xral<8dF&;F9C#vjk|}Dzuz}*WAYiK?q%&|Z z+v3BhpL~DHKGP5J;im5ANB&H1MtU#y`oxXFRTz}Wh*~bJA6jR^cyt^!p4~ay<9P30 z&m^n1)_=r@Bu^aTem{=hJN(-2Tg*z{j}H}%o;`xbDC1sg2`$BcysjPVN4blM*MkzS zMDYA7M~bjE?RCOr7wRHfq$ku;0&@Pu(jm^=#pE=iyi&p!w1WHj=>^bM!iivMeNOPop-^hsb8G@*H(NZO;+omdw`oaqFDbL zoB?rBgjQOy${+*BG?8;NDvv4P@m7K2842B;YAx83wVh$-OCTrqkyBl`^J!pDe6eoVA4_UG_=8%Q^C+dCwCp*}WvVL{1y1bzQB`Ld4_IHH% z9oqx5oAhrc3pQh9WX~hG)7PGISMh+eYEc>^lGbjDu#L`#$>2 ztJE2oZT;t)6D~ekC&yV&SDJ?kwXB{H<=yir%Vc;Bos#jL?MxkTz3qkd`ffZbzKhfj zS`AgE5w546AC?Qs5QM$C9fKKd7g(bDYW1`sa%EZOR zh1F)mhK9-v35)1ga1$^7FRO)#X|((z_){(HV@uMg+c(kErOBmh7m%_X&0sJfGF1^Gr>p+<&(EVs}gSFR$@r*gBxoq>Q0gzzsrIhyj2T)g5Nt^gBtpI`gLF)n`wKmA&yq zw+?5S4oQY^st=vC|Ne2(QcBOi-L4EPp8NlzJa%e+w=9t|5bg}1asJ|#gpRi-7gn2c zJ$%pKGx55LoormLeHb_B8(A^h^zM2yfFc9QKq?J@-5P^K5Ga4UwFJL=fTygi;Z8nO zBrv@9E-qx^zV(d~pb}4|+%sEuvA7E|6Mq$?4PG-O5Ivc~Jw7oJ5*C(QsmoY`tcxW+ z5H|CNQa29M2T+ehOXt{mVSFGE7`C}cUIESByX!yAyU!dW!Hs|l=w5;t zH+r370+AosS4?Tr*>V%?aF*yWaVbKkt8=wPWAtv8+b5CWmKN2`07+9mmx>wl`T+{@+;jajQHp?{ zebvlA`UG+v#0WuC$zu3v_`&?eHWh3wFyGb_A4UAMkp&)RA737Ws>gCEgn}#DGMhI! zTh6LE^N$7s15)=i&@=aGur z<)7FQyUiGK%l>82Ubz0Rnu0=hrEXyuKkcdq8$Kw)cUNy}@CWX=@3Vxjood=KbJ;j3 z4OGAX5yi981@W5PwE+;~g|&520fT&>G&D6ixxBtE3(AyTUS6(kZfY4A07BT^i@5N9 z|EdItg5SL>CYPY6$M_$F0*D{nG76Pt&%IWvyk_pz1gI^Z&3|=tfHf6f50~4$KtUi7 z>|`_$1f6=atu`h8yu1lrX#(=}v~7kW?5DJ^Z?lc^361lLJRnS>enMunZ8L^^mWujm z1HX(?>;qm_D#b@`l5qJfKCK#`5OVhvh-Xwn1(@}p!W#2={3j|00<|M;Oeg*>_42_{ z8-RwfG=5lAz@fpK^FT(^g47;}6ic|QzWoLy@C`FnL7tVfDI5yn4FIG}k zTHOFvp$12rLPBiy6Lb^2UY{QgfHD_Rwg~ee4|5K!6OO!diq5VNg#t?6R;Y2LJ#1f4 zeyJtA|NGA&vM`^^3Sky$_z-xDMac-Fx)H*NZ9qcUX(L1Ctlqt+A`b(fx~eSIa<6P3 zo6rhY*C^b26jHhLh408p`wF-hQspw=e&SK$8Y}dAb<`BzloyKuOF~UxQ$uJD=46@O;yybSsYCa-S$yAKQfKCTJwyz z>IJ(J3-g(5UdaHVY-m$9jX^O>l&r z3ySAv0_PEExE&(S?=;@Hrq(QY-9w6n1~*5`^@-HG6LjB}?S;Y-p`N>!Kh#W4T1tez zV@2pv2t<4Q`RwgrEsCB;8SC)}!^D2xN#l^>d6>&>+%E+Mh54g>VmG8mP`<8%Pi?*N${t*xLD)-%iJz#?Eoj;o%=KC19-DQf$i;we>{bdC@zDH#IBm3POx@%a7FHj8jUS)MjmZaB@HODoWC|C{xxN<4=us`2 z1EvgQr@S(e(-sN_Dj?(q3ikLo##E;5=!>V|z|Wt{lhe~N85tF=XQJ*Ox0;W_8uuT< zmToItU)ps3J~c7z>uXm&PX*N{b@I)W z_M~Yc(zvrMR%CdyPWSiJ6;$htuAiJ-!yufjZ2@Oc&>>8+g`@yZB2lwFBn&I)A0j1eB1B0cz_K>8HAX94(?om642Z zob@KIL`)vFs4H7(UBN{k>Ulalmyoau-Q3ElIj2xYVj6u~AAI+IVnPGFvBPzLJ{c%w zGaH*pImzwqZJ-LqzN?6k#B{3486xW6^sR)IanpEk@1HLU9`;Z;JU#iuktB~{>#OGC z@r7}qm-ZmL>0(4}$##)Up9@w=?0qP@9_RX3p4|!u)cN>n$FDWkz{6}mSLHNAn?Y~p z6aVrQQ$Gw$;_uOvnuL&fG3T`zJ74j4DgJz*Ot5-cHi7w$Rv~?27&-EiO`~#?YT)28 zoXVHyU2*Yexff2|D>R}{Kh{iY|G7T1n43QMCAdPQQVA!N04n{v{jNt>&-uEi4#^4u zLCNL!wY5>c=b`q7@Z7u{gT%<*|EA)dHCK?WZQNT%xI*5iA-TbXS#B zwSljO>OAM*R}@7$7Ji8nSS%qlxaA^YJyD>R1BlmWT2`K%?l00c9m<`>4~h&c3bo!a z(Fllw44=HOnYS7p`>Tie8($Re~q7i-` zpzIUEu#VEO>Ild+S;Ssne#~!#v3%c1HYda9nmC!7Q^!hNjhS%_<_&buwRq{uy&1Q` z8~xc$J4sM8sF!KTN{B$LmRDkU-SfSAKmNi0<`V4WWz58HASpLiQF}X&;^j=iYh&J` z$UXG)LHmTF0;!O;bw9|IA7+r3;y7LnH?tvp5=ks`A7{-|C!w*@R+|`Tn@K;61fScx zhWqE4L#;Se^h+KSbO%e0RmHNKc5pNO{|qrOQ#ycA;I=TXbmhAfuoSn{76 zD?0t4yq4SnDujT9axJlx)iC$`v> z?-aiVeynNVkUO{5x9*3mTZ+~X~W z_vCb+Lhjure8un%fk#k`Lp(#s6TR^wMB;PwNoJ=9u?HUG5>o}2Mw0z>OzQ_5`xC0BR@e&|MMWvY@=yP;2wLSg%DqOEZB3VRmrZokg`~)L^dwIf{;Z+y@ zXIxS7k=i#fMMe3$I-oh&mukVw$CS7q`Z~KxFH5PGal0;8v!gTv8 zQ~ObvdjQ-2$1XGZ(S_afgIDCsvv|6xBm#8kynrboaonCd3K;4VdPF-@o2Z1j_49to z=>$?=BJjpGTnSU2`P2KBgh~Uo?kv=lq;D=@Ro{X(X3?ut2tw1NMQ&HXHQiNsV$|A> zu2UvqnH^q@I})cRQ@r`efn0{K-~TZhD|>21_}Z#rcnU4s-LT&)w{Iq9C3!S_yjW9k zss1vvp$G5ZsY5Myef4giTg)O6t#B$E+bXXR(aDdZ7Bre1U0BJ$`s8$TLl|oBP`}xf z#K+5qv)90G6`@t<|fV=~5;uuWRfO);sqt_}r z(;A?AettQ*)u=xxUrI(?&me_Bn2?qlCP@R)jy+?=#?WIUF>4VAc9To#$7fmv!UM(@ z&vpxIMJV7N-pu=N-ZcY%yR=}}M5`?aQ?kg%Q<=f{99gags!`65UJw0(Z-N)~-D|7n zVL<=ARS7D7tKWWjgutFZpFU9Dt5hqoWo^xdBd$zTnWEAru}A4PEd#(C^4x~d$kL$n zFovOGC>>UGI+$g}JoRK%a zbX)mXe0_O---L4oK_Jf%qB1gg!nxp_>Y3jpzB|_J^cSbtVb${8#m%f6T6<`e0O#R{ zuP1ibCXrT&oX#0vM#PZ;XH+69t6GqRkam8=-%s1}^5C8C^Zyq+cV}n;IcE%W{BR`< zF!?)C4mGz7E-TB$7ChaSg*Yif;cJ;L!GEdb?!zG5{i{d|Seg0xK1@OWLdEZ9`w!^N z2ZabXDUdpaJhJke!t??GM|l+ndfTyF?6cMz?W+X}=+W-y=u_yTeQBb4q42E*l|@JM zL-A|h{A_qO-15qVoe8su>yu0CE#~j+B$_WZHN1hi_qcYeTyN0n#Ac8tcJo!q(SS#n8{UW_)Gu)}> z+yNbu9tAwtY6A$su}PzQJMnI*UGxMO(}ihi2`J|yZhRXgoM!Mt5<}> z?&TkJIxEpCA%%1oDo$~9LnKa<;RI76xG>NQd%ycv)x_jnJ@J!;zEFC4PsskX%Roq= z6uDs*)yzbn-smhiqL?GUGVSqt2?<|#Lg`w86b|)YL+~PbPvBU96)+hV=up}vc!L>X z{`O4;wh{Iy5TU0)f`ncF^~}sP+R^%mO8R-tMG(a2~Ofn^-rhp=?jjB+nI?3ln=e@%@b7Z#8#JaUVg2eucvq z7p^+Hn)>hPHkT2P9FpR^K3EQA1ReVdfI!W1$d@EwQ2nPTjIUZCeqYpIy=iLXYZ8&(6!;iAb-bUQFCpTTL@lIqja}-_KaI z+j88hOubtgpi8o2{U9;bBnTR&!2pjVjTJ2^sB%b2N!m5QF-XH*frlP+`@utEX}I>a zy+JvTQMd=i;qcDhyr3`dSHCMzay66gm#_OtNLK6MshcF0uZU}b%zfyo_o>D;e@&cj z;!Wa*&X+v48`bpm*lTSQsrjEje;7=;WCdK)#?&+9&zTvM+Yl8>U#R^%d06EMYO%1s z;_G$|z+!C2d-C+xodNm#c@F;Z7iMmxH9fmxaoZ<{jogt^*VXn0ufFTM?!F;(gnmST z@0kE3jy_N3Gy1K+(!qg}L`jQ~8+LSp^-c3wRj;fM%U!PWu0a+epo*?_9)#R{H2;h-@JQo% zM3%_hFQ3H=wlN8oV;assW~I5zj%>+zbL()NTVt*hXhsLR<7v?OEdI`~e9x(h>sO?p zk&GE`Fc!VN;K8EpRaP4beroo^M}cx;%= zXGM+0^y8KKD=j&R;#ZBxNxBON4zYHWmWQ;l`(x2ExuEG*>i5Yr=pUWKA5EM8_Mu#{&Ckwb?>YA%0y1bNo zh2!UU%giKLU`abHr*!I3=`zXk>8J4s@^z{re=NM^U!zjt9AnuR_Lv}?9&!vN_kbL?hT-@#a`rC>D&JTO4fc3fA9}xAPm4 zQtcXXj7loy+t2Wc6SaGLQr6_uGgXj3ruLaLRj*&Z7-@N|%n%wn@Rk0-*b7&Mm>u|7 zf2Wt9?@dGWCP9Brp%XM64zyJDTC?A~IMIh&b*chy%GFop8K{wS*lt~4g^XJJbandE zbx?&wXrxek{vB@5uXz~)uR7f@^%b=AEax?u@_|55u^LZ`fvYyl?aF-Mv|nnizb3EP ziLSY^+3nPOqo>5TUsH5(*-ixjRry|BL~4MFI=itseCLR}1X4{ftJNc?-5gp{CkxDb*3@Uz?yOx~YgMTn=`D+s9&QW19bo5?(El>y*M}!Lo0sL)q%u)yPup ze(Uu}nJ**`Shb)Y>eRm7O7TvriNcVk1E_WGq<8y6<2?3~eYKWB^@fYwQK{DDfJw&c zg2$$&DU0b%W~Rk$$~k>LQ65jffb)8-(9OL0aL?XuL8!-K@+S}hIpe9JzX7MbX}U3- zEij6jLvp|J<$M3(H`Z%;LnAbVBm73H(<^`iX11aU;!cU^4e#*drsSv}&`uv5oG#04%MRPvy66JuoB{q^ip2BBK2?`Zs(E{JCtxZzW z>Ea&&cjo0$vxTl@gMFVcWD1sYIh|qJB*1JyTZi+WVj_0Wg<4wdpEn=$1kox~a*;hwZ89nXN zAs{8vDcvCrf`GJicO%^$FC_?4(%mH;lG5EEAs{7vNoOAXY z=kV^?vuB=pW(MX~m%%=NOM5Q^0jogdA@CTQgi8~~UbnL;{`7=oMyxrGx6@Z$3fHQr zL{GQmjPIzAP87XQSMq0yYBxAebO{RyiOphV6Lf4QzE{v z$dO8o5c`nw<`RJY8xrdEq^P?;^6BEJzd)IZ6<4`Gxs15!e4D&Hkbh6zK zd3g`B`iDbsQ~uq!%lPWNJB!!tsALQZkB`#F^^X*Po#tR7tH+mrhvW(a#SC`;q^D8lksGP&hHYWKb*K`rkzdV~;&pn10zFwy)SaG(4yQA?V{wIGS35a>YZHw6s3`2U|3)*ZE_@gG=(FH|g>6aejMaz%guc2K`L?BzFG5 zcs)#@Yda8r{^alxM9s984Yjm7Cv`*FZFk7*&teI-9jgtYF!{myq03LrD{o*%OBzg{ zqZd@?1mxsURJQR%wE1AxLUHYcDR1P+apo@f``9|nRJF83K|^y58|*4?4^fn^NFu=w z`D?vX&e6q3sULKI-iT58{A;w#LjL`fZJ(|Yi3juOdx&>Zhgk;=Kwb?KkZS}aLiuIx zOSYdDw+J+R6gx<^X-Q7&cRL^-WAk8n)Qa@st`d>z_3N2FN6?J=SEEA}nJTEN-OAUrr&+S;UcYu6}jgLQYBw{%7l9Imt)cwCW(zzp{RRoMOzFrgb0IpXLE_ml_ znSibY(t!YZF(f1eMhQdYh1ZKHoTlq^u zLT@ywAdIxEEL_f%z2$#{tqe~V5{ZqtQXxpe+771Z}~+AC0{+o-pI(J`%J9x;Gs>Dk%gZZwlwF7!K1PfC9Qhy) zL9FwvRMz`qZzvZ&?BDURT|K%|HVtNYX(=RY;sXld{uz^76`C9y=f8|$H=jg|C%#PRIOLn{lpACVpITpEUM)#r5 zx1gY)WSdr4m=r`*=BvN>@Y)Aq5bKXBdV32nFff4L$ejLjL7(>u4s88Jd5CmFav*}a z>6fqOsSvoixnY3fkcqzIgOZc+!Ifu6tA=B0`pk*$fD7rFG4}{78{-M-UCP7jq7QOevIs?dhql(Dn zrhF|C$JT~)na}L=i8=kT9nY& z9I31PsCzOsM_UmnLO&c!DbDV}f%}34M5!6x zzJ2TZXX<0RLpz~OO(G$;yT7YwVp|;87W8N8Kj|_KJa$o9^1zt*45$D-l=C)x$$3Nx zLc)-x?x4udsu30q0@t`x5*NOaV`XjU!olHH*I+MbiIbqDlsTE0K!#{RHpBf*U(5Nx zkFci3f$;sRqjyyXZCBTm#@GA=K@zayrA*CVYsIELPcI&o&klct$2Z?Dv~J*YPs9B_ zT0{-FJLn0KxG*}6HsnkFp4~1iz~KNrl7kMWqintdJ^bw^{`TLGbzu6Jd}2oSt32++ z-u?Bzsi%1Gk_u#qsm~zyf;H1y%v1~sjKZ?<%K|!aWDjxf$5};-Jn*C)D0EffAe4-WT&ljqmH5|*z=*22?#F_G0r*43{ zkv2=bDW$ty#R2-y(LpP3ZhVD5Cp~RXwz5UpoSnn%7AZKKxk2%&4j7*GQnd>;AU0&Yb8;6D3%rbE(&(KZ0)oCa` zMMZ6aL_v~=Yj%+Gc6EEJs-)DpmW}E1@Aq31pZ*}~6a)Qmes+}RNGXNKIq%gJ2-8s&XO7Al7a%_AME>i zj;=mVTzLLF82RjVoSnS}B+H@7{p!|zy$|y5uVZ7|t`jD+UHRb|x-F)}`qkN>?+gZg zC_Dc_czeZ1G-&L-*(aj)*6dgt=;}BFlB@@9Mu8>5S$U|Sri zWb$rZ?a#jQ&{VsWhV1Z0Wn?7!IkKZyg;~x8F#2vl5rTrPSL`6&#^1mFMgW*JAjxem zn8$YWvCd=rSXtfU5n5$7Gqi}42@0WR4y49{W2DHbF(Stbq+j@`W$D^U2Q)aJ|ad*2CuneiR}@yiUZch1X(T`y#U4h2b~fnNM7vyg)xhUzq<>-&0#4;L_4726`^jPoGpy zV{eEgj$M!lpKy1xeA0A02bw~MN67UWvB$>82QS!CQE~)kEa^Ra z_H1xu>=h*kY#p>9ub}W81RW&$XiPW>33(q{$UJ(7s#aMP(;vt;x3{sdv1Po|FEWNl3VM(mdfI{_7xK#*|uVXSw)=v5ZUM45?)u_tlN z3A>86?mKZ)+{AkI=K~)2p)NvI5$~mhe8%qeHeXewM|;Lu4Y0AhnFuL=J^UNf`8TL+ zqvPQ96{wBjI`|2qp;O2ZMeo>km4*N0O8^Skh2zqx6_>yfmSr04vh>Q=>4MbhH0~;n zcX3xxc5d)BglIYcY6L;#fhlakNJsqNzN-Lo7hQk5n*ix~Jk(9+)3Lo%i2`#a(Jpbn znVn-Z(t)!SKoq}V`}5m#p5=!YZ?-S{@m_a)@TMkBo_}z_%b<{dM#7K$*(HjKro-!j zs#F^2c5JSoAadJQ85Gcae=N+ zo60k4>Kt4Bs6gOEZFG=7ohSf#O-xMGYjq6=a;RlZT)jzON7)^8_u2-Y<4j$1k<~g6 z>3LpDUp)V`L)Qn+(xFCWcvE_Mt}-eHcKXa263h^_fsIGDh?kP@f5qdS{Z!6@F}O73%Kk!OKmk`1EoE(IrOE zWJsJ!p~!-s)hBwbu( z3I#AjfrM3SG0Tp&y)ZRFv6`=zaK}%p(W!X8bN)70?WaaACiJYZyroU#n@+_6E4t-8 zd$4y*)+T(#ph^-kfdF%OmB1QuQ|!vIPvXTL-HYSz2b?lLlJP_>>Ihx#ls>o+gklgE zMUeX-OOoI}e-CVsUQEQO3=}12!`^=yh@6mOIy{}izsqlnR(G~sUG&qP`pvAdr)Q84 ztcszbA~=5lG7$P*3k8sOc#0C8&iR;8a`rK!i`rpo(wZDK9pMfcAfPtM-pz}DN;|f( z7*e&*=v>I7I$z3Z;=4Ey{C$F8wsR6?$R#&EZtbyJw8RG+Fgm*NA*z}}L`6jsJ_3u8 zfghP>N00VO^p6(2IL7k<)`Sd1q1k9d*Y05_#K5m$N#3gsEmj6` zWKJW;7jE@#W+Wptd=gSNF2O~2nZ{Eo66&$AtKsm}y^3ZM)H$P)xOs|Y#!a{#ccQWe z9*s*%4n2yz0UfJ1QdZr_m?KtJR=yVtmejN~phS1zj}O$myvg6PA2S@LrxW+(V+LvC zvC}Ksp#jxe#k&)D2LCM*?WEkt9O?&wZB(nhk0QfTG3M~GE}Y4cB$&DXLncVKPwQ=5 zWyHmaCLJjPC$F?$$owf98!@k2_%vi&U}SYvylp9bk^7>9^F7i#^mh`HR7@IZ4-aos zpeRslayy{WpzX zxUeD6q2oI3NjoJw8bCL2$mFZEhhUfc9G85vhju)z&YbiM$;?4SR(9N}q2v<~C|2ws z!N0c>!=pmuK>ENqrO$1%+8s=9Uw@5_LyLGZ5w|1OL-I{FiJQ3{mm3JnRk1n#|53=(%0;uFD`@b?dhql5AhAxji=?vftI$-gidpHzn* z(=%pSiIK4{$*_1!g8$*|`p|g9Ajr~PUpPu&m{QFk-f%weqPsfd@4UW`E z+h1p?X%Ln^*vE`7DC6dqUuhCg7_&>T)7eGShEERd|4s7q!H&_eu z&Y58!0<|hY3Z9NltX=|=am`N{&cwvot6O9oeBxl{kr(*cuY{O01{-qu4Mm_hpVR<* zOmQvtoF+kyGCYwONg|@evzX9++B+elS(l4B$OaA--S}-ek+VaYV=`wME{D#jo-}fP zpS*<|)pxWWpsZSxS_{stufDh8d~3U1Tl!(}H$wx9#Dr4JhivV+mGIqkrss{y9Umwv zAa!Y#ikOFtX}XUuI6DCxPAyKZ+sMb?8;jJp5*tTicfR;bm9FzG-KrhFO8Pd%_04Y~ zw*ZMSHvebH^n4P1`0Lms;R}2@C#P_WR*TP6f5F@> z#$}7sa}m!PSHp%%hxt;}6(X6mahoKw>sqV(Q`T~xmU+e#4~|xK+g_-A)E0y;3&zy# zJ~}l=U)7gycHyFm{IZ-03#I4N=>G3A=X;a^BX ze(Nv}#+?xOvBix-Y>c7+3gjGVZ1C$*! zqsI#l3;OPHr0g6dPwVO} zj45)*?$B}1!_UtTBXl+?uEogIY}5)vuR2Mmc#XR1o4K-)n^G<%k|0^}T}nZgsB59_ z9bg-)EF`Vs;1TwLrT}1pf`wIzRmQG~LyRk~tjq!E|1a?HY--taE85dCT8XGpH|0P* zmM<^x6XAf*`U;YaR65O)FG71E)TVy=_@0jJUX}I=dRDS7@t&%k@~}r5ciqlbU<&1`Ve8>a#i-ok?|Fr-NU7ci@l-Z0 z_wYZ$&TpGp|8!w(kRNQseEA*df<&E)Dp8O7bQX69J0QjD`wX5^n=JBC10$3B^pUsa zebaOH@`g@+Y4-(?`N%>TWavysyNSF4x5PiyrsQvSUJE_%u~g2 z^I$Bau^D2s;C-K-A*-L5N=!>zhPIZtiO25iSh_b3EPLXLt4zv}2|;4s)8Yb}DFmo6c^)(TC~JTXxfY_@)%$+5F5*f zuAMYA&L1AO85kM)h8aEo8g4rRO_~g6Z4D_Bl6)n(ff(737D>Pnw-(;R=TYgwIyjlw zI07Ss`if(=9!5#oISrJe@5b;R&k_cReqml*0k+KM_9mD{w*{XIBruyPk@y50oZ-)0 zXoic-aDtIACEBTtISEl?G?HY(QO-0r*tERQgUaiAw+QFFT?R6(Yz0o5)BKHjm>|?) zkEK*3TcmFb;i7vYeLKznZqqWacb5616h&4>@gFsQ<*&uDxl}o9MGF=mA4_RYtRA*? zw%ee<&dkP6B#wUvC0aBwZ-tBeP~Dj zMt)21ZH0KBm%q%M0|9Y3vOFk3#S5AxK4Q0$rwYtPy13tu9cf(m{Co9GyZl{(6LT`S z2ZcCSK1~hGM(@7lN#9@edQxw+FLyrPe=HdMXGyNueFoRpJn~^gR8x7lWhC0_4DH&2BuMJ24m`;_|Q7@Qwvu8pcLpz8DMO+ zWS;Mzq+UDjw<{)Y&f>=jlu$YhWC{^Fa#eja93^EPn4EI>8Ku6n#iH7y#d|&WB$w^f z3H@IW;s!1H(UFmx{pqyFF`17N7pO%wdqNc0WWp~9-`&j*WX2a$M_)>ypq3A|XlC&+ z80cdT5`w4sE@RFbZ#UT*dYC^-{k_T~cWaTYjhh5g7-gC%izHZFaR@kM==xsYnFB4n*q`6w zsAY?HxeC+KUB!LAV-3#%X^dvG4X){Pqhk%5))y$0i`#V0Z({%Z;b z^J+HTuBj~4Z#bsG0{Kk+lQAya7On!Mpk+6KxQHmfp@}WUc}cB^)=hU*+YO5+?N#F# zo4UhsImflPM#C|9z*B22;LHZ{3S-xxR2)-b>K;gLR=1MgKZh7J{>^rzaoTt(V&Akz zgo0djWlIU`-@Y3RPwM|Nn`N`>+KLsx0Zs3w>bM>fzDcC1`DdQh^$*3BnZTe-Gt|lT zMwS(<9m_ZIr2fVt<(}0@W^Uh&gb^`Rzk3=3hn{myOGH)%Fpq#*C@%tEt?l5VaOy$U zg3$;rQ&UZChcp>4DwGVhB}I)E$r5k?4V{CICF;~tQDs$0PF&rp>aU3F)?uw<67BM9 zWqnntPuW3*x`lGJkrjCv)uIlP=xs>4?@)PkNd-N8!^6<<%xQ2X~1A)WV|fV{fm7eVZL)xJ>v{3tG7op1_{Okp9tA$ab&hU&+~dqzc-b!l#e9ZioBy3p3{GjB6(T9He& zFg+7Y%<#9tru3|D1|VL;Vy5wA>K~Iv(`Ki0Ol!UQBpgba`IC<$Kp9r)0vmTYA z541s9pM49?ThiBk!HM--L<};&ia9S!s6Jf7ZC$QQq~d?w-+@Lhsz#P?k+~4IpPpD_ zwU!MEy0wQtK$v!e@pdTL>9Ic7hoD7O4r7EtPW}ac3c1bA&A5cuD*7};FXkvk=(1&a z->bb-ayU^Gg$PyTWaaakN(eqo)8LpLEKU><(}}HDvv&A!->n%N%W5-%MtiDuXn5wu zGk1jAp@R*xMNFfK1X07xuj7Yi(%1F5d!H?UJt&0u3_u3-J%;qGlTZ5>I)S7_HE+_e zEO_wUJ>7#H-F{UedsEEkZTD1R7XxK-b?iE$5fF+ACU^`ZZKTh+G%@TD^M_qZ<}pj) zF4)0SjO{x?%!DqT@9dEWF?g4DU+$HT0)IJ0_`X=}Cw;UyKH^p@W zA(Za9spmTTxu44VR+#_6GC7Q#In6cy^|$x6&Z7Eu@CyrGV2cKO@E0L!Ya6>Z1Fvgq zN3d;utsD=f4ji(j;-!npI1t){GVt>gmGp8l?s(oxRq0W58rP|sm$q&ktET#Z=Tj<< zOIWnLo)I*F^|D+*@j@ZiF^j4v0m16{!C7Gj)8b_cAP*idck?$E0cS$rPrFmSM=?m3 zPkx-MOD}45lRkRbWk7Rq-25d!f5jMvA1B&qU3T`c6=oNk$!r|&^*Qu?tEowgT1F+b zi!pMrHWGmVT^XnzN}1uw7Xi&@FG6>X34&UO#zwZ!RNGtv;tV@<$zIbZt*^Vx%q_+? zOL(5Ke-xP{CX|*YQt;Fw$l((oWdBnXuBOFoyU^M^qOJ7gLrloX0iP@~f(Ku2^aiI{ zbJ4i=HM4Sh@KbFZ7nBWTGg&h&Kk|M_-xM46Hv=gaSnG5l`}tIx@{0gf4WDQ z6sAiG9__Ga^UW@+fQv@&gW+OK1N(-KgCt$ZNjH*96>gs322Thg7pn%gpUHl7><9B7 zx!@_n5F~Ma1ag;DKJ@1`QX~A6X41p%5cucQT;CiBZFVVtaeUtU(3BEa z$qj5kF!*GbfGyzedep|R1?Fp84pz-4PP8T+;Oor~7>S(iKEvLllzDPEc{R256q4AK zt6j^ei746F!t(N5)Dp6~muQJb3yaz38onJWtq6kpl@bMkAXtPRiULqMbyf~xVF;{7 z0DKJ2d%&pLji`TDB3%7T2iztnh6p7TvsF}w6F~hXJ6_R1;SIQQjyZH3q3^u} zeH8EW2RLu{2M!lT7tCT#=+aTBO4com6}b_{8CVsppAAW`+Jx+!8BHwRm0rH_bvonx z+N%Xi-y@cfi^O5)T)ItF!sPFyAXixy=$C3!3fiL~%l`&O-By}4)A;$C^$hP%piFy= z*y+VZRCMPk8PNU_qJOay>lAl;8G2qO_V=&o}c%BjTM`Ot71Fo1`#BYw- z*QTXbMR{il&aDmF*snE3{q5gyDk*y?H!IrJF>Yp5B`Tj}w6EM^Sk$e>j6t+`JGupZOgMiXuPsw1gO}X)~t1fl6Y^|X+l!4 zB=x&k0+t+mqF5=R-mpO~faD97Kfa1{MjIZ@5OgT294`NgQoAGKv9iPfS?X2dNU}v6 z&@LovZ^EB{M5)CW$*d16BPqF3ciHR>!A2*~3K%l$o^1F-3sWmEAwg|X7v9@Tje{Fc z!b8EL)uO(4s5DaIb~)(eR0A}m5f1}DTXbEW5PM_uTRh0TxP*SB*yxYOpKn+&cF%uo z8CBZl=2arPShYK6v-ZZQm=V@#&jhPHG|dyJ+=wDX>3B4fEN%w{hIC;CF4$V@;J8@kPxA(o890!NX!8A|o|`a*=G)DCzPT`_z8F!3zcSP^VkZI5 zKFer(Vw!&#)-&G3;pA`rW!GaI6N;2Ba7MfBJ+jx7R`B-+&3cX0lg7OpUStz|Ry>}T z=Tk=W`P_dLk5;tXjK_piKWD^=9^=QPk|L--y||i;VBs>?V+eO)zBhJ3uxjZ_Q#*xk zpTNqCw~~o)_(YEeK8F3>?r$_Hz#h9rp49&+&$`%xXBupS|IIYT}WDzm2G@KKDv?X0A+<0D*o0- zWkS@0mF!pnJOqU-SGs#sTxmZ^ZJkB`)I&|f8*=v-4#{<#Z!EMya>iU(_aj<;hS=Sw zY;fAVa;yHEnxj|#!h7(^^#d{W_wZSyY)6KqT@fte>>>3hdsp1nso8v2O|}i5wYCbB zxXCHi_ggvJ=WC-!=$fZ!W;f7i933kM?4-J16H(dEiP#7nB*R)Z7hNG|*=e5SreBLw zbR#gt`zqDyMAvtJFA6U$AwI+BlTw@_?6?8iUwyc%&@BBeo6=VKp9hZb<+J_P+kvZO zyp234CLM0`>m5!d=Mk z`poV~ECGM#3)XUXF}cHAF^$W2UiJm2r&aA| zBH(-{3@Oxbh3)tlUK_@sgX@kZsAXioNFkE0De7^K=yNr>%dO?jXdJG+PH&SJ`SC*> zQM9_k@A)C;^ShKU_k>WsNM~DFF#p*fw!zyA7L~LHtKr9y#{8=RwB)O*^M^>ng=|y0 z5y88=qmSoHEla_?WGy)i9i6zy+BC`yxbqAYf#V(mov+Y&*GBKKO;(eqi4U1#jH z)X#s5+G~ep9~J26b+fVG_FSKcbKuW7yK9hFz7(qyQ6uBa+}GsOI;5x))1yT5Cl-RLrYEA&9F=yFeKIA-eUG=g@8cr&Fmhcfx+c4wP; zE<@Motfl#6@yHL72E4iOn3$cjKhpr%j!#P)-n?~yyHN-@^gGf8{3*fSlgWDzm%AVD zm!ora73J8nS~asgq=*LD-Bg4CG+)9nwrO7 zqIW}-G|ZM4Z65HW9K3&>q8)RAU?a@wUul=CJM(@kYq>gteC!UQftaRy*mb0LlPX_^ zauuPjUK(0P=BS8WD<5?&qSU6|UNHDp?j5aDFjb}RblGNARn-9RjXO*txzaVPZ@xou zJJfFA;;+;@(fJ@i%gXVkh7~&?(k=Ws*vEwG9lxWqTbMyIGtH{ZQ{aRwzN;%57B9M9 zuW1!Wf_ts4qcOGF!H{0qy%Dv-nGP_UEQn!XUMpz)lJ7*b{{>SCfz(lW3TfWSwPHUZ zKiFGN!2!+!D1|ZZTQ?f{eRQhgd&qQd->0Nz1}qLrwQ?Lt7-^dfcN;x?khYg4}T7(Z6V_$CiD}u3`gk@8+1YYY#B1j=yX2I<-nv zJ%i8hEC2iQ?&ke<^7mPFQ_X%W9@1mAky6ZOeG_xYeo7@e$RJu=%am^uRz!!TqOqj; zi7epQ;ilwhXZZ^f&Or+lDL$jxYL;2m{+RpiQSK*Vnj`D{ae9!jiqiiq%jL|LT4QE5@RB5d`X*GJz(=NEViWG;aBtzy zd(?);IWyJKDdwfj3D*$9hmx!l@_sbz^!YpRY7D$K{Nm$TthI==I!7h$L7YwmbSx-cd6NlIRx zT!v(VJ^d{&o{c~(zV5z378xS2=?q!DyY&>sY+uj!G(e8Fpm#@$hjT zLsV6R1+Or1M$1~AV}5C}8!T;;BcIh4318GFnOeDBfg0u8A8BU;ah=o>G^P^N_pxj| zCRt!#BtDxh)b{o6jUR1gjNZ{a{e!JYM3fH0PJj-xXQ`Q6e;x;4j6TE5bNt6x5rFMO zqh;&UJy~kW=D3Na7(4%)Owcq85<~xAR08PNp58w+`Ah;uBirw{ud2U`3i=0j&XXJ5 zBKKPld^Z`vdgg*j6*75h1sA%V(Xeyd_im%y7)YK5Of-+-t#^*zMfF%}9xu9tdp>_rUvds>G>ORfi9@qX zZT8b!{7LhtdjuAh>)5KFzvlh+Z)X3q_U%kMv%xtEC{$>1Tq>mnJ_?=Rn4}TwRIAUH zk=7*Lt*?B3xC&rwS>H%}yoYSEz2o0OzM@geHvT@Wx1I;hH`iWVVAk&*9`Il9yu7-< zXJZE+OZR_jgKslHU6u`MkFC7R@bP2f3@HE9TDvC+qTv0Y(Eqz%}r2md|cD5&`6@` zU}KT9?~qbF2?Xl*)vKP|+r*G<#mp<%y@7+IXN{ub#m=ql6cixF8wbI!@a+(1IW=|PP_ z&t$LCGySCpAP+CLby9E~vw|huOI+aAsBkO&-4*GcHr|V&=Wrj6jN%iY|6CkM?<*tg z0xwrrp2%w(@gxQQ9mUstXsg+5!tEDra_)DW6xY`&I7b|j6 za6?I}tB-IK9gRzG9beD#+PwY2g0ds!_$yhv*B#VoY!Rebv_qCQauuU*REV$yp%oBF z2BGM_$-&sa$)c~&qtMsDB!j_igVo`R_;tcetY226!d+kkEqWhe32Z0ly_@TkwcFKr zfRtL)aUyK)>~H*=w&ls6{sW@vkdMmK@rZJtEh_~MebSDsue{GK`@(%TXUBt>4!hAzUj<+7BeNT=p+8I$Sm(ERFUp)A1KArDsawG`v!@CtW^`OHqDvmP% zU%l3#Speppzr&8&V@V)l(g>6e^x*w|N$}=>xCFUf?MqJ3KK-}@@lY-QN86@DJXDIc zqIW|7TC%#>?#rc;{t?yf6e1hU#XC+@!Fcu9Re3U}s}8ml9zJ>=WJbHm*=X|=$Hopj zE8aHM2mP+?IMT;Gc^U%R+|&Mt;?uriGKlviLBJ{yYTTte0H!hcswHm9?0bGo&);ss z5N1cN%O`cT(G(B5oNteJo$?wnqo7koJvR1USw!~iE0+}Vl&=kskzO7r-6K43C&NB7 z4^?mM+RwnJE;a}7qcMH_9bE+wIzBvpHAT7%X^=w!LDOglfqrl^q%g0uX86~9qrumK zsgVu>MOnBtR$DN_k1NjHjay}gtq={W@fT1priG=U)Ek&ve|C1F6rHgQ@7GyS6NK=- z#82UtcX;F<^d7CnlSqh&INV%no*afuKUHH(TrF!KS4H!;>>U_5y}dOw8WSHoxZI7&Q1b=+K9r878CXh-gxcIPYbsF*7YYkC&NFp@h#!cfBnmE zVle!9SN*GF+*`kjlp^3K1e%8Xta%f3>-^ZiZ+5uggM+(;{kJQtNbw1ykzuYu&FrG( zRlDag)fgU~;1;qJ^6rnsx6dAztMrD=lEjyEL>=pSvdpE|J(HYbfno=go6_=fI(IV^ z%rVkphALsQG(iQYR0SP|HpefI!tAYwqp24y7tZC$D@K1;;bYk$j>{~VGy@gAm?%2f zNK%p<8oGFx6!XhAG-#i{(Q9=l6pmxBK^I3J$+ig)RLm?qoOf(m;?FYGJ(x_Z_TIPI9KYeS4;ga839nQp^djd` ze)ht`{R(q?{#M%?;((Ehxu04~D;)5bd2g3_VjMC>IN@uZMtcYL_@WbD^Vul`<_rfIceqe=}uyq_UT0O*P59V2wd(}_V|6-J)q^>=VZPSwE!J+ z%QMTAj&A9>==*2x+(-meqykGlmktRTmO_Q#V2wjq&miXOwb#1VznWI!VYZJvRapNg z6wlKjeEoH9z?vIZyn89h*8S??vY_UOLEJd?THV*NM*-Lh?CEXQIu+Kw&pI?7;h^7y z%l+hfw<7T!uqi7x?H6}(bX!1ggcHB$f+{X|fd>?k@_h_|y{vaXcRRetH zLVVU*+h}~J-~{BjygKfjAI~n+{Vm`x8ZhdF7$z`B&BQWzF^j^C8yeiMnq?ox_P+32 zpB&%0663C4e5sP#mYXJ&p7)tuB2RtE?lx*9o1E}%t4V0Vdctse{u4gLJ@cB!{rBZO zM}i&4Uj(jXIfwQR4*pG}tofh5r+YBUGU0hxeZqvl!z}tajx#6?O*{8tiOSkp^unCX`2N8{QoE5Js0_x#A>QLZFdSl=p-}JF& z^X%cvxT^klnvP9uP_i!Yhp}tO;QS1 z$C1}|88PFIBj2nt_`YG*%@zrWQXvIagsl!h9ueqgE%%3~dXm)7chX&H9vvPY7S2xh zinG!?JR0_-mxP?)7MiaQS4ndTI}$Pzs{};X1cZA+d$B5~1^Gl@;e^@rv$1#BNgAsx zi9(y}8l&9jjL9YON5il!Uh4?8bqR#4p+=C{I#TKJuS-1rwOTl7p=CBhqu&+!?`I6q ze~&C`3M`#P3r+`&Wt7OM;i~9I8TW*8F!E`x*%Ra7Xa1Y1klUhQBObvIDLpP`YrXkc zBd|Zy7Zj2n?HjF744~l>aYev7=#PlOgRnRCq=W-!poj^VwM%}pug~f2u5xb=JJvUR%zr#wh>hYA+^*c$es~nrpMSV`nn0uh z2^W_$OLv2r47(Fq?QZ z++VZ&s;qzVI8v#)%Rsg&teEu0>x05GLyL^<4w2~%)18V>0@^j^e4*7E(V5IU8})1- zcy9J1W9HgBMLHfx0>Ivq0n`@5amvs`51pFvPuH)3$2A!8nJ*^RSzOFfzs`~7et3M_ zyg$qBP9~4+D$6=4`1NIHHx!unvVfrQftO69eR29?)rmDv{1)vYWnot6-;`)S-9tL6 z6VJo7Gpb|gs$Z~!7HrJxzq zaC8M?SPbLPypk+**au@zsFLf>WAfz<$NQy)@JXT=vU{nHSE=N@e_RE?vA}NqvD(dZ z9Qx?atZv7kR@=Lspbw(j#M>V+B7&#Vqm`(+Kc5F=a9rMK^m3c1K zLvr;`wtvN!&2l`kw%5_HYQHD!_+FeXw+6M%%tPrqbw^k z>l$j$z3@7|;vJgh*{e4SggQ5x8Zd0O>|C^z8I-|QrjGKj;n~`T0YIyE*@ssKDK2i{ zu2!flq(g~C%qJi0+Nh7Gc7nCvG{)AQ;AZe^%C4nCF3eRyTWIJ@vE{A_#h;0^JM_Jx zcV(n@mmV5qU%}o;KmFVt7(Z%ad!KhV-A7Cdc!v%XY@t2=9*pzmhmU(fx+Fhe-i$2J zyJkh;a`Dj;dCj2#tm02R3mkV|iXa}~K@2JGUAf__)>@_OZp|+w`j;)(0a**@i&lfYHee~ z@s|}ef7x%gXo^1TwpG8=x-g^w_dA!lE%x`!CizM03cP4(QqG{$YmI195wT4c@fj_| zRt0){Wy@$KWY~lj|Mphjz^OkNa;e>4M}?*q=+UPlbd-|~>7A5wL+||lYV&}{L_Geu(!u=|pP>RiL(i}8 zm_91j)}2$YMe(4#Q5YUwTn9z3k*&iH&oQ;HP7+In0WjImIZ{}ltdQ#jY|^y>7E@ip z1mpXQZG&c56Yfm_hrr%kyc4lYloSwLQN7%ey~9syomnvI5FyR;x>Y={bkusUQ!a95 zF2|Qt1Y3HAYmQV>&t0?gWz261R>6zw{c~#@=#~KP>UIpT!vwx~zyw~JNm z%qM|hDrYu71VFv>9|{`!w0PwW3$6Sj4R|%9BT%GvcFLaR^xtnKq(!0=5%ev@p|#mR zUJGU=9Da-u9cvcoE`_Cbjz~ac&!_5cHd5JZ$;}PFE3EW`!69gOPC5XIyp*8@O@RTC zGzdYa0!dx_68gy4n-l>OJNSea6x0H#ARZj~lFQ*x1;Sw&OCp-WXOtzB#C$XGP|cX=l;oJsFAFgJ`BPZ3 z?k>B%!FFO#p8D$N{u-Eqy?x7RI;$2s;?AQZJMu*~0mx<@47XPEg&^I>`(m7>=hJTdB#3WKxdH?YW+b0^8ud##vbcQ21mE%Yu1nZ9+ z`twtx{#LL=aswaxBK~G+RZl@-EQ9NmNdZRtaCmm-pv=N zymWU`%h^7x`YZgCRu*Xc<0TAvd^Kdofs4eyHS+{*2IM3VXNP;r?>C*1Lo8YBrm&N4>n$GS)FTrLZ?7S!w2} zhf=x$)AH#vx7}w5D!P$Wbp2#cEPyALQ5cGaYml?Pv@0j&k0AmUAMZYhX%F$&Mb^n* zPrW7#z}l+L5H6_9X1n}}%K0BUlK6K~yy`Gx2Gs!OB#)Z=+1Y;{W%p}7a}Og27QdQH z??LdC!+K`*YZYcu&Tp8<=3Uq~tGBERG~&n5?NJ7w@%kN4U!qkh2ghz25B9e@zfdEG zOmi^?9d)Pr%4laPB z=8C%`oeSw{ti8G77i*WVPN_uft_l5f5+&hLME! zc*B{KW+-hhbEP(u(8ij2)So*Nl>+-(WCz0Z-{n{kV~!Et#c z6UB84`Bvd^cD?B?CHbv`gaa$$1^)ly>np>eirRKTP)Z4DL6Gj0?vj-59BD9olB@H4V-QC?2XY;+^d!1kBcwIWP*X+G#+|PP)-Rrp(zkUESW5|_jYY*7e zzI0+CAn`M2>kVY6SV|u1(dh3#9{wE$2mJ26(Htl`MK)V72{vLLY<%mwobWabGelR# zzNviC(5_=9W}j57S%eQ_pUqWw3f2|Dsgju6PMMd*8HcUo7M!DsGAjv}^~0zTgL@&| zxk&D{1+fl0b&j+0CRtA_>9SsB>RA$~!$*a(^m}*EgV;q$SN7ySi601xiUV2t1!^v& zeQ!Dc1_9kQWW|Cc6+S{s^SjRw15W>va#A?>_XDoT}9>|5a2B#cW+J}^|i#1vd zp(8q8e+FyTbquJ}C0sk?vu zOH!Un>$B@78_r}v&{|HLIYAuN6dez)C_VM|zZbi;3zzxo@#$;8w;t}vv7)Eefh%TG zX&(GEY6Oy?a(|PGY*A?@Y4UK#e`1P~Z^yg3sl4ggsUfn_O@~@ zBb1lk_SFxGd_?-PXqeJr_23(D;dmu`yJ&HI?rsq6*@zjnz|bKrW|B2mjXgBxzFFQW zQWGTYdz{f5sRyoZoZqb3dIN_lU#(MLzmo$%9dC6PMS(G1Ld!7s>~?T+*jp*vCm<>C z=O_&&cM^-(vQo~#laM>F2&}K=3370u^|fNDdI=qjehGbmku4#fS!_TVBd~ZT-lh5( zu7!%wOVDh;tE+33)n`4Ps*}vYg?Gjm!IxFzWh?a&D^CIQOLmn&h;JUk#pmPv3-;vX z%LUJJR|riTZEKtH*ef4JN|9}KVEGBcMXs-W+E|oW+G1TVs7adOWf*!(aJy{YaMs?p z*Or(cdpm}~DC>2dsrOaXjH~@CR8$GvLvy^+O z+40qW_k0r=v$n?WNF=pt)YsEwBxFWS^c|ih|9ZvM4Tf$6MxMCgL5e0>_}e2PLQVo% zZLqnft7hJ{dq_jb=jsmG`+3&bnbhWg|9S}9Ij5#p-L%Q11*pTXs>0tRpLgZ<^HlyU z;?ywoM|P8A9qs9FL&Dn_v(U+R$qYvQn$n4Y81XBsMMbxX4N-eR@7Bg z*5T7;PpmKqCW(WCgLhl0DYe_A`fe;-^e&Z-r!dFDV67%1^n zF;>^ICVcIYI7{^1uJRX=r=PH{A2l6JAn~3Za-x8?R;MVxapx^r#H!FZDqFYCoa_S7 z`bG$NrA*$7uYO-LvdC503a@;6zp*_U7wP-pQGc)#{;@1kGp{IqME}+s^;uhccWSuf zM|XTN6r@m|Y$AQ3slL*kSE+x?&u9W_!90AqD@FSoMl>Xd6U{EGciWoi7nyCxm# z>d#;L;%g1+fky}541%1&l?25HtEc^S7NE--IyE-#3?XG1w=Vhfs1NqagP<>O7e$`W1q*LOggNumNK2vfaaT%7p zwoSA}wUH~>WiECw_H+FZqF03hGWPHQv-XRV3cPensZ`^Ogj)^4>MTy*U4zg2!#5B`84@f~I@UneTyc zUSi#g2)DZi+f8#x74(&6;UU8&XBrfaR53$npg5PKrT}Jg6zt_Zu&wQC;qFc9)$SW; ztSeq9JGgusHgA>yJUkIfu3ZsK>VRZk^!Hc^KZW(D&B=zSo-1p4{E6_~#@LyJ6Igd3 z9IgL`vb0A$Ie{VE^e*i$)i1a~Hw<5iBXI3g=@ zBeM03D8>@6T9vclLRpo1%zy}_{A6V|eqHI_l%YJ<*2nYi&C%dZ(%ta`BuvYRFy|ON z%4ijcS3>e9sN*VGRgR+0G1EtSWeN8Q=f^gB-JD(FLX_viIQ}i1{nW82vz>-kX5`lf z`nfd%J$TI4B%1-}`sHG0-tV<>280!Z?*}o&YR9Xl7E6BT$-wJGNtNn6-*`zvs<>1cA2@hEQD< zhg6T3!I%x~tr=l4t``p1Gu-XxP2sB4a)@nPaG~UR!iy-DcI;(>thdWoWkd6j$xwVr z{uHA#Ny(wA-OnQJf!!DS^qN^=F=w8(rH5@TxL@?a8)UhBH!j&L`j$rV7>+0hd5X9?n@6{ zk-~yoyR<&}|2)5{EarCGO+1)EIK0l|Y?S{qb&$PjVuPBg7G7$avpb)aoGF~!E?#jF zuBjWGLe>4xfxHdC@;aj+O#~$N|96UMxpI`RWFTv$b(#ylZXu){dx8wS$JtvOY~^ZGXH8j#AgPCm_BtDl>+}G@{Kt-9k72_`XbB5 z-adXmDH9SBdU|^B$;p4Z`uVhO`Eahxo}MMVevAwD5%XK!JbVMAE*x0y{W3AKf0Vcm z{yq|ynN(zd+M`EVFONNgLA)xqGgrvYZ(W+LF`#i^JFq>!TiZ#$&$M%Ss`)qy%H<6$ zHOP1w_OYw`c557Y_{-(IrFG++IPRYP!)lz+xu1`pOZ6tLbzi$ubGu}k@enz8%Ny|u zeyG<8`|aIy9!Ps!*lV=7+O~37VrGJ>Ih~nI{>zwD2ILr02=w@r^4;NkPu=@a+Ty4% zb-)5-m1*OC*WtUoX-%;Sw#y?-%|`uYJcMg!hIfuAKGA1VrKM-e@AkQ0&qnC^1)^%= zJql~hMt3fb@A!3A6U!TP+pSL-*P3^P+GWPv&H+9Bk-DIYlQCFHR@N1+|>uN-jvciSfOP?n~NB|>#XF@Wl?mM_; z^I)arEPC|c^mOX)-||ws_N^jEtO&4HXk=t`a&@I={yin(zhDC4Ufb%S%2ISC+hDNO zUH@jAX|MU1177)B1hSjY@M#erpWym*CAG}POf(LSRs|NGekGa^L~|TqBXAW)obw;v z&zlmK*+&$ERqmsB|KGoY#s{~$x~wBHu?ljV$v>*9h95WC8I;woa+*4G2g2{nOZ4_+ zG4pEHmlQvb%pm^W<7&F!MIx%)R_JX;Ga|>|>x?PLgL@W9A>8fspG~Y=Sye?XXad0s zEK0ht8zU105$hYcF#!N;(Oey`I3>|aYXmD)|R&WP?;QUYx4I^qciul_0jRV)v2maZ!hu5pVXFOP$Kvc+*%t?s+?=`|4eX~xH z%XXn7Y{yUI`&)xSXw*R*T&bWWgv%M{HydhKsy8?P8nV;Ma}br+46xV9shIs#36Y+zzCyoR>!vcThc>DCj}gNPn!}s-!46ADtD3so2;_k?))xvZ-q$qv ziBgJ+UFCm?c#2mZ_u%xr6OYoU*Kl%(kI>uvGx0CWXxymB&FIwo$6$g*{g)>?_$tpZ z0nG`bc+3qOJ}epwVGV`wA}x zma|-HB;xE^3FUFP+~0o-icJGD`9qxX?R9&0!lwc)2O;U~b^L;Zmh#dO*$KJkb^Kl+ z1Yqu>^6a=_i%~u->{b0FD?%MSFjknv$RJ>{cnQC@g4Fy!u?kk=1aA zO(Ow9%j6Bd{if-O14+rwVc^yvrLh=I3#pT6KODqMMnXFIn0Mg=^tYk0i09_P#!k^f zHa~8f$SwkKO%F->{2f|P+CY@xUr)Vx;l*=dItSK9D-$*OIi1SwP%nB$))HVjIEM>H zKtSL)CV#fCX=peA0+CTMDTJe{67n~egZEAPguCS9@_v?2l`8ZzKiq5bpYlwL`BoV<~KF9wZhO39H$IE2azLEKzk)^ zzcx&V-j>@fF`2sDWa$v#0pCSg#V)@mxY!vlngR!pJj;r8Yqw{drq4Rh*lyn463c5` zVg(slY2%8x8O^70o1Q6=SFwtJtH>c46sS_iRf>q(JZtlM!t!bx|C|%_QAVSDsh8N9 zC^$-BNqZpVP)c7`&@-Y(_lj}8u#l15@q?XR*Q#@WIKo?7J1I9<>SUh@7Kh70Nh25G z{jC2Z9H3DQ*>Mx1ba!`GgFKSlaw?F%UcSklRcKTC$AH33*vx!qxFWkTkdPJ_%2HKc18Ut|=d z+DK@Ni|bqa-sh0LM&BEw>wWgCJIxSg_kl!I@BJ8_t)~wSYvSu-$>Sp)-bav(;wN<- z_-hKw)T3on2IYEC-%oNoLuvJM9tsOMyS3Nd=cm*d8Z}Ljo%pi@!BUbA6VPnnA0HV>qfL8ePs(#D4YPb=6v9^lF?7DZlPy>fyD5lPqc zA2+uPBrX$zZwSN!ahDFTuwSr-_KR~NN0acNBJzF)t_6 z@ePk%hT2&i^?FLo5Nb;#F{CG45b>>;*&;7b<4AlsAw#?EGW(WtKseO(*xYB7IS_So zsappSiE(?mePXgHz$lghP7hw_Ym6Y+-!;c+G9dCrQ4&n+@ci3trZ8W9y(gQv#=85U zuIpfXc)*&mKD_07R+gIoHd5$4Vfl$?PzuWauq)|fu*DI`ly`sd>~tfZd3b$-%l_cD z^a=^zZJ|c1+OBN&zYA5Zc=S4Inb6SC5ELbS2Yvj-g}c-~-YV(~c1*l4JLllxnhGC4 zu$7jyj?)&4ENfCcYT+AofE~B+#TmMoe&9m9Kz1j4IIcrs*T-n4>s(?w@KsQ*@VkUf z*ikCp$-Y8L?Quiu*Ft>NNdD=m_f)yReQyP&K#|`&`YDY=opNT*+NZf-;Q0~ZE2K(e ze>QjV`@YL0lF!YFy+umogE|WYK_qK3rUB&fSqF#t2fk2xx79A;53&m(2His91cEer zXC_U~afM&3jJp1!EZDyuMB}rc;bwWSCe~p*YtGy3V{qXk4VuaW?z9c;A1@h`jI(06 zU~3&JrkuOxA`L}Zu;5$D`Fve8lI@U8`IG$w2sdPo{$#YtW$~_i`2;vP_xc^{CR)@u zMf#%*D*gDnMQ~eWG$BDC`OpW0oRCTl)IH0t?%6D_FEMpLwdi+0{*AbQ`c;yVHR@qT zfGU2>OZ5OOP4pByaz-F;CKLRusR4F3smt z1L|B~puZs}3pH1d8@E55T^k7>EN3k$J1f#3asVD1%NN{-Op=dYiLn!*Y**x?dzsD8 zOdecy{OKqAzHiqL-CZ@Kn4?Bir96MXE5arAvitD6Y4;~DDD-gQz!uoQlAzNtKBq!n z*<;a?x3bWuRTZua?ekBOQ<4mVeT9YZ))buQRl=No*LI@gxhaMGj@S<~;V=2+2?NL4 zJb^C_TZ?s#lRO{gdGnjc@znyl%JHdvY3QA0Jv zGu;&e9v1xG-H@##jBU1CK+joO(BM*e`ENW5G3)QKv^WdLPZF zpK~lTEDl}LDkz57N*V;d(RV$vY`ji~x(~@Kf3lRVGZM9_O{@L2vtMiAehBzC=@H(( zek`eh)N9y49+$CgBzhytkuYDe*M~ftSw*&`n)&bg;p)wqrHZ3Dk8*OPd_!Sa=_B%B zf2bYTAoQ>WBoP>I^;Uc2kFEBRHXc8I*E0%rn=WuMf)2`UAC=-vfI-sJ8YHRYU4}^_ zV&gOX7@2i*tf&QkyZ<2opahkQWV_A!*C1h}@G$&ahKF$JvXKH%_uj@BnG_~KZ4zP1 z0@I2LpEWA}r`)V$Iopu?bL5vkYBPAZntEU9PCVqiN8C;bJC>f@>QmUb(^7F=w!f}5 zjFQ~-BbLf~qa<|Xuq7k}-MevWp2PpQN~L2#Tie3njJhBUz~anUuTwQX9S=OClZWp5 zalF!8S9n{72e)cqWipEYVfCkt#&$I0Q}(dlE^PU|o!tv()$dC;V;RET)#8`v4D4Gn zw-tgT zaerQk7^S;U2N)B$6Ejc-t?c7$z(wyVaxgiVb`A~7r5FrLn*;vQQ^EHq_Fhj=QJmZ? z171TijfiDP>Ehmv56(^$RWJ$3gc!HSL8WdJ8 z(g!zpwj!BVJ8o_y&aYX6E+XqcundT`-Gv8jp}vp++YtSpb+awN*clw!a&9Z``66ef zjws5y@wyeUdrPmKm`cFU`1jD;NVx_uhdpXMHY!?yg%Yz zA94kq;LqOSQindLW;+ak-^EI(B4~?je-8EX1&vNy7`6o&5N!Hn2D%C)N`i#wJ-7HI z4dI1_39bw&GZ*pH>D{=+O<5G{NEClp~#0!+M z){ofGiHaIC-ssWWzEe{V4+b8we6bgxAb$MVh)P2ml_e9abG9RK|K_E!;2>>8j%pxu zzAbs8{G@fnm_TKcLW`g4t7Rz<3SZ9c^dt7`o;EG>E~UXmg|+E0dcdsJP`b^REU}?A&mXYr^kO z?3GnL?wxT6=zHRWrtCHmT{3Z=9f70aklglD911aUF8MPiN1%Ta8}bBW2;H*1SY+}; z(h@FMj_q8myx9a^!IN8c$1#E@?CNryETdAvuaA8VcjHF8j zlX}dy`q5iRX4B58*OLX(EEpKAlZ*Ps3^x;0$;E8dY!InsRy;(H-8Y@>gY_qJvlMFU z<&ZrJ3IN_AT*4f&Q(nnIkY5nH#OirXdNFMsI^?E4cyNktJnW} zx>mP3qa7h;f+!{l6fxBKRRnPlARW%Ivi6Sx2X2OqE{@4}l(}jA^(ssTDok5Z9CBrS zeOoSizNJ32Zs{=hsvorySR>wKn=yM+QKVOkgN zb=l)GGW-~rjzWW$bRCsF^zk$t3_icsFzQUG)E`0!Fts*s(^7qN?#%KQg=m`zh|w=G z^xrbF)>`o9RL$mjcj|V3G_`lws$Uw{Kg7^SKAnn^;Xb3NqIARqU)5zp$Ce4la*o=B9gM zYi&E$i4#@-i{D%_8lW(rQUekhxw7G}c{bgZ35kJHRco{(JQj$?rFCoi%nH}{ilCcIsiH06nE z(_;*bp{tA3N^nMeeNi;QQAQU<7{%Hz1M@c1UU$D^m$-n@qBHgY@eCGxDG}q2N}ZtJ zNvL;;Ss{H)9=b!&B~ykuvAyn3jDHz^A+YOkS&zA)62Hlo*AX*wj-8W}gOWbNNZqxL zGUu@-F3G5cdX!2Kgj%pQta6FYK&pA`Ne70r-QqZ>&p;CphH+m zB{wCQ$PqfVWO6P0wzCQQPICWFD`$@S-Rdy@tDOrFKUFZ!BYW+NPMn#A>jsxrn{%M= zk=HiU9m4SHI3nDBm}2Ghe{^U2*4b9eD+c5sy(<*1wUXr?NJq@&9jl>Gb|x!N60hbcjw zvkl~O!EzYd`1$zolem*7>XY#)J8hSdnd%vl6e-1>or{FUZ|1=YtJUI58pH+LrvK^@ zThCuaLCcpPRl8lGI2q!8dSL?>@0}!NXTN8{8#FOd;ZHKU&U3DVBMSE94>}7J2Ja|z zR(+l)we?H>4Q~#?umWRziAZXi7h$**tbn*UEv5eQ%#O#j9}NmdHyZlI`_Cu1k%;HF zN*!~IdJ~vW#iZKbgFkT4=q?DAf z>gZZeSD0$qdozkeH$+Kr*NlkIGBZZ;-Y5lp~_x@nxcL?-^!mO^;Xn3m*C;t zx|2oQqYDs!Ii@OfS=rk_oa4jv1b7j6`kPDQy~P@7h1qJPX3$lwEe5+>$TWsC8#{B4 z`s{bgH}sbKG%nYr=RXad3ZL12^J z98lxIz}WL>fhBb0rH}f6@`1QHH@b%UcF%Qg)tJ3Nt<^xHqr-~`%)6F2019v1Y9gXc z#^oo&YVSuNv;E#sK!l9Av#wPoGyV1+{xXKW4+9o7%=G6Le0^5Qm_;MvB zSHc)JhPM4UZPD2`e=3N%EOwhQf!$JVJQBG>njp_Y0{%L-T~Ub(cH)t4;pw$6v^z2T zD)QeL*T`Ob{j#KG)S;1)_{JN`78N~<>MA=K7l+%dDk~?44uDop7p#`9OhEAofHSe%D9tS0z?{pO^me ztgbpb5FDn%0BW2mMAWM>$hA~shM3C;SoKF~I{i&y_+{Og)=?eS>Un5!y4DLm{Tk3@ zfq$$zqPMMlcmmZ=(dMGIK)!{>eZ;qFJ%a12hK&Gj&(8pt+vm0N232Y4Pw5(jd2)3$ zw6rn}4pSw%?B315`kBW|Bx-;$xZv^!JtUu45_lRLvwLck@Y&)k6Eh7B>Yp}>5hlLl zWW~E=ACWyFmWUvU)99i0$n20R+y;(4UnCgU-r9a%Dx9udE@q!U|6;VnH(ZMO;=NYT z%sv}C`&&YB_fTjLhFSy$5b>(Bb#jx|W=+SgLyYkaz7&{HnZ&#BRKwS<^&}O&fu4OY z;CCz?SkIWH23^SKEja4P1mBfpMKZ({^iFNBEkcHISdEkD+NFHGRbD{JLK>wZs|MLt zY-VU-Ax3SvpmQN22t#|nHynVvAja3l_Sf@@on_xi<9`Fsnqqe&0?vBLdI!}xNri_hdS+h)nebD7UU@2gyH@PiKgZ{4fHwqLypJ|F zH#2nl2ugLd<5D7K{b{rRVAWcGQ{b{dVf`NddV54cm!Rt`#C9njU!vw^Nvjo^guBpT zCa~XFK=wA`P%wm45t4$k;6QRnAk!}_rC9>GEdaYgV}Q@lu}_sJvdM1n&h0*0#+z@6 zTrduYNu>aD@7WZ;E-A73!~CDZ#5Wj-kll9;v)ALwy2s~A5fW^9ut zB@E3Au92veht6TQbZLSWT@Gn-4r!lPRAEbBY7k+L!iqJD`3h=r_;R2tuXz?gAQMnO zZR`id#_Ze_X7nZFkUKv+1B*9_Nfq6zU)XYbte(CrEoYE~+ygEp5DqJJXj69g>MM}z zXtuVV8X6fHsr4;l%(Z6+^M#sVmFwmp6;tPf=T2tRAH4H?_UsuSAKwM@`w$HInS|6- zrjJuk886@*_5@vhgy3EuSBZ#-h*x4_ZPOCFSdhNc;|ZJMM_`F3(HJ7MzyA>A^cq5# z;#n%xH|l}Q%S%U#e#{7~eK!tV4WdTM)Gfl>zjS<{68{aTX0Un{On1*$BV@Ag*L~EWr+fO5SqIF< zN%>EyCH$oxaahBjmCUH9K=g|a4-A{2$_JA z1sO?kX%leqN8AUv@Qmow4~?EZG243bMiMtKAYeDCV`ZNk0Y?-*r|p@qUeW9>uAB~x zBwBz+)!1L#O&O+RbS^IOzI(`hL*ifj9uP=2sKw6JD2PkydK2*qEY^Hi-^dTU@*e}U zlME{p!Be!HtCOkSa_SE33!893VE&CFd&$wOsyc{?xX+u5zDy<+&0Xy7Z+%S7ku;E; zZE!Ah&iX(Cgx+Rl3lTr&4u4kEQdqKlEx6Xw`Af>aV@7}`iz?~srC_ne8_Qpl z_P!3`!)N#1XR`A?dj?hv$G0ZCsOBq{i+>HR7uodahtZi19CuUA=7lr_K%SpKJJMvE3tc5ImQoP;f;kD84T~ z-(EG2ce`G9ui!DpjSyTpN996TJ;iS5w2z6$@xYsW`WP!qCQtBqOebMosC0> z_LN@_ED|tGKh^<(1&gk}Bsx0orD*hbkPS<$3x!|1Zb3aErDMqiKHL^=IxdS+uFg-o zxa?0zp@NtaG=V+Khz+7YmHp=jgg{i)gWTfEDHfwB&t?w2sZ<~xMp39dSTA}ZE!O$$ zuFOZsMaY=m%b(=lYISRUe?TD`wt2f$UONKz_C0zZ-CFy4Q|hAkW^(HN7F{PhpG#+1 zqRyqzFRiFX3}=Z`gd);fD(*Zkdk_5pA0VAcKTIl2&IPb@e0ZC0` z87=E3Tlc}(3{GET(VxshzlW{;7p1>)Kh_~mwj*yaYS^Z!-;;S7r8Th*zoh#CIowo* z1^wF!Tk|59kocVNZx(&_>;sn4OCkdLJK7)GFmS2X<;p6H5>MUUxK4ANRJ!c_za9+$ z!Db6Sbz-(Qa7~@@&6u0}p~9sZV2i7vtjs!LW>7&D@UE0d8qLXp6wuZt1T#F9YT}BI zzl<&WItR2IMLeP!f5$!6F+65;ku5BVQ*YVnGYyFf^CG#~SA~JA4+ch>G+q|eJQnDx zs;Zx9gXJLLV*P-wS01FT9G#F>Q74onay&1yU0QM$_oaZ2THR7&&c_TuZD-+e2WZ&R zK3nQA>{JFXQ(V-?o%D;>$i)bVA(ik}5C2yB?*CMe>1o-Uo+>M2KXdnct?Q2XOFD09 zWo^y#<2AL7>D7Ko;PVS6K(>VB`FN$;-*e7>!~7`aQE_Q+oC~UrrGpB^(Uqm5tVCfh z?Ofwl_~QTwCdl?$WqSzBQ7x~t$ldKH6J*@AH)CVhIk5Cxkkxg3Q+pv} zFYhSI1oWdZZWA!F%y_pHc<<1W?ZN-jV-8&mgfM)lUM)M!2wDzoJrCa%S{FdS+{hLl z7`(2n2*WvnmzCab^z+!L)wDRozjEf`3PJconD*0>%G!X_GkMN59^xQLE93~*;nkA> zh`;2%9m!TWKbNQ_nbh%Fg<1!&~BZL&yS;8!(?M+}vYWR$f0J zW2>IE18?Obbg*-H*XH(GkB-Osd~73C?Q?#NcDxgiL}@wArA;>+c{aC}4834Ow(hGm zAus!wB@<=4V%~!EUVPKySqJ(EClOo)v)rZIQZn$-7MGQw*A3{s?OMA@$^OS(dW6<} z4>@6CU>ILoQUeQSB+-vs7dauRDJgfc)Gg?JDcN@Stk`}ajpwIMLh3Hu&ho~-Y|pX< zZy?Rrds6O~sWYZDZ|S9qKqcajQ$Wskwt&NTvA~NR%_pC!>l#Mw;94CLVs>l#j2$sm z1!KZe;JU}$J{Mj!s*#>v%EjOfp@n4~NY2+xp2_4}gzYF)|iVN@UKJ#>h0C?4etH{FD48QDlSH(gTwF;u3@{qXYrKG9+QQQJ7EknDGTOnWnz zLz9AYsm0~f@Ha181Jmxh+a3oZ4{$&llTRX^aNhdM7HF|k9hYVwcxz7ZiW2BtfY2E> zf52}c7T2xOOcgCa>$x_hNmW%@+2UxSSw~OrIVq{aU5pE5Tw9lh=miXYrR$z81TP*w}))x=AOPFD7og_#NVev@)n;?9zec>IR2R(5#TNOk%7n)TqaDOJzv+ z6vY7C41iNQR_nTM9k`38j>uPtAMAT~f-`IfPb|4n5f%mfuuvrLU~U(1ZZdrThj%EW zqh>O?u!5al4ahhX>ip4cI_Qp%}ttn*h3*Ji6++^Lrk-Ti2iLaTW z7e|rrH(h1r{?w7Cl$Mu|95~L58p|Rhx>w&JV7K4$heM!9W-#S>c+u3<98L!W@xmuM z=VcqKLGhMzjJ#dmn3wFmP&I{ty7lA_i;!KKsF#3#a_2&Gt+1|N)YnOtoL9HTM&G|( z1-l@>Vq;%}6c}h6hFa(>Q8MGFv|8E|inoo|hPUlW^5d5g$zECX9;TchK71e|Ci&>X z&3Ae(r9uK;V=uI=%VzfY6+mx6>86KkzFWC=^ZwiiMPklBs{k5hdFe(IA{Rqv?psJi zhghL@$m}93-8!8-k7-alrGN(ETVPGRPV*U|D+}Zd8PcD<1+T5alRuTee+~t(I>tNX zMkL6371GDtZdpZ3vvJI~_~ZLMDL8@)JDk(+YNxlpG&}NESAYKnG|nG_1RUU8U~A__ z0Xa6UD$<9?%+f8tk>SIx#j>THovSt~J@^U1X;EHkc!q(2;WlS7}@v`eUFl=|I9~x_Q<%&?25%3ueHg#|O#}vUPaBRtH5` zfJp=XYECKQt|%dgSzJ;Q_4lt9D;wLu;-!l0?ImHL zpPy(Dk=z>pdy5{$Ky~9d*t#k1OA$G67-VAPed@9Ehvt{}X)eeKymS8J2R(S{2Pda( z&|Xm9_O*sJ`aPHekm_PQUt!aV3!jj1{pwCik3=D!s@I|#AY*(Yb{kJ6K3Ml*g5C>c z=$$B3brW@>hcboC5N8OatIqKl;G2N2SK&p>M{IXuvPYt@$JdKBU+x_Z`$5oBqg&sY zvG?WrU|EGt0if{H5_unocT1a_(|~3{uCM4_pG;1}S8hW0f(j@O5Uu4&Yve=M4a zoGrVA?~D_me9Qa2;x3}eb+e39Vy59Dk|_tgiA8;tH}Rx)Hg7hkK!Jksw~hMC&cgZZ zlr<*CQ{~_8zUK1AMOEuX$p<$d7$~UiQ27YzcCU)k#63bFH;2TJ%_`X>6W2)t#d`v% zRnxnR?z58nF5#u7&G9s<|k`nWBI` z2!f1{xs4mMkQ!SCowuJ~t8sYx&BBkl|0?e})R) zL__eRdxNL!lDlLhaK}jzVZe^ppPp~{;B_8SX8nQ9m^C#upfHtj_5VGzw+?bW|$H&JXvZ4=v>A@R; zZO)jZg25(u_5yAtCWIUfMtwm{77U8HKZ=QJXM-0V>E-}C>&aq`w~QnAmM=e=Z=4F1 zjoT0r(b9F339}MK_sV<~ejeScJbr2sb3>w`tLollqDJ(lbG0fdF;RIWHIx~DP{=v?%bGHm*MaPGRh2^IZn?7(HFSt@AolXA%tFvV>*@hkkq(yI4UZ>{9iVOg~OW|~r;^M{=S)g$hsLiWG) zu(g6K@h)?EZ`;ei!A$pySwyAYt|g=Vi5xfL@r$hOYj3! z0^mMYHS^_;rylkr406_fI$o$@XZoGgbG6Gj0*H>LIFT#cCS6k&LyaVqeYhK`VEJ7gk@6y5EKWapnZFZwzD|q}cY|wULCTJWGdeVV8bLh!2 zZL=za8~?pOWAB`jieHmz!tYhgN!LXWo@p-k=>Z<1<5#UD?Ae&aH8K3T6z$mdHXsSh z67y`TsYn;J;dX|#y$M^n5Fk&EzL*WDWZ5Jpo;ehdkBKv%_JHaUy`f=ai(XhTi4qZ) z0_oQemZ90{qM_3j`+?<{wDuTQQ`pDD23=RRQWqNzY#FV%cp}nDD>{ya_zw~-ntJa-`s%GtYjMV4p2hKgbyKq&#H~Wcm)^K9*ZQ{{8-j;9K!)4klsUncT!qnT zNk#^|6S>=AtMn~lS3gjFxNVCdEgs#u#9N^eaUv+Oc+Gx~Y*KEx)j7rWIVvHp`X`gcAssepMx$rjcGXp<2}`PBmG*FPdfW{DKxB*+uneD)!e_` z7emC2O#2Xj%ZIAATqlz$F8VUM7u!}14c}Uz z*0RqtFE5Xolhp$3sZK;nYAKLDuvCp!JNr~hMTHFvJ}!<;*0eDXw#w2$OP*0tZZ(Gk z3{7#xAv3oM<-rgr7PJV0nh99rVC3lU0y};?Unk>GmHErQ!P)KKNLWO|hxC+EaL2`? zItWRjA|Y{da&d{Wzdt2SzRb@`C-j_(4uUtQ>bze{I|wvDuka4EENknGp#M)!W{Ti_ zV}AH_B$iA#>VpJh4$fB~g$}7V3J5oYfGtXMH7n4|YAXeg)+7juGCDcIO z4&1!9i8nLxxeAA_&Tjug**^%HQVgrO5l~4DfO5Spoot1Tor^1p z{9AEq#LBhJ7%0}Z7gi+cJ2mhv2T#sLPw*qxeQ${6q2#f7l47M+;zJHlOYL>x=F? z&vdl#Za@v(q7+Hts8>#ca}8Ue%1~nhc{_)*C9}VNB?9a8k~f`rpc$uk?AJj(zzrvP zM8Ql1N*Ih4m828C7ZOv8xie=cu#tKKG4vn5jqZMPCI5Q^6rlY2VZXWs(<@IpOcINbR6 zNverPxI7P-d0j4EGK9G}fge@EilV%@*IO<#SeI6lm-|h~Pzik5knG_vKQ1dc#REHd z0B1PTeCg3t?HH0mB?E?eh>?-V%6C5T)9A>h2{d}SNKIH4{;j-kdX9>BBxo}(0*+Yj@T#Kz3G2I=Y)u{vXcX11gHa$HL4rt-Fa!ybC5VDVMLWU6Og0)k=(NFK|>-c@`g_oc8MnG-mBgO`^>MurvS+~a}amKQ&66X)dR?JXQOz6_!5*boXh5)nT)k?@_l ze8h9FbjcC&X1}h=DR3u#>4sjoNRr3Na-tOzWCN7hk`y?h~< zGb6p7T3ug9he1b>_YwcY

8>{7M4%(9jUCbjh-eB#T%NTmMe)F%SOmxj``Fa4wYl z>huvOCuc@JAE0Y3tEc4X;1WJ7yVsa!UCdkRBa?b6+bi%4Wpn3yX3$c_*2AJ2;{axl zWB*R5{N3Y?(ITRn17qWEi813Oed6FI!x%3{UE*Yj?8-F$DQ@1BwpV9S0JKXE(ovCsSSj^*Mj=MNF)YHAk> z3tu&CGs&yb^6|xR(~GGHoVONGi&oH&yPVP&+V?P`@1eTUFZ~aCA0(VJdw5>X_o;mn zx#;aej_5BOc=PrxR}ag5&l5@p2GGQHhjnl8@wZw+Z~h*9ZfdqHv#cKdAa>_sUe%mfG}Y5y;_k|R`xS+JhS}BE5FLO+z zrNs1}p6oeq^Yzrc;`#v*S0>+Y^)m~O{VQhfm28Ib9k4dYQ;sUIWb z4_(#MPC^(v_a<%pd^?sw;-0XVb@l+FOxYhT>w14+CYxVV&FlXNi~t;U(Uo}hMgJEA z%L}e60`f)^j@h&q*gk@VvtGP-u~e}wcg&12c+`6Jw!^PV`Nbo$GJdlqPU=gEvVX*N zT=x)^^A#^f`G7-)$i~Lre7xU8Ki;=+GQ0qJR}}JYpCkwDxKpNye$e}N5qUl2`b3J94r2AY z2%`AB&XnyX6O_LqIWl|f^;<#qotec!W^S330wd6QntpDn_r|}y!qT5Ke8*p5QN0%jZ9BNPZXs&XOEd# ztlF=czPT=I!p#=32!^SIL|r#E-m)#_P0z_lCR4dQfW+!uxNzZ-^PFD!41xw{Q#;py zBpwh&KTN~UJWMZ|GxK&90MSDFxVto5i08ru;r_mt4;0Kf6xQY!2l5v?jULf^CT1RW zueAv-xB&=QVQtjiV9N=O=KTrvP-xguG>nX*ecDR$4Q*!nP;8{J5Yt-9DBC)$^Kc)` zoc$%l(6qIt>=OR)LCjKdmAFv<1&i>m0`Vt%oqPsPl#bKjnaP*6vPK7JXVa=_BvIPT z(q&a`99!=qHM_gdVqEEROxLkIwUs>J9U)gV-u{LsK4qmU06eZW9T zAudb)!A7=#w)r(LHg|96*RUf+%XJBvt;=-6m%`dwNRrYsM9h#9kBQ8#-)nO!^ii}WQ>why=Uv4b%%T0A})RP zu7-C}XA~4#vyaOhVr%x$qXskg-FteMCp)xQ437ZYE zip4W0-h8KwJqfDm)Oe-mtBM}F?-cAz?r>)Odcn^il%zq}ta&1AG?i>4wKesSq5aK) z!hd-Q2>!PD$2~QtB2R8PgoM!|t?XXKoh?+0*ki~Yw8)08cMdLm$;`<~lBu7&+HE#D z@KR^80xM$#K)ka-OtQo!y>1<&CwYjz-bLxhe2T9DmG`b!@T%mUBoI-k+3B@GyS>4# zJU&m9ZA}twtcw`xoj(gEq-@W-?Y$E#0+tF)BeeE*5pV6|WXEB4kHrf)#P@0ubmfF3 za1x40Yrl~8claYkX?S-noqFFvCcqI&@g10V{GH+lAyfKga6F;XdVQFjrx}6u5R6`y z)b{I#|DZ0)mFy3}#WdJYNa*w4D!Jpu=-Qu}hOOxu%h5%&)k~cQ=OAvce?B}eiu9_g zgid9LH?QyAYxh^u0nKpKUTo3zuCv6G?Cfl(nS-;c_cdGAT`k=uDyJc)SjyP%_w@55 zgkQ8??48WYyi01TN6yZ6smTp%>NjbBS@48Zs$3xw7RJy7kB?5YS z=vgLU`PIVPAyrkEBAIkt)+~?z;EQ{bZWq6Dn+m|O>pb=htO=g@Ybt(G?XB7agNu64 zp5;-f?b&Lyb7%i<`tyW^5n8Y~T;RcR1)kAXSG;plKX#vvA=cwM!0XkTMjcs#N23w! zEk6@48es5D_WL2mm7IW*AK+3&QCfo_TI&MxIV!g)T87HIqJlCXt!pUmx~@gr?y&8%FH5f9wO73vEhSs=s5oD^%Wi5fUfkCzV zjXXcrSt0`7BCEf(Dx6ZFwSk9qAHP;gPu%w6TaQ|I5ViKp#n z|Dg@)b$cX@XPD^crMPRly16f^Jftyg>{dewCv_Veh>PBOiAUse1}!hjXwzsTChc3E zS5R*#hZ9@g`8fGy((>D*yVWg&o&m{s5#K5VOdObbA_!=(N4K_ zU!w=v%L$F&P2+i@{X}N@DZaeLx1NYI@JwR03UnNjzrBK^8yA)6c~;+x>}~0`f_*!H zY{?4<@n3l~XTA1_1JIV5e>|^C%US9T0ZO`BrUevyEYLiVACGb~xKy_ltf^BEUyF=G zn%qDPTc;jE0%8+mLT#k~c+4Bx2Ll%FJ;kw^uMVW;t#v_cqBL?pqu?*8NNCnUTgX@b z-s4K$RnnpAKEpq(;`hc``nZ?55qW8WW zXmUNTiGstzDu4^n&oiKBY>Bt8PXI(x-ADS}-48e?QtmR{;fu@6RN&*g31%DMM*j|r zV~Ag{`OASGR8bbaI4I42F`kD>%J$02&V5(S?Y9iZiG80GJEtYD?HF4p#I!tfFIOecZOemXC}&tqQ7 z8_m_t_}~hVp>%b14LN0JDri~!f27dW@+iww@ITm70V93l_Lf$cq)#L_U(O7GkXf-h zNq>f%+)V$>dLwfEcBeBCu3pZv%j|!j^C}%SByFVr>;?sZ@#3yvNA>{IYAoX#AV`9< zwrWbcCMVS?(9&paKx4*4by8cPYdFg{cG2A0&%ryNY+{9&weE^Sp`+d1P*dgjT|W&0Y2T58iN6{v;TbI=i%gk0h!r z^YJ58h94u&v!3d#{JEE;0jgWoA};mSj$q-^$g@lh?$nYJi8|nVW03-ErqZ(X-iq0M zU~;;lr)wpX-O?F%qX39hB98d@{0&I5I$7m&tsFutQGGK?D`VUY^k?6P%sSjs?13p@ z8pb?*Ra>*IMnU(CAz1aNqjLtMyq9)ZV`g)ol&f&~U}95pxi~tCEfcf1Tto()Y%Lf4 zDd(#c_wWjkqkrwY74#92}=gIeGU8hufQ;t+V4?8qq3^IA7q#NbZx9ARoJRLDhWqvnr7EN)1qUCKHb!(>v6N)H)}`` zI$APH#MMoG!2+H_`otVU-yFO*b>#~4(uI>IF4YJ5U!>)Yjn6)>AT?-|10y=#ZeIgT zqR6XfybcbU`8M=UpgW7-xzChA17rZpJ6VNB;ah=T=U4ArX(wD z-SCb|>3>@l$B@unMXirGAZ=xK-Pmz>i~NvIDlMbUNw@gbkU_O2hf&%0({{&;g3_z^ zP{#}L!)MtBxhD$*r*pm7O22%GTYWeEp*1#dZ1h|?BK`iJgqyPGzPIavo4QcnQ!9{G zoBcWF`^jj$udok&7hj!MZ=W^Zx?DdaYjek==>@*@!!WZ?F{vm+Ww5nzvF1uIqR|UN z)LtaBxtLK)>h|^CAh4nt3{VZq%!B@<2gJ6*CWi{^f!x*g87ZRy(V)VuM%CKR1FtWp{-wrC$@A|GA*H7%PU@uvu{_WD+ z>+_8A_hYzeQ~OraE85fZj#T87=q)-rl>E8-b5S)4cPtl2o6Ip0H}xG1y_m5sTOa!_ zl`h`En6ajfcs}IhbLG9Rgd2EFXW8ijM)PoD-phq_wX4!Cy*Hbln=1Ff371`K5ciiTC+rxz)5~ zTBcm0+=lpL!PED*iYHRHe{^4;N4SP?1q*F|F`A*j*R75gUjL4zcc6-|Zx%GJdIwHX zHlzFH?Q1Oalt9M|HMO@(WHzp&u4e<@;NOt_lG27q!;;CQoxP2%L??>Un$!q|Prr=x z?4@N6CH^yAOYdZ6I-7EwbdmA9p0><27pLD+1moT}<;!18>Z`hr zDCn-4ZUWnc5CJB~-LM5SCjkbI!HL zCmA*DChDF!NZIB({oEiYo^r+!G9&$1Q)(?zR&95XD)Vj1Y+LM7<1);|sZeeFb`%sJ zFckGScr z|29pbxm5Q%X58oAGtvJPjB?n(PaZO4cnLGeAruc5(o1_MthLH_JA0XHpM_TKV`wI! z#jWbOF|G3oocA6;YuLwzB->zbl4QYAybY%6pt=zeqSU3sKzf}b^;Z24?*|N|VZ)uI z`cx5-2i20k3dY9JStX?q*9*jJyD#ew*Df5cJ*eVVNowG%80Sqjy|%CP^^F(ud>*UL zS1J36t#A8GVIs5+4#h)z!GSAo^%TWTnk18Ki*J@yYHYt(d)TeMM93biFdO=KUrXP5 zpVRn~DAH;8!db^H>7i0FlXK`2K~8vr-e+*O^P>3sXNMznOAx!%RR{Xg5R;0$NdJBu z2bK%5KMsCYrtFDb8ft2W-uaI9MFU4+M;>5ZivEM$bcR2ELUD z*iV*+NTD0_Otrf^8i#T7jBKBdipD-fM>k`aO-?B(DW^SGKMjdlkni`M%|WeL25vR6 zBU`b{%Oha@*%r6ePwu*=ri5Ddv3rITa-5Zx$;=yXl|Ps%@&uhBir!Th|ZlS zUWEIU%}-I26z^bhW@Rwkg-^b8+Jj(fYkwKsn*O-htlaY;%nz$FvZtLQrpd-A)rv{^ zUo36Vg5lvjv%N7J=KJ$I?yqkB_B~yNWYbptDqiUvH@-)qPUP)2PX|_e$7^F%XS?7?slSNdJe(2ds#{{=MAYf^6?l9WOK#})+4J)pb6Yq^ z1c%(J#(g2WAt6R_N#(L3yR${QTYP4>vLUio9mPV2H~X)xlubMu?0*<(^2F=jE%{O* z%CKW@G-7i%-g)p-wsFC`&cYX55k`e&_LB7iw0HabFR5o5I=T19TuNg95EFCshdpt1 ztx;vw)HP?XNo7rzJ#jNLi+%3M7q#j;x7x6Zd!QTm^XCK6J9p%(n#5V}am7%KLOr)3 zPAPQMu35YvH|#Q+=7QM&R9z*xlaiKoG-~*Ba*~q6fFkb1LppLJmgnc=!{9iMc5SnJ zRZSlwV|G{5H}B%VqwzOiy!4BVO%Wr~Ibu+-!f$-DTf5;+oF;?Se3TGEJ&yd4a5R1e zTG2NYZ~k(keHkb2g;&`>tWsSMKHXP>o^3{~*PNbOt<^;yJ2uhilXU&f?nmiu!J9>X zl>5Y=yyt?g9#8DHT(b3~sXuKSV;qig#It{rSiG0@ATBO0y|Gc|=?QwWf;=lLi;0Pe zqVnqgIOAe;xW2FBU9Hd3lqTb4j&ri$$luKYB#03#v@vqyU1VftaWQp*)%+-AXcnJv z-k{%onNlZ)4LU@Tn^ZgKr~Jgd3SAiq_!Hur>O1bVpNBB&nShLD)LS zSs3zrlw4Qaf5&6m_d;BOVD8iGQ^|=c>S58H$%?u5xviPA9JuGv_YKq=6)$d~5C3*p z5BSmN+O}3Xyo*EfTt^!~0tfvQv%=}(_3#>L=V9di9kUVgQ(R(>VD94XUZM#sb=35x zUl2vf!2(O6PPy+MHLYWylapRGTwb{~thfGP8M*v89)5F=*ulYpiIuf)1L@YeA9qU~ znS-muA`t}`OF}uUW9G)jLRVIvkBp9TvPIq8L$XC>m6V)^`uh58?Ce}{NYCBuxCTRT z!+v;rQ`l+*esVgX1ji8RfQ!$vy`nJ;R@l%uotbSE(xgw$C4ER?>N_lI!9)f;r9=e( zlF+%UTUhxG?=lDGJSAMjk)**DqZ<4d)xEd@rz-oqnve?(&;P1=zww>Z zXSLWt>tHFGnNCkg4$01t=_mGVJ;Ej#A~PAE3Cv50>`@TY|0`E0^5LYeWZ>;e zOjEG7t=*iR2*(?m#^kPtRJQJ$*~9GCa0QthgD+j&PE+WZDjMpc8ks(w z{^X%fDu0HK6tmv7=#03nIKO{6s*A1?|0KL?5&TQvji!#5T<^JNd_t(9eI!TTDLW5r zKwkyt+Sb8(Ub~YJA9+&pezoTCxjwk8Oc>D|<+pzoXif_%NDLjq+}>Uz2_9Mh3Gd$( z<%fxWhapch>~Am*K~%%=XRw^sd3ez_Z?(vs_4m#Ja#Q3O6xoPRbh6D9k48z(s0y@q zx|iRCkC74#$ZSP7eCsl^r~ci8T;`{@CyFlY8YcdTujnJMOq(N+0%YqbGB1f2bc z(ub_=6YWD8$zTv3=I727N~C}{8D6itNAH{?8I4s8hoO}#e-QyICn0u%=@=stub+WU zS;a3;NN&e!+3NC{pzUnlH;f(M=7|K;0}ANwvoAwBn53bg7v?kHF1@?_w1h_G%Hd7Q zU{%F^m~aX&1CqfAxxF8FY+ly@WS*;mkfc#4Eyd&*&+?s?78NOqUg>CVMre(*XzihD zYcJXv!LR7)>IVM(`*Q#2s9v@Kvr+W-#kI-k zht}3S=i1~0D_6g!VqHW`1g zmtwaz!;t?(nGjwF4zK*ZNm+a<=_-vC(j;mkm#toB>3mlf#@gqO_~Cl@`?Cwmg3+h1 zM7F$g=ZwSsO7QUhnmZTPd)D<*Av*DMuh9$A!F8mDfvQ@Bl;lBg!1t368r%;?lc16* z_sTovs8!7_BY8Y|>}tmX%5csx-z*edQ8#24LONABZ2Cqg={F5YtcD7&V;k)TymzH@ zU!1NI2Azo9(>5){?d1j#V|}(;$O(<~mnsMDl-aR?Q)$kTH2LGL%NWz-l$4pOgi}X5 zyV%^-oMK?ygnG*d=jPI!A-{eF$|=a%z}VV)_39Md+4?EQU05{lXWkd0=(OmG<8bs+ zW9(N#xu!qAb^l|%UzJtpESfX}t@LBj+dHzJHTs8p|0L~P$4f`#l1|7us%njpSJ@(8 z`Oh}mIHQTm>`(n1d%mX&C-CFsruk&o7IvS@5C5TrT>X@O zBbG^Vn$LFCAi)=`2E1mTyuqNhP&R_Mz!7j9;2IPlp`RarQe6G`Ff zG%f|feuKkNZ$&uXYhy*ixzW;>&BEC0M+JKa2B>qz((R(lLGS{_xo9KjMJ-C5LCUwKEZ-q7 z)@+5jD4!Q_+rF7HHcbz)#28?Zv_AgqwQ>@d+)mw}{y`};i5y01&_C^NgU4JoCP#&P zRqRunWGcyD#6)nCHYxu@c);Oqn2UQqQHnq0RrwqyIlDBGn>f@Xop$PefX;S5?fTo0 zz0dZ;8pbKJ>o4S$iqLi+9U?Vgt4dh%6Dc=nF5!x3E`#^P4@P*JTo~bEOHmFziwN;d z`vxOE5=0TgWC>CZmXB{IN=%tbMPij*R7zsA#gCFs8>xpTi zii&P#!Lvc~RvZ}Z6E;@X4zoDOxB!N{aEw~_?^F6;7JP;kWIJ<{%yhvmDJ-LB8@YOa z@QygLi!VDcqY3TDl%c2=G#kWC&s+kXF<)77`4y{ry^`7GeQ+Zb`YLB-WwpR0|KfVB z3#+V6i?>RYimBaclA?=(mv_*Ndk4*i>)O(0VZuIrnSoq@wwqhf2Wji9x;moLJ5>_? z)4%mbdfnk0v`_f)i$RyxTX^KLeTag7E$RHq`g-F!SyEP4DsO|{KlDGX6up3hMQu0r zJusXvd#QhiC0U`6`J9SBl=~$b0>Yanj{~$qHlBSIbUJSkmzwWd<`jtFm zd>&I{*=V1y6(KQyFrDiX;3$#!eq)17KdZ&}SKj^F(NXH2Aq2-AI**w2y8?e8KP*y6 z=r>zklIk_$IVT}z@XO)KSubf7QkDzOpUM20uS+;tFQmJR%tPe6TaiBGbX%zFCgg`j zY<_0kjW=%&>K&fB+xuBnfK=theGltN`Zc;hkx89Fl`JHT4f>|$s-zm*qo_1Xc$#Nt zFTLAhRj-$=a@Y7?7?;L|)5@-{CIvB2Mas`>Un<75GQGN5={p65(D3^3FoadDrokzFY5fGkfx94ht8zC(%%ad zZCvJz{fcwspT3-NI#g5zLN?v5rEKZkD?ie)GI#VB%{2aAg|6Agio@KP7H~tia|9b; z<{QwhJD1hwUm%7=HR)@7jgv}L(LGd?DDE0@(a9s(3o6+Db+Gu0@b2`Gt8Qt zn?rA+s`c~>=0-=aA0YIRs<+?etetUSD0oHR`4x9`_SGd3w2eF#(N_m?ds3QDV7M#< z$*=1_Z0^vKZ>4V-h5C0y8*{d8|u578-Sj~09 zJF`~ZV@J6`Ou~*K4^Ik>HduRZ|KBLlYD4czd#U5c#f&ldK-u}%oum`wUFXjG*DfGV zaUjEr9m9JZP`5di4!`+beh{EYT4I zD+&8_@S*mdakzi%v(5(8(A0S_hewNL4kX_1#r}MATg$;g;MdgD?J-!!`!F4}88sdT z0zw9T{#xDNDwzB{3nIMoXnP+HjAaD>_vi?u{*JmA>p=QB6x8FxtaJHiI%D1c z;VbZH{ljIPNgA2Q5xv5)#~gRm^sZ{NBhD?_9$|BB)kYbIg{=gF9Ht6R+nOcV%!A6v zP=*)?tFsJAvvoo0__P|&8wQt_kg{j&rH=n0!BC4IyJ_1Pvr#sCNsohoKX~$D!Cb{J z@Dl8m#l(7tCvFTjks)VA!bN|656dmHzgLdY;GWskhlv0bvvhT3z~ONDBJ{eajNplo zv$ehP;d}NbiXW7zD>~u`iI}c+fm9yjP%f+I!Gu4gj#$uMLxNd-W*e8&3h)(hR2nR) zeL_E{^oGp+V>L8%mu&J{?EQBitDm2s zi{s>@`=A(~ow-u{u$^T5@rhtPzWUoYA_O-#w~(-KK$I+|8z+va{PyksK^k7x%}=h7 znoIB*fUiZc``_u7I=4;p$1RB{M(|j@oVg2bP{k9+1BZo$34?EIB5{WO?d@km!@`Jw z5j_i*B!}dZbLGd~3@54_BqHO=``<1~fE8HlN)(4hZy42;kf>h7Z~t~X;-*a_3neeD z7f0Y4&iR_>4wDR}DOjyX9G}o2tc)YFZM`^)g>ZR!?+Bo>37e*UFej=RmzbDUQ^Q0` zO3Hidma?a3?bPLPq@W^_+2X|P@#8lDCE6xKrk$OgI>2;>_cn)JjzC}3?Rm_OV^(eS zo-TW;(%*X4sw5IbV~#~~C6Mk+~H;L=DCex>_I*3=QV zM5&I3qq-JL*7s2sOyFw)n**e~zgxZ8dlO!93JfJEiNUaa`K07&RNg0Kiv4TI|8yHU zw+VN#L+84jov?=vr@zUO&Fr|J?DN2UO!RWDiMq>qItC$E0wbpB3^C`j@F*CMJ>DPI z7QS;Qq!mW60U2svtFA58k(B(!`jFWEE*-K8G#$<*WE_uNy;6#9e@s) z_r?u*cXx3N7CS@v7+^<8ke9Pop)S-Sy{Uu^^wA*X0DvfGeueqnoryUm`^JmSP!7O9qQ_zQZ&0=Te2 zG--kMQQ9$P_-tR)IR&JiS3V8`v@V#sMs2#rnFNX7i4qnQ3+)_tCo5cE9x2d!RQ-|_ z)cjWnJf#|1TA3v!T58w<0Gq9EoFGem{Q+Xr3#EuHK0IQ1Aa=e9B)mn&AReWbNU}`M z`Ls_~JEk$nIO__}xOT+%257VUC9jJwhI^i6zS*0zhAl?W4qsQC>+Mr_C&V1vl)uqy z$G=Hzy-YjF*_(yVxvLrti%vJViZ4Q^sUa7t;Dy4f{(h~w(My(2BM)4-UJc6LDwdsX zaCINcUKQGe%oObiu$jk(!1PG{8k_h^51wk<_oZ`rb7;~Wn&!s2#_%IE9gN?421cvY zc+IW-_iqj`5blAqef8~qOua65>qC~Qt#G5DprA*!uddhC)dBcP(_0RiPrWwx%zY&d z%A44{A1{9C@4G*aQVVC6k?SNk(%22)prIpmniHsQ#c7GPVUeEr{CZtjF;Ng@k! ze$!0*M8tm0mp5I5UVPEO>_-}=o>f>OFF;%M7=`YwklG}N0z}|0#Ze}&A7J%(&`rkS zR{!ClVx;Y_fPNAulBm!mJC_5bn=l71?3wY*Z`>^9md>*bjA`x{D~SiU_uLsxaO7Wc zZHfWpmX?#U9@`w7JUE|dB8yxMy2BXU663e~K^ss<*$lM7<4<|ob`$k#6WP~yjtYel zV}t|3juwfhOiTT49Uv)u1ug4ovboKn)3Uk(8o$A3PSyD8)rYVPm48FUm$@kyX+lSJ zOx^MQ-jh(CD++UGsZh+fhUbn<6CV(%s*LpLAByn#GdYC^uOm6ho|S)dsb#z7@;&8; zRsM-74CUqKuIy8Gm%_8PoTmC?@Km*9o^Q{!*o3#3v`{VCgJhAZAIjO7P z*lu-V;2JF8#IH3S!5h#t8sTJ^g@`UEN>fc9YZHBPTAdd!jU&Nl(eUjI8&1-N<) z6F9xe)5J!)-RVg%wbcF(N_7rO^Vx%L9Kd^2{s@jM@B5DoNmSg72>tLX`}>d8 zLed^4Nn&ozBlCG;y?WzB^dd)>doGUJf}DH`4hSGRI&HhhMRy$PGMRq<<6WO$sakH< zaRXaOEXwsX%@A=f*WKM60$u0K;ie~#c~kUr@c9?@jaZP|-7>37zMEuXey7LjWXNDW zOyNV58Tl6lGYxWE;^r>KQPyC!=-g`QXCQQfJd7*O%xh~H#7za$e6Nd32hjEcoTVT} zJ*2-5_$ep%X2x|iTE*SHdS5JjA9vUMBG3fd57W+58c;&Eh4ygUAqwzM!Mp0EzJyrT zeb%59mGA-HGa{PzNbmejte^S1kqnwq;G3q9>01<)85Il&}5O_yKQr z4tEl+@4coK&SmqJyMaeV+kA=2Va4pZx$Jz*<|ws<*8=Tz=~qhN+fFzdni6>aE7Jx< zOCxjEh_qAaT$|9jJqZ!?{XxPzs7)y9CJREC@IKbv3DHj2uQA&~L<=^w33-x}%Mo_9 zEwTO|9wdxz(`m~FkY>kJ&+UpRy)2*x+VHF5;DtULmV{VC>xx#>Z(GhLUst941yTi- zK1y5h%zQ_tQ14G#XA+8OvUlrR9xeLGSk6)v?-ppC#iq^u6Tq%rphV#D`Relt5GkO#= zPEs4y765R)17wlaW6%=8G%cm4SkT7eE*(O)U{&XZcY4Og5r>C|@0L;418lDD?&|Bo z4Hz@uWx?&(8SO=H^x>lAUYZ&-UJ3wh$&=bZcKEmpBxnf#4<9ZdfL2G2$UlNXrh@PX zvL&J!u=ap(cLpk6^YFqdsv0k71$VgeKZmWBW&RwF7ok^SpZ!%)@_bO#kKc=E%+^Oe z6InN9Olyt(evKPF)Ab_m}8PV<$0w972hzKC3#UL7|y&)4s^Cv0y z>~*hUr`3K|L^C0Okv&HI6YMk|_hx6e7~_+3b9~LfERhf;R{K4EZOtYb)<0Z=*VcId z6E!HOp$F`UEAO~iPCa?R3qo}`ak;J6(LKGW=q#9;3b^@N!NDNGBFgSjfZ}2Ozd(Zn zd8ga(Fn~Xo_Fn!@PCDh;?SPS{39ce1f@DD=1klerxVr~OC0-}dZY%j5)Zf{&`*;f! zgEqKPLXaGF5psf+e4FQ>p@EJtm42c^@EuXjAb^gdd$s}SK>W^%l2yY#e(~;(ruyv{ zoE`_7!@(916R&^(DdI@))Gr!iYCjd4Ydh#RGg=2A*;ui07+C5refhb?<4a=p6aD}& zJW3!1+%i)r7M;Gc2YGlfA-=BX!95wJZYI`n;#VL;a%}~WtH#ST`knEwsuHW#xbT`w z2Tn;&HfOqxAJ#hxK!tj<`s>4RqC-x;s*5sC;d=4f3E=JE___2J0eb= z7vBd7s?We=Srp_V$LwT&c(|LF_!e27{4zA#u-%OjtiU1X{N`iu19`Z#VT$OIO@uD# z%Vh4J-rfgKp1cbTBnHN@EU?Z&arD9fc}RX5^b5Ba$&2k|yh2IaIJ59uvR2@0Ib4jzkMB!HNa5eEEnHHJFYApIv`Ai{y_!u9VaakKE;D)C7)a2Ea3S(_jrv%+#k( zpFl-x+MQahTk*k#30`4%@(E~27n+BFz6*3j^&GslFKJcFqoDWko5Io_tOVVY8acVH zp`r2ntl2R!zUn}l>g-wPoK;x)!2>!1AO`r$t`wKpO?Vzx9F}>RQa`Iy-QFamGvA+y zIMfWQgT&n&C}|bD-!C4Yu@mxjz5>Ej`+H__C)g34r%dz$B92e(Sf(jyyHXPdp06*) z)#qblWB)s3g5dq72-wZd4TJ}vtv0VGw*iH)!q8&y0AvXieU~pYF-2#>ydbX~i2Dq} z2Z%OVC=}8`!3HoJ#*U341!;$5h3ZdgUy;t?{<;HS!}`XR(15zSyCcxp7$7P{2c;`u z{Q7rB`1UtcT!IE3skH@-A#B*UEE5VO zz=L8$a=EUOO6gTHa&oYS+ncvf>px|T&&7+-6B1XIkt-}L?ZAEvuuvNaDeO(;=Wh+@ zM~W8tl|Xp+k<{=%Xi0!LP!dG|wa;<-3IC!|n-i2-f>iq6bQ|8nXH+nq=ADvlq1g2Y zO#SLfkdru3@OpKt&VEG~HsH+dsB!=tM#JfAa=%F38(xB_nSk{$R_gWS+&6h?enxLU zvs)Ysme?n&|6^@E85MO^AVN=H_ybDv)Ebd2+BF-I0SIU)sD4PL-ap3>Uah3d^k|d$ z4{|ugf4&-UnQLQM>Jie0g5SpXL5k=sNc@Sj@8+bty_#n?Jux_gsH$dvWfS;P=lG7O z%MLq1V~ymmyn47{oigh99HbLR+Q_PzIOvdnS7p#>6@v}rq+ojLT;rEEC*$p*pT5fifE zy}q%brcVDJQVX6(emjaoCr2pJrBh7RYu%LxoC=}015x$wxXTXo)QUhKDkS5xHlSOW z$0QtR%{$<~JZ(8Ga*Aw`^{qABLsa(~qJvp$>2PbxHcjMvwi0W_5BI^^V?h#O$E4H5 zTE?&=S#QUI9Rk?U`iPGpN;12`sPJ^YA5tw87EC@k>M&q3otY8mFm;eR_(wH2Ox#_gC=it`}A{uaL1vTPJW9|+-&a<5ZN z#~j61ziu$WBGwPAOdyts6c=oO)T6BgN&FaQ z4du#BAw=`wCR&*gdXpLuW+OO{>owA?IUM^q`@N{Rt4!2E{A=6IDpKqA` zhtR_o6ygP{Ff`3G3G&ldHA5aUmEv0WA>lE|9|xswLjBeO1r)E!<>}JHdzj^?&C)>! zo%C5tvobj~wY?BBD9YX}1tZZwt1rnFml63^WVG?g9^d=RTjdlRRd=gi7|3t|Nti?j zu1qT57@u>#jgTAairYx?o|=>7FM zzRzS0ZC~S{cx^6ANsp^$2Da(guK;$Ual(<; z-~~f4pj*+|_}#HCDv#hD)EgIDvlGF+;IJ1OGw)F_3K-Bzd(!^KkrX2;+oCCkO(N|#H0;C;uQBix%CP)^(S z68yF`@UiWOHy+!ThK7m8__9YDA<`Qg8-t^x@joG9-*VbbMr>^BrCcw#?N6Jy67qhd@+*9@ z1)Mer!2BXOVpPvGO-nP65b1?!rwkYTeYbXRyTku~9Hje#z)&dvFs|`g=X;pNzlC`b zH@}-x^fIG6a36P0CqpndNR;R|v>35#4SREHI(l|rvxlW#Xx-yQ?H3kjt=tQ4h(5t+ zUNggKU%T-4d<_>Mv)BIqeJ!OliSc9oN(ET#Y)S;WVK4H63Ej|sLYPMD|AbM${sW_u zO6TtFj=}%~U&cZGMa>Vh?8h?V3cjmaF$J6|PiUvTUWE)Y(4*&`-ry3poPCvuDCDw- zae*ub0W^e~A|NkLIE+~;POyy?;2(X^u`ZzsJrUqin(*FIO7R#I6BAvU=7S*7wlA=& zLVXX0y$be|k1T8s>t4mMzs9n=!XVLKGMvXHGuC268e9|RM7tudByBm z@1S3p=zWk0ESGN3EI>#K{g?Pn-mMf0r@U%MgBz4 z(1v;xMo_PoshVb9ok!Vt5NXRCFzBz5;H{cIo+c(GWYJrv-s2)_o`XU6FM0|3tDpHF zsHOT3Y8e?CuKImay{7OVwd(W`68;AJ;a#w4-bO1d{|teKB~Mxo9c2hvH^M(&y99wa ztvXOdY-H-x%>!kL1Oc!I;Fj1LB9HJZB+>^XdI5P>-~z3C$NHR?P!1SyG4a>Ajn<}h$i3VWjeDR+hgEpojXg*mdC|3DJ--%t{} zpgQPn7^O&(2xr#+d3p*jT77RG)&UG75Tu`iOsx;9qxlX4NC-ZYo8nDr;m05AvKg22@EdN`{NFD@>g1+1R`5S*)<+x`2B+%V-KG8I!g1dsBjj6!(t zO&Dl_kKT*iz(-)Rw+_q_fOdDoE@=}!{v9-kg?C!WOJKdR^3>sIJ;aDPLrax|O)^=V zkW&+mn7@}80X%jqyLp$+*gj4O+1p|?XCecr%VFxJ94*5$3@A3BGDaU*cagK#usZ9A zEBLX)UpVI`3&*= zuOcS-$|6VaT#+_D_O-2T!6uL=1v3Fd(pt{n0M=~i*@S`Zim11IdY1zZ;!c6jVByen z1z!jm4xCb5OfIAcuiL#yvpNw3K?2`9c(kwz!Q)5LSq*r|ci?uwF`x_c0n~W~t_Iwr z$+(HdRMqgTN}*aE5#->)S@$;m#r#DFx|5*TAr zve&J+G~o4&hz%H&oaYwdFSsl4H{clc+iH8qg9SKE|9am~YBS%jmXeZs0H%r=JLw&w zKRa6GU|0cCiwrnGUoxD|hW3Gnm~Y+unqDaW2?u;%Jp=~PLTdt_lDm$lS*nJCWmkaw zA|6V~mArYJnA3HDlv)bfAcW5+@cf2s{{b@3YWtrERLe%l2DPJ;eFe0--*zo}Y!+7w z9SqNs^8AP*kS_IexLW{qnV7T*eFgBTyjY31shWi}XgFZ~fnOLP3(+;}p?f8*nVSSi zMIa~prg|7t6ErZc6+fZ8e^$d-K?0G(dF8#Oxj7=w?tI>fHo*W{xCR4(`8@9PIh@J~ zdz@eHKEd)_U(XCWfQr+(3TqlCVV%c`dU;y4%K{iPL&GrOYys|OvSjPSIi$?V0#tRF z#?3mM{p=-d-E;2}plxcGS@p4~bYK59->cDYwIINb{DTx>sYe0-!42Y90B%UC;x`j> z9d0B*igK*2`_Q+!J|>2RAFqc+ea&{>#JCfni9EJuWDNzn%6qBNs_}a9aOO(@_?8B^ zQ%D9J0r432h?)5{@yDGc?oYaHJQ(zmxBLc{`k-eJKql${DrQ;bL{PiU#^dwhTb0(n4ui|tzw zs3CMh^&|L>=099E22by%>LElyyb~&U`qav^P_N`Zdu|2)S)|C@Y#Aa^CZ*%~QtR2E zw=T}-e|3GDZ`u4<9ym4ilUh0$tC?!=y}kO$1Gt+>&r^)w#?1!qvwv{-ze>CEaH#ix zKN69M%F<#voHLbdg~&2S5oHfeDr<|#a!4q{7g;7!N{BG_C519kVo*p5lhG+D;uK>Y z6~@xc_xJwR@1Ezm_qq2z_j&I8Wxn%#W~L;TlTDm0z`LHMh`Ce@Br~5w`BRZ_6rJrk3~esk8?RZsE8&x zdnye2m09%Uk4Oi(7a=_xNMA~45d^VOZYscnkPXhxTy!PV4=H%S^B<@o_!?UWd{Czs8&}z(=MtnqKN-yFOHE!4v=bP~jT&iUXKOyixBqJC0o!=><%X?e zJtzD5k?aU(yvIO2J5D$wZ0E_2zddFKZ>K5D?6BBbN!y-H^%Ix1#UtF};$kh7i_hx- z1|?_~lSA(cB=J-T&dq97;LoD5D@3V4Uf(2UopSZPh(?_DVcmB&XYH zn~2p~aXNbE8yRHT2_sqIT(3>wc`R!xcex{q^}Lq`A_ro||0jk4sKH3zkhs7r@6fD8 zx2GLKjVhDGb!5(hM|1)p&G*GQA`k-2)w5owEQV_T8>(^K$>|r#aDL|7A6!}H0bnRz zY*gg7>MPsN;MZZFFCJ>T)wPd6JNBLb8;&s1@ ze-7cUeZu81OXv^)Bz+HHqocC8Mb+mb{HcNqzc>U=4gW#b{TGE;_~@@ZvG?7QyZ2J_ zoY9s?yzZtsBLk_U=;*`MSFk)B#N|#8{1cZWK@twjzd>G3Xqpv-eSAN^>T6$BN|Q!j zv(o?5c=?BJJU{VR!UJH}-wjf2&7q4OOFALCI&`$(ytvYlg^(N^9=Wa+6*YcHz!hco z9q}2vF1k$Z@~~L@%s}mPkjywHZUQ4EUTiYvdm(s2RL|SmygVkK?k+QZUQgn14I#N> zLhwY=@*L&D4%#OR$D^w^Q>{dF6B83bhMtTtgrn2oY2mcN4Be$CO+6Adyn>!}ho4vT zI%TgWkmC_&p8JH6vg);Jw0^x-O82Whxc3m$!v<8=YsH}8;1%Wq#v6Y8%D4>!e?1f} zZWJ!j2M!*1{fzUn5Wl#OsjI#d@wncky>=Pw(!sbFVI0i2fVd=)DrUfrP3qQ@l$0#3 zsAyv_lKnmTUj-e6_pGU@R)oQ@Rmir*hqHwuRl*x-$z2SF_{Fd=IL&n^?eb(-a?U*5 z$xbb;nDKFM9aT6EE^72PmzphQgm&^bI&50GvBV`XdWOocfTw0Kx8#D#;i=uB0bn1{ zotBlwGQHT#9G`NlK19CUZe%$D^Btmkg=`JvLd>E8v?F7;U{$X1y;Xb}fc7KE*+kB| z+2R4Ki3uFlQUBNqbmUgCaDNSGr|>Kpk4x&it9lnH)L~B9r5S>1Hwl5`9MX7DXa(rwMpb2%#_WrDRZdy}+>G-qz2mM8_q^=Fo}8i>*%R2qI<{ zi>|5ez3^G+-y5BL`hzbe4R?G2y3;&0+ejbX2rd^c`J$|;k$ek+IE$tNCAg=kU$%V~K*uFG0 z*;iei)8tD2YD#;EJS^h+*(%|N-?p~4%E-%iFKnbm)X*qi`QLQW_|8Mz66-WQL!*=Q z2oKcryY6zg648>NSt6kT2prnCS<6aif$vcE6hLGkK53_lxMW+(QeSeBx}u;_oO@G^ zZ-W|!+JsOsIRMgpDm)4W@lT4R=?PaZaiI-eW{r|FFYQwjCo0<>VNKlfS(;V8LO8|hjs<@aEEVq;y&JU6Ndj8+bmU9M zwtUA_-LUz)`lI=fR)YsanbPj8JC<|#boegOz35|Ux**OgTOMb?dHS|+jDO4qZD?q~ zMfN0Zn%3w1IX~%Cdm>Hr{5+Iv4Ih;|sN?PB^{rT2=pFiFp6Z^a?8Ki7QCFXV8ae8x zV*Ozy!7TuSJ6D@ywhd@>$Zr2*YXf3?$nAwd$t;;Bo}MMk{u{B~KQ#~AxtMPb=*(muUwzAcDWbSe8_+0iN)d%yU;ZvpVYFu#@*VUKM&x{gLSGAdAXo5k-_%4 zfY)QU>E0&bYOC|QbLY6Fl!%S4#~VIO#i+Z=5MQS!+zcYSAPF!}%oZs^Ih=wdjvO!- z=wQ;grG3y7^-QthX<8DJwQ-vO-a@4D%-9}{>d#qtS^H1M7``OuHY!#4?6O)9yh4JF z=0^Y~Hy4Kt)Z?WgQAk%wW2=wH(a4Nl*JFkI=!sBcb-53-*op(MSJoY_vpdIBK8tR&^M?~*;VV4I zA4(`;F3Vc!LW(|BvjlZ&aQt!bIYn#y`W{E3l`=mw$e8 zVwc3|+t5)#iCrZ3Qyof4gua?2y5YB3_~$*cm}-?!zn)8O@1-oAKRD2ZrwE3sEe&sr zdAG4+9QUB;!0}Ag+X)E?w7}%+gO&)BoqEI7O~C@$xumXkofH)kt+UEtjiyl`LBx_t zqZx*>G+BtGc?6}hzJ+L6uVyGg2<7~KRQYHGrQA&@b%(9_bA92%vGl>!R1MO=g4fIA zu`3Jpj`_z=gjf|5H2M+ArAeb_Dyk#eD@-=?t;jG_Jelkjn;Po;hG3AdX4N8C_33TI zHN~H(Rgv(e$G-N_3e!}A?;|rW+pn{*Fy#bKBYoI%*vpq#8GUkBz-)-b{gm&;W+PiR zD1_7EX$}>7imH{Ua!(Ua^Hq;x3C?_t8YBV(Aaz?YG5uq`B!gf;^zKU1MfcC2)y@3A zFDi~>pe3nfdsDEn`dz)(ji|wsHb=$oDGCYOQ%8<5en`8WcHNXJdyQm2xo|S%srxcw z!xu?%&5BpD*B|71-YPP&=3~H$>&L&(Y;WjKQ5$l~_J6&Kiyw&G$~wi4pzsNPS?0Ce z?BTb=@&@;-k>R`BRBol>`zT53+I7nMkyUf8FRJqWF4LvHJf{yGN4Wk)7wsY@H(SFM zCY6iK6dRk4N(V18OA|@1$eVI1nFABWx;@=|?_t%2ba?@hx*vFKA(7hF))DB_SLd{U z>9k$04O|Z%<$?d=V&4jN6qD`Rv>R0PV5XA&^M!K%Jy^dDDi|S**EZiw}$|8;nAT>5Nz;dofy)smosIQTf>un|(WR|;oKTRK1@y%8i&B6^D>(4?k; zVv&)(fj;m3PlE*sz}2{T`;HBfug`P?(&)imd3VIA0t2W$5Ar+=6X*_FXR9A3u+p)K z#HaL#y0d)KT|p{6?VkEBKp!5ysW-^W#x5JqmfuXGSD~7p3$PWheLFUQMJ(!uf#yL)+ogMR^#qGR(h#e+x zH-gIpM({Z%OiGPUeNXHJBwz5K0)@w>IP(yi~6Im-|7s;lbTb5P?= zZLZ-jB^p={!|V%iUs1<9yO*hou2>&xt0zS*x}?;vB<~#hxtGJy8XU3CL6a+uOKF-~ zGuP-zD5J@!&Zu_7oSUX`cH=>3Wf8}y_|g|pZ*}PDhknO~f_q66U{>KMm^q$VuXq;I yR*yHoLj#V-dKZX;*8x*&lZw4=(f;Kfpg9s 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

VqENZcwB($7v!bRsc`-o9X^KH^Fkq@J4=iLU7 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 O;ANy|s++HKHsl`&5gF+K From 60c0e7a24af98b03b6c20aa22b94efa817692109 Mon Sep 17 00:00:00 2001 From: Novacat <35587478+Novacat@users.noreply.github.com> Date: Sun, 10 May 2020 12:05:02 -0400 Subject: [PATCH 080/105] Update grass.dm --- code/game/turfs/simulated/outdoors/grass.dm | 5 ----- 1 file changed, 5 deletions(-) diff --git a/code/game/turfs/simulated/outdoors/grass.dm b/code/game/turfs/simulated/outdoors/grass.dm index 90f4f790ae..6ee01d5087 100644 --- a/code/game/turfs/simulated/outdoors/grass.dm +++ b/code/game/turfs/simulated/outdoors/grass.dm @@ -38,13 +38,8 @@ var/list/grass_types = list( edge_blending_priority = 4 grass_chance = 5 var/tree_chance = 2 -<<<<<<< HEAD - - animal_chance = 0 //VOREStation Edit -======= /* animal_chance = 0.5 ->>>>>>> ac4719e... Merge pull request #7132 from Mechoid/Simplemobageddon animal_types = list( /mob/living/simple_mob/animal/sif/diyaab = 10, From 3b3a7b960cd783343b48c00d4c02d2f24f16217a Mon Sep 17 00:00:00 2001 From: Rykka Date: Sun, 10 May 2020 12:31:49 -0400 Subject: [PATCH 081/105] Add Picture-in-Picture Mode for AI's, Working on Resolving Runtime WIP DESC --- code/_onclick/ai.dm | 8 + code/_onclick/hud/_defines.dm | 2 + code/_onclick/hud/ai.dm | 30 + code/_onclick/hud/movable_screen_objects.dm | 6 +- code/_onclick/hud/picture_in_picture.dm | 145 + code/_onclick/hud/screen_objects.dm | 16 + code/game/machinery/camera/camera.dm | 1 + code/modules/mob/freelook/ai/eye.dm | 26 +- code/modules/mob/freelook/chunk.dm | 34 +- code/modules/mob/freelook/eye.dm | 11 +- code/modules/mob/freelook/visualnet.dm | 72 +- code/modules/mob/living/silicon/ai/ai.dm | 25 +- code/modules/mob/living/silicon/ai/life.dm | 1 + code/modules/mob/living/silicon/ai/login.dm | 4 +- .../modules/mob/living/silicon/ai/multicam.dm | 260 + code/modules/mob/living/silicon/silicon.dm | 2 +- code/modules/mob/mob.dm | 2 +- icons/misc/pic_in_pic.dmi | Bin 0 -> 3370 bytes icons/mob/screen_ai.dmi | Bin 2394 -> 2543 bytes icons/turf/areas.dmi | Bin 38806 -> 39039 bytes maps/tether/submaps/tether_misc.dmm | 25587 +--------------- vorestation.dme | 2 + 22 files changed, 1485 insertions(+), 24749 deletions(-) create mode 100644 code/_onclick/hud/picture_in_picture.dm create mode 100644 code/modules/mob/living/silicon/ai/multicam.dm create mode 100644 icons/misc/pic_in_pic.dmi diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index 799cc5d113..b431ac1298 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -31,6 +31,14 @@ if(client.buildmode) // comes after object.Click to allow buildmode gui objects to be clicked build_click(src, client.buildmode, params, A) return + + if(multicam_on) + var/turf/T = get_turf(A) + if(T) + for(var/obj/screen/movable/pic_in_pic/ai/P in T.vis_locs) + if(P.ai == src) + P.Click(params) + break if(stat) return diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index f2df817366..4736d5d074 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -75,6 +75,8 @@ #define ui_ai_pda_log "SOUTH:6,WEST+11:16" #define ui_ai_take_picture "SOUTH:6,WEST+12:16" #define ui_ai_view_images "SOUTH:6,WEST+13:16" +#define ui_ai_multicam "SOUTH+1:6,WEST+13" +#define ui_ai_add_multicam "SOUTH+1:6,WEST+14" //Gun buttons #define ui_gun1 "EAST-2:26,SOUTH+2:7" diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm index 37d9616ea5..29aa23018d 100644 --- a/code/_onclick/hud/ai.dm +++ b/code/_onclick/hud/ai.dm @@ -1,3 +1,23 @@ +/obj/screen/ai/multicam + name = "Multicamera Mode" + icon_state = "multicam" + +/obj/screen/ai/multicam/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + AI.toggle_multicam() + +/obj/screen/ai/add_multicam + name = "New Camera" + icon_state = "new_cam" + +/obj/screen/ai/add_multicam/Click() + if(..()) + return + var/mob/living/silicon/ai/AI = usr + AI.drop_new_multicam() + /datum/hud/proc/ai_hud() adding = list() other = list() @@ -130,6 +150,16 @@ using.layer = SCREEN_LAYER adding += using +//Multicamera mode + using = new /obj/screen/ai/multicam() + using.screen_loc = ui_ai_multicam + adding += using + +//Add multicamera camera + using = new /obj/screen/ai/add_multicam() + using.screen_loc = ui_ai_add_multicam + adding += using + mymob.client.screen = list() mymob.client.screen += adding + other mymob.client.screen += mymob.client.void diff --git a/code/_onclick/hud/movable_screen_objects.dm b/code/_onclick/hud/movable_screen_objects.dm index 3602a52481..40e5977c83 100644 --- a/code/_onclick/hud/movable_screen_objects.dm +++ b/code/_onclick/hud/movable_screen_objects.dm @@ -11,6 +11,8 @@ /obj/screen/movable var/snap2grid = FALSE var/moved = FALSE + var/x_off = -16 + var/y_off = -16 //Snap Screen Object //Tied to the grid, snaps to the nearest turf @@ -40,8 +42,8 @@ screen_loc = "[screen_loc_X[1]],[screen_loc_Y[1]]" else //Normalise Pixel Values (So the object drops at the center of the mouse, not 16 pixels off) - var/pix_X = text2num(screen_loc_X[2]) - 16 - var/pix_Y = text2num(screen_loc_Y[2]) - 16 + var/pix_X = text2num(screen_loc_X[2]) + x_off + var/pix_Y = text2num(screen_loc_Y[2]) + y_off screen_loc = "[screen_loc_X[1]]:[pix_X],[screen_loc_Y[1]]:[pix_Y]" /obj/screen/movable/proc/encode_screen_X(X) diff --git a/code/_onclick/hud/picture_in_picture.dm b/code/_onclick/hud/picture_in_picture.dm new file mode 100644 index 0000000000..a7d23c913d --- /dev/null +++ b/code/_onclick/hud/picture_in_picture.dm @@ -0,0 +1,145 @@ +/obj/screen/movable/pic_in_pic + name = "Picture-in-picture" + screen_loc = "CENTER" + plane = PLANE_WORLD + var/atom/center + var/width = 0 + var/height = 0 + var/list/shown_to = list() + var/list/viewing_turfs = list() + var/obj/screen/component_button/button_x + var/obj/screen/component_button/button_expand + var/obj/screen/component_button/button_shrink + + var/mutable_appearance/standard_background + var/const/max_dimensions = 10 + +/obj/screen/movable/pic_in_pic/Initialize() + . = ..() + make_backgrounds() + +/obj/screen/movable/pic_in_pic/Destroy() + for(var/C in shown_to) + unshow_to(C) + QDEL_NULL(button_x) + QDEL_NULL(button_shrink) + QDEL_NULL(button_expand) + return ..() + +/obj/screen/movable/pic_in_pic/component_click(obj/screen/component_button/component, params) + if(component == button_x) + qdel(src) + else if(component == button_expand) + set_view_size(width+1, height+1) + else if(component == button_shrink) + set_view_size(width-1, height-1) + +/obj/screen/movable/pic_in_pic/proc/make_backgrounds() + standard_background = new /mutable_appearance() + standard_background.icon = 'icons/misc/pic_in_pic.dmi' + standard_background.icon_state = "background" + standard_background.layer = DISPOSAL_LAYER + standard_background.plane = PLATING_PLANE + +/obj/screen/movable/pic_in_pic/proc/add_buttons() + var/static/mutable_appearance/move_tab + if(!move_tab) + move_tab = new /mutable_appearance() + //all these properties are always the same, and since adding something to the overlay + //list makes a copy, there is no reason to make a new one each call + move_tab.icon = 'icons/misc/pic_in_pic.dmi' + move_tab.icon_state = "move" + move_tab.plane = PLANE_PLAYER_HUD + var/matrix/M = matrix() + M.Translate(0, (height + 0.25) * world.icon_size) + move_tab.transform = M + overlays += move_tab + + if(!button_x) + button_x = new /obj/screen/component_button(null, src) + var/mutable_appearance/MA = new /mutable_appearance() + MA.name = "close" + MA.icon = 'icons/misc/pic_in_pic.dmi' + MA.icon_state = "x" + MA.plane = PLANE_PLAYER_HUD + button_x.appearance = MA + M = matrix() + M.Translate((max(4, width) - 0.75) * world.icon_size, (height + 0.25) * world.icon_size) + button_x.transform = M + vis_contents += button_x + + if(!button_expand) + button_expand = new /obj/screen/component_button(null, src) + var/mutable_appearance/MA = new /mutable_appearance() + MA.name = "expand" + MA.icon = 'icons/misc/pic_in_pic.dmi' + MA.icon_state = "expand" + MA.plane = PLANE_PLAYER_HUD + button_expand.appearance = MA + M = matrix() + M.Translate(world.icon_size, (height + 0.25) * world.icon_size) + button_expand.transform = M + vis_contents += button_expand + + if(!button_shrink) + button_shrink = new /obj/screen/component_button(null, src) + var/mutable_appearance/MA = new /mutable_appearance() + MA.name = "shrink" + MA.icon = 'icons/misc/pic_in_pic.dmi' + MA.icon_state = "shrink" + MA.plane = PLANE_PLAYER_HUD + button_shrink.appearance = MA + M = matrix() + M.Translate(2 * world.icon_size, (height + 0.25) * world.icon_size) + button_shrink.transform = M + vis_contents += button_shrink + +/obj/screen/movable/pic_in_pic/proc/add_background() + if((width > 0) && (height > 0)) + var/matrix/M = matrix() + M.Scale(width + 0.5, height + 0.5) + M.Translate((width-1)/2 * world.icon_size, (height-1)/2 * world.icon_size) + standard_background.transform = M + overlays += standard_background + +/obj/screen/movable/pic_in_pic/proc/set_view_size(width, height, do_refresh = TRUE) + width = CLAMP(width, 0, max_dimensions) + height = CLAMP(height, 0, max_dimensions) + src.width = width + src.height = height + + y_off = -height * world.icon_size - 16 + + overlays.Cut() + add_background() + add_buttons() + if(do_refresh) + refresh_view() + +/obj/screen/movable/pic_in_pic/proc/set_view_center(atom/target, do_refresh = TRUE) + center = target + if(do_refresh) + refresh_view() + +/obj/screen/movable/pic_in_pic/proc/refresh_view() + vis_contents -= viewing_turfs + if(!width || !height) + return + var/turf/T = get_turf(center) + if(!T) + return + var/turf/lowerleft = locate(max(1, T.x - round(width/2)), max(1, T.y - round(height/2)), T.z) + var/turf/upperright = locate(min(world.maxx, lowerleft.x + width - 1), min(world.maxy, lowerleft.y + height - 1), lowerleft.z) + viewing_turfs = block(lowerleft, upperright) + vis_contents += viewing_turfs + + +/obj/screen/movable/pic_in_pic/proc/show_to(client/C) + if(C) + shown_to[C] = 1 + C.screen += src + +/obj/screen/movable/pic_in_pic/proc/unshow_to(client/C) + if(C) + shown_to -= C + C.screen -= src \ No newline at end of file diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index e82d3ea5f6..89c02df8c4 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -19,6 +19,9 @@ /obj/screen/Destroy() master = null return ..() + +/obj/screen/proc/component_click(obj/screen/component_button/component, params) + return /obj/screen/text icon = null @@ -535,3 +538,16 @@ var/mob/living/carbon/C = hud.mymob if(C.handcuffed) overlays |= handcuff_overlay + +// PIP stuff +/obj/screen/component_button + var/obj/screen/parent + + +/obj/screen/component_button/Initialize(mapload, obj/screen/new_parent) + . = ..() + parent = new_parent + +/obj/screen/component_button/Click(params) + if(parent) + parent.component_click(src, params) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 15f9d65bc3..3dbe68fd29 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -29,6 +29,7 @@ var/short_range = 2 var/light_disabled = 0 + var/in_use_lights = 0 // TO BE IMPLEMENTED - LIES. var/alarm_on = 0 var/busy = 0 diff --git a/code/modules/mob/freelook/ai/eye.dm b/code/modules/mob/freelook/ai/eye.dm index c79417cb86..67a1b810d7 100644 --- a/code/modules/mob/freelook/ai/eye.dm +++ b/code/modules/mob/freelook/ai/eye.dm @@ -10,17 +10,36 @@ /mob/observer/eye/aiEye/New() ..() visualnet = cameranet + +/mob/observer/eye/aiEye/Destroy() + if(owner) + var/mob/living/silicon/ai/ai = owner + ai.all_eyes -= src + owner = null + . = ..() /mob/observer/eye/aiEye/setLoc(var/T, var/cancel_tracking = 1) - if(..()) + if(owner) + T = get_turf(T) + loc = T + var/mob/living/silicon/ai/ai = owner if(cancel_tracking) ai.ai_cancel_tracking() - //Holopad + if(use_static) + ai.camera_visibility(src) + + if(ai.client && !ai.multicam_on) + ai.client.eye = src + + if(ai.master_multicam) + ai.master_multicam.refresh_view() + if(ai.holo) if(ai.hologram_follow) ai.holo.move_hologram(ai) + return 1 // AI MOVEMENT @@ -46,6 +65,7 @@ if(!newloc) newloc = src.loc eyeobj = new /mob/observer/eye/aiEye(newloc) + all_eyes += eyeobj eyeobj.owner = src eyeobj.name = "[src.name] (AI Eye)" // Give it a name if(client) @@ -66,7 +86,7 @@ /atom/proc/move_camera_by_click() if(istype(usr, /mob/living/silicon/ai)) var/mob/living/silicon/ai/AI = usr - if(AI.eyeobj && AI.client.eye == AI.eyeobj) + if(AI.eyeobj && (AI.multicam_on || (AI.client.eye == AI.eyeobj))) var/turf/T = get_turf(src) if(T) AI.eyeobj.setLoc(T) diff --git a/code/modules/mob/freelook/chunk.dm b/code/modules/mob/freelook/chunk.dm index 41439b4adc..5f59d2e737 100644 --- a/code/modules/mob/freelook/chunk.dm +++ b/code/modules/mob/freelook/chunk.dm @@ -25,12 +25,12 @@ // Add an eye to the chunk, then update if changed. -/datum/chunk/proc/add(mob/observer/eye/eye) - if(!eye.owner) - return +/datum/chunk/proc/add(mob/observer/eye/eye, add_images = TRUE) + if(add_images) + var/client/client = eye.GetViewerClient() + if(client) + client.images += obscured eye.visibleChunks += src - if(eye.owner.client) - eye.owner.client.images += obscured visible++ seenby += eye if(changed && !updating) @@ -38,12 +38,12 @@ // Remove an eye from the chunk, then update if changed. -/datum/chunk/proc/remove(mob/observer/eye/eye) - if(!eye.owner) - return +/datum/chunk/proc/remove(mob/observer/eye/eye, remove_images = TRUE) + if(remove_images) + var/client/client = eye.GetViewerClient() + if(client) + client.images -= obscured eye.visibleChunks -= src - if(eye.owner.client) - eye.owner.client.images -= obscured seenby -= eye if(visible > 0) visible-- @@ -92,10 +92,11 @@ obscured -= t.obfuscations[obfuscation.type] for(var/eye in seenby) var/mob/observer/eye/m = eye - if(!m || !m.owner) + if(!m) continue - if(m.owner.client) - m.owner.client.images -= t.obfuscations[obfuscation.type] + var/client/client = m.GetViewerClient() + if(client) + client.images -= t.obfuscations[obfuscation.type] for(var/turf in visRemoved) var/turf/t = turf @@ -109,11 +110,12 @@ obscured += t.obfuscations[obfuscation.type] for(var/eye in seenby) var/mob/observer/eye/m = eye - if(!m || !m.owner) + if(!m) seenby -= m continue - if(m.owner.client) - m.owner.client.images += t.obfuscations[obfuscation.type] + var/client/client = m.GetViewerClient() + if(client) + client.images += t.obfuscations[obfuscation.type] /datum/chunk/proc/acquireVisibleTurfs(var/list/visible) diff --git a/code/modules/mob/freelook/eye.dm b/code/modules/mob/freelook/eye.dm index 85cfc736c9..89a15c3000 100644 --- a/code/modules/mob/freelook/eye.dm +++ b/code/modules/mob/freelook/eye.dm @@ -23,6 +23,8 @@ var/ghostimage = null var/datum/visualnet/visualnet + var/use_static = TRUE + var/static_visibility_range = 16 /mob/observer/eye/Destroy() if(owner) @@ -67,8 +69,8 @@ visualnet.updateVisibility(owner, 0) owner.loc = loc visualnet.updateVisibility(owner, 0) - - visualnet.visibility(src) + if(use_static) + visualnet.visibility(src, owner.client) return 1 return 0 @@ -85,6 +87,11 @@ return return eyeobj.EyeMove(n, direct) + +/mob/observer/eye/proc/GetViewerClient() + if(owner) + return owner.client + return null /mob/observer/eye/EyeMove(n, direct) var/initial = initial(sprint) diff --git a/code/modules/mob/freelook/visualnet.dm b/code/modules/mob/freelook/visualnet.dm index bbcd0c7d66..44cd9278cc 100644 --- a/code/modules/mob/freelook/visualnet.dm +++ b/code/modules/mob/freelook/visualnet.dm @@ -2,6 +2,8 @@ // // The datum containing all the chunks. +#define CHUNK_SIZE 16 + /datum/visualnet // The chunks of the map, mapping the areas that an object can see. var/list/chunks = list() @@ -36,29 +38,63 @@ // Updates what the aiEye can see. It is recommended you use this when the aiEye moves or it's location is set. -/datum/visualnet/proc/visibility(mob/observer/eye/eye) - // 0xf = 15 - var/x1 = max(0, eye.x - 16) & ~0xf - var/y1 = max(0, eye.y - 16) & ~0xf - var/x2 = min(world.maxx, eye.x + 16) & ~0xf - var/y2 = min(world.maxy, eye.y + 16) & ~0xf +/datum/visualnet/proc/visibility(list/moved_eyes, client/C, list/other_eyes) + if(!islist(moved_eyes)) + moved_eyes = moved_eyes ? list(moved_eyes) : list() + if(islist(other_eyes)) + other_eyes = (other_eyes - moved_eyes) + else + other_eyes = list() - var/list/visibleChunks = list() + var/list/chunks_pre_seen = list() + var/list/chunks_post_seen = list() - for(var/x = x1; x <= x2; x += 16) - for(var/y = y1; y <= y2; y += 16) - visibleChunks += getChunk(x, y, eye.z) + for(var/V in moved_eyes) + var/mob/observer/eye/eye = V + if(C) + chunks_pre_seen |= eye.visibleChunks + // 0xf = 15 + var/static_range = eye.static_visibility_range + var/x1 = max(0, eye.x - static_range) & ~(CHUNK_SIZE - 1) + var/y1 = max(0, eye.y - static_range) & ~(CHUNK_SIZE - 1) + var/x2 = min(world.maxx, eye.x + static_range) & ~(CHUNK_SIZE - 1) + var/y2 = min(world.maxy, eye.y + static_range) & ~(CHUNK_SIZE - 1) - var/list/remove = eye.visibleChunks - visibleChunks - var/list/add = visibleChunks - eye.visibleChunks + var/list/visibleChunks = list() - for(var/chunk in remove) - var/datum/chunk/c = chunk - c.remove(eye) + for(var/x = x1; x <= x2; x += CHUNK_SIZE) + for(var/y = y1; y <= y2; y += CHUNK_SIZE) + visibleChunks |= getChunk(x, y, eye.z) - for(var/chunk in add) - var/datum/chunk/c = chunk - c.add(eye) + var/list/remove = eye.visibleChunks - visibleChunks + var/list/add = visibleChunks - eye.visibleChunks + + for(var/chunk in remove) + var/datum/chunk/c = chunk + c.remove(eye, FALSE) + + for(var/chunk in add) + var/datum/chunk/c = chunk + c.add(eye, FALSE) + + if(C) + chunks_post_seen |= eye.visibleChunks + + if(C) + for(var/V in other_eyes) + var/mob/observer/eye/eye = V + chunks_post_seen |= eye.visibleChunks + + var/list/remove = chunks_pre_seen - chunks_post_seen + var/list/add = chunks_post_seen - chunks_pre_seen + + for(var/chunk in remove) + var/datum/chunk/c = chunk + C.images -= c.obscured + + for(var/chunk in add) + var/datum/chunk/c = chunk + C.images += c.obscured // Updates the chunks that the turf is located in. Use this when obstacles are destroyed or when doors open. diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index fa59ebf5c8..61f0be1a95 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -85,6 +85,14 @@ var/list/ai_verbs_default = list( var/datum/ai_icon/selected_sprite // The selected icon set var/custom_sprite = 0 // Whether the selected icon is custom var/carded + + // Multicam Vars + var/multicam_allowed = TRUE + var/multicam_on = FALSE + var/obj/screen/movable/pic_in_pic/ai/master_multicam + var/list/multicam_screens = list() + var/list/all_eyes = list() + var/max_multicams = 6 can_be_antagged = TRUE @@ -478,12 +486,27 @@ var/list/ai_verbs_default = list( return +/mob/living/silicon/ai/proc/camera_visibility(mob/observer/eye/aiEye/moved_eye) + cameranet.visibility(moved_eye, client, all_eyes) + +/mob/living/silicon/ai/forceMove(atom/destination) + . = ..() + if(.) + end_multicam() + /mob/living/silicon/ai/reset_view(atom/A) if(camera) camera.set_light(0) if(istype(A,/obj/machinery/camera)) camera = A - ..() + if(A != GLOB.ai_camera_room_landmark) + end_multicam() + . = ..() + if(.) + if(!A && isturf(loc) && eyeobj) + end_multicam() + client.eye = eyeobj + client.perspective = MOB_PERSPECTIVE if(istype(A,/obj/machinery/camera)) if(camera_light_on) A.set_light(AI_CAMERA_LUMINOSITY) else A.set_light(0) diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index b1398d3170..e155b8e005 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -94,6 +94,7 @@ spawn(20) to_chat(src, "Backup battery online. Scanners, camera, and radio interface offline. Beginning fault-detection.") + end_multicam() sleep(50) if (loc.power_equip) if (!istype(T, /turf/space)) diff --git a/code/modules/mob/living/silicon/ai/login.dm b/code/modules/mob/living/silicon/ai/login.dm index fa06162c31..57856a861f 100644 --- a/code/modules/mob/living/silicon/ai/login.dm +++ b/code/modules/mob/living/silicon/ai/login.dm @@ -1,4 +1,4 @@ -/mob/living/silicon/ai/Login() //ThisIsDumb(TM) TODO: tidy this up ¬_¬ ~Carn +/mob/living/silicon/ai/Login() //ThisIsDumb(TM) TODO: tidy this up �_� ~Carn ..() for(var/obj/effect/rune/rune in rune_list) client.images += rune.blood_image @@ -6,5 +6,7 @@ for(var/obj/machinery/ai_status_display/O in machines) //change status O.mode = 1 O.emotion = "Neutral" + if(multicam_on) + end_multicam() src.view_core() return \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/multicam.dm b/code/modules/mob/living/silicon/ai/multicam.dm new file mode 100644 index 0000000000..9a973e7fa3 --- /dev/null +++ b/code/modules/mob/living/silicon/ai/multicam.dm @@ -0,0 +1,260 @@ +//Picture in picture + +/obj/screen/movable/pic_in_pic/ai + var/mob/living/silicon/ai/ai + var/mutable_appearance/highlighted_background + var/highlighted = FALSE + var/mob/observer/eye/aiEye/pic_in_pic/aiEye + +/obj/screen/movable/pic_in_pic/ai/Initialize() + . = ..() + aiEye = new /mob/observer/eye/aiEye/pic_in_pic() + aiEye.screen = src + +/obj/screen/movable/pic_in_pic/ai/Destroy() + set_ai(null) + QDEL_NULL(aiEye) + return ..() + +/obj/screen/movable/pic_in_pic/ai/Click() + ..() + if(ai) + ai.select_main_multicam_window(src) + +/obj/screen/movable/pic_in_pic/ai/make_backgrounds() + ..() + highlighted_background = new /mutable_appearance() + highlighted_background.icon = 'icons/misc/pic_in_pic.dmi' + highlighted_background.icon_state = "background_highlight" + highlighted_background.layer = DISPOSAL_LAYER + highlighted_background.plane = PLATING_PLANE + +/obj/screen/movable/pic_in_pic/ai/add_background() + if((width > 0) && (height > 0)) + var/matrix/M = matrix() + M.Scale(width + 0.5, height + 0.5) + M.Translate((width-1)/2 * world.icon_size, (height-1)/2 * world.icon_size) + highlighted_background.transform = M + standard_background.transform = M + overlays += highlighted ? highlighted_background : standard_background + +/obj/screen/movable/pic_in_pic/ai/set_view_size(width, height, do_refresh = TRUE) + aiEye.static_visibility_range = (round(max(width, height) / 2) + 1) + if(ai) + ai.camera_visibility(aiEye) + ..() + +/obj/screen/movable/pic_in_pic/ai/set_view_center(atom/target, do_refresh = TRUE) + ..() + aiEye.setLoc(get_turf(target)) + +/obj/screen/movable/pic_in_pic/ai/refresh_view() + ..() + aiEye.setLoc(get_turf(center)) + +/obj/screen/movable/pic_in_pic/ai/proc/highlight() + if(highlighted) + return + highlighted = TRUE + overlays -= standard_background + overlays += highlighted_background + +/obj/screen/movable/pic_in_pic/ai/proc/unhighlight() + if(!highlighted) + return + highlighted = FALSE + overlays -= highlighted_background + overlays += standard_background + +/obj/screen/movable/pic_in_pic/ai/proc/set_ai(mob/living/silicon/ai/new_ai) + if(ai) + ai.multicam_screens -= src + ai.all_eyes -= aiEye + if(ai.master_multicam == src) + ai.master_multicam = null + if(ai.multicam_on) + unshow_to(ai.client) + ai = new_ai + if(new_ai) + new_ai.multicam_screens += src + ai.all_eyes += aiEye + if(new_ai.multicam_on) + show_to(new_ai.client) + +//Turf, area, and landmark for the viewing room + +/turf/unsimulated/ai_visible + name = "" + icon = 'icons/misc/pic_in_pic.dmi' + icon_state = "room_background" + flags = NOJAUNT + +/turf/unsimulated/ai_visible/Initialize() + . = ..() + +/area/ai_multicam_room + name = "ai_multicam_room" + icon_state = "ai_camera_room" + dynamic_lighting = FALSE + ambience = list() + +GLOBAL_DATUM(ai_camera_room_landmark, /obj/effect/landmark/ai_multicam_room) + +/obj/effect/landmark/ai_multicam_room + name = "ai camera room" + icon_state = "x" + +/obj/effect/landmark/ai_multicam_room/Initialize() + . = ..() + qdel(GLOB.ai_camera_room_landmark) + GLOB.ai_camera_room_landmark = src + +/obj/effect/landmark/ai_multicam_room/Destroy() + if(GLOB.ai_camera_room_landmark == src) + GLOB.ai_camera_room_landmark = null + return ..() + +//Dummy camera eyes + +/mob/observer/eye/aiEye/pic_in_pic + name = "Secondary AI Eye" + var/obj/screen/movable/pic_in_pic/ai/screen + var/list/cameras_telegraphed = list() + var/telegraph_cameras = TRUE + var/telegraph_range = 7 + +/mob/observer/eye/aiEye/pic_in_pic/GetViewerClient() + if(screen && screen.ai) + return screen.ai.client + +/mob/observer/eye/aiEye/pic_in_pic/setLoc(turf/T) + T = get_turf(T) + forceMove(T) + if(screen && screen.ai) + screen.ai.camera_visibility(src) + else + cameranet.visibility(src) + update_camera_telegraphing() + +/mob/observer/eye/aiEye/pic_in_pic/proc/update_camera_telegraphing() + if(!telegraph_cameras) + return + var/list/obj/machinery/camera/add = list() + var/list/obj/machinery/camera/remove = list() + var/list/obj/machinery/camera/visible = list() + for(var/VV in visibleChunks) + var/datum/chunk/camera/CC = VV + for(var/V in CC.cameras) + var/obj/machinery/camera/C = V + if (!C.can_use() || (get_dist(C, src) > telegraph_range)) + continue + visible |= C + + add = visible - cameras_telegraphed + remove = cameras_telegraphed - visible + + for(var/V in remove) + var/obj/machinery/camera/C = V + if(QDELETED(C)) + continue + cameras_telegraphed -= C + C.in_use_lights-- + C.update_icon() + for(var/V in add) + var/obj/machinery/camera/C = V + if(QDELETED(C)) + continue + cameras_telegraphed |= C + C.in_use_lights++ + C.update_icon() + +/mob/observer/eye/aiEye/pic_in_pic/proc/disable_camera_telegraphing() + telegraph_cameras = FALSE + for(var/V in cameras_telegraphed) + var/obj/machinery/camera/C = V + if(QDELETED(C)) + continue + C.in_use_lights-- + C.update_icon() + cameras_telegraphed.Cut() + +/mob/observer/eye/aiEye/pic_in_pic/Destroy() + disable_camera_telegraphing() + if(screen && screen.ai) + screen.ai.all_eyes -= src + return ..() + +//AI procs + +/mob/living/silicon/ai/proc/drop_new_multicam(silent = FALSE) + if(!multicam_allowed) + if(!silent) + to_chat(src, "This action is currently disabled. Contact an administrator to enable this feature.") + return + if(!eyeobj) + return + if(multicam_screens.len >= max_multicams) + if(!silent) + to_chat(src, "Cannot place more than [max_multicams] multicamera windows.") + return + var/obj/screen/movable/pic_in_pic/ai/C = new /obj/screen/movable/pic_in_pic/ai() + C.set_view_size(3, 3, FALSE) + C.set_view_center(get_turf(eyeobj)) + C.set_ai(src) + if(!silent) + to_chat(src, "Added new multicamera window.") + return C + +/mob/living/silicon/ai/proc/toggle_multicam() + if(!multicam_allowed) + to_chat(src, "This action is currently disabled. Contact an administrator to enable this feature.") + return + if(multicam_on) + end_multicam() + else + start_multicam() + +/mob/living/silicon/ai/proc/start_multicam() + if(multicam_on || aiRestorePowerRoutine || !isturf(loc)) + return + if(!GLOB.ai_camera_room_landmark) + to_chat(src, "This function is not available at this time.") + return + multicam_on = TRUE + refresh_multicam() + to_chat(src, "Multiple-camera viewing mode activated.") + +/mob/living/silicon/ai/proc/refresh_multicam() + reset_view(GLOB.ai_camera_room_landmark) + if(client) + for(var/V in multicam_screens) + var/obj/screen/movable/pic_in_pic/P = V + P.show_to(client) + +/mob/living/silicon/ai/proc/end_multicam() + if(!multicam_on) + return + multicam_on = FALSE + select_main_multicam_window(null) + if(client) + for(var/V in multicam_screens) + var/obj/screen/movable/pic_in_pic/P = V + P.unshow_to(client) + reset_view() + to_chat(src, "Multiple-camera viewing mode deactivated.") + + +/mob/living/silicon/ai/proc/select_main_multicam_window(obj/screen/movable/pic_in_pic/ai/P) + if(master_multicam == P) + return + + if(master_multicam) + master_multicam.set_view_center(get_turf(eyeobj), FALSE) + master_multicam.unhighlight() + master_multicam = null + + if(P) + P.highlight() + eyeobj.setLoc(get_turf(P.center)) + P.set_view_center(eyeobj) + master_multicam = P diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 2e42d6d92c..b98340baef 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -410,7 +410,7 @@ return /mob/living/silicon/reset_view() - ..() + . = ..() if(cameraFollow) cameraFollow = null diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index d819630405..6232f90dd7 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -229,7 +229,7 @@ else client.perspective = EYE_PERSPECTIVE client.eye = loc - return + return 1 /mob/proc/show_inv(mob/user as mob) diff --git a/icons/misc/pic_in_pic.dmi b/icons/misc/pic_in_pic.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9c550f3c25ecdf6817afd63dc0843875e245dfaa GIT binary patch literal 3370 zcmb_f=|2?g8h&PwF{Z}a8)GTTlCtF;TV_T?Bug4)CtEK@k*y3yie#&heTgvkX=EZ| zI3i0?#*(o{WGhR^HqLa;KX5*r5BGEbo-g-uUDy5GzbD4r)bJo&6b=A5XmmmUGTZ0< zG1vk28QbG=n(b(JuUzxjcf0N4_s=c=e{T8!5S$g?^8p^IjNo3ry(Xkv<+8|2yQrim zBJoT3MWwav?)Mwovtwc0&JHrhiafik$e5LkF)B3aY-CQBI!!O3cxU)h^XSU zgE?t~AN|**%0yqDtDzNtBNtZff4Yn+L>2g_**;P^Enu>WXe1uFOHr^$R0IH_WTdZq zB{*v-Th~jhL%4mvg7ECYHQu)!Lr)H2ju^%Yiy$!in)=<%b>Aq(ny_k0$WWRcROYX6 z==ihIOe!C*Nw03MZnSQ6>tB(&Ews2^XXMj@4rBM4hD5OXH7eYBP3=Wb2c5@6R&^M99>z}v=2dHi(K%tgkj6X zMCSg4wTy|QP2d<>*?;L0TC1t(He;&jwslkIUV`Mi6sR2WdDMms)=nSeibJJ9BCQQP zT((=t=##c6R4J&P6ou?=3#m=xbrLpcP)g0Gtqp5nCryu|74}AFRFIddoj&oj9|tLy zQh+~N=F|MP(`uo14ptVT0Wqlt$H4>RHhG{lLsC>wpP%n-OEkxh5qY!R`1paOLnvIa zkavFG+(Q~V(HyIFRQb(t_QgvUZrXA2v7pwsE<~>aS?b-eB}A^Nw_qYH>#GSjR|~vy zU#GY6>{LI?5$wEzlGzR5L-QCra(|!a!I{DEK!5}V7)UGV^{k+J#|)2*Jfsf( zw}NTIiDN!BR(%F83GeP;mNmPMl3=9R7TMl8vHq`DgqNTHI3T~Npa#)TRq82@ZxhqX zmbR-8v}Z0)ZZd;?_YO-m?F|Jt_h5JV)i-h{oBM?cnURs9t{5}Zglx|s#&%v=eCI%0 zTj7fqp2EPZZh9s1hi$TQa!zW$4x~lSbe#2R8s<9uY0d4}}90~&e`SiGj=-XO9-q(&x*EiOoKk`xcznT2ripB;; z{#=KC4BLY%RgRy_?|4>RjJ=`#U0RB?!b3mF5ylI6FV@Ch=W|b|3@_lgvQa#g1&RY9np2PQQI6%cS^%8)F%fJn3W zcpsFXaf~|2;rC2e9}pj_I^`-z${}r;Ubp1!&1KuQQ2YQn5I~Px_56!Y->rJ&C(d`o ze(7Uj5t%C9)^;9@n0p4{(a9N7@*JgB_25;R3!D-2gG`8$w;!UZZ+)uiVVX?AoOHNP zc{HA*S(YbUO7CsQQ(z=RU?oB+{dg5GD^$vZXJ3}vSZMe0Zq(KK2mLFVU9~Uw5iv7i zltd9_|5{Ey4qS!<`0h?u6CV-%J$v!uZ|%U9uiK}IYujSG|jV19p#63mVFfLSacqCPtA~G=9ka z6QE4Od_jk?Aw{~yMOT9G>VrN7ApfsxIPp^QQb}R#Nz~xeM@FySVA6{51iq2qzH~P@6W6mKrV)KeJ4q{P@qo(K-`Ro?L?RwZ{&vVS zgdbN6ok%5dNs;D+Ny*Nq@($q{8;UjBo_AW?qHLsJ3~=Mo0wh7Y8ZT~x1D+CR2^<&@ zdn+GC$IE!h=V9=1Xu#LfYTtD8SkU5{$7dh)X85+XMX5I)&5kIDbA}ZqD;f}_p)gAj z_8v$9`<;dlSKvnzrWnzZ#0Nr-&B2vK2af`;s_Kp=_4SDBmI2)}0eq~oa7o`Fp%369w3?hp#ajDISEzba68i3 znxdtN{_+sC96#Wy{;;EJE(_)qTz(gKI>?;KCPf%Dah~FXm{frm2p32IIiD6(GHTH! zjYcy>kJVtv)F&Vd6j=kRq&e9&3;OV@hH2Rhu5=2$Cex>qIe4djRcS^wch&b0t)@m; zUi?6dKBBqrEa!ud`kY7Arw-%ZUjXp(R@{)bAD2VJP#k+|Qsok+)Y#i1XTjUfDtTlG zmPc$f21U22@E@P|{iEtaU72IkhJ%=!XG|ft#$ykru%ueQMT!*0FDywLha}~eV$6Ls z>qZ9P!Z)p&rAW#vGN5kqFpm5u(I2SGgDto@e+N#(8-6X2?CN!i5tr-BsLvTfdQ}`Y zg!YV?CG!z)0^xkcfTzu<-!E?;AALZd8=tq$^O0nCFYjQa@Fl3E91^So67URo{C5=lFyfGdH3V|F|X_vMZLY5uJH}WpQGc=-JcPk z)lUEJ-E!1s>aN}5N4|^?sSXr*4e$Hg4eNxg+#}@@{Y2v1?7|N{bEC(O#96l>2WY?9HQmyySdV= z4~MQNj^0Bi?T1vWzeHn+GTo|RY4Yed|HK1Q(_`0nxc zN9JaG>fqJwwL0$;Wm4E#TL(vZyQ!e?9liZG__B$!$fv?*^@Ai{qnkLKEJioVcY1I$ zmcK13?{S5hd?`68IIlV`w>x{r8E?z%PF116o-COYuk>%Nrc*|&Qn#*{t4=iK?!Mmi z{4}z$xYxxl-QlY^nAq%UQr+InKLmRSK)p7<^^Af?ZTZIR(=8JgbFGIvp@eGt>;!k! zKRMN%VRVV)Vf&PWg++HL5hRKP?Ux^m%ZiWDh`-2Y?(91T6uYt2n`L$U3( zIk21ft`6kALdmqw_VG0Q;!tM%@j|Lc+t((Et4a*BV}Ov0RX>&7bWulRNU}5aWZC>K z@A{c_k;gkh0^Py6koHfq9VC|Wx`_EQ>gO4!Y}SMAbTZ-wO2cTi%fjD~91+t=+JITN)?o%us&JdZC90|-ObF5$rq}`}MW%G7fjZN2neg#pjeMwaE@^ptKKj|eys3WWIj4L7 E2DHmSY5)KL literal 0 HcmV?d00001 diff --git a/icons/mob/screen_ai.dmi b/icons/mob/screen_ai.dmi index ad813aad751431f9eac707d5979d4d4ded54cb4f..ce12203c7cc5da1b3a699c8a446f25948949ef90 100644 GIT binary patch delta 2417 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 delta 2267 zcmV<12qgFK6WS7xmw)DZR9JLGWpiV4X>fFDZ*Bkpc$|%rO^(7a429RtDI(a9hGDjB z5D2jtt`K=rLoM=y9JjqbX)DccAp~e0?aYsfYey$TO+S(VDcx`1ZgRfd zb>&+0-#g+zacTXxyYHute80N}J$~T6Bk=^Ep$C8uwm*gt2q6Hv`X7wc1eZe2BbZ3Z zLJvv_XJV&4>Zw3YaQUgDEawme5RsEC^awDT$hHTeiGSGBR0MxM1kpS}fYyr|f@q!+ z5co9&8;XTqXj6$64Z(-9ms>)%6Y|yLFD*f5o(cqIK@cLrU?M|M3t5TKEy1#vn=535 z5Deydg0dnAP8&=tI-)qg7M7bovHb}RYzY><-1flURq~YhZR33Ymq=-bj3hZxH+hhCK!)IGB)Rt!8YE~fGz~!}Q8#089O{^{nE0UeLT)6< z!haDwHFKKc3K?N$Gk&trjKwTI(nGo?*vw|48z!j<^1|o=1UDa~1P#rD%yf$-SWjp^ zG@}M?J~(U7O;`_JlZ**+Q~qPuBxmR^LU2#}i!aQl3->E1ZH)Cdxyi-l(m^oSUwN9j z^hmLBB>8y#?yL2i>UVPjej4ZAhIk^(|GM;Jkk4`BB6*L6jju6$q)t=oMOmsDHPs zC9T$4zo~u~0oIOM6SQ&C_dzt^$%|Sf8o=uD3Q@n-`c3t_Ot7T5CyGmgx=YYFf|?`f z8TIOSZn4%l>YhAU5;Prx)<@)%?_%nMIZoO7ou@(_bZnYfe71*|mlv)FGC|jcEPp|3U!(6;pYT`{Y#o&ne13kmFaN#p1b_Vs1PxCx z`JkZ$8-ORg6pkQq)P|t*!PnD_U^j}NB%^N$8ix>%)CZ}fHa=*B__gPQDG_5Aas+#N zj-c^QSQ2ceIvs+q9X;4FZuL@+6iL6Xtez)mD8X5jhPJOgeI9GAjK*TB=YM@r5+7ux zCFuD5=JYsONrZ4N&=BnF*(k=GTSqY~L@!*0Scu<$IQ?TKJM=su$r73neDxyw=!i%Kf9lNCc#<#E`P2}WE`&<{pgPT7J^mztR^_C-&sI;OGk%bXK&YLf>6}f zXpMSOze}3~<&>b5A0-H(AxCglzdQNuMH>j(A{QkX`sS~#-~1iyd8o>hlwevoFGerT zy7k^~FWNvb8d&bD3EeLLp~&Q@&g4~s+t8G_I!7~XI@UVj*Zyn##w*R_Q% z!BD(eG)vGi><~2W9qAC5)(7qTZ*oQuB7Nu(Oyw`b5GWRdRVO6ZC&T zG6aJUDkLbp6HtPsfqxx>e0^?99`inU@0?h83-?BGnL`6YhM;7s?C}bXab-jQuM@@5 z0qqVxLeSpkQ3&u|+4})4!D{~+a0JKoyD>p8(rry-#^MbG!$)HKwm#Ue&t-y`0+c zjEm-EJ~*r2jR{J3lgW?848dvpW{YP-aB_vGxNEYbmpKw;La=8(*zWJ#za}vwg6<6n zDP}*xfqoA`V+MMp@Fxqsmp4CuPyczVvdX>>wC@tU_J#Wuls3lto808$a_vrhej4~{ z1JBL$UvFT}-G9JTmuCA54=^wxsf$Z=zSh}acz}V4pIw&lPp=O47am|>2B@TJs!Ox| zg$EdzJ3lA_b09mzrW>c?};CO%G0S0;=XrIPd#p8O9BnyJ${e=e@82LGN ztM<>$se<6T4)zxwV4zQPmYgFA66_WZl?mEyTeuia+kdvg!uCLdu6P=K&#$QvVM#D( z96*p#*~dH&Bxs-AjIO1GdnpN)LydNymWLV`2nK*k_?I$@YjKaF9!n7Y3)VzXFk^8N z>3O4tM-q%791yw~9?WLK;{Qm3I>xYLsML_)1@d4;kekh17s1G>?}Ii*4vpf5pxYAN zBY3!h1ysTK0J7Uu-X-Wib7&rnB{`WM;+FmAgAX?_)Hh)>!NYyfJz!BSN3P5VL4^N% pVp|j+J)61qh5OZ)K5lZB{14BX?L=_FH{$>R002ovPDHLkV1l$wI+FkZ diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi index 1132fa10a9d488c5d4b29b28f3c9cbad98104c48..72a49c07c7b355ba01651a43c5ca3f6ed318bdeb 100644 GIT binary patch delta 7723 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 ~ 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 diff --git a/maps/tether/submaps/tether_misc.dmm b/maps/tether/submaps/tether_misc.dmm index e4aaa7a057..70496a763e 100644 --- a/maps/tether/submaps/tether_misc.dmm +++ b/maps/tether/submaps/tether_misc.dmm @@ -1,24704 +1,883 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/obj/machinery/vending/coffee, -/turf/unsimulated/beach/sand, -/area/beach) -"ab" = ( -/obj/structure/window/reinforced/holowindow{ - dir = 8 - }, -/obj/structure/flora/pottedplant{ - icon_state = "plant-10" - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_courtroom) -"ac" = ( -/obj/structure/window/reinforced/holowindow{ - dir = 8 - }, -/obj/structure/holostool, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_emptycourt) -"ad" = ( -/obj/machinery/door/window/holowindoor{ - dir = 8 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_courtroom) -"ae" = ( -/turf/unsimulated/mineral/virgo3b, -/area/space) -"af" = ( -/obj/structure/sign/warning/docking_area, -/turf/unsimulated/wall, -/area/centcom/simulated/terminal) -"ag" = ( -/obj/structure/flora/ausbushes/brflowers, -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 6 - }, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"ah" = ( -/obj/machinery/door/window/holowindoor{ - dir = 1; - name = "Jury Box" - }, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet{ - dir = 9 - }, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 5 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"ai" = ( -/obj/machinery/door/blast/regular{ - dir = 4 - }, -/turf/unsimulated/floor/techfloor_grid, -/area/centcom/simulated/terminal) -"aj" = ( -/obj/structure/sign/warning{ - name = "\improper STAND AWAY FROM TRACK EDGE" - }, -/turf/unsimulated/wall, -/area/centcom/simulated/terminal) -"ak" = ( -/obj/structure/table/woodentable/holotable, -/obj/structure/window/reinforced/holowindow{ - dir = 4 - }, -/obj/structure/window/reinforced/holowindow{ - dir = 1 - }, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_courtroom) -"al" = ( -/obj/structure/window/reinforced/holowindow{ - dir = 8 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_courtroom) -"am" = ( -/obj/machinery/door/window/holowindoor{ - dir = 8; - name = "Red Team" - }, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_emptycourt) -"an" = ( -/obj/structure/holostool, -/turf/simulated/floor/holofloor/desert, -/area/holodeck/source_picnicarea) -"ao" = ( -/obj/structure/flora/ausbushes/ywflowers, -/obj/effect/floor_decal/spline/fancy/wood{ - icon_state = "spline_fancy"; - dir = 9 - }, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"ap" = ( -/turf/space, -/area/space) -"aq" = ( -/obj/effect/step_trigger/teleporter/random, -/turf/space, -/area/space) -"ar" = ( -/turf/unsimulated/wall, -/area/space) -"as" = ( -/obj/structure/window/reinforced, -/turf/unsimulated/wall, -/area/space) -"at" = ( -/obj/structure/flora/ausbushes/brflowers, -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 5 - }, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"au" = ( -/obj/structure/bed/chair/holochair{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet/corners{ - icon_state = "carpet_corners"; - dir = 5 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"av" = ( -/obj/structure/bed/chair/holochair{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 5 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"aw" = ( -/obj/structure/table/woodentable/holotable, -/obj/structure/window/reinforced/holowindow{ - dir = 4 - }, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_courtroom) -"ax" = ( -/obj/structure/flora/ausbushes/brflowers, -/obj/effect/floor_decal/spline/fancy/wood/corner{ - dir = 4 - }, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"ay" = ( -/obj/structure/bed/chair/holochair{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"az" = ( -/obj/structure/bed/chair/holochair{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"aA" = ( -/obj/structure/flora/ausbushes/ywflowers, -/obj/effect/floor_decal/spline/fancy/wood{ - icon_state = "spline_fancy"; - dir = 10 - }, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"aB" = ( -/obj/structure/flora/ausbushes/brflowers, -/obj/effect/floor_decal/spline/fancy/wood/corner{ - dir = 8 - }, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"aC" = ( -/obj/machinery/door/window/holowindoor{ - base_state = "right"; - dir = 8; - icon_state = "right" - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_courtroom) -"aD" = ( -/obj/machinery/door/window/holowindoor{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Green Team" - }, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_emptycourt) -"aE" = ( -/obj/structure/bed/chair/holochair{ - dir = 4 - }, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet{ - dir = 10 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"aF" = ( -/obj/structure/bed/chair/holochair{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 6 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"aG" = ( -/obj/structure/window/reinforced/holowindow{ - dir = 8 - }, -/obj/structure/holostool, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"aH" = ( -/obj/structure/window/reinforced/holowindow{ - dir = 8 - }, -/obj/structure/holostool, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"aI" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/unsimulated/wall, -/area/space) -"aJ" = ( -/turf/simulated/floor/holofloor/desert, -/area/holodeck/source_desert) -"aK" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/turf/simulated/floor/holofloor/desert, -/area/holodeck/source_desert) -"aL" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/unsimulated/wall, -/area/space) -"aM" = ( -/obj/structure/flora/ausbushes/fullgrass, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"aN" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"aO" = ( -/obj/structure/table/rack/holorack, -/obj/item/clothing/under/dress/dress_saloon, -/obj/item/clothing/head/pin/flower, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_theatre) -"aP" = ( -/obj/effect/landmark/costume, -/obj/structure/table/rack/holorack, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_theatre) -"aQ" = ( -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_courtroom) -"aR" = ( -/obj/machinery/door/window/holowindoor{ - dir = 8; - name = "Red Team" - }, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_basketball) -"aS" = ( -/obj/structure/table/woodentable/holotable, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_courtroom) -"aT" = ( -/turf/simulated/floor/holofloor/reinforced, -/area/holodeck/source_wildlife) -"aU" = ( -/turf/simulated/floor/holofloor/reinforced, -/area/holodeck/source_plating) -"aV" = ( -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_emptycourt) -"aW" = ( -/obj/structure/holostool, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_emptycourt) -"aX" = ( -/obj/machinery/door/window/holowindoor{ - dir = 8; - name = "Red Team" - }, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_thunderdomecourt) -"aY" = ( -/obj/effect/floor_decal/corner/red/full{ - dir = 8 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_emptycourt) -"aZ" = ( -/obj/effect/floor_decal/corner/red{ - dir = 5 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_emptycourt) -"ba" = ( -/obj/effect/floor_decal/corner/red/full{ - dir = 1 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_emptycourt) -"bb" = ( -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/unsimulated/wall, -/area/space) -"bc" = ( -/turf/simulated/shuttle/wall, -/area/shuttle/supply) -"bd" = ( -/obj/structure/flora/ausbushes/fullgrass, -/turf/simulated/floor/holofloor/desert, -/area/holodeck/source_desert) -"be" = ( -/obj/structure/flora/ausbushes/ywflowers, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"bf" = ( -/obj/structure/flora/ausbushes/brflowers, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"bg" = ( -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_theatre) -"bh" = ( -/obj/machinery/door/window/holowindoor{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Green Team" - }, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_basketball) -"bi" = ( -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_courtroom) -"bj" = ( -/obj/effect/landmark{ - name = "Holocarp Spawn" - }, -/turf/simulated/floor/holofloor/reinforced, -/area/holodeck/source_wildlife) -"bk" = ( -/obj/effect/floor_decal/corner/red{ - dir = 9 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_emptycourt) -"bl" = ( -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_emptycourt) -"bm" = ( -/obj/effect/floor_decal/corner/red{ - dir = 6 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_emptycourt) -"bn" = ( -/turf/simulated/shuttle/floor, -/area/shuttle/supply) -"bo" = ( -/obj/structure/flora/ausbushes/brflowers, -/obj/effect/floor_decal/spline/fancy/wood/corner, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"bp" = ( -/obj/structure/flora/ausbushes/ywflowers, -/obj/effect/floor_decal/spline/fancy/wood, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"bq" = ( -/obj/structure/flora/ausbushes/brflowers, -/obj/effect/floor_decal/spline/fancy/wood, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"br" = ( -/obj/machinery/door/window/holowindoor{ - base_state = "right"; - dir = 8; - icon_state = "right"; - name = "Green Team" - }, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_thunderdomecourt) -"bs" = ( -/turf/simulated/fitness, -/area/holodeck/source_boxingcourt) -"bt" = ( -/obj/structure/bed/chair/holochair, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_courtroom) -"bu" = ( -/obj/structure/fitness/boxing_ropes{ - dir = 1 - }, -/obj/structure/fitness/boxing_turnbuckle{ - dir = 8; - layer = 3.4 - }, -/turf/simulated/fitness, -/area/holodeck/source_boxingcourt) -"bv" = ( -/obj/structure/window/reinforced/holowindow{ - dir = 1 - }, -/obj/structure/table/woodentable/holotable, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_courtroom) -"bw" = ( -/obj/structure/fitness/boxing_ropes{ - dir = 1 - }, -/turf/simulated/fitness, -/area/holodeck/source_boxingcourt) -"bx" = ( -/obj/structure/fitness/boxing_ropes{ - dir = 1 - }, -/obj/structure/fitness/boxing_turnbuckle{ - dir = 4; - layer = 3.4 - }, -/turf/simulated/fitness, -/area/holodeck/source_boxingcourt) -"by" = ( -/obj/machinery/light{ - dir = 8; - icon_state = "tube1"; - pixel_y = 0 - }, -/turf/simulated/shuttle/floor, -/area/shuttle/supply) -"bz" = ( -/obj/machinery/light{ - dir = 4 - }, -/turf/simulated/shuttle/floor, -/area/shuttle/supply) -"bA" = ( -/obj/structure/fitness/boxing_ropes{ - dir = 8 - }, -/turf/simulated/fitness, -/area/holodeck/source_boxingcourt) -"bB" = ( -/turf/simulated/floor/holofloor/desert, -/area/holodeck/source_picnicarea) -"bC" = ( -/obj/structure/fitness/boxing_ropes{ - dir = 4 - }, -/turf/simulated/fitness, -/area/holodeck/source_boxingcourt) -"bD" = ( -/obj/structure/fitness/boxing_turnbuckle{ - dir = 8 - }, -/obj/structure/fitness/boxing_ropes_bottom, -/turf/simulated/fitness, -/area/holodeck/source_boxingcourt) -"bE" = ( -/obj/structure/fitness/boxing_ropes_bottom, -/turf/simulated/fitness, -/area/holodeck/source_boxingcourt) -"bF" = ( -/obj/structure/fitness/boxing_turnbuckle{ - dir = 4 - }, -/obj/structure/fitness/boxing_ropes_bottom, -/turf/simulated/fitness, -/area/holodeck/source_boxingcourt) -"bG" = ( -/obj/effect/floor_decal/spline/plain{ - dir = 1 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_theatre) -"bH" = ( -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 5 - }, -/obj/effect/floor_decal/carpet{ - dir = 9 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_theatre) -"bI" = ( -/obj/structure/window/reinforced/holowindow, -/obj/machinery/door/window/holowindoor{ - dir = 1; - name = "Court Reporter's Box" - }, -/obj/structure/bed/chair/holochair, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_courtroom) -"bJ" = ( -/obj/structure/table/woodentable/holotable, -/obj/structure/window/reinforced/holowindow, -/obj/structure/window/reinforced/holowindow{ - dir = 8 - }, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_courtroom) -"bK" = ( -/obj/structure/table/woodentable/holotable, -/obj/structure/window/reinforced/holowindow, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_courtroom) -"bL" = ( -/obj/structure/table/woodentable/holotable, -/obj/structure/window/reinforced/holowindow, -/obj/structure/window/reinforced/holowindow{ - dir = 4 - }, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_courtroom) -"bM" = ( -/obj/structure/window/reinforced/holowindow, -/obj/machinery/door/window/holowindoor{ - base_state = "right"; - dir = 1; - icon_state = "right"; - name = "Witness Box" - }, -/obj/structure/bed/chair/holochair, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_courtroom) -"bN" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_l" - }, -/turf/space, -/turf/simulated/shuttle/plating/airless/carry{ - dir = 1 - }, -/area/shuttle/supply) -"bO" = ( -/obj/structure/shuttle/engine/propulsion, -/turf/space, -/turf/simulated/shuttle/plating/airless/carry{ - dir = 1 - }, -/area/shuttle/supply) -"bP" = ( -/obj/structure/shuttle/engine/propulsion, -/obj/effect/shuttle_landmark{ - base_area = /area/space; - base_turf = /turf/space; - landmark_tag = "supply_cc"; - name = "Centcom Supply Depot" - }, -/turf/space, -/turf/simulated/shuttle/plating/airless/carry{ - dir = 1 - }, -/area/shuttle/supply) -"bQ" = ( -/obj/machinery/door/airlock/glass_external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "supply_shuttle_hatch"; - locked = 1; - name = "Shuttle Hatch" - }, -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2" - }, -/turf/simulated/shuttle/plating, -/area/shuttle/supply) -"bR" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad2" - }, -/turf/simulated/shuttle/floor, -/area/shuttle/supply) -"bS" = ( -/obj/structure/table/woodentable/holotable, -/turf/simulated/floor/holofloor/desert, -/area/holodeck/source_picnicarea) -"bT" = ( -/obj/structure/shuttle/engine/propulsion{ - icon_state = "burst_r" - }, -/turf/space, -/turf/simulated/shuttle/plating/airless/carry{ - dir = 1 - }, -/area/shuttle/supply) -"bU" = ( -/obj/structure/flora/ausbushes/ywflowers, -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 4 - }, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"bV" = ( -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_theatre) -"bW" = ( -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 9 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_theatre) -"bX" = ( -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_theatre) -"bY" = ( -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 5 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_theatre) -"bZ" = ( -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_theatre) -"ca" = ( -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 9 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"cb" = ( -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"cc" = ( -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 5 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"ce" = ( -/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b, -/turf/space/transit/south, -/area/space) -"cf" = ( -/turf/space/transit/south, -/area/space) -"cg" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - name = "thrower_leftnostop" - }, -/turf/space/transit/south, -/area/space) -"ch" = ( -/obj/effect/shuttle_landmark/transit{ - base_area = /area/space; - base_turf = /turf/space/transit/east; - landmark_tag = "belter_transit"; - name = "Belter Transit" - }, -/turf/space/transit/south, -/area/space) -"cj" = ( -/obj/effect/floor_decal/industrial/warning{ - icon_state = "warning"; - dir = 9 - }, -/turf/simulated/floor/tiled/steel, -/area/space) -"cs" = ( -/obj/machinery/door/airlock/glass_external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "supply_shuttle_hatch"; - locked = 1; - name = "Shuttle Hatch" - }, -/turf/simulated/shuttle/floor, -/area/shuttle/supply) -"ct" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_theatre) -"cu" = ( -/obj/structure/holostool, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_theatre) -"cv" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_theatre) -"cw" = ( -/obj/structure/table/woodentable/holotable, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"cx" = ( -/obj/structure/table/woodentable/holotable, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"cy" = ( -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"cz" = ( -/obj/structure/table/woodentable/holotable, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"cA" = ( -/obj/effect/floor_decal/corner/green{ - dir = 9 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_emptycourt) -"cB" = ( -/obj/effect/floor_decal/corner/green{ - dir = 6 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_emptycourt) -"cC" = ( -/obj/effect/step_trigger/lost_in_space/tram, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"cO" = ( -/obj/machinery/embedded_controller/radio/simple_docking_controller{ - frequency = 1380; - id_tag = "supply_shuttle"; - pixel_x = -25; - pixel_y = 0; - req_one_access = list(13,31); - tag_door = "supply_shuttle_hatch" - }, -/turf/simulated/shuttle/floor, -/area/shuttle/supply) -"cP" = ( -/obj/structure/flora/ausbushes/ywflowers, -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 1 - }, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"cQ" = ( -/obj/structure/flora/ausbushes/brflowers, -/obj/effect/floor_decal/spline/fancy/wood{ - dir = 1 - }, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"cS" = ( -/obj/structure/bed/chair/holochair{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"cT" = ( -/obj/structure/bed/chair/holochair{ - dir = 1 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"cU" = ( -/obj/structure/bed/chair/holochair{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"da" = ( -/obj/structure/flora/ausbushes/brflowers, -/obj/effect/floor_decal/spline/fancy/wood/corner{ - dir = 1 - }, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/source_picnicarea) -"dd" = ( -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"de" = ( -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"dg" = ( -/turf/unsimulated/wall{ - icon = 'icons/turf/transit_vr.dmi' - }, -/area/space) -"dh" = ( -/obj/machinery/door/airlock/glass_external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "supply_shuttle_hatch"; - locked = 1; - name = "Shuttle Hatch" - }, -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/turf/simulated/shuttle/plating, -/area/shuttle/supply) -"di" = ( -/obj/machinery/conveyor{ - dir = 4; - id = "QMLoad" - }, -/turf/simulated/shuttle/floor, -/area/shuttle/supply) -"dj" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 10 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_theatre) -"dk" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_theatre) -"dl" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 6 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_theatre) -"dm" = ( -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 6 - }, -/obj/effect/floor_decal/carpet{ - dir = 10 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_theatre) -"dq" = ( -/obj/structure/flora/pottedplant{ - icon_state = "plant-06" - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_theatre) -"dr" = ( -/obj/effect/floor_decal/carpet{ - dir = 5 - }, -/obj/effect/floor_decal/carpet{ - dir = 6 - }, -/obj/effect/floor_decal/carpet{ - dir = 10 - }, -/obj/effect/floor_decal/carpet{ - dir = 9 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_theatre) -"ds" = ( -/obj/structure/bed/chair/holochair{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 10 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"dt" = ( -/obj/structure/bed/chair/holochair{ - dir = 1 - }, -/obj/effect/floor_decal/carpet, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"du" = ( -/obj/structure/bed/chair/holochair{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 6 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_courtroom) -"dv" = ( -/obj/effect/floor_decal/corner/green/full, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_emptycourt) -"dw" = ( -/obj/effect/floor_decal/corner/green{ - dir = 10 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_emptycourt) -"dx" = ( -/obj/effect/floor_decal/corner/green/full{ - dir = 4 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_emptycourt) -"dz" = ( -/obj/effect/floor_decal/transit/orange{ - dir = 8 - }, -/obj/effect/transit/light{ - dir = 8 - }, -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 2; - name = "thrower_throwdownside"; - nostop = 1; - stopper = 0; - tiles = 0 - }, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"dA" = ( -/obj/structure/window/reinforced, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/unsimulated/wall, -/area/space) -"dB" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/structure/window/reinforced, -/turf/unsimulated/wall, -/area/space) -"dE" = ( -/obj/structure/shuttle/engine/heater, -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/simulated/floor/airless, -/area/shuttle/supply) -"dF" = ( -/turf/simulated/floor/holofloor/space, -/area/holodeck/source_space) -"dG" = ( -/turf/simulated/floor/holofloor/snow, -/area/holodeck/source_snowfield) -"dH" = ( -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_meetinghall) -"dI" = ( -/obj/structure/flora/pottedplant{ - icon_state = "plant-06" - }, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_meetinghall) -"dJ" = ( -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_basketball) -"dK" = ( -/obj/structure/holostool, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"dM" = ( -/obj/effect/floor_decal/corner/red/full{ - dir = 8 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"dN" = ( -/obj/effect/floor_decal/corner/red{ - dir = 5 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"dO" = ( -/obj/structure/holohoop, -/obj/effect/floor_decal/corner/red{ - dir = 5 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"dP" = ( -/obj/effect/floor_decal/corner/red/full{ - dir = 1 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"dQ" = ( -/turf/simulated/floor/holofloor/beach/sand, -/area/holodeck/source_beach) -"dR" = ( -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_thunderdomecourt) -"dS" = ( -/obj/structure/holostool, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"dU" = ( -/obj/structure/table/holotable, -/obj/machinery/readybutton{ - pixel_y = 0 - }, -/obj/effect/floor_decal/corner/red/full{ - dir = 8 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"dV" = ( -/obj/structure/table/holotable, -/obj/item/clothing/head/helmet/thunderdome, -/obj/item/clothing/suit/armor/tdome/red, -/obj/item/clothing/under/color/red, -/obj/item/weapon/holo/esword/red, -/obj/effect/floor_decal/corner/red{ - dir = 5 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"dW" = ( -/obj/structure/table/holotable, -/obj/effect/floor_decal/corner/red/full{ - dir = 1 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"dX" = ( -/obj/structure/table/holotable, -/obj/item/clothing/gloves/boxing/hologlove, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_boxingcourt) -"dY" = ( -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_boxingcourt) -"dZ" = ( -/turf/unsimulated/wall, -/area/centcom/simulated/terminal) -"ec" = ( -/obj/effect/landmark{ - name = "Holocarp Spawn Random" - }, -/turf/simulated/floor/holofloor/space, -/area/holodeck/source_space) -"ed" = ( -/obj/structure/flora/grass/both, -/turf/simulated/floor/holofloor/snow, -/area/holodeck/source_snowfield) -"ee" = ( -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 9 - }, -/obj/effect/floor_decal/carpet{ - dir = 10 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_meetinghall) -"ef" = ( -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_meetinghall) -"eg" = ( -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 5 - }, -/obj/effect/floor_decal/carpet{ - dir = 6 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_meetinghall) -"eh" = ( -/obj/effect/floor_decal/corner/red{ - dir = 9 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"ei" = ( -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"ej" = ( -/obj/effect/floor_decal/corner/red{ - dir = 6 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"ek" = ( -/obj/effect/overlay/palmtree_r, -/turf/simulated/floor/holofloor/beach/sand, -/area/holodeck/source_beach) -"el" = ( -/obj/effect/floor_decal/corner/red{ - dir = 9 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"em" = ( -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"en" = ( -/obj/effect/floor_decal/corner/red{ - dir = 6 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"eo" = ( -/obj/structure/holostool, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_boxingcourt) -"ep" = ( -/obj/structure/flora/tree/pine, -/turf/simulated/floor/holofloor/snow, -/area/holodeck/source_snowfield) -"eq" = ( -/obj/structure/table/woodentable/holotable, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/source_meetinghall) -"es" = ( -/obj/item/clothing/glasses/sunglasses, -/turf/simulated/floor/holofloor/beach/sand, -/area/holodeck/source_beach) -"et" = ( -/obj/effect/overlay/palmtree_l, -/obj/effect/overlay/coconut, -/turf/simulated/floor/holofloor/beach/sand, -/area/holodeck/source_beach) -"eJ" = ( -/obj/structure/flora/tree/dead, -/turf/simulated/floor/holofloor/snow, -/area/holodeck/source_snowfield) -"eK" = ( -/turf/simulated/floor/holofloor/lino, -/area/holodeck/source_meetinghall) -"eL" = ( -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_meetinghall) -"eM" = ( -/obj/item/weapon/beach_ball, -/turf/simulated/floor/holofloor/beach/sand, -/area/holodeck/source_beach) -"eS" = ( -/obj/effect/floor_decal/industrial/danger, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"eT" = ( -/obj/structure/flora/grass/green, -/turf/simulated/floor/holofloor/snow, -/area/holodeck/source_snowfield) -"eU" = ( -/obj/effect/floor_decal/carpet{ - dir = 5 - }, -/obj/effect/floor_decal/carpet{ - dir = 6 - }, -/obj/effect/floor_decal/carpet{ - dir = 9 - }, -/obj/effect/floor_decal/carpet{ - dir = 10 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_meetinghall) -"eV" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 9 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_meetinghall) -"eW" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_meetinghall) -"eX" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 5 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_meetinghall) -"eY" = ( -/obj/effect/floor_decal/corner/red/full, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"eZ" = ( -/obj/effect/floor_decal/corner/red{ - dir = 10 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"fa" = ( -/obj/item/weapon/beach_ball/holoball, -/obj/effect/floor_decal/corner/red{ - dir = 10 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"fb" = ( -/obj/effect/floor_decal/corner/red/full{ - dir = 4 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"fc" = ( -/obj/item/weapon/inflatable_duck, -/turf/simulated/floor/holofloor/beach/sand, -/area/holodeck/source_beach) -"fd" = ( -/obj/structure/window/reinforced/holowindow/disappearing, -/obj/effect/floor_decal/corner/red/full, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"fe" = ( -/obj/structure/window/reinforced/holowindow/disappearing, -/obj/effect/floor_decal/corner/red{ - dir = 10 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"ff" = ( -/obj/structure/window/reinforced/holowindow/disappearing, -/obj/effect/floor_decal/corner/red/full{ - dir = 4 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"fn" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_meetinghall) -"fo" = ( -/obj/structure/holostool, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_meetinghall) -"fp" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_meetinghall) -"fq" = ( -/obj/effect/floor_decal/corner/green/full{ - dir = 8 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"fr" = ( -/obj/effect/floor_decal/corner/green{ - dir = 5 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"fs" = ( -/obj/effect/floor_decal/corner/green/full{ - dir = 1 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"ft" = ( -/obj/structure/window/reinforced/holowindow/disappearing{ - dir = 1 - }, -/obj/effect/floor_decal/corner/green/full{ - dir = 8 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"fu" = ( -/obj/structure/window/reinforced/holowindow/disappearing{ - dir = 1 - }, -/obj/effect/floor_decal/corner/green{ - dir = 5 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"fv" = ( -/obj/structure/window/reinforced/holowindow/disappearing{ - dir = 1 - }, -/obj/effect/floor_decal/corner/green/full{ - dir = 1 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"fz" = ( -/obj/effect/floor_decal/corner/green{ - dir = 9 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"fA" = ( -/obj/effect/floor_decal/corner/green{ - dir = 6 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"fB" = ( -/obj/effect/floor_decal/corner/green{ - dir = 9 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"fC" = ( -/obj/effect/floor_decal/corner/green{ - dir = 6 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"fG" = ( -/obj/structure/flora/grass/brown, -/turf/simulated/floor/holofloor/snow, -/area/holodeck/source_snowfield) -"fH" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/turf/simulated/floor/holofloor/carpet{ - dir = 8 - }, -/area/holodeck/source_meetinghall) -"fJ" = ( -/obj/effect/floor_decal/corner/green{ - dir = 10 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"fK" = ( -/turf/unsimulated/beach/sand{ - icon_state = "beach" - }, -/area/holodeck/source_beach) -"fO" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 10 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_meetinghall) -"fP" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_meetinghall) -"fQ" = ( -/obj/structure/holostool, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 6 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/source_meetinghall) -"fR" = ( -/turf/simulated/floor/holofloor/beach/water, -/area/holodeck/source_beach) -"fS" = ( -/obj/effect/floor_decal/corner/green/full, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"fT" = ( -/obj/structure/holohoop{ - dir = 1 - }, -/obj/effect/floor_decal/corner/green{ - dir = 10 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"fU" = ( -/obj/effect/floor_decal/corner/green/full{ - dir = 4 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_basketball) -"fV" = ( -/obj/structure/table/holotable, -/obj/effect/floor_decal/corner/green/full, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"fW" = ( -/obj/structure/table/holotable, -/obj/item/clothing/head/helmet/thunderdome, -/obj/item/clothing/suit/armor/tdome/green, -/obj/item/clothing/under/color/green, -/obj/item/weapon/holo/esword/green, -/obj/effect/floor_decal/corner/green{ - dir = 10 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"fX" = ( -/obj/structure/table/holotable, -/obj/machinery/readybutton{ - pixel_y = 0 - }, -/obj/effect/floor_decal/corner/green/full{ - dir = 4 - }, -/turf/simulated/floor/holofloor/tiled, -/area/holodeck/source_thunderdomecourt) -"fY" = ( -/obj/structure/table/holotable, -/obj/item/clothing/gloves/boxing/hologlove{ - icon_state = "boxinggreen"; - item_state = "boxinggreen" - }, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/source_boxingcourt) -"fZ" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/turf/unsimulated/wall, -/area/space) -"ga" = ( -/turf/simulated/floor/holofloor/wood, -/area/holodeck/holodorm/source_basic) -"gb" = ( -/obj/structure/bed/chair/holochair{ - dir = 4 - }, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/holodorm/source_basic) -"gc" = ( -/obj/structure/table/woodentable/holotable, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/holodorm/source_basic) -"gd" = ( -/obj/structure/bed/chair/holochair{ - dir = 8 - }, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/holodorm/source_basic) -"ge" = ( -/obj/effect/overlay/palmtree_r, -/turf/simulated/floor/holofloor/beach/sand, -/area/holodeck/holodorm/source_beach) -"gf" = ( -/turf/simulated/floor/holofloor/beach/sand, -/area/holodeck/holodorm/source_beach) -"gg" = ( -/obj/effect/overlay/coconut, -/turf/simulated/floor/holofloor/beach/sand, -/area/holodeck/holodorm/source_beach) -"gh" = ( -/obj/item/clothing/glasses/sunglasses, -/turf/simulated/floor/holofloor/beach/sand, -/area/holodeck/holodorm/source_beach) -"gi" = ( -/obj/effect/overlay/palmtree_l, -/turf/simulated/floor/holofloor/beach/sand, -/area/holodeck/holodorm/source_beach) -"gj" = ( -/obj/structure/flora/grass/brown, -/obj/structure/flora/tree/dead, -/turf/simulated/floor/holofloor/snow, -/area/holodeck/holodorm/source_snow) -"gk" = ( -/turf/simulated/floor/holofloor/snow, -/area/holodeck/holodorm/source_snow) -"gl" = ( -/turf/unsimulated/beach/sand{ - icon_state = "beach" - }, -/area/holodeck/holodorm/source_beach) -"gm" = ( -/obj/effect/landmark{ - name = "Wolfgirl Spawn" - }, -/turf/simulated/floor/holofloor/snow, -/area/holodeck/holodorm/source_snow) -"gn" = ( -/obj/structure/flora/grass/brown, -/turf/simulated/floor/holofloor/snow, -/area/holodeck/holodorm/source_snow) -"go" = ( -/obj/structure/flora/grass/green, -/obj/structure/flora/tree/pine, -/turf/simulated/floor/holofloor/snow, -/area/holodeck/holodorm/source_snow) -"gq" = ( -/obj/structure/bed/holobed, -/turf/simulated/floor/holofloor/wood, -/area/holodeck/holodorm/source_basic) -"gr" = ( -/turf/simulated/floor/holofloor/beach/water, -/area/holodeck/holodorm/source_beach) -"gs" = ( -/obj/structure/flora/grass/green, -/turf/simulated/floor/holofloor/snow, -/area/holodeck/holodorm/source_snow) -"gt" = ( -/obj/structure/flora/grass/both, -/turf/simulated/floor/holofloor/snow, -/area/holodeck/holodorm/source_snow) -"gN" = ( -/obj/structure/flora/ausbushes/fullgrass, -/turf/simulated/floor/holofloor/desert, -/area/holodeck/holodorm/source_desert) -"gO" = ( -/turf/simulated/floor/holofloor/desert, -/area/holodeck/holodorm/source_desert) -"gP" = ( -/obj/structure/flora/ausbushes/sparsegrass, -/turf/simulated/floor/holofloor/desert, -/area/holodeck/holodorm/source_desert) -"gQ" = ( -/obj/structure/flora/ausbushes/brflowers, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/holodorm/source_garden) -"gR" = ( -/obj/structure/flora/ausbushes/ywflowers, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/holodorm/source_garden) -"gS" = ( -/turf/simulated/floor/holofloor/reinforced, -/area/holodeck/holodorm/source_off) -"gU" = ( -/obj/machinery/light, -/obj/effect/floor_decal/industrial/danger, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"hg" = ( -/obj/structure/flora/ausbushes/ywflowers, -/obj/effect/landmark{ - name = "Catgirl Spawn" - }, -/turf/simulated/floor/holofloor/grass, -/area/holodeck/holodorm/source_garden) -"hx" = ( -/turf/simulated/floor/holofloor/wood, -/area/holodeck/holodorm/source_seating) -"hy" = ( -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 9 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/holodorm/source_seating) -"hz" = ( -/obj/structure/bed/chair/holochair, -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/holodorm/source_seating) -"hA" = ( -/obj/effect/floor_decal/carpet{ - dir = 1 - }, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 5 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/holodorm/source_seating) -"hB" = ( -/obj/structure/table/holotable, -/obj/item/clothing/gloves/boxing/hologlove, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/holodorm/source_boxing) -"hC" = ( -/obj/effect/floor_decal/corner/red{ - dir = 9 - }, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/holodorm/source_boxing) -"hD" = ( -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/holodorm/source_boxing) -"hE" = ( -/obj/effect/floor_decal/corner/green{ - dir = 6 - }, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/holodorm/source_boxing) -"hF" = ( -/turf/simulated/floor/holofloor/space, -/area/holodeck/holodorm/source_space) -"hJ" = ( -/obj/structure/bed/chair/holochair{ - dir = 4 - }, -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/holodorm/source_seating) -"hK" = ( -/obj/structure/table/woodentable/holotable, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/holodorm/source_seating) -"hL" = ( -/obj/structure/bed/chair/holochair{ - dir = 8 - }, -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/holodorm/source_seating) -"hO" = ( -/obj/effect/floor_decal/carpet{ - dir = 8 - }, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 10 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/holodorm/source_seating) -"hP" = ( -/obj/structure/bed/chair/holochair{ - dir = 1 - }, -/obj/effect/floor_decal/carpet, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/holodorm/source_seating) -"hQ" = ( -/obj/effect/floor_decal/carpet{ - dir = 4 - }, -/obj/effect/floor_decal/carpet, -/obj/effect/floor_decal/carpet{ - dir = 6 - }, -/turf/simulated/floor/holofloor/carpet, -/area/holodeck/holodorm/source_seating) -"hR" = ( -/obj/structure/table/holotable, -/obj/item/clothing/gloves/boxing/hologlove{ - icon_state = "boxinggreen"; - item_state = "boxinggreen" - }, -/turf/simulated/floor/holofloor/tiled/dark, -/area/holodeck/holodorm/source_boxing) -"iO" = ( -/obj/effect/step_trigger/teleporter/random{ - affect_ghosts = 1; - name = "escapeshuttle_leave"; - teleport_x = 25; - teleport_x_offset = 245; - teleport_y = 25; - teleport_y_offset = 245; - teleport_z = 4; - teleport_z_offset = 4 - }, -/turf/space/transit/west, -/area/space) -"iY" = ( -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"jf" = ( -/turf/space/transit/north, -/area/space) -"jQ" = ( -/obj/effect/shuttle_landmark/transit{ - base_area = /area/space; - base_turf = /turf/space/transit/east; - landmark_tag = "specops_transit"; - name = "Specops Transit" - }, -/turf/space/transit/west, -/area/space) -"kh" = ( -/obj/machinery/telecomms/relay/preset/centcom/tether, -/turf/unsimulated/floor/steel, -/area/centcom/control) -"kn" = ( -/obj/structure/fake_stairs/north/bottom{ - _stair_tag = "stairtest" - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"kr" = ( -/obj/machinery/telecomms/server/presets/centcomm, -/turf/unsimulated/floor/steel, -/area/centcom/control) -"le" = ( -/obj/effect/floor_decal/transit/orange{ - dir = 4 - }, -/obj/effect/step_trigger/lost_in_space/tram, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"mZ" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 4; - name = "thrower_escapeshuttletop(right)"; - tiles = 0 - }, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"oI" = ( -/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b, -/turf/space/transit/east, -/area/space) -"pb" = ( -/obj/machinery/telecomms/processor/preset_cent, -/turf/unsimulated/floor/steel, -/area/centcom/control) -"pu" = ( -/obj/effect/floor_decal/transit/orange{ - dir = 4 - }, -/obj/effect/transit/light{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"pF" = ( -/obj/effect/shuttle_landmark/transit{ - base_area = /area/space; - base_turf = /turf/space/transit/east; - landmark_tag = "escapepod1_transit"; - name = "Escapepod 1 Transit" - }, -/turf/space/transit/east, -/area/space) -"qn" = ( -/turf/space/transit/east, -/area/space) -"qz" = ( -/turf/space, -/turf/space/internal_edge/bottomright, -/area/space) -"qH" = ( -/obj/effect/floor_decal/transit/orange{ - dir = 8 - }, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"rE" = ( -/obj/machinery/telecomms/bus/preset_cent, -/turf/unsimulated/floor/steel, -/area/centcom/control) -"sl" = ( -/turf/space/internal_edge/top, -/area/space) -"sF" = ( -/obj/effect/overmap/bluespace_rift, -/turf/unsimulated/map, -/area/overmap) -"tC" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel, -/area/space) -"tD" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 2; - name = "thrower_throwdown"; - stopper = 0; - tiles = 0 - }, -/turf/space/transit/east, -/area/space) -"tH" = ( -/obj/effect/floor_decal/transit/orange{ - dir = 8 - }, -/obj/effect/step_trigger/lost_in_space/tram, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"tJ" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 4; - name = "thrower_escapeshuttletop(right)"; - tiles = 0 - }, -/turf/simulated/floor/maglev{ - icon = 'icons/turf/transit_vr.dmi' - }, -/area/space) -"uc" = ( -/turf/unsimulated/wall, -/area/centcom/suppy) -"ud" = ( -/obj/machinery/status_display/supply_display, -/turf/unsimulated/wall, -/area/centcom/suppy) -"ue" = ( -/obj/structure/closet/crate, -/turf/unsimulated/floor{ - icon_state = "vault"; - dir = 1 - }, -/area/centcom/suppy) -"uf" = ( -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/centcom/suppy) -"ug" = ( -/obj/item/weapon/paper{ - info = "You're not supposed to be here."; - name = "unnerving letter" - }, -/turf/unsimulated/floor{ - icon_state = "dark" - }, -/area/centcom/suppy) -"vi" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 2; - name = "thrower_throwdownside"; - nostop = 1; - stopper = 0; - tiles = 0 - }, -/turf/simulated/floor/maglev{ - icon = 'icons/turf/transit_vr.dmi' - }, -/area/space) -"vG" = ( -/obj/effect/step_trigger/lost_in_space/tram, -/turf/simulated/floor/maglev{ - icon = 'icons/turf/transit_vr.dmi' - }, -/area/space) -"vR" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 2; - name = "thrower_throwdownside"; - nostop = 1; - stopper = 0; - tiles = 0 - }, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"wd" = ( -/obj/structure/sign/warning/nosmoking_2, -/turf/unsimulated/wall, -/area/centcom/simulated/terminal) -"wj" = ( -/turf/space/internal_edge/left, -/area/space) -"wl" = ( -/turf/unsimulated/wall, -/area/centcom/simulated/evac) -"wn" = ( -/obj/structure/fake_stairs/south/top{ - _stair_tag = "stairtest" - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"wr" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 8; - name = "thrower_escapeshuttletop(left)"; - tiles = 0 - }, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"wy" = ( -/turf/unsimulated/wall, -/area/centcom/control) -"wZ" = ( -/turf/unsimulated/floor{ - icon_state = "sandwater" - }, -/area/beach) -"xe" = ( -/obj/machinery/account_database{ - dir = 1; - name = "CentComm Accounts database" - }, -/turf/unsimulated/floor/steel, -/area/centcom/control) -"xM" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 8 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"ya" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 4; - name = "thrower_escapeshuttletop(right)"; - tiles = 0 - }, -/turf/simulated/sky/virgo3b/south, -/area/space) -"ym" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"yA" = ( -/obj/machinery/telecomms/receiver/preset_cent, -/turf/unsimulated/floor/steel, -/area/centcom/control) -"yF" = ( -/obj/effect/floor_decal/transit/orange{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"yK" = ( -/obj/machinery/door/airlock/multi_tile/metal, -/obj/effect/floor_decal/industrial/warning{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"zb" = ( -/obj/effect/step_trigger/thrower{ - direction = 1; - name = "thrower_throwup"; - nostop = 0; - tiles = 0 - }, -/turf/space/transit/east, -/area/space) -"zv" = ( -/obj/effect/floor_decal/transit/orange{ - dir = 8 - }, -/obj/effect/transit/light{ - dir = 8 - }, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"zK" = ( -/obj/machinery/door/blast/regular{ - dir = 4 - }, -/turf/simulated/floor/maglev, -/area/centcom/simulated/terminal) -"Al" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 8 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/centcom/simulated/terminal) -"Av" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 8; - name = "thrower_escapeshuttletop(left)"; - tiles = 0 - }, -/turf/simulated/floor/maglev{ - icon = 'icons/turf/transit_vr.dmi' - }, -/area/space) -"Ax" = ( -/turf/unsimulated/beach/coastline{ - density = 1; - opacity = 1 - }, -/area/beach) -"Az" = ( -/turf/unsimulated/beach/coastline, -/area/beach) -"Bd" = ( -/obj/effect/step_trigger/teleporter/random{ - affect_ghosts = 1; - name = "escapeshuttle_leave"; - teleport_x = 25; - teleport_x_offset = 245; - teleport_y = 25; - teleport_y_offset = 245; - teleport_z = 4; - teleport_z_offset = 4 - }, -/turf/space, -/turf/space/transit/north, -/area/space) -"Bw" = ( -/turf/unsimulated/beach/water, -/area/beach) -"BD" = ( -/obj/effect/overlay/palmtree_r, -/turf/unsimulated/beach/sand, -/area/beach) -"BK" = ( -/turf/space, -/turf/space/internal_edge/bottomleft, -/area/space) -"Cn" = ( -/turf/simulated/sky/virgo3b/south, -/area/space) -"Ct" = ( -/obj/machinery/ntnet_relay, -/turf/unsimulated/floor/steel, -/area/centcom/control) -"Cw" = ( -/obj/machinery/r_n_d/server/centcom, -/turf/unsimulated/floor/steel, -/area/centcom/control) -"Cy" = ( -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"Dk" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel, -/area/space) -"Dw" = ( -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/food/snacks/chips, -/turf/unsimulated/beach/sand, -/area/beach) -"DF" = ( -/turf/space, -/turf/space/internal_edge/topright, -/area/space) -"El" = ( -/turf/space/transit/west, -/area/space) -"ET" = ( -/turf/simulated/floor/tiled/techfloor/grid, -/area/centcom/simulated/terminal) -"Fa" = ( -/obj/structure/table/standard, -/turf/unsimulated/beach/sand, -/area/beach) -"Fp" = ( -/turf/simulated/floor/maglev, -/area/centcom/simulated/terminal) -"Fr" = ( -/obj/effect/floor_decal/transit/orange{ - dir = 4 - }, -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 2; - name = "thrower_throwdownside"; - nostop = 1; - stopper = 0; - tiles = 0 - }, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"FH" = ( -/obj/structure/bed/chair, -/obj/effect/landmark{ - name = "endgame_exit" - }, -/obj/item/toy/plushie/mouse{ - desc = "A plushie of a small fuzzy rodent."; - name = "Woodrat" - }, -/turf/unsimulated/beach/sand, -/area/beach) -"FT" = ( -/obj/effect/shuttle_landmark{ - base_area = null; - base_turf = null; - docking_controller = null; - landmark_tag = "escape_transit"; - name = "Escape Transit" - }, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"Ga" = ( -/turf/unsimulated/floor/steel, -/area/centcom/control) -"Gq" = ( -/turf/unsimulated/wall, -/area/beach) -"Gs" = ( -/turf/space, -/turf/space/transit/north, -/area/space) -"Gw" = ( -/obj/effect/overlay/palmtree_l, -/turf/unsimulated/beach/sand, -/area/beach) -"Hf" = ( -/obj/effect/shuttle_landmark/transit{ - base_area = /area/space; - base_turf = /turf/space/transit/north; - landmark_tag = "ninja_transit"; - name = "Ninja Transit" - }, -/turf/space/transit/north, -/area/space) -"Hy" = ( -/turf/unsimulated/mineral{ - icon = 'icons/turf/transit_vr.dmi'; - icon_state = "rock" - }, -/area/space) -"HQ" = ( -/obj/machinery/telecomms/broadcaster/preset_cent, -/turf/unsimulated/floor/steel, -/area/centcom/control) -"Ik" = ( -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/food/drinks/cans/cola, -/obj/item/weapon/reagent_containers/food/drinks/cans/cola, -/obj/item/weapon/reagent_containers/food/drinks/cans/cola, -/obj/item/weapon/reagent_containers/food/drinks/cans/cola, -/obj/item/weapon/reagent_containers/food/drinks/cans/cola, -/obj/item/weapon/reagent_containers/food/drinks/cans/cola, -/turf/unsimulated/beach/sand, -/area/beach) -"In" = ( -/obj/effect/shuttle_landmark/transit{ - base_area = /area/space; - base_turf = /turf/space/transit/north; - landmark_tag = "skipjack_transit"; - name = "Skipjack Transit" - }, -/turf/space/transit/north, -/area/space) -"Iq" = ( -/obj/machinery/telecomms/hub/preset_cent, -/turf/unsimulated/floor/steel, -/area/centcom/control) -"IN" = ( -/obj/effect/floor_decal/transit/orange{ - dir = 8 - }, -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 2; - name = "thrower_throwdownside"; - nostop = 1; - stopper = 0; - tiles = 0 - }, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"IR" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 2; - name = "thrower_throwdown"; - stopper = 0; - tiles = 0 - }, -/turf/simulated/sky/virgo3b/south, -/area/space) -"Jx" = ( -/obj/effect/floor_decal/corner_steel_grid/diagonal, -/obj/effect/floor_decal/corner_steel_grid/diagonal{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/danger{ - dir = 8 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/terminal) -"Jz" = ( -/obj/effect/step_trigger/teleporter/random{ - affect_ghosts = 1; - name = "escapeshuttle_leave"; - teleport_x = 25; - teleport_x_offset = 245; - teleport_y = 25; - teleport_y_offset = 245; - teleport_z = 4; - teleport_z_offset = 4 - }, -/turf/space/transit/north, -/area/space) -"JL" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 2; - name = "thrower_throwdown"; - nostop = 1; - stopper = 0; - tiles = 0 - }, -/turf/space/transit/north, -/area/space) -"JR" = ( -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "TelelockdownC"; - name = "Security Doors"; - opacity = 0 - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 10 - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/living) -"JW" = ( -/turf/unsimulated/beach/water{ - density = 1; - opacity = 1 - }, -/area/beach) -"JZ" = ( -/turf/space/internal_edge/right, -/area/space) -"Kj" = ( -/obj/effect/shuttle_landmark/transit{ - base_area = /area/space; - base_turf = /turf/simulated/sky/virgo3b/south; - landmark_tag = "tether_backup_transit"; - name = "Tether Backup Transit" - }, -/turf/simulated/sky/virgo3b/south, -/area/space) -"Lg" = ( -/obj/effect/floor_decal/industrial/warning{ - icon_state = "warning"; - dir = 5 - }, -/turf/simulated/floor/tiled/steel, -/area/space) -"Lz" = ( -/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b, -/turf/simulated/sky/virgo3b/south, -/area/space) -"Mb" = ( -/obj/effect/transit/light{ - dir = 8 - }, -/turf/unsimulated/mineral{ - icon = 'icons/turf/transit_vr.dmi'; - icon_state = "rock" - }, -/area/space) -"ME" = ( -/obj/machinery/computer/rdservercontrol{ - name = "Master R&D Server Controller"; - icon_state = "computer"; - dir = 1; - badmin = 1 - }, -/turf/unsimulated/floor/steel, -/area/centcom/control) -"MK" = ( -/obj/machinery/light{ - dir = 4; - icon_state = "tube1"; - pixel_x = 0 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"ML" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - name = "thrower_leftnostop" - }, -/turf/space/transit/east, -/area/space) -"Nj" = ( -/obj/item/clothing/head/collectable/paper, -/turf/unsimulated/beach/sand, -/area/beach) -"No" = ( -/obj/item/weapon/beach_ball, -/turf/unsimulated/beach/sand, -/area/beach) -"Nq" = ( -/turf/simulated/floor/tiled, -/area/centcom/simulated/terminal) -"Nr" = ( -/obj/machinery/cryopod/robot/door/gateway, -/obj/effect/floor_decal/industrial/warning{ - icon_state = "warning"; - dir = 8 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/living) -"Nt" = ( -/turf/unsimulated/beach/sand{ - density = 1; - opacity = 1 - }, -/area/beach) -"Oj" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 8; - name = "thrower_escapeshuttletop(left)"; - tiles = 0 - }, -/turf/simulated/sky/virgo3b/south, -/area/space) -"OR" = ( -/turf/simulated/shuttle/wall, -/area/shuttle/escape) -"OY" = ( -/turf/unsimulated/map, -/area/overmap) -"Pe" = ( -/obj/structure/grille, -/obj/structure/shuttle/window, -/turf/simulated/shuttle/plating, -/area/shuttle/escape) -"Pf" = ( -/obj/structure/table/woodentable{ - dir = 5 - }, -/obj/structure/flora/pottedplant{ - pixel_y = 8 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/terminal) -"Pg" = ( -/turf/simulated/shuttle/wall/hard_corner, -/area/shuttle/escape) -"Pi" = ( -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 2; - name = "thrower_throwdown"; - nostop = 1; - stopper = 0; - tiles = 0 - }, -/turf/space/transit/west, -/area/space) -"Pq" = ( -/turf/simulated/floor/maglev{ - icon = 'icons/turf/transit_vr.dmi' - }, -/area/space) -"Qa" = ( -/obj/structure/closet/hydrant{ - pixel_x = -30; - pixel_y = 0 - }, -/obj/item/weapon/storage/firstaid/o2{ - layer = 2.8; - pixel_x = 4; - pixel_y = 6 - }, -/obj/item/weapon/storage/firstaid/fire, -/obj/item/weapon/storage/firstaid/toxin, -/obj/structure/bed/chair/shuttle, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"QW" = ( -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"QX" = ( -/obj/structure/bed/chair/shuttle, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"QY" = ( -/obj/structure/flora/pottedplant{ - icon_state = "plant-21" - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/terminal) -"Rc" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/centcom/simulated/terminal) -"Rd" = ( -/obj/structure/table/standard, -/obj/random/maintenance/clean, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"Re" = ( -/obj/structure/table/standard, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"Rf" = ( -/obj/machinery/status_display{ - pixel_y = 30 - }, -/obj/structure/table/standard, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"Rg" = ( -/obj/structure/bed/chair/shuttle{ - dir = 1 - }, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"Rh" = ( -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'HIGH VOLTAGE'"; - icon_state = "shock"; - name = "HIGH VOLTAGE" - }, -/turf/unsimulated/wall, -/area/centcom/simulated/terminal) -"Ri" = ( -/obj/machinery/door/airlock/glass_external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "escape_shuttle_hatch_station"; - locked = 1; - name = "Shuttle Hatch" - }, -/turf/simulated/shuttle/floor/yellow, -/area/shuttle/escape) -"Rj" = ( -/obj/machinery/door/airlock/glass_external{ - frequency = 1380; - icon_state = "door_locked"; - id_tag = "escape_shuttle_hatch_offsite"; - locked = 1; - name = "Shuttle Hatch" - }, -/turf/simulated/shuttle/floor/yellow, -/area/shuttle/escape) -"Rk" = ( -/obj/structure/bed/chair/shuttle, -/obj/structure/closet/walllocker/emerglocker{ - pixel_x = -28 - }, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"Rl" = ( -/obj/structure/bed/chair/shuttle, -/obj/structure/closet/walllocker/emerglocker{ - pixel_x = 28 - }, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"Rm" = ( -/obj/structure/table/standard, -/obj/random/junk, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"Ro" = ( -/obj/structure/table/standard, -/obj/random/maintenance/clean, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"Rq" = ( -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "TelelockdownC"; - name = "Security Doors"; - opacity = 0 - }, -/obj/effect/floor_decal/industrial/warning, -/obj/machinery/door/firedoor, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/living) -"Rr" = ( -/obj/structure/flora/pottedplant{ - icon_state = "plant-22" - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"Rs" = ( -/obj/structure/sign/nanotrasen, -/obj/effect/shuttle_landmark{ - base_area = /area/centcom/simulated/terminal; - base_turf = /turf/simulated/floor/tiled/techfloor/grid; - docking_controller = null; - landmark_tag = "escape_cc"; - name = "Escape Centcom" - }, -/turf/simulated/shuttle/wall, -/area/shuttle/escape) -"Rt" = ( -/obj/structure/sign/nanotrasen, -/turf/simulated/shuttle/wall, -/area/shuttle/escape) -"Ru" = ( -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"Rv" = ( -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "TelelockdownC"; - name = "Security Doors"; - opacity = 0 - }, -/obj/effect/floor_decal/industrial/warning{ - dir = 6 - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/living) -"Rw" = ( -/obj/structure/table/standard, -/obj/item/clothing/head/beret/nanotrasen, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"Rx" = ( -/obj/structure/table/standard, -/obj/random/plushie, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"Ry" = ( -/obj/structure/bed/chair/shuttle{ - dir = 1 - }, -/obj/structure/closet/walllocker/emerglocker{ - pixel_x = -28 - }, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"Rz" = ( -/obj/structure/bed/chair/shuttle{ - dir = 1 - }, -/obj/structure/closet/walllocker/emerglocker{ - pixel_x = 28 - }, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"RA" = ( -/obj/structure/grille, -/obj/structure/shuttle/window, -/turf/simulated/shuttle/floor/white, -/area/shuttle/escape) -"RC" = ( -/obj/effect/floor_decal/industrial/outline/blue, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"RD" = ( -/obj/structure/bed/chair/shuttle{ - dir = 1 - }, -/obj/machinery/light, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"RE" = ( -/obj/effect/floor_decal/industrial/outline/blue, -/obj/machinery/light, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"RF" = ( -/obj/random/junk, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"RG" = ( -/obj/structure/bed/chair/shuttle{ - dir = 1 - }, -/obj/random/soap, -/turf/simulated/shuttle/floor/white{ - color = "#cccccc" - }, -/area/shuttle/escape) -"RV" = ( -/obj/effect/step_trigger/teleporter/random{ - affect_ghosts = 1; - name = "escapeshuttle_leave"; - teleport_x = 25; - teleport_x_offset = 245; - teleport_y = 25; - teleport_y_offset = 245; - teleport_z = 6; - teleport_z_offset = 6 - }, -/turf/simulated/sky/virgo3b/south, -/area/space) -"Sh" = ( -/obj/effect/floor_decal/transit/orange{ - dir = 4 - }, -/obj/effect/transit/light{ - dir = 4 - }, -/obj/effect/step_trigger/thrower{ - affect_ghosts = 1; - direction = 2; - name = "thrower_throwdownside"; - nostop = 1; - stopper = 0; - tiles = 0 - }, -/turf/simulated/floor/tiled/techfloor/grid{ - icon = 'icons/turf/transit_vr.dmi'; - initial_flooring = null; - icon_state = "techfloor_grid" - }, -/area/space) -"Sl" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 8 - }, -/obj/machinery/camera/network/crescent{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/centcom/simulated/terminal) -"Sm" = ( -/turf/simulated/shuttle/wall/alien/blue/hard_corner, -/area/unknown/dorm4) -"Sn" = ( -/turf/simulated/shuttle/wall/alien/blue, -/area/unknown/dorm4) -"So" = ( -/obj/machinery/recharge_station, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm4) -"Sp" = ( -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm4) -"Sq" = ( -/obj/structure/toilet, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm4) -"Sr" = ( -/obj/machinery/shower{ - pixel_y = 13 - }, -/obj/structure/curtain/open/shower, -/obj/effect/floor_decal/steeldecal/steel_decals10{ - dir = 5 - }, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm4) -"Ss" = ( -/obj/machinery/door/airlock/alien/blue/public, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm4) -"Su" = ( -/obj/structure/closet/alien, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm4) -"Sw" = ( -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm4) -"Sx" = ( -/obj/structure/fans, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm4) -"Sz" = ( -/obj/machinery/smartfridge/survival_pod, -/obj/item/weapon/storage/mre/menu11, -/obj/item/weapon/storage/mre/menu11, -/obj/item/weapon/storage/mre/menu13, -/obj/item/weapon/storage/mre/menu13, -/obj/item/weapon/storage/mre/menu10, -/obj/item/weapon/storage/mre/menu10, -/obj/item/weapon/storage/mre/menu9, -/obj/item/weapon/storage/mre/menu9, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/towel/random, -/obj/item/weapon/towel/random, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm4) -"SA" = ( -/obj/machinery/sleeper/survival_pod, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm4) -"SB" = ( -/obj/structure/table/survival_pod, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm4) -"SC" = ( -/obj/item/device/perfect_tele_beacon/stationary{ - tele_name = "Unknown"; - tele_network = "unkfour" - }, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm4) -"SD" = ( -/obj/structure/bed/double/padded, -/obj/item/weapon/bedsheet/hopdouble, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm4) -"SE" = ( -/obj/structure/prop/alien/computer/hybrid{ - dir = 8 - }, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm4) -"SF" = ( -/obj/structure/prop/alien/dispenser, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm4) -"SG" = ( -/obj/machinery/door/blast/regular{ - dir = 4 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/centcom/simulated/terminal) -"SH" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/terminal) -"SK" = ( -/obj/structure/closet/secure_closet/personal, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm4) -"SN" = ( -/obj/structure/bed/chair/comfy/black, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm4) -"SO" = ( -/obj/structure/bed/chair/comfy/black{ - dir = 4 - }, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm4) -"SP" = ( -/obj/structure/table/alien/blue, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm4) -"SQ" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/machinery/teleport/hub, -/turf/simulated/shuttle/floor/voidcraft, -/area/unknown/dorm4) -"SR" = ( -/obj/machinery/teleport/station, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm4) -"SS" = ( -/obj/machinery/computer/teleporter{ - dir = 1 - }, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm4) -"ST" = ( -/obj/structure/prop/alien/power, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm4) -"SV" = ( -/obj/effect/floor_decal/steeldecal/steel_decals5{ - dir = 8 - }, -/obj/effect/floor_decal/steeldecal/steel_decals9{ - dir = 1 - }, -/obj/effect/floor_decal/steeldecal/steel_decals9{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"SW" = ( -/obj/item/device/perfect_tele_beacon/stationary{ - tele_name = "Transfer"; - tele_network = "centcom" - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/living) -"SX" = ( -/turf/simulated/shuttle/wall/alien/blue/hard_corner, -/area/unknown/dorm3) -"SY" = ( -/turf/simulated/shuttle/wall/alien/blue, -/area/unknown/dorm3) -"SZ" = ( -/obj/machinery/recharge_station, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm3) -"Ta" = ( -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm3) -"Tb" = ( -/obj/structure/toilet, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm3) -"Tc" = ( -/obj/machinery/shower{ - pixel_y = 13 - }, -/obj/structure/curtain/open/shower, -/obj/effect/floor_decal/steeldecal/steel_decals10{ - dir = 5 - }, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm3) -"Td" = ( -/obj/machinery/door/airlock/alien/blue/public, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm3) -"Tf" = ( -/obj/machinery/cryopod/robot/door/gateway, -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/living) -"Th" = ( -/obj/effect/floor_decal/industrial/warning{ - icon_state = "warning"; - dir = 8 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/living) -"Ti" = ( -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/living) -"Tj" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/living) -"Tk" = ( -/obj/structure/closet/alien, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm3) -"Tl" = ( -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm3) -"Tm" = ( -/obj/structure/fans, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm3) -"Tn" = ( -/obj/structure/table/standard, -/obj/item/clothing/under/color/rainbow, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/head/collectable/petehat{ - pixel_y = 5 - }, -/turf/unsimulated/beach/sand, -/area/beach) -"To" = ( -/obj/machinery/smartfridge/survival_pod, -/obj/item/weapon/storage/mre/menu11, -/obj/item/weapon/storage/mre/menu11, -/obj/item/weapon/storage/mre/menu13, -/obj/item/weapon/storage/mre/menu13, -/obj/item/weapon/storage/mre/menu10, -/obj/item/weapon/storage/mre/menu10, -/obj/item/weapon/storage/mre/menu9, -/obj/item/weapon/storage/mre/menu9, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/towel/random, -/obj/item/weapon/towel/random, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm3) -"Tp" = ( -/obj/machinery/sleeper/survival_pod, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm3) -"Tq" = ( -/obj/structure/table/survival_pod, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm3) -"Tr" = ( -/obj/item/device/perfect_tele_beacon/stationary{ - tele_name = "Unknown"; - tele_network = "unkthree" - }, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm3) -"Ts" = ( -/obj/effect/overlay/coconut, -/turf/unsimulated/beach/sand, -/area/beach) -"Tt" = ( -/obj/structure/bed/double/padded, -/obj/item/weapon/bedsheet/hopdouble, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm3) -"Tu" = ( -/obj/structure/prop/alien/computer/hybrid{ - dir = 8 - }, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm3) -"Tx" = ( -/obj/structure/prop/alien/dispenser, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm3) -"Ty" = ( -/obj/structure/closet/secure_closet/personal, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm3) -"Tz" = ( -/obj/structure/bed/chair/comfy/black, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm3) -"TA" = ( -/obj/structure/bed/chair/comfy/black{ - dir = 4 - }, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm3) -"TB" = ( -/obj/structure/table/alien/blue, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm3) -"TC" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/machinery/teleport/hub, -/turf/simulated/shuttle/floor/voidcraft, -/area/unknown/dorm3) -"TD" = ( -/obj/machinery/teleport/station, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm3) -"TE" = ( -/obj/machinery/computer/teleporter{ - dir = 1 - }, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm3) -"TF" = ( -/obj/structure/bed/chair, -/obj/effect/landmark{ - name = "endgame_exit" - }, -/turf/unsimulated/beach/sand, -/area/beach) -"TG" = ( -/obj/effect/landmark{ - name = "endgame_exit" - }, -/turf/unsimulated/beach/sand, -/area/beach) -"TH" = ( -/obj/structure/prop/alien/power, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm3) -"TI" = ( -/obj/effect/wingrille_spawn/reinforced/crescent, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plating, -/area/centcom/simulated/terminal) -"TJ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/multi_tile/glass, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"TK" = ( -/turf/simulated/shuttle/wall/alien/hard_corner, -/area/unknown/dorm2) -"TM" = ( -/turf/simulated/shuttle/wall/alien, -/area/unknown/dorm2) -"TN" = ( -/obj/machinery/recharge_station, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm2) -"TP" = ( -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm2) -"TQ" = ( -/obj/structure/toilet, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm2) -"TR" = ( -/obj/machinery/shower{ - pixel_y = 13 - }, -/obj/structure/curtain/open/shower, -/obj/effect/floor_decal/steeldecal/steel_decals10{ - dir = 5 - }, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm2) -"TS" = ( -/obj/machinery/door/airlock/alien/public, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm2) -"TT" = ( -/obj/structure/closet/alien, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm2) -"TU" = ( -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm2) -"TV" = ( -/obj/structure/fans, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm2) -"TW" = ( -/obj/machinery/smartfridge/survival_pod, -/obj/item/weapon/storage/mre/menu11, -/obj/item/weapon/storage/mre/menu11, -/obj/item/weapon/storage/mre/menu13, -/obj/item/weapon/storage/mre/menu13, -/obj/item/weapon/storage/mre/menu10, -/obj/item/weapon/storage/mre/menu10, -/obj/item/weapon/storage/mre/menu9, -/obj/item/weapon/storage/mre/menu9, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/towel/random, -/obj/item/weapon/towel/random, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm2) -"TX" = ( -/obj/machinery/sleeper/survival_pod, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm2) -"TY" = ( -/obj/machinery/door/firedoor, -/turf/unsimulated/floor/steel, -/area/centcom/simulated/terminal) -"TZ" = ( -/obj/effect/floor_decal/industrial/warning/dust/corner, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Ua" = ( -/obj/structure/table/survival_pod, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm2) -"Ub" = ( -/obj/item/device/perfect_tele_beacon/stationary{ - tele_name = "Unknown"; - tele_network = "unktwo" - }, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm2) -"Uc" = ( -/obj/item/weapon/bedsheet/rddouble, -/obj/structure/bed/double/padded, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm2) -"Ud" = ( -/obj/structure/prop/alien/computer{ - dir = 8 - }, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm2) -"Uf" = ( -/obj/structure/prop/alien/dispenser, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm2) -"Ug" = ( -/obj/structure/closet/secure_closet/personal, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm2) -"Uh" = ( -/obj/structure/bed/chair/comfy/black, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm2) -"Ui" = ( -/obj/structure/bed/chair/comfy/black{ - dir = 4 - }, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm2) -"Uj" = ( -/obj/structure/table/alien, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm2) -"Uk" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/machinery/teleport/hub, -/turf/simulated/shuttle/floor/voidcraft, -/area/unknown/dorm2) -"Ul" = ( -/obj/machinery/teleport/station, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm2) -"Um" = ( -/obj/machinery/computer/teleporter{ - dir = 1 - }, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm2) -"Uo" = ( -/obj/structure/prop/alien/power, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm2) -"Up" = ( -/obj/effect/floor_decal/industrial/warning/dust, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Ur" = ( -/obj/effect/floor_decal/rust, -/obj/effect/floor_decal/industrial/warning/dust, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Us" = ( -/obj/effect/floor_decal/industrial/warning/dust/corner{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Ut" = ( -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Uu" = ( -/obj/effect/floor_decal/industrial/warning/dust, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Uv" = ( -/obj/effect/floor_decal/industrial/outline, -/obj/structure/bed/chair, -/turf/unsimulated/floor/steel, -/area/centcom/simulated/main_hall) -"Uw" = ( -/turf/simulated/shuttle/wall/alien/hard_corner, -/area/unknown/dorm1) -"Ux" = ( -/turf/simulated/shuttle/wall/alien, -/area/unknown/dorm1) -"Uz" = ( -/obj/machinery/recharge_station, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm1) -"UA" = ( -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm1) -"UC" = ( -/obj/structure/toilet, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm1) -"UD" = ( -/obj/machinery/shower{ - pixel_y = 13 - }, -/obj/structure/curtain/open/shower, -/obj/effect/floor_decal/steeldecal/steel_decals10{ - dir = 5 - }, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm1) -"UE" = ( -/obj/effect/floor_decal/industrial/outline, -/obj/structure/bed/chair, -/obj/machinery/status_display{ - pixel_y = 29 - }, -/turf/unsimulated/floor/steel, -/area/centcom/simulated/main_hall) -"UF" = ( -/obj/machinery/door/airlock/alien/public, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm1) -"UG" = ( -/obj/structure/closet/alien, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm1) -"UH" = ( -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm1) -"UI" = ( -/obj/structure/fans, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm1) -"UJ" = ( -/obj/machinery/smartfridge/survival_pod, -/obj/item/weapon/storage/mre/menu11, -/obj/item/weapon/storage/mre/menu11, -/obj/item/weapon/storage/mre/menu13, -/obj/item/weapon/storage/mre/menu13, -/obj/item/weapon/storage/mre/menu10, -/obj/item/weapon/storage/mre/menu10, -/obj/item/weapon/storage/mre/menu9, -/obj/item/weapon/storage/mre/menu9, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/storage/mre/random, -/obj/item/weapon/towel/random, -/obj/item/weapon/towel/random, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm1) -"UK" = ( -/obj/machinery/sleeper/survival_pod, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm1) -"UM" = ( -/obj/structure/table/survival_pod, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm1) -"UN" = ( -/obj/item/device/perfect_tele_beacon/stationary{ - tele_name = "Unknown"; - tele_network = "unkone" - }, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm1) -"UP" = ( -/obj/item/weapon/bedsheet/rddouble, -/obj/structure/bed/double/padded, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm1) -"UQ" = ( -/obj/structure/prop/alien/computer{ - dir = 8 - }, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm1) -"UR" = ( -/obj/structure/prop/alien/dispenser, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm1) -"US" = ( -/obj/structure/closet/secure_closet/personal, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm1) -"UT" = ( -/obj/structure/bed/chair/comfy/black, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm1) -"UU" = ( -/obj/structure/bed/chair/comfy/black{ - dir = 4 - }, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm1) -"UV" = ( -/obj/structure/table/alien, -/turf/simulated/shuttle/floor/alien, -/area/unknown/dorm1) -"UW" = ( -/obj/effect/floor_decal/industrial/hatch/yellow, -/obj/machinery/teleport/hub, -/turf/simulated/shuttle/floor/voidcraft, -/area/unknown/dorm1) -"UX" = ( -/obj/machinery/teleport/station, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm1) -"UY" = ( -/obj/machinery/computer/teleporter{ - dir = 1 - }, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm1) -"UZ" = ( -/obj/structure/prop/alien/power, -/turf/simulated/shuttle/floor/alienplating, -/area/unknown/dorm1) -"Va" = ( -/obj/effect/floor_decal/rust/steel_decals_rusted2, -/obj/effect/floor_decal/industrial/warning/dust, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Vb" = ( -/obj/machinery/recharge_station, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/bathroom) -"Vc" = ( -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/bathroom) -"Vd" = ( -/turf/unsimulated/wall, -/area/centcom/simulated/medical) -"Ve" = ( -/obj/effect/wingrille_spawn/reinforced/crescent, -/obj/structure/sign/department/medbay, -/turf/unsimulated/floor{ - icon_state = "plating"; - name = "plating" - }, -/area/centcom/simulated/medical) -"Vf" = ( -/obj/machinery/door/airlock{ - name = "Unit 4" - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/bathroom) -"Vg" = ( -/turf/unsimulated/wall, -/area/centcom/simulated/living) -"Vh" = ( -/obj/effect/floor_decal/corner_steel_grid/diagonal, -/obj/effect/floor_decal/corner_steel_grid/diagonal{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/danger{ - dir = 8 - }, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/terminal) -"Vi" = ( -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Vj" = ( -/turf/simulated/floor/tiled/steel, -/area/shuttle/large_escape_pod2/centcom{ - base_turf = /turf/simulated/floor/tiled/steel_dirty/virgo3b - }) -"Vk" = ( -/turf/unsimulated/wall, -/area/centcom/simulated/bathroom) -"Vl" = ( -/obj/structure/sign/warning{ - name = "\improper STAND AWAY FROM TRACK EDGE" - }, -/turf/unsimulated/wall, -/area/centcom/simulated/living) -"Vm" = ( -/obj/effect/floor_decal/rust, -/turf/simulated/floor/tiled/steel, -/area/shuttle/large_escape_pod2/centcom{ - base_turf = /turf/simulated/floor/tiled/steel_dirty/virgo3b - }) -"Vn" = ( -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 10 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Vo" = ( -/obj/machinery/door/blast/regular{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Vp" = ( -/obj/effect/floor_decal/rust/part_rusted3, -/obj/effect/floor_decal/steeldecal/steel_decals6{ - dir = 9 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Vq" = ( -/obj/effect/floor_decal/rust/part_rusted3, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Vr" = ( -/obj/effect/floor_decal/rust, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Vs" = ( -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Vt" = ( -/obj/effect/floor_decal/rust/mono_rusted3, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Vu" = ( -/turf/unsimulated/wall, -/area/centcom/simulated/main_hall) -"Vv" = ( -/obj/machinery/door/airlock/multi_tile/glass{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/turf/unsimulated/floor/steel, -/area/centcom/simulated/terminal) -"Vw" = ( -/obj/machinery/door/firedoor, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"Vy" = ( -/obj/machinery/door/airlock{ - name = "Unit 3" - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/bathroom) -"Vz" = ( -/obj/machinery/light/small{ - dir = 8; - pixel_y = 0 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/bathroom) -"VB" = ( -/obj/effect/floor_decal/sign/dock/one, -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"VC" = ( -/turf/unsimulated/beach/sand, -/area/beach) -"VD" = ( -/obj/effect/floor_decal/corner_steel_grid/diagonal, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"VE" = ( -/obj/effect/shuttle_landmark{ - base_area = /area/centcom/simulated/evac; - base_turf = /turf/unsimulated/floor/steel; - docking_controller = null; - landmark_tag = "escapepod1_cc"; - name = "Centcom Recovery Area" - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"VF" = ( -/obj/effect/floor_decal/sign/dock/two, -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 8 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"VI" = ( -/turf/unsimulated/wall, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"VJ" = ( -/obj/effect/floor_decal/rust, -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"VK" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/multi_tile/glass, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/restaurant) -"VL" = ( -/obj/machinery/door/firedoor, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/restaurant) -"VM" = ( -/turf/unsimulated/wall, -/area/centcom/simulated/restaurant) -"VN" = ( -/obj/effect/floor_decal/corner_steel_grid/diagonal, -/turf/simulated/floor/tiled/steel, -/area/shuttle/large_escape_pod2/centcom{ - base_turf = /turf/simulated/floor/tiled/steel_dirty/virgo3b - }) -"VO" = ( -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 9 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"VP" = ( -/obj/effect/floor_decal/industrial/warning/dust/corner{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"VQ" = ( -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"VR" = ( -/obj/structure/bed/chair/wood/wings, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"VS" = ( -/obj/effect/floor_decal/corner_steel_grid/diagonal, -/obj/effect/floor_decal/industrial/warning/dust/corner{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"VU" = ( -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"VV" = ( -/obj/effect/floor_decal/rust, -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"VW" = ( -/turf/space, -/turf/space/internal_edge/topleft, -/area/space) -"VX" = ( -/obj/effect/floor_decal/industrial/warning/dust/corner{ - dir = 4 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"VY" = ( -/obj/structure/closet/crate/bin, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"VZ" = ( -/obj/structure/bed/chair/wood/wings{ - icon_state = "wooden_chair_wings"; - dir = 4 - }, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Wb" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/pastatomato, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Wc" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/meatballspagetti, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Wd" = ( -/obj/structure/bed/chair/wood/wings{ - icon_state = "wooden_chair_wings"; - dir = 8 - }, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"We" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/fries, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Wh" = ( -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 1 - }, -/obj/effect/floor_decal/steeldecal/steel_decals6{ - dir = 9 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Wi" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms" - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/bathroom) -"Wj" = ( -/obj/effect/blocker, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/living) -"Wk" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/cheeseburger{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/weapon/reagent_containers/food/snacks/cheeseburger, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Wl" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/kitsuneudon, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Wm" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/lasagna, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Wo" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/hotdog, -/obj/item/weapon/reagent_containers/food/snacks/hotdog{ - pixel_x = -5; - pixel_y = -3 - }, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Wp" = ( -/obj/machinery/cryopod/robot/door/dorms, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/living) -"Wq" = ( -/obj/effect/floor_decal/steeldecal/steel_decals9{ - dir = 8 - }, -/obj/effect/floor_decal/steeldecal/steel_decals9{ - dir = 1 - }, -/obj/machinery/computer/cryopod/dorms{ - name = "Company Property Retention System"; - pixel_x = 0; - pixel_y = 32 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/living) -"Ws" = ( -/obj/effect/floor_decal/steeldecal/steel_decals9{ - dir = 8 - }, -/obj/effect/floor_decal/steeldecal/steel_decals9{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/living) -"Wt" = ( -/obj/machinery/porta_turret/crescent{ - density = 1 - }, -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Wu" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/bigbiteburger, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Wv" = ( -/obj/effect/floor_decal/industrial/outline, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Wz" = ( -/obj/structure/bed/chair/wood/wings{ - icon_state = "wooden_chair_wings"; - dir = 1 - }, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"WA" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/grilledcheese, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"WB" = ( -/obj/effect/wingrille_spawn/reinforced/crescent, -/turf/simulated/floor/plating, -/area/centcom/simulated/restaurant) -"WC" = ( -/obj/effect/wingrille_spawn/reinforced/crescent, -/turf/simulated/floor/plating, -/area/centcom/simulated/medical) -"WD" = ( -/obj/effect/overlay/palmtree_r, -/obj/effect/overlay/coconut, -/turf/unsimulated/beach/sand, -/area/beach) -"WE" = ( -/obj/effect/wingrille_spawn/reinforced/crescent, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "FrontlockC2"; - name = "Security Door"; - opacity = 0 - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plating, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"WF" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/meatballsoup, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"WH" = ( -/obj/item/weapon/stool/padded, -/turf/simulated/floor/wood, -/area/centcom/simulated/bar) -"WI" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/roastbeef, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"WJ" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/brigdoor/northleft{ - req_access = list(63); - req_one_access = list(1) - }, -/obj/item/weapon/paper_bin{ - pixel_x = 1; - pixel_y = 9 - }, -/obj/item/weapon/pen, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "FrontlockC2"; - name = "Security Door"; - opacity = 0 - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"WK" = ( -/obj/structure/table/reinforced, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/window/brigdoor/northright{ - req_access = list(63); - req_one_access = list(1) - }, -/obj/machinery/door/blast/regular{ - density = 0; - dir = 4; - icon_state = "pdoor0"; - id = "FrontlockC2"; - name = "Security Door"; - opacity = 0 - }, -/obj/machinery/computer/skills, -/obj/machinery/door/firedoor, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"WL" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/meatsteak, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"WN" = ( -/obj/structure/bed/chair/wood/wings{ - icon_state = "wooden_chair_wings"; - dir = 4 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"WO" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/drinks/bottle/cola, -/turf/simulated/floor/wood, -/area/centcom/simulated/bar) -"WP" = ( -/obj/structure/table/woodentable, -/obj/machinery/cash_register/civilian, -/turf/simulated/floor/wood, -/area/centcom/simulated/bar) -"WQ" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/drinks/bottle/space_mountain_wind, -/turf/simulated/floor/wood, -/area/centcom/simulated/bar) -"WR" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/snacks/toastedsandwich{ - pixel_w = 0; - pixel_x = 0; - pixel_y = 10 - }, -/turf/simulated/floor/wood, -/area/centcom/simulated/bar) -"WS" = ( -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"WT" = ( -/obj/structure/bed/chair, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"WU" = ( -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/spray/cleaner{ - desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; - name = "Surgery Cleaner"; - pixel_x = 2; - pixel_y = 2 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"WV" = ( -/obj/structure/table/woodentable, -/turf/simulated/floor/wood, -/area/centcom/simulated/bar) -"WW" = ( -/turf/simulated/floor/wood, -/area/centcom/simulated/bar) -"WZ" = ( -/obj/machinery/vending/coffee, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Xa" = ( -/obj/machinery/vending/sovietsoda, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Xb" = ( -/obj/machinery/vending/snack, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Xc" = ( -/obj/machinery/vending/cola, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Xd" = ( -/obj/machinery/vending/cigarette, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"Xe" = ( -/obj/machinery/smartfridge/drinks, -/turf/simulated/floor/wood, -/area/centcom/simulated/bar) -"Xf" = ( -/obj/machinery/vending/boozeomat, -/turf/simulated/floor/wood, -/area/centcom/simulated/bar) -"Xg" = ( -/obj/structure/table/reinforced, -/obj/machinery/chemical_dispenser/bar_soft/full, -/turf/simulated/floor/wood, -/area/centcom/simulated/bar) -"Xh" = ( -/obj/structure/table/reinforced, -/obj/machinery/chemical_dispenser/bar_alc/full, -/turf/simulated/floor/wood, -/area/centcom/simulated/bar) -"Xi" = ( -/turf/unsimulated/wall, -/area/centcom/simulated/bar) -"Xj" = ( -/obj/structure/table/standard, -/obj/item/weapon/storage/firstaid/surgery, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Xk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/multi_tile/glass, -/turf/unsimulated/floor/steel{ - icon_state = "white" - }, -/area/centcom/simulated/medical) -"Xl" = ( -/turf/unsimulated/map/edge, -/area/overmap) -"Xm" = ( -/obj/machinery/door/firedoor, -/turf/unsimulated/floor/steel{ - icon_state = "white" - }, -/area/centcom/simulated/medical) -"Xn" = ( -/obj/structure/sign/greencross, -/turf/unsimulated/wall, -/area/centcom/simulated/medical) -"Xp" = ( -/obj/structure/toilet{ - dir = 8 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/bathroom) -"Xr" = ( -/obj/structure/bed/chair, -/obj/effect/floor_decal/industrial/warning{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Xs" = ( -/obj/machinery/computer/card{ - dir = 4 - }, -/obj/item/device/radio/intercom{ - broadcasting = 0; - dir = 1; - frequency = 1475; - icon_state = "intercom"; - listening = 1; - name = "Station Intercom (Security)"; - pixel_x = 0; - pixel_y = 27 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Xv" = ( -/obj/structure/bed/chair/office/dark{ - dir = 1 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Xw" = ( -/obj/structure/bed/chair/office/dark{ - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Xx" = ( -/obj/machinery/computer/security{ - dir = 8 - }, -/obj/machinery/camera/network/crescent, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Xy" = ( -/obj/structure/table/standard, -/obj/item/stack/nanopaste, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Xz" = ( -/obj/effect/floor_decal/industrial/loading, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"XA" = ( -/obj/effect/floor_decal/steeldecal/steel_decals6{ - dir = 5 - }, -/obj/effect/floor_decal/steeldecal/steel_decals6{ - dir = 6 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"XB" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 8 - }, -/obj/structure/sink{ - dir = 4; - icon_state = "sink"; - pixel_x = 12; - pixel_y = 8 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"XC" = ( -/obj/machinery/computer/secure_data{ - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"XD" = ( -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"XE" = ( -/obj/effect/floor_decal/techfloor/orange{ - dir = 8 - }, -/obj/machinery/light{ - dir = 8 - }, -/turf/simulated/floor/tiled/techfloor/grid, -/area/centcom/simulated/terminal) -"XH" = ( -/obj/structure/bed/chair{ - dir = 8 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/terminal) -"XJ" = ( -/obj/structure/table/glass, -/obj/item/device/healthanalyzer/improved, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"XK" = ( -/obj/structure/table/glass, -/obj/machinery/computer/med_data{ - icon_keyboard = "laptop_key"; - icon_screen = "medlaptop"; - icon_state = "laptop"; - light_color = "#00b000" - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"XM" = ( -/obj/structure/table/glass{ - desc = "It's a table, it has some scracthes..they say 'Mlem'." - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"XN" = ( -/obj/structure/table/glass, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"XO" = ( -/obj/structure/signpost, -/turf/unsimulated/beach/sand, -/area/beach) -"XP" = ( -/obj/machinery/oxygen_pump/anesthetic, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"XQ" = ( -/obj/machinery/optable, -/obj/machinery/light{ - dir = 8; - icon_state = "tube1" - }, -/obj/effect/floor_decal/industrial/hatch/yellow, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"XR" = ( -/obj/machinery/computer/operating{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"XS" = ( -/obj/structure/closet/crate/freezer, -/obj/item/weapon/reagent_containers/blood/OMinus, -/obj/item/weapon/reagent_containers/blood/OMinus, -/obj/item/weapon/reagent_containers/blood/OMinus, -/obj/item/weapon/reagent_containers/blood/OMinus, -/obj/item/weapon/reagent_containers/blood/OMinus, -/obj/item/weapon/reagent_containers/blood/OMinus, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"XU" = ( -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 1 - }, -/obj/machinery/light, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"XV" = ( -/obj/machinery/turretid/stun{ - check_access = 0; - check_anomalies = 0; - check_records = 0; - check_synth = 0; - check_weapons = 0; - control_area = "\improper CentCom Security Arrivals"; - pixel_x = 32; - req_access = list(101); - req_one_access = list(101) - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"XX" = ( -/obj/machinery/computer/crew{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"XY" = ( -/obj/structure/closet, -/turf/unsimulated/beach/sand, -/area/beach) -"XZ" = ( -/obj/structure/bed/chair/office/dark, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Ya" = ( -/obj/machinery/camera/network/crescent, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Yb" = ( -/obj/structure/table/glass, -/obj/item/weapon/paper_bin{ - pixel_x = -1; - pixel_y = 3 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Yc" = ( -/obj/structure/table/standard, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Yg" = ( -/obj/structure/sign/department/operational, -/turf/unsimulated/wall, -/area/centcom/simulated/medical) -"Yh" = ( -/obj/effect/floor_decal/industrial/loading{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Yj" = ( -/obj/effect/floor_decal/steeldecal/steel_decals6{ - dir = 9 - }, -/obj/effect/floor_decal/steeldecal/steel_decals6{ - dir = 10 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Yk" = ( -/obj/structure/medical_stand, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Yl" = ( -/obj/machinery/door/airlock/security{ - name = "Security" - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Ym" = ( -/obj/machinery/vending/medical, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Yo" = ( -/obj/structure/closet/secure_closet/medical2, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Yr" = ( -/obj/structure/table/reinforced, -/obj/machinery/microwave{ - pixel_y = 5 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Ys" = ( -/obj/machinery/recharger/wallcharger{ - pixel_x = 4; - pixel_y = 26 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Yt" = ( -/obj/effect/floor_decal/rust, -/obj/effect/floor_decal/industrial/warning/dust{ - dir = 1 - }, -/obj/machinery/light, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/evac) -"Yu" = ( -/obj/machinery/camera/network/crescent, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Yv" = ( -/obj/machinery/door/airlock/multi_tile/glass{ - req_access = list(5) - }, -/obj/machinery/door/firedoor/multi_tile, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Yw" = ( -/obj/machinery/door/airlock/medical{ - name = "Operating Theatre"; - req_access = list(45) - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Yx" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/terminal) -"Yy" = ( -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"YB" = ( -/obj/structure/table/standard, -/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 5; - pixel_y = 5 - }, -/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 0; - pixel_y = 0 - }, -/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ - pixel_x = 7; - pixel_y = 1 - }, -/obj/item/weapon/tool/wrench, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YC" = ( -/obj/machinery/atmospherics/unary/cryo_cell, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YD" = ( -/obj/machinery/atmospherics/unary/freezer, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YE" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"YF" = ( -/obj/structure/table/glass, -/obj/item/device/defib_kit/loaded, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YG" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/living) -"YH" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/pill_bottle/spaceacillin, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YI" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/melee/baton/loaded, -/obj/item/weapon/melee/baton/loaded, -/obj/item/weapon/gun/energy/taser, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"YJ" = ( -/obj/structure/closet/secure_closet/nanotrasen_security, -/obj/item/weapon/storage/box/handcuffs, -/obj/item/weapon/gun/energy/gun, -/obj/item/weapon/shield/riot, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"YK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 6 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YL" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YM" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YN" = ( -/obj/machinery/atmospherics/pipe/simple/hidden{ - dir = 9; - icon_state = "intact" - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YO" = ( -/obj/machinery/computer/transhuman/designer{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YP" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/oxygen/prechilled, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YQ" = ( -/obj/structure/table/glass, -/obj/machinery/chemical_dispenser/full, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YR" = ( -/turf/unsimulated/floor/steel, -/area/centcom/simulated/main_hall) -"YT" = ( -/obj/machinery/chem_master, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YU" = ( -/obj/structure/table/glass, -/obj/machinery/chemical_dispenser/ert, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YV" = ( -/obj/machinery/transhuman/synthprinter, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YW" = ( -/obj/effect/floor_decal/industrial/warning{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YY" = ( -/obj/machinery/bodyscanner{ - dir = 8 - }, -/obj/effect/floor_decal/corner_steel_grid{ - dir = 10 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"YZ" = ( -/obj/machinery/body_scanconsole, -/obj/effect/floor_decal/corner_steel_grid{ - dir = 10 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Zb" = ( -/obj/machinery/sleep_console{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Zc" = ( -/obj/machinery/sleeper{ - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Zd" = ( -/obj/machinery/computer/transhuman/resleeving{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Ze" = ( -/obj/machinery/transhuman/resleever, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Zf" = ( -/obj/structure/filingcabinet/chestdrawer{ - name = "Medical Forms" - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Zg" = ( -/obj/machinery/clonepod/transhuman/full, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Zh" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/reagent_containers/food/drinks/flask/barflask, -/obj/item/weapon/reagent_containers/glass/rag, -/obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask, -/turf/simulated/floor/wood, -/area/centcom/simulated/bar) -"Zi" = ( -/obj/machinery/light, -/turf/simulated/floor/tiled/steel, -/area/centcom/simulated/main_hall) -"Zj" = ( -/obj/structure/table/standard, -/obj/item/device/healthanalyzer, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Zk" = ( -/obj/structure/table/reinforced, -/obj/item/device/camera, -/obj/item/weapon/storage/box/ids, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Zl" = ( -/obj/structure/table/glass, -/obj/item/weapon/backup_implanter{ - pixel_y = -8 - }, -/obj/item/weapon/backup_implanter{ - pixel_y = 8 - }, -/obj/item/weapon/backup_implanter, -/obj/machinery/light{ - dir = 8 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Zn" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Zp" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/book/manual/security_space_law, -/obj/item/weapon/book/manual/security_space_law, -/obj/machinery/light/small{ - dir = 8; - pixel_y = 0 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Zq" = ( -/obj/machinery/light, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Zr" = ( -/obj/structure/table/standard, -/obj/machinery/light, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Zs" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Zt" = ( -/obj/effect/floor_decal/corner_steel_grid/diagonal, -/obj/effect/floor_decal/corner_steel_grid/diagonal{ - dir = 4 - }, -/obj/effect/floor_decal/industrial/danger{ - dir = 8 - }, -/obj/machinery/light, -/turf/simulated/floor/tiled, -/area/centcom/simulated/terminal) -"Zw" = ( -/obj/structure/table/reinforced, -/obj/item/weapon/storage/box/donkpockets, -/obj/item/weapon/storage/box/donkpockets, -/obj/machinery/light/small{ - dir = 8; - pixel_y = 0 - }, -/turf/simulated/floor/tiled, -/area/centcom/simulated/security{ - name = "\improper CentCom Security Arrivals" - }) -"Zx" = ( -/obj/structure/table/glass, -/obj/item/weapon/reagent_containers/glass/beaker/large, -/obj/item/weapon/reagent_containers/glass/beaker/large, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Zy" = ( -/obj/structure/table/glass, -/obj/item/weapon/storage/firstaid/adv, -/obj/machinery/light{ - dir = 1 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"Zz" = ( -/obj/structure/table/glass, -/obj/item/weapon/reagent_containers/glass/bottle/biomass{ - pixel_x = -4; - pixel_y = 8 - }, -/obj/item/weapon/reagent_containers/glass/bottle/biomass{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/item/weapon/reagent_containers/glass/bottle/biomass{ - pixel_x = 3; - pixel_y = 5 - }, -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/tiled/white, -/area/centcom/simulated/medical) -"ZC" = ( -/obj/machinery/light{ - icon_state = "tube1"; - dir = 4 - }, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) -"ZD" = ( -/obj/structure/table/woodentable, -/obj/item/weapon/reagent_containers/food/drinks/bottle/grenadine, -/obj/machinery/light{ - dir = 8 - }, -/turf/simulated/floor/wood, -/area/centcom/simulated/bar) -"ZE" = ( -/obj/machinery/light, -/turf/simulated/floor/wood, -/area/centcom/simulated/restaurant) - -(1,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -"} -(2,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(3,1,1) = {" -ap -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -ap -Gq -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Ax -JW -JW -Gq -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(4,1,1) = {" -ap -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -ap -Gq -Nt -VC -Gw -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(5,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(6,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -XO -VC -VC -VC -VC -VC -VC -VC -VC -Ts -BD -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(7,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -Ts -VC -Nj -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -Uw -Ux -Uw -Ux -Ux -Ux -Ux -Ux -Ux -Uw -Ux -Ux -Uw -ae -ae -ae -ae -ae -SX -SY -SX -SY -SY -SY -SY -SY -SY -SX -SY -SY -SX -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(8,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -VC -VC -VC -VC -BD -VC -TG -TG -VC -VC -VC -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -Ux -Uz -Uw -UK -UM -UG -UQ -US -US -Uw -UH -UW -Ux -ae -ae -ae -ae -ae -SY -SZ -SX -Tp -Tq -Tk -Tu -Ty -Ty -SX -Tl -TC -SY -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -sF -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(9,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -VC -VC -VC -VC -Ts -TG -Fa -Dw -TG -VC -VC -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -Ux -UA -UF -UH -UA -UN -UA -UA -UH -UF -UH -UX -Ux -ae -ae -ae -ae -ae -SY -Ta -Td -Tl -Ta -Tr -Ta -Ta -Tl -Td -Tl -TD -SY -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(10,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -XY -VC -VC -VC -VC -TG -Tn -Ik -TG -VC -VC -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -Ux -UC -Uw -UI -UA -UA -UA -UA -UU -Uw -UH -UY -Ux -ae -ae -ae -ae -ae -SY -Tb -SX -Tm -Ta -Ta -Ta -Ta -TA -SX -Tl -TE -SY -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(11,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Cn -Cn -IR -IR -IR -IR -IR -IR -IR -IR -IR -Cn -Cn -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -XY -VC -VC -VC -VC -VC -TG -TG -VC -VC -VC -FH -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -Ux -UD -Ux -UJ -UH -UP -UR -UT -UV -Ux -UH -UZ -Ux -ae -ae -ae -ae -ae -SY -Tc -SY -To -Tl -Tt -Tx -Tz -TB -SY -Tl -TH -SY -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(12,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Cn -Cn -Oj -Cn -Cn -Cn -Cn -Cn -Cn -Cn -IR -Cn -Cn -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -XY -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -Uw -Ux -Uw -Ux -Ux -Ux -Ux -Ux -Ux -Uw -Ux -Ux -Uw -ae -ae -ae -ae -ae -SX -SY -SX -SY -SY -SY -SY -SY -SY -SX -SY -SY -SX -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(13,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Cn -Cn -Oj -Cn -Cn -Cn -Kj -Cn -Cn -Cn -IR -Cn -Cn -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -TF -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(14,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Cn -Cn -Oj -Cn -Cn -Cn -Cn -Cn -Cn -Cn -IR -Cn -Cn -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -VC -VC -VC -VC -VC -VC -VC -BD -VC -VC -VC -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(15,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Cn -Cn -ya -Cn -Cn -Cn -Cn -Cn -Cn -Cn -IR -Cn -Cn -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -XY -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -TF -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(16,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Cn -Cn -ya -Cn -Cn -Cn -Cn -Cn -Cn -Cn -IR -Cn -Cn -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -XY -VC -VC -VC -VC -VC -VC -No -VC -VC -VC -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(17,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Cn -Cn -IR -IR -IR -IR -IR -IR -IR -IR -IR -Cn -Cn -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -XY -VC -Ts -Gw -VC -VC -VC -VC -VC -VC -VC -aa -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(18,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(19,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Cn -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -TK -TM -TK -TM -TM -TM -TM -TM -TM -TK -TM -TM -TK -ae -ae -ae -ae -ae -Sm -Sn -Sm -Sn -Sn -Sn -Sn -Sn -Sn -Sm -Sn -Sn -Sm -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(20,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -VC -VC -VC -VC -VC -VC -VC -VC -VC -Gw -Ts -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -TM -TN -TK -TX -Ua -TT -Ud -Ug -Ug -TK -TU -Uk -TM -ae -ae -ae -ae -ae -Sn -So -Sm -SA -SB -Su -SE -SK -SK -Sm -Sw -SQ -Sn -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(21,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -TM -TP -TS -TU -TP -Ub -TP -TP -TU -TS -TU -Ul -TM -ae -ae -ae -ae -ae -Sn -Sp -Ss -Sw -Sp -SC -Sp -Sp -Sw -Ss -Sw -SR -Sn -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -sF -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(22,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -VC -WD -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -VC -wZ -Az -Bw -JW -Gq -ae -ae -ae -ae -ae -TM -TQ -TK -TV -TP -TP -TP -TP -Ui -TK -TU -Um -TM -ae -ae -ae -ae -ae -Sn -Sq -Sm -Sx -Sp -Sp -Sp -Sp -SO -Sm -Sw -SS -Sn -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(23,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -Gq -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Nt -Ax -JW -JW -Gq -ae -ae -ae -ae -ae -TM -TR -TM -TW -TU -Uc -Uf -Uh -Uj -TM -TU -Uo -TM -ae -ae -ae -ae -ae -Sn -Sr -Sn -Sz -Sw -SD -SF -SN -SP -Sn -Sw -ST -Sn -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(24,1,1) = {" -ap -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -ap -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -Gq -ae -ae -ae -ae -ae -TK -TM -TK -TM -TM -TM -TM -TM -TM -TK -TM -TM -TK -ae -ae -ae -ae -ae -Sm -Sn -Sm -Sn -Sn -Sn -Sn -Sn -Sn -Sm -Sn -Sn -Sm -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(25,1,1) = {" -ap -Lz -RV -RV -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -Lz -RV -Lz -RV -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(26,1,1) = {" -ap -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -RV -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(27,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(28,1,1) = {" -ap -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(29,1,1) = {" -ap -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(30,1,1) = {" -ap -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(31,1,1) = {" -ap -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(32,1,1) = {" -ap -Hy -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(33,1,1) = {" -ap -Hy -qH -qH -zv -qH -qH -qH -dz -IN -IN -IN -dz -IN -IN -IN -dz -IN -IN -IN -dz -IN -IN -IN -dz -IN -qH -qH -zv -qH -qH -tH -Mb -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(34,1,1) = {" -ap -Hy -iY -iY -iY -iY -iY -iY -wr -wr -iY -iY -iY -iY -iY -iY -FT -iY -iY -iY -iY -iY -iY -iY -vR -vR -iY -iY -iY -iY -iY -cC -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Xl -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -OY -Xl -"} -(35,1,1) = {" -ap -Hy -Pq -Pq -Pq -Pq -Pq -Pq -Av -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -vi -Pq -Pq -Pq -Pq -Pq -vG -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -Xl -"} -(36,1,1) = {" -ap -Hy -iY -iY -iY -iY -iY -iY -wr -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -vR -iY -iY -iY -iY -iY -cC -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(37,1,1) = {" -ap -Hy -iY -iY -iY -iY -iY -iY -wr -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -vR -iY -iY -iY -iY -iY -cC -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(38,1,1) = {" -ap -Hy -iY -iY -iY -iY -iY -iY -mZ -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -vR -iY -iY -iY -iY -iY -cC -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(39,1,1) = {" -ap -Hy -iY -iY -iY -iY -iY -iY -mZ -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -vR -iY -iY -iY -iY -iY -cC -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(40,1,1) = {" -ap -Hy -Pq -Pq -Pq -Pq -Pq -Pq -tJ -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -Pq -vi -Pq -Pq -Pq -Pq -Pq -vG -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(41,1,1) = {" -ap -Hy -iY -iY -iY -iY -iY -iY -mZ -mZ -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -iY -vR -vR -iY -iY -iY -iY -iY -cC -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(42,1,1) = {" -ap -Hy -yF -yF -yF -pu -yF -yF -Fr -Sh -Fr -Fr -Fr -Sh -Fr -Fr -Fr -Sh -Fr -Fr -Fr -Sh -Fr -Fr -Fr -Sh -yF -yF -yF -pu -yF -le -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(43,1,1) = {" -ap -Hy -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -dg -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(44,1,1) = {" -ap -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(45,1,1) = {" -ap -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(46,1,1) = {" -ap -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(47,1,1) = {" -ap -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -Hy -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(48,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(49,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(50,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(51,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(52,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(53,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(54,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -"} -(55,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -iO -"} -(56,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -iO -"} -(57,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -iO -"} -(58,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -iO -"} -(59,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -Pi -Pi -Pi -Pi -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -iO -"} -(60,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -Pi -El -El -El -El -Pi -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -iO -"} -(61,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -iO -"} -(62,1,1) = {" -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -iO -"} -(63,1,1) = {" -ar -aI -aI -aI -aI -aI -aI -aI -aI -aI -aI -ar -aI -aI -aI -aI -aI -aI -aI -aI -aI -aI -ar -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -iO -"} -(64,1,1) = {" -as -aJ -aJ -aJ -aJ -aJ -aJ -aJ -aJ -aJ -aK -dA -dF -dF -dF -dF -dF -dF -dF -dF -dF -dF -fZ -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -iO -"} -(65,1,1) = {" -as -aJ -aJ -bd -aJ -aJ -aJ -aJ -aJ -aJ -aJ -dA -dF -dF -dF -ec -dF -dF -dF -dF -ec -dF -fZ -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -El -Pi -Pi -Pi -Pi -Pi -Pi -El -El -El -El -El -El -Pi -Pi -Pi -Pi -Pi -Pi -El -El -El -El -El -El -El -El -iO -"} -(66,1,1) = {" -as -aJ -aJ -aJ -aJ -aK -aJ -aJ -bd -aJ -aJ -dA -dF -dF -dF -dF -dF -dF -dF -dF -dF -dF -fZ -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -Pi -Pi -El -El -El -El -Pi -El -El -El -El -El -El -Pi -El -El -El -El -Pi -Pi -El -El -El -El -El -El -El -iO -"} -(67,1,1) = {" -as -aK -aJ -aJ -aJ -aJ -aJ -aJ -aJ -aJ -aJ -dA -dF -ec -dF -dF -dF -dF -ec -dF -dF -dF -fZ -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -Pi -El -El -El -El -El -Pi -El -El -El -El -El -El -Pi -El -El -El -El -El -Pi -El -El -El -El -El -El -El -iO -"} -(68,1,1) = {" -as -aJ -aJ -aJ -aJ -aJ -aJ -aJ -aJ -aJ -bd -dA -dF -dF -dF -dF -dF -dF -dF -dF -dF -dF -fZ -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Bd -Bd -Bd -Bd -iO -El -El -El -El -El -El -El -Pi -El -El -El -El -El -Pi -El -El -El -El -El -El -Pi -El -El -El -El -El -Pi -El -El -El -El -El -El -El -iO -"} -(69,1,1) = {" -as -aJ -aJ -aJ -aK -aJ -aJ -bd -aJ -aJ -aJ -dA -dF -dF -dF -dF -dF -dF -dF -dF -dF -dF -fZ -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -El -Pi -El -El -El -El -El -Pi -El -El -El -El -El -El -Pi -El -El -El -El -El -Pi -El -El -El -El -El -El -El -iO -"} -(70,1,1) = {" -as -aJ -aJ -aJ -aJ -aK -aJ -aJ -aJ -aJ -aJ -dA -dF -dF -dF -ec -dF -dF -dF -dF -ec -dF -fZ -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -iO -"} -(71,1,1) = {" -as -aJ -aJ -aJ -aJ -aJ -aJ -aJ -aJ -aJ -aJ -dA -dF -dF -dF -dF -dF -dF -dF -dF -dF -dF -fZ -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -iO -"} -(72,1,1) = {" -as -aJ -bd -aJ -aJ -aJ -aJ -aJ -aJ -aJ -aJ -dA -dF -ec -dF -dF -dF -dF -ec -dF -dF -dF -fZ -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -JL -JL -JL -jf -jf -jf -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -iO -"} -(73,1,1) = {" -as -aJ -aJ -aJ -aJ -aJ -aJ -aK -aJ -aJ -bd -dA -dF -dF -dF -dF -dF -dF -dF -dF -dF -dF -fZ -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -jf -JL -JL -jf -jf -jf -jf -JL -JL -jf -jf -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -iO -"} -(74,1,1) = {" -ar -aL -aL -aL -aL -aL -aL -aL -aL -aL -aL -ar -aL -aL -aL -aL -aL -aL -aL -aL -aL -aL -ar -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -jf -JL -jf -jf -Hf -jf -jf -jf -JL -JL -jf -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -iO -"} -(75,1,1) = {" -as -aM -be -bf -be -be -be -be -bf -be -aM -dA -dG -dG -dG -dG -dG -dG -dG -fG -dG -dG -fZ -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -JL -JL -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -JL -JL -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -iO -"} -(76,1,1) = {" -as -aN -bf -be -bf -bf -bf -bf -be -bf -aN -dA -dG -ed -dG -dG -dG -dG -dG -dG -eT -dG -fZ -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -iO -"} -(77,1,1) = {" -as -aM -be -bo -bU -bU -bU -bU -da -be -aM -dA -dG -dG -dG -eJ -dG -dG -dG -dG -dG -dG -fZ -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -JL -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -El -iO -"} -(78,1,1) = {" -as -aN -bf -bp -bB -bB -bB -bB -cP -bf -aN -dA -dG -dG -dG -dG -eT -dG -dG -dG -eJ -dG -fZ -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -El -El -iO -"} -(79,1,1) = {" -as -aM -be -bq -an -bS -bS -an -cQ -be -aM -dA -dG -dG -dG -ep -dG -dG -ed -dG -dG -fG -fZ -ae -Vu -Vu -Vu -Vu -Vu -Vu -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -JL -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -iO -"} -(80,1,1) = {" -as -aM -bf -bp -an -bS -bS -an -cP -bf -aM -dA -dG -dG -dG -dG -dG -dG -dG -fG -dG -dG -fZ -ae -Vu -Ru -wn -Cy -eS -Vu -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -El -El -iO -"} -(81,1,1) = {" -as -aN -be -ag -bB -bB -bB -bB -at -be -aN -dA -dG -ed -dG -dG -dG -dG -eJ -dG -eT -dG -fZ -ae -Vu -Vu -Vu -Cy -gU -Vu -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -JL -JL -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -JL -JL -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -El -iO -"} -(82,1,1) = {" -as -aM -bf -bB -bB -ao -aA -bB -bB -bf -aM -dA -dG -dG -dG -dG -dG -dG -dG -dG -dG -dG -fZ -ae -Vu -Vu -Vu -Cy -eS -Vu -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -af -dZ -dZ -dZ -dZ -dZ -Rh -dZ -dZ -dZ -dZ -dZ -dZ -Rh -dZ -dZ -dZ -dZ -dZ -af -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -JL -JL -jf -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -iO -"} -(83,1,1) = {" -as -aN -be -bB -ao -ax -aB -aA -bB -bf -aN -dA -dG -dG -ep -dG -eT -dG -dG -dG -eJ -dG -fZ -ae -Vu -kn -Ru -Cy -eS -Vu -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ai -Al -Al -XE -Sl -Al -Al -XE -Al -Al -Al -Al -XE -Al -Al -Sl -XE -Al -Al -SG -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -jf -JL -JL -jf -jf -jf -jf -JL -JL -jf -jf -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -iO -"} -(84,1,1) = {" -as -aM -bf -bB -at -bU -bU -ag -bB -be -aM -dA -dG -dG -dG -dG -dG -dG -ed -dG -dG -fG -fZ -ae -Vu -Vu -Vu -Vu -Vu -Vu -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ai -ET -ET -OR -Pe -Pe -Ri -OR -Pe -Rs -Rt -Pe -OR -Ri -RA -RA -OR -ET -ET -SG -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -JL -JL -JL -jf -jf -jf -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -Pi -El -jQ -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -iO -"} -(85,1,1) = {" -ar -aL -aL -aL -aL -aL -aL -aL -aL -aL -aL -ar -aL -aL -aL -aL -aL -aL -aL -aL -aL -aL -ar -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -zK -Fp -OR -Pg -Rd -Rg -QW -Rk -Re -Rg -QX -Rw -Ry -QW -Rg -RD -Pg -OR -Fp -zK -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -iO -"} -(86,1,1) = {" -as -aO -bg -bg -bG -bV -bV -bV -bV -bV -dq -dA -dI -dH -dH -eL -eL -eL -eL -eL -eL -eL -fZ -ae -ap -ap -ap -ap -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ai -ET -Pe -Qa -Re -Rg -QW -QX -Rm -Rg -QX -Re -Rg -QW -QW -QW -RF -Pe -ET -SG -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -iO -"} -(87,1,1) = {" -as -aP -bg -bg -bG -bV -bV -bV -bV -bV -bV -dA -dH -dH -dH -eK -eK -eK -eK -eK -eK -eK -fZ -ae -ap -ap -ap -ap -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ai -ET -Pe -QW -QW -QW -QW -QW -QW -QW -QW -QW -QW -QW -QX -QX -Rg -Pe -ET -SG -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Gs -Gs -Gs -Bd -iO -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -iO -"} -(88,1,1) = {" -as -aP -bg -bg -bG -bW -ct -ct -ct -dj -bV -dA -dH -dH -dH -eK -eV -fn -fn -fn -fO -eK -fZ -ae -ap -ap -ap -ap -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ai -ET -Pe -QW -QW -QW -QW -QW -QW -QW -QW -QW -QW -QW -QX -QX -RG -Pe -ET -SG -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -Bd -iO -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -iO -"} -(89,1,1) = {" -as -aP -bg -bg -bG -bX -cu -cu -cu -dk -bV -dA -dH -ee -eq -eK -eW -fo -fo -fo -fP -eK -fZ -ae -ap -ap -ap -ap -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ai -ET -Pe -QX -Re -Rg -QW -QX -Re -Rg -QX -Re -Rg -QW -QW -QW -QW -Pe -ET -SG -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -iO -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -iO -"} -(90,1,1) = {" -as -aP -bg -bg -bG -bX -cu -cu -cu -dk -bV -dA -dH -ef -eq -eK -eW -fo -fo -fo -fP -eK -fZ -ae -ap -ap -ap -ap -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -zK -Fp -OR -Pg -Rf -Rg -QW -Rl -Ro -Rg -QX -Rx -Rz -QW -RC -RE -Pg -OR -Fp -zK -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ap -iO -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -Pi -El -El -El -El -El -El -iO -"} -(91,1,1) = {" -as -aP -bg -bg -bG -bX -cu -cu -cu -dk -bV -dA -dH -ef -eq -eK -eW -fo -fo -fo -fP -eK -fZ -ae -ap -ap -ap -ap -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ai -ET -ET -OR -Pe -Pe -Rj -OR -Pe -Rt -Rt -Pe -OR -Rj -RA -RA -OR -ET -ET -SG -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -iO -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -iO -"} -(92,1,1) = {" -as -aP -bg -bg -bG -bX -cu -cu -cu -dk -bV -dA -dH -ef -eq -eK -eW -fo -fo -fo -fP -eK -fZ -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ai -Rc -Rc -Rc -Rc -Rc -Rc -Rc -Rc -Rc -Rc -Rc -Rc -Rc -Rc -Rc -Rc -Rc -Rc -SG -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -iO -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -iO -"} -(93,1,1) = {" -as -aP -bg -bg -bG -bY -cv -cv -cv -dl -bV -dA -dH -eg -eq -eK -eW -fo -fo -fo -fP -eK -fZ -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Vu -ae -ae -ae -ae -ae -Vg -Vg -Vg -Vl -Vh -Jx -Jx -Jx -Jx -Jx -Jx -Jx -Jx -Jx -Jx -Jx -Jx -Jx -Jx -Jx -Jx -Zt -aj -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -iO -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -iO -"} -(94,1,1) = {" -as -aP -bg -bg -bG -bV -bV -bV -bV -bV -bV -dA -dH -dH -dH -eK -eX -fp -fp -fH -fQ -eK -fZ -Vu -Ru -Ru -xM -Ru -Ru -Ru -Ru -xM -Ru -Ru -Ru -Vu -ae -ae -ae -ae -ae -Vg -Nr -Th -JR -Nq -Nq -Nq -Nq -Nq -Nq -Yx -Nq -Nq -Nq -Nq -Yx -Nq -Nq -Nq -Nq -Nq -Nq -dZ -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -iO -El -El -El -El -El -El -Pi -El -El -El -El -El -El -El -Pi -Pi -Pi -Pi -Pi -Pi -El -El -El -El -El -El -El -Pi -El -El -El -El -El -El -iO -"} -(95,1,1) = {" -as -aP -bg -bg -bH -bZ -bZ -bZ -bZ -dm -dr -dA -dH -dH -dH -eK -eU -eU -eK -eK -eK -eK -fZ -Vu -Ru -Ru -Ru -Ru -Ru -Ru -Ru -Ru -Ru -Ru -Ru -Vu -ae -ae -ae -ae -ae -Vg -SW -Ti -Rq -Nq -Nq -Nq -Nq -Nq -Nq -wd -dZ -TY -Vv -dZ -dZ -Nq -Nq -Nq -Nq -Nq -Nq -dZ -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -iO -El -El -El -El -El -El -Pi -El -El -El -El -El -El -Pi -Pi -El -El -El -El -Pi -Pi -El -El -El -El -El -El -Pi -El -El -El -El -El -El -iO -"} -(96,1,1) = {" -ar -aL -aL -aL -aL -aL -aL -aL -aL -aL -aL -ar -aL -aL -aL -aL -aL -aL -aL -aL -aL -aL -ar -Vu -YE -Ru -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Ru -Zi -Vu -ae -ae -ae -ae -ae -Vg -Tf -Tj -Rv -QY -Pf -XH -SH -SH -QY -TI -Rr -SV -SV -Rr -TI -QY -SH -SH -XH -Pf -QY -dZ -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -iO -El -El -El -El -El -El -Pi -Pi -Pi -Pi -Pi -Pi -Pi -Pi -El -El -El -El -El -El -Pi -Pi -Pi -Pi -Pi -Pi -Pi -Pi -El -El -El -El -El -El -iO -"} -(97,1,1) = {" -as -aS -bi -ah -au -ay -ay -ay -ay -aE -aS -dB -dM -eh -eh -eh -eY -fq -fz -fz -fz -fS -fZ -Vu -Ru -Ru -Vu -VW -wj -wj -wj -BK -Vu -Ru -Ru -Vu -ae -ae -ae -wy -wy -Vg -Vg -Vg -Vg -TI -TI -TI -TI -TI -TI -dZ -Ru -Ru -Ru -Ru -dZ -dZ -dZ -dZ -dZ -dZ -dZ -dZ -VI -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -iO -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -iO -"} -(98,1,1) = {" -as -aS -bi -bv -av -az -az -az -az -aF -aS -dB -dN -ei -ei -ei -eZ -fr -ei -ei -ei -fJ -fZ -Vu -Ru -Ru -Vu -sl -cj -Dk -Dk -Dk -yK -Ru -Ru -Vu -ae -ae -ae -wy -yA -Ga -xe -wl -TZ -Vi -Vi -Vi -VJ -Vi -VS -Vu -YE -Ru -Ru -Wt -WE -Xs -XC -Zp -VI -Yr -Zw -YI -VI -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cg -cg -cg -cg -cg -cg -cg -cg -cg -cg -cg -cf -cf -cf -cf -ce -ap -iO -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -iO -"} -(99,1,1) = {" -as -aS -bi -ak -aw -aw -aw -aw -aw -aw -aw -dB -dM -eh -dN -ei -eZ -fr -ei -fJ -fz -fS -fZ -Vu -Ru -Ru -Vu -sl -Lg -tC -tC -tC -ym -Ru -Ru -Vu -ae -ae -ae -wy -rE -Ga -Iq -wl -Up -Vj -Vj -Vj -Vj -Vj -VU -Vu -Ru -Ru -Ru -Wv -WJ -Xv -XD -XD -VI -Ys -XD -YJ -VI -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cg -cf -cf -cf -cf -cf -cf -cf -cf -cf -cg -cg -cf -cf -cf -ce -ap -iO -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -El -iO -"} -(100,1,1) = {" -as -aS -bi -bi -bI -ca -cw -cS -dd -cS -ds -dB -dO -ei -dN -ei -fa -fr -ei -fJ -ei -fT -fZ -Vu -Ru -Ru -Vu -DF -JZ -JZ -JZ -qz -Vu -Ru -Ru -Vu -ae -ae -ae -wy -HQ -Ga -Ga -wl -Up -Vj -Vj -Vj -Vj -Vj -VU -Vu -Ru -Ru -Ru -Wv -WK -Xw -XD -XD -VI -Yu -XD -YJ -VI -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cg -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cg -cf -cf -cf -ce -ap -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -iO -"} -(101,1,1) = {" -as -aS -bi -aS -bJ -cb -cx -cT -cy -cT -dt -dB -dP -ej -dN -ei -eZ -fr -ei -fJ -fA -fU -fZ -Vu -YE -Ru -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Ru -Zi -Vu -ae -ae -ae -wy -pb -Ga -ME -wl -Uu -Vj -Vj -Vm -Vj -Vj -XU -Vu -Ru -Ru -Ru -Wt -WE -Xx -Zk -XV -Yl -Zs -Yy -XD -VI -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cg -cf -cf -cf -cf -cf -cf -cf -cf -cf -ch -cg -cf -cf -cf -ce -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -"} -(102,1,1) = {" -as -aS -bi -bt -bK -cb -cy -cy -cy -cT -dt -dB -dN -ei -ei -ei -eZ -fr -ei -ei -ei -fJ -fZ -Vu -Ru -Ru -Ru -Ru -Ru -Ru -Ru -Ru -Ru -Ru -Ru -Vu -ae -ae -ae -wy -kr -Ga -Cw -wl -Up -Vj -Vj -Vm -Vj -Vj -VU -Vu -Ru -Ru -Zi -VI -VI -VI -VI -VI -VI -VI -VI -Yl -VI -Xi -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cg -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cg -cf -cf -cf -ce -ap -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -"} -(103,1,1) = {" -as -aS -bi -aS -bL -cb -cx -cT -cy -cT -dt -dB -dP -ej -ej -ej -fb -fs -fA -fA -fA -fU -fZ -Vu -Ru -Ru -MK -Ru -Ru -Ru -Ru -MK -Ru -Ru -Ru -Vu -ae -ae -ae -wy -Ct -Ga -kh -wl -Ur -Vm -Vj -Vj -Vj -Vj -VU -Vu -Ru -Ru -Ru -VM -VQ -WN -VZ -VQ -VQ -WH -ZD -WW -Xe -Xi -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cg -cf -cf -cf -cf -cf -cf -cf -cf -cf -cg -cg -cf -cf -cf -ce -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(104,1,1) = {" -as -aS -bi -bi -bM -cc -cz -cU -de -cU -du -dB -aG -aG -aR -aG -aG -aG -aG -bh -aG -aG -fZ -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Vu -Vu -ae -ae -ae -wy -wy -wy -wy -wl -Up -Vj -Vj -Vj -Vj -Vj -VU -TJ -Ru -Ru -Ru -WB -VR -Wb -Wl -Wz -VQ -WH -WO -WW -Xf -Xi -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cg -cg -cg -cg -cg -cg -cg -cg -cg -cg -cg -cf -cf -cf -cf -ce -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(105,1,1) = {" -as -ab -ad -al -al -al -al -al -aC -al -ab -dB -dK -dK -dJ -dK -dK -dK -dK -dJ -dK -dK -fZ -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -ae -ae -ae -ae -ae -ae -ae -wl -Up -Vj -Vj -Vj -Vj -Vj -VU -Vw -Ru -Ru -Ru -VK -VR -Wc -Wm -Wz -VQ -WH -WP -WW -Xg -Xi -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(106,1,1) = {" -as -aQ -aQ -aQ -aQ -aQ -aQ -aQ -aQ -aQ -aQ -dB -dJ -dJ -dJ -dJ -dJ -dJ -dJ -dJ -dJ -dJ -fZ -aq -uc -uc -uc -uc -uc -uc -uc -uc -uc -uc -uc -aq -ae -ae -ae -ae -ae -ae -ae -wl -Up -Vj -Vj -Vj -Vj -Vj -VU -Vu -YE -Ru -Ru -VL -VQ -Wd -Wd -VQ -VQ -WH -WQ -WW -Xh -Xi -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(107,1,1) = {" -ar -aL -aL -aL -aL -aL -aL -aL -aL -aL -aL -ar -aL -aL -aL -aL -aL -aL -aL -aL -aL -aL -ar -aq -uc -ue -ue -uf -ue -ue -ue -uf -ue -ue -uc -aq -ae -ae -ae -ae -ae -ae -ae -wl -Up -Vj -Vm -Vj -VN -Vj -VU -Vu -Ru -Ru -Ru -WB -VQ -VQ -VQ -VQ -VQ -WH -WR -WW -Zh -Xi -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(108,1,1) = {" -as -aT -aT -aT -aT -aT -aT -aT -aT -aT -aT -dB -dQ -dQ -dQ -dQ -dQ -dQ -dQ -fK -fR -fR -fZ -aq -uc -uf -uf -uf -uf -ug -uf -uf -uf -uf -uc -aq -ae -ae -ae -ae -ae -ae -ae -wl -Uu -Vj -Vj -Vj -Vj -Vj -Yt -Vu -Ru -Ru -Ru -WB -VQ -VZ -VZ -VQ -VQ -WH -WV -WW -WW -Xi -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(109,1,1) = {" -as -aT -bj -aT -aT -aT -aT -aT -aT -bj -aT -dB -dQ -dQ -dQ -dQ -dQ -dQ -dQ -fK -fR -fR -fZ -aq -uc -ue -ue -uf -ue -ue -ue -uf -ue -ue -uc -aq -ae -ae -ae -ae -ae -ae -ae -wl -Up -Vj -Vj -Vj -Vm -Vj -VU -Vu -Ru -Ru -Ru -WB -VR -We -Wo -Wz -VQ -VQ -VQ -ZE -VM -Xi -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(110,1,1) = {" -as -aT -aT -aT -aT -aT -aT -aT -aT -aT -aT -dB -dQ -ek -dQ -dQ -dQ -dQ -dQ -fK -fR -fR -fZ -aq -ud -uf -uf -uf -uf -uf -uf -uf -uf -uf -ud -aq -ae -ae -ae -ae -ae -ae -ae -wl -Us -Vn -Vj -Vj -Vm -VO -VP -Vu -Ru -Ru -Zi -WB -VR -Wk -Wu -Wz -VQ -VQ -VQ -WZ -VM -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -JL -JL -JL -JL -JL -JL -JL -JL -jf -jf -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(111,1,1) = {" -as -aT -aT -aT -bj -aT -aT -bj -aT -aT -aT -dB -dQ -dQ -dQ -dQ -dQ -dQ -dQ -fK -fR -fR -fZ -aq -bc -bc -bc -bQ -cs -bc -cs -dh -bc -bc -bc -aq -aq -ae -ae -ae -ae -ae -ae -wl -Ut -Us -Vs -VB -Vs -VP -Ut -Vu -Ru -Ru -Ru -VK -VQ -Wd -Wd -VQ -VZ -VZ -VQ -Xa -VM -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(112,1,1) = {" -as -aT -aT -aT -aT -aT -aT -aT -aT -aT -aT -dB -dQ -dQ -dQ -eM -dQ -dQ -dQ -fK -fR -fR -fZ -aq -bc -bn -by -bR -bn -cO -bn -di -by -bc -bc -bN -aq -ae -ae -ae -ae -ae -ae -wl -wl -Vo -Vo -Vo -Vo -Vo -wl -Vu -Ru -Ru -Ru -VL -VQ -VQ -VQ -VR -WA -WI -Wz -Xb -VM -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(113,1,1) = {" -as -aT -aT -aT -aT -aT -aT -aT -aT -aT -aT -dB -dQ -dQ -dQ -dQ -dQ -dQ -dQ -fK -fR -fR -fZ -aq -bc -bn -bn -bR -bn -bn -bn -di -bn -bn -dE -bO -aq -ae -ae -ae -ae -ae -ae -wl -TZ -Vi -Vi -Vi -Vi -Vi -VX -Vu -Ru -Ru -Ru -WB -VQ -VQ -VQ -VR -WF -WL -Wz -Xc -VM -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -cf -ce -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(114,1,1) = {" -as -aT -aT -aT -bj -aT -aT -bj -aT -aT -aT -dB -dQ -dQ -es -dQ -dQ -dQ -dQ -fK -fR -fR -fZ -aq -bc -bn -bn -bR -bn -bn -bn -di -bn -bn -dE -bP -aq -ae -ae -ae -ae -ae -ae -wl -Va -Vp -Ut -Ut -Ut -Ut -VU -Vu -YE -Ru -Ru -VM -VY -ZC -VQ -VQ -Wd -Wd -ZC -Xd -VM -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ce -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(115,1,1) = {" -as -aT -aT -aT -aT -aT -aT -aT -aT -aT -aT -dB -dQ -dQ -et -dQ -fc -dQ -dQ -fK -fR -fR -fZ -aq -bc -bn -bn -bn -bn -bn -bn -bn -bn -bn -dE -bO -aq -ae -ae -ae -ae -ae -ae -wl -Up -Vq -Ut -Vr -Vr -Ut -VU -Vu -Ru -Ru -Ru -VM -VM -VM -VM -VM -VM -VM -VM -VM -VM -VM -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(116,1,1) = {" -as -aT -bj -aT -aT -aT -aT -aT -aT -bj -aT -dB -dQ -dQ -dQ -dQ -dQ -dQ -dQ -fK -fR -fR -fZ -aq -bc -bn -bz -bn -bn -bn -bn -bn -bz -bc -bc -bT -aq -ae -ae -ae -ae -ae -ae -wl -Uu -Ut -Vt -Ut -Ut -Ut -XU -Vu -Ru -Ru -Ru -Vd -WS -WS -Zl -XX -Ym -Vd -YB -YK -YP -Vd -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -JL -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(117,1,1) = {" -as -aT -aT -aT -aT -aT -aT -aT -aT -aT -aT -dB -dQ -dQ -dQ -dQ -dQ -dQ -dQ -fK -fR -fR -fZ -aq -bc -bc -bc -bc -bc -bc -bc -bc -bc -bc -bc -ap -aq -ae -ae -ae -ae -ae -ae -wl -Up -Ut -Ut -Ut -Ut -VD -VU -Vu -Ru -Ru -Ru -WC -WT -WS -XJ -XZ -WS -Vd -YC -YL -YP -Vd -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -JL -jf -jf -jf -jf -jf -jf -Jz -"} -(118,1,1) = {" -ar -aL -aL -aL -aL -aL -aL -aL -aL -aL -aL -ar -aL -aL -aL -aL -aL -aL -aL -aL -aL -aL -ar -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -aq -ae -ae -ae -ae -ae -ae -wl -Up -Ut -Vr -Ut -Ut -Ut -Wh -Vu -Ru -Ru -Zi -Ve -WS -WS -XK -Ya -WS -Vd -YD -YM -XN -Vd -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -Jz -"} -(119,1,1) = {" -as -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -dB -dU -el -el -el -fd -ft -fB -fB -fB -fV -fZ -aI -aI -aI -ar -aI -aI -aI -ar -aI -aI -aI -ar -ap -ap -ae -ae -ae -ae -ae -ae -wl -Up -Ut -Ut -Ut -Ut -Ut -VU -TJ -Ru -Ru -Ru -Xk -WS -WS -XM -XZ -WS -Vd -YC -YN -YQ -Vd -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -Jz -"} -(120,1,1) = {" -as -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -dB -dV -em -em -em -fe -fu -em -em -em -fW -dB -ga -ga -ga -dB -gN -gO -gO -dB -hx -hx -hx -fZ -ap -ap -ae -ae -ae -ae -ae -ae -wl -Up -Vr -Ut -Ut -Ut -Ut -VU -Vw -Ru -Ru -Ru -Xm -WS -WS -XN -Yb -Zq -Vd -Zx -XZ -YT -Vd -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -Jz -"} -(121,1,1) = {" -as -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -dB -dV -em -em -em -fe -fu -em -em -em -fW -dB -gb -ga -gq -dB -gO -gO -gP -dB -hy -hJ -hO -fZ -ap -ap -ae -ae -ae -ae -ae -ae -wl -Up -Ut -Ut -VD -Ut -Vr -VV -Vu -Ru -Ru -Ru -Xn -WS -WS -WS -WS -WS -Vd -XN -WS -YU -Vd -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -ML -ML -ML -ML -ML -ML -ML -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -Jz -"} -(122,1,1) = {" -as -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -dB -dV -em -em -em -fe -fu -em -em -em -fW -dB -gc -ga -gc -dB -gO -gO -gO -dB -hz -hK -hP -fZ -ap -ap -ae -ae -ae -ae -ae -ae -wl -Up -Ut -Ut -Ut -Ut -Ut -VU -Vu -YE -Ru -Ru -WC -WT -WS -WS -WS -WS -Vd -Vd -Yw -Vd -Vd -Vd -Vd -Vd -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -Jz -"} -(123,1,1) = {" -as -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -dB -dV -em -em -em -fe -fu -em -em -em -fW -dB -gd -ga -ga -dB -gO -gN -gO -dB -hz -hK -hP -fZ -ap -ap -ae -ae -ae -ae -ae -ae -wl -Uu -Ut -Vr -Ut -Ut -Ut -XU -Vu -Ru -Ru -Ru -WC -WT -WS -WS -WS -WS -Vd -Ym -WS -WS -WS -WS -Zf -Vd -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -Jz -"} -(124,1,1) = {" -as -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -dB -dV -em -em -em -fe -fu -em -em -em -fW -dB -gc -ga -gq -dB -gO -gO -gO -dB -hA -hL -hQ -fZ -ap -ap -ae -ae -ae -ae -ae -ae -wl -Up -Ut -Ut -Ut -Ut -VD -VU -Vu -Ru -Ru -Ru -WC -WT -WS -WS -WS -WS -Yv -WS -WS -WS -YY -WS -WS -Vd -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -Jz -"} -(125,1,1) = {" -as -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -dB -dW -en -en -en -ff -fv -fC -fC -fC -fX -dB -gc -ga -gc -dB -gP -gO -gO -dB -hx -hx -hx -fZ -ap -ap -ae -ae -ae -ae -ae -ae -wl -Us -Vn -Ut -VE -Ut -VO -VP -Vu -Ru -Ru -Ru -Vd -WS -WS -Zn -WS -WS -WS -WS -WS -WS -YZ -WS -Zq -Vd -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -JL -jf -jf -jf -jf -jf -jf -Jz -"} -(126,1,1) = {" -as -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -dB -aH -aH -aX -aH -aH -aH -aH -br -aH -aH -fZ -aL -aL -aL -ar -aL -aL -aL -ar -aL -aL -aL -ar -ap -ap -ae -ae -ae -ae -ae -ae -wl -Ut -Us -Vs -VF -Vs -VP -Ut -Vu -Ru -Ru -Zi -Vd -Vd -Vd -Vd -Vd -Vd -Vd -YF -WS -WS -WS -WS -WS -Vd -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -JL -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(127,1,1) = {" -as -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -dB -dS -dS -dR -dS -dS -dS -dS -dR -dS -dS -dB -ge -gl -gr -dB -gQ -gR -gQ -dB -hB -hD -hD -fZ -ap -ap -ae -ae -ae -ae -ae -ae -wl -wl -Vo -Vo -Vo -Vo -Vo -wl -Vu -Ru -Ru -Ru -Vd -WU -Xy -XP -Yc -Yc -Vd -Zy -WS -WS -WS -WS -WS -Vd -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(128,1,1) = {" -as -aU -aU -aU -aU -aU -aU -aU -aU -aU -aU -dB -dR -dR -dR -dR -dR -dR -dR -dR -dR -dR -dB -gf -gl -gr -dB -gR -gQ -gR -dB -hC -hC -hC -fZ -ap -ap -ae -ae -ae -ae -ae -ae -Vk -Vk -Vk -Vk -Vk -Vk -Vk -Vk -Uv -Ru -Ru -Ru -Vd -Xj -Xz -XQ -Yh -Yc -Vd -YH -WS -WS -Zb -WS -WS -Vd -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(129,1,1) = {" -ar -aL -aL -aL -aL -aL -aL -aL -aL -aL -aL -ar -aL -aL -aL -aL -aL -aL -aL -aL -aL -aL -as -gg -gl -gr -dB -gQ -hg -gQ -dB -hD -hD -hD -fZ -ap -ap -ae -ae -ae -ae -ae -ae -Vk -Vc -Vz -Vc -Vc -Vz -Vc -Wi -YR -Ru -Ru -Ru -Vd -Zj -XA -XR -Yj -Zr -Yg -WS -WS -WS -Zc -WS -WS -Vd -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -jf -In -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(130,1,1) = {" -as -aY -bk -bk -bk -bk -cA -cA -cA -cA -dv -dB -dX -dY -dY -dY -dY -dY -dY -dY -dY -dY -dB -gh -gl -gr -dB -gR -gQ -gR -dB -hD -hD -hD -fZ -ap -ap -ae -ae -ae -ae -ae -ae -Vk -Vc -Vc -Vc -Vc -Vc -Vc -Vk -UE -Ru -Ru -Ru -Vd -Xr -XB -YW -YW -YW -Yw -WS -WS -WS -WS -WS -Zq -Vd -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(131,1,1) = {" -as -aZ -bl -bl -bl -bl -bl -bl -bl -bl -dw -dB -dX -dY -dY -eo -eo -eo -eo -dY -dY -dY -dB -gi -gl -gr -dB -gQ -gR -gQ -dB -hE -hE -hE -fZ -ap -ap -ae -ae -ae -ae -ae -ae -Vk -Vf -Vk -Vy -Vk -Vy -Vg -Vg -Vg -Wq -Ws -Ws -Vg -Vg -Vg -WS -WS -WS -Vd -WS -WS -WS -WS -WS -WS -Vd -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(132,1,1) = {" -as -aZ -bl -bl -bl -bl -bl -bl -bl -bl -dw -dB -dY -dY -dY -dY -dY -dY -dY -dY -dY -dY -dB -gf -gl -gr -dB -gR -gQ -gR -dB -hD -hD -hR -fZ -ap -ap -ae -ae -ae -ae -ae -ae -Vk -Vb -Vk -Xp -Vk -Xp -Vg -Wj -Wp -Ti -YG -Ti -Wp -Wj -Vg -XS -Yk -Yo -Vd -Zz -YO -YV -Zd -Ze -Zg -Vd -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -ML -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -JL -JL -JL -JL -JL -JL -JL -JL -jf -jf -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(133,1,1) = {" -as -aZ -bl -bl -bl -bl -bl -bl -bl -bl -dw -dB -dY -dY -dY -bu -bA -bA -bD -dY -eo -dY -fZ -aL -aL -aL -ar -aL -aL -aL -ar -aL -aL -aL -ar -ap -ap -ae -ae -ae -ae -ae -ae -Vk -Vk -Vk -Vk -Vk -Vk -Vg -Vg -Vg -Wp -Vg -Wp -Vg -Vg -Vg -Vd -Vd -Vd -Vd -Vd -Vd -Vd -Vd -Vd -Vd -Vd -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -ML -zb -qn -pF -qn -tD -ML -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -JL -JL -JL -JL -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(134,1,1) = {" -as -aZ -bl -bl -bl -bl -bl -bl -bl -bl -dw -dB -dY -eo -dY -bw -bs -bs -bE -dY -eo -dY -dB -gj -gk -gs -dB -gS -gS -gS -dB -hF -hF -hF -fZ -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -Vg -Wj -Vg -Wj -Vg -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -qn -ML -zb -zb -tD -tD -qn -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(135,1,1) = {" -as -aZ -bl -bl -bl -bl -bl -bl -bl -bl -dw -dB -dY -eo -dY -bw -bs -bs -bE -dY -eo -dY -dB -gk -gm -gk -dB -gS -gS -gS -dB -hF -hF -hF -fZ -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -Vg -Vg -Vg -Vg -Vg -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(136,1,1) = {" -as -ba -bm -bm -bm -bm -cB -cB -cB -cB -dx -dB -dY -eo -dY -bx -bC -bC -bF -dY -dY -dY -dB -gk -gn -gk -dB -gS -gS -gS -dB -hF -hF -hF -fZ -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(137,1,1) = {" -as -ac -ac -am -ac -ac -ac -ac -aD -ac -ac -dB -dY -dY -dY -dY -dY -dY -dY -dY -dY -dY -dB -gk -go -gk -dB -gS -gS -gS -dB -hF -hF -hF -fZ -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(138,1,1) = {" -as -aW -aW -aV -aW -aW -aW -aW -aV -aW -aW -dB -dY -dY -dY -eo -eo -eo -eo -dY -dY -fY -dB -gk -gk -gk -dB -gS -gS -gS -dB -hF -hF -hF -fZ -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(139,1,1) = {" -as -aV -aV -aV -aV -aV -aV -aV -aV -aV -aV -dB -dY -dY -dY -dY -dY -dY -dY -dY -dY -fY -dB -gk -gk -gt -dB -gS -gS -gS -dB -hF -hF -hF -fZ -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -qn -oI -ap -Jz -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -jf -Jz -"} -(140,1,1) = {" -ar -bb -bb -bb -bb -bb -bb -bb -bb -bb -bb -ar -bb -bb -bb -bb -bb -bb -bb -bb -bb -bb -ar -bb -bb -bb -ar -bb -bb -bb -ar -bb -bb -bb -ar -ap -ap -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ae -ap -ap -ap -ap -ap -ap -ap -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -oI -ap -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -Jz -"} +"aa" = (/obj/machinery/vending/coffee,/turf/unsimulated/beach/sand,/area/beach) +"ab" = (/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/flora/pottedplant{icon_state = "plant-10"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) +"ac" = (/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"ad" = (/obj/machinery/door/window/holowindoor{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) +"ae" = (/turf/unsimulated/mineral/virgo3b,/area/space) +"af" = (/obj/structure/sign/warning/docking_area,/turf/unsimulated/wall,/area/centcom/simulated/terminal) +"ag" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"ah" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Jury Box"},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"ai" = (/obj/machinery/door/blast/regular{dir = 4},/turf/unsimulated/floor/techfloor_grid,/area/centcom/simulated/terminal) +"aj" = (/obj/structure/sign/warning{name = "\improper STAND AWAY FROM TRACK EDGE"},/turf/unsimulated/wall,/area/centcom/simulated/terminal) +"ak" = (/obj/structure/table/woodentable/holotable,/obj/structure/window/reinforced/holowindow{dir = 4},/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) +"al" = (/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) +"am" = (/obj/machinery/door/window/holowindoor{dir = 8; name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) +"an" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) +"ao" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{icon_state = "spline_fancy"; dir = 9},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"ap" = (/turf/space,/area/space) +"aq" = (/obj/effect/step_trigger/teleporter/random,/turf/space,/area/space) +"ar" = (/turf/unsimulated/wall,/area/space) +"as" = (/obj/structure/window/reinforced,/turf/unsimulated/wall,/area/space) +"at" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"au" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet/corners{icon_state = "carpet_corners"; dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"av" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"aw" = (/obj/structure/table/woodentable/holotable,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) +"ax" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 4},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"ay" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"az" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"aA" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{icon_state = "spline_fancy"; dir = 10},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"aB" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 8},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"aC" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) +"aD" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) +"aE" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"aF" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"aG" = (/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"aH" = (/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"aI" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/wall,/area/space) +"aJ" = (/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) +"aK" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) +"aL" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/wall,/area/space) +"aM" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"aN" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"aO" = (/obj/structure/table/rack/holorack,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/head/pin/flower,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) +"aP" = (/obj/effect/landmark/costume,/obj/structure/table/rack/holorack,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) +"aQ" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) +"aR" = (/obj/machinery/door/window/holowindoor{dir = 8; name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) +"aS" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) +"aT" = (/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_wildlife) +"aU" = (/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_plating) +"aV" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) +"aW" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"aX" = (/obj/machinery/door/window/holowindoor{dir = 8; name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) +"aY" = (/obj/effect/floor_decal/corner/red/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"aZ" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"ba" = (/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"bb" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/wall,/area/space) +"bc" = (/turf/simulated/shuttle/wall,/area/shuttle/supply) +"bd" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) +"be" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"bf" = (/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"bg" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) +"bh" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) +"bi" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) +"bj" = (/obj/effect/landmark{name = "Holocarp Spawn"},/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_wildlife) +"bk" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"bl" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"bm" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"bn" = (/turf/simulated/shuttle/floor,/area/shuttle/supply) +"bo" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"bp" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"bq" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"br" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) +"bs" = (/turf/simulated/fitness,/area/holodeck/source_boxingcourt) +"bt" = (/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) +"bu" = (/obj/structure/fitness/boxing_ropes{dir = 1},/obj/structure/fitness/boxing_turnbuckle{dir = 8; layer = 3.4},/turf/simulated/fitness,/area/holodeck/source_boxingcourt) +"bv" = (/obj/structure/window/reinforced/holowindow{dir = 1},/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) +"bw" = (/obj/structure/fitness/boxing_ropes{dir = 1},/turf/simulated/fitness,/area/holodeck/source_boxingcourt) +"bx" = (/obj/structure/fitness/boxing_ropes{dir = 1},/obj/structure/fitness/boxing_turnbuckle{dir = 4; layer = 3.4},/turf/simulated/fitness,/area/holodeck/source_boxingcourt) +"by" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/supply) +"bz" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/supply) +"bA" = (/obj/structure/fitness/boxing_ropes{dir = 8},/turf/simulated/fitness,/area/holodeck/source_boxingcourt) +"bB" = (/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) +"bC" = (/obj/structure/fitness/boxing_ropes{dir = 4},/turf/simulated/fitness,/area/holodeck/source_boxingcourt) +"bD" = (/obj/structure/fitness/boxing_turnbuckle{dir = 8},/obj/structure/fitness/boxing_ropes_bottom,/turf/simulated/fitness,/area/holodeck/source_boxingcourt) +"bE" = (/obj/structure/fitness/boxing_ropes_bottom,/turf/simulated/fitness,/area/holodeck/source_boxingcourt) +"bF" = (/obj/structure/fitness/boxing_turnbuckle{dir = 4},/obj/structure/fitness/boxing_ropes_bottom,/turf/simulated/fitness,/area/holodeck/source_boxingcourt) +"bG" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre) +"bH" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) +"bI" = (/obj/structure/window/reinforced/holowindow,/obj/machinery/door/window/holowindoor{dir = 1; name = "Court Reporter's Box"},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) +"bJ" = (/obj/structure/table/woodentable/holotable,/obj/structure/window/reinforced/holowindow,/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) +"bK" = (/obj/structure/table/woodentable/holotable,/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) +"bL" = (/obj/structure/table/woodentable/holotable,/obj/structure/window/reinforced/holowindow,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) +"bM" = (/obj/structure/window/reinforced/holowindow,/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 1; icon_state = "right"; name = "Witness Box"},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) +"bN" = (/obj/effect/landmark/ai_multicam_room,/turf/unsimulated/ai_visible,/area/ai_multicam_room) +"bO" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/simulated/shuttle/plating/airless/carry{dir = 1},/area/shuttle/supply) +"bP" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating/airless/carry{dir = 1},/area/shuttle/supply) +"bQ" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"},/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/shuttle/plating,/area/shuttle/supply) +"bR" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/shuttle/floor,/area/shuttle/supply) +"bS" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) +"bT" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/obj/effect/shuttle_landmark{base_area = /area/space; base_turf = /turf/space; landmark_tag = "supply_cc"; name = "Centcom Supply Depot"},/turf/simulated/shuttle/plating/airless/carry{dir = 1},/area/shuttle/supply) +"bU" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"bV" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre) +"bW" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) +"bX" = (/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) +"bY" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) +"bZ" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) +"ca" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"cb" = (/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"cc" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"cd" = (/turf/unsimulated/wall,/area/ai_multicam_room) +"ce" = (/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b,/turf/space/transit/south,/area/space) +"cf" = (/turf/space/transit/south,/area/space) +"cg" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/south,/area/space) +"ch" = (/obj/effect/shuttle_landmark/transit{base_area = /area/space; base_turf = /turf/space/transit/east; landmark_tag = "belter_transit"; name = "Belter Transit"},/turf/space/transit/south,/area/space) +"ci" = (/turf/unsimulated/ai_visible,/area/ai_multicam_room) +"cj" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled/steel,/area/space) +"ck" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/simulated/shuttle/plating/airless/carry{dir = 1},/area/shuttle/supply) +"cl" = (/turf/space,/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 4; teleport_z_offset = 4},/turf/space/transit/north,/area/space) +"cs" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"},/turf/simulated/shuttle/floor,/area/shuttle/supply) +"ct" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) +"cu" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) +"cv" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) +"cw" = (/obj/structure/table/woodentable/holotable,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"cx" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"cy" = (/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"cz" = (/obj/structure/table/woodentable/holotable,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"cA" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"cB" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"cC" = (/obj/effect/step_trigger/lost_in_space/tram,/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"cO" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "supply_shuttle"; pixel_x = -25; pixel_y = 0; req_one_access = list(13,31); tag_door = "supply_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/supply) +"cP" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"cQ" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"cS" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"cT" = (/obj/structure/bed/chair/holochair{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"cU" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"da" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) +"dd" = (/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"de" = (/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"dg" = (/turf/unsimulated/wall{icon = 'icons/turf/transit_vr.dmi'},/area/space) +"dh" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"},/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/shuttle/plating,/area/shuttle/supply) +"di" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/shuttle/floor,/area/shuttle/supply) +"dj" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) +"dk" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) +"dl" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) +"dm" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) +"dq" = (/obj/structure/flora/pottedplant{icon_state = "plant-06"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre) +"dr" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) +"ds" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"dt" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"du" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) +"dv" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"dw" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"dx" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) +"dz" = (/obj/effect/floor_decal/transit/orange{dir = 8},/obj/effect/transit/light{dir = 8},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"dA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall,/area/space) +"dB" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/wall,/area/space) +"dE" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/shuttle/supply) +"dF" = (/turf/simulated/floor/holofloor/space,/area/holodeck/source_space) +"dG" = (/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) +"dH" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) +"dI" = (/obj/structure/flora/pottedplant{icon_state = "plant-06"},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) +"dJ" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) +"dK" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"dM" = (/obj/effect/floor_decal/corner/red/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"dN" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"dO" = (/obj/structure/holohoop,/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"dP" = (/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"dQ" = (/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) +"dR" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) +"dS" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"dU" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/obj/effect/floor_decal/corner/red/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"dV" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/weapon/holo/esword/red,/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"dW" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"dX" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) +"dY" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) +"dZ" = (/turf/unsimulated/wall,/area/centcom/simulated/terminal) +"ec" = (/obj/effect/landmark{name = "Holocarp Spawn Random"},/turf/simulated/floor/holofloor/space,/area/holodeck/source_space) +"ed" = (/obj/structure/flora/grass/both,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) +"ee" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) +"ef" = (/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) +"eg" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) +"eh" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"ei" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"ej" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"ek" = (/obj/effect/overlay/palmtree_r,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) +"el" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"em" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"en" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"eo" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) +"ep" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) +"eq" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) +"es" = (/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) +"et" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) +"eJ" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) +"eK" = (/turf/simulated/floor/holofloor/lino,/area/holodeck/source_meetinghall) +"eL" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_meetinghall) +"eM" = (/obj/item/weapon/beach_ball,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) +"eS" = (/obj/effect/floor_decal/industrial/danger,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"eT" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) +"eU" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) +"eV" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) +"eW" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) +"eX" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) +"eY" = (/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"eZ" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"fa" = (/obj/item/weapon/beach_ball/holoball,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"fb" = (/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"fc" = (/obj/item/weapon/inflatable_duck,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) +"fd" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"fe" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"ff" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"fn" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) +"fo" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) +"fp" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) +"fq" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"fr" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"fs" = (/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"ft" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"fu" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"fv" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"fz" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"fA" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"fB" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"fC" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"fG" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) +"fH" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet{dir = 8},/area/holodeck/source_meetinghall) +"fJ" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"fK" = (/turf/unsimulated/beach/sand{icon_state = "beach"},/area/holodeck/source_beach) +"fO" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) +"fP" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) +"fQ" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) +"fR" = (/turf/simulated/floor/holofloor/beach/water,/area/holodeck/source_beach) +"fS" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"fT" = (/obj/structure/holohoop{dir = 1},/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"fU" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) +"fV" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"fW" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"fX" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) +"fY" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) +"fZ" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall,/area/space) +"ga" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/holodorm/source_basic) +"gb" = (/obj/structure/bed/chair/holochair{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/holodorm/source_basic) +"gc" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/wood,/area/holodeck/holodorm/source_basic) +"gd" = (/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/wood,/area/holodeck/holodorm/source_basic) +"ge" = (/obj/effect/overlay/palmtree_r,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/holodorm/source_beach) +"gf" = (/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/holodorm/source_beach) +"gg" = (/obj/effect/overlay/coconut,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/holodorm/source_beach) +"gh" = (/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/holodorm/source_beach) +"gi" = (/obj/effect/overlay/palmtree_l,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/holodorm/source_beach) +"gj" = (/obj/structure/flora/grass/brown,/obj/structure/flora/tree/dead,/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) +"gk" = (/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) +"gl" = (/turf/unsimulated/beach/sand{icon_state = "beach"},/area/holodeck/holodorm/source_beach) +"gm" = (/obj/effect/landmark{name = "Wolfgirl Spawn"},/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) +"gn" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) +"go" = (/obj/structure/flora/grass/green,/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) +"gq" = (/obj/structure/bed/holobed,/turf/simulated/floor/holofloor/wood,/area/holodeck/holodorm/source_basic) +"gr" = (/turf/simulated/floor/holofloor/beach/water,/area/holodeck/holodorm/source_beach) +"gs" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) +"gt" = (/obj/structure/flora/grass/both,/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) +"gN" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/holodorm/source_desert) +"gO" = (/turf/simulated/floor/holofloor/desert,/area/holodeck/holodorm/source_desert) +"gP" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/holodorm/source_desert) +"gQ" = (/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/holodorm/source_garden) +"gR" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/holodorm/source_garden) +"gS" = (/turf/simulated/floor/holofloor/reinforced,/area/holodeck/holodorm/source_off) +"gU" = (/obj/machinery/light,/obj/effect/floor_decal/industrial/danger,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"hg" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/landmark{name = "Catgirl Spawn"},/turf/simulated/floor/holofloor/grass,/area/holodeck/holodorm/source_garden) +"hx" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/holodorm/source_seating) +"hy" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) +"hz" = (/obj/structure/bed/chair/holochair,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) +"hA" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) +"hB" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/holodorm/source_boxing) +"hC" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/holodorm/source_boxing) +"hD" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/holodorm/source_boxing) +"hE" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/holodorm/source_boxing) +"hF" = (/turf/simulated/floor/holofloor/space,/area/holodeck/holodorm/source_space) +"hJ" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) +"hK" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) +"hL" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) +"hO" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) +"hP" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) +"hQ" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) +"hR" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/holodorm/source_boxing) +"iO" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 4; teleport_z_offset = 4},/turf/space/transit/west,/area/space) +"iY" = (/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"jf" = (/turf/space/transit/north,/area/space) +"jQ" = (/obj/effect/shuttle_landmark/transit{base_area = /area/space; base_turf = /turf/space/transit/east; landmark_tag = "specops_transit"; name = "Specops Transit"},/turf/space/transit/west,/area/space) +"kh" = (/obj/machinery/telecomms/relay/preset/centcom/tether,/turf/unsimulated/floor/steel,/area/centcom/control) +"kn" = (/obj/structure/fake_stairs/north/bottom{_stair_tag = "stairtest"},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"kr" = (/obj/machinery/telecomms/server/presets/centcomm,/turf/unsimulated/floor/steel,/area/centcom/control) +"le" = (/obj/effect/floor_decal/transit/orange{dir = 4},/obj/effect/step_trigger/lost_in_space/tram,/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"mZ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"oI" = (/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b,/turf/space/transit/east,/area/space) +"pb" = (/obj/machinery/telecomms/processor/preset_cent,/turf/unsimulated/floor/steel,/area/centcom/control) +"pu" = (/obj/effect/floor_decal/transit/orange{dir = 4},/obj/effect/transit/light{dir = 4},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"pF" = (/obj/effect/shuttle_landmark/transit{base_area = /area/space; base_turf = /turf/space/transit/east; landmark_tag = "escapepod1_transit"; name = "Escapepod 1 Transit"},/turf/space/transit/east,/area/space) +"qn" = (/turf/space/transit/east,/area/space) +"qz" = (/turf/space,/turf/space/internal_edge/bottomright,/area/space) +"qH" = (/obj/effect/floor_decal/transit/orange{dir = 8},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"rE" = (/obj/machinery/telecomms/bus/preset_cent,/turf/unsimulated/floor/steel,/area/centcom/control) +"sl" = (/turf/space/internal_edge/top,/area/space) +"sF" = (/obj/effect/overmap/bluespace_rift,/turf/unsimulated/map,/area/overmap) +"tC" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/steel,/area/space) +"tD" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east,/area/space) +"tH" = (/obj/effect/floor_decal/transit/orange{dir = 8},/obj/effect/step_trigger/lost_in_space/tram,/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"tJ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/simulated/floor/maglev{icon = 'icons/turf/transit_vr.dmi'},/area/space) +"uc" = (/turf/unsimulated/wall,/area/centcom/suppy) +"ud" = (/obj/machinery/status_display/supply_display,/turf/unsimulated/wall,/area/centcom/suppy) +"ue" = (/obj/structure/closet/crate,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/suppy) +"uf" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/suppy) +"ug" = (/obj/item/weapon/paper{info = "You're not supposed to be here."; name = "unnerving letter"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/suppy) +"vi" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/simulated/floor/maglev{icon = 'icons/turf/transit_vr.dmi'},/area/space) +"vG" = (/obj/effect/step_trigger/lost_in_space/tram,/turf/simulated/floor/maglev{icon = 'icons/turf/transit_vr.dmi'},/area/space) +"vR" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"wd" = (/obj/structure/sign/warning/nosmoking_2,/turf/unsimulated/wall,/area/centcom/simulated/terminal) +"wj" = (/turf/space/internal_edge/left,/area/space) +"wl" = (/turf/unsimulated/wall,/area/centcom/simulated/evac) +"wn" = (/obj/structure/fake_stairs/south/top{_stair_tag = "stairtest"},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"wr" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"wy" = (/turf/unsimulated/wall,/area/centcom/control) +"wZ" = (/turf/unsimulated/floor{icon_state = "sandwater"},/area/beach) +"xe" = (/obj/machinery/account_database{dir = 1; name = "CentComm Accounts database"},/turf/unsimulated/floor/steel,/area/centcom/control) +"xM" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"ya" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/simulated/sky/virgo3b/south,/area/space) +"ym" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"yA" = (/obj/machinery/telecomms/receiver/preset_cent,/turf/unsimulated/floor/steel,/area/centcom/control) +"yF" = (/obj/effect/floor_decal/transit/orange{dir = 4},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"yK" = (/obj/machinery/door/airlock/multi_tile/metal,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"zb" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; nostop = 0; tiles = 0},/turf/space/transit/east,/area/space) +"zv" = (/obj/effect/floor_decal/transit/orange{dir = 8},/obj/effect/transit/light{dir = 8},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"zK" = (/obj/machinery/door/blast/regular{dir = 4},/turf/simulated/floor/maglev,/area/centcom/simulated/terminal) +"Al" = (/obj/effect/floor_decal/techfloor/orange{dir = 8},/turf/simulated/floor/tiled/techfloor/grid,/area/centcom/simulated/terminal) +"Av" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/simulated/floor/maglev{icon = 'icons/turf/transit_vr.dmi'},/area/space) +"Ax" = (/turf/unsimulated/beach/coastline{density = 1; opacity = 1},/area/beach) +"Az" = (/turf/unsimulated/beach/coastline,/area/beach) +"Bw" = (/turf/unsimulated/beach/water,/area/beach) +"BD" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand,/area/beach) +"BK" = (/turf/space,/turf/space/internal_edge/bottomleft,/area/space) +"Cn" = (/turf/simulated/sky/virgo3b/south,/area/space) +"Ct" = (/obj/machinery/ntnet_relay,/turf/unsimulated/floor/steel,/area/centcom/control) +"Cw" = (/obj/machinery/r_n_d/server/centcom,/turf/unsimulated/floor/steel,/area/centcom/control) +"Cy" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"Dk" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/steel,/area/space) +"Dw" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/snacks/chips,/turf/unsimulated/beach/sand,/area/beach) +"DF" = (/turf/space,/turf/space/internal_edge/topright,/area/space) +"El" = (/turf/space/transit/west,/area/space) +"ET" = (/turf/simulated/floor/tiled/techfloor/grid,/area/centcom/simulated/terminal) +"Fa" = (/obj/structure/table/standard,/turf/unsimulated/beach/sand,/area/beach) +"Fp" = (/turf/simulated/floor/maglev,/area/centcom/simulated/terminal) +"Fr" = (/obj/effect/floor_decal/transit/orange{dir = 4},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"FH" = (/obj/structure/bed/chair,/obj/effect/landmark{name = "endgame_exit"},/obj/item/toy/plushie/mouse{desc = "A plushie of a small fuzzy rodent."; name = "Woodrat"},/turf/unsimulated/beach/sand,/area/beach) +"FT" = (/obj/effect/shuttle_landmark{base_area = null; base_turf = null; docking_controller = null; landmark_tag = "escape_transit"; name = "Escape Transit"},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"Ga" = (/turf/unsimulated/floor/steel,/area/centcom/control) +"Gq" = (/turf/unsimulated/wall,/area/beach) +"Gs" = (/turf/space,/turf/space/transit/north,/area/space) +"Gw" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/beach) +"Hf" = (/obj/effect/shuttle_landmark/transit{base_area = /area/space; base_turf = /turf/space/transit/north; landmark_tag = "ninja_transit"; name = "Ninja Transit"},/turf/space/transit/north,/area/space) +"Hy" = (/turf/unsimulated/mineral{icon = 'icons/turf/transit_vr.dmi'; icon_state = "rock"},/area/space) +"HQ" = (/obj/machinery/telecomms/broadcaster/preset_cent,/turf/unsimulated/floor/steel,/area/centcom/control) +"Ik" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/turf/unsimulated/beach/sand,/area/beach) +"In" = (/obj/effect/shuttle_landmark/transit{base_area = /area/space; base_turf = /turf/space/transit/north; landmark_tag = "skipjack_transit"; name = "Skipjack Transit"},/turf/space/transit/north,/area/space) +"Iq" = (/obj/machinery/telecomms/hub/preset_cent,/turf/unsimulated/floor/steel,/area/centcom/control) +"IN" = (/obj/effect/floor_decal/transit/orange{dir = 8},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"IR" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/simulated/sky/virgo3b/south,/area/space) +"Jx" = (/obj/effect/floor_decal/corner_steel_grid/diagonal,/obj/effect/floor_decal/corner_steel_grid/diagonal{dir = 4},/obj/effect/floor_decal/industrial/danger{dir = 8},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) +"Jz" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 4; teleport_z_offset = 4},/turf/space/transit/north,/area/space) +"JL" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north,/area/space) +"JR" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "TelelockdownC"; name = "Security Doors"; opacity = 0},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) +"JW" = (/turf/unsimulated/beach/water{density = 1; opacity = 1},/area/beach) +"JZ" = (/turf/space/internal_edge/right,/area/space) +"Kj" = (/obj/effect/shuttle_landmark/transit{base_area = /area/space; base_turf = /turf/simulated/sky/virgo3b/south; landmark_tag = "tether_backup_transit"; name = "Tether Backup Transit"},/turf/simulated/sky/virgo3b/south,/area/space) +"Lg" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled/steel,/area/space) +"Lz" = (/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b,/turf/simulated/sky/virgo3b/south,/area/space) +"Mb" = (/obj/effect/transit/light{dir = 8},/turf/unsimulated/mineral{icon = 'icons/turf/transit_vr.dmi'; icon_state = "rock"},/area/space) +"ME" = (/obj/machinery/computer/rdservercontrol{name = "Master R&D Server Controller"; icon_state = "computer"; dir = 1; badmin = 1},/turf/unsimulated/floor/steel,/area/centcom/control) +"MK" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"ML" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east,/area/space) +"Nj" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/sand,/area/beach) +"No" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/beach) +"Nq" = (/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) +"Nr" = (/obj/machinery/cryopod/robot/door/gateway,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) +"Nt" = (/turf/unsimulated/beach/sand{density = 1; opacity = 1},/area/beach) +"Oj" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/simulated/sky/virgo3b/south,/area/space) +"OR" = (/turf/simulated/shuttle/wall,/area/shuttle/escape) +"OY" = (/turf/unsimulated/map,/area/overmap) +"Pe" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/escape) +"Pf" = (/obj/structure/table/woodentable{dir = 5},/obj/structure/flora/pottedplant{pixel_y = 8},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) +"Pg" = (/turf/simulated/shuttle/wall/hard_corner,/area/shuttle/escape) +"Pi" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/west,/area/space) +"Pq" = (/turf/simulated/floor/maglev{icon = 'icons/turf/transit_vr.dmi'},/area/space) +"Qa" = (/obj/structure/closet/hydrant{pixel_x = -30; pixel_y = 0},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/toxin,/obj/structure/bed/chair/shuttle,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"QW" = (/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"QX" = (/obj/structure/bed/chair/shuttle,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"QY" = (/obj/structure/flora/pottedplant{icon_state = "plant-21"},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) +"Rc" = (/obj/effect/floor_decal/techfloor/orange{dir = 4},/turf/simulated/floor/tiled/techfloor/grid,/area/centcom/simulated/terminal) +"Rd" = (/obj/structure/table/standard,/obj/random/maintenance/clean,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"Re" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"Rf" = (/obj/machinery/status_display{pixel_y = 30},/obj/structure/table/standard,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"Rg" = (/obj/structure/bed/chair/shuttle{dir = 1},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"Rh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/unsimulated/wall,/area/centcom/simulated/terminal) +"Ri" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_shuttle_hatch_station"; locked = 1; name = "Shuttle Hatch"},/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape) +"Rj" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_shuttle_hatch_offsite"; locked = 1; name = "Shuttle Hatch"},/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape) +"Rk" = (/obj/structure/bed/chair/shuttle,/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"Rl" = (/obj/structure/bed/chair/shuttle,/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"Rm" = (/obj/structure/table/standard,/obj/random/junk,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"Ro" = (/obj/structure/table/standard,/obj/random/maintenance/clean,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"Rq" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "TelelockdownC"; name = "Security Doors"; opacity = 0},/obj/effect/floor_decal/industrial/warning,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) +"Rr" = (/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"Rs" = (/obj/structure/sign/nanotrasen,/obj/effect/shuttle_landmark{base_area = /area/centcom/simulated/terminal; base_turf = /turf/simulated/floor/tiled/techfloor/grid; docking_controller = null; landmark_tag = "escape_cc"; name = "Escape Centcom"},/turf/simulated/shuttle/wall,/area/shuttle/escape) +"Rt" = (/obj/structure/sign/nanotrasen,/turf/simulated/shuttle/wall,/area/shuttle/escape) +"Ru" = (/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"Rv" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "TelelockdownC"; name = "Security Doors"; opacity = 0},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) +"Rw" = (/obj/structure/table/standard,/obj/item/clothing/head/beret/nanotrasen,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"Rx" = (/obj/structure/table/standard,/obj/random/plushie,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"Ry" = (/obj/structure/bed/chair/shuttle{dir = 1},/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"Rz" = (/obj/structure/bed/chair/shuttle{dir = 1},/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"RA" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/floor/white,/area/shuttle/escape) +"RC" = (/obj/effect/floor_decal/industrial/outline/blue,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"RD" = (/obj/structure/bed/chair/shuttle{dir = 1},/obj/machinery/light,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"RE" = (/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/light,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"RF" = (/obj/random/junk,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"RG" = (/obj/structure/bed/chair/shuttle{dir = 1},/obj/random/soap,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) +"RV" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/simulated/sky/virgo3b/south,/area/space) +"Sh" = (/obj/effect/floor_decal/transit/orange{dir = 4},/obj/effect/transit/light{dir = 4},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) +"Sl" = (/obj/effect/floor_decal/techfloor/orange{dir = 8},/obj/machinery/camera/network/crescent{dir = 4},/turf/simulated/floor/tiled/techfloor/grid,/area/centcom/simulated/terminal) +"Sm" = (/turf/simulated/shuttle/wall/alien/blue/hard_corner,/area/unknown/dorm4) +"Sn" = (/turf/simulated/shuttle/wall/alien/blue,/area/unknown/dorm4) +"So" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) +"Sp" = (/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) +"Sq" = (/obj/structure/toilet,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) +"Sr" = (/obj/machinery/shower{pixel_y = 13},/obj/structure/curtain/open/shower,/obj/effect/floor_decal/steeldecal/steel_decals10{dir = 5},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) +"Ss" = (/obj/machinery/door/airlock/alien/blue/public,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) +"Su" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) +"Sw" = (/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) +"Sx" = (/obj/structure/fans,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) +"Sz" = (/obj/machinery/smartfridge/survival_pod,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) +"SA" = (/obj/machinery/sleeper/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) +"SB" = (/obj/structure/table/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) +"SC" = (/obj/item/device/perfect_tele_beacon/stationary{tele_name = "Unknown"; tele_network = "unkfour"},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) +"SD" = (/obj/structure/bed/double/padded,/obj/item/weapon/bedsheet/hopdouble,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) +"SE" = (/obj/structure/prop/alien/computer/hybrid{dir = 8},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) +"SF" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) +"SG" = (/obj/machinery/door/blast/regular{dir = 4},/turf/simulated/floor/tiled/techfloor/grid,/area/centcom/simulated/terminal) +"SH" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) +"SK" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) +"SN" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) +"SO" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) +"SP" = (/obj/structure/table/alien/blue,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) +"SQ" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor/voidcraft,/area/unknown/dorm4) +"SR" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) +"SS" = (/obj/machinery/computer/teleporter{dir = 1},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) +"ST" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) +"SV" = (/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals9{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals9{dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"SW" = (/obj/item/device/perfect_tele_beacon/stationary{tele_name = "Transfer"; tele_network = "centcom"},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) +"SX" = (/turf/simulated/shuttle/wall/alien/blue/hard_corner,/area/unknown/dorm3) +"SY" = (/turf/simulated/shuttle/wall/alien/blue,/area/unknown/dorm3) +"SZ" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) +"Ta" = (/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) +"Tb" = (/obj/structure/toilet,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) +"Tc" = (/obj/machinery/shower{pixel_y = 13},/obj/structure/curtain/open/shower,/obj/effect/floor_decal/steeldecal/steel_decals10{dir = 5},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) +"Td" = (/obj/machinery/door/airlock/alien/blue/public,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) +"Tf" = (/obj/machinery/cryopod/robot/door/gateway,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) +"Th" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) +"Ti" = (/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) +"Tj" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) +"Tk" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) +"Tl" = (/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) +"Tm" = (/obj/structure/fans,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) +"Tn" = (/obj/structure/table/standard,/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/collectable/petehat{pixel_y = 5},/turf/unsimulated/beach/sand,/area/beach) +"To" = (/obj/machinery/smartfridge/survival_pod,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) +"Tp" = (/obj/machinery/sleeper/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) +"Tq" = (/obj/structure/table/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) +"Tr" = (/obj/item/device/perfect_tele_beacon/stationary{tele_name = "Unknown"; tele_network = "unkthree"},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) +"Ts" = (/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach) +"Tt" = (/obj/structure/bed/double/padded,/obj/item/weapon/bedsheet/hopdouble,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) +"Tu" = (/obj/structure/prop/alien/computer/hybrid{dir = 8},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) +"Tx" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) +"Ty" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) +"Tz" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) +"TA" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) +"TB" = (/obj/structure/table/alien/blue,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) +"TC" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor/voidcraft,/area/unknown/dorm3) +"TD" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) +"TE" = (/obj/machinery/computer/teleporter{dir = 1},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) +"TF" = (/obj/structure/bed/chair,/obj/effect/landmark{name = "endgame_exit"},/turf/unsimulated/beach/sand,/area/beach) +"TG" = (/obj/effect/landmark{name = "endgame_exit"},/turf/unsimulated/beach/sand,/area/beach) +"TH" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) +"TI" = (/obj/effect/wingrille_spawn/reinforced/crescent,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/centcom/simulated/terminal) +"TJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/multi_tile/glass,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"TK" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/unknown/dorm2) +"TM" = (/turf/simulated/shuttle/wall/alien,/area/unknown/dorm2) +"TN" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) +"TP" = (/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) +"TQ" = (/obj/structure/toilet,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) +"TR" = (/obj/machinery/shower{pixel_y = 13},/obj/structure/curtain/open/shower,/obj/effect/floor_decal/steeldecal/steel_decals10{dir = 5},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) +"TS" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) +"TT" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) +"TU" = (/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) +"TV" = (/obj/structure/fans,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) +"TW" = (/obj/machinery/smartfridge/survival_pod,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) +"TX" = (/obj/machinery/sleeper/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) +"TY" = (/obj/machinery/door/firedoor,/turf/unsimulated/floor/steel,/area/centcom/simulated/terminal) +"TZ" = (/obj/effect/floor_decal/industrial/warning/dust/corner,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Ua" = (/obj/structure/table/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) +"Ub" = (/obj/item/device/perfect_tele_beacon/stationary{tele_name = "Unknown"; tele_network = "unktwo"},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) +"Uc" = (/obj/item/weapon/bedsheet/rddouble,/obj/structure/bed/double/padded,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) +"Ud" = (/obj/structure/prop/alien/computer{dir = 8},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) +"Uf" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) +"Ug" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) +"Uh" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) +"Ui" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) +"Uj" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) +"Uk" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor/voidcraft,/area/unknown/dorm2) +"Ul" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) +"Um" = (/obj/machinery/computer/teleporter{dir = 1},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) +"Uo" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) +"Up" = (/obj/effect/floor_decal/industrial/warning/dust,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Ur" = (/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning/dust,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Us" = (/obj/effect/floor_decal/industrial/warning/dust/corner{dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Ut" = (/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Uu" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Uv" = (/obj/effect/floor_decal/industrial/outline,/obj/structure/bed/chair,/turf/unsimulated/floor/steel,/area/centcom/simulated/main_hall) +"Uw" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/unknown/dorm1) +"Ux" = (/turf/simulated/shuttle/wall/alien,/area/unknown/dorm1) +"Uz" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) +"UA" = (/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) +"UC" = (/obj/structure/toilet,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) +"UD" = (/obj/machinery/shower{pixel_y = 13},/obj/structure/curtain/open/shower,/obj/effect/floor_decal/steeldecal/steel_decals10{dir = 5},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) +"UE" = (/obj/effect/floor_decal/industrial/outline,/obj/structure/bed/chair,/obj/machinery/status_display{pixel_y = 29},/turf/unsimulated/floor/steel,/area/centcom/simulated/main_hall) +"UF" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) +"UG" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) +"UH" = (/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) +"UI" = (/obj/structure/fans,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) +"UJ" = (/obj/machinery/smartfridge/survival_pod,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) +"UK" = (/obj/machinery/sleeper/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) +"UM" = (/obj/structure/table/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) +"UN" = (/obj/item/device/perfect_tele_beacon/stationary{tele_name = "Unknown"; tele_network = "unkone"},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) +"UP" = (/obj/item/weapon/bedsheet/rddouble,/obj/structure/bed/double/padded,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) +"UQ" = (/obj/structure/prop/alien/computer{dir = 8},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) +"UR" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) +"US" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) +"UT" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) +"UU" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) +"UV" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) +"UW" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor/voidcraft,/area/unknown/dorm1) +"UX" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) +"UY" = (/obj/machinery/computer/teleporter{dir = 1},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) +"UZ" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) +"Va" = (/obj/effect/floor_decal/rust/steel_decals_rusted2,/obj/effect/floor_decal/industrial/warning/dust,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Vb" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) +"Vc" = (/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) +"Vd" = (/turf/unsimulated/wall,/area/centcom/simulated/medical) +"Ve" = (/obj/effect/wingrille_spawn/reinforced/crescent,/obj/structure/sign/department/medbay,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/simulated/medical) +"Vf" = (/obj/machinery/door/airlock{name = "Unit 4"},/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) +"Vg" = (/turf/unsimulated/wall,/area/centcom/simulated/living) +"Vh" = (/obj/effect/floor_decal/corner_steel_grid/diagonal,/obj/effect/floor_decal/corner_steel_grid/diagonal{dir = 4},/obj/effect/floor_decal/industrial/danger{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) +"Vi" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Vj" = (/turf/simulated/floor/tiled/steel,/area/shuttle/large_escape_pod2/centcom{base_turf = /turf/simulated/floor/tiled/steel_dirty/virgo3b}) +"Vk" = (/turf/unsimulated/wall,/area/centcom/simulated/bathroom) +"Vl" = (/obj/structure/sign/warning{name = "\improper STAND AWAY FROM TRACK EDGE"},/turf/unsimulated/wall,/area/centcom/simulated/living) +"Vm" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/steel,/area/shuttle/large_escape_pod2/centcom{base_turf = /turf/simulated/floor/tiled/steel_dirty/virgo3b}) +"Vn" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 10},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Vo" = (/obj/machinery/door/blast/regular{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Vp" = (/obj/effect/floor_decal/rust/part_rusted3,/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 9},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Vq" = (/obj/effect/floor_decal/rust/part_rusted3,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Vr" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Vs" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Vt" = (/obj/effect/floor_decal/rust/mono_rusted3,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Vu" = (/turf/unsimulated/wall,/area/centcom/simulated/main_hall) +"Vv" = (/obj/machinery/door/airlock/multi_tile/glass{dir = 1},/obj/machinery/door/firedoor,/turf/unsimulated/floor/steel,/area/centcom/simulated/terminal) +"Vw" = (/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"Vy" = (/obj/machinery/door/airlock{name = "Unit 3"},/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) +"Vz" = (/obj/machinery/light/small{dir = 8; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) +"VB" = (/obj/effect/floor_decal/sign/dock/one,/obj/effect/floor_decal/industrial/warning/dust{dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"VC" = (/turf/unsimulated/beach/sand,/area/beach) +"VD" = (/obj/effect/floor_decal/corner_steel_grid/diagonal,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"VE" = (/obj/effect/shuttle_landmark{base_area = /area/centcom/simulated/evac; base_turf = /turf/unsimulated/floor/steel; docking_controller = null; landmark_tag = "escapepod1_cc"; name = "Centcom Recovery Area"},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"VF" = (/obj/effect/floor_decal/sign/dock/two,/obj/effect/floor_decal/industrial/warning/dust{dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"VI" = (/turf/unsimulated/wall,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"VJ" = (/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning/dust{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"VK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/multi_tile/glass,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/restaurant) +"VL" = (/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/restaurant) +"VM" = (/turf/unsimulated/wall,/area/centcom/simulated/restaurant) +"VN" = (/obj/effect/floor_decal/corner_steel_grid/diagonal,/turf/simulated/floor/tiled/steel,/area/shuttle/large_escape_pod2/centcom{base_turf = /turf/simulated/floor/tiled/steel_dirty/virgo3b}) +"VO" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 9},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"VP" = (/obj/effect/floor_decal/industrial/warning/dust/corner{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"VQ" = (/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"VR" = (/obj/structure/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"VS" = (/obj/effect/floor_decal/corner_steel_grid/diagonal,/obj/effect/floor_decal/industrial/warning/dust/corner{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"VU" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"VV" = (/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"VW" = (/turf/space,/turf/space/internal_edge/topleft,/area/space) +"VX" = (/obj/effect/floor_decal/industrial/warning/dust/corner{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"VY" = (/obj/structure/closet/crate/bin,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"VZ" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Wb" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/pastatomato,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Wc" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/meatballspagetti,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Wd" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"We" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/fries,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Wh" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 9},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Wi" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"},/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) +"Wj" = (/obj/effect/blocker,/turf/simulated/floor/tiled/white,/area/centcom/simulated/living) +"Wk" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/cheeseburger{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/food/snacks/cheeseburger,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Wl" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/kitsuneudon,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Wm" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/lasagna,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Wo" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/hotdog,/obj/item/weapon/reagent_containers/food/snacks/hotdog{pixel_x = -5; pixel_y = -3},/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Wp" = (/obj/machinery/cryopod/robot/door/dorms,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) +"Wq" = (/obj/effect/floor_decal/steeldecal/steel_decals9{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals9{dir = 1},/obj/machinery/computer/cryopod/dorms{name = "Company Property Retention System"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) +"Ws" = (/obj/effect/floor_decal/steeldecal/steel_decals9{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals9{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) +"Wt" = (/obj/machinery/porta_turret/crescent{density = 1},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Wu" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/bigbiteburger,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Wv" = (/obj/effect/floor_decal/industrial/outline,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Wz" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"WA" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/grilledcheese,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"WB" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/simulated/floor/plating,/area/centcom/simulated/restaurant) +"WC" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/simulated/floor/plating,/area/centcom/simulated/medical) +"WD" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach) +"WE" = (/obj/effect/wingrille_spawn/reinforced/crescent,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "FrontlockC2"; name = "Security Door"; opacity = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"WF" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/meatballsoup,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"WH" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/wood,/area/centcom/simulated/bar) +"WI" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/roastbeef,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"WJ" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor/northleft{req_access = list(63); req_one_access = list(1)},/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "FrontlockC2"; name = "Security Door"; opacity = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"WK" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window/brigdoor/northright{req_access = list(63); req_one_access = list(1)},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "FrontlockC2"; name = "Security Door"; opacity = 0},/obj/machinery/computer/skills,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"WL" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/meatsteak,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"WN" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/obj/machinery/light{dir = 8},/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"WO" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/cola,/turf/simulated/floor/wood,/area/centcom/simulated/bar) +"WP" = (/obj/structure/table/woodentable,/obj/machinery/cash_register/civilian,/turf/simulated/floor/wood,/area/centcom/simulated/bar) +"WQ" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/space_mountain_wind,/turf/simulated/floor/wood,/area/centcom/simulated/bar) +"WR" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/toastedsandwich{pixel_w = 0; pixel_x = 0; pixel_y = 10},/turf/simulated/floor/wood,/area/centcom/simulated/bar) +"WS" = (/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"WT" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"WU" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"; pixel_x = 2; pixel_y = 2},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"WV" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/centcom/simulated/bar) +"WW" = (/turf/simulated/floor/wood,/area/centcom/simulated/bar) +"WZ" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Xa" = (/obj/machinery/vending/sovietsoda,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Xb" = (/obj/machinery/vending/snack,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Xc" = (/obj/machinery/vending/cola,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Xd" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"Xe" = (/obj/machinery/smartfridge/drinks,/turf/simulated/floor/wood,/area/centcom/simulated/bar) +"Xf" = (/obj/machinery/vending/boozeomat,/turf/simulated/floor/wood,/area/centcom/simulated/bar) +"Xg" = (/obj/structure/table/reinforced,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/simulated/floor/wood,/area/centcom/simulated/bar) +"Xh" = (/obj/structure/table/reinforced,/obj/machinery/chemical_dispenser/bar_alc/full,/turf/simulated/floor/wood,/area/centcom/simulated/bar) +"Xi" = (/turf/unsimulated/wall,/area/centcom/simulated/bar) +"Xj" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/surgery,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Xk" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/multi_tile/glass,/turf/unsimulated/floor/steel{icon_state = "white"},/area/centcom/simulated/medical) +"Xl" = (/turf/unsimulated/map/edge,/area/overmap) +"Xm" = (/obj/machinery/door/firedoor,/turf/unsimulated/floor/steel{icon_state = "white"},/area/centcom/simulated/medical) +"Xn" = (/obj/structure/sign/greencross,/turf/unsimulated/wall,/area/centcom/simulated/medical) +"Xp" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) +"Xr" = (/obj/structure/bed/chair,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Xs" = (/obj/machinery/computer/card{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; dir = 1; frequency = 1475; icon_state = "intercom"; listening = 1; name = "Station Intercom (Security)"; pixel_x = 0; pixel_y = 27},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Xv" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Xw" = (/obj/structure/bed/chair/office/dark{dir = 4},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Xx" = (/obj/machinery/computer/security{dir = 8},/obj/machinery/camera/network/crescent,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Xy" = (/obj/structure/table/standard,/obj/item/stack/nanopaste,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Xz" = (/obj/effect/floor_decal/industrial/loading,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"XA" = (/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 6},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"XB" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 12; pixel_y = 8},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"XC" = (/obj/machinery/computer/secure_data{dir = 4},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"XD" = (/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"XE" = (/obj/effect/floor_decal/techfloor/orange{dir = 8},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/techfloor/grid,/area/centcom/simulated/terminal) +"XH" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) +"XJ" = (/obj/structure/table/glass,/obj/item/device/healthanalyzer/improved,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"XK" = (/obj/structure/table/glass,/obj/machinery/computer/med_data{icon_keyboard = "laptop_key"; icon_screen = "medlaptop"; icon_state = "laptop"; light_color = "#00b000"},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"XM" = (/obj/structure/table/glass{desc = "It's a table, it has some scracthes..they say 'Mlem'."},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"XN" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"XO" = (/obj/structure/signpost,/turf/unsimulated/beach/sand,/area/beach) +"XP" = (/obj/machinery/oxygen_pump/anesthetic,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"XQ" = (/obj/machinery/optable,/obj/machinery/light{dir = 8; icon_state = "tube1"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"XR" = (/obj/machinery/computer/operating{dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"XS" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"XU" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"XV" = (/obj/machinery/turretid/stun{check_access = 0; check_anomalies = 0; check_records = 0; check_synth = 0; check_weapons = 0; control_area = "\improper CentCom Security Arrivals"; pixel_x = 32; req_access = list(101); req_one_access = list(101)},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"XX" = (/obj/machinery/computer/crew{dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"XY" = (/obj/structure/closet,/turf/unsimulated/beach/sand,/area/beach) +"XZ" = (/obj/structure/bed/chair/office/dark,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Ya" = (/obj/machinery/camera/network/crescent,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Yb" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 3},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Yc" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Yg" = (/obj/structure/sign/department/operational,/turf/unsimulated/wall,/area/centcom/simulated/medical) +"Yh" = (/obj/effect/floor_decal/industrial/loading{dir = 1},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Yj" = (/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 10},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Yk" = (/obj/structure/medical_stand,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Yl" = (/obj/machinery/door/airlock/security{name = "Security"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Ym" = (/obj/machinery/vending/medical,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Yo" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Yr" = (/obj/structure/table/reinforced,/obj/machinery/microwave{pixel_y = 5},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Ys" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Yt" = (/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) +"Yu" = (/obj/machinery/camera/network/crescent,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Yv" = (/obj/machinery/door/airlock/multi_tile/glass{req_access = list(5)},/obj/machinery/door/firedoor/multi_tile,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Yw" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access = list(45)},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Yx" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) +"Yy" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 30},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"YB" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 5; pixel_y = 5},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/tool/wrench,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YC" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YD" = (/obj/machinery/atmospherics/unary/freezer,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YE" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"YF" = (/obj/structure/table/glass,/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YG" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) +"YH" = (/obj/structure/table/glass,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YI" = (/obj/structure/table/reinforced,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/gun/energy/taser,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"YJ" = (/obj/structure/closet/secure_closet/nanotrasen_security,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/shield/riot,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"YK" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YL" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YM" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YN" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YO" = (/obj/machinery/computer/transhuman/designer{dir = 8},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YP" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YQ" = (/obj/structure/table/glass,/obj/machinery/chemical_dispenser/full,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YR" = (/turf/unsimulated/floor/steel,/area/centcom/simulated/main_hall) +"YT" = (/obj/machinery/chem_master,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YU" = (/obj/structure/table/glass,/obj/machinery/chemical_dispenser/ert,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YV" = (/obj/machinery/transhuman/synthprinter,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YW" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YY" = (/obj/machinery/bodyscanner{dir = 8},/obj/effect/floor_decal/corner_steel_grid{dir = 10},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"YZ" = (/obj/machinery/body_scanconsole,/obj/effect/floor_decal/corner_steel_grid{dir = 10},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Zb" = (/obj/machinery/sleep_console{dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Zc" = (/obj/machinery/sleeper{dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Zd" = (/obj/machinery/computer/transhuman/resleeving{dir = 8},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Ze" = (/obj/machinery/transhuman/resleever,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Zf" = (/obj/structure/filingcabinet/chestdrawer{name = "Medical Forms"},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Zg" = (/obj/machinery/clonepod/transhuman/full,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Zh" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/obj/item/weapon/reagent_containers/glass/rag,/obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask,/turf/simulated/floor/wood,/area/centcom/simulated/bar) +"Zi" = (/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) +"Zj" = (/obj/structure/table/standard,/obj/item/device/healthanalyzer,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Zk" = (/obj/structure/table/reinforced,/obj/item/device/camera,/obj/item/weapon/storage/box/ids,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Zl" = (/obj/structure/table/glass,/obj/item/weapon/backup_implanter{pixel_y = -8},/obj/item/weapon/backup_implanter{pixel_y = 8},/obj/item/weapon/backup_implanter,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Zn" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Zp" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/security_space_law,/obj/item/weapon/book/manual/security_space_law,/obj/machinery/light/small{dir = 8; pixel_y = 0},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Zq" = (/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Zr" = (/obj/structure/table/standard,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Zs" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Zt" = (/obj/effect/floor_decal/corner_steel_grid/diagonal,/obj/effect/floor_decal/corner_steel_grid/diagonal{dir = 4},/obj/effect/floor_decal/industrial/danger{dir = 8},/obj/machinery/light,/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) +"Zw" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/light/small{dir = 8; pixel_y = 0},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) +"Zx" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Zy" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/adv,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"Zz" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/biomass{pixel_x = -4; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/biomass{pixel_x = -3; pixel_y = -2},/obj/item/weapon/reagent_containers/glass/bottle/biomass{pixel_x = 3; pixel_y = 5},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) +"ZC" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) +"ZD" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/grenadine,/obj/machinery/light{dir = 8},/turf/simulated/floor/wood,/area/centcom/simulated/bar) +"ZE" = (/obj/machinery/light,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) + +(1,1,1) = {" +apapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaparasasasasasasasasasasarasasasasasasasasasasarasasasasasasasasasasarasasasasasasasasasasarasasasasasasasasasasarasasasasasasasasasasarasasasasasasasasasasar +apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHyHyHyHyHyHyHyHyHyHyHyHyHyHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaJaKaJaJaJaJaJaJaLaMaNaMaNaMaMaNaMaNaMaLaOaPaPaPaPaPaPaPaPaPaLaSaSaSaSaSaSaSaSabaQaLaTaTaTaTaTaTaTaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLaYaZaZaZaZaZbaacaWaVbb +apRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaJaJaJaJaJaJbdaJaLbebfbebfbebfbebfbebfaLbgbgbgbgbgbgbgbgbgbgaLbibibibibibibibiadaQaLaTbjaTaTaTaTaTaTbjaTaLaUaUaUaUaUaUaUaUaUaUaLbkblblblblblbmacaWaVbb +apRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapapapapapapapaIaJbdaJaJaJaJaJaJaJaJaLbfbebobpbqbpagbBbBbBaLbgbgbgbgbgbgbgbgbgbgaLahbvakbiaSbtaSbialaQaLaTaTaTaTaTaTaTaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLbkblblblblblbmamaVaVbb +apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgzviYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaJaJaJaKaJaJaJaJaLbebfbUbBananbBbBaoataLbGbGbGbGbGbGbGbGbGbHaLauavawbIbJbKbLbMalaQaLaTaTaTbjaTaTbjaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLbkblblblblblbmacaWaVbb +apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYpudgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaKaJaJaJaKaJaJaJaLbebfbUbBbSbSbBaoaxbUaLbVbVbWbXbXbXbXbYbVbZaLayazawcacbcbcbccalaQaLaTaTaTaTaTaTaTaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLbkblblblblblbmacaWaVbb +apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaJaJaJaJaJaJaJaJaLbebfbUbBbSbSbBaAaBbUaLbVbVctcucucucucvbVbZaLayazawcwcxcycxczalaQaLaTaTaTaTaTaTaTaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLcAblblblblblcBacaWaVbb +apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaJaJaJbdaJaJaJaKaLbebfbUbBananbBbBaAagaLbVbVctcucucucucvbVbZaLayazawcScTcycTcUalaQaLaTaTaTbjaTaTbjaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLcAblblblblblcBacaWaVbb +apLzRVRVLzLzLzLzCnCnCnCnCnCnCnCnCnCnCnLzLzLzLzRVLzRVapHyHyHyHydgdzwrAvwrwrmZmZtJmZFrdgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJbdaJaJaJaJaJaJaJaLbfbedacPcQcPatbBbBbBaLbVbVctcucucucucvbVbZaLayazawddcycycydeaCaQaLaTaTaTaTaTaTaTaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLcAblblblblblcBaDaVaVbb +apLzRVRVLzLzLzLzCnCnCnCnCnCnCnCnCnCnCnLzLzLzLzRVLzRVapHyHyHyHydgINwrPqiYiYiYiYPqmZShdgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaJaJaJaJaJaJaJaJaLbebfbebfbebfbebfbfbeaLbVbVdjdkdkdkdkdlbVdmaLaEaFawcScTcTcTcUalaQaLaTbjaTaTaTaTaTaTbjaTaLaUaUaUaUaUaUaUaUaUaUaLcAblblblblblcBacaWaVbb +apLzRVRVLzLzLzLzCnCnIROjOjOjyayaIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIaKaJaJaJbdaJaJaJaJbdaLaMaNaMaNaMaMaNaMaNaMaLdqbVbVbVbVbVbVbVbVdraLaSaSawdsdtdtdtduabaQaLaTaTaTaTaTaTaTaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLdvdwdwdwdwdwdxacaWaVbb +apLzRVRVLzLzLzLzCnCnIRCnCnCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapardAdAdAdAdAdAdAdAdAdAardAdAdAdAdAdAdAdAdAdAardAdAdAdAdAdAdAdAdAdAardBdBdBdBdBdBdBdBdBdBardBdBdBdBdBdBdBdBdBdBardBdBdBdBdBdBdBdBdBdBardBdBdBdBdBdBdBdBdBdBar +apLzRVRVLzLzLzLzCnCnIRCnCnCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgdziYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFdFdFdFdFdFdFdFaLdGdGdGdGdGdGdGdGdGdGaLdIdHdHdHdHdHdHdHdHdHaLdMdNdMdOdPdNdPaGdKdJaLdQdQdQdQdQdQdQdQdQdQaLdUdVdVdVdVdVdWaHdSdRaLdXdXdYdYdYdYdYdYdYdYbb +apLzRVRVLzLzLzLzCnCnIRCnCnCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYShdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFecdFdFdFdFecdFaLdGeddGdGdGdGeddGdGdGaLdHdHdHeeefefefegdHdHaLeheieheiejeiejaGdKdJaLdQdQekdQdQdQdQdQdQdQaLelemememememenaHdSdRaLdYdYdYdYeoeoeodYdYdYbb +apLzRVRVLzLzLzLzCnCnIRCnKjCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFdFdFdFdFdFdFdFaLdGdGdGdGdGdGdGdGepdGaLdHdHdHeqeqeqeqeqdHdHaLeheidNdNdNeiejaRdJdJaLdQdQdQdQdQdQesetdQdQaLelemememememenaXdRdRaLdYdYdYdYdYdYdYdYdYdYbb +apLzRVRVLzLzLzLzCnCnIRCnCnCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFecdFdFdFdFecdFdFdFaLdGdGeJdGepdGdGdGdGdGaLeLeKeKeKeKeKeKeKeKeKaLeheieieieieiejaGdKdJaLdQdQdQdQeMdQdQdQdQdQaLelemememememenaHdSdRaLdYeodYbubwbwbxdYeodYbb +apLzRVRVLzLzLzLzCnCnIRCnCnCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgdzFTPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFdFdFdFdFdFdFdFaLdGdGdGeTdGdGdGdGeTdGaLeLeKeVeWeWeWeWeWeXeUaLeYeZeZfaeZeZfbaGdKdJaLdQdQdQdQdQdQdQfcdQdQaLfdfefefefefeffaHdSdRaLdYeodYbAbsbsbCdYeodYbb +apLzRVRVLzLzLzLzCnCnIRCnCnCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYShdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFdFdFdFdFdFdFdFaLdGdGdGdGdGdGdGdGdGdGaLeLeKfnfofofofofofpeUaLfqfrfrfrfrfrfsaGdKdJaLdQdQdQdQdQdQdQdQdQdQaLftfufufufufufvaHdSdRaLdYeodYbAbsbsbCdYeodYbb +apLzRVRVLzLzLzLzCnCnIRIRIRIRIRIRIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFecdFdFdFdFecdFaLdGdGdGdGeddGeJdGdGedaLeLeKfnfofofofofofpeKaLfzeieieieieifAaGdKdJaLdQdQdQdQdQdQdQdQdQdQaLfBemememememfCaHdSdRaLdYeodYbDbEbEbFdYeodYbb +apLzRVRVLzLzLzLzCnCnCnCnCnCnCnCnCnCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFdFdFdFdFdFdFdFaLfGdGdGdGdGfGdGdGdGdGaLeLeKfnfofofofofofHeKaLfzeifJfJfJeifAbhdJdJaLfKfKfKfKfKfKfKfKfKfKaLfBemememememfCbrdRdRaLdYdYdYdYdYdYdYdYdYdYbb +apLzRVRVLzLzLzLzCnCnCnCnCnCnCnCnCnCnCnLzLzLzLzRVLzRVapHyHyHyHydgdziYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFecdFdFdFdFecdFdFdFaLdGeTdGeJdGdGeTdGeJdGaLeLeKfOfPfPfPfPfPfQeKaLfzeifzeifAeifAaGdKdJaLfRfRfRfRfRfRfRfRfRfRaLfBemememememfCaHdSdRaLdYdYdYeoeoeodYdYdYdYbb +apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYShdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFdFdFdFdFdFdFdFaLdGdGdGdGfGdGdGdGdGfGaLeLeKeKeKeKeKeKeKeKeKaLfSfJfSfTfUfJfUaGdKdJaLfRfRfRfRfRfRfRfRfRfRaLfVfWfWfWfWfWfXaHdSdRaLdYdYdYdYdYdYdYdYfYfYbb +apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapaparfZfZfZfZfZfZfZfZfZfZarfZfZfZfZfZfZfZfZfZfZarfZfZfZfZfZfZfZfZfZfZarfZfZfZfZfZfZfZfZfZfZarfZfZfZfZfZfZfZfZfZfZarfZdBdBdBdBdBdBfZdBdBasdBdBdBfZdBdBdBdBdBdBar +apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuVuVuVuVuVuVuVuVuVuVuVuaqaqaqaqaqaqaqaqaqaqaqaqaqaqaIgagbgcgdgcgcaLgegfggghgigfaLgjgkgkgkgkgkbb +apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgdzvRPqiYiYiYiYPqvRFrdgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeVuVuVuVuVuVuaeapapapapapapaeVuRuRuYERuRuRuRuYERuRuVuaqucucucucudbcbcbcbcbcbcbcaqaIgagagagagagaaLglglglglglglaLgkgmgngogkgkbb +apRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVapHyHyHyHydgINvRvivRvRvRvRvivRShdgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeVuRuVuVuknVuaeapapapapapapaeVuRuRuRuRuRuRuRuRuRuRuVuaqucueufueufbcbnbnbnbnbnbcaqaIgagqgcgagqgcaLgrgrgrgrgrgraLgsgkgkgkgkgtbb +apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeVuwnVuVuRuVuaeapapapapapapaeVuxMRuVuVuVuVuVuVuRuMKVuaqucueufueufbcbybnbnbnbzbcaqardBdBdBdBdBdBardBdBdBdBdBdBardBdBdBdBdBdBar +apRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeVuCyCyCyCyVuaeapapapapapapaeVuRuRuVuVWslslDFVuRuRuVuaqucufufufufbQbRbRbRbnbnbcaqaIgNgOgOgOgOgPaLgQgRgQgRgQgRaLgSgSgSgSgSgSbb +apapapapapapapapapapapapapapapapapapapapapapapapapapapHyHyHyHydgzviYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeVueSgUeSeSVuaeapapapapapapaeVuRuRuVuwjcjLgJZVuRuRuVuaqucueufueufcsbnbnbnbnbnbcaqaIgOgOgOgNgOgOaLgRgQhggQgRgQaLgSgSgSgSgSgSbb +apGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqapapapHyHyHyHydgqHiYPqiYiYiYiYPqiYpudgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeVuVuVuVuVuVuaeapapapapapapaeVuRuRuVuwjDktCJZVuRuRuVuaqucueugueufbccObnbnbnbnbcaqaIgOgPgOgOgOgOaLgQgRgQgRgQgRaLgSgSgSgSgSgSbb +apGqNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtGqapapapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuRuRuVuwjDktCJZVuRuRuVuaqucueufueufcsbnbnbnbnbnbcaqardBdBdBdBdBdBardBdBdBdBdBdBardBdBdBdBdBdBar +apGqNtVCVCXOVCVCVCXYXYXYVCVCXYXYXYVCVCVCVCVCNtGqapapapHyHyHyHydgtHcCvGcCcCcCcCvGcCledgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuxMRuVuBKDktCqzVuRuMKVuaqucufufufufdhdididibnbnbcaqaIhxhyhzhzhAhxaLhBhChDhDhEhDaLhFhFhFhFhFhFbb +apGqNtGwVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCWDNtGqapapapHyHyHyHyHyMbHyHyHyHyHyHyHyHyHyHyHyHyHyHyapapapapapapapapapcdcicicicicicicicibNcicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuRuRuVuVuyKymVuVuRuRuVuaqucueufueufbcbybnbnbnbzbcaqaIhxhJhKhKhLhxaLhDhChDhDhEhDaLhFhFhFhFhFhFbb +apGqNtVCVCVCVCVCVCVCVCVCVCVCVCVCTsVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuRuRuRuRuRuRuRuRuRuRuVuaqucueufueufbcbcbnbnbnbcbcaqaIhxhOhPhPhQhxaLhDhChDhDhEhRaLhFhFhFhFhFhFbb +apGqNtVCVCVCVCVCVCVCVCVCVCVCVCVCGwVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuRuRuZiRuRuRuRuZiRuRuVuaqucucucucudbcbcdEdEdEbcbcaqarfZfZfZfZfZfZarfZfZfZfZfZfZarfZfZfZfZfZfZar +apGqNtVCVCVCVCBDTsVCVCVCVCVCVCVCVCVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuVuVuVuVuVuVuVuVuVuVuVuaqaqaqaqaqaqaqbObPbTbPckapaqapapapapapapapapapapapapapapapapapapapapapap +apGqNtVCVCVCVCVCTGTGVCVCVCVCVCVCVCVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaqaqaqaqaqaqaqaqapapapapapapapapapapapapapapapapapapapapapap +apGqNtVCVCVCVCTGFaTnTGVCVCVCVCVCVCVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +apGqNtVCVCVCVCTGDwIkTGVCVCBDVCNoVCVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +apGqNtVCVCVCVCVCTGTGVCVCVCVCVCVCVCVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaewywywywywywywywyaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +apGqNtVCVCTsVCVCVCVCVCVCVCVCVCVCVCVCVCGwVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaewyyArEHQpbkrCtwyaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +apGqNtVCVCBDTsVCVCVCVCVCVCVCVCVCVCVCVCTsVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVgVgVgVgVgGaGaGaGaGaGawyaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +apGqNtVCVCVCVCVCVCVCFHVCTFVCTFVCaaVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVgNrSWTfVgxeIqGaMECwkhwyaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +apGqNtVCVCVCNjVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVgThTiTjVgwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlVkVkVkVkVkVkaeaeaeaeaeaeae +apGqNtwZwZwZwZwZwZwZwZwZwZwZwZwZwZwZwZwZwZwZNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeafaiaizKaiaiaiaizKaiaiVlJRRqRvVgTZUpUpUuUpUrUpUpUpUpUuUpUsUtwlTZVaUpUuUpUpUpUpUpUpUuUpUsUtwlVkVcVcVfVbVkaeaeaeaeaeaeae +apGqAxAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAxGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlETFpETETETETFpETRcVhNqNqQYTIViVjVjVjVjVmVjVjVjVjVjVjVnUsVoViVpVqUtUtUtUtVrUtUtUtUtVnUsVoVkVzVcVkVkVkaeaeaeaeaeaeae +apGqJWBwBwBwBwBwBwBwBwBwBwBwBwBwBwBwBwBwBwBwJWGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlETORPePePePeORETRcJxNqNqPfTIViVjVjVjVjVjVjVjVjVmVjVjVjVsVoViUtUtVtUtVrUtUtUtUtVrUtUtVsVoVkVcVcVyXpVkaeaeaeaeaeaeae +apGqJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZXEORPgQaQWQWQXPgORRcJxNqNqXHTIViVjVjVmVmVjVjVjVjVjVjVjVjVBVoViUtVrUtUtUtUtUtVDUtUtUtVEVFVoVkVcVcVkVkVkaeaeaeaeaeaeae +apGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZSlPeRdReQWQWReRfPeRcJxNqNqSHTIVJVjVjVjVjVjVjVjVjVNVjVmVmVsVoViUtVrUtUtUtUtUtUtUtUtUtUtVsVoVkVzVcVyXpVkaeaeaeaeaeaeae +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlPeRgRgQWQWRgRgPeRcJxNqNqSHTIViVjVjVjVjVjVjVjVjVjVjVjVOVPVoViUtUtUtVDUtUtUtVrUtUtVDVOVPVoVkVcVcVgVgVgaeaeaeaeaeaeae +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeRhAlRiQWQWQWQWQWQWRjRcJxNqNqQYTIVSVUVUXUVUVUVUVUVUVUYtVUVPUtwlVXVUVUXUVUWhVUVUVVVUXUVUVPUtwlVkWiVkVgWjVgaeaeaeaeaeaeae +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZXEORRkQXQWQWQXRlORRcJxYxwdTIdZVuVuVuVuVuVuTJVwVuVuVuVuVuVuVuVuVuVuVuVuVuTJVwVuVuVuVuVuVuVuUvYRUEVgWpVgVgVgaeaeaeaeae +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlPeReRmQWQWReRoPeRcJxNqdZRrRuYERuRuRuRuRuRuRuYERuRuRuRuRuRuRuYERuRuRuRuRuRuRuYERuRuRuRuRuRuRuRuWqTiWpWjVgaeaeaeaeae +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlRsRgRgQWQWRgRgRtRcJxNqTYSVRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuWsYGVgVgVgaeaeaeaeae +apaeaeaeaeaeUwUxUxUxUxUwaeaeaeaeaeaeTKTMTMTMTMTKaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlRtQXQXQWQWQXQXRtRcJxNqVvSVRuRuRuRuRuZiRuRuRuRuRuRuRuZiRuRuRuRuRuRuRuZiRuRuRuRuRuRuRuZiRuRuRuRuWsTiWpWjVgaeaeaeaeae +apaeaeaeaeaeUxUzUAUCUDUxaeaeaeaeaeaeTMTNTPTQTRTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlPeRwReQWQWReRxPeRcJxNqdZRrRuWtWvWvWtVIVMWBVKVLWBWBWBWBVKVLWBVMVMVdWCVeXkXmXnWCWCWCVdVdVdVdVdVdVgWpVgVgVgaeaeaeaeae +apaeaeaeaeaeUwUwUFUwUxUwaeaeaeaeaeaeTKTKTSTKTMTKaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZXEORRyRgQWQWRgRzORRcJxYxdZTIdZWEWJWKWEVIVQVRVRVQVQVQVRVRVQVQVQVYVMWSWTWSWSWSWSWTWTWTWSVdWUXjZjXrVgWjVgaeaeaeaeaeaeae +apaeaeaeaeaeUxUKUHUIUJUxaeaeaeaeaeaeTMTXTUTVTWTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeRhAlRiQWQWQWQWQWQWRjRcJxNqNqQYdZXsXvXwXxVIWNWbWcWdVQVZWeWkWdVQVQZCVMWSWSWSWSWSWSWSWSWSWSVdXyXzXAXBVgVgVgaeaeaeaeaeaeae +apaeaeaeaeaeUxUMUAUAUHUxaeaeaeaeaeaeTMUaTPTPTUTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlRARgQWQXQXQWRCRARcJxNqNqSHdZXCXDXDZkVIVZWlWmWdVQVZWoWuWdVQVQVQVMZlXJXKXMXNWSWSWSWSZnVdXPXQXRYWWSXSVdaeaeaeaeaeaeae +apaeaeaeaeaeUxUGUNUAUPUxaeaeaeaeaeaeTMTTUbTPUcTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZSlRARDQWQXQXQWRERARcJxNqNqSHdZZpXDXDXVVIVQWzWzVQVQVQWzWzVQVRVRVQVMXXXZYaXZYbWSWSWSWSWSVdYcYhYjYWWSYkVdaeaeaeaeaeaeae +apaeaeaeaeaeUxUQUAUAURUxaeaeaeaeaeaeTMUdTPTPUfTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZXEORPgRFRgRGQWPgORRcJxNqNqXHdZVIVIVIYlVIVQVQVQVQVQVQVQVQVZWAWFWdVMYmWSWSWSZqWSWSWSWSWSVdYcYcZrYWWSYoVdaeaeaeaeaeaeae +apaeaeaeaeaeUxUSUAUAUTUxaeaeaeaeaeaeTMUgTPTPUhTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlETORPePePePeORETRcJxNqNqPfdZYrYsYuZsVIWHWHWHWHWHWHVQVQVZWIWLWdVMVdVdVdVdVdVdVdVdYvWSVdVdVdYgYwVdVdVdaeaeaeaeaeaeae +apaeaeaeaeaeUxUSUHUUUVUxaeaeaeaeaeaeTMUgTUUiUjTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlETFpETETETETFpETRcZtNqNqQYdZZwXDXDYyVIZDWOWPWQWRWVVQVQVQWzWzZCVMYBYCYDYCZxXNVdYmWSWSYFZyYHWSWSWSZzVdaeaeaeaeaeaeae +apaeaeaeaeaeUwUwUFUwUxUwaeaeaeaeaeaeTKTKTSTKTMTKaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeafSGSGzKSGSGSGSGzKSGSGajdZdZdZdZYIYJYJXDYlWWWWWWWWWWWWZEWZXaXbXcXdVMYKYLYMYNXZWSYwWSWSWSWSWSWSWSWSWSYOVdaeaeaeaeaeaeae +apaeaeaeaeaeUxUHUHUHUHUxaeaeaeaeaeaeTMTUTUTUTUTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVIVIVIVIVIVIXeXfXgXhZhWWVMVMVMVMVMVMVMYPYPXNYQYTYUVdWSWSWSWSWSWSWSWSWSYVVdaeaeaeaeaeaeae +apaeaeaeaeaeUxUWUXUYUZUxaeaeaeaeaeaeTMUkUlUmUoTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeXiXiXiXiXiXiXiXiaeaeaeaeaeVMVdVdVdVdVdVdVdWSYYYZWSWSZbZcWSWSZdVdaeaeaeaeaeaeae +apaeaeaeaeaeUwUxUxUxUxUwaeaeaeaeaeaeTKTMTMTMTMTKaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVdWSWSWSWSWSWSWSWSWSZeVdaeaeaeaeaeaeae +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVdZfWSZqWSWSWSWSZqWSZgVdaeaeaeaeaeaeae +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVdVdVdVdVdVdVdVdVdVdVdVdaeaeaeaeaeaeae +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +apaeaeaeaeaeSXSYSYSYSYSXaeaeaeaeaeaeSmSnSnSnSnSmaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +apaeaeaeaeaeSYSZTaTbTcSYaeaeaeaeaeaeSnSoSpSqSrSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap +apaeaeaeaeaeSXSXTdSXSYSXaeaeaeaeaeaeSmSmSsSmSnSmaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap +apaeaeaeaeaeSYTpTlTmToSYaeaeaeaeaeaeSnSASwSxSzSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap +apaeaeaeaeaeSYTqTaTaTlSYaeaeaeaeaeaeSnSBSpSpSwSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap +apaeaeaeaeaeSYTkTrTaTtSYaeaeaeaeaeaeSnSuSCSpSDSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap +apaeaeaeaeaeSYTuTaTaTxSYaeaeaeaeaeaeSnSESpSpSFSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap +apaeaeaeaeaeSYTyTaTaTzSYaeaeaeaeaeaeSnSKSpSpSNSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap +apaeaeaeaeaeSYTyTlTATBSYaeaeaeaeaeaeSnSKSwSOSPSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzclapcececececececececececececececececececececececececeapoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoI +apaeaeaeaeaeSXSXTdSXSYSXaeaeaeaeaeaeSmSmSsSmSnSmaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apaeaeaeaeaeSYTlTlTlTlSYaeaeaeaeaeaeSnSwSwSwSwSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apaeaeaeaeaeSYTCTDTETHSYaeaeaeaeaeaeSnSQSRSSSTSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfJLJLJLjfJLJLJLjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apaeaeaeaeaeSXSYSYSYSYSXaeaeaeaeaeaeSmSnSnSnSnSmaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfJLjfJLjfJLjfJLjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfJLjfJLjfJLjfJLjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfJLjfJLJLJLjfJLjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfJLJLJLjfjfjfjfjfJLJLJLjfjfjfjfclapcecfcfcfcfcfcfcfcgcgcgcgcgcgcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfJLJLjfjfjfjfjfjfjfjfjfJLJLjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLMLMLMLMLMLMLMLMLMLMLMLMLqnqnqnqnqnqnoI +apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLqnqnqnqnqnqnqnqnqnqnqnzbMLqnqnqnqnqnoI +apapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfJLjfHfjfjfjfjfjfjfjfjfjfJLjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLqnqnqnqnqnqnqnqnqnqnqnqnzbqnqnqnqnqnoI +apapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLqnqnqnqnqnqnqnqnqnqnqnpFzbqnqnqnqnqnoI +apapXlXlXlXlXlXlXlXlXlXlXlapapXlXlXlXlXlXlXlXlXlXlXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLqnqnqnqnqnqnqnqnqnqnqnqntDqnqnqnqnqnoI +apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfJLJLjfjfjfjfjfjfjfjfjfJLJLjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLqnqnqnqnqnqnqnqnqnqnqntDtDqnqnqnqnqnoI +apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfJLJLjfjfjfjfjfjfjfJLJLjfjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLMLMLMLMLMLMLMLMLMLMLMLMLqnqnqnqnqnqnoI +apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfJLJLjfjfjfjfjfJLJLjfjfjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfJLJLJLJLJLJLJLjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apapXlOYOYOYOYsFOYOYOYOYXlapapXlOYOYOYOYsFOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcgcgcfchcfcgcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcgcgcgcgcgcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapclGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapclGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI +apapXlXlXlXlXlXlXlXlXlXlXlapapXlXlXlXlXlXlXlXlXlXlXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapclGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsclapcececececececececececececececececececececececececeapoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoI +apapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapclclclclclclclclclclclclclclclclclclclclclapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap +apapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOapJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJz +XlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElPiPiPiPiPiPiElElPiPiPiPiPiPiPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElPiPiPiPiPiPiPiPiPiPiPiPiElElElPiPiElElElElPiPiPiPiElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLJLJLJLJLJLjfJLJLJLjfjfjfJLJLJLjfJLJLJLJLJLJLjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiPiElElElElElElElElElElPiPiElPiPiElEljQElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfJLjfJLjfJLJLJLJLJLjfJLjfJLjfjfjfjfJLjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElPiPiPiElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfJLJLJLjfjfjfjfjfjfjfJLJLJLjfInjfjfJLjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfJLJLjfjfjfjfjfjfjfjfjfJLJLjfjfjfjfJLjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfJLJLjfjfjfjfjfjfjfjfjfJLJLjfjfjfjfJLjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElPiPiPiPiPiPiPiPiPiPiElElElElElElElElElElElElElElElElElElElElElElElElElPiPiElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElPiPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiPiElElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElElElEliOapJzjfjfjfjfjfjfJLJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLJLjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElElElEliOapJzjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElPiPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiPiElElElEliOapJzjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElPiPiPiPiPiPiPiPiPiPiElElElElElElElElElElElElElElElElElElElElElElElElElPiPiElElEliOapJzjfjfjfjfjfjfJLJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLJLjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLJLJLJLJLjfjfjfjfjfjfjfjfjfjfjfjfjfJLJLJLJLJLjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElPiPiPiElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiPiElElElElElElElElElElPiPiElPiPiElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfJLJLJLjfjfjfjfjfjfjfjfjfJLJLJLjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElPiPiPiPiPiPiPiPiPiPiPiPiElElElPiPiElElElElPiPiPiPiElElElElElPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfJLJLjfjfjfjfjfjfjfJLJLjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElPiPiPiPiPiPiElElPiPiPiPiPiPiPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLJLJLJLJLJLJLJLJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz +XlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlapapapapapapapapapapapapapapapapapapiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOapJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJz +"} diff --git a/vorestation.dme b/vorestation.dme index eb8b35e289..3355b8b909 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -154,6 +154,7 @@ #include "code\_onclick\hud\human.dm" #include "code\_onclick\hud\movable_screen_objects.dm" #include "code\_onclick\hud\other_mobs.dm" +#include "code\_onclick\hud\picture_in_picture.dm" #include "code\_onclick\hud\radial.dm" #include "code\_onclick\hud\radial_persistent.dm" #include "code\_onclick\hud\robot.dm" @@ -2526,6 +2527,7 @@ #include "code\modules\mob\living\silicon\ai\login.dm" #include "code\modules\mob\living\silicon\ai\logout.dm" #include "code\modules\mob\living\silicon\ai\malf.dm" +#include "code\modules\mob\living\silicon\ai\multicam.dm" #include "code\modules\mob\living\silicon\decoy\death.dm" #include "code\modules\mob\living\silicon\decoy\decoy.dm" #include "code\modules\mob\living\silicon\decoy\life.dm" From 26726bd55a3a6f9563c1e56b2f6858377a265e58 Mon Sep 17 00:00:00 2001 From: Rykka Date: Sun, 10 May 2020 12:35:02 -0400 Subject: [PATCH 082/105] Fix inconsistent indendation, derp. --- code/_onclick/hud/ai.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm index 29aa23018d..be771b5a36 100644 --- a/code/_onclick/hud/ai.dm +++ b/code/_onclick/hud/ai.dm @@ -151,14 +151,14 @@ adding += using //Multicamera mode - using = new /obj/screen/ai/multicam() - using.screen_loc = ui_ai_multicam - adding += using + using = new /obj/screen/ai/multicam() + using.screen_loc = ui_ai_multicam + adding += using //Add multicamera camera - using = new /obj/screen/ai/add_multicam() - using.screen_loc = ui_ai_add_multicam - adding += using + using = new /obj/screen/ai/add_multicam() + using.screen_loc = ui_ai_add_multicam + adding += using mymob.client.screen = list() mymob.client.screen += adding + other From 933ce586c3381844284bd1cdbcfe031a9fd0509b Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sun, 10 May 2020 12:56:13 -0400 Subject: [PATCH 083/105] Fix AI roundstart join bug --- code/modules/mob/living/silicon/ai/ai_vr.dm | 2 +- code/modules/mob/transform_procs.dm | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/silicon/ai/ai_vr.dm b/code/modules/mob/living/silicon/ai/ai_vr.dm index 0fe723cad3..2f22d0e788 100644 --- a/code/modules/mob/living/silicon/ai/ai_vr.dm +++ b/code/modules/mob/living/silicon/ai/ai_vr.dm @@ -7,7 +7,7 @@ add_language(LANGUAGE_DAEMON, 1) add_language(LANGUAGE_ENOCHIAN, 1) -/mob/AIize(move = 1) +/mob/AIize(var/move = TRUE) . = ..() add_language(LANGUAGE_BIRDSONG, 1) add_language(LANGUAGE_SAGARU, 1) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 43acb519d4..2607f6fbdd 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -41,11 +41,11 @@ return src -/mob/new_player/AIize() +/mob/new_player/AIize(var/move) spawning = 1 return ..() -/mob/living/carbon/human/AIize(move=1) // 'move' argument needs defining here too because BYOND is dumb +/mob/living/carbon/human/AIize(var/move = TRUE) // 'move' argument needs defining here too because BYOND is dumb if (transforming) return for(var/t in organs) @@ -53,7 +53,7 @@ return ..(move) -/mob/living/carbon/AIize() +/mob/living/carbon/AIize(var/move) if (transforming) return for(var/obj/item/W in src) From ca848661c4a9060eccd0fc4dc9b7d24eafdec4a4 Mon Sep 17 00:00:00 2001 From: Rykka Date: Sun, 10 May 2020 13:03:20 -0400 Subject: [PATCH 084/105] Fix more inconsistent indentation mistakes, confirm AI working --- code/_onclick/hud/ai.dm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/_onclick/hud/ai.dm b/code/_onclick/hud/ai.dm index be771b5a36..afe8df0c62 100644 --- a/code/_onclick/hud/ai.dm +++ b/code/_onclick/hud/ai.dm @@ -1,6 +1,7 @@ /obj/screen/ai/multicam - name = "Multicamera Mode" - icon_state = "multicam" + name = "Multicamera Mode" + icon = 'icons/mob/screen_ai.dmi' + icon_state = "multicam" /obj/screen/ai/multicam/Click() if(..()) @@ -9,8 +10,9 @@ AI.toggle_multicam() /obj/screen/ai/add_multicam - name = "New Camera" - icon_state = "new_cam" + name = "New Camera" + icon = 'icons/mob/screen_ai.dmi' + icon_state = "new_cam" /obj/screen/ai/add_multicam/Click() if(..()) From 7def496a095040908b6bb8249a72975cdfc41ee6 Mon Sep 17 00:00:00 2001 From: Rykka Date: Sun, 10 May 2020 13:19:37 -0400 Subject: [PATCH 085/105] Fix tether_misc.dmm Forgot mapmerge --- maps/tether/submaps/tether_misc.dmm | 25597 +++++++++++++++++++++++++- 1 file changed, 24714 insertions(+), 883 deletions(-) diff --git a/maps/tether/submaps/tether_misc.dmm b/maps/tether/submaps/tether_misc.dmm index 70496a763e..a3b97d1337 100644 --- a/maps/tether/submaps/tether_misc.dmm +++ b/maps/tether/submaps/tether_misc.dmm @@ -1,883 +1,24714 @@ -"aa" = (/obj/machinery/vending/coffee,/turf/unsimulated/beach/sand,/area/beach) -"ab" = (/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/flora/pottedplant{icon_state = "plant-10"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"ac" = (/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"ad" = (/obj/machinery/door/window/holowindoor{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"ae" = (/turf/unsimulated/mineral/virgo3b,/area/space) -"af" = (/obj/structure/sign/warning/docking_area,/turf/unsimulated/wall,/area/centcom/simulated/terminal) -"ag" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 6},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"ah" = (/obj/machinery/door/window/holowindoor{dir = 1; name = "Jury Box"},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"ai" = (/obj/machinery/door/blast/regular{dir = 4},/turf/unsimulated/floor/techfloor_grid,/area/centcom/simulated/terminal) -"aj" = (/obj/structure/sign/warning{name = "\improper STAND AWAY FROM TRACK EDGE"},/turf/unsimulated/wall,/area/centcom/simulated/terminal) -"ak" = (/obj/structure/table/woodentable/holotable,/obj/structure/window/reinforced/holowindow{dir = 4},/obj/structure/window/reinforced/holowindow{dir = 1},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"al" = (/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"am" = (/obj/machinery/door/window/holowindoor{dir = 8; name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) -"an" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) -"ao" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{icon_state = "spline_fancy"; dir = 9},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"ap" = (/turf/space,/area/space) -"aq" = (/obj/effect/step_trigger/teleporter/random,/turf/space,/area/space) -"ar" = (/turf/unsimulated/wall,/area/space) -"as" = (/obj/structure/window/reinforced,/turf/unsimulated/wall,/area/space) -"at" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 5},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"au" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet/corners{icon_state = "carpet_corners"; dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"av" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aw" = (/obj/structure/table/woodentable/holotable,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"ax" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 4},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"ay" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"az" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aA" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{icon_state = "spline_fancy"; dir = 10},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aB" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 8},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aC" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"aD" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) -"aE" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aF" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"aG" = (/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"aH" = (/obj/structure/window/reinforced/holowindow{dir = 8},/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"aI" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/wall,/area/space) -"aJ" = (/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) -"aK" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) -"aL" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/wall,/area/space) -"aM" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aN" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"aO" = (/obj/structure/table/rack/holorack,/obj/item/clothing/under/dress/dress_saloon,/obj/item/clothing/head/pin/flower,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) -"aP" = (/obj/effect/landmark/costume,/obj/structure/table/rack/holorack,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) -"aQ" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_courtroom) -"aR" = (/obj/machinery/door/window/holowindoor{dir = 8; name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) -"aS" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"aT" = (/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_wildlife) -"aU" = (/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_plating) -"aV" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_emptycourt) -"aW" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aX" = (/obj/machinery/door/window/holowindoor{dir = 8; name = "Red Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) -"aY" = (/obj/effect/floor_decal/corner/red/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"aZ" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"ba" = (/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"bb" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/wall,/area/space) -"bc" = (/turf/simulated/shuttle/wall,/area/shuttle/supply) -"bd" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_desert) -"be" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"bf" = (/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"bg" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_theatre) -"bh" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) -"bi" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"bj" = (/obj/effect/landmark{name = "Holocarp Spawn"},/turf/simulated/floor/holofloor/reinforced,/area/holodeck/source_wildlife) -"bk" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"bl" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"bm" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"bn" = (/turf/simulated/shuttle/floor,/area/shuttle/supply) -"bo" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"bp" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"bq" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"br" = (/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 8; icon_state = "right"; name = "Green Team"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) -"bs" = (/turf/simulated/fitness,/area/holodeck/source_boxingcourt) -"bt" = (/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"bu" = (/obj/structure/fitness/boxing_ropes{dir = 1},/obj/structure/fitness/boxing_turnbuckle{dir = 8; layer = 3.4},/turf/simulated/fitness,/area/holodeck/source_boxingcourt) -"bv" = (/obj/structure/window/reinforced/holowindow{dir = 1},/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"bw" = (/obj/structure/fitness/boxing_ropes{dir = 1},/turf/simulated/fitness,/area/holodeck/source_boxingcourt) -"bx" = (/obj/structure/fitness/boxing_ropes{dir = 1},/obj/structure/fitness/boxing_turnbuckle{dir = 4; layer = 3.4},/turf/simulated/fitness,/area/holodeck/source_boxingcourt) -"by" = (/obj/machinery/light{dir = 8; icon_state = "tube1"; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/supply) -"bz" = (/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/supply) -"bA" = (/obj/structure/fitness/boxing_ropes{dir = 8},/turf/simulated/fitness,/area/holodeck/source_boxingcourt) -"bB" = (/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) -"bC" = (/obj/structure/fitness/boxing_ropes{dir = 4},/turf/simulated/fitness,/area/holodeck/source_boxingcourt) -"bD" = (/obj/structure/fitness/boxing_turnbuckle{dir = 8},/obj/structure/fitness/boxing_ropes_bottom,/turf/simulated/fitness,/area/holodeck/source_boxingcourt) -"bE" = (/obj/structure/fitness/boxing_ropes_bottom,/turf/simulated/fitness,/area/holodeck/source_boxingcourt) -"bF" = (/obj/structure/fitness/boxing_turnbuckle{dir = 4},/obj/structure/fitness/boxing_ropes_bottom,/turf/simulated/fitness,/area/holodeck/source_boxingcourt) -"bG" = (/obj/effect/floor_decal/spline/plain{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre) -"bH" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"bI" = (/obj/structure/window/reinforced/holowindow,/obj/machinery/door/window/holowindoor{dir = 1; name = "Court Reporter's Box"},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"bJ" = (/obj/structure/table/woodentable/holotable,/obj/structure/window/reinforced/holowindow,/obj/structure/window/reinforced/holowindow{dir = 8},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"bK" = (/obj/structure/table/woodentable/holotable,/obj/structure/window/reinforced/holowindow,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"bL" = (/obj/structure/table/woodentable/holotable,/obj/structure/window/reinforced/holowindow,/obj/structure/window/reinforced/holowindow{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"bM" = (/obj/structure/window/reinforced/holowindow,/obj/machinery/door/window/holowindoor{base_state = "right"; dir = 1; icon_state = "right"; name = "Witness Box"},/obj/structure/bed/chair/holochair,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_courtroom) -"bN" = (/obj/effect/landmark/ai_multicam_room,/turf/unsimulated/ai_visible,/area/ai_multicam_room) -"bO" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/simulated/shuttle/plating/airless/carry{dir = 1},/area/shuttle/supply) -"bP" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating/airless/carry{dir = 1},/area/shuttle/supply) -"bQ" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"},/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/shuttle/plating,/area/shuttle/supply) -"bR" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/turf/simulated/shuttle/floor,/area/shuttle/supply) -"bS" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/desert,/area/holodeck/source_picnicarea) -"bT" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/obj/effect/shuttle_landmark{base_area = /area/space; base_turf = /turf/space; landmark_tag = "supply_cc"; name = "Centcom Supply Depot"},/turf/simulated/shuttle/plating/airless/carry{dir = 1},/area/shuttle/supply) -"bU" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 4},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"bV" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre) -"bW" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"bX" = (/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"bY" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"bZ" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"ca" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"cb" = (/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"cc" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"cd" = (/turf/unsimulated/wall,/area/ai_multicam_room) -"ce" = (/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b,/turf/space/transit/south,/area/space) -"cf" = (/turf/space/transit/south,/area/space) -"cg" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/south,/area/space) -"ch" = (/obj/effect/shuttle_landmark/transit{base_area = /area/space; base_turf = /turf/space/transit/east; landmark_tag = "belter_transit"; name = "Belter Transit"},/turf/space/transit/south,/area/space) -"ci" = (/turf/unsimulated/ai_visible,/area/ai_multicam_room) -"cj" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 9},/turf/simulated/floor/tiled/steel,/area/space) -"ck" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/simulated/shuttle/plating/airless/carry{dir = 1},/area/shuttle/supply) -"cl" = (/turf/space,/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 4; teleport_z_offset = 4},/turf/space/transit/north,/area/space) -"cs" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"},/turf/simulated/shuttle/floor,/area/shuttle/supply) -"ct" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"cu" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"cv" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"cw" = (/obj/structure/table/woodentable/holotable,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"cx" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"cy" = (/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"cz" = (/obj/structure/table/woodentable/holotable,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"cA" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"cB" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"cC" = (/obj/effect/step_trigger/lost_in_space/tram,/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"cO" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "supply_shuttle"; pixel_x = -25; pixel_y = 0; req_one_access = list(13,31); tag_door = "supply_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/supply) -"cP" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"cQ" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"cS" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"cT" = (/obj/structure/bed/chair/holochair{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"cU" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"da" = (/obj/structure/flora/ausbushes/brflowers,/obj/effect/floor_decal/spline/fancy/wood/corner{dir = 1},/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea) -"dd" = (/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"de" = (/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"dg" = (/turf/unsimulated/wall{icon = 'icons/turf/transit_vr.dmi'},/area/space) -"dh" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "supply_shuttle_hatch"; locked = 1; name = "Shuttle Hatch"},/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/shuttle/plating,/area/shuttle/supply) -"di" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/turf/simulated/shuttle/floor,/area/shuttle/supply) -"dj" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"dk" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"dl" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"dm" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"dq" = (/obj/structure/flora/pottedplant{icon_state = "plant-06"},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_theatre) -"dr" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 10},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_theatre) -"ds" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"dt" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"du" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_courtroom) -"dv" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"dw" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"dx" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_emptycourt) -"dz" = (/obj/effect/floor_decal/transit/orange{dir = 8},/obj/effect/transit/light{dir = 8},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"dA" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall,/area/space) -"dB" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/wall,/area/space) -"dE" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/shuttle/supply) -"dF" = (/turf/simulated/floor/holofloor/space,/area/holodeck/source_space) -"dG" = (/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"dH" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) -"dI" = (/obj/structure/flora/pottedplant{icon_state = "plant-06"},/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) -"dJ" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_basketball) -"dK" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"dM" = (/obj/effect/floor_decal/corner/red/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"dN" = (/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"dO" = (/obj/structure/holohoop,/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"dP" = (/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"dQ" = (/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"dR" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_thunderdomecourt) -"dS" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"dU" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/obj/effect/floor_decal/corner/red/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"dV" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/weapon/holo/esword/red,/obj/effect/floor_decal/corner/red{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"dW" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/red/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"dX" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"dY" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"dZ" = (/turf/unsimulated/wall,/area/centcom/simulated/terminal) -"ec" = (/obj/effect/landmark{name = "Holocarp Spawn Random"},/turf/simulated/floor/holofloor/space,/area/holodeck/source_space) -"ed" = (/obj/structure/flora/grass/both,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"ee" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"ef" = (/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"eg" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"eh" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"ei" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"ej" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"ek" = (/obj/effect/overlay/palmtree_r,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"el" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"em" = (/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"en" = (/obj/effect/floor_decal/corner/red{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"eo" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"ep" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"eq" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/wood,/area/holodeck/source_meetinghall) -"es" = (/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"et" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"eJ" = (/obj/structure/flora/tree/dead,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"eK" = (/turf/simulated/floor/holofloor/lino,/area/holodeck/source_meetinghall) -"eL" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_meetinghall) -"eM" = (/obj/item/weapon/beach_ball,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"eS" = (/obj/effect/floor_decal/industrial/danger,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"eT" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"eU" = (/obj/effect/floor_decal/carpet{dir = 5},/obj/effect/floor_decal/carpet{dir = 6},/obj/effect/floor_decal/carpet{dir = 9},/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"eV" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"eW" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"eX" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"eY" = (/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"eZ" = (/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"fa" = (/obj/item/weapon/beach_ball/holoball,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"fb" = (/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"fc" = (/obj/item/weapon/inflatable_duck,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/source_beach) -"fd" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"fe" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"ff" = (/obj/structure/window/reinforced/holowindow/disappearing,/obj/effect/floor_decal/corner/red/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"fn" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"fo" = (/obj/structure/holostool,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"fp" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"fq" = (/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"fr" = (/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"fs" = (/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"ft" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green/full{dir = 8},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"fu" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green{dir = 5},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"fv" = (/obj/structure/window/reinforced/holowindow/disappearing{dir = 1},/obj/effect/floor_decal/corner/green/full{dir = 1},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"fz" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"fA" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"fB" = (/obj/effect/floor_decal/corner/green{dir = 9},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"fC" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"fG" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/holofloor/snow,/area/holodeck/source_snowfield) -"fH" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet{dir = 8},/area/holodeck/source_meetinghall) -"fJ" = (/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"fK" = (/turf/unsimulated/beach/sand{icon_state = "beach"},/area/holodeck/source_beach) -"fO" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"fP" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"fQ" = (/obj/structure/holostool,/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/source_meetinghall) -"fR" = (/turf/simulated/floor/holofloor/beach/water,/area/holodeck/source_beach) -"fS" = (/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"fT" = (/obj/structure/holohoop{dir = 1},/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"fU" = (/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_basketball) -"fV" = (/obj/structure/table/holotable,/obj/effect/floor_decal/corner/green/full,/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"fW" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/weapon/holo/esword/green,/obj/effect/floor_decal/corner/green{dir = 10},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"fX" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/obj/effect/floor_decal/corner/green/full{dir = 4},/turf/simulated/floor/holofloor/tiled,/area/holodeck/source_thunderdomecourt) -"fY" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/source_boxingcourt) -"fZ" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall,/area/space) -"ga" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/holodorm/source_basic) -"gb" = (/obj/structure/bed/chair/holochair{dir = 4},/turf/simulated/floor/holofloor/wood,/area/holodeck/holodorm/source_basic) -"gc" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/wood,/area/holodeck/holodorm/source_basic) -"gd" = (/obj/structure/bed/chair/holochair{dir = 8},/turf/simulated/floor/holofloor/wood,/area/holodeck/holodorm/source_basic) -"ge" = (/obj/effect/overlay/palmtree_r,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/holodorm/source_beach) -"gf" = (/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/holodorm/source_beach) -"gg" = (/obj/effect/overlay/coconut,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/holodorm/source_beach) -"gh" = (/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/holodorm/source_beach) -"gi" = (/obj/effect/overlay/palmtree_l,/turf/simulated/floor/holofloor/beach/sand,/area/holodeck/holodorm/source_beach) -"gj" = (/obj/structure/flora/grass/brown,/obj/structure/flora/tree/dead,/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) -"gk" = (/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) -"gl" = (/turf/unsimulated/beach/sand{icon_state = "beach"},/area/holodeck/holodorm/source_beach) -"gm" = (/obj/effect/landmark{name = "Wolfgirl Spawn"},/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) -"gn" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) -"go" = (/obj/structure/flora/grass/green,/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) -"gq" = (/obj/structure/bed/holobed,/turf/simulated/floor/holofloor/wood,/area/holodeck/holodorm/source_basic) -"gr" = (/turf/simulated/floor/holofloor/beach/water,/area/holodeck/holodorm/source_beach) -"gs" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) -"gt" = (/obj/structure/flora/grass/both,/turf/simulated/floor/holofloor/snow,/area/holodeck/holodorm/source_snow) -"gN" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/holodorm/source_desert) -"gO" = (/turf/simulated/floor/holofloor/desert,/area/holodeck/holodorm/source_desert) -"gP" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/desert,/area/holodeck/holodorm/source_desert) -"gQ" = (/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/holodorm/source_garden) -"gR" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/holodorm/source_garden) -"gS" = (/turf/simulated/floor/holofloor/reinforced,/area/holodeck/holodorm/source_off) -"gU" = (/obj/machinery/light,/obj/effect/floor_decal/industrial/danger,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"hg" = (/obj/structure/flora/ausbushes/ywflowers,/obj/effect/landmark{name = "Catgirl Spawn"},/turf/simulated/floor/holofloor/grass,/area/holodeck/holodorm/source_garden) -"hx" = (/turf/simulated/floor/holofloor/wood,/area/holodeck/holodorm/source_seating) -"hy" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 9},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) -"hz" = (/obj/structure/bed/chair/holochair,/obj/effect/floor_decal/carpet{dir = 1},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) -"hA" = (/obj/effect/floor_decal/carpet{dir = 1},/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet{dir = 5},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) -"hB" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/holodorm/source_boxing) -"hC" = (/obj/effect/floor_decal/corner/red{dir = 9},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/holodorm/source_boxing) -"hD" = (/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/holodorm/source_boxing) -"hE" = (/obj/effect/floor_decal/corner/green{dir = 6},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/holodorm/source_boxing) -"hF" = (/turf/simulated/floor/holofloor/space,/area/holodeck/holodorm/source_space) -"hJ" = (/obj/structure/bed/chair/holochair{dir = 4},/obj/effect/floor_decal/carpet{dir = 8},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) -"hK" = (/obj/structure/table/woodentable/holotable,/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) -"hL" = (/obj/structure/bed/chair/holochair{dir = 8},/obj/effect/floor_decal/carpet{dir = 4},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) -"hO" = (/obj/effect/floor_decal/carpet{dir = 8},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 10},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) -"hP" = (/obj/structure/bed/chair/holochair{dir = 1},/obj/effect/floor_decal/carpet,/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) -"hQ" = (/obj/effect/floor_decal/carpet{dir = 4},/obj/effect/floor_decal/carpet,/obj/effect/floor_decal/carpet{dir = 6},/turf/simulated/floor/holofloor/carpet,/area/holodeck/holodorm/source_seating) -"hR" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor/tiled/dark,/area/holodeck/holodorm/source_boxing) -"iO" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 4; teleport_z_offset = 4},/turf/space/transit/west,/area/space) -"iY" = (/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"jf" = (/turf/space/transit/north,/area/space) -"jQ" = (/obj/effect/shuttle_landmark/transit{base_area = /area/space; base_turf = /turf/space/transit/east; landmark_tag = "specops_transit"; name = "Specops Transit"},/turf/space/transit/west,/area/space) -"kh" = (/obj/machinery/telecomms/relay/preset/centcom/tether,/turf/unsimulated/floor/steel,/area/centcom/control) -"kn" = (/obj/structure/fake_stairs/north/bottom{_stair_tag = "stairtest"},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"kr" = (/obj/machinery/telecomms/server/presets/centcomm,/turf/unsimulated/floor/steel,/area/centcom/control) -"le" = (/obj/effect/floor_decal/transit/orange{dir = 4},/obj/effect/step_trigger/lost_in_space/tram,/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"mZ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"oI" = (/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b,/turf/space/transit/east,/area/space) -"pb" = (/obj/machinery/telecomms/processor/preset_cent,/turf/unsimulated/floor/steel,/area/centcom/control) -"pu" = (/obj/effect/floor_decal/transit/orange{dir = 4},/obj/effect/transit/light{dir = 4},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"pF" = (/obj/effect/shuttle_landmark/transit{base_area = /area/space; base_turf = /turf/space/transit/east; landmark_tag = "escapepod1_transit"; name = "Escapepod 1 Transit"},/turf/space/transit/east,/area/space) -"qn" = (/turf/space/transit/east,/area/space) -"qz" = (/turf/space,/turf/space/internal_edge/bottomright,/area/space) -"qH" = (/obj/effect/floor_decal/transit/orange{dir = 8},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"rE" = (/obj/machinery/telecomms/bus/preset_cent,/turf/unsimulated/floor/steel,/area/centcom/control) -"sl" = (/turf/space/internal_edge/top,/area/space) -"sF" = (/obj/effect/overmap/bluespace_rift,/turf/unsimulated/map,/area/overmap) -"tC" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/steel,/area/space) -"tD" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east,/area/space) -"tH" = (/obj/effect/floor_decal/transit/orange{dir = 8},/obj/effect/step_trigger/lost_in_space/tram,/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"tJ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/simulated/floor/maglev{icon = 'icons/turf/transit_vr.dmi'},/area/space) -"uc" = (/turf/unsimulated/wall,/area/centcom/suppy) -"ud" = (/obj/machinery/status_display/supply_display,/turf/unsimulated/wall,/area/centcom/suppy) -"ue" = (/obj/structure/closet/crate,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/suppy) -"uf" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/suppy) -"ug" = (/obj/item/weapon/paper{info = "You're not supposed to be here."; name = "unnerving letter"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/suppy) -"vi" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/simulated/floor/maglev{icon = 'icons/turf/transit_vr.dmi'},/area/space) -"vG" = (/obj/effect/step_trigger/lost_in_space/tram,/turf/simulated/floor/maglev{icon = 'icons/turf/transit_vr.dmi'},/area/space) -"vR" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"wd" = (/obj/structure/sign/warning/nosmoking_2,/turf/unsimulated/wall,/area/centcom/simulated/terminal) -"wj" = (/turf/space/internal_edge/left,/area/space) -"wl" = (/turf/unsimulated/wall,/area/centcom/simulated/evac) -"wn" = (/obj/structure/fake_stairs/south/top{_stair_tag = "stairtest"},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"wr" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"wy" = (/turf/unsimulated/wall,/area/centcom/control) -"wZ" = (/turf/unsimulated/floor{icon_state = "sandwater"},/area/beach) -"xe" = (/obj/machinery/account_database{dir = 1; name = "CentComm Accounts database"},/turf/unsimulated/floor/steel,/area/centcom/control) -"xM" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"ya" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/simulated/sky/virgo3b/south,/area/space) -"ym" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"yA" = (/obj/machinery/telecomms/receiver/preset_cent,/turf/unsimulated/floor/steel,/area/centcom/control) -"yF" = (/obj/effect/floor_decal/transit/orange{dir = 4},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"yK" = (/obj/machinery/door/airlock/multi_tile/metal,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"zb" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; nostop = 0; tiles = 0},/turf/space/transit/east,/area/space) -"zv" = (/obj/effect/floor_decal/transit/orange{dir = 8},/obj/effect/transit/light{dir = 8},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"zK" = (/obj/machinery/door/blast/regular{dir = 4},/turf/simulated/floor/maglev,/area/centcom/simulated/terminal) -"Al" = (/obj/effect/floor_decal/techfloor/orange{dir = 8},/turf/simulated/floor/tiled/techfloor/grid,/area/centcom/simulated/terminal) -"Av" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/simulated/floor/maglev{icon = 'icons/turf/transit_vr.dmi'},/area/space) -"Ax" = (/turf/unsimulated/beach/coastline{density = 1; opacity = 1},/area/beach) -"Az" = (/turf/unsimulated/beach/coastline,/area/beach) -"Bw" = (/turf/unsimulated/beach/water,/area/beach) -"BD" = (/obj/effect/overlay/palmtree_r,/turf/unsimulated/beach/sand,/area/beach) -"BK" = (/turf/space,/turf/space/internal_edge/bottomleft,/area/space) -"Cn" = (/turf/simulated/sky/virgo3b/south,/area/space) -"Ct" = (/obj/machinery/ntnet_relay,/turf/unsimulated/floor/steel,/area/centcom/control) -"Cw" = (/obj/machinery/r_n_d/server/centcom,/turf/unsimulated/floor/steel,/area/centcom/control) -"Cy" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"Dk" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/steel,/area/space) -"Dw" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/snacks/chips,/turf/unsimulated/beach/sand,/area/beach) -"DF" = (/turf/space,/turf/space/internal_edge/topright,/area/space) -"El" = (/turf/space/transit/west,/area/space) -"ET" = (/turf/simulated/floor/tiled/techfloor/grid,/area/centcom/simulated/terminal) -"Fa" = (/obj/structure/table/standard,/turf/unsimulated/beach/sand,/area/beach) -"Fp" = (/turf/simulated/floor/maglev,/area/centcom/simulated/terminal) -"Fr" = (/obj/effect/floor_decal/transit/orange{dir = 4},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"FH" = (/obj/structure/bed/chair,/obj/effect/landmark{name = "endgame_exit"},/obj/item/toy/plushie/mouse{desc = "A plushie of a small fuzzy rodent."; name = "Woodrat"},/turf/unsimulated/beach/sand,/area/beach) -"FT" = (/obj/effect/shuttle_landmark{base_area = null; base_turf = null; docking_controller = null; landmark_tag = "escape_transit"; name = "Escape Transit"},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"Ga" = (/turf/unsimulated/floor/steel,/area/centcom/control) -"Gq" = (/turf/unsimulated/wall,/area/beach) -"Gs" = (/turf/space,/turf/space/transit/north,/area/space) -"Gw" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/beach) -"Hf" = (/obj/effect/shuttle_landmark/transit{base_area = /area/space; base_turf = /turf/space/transit/north; landmark_tag = "ninja_transit"; name = "Ninja Transit"},/turf/space/transit/north,/area/space) -"Hy" = (/turf/unsimulated/mineral{icon = 'icons/turf/transit_vr.dmi'; icon_state = "rock"},/area/space) -"HQ" = (/obj/machinery/telecomms/broadcaster/preset_cent,/turf/unsimulated/floor/steel,/area/centcom/control) -"Ik" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/turf/unsimulated/beach/sand,/area/beach) -"In" = (/obj/effect/shuttle_landmark/transit{base_area = /area/space; base_turf = /turf/space/transit/north; landmark_tag = "skipjack_transit"; name = "Skipjack Transit"},/turf/space/transit/north,/area/space) -"Iq" = (/obj/machinery/telecomms/hub/preset_cent,/turf/unsimulated/floor/steel,/area/centcom/control) -"IN" = (/obj/effect/floor_decal/transit/orange{dir = 8},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"IR" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/simulated/sky/virgo3b/south,/area/space) -"Jx" = (/obj/effect/floor_decal/corner_steel_grid/diagonal,/obj/effect/floor_decal/corner_steel_grid/diagonal{dir = 4},/obj/effect/floor_decal/industrial/danger{dir = 8},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) -"Jz" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 4; teleport_z_offset = 4},/turf/space/transit/north,/area/space) -"JL" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north,/area/space) -"JR" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "TelelockdownC"; name = "Security Doors"; opacity = 0},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) -"JW" = (/turf/unsimulated/beach/water{density = 1; opacity = 1},/area/beach) -"JZ" = (/turf/space/internal_edge/right,/area/space) -"Kj" = (/obj/effect/shuttle_landmark/transit{base_area = /area/space; base_turf = /turf/simulated/sky/virgo3b/south; landmark_tag = "tether_backup_transit"; name = "Tether Backup Transit"},/turf/simulated/sky/virgo3b/south,/area/space) -"Lg" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled/steel,/area/space) -"Lz" = (/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b,/turf/simulated/sky/virgo3b/south,/area/space) -"Mb" = (/obj/effect/transit/light{dir = 8},/turf/unsimulated/mineral{icon = 'icons/turf/transit_vr.dmi'; icon_state = "rock"},/area/space) -"ME" = (/obj/machinery/computer/rdservercontrol{name = "Master R&D Server Controller"; icon_state = "computer"; dir = 1; badmin = 1},/turf/unsimulated/floor/steel,/area/centcom/control) -"MK" = (/obj/machinery/light{dir = 4; icon_state = "tube1"; pixel_x = 0},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"ML" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east,/area/space) -"Nj" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/sand,/area/beach) -"No" = (/obj/item/weapon/beach_ball,/turf/unsimulated/beach/sand,/area/beach) -"Nq" = (/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) -"Nr" = (/obj/machinery/cryopod/robot/door/gateway,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) -"Nt" = (/turf/unsimulated/beach/sand{density = 1; opacity = 1},/area/beach) -"Oj" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/simulated/sky/virgo3b/south,/area/space) -"OR" = (/turf/simulated/shuttle/wall,/area/shuttle/escape) -"OY" = (/turf/unsimulated/map,/area/overmap) -"Pe" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/escape) -"Pf" = (/obj/structure/table/woodentable{dir = 5},/obj/structure/flora/pottedplant{pixel_y = 8},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) -"Pg" = (/turf/simulated/shuttle/wall/hard_corner,/area/shuttle/escape) -"Pi" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/west,/area/space) -"Pq" = (/turf/simulated/floor/maglev{icon = 'icons/turf/transit_vr.dmi'},/area/space) -"Qa" = (/obj/structure/closet/hydrant{pixel_x = -30; pixel_y = 0},/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/toxin,/obj/structure/bed/chair/shuttle,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"QW" = (/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"QX" = (/obj/structure/bed/chair/shuttle,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"QY" = (/obj/structure/flora/pottedplant{icon_state = "plant-21"},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) -"Rc" = (/obj/effect/floor_decal/techfloor/orange{dir = 4},/turf/simulated/floor/tiled/techfloor/grid,/area/centcom/simulated/terminal) -"Rd" = (/obj/structure/table/standard,/obj/random/maintenance/clean,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"Re" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"Rf" = (/obj/machinery/status_display{pixel_y = 30},/obj/structure/table/standard,/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"Rg" = (/obj/structure/bed/chair/shuttle{dir = 1},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"Rh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/unsimulated/wall,/area/centcom/simulated/terminal) -"Ri" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_shuttle_hatch_station"; locked = 1; name = "Shuttle Hatch"},/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape) -"Rj" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_shuttle_hatch_offsite"; locked = 1; name = "Shuttle Hatch"},/turf/simulated/shuttle/floor/yellow,/area/shuttle/escape) -"Rk" = (/obj/structure/bed/chair/shuttle,/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"Rl" = (/obj/structure/bed/chair/shuttle,/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"Rm" = (/obj/structure/table/standard,/obj/random/junk,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"Ro" = (/obj/structure/table/standard,/obj/random/maintenance/clean,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"Rq" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "TelelockdownC"; name = "Security Doors"; opacity = 0},/obj/effect/floor_decal/industrial/warning,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) -"Rr" = (/obj/structure/flora/pottedplant{icon_state = "plant-22"},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"Rs" = (/obj/structure/sign/nanotrasen,/obj/effect/shuttle_landmark{base_area = /area/centcom/simulated/terminal; base_turf = /turf/simulated/floor/tiled/techfloor/grid; docking_controller = null; landmark_tag = "escape_cc"; name = "Escape Centcom"},/turf/simulated/shuttle/wall,/area/shuttle/escape) -"Rt" = (/obj/structure/sign/nanotrasen,/turf/simulated/shuttle/wall,/area/shuttle/escape) -"Ru" = (/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"Rv" = (/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "TelelockdownC"; name = "Security Doors"; opacity = 0},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) -"Rw" = (/obj/structure/table/standard,/obj/item/clothing/head/beret/nanotrasen,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"Rx" = (/obj/structure/table/standard,/obj/random/plushie,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"Ry" = (/obj/structure/bed/chair/shuttle{dir = 1},/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"Rz" = (/obj/structure/bed/chair/shuttle{dir = 1},/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"RA" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/floor/white,/area/shuttle/escape) -"RC" = (/obj/effect/floor_decal/industrial/outline/blue,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"RD" = (/obj/structure/bed/chair/shuttle{dir = 1},/obj/machinery/light,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"RE" = (/obj/effect/floor_decal/industrial/outline/blue,/obj/machinery/light,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"RF" = (/obj/random/junk,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"RG" = (/obj/structure/bed/chair/shuttle{dir = 1},/obj/random/soap,/turf/simulated/shuttle/floor/white{color = "#cccccc"},/area/shuttle/escape) -"RV" = (/obj/effect/step_trigger/teleporter/random{affect_ghosts = 1; name = "escapeshuttle_leave"; teleport_x = 25; teleport_x_offset = 245; teleport_y = 25; teleport_y_offset = 245; teleport_z = 6; teleport_z_offset = 6},/turf/simulated/sky/virgo3b/south,/area/space) -"Sh" = (/obj/effect/floor_decal/transit/orange{dir = 4},/obj/effect/transit/light{dir = 4},/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/simulated/floor/tiled/techfloor/grid{icon = 'icons/turf/transit_vr.dmi'; initial_flooring = null; icon_state = "techfloor_grid"},/area/space) -"Sl" = (/obj/effect/floor_decal/techfloor/orange{dir = 8},/obj/machinery/camera/network/crescent{dir = 4},/turf/simulated/floor/tiled/techfloor/grid,/area/centcom/simulated/terminal) -"Sm" = (/turf/simulated/shuttle/wall/alien/blue/hard_corner,/area/unknown/dorm4) -"Sn" = (/turf/simulated/shuttle/wall/alien/blue,/area/unknown/dorm4) -"So" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) -"Sp" = (/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) -"Sq" = (/obj/structure/toilet,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) -"Sr" = (/obj/machinery/shower{pixel_y = 13},/obj/structure/curtain/open/shower,/obj/effect/floor_decal/steeldecal/steel_decals10{dir = 5},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) -"Ss" = (/obj/machinery/door/airlock/alien/blue/public,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) -"Su" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) -"Sw" = (/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) -"Sx" = (/obj/structure/fans,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) -"Sz" = (/obj/machinery/smartfridge/survival_pod,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) -"SA" = (/obj/machinery/sleeper/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) -"SB" = (/obj/structure/table/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) -"SC" = (/obj/item/device/perfect_tele_beacon/stationary{tele_name = "Unknown"; tele_network = "unkfour"},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) -"SD" = (/obj/structure/bed/double/padded,/obj/item/weapon/bedsheet/hopdouble,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) -"SE" = (/obj/structure/prop/alien/computer/hybrid{dir = 8},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) -"SF" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) -"SG" = (/obj/machinery/door/blast/regular{dir = 4},/turf/simulated/floor/tiled/techfloor/grid,/area/centcom/simulated/terminal) -"SH" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) -"SK" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) -"SN" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) -"SO" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) -"SP" = (/obj/structure/table/alien/blue,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm4) -"SQ" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor/voidcraft,/area/unknown/dorm4) -"SR" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) -"SS" = (/obj/machinery/computer/teleporter{dir = 1},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) -"ST" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm4) -"SV" = (/obj/effect/floor_decal/steeldecal/steel_decals5{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals9{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals9{dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"SW" = (/obj/item/device/perfect_tele_beacon/stationary{tele_name = "Transfer"; tele_network = "centcom"},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) -"SX" = (/turf/simulated/shuttle/wall/alien/blue/hard_corner,/area/unknown/dorm3) -"SY" = (/turf/simulated/shuttle/wall/alien/blue,/area/unknown/dorm3) -"SZ" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) -"Ta" = (/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) -"Tb" = (/obj/structure/toilet,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) -"Tc" = (/obj/machinery/shower{pixel_y = 13},/obj/structure/curtain/open/shower,/obj/effect/floor_decal/steeldecal/steel_decals10{dir = 5},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) -"Td" = (/obj/machinery/door/airlock/alien/blue/public,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) -"Tf" = (/obj/machinery/cryopod/robot/door/gateway,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) -"Th" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) -"Ti" = (/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) -"Tj" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) -"Tk" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) -"Tl" = (/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) -"Tm" = (/obj/structure/fans,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) -"Tn" = (/obj/structure/table/standard,/obj/item/clothing/under/color/rainbow,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/collectable/petehat{pixel_y = 5},/turf/unsimulated/beach/sand,/area/beach) -"To" = (/obj/machinery/smartfridge/survival_pod,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) -"Tp" = (/obj/machinery/sleeper/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) -"Tq" = (/obj/structure/table/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) -"Tr" = (/obj/item/device/perfect_tele_beacon/stationary{tele_name = "Unknown"; tele_network = "unkthree"},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) -"Ts" = (/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach) -"Tt" = (/obj/structure/bed/double/padded,/obj/item/weapon/bedsheet/hopdouble,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) -"Tu" = (/obj/structure/prop/alien/computer/hybrid{dir = 8},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) -"Tx" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) -"Ty" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) -"Tz" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) -"TA" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) -"TB" = (/obj/structure/table/alien/blue,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm3) -"TC" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor/voidcraft,/area/unknown/dorm3) -"TD" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) -"TE" = (/obj/machinery/computer/teleporter{dir = 1},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) -"TF" = (/obj/structure/bed/chair,/obj/effect/landmark{name = "endgame_exit"},/turf/unsimulated/beach/sand,/area/beach) -"TG" = (/obj/effect/landmark{name = "endgame_exit"},/turf/unsimulated/beach/sand,/area/beach) -"TH" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm3) -"TI" = (/obj/effect/wingrille_spawn/reinforced/crescent,/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/centcom/simulated/terminal) -"TJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/multi_tile/glass,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"TK" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/unknown/dorm2) -"TM" = (/turf/simulated/shuttle/wall/alien,/area/unknown/dorm2) -"TN" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) -"TP" = (/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) -"TQ" = (/obj/structure/toilet,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) -"TR" = (/obj/machinery/shower{pixel_y = 13},/obj/structure/curtain/open/shower,/obj/effect/floor_decal/steeldecal/steel_decals10{dir = 5},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) -"TS" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) -"TT" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) -"TU" = (/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) -"TV" = (/obj/structure/fans,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) -"TW" = (/obj/machinery/smartfridge/survival_pod,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) -"TX" = (/obj/machinery/sleeper/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) -"TY" = (/obj/machinery/door/firedoor,/turf/unsimulated/floor/steel,/area/centcom/simulated/terminal) -"TZ" = (/obj/effect/floor_decal/industrial/warning/dust/corner,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Ua" = (/obj/structure/table/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) -"Ub" = (/obj/item/device/perfect_tele_beacon/stationary{tele_name = "Unknown"; tele_network = "unktwo"},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) -"Uc" = (/obj/item/weapon/bedsheet/rddouble,/obj/structure/bed/double/padded,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) -"Ud" = (/obj/structure/prop/alien/computer{dir = 8},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) -"Uf" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) -"Ug" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) -"Uh" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) -"Ui" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) -"Uj" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm2) -"Uk" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor/voidcraft,/area/unknown/dorm2) -"Ul" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) -"Um" = (/obj/machinery/computer/teleporter{dir = 1},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) -"Uo" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm2) -"Up" = (/obj/effect/floor_decal/industrial/warning/dust,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Ur" = (/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning/dust,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Us" = (/obj/effect/floor_decal/industrial/warning/dust/corner{dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Ut" = (/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Uu" = (/obj/effect/floor_decal/industrial/warning/dust,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Uv" = (/obj/effect/floor_decal/industrial/outline,/obj/structure/bed/chair,/turf/unsimulated/floor/steel,/area/centcom/simulated/main_hall) -"Uw" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/unknown/dorm1) -"Ux" = (/turf/simulated/shuttle/wall/alien,/area/unknown/dorm1) -"Uz" = (/obj/machinery/recharge_station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) -"UA" = (/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) -"UC" = (/obj/structure/toilet,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) -"UD" = (/obj/machinery/shower{pixel_y = 13},/obj/structure/curtain/open/shower,/obj/effect/floor_decal/steeldecal/steel_decals10{dir = 5},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) -"UE" = (/obj/effect/floor_decal/industrial/outline,/obj/structure/bed/chair,/obj/machinery/status_display{pixel_y = 29},/turf/unsimulated/floor/steel,/area/centcom/simulated/main_hall) -"UF" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) -"UG" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) -"UH" = (/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) -"UI" = (/obj/structure/fans,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) -"UJ" = (/obj/machinery/smartfridge/survival_pod,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu11,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu13,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu10,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/menu9,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/storage/mre/random,/obj/item/weapon/towel/random,/obj/item/weapon/towel/random,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) -"UK" = (/obj/machinery/sleeper/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) -"UM" = (/obj/structure/table/survival_pod,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) -"UN" = (/obj/item/device/perfect_tele_beacon/stationary{tele_name = "Unknown"; tele_network = "unkone"},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) -"UP" = (/obj/item/weapon/bedsheet/rddouble,/obj/structure/bed/double/padded,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) -"UQ" = (/obj/structure/prop/alien/computer{dir = 8},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) -"UR" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) -"US" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) -"UT" = (/obj/structure/bed/chair/comfy/black,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) -"UU" = (/obj/structure/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) -"UV" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/unknown/dorm1) -"UW" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/teleport/hub,/turf/simulated/shuttle/floor/voidcraft,/area/unknown/dorm1) -"UX" = (/obj/machinery/teleport/station,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) -"UY" = (/obj/machinery/computer/teleporter{dir = 1},/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) -"UZ" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/unknown/dorm1) -"Va" = (/obj/effect/floor_decal/rust/steel_decals_rusted2,/obj/effect/floor_decal/industrial/warning/dust,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Vb" = (/obj/machinery/recharge_station,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) -"Vc" = (/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) -"Vd" = (/turf/unsimulated/wall,/area/centcom/simulated/medical) -"Ve" = (/obj/effect/wingrille_spawn/reinforced/crescent,/obj/structure/sign/department/medbay,/turf/unsimulated/floor{icon_state = "plating"; name = "plating"},/area/centcom/simulated/medical) -"Vf" = (/obj/machinery/door/airlock{name = "Unit 4"},/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) -"Vg" = (/turf/unsimulated/wall,/area/centcom/simulated/living) -"Vh" = (/obj/effect/floor_decal/corner_steel_grid/diagonal,/obj/effect/floor_decal/corner_steel_grid/diagonal{dir = 4},/obj/effect/floor_decal/industrial/danger{dir = 8},/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) -"Vi" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Vj" = (/turf/simulated/floor/tiled/steel,/area/shuttle/large_escape_pod2/centcom{base_turf = /turf/simulated/floor/tiled/steel_dirty/virgo3b}) -"Vk" = (/turf/unsimulated/wall,/area/centcom/simulated/bathroom) -"Vl" = (/obj/structure/sign/warning{name = "\improper STAND AWAY FROM TRACK EDGE"},/turf/unsimulated/wall,/area/centcom/simulated/living) -"Vm" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/steel,/area/shuttle/large_escape_pod2/centcom{base_turf = /turf/simulated/floor/tiled/steel_dirty/virgo3b}) -"Vn" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 10},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Vo" = (/obj/machinery/door/blast/regular{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Vp" = (/obj/effect/floor_decal/rust/part_rusted3,/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 9},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Vq" = (/obj/effect/floor_decal/rust/part_rusted3,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Vr" = (/obj/effect/floor_decal/rust,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Vs" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Vt" = (/obj/effect/floor_decal/rust/mono_rusted3,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Vu" = (/turf/unsimulated/wall,/area/centcom/simulated/main_hall) -"Vv" = (/obj/machinery/door/airlock/multi_tile/glass{dir = 1},/obj/machinery/door/firedoor,/turf/unsimulated/floor/steel,/area/centcom/simulated/terminal) -"Vw" = (/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"Vy" = (/obj/machinery/door/airlock{name = "Unit 3"},/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) -"Vz" = (/obj/machinery/light/small{dir = 8; pixel_y = 0},/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) -"VB" = (/obj/effect/floor_decal/sign/dock/one,/obj/effect/floor_decal/industrial/warning/dust{dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"VC" = (/turf/unsimulated/beach/sand,/area/beach) -"VD" = (/obj/effect/floor_decal/corner_steel_grid/diagonal,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"VE" = (/obj/effect/shuttle_landmark{base_area = /area/centcom/simulated/evac; base_turf = /turf/unsimulated/floor/steel; docking_controller = null; landmark_tag = "escapepod1_cc"; name = "Centcom Recovery Area"},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"VF" = (/obj/effect/floor_decal/sign/dock/two,/obj/effect/floor_decal/industrial/warning/dust{dir = 8},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"VI" = (/turf/unsimulated/wall,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"VJ" = (/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning/dust{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"VK" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/multi_tile/glass,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/restaurant) -"VL" = (/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/restaurant) -"VM" = (/turf/unsimulated/wall,/area/centcom/simulated/restaurant) -"VN" = (/obj/effect/floor_decal/corner_steel_grid/diagonal,/turf/simulated/floor/tiled/steel,/area/shuttle/large_escape_pod2/centcom{base_turf = /turf/simulated/floor/tiled/steel_dirty/virgo3b}) -"VO" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 9},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"VP" = (/obj/effect/floor_decal/industrial/warning/dust/corner{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"VQ" = (/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"VR" = (/obj/structure/bed/chair/wood/wings,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"VS" = (/obj/effect/floor_decal/corner_steel_grid/diagonal,/obj/effect/floor_decal/industrial/warning/dust/corner{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"VU" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"VV" = (/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"VW" = (/turf/space,/turf/space/internal_edge/topleft,/area/space) -"VX" = (/obj/effect/floor_decal/industrial/warning/dust/corner{dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"VY" = (/obj/structure/closet/crate/bin,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"VZ" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Wb" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/pastatomato,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Wc" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/meatballspagetti,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Wd" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 8},/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"We" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/fries,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Wh" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 9},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Wi" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"},/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) -"Wj" = (/obj/effect/blocker,/turf/simulated/floor/tiled/white,/area/centcom/simulated/living) -"Wk" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/cheeseburger{pixel_x = 3; pixel_y = 3},/obj/item/weapon/reagent_containers/food/snacks/cheeseburger,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Wl" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/kitsuneudon,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Wm" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/lasagna,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Wo" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/hotdog,/obj/item/weapon/reagent_containers/food/snacks/hotdog{pixel_x = -5; pixel_y = -3},/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Wp" = (/obj/machinery/cryopod/robot/door/dorms,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) -"Wq" = (/obj/effect/floor_decal/steeldecal/steel_decals9{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals9{dir = 1},/obj/machinery/computer/cryopod/dorms{name = "Company Property Retention System"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) -"Ws" = (/obj/effect/floor_decal/steeldecal/steel_decals9{dir = 8},/obj/effect/floor_decal/steeldecal/steel_decals9{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) -"Wt" = (/obj/machinery/porta_turret/crescent{density = 1},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Wu" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/bigbiteburger,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Wv" = (/obj/effect/floor_decal/industrial/outline,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Wz" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 1},/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"WA" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/grilledcheese,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"WB" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/simulated/floor/plating,/area/centcom/simulated/restaurant) -"WC" = (/obj/effect/wingrille_spawn/reinforced/crescent,/turf/simulated/floor/plating,/area/centcom/simulated/medical) -"WD" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/beach) -"WE" = (/obj/effect/wingrille_spawn/reinforced/crescent,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "FrontlockC2"; name = "Security Door"; opacity = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/plating,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"WF" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/meatballsoup,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"WH" = (/obj/item/weapon/stool/padded,/turf/simulated/floor/wood,/area/centcom/simulated/bar) -"WI" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/roastbeef,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"WJ" = (/obj/structure/table/reinforced,/obj/machinery/door/window/brigdoor/northleft{req_access = list(63); req_one_access = list(1)},/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "FrontlockC2"; name = "Security Door"; opacity = 0},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"WK" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window/brigdoor/northright{req_access = list(63); req_one_access = list(1)},/obj/machinery/door/blast/regular{density = 0; dir = 4; icon_state = "pdoor0"; id = "FrontlockC2"; name = "Security Door"; opacity = 0},/obj/machinery/computer/skills,/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"WL" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/meatsteak,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"WN" = (/obj/structure/bed/chair/wood/wings{icon_state = "wooden_chair_wings"; dir = 4},/obj/machinery/light{dir = 8},/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"WO" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/cola,/turf/simulated/floor/wood,/area/centcom/simulated/bar) -"WP" = (/obj/structure/table/woodentable,/obj/machinery/cash_register/civilian,/turf/simulated/floor/wood,/area/centcom/simulated/bar) -"WQ" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/space_mountain_wind,/turf/simulated/floor/wood,/area/centcom/simulated/bar) -"WR" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/snacks/toastedsandwich{pixel_w = 0; pixel_x = 0; pixel_y = 10},/turf/simulated/floor/wood,/area/centcom/simulated/bar) -"WS" = (/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"WT" = (/obj/structure/bed/chair,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"WU" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; name = "Surgery Cleaner"; pixel_x = 2; pixel_y = 2},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"WV" = (/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/centcom/simulated/bar) -"WW" = (/turf/simulated/floor/wood,/area/centcom/simulated/bar) -"WZ" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Xa" = (/obj/machinery/vending/sovietsoda,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Xb" = (/obj/machinery/vending/snack,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Xc" = (/obj/machinery/vending/cola,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Xd" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"Xe" = (/obj/machinery/smartfridge/drinks,/turf/simulated/floor/wood,/area/centcom/simulated/bar) -"Xf" = (/obj/machinery/vending/boozeomat,/turf/simulated/floor/wood,/area/centcom/simulated/bar) -"Xg" = (/obj/structure/table/reinforced,/obj/machinery/chemical_dispenser/bar_soft/full,/turf/simulated/floor/wood,/area/centcom/simulated/bar) -"Xh" = (/obj/structure/table/reinforced,/obj/machinery/chemical_dispenser/bar_alc/full,/turf/simulated/floor/wood,/area/centcom/simulated/bar) -"Xi" = (/turf/unsimulated/wall,/area/centcom/simulated/bar) -"Xj" = (/obj/structure/table/standard,/obj/item/weapon/storage/firstaid/surgery,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Xk" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/multi_tile/glass,/turf/unsimulated/floor/steel{icon_state = "white"},/area/centcom/simulated/medical) -"Xl" = (/turf/unsimulated/map/edge,/area/overmap) -"Xm" = (/obj/machinery/door/firedoor,/turf/unsimulated/floor/steel{icon_state = "white"},/area/centcom/simulated/medical) -"Xn" = (/obj/structure/sign/greencross,/turf/unsimulated/wall,/area/centcom/simulated/medical) -"Xp" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/bathroom) -"Xr" = (/obj/structure/bed/chair,/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Xs" = (/obj/machinery/computer/card{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; dir = 1; frequency = 1475; icon_state = "intercom"; listening = 1; name = "Station Intercom (Security)"; pixel_x = 0; pixel_y = 27},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Xv" = (/obj/structure/bed/chair/office/dark{dir = 1},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Xw" = (/obj/structure/bed/chair/office/dark{dir = 4},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Xx" = (/obj/machinery/computer/security{dir = 8},/obj/machinery/camera/network/crescent,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Xy" = (/obj/structure/table/standard,/obj/item/stack/nanopaste,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Xz" = (/obj/effect/floor_decal/industrial/loading,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"XA" = (/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 5},/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 6},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"XB" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 12; pixel_y = 8},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"XC" = (/obj/machinery/computer/secure_data{dir = 4},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"XD" = (/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"XE" = (/obj/effect/floor_decal/techfloor/orange{dir = 8},/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/techfloor/grid,/area/centcom/simulated/terminal) -"XH" = (/obj/structure/bed/chair{dir = 8},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) -"XJ" = (/obj/structure/table/glass,/obj/item/device/healthanalyzer/improved,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"XK" = (/obj/structure/table/glass,/obj/machinery/computer/med_data{icon_keyboard = "laptop_key"; icon_screen = "medlaptop"; icon_state = "laptop"; light_color = "#00b000"},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"XM" = (/obj/structure/table/glass{desc = "It's a table, it has some scracthes..they say 'Mlem'."},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"XN" = (/obj/structure/table/glass,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"XO" = (/obj/structure/signpost,/turf/unsimulated/beach/sand,/area/beach) -"XP" = (/obj/machinery/oxygen_pump/anesthetic,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"XQ" = (/obj/machinery/optable,/obj/machinery/light{dir = 8; icon_state = "tube1"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"XR" = (/obj/machinery/computer/operating{dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"XS" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"XU" = (/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"XV" = (/obj/machinery/turretid/stun{check_access = 0; check_anomalies = 0; check_records = 0; check_synth = 0; check_weapons = 0; control_area = "\improper CentCom Security Arrivals"; pixel_x = 32; req_access = list(101); req_one_access = list(101)},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"XX" = (/obj/machinery/computer/crew{dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"XY" = (/obj/structure/closet,/turf/unsimulated/beach/sand,/area/beach) -"XZ" = (/obj/structure/bed/chair/office/dark,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Ya" = (/obj/machinery/camera/network/crescent,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Yb" = (/obj/structure/table/glass,/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 3},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Yc" = (/obj/structure/table/standard,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Yg" = (/obj/structure/sign/department/operational,/turf/unsimulated/wall,/area/centcom/simulated/medical) -"Yh" = (/obj/effect/floor_decal/industrial/loading{dir = 1},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Yj" = (/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 9},/obj/effect/floor_decal/steeldecal/steel_decals6{dir = 10},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Yk" = (/obj/structure/medical_stand,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Yl" = (/obj/machinery/door/airlock/security{name = "Security"},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Ym" = (/obj/machinery/vending/medical,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Yo" = (/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Yr" = (/obj/structure/table/reinforced,/obj/machinery/microwave{pixel_y = 5},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Ys" = (/obj/machinery/recharger/wallcharger{pixel_x = 4; pixel_y = 26},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Yt" = (/obj/effect/floor_decal/rust,/obj/effect/floor_decal/industrial/warning/dust{dir = 1},/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/evac) -"Yu" = (/obj/machinery/camera/network/crescent,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Yv" = (/obj/machinery/door/airlock/multi_tile/glass{req_access = list(5)},/obj/machinery/door/firedoor/multi_tile,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Yw" = (/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access = list(45)},/obj/machinery/door/firedoor,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Yx" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) -"Yy" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = 30},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"YB" = (/obj/structure/table/standard,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 5; pixel_y = 5},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/tool/wrench,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YC" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YD" = (/obj/machinery/atmospherics/unary/freezer,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YE" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"YF" = (/obj/structure/table/glass,/obj/item/device/defib_kit/loaded,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YG" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/steel,/area/centcom/simulated/living) -"YH" = (/obj/structure/table/glass,/obj/item/weapon/storage/pill_bottle/spaceacillin,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YI" = (/obj/structure/table/reinforced,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/gun/energy/taser,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"YJ" = (/obj/structure/closet/secure_closet/nanotrasen_security,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/gun/energy/gun,/obj/item/weapon/shield/riot,/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"YK" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YL" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YM" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YN" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YO" = (/obj/machinery/computer/transhuman/designer{dir = 8},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YP" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/oxygen/prechilled,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YQ" = (/obj/structure/table/glass,/obj/machinery/chemical_dispenser/full,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YR" = (/turf/unsimulated/floor/steel,/area/centcom/simulated/main_hall) -"YT" = (/obj/machinery/chem_master,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YU" = (/obj/structure/table/glass,/obj/machinery/chemical_dispenser/ert,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YV" = (/obj/machinery/transhuman/synthprinter,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YW" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YY" = (/obj/machinery/bodyscanner{dir = 8},/obj/effect/floor_decal/corner_steel_grid{dir = 10},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"YZ" = (/obj/machinery/body_scanconsole,/obj/effect/floor_decal/corner_steel_grid{dir = 10},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Zb" = (/obj/machinery/sleep_console{dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Zc" = (/obj/machinery/sleeper{dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Zd" = (/obj/machinery/computer/transhuman/resleeving{dir = 8},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Ze" = (/obj/machinery/transhuman/resleever,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Zf" = (/obj/structure/filingcabinet/chestdrawer{name = "Medical Forms"},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Zg" = (/obj/machinery/clonepod/transhuman/full,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Zh" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/obj/item/weapon/reagent_containers/glass/rag,/obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask,/turf/simulated/floor/wood,/area/centcom/simulated/bar) -"Zi" = (/obj/machinery/light,/turf/simulated/floor/tiled/steel,/area/centcom/simulated/main_hall) -"Zj" = (/obj/structure/table/standard,/obj/item/device/healthanalyzer,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Zk" = (/obj/structure/table/reinforced,/obj/item/device/camera,/obj/item/weapon/storage/box/ids,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Zl" = (/obj/structure/table/glass,/obj/item/weapon/backup_implanter{pixel_y = -8},/obj/item/weapon/backup_implanter{pixel_y = 8},/obj/item/weapon/backup_implanter,/obj/machinery/light{dir = 8},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Zn" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Zp" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/security_space_law,/obj/item/weapon/book/manual/security_space_law,/obj/machinery/light/small{dir = 8; pixel_y = 0},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Zq" = (/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Zr" = (/obj/structure/table/standard,/obj/machinery/light,/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Zs" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Zt" = (/obj/effect/floor_decal/corner_steel_grid/diagonal,/obj/effect/floor_decal/corner_steel_grid/diagonal{dir = 4},/obj/effect/floor_decal/industrial/danger{dir = 8},/obj/machinery/light,/turf/simulated/floor/tiled,/area/centcom/simulated/terminal) -"Zw" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/obj/machinery/light/small{dir = 8; pixel_y = 0},/turf/simulated/floor/tiled,/area/centcom/simulated/security{name = "\improper CentCom Security Arrivals"}) -"Zx" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Zy" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/adv,/obj/machinery/light{dir = 1},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"Zz" = (/obj/structure/table/glass,/obj/item/weapon/reagent_containers/glass/bottle/biomass{pixel_x = -4; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/biomass{pixel_x = -3; pixel_y = -2},/obj/item/weapon/reagent_containers/glass/bottle/biomass{pixel_x = 3; pixel_y = 5},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/tiled/white,/area/centcom/simulated/medical) -"ZC" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) -"ZD" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/grenadine,/obj/machinery/light{dir = 8},/turf/simulated/floor/wood,/area/centcom/simulated/bar) -"ZE" = (/obj/machinery/light,/turf/simulated/floor/wood,/area/centcom/simulated/restaurant) - -(1,1,1) = {" -apapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaparasasasasasasasasasasarasasasasasasasasasasarasasasasasasasasasasarasasasasasasasasasasarasasasasasasasasasasarasasasasasasasasasasarasasasasasasasasasasar -apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHyHyHyHyHyHyHyHyHyHyHyHyHyHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaJaKaJaJaJaJaJaJaLaMaNaMaNaMaMaNaMaNaMaLaOaPaPaPaPaPaPaPaPaPaLaSaSaSaSaSaSaSaSabaQaLaTaTaTaTaTaTaTaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLaYaZaZaZaZaZbaacaWaVbb -apRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaJaJaJaJaJaJbdaJaLbebfbebfbebfbebfbebfaLbgbgbgbgbgbgbgbgbgbgaLbibibibibibibibiadaQaLaTbjaTaTaTaTaTaTbjaTaLaUaUaUaUaUaUaUaUaUaUaLbkblblblblblbmacaWaVbb -apRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapapapapapapapaIaJbdaJaJaJaJaJaJaJaJaLbfbebobpbqbpagbBbBbBaLbgbgbgbgbgbgbgbgbgbgaLahbvakbiaSbtaSbialaQaLaTaTaTaTaTaTaTaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLbkblblblblblbmamaVaVbb -apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgzviYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaJaJaJaKaJaJaJaJaLbebfbUbBananbBbBaoataLbGbGbGbGbGbGbGbGbGbHaLauavawbIbJbKbLbMalaQaLaTaTaTbjaTaTbjaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLbkblblblblblbmacaWaVbb -apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYpudgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaKaJaJaJaKaJaJaJaLbebfbUbBbSbSbBaoaxbUaLbVbVbWbXbXbXbXbYbVbZaLayazawcacbcbcbccalaQaLaTaTaTaTaTaTaTaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLbkblblblblblbmacaWaVbb -apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaJaJaJaJaJaJaJaJaLbebfbUbBbSbSbBaAaBbUaLbVbVctcucucucucvbVbZaLayazawcwcxcycxczalaQaLaTaTaTaTaTaTaTaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLcAblblblblblcBacaWaVbb -apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaJaJaJbdaJaJaJaKaLbebfbUbBananbBbBaAagaLbVbVctcucucucucvbVbZaLayazawcScTcycTcUalaQaLaTaTaTbjaTaTbjaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLcAblblblblblcBacaWaVbb -apLzRVRVLzLzLzLzCnCnCnCnCnCnCnCnCnCnCnLzLzLzLzRVLzRVapHyHyHyHydgdzwrAvwrwrmZmZtJmZFrdgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJbdaJaJaJaJaJaJaJaLbfbedacPcQcPatbBbBbBaLbVbVctcucucucucvbVbZaLayazawddcycycydeaCaQaLaTaTaTaTaTaTaTaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLcAblblblblblcBaDaVaVbb -apLzRVRVLzLzLzLzCnCnCnCnCnCnCnCnCnCnCnLzLzLzLzRVLzRVapHyHyHyHydgINwrPqiYiYiYiYPqmZShdgHyHyHyHyapapapapapapapapapapapapapapapaIaJaJaJaJaJaJaJaJaJaJaLbebfbebfbebfbebfbfbeaLbVbVdjdkdkdkdkdlbVdmaLaEaFawcScTcTcTcUalaQaLaTbjaTaTaTaTaTaTbjaTaLaUaUaUaUaUaUaUaUaUaUaLcAblblblblblcBacaWaVbb -apLzRVRVLzLzLzLzCnCnIROjOjOjyayaIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIaKaJaJaJbdaJaJaJaJbdaLaMaNaMaNaMaMaNaMaNaMaLdqbVbVbVbVbVbVbVbVdraLaSaSawdsdtdtdtduabaQaLaTaTaTaTaTaTaTaTaTaTaLaUaUaUaUaUaUaUaUaUaUaLdvdwdwdwdwdwdxacaWaVbb -apLzRVRVLzLzLzLzCnCnIRCnCnCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapardAdAdAdAdAdAdAdAdAdAardAdAdAdAdAdAdAdAdAdAardAdAdAdAdAdAdAdAdAdAardBdBdBdBdBdBdBdBdBdBardBdBdBdBdBdBdBdBdBdBardBdBdBdBdBdBdBdBdBdBardBdBdBdBdBdBdBdBdBdBar -apLzRVRVLzLzLzLzCnCnIRCnCnCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgdziYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFdFdFdFdFdFdFdFaLdGdGdGdGdGdGdGdGdGdGaLdIdHdHdHdHdHdHdHdHdHaLdMdNdMdOdPdNdPaGdKdJaLdQdQdQdQdQdQdQdQdQdQaLdUdVdVdVdVdVdWaHdSdRaLdXdXdYdYdYdYdYdYdYdYbb -apLzRVRVLzLzLzLzCnCnIRCnCnCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYShdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFecdFdFdFdFecdFaLdGeddGdGdGdGeddGdGdGaLdHdHdHeeefefefegdHdHaLeheieheiejeiejaGdKdJaLdQdQekdQdQdQdQdQdQdQaLelemememememenaHdSdRaLdYdYdYdYeoeoeodYdYdYbb -apLzRVRVLzLzLzLzCnCnIRCnKjCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFdFdFdFdFdFdFdFaLdGdGdGdGdGdGdGdGepdGaLdHdHdHeqeqeqeqeqdHdHaLeheidNdNdNeiejaRdJdJaLdQdQdQdQdQdQesetdQdQaLelemememememenaXdRdRaLdYdYdYdYdYdYdYdYdYdYbb -apLzRVRVLzLzLzLzCnCnIRCnCnCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFecdFdFdFdFecdFdFdFaLdGdGeJdGepdGdGdGdGdGaLeLeKeKeKeKeKeKeKeKeKaLeheieieieieiejaGdKdJaLdQdQdQdQeMdQdQdQdQdQaLelemememememenaHdSdRaLdYeodYbubwbwbxdYeodYbb -apLzRVRVLzLzLzLzCnCnIRCnCnCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgdzFTPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFdFdFdFdFdFdFdFaLdGdGdGeTdGdGdGdGeTdGaLeLeKeVeWeWeWeWeWeXeUaLeYeZeZfaeZeZfbaGdKdJaLdQdQdQdQdQdQdQfcdQdQaLfdfefefefefeffaHdSdRaLdYeodYbAbsbsbCdYeodYbb -apLzRVRVLzLzLzLzCnCnIRCnCnCnCnCnIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYShdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFdFdFdFdFdFdFdFaLdGdGdGdGdGdGdGdGdGdGaLeLeKfnfofofofofofpeUaLfqfrfrfrfrfrfsaGdKdJaLdQdQdQdQdQdQdQdQdQdQaLftfufufufufufvaHdSdRaLdYeodYbAbsbsbCdYeodYbb -apLzRVRVLzLzLzLzCnCnIRIRIRIRIRIRIRCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFecdFdFdFdFecdFaLdGdGdGdGeddGeJdGdGedaLeLeKfnfofofofofofpeKaLfzeieieieieifAaGdKdJaLdQdQdQdQdQdQdQdQdQdQaLfBemememememfCaHdSdRaLdYeodYbDbEbEbFdYeodYbb -apLzRVRVLzLzLzLzCnCnCnCnCnCnCnCnCnCnCnLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFdFdFdFdFdFdFdFaLfGdGdGdGdGfGdGdGdGdGaLeLeKfnfofofofofofHeKaLfzeifJfJfJeifAbhdJdJaLfKfKfKfKfKfKfKfKfKfKaLfBemememememfCbrdRdRaLdYdYdYdYdYdYdYdYdYdYbb -apLzRVRVLzLzLzLzCnCnCnCnCnCnCnCnCnCnCnLzLzLzLzRVLzRVapHyHyHyHydgdziYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapapaIdFecdFdFdFdFecdFdFdFaLdGeTdGeJdGdGeTdGeJdGaLeLeKfOfPfPfPfPfPfQeKaLfzeifzeifAeifAaGdKdJaLfRfRfRfRfRfRfRfRfRfRaLfBemememememfCaHdSdRaLdYdYdYeoeoeodYdYdYdYbb -apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYShdgHyHyHyHyapapapapapapapapapapapapapapapaIdFdFdFdFdFdFdFdFdFdFaLdGdGdGdGfGdGdGdGdGfGaLeLeKeKeKeKeKeKeKeKeKaLfSfJfSfTfUfJfUaGdKdJaLfRfRfRfRfRfRfRfRfRfRaLfVfWfWfWfWfWfXaHdSdRaLdYdYdYdYdYdYdYdYfYfYbb -apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapapapapapapaparfZfZfZfZfZfZfZfZfZfZarfZfZfZfZfZfZfZfZfZfZarfZfZfZfZfZfZfZfZfZfZarfZfZfZfZfZfZfZfZfZfZarfZfZfZfZfZfZfZfZfZfZarfZdBdBdBdBdBdBfZdBdBasdBdBdBfZdBdBdBdBdBdBar -apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgINiYPqiYiYiYiYPqiYFrdgHyHyHyHyapapapapapapapapapcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuVuVuVuVuVuVuVuVuVuVuVuaqaqaqaqaqaqaqaqaqaqaqaqaqaqaIgagbgcgdgcgcaLgegfggghgigfaLgjgkgkgkgkgkbb -apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgdzvRPqiYiYiYiYPqvRFrdgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeVuVuVuVuVuVuaeapapapapapapaeVuRuRuYERuRuRuRuYERuRuVuaqucucucucudbcbcbcbcbcbcbcaqaIgagagagagagaaLglglglglglglaLgkgmgngogkgkbb -apRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVapHyHyHyHydgINvRvivRvRvRvRvivRShdgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeVuRuVuVuknVuaeapapapapapapaeVuRuRuRuRuRuRuRuRuRuRuVuaqucueufueufbcbnbnbnbnbnbcaqaIgagqgcgagqgcaLgrgrgrgrgrgraLgsgkgkgkgkgtbb -apLzRVRVLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzLzRVLzRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeVuwnVuVuRuVuaeapapapapapapaeVuxMRuVuVuVuVuVuVuRuMKVuaqucueufueufbcbybnbnbnbzbcaqardBdBdBdBdBdBardBdBdBdBdBdBardBdBdBdBdBdBar -apRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVRVapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeVuCyCyCyCyVuaeapapapapapapaeVuRuRuVuVWslslDFVuRuRuVuaqucufufufufbQbRbRbRbnbnbcaqaIgNgOgOgOgOgPaLgQgRgQgRgQgRaLgSgSgSgSgSgSbb -apapapapapapapapapapapapapapapapapapapapapapapapapapapHyHyHyHydgzviYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeVueSgUeSeSVuaeapapapapapapaeVuRuRuVuwjcjLgJZVuRuRuVuaqucueufueufcsbnbnbnbnbnbcaqaIgOgOgOgNgOgOaLgRgQhggQgRgQaLgSgSgSgSgSgSbb -apGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqapapapHyHyHyHydgqHiYPqiYiYiYiYPqiYpudgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeVuVuVuVuVuVuaeapapapapapapaeVuRuRuVuwjDktCJZVuRuRuVuaqucueugueufbccObnbnbnbnbcaqaIgOgPgOgOgOgOaLgQgRgQgRgQgRaLgSgSgSgSgSgSbb -apGqNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtNtGqapapapHyHyHyHydgqHiYPqiYiYiYiYPqiYyFdgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuRuRuVuwjDktCJZVuRuRuVuaqucueufueufcsbnbnbnbnbnbcaqardBdBdBdBdBdBardBdBdBdBdBdBardBdBdBdBdBdBar -apGqNtVCVCXOVCVCVCXYXYXYVCVCXYXYXYVCVCVCVCVCNtGqapapapHyHyHyHydgtHcCvGcCcCcCcCvGcCledgHyHyHyHyapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuxMRuVuBKDktCqzVuRuMKVuaqucufufufufdhdididibnbnbcaqaIhxhyhzhzhAhxaLhBhChDhDhEhDaLhFhFhFhFhFhFbb -apGqNtGwVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCWDNtGqapapapHyHyHyHyHyMbHyHyHyHyHyHyHyHyHyHyHyHyHyHyapapapapapapapapapcdcicicicicicicicibNcicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuRuRuVuVuyKymVuVuRuRuVuaqucueufueufbcbybnbnbnbzbcaqaIhxhJhKhKhLhxaLhDhChDhDhEhDaLhFhFhFhFhFhFbb -apGqNtVCVCVCVCVCVCVCVCVCVCVCVCVCTsVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuRuRuRuRuRuRuRuRuRuRuVuaqucueufueufbcbcbnbnbnbcbcaqaIhxhOhPhPhQhxaLhDhChDhDhEhRaLhFhFhFhFhFhFbb -apGqNtVCVCVCVCVCVCVCVCVCVCVCVCVCGwVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuRuRuZiRuRuRuRuZiRuRuVuaqucucucucudbcbcdEdEdEbcbcaqarfZfZfZfZfZfZarfZfZfZfZfZfZarfZfZfZfZfZfZar -apGqNtVCVCVCVCBDTsVCVCVCVCVCVCVCVCVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVuVuVuVuVuVuVuVuVuVuVuVuaqaqaqaqaqaqaqbObPbTbPckapaqapapapapapapapapapapapapapapapapapapapapapap -apGqNtVCVCVCVCVCTGTGVCVCVCVCVCVCVCVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaqaqaqaqaqaqaqaqapapapapapapapapapapapapapapapapapapapapapap -apGqNtVCVCVCVCTGFaTnTGVCVCVCVCVCVCVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -apGqNtVCVCVCVCTGDwIkTGVCVCBDVCNoVCVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -apGqNtVCVCVCVCVCTGTGVCVCVCVCVCVCVCVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaewywywywywywywywyaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -apGqNtVCVCTsVCVCVCVCVCVCVCVCVCVCVCVCVCGwVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcicicicicicicicicicicicicicicicicicdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaewyyArEHQpbkrCtwyaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -apGqNtVCVCBDTsVCVCVCVCVCVCVCVCVCVCVCVCTsVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVgVgVgVgVgGaGaGaGaGaGawyaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -apGqNtVCVCVCVCVCVCVCFHVCTFVCTFVCaaVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVgNrSWTfVgxeIqGaMECwkhwyaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -apGqNtVCVCVCNjVCVCVCVCVCVCVCVCVCVCVCVCVCVCVCNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVgThTiTjVgwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlwlVkVkVkVkVkVkaeaeaeaeaeaeae -apGqNtwZwZwZwZwZwZwZwZwZwZwZwZwZwZwZwZwZwZwZNtGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeafaiaizKaiaiaiaizKaiaiVlJRRqRvVgTZUpUpUuUpUrUpUpUpUpUuUpUsUtwlTZVaUpUuUpUpUpUpUpUpUuUpUsUtwlVkVcVcVfVbVkaeaeaeaeaeaeae -apGqAxAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAxGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlETFpETETETETFpETRcVhNqNqQYTIViVjVjVjVjVmVjVjVjVjVjVjVnUsVoViVpVqUtUtUtUtVrUtUtUtUtVnUsVoVkVzVcVkVkVkaeaeaeaeaeaeae -apGqJWBwBwBwBwBwBwBwBwBwBwBwBwBwBwBwBwBwBwBwJWGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlETORPePePePeORETRcJxNqNqPfTIViVjVjVjVjVjVjVjVjVmVjVjVjVsVoViUtUtVtUtVrUtUtUtUtVrUtUtVsVoVkVcVcVyXpVkaeaeaeaeaeaeae -apGqJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWJWGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZXEORPgQaQWQWQXPgORRcJxNqNqXHTIViVjVjVmVmVjVjVjVjVjVjVjVjVBVoViUtVrUtUtUtUtUtVDUtUtUtVEVFVoVkVcVcVkVkVkaeaeaeaeaeaeae -apGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqGqapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZSlPeRdReQWQWReRfPeRcJxNqNqSHTIVJVjVjVjVjVjVjVjVjVNVjVmVmVsVoViUtVrUtUtUtUtUtUtUtUtUtUtVsVoVkVzVcVyXpVkaeaeaeaeaeaeae -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlPeRgRgQWQWRgRgPeRcJxNqNqSHTIViVjVjVjVjVjVjVjVjVjVjVjVOVPVoViUtUtUtVDUtUtUtVrUtUtVDVOVPVoVkVcVcVgVgVgaeaeaeaeaeaeae -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeRhAlRiQWQWQWQWQWQWRjRcJxNqNqQYTIVSVUVUXUVUVUVUVUVUVUYtVUVPUtwlVXVUVUXUVUWhVUVUVVVUXUVUVPUtwlVkWiVkVgWjVgaeaeaeaeaeaeae -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZXEORRkQXQWQWQXRlORRcJxYxwdTIdZVuVuVuVuVuVuTJVwVuVuVuVuVuVuVuVuVuVuVuVuVuTJVwVuVuVuVuVuVuVuUvYRUEVgWpVgVgVgaeaeaeaeae -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlPeReRmQWQWReRoPeRcJxNqdZRrRuYERuRuRuRuRuRuRuYERuRuRuRuRuRuRuYERuRuRuRuRuRuRuYERuRuRuRuRuRuRuRuWqTiWpWjVgaeaeaeaeae -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlRsRgRgQWQWRgRgRtRcJxNqTYSVRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuRuWsYGVgVgVgaeaeaeaeae -apaeaeaeaeaeUwUxUxUxUxUwaeaeaeaeaeaeTKTMTMTMTMTKaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlRtQXQXQWQWQXQXRtRcJxNqVvSVRuRuRuRuRuZiRuRuRuRuRuRuRuZiRuRuRuRuRuRuRuZiRuRuRuRuRuRuRuZiRuRuRuRuWsTiWpWjVgaeaeaeaeae -apaeaeaeaeaeUxUzUAUCUDUxaeaeaeaeaeaeTMTNTPTQTRTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlPeRwReQWQWReRxPeRcJxNqdZRrRuWtWvWvWtVIVMWBVKVLWBWBWBWBVKVLWBVMVMVdWCVeXkXmXnWCWCWCVdVdVdVdVdVdVgWpVgVgVgaeaeaeaeae -apaeaeaeaeaeUwUwUFUwUxUwaeaeaeaeaeaeTKTKTSTKTMTKaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZXEORRyRgQWQWRgRzORRcJxYxdZTIdZWEWJWKWEVIVQVRVRVQVQVQVRVRVQVQVQVYVMWSWTWSWSWSWSWTWTWTWSVdWUXjZjXrVgWjVgaeaeaeaeaeaeae -apaeaeaeaeaeUxUKUHUIUJUxaeaeaeaeaeaeTMTXTUTVTWTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeRhAlRiQWQWQWQWQWQWRjRcJxNqNqQYdZXsXvXwXxVIWNWbWcWdVQVZWeWkWdVQVQZCVMWSWSWSWSWSWSWSWSWSWSVdXyXzXAXBVgVgVgaeaeaeaeaeaeae -apaeaeaeaeaeUxUMUAUAUHUxaeaeaeaeaeaeTMUaTPTPTUTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlRARgQWQXQXQWRCRARcJxNqNqSHdZXCXDXDZkVIVZWlWmWdVQVZWoWuWdVQVQVQVMZlXJXKXMXNWSWSWSWSZnVdXPXQXRYWWSXSVdaeaeaeaeaeaeae -apaeaeaeaeaeUxUGUNUAUPUxaeaeaeaeaeaeTMTTUbTPUcTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZSlRARDQWQXQXQWRERARcJxNqNqSHdZZpXDXDXVVIVQWzWzVQVQVQWzWzVQVRVRVQVMXXXZYaXZYbWSWSWSWSWSVdYcYhYjYWWSYkVdaeaeaeaeaeaeae -apaeaeaeaeaeUxUQUAUAURUxaeaeaeaeaeaeTMUdTPTPUfTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZXEORPgRFRgRGQWPgORRcJxNqNqXHdZVIVIVIYlVIVQVQVQVQVQVQVQVQVZWAWFWdVMYmWSWSWSZqWSWSWSWSWSVdYcYcZrYWWSYoVdaeaeaeaeaeaeae -apaeaeaeaeaeUxUSUAUAUTUxaeaeaeaeaeaeTMUgTPTPUhTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlETORPePePePeORETRcJxNqNqPfdZYrYsYuZsVIWHWHWHWHWHWHVQVQVZWIWLWdVMVdVdVdVdVdVdVdVdYvWSVdVdVdYgYwVdVdVdaeaeaeaeaeaeae -apaeaeaeaeaeUxUSUHUUUVUxaeaeaeaeaeaeTMUgTUUiUjTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaedZAlETFpETETETETFpETRcZtNqNqQYdZZwXDXDYyVIZDWOWPWQWRWVVQVQVQWzWzZCVMYBYCYDYCZxXNVdYmWSWSYFZyYHWSWSWSZzVdaeaeaeaeaeaeae -apaeaeaeaeaeUwUwUFUwUxUwaeaeaeaeaeaeTKTKTSTKTMTKaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeafSGSGzKSGSGSGSGzKSGSGajdZdZdZdZYIYJYJXDYlWWWWWWWWWWWWZEWZXaXbXcXdVMYKYLYMYNXZWSYwWSWSWSWSWSWSWSWSWSYOVdaeaeaeaeaeaeae -apaeaeaeaeaeUxUHUHUHUHUxaeaeaeaeaeaeTMTUTUTUTUTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVIVIVIVIVIVIXeXfXgXhZhWWVMVMVMVMVMVMVMYPYPXNYQYTYUVdWSWSWSWSWSWSWSWSWSYVVdaeaeaeaeaeaeae -apaeaeaeaeaeUxUWUXUYUZUxaeaeaeaeaeaeTMUkUlUmUoTMaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeXiXiXiXiXiXiXiXiaeaeaeaeaeVMVdVdVdVdVdVdVdWSYYYZWSWSZbZcWSWSZdVdaeaeaeaeaeaeae -apaeaeaeaeaeUwUxUxUxUxUwaeaeaeaeaeaeTKTMTMTMTMTKaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVdWSWSWSWSWSWSWSWSWSZeVdaeaeaeaeaeaeae -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVdZfWSZqWSWSWSWSZqWSZgVdaeaeaeaeaeaeae -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeVdVdVdVdVdVdVdVdVdVdVdVdaeaeaeaeaeaeae -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -apaeaeaeaeaeSXSYSYSYSYSXaeaeaeaeaeaeSmSnSnSnSnSmaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae -apaeaeaeaeaeSYSZTaTbTcSYaeaeaeaeaeaeSnSoSpSqSrSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap -apaeaeaeaeaeSXSXTdSXSYSXaeaeaeaeaeaeSmSmSsSmSnSmaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap -apaeaeaeaeaeSYTpTlTmToSYaeaeaeaeaeaeSnSASwSxSzSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap -apaeaeaeaeaeSYTqTaTaTlSYaeaeaeaeaeaeSnSBSpSpSwSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap -apaeaeaeaeaeSYTkTrTaTtSYaeaeaeaeaeaeSnSuSCSpSDSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap -apaeaeaeaeaeSYTuTaTaTxSYaeaeaeaeaeaeSnSESpSpSFSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap -apaeaeaeaeaeSYTyTaTaTzSYaeaeaeaeaeaeSnSKSpSpSNSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap -apaeaeaeaeaeSYTyTlTATBSYaeaeaeaeaeaeSnSKSwSOSPSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzclapcececececececececececececececececececececececececeapoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoI -apaeaeaeaeaeSXSXTdSXSYSXaeaeaeaeaeaeSmSmSsSmSnSmaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apaeaeaeaeaeSYTlTlTlTlSYaeaeaeaeaeaeSnSwSwSwSwSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apaeaeaeaeaeSYTCTDTETHSYaeaeaeaeaeaeSnSQSRSSSTSnaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfJLJLJLjfJLJLJLjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apaeaeaeaeaeSXSYSYSYSYSXaeaeaeaeaeaeSmSnSnSnSnSmaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfJLjfJLjfJLjfJLjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfJLjfJLjfJLjfJLjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfJLjfJLJLJLjfJLjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfJLJLJLjfjfjfjfjfJLJLJLjfjfjfjfclapcecfcfcfcfcfcfcfcgcgcgcgcgcgcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfJLJLjfjfjfjfjfjfjfjfjfJLJLjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLMLMLMLMLMLMLMLMLMLMLMLMLqnqnqnqnqnqnoI -apaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLqnqnqnqnqnqnqnqnqnqnqnzbMLqnqnqnqnqnoI -apapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfJLjfHfjfjfjfjfjfjfjfjfjfJLjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLqnqnqnqnqnqnqnqnqnqnqnqnzbqnqnqnqnqnoI -apapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLqnqnqnqnqnqnqnqnqnqnqnpFzbqnqnqnqnqnoI -apapXlXlXlXlXlXlXlXlXlXlXlapapXlXlXlXlXlXlXlXlXlXlXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLqnqnqnqnqnqnqnqnqnqnqnqntDqnqnqnqnqnoI -apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfJLJLjfjfjfjfjfjfjfjfjfJLJLjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLqnqnqnqnqnqnqnqnqnqnqntDtDqnqnqnqnqnoI -apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfJLJLjfjfjfjfjfjfjfJLJLjfjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnMLMLMLMLMLMLMLMLMLMLMLMLMLqnqnqnqnqnqnoI -apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfJLJLjfjfjfjfjfJLJLjfjfjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfJLJLJLJLJLJLJLjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcgcfcfcfcfcfcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apapXlOYOYOYOYsFOYOYOYOYXlapapXlOYOYOYOYsFOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcgcgcfchcfcgcgcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcgcgcgcgcgcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapclGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apapXlOYOYOYOYOYOYOYOYOYXlapapXlOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapclGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsclapcecfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfcfceapoIqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnqnoI -apapXlXlXlXlXlXlXlXlXlXlXlapapXlXlXlXlXlXlXlXlXlXlXlapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapclGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsGsclapcececececececececececececececececececececececececeapoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoIoI -apapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapclclclclclclclclclclclclclclclclclclclclclapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapap -apapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapapiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOapJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJz -XlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElPiPiPiPiPiPiElElPiPiPiPiPiPiPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElPiPiPiPiPiPiPiPiPiPiPiPiElElElPiPiElElElElPiPiPiPiElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLJLJLJLJLJLjfJLJLJLjfjfjfJLJLJLjfJLJLJLJLJLJLjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiPiElElElElElElElElElElPiPiElPiPiElEljQElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfJLjfJLjfJLJLJLJLJLjfJLjfJLjfjfjfjfJLjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElPiPiPiElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfJLJLJLjfjfjfjfjfjfjfJLJLJLjfInjfjfJLjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfJLJLjfjfjfjfjfjfjfjfjfJLJLjfjfjfjfJLjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfJLJLjfjfjfjfjfjfjfjfjfJLJLjfjfjfjfJLjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElPiPiPiPiPiPiPiPiPiPiElElElElElElElElElElElElElElElElElElElElElElElElElPiPiElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElPiPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiPiElElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElElElEliOapJzjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElElElEliOapJzjfjfjfjfjfjfJLJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLJLjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElElElEliOapJzjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElPiPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiPiElElElEliOapJzjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElPiPiPiPiPiPiPiPiPiPiElElElElElElElElElElElElElElElElElElElElElElElElElPiPiElElEliOapJzjfjfjfjfjfjfJLJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLJLjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfJLJLJLJLJLjfjfjfjfjfjfjfjfjfjfjfjfjfJLJLJLJLJLjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiElElElElElElElElElElElElPiPiPiElElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfjfjfJLjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElPiPiElElElElElElElElElElPiPiElPiPiElElElElElElElElElElElElElElPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfJLJLJLjfjfjfjfjfjfjfjfjfJLJLJLjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElPiPiPiPiPiPiPiPiPiPiPiPiElElElPiPiElElElElPiPiPiPiElElElElElPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfJLJLjfjfjfjfjfjfjfJLJLjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElPiPiPiPiPiPiElElPiPiPiPiPiPiPiElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfJLJLJLJLJLJLJLJLJLjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYOYXlapapapapapapapapapapapapapapapapapapiOElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElElEliOapJzjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfjfJz -XlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlapapapapapapapapapapapapapapapapapapiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOiOapJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJzJz -"} +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/machinery/vending/coffee, +/turf/unsimulated/beach/sand, +/area/beach) +"ab" = ( +/obj/structure/window/reinforced/holowindow{ + dir = 8 + }, +/obj/structure/flora/pottedplant{ + icon_state = "plant-10" + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_courtroom) +"ac" = ( +/obj/structure/window/reinforced/holowindow{ + dir = 8 + }, +/obj/structure/holostool, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_emptycourt) +"ad" = ( +/obj/machinery/door/window/holowindoor{ + dir = 8 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_courtroom) +"ae" = ( +/turf/unsimulated/mineral/virgo3b, +/area/space) +"af" = ( +/obj/structure/sign/warning/docking_area, +/turf/unsimulated/wall, +/area/centcom/simulated/terminal) +"ag" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/effect/floor_decal/spline/fancy/wood{ + dir = 6 + }, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"ah" = ( +/obj/machinery/door/window/holowindoor{ + dir = 1; + name = "Jury Box" + }, +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet{ + dir = 9 + }, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 5 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"ai" = ( +/obj/machinery/door/blast/regular{ + dir = 4 + }, +/turf/unsimulated/floor/techfloor_grid, +/area/centcom/simulated/terminal) +"aj" = ( +/obj/structure/sign/warning{ + name = "\improper STAND AWAY FROM TRACK EDGE" + }, +/turf/unsimulated/wall, +/area/centcom/simulated/terminal) +"ak" = ( +/obj/structure/table/woodentable/holotable, +/obj/structure/window/reinforced/holowindow{ + dir = 4 + }, +/obj/structure/window/reinforced/holowindow{ + dir = 1 + }, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_courtroom) +"al" = ( +/obj/structure/window/reinforced/holowindow{ + dir = 8 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_courtroom) +"am" = ( +/obj/machinery/door/window/holowindoor{ + dir = 8; + name = "Red Team" + }, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_emptycourt) +"an" = ( +/obj/structure/holostool, +/turf/simulated/floor/holofloor/desert, +/area/holodeck/source_picnicarea) +"ao" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/effect/floor_decal/spline/fancy/wood{ + icon_state = "spline_fancy"; + dir = 9 + }, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"ap" = ( +/turf/space, +/area/space) +"aq" = ( +/obj/effect/step_trigger/teleporter/random, +/turf/space, +/area/space) +"ar" = ( +/turf/unsimulated/wall, +/area/space) +"as" = ( +/obj/structure/window/reinforced, +/turf/unsimulated/wall, +/area/space) +"at" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/effect/floor_decal/spline/fancy/wood{ + dir = 5 + }, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"au" = ( +/obj/structure/bed/chair/holochair{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet/corners{ + icon_state = "carpet_corners"; + dir = 5 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"av" = ( +/obj/structure/bed/chair/holochair{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 5 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"aw" = ( +/obj/structure/table/woodentable/holotable, +/obj/structure/window/reinforced/holowindow{ + dir = 4 + }, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_courtroom) +"ax" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/effect/floor_decal/spline/fancy/wood/corner{ + dir = 4 + }, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"ay" = ( +/obj/structure/bed/chair/holochair{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"az" = ( +/obj/structure/bed/chair/holochair{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"aA" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/effect/floor_decal/spline/fancy/wood{ + icon_state = "spline_fancy"; + dir = 10 + }, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"aB" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/effect/floor_decal/spline/fancy/wood/corner{ + dir = 8 + }, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"aC" = ( +/obj/machinery/door/window/holowindoor{ + base_state = "right"; + dir = 8; + icon_state = "right" + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_courtroom) +"aD" = ( +/obj/machinery/door/window/holowindoor{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Green Team" + }, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_emptycourt) +"aE" = ( +/obj/structure/bed/chair/holochair{ + dir = 4 + }, +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet{ + dir = 10 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"aF" = ( +/obj/structure/bed/chair/holochair{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 6 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"aG" = ( +/obj/structure/window/reinforced/holowindow{ + dir = 8 + }, +/obj/structure/holostool, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"aH" = ( +/obj/structure/window/reinforced/holowindow{ + dir = 8 + }, +/obj/structure/holostool, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"aI" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/unsimulated/wall, +/area/space) +"aJ" = ( +/turf/simulated/floor/holofloor/desert, +/area/holodeck/source_desert) +"aK" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/simulated/floor/holofloor/desert, +/area/holodeck/source_desert) +"aL" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/unsimulated/wall, +/area/space) +"aM" = ( +/obj/structure/flora/ausbushes/fullgrass, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"aN" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"aO" = ( +/obj/structure/table/rack/holorack, +/obj/item/clothing/under/dress/dress_saloon, +/obj/item/clothing/head/pin/flower, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_theatre) +"aP" = ( +/obj/effect/landmark/costume, +/obj/structure/table/rack/holorack, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_theatre) +"aQ" = ( +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_courtroom) +"aR" = ( +/obj/machinery/door/window/holowindoor{ + dir = 8; + name = "Red Team" + }, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_basketball) +"aS" = ( +/obj/structure/table/woodentable/holotable, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_courtroom) +"aT" = ( +/turf/simulated/floor/holofloor/reinforced, +/area/holodeck/source_wildlife) +"aU" = ( +/turf/simulated/floor/holofloor/reinforced, +/area/holodeck/source_plating) +"aV" = ( +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_emptycourt) +"aW" = ( +/obj/structure/holostool, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_emptycourt) +"aX" = ( +/obj/machinery/door/window/holowindoor{ + dir = 8; + name = "Red Team" + }, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_thunderdomecourt) +"aY" = ( +/obj/effect/floor_decal/corner/red/full{ + dir = 8 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_emptycourt) +"aZ" = ( +/obj/effect/floor_decal/corner/red{ + dir = 5 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_emptycourt) +"ba" = ( +/obj/effect/floor_decal/corner/red/full{ + dir = 1 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_emptycourt) +"bb" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/unsimulated/wall, +/area/space) +"bc" = ( +/turf/simulated/shuttle/wall, +/area/shuttle/supply) +"bd" = ( +/obj/structure/flora/ausbushes/fullgrass, +/turf/simulated/floor/holofloor/desert, +/area/holodeck/source_desert) +"be" = ( +/obj/structure/flora/ausbushes/ywflowers, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"bf" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"bg" = ( +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_theatre) +"bh" = ( +/obj/machinery/door/window/holowindoor{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Green Team" + }, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_basketball) +"bi" = ( +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_courtroom) +"bj" = ( +/obj/effect/landmark{ + name = "Holocarp Spawn" + }, +/turf/simulated/floor/holofloor/reinforced, +/area/holodeck/source_wildlife) +"bk" = ( +/obj/effect/floor_decal/corner/red{ + dir = 9 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_emptycourt) +"bl" = ( +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_emptycourt) +"bm" = ( +/obj/effect/floor_decal/corner/red{ + dir = 6 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_emptycourt) +"bn" = ( +/turf/simulated/shuttle/floor, +/area/shuttle/supply) +"bo" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/effect/floor_decal/spline/fancy/wood/corner, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"bp" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"bq" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/effect/floor_decal/spline/fancy/wood, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"br" = ( +/obj/machinery/door/window/holowindoor{ + base_state = "right"; + dir = 8; + icon_state = "right"; + name = "Green Team" + }, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_thunderdomecourt) +"bs" = ( +/turf/simulated/fitness, +/area/holodeck/source_boxingcourt) +"bt" = ( +/obj/structure/bed/chair/holochair, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_courtroom) +"bu" = ( +/obj/structure/fitness/boxing_ropes{ + dir = 1 + }, +/obj/structure/fitness/boxing_turnbuckle{ + dir = 8; + layer = 3.4 + }, +/turf/simulated/fitness, +/area/holodeck/source_boxingcourt) +"bv" = ( +/obj/structure/window/reinforced/holowindow{ + dir = 1 + }, +/obj/structure/table/woodentable/holotable, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_courtroom) +"bw" = ( +/obj/structure/fitness/boxing_ropes{ + dir = 1 + }, +/turf/simulated/fitness, +/area/holodeck/source_boxingcourt) +"bx" = ( +/obj/structure/fitness/boxing_ropes{ + dir = 1 + }, +/obj/structure/fitness/boxing_turnbuckle{ + dir = 4; + layer = 3.4 + }, +/turf/simulated/fitness, +/area/holodeck/source_boxingcourt) +"by" = ( +/obj/machinery/light{ + dir = 8; + icon_state = "tube1"; + pixel_y = 0 + }, +/turf/simulated/shuttle/floor, +/area/shuttle/supply) +"bz" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/shuttle/floor, +/area/shuttle/supply) +"bA" = ( +/obj/structure/fitness/boxing_ropes{ + dir = 8 + }, +/turf/simulated/fitness, +/area/holodeck/source_boxingcourt) +"bB" = ( +/turf/simulated/floor/holofloor/desert, +/area/holodeck/source_picnicarea) +"bC" = ( +/obj/structure/fitness/boxing_ropes{ + dir = 4 + }, +/turf/simulated/fitness, +/area/holodeck/source_boxingcourt) +"bD" = ( +/obj/structure/fitness/boxing_turnbuckle{ + dir = 8 + }, +/obj/structure/fitness/boxing_ropes_bottom, +/turf/simulated/fitness, +/area/holodeck/source_boxingcourt) +"bE" = ( +/obj/structure/fitness/boxing_ropes_bottom, +/turf/simulated/fitness, +/area/holodeck/source_boxingcourt) +"bF" = ( +/obj/structure/fitness/boxing_turnbuckle{ + dir = 4 + }, +/obj/structure/fitness/boxing_ropes_bottom, +/turf/simulated/fitness, +/area/holodeck/source_boxingcourt) +"bG" = ( +/obj/effect/floor_decal/spline/plain{ + dir = 1 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_theatre) +"bH" = ( +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 5 + }, +/obj/effect/floor_decal/carpet{ + dir = 9 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_theatre) +"bI" = ( +/obj/structure/window/reinforced/holowindow, +/obj/machinery/door/window/holowindoor{ + dir = 1; + name = "Court Reporter's Box" + }, +/obj/structure/bed/chair/holochair, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_courtroom) +"bJ" = ( +/obj/structure/table/woodentable/holotable, +/obj/structure/window/reinforced/holowindow, +/obj/structure/window/reinforced/holowindow{ + dir = 8 + }, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_courtroom) +"bK" = ( +/obj/structure/table/woodentable/holotable, +/obj/structure/window/reinforced/holowindow, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_courtroom) +"bL" = ( +/obj/structure/table/woodentable/holotable, +/obj/structure/window/reinforced/holowindow, +/obj/structure/window/reinforced/holowindow{ + dir = 4 + }, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_courtroom) +"bM" = ( +/obj/structure/window/reinforced/holowindow, +/obj/machinery/door/window/holowindoor{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Witness Box" + }, +/obj/structure/bed/chair/holochair, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_courtroom) +"bN" = ( +/obj/effect/landmark/ai_multicam_room, +/turf/unsimulated/ai_visible, +/area/ai_multicam_room) +"bO" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_l" + }, +/turf/space, +/turf/simulated/shuttle/plating/airless/carry{ + dir = 1 + }, +/area/shuttle/supply) +"bP" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/space, +/turf/simulated/shuttle/plating/airless/carry{ + dir = 1 + }, +/area/shuttle/supply) +"bQ" = ( +/obj/machinery/door/airlock/glass_external{ + frequency = 1380; + icon_state = "door_locked"; + id_tag = "supply_shuttle_hatch"; + locked = 1; + name = "Shuttle Hatch" + }, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/turf/simulated/shuttle/plating, +/area/shuttle/supply) +"bR" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad2" + }, +/turf/simulated/shuttle/floor, +/area/shuttle/supply) +"bS" = ( +/obj/structure/table/woodentable/holotable, +/turf/simulated/floor/holofloor/desert, +/area/holodeck/source_picnicarea) +"bT" = ( +/obj/structure/shuttle/engine/propulsion, +/obj/effect/shuttle_landmark{ + base_area = /area/space; + base_turf = /turf/space; + landmark_tag = "supply_cc"; + name = "Centcom Supply Depot" + }, +/turf/space, +/turf/simulated/shuttle/plating/airless/carry{ + dir = 1 + }, +/area/shuttle/supply) +"bU" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/effect/floor_decal/spline/fancy/wood{ + dir = 4 + }, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"bV" = ( +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_theatre) +"bW" = ( +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 9 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_theatre) +"bX" = ( +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_theatre) +"bY" = ( +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 5 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_theatre) +"bZ" = ( +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_theatre) +"ca" = ( +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 9 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"cb" = ( +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"cc" = ( +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 5 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"cd" = ( +/turf/unsimulated/wall, +/area/ai_multicam_room) +"ce" = ( +/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b, +/turf/space/transit/south, +/area/space) +"cf" = ( +/turf/space/transit/south, +/area/space) +"cg" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + name = "thrower_leftnostop" + }, +/turf/space/transit/south, +/area/space) +"ch" = ( +/obj/effect/shuttle_landmark/transit{ + base_area = /area/space; + base_turf = /turf/space/transit/east; + landmark_tag = "belter_transit"; + name = "Belter Transit" + }, +/turf/space/transit/south, +/area/space) +"ci" = ( +/turf/unsimulated/ai_visible, +/area/ai_multicam_room) +"cj" = ( +/obj/effect/floor_decal/industrial/warning{ + icon_state = "warning"; + dir = 9 + }, +/turf/simulated/floor/tiled/steel, +/area/space) +"ck" = ( +/obj/structure/shuttle/engine/propulsion{ + icon_state = "burst_r" + }, +/turf/space, +/turf/simulated/shuttle/plating/airless/carry{ + dir = 1 + }, +/area/shuttle/supply) +"cl" = ( +/obj/effect/step_trigger/teleporter/random{ + affect_ghosts = 1; + name = "escapeshuttle_leave"; + teleport_x = 25; + teleport_x_offset = 245; + teleport_y = 25; + teleport_y_offset = 245; + teleport_z = 4; + teleport_z_offset = 4 + }, +/turf/space, +/turf/space/transit/north, +/area/space) +"cs" = ( +/obj/machinery/door/airlock/glass_external{ + frequency = 1380; + icon_state = "door_locked"; + id_tag = "supply_shuttle_hatch"; + locked = 1; + name = "Shuttle Hatch" + }, +/turf/simulated/shuttle/floor, +/area/shuttle/supply) +"ct" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_theatre) +"cu" = ( +/obj/structure/holostool, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_theatre) +"cv" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_theatre) +"cw" = ( +/obj/structure/table/woodentable/holotable, +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"cx" = ( +/obj/structure/table/woodentable/holotable, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"cy" = ( +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"cz" = ( +/obj/structure/table/woodentable/holotable, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"cA" = ( +/obj/effect/floor_decal/corner/green{ + dir = 9 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_emptycourt) +"cB" = ( +/obj/effect/floor_decal/corner/green{ + dir = 6 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_emptycourt) +"cC" = ( +/obj/effect/step_trigger/lost_in_space/tram, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"cO" = ( +/obj/machinery/embedded_controller/radio/simple_docking_controller{ + frequency = 1380; + id_tag = "supply_shuttle"; + pixel_x = -25; + pixel_y = 0; + req_one_access = list(13,31); + tag_door = "supply_shuttle_hatch" + }, +/turf/simulated/shuttle/floor, +/area/shuttle/supply) +"cP" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/effect/floor_decal/spline/fancy/wood{ + dir = 1 + }, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"cQ" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/effect/floor_decal/spline/fancy/wood{ + dir = 1 + }, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"cS" = ( +/obj/structure/bed/chair/holochair{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"cT" = ( +/obj/structure/bed/chair/holochair{ + dir = 1 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"cU" = ( +/obj/structure/bed/chair/holochair{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"da" = ( +/obj/structure/flora/ausbushes/brflowers, +/obj/effect/floor_decal/spline/fancy/wood/corner{ + dir = 1 + }, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/source_picnicarea) +"dd" = ( +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"de" = ( +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"dg" = ( +/turf/unsimulated/wall{ + icon = 'icons/turf/transit_vr.dmi' + }, +/area/space) +"dh" = ( +/obj/machinery/door/airlock/glass_external{ + frequency = 1380; + icon_state = "door_locked"; + id_tag = "supply_shuttle_hatch"; + locked = 1; + name = "Shuttle Hatch" + }, +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/turf/simulated/shuttle/plating, +/area/shuttle/supply) +"di" = ( +/obj/machinery/conveyor{ + dir = 4; + id = "QMLoad" + }, +/turf/simulated/shuttle/floor, +/area/shuttle/supply) +"dj" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 10 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_theatre) +"dk" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_theatre) +"dl" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 6 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_theatre) +"dm" = ( +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 6 + }, +/obj/effect/floor_decal/carpet{ + dir = 10 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_theatre) +"dq" = ( +/obj/structure/flora/pottedplant{ + icon_state = "plant-06" + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_theatre) +"dr" = ( +/obj/effect/floor_decal/carpet{ + dir = 5 + }, +/obj/effect/floor_decal/carpet{ + dir = 6 + }, +/obj/effect/floor_decal/carpet{ + dir = 10 + }, +/obj/effect/floor_decal/carpet{ + dir = 9 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_theatre) +"ds" = ( +/obj/structure/bed/chair/holochair{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 10 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"dt" = ( +/obj/structure/bed/chair/holochair{ + dir = 1 + }, +/obj/effect/floor_decal/carpet, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"du" = ( +/obj/structure/bed/chair/holochair{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 6 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_courtroom) +"dv" = ( +/obj/effect/floor_decal/corner/green/full, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_emptycourt) +"dw" = ( +/obj/effect/floor_decal/corner/green{ + dir = 10 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_emptycourt) +"dx" = ( +/obj/effect/floor_decal/corner/green/full{ + dir = 4 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_emptycourt) +"dz" = ( +/obj/effect/floor_decal/transit/orange{ + dir = 8 + }, +/obj/effect/transit/light{ + dir = 8 + }, +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 2; + name = "thrower_throwdownside"; + nostop = 1; + stopper = 0; + tiles = 0 + }, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"dA" = ( +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/unsimulated/wall, +/area/space) +"dB" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/unsimulated/wall, +/area/space) +"dE" = ( +/obj/structure/shuttle/engine/heater, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/airless, +/area/shuttle/supply) +"dF" = ( +/turf/simulated/floor/holofloor/space, +/area/holodeck/source_space) +"dG" = ( +/turf/simulated/floor/holofloor/snow, +/area/holodeck/source_snowfield) +"dH" = ( +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_meetinghall) +"dI" = ( +/obj/structure/flora/pottedplant{ + icon_state = "plant-06" + }, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_meetinghall) +"dJ" = ( +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_basketball) +"dK" = ( +/obj/structure/holostool, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"dM" = ( +/obj/effect/floor_decal/corner/red/full{ + dir = 8 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"dN" = ( +/obj/effect/floor_decal/corner/red{ + dir = 5 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"dO" = ( +/obj/structure/holohoop, +/obj/effect/floor_decal/corner/red{ + dir = 5 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"dP" = ( +/obj/effect/floor_decal/corner/red/full{ + dir = 1 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"dQ" = ( +/turf/simulated/floor/holofloor/beach/sand, +/area/holodeck/source_beach) +"dR" = ( +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_thunderdomecourt) +"dS" = ( +/obj/structure/holostool, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"dU" = ( +/obj/structure/table/holotable, +/obj/machinery/readybutton{ + pixel_y = 0 + }, +/obj/effect/floor_decal/corner/red/full{ + dir = 8 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"dV" = ( +/obj/structure/table/holotable, +/obj/item/clothing/head/helmet/thunderdome, +/obj/item/clothing/suit/armor/tdome/red, +/obj/item/clothing/under/color/red, +/obj/item/weapon/holo/esword/red, +/obj/effect/floor_decal/corner/red{ + dir = 5 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"dW" = ( +/obj/structure/table/holotable, +/obj/effect/floor_decal/corner/red/full{ + dir = 1 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"dX" = ( +/obj/structure/table/holotable, +/obj/item/clothing/gloves/boxing/hologlove, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_boxingcourt) +"dY" = ( +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_boxingcourt) +"dZ" = ( +/turf/unsimulated/wall, +/area/centcom/simulated/terminal) +"ec" = ( +/obj/effect/landmark{ + name = "Holocarp Spawn Random" + }, +/turf/simulated/floor/holofloor/space, +/area/holodeck/source_space) +"ed" = ( +/obj/structure/flora/grass/both, +/turf/simulated/floor/holofloor/snow, +/area/holodeck/source_snowfield) +"ee" = ( +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 9 + }, +/obj/effect/floor_decal/carpet{ + dir = 10 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_meetinghall) +"ef" = ( +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_meetinghall) +"eg" = ( +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 5 + }, +/obj/effect/floor_decal/carpet{ + dir = 6 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_meetinghall) +"eh" = ( +/obj/effect/floor_decal/corner/red{ + dir = 9 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"ei" = ( +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"ej" = ( +/obj/effect/floor_decal/corner/red{ + dir = 6 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"ek" = ( +/obj/effect/overlay/palmtree_r, +/turf/simulated/floor/holofloor/beach/sand, +/area/holodeck/source_beach) +"el" = ( +/obj/effect/floor_decal/corner/red{ + dir = 9 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"em" = ( +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"en" = ( +/obj/effect/floor_decal/corner/red{ + dir = 6 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"eo" = ( +/obj/structure/holostool, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_boxingcourt) +"ep" = ( +/obj/structure/flora/tree/pine, +/turf/simulated/floor/holofloor/snow, +/area/holodeck/source_snowfield) +"eq" = ( +/obj/structure/table/woodentable/holotable, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/source_meetinghall) +"es" = ( +/obj/item/clothing/glasses/sunglasses, +/turf/simulated/floor/holofloor/beach/sand, +/area/holodeck/source_beach) +"et" = ( +/obj/effect/overlay/palmtree_l, +/obj/effect/overlay/coconut, +/turf/simulated/floor/holofloor/beach/sand, +/area/holodeck/source_beach) +"eJ" = ( +/obj/structure/flora/tree/dead, +/turf/simulated/floor/holofloor/snow, +/area/holodeck/source_snowfield) +"eK" = ( +/turf/simulated/floor/holofloor/lino, +/area/holodeck/source_meetinghall) +"eL" = ( +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_meetinghall) +"eM" = ( +/obj/item/weapon/beach_ball, +/turf/simulated/floor/holofloor/beach/sand, +/area/holodeck/source_beach) +"eS" = ( +/obj/effect/floor_decal/industrial/danger, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"eT" = ( +/obj/structure/flora/grass/green, +/turf/simulated/floor/holofloor/snow, +/area/holodeck/source_snowfield) +"eU" = ( +/obj/effect/floor_decal/carpet{ + dir = 5 + }, +/obj/effect/floor_decal/carpet{ + dir = 6 + }, +/obj/effect/floor_decal/carpet{ + dir = 9 + }, +/obj/effect/floor_decal/carpet{ + dir = 10 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_meetinghall) +"eV" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 9 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_meetinghall) +"eW" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_meetinghall) +"eX" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 5 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_meetinghall) +"eY" = ( +/obj/effect/floor_decal/corner/red/full, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"eZ" = ( +/obj/effect/floor_decal/corner/red{ + dir = 10 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"fa" = ( +/obj/item/weapon/beach_ball/holoball, +/obj/effect/floor_decal/corner/red{ + dir = 10 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"fb" = ( +/obj/effect/floor_decal/corner/red/full{ + dir = 4 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"fc" = ( +/obj/item/weapon/inflatable_duck, +/turf/simulated/floor/holofloor/beach/sand, +/area/holodeck/source_beach) +"fd" = ( +/obj/structure/window/reinforced/holowindow/disappearing, +/obj/effect/floor_decal/corner/red/full, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"fe" = ( +/obj/structure/window/reinforced/holowindow/disappearing, +/obj/effect/floor_decal/corner/red{ + dir = 10 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"ff" = ( +/obj/structure/window/reinforced/holowindow/disappearing, +/obj/effect/floor_decal/corner/red/full{ + dir = 4 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"fn" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_meetinghall) +"fo" = ( +/obj/structure/holostool, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_meetinghall) +"fp" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_meetinghall) +"fq" = ( +/obj/effect/floor_decal/corner/green/full{ + dir = 8 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"fr" = ( +/obj/effect/floor_decal/corner/green{ + dir = 5 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"fs" = ( +/obj/effect/floor_decal/corner/green/full{ + dir = 1 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"ft" = ( +/obj/structure/window/reinforced/holowindow/disappearing{ + dir = 1 + }, +/obj/effect/floor_decal/corner/green/full{ + dir = 8 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"fu" = ( +/obj/structure/window/reinforced/holowindow/disappearing{ + dir = 1 + }, +/obj/effect/floor_decal/corner/green{ + dir = 5 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"fv" = ( +/obj/structure/window/reinforced/holowindow/disappearing{ + dir = 1 + }, +/obj/effect/floor_decal/corner/green/full{ + dir = 1 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"fz" = ( +/obj/effect/floor_decal/corner/green{ + dir = 9 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"fA" = ( +/obj/effect/floor_decal/corner/green{ + dir = 6 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"fB" = ( +/obj/effect/floor_decal/corner/green{ + dir = 9 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"fC" = ( +/obj/effect/floor_decal/corner/green{ + dir = 6 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"fG" = ( +/obj/structure/flora/grass/brown, +/turf/simulated/floor/holofloor/snow, +/area/holodeck/source_snowfield) +"fH" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/turf/simulated/floor/holofloor/carpet{ + dir = 8 + }, +/area/holodeck/source_meetinghall) +"fJ" = ( +/obj/effect/floor_decal/corner/green{ + dir = 10 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"fK" = ( +/turf/unsimulated/beach/sand{ + icon_state = "beach" + }, +/area/holodeck/source_beach) +"fO" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 10 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_meetinghall) +"fP" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_meetinghall) +"fQ" = ( +/obj/structure/holostool, +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 6 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/source_meetinghall) +"fR" = ( +/turf/simulated/floor/holofloor/beach/water, +/area/holodeck/source_beach) +"fS" = ( +/obj/effect/floor_decal/corner/green/full, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"fT" = ( +/obj/structure/holohoop{ + dir = 1 + }, +/obj/effect/floor_decal/corner/green{ + dir = 10 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"fU" = ( +/obj/effect/floor_decal/corner/green/full{ + dir = 4 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_basketball) +"fV" = ( +/obj/structure/table/holotable, +/obj/effect/floor_decal/corner/green/full, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"fW" = ( +/obj/structure/table/holotable, +/obj/item/clothing/head/helmet/thunderdome, +/obj/item/clothing/suit/armor/tdome/green, +/obj/item/clothing/under/color/green, +/obj/item/weapon/holo/esword/green, +/obj/effect/floor_decal/corner/green{ + dir = 10 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"fX" = ( +/obj/structure/table/holotable, +/obj/machinery/readybutton{ + pixel_y = 0 + }, +/obj/effect/floor_decal/corner/green/full{ + dir = 4 + }, +/turf/simulated/floor/holofloor/tiled, +/area/holodeck/source_thunderdomecourt) +"fY" = ( +/obj/structure/table/holotable, +/obj/item/clothing/gloves/boxing/hologlove{ + icon_state = "boxinggreen"; + item_state = "boxinggreen" + }, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/source_boxingcourt) +"fZ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/unsimulated/wall, +/area/space) +"ga" = ( +/turf/simulated/floor/holofloor/wood, +/area/holodeck/holodorm/source_basic) +"gb" = ( +/obj/structure/bed/chair/holochair{ + dir = 4 + }, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/holodorm/source_basic) +"gc" = ( +/obj/structure/table/woodentable/holotable, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/holodorm/source_basic) +"gd" = ( +/obj/structure/bed/chair/holochair{ + dir = 8 + }, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/holodorm/source_basic) +"ge" = ( +/obj/effect/overlay/palmtree_r, +/turf/simulated/floor/holofloor/beach/sand, +/area/holodeck/holodorm/source_beach) +"gf" = ( +/turf/simulated/floor/holofloor/beach/sand, +/area/holodeck/holodorm/source_beach) +"gg" = ( +/obj/effect/overlay/coconut, +/turf/simulated/floor/holofloor/beach/sand, +/area/holodeck/holodorm/source_beach) +"gh" = ( +/obj/item/clothing/glasses/sunglasses, +/turf/simulated/floor/holofloor/beach/sand, +/area/holodeck/holodorm/source_beach) +"gi" = ( +/obj/effect/overlay/palmtree_l, +/turf/simulated/floor/holofloor/beach/sand, +/area/holodeck/holodorm/source_beach) +"gj" = ( +/obj/structure/flora/grass/brown, +/obj/structure/flora/tree/dead, +/turf/simulated/floor/holofloor/snow, +/area/holodeck/holodorm/source_snow) +"gk" = ( +/turf/simulated/floor/holofloor/snow, +/area/holodeck/holodorm/source_snow) +"gl" = ( +/turf/unsimulated/beach/sand{ + icon_state = "beach" + }, +/area/holodeck/holodorm/source_beach) +"gm" = ( +/obj/effect/landmark{ + name = "Wolfgirl Spawn" + }, +/turf/simulated/floor/holofloor/snow, +/area/holodeck/holodorm/source_snow) +"gn" = ( +/obj/structure/flora/grass/brown, +/turf/simulated/floor/holofloor/snow, +/area/holodeck/holodorm/source_snow) +"go" = ( +/obj/structure/flora/grass/green, +/obj/structure/flora/tree/pine, +/turf/simulated/floor/holofloor/snow, +/area/holodeck/holodorm/source_snow) +"gq" = ( +/obj/structure/bed/holobed, +/turf/simulated/floor/holofloor/wood, +/area/holodeck/holodorm/source_basic) +"gr" = ( +/turf/simulated/floor/holofloor/beach/water, +/area/holodeck/holodorm/source_beach) +"gs" = ( +/obj/structure/flora/grass/green, +/turf/simulated/floor/holofloor/snow, +/area/holodeck/holodorm/source_snow) +"gt" = ( +/obj/structure/flora/grass/both, +/turf/simulated/floor/holofloor/snow, +/area/holodeck/holodorm/source_snow) +"gN" = ( +/obj/structure/flora/ausbushes/fullgrass, +/turf/simulated/floor/holofloor/desert, +/area/holodeck/holodorm/source_desert) +"gO" = ( +/turf/simulated/floor/holofloor/desert, +/area/holodeck/holodorm/source_desert) +"gP" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/simulated/floor/holofloor/desert, +/area/holodeck/holodorm/source_desert) +"gQ" = ( +/obj/structure/flora/ausbushes/brflowers, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/holodorm/source_garden) +"gR" = ( +/obj/structure/flora/ausbushes/ywflowers, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/holodorm/source_garden) +"gS" = ( +/turf/simulated/floor/holofloor/reinforced, +/area/holodeck/holodorm/source_off) +"gU" = ( +/obj/machinery/light, +/obj/effect/floor_decal/industrial/danger, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"hg" = ( +/obj/structure/flora/ausbushes/ywflowers, +/obj/effect/landmark{ + name = "Catgirl Spawn" + }, +/turf/simulated/floor/holofloor/grass, +/area/holodeck/holodorm/source_garden) +"hx" = ( +/turf/simulated/floor/holofloor/wood, +/area/holodeck/holodorm/source_seating) +"hy" = ( +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 9 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/holodorm/source_seating) +"hz" = ( +/obj/structure/bed/chair/holochair, +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/holodorm/source_seating) +"hA" = ( +/obj/effect/floor_decal/carpet{ + dir = 1 + }, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 5 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/holodorm/source_seating) +"hB" = ( +/obj/structure/table/holotable, +/obj/item/clothing/gloves/boxing/hologlove, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/holodorm/source_boxing) +"hC" = ( +/obj/effect/floor_decal/corner/red{ + dir = 9 + }, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/holodorm/source_boxing) +"hD" = ( +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/holodorm/source_boxing) +"hE" = ( +/obj/effect/floor_decal/corner/green{ + dir = 6 + }, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/holodorm/source_boxing) +"hF" = ( +/turf/simulated/floor/holofloor/space, +/area/holodeck/holodorm/source_space) +"hJ" = ( +/obj/structure/bed/chair/holochair{ + dir = 4 + }, +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/holodorm/source_seating) +"hK" = ( +/obj/structure/table/woodentable/holotable, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/holodorm/source_seating) +"hL" = ( +/obj/structure/bed/chair/holochair{ + dir = 8 + }, +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/holodorm/source_seating) +"hO" = ( +/obj/effect/floor_decal/carpet{ + dir = 8 + }, +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 10 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/holodorm/source_seating) +"hP" = ( +/obj/structure/bed/chair/holochair{ + dir = 1 + }, +/obj/effect/floor_decal/carpet, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/holodorm/source_seating) +"hQ" = ( +/obj/effect/floor_decal/carpet{ + dir = 4 + }, +/obj/effect/floor_decal/carpet, +/obj/effect/floor_decal/carpet{ + dir = 6 + }, +/turf/simulated/floor/holofloor/carpet, +/area/holodeck/holodorm/source_seating) +"hR" = ( +/obj/structure/table/holotable, +/obj/item/clothing/gloves/boxing/hologlove{ + icon_state = "boxinggreen"; + item_state = "boxinggreen" + }, +/turf/simulated/floor/holofloor/tiled/dark, +/area/holodeck/holodorm/source_boxing) +"iO" = ( +/obj/effect/step_trigger/teleporter/random{ + affect_ghosts = 1; + name = "escapeshuttle_leave"; + teleport_x = 25; + teleport_x_offset = 245; + teleport_y = 25; + teleport_y_offset = 245; + teleport_z = 4; + teleport_z_offset = 4 + }, +/turf/space/transit/west, +/area/space) +"iY" = ( +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"jf" = ( +/turf/space/transit/north, +/area/space) +"jQ" = ( +/obj/effect/shuttle_landmark/transit{ + base_area = /area/space; + base_turf = /turf/space/transit/east; + landmark_tag = "specops_transit"; + name = "Specops Transit" + }, +/turf/space/transit/west, +/area/space) +"kh" = ( +/obj/machinery/telecomms/relay/preset/centcom/tether, +/turf/unsimulated/floor/steel, +/area/centcom/control) +"kn" = ( +/obj/structure/fake_stairs/north/bottom{ + _stair_tag = "stairtest" + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"kr" = ( +/obj/machinery/telecomms/server/presets/centcomm, +/turf/unsimulated/floor/steel, +/area/centcom/control) +"le" = ( +/obj/effect/floor_decal/transit/orange{ + dir = 4 + }, +/obj/effect/step_trigger/lost_in_space/tram, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"mZ" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 4; + name = "thrower_escapeshuttletop(right)"; + tiles = 0 + }, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"oI" = ( +/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b, +/turf/space/transit/east, +/area/space) +"pb" = ( +/obj/machinery/telecomms/processor/preset_cent, +/turf/unsimulated/floor/steel, +/area/centcom/control) +"pu" = ( +/obj/effect/floor_decal/transit/orange{ + dir = 4 + }, +/obj/effect/transit/light{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"pF" = ( +/obj/effect/shuttle_landmark/transit{ + base_area = /area/space; + base_turf = /turf/space/transit/east; + landmark_tag = "escapepod1_transit"; + name = "Escapepod 1 Transit" + }, +/turf/space/transit/east, +/area/space) +"qn" = ( +/turf/space/transit/east, +/area/space) +"qz" = ( +/turf/space, +/turf/space/internal_edge/bottomright, +/area/space) +"qH" = ( +/obj/effect/floor_decal/transit/orange{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"rE" = ( +/obj/machinery/telecomms/bus/preset_cent, +/turf/unsimulated/floor/steel, +/area/centcom/control) +"sl" = ( +/turf/space/internal_edge/top, +/area/space) +"sF" = ( +/obj/effect/overmap/bluespace_rift, +/turf/unsimulated/map, +/area/overmap) +"tC" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel, +/area/space) +"tD" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 2; + name = "thrower_throwdown"; + stopper = 0; + tiles = 0 + }, +/turf/space/transit/east, +/area/space) +"tH" = ( +/obj/effect/floor_decal/transit/orange{ + dir = 8 + }, +/obj/effect/step_trigger/lost_in_space/tram, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"tJ" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 4; + name = "thrower_escapeshuttletop(right)"; + tiles = 0 + }, +/turf/simulated/floor/maglev{ + icon = 'icons/turf/transit_vr.dmi' + }, +/area/space) +"uc" = ( +/turf/unsimulated/wall, +/area/centcom/suppy) +"ud" = ( +/obj/machinery/status_display/supply_display, +/turf/unsimulated/wall, +/area/centcom/suppy) +"ue" = ( +/obj/structure/closet/crate, +/turf/unsimulated/floor{ + icon_state = "vault"; + dir = 1 + }, +/area/centcom/suppy) +"uf" = ( +/turf/unsimulated/floor{ + icon_state = "dark" + }, +/area/centcom/suppy) +"ug" = ( +/obj/item/weapon/paper{ + info = "You're not supposed to be here."; + name = "unnerving letter" + }, +/turf/unsimulated/floor{ + icon_state = "dark" + }, +/area/centcom/suppy) +"vi" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 2; + name = "thrower_throwdownside"; + nostop = 1; + stopper = 0; + tiles = 0 + }, +/turf/simulated/floor/maglev{ + icon = 'icons/turf/transit_vr.dmi' + }, +/area/space) +"vG" = ( +/obj/effect/step_trigger/lost_in_space/tram, +/turf/simulated/floor/maglev{ + icon = 'icons/turf/transit_vr.dmi' + }, +/area/space) +"vR" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 2; + name = "thrower_throwdownside"; + nostop = 1; + stopper = 0; + tiles = 0 + }, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"wd" = ( +/obj/structure/sign/warning/nosmoking_2, +/turf/unsimulated/wall, +/area/centcom/simulated/terminal) +"wj" = ( +/turf/space/internal_edge/left, +/area/space) +"wl" = ( +/turf/unsimulated/wall, +/area/centcom/simulated/evac) +"wn" = ( +/obj/structure/fake_stairs/south/top{ + _stair_tag = "stairtest" + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"wr" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 8; + name = "thrower_escapeshuttletop(left)"; + tiles = 0 + }, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"wy" = ( +/turf/unsimulated/wall, +/area/centcom/control) +"wZ" = ( +/turf/unsimulated/floor{ + icon_state = "sandwater" + }, +/area/beach) +"xe" = ( +/obj/machinery/account_database{ + dir = 1; + name = "CentComm Accounts database" + }, +/turf/unsimulated/floor/steel, +/area/centcom/control) +"xM" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 8 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"ya" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 4; + name = "thrower_escapeshuttletop(right)"; + tiles = 0 + }, +/turf/simulated/sky/virgo3b/south, +/area/space) +"ym" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"yA" = ( +/obj/machinery/telecomms/receiver/preset_cent, +/turf/unsimulated/floor/steel, +/area/centcom/control) +"yF" = ( +/obj/effect/floor_decal/transit/orange{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"yK" = ( +/obj/machinery/door/airlock/multi_tile/metal, +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"zb" = ( +/obj/effect/step_trigger/thrower{ + direction = 1; + name = "thrower_throwup"; + nostop = 0; + tiles = 0 + }, +/turf/space/transit/east, +/area/space) +"zv" = ( +/obj/effect/floor_decal/transit/orange{ + dir = 8 + }, +/obj/effect/transit/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"zK" = ( +/obj/machinery/door/blast/regular{ + dir = 4 + }, +/turf/simulated/floor/maglev, +/area/centcom/simulated/terminal) +"Al" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/centcom/simulated/terminal) +"Av" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 8; + name = "thrower_escapeshuttletop(left)"; + tiles = 0 + }, +/turf/simulated/floor/maglev{ + icon = 'icons/turf/transit_vr.dmi' + }, +/area/space) +"Ax" = ( +/turf/unsimulated/beach/coastline{ + density = 1; + opacity = 1 + }, +/area/beach) +"Az" = ( +/turf/unsimulated/beach/coastline, +/area/beach) +"Bw" = ( +/turf/unsimulated/beach/water, +/area/beach) +"BD" = ( +/obj/effect/overlay/palmtree_r, +/turf/unsimulated/beach/sand, +/area/beach) +"BK" = ( +/turf/space, +/turf/space/internal_edge/bottomleft, +/area/space) +"Cn" = ( +/turf/simulated/sky/virgo3b/south, +/area/space) +"Ct" = ( +/obj/machinery/ntnet_relay, +/turf/unsimulated/floor/steel, +/area/centcom/control) +"Cw" = ( +/obj/machinery/r_n_d/server/centcom, +/turf/unsimulated/floor/steel, +/area/centcom/control) +"Cy" = ( +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"Dk" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel, +/area/space) +"Dw" = ( +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/snacks/chips, +/turf/unsimulated/beach/sand, +/area/beach) +"DF" = ( +/turf/space, +/turf/space/internal_edge/topright, +/area/space) +"El" = ( +/turf/space/transit/west, +/area/space) +"ET" = ( +/turf/simulated/floor/tiled/techfloor/grid, +/area/centcom/simulated/terminal) +"Fa" = ( +/obj/structure/table/standard, +/turf/unsimulated/beach/sand, +/area/beach) +"Fp" = ( +/turf/simulated/floor/maglev, +/area/centcom/simulated/terminal) +"Fr" = ( +/obj/effect/floor_decal/transit/orange{ + dir = 4 + }, +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 2; + name = "thrower_throwdownside"; + nostop = 1; + stopper = 0; + tiles = 0 + }, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"FH" = ( +/obj/structure/bed/chair, +/obj/effect/landmark{ + name = "endgame_exit" + }, +/obj/item/toy/plushie/mouse{ + desc = "A plushie of a small fuzzy rodent."; + name = "Woodrat" + }, +/turf/unsimulated/beach/sand, +/area/beach) +"FT" = ( +/obj/effect/shuttle_landmark{ + base_area = null; + base_turf = null; + docking_controller = null; + landmark_tag = "escape_transit"; + name = "Escape Transit" + }, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"Ga" = ( +/turf/unsimulated/floor/steel, +/area/centcom/control) +"Gq" = ( +/turf/unsimulated/wall, +/area/beach) +"Gs" = ( +/turf/space, +/turf/space/transit/north, +/area/space) +"Gw" = ( +/obj/effect/overlay/palmtree_l, +/turf/unsimulated/beach/sand, +/area/beach) +"Hf" = ( +/obj/effect/shuttle_landmark/transit{ + base_area = /area/space; + base_turf = /turf/space/transit/north; + landmark_tag = "ninja_transit"; + name = "Ninja Transit" + }, +/turf/space/transit/north, +/area/space) +"Hy" = ( +/turf/unsimulated/mineral{ + icon = 'icons/turf/transit_vr.dmi'; + icon_state = "rock" + }, +/area/space) +"HQ" = ( +/obj/machinery/telecomms/broadcaster/preset_cent, +/turf/unsimulated/floor/steel, +/area/centcom/control) +"Ik" = ( +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/food/drinks/cans/cola, +/obj/item/weapon/reagent_containers/food/drinks/cans/cola, +/obj/item/weapon/reagent_containers/food/drinks/cans/cola, +/obj/item/weapon/reagent_containers/food/drinks/cans/cola, +/obj/item/weapon/reagent_containers/food/drinks/cans/cola, +/obj/item/weapon/reagent_containers/food/drinks/cans/cola, +/turf/unsimulated/beach/sand, +/area/beach) +"In" = ( +/obj/effect/shuttle_landmark/transit{ + base_area = /area/space; + base_turf = /turf/space/transit/north; + landmark_tag = "skipjack_transit"; + name = "Skipjack Transit" + }, +/turf/space/transit/north, +/area/space) +"Iq" = ( +/obj/machinery/telecomms/hub/preset_cent, +/turf/unsimulated/floor/steel, +/area/centcom/control) +"IN" = ( +/obj/effect/floor_decal/transit/orange{ + dir = 8 + }, +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 2; + name = "thrower_throwdownside"; + nostop = 1; + stopper = 0; + tiles = 0 + }, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"IR" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 2; + name = "thrower_throwdown"; + stopper = 0; + tiles = 0 + }, +/turf/simulated/sky/virgo3b/south, +/area/space) +"Jx" = ( +/obj/effect/floor_decal/corner_steel_grid/diagonal, +/obj/effect/floor_decal/corner_steel_grid/diagonal{ + dir = 4 + }, +/obj/effect/floor_decal/industrial/danger{ + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/terminal) +"Jz" = ( +/obj/effect/step_trigger/teleporter/random{ + affect_ghosts = 1; + name = "escapeshuttle_leave"; + teleport_x = 25; + teleport_x_offset = 245; + teleport_y = 25; + teleport_y_offset = 245; + teleport_z = 4; + teleport_z_offset = 4 + }, +/turf/space/transit/north, +/area/space) +"JL" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 2; + name = "thrower_throwdown"; + nostop = 1; + stopper = 0; + tiles = 0 + }, +/turf/space/transit/north, +/area/space) +"JR" = ( +/obj/machinery/door/blast/regular{ + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "TelelockdownC"; + name = "Security Doors"; + opacity = 0 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 10 + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/living) +"JW" = ( +/turf/unsimulated/beach/water{ + density = 1; + opacity = 1 + }, +/area/beach) +"JZ" = ( +/turf/space/internal_edge/right, +/area/space) +"Kj" = ( +/obj/effect/shuttle_landmark/transit{ + base_area = /area/space; + base_turf = /turf/simulated/sky/virgo3b/south; + landmark_tag = "tether_backup_transit"; + name = "Tether Backup Transit" + }, +/turf/simulated/sky/virgo3b/south, +/area/space) +"Lg" = ( +/obj/effect/floor_decal/industrial/warning{ + icon_state = "warning"; + dir = 5 + }, +/turf/simulated/floor/tiled/steel, +/area/space) +"Lz" = ( +/obj/effect/step_trigger/teleporter/planetary_fall/virgo3b, +/turf/simulated/sky/virgo3b/south, +/area/space) +"Mb" = ( +/obj/effect/transit/light{ + dir = 8 + }, +/turf/unsimulated/mineral{ + icon = 'icons/turf/transit_vr.dmi'; + icon_state = "rock" + }, +/area/space) +"ME" = ( +/obj/machinery/computer/rdservercontrol{ + name = "Master R&D Server Controller"; + icon_state = "computer"; + dir = 1; + badmin = 1 + }, +/turf/unsimulated/floor/steel, +/area/centcom/control) +"MK" = ( +/obj/machinery/light{ + dir = 4; + icon_state = "tube1"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"ML" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + name = "thrower_leftnostop" + }, +/turf/space/transit/east, +/area/space) +"Nj" = ( +/obj/item/clothing/head/collectable/paper, +/turf/unsimulated/beach/sand, +/area/beach) +"No" = ( +/obj/item/weapon/beach_ball, +/turf/unsimulated/beach/sand, +/area/beach) +"Nq" = ( +/turf/simulated/floor/tiled, +/area/centcom/simulated/terminal) +"Nr" = ( +/obj/machinery/cryopod/robot/door/gateway, +/obj/effect/floor_decal/industrial/warning{ + icon_state = "warning"; + dir = 8 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/living) +"Nt" = ( +/turf/unsimulated/beach/sand{ + density = 1; + opacity = 1 + }, +/area/beach) +"Oj" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 8; + name = "thrower_escapeshuttletop(left)"; + tiles = 0 + }, +/turf/simulated/sky/virgo3b/south, +/area/space) +"OR" = ( +/turf/simulated/shuttle/wall, +/area/shuttle/escape) +"OY" = ( +/turf/unsimulated/map, +/area/overmap) +"Pe" = ( +/obj/structure/grille, +/obj/structure/shuttle/window, +/turf/simulated/shuttle/plating, +/area/shuttle/escape) +"Pf" = ( +/obj/structure/table/woodentable{ + dir = 5 + }, +/obj/structure/flora/pottedplant{ + pixel_y = 8 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/terminal) +"Pg" = ( +/turf/simulated/shuttle/wall/hard_corner, +/area/shuttle/escape) +"Pi" = ( +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 2; + name = "thrower_throwdown"; + nostop = 1; + stopper = 0; + tiles = 0 + }, +/turf/space/transit/west, +/area/space) +"Pq" = ( +/turf/simulated/floor/maglev{ + icon = 'icons/turf/transit_vr.dmi' + }, +/area/space) +"Qa" = ( +/obj/structure/closet/hydrant{ + pixel_x = -30; + pixel_y = 0 + }, +/obj/item/weapon/storage/firstaid/o2{ + layer = 2.8; + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/weapon/storage/firstaid/fire, +/obj/item/weapon/storage/firstaid/toxin, +/obj/structure/bed/chair/shuttle, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"QW" = ( +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"QX" = ( +/obj/structure/bed/chair/shuttle, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"QY" = ( +/obj/structure/flora/pottedplant{ + icon_state = "plant-21" + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/terminal) +"Rc" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/centcom/simulated/terminal) +"Rd" = ( +/obj/structure/table/standard, +/obj/random/maintenance/clean, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"Re" = ( +/obj/structure/table/standard, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"Rf" = ( +/obj/machinery/status_display{ + pixel_y = 30 + }, +/obj/structure/table/standard, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"Rg" = ( +/obj/structure/bed/chair/shuttle{ + dir = 1 + }, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"Rh" = ( +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'HIGH VOLTAGE'"; + icon_state = "shock"; + name = "HIGH VOLTAGE" + }, +/turf/unsimulated/wall, +/area/centcom/simulated/terminal) +"Ri" = ( +/obj/machinery/door/airlock/glass_external{ + frequency = 1380; + icon_state = "door_locked"; + id_tag = "escape_shuttle_hatch_station"; + locked = 1; + name = "Shuttle Hatch" + }, +/turf/simulated/shuttle/floor/yellow, +/area/shuttle/escape) +"Rj" = ( +/obj/machinery/door/airlock/glass_external{ + frequency = 1380; + icon_state = "door_locked"; + id_tag = "escape_shuttle_hatch_offsite"; + locked = 1; + name = "Shuttle Hatch" + }, +/turf/simulated/shuttle/floor/yellow, +/area/shuttle/escape) +"Rk" = ( +/obj/structure/bed/chair/shuttle, +/obj/structure/closet/walllocker/emerglocker{ + pixel_x = -28 + }, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"Rl" = ( +/obj/structure/bed/chair/shuttle, +/obj/structure/closet/walllocker/emerglocker{ + pixel_x = 28 + }, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"Rm" = ( +/obj/structure/table/standard, +/obj/random/junk, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"Ro" = ( +/obj/structure/table/standard, +/obj/random/maintenance/clean, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"Rq" = ( +/obj/machinery/door/blast/regular{ + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "TelelockdownC"; + name = "Security Doors"; + opacity = 0 + }, +/obj/effect/floor_decal/industrial/warning, +/obj/machinery/door/firedoor, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/living) +"Rr" = ( +/obj/structure/flora/pottedplant{ + icon_state = "plant-22" + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"Rs" = ( +/obj/structure/sign/nanotrasen, +/obj/effect/shuttle_landmark{ + base_area = /area/centcom/simulated/terminal; + base_turf = /turf/simulated/floor/tiled/techfloor/grid; + docking_controller = null; + landmark_tag = "escape_cc"; + name = "Escape Centcom" + }, +/turf/simulated/shuttle/wall, +/area/shuttle/escape) +"Rt" = ( +/obj/structure/sign/nanotrasen, +/turf/simulated/shuttle/wall, +/area/shuttle/escape) +"Ru" = ( +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"Rv" = ( +/obj/machinery/door/blast/regular{ + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "TelelockdownC"; + name = "Security Doors"; + opacity = 0 + }, +/obj/effect/floor_decal/industrial/warning{ + dir = 6 + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/living) +"Rw" = ( +/obj/structure/table/standard, +/obj/item/clothing/head/beret/nanotrasen, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"Rx" = ( +/obj/structure/table/standard, +/obj/random/plushie, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"Ry" = ( +/obj/structure/bed/chair/shuttle{ + dir = 1 + }, +/obj/structure/closet/walllocker/emerglocker{ + pixel_x = -28 + }, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"Rz" = ( +/obj/structure/bed/chair/shuttle{ + dir = 1 + }, +/obj/structure/closet/walllocker/emerglocker{ + pixel_x = 28 + }, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"RA" = ( +/obj/structure/grille, +/obj/structure/shuttle/window, +/turf/simulated/shuttle/floor/white, +/area/shuttle/escape) +"RC" = ( +/obj/effect/floor_decal/industrial/outline/blue, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"RD" = ( +/obj/structure/bed/chair/shuttle{ + dir = 1 + }, +/obj/machinery/light, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"RE" = ( +/obj/effect/floor_decal/industrial/outline/blue, +/obj/machinery/light, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"RF" = ( +/obj/random/junk, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"RG" = ( +/obj/structure/bed/chair/shuttle{ + dir = 1 + }, +/obj/random/soap, +/turf/simulated/shuttle/floor/white{ + color = "#cccccc" + }, +/area/shuttle/escape) +"RV" = ( +/obj/effect/step_trigger/teleporter/random{ + affect_ghosts = 1; + name = "escapeshuttle_leave"; + teleport_x = 25; + teleport_x_offset = 245; + teleport_y = 25; + teleport_y_offset = 245; + teleport_z = 6; + teleport_z_offset = 6 + }, +/turf/simulated/sky/virgo3b/south, +/area/space) +"Sh" = ( +/obj/effect/floor_decal/transit/orange{ + dir = 4 + }, +/obj/effect/transit/light{ + dir = 4 + }, +/obj/effect/step_trigger/thrower{ + affect_ghosts = 1; + direction = 2; + name = "thrower_throwdownside"; + nostop = 1; + stopper = 0; + tiles = 0 + }, +/turf/simulated/floor/tiled/techfloor/grid{ + icon = 'icons/turf/transit_vr.dmi'; + initial_flooring = null; + icon_state = "techfloor_grid" + }, +/area/space) +"Sl" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 8 + }, +/obj/machinery/camera/network/crescent{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/centcom/simulated/terminal) +"Sm" = ( +/turf/simulated/shuttle/wall/alien/blue/hard_corner, +/area/unknown/dorm4) +"Sn" = ( +/turf/simulated/shuttle/wall/alien/blue, +/area/unknown/dorm4) +"So" = ( +/obj/machinery/recharge_station, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm4) +"Sp" = ( +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm4) +"Sq" = ( +/obj/structure/toilet, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm4) +"Sr" = ( +/obj/machinery/shower{ + pixel_y = 13 + }, +/obj/structure/curtain/open/shower, +/obj/effect/floor_decal/steeldecal/steel_decals10{ + dir = 5 + }, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm4) +"Ss" = ( +/obj/machinery/door/airlock/alien/blue/public, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm4) +"Su" = ( +/obj/structure/closet/alien, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm4) +"Sw" = ( +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm4) +"Sx" = ( +/obj/structure/fans, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm4) +"Sz" = ( +/obj/machinery/smartfridge/survival_pod, +/obj/item/weapon/storage/mre/menu11, +/obj/item/weapon/storage/mre/menu11, +/obj/item/weapon/storage/mre/menu13, +/obj/item/weapon/storage/mre/menu13, +/obj/item/weapon/storage/mre/menu10, +/obj/item/weapon/storage/mre/menu10, +/obj/item/weapon/storage/mre/menu9, +/obj/item/weapon/storage/mre/menu9, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/towel/random, +/obj/item/weapon/towel/random, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm4) +"SA" = ( +/obj/machinery/sleeper/survival_pod, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm4) +"SB" = ( +/obj/structure/table/survival_pod, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm4) +"SC" = ( +/obj/item/device/perfect_tele_beacon/stationary{ + tele_name = "Unknown"; + tele_network = "unkfour" + }, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm4) +"SD" = ( +/obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/hopdouble, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm4) +"SE" = ( +/obj/structure/prop/alien/computer/hybrid{ + dir = 8 + }, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm4) +"SF" = ( +/obj/structure/prop/alien/dispenser, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm4) +"SG" = ( +/obj/machinery/door/blast/regular{ + dir = 4 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/centcom/simulated/terminal) +"SH" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/terminal) +"SK" = ( +/obj/structure/closet/secure_closet/personal, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm4) +"SN" = ( +/obj/structure/bed/chair/comfy/black, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm4) +"SO" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 4 + }, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm4) +"SP" = ( +/obj/structure/table/alien/blue, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm4) +"SQ" = ( +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/teleport/hub, +/turf/simulated/shuttle/floor/voidcraft, +/area/unknown/dorm4) +"SR" = ( +/obj/machinery/teleport/station, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm4) +"SS" = ( +/obj/machinery/computer/teleporter{ + dir = 1 + }, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm4) +"ST" = ( +/obj/structure/prop/alien/power, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm4) +"SV" = ( +/obj/effect/floor_decal/steeldecal/steel_decals5{ + dir = 8 + }, +/obj/effect/floor_decal/steeldecal/steel_decals9{ + dir = 1 + }, +/obj/effect/floor_decal/steeldecal/steel_decals9{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"SW" = ( +/obj/item/device/perfect_tele_beacon/stationary{ + tele_name = "Transfer"; + tele_network = "centcom" + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/living) +"SX" = ( +/turf/simulated/shuttle/wall/alien/blue/hard_corner, +/area/unknown/dorm3) +"SY" = ( +/turf/simulated/shuttle/wall/alien/blue, +/area/unknown/dorm3) +"SZ" = ( +/obj/machinery/recharge_station, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm3) +"Ta" = ( +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm3) +"Tb" = ( +/obj/structure/toilet, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm3) +"Tc" = ( +/obj/machinery/shower{ + pixel_y = 13 + }, +/obj/structure/curtain/open/shower, +/obj/effect/floor_decal/steeldecal/steel_decals10{ + dir = 5 + }, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm3) +"Td" = ( +/obj/machinery/door/airlock/alien/blue/public, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm3) +"Tf" = ( +/obj/machinery/cryopod/robot/door/gateway, +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/living) +"Th" = ( +/obj/effect/floor_decal/industrial/warning{ + icon_state = "warning"; + dir = 8 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/living) +"Ti" = ( +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/living) +"Tj" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/living) +"Tk" = ( +/obj/structure/closet/alien, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm3) +"Tl" = ( +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm3) +"Tm" = ( +/obj/structure/fans, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm3) +"Tn" = ( +/obj/structure/table/standard, +/obj/item/clothing/under/color/rainbow, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/head/collectable/petehat{ + pixel_y = 5 + }, +/turf/unsimulated/beach/sand, +/area/beach) +"To" = ( +/obj/machinery/smartfridge/survival_pod, +/obj/item/weapon/storage/mre/menu11, +/obj/item/weapon/storage/mre/menu11, +/obj/item/weapon/storage/mre/menu13, +/obj/item/weapon/storage/mre/menu13, +/obj/item/weapon/storage/mre/menu10, +/obj/item/weapon/storage/mre/menu10, +/obj/item/weapon/storage/mre/menu9, +/obj/item/weapon/storage/mre/menu9, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/towel/random, +/obj/item/weapon/towel/random, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm3) +"Tp" = ( +/obj/machinery/sleeper/survival_pod, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm3) +"Tq" = ( +/obj/structure/table/survival_pod, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm3) +"Tr" = ( +/obj/item/device/perfect_tele_beacon/stationary{ + tele_name = "Unknown"; + tele_network = "unkthree" + }, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm3) +"Ts" = ( +/obj/effect/overlay/coconut, +/turf/unsimulated/beach/sand, +/area/beach) +"Tt" = ( +/obj/structure/bed/double/padded, +/obj/item/weapon/bedsheet/hopdouble, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm3) +"Tu" = ( +/obj/structure/prop/alien/computer/hybrid{ + dir = 8 + }, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm3) +"Tx" = ( +/obj/structure/prop/alien/dispenser, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm3) +"Ty" = ( +/obj/structure/closet/secure_closet/personal, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm3) +"Tz" = ( +/obj/structure/bed/chair/comfy/black, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm3) +"TA" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 4 + }, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm3) +"TB" = ( +/obj/structure/table/alien/blue, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm3) +"TC" = ( +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/teleport/hub, +/turf/simulated/shuttle/floor/voidcraft, +/area/unknown/dorm3) +"TD" = ( +/obj/machinery/teleport/station, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm3) +"TE" = ( +/obj/machinery/computer/teleporter{ + dir = 1 + }, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm3) +"TF" = ( +/obj/structure/bed/chair, +/obj/effect/landmark{ + name = "endgame_exit" + }, +/turf/unsimulated/beach/sand, +/area/beach) +"TG" = ( +/obj/effect/landmark{ + name = "endgame_exit" + }, +/turf/unsimulated/beach/sand, +/area/beach) +"TH" = ( +/obj/structure/prop/alien/power, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm3) +"TI" = ( +/obj/effect/wingrille_spawn/reinforced/crescent, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plating, +/area/centcom/simulated/terminal) +"TJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/multi_tile/glass, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"TK" = ( +/turf/simulated/shuttle/wall/alien/hard_corner, +/area/unknown/dorm2) +"TM" = ( +/turf/simulated/shuttle/wall/alien, +/area/unknown/dorm2) +"TN" = ( +/obj/machinery/recharge_station, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm2) +"TP" = ( +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm2) +"TQ" = ( +/obj/structure/toilet, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm2) +"TR" = ( +/obj/machinery/shower{ + pixel_y = 13 + }, +/obj/structure/curtain/open/shower, +/obj/effect/floor_decal/steeldecal/steel_decals10{ + dir = 5 + }, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm2) +"TS" = ( +/obj/machinery/door/airlock/alien/public, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm2) +"TT" = ( +/obj/structure/closet/alien, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm2) +"TU" = ( +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm2) +"TV" = ( +/obj/structure/fans, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm2) +"TW" = ( +/obj/machinery/smartfridge/survival_pod, +/obj/item/weapon/storage/mre/menu11, +/obj/item/weapon/storage/mre/menu11, +/obj/item/weapon/storage/mre/menu13, +/obj/item/weapon/storage/mre/menu13, +/obj/item/weapon/storage/mre/menu10, +/obj/item/weapon/storage/mre/menu10, +/obj/item/weapon/storage/mre/menu9, +/obj/item/weapon/storage/mre/menu9, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/towel/random, +/obj/item/weapon/towel/random, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm2) +"TX" = ( +/obj/machinery/sleeper/survival_pod, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm2) +"TY" = ( +/obj/machinery/door/firedoor, +/turf/unsimulated/floor/steel, +/area/centcom/simulated/terminal) +"TZ" = ( +/obj/effect/floor_decal/industrial/warning/dust/corner, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Ua" = ( +/obj/structure/table/survival_pod, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm2) +"Ub" = ( +/obj/item/device/perfect_tele_beacon/stationary{ + tele_name = "Unknown"; + tele_network = "unktwo" + }, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm2) +"Uc" = ( +/obj/item/weapon/bedsheet/rddouble, +/obj/structure/bed/double/padded, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm2) +"Ud" = ( +/obj/structure/prop/alien/computer{ + dir = 8 + }, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm2) +"Uf" = ( +/obj/structure/prop/alien/dispenser, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm2) +"Ug" = ( +/obj/structure/closet/secure_closet/personal, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm2) +"Uh" = ( +/obj/structure/bed/chair/comfy/black, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm2) +"Ui" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 4 + }, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm2) +"Uj" = ( +/obj/structure/table/alien, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm2) +"Uk" = ( +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/teleport/hub, +/turf/simulated/shuttle/floor/voidcraft, +/area/unknown/dorm2) +"Ul" = ( +/obj/machinery/teleport/station, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm2) +"Um" = ( +/obj/machinery/computer/teleporter{ + dir = 1 + }, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm2) +"Uo" = ( +/obj/structure/prop/alien/power, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm2) +"Up" = ( +/obj/effect/floor_decal/industrial/warning/dust, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Ur" = ( +/obj/effect/floor_decal/rust, +/obj/effect/floor_decal/industrial/warning/dust, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Us" = ( +/obj/effect/floor_decal/industrial/warning/dust/corner{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Ut" = ( +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Uu" = ( +/obj/effect/floor_decal/industrial/warning/dust, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Uv" = ( +/obj/effect/floor_decal/industrial/outline, +/obj/structure/bed/chair, +/turf/unsimulated/floor/steel, +/area/centcom/simulated/main_hall) +"Uw" = ( +/turf/simulated/shuttle/wall/alien/hard_corner, +/area/unknown/dorm1) +"Ux" = ( +/turf/simulated/shuttle/wall/alien, +/area/unknown/dorm1) +"Uz" = ( +/obj/machinery/recharge_station, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm1) +"UA" = ( +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm1) +"UC" = ( +/obj/structure/toilet, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm1) +"UD" = ( +/obj/machinery/shower{ + pixel_y = 13 + }, +/obj/structure/curtain/open/shower, +/obj/effect/floor_decal/steeldecal/steel_decals10{ + dir = 5 + }, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm1) +"UE" = ( +/obj/effect/floor_decal/industrial/outline, +/obj/structure/bed/chair, +/obj/machinery/status_display{ + pixel_y = 29 + }, +/turf/unsimulated/floor/steel, +/area/centcom/simulated/main_hall) +"UF" = ( +/obj/machinery/door/airlock/alien/public, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm1) +"UG" = ( +/obj/structure/closet/alien, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm1) +"UH" = ( +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm1) +"UI" = ( +/obj/structure/fans, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm1) +"UJ" = ( +/obj/machinery/smartfridge/survival_pod, +/obj/item/weapon/storage/mre/menu11, +/obj/item/weapon/storage/mre/menu11, +/obj/item/weapon/storage/mre/menu13, +/obj/item/weapon/storage/mre/menu13, +/obj/item/weapon/storage/mre/menu10, +/obj/item/weapon/storage/mre/menu10, +/obj/item/weapon/storage/mre/menu9, +/obj/item/weapon/storage/mre/menu9, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/storage/mre/random, +/obj/item/weapon/towel/random, +/obj/item/weapon/towel/random, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm1) +"UK" = ( +/obj/machinery/sleeper/survival_pod, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm1) +"UM" = ( +/obj/structure/table/survival_pod, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm1) +"UN" = ( +/obj/item/device/perfect_tele_beacon/stationary{ + tele_name = "Unknown"; + tele_network = "unkone" + }, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm1) +"UP" = ( +/obj/item/weapon/bedsheet/rddouble, +/obj/structure/bed/double/padded, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm1) +"UQ" = ( +/obj/structure/prop/alien/computer{ + dir = 8 + }, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm1) +"UR" = ( +/obj/structure/prop/alien/dispenser, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm1) +"US" = ( +/obj/structure/closet/secure_closet/personal, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm1) +"UT" = ( +/obj/structure/bed/chair/comfy/black, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm1) +"UU" = ( +/obj/structure/bed/chair/comfy/black{ + dir = 4 + }, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm1) +"UV" = ( +/obj/structure/table/alien, +/turf/simulated/shuttle/floor/alien, +/area/unknown/dorm1) +"UW" = ( +/obj/effect/floor_decal/industrial/hatch/yellow, +/obj/machinery/teleport/hub, +/turf/simulated/shuttle/floor/voidcraft, +/area/unknown/dorm1) +"UX" = ( +/obj/machinery/teleport/station, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm1) +"UY" = ( +/obj/machinery/computer/teleporter{ + dir = 1 + }, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm1) +"UZ" = ( +/obj/structure/prop/alien/power, +/turf/simulated/shuttle/floor/alienplating, +/area/unknown/dorm1) +"Va" = ( +/obj/effect/floor_decal/rust/steel_decals_rusted2, +/obj/effect/floor_decal/industrial/warning/dust, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Vb" = ( +/obj/machinery/recharge_station, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/bathroom) +"Vc" = ( +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/bathroom) +"Vd" = ( +/turf/unsimulated/wall, +/area/centcom/simulated/medical) +"Ve" = ( +/obj/effect/wingrille_spawn/reinforced/crescent, +/obj/structure/sign/department/medbay, +/turf/unsimulated/floor{ + icon_state = "plating"; + name = "plating" + }, +/area/centcom/simulated/medical) +"Vf" = ( +/obj/machinery/door/airlock{ + name = "Unit 4" + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/bathroom) +"Vg" = ( +/turf/unsimulated/wall, +/area/centcom/simulated/living) +"Vh" = ( +/obj/effect/floor_decal/corner_steel_grid/diagonal, +/obj/effect/floor_decal/corner_steel_grid/diagonal{ + dir = 4 + }, +/obj/effect/floor_decal/industrial/danger{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/terminal) +"Vi" = ( +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Vj" = ( +/turf/simulated/floor/tiled/steel, +/area/shuttle/large_escape_pod2/centcom{ + base_turf = /turf/simulated/floor/tiled/steel_dirty/virgo3b + }) +"Vk" = ( +/turf/unsimulated/wall, +/area/centcom/simulated/bathroom) +"Vl" = ( +/obj/structure/sign/warning{ + name = "\improper STAND AWAY FROM TRACK EDGE" + }, +/turf/unsimulated/wall, +/area/centcom/simulated/living) +"Vm" = ( +/obj/effect/floor_decal/rust, +/turf/simulated/floor/tiled/steel, +/area/shuttle/large_escape_pod2/centcom{ + base_turf = /turf/simulated/floor/tiled/steel_dirty/virgo3b + }) +"Vn" = ( +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 10 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Vo" = ( +/obj/machinery/door/blast/regular{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Vp" = ( +/obj/effect/floor_decal/rust/part_rusted3, +/obj/effect/floor_decal/steeldecal/steel_decals6{ + dir = 9 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Vq" = ( +/obj/effect/floor_decal/rust/part_rusted3, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Vr" = ( +/obj/effect/floor_decal/rust, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Vs" = ( +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Vt" = ( +/obj/effect/floor_decal/rust/mono_rusted3, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Vu" = ( +/turf/unsimulated/wall, +/area/centcom/simulated/main_hall) +"Vv" = ( +/obj/machinery/door/airlock/multi_tile/glass{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/unsimulated/floor/steel, +/area/centcom/simulated/terminal) +"Vw" = ( +/obj/machinery/door/firedoor, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"Vy" = ( +/obj/machinery/door/airlock{ + name = "Unit 3" + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/bathroom) +"Vz" = ( +/obj/machinery/light/small{ + dir = 8; + pixel_y = 0 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/bathroom) +"VB" = ( +/obj/effect/floor_decal/sign/dock/one, +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"VC" = ( +/turf/unsimulated/beach/sand, +/area/beach) +"VD" = ( +/obj/effect/floor_decal/corner_steel_grid/diagonal, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"VE" = ( +/obj/effect/shuttle_landmark{ + base_area = /area/centcom/simulated/evac; + base_turf = /turf/unsimulated/floor/steel; + docking_controller = null; + landmark_tag = "escapepod1_cc"; + name = "Centcom Recovery Area" + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"VF" = ( +/obj/effect/floor_decal/sign/dock/two, +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 8 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"VI" = ( +/turf/unsimulated/wall, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"VJ" = ( +/obj/effect/floor_decal/rust, +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"VK" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/multi_tile/glass, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/restaurant) +"VL" = ( +/obj/machinery/door/firedoor, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/restaurant) +"VM" = ( +/turf/unsimulated/wall, +/area/centcom/simulated/restaurant) +"VN" = ( +/obj/effect/floor_decal/corner_steel_grid/diagonal, +/turf/simulated/floor/tiled/steel, +/area/shuttle/large_escape_pod2/centcom{ + base_turf = /turf/simulated/floor/tiled/steel_dirty/virgo3b + }) +"VO" = ( +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 9 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"VP" = ( +/obj/effect/floor_decal/industrial/warning/dust/corner{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"VQ" = ( +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"VR" = ( +/obj/structure/bed/chair/wood/wings, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"VS" = ( +/obj/effect/floor_decal/corner_steel_grid/diagonal, +/obj/effect/floor_decal/industrial/warning/dust/corner{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"VU" = ( +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"VV" = ( +/obj/effect/floor_decal/rust, +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"VW" = ( +/turf/space, +/turf/space/internal_edge/topleft, +/area/space) +"VX" = ( +/obj/effect/floor_decal/industrial/warning/dust/corner{ + dir = 4 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"VY" = ( +/obj/structure/closet/crate/bin, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"VZ" = ( +/obj/structure/bed/chair/wood/wings{ + icon_state = "wooden_chair_wings"; + dir = 4 + }, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Wb" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/pastatomato, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Wc" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/meatballspagetti, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Wd" = ( +/obj/structure/bed/chair/wood/wings{ + icon_state = "wooden_chair_wings"; + dir = 8 + }, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"We" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/fries, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Wh" = ( +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/effect/floor_decal/steeldecal/steel_decals6{ + dir = 9 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Wi" = ( +/obj/machinery/door/airlock{ + name = "Unisex Restrooms" + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/bathroom) +"Wj" = ( +/obj/effect/blocker, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/living) +"Wk" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/cheeseburger{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/weapon/reagent_containers/food/snacks/cheeseburger, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Wl" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/kitsuneudon, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Wm" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/lasagna, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Wo" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/hotdog, +/obj/item/weapon/reagent_containers/food/snacks/hotdog{ + pixel_x = -5; + pixel_y = -3 + }, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Wp" = ( +/obj/machinery/cryopod/robot/door/dorms, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/living) +"Wq" = ( +/obj/effect/floor_decal/steeldecal/steel_decals9{ + dir = 8 + }, +/obj/effect/floor_decal/steeldecal/steel_decals9{ + dir = 1 + }, +/obj/machinery/computer/cryopod/dorms{ + name = "Company Property Retention System"; + pixel_x = 0; + pixel_y = 32 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/living) +"Ws" = ( +/obj/effect/floor_decal/steeldecal/steel_decals9{ + dir = 8 + }, +/obj/effect/floor_decal/steeldecal/steel_decals9{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/living) +"Wt" = ( +/obj/machinery/porta_turret/crescent{ + density = 1 + }, +/obj/effect/floor_decal/industrial/hatch/yellow, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Wu" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/bigbiteburger, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Wv" = ( +/obj/effect/floor_decal/industrial/outline, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Wz" = ( +/obj/structure/bed/chair/wood/wings{ + icon_state = "wooden_chair_wings"; + dir = 1 + }, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"WA" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/grilledcheese, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"WB" = ( +/obj/effect/wingrille_spawn/reinforced/crescent, +/turf/simulated/floor/plating, +/area/centcom/simulated/restaurant) +"WC" = ( +/obj/effect/wingrille_spawn/reinforced/crescent, +/turf/simulated/floor/plating, +/area/centcom/simulated/medical) +"WD" = ( +/obj/effect/overlay/palmtree_r, +/obj/effect/overlay/coconut, +/turf/unsimulated/beach/sand, +/area/beach) +"WE" = ( +/obj/effect/wingrille_spawn/reinforced/crescent, +/obj/machinery/door/blast/regular{ + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "FrontlockC2"; + name = "Security Door"; + opacity = 0 + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plating, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"WF" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/meatballsoup, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"WH" = ( +/obj/item/weapon/stool/padded, +/turf/simulated/floor/wood, +/area/centcom/simulated/bar) +"WI" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/roastbeef, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"WJ" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor/northleft{ + req_access = list(63); + req_one_access = list(1) + }, +/obj/item/weapon/paper_bin{ + pixel_x = 1; + pixel_y = 9 + }, +/obj/item/weapon/pen, +/obj/machinery/door/blast/regular{ + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "FrontlockC2"; + name = "Security Door"; + opacity = 0 + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"WK" = ( +/obj/structure/table/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window/brigdoor/northright{ + req_access = list(63); + req_one_access = list(1) + }, +/obj/machinery/door/blast/regular{ + density = 0; + dir = 4; + icon_state = "pdoor0"; + id = "FrontlockC2"; + name = "Security Door"; + opacity = 0 + }, +/obj/machinery/computer/skills, +/obj/machinery/door/firedoor, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"WL" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/meatsteak, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"WN" = ( +/obj/structure/bed/chair/wood/wings{ + icon_state = "wooden_chair_wings"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"WO" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/drinks/bottle/cola, +/turf/simulated/floor/wood, +/area/centcom/simulated/bar) +"WP" = ( +/obj/structure/table/woodentable, +/obj/machinery/cash_register/civilian, +/turf/simulated/floor/wood, +/area/centcom/simulated/bar) +"WQ" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/drinks/bottle/space_mountain_wind, +/turf/simulated/floor/wood, +/area/centcom/simulated/bar) +"WR" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/snacks/toastedsandwich{ + pixel_w = 0; + pixel_x = 0; + pixel_y = 10 + }, +/turf/simulated/floor/wood, +/area/centcom/simulated/bar) +"WS" = ( +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"WT" = ( +/obj/structure/bed/chair, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"WU" = ( +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/spray/cleaner{ + desc = "Someone has crossed out the Space from Space Cleaner and written in Surgery. 'Do not remove under punishment of death!!!' is scrawled on the back."; + name = "Surgery Cleaner"; + pixel_x = 2; + pixel_y = 2 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"WV" = ( +/obj/structure/table/woodentable, +/turf/simulated/floor/wood, +/area/centcom/simulated/bar) +"WW" = ( +/turf/simulated/floor/wood, +/area/centcom/simulated/bar) +"WZ" = ( +/obj/machinery/vending/coffee, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Xa" = ( +/obj/machinery/vending/sovietsoda, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Xb" = ( +/obj/machinery/vending/snack, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Xc" = ( +/obj/machinery/vending/cola, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Xd" = ( +/obj/machinery/vending/cigarette, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"Xe" = ( +/obj/machinery/smartfridge/drinks, +/turf/simulated/floor/wood, +/area/centcom/simulated/bar) +"Xf" = ( +/obj/machinery/vending/boozeomat, +/turf/simulated/floor/wood, +/area/centcom/simulated/bar) +"Xg" = ( +/obj/structure/table/reinforced, +/obj/machinery/chemical_dispenser/bar_soft/full, +/turf/simulated/floor/wood, +/area/centcom/simulated/bar) +"Xh" = ( +/obj/structure/table/reinforced, +/obj/machinery/chemical_dispenser/bar_alc/full, +/turf/simulated/floor/wood, +/area/centcom/simulated/bar) +"Xi" = ( +/turf/unsimulated/wall, +/area/centcom/simulated/bar) +"Xj" = ( +/obj/structure/table/standard, +/obj/item/weapon/storage/firstaid/surgery, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Xk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/multi_tile/glass, +/turf/unsimulated/floor/steel{ + icon_state = "white" + }, +/area/centcom/simulated/medical) +"Xl" = ( +/turf/unsimulated/map/edge, +/area/overmap) +"Xm" = ( +/obj/machinery/door/firedoor, +/turf/unsimulated/floor/steel{ + icon_state = "white" + }, +/area/centcom/simulated/medical) +"Xn" = ( +/obj/structure/sign/greencross, +/turf/unsimulated/wall, +/area/centcom/simulated/medical) +"Xp" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/bathroom) +"Xr" = ( +/obj/structure/bed/chair, +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Xs" = ( +/obj/machinery/computer/card{ + dir = 4 + }, +/obj/item/device/radio/intercom{ + broadcasting = 0; + dir = 1; + frequency = 1475; + icon_state = "intercom"; + listening = 1; + name = "Station Intercom (Security)"; + pixel_x = 0; + pixel_y = 27 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Xv" = ( +/obj/structure/bed/chair/office/dark{ + dir = 1 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Xw" = ( +/obj/structure/bed/chair/office/dark{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Xx" = ( +/obj/machinery/computer/security{ + dir = 8 + }, +/obj/machinery/camera/network/crescent, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Xy" = ( +/obj/structure/table/standard, +/obj/item/stack/nanopaste, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Xz" = ( +/obj/effect/floor_decal/industrial/loading, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"XA" = ( +/obj/effect/floor_decal/steeldecal/steel_decals6{ + dir = 5 + }, +/obj/effect/floor_decal/steeldecal/steel_decals6{ + dir = 6 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"XB" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 12; + pixel_y = 8 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"XC" = ( +/obj/machinery/computer/secure_data{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"XD" = ( +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"XE" = ( +/obj/effect/floor_decal/techfloor/orange{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/techfloor/grid, +/area/centcom/simulated/terminal) +"XH" = ( +/obj/structure/bed/chair{ + dir = 8 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/terminal) +"XJ" = ( +/obj/structure/table/glass, +/obj/item/device/healthanalyzer/improved, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"XK" = ( +/obj/structure/table/glass, +/obj/machinery/computer/med_data{ + icon_keyboard = "laptop_key"; + icon_screen = "medlaptop"; + icon_state = "laptop"; + light_color = "#00b000" + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"XM" = ( +/obj/structure/table/glass{ + desc = "It's a table, it has some scracthes..they say 'Mlem'." + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"XN" = ( +/obj/structure/table/glass, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"XO" = ( +/obj/structure/signpost, +/turf/unsimulated/beach/sand, +/area/beach) +"XP" = ( +/obj/machinery/oxygen_pump/anesthetic, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"XQ" = ( +/obj/machinery/optable, +/obj/machinery/light{ + dir = 8; + icon_state = "tube1" + }, +/obj/effect/floor_decal/industrial/hatch/yellow, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"XR" = ( +/obj/machinery/computer/operating{ + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"XS" = ( +/obj/structure/closet/crate/freezer, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OMinus, +/obj/item/weapon/reagent_containers/blood/OMinus, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"XU" = ( +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/machinery/light, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"XV" = ( +/obj/machinery/turretid/stun{ + check_access = 0; + check_anomalies = 0; + check_records = 0; + check_synth = 0; + check_weapons = 0; + control_area = "\improper CentCom Security Arrivals"; + pixel_x = 32; + req_access = list(101); + req_one_access = list(101) + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"XX" = ( +/obj/machinery/computer/crew{ + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"XY" = ( +/obj/structure/closet, +/turf/unsimulated/beach/sand, +/area/beach) +"XZ" = ( +/obj/structure/bed/chair/office/dark, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Ya" = ( +/obj/machinery/camera/network/crescent, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Yb" = ( +/obj/structure/table/glass, +/obj/item/weapon/paper_bin{ + pixel_x = -1; + pixel_y = 3 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Yc" = ( +/obj/structure/table/standard, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Yg" = ( +/obj/structure/sign/department/operational, +/turf/unsimulated/wall, +/area/centcom/simulated/medical) +"Yh" = ( +/obj/effect/floor_decal/industrial/loading{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Yj" = ( +/obj/effect/floor_decal/steeldecal/steel_decals6{ + dir = 9 + }, +/obj/effect/floor_decal/steeldecal/steel_decals6{ + dir = 10 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Yk" = ( +/obj/structure/medical_stand, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Yl" = ( +/obj/machinery/door/airlock/security{ + name = "Security" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Ym" = ( +/obj/machinery/vending/medical, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Yo" = ( +/obj/structure/closet/secure_closet/medical2, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Yr" = ( +/obj/structure/table/reinforced, +/obj/machinery/microwave{ + pixel_y = 5 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Ys" = ( +/obj/machinery/recharger/wallcharger{ + pixel_x = 4; + pixel_y = 26 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Yt" = ( +/obj/effect/floor_decal/rust, +/obj/effect/floor_decal/industrial/warning/dust{ + dir = 1 + }, +/obj/machinery/light, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/evac) +"Yu" = ( +/obj/machinery/camera/network/crescent, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Yv" = ( +/obj/machinery/door/airlock/multi_tile/glass{ + req_access = list(5) + }, +/obj/machinery/door/firedoor/multi_tile, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Yw" = ( +/obj/machinery/door/airlock/medical{ + name = "Operating Theatre"; + req_access = list(45) + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Yx" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/terminal) +"Yy" = ( +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"YB" = ( +/obj/structure/table/standard, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 0; + pixel_y = 0 + }, +/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/weapon/tool/wrench, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YC" = ( +/obj/machinery/atmospherics/unary/cryo_cell, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YD" = ( +/obj/machinery/atmospherics/unary/freezer, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YE" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"YF" = ( +/obj/structure/table/glass, +/obj/item/device/defib_kit/loaded, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YG" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/living) +"YH" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/pill_bottle/spaceacillin, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YI" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/melee/baton/loaded, +/obj/item/weapon/melee/baton/loaded, +/obj/item/weapon/gun/energy/taser, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"YJ" = ( +/obj/structure/closet/secure_closet/nanotrasen_security, +/obj/item/weapon/storage/box/handcuffs, +/obj/item/weapon/gun/energy/gun, +/obj/item/weapon/shield/riot, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"YK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 6 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YL" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YM" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9; + icon_state = "intact" + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YO" = ( +/obj/machinery/computer/transhuman/designer{ + dir = 8 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YP" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen/prechilled, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YQ" = ( +/obj/structure/table/glass, +/obj/machinery/chemical_dispenser/full, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YR" = ( +/turf/unsimulated/floor/steel, +/area/centcom/simulated/main_hall) +"YT" = ( +/obj/machinery/chem_master, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YU" = ( +/obj/structure/table/glass, +/obj/machinery/chemical_dispenser/ert, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YV" = ( +/obj/machinery/transhuman/synthprinter, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YW" = ( +/obj/effect/floor_decal/industrial/warning{ + dir = 8 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YY" = ( +/obj/machinery/bodyscanner{ + dir = 8 + }, +/obj/effect/floor_decal/corner_steel_grid{ + dir = 10 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"YZ" = ( +/obj/machinery/body_scanconsole, +/obj/effect/floor_decal/corner_steel_grid{ + dir = 10 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Zb" = ( +/obj/machinery/sleep_console{ + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Zc" = ( +/obj/machinery/sleeper{ + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Zd" = ( +/obj/machinery/computer/transhuman/resleeving{ + dir = 8 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Ze" = ( +/obj/machinery/transhuman/resleever, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Zf" = ( +/obj/structure/filingcabinet/chestdrawer{ + name = "Medical Forms" + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Zg" = ( +/obj/machinery/clonepod/transhuman/full, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Zh" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/reagent_containers/food/drinks/flask/barflask, +/obj/item/weapon/reagent_containers/glass/rag, +/obj/item/weapon/reagent_containers/food/drinks/flask/vacuumflask, +/turf/simulated/floor/wood, +/area/centcom/simulated/bar) +"Zi" = ( +/obj/machinery/light, +/turf/simulated/floor/tiled/steel, +/area/centcom/simulated/main_hall) +"Zj" = ( +/obj/structure/table/standard, +/obj/item/device/healthanalyzer, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Zk" = ( +/obj/structure/table/reinforced, +/obj/item/device/camera, +/obj/item/weapon/storage/box/ids, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Zl" = ( +/obj/structure/table/glass, +/obj/item/weapon/backup_implanter{ + pixel_y = -8 + }, +/obj/item/weapon/backup_implanter{ + pixel_y = 8 + }, +/obj/item/weapon/backup_implanter, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Zn" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Zp" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/book/manual/security_space_law, +/obj/item/weapon/book/manual/security_space_law, +/obj/machinery/light/small{ + dir = 8; + pixel_y = 0 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Zq" = ( +/obj/machinery/light, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Zr" = ( +/obj/structure/table/standard, +/obj/machinery/light, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Zs" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Zt" = ( +/obj/effect/floor_decal/corner_steel_grid/diagonal, +/obj/effect/floor_decal/corner_steel_grid/diagonal{ + dir = 4 + }, +/obj/effect/floor_decal/industrial/danger{ + dir = 8 + }, +/obj/machinery/light, +/turf/simulated/floor/tiled, +/area/centcom/simulated/terminal) +"Zw" = ( +/obj/structure/table/reinforced, +/obj/item/weapon/storage/box/donkpockets, +/obj/item/weapon/storage/box/donkpockets, +/obj/machinery/light/small{ + dir = 8; + pixel_y = 0 + }, +/turf/simulated/floor/tiled, +/area/centcom/simulated/security{ + name = "\improper CentCom Security Arrivals" + }) +"Zx" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/item/weapon/reagent_containers/glass/beaker/large, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Zy" = ( +/obj/structure/table/glass, +/obj/item/weapon/storage/firstaid/adv, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"Zz" = ( +/obj/structure/table/glass, +/obj/item/weapon/reagent_containers/glass/bottle/biomass{ + pixel_x = -4; + pixel_y = 8 + }, +/obj/item/weapon/reagent_containers/glass/bottle/biomass{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/weapon/reagent_containers/glass/bottle/biomass{ + pixel_x = 3; + pixel_y = 5 + }, +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/tiled/white, +/area/centcom/simulated/medical) +"ZC" = ( +/obj/machinery/light{ + icon_state = "tube1"; + dir = 4 + }, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) +"ZD" = ( +/obj/structure/table/woodentable, +/obj/item/weapon/reagent_containers/food/drinks/bottle/grenadine, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/wood, +/area/centcom/simulated/bar) +"ZE" = ( +/obj/machinery/light, +/turf/simulated/floor/wood, +/area/centcom/simulated/restaurant) + +(1,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +"} +(2,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(3,1,1) = {" +ap +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +ap +Gq +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Ax +JW +JW +Gq +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(4,1,1) = {" +ap +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +ap +Gq +Nt +VC +Gw +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(5,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(6,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +XO +VC +VC +VC +VC +VC +VC +VC +VC +Ts +BD +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(7,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +Ts +VC +Nj +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +Uw +Ux +Uw +Ux +Ux +Ux +Ux +Ux +Ux +Uw +Ux +Ux +Uw +ae +ae +ae +ae +ae +SX +SY +SX +SY +SY +SY +SY +SY +SY +SX +SY +SY +SX +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(8,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +VC +VC +VC +VC +BD +VC +TG +TG +VC +VC +VC +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +Ux +Uz +Uw +UK +UM +UG +UQ +US +US +Uw +UH +UW +Ux +ae +ae +ae +ae +ae +SY +SZ +SX +Tp +Tq +Tk +Tu +Ty +Ty +SX +Tl +TC +SY +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +sF +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(9,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +VC +VC +VC +VC +Ts +TG +Fa +Dw +TG +VC +VC +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +Ux +UA +UF +UH +UA +UN +UA +UA +UH +UF +UH +UX +Ux +ae +ae +ae +ae +ae +SY +Ta +Td +Tl +Ta +Tr +Ta +Ta +Tl +Td +Tl +TD +SY +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(10,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +XY +VC +VC +VC +VC +TG +Tn +Ik +TG +VC +VC +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +Ux +UC +Uw +UI +UA +UA +UA +UA +UU +Uw +UH +UY +Ux +ae +ae +ae +ae +ae +SY +Tb +SX +Tm +Ta +Ta +Ta +Ta +TA +SX +Tl +TE +SY +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(11,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Cn +Cn +IR +IR +IR +IR +IR +IR +IR +IR +IR +Cn +Cn +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +XY +VC +VC +VC +VC +VC +TG +TG +VC +VC +VC +FH +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +Ux +UD +Ux +UJ +UH +UP +UR +UT +UV +Ux +UH +UZ +Ux +ae +ae +ae +ae +ae +SY +Tc +SY +To +Tl +Tt +Tx +Tz +TB +SY +Tl +TH +SY +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(12,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Cn +Cn +Oj +Cn +Cn +Cn +Cn +Cn +Cn +Cn +IR +Cn +Cn +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +XY +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +Uw +Ux +Uw +Ux +Ux +Ux +Ux +Ux +Ux +Uw +Ux +Ux +Uw +ae +ae +ae +ae +ae +SX +SY +SX +SY +SY +SY +SY +SY +SY +SX +SY +SY +SX +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(13,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Cn +Cn +Oj +Cn +Cn +Cn +Kj +Cn +Cn +Cn +IR +Cn +Cn +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +TF +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(14,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Cn +Cn +Oj +Cn +Cn +Cn +Cn +Cn +Cn +Cn +IR +Cn +Cn +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +VC +VC +VC +VC +VC +VC +VC +BD +VC +VC +VC +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(15,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Cn +Cn +ya +Cn +Cn +Cn +Cn +Cn +Cn +Cn +IR +Cn +Cn +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +XY +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +TF +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(16,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Cn +Cn +ya +Cn +Cn +Cn +Cn +Cn +Cn +Cn +IR +Cn +Cn +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +XY +VC +VC +VC +VC +VC +VC +No +VC +VC +VC +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(17,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Cn +Cn +IR +IR +IR +IR +IR +IR +IR +IR +IR +Cn +Cn +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +XY +VC +Ts +Gw +VC +VC +VC +VC +VC +VC +VC +aa +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(18,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(19,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Cn +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +TK +TM +TK +TM +TM +TM +TM +TM +TM +TK +TM +TM +TK +ae +ae +ae +ae +ae +Sm +Sn +Sm +Sn +Sn +Sn +Sn +Sn +Sn +Sm +Sn +Sn +Sm +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(20,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +VC +VC +VC +VC +VC +VC +VC +VC +VC +Gw +Ts +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +TM +TN +TK +TX +Ua +TT +Ud +Ug +Ug +TK +TU +Uk +TM +ae +ae +ae +ae +ae +Sn +So +Sm +SA +SB +Su +SE +SK +SK +Sm +Sw +SQ +Sn +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(21,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +TM +TP +TS +TU +TP +Ub +TP +TP +TU +TS +TU +Ul +TM +ae +ae +ae +ae +ae +Sn +Sp +Ss +Sw +Sp +SC +Sp +Sp +Sw +Ss +Sw +SR +Sn +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +sF +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(22,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +VC +WD +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +VC +wZ +Az +Bw +JW +Gq +ae +ae +ae +ae +ae +TM +TQ +TK +TV +TP +TP +TP +TP +Ui +TK +TU +Um +TM +ae +ae +ae +ae +ae +Sn +Sq +Sm +Sx +Sp +Sp +Sp +Sp +SO +Sm +Sw +SS +Sn +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(23,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +Gq +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Nt +Ax +JW +JW +Gq +ae +ae +ae +ae +ae +TM +TR +TM +TW +TU +Uc +Uf +Uh +Uj +TM +TU +Uo +TM +ae +ae +ae +ae +ae +Sn +Sr +Sn +Sz +Sw +SD +SF +SN +SP +Sn +Sw +ST +Sn +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(24,1,1) = {" +ap +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +ap +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +Gq +ae +ae +ae +ae +ae +TK +TM +TK +TM +TM +TM +TM +TM +TM +TK +TM +TM +TK +ae +ae +ae +ae +ae +Sm +Sn +Sm +Sn +Sn +Sn +Sn +Sn +Sn +Sm +Sn +Sn +Sm +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(25,1,1) = {" +ap +Lz +RV +RV +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +Lz +RV +Lz +RV +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(26,1,1) = {" +ap +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +RV +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(27,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(28,1,1) = {" +ap +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(29,1,1) = {" +ap +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(30,1,1) = {" +ap +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(31,1,1) = {" +ap +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(32,1,1) = {" +ap +Hy +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(33,1,1) = {" +ap +Hy +qH +qH +zv +qH +qH +qH +dz +IN +IN +IN +dz +IN +IN +IN +dz +IN +IN +IN +dz +IN +IN +IN +dz +IN +qH +qH +zv +qH +qH +tH +Mb +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(34,1,1) = {" +ap +Hy +iY +iY +iY +iY +iY +iY +wr +wr +iY +iY +iY +iY +iY +iY +FT +iY +iY +iY +iY +iY +iY +iY +vR +vR +iY +iY +iY +iY +iY +cC +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Xl +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +OY +Xl +"} +(35,1,1) = {" +ap +Hy +Pq +Pq +Pq +Pq +Pq +Pq +Av +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +vi +Pq +Pq +Pq +Pq +Pq +vG +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +Xl +"} +(36,1,1) = {" +ap +Hy +iY +iY +iY +iY +iY +iY +wr +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +vR +iY +iY +iY +iY +iY +cC +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(37,1,1) = {" +ap +Hy +iY +iY +iY +iY +iY +iY +wr +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +vR +iY +iY +iY +iY +iY +cC +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(38,1,1) = {" +ap +Hy +iY +iY +iY +iY +iY +iY +mZ +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +vR +iY +iY +iY +iY +iY +cC +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(39,1,1) = {" +ap +Hy +iY +iY +iY +iY +iY +iY +mZ +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +vR +iY +iY +iY +iY +iY +cC +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(40,1,1) = {" +ap +Hy +Pq +Pq +Pq +Pq +Pq +Pq +tJ +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +Pq +vi +Pq +Pq +Pq +Pq +Pq +vG +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(41,1,1) = {" +ap +Hy +iY +iY +iY +iY +iY +iY +mZ +mZ +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +iY +vR +vR +iY +iY +iY +iY +iY +cC +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(42,1,1) = {" +ap +Hy +yF +yF +yF +pu +yF +yF +Fr +Sh +Fr +Fr +Fr +Sh +Fr +Fr +Fr +Sh +Fr +Fr +Fr +Sh +Fr +Fr +Fr +Sh +yF +yF +yF +pu +yF +le +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(43,1,1) = {" +ap +Hy +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +dg +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(44,1,1) = {" +ap +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(45,1,1) = {" +ap +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(46,1,1) = {" +ap +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(47,1,1) = {" +ap +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +Hy +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(48,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(49,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(50,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(51,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(52,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(53,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(54,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +"} +(55,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +iO +"} +(56,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +iO +"} +(57,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +iO +"} +(58,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +iO +"} +(59,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +Pi +Pi +Pi +Pi +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +iO +"} +(60,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +Pi +El +El +El +El +Pi +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +iO +"} +(61,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +iO +"} +(62,1,1) = {" +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +iO +"} +(63,1,1) = {" +ar +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +ar +aI +aI +aI +aI +aI +aI +aI +aI +aI +aI +ar +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +iO +"} +(64,1,1) = {" +as +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aK +dA +dF +dF +dF +dF +dF +dF +dF +dF +dF +dF +fZ +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +iO +"} +(65,1,1) = {" +as +aJ +aJ +bd +aJ +aJ +aJ +aJ +aJ +aJ +aJ +dA +dF +dF +dF +ec +dF +dF +dF +dF +ec +dF +fZ +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +El +Pi +Pi +Pi +Pi +Pi +Pi +El +El +El +El +El +El +Pi +Pi +Pi +Pi +Pi +Pi +El +El +El +El +El +El +El +El +iO +"} +(66,1,1) = {" +as +aJ +aJ +aJ +aJ +aK +aJ +aJ +bd +aJ +aJ +dA +dF +dF +dF +dF +dF +dF +dF +dF +dF +dF +fZ +cd +ci +ci +ci +ci +ci +ci +ci +ci +bN +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +Pi +Pi +El +El +El +El +Pi +El +El +El +El +El +El +Pi +El +El +El +El +Pi +Pi +El +El +El +El +El +El +El +iO +"} +(67,1,1) = {" +as +aK +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +dA +dF +ec +dF +dF +dF +dF +ec +dF +dF +dF +fZ +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +Pi +El +El +El +El +El +Pi +El +El +El +El +El +El +Pi +El +El +El +El +El +Pi +El +El +El +El +El +El +El +iO +"} +(68,1,1) = {" +as +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +bd +dA +dF +dF +dF +dF +dF +dF +dF +dF +dF +dF +fZ +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +cl +cl +cl +cl +iO +El +El +El +El +El +El +El +Pi +El +El +El +El +El +Pi +El +El +El +El +El +El +Pi +El +El +El +El +El +Pi +El +El +El +El +El +El +El +iO +"} +(69,1,1) = {" +as +aJ +aJ +aJ +aK +aJ +aJ +bd +aJ +aJ +aJ +dA +dF +dF +dF +dF +dF +dF +dF +dF +dF +dF +fZ +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +El +Pi +El +El +El +El +El +Pi +El +El +El +El +El +El +Pi +El +El +El +El +El +Pi +El +El +El +El +El +El +El +iO +"} +(70,1,1) = {" +as +aJ +aJ +aJ +aJ +aK +aJ +aJ +aJ +aJ +aJ +dA +dF +dF +dF +ec +dF +dF +dF +dF +ec +dF +fZ +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +iO +"} +(71,1,1) = {" +as +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +dA +dF +dF +dF +dF +dF +dF +dF +dF +dF +dF +fZ +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +iO +"} +(72,1,1) = {" +as +aJ +bd +aJ +aJ +aJ +aJ +aJ +aJ +aJ +aJ +dA +dF +ec +dF +dF +dF +dF +ec +dF +dF +dF +fZ +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +JL +JL +JL +jf +jf +jf +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +iO +"} +(73,1,1) = {" +as +aJ +aJ +aJ +aJ +aJ +aJ +aK +aJ +aJ +bd +dA +dF +dF +dF +dF +dF +dF +dF +dF +dF +dF +fZ +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +jf +JL +JL +jf +jf +jf +jf +JL +JL +jf +jf +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +iO +"} +(74,1,1) = {" +ar +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +ar +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +ar +cd +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +ci +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +jf +JL +jf +jf +Hf +jf +jf +jf +JL +JL +jf +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +iO +"} +(75,1,1) = {" +as +aM +be +bf +be +be +be +be +bf +be +aM +dA +dG +dG +dG +dG +dG +dG +dG +fG +dG +dG +fZ +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +cd +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +JL +JL +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +JL +JL +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +iO +"} +(76,1,1) = {" +as +aN +bf +be +bf +bf +bf +bf +be +bf +aN +dA +dG +ed +dG +dG +dG +dG +dG +dG +eT +dG +fZ +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +iO +"} +(77,1,1) = {" +as +aM +be +bo +bU +bU +bU +bU +da +be +aM +dA +dG +dG +dG +eJ +dG +dG +dG +dG +dG +dG +fZ +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +JL +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +El +iO +"} +(78,1,1) = {" +as +aN +bf +bp +bB +bB +bB +bB +cP +bf +aN +dA +dG +dG +dG +dG +eT +dG +dG +dG +eJ +dG +fZ +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +El +El +iO +"} +(79,1,1) = {" +as +aM +be +bq +an +bS +bS +an +cQ +be +aM +dA +dG +dG +dG +ep +dG +dG +ed +dG +dG +fG +fZ +ae +Vu +Vu +Vu +Vu +Vu +Vu +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +JL +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +iO +"} +(80,1,1) = {" +as +aM +bf +bp +an +bS +bS +an +cP +bf +aM +dA +dG +dG +dG +dG +dG +dG +dG +fG +dG +dG +fZ +ae +Vu +Ru +wn +Cy +eS +Vu +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +El +El +iO +"} +(81,1,1) = {" +as +aN +be +ag +bB +bB +bB +bB +at +be +aN +dA +dG +ed +dG +dG +dG +dG +eJ +dG +eT +dG +fZ +ae +Vu +Vu +Vu +Cy +gU +Vu +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +JL +JL +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +JL +JL +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +El +iO +"} +(82,1,1) = {" +as +aM +bf +bB +bB +ao +aA +bB +bB +bf +aM +dA +dG +dG +dG +dG +dG +dG +dG +dG +dG +dG +fZ +ae +Vu +Vu +Vu +Cy +eS +Vu +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +af +dZ +dZ +dZ +dZ +dZ +Rh +dZ +dZ +dZ +dZ +dZ +dZ +Rh +dZ +dZ +dZ +dZ +dZ +af +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +JL +JL +jf +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +iO +"} +(83,1,1) = {" +as +aN +be +bB +ao +ax +aB +aA +bB +bf +aN +dA +dG +dG +ep +dG +eT +dG +dG +dG +eJ +dG +fZ +ae +Vu +kn +Ru +Cy +eS +Vu +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ai +Al +Al +XE +Sl +Al +Al +XE +Al +Al +Al +Al +XE +Al +Al +Sl +XE +Al +Al +SG +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +jf +JL +JL +jf +jf +jf +jf +JL +JL +jf +jf +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +iO +"} +(84,1,1) = {" +as +aM +bf +bB +at +bU +bU +ag +bB +be +aM +dA +dG +dG +dG +dG +dG +dG +ed +dG +dG +fG +fZ +ae +Vu +Vu +Vu +Vu +Vu +Vu +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ai +ET +ET +OR +Pe +Pe +Ri +OR +Pe +Rs +Rt +Pe +OR +Ri +RA +RA +OR +ET +ET +SG +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +JL +JL +JL +jf +jf +jf +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +Pi +El +jQ +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +iO +"} +(85,1,1) = {" +ar +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +ar +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +ar +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +zK +Fp +OR +Pg +Rd +Rg +QW +Rk +Re +Rg +QX +Rw +Ry +QW +Rg +RD +Pg +OR +Fp +zK +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +iO +"} +(86,1,1) = {" +as +aO +bg +bg +bG +bV +bV +bV +bV +bV +dq +dA +dI +dH +dH +eL +eL +eL +eL +eL +eL +eL +fZ +ae +ap +ap +ap +ap +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ai +ET +Pe +Qa +Re +Rg +QW +QX +Rm +Rg +QX +Re +Rg +QW +QW +QW +RF +Pe +ET +SG +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +iO +"} +(87,1,1) = {" +as +aP +bg +bg +bG +bV +bV +bV +bV +bV +bV +dA +dH +dH +dH +eK +eK +eK +eK +eK +eK +eK +fZ +ae +ap +ap +ap +ap +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ai +ET +Pe +QW +QW +QW +QW +QW +QW +QW +QW +QW +QW +QW +QX +QX +Rg +Pe +ET +SG +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Gs +Gs +Gs +cl +iO +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +iO +"} +(88,1,1) = {" +as +aP +bg +bg +bG +bW +ct +ct +ct +dj +bV +dA +dH +dH +dH +eK +eV +fn +fn +fn +fO +eK +fZ +ae +ap +ap +ap +ap +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ai +ET +Pe +QW +QW +QW +QW +QW +QW +QW +QW +QW +QW +QW +QX +QX +RG +Pe +ET +SG +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +cl +iO +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +iO +"} +(89,1,1) = {" +as +aP +bg +bg +bG +bX +cu +cu +cu +dk +bV +dA +dH +ee +eq +eK +eW +fo +fo +fo +fP +eK +fZ +ae +ap +ap +ap +ap +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ai +ET +Pe +QX +Re +Rg +QW +QX +Re +Rg +QX +Re +Rg +QW +QW +QW +QW +Pe +ET +SG +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +iO +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +iO +"} +(90,1,1) = {" +as +aP +bg +bg +bG +bX +cu +cu +cu +dk +bV +dA +dH +ef +eq +eK +eW +fo +fo +fo +fP +eK +fZ +ae +ap +ap +ap +ap +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +zK +Fp +OR +Pg +Rf +Rg +QW +Rl +Ro +Rg +QX +Rx +Rz +QW +RC +RE +Pg +OR +Fp +zK +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ap +iO +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +Pi +El +El +El +El +El +El +iO +"} +(91,1,1) = {" +as +aP +bg +bg +bG +bX +cu +cu +cu +dk +bV +dA +dH +ef +eq +eK +eW +fo +fo +fo +fP +eK +fZ +ae +ap +ap +ap +ap +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ai +ET +ET +OR +Pe +Pe +Rj +OR +Pe +Rt +Rt +Pe +OR +Rj +RA +RA +OR +ET +ET +SG +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +iO +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +iO +"} +(92,1,1) = {" +as +aP +bg +bg +bG +bX +cu +cu +cu +dk +bV +dA +dH +ef +eq +eK +eW +fo +fo +fo +fP +eK +fZ +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ai +Rc +Rc +Rc +Rc +Rc +Rc +Rc +Rc +Rc +Rc +Rc +Rc +Rc +Rc +Rc +Rc +Rc +Rc +SG +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +iO +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +iO +"} +(93,1,1) = {" +as +aP +bg +bg +bG +bY +cv +cv +cv +dl +bV +dA +dH +eg +eq +eK +eW +fo +fo +fo +fP +eK +fZ +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Vu +ae +ae +ae +ae +ae +Vg +Vg +Vg +Vl +Vh +Jx +Jx +Jx +Jx +Jx +Jx +Jx +Jx +Jx +Jx +Jx +Jx +Jx +Jx +Jx +Jx +Zt +aj +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +iO +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +iO +"} +(94,1,1) = {" +as +aP +bg +bg +bG +bV +bV +bV +bV +bV +bV +dA +dH +dH +dH +eK +eX +fp +fp +fH +fQ +eK +fZ +Vu +Ru +Ru +xM +Ru +Ru +Ru +Ru +xM +Ru +Ru +Ru +Vu +ae +ae +ae +ae +ae +Vg +Nr +Th +JR +Nq +Nq +Nq +Nq +Nq +Nq +Yx +Nq +Nq +Nq +Nq +Yx +Nq +Nq +Nq +Nq +Nq +Nq +dZ +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +iO +El +El +El +El +El +El +Pi +El +El +El +El +El +El +El +Pi +Pi +Pi +Pi +Pi +Pi +El +El +El +El +El +El +El +Pi +El +El +El +El +El +El +iO +"} +(95,1,1) = {" +as +aP +bg +bg +bH +bZ +bZ +bZ +bZ +dm +dr +dA +dH +dH +dH +eK +eU +eU +eK +eK +eK +eK +fZ +Vu +Ru +Ru +Ru +Ru +Ru +Ru +Ru +Ru +Ru +Ru +Ru +Vu +ae +ae +ae +ae +ae +Vg +SW +Ti +Rq +Nq +Nq +Nq +Nq +Nq +Nq +wd +dZ +TY +Vv +dZ +dZ +Nq +Nq +Nq +Nq +Nq +Nq +dZ +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +iO +El +El +El +El +El +El +Pi +El +El +El +El +El +El +Pi +Pi +El +El +El +El +Pi +Pi +El +El +El +El +El +El +Pi +El +El +El +El +El +El +iO +"} +(96,1,1) = {" +ar +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +ar +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +ar +Vu +YE +Ru +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Ru +Zi +Vu +ae +ae +ae +ae +ae +Vg +Tf +Tj +Rv +QY +Pf +XH +SH +SH +QY +TI +Rr +SV +SV +Rr +TI +QY +SH +SH +XH +Pf +QY +dZ +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +iO +El +El +El +El +El +El +Pi +Pi +Pi +Pi +Pi +Pi +Pi +Pi +El +El +El +El +El +El +Pi +Pi +Pi +Pi +Pi +Pi +Pi +Pi +El +El +El +El +El +El +iO +"} +(97,1,1) = {" +as +aS +bi +ah +au +ay +ay +ay +ay +aE +aS +dB +dM +eh +eh +eh +eY +fq +fz +fz +fz +fS +fZ +Vu +Ru +Ru +Vu +VW +wj +wj +wj +BK +Vu +Ru +Ru +Vu +ae +ae +ae +wy +wy +Vg +Vg +Vg +Vg +TI +TI +TI +TI +TI +TI +dZ +Ru +Ru +Ru +Ru +dZ +dZ +dZ +dZ +dZ +dZ +dZ +dZ +VI +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +iO +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +iO +"} +(98,1,1) = {" +as +aS +bi +bv +av +az +az +az +az +aF +aS +dB +dN +ei +ei +ei +eZ +fr +ei +ei +ei +fJ +fZ +Vu +Ru +Ru +Vu +sl +cj +Dk +Dk +Dk +yK +Ru +Ru +Vu +ae +ae +ae +wy +yA +Ga +xe +wl +TZ +Vi +Vi +Vi +VJ +Vi +VS +Vu +YE +Ru +Ru +Wt +WE +Xs +XC +Zp +VI +Yr +Zw +YI +VI +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cg +cg +cg +cg +cg +cg +cg +cg +cg +cg +cg +cf +cf +cf +cf +ce +ap +iO +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +iO +"} +(99,1,1) = {" +as +aS +bi +ak +aw +aw +aw +aw +aw +aw +aw +dB +dM +eh +dN +ei +eZ +fr +ei +fJ +fz +fS +fZ +Vu +Ru +Ru +Vu +sl +Lg +tC +tC +tC +ym +Ru +Ru +Vu +ae +ae +ae +wy +rE +Ga +Iq +wl +Up +Vj +Vj +Vj +Vj +Vj +VU +Vu +Ru +Ru +Ru +Wv +WJ +Xv +XD +XD +VI +Ys +XD +YJ +VI +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cg +cf +cf +cf +cf +cf +cf +cf +cf +cf +cg +cg +cf +cf +cf +ce +ap +iO +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +El +iO +"} +(100,1,1) = {" +as +aS +bi +bi +bI +ca +cw +cS +dd +cS +ds +dB +dO +ei +dN +ei +fa +fr +ei +fJ +ei +fT +fZ +Vu +Ru +Ru +Vu +DF +JZ +JZ +JZ +qz +Vu +Ru +Ru +Vu +ae +ae +ae +wy +HQ +Ga +Ga +wl +Up +Vj +Vj +Vj +Vj +Vj +VU +Vu +Ru +Ru +Ru +Wv +WK +Xw +XD +XD +VI +Yu +XD +YJ +VI +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cg +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cg +cf +cf +cf +ce +ap +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +iO +"} +(101,1,1) = {" +as +aS +bi +aS +bJ +cb +cx +cT +cy +cT +dt +dB +dP +ej +dN +ei +eZ +fr +ei +fJ +fA +fU +fZ +Vu +YE +Ru +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Ru +Zi +Vu +ae +ae +ae +wy +pb +Ga +ME +wl +Uu +Vj +Vj +Vm +Vj +Vj +XU +Vu +Ru +Ru +Ru +Wt +WE +Xx +Zk +XV +Yl +Zs +Yy +XD +VI +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cg +cf +cf +cf +cf +cf +cf +cf +cf +cf +ch +cg +cf +cf +cf +ce +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +"} +(102,1,1) = {" +as +aS +bi +bt +bK +cb +cy +cy +cy +cT +dt +dB +dN +ei +ei +ei +eZ +fr +ei +ei +ei +fJ +fZ +Vu +Ru +Ru +Ru +Ru +Ru +Ru +Ru +Ru +Ru +Ru +Ru +Vu +ae +ae +ae +wy +kr +Ga +Cw +wl +Up +Vj +Vj +Vm +Vj +Vj +VU +Vu +Ru +Ru +Zi +VI +VI +VI +VI +VI +VI +VI +VI +Yl +VI +Xi +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cg +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cg +cf +cf +cf +ce +ap +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +"} +(103,1,1) = {" +as +aS +bi +aS +bL +cb +cx +cT +cy +cT +dt +dB +dP +ej +ej +ej +fb +fs +fA +fA +fA +fU +fZ +Vu +Ru +Ru +MK +Ru +Ru +Ru +Ru +MK +Ru +Ru +Ru +Vu +ae +ae +ae +wy +Ct +Ga +kh +wl +Ur +Vm +Vj +Vj +Vj +Vj +VU +Vu +Ru +Ru +Ru +VM +VQ +WN +VZ +VQ +VQ +WH +ZD +WW +Xe +Xi +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cg +cf +cf +cf +cf +cf +cf +cf +cf +cf +cg +cg +cf +cf +cf +ce +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(104,1,1) = {" +as +aS +bi +bi +bM +cc +cz +cU +de +cU +du +dB +aG +aG +aR +aG +aG +aG +aG +bh +aG +aG +fZ +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Vu +Vu +ae +ae +ae +wy +wy +wy +wy +wl +Up +Vj +Vj +Vj +Vj +Vj +VU +TJ +Ru +Ru +Ru +WB +VR +Wb +Wl +Wz +VQ +WH +WO +WW +Xf +Xi +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cg +cg +cg +cg +cg +cg +cg +cg +cg +cg +cg +cf +cf +cf +cf +ce +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(105,1,1) = {" +as +ab +ad +al +al +al +al +al +aC +al +ab +dB +dK +dK +dJ +dK +dK +dK +dK +dJ +dK +dK +fZ +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +ae +ae +ae +ae +ae +ae +ae +wl +Up +Vj +Vj +Vj +Vj +Vj +VU +Vw +Ru +Ru +Ru +VK +VR +Wc +Wm +Wz +VQ +WH +WP +WW +Xg +Xi +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(106,1,1) = {" +as +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +aQ +dB +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +dJ +fZ +aq +uc +uc +uc +uc +uc +uc +uc +uc +uc +uc +uc +aq +ae +ae +ae +ae +ae +ae +ae +wl +Up +Vj +Vj +Vj +Vj +Vj +VU +Vu +YE +Ru +Ru +VL +VQ +Wd +Wd +VQ +VQ +WH +WQ +WW +Xh +Xi +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(107,1,1) = {" +ar +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +ar +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +ar +aq +uc +ue +ue +uf +ue +ue +ue +uf +ue +ue +uc +aq +ae +ae +ae +ae +ae +ae +ae +wl +Up +Vj +Vm +Vj +VN +Vj +VU +Vu +Ru +Ru +Ru +WB +VQ +VQ +VQ +VQ +VQ +WH +WR +WW +Zh +Xi +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(108,1,1) = {" +as +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +dB +dQ +dQ +dQ +dQ +dQ +dQ +dQ +fK +fR +fR +fZ +aq +uc +uf +uf +uf +uf +ug +uf +uf +uf +uf +uc +aq +ae +ae +ae +ae +ae +ae +ae +wl +Uu +Vj +Vj +Vj +Vj +Vj +Yt +Vu +Ru +Ru +Ru +WB +VQ +VZ +VZ +VQ +VQ +WH +WV +WW +WW +Xi +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(109,1,1) = {" +as +aT +bj +aT +aT +aT +aT +aT +aT +bj +aT +dB +dQ +dQ +dQ +dQ +dQ +dQ +dQ +fK +fR +fR +fZ +aq +uc +ue +ue +uf +ue +ue +ue +uf +ue +ue +uc +aq +ae +ae +ae +ae +ae +ae +ae +wl +Up +Vj +Vj +Vj +Vm +Vj +VU +Vu +Ru +Ru +Ru +WB +VR +We +Wo +Wz +VQ +VQ +VQ +ZE +VM +Xi +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(110,1,1) = {" +as +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +dB +dQ +ek +dQ +dQ +dQ +dQ +dQ +fK +fR +fR +fZ +aq +ud +uf +uf +uf +uf +uf +uf +uf +uf +uf +ud +aq +ae +ae +ae +ae +ae +ae +ae +wl +Us +Vn +Vj +Vj +Vm +VO +VP +Vu +Ru +Ru +Zi +WB +VR +Wk +Wu +Wz +VQ +VQ +VQ +WZ +VM +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +JL +JL +JL +JL +JL +JL +JL +JL +jf +jf +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(111,1,1) = {" +as +aT +aT +aT +bj +aT +aT +bj +aT +aT +aT +dB +dQ +dQ +dQ +dQ +dQ +dQ +dQ +fK +fR +fR +fZ +aq +bc +bc +bc +bQ +cs +bc +cs +dh +bc +bc +bc +aq +aq +ae +ae +ae +ae +ae +ae +wl +Ut +Us +Vs +VB +Vs +VP +Ut +Vu +Ru +Ru +Ru +VK +VQ +Wd +Wd +VQ +VZ +VZ +VQ +Xa +VM +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(112,1,1) = {" +as +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +dB +dQ +dQ +dQ +eM +dQ +dQ +dQ +fK +fR +fR +fZ +aq +bc +bn +by +bR +bn +cO +bn +di +by +bc +bc +bO +aq +ae +ae +ae +ae +ae +ae +wl +wl +Vo +Vo +Vo +Vo +Vo +wl +Vu +Ru +Ru +Ru +VL +VQ +VQ +VQ +VR +WA +WI +Wz +Xb +VM +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(113,1,1) = {" +as +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +dB +dQ +dQ +dQ +dQ +dQ +dQ +dQ +fK +fR +fR +fZ +aq +bc +bn +bn +bR +bn +bn +bn +di +bn +bn +dE +bP +aq +ae +ae +ae +ae +ae +ae +wl +TZ +Vi +Vi +Vi +Vi +Vi +VX +Vu +Ru +Ru +Ru +WB +VQ +VQ +VQ +VR +WF +WL +Wz +Xc +VM +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +cf +ce +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(114,1,1) = {" +as +aT +aT +aT +bj +aT +aT +bj +aT +aT +aT +dB +dQ +dQ +es +dQ +dQ +dQ +dQ +fK +fR +fR +fZ +aq +bc +bn +bn +bR +bn +bn +bn +di +bn +bn +dE +bT +aq +ae +ae +ae +ae +ae +ae +wl +Va +Vp +Ut +Ut +Ut +Ut +VU +Vu +YE +Ru +Ru +VM +VY +ZC +VQ +VQ +Wd +Wd +ZC +Xd +VM +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ce +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(115,1,1) = {" +as +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +dB +dQ +dQ +et +dQ +fc +dQ +dQ +fK +fR +fR +fZ +aq +bc +bn +bn +bn +bn +bn +bn +bn +bn +bn +dE +bP +aq +ae +ae +ae +ae +ae +ae +wl +Up +Vq +Ut +Vr +Vr +Ut +VU +Vu +Ru +Ru +Ru +VM +VM +VM +VM +VM +VM +VM +VM +VM +VM +VM +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(116,1,1) = {" +as +aT +bj +aT +aT +aT +aT +aT +aT +bj +aT +dB +dQ +dQ +dQ +dQ +dQ +dQ +dQ +fK +fR +fR +fZ +aq +bc +bn +bz +bn +bn +bn +bn +bn +bz +bc +bc +ck +aq +ae +ae +ae +ae +ae +ae +wl +Uu +Ut +Vt +Ut +Ut +Ut +XU +Vu +Ru +Ru +Ru +Vd +WS +WS +Zl +XX +Ym +Vd +YB +YK +YP +Vd +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +JL +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(117,1,1) = {" +as +aT +aT +aT +aT +aT +aT +aT +aT +aT +aT +dB +dQ +dQ +dQ +dQ +dQ +dQ +dQ +fK +fR +fR +fZ +aq +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +bc +ap +aq +ae +ae +ae +ae +ae +ae +wl +Up +Ut +Ut +Ut +Ut +VD +VU +Vu +Ru +Ru +Ru +WC +WT +WS +XJ +XZ +WS +Vd +YC +YL +YP +Vd +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +JL +jf +jf +jf +jf +jf +jf +Jz +"} +(118,1,1) = {" +ar +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +ar +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +ar +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +aq +ae +ae +ae +ae +ae +ae +wl +Up +Ut +Vr +Ut +Ut +Ut +Wh +Vu +Ru +Ru +Zi +Ve +WS +WS +XK +Ya +WS +Vd +YD +YM +XN +Vd +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +Jz +"} +(119,1,1) = {" +as +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +dB +dU +el +el +el +fd +ft +fB +fB +fB +fV +fZ +aI +aI +aI +ar +aI +aI +aI +ar +aI +aI +aI +ar +ap +ap +ae +ae +ae +ae +ae +ae +wl +Up +Ut +Ut +Ut +Ut +Ut +VU +TJ +Ru +Ru +Ru +Xk +WS +WS +XM +XZ +WS +Vd +YC +YN +YQ +Vd +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +Jz +"} +(120,1,1) = {" +as +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +dB +dV +em +em +em +fe +fu +em +em +em +fW +dB +ga +ga +ga +dB +gN +gO +gO +dB +hx +hx +hx +fZ +ap +ap +ae +ae +ae +ae +ae +ae +wl +Up +Vr +Ut +Ut +Ut +Ut +VU +Vw +Ru +Ru +Ru +Xm +WS +WS +XN +Yb +Zq +Vd +Zx +XZ +YT +Vd +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +Jz +"} +(121,1,1) = {" +as +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +dB +dV +em +em +em +fe +fu +em +em +em +fW +dB +gb +ga +gq +dB +gO +gO +gP +dB +hy +hJ +hO +fZ +ap +ap +ae +ae +ae +ae +ae +ae +wl +Up +Ut +Ut +VD +Ut +Vr +VV +Vu +Ru +Ru +Ru +Xn +WS +WS +WS +WS +WS +Vd +XN +WS +YU +Vd +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +ML +ML +ML +ML +ML +ML +ML +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +Jz +"} +(122,1,1) = {" +as +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +dB +dV +em +em +em +fe +fu +em +em +em +fW +dB +gc +ga +gc +dB +gO +gO +gO +dB +hz +hK +hP +fZ +ap +ap +ae +ae +ae +ae +ae +ae +wl +Up +Ut +Ut +Ut +Ut +Ut +VU +Vu +YE +Ru +Ru +WC +WT +WS +WS +WS +WS +Vd +Vd +Yw +Vd +Vd +Vd +Vd +Vd +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +Jz +"} +(123,1,1) = {" +as +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +dB +dV +em +em +em +fe +fu +em +em +em +fW +dB +gd +ga +ga +dB +gO +gN +gO +dB +hz +hK +hP +fZ +ap +ap +ae +ae +ae +ae +ae +ae +wl +Uu +Ut +Vr +Ut +Ut +Ut +XU +Vu +Ru +Ru +Ru +WC +WT +WS +WS +WS +WS +Vd +Ym +WS +WS +WS +WS +Zf +Vd +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +Jz +"} +(124,1,1) = {" +as +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +dB +dV +em +em +em +fe +fu +em +em +em +fW +dB +gc +ga +gq +dB +gO +gO +gO +dB +hA +hL +hQ +fZ +ap +ap +ae +ae +ae +ae +ae +ae +wl +Up +Ut +Ut +Ut +Ut +VD +VU +Vu +Ru +Ru +Ru +WC +WT +WS +WS +WS +WS +Yv +WS +WS +WS +YY +WS +WS +Vd +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +Jz +"} +(125,1,1) = {" +as +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +dB +dW +en +en +en +ff +fv +fC +fC +fC +fX +dB +gc +ga +gc +dB +gP +gO +gO +dB +hx +hx +hx +fZ +ap +ap +ae +ae +ae +ae +ae +ae +wl +Us +Vn +Ut +VE +Ut +VO +VP +Vu +Ru +Ru +Ru +Vd +WS +WS +Zn +WS +WS +WS +WS +WS +WS +YZ +WS +Zq +Vd +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +JL +jf +jf +jf +jf +jf +jf +Jz +"} +(126,1,1) = {" +as +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +dB +aH +aH +aX +aH +aH +aH +aH +br +aH +aH +fZ +aL +aL +aL +ar +aL +aL +aL +ar +aL +aL +aL +ar +ap +ap +ae +ae +ae +ae +ae +ae +wl +Ut +Us +Vs +VF +Vs +VP +Ut +Vu +Ru +Ru +Zi +Vd +Vd +Vd +Vd +Vd +Vd +Vd +YF +WS +WS +WS +WS +WS +Vd +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +JL +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(127,1,1) = {" +as +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +dB +dS +dS +dR +dS +dS +dS +dS +dR +dS +dS +dB +ge +gl +gr +dB +gQ +gR +gQ +dB +hB +hD +hD +fZ +ap +ap +ae +ae +ae +ae +ae +ae +wl +wl +Vo +Vo +Vo +Vo +Vo +wl +Vu +Ru +Ru +Ru +Vd +WU +Xy +XP +Yc +Yc +Vd +Zy +WS +WS +WS +WS +WS +Vd +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(128,1,1) = {" +as +aU +aU +aU +aU +aU +aU +aU +aU +aU +aU +dB +dR +dR +dR +dR +dR +dR +dR +dR +dR +dR +dB +gf +gl +gr +dB +gR +gQ +gR +dB +hC +hC +hC +fZ +ap +ap +ae +ae +ae +ae +ae +ae +Vk +Vk +Vk +Vk +Vk +Vk +Vk +Vk +Uv +Ru +Ru +Ru +Vd +Xj +Xz +XQ +Yh +Yc +Vd +YH +WS +WS +Zb +WS +WS +Vd +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(129,1,1) = {" +ar +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +ar +aL +aL +aL +aL +aL +aL +aL +aL +aL +aL +as +gg +gl +gr +dB +gQ +hg +gQ +dB +hD +hD +hD +fZ +ap +ap +ae +ae +ae +ae +ae +ae +Vk +Vc +Vz +Vc +Vc +Vz +Vc +Wi +YR +Ru +Ru +Ru +Vd +Zj +XA +XR +Yj +Zr +Yg +WS +WS +WS +Zc +WS +WS +Vd +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +jf +In +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(130,1,1) = {" +as +aY +bk +bk +bk +bk +cA +cA +cA +cA +dv +dB +dX +dY +dY +dY +dY +dY +dY +dY +dY +dY +dB +gh +gl +gr +dB +gR +gQ +gR +dB +hD +hD +hD +fZ +ap +ap +ae +ae +ae +ae +ae +ae +Vk +Vc +Vc +Vc +Vc +Vc +Vc +Vk +UE +Ru +Ru +Ru +Vd +Xr +XB +YW +YW +YW +Yw +WS +WS +WS +WS +WS +Zq +Vd +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(131,1,1) = {" +as +aZ +bl +bl +bl +bl +bl +bl +bl +bl +dw +dB +dX +dY +dY +eo +eo +eo +eo +dY +dY +dY +dB +gi +gl +gr +dB +gQ +gR +gQ +dB +hE +hE +hE +fZ +ap +ap +ae +ae +ae +ae +ae +ae +Vk +Vf +Vk +Vy +Vk +Vy +Vg +Vg +Vg +Wq +Ws +Ws +Vg +Vg +Vg +WS +WS +WS +Vd +WS +WS +WS +WS +WS +WS +Vd +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(132,1,1) = {" +as +aZ +bl +bl +bl +bl +bl +bl +bl +bl +dw +dB +dY +dY +dY +dY +dY +dY +dY +dY +dY +dY +dB +gf +gl +gr +dB +gR +gQ +gR +dB +hD +hD +hR +fZ +ap +ap +ae +ae +ae +ae +ae +ae +Vk +Vb +Vk +Xp +Vk +Xp +Vg +Wj +Wp +Ti +YG +Ti +Wp +Wj +Vg +XS +Yk +Yo +Vd +Zz +YO +YV +Zd +Ze +Zg +Vd +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +ML +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +JL +JL +JL +JL +JL +JL +JL +JL +jf +jf +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(133,1,1) = {" +as +aZ +bl +bl +bl +bl +bl +bl +bl +bl +dw +dB +dY +dY +dY +bu +bA +bA +bD +dY +eo +dY +fZ +aL +aL +aL +ar +aL +aL +aL +ar +aL +aL +aL +ar +ap +ap +ae +ae +ae +ae +ae +ae +Vk +Vk +Vk +Vk +Vk +Vk +Vg +Vg +Vg +Wp +Vg +Wp +Vg +Vg +Vg +Vd +Vd +Vd +Vd +Vd +Vd +Vd +Vd +Vd +Vd +Vd +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +ML +zb +qn +pF +qn +tD +ML +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +JL +JL +JL +JL +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(134,1,1) = {" +as +aZ +bl +bl +bl +bl +bl +bl +bl +bl +dw +dB +dY +eo +dY +bw +bs +bs +bE +dY +eo +dY +dB +gj +gk +gs +dB +gS +gS +gS +dB +hF +hF +hF +fZ +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +Vg +Wj +Vg +Wj +Vg +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +qn +ML +zb +zb +tD +tD +qn +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(135,1,1) = {" +as +aZ +bl +bl +bl +bl +bl +bl +bl +bl +dw +dB +dY +eo +dY +bw +bs +bs +bE +dY +eo +dY +dB +gk +gm +gk +dB +gS +gS +gS +dB +hF +hF +hF +fZ +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +Vg +Vg +Vg +Vg +Vg +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(136,1,1) = {" +as +ba +bm +bm +bm +bm +cB +cB +cB +cB +dx +dB +dY +eo +dY +bx +bC +bC +bF +dY +dY +dY +dB +gk +gn +gk +dB +gS +gS +gS +dB +hF +hF +hF +fZ +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(137,1,1) = {" +as +ac +ac +am +ac +ac +ac +ac +aD +ac +ac +dB +dY +dY +dY +dY +dY +dY +dY +dY +dY +dY +dB +gk +go +gk +dB +gS +gS +gS +dB +hF +hF +hF +fZ +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(138,1,1) = {" +as +aW +aW +aV +aW +aW +aW +aW +aV +aW +aW +dB +dY +dY +dY +eo +eo +eo +eo +dY +dY +fY +dB +gk +gk +gk +dB +gS +gS +gS +dB +hF +hF +hF +fZ +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(139,1,1) = {" +as +aV +aV +aV +aV +aV +aV +aV +aV +aV +aV +dB +dY +dY +dY +dY +dY +dY +dY +dY +dY +fY +dB +gk +gk +gt +dB +gS +gS +gS +dB +hF +hF +hF +fZ +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +qn +oI +ap +Jz +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +jf +Jz +"} +(140,1,1) = {" +ar +bb +bb +bb +bb +bb +bb +bb +bb +bb +bb +ar +bb +bb +bb +bb +bb +bb +bb +bb +bb +bb +ar +bb +bb +bb +ar +bb +bb +bb +ar +bb +bb +bb +ar +ap +ap +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ap +ap +ap +ap +ap +ap +ap +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +oI +ap +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +Jz +"} From 85204d4ff5c1fbe523213634bbcdb6e46aae9cc1 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sun, 10 May 2020 14:04:08 -0400 Subject: [PATCH 086/105] Adds a couple chat commands to tgs chatbot --- code/modules/tgs/includes.dm | 1 + code/modules/tgs/v5/chat_commands.dm | 15 +++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 code/modules/tgs/v5/chat_commands.dm diff --git a/code/modules/tgs/includes.dm b/code/modules/tgs/includes.dm index b3c1728f34..764adbc3a9 100644 --- a/code/modules/tgs/includes.dm +++ b/code/modules/tgs/includes.dm @@ -14,6 +14,7 @@ #include "v5\_defines.dm" #include "v5\api.dm" #include "v5\commands.dm" +#include "v5\chat_commands.dm" #include "v5\undef.dm" /* diff --git a/code/modules/tgs/v5/chat_commands.dm b/code/modules/tgs/v5/chat_commands.dm new file mode 100644 index 0000000000..bc73602861 --- /dev/null +++ b/code/modules/tgs/v5/chat_commands.dm @@ -0,0 +1,15 @@ +/datum/tgs_chat_command/status + name = "status" + help_text = "Shows the current production server status" + admin_only = FALSE + +/datum/tgs_chat_command/status/Run(datum/tgs_chat_user/sender, params) + return "```Players logged in: [GLOB.clients.len] - Round Duration: [roundduration2text()]```" + +/datum/tgs_chat_command/parsetest + name = "parsetest" + help_text = "Shows the current production server status" + admin_only = FALSE + +/datum/tgs_chat_command/parsetest/Run(datum/tgs_chat_user/sender, params) + return "```You passed:[params]```" From a74d8903319714734258446654e596b4574ce149 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 10 May 2020 14:44:15 -0400 Subject: [PATCH 087/105] Repurposes Explorer Corp Uniforms Repurposes the SEV Torch Explorer Corp uniforms into uniforms for the Nanotrasen Defense Force. --- .../loadout/loadout_fluffitems_vr.dm | 23 +--------- code/modules/clothing/head/solgov_vr.dm | 36 +++++++-------- code/modules/clothing/suits/solgov_vr.dm | 44 +++++++++---------- .../clothing/under/accessories/torch_vr.dm | 19 ++++++++ code/modules/clothing/under/solgov_vr.dm | 20 ++++----- 5 files changed, 70 insertions(+), 72 deletions(-) diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm index 452b721e6d..088a13c443 100644 --- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm @@ -92,7 +92,7 @@ /datum/gear/fluff/aurora path = /obj/item/clothing/accessory/solgov/department/security/aurora display_name = "Aurora's keepsake" - description = "An old solgov sec insignia given to Aurora" + description = "An old solcom sec insignia given to Aurora" ckeywhitelist = list("storesund97") character_name = list("Aurora") @@ -150,27 +150,6 @@ ckeywhitelist = list("bwoincognito") character_name = list("Tasald Corlethian") -/datum/gear/fluff/tasald_cartographer_jumpsuit - path = /obj/item/clothing/under/solgov/utility/sifguard/officer/exploration - display_name = "Tasald's Cartographer's uniform - jumpsuit" - slot = slot_w_uniform - ckeywhitelist = list("bwoincognito") - character_name = list("Tasald Corlethian") - -/datum/gear/fluff/tasald_cartographer_jacket - path = /obj/item/clothing/suit/storage/service/sifguard/command - display_name = "Tasald's Cartographer's uniform - jacket" - slot = slot_wear_suit - ckeywhitelist = list("bwoincognito") - character_name = list("Tasald Corlethian") - -/datum/gear/fluff/tasald_cartographer_beret - path = /obj/item/clothing/head/beret/sol/expedition/command - display_name = "Tasald's Cartographer's uniform - beret" - slot = slot_head - ckeywhitelist = list("bwoincognito") - character_name = list("Tasald Corlethian") - /datum/gear/fluff/octavius_box path = /obj/item/weapon/storage/box/fluff/octavious display_name = "Octavious' Box" diff --git a/code/modules/clothing/head/solgov_vr.dm b/code/modules/clothing/head/solgov_vr.dm index 3861ecebe1..4971283957 100644 --- a/code/modules/clothing/head/solgov_vr.dm +++ b/code/modules/clothing/head/solgov_vr.dm @@ -6,8 +6,8 @@ desc = "It's a blue ballcap in Terran Commonwealth Government colors." /obj/item/clothing/head/soft/sol/expedition - name = "\improper Explorer corps cap" - desc = "It's a black ballcap bearing a Terran Commonwealth Explorer Corps crest." + name = "\improper NDF cap" + desc = "It's a black ballcap bearing a Nanotrasen Defense Force crest." /obj/item/clothing/head/soft/sol/fleet name = "fleet cap" @@ -70,12 +70,12 @@ //Dress /obj/item/clothing/head/dress/expedition - name = "explorer's dress cap" - desc = "A peaked grey dress uniform cap belonging to the Terran Commonwealth Explorer Corps." + name = "\improper Nanotrasen dress cap" + desc = "A peaked grey dress uniform cap belonging to the Nanotrasen Defense Force." /obj/item/clothing/head/dress/expedition/command - name = "explorer's command dress cap" - desc = "A peaked grey dress uniform cap belonging to the Terran Commonwealth Explorer Corps. This one is trimmed in gold." + name = "\improper Nanotrasen command dress cap" + desc = "A peaked grey dress uniform cap belonging to the Nanotrasen Defense Force. This one is trimmed in gold." /obj/item/clothing/head/dress/fleet name = "fleet dress wheel cover" @@ -124,28 +124,28 @@ desc = "A white beret denoting service in the Interstellar Health Service. For medics that are more inclined towards style than safety." /obj/item/clothing/head/beret/sol/expedition - name = "explorer's beret" - desc = "A black beret belonging to the Terran Commonwealth explorer corps. For personnel that are more inclined towards style than safety." + name = "\improper NDF beret" + desc = "A black beret belonging to the Nanotrasen Defense Force. For personnel that are more inclined towards style than safety." /obj/item/clothing/head/beret/sol/expedition/security - name = "explorer's security beret" - desc = "A Terran Commonwealth Explorer Corps beret with a security crest. For personnel that are more inclined towards style than safety." + name = "\improper NDF security beret" + desc = "A Nanotrasen Defense Force beret with a security crest. For personnel that are more inclined towards style than safety." /obj/item/clothing/head/beret/sol/expedition/medical - name = "explorer's medical beret" - desc = "A Terran Commonwealth Explorer Corps beret with a medical crest. For personnel that are more inclined towards style than safety." + name = "\improper NDF medical beret" + desc = "A Nanotrasen Defense Force beret with a medical crest. For personnel that are more inclined towards style than safety." /obj/item/clothing/head/beret/sol/expedition/engineering - name = "explorer's engineering beret" - desc = "A Terran Commonwealth Explorer Corps beret with an engineering crest. For personnel that are more inclined towards style than safety." + name = "\improper NDF engineering beret" + desc = "A Nanotrasen Defense Force beret with an engineering crest. For personnel that are more inclined towards style than safety." /obj/item/clothing/head/beret/sol/expedition/supply - name = "explorer's supply beret" - desc = "A Terran Commonwealth Explorer Corps beret with a supply crest. For personnel that are more inclined towards style than safety." + name = "\improper NDF supply beret" + desc = "A Nanotrasen Defense Force beret with a supply crest. For personnel that are more inclined towards style than safety." /obj/item/clothing/head/beret/sol/expedition/command - name = "explorer's command beret" - desc = "A Terran Commonwealth Explorer Corps beret with a command crest. For personnel that are more inclined towards style than safety." + name = "\improper NDF command beret" + desc = "A Nanotrasen Defense Force beret with a command crest. For personnel that are more inclined towards style than safety." /obj/item/clothing/head/beret/sol/fleet name = "fleet beret" diff --git a/code/modules/clothing/suits/solgov_vr.dm b/code/modules/clothing/suits/solgov_vr.dm index 21c6851acf..b23cb35bc9 100644 --- a/code/modules/clothing/suits/solgov_vr.dm +++ b/code/modules/clothing/suits/solgov_vr.dm @@ -2,40 +2,40 @@ //Service /obj/item/clothing/suit/storage/service/sifguard - name = "\improper SolCom jacket" - desc = "A uniform service jacket belonging to the Terran Commonwealth Explorer Corps. It has silver buttons." + name = "\improper NDF jacket" + desc = "A uniform service jacket belonging to the Nanotrasen Defense Force. It has silver buttons." /obj/item/clothing/suit/storage/service/sifguard/medical - name = "\improper SolCom medical jacket" - desc = "A uniform service jacket belonging to the Terran Commonwealth Explorer Corps. It has silver buttons and blue trim." + name = "\improper NDF medical jacket" + desc = "A uniform service jacket belonging to the Nanotrasen Defense Force. It has silver buttons and blue trim." /obj/item/clothing/suit/storage/service/sifguard/medical/command - name = "\improper SolCom medical command jacket" - desc = "A uniform service jacket belonging to the Terran Commonwealth Explorer Corps. It has gold buttons and blue trim." + name = "\improper NDF medical command jacket" + desc = "A uniform service jacket belonging to the Nanotrasen Defense Force. It has gold buttons and blue trim." /obj/item/clothing/suit/storage/service/sifguard/engineering - name = "\improper SolCom engineering jacket" - desc = "A uniform service jacket belonging to the Terran Commonwealth Explorer Corps. It has silver buttons and orange trim." + name = "\improper NDF engineering jacket" + desc = "A uniform service jacket belonging to the Nanotrasen Defense Force. It has silver buttons and orange trim." /obj/item/clothing/suit/storage/service/sifguard/engineering/command - name = "\improper SolCom engineering command jacket" - desc = "A uniform service jacket belonging to the Terran Commonwealth Explorer Corps. It has gold buttons and orange trim." + name = "\improper NDF engineering command jacket" + desc = "A uniform service jacket belonging to the Nanotrasen Defense Force. It has gold buttons and orange trim." /obj/item/clothing/suit/storage/service/sifguard/supply - name = "\improper SolCom supply jacket" - desc = "A uniform service jacket belonging to the Terran Commonwealth Explorer Corps. It has silver buttons and brown trim." + name = "\improper NDF supply jacket" + desc = "A uniform service jacket belonging to the Nanotrasen Defense Force. It has silver buttons and brown trim." /obj/item/clothing/suit/storage/service/sifguard/security - name = "\improper SolCom security jacket" - desc = "A uniform service jacket belonging to the Terran Commonwealth Explorer Corps. It has silver buttons and red trim." + name = "\improper NDF security jacket" + desc = "A uniform service jacket belonging to the Nanotrasen Defense Force. It has silver buttons and red trim." /obj/item/clothing/suit/storage/service/sifguard/security/command - name = "\improper SolCom security command jacket" - desc = "A uniform service jacket belonging to the Terran Commonwealth Explorer Corps. It has gold buttons and red trim." + name = "\improper NDF security command jacket" + desc = "A uniform service jacket belonging to the Nanotrasen Defense Force. It has gold buttons and red trim." /obj/item/clothing/suit/storage/service/sifguard/command - name = "\improper SolCom command jacket" - desc = "A uniform service jacket belonging to the Terran Commonwealth Explorer Corps. It has gold buttons and gold trim." + name = "\improper NDF command jacket" + desc = "A uniform service jacket belonging to the Nanotrasen Defense Force. It has gold buttons and gold trim." /obj/item/clothing/suit/storage/service/marine name = "marine coat" @@ -76,12 +76,12 @@ //Dress /obj/item/clothing/suit/dress/expedition - name = "SolCom dress jacket" - desc = "A silver and grey dress jacket belonging to the Terran Commonwealth Explorer Corps. Fashionable, for the 24th century at least." + name = "\improper NDF dress jacket" + desc = "A silver and grey dress jacket belonging to the Nanotrasen Defense Force. Fashionable, for the 24th century at least." /obj/item/clothing/suit/dress/expedition/command - name = "explorer's command dress jacket" - desc = "A gold and grey dress jacket belonging to the Terran Commonwealth Explorer Corps. The height of fashion." + name = "\improper NDF command dress jacket" + desc = "A gold and grey dress jacket belonging to the Nanotrasen Defense Force. The height of fashion." /obj/item/clothing/suit/storage/toggle/dress/fleet name = "fleet dress jacket" diff --git a/code/modules/clothing/under/accessories/torch_vr.dm b/code/modules/clothing/under/accessories/torch_vr.dm index caba931c6f..730710fe9b 100644 --- a/code/modules/clothing/under/accessories/torch_vr.dm +++ b/code/modules/clothing/under/accessories/torch_vr.dm @@ -192,3 +192,22 @@ armour attachments /obj/item/clothing/accessory/armor/helmcover/blue/sol name = "peacekeeper helmet cover" desc = "A fabric cover for armored helmets. This one is in TCG peacekeeper colors." + +/********* +ranks - ndf +*********/ +/obj/item/clothing/accessory/solgov/rank/ec/enlisted + name = "ranks (E-1 seaman recruit)" + desc = "Insignia denoting the rank of Seaman Recruit." + +/obj/item/clothing/accessory/solgov/rank/ec/enlisted/e3 + name = "ranks (E-3 seaman)" + desc = "Insignia denoting the rank of Seaman." + +/obj/item/clothing/accessory/solgov/rank/ec/enlisted/e5 + name = "ranks (E-5 petty officer)" + desc = "Insignia denoting the rank of Petty Officer." + +/obj/item/clothing/accessory/solgov/rank/ec/enlisted/e7 + name = "ranks (E-7 chief petty officer)" + desc = "Insignia denoting the rank of Chief Petty Officer." diff --git a/code/modules/clothing/under/solgov_vr.dm b/code/modules/clothing/under/solgov_vr.dm index e663db1344..891439d2d3 100644 --- a/code/modules/clothing/under/solgov_vr.dm +++ b/code/modules/clothing/under/solgov_vr.dm @@ -2,8 +2,8 @@ //PT /obj/item/clothing/under/solgov/pt/sifguard - name = "\improper SolCom pt uniform" - desc = "A baggy shirt bearing the seal of the Terran Commonwealth Explorer Corps and some dorky looking blue shorts." + name = "\improper NDF pt uniform" + desc = "A baggy shirt bearing the seal of the Nanotrasen Defense Force and some dorky looking blue shorts." /obj/item/clothing/under/solgov/pt/fleet name = "fleet pt uniform" @@ -21,12 +21,12 @@ desc = "A comfortable turtleneck and black utility trousers." /obj/item/clothing/under/solgov/utility/sifguard - name = "\improper SolCom uniform" - desc = "The utility uniform of the Terran Commonwealth Explorer Corps, made from biohazard resistant material. This one has silver trim." + name = "\improper NDF uniform" + desc = "The utility uniform of the Nanotrasen Defense Force, made from biohazard resistant material. This one has silver trim." /obj/item/clothing/under/solgov/utility/sifguard/officer - name = "\improper SolCom officer uniform" - desc = "The utility uniform of the Terran Commonwealth Explorer Corps, made from biohazard resistant material. This one has gold trim." + name = "\improper NDF officer uniform" + desc = "The utility uniform of the Nanotrasen Defense Force, made from biohazard resistant material. This one has gold trim." /obj/item/clothing/under/solgov/utility/fleet @@ -77,12 +77,12 @@ desc = "The service uniform of the TCG Marine Corps. Slimming and stylish." /obj/item/clothing/under/solgov/mildress/expeditionary - name = "\improper SolCom dress uniform" - desc = "The dress uniform of the Terran Commonwealth Explorer Corps in silver trim." + name = "\improper NDF dress uniform" + desc = "The dress uniform of the Nanotrasen Defense Force in silver trim." /obj/item/clothing/under/solgov/mildress/expeditionary/command - name = "\improper SolCom command dress uniform" - desc = "The dress uniform of the Terran Commonwealth Explorer Corps in gold trim." + name = "\improper NDF command dress uniform" + desc = "The dress uniform of the Nanotrasen Defense Force in gold trim." /obj/item/clothing/under/solgov/mildress/marine name = "marine dress uniform" From e76e1e3641fb12033b3d994f1ce2d75c01a9d2b2 Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 10 May 2020 14:47:08 -0400 Subject: [PATCH 088/105] Some renaming oversights --- code/modules/clothing/head/solgov_vr.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/head/solgov_vr.dm b/code/modules/clothing/head/solgov_vr.dm index 4971283957..0a9ddd2c41 100644 --- a/code/modules/clothing/head/solgov_vr.dm +++ b/code/modules/clothing/head/solgov_vr.dm @@ -70,11 +70,11 @@ //Dress /obj/item/clothing/head/dress/expedition - name = "\improper Nanotrasen dress cap" + name = "\improper NDF dress cap" desc = "A peaked grey dress uniform cap belonging to the Nanotrasen Defense Force." /obj/item/clothing/head/dress/expedition/command - name = "\improper Nanotrasen command dress cap" + name = "\improper NDF command dress cap" desc = "A peaked grey dress uniform cap belonging to the Nanotrasen Defense Force. This one is trimmed in gold." /obj/item/clothing/head/dress/fleet From 5546ed43e8f17f46065504c228778d1ce25fd9e2 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sun, 10 May 2020 15:09:13 -0400 Subject: [PATCH 089/105] Alter VS hub visibility compiled in for TGS compat --- code/hub.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/hub.dm b/code/hub.dm index 9bd4fae1d8..d351388cca 100644 --- a/code/hub.dm +++ b/code/hub.dm @@ -3,7 +3,8 @@ hub = "Exadv1.spacestation13" //hub_password = "SORRYNOPASSWORD" hub_password = "kMZy3U5jJHSiBQjr" - name = "Space Station 13" + name = "VOREStation" //VOREStation Edit + visibility = 0 //VOREStation Edit /* This is for any host that would like their server to appear on the main SS13 hub. To use it, simply replace the password above, with the password found below, and it should work. From 429fec6b6bcc607e319528fbddbeba13e3d1d888 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sun, 10 May 2020 17:41:56 -0400 Subject: [PATCH 090/105] Update floor_icon.dm --- code/game/turfs/simulated/floor_icon.dm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/code/game/turfs/simulated/floor_icon.dm b/code/game/turfs/simulated/floor_icon.dm index 9a132eb78a..e11ad7e998 100644 --- a/code/game/turfs/simulated/floor_icon.dm +++ b/code/game/turfs/simulated/floor_icon.dm @@ -81,15 +81,9 @@ var/image/no_ceiling_image = null else if(flooring) var/rand_key = rand(0,2) if(!isnull(broken) && (flooring.flags & TURF_CAN_BREAK)) -<<<<<<< HEAD - add_overlay(get_flooring_overlay("[flooring.icon_base]-broken-[broken]","broken[broken]")) // VOREStation Edit - Eris overlays - if(!isnull(burnt) && (flooring.flags & TURF_CAN_BURN)) - add_overlay(get_flooring_overlay("[flooring.icon_base]-burned-[burnt]","burned[burnt]")) // VOREStation Edit - Eris overlays -======= add_overlay(get_flooring_overlay("[flooring.icon_base]-broken-[rand_key]","broken[rand_key]")) if(!isnull(burnt) && (flooring.flags & TURF_CAN_BURN)) add_overlay(get_flooring_overlay("[flooring.icon_base]-burned-[rand_key]","burned[rand_key]")) ->>>>>>> 6ea50f3... Merge pull request #7061 from Mechoid/FixFloorDamage if(update_neighbors) for(var/turf/simulated/floor/F in range(src, 1)) From 689da6deedd307071b95b60ed494845b6d579f33 Mon Sep 17 00:00:00 2001 From: Rykka Date: Sun, 10 May 2020 17:58:10 -0400 Subject: [PATCH 091/105] New sprite for the botany + xenobiology scanner, and BUTTS. Butt posters, Chronos suit phase in/out/trapped states, new botany/xenobiology scanner sprites, and of course, ASS. --- icons/mob/mob.dmi | Bin 211298 -> 226391 bytes icons/obj/butts.dmi | Bin 0 -> 27429 bytes icons/obj/chronos.dmi | Bin 0 -> 7558 bytes icons/obj/device.dmi | Bin 76174 -> 77469 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/obj/butts.dmi create mode 100644 icons/obj/chronos.dmi diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi index 4bfb8bf4792b0fdf15524390673a27a9c12b5fd5..69c10a58a7ee4071b625c99d27c75bfc0433a2b6 100644 GIT binary patch delta 36276 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 delta 21067 zcmafbc|26_`}as$%9a*on--A>Nl2JhOJOW!Nwy+ewjvP@5tW!CWF7myMV5piNyxrN zw(K*uFqScM&U24GpWpBMJkRfWJ^yI7bI!e7_jO(G_w~N&n_>UG%=U%{N@QU|p-{`m z(6uNOqnYPTL)WWTkM2FRb#}FNazvq?#Fe~n2_2B)YG_;9-@C?piaXLl@=kVMb_C@Q z%iEVh{q=uRON(D9dvnfR{^EJJPWSnqPRQrSYwK_OlnW)z2ud_d93~;X%{=~co&Fp= z?xpZkbnJxjhihlz)wD}igCNP)N1PAp7c4sxe|~`-74|kMl-}KRE&5Q&(4e1tGJPLI z%;L{ilSa#rzMw~+Q?VN*Q}_Aquip&g({YQ{^wAy0i3Ok3yQ1_e&gQGE4Y#$}UbmYs z<gtPme zsN0PK=F?8!bf;)zc_sFjNPD#AZFuv{Y;I$3Ef(@!=LxlRd6+1F)!ZWEH4E1Zu1=Pc ztDX{Uw_e3sT6lfw;f^0UrKbu-*jEpq4L+C>PR_Kfd70>W8h$gm;;gI1&!DK>6Sy2* zyW7F*F-JpsDlkX$uk_kgF`YTS_L{0} z+xEoYp5@muhIJ+t6Nr`P+xb@`s1pj)>g`qxuUb8%$p(p;AE)#oNJMJ4f({cNwPPC4u;n~c|V$B>CJGVF-leety%f`VQzod=tH@_V`f(y;B6UrtT zIk-ege_>|&W1LEKrD{D4+hf;c`tC#YSg)v>{D+n0usau{U9UM0n)68VJ5~*3?*83$ zPR*vh`AOr$Ew)yXBgTya@3gWZ_79n9Zs?L?f$zKgsvXJ0HWNPDzTH1tiugvNJ)=(#A90<4oh{_4K?ach+6##quyR?Rhiem``7 zA09XNr=e>V%~a3kMY{Xe1%*0-^3P)o%41|G%VXS8F%6Zj`y{=!+^m|GYY2I+^en!l zS;swlsjfWhRJ*0}&g?3?$mj2d-i6tpE!-HBUEwN9ME7!Aq+jd3?mw;EYI^6ItxP@p z&4i#GpMEFJ`WXIj=)Dp7{sVVpZT;!J;?c(1`3?trGw&kkbkNQ!jU-(7~;blml!uUNNwtW);H%o3ECn3wt zK6aGpJVtQ=oD31^q^V}ja(Gh>8?9OYKG)PK60@FYxIY+9l5)dYY4 zuG&xEnKNoK78lLIM+wulZYB=)e=I+m!6wEdwZw*X8Z&p5DR%38dv;zAZgG5o(yE>C zj3gB9OW~B#+;?LgJ+|=~*KSubTCvdXVrfenv5^_Akhq<9FqE*x0=|wgg-|{t*tr{! z*~K!r;R308&7;dK-)}tL&HHe>@7g0@*60K0A@)NuzC(_EPQDzbYk#PYlTGVxKbZsh zYW$T2BFeQ#dotLan7<>aj~ILdA=g;U4+-=q<|yK8Gj3#p4^TL^}+znax+ zqvaLiZL-ENyEM14hS`Oh(}iYwAQB|JH1>jmtO^%$R#7B_hp#gq;_34*(`nW~uvovI zcdI0O?Xh3l1`B1&hx#BiTUI?#7 z*H>blwGWqTWidzFO1q8BQv9NqDoI#^cppUaAv zgrdTCbUcu?Fgn=V+w1%g3`}o>J<-a@MmBcf!G%ygTNz$pNQL6|->a>Rz$+UW-U0XD z;pcp7CfT)ZN^bjed=iE@v|Q>FVt53w(5;vj;ZXP9KcAtWhnA5=*oqPCOV%u5^@;a) zxO1F*X9l7UsSc10`ufuHkQ~)@)n3T$UV7?YTAQ4mp=ad+Gr?GnIX-M9Z7v;6CRrOBt8X6nd4VF34s57gC*UtIMUQ;;8m47k!9(k;|J!qeT6x+QS zzo>~DuKgFf%7U{~^Gx0COrI4qgb86O201-PX*oT1M2aN;D=p+oz zr)MKzdktw%mI@^~DFr@W=p0VG4zmA!1_l2uJrs;035){6Zhj~mHkK>yK_(ne7*G~R za%}s|l(x><(-?Z8Tgdae(8si%bKi`h8OhI5%`pVWGScFgxP$qmyYB8hBJN`SLqnSN zrQ`AuqutAe>>bah!-QW}Fe!_3qCQG6pqQ%NP2ANW56RO-y=DWWinEd)F(NdELfAeV zc}RJ-aO6FMl<58kC`r*rjEA0QBS9m%+DHw_qXQZ%^v@v7+#4%A>n>n^G_wxs)ue$% z`k@bX$+$Rso?rP=B+ega>dlq8=kTWfe9j_CrHaXNp9~5PlvgOIPYf9qwy}+4u!|8+ zfRiy32)LOZa=sH?PDH@n$zx}svtJZv3C{hsV3p1e7CL-JRu&Oa6zyyUim4{m{Kr$q z?|etdJX1zUS_7${0LdBRa;ghr6-fxO!+V~RBU{uyBE<&I*M?u|w1@mBV|9m}rYgf$ z1D}8FR3lNs&y5l#3W?`3i|aBat^nJ%;pvxIL!p=`=(xLTh<{fO=UvxJwBkPWpGxlf5tI|nbx3wr;^*%r_Vo?Vc)8C8(l_yDa!56zhJJ-W69*} zDKKM-XwtGU^s7S0Z+2GT&!B{%=YH&?UNXKq+7J;-n>I#HqHz@QS;g-N@!jG_!5sl_ zd*_049dr@rObi*%9INm|gv7?h9iOpy9>=#Ar|?fa|i_Ln)Ln_?P8q z0GBk6^FHzISK!Yh21fJ$|7!?$=@|X$#`7)p6u-*h3-(S{(L9$75~i|p1KzA!pfu<= z4!hEwXipNBrLAL0(aaX$rpe8R>JetKC=>&5O04y`{| zO{Y(6bVl@vdut0J`!1*ZGe~WJ9oSzwq`c82^s>XrM*n;QW`BVbn>V(G#0xel0vAPD_%A+uk0#b7ixUEl9wd z4#;`ud-~!DU3oCL&`e5AC*KcI$TL(+)==m?or16)?f7ST8(D!VH*K+K zovS0=n7*GNs&HCeGdLWs<}OIZf*Xyz6W!>%bueD}R5-YNEL9K%`D6^Ek-P_;JrQN{ z-#@uqaeQ%&IP=nVx)uq5-gt#gR*5()_cOm20n5ZP#k%2G1jzy++R;oeff!BYUk)k&zLQ*-d!$yPbLSfc^#jz43YDh|agv)S+Jkv%~Ix#A-+nfzcI3?iK@fCrD7 z#0$|Bw;D_5;kAxciW7RW_>N0-DK$K`pbpD@Gb)MpR$Ay*XjSoAp49;P*my`1jY2XTs5eu8J$|+cGQVIcC{{XUo#wVzr9jQqtj?Yti*RWYqG^m z67RswzQAdhSFH;A{z_0j*cw@0vrsZqb=~uMWB>3m3yjJ~+VtM`^l%f1w4VZ=@m-*o15tq28 zFBZ%wkYXyfiMcX6hb=dxsrl@Vgtlxd;X&0+NrOAWqR^erB|W17wBJ1D=pRwz_FEs# z%O60nNJlC+${^;&oC2)&^CXRadTUJ*nh!*kPvT{i;(bo(Z7~+oL@fEkcbb3=!)(nJ z-vNiq9lvmLilB@=|4fybSsOLbh2N=zP<9rx?y(lH|tckhvz8}eq?@Q>j-85g! zH90ItIgw)g)Vgu8H{qNMeU&M*Lw$e9eIJaW-mhR%u9U0?^PGdwt~ZE3Cu^R7B}M_roCN|e>IBa&NHuYt7cTD@_oCYzl4PQbt zI++Z!`LfcTFH7T#sk^j9n@iaJDbFH}nv%sJ6ZH!>=r>V+m5li}U`St`A7#FRrM#Ym1N%D(MqDCXhqYzs}=usM_+KqBf0y`zWUnSNl0mmxmA(kV|*0} z-}pB!2_5e?zj4yDJuT<2Pi?gM$F+m;L_>S%UX&hV=+6F)%yxMFH*8r5RSCy#&n#K0 zIq($yH_`E#DY%#naA{TFH}Z+|KTbe-qAxz82M#I4`7^|Gq9WW>mD!Oyao$yX z8|88l5HQ*QEBL5cPaU8K**BRfzDnaXTi$H;OW1%wv*>Awb-+&(QIn&REd{_k$F9E}cBS=zH5 z`u}`z_)JeeH&xh|q1z#68U=w_YD1Shr~k%|>3i{2`9-Z^3yPa&&*{+sdgwPUe;|7K zd+Q?g5^b7~2%fXDojI_Y8|n8N9XWjYpHC+P={s?U?rvl>y(ln;Mwf<_$mK9JI7?S( ztm=4rK*EoF@?>)V`F(uV+T4eV4gi;=e!LU6NJKCk;FJT1J^M#Nv2A?+_h(nO?+by5 z`P#jx6?HUVM#yp6z?naz^G+^WUXhZ%UmLlB)_5A%l}l*jrjJWVElbr`r0UP?_2Xi% z;?{){;n_*00-rFBEg^w*b=8pN*A9c;gQZ(7^`3-J^0fUTn^mb%mV$1VY2H<`3=g#Q z(t}4H?C4L0>+dFzFpEfi)6<_&#+dLq+WAa--Py65$~rQ4J(J-7pFNZ2Pd;KpiFo!lis^19K=@Jsx6i*w|1!!@$r@TuT;z@K~4%5bj=5SdBbjbWM)-#{g0 zxcH^)$LRarC&gld$&BRmlaudOG~AB5nU);>f$iPSYsqiiX+IG$M+BRnqmuIWv(KbZ zrj=SYf3iK)xgA|yGWpSH>v(1dwedT7`ePOOh)?&ogW3I&R!M{N2R)C!R&U0rS1c>E z`6R%c)A8WeE=E5Ka2#sBT^$lHP>)(>Q$n#+oX?0u38|KBnjYY~*u4HMu}`^%?>7I}!?8eKjFcLLF4~ z=cs|JVvyU~BZGt}4Y8FEhi;gqN@$jOnj;Y&M8C;a$)?PVyk7$8!wMnk&c4V@~DH;GlzWo8q2R6_kP2wWqSbw zm11$_Zx~so4fXlkUh?21-and64cG9K2*dX?BsgUvQY()+q{t$t=8zV51ouYjE_2O8 zMo4ia(;;7cM>wOC@sIkJjU3$MJc_%o8e zKjq#l9c^84Ly+PIy#5`pgU%lO=`>W?zjyiW=`p!{8iT)?u6**2GDYS`>eBY3x36MO z^FQ`2e%$->$l-sToY41(y`$}k5Km35Xu@}UWhIe-iTKeof;Fr5qiP>mE_|Eb5em1m z(w+I`&X+dwRF!c^u2xm49GL}S3WAQx)aaS zA=Uk>3uXW)2`^gFQlhzwP~t$Z8eO zu>3`ZRvM#YZ!aj&`W4@1iGQH*U5!7rzC|2XX1@KY6_TtC-c7HhA93ln5Qu zOYFHQb;_n>@n}(WTL-iob^Y)vH~rCXijp~~-|g2t)Qvhk z*}`rn{tuXpo5~yL2YHb>pSUbD?Fot(LGhvJ*S?FLx?6?zf}8|Zp1l|;7-rj?Vcn`( zsjcimuB!N^yt#glF;-G*c+?Cg9n0>qbL=|D#yI52ldyjOJI6MTG}6gXQmGQ2y!ve9 zBrP`h*JAqIk9)K}AGWa9xjTHPJ)BM4r?Q$9IsrHEo1PalqGWj4`%AqiZMWA`&FK6{ zrd2$&E9_`DR2|JjD+xt0`qy-p&iim*Dp+vs`RFRKrV}vM4A0bPkrv zrL4O12c-~BSPPN}YkSR6FJEt@N9Qkm{F`GP4M@fHY8L)|3j7}d8Nv+9wUtX z^8PISGAGK}zYKurVV>#F6a-fX@``B>z(@lA^*Ux((VRB28A!neGB~$p^^Kd9dt5ab z?pjrUO9Pe*SysOs+&sYFkhSfdtrn@Rd%B@fe|6fMiN)doifSE7KIq+SkV*m5@9sK3xgKU3=F!bc zUMCOiEIh9nE#XtlY93DE33egl8JxA=Lm7!;xY{MfP5e9bClAf1b^4IOSH7`a;H6A2 zT85BH9x&26@wy1$XFnEYh0tMU@`k!fb}n8yz_^p$VXbw*xRW)q zwVK=&se|F|VdTl=f&D7tg#D^cv+cJPNtI>t3%}-x}XB!o_FclhO-)@aT}3IK`3-8@ScI zsF6EH(oo}@#+iStgECeq!{#CyzC z6)wg*byG#stjaCEokmh;57cAB%H~r-(S^W`(Mw3zAR5m>{;5xQTn-z+<+J-cutb>} zMXfIEGdgRqlkZ_baPHO~z7IEEt%SrlsVYgRwEUA&sn&_M?@H^jvx?t^{!h%QjZll- zd-H2tr0iC^khxqX8MjO}I!*-;k#$EIPGN(pRVB$_-am8y@XJ#m{dhHzF?ud$f{eHB zF3O5MpngPZcBX);lCBx3bhSAJlLa>Fz4N@o%m`%Q5p>vh1~4#fktCcfc6j&}ql_wCa- zMBU9p@Ypd5xYvW@L@<^|*QMI^+#`+u-+=eB+>ZCcHa!uJcb2EXxK#J5W+SLYXAt2UTQsWH5a&S8UTt7oct%>VZMAo$qji)K`)e^oe&X}BKV5+5 zkpCQ0mbtF(0T3G}fL%K|mZdf2PTxQ6)IqJMpgEap&fmS+UgEZLSG6Koq<^G*jTw-Q z(T~4a%A|GJ&>@_MbTuogrKqG4=2StqL?$D94lC%$Xwrcr@i!Bhy$#}(#T9aqx?m@ z%U9inMQ}Vtsz=6LSJ4n@0IpP3hKIy#HS3DoEp%TLAovr|yf_`B3njq-G%9uR)2_V2 zJuLY3)tp^y@!lgA5(FsYM}Y&ioU-~x1^)c1|1%sf1y}3J{7tjKC{rv@ar*!mXb)k1 z)qfNnHJw>>KVl(sJ7xTeVLY?hF)wh$4J_DQIJ0BYg7Og?OYhA6(ZRul^0FisDpU=vUba4uwsTV(oMy}(m) z2KWN~Obeoj=MwECQ$5%NY$a!^nVt>ou{C7`r3gJ_v&U@tZ8r_ESGNx3ir>js!zbsM zs1M~l54}E9R3PiyV|O6kHr)|@$Px9lN>IGHGX_`4q`mwml5;!pUdbVB*KEIIJDh%elP@piHn9&y<_rSU@n|_3`HP8T~B+CB)#r(sV@uW7w&<%l0!Kg`QIX!^GoU(_U6%H|6e{|6Ioe`*# z%qH$>TN(8j);8r0VFH+?zry1@Z@NG2DI?!BPYTBFlmBMtu7Bzp%wbi?quny1`#Vuh zYEVP%Y~tl!JAjtnI9hgR^w^o$vbY`(dF>jI#_+(QyATwz0f)-p&~f)EGMpAt$Rx%7 zcR#WSAO!#>qHCJeVFOrO+Y#SubFt~O?motO2kG1dhu~AS_(&DY#c$LPkX>fd>Aut)_ml>_(76A;f+4yp&zRK!1OGvtghWqHm!Wp zfg7+n+9Kc!uFHT|vM?wwXgUS{32h$eCLM7YVZM;!A-^hNyv&=*I99@f_Wl z&qc!Ch&8B*G4s_pzZyo#g0l}2mOPgcu_D-|SzZ+6ND!cE9QM5*<{4j(4B|VY{eb4C zyG8-01o~4pQfsC}b-4ydR;Ic*G}YlaG1S84)!DA<2hW6|1`ihL8#MH}DzCA^70ceo zR$-MPO~I|Cf*DGi9fnve-e!S4C7Fwi&#QXNa+1x|mSKPj1wXJZHUGh`Xyk}o)=Lyfvh^v@2g>4C!xc}d=^gWCK5Pk zMo7bS(hoAGwIpL4ZqqDOTL2lgWW+*mJa08&rK7!GBIHU+#}Xl@u3E+yi&qx7ZU#qc zn!7&Ox$hTB)jPiazG8NZd9~{%o)Sbtwg||UdMsZo4-r!Dr4T$_A&l*#&gAR2Sdh194vN`TRaIZ--9MYm&CdgoO0Ke(>`lY~t?W;#fTz_5d9J!& z@@7YYQh%=}yV_uZqtC$~xX_>v4I|zG^C=vU-Q6KoBH{DrVDJVgQ%>q^U841rs+dk+ zf|`r2XAw3qp>T3I$CgJQ;WgQ8o$eGG*@5*KC=>Ju562?Y7~-rb$GL`3jv$>PcF>}o ze05+RS6N@WnS)x?&x)5VfF3rVDP{o>jjTbALY)kSi?tx8FJz=14IhS~FBBB?l={eP z3!{AX(V5$Xw^saPP#POe60g+#n9-7kZc*%oKsEr}Ge~ZMjAggwzWnJn{5>GdX~Sb0 zc+9*Q`rQ7E$%)C2WCEI9Saz509OlVV4Sr!`vN))`w3-nG{`iCY?UZ7vBgIxpfriggpOYD2|1H)?Gqk2Rhie=~(iXT~KwBA%Je5s_3UO1^FZnCFkqLh)N3Bln%QRXP}rdtUxkXDU3^7K6lM1J1WSSVWagD z9$L>N)`%zx_0{}o^-Pv^TSq)Nq#BhT!n{&8sLw@@d1B#(P*goU}a&|U=813ufGL`;&1RB*5s%WcAhZ&7?0{sq3;GnlbW=1oT z9`tn%oxTW}YcreFS1Yn}+M26(~1ot<|R7(R;cX}PawTn$h^1jcwX=aymQ zIZIIY0z?xj^l9mOdSia{6SfD|0NT5zxXAP zt5FxsWCN)P5KYlH(vBjjWQs1LYo=0Rbq$F7Ce3QSfuIDR_aV;($-@gN(W~fb#9xms zui(aQ$b1zdi*$LV5DBd#wfE4MuavWD!E)r<5;WveB&O_r^$O{Pu ze!BlcEX>PifShn}V>WcVdQzUxoHsciA}G$9<>?2}RfosP%wai5G6En*l_}7!h?AWU z()`Zo=^S5;s{D}+=@1D6%ik< z&?ZKV#$cI^7?^qQGMA!#0+EoE?n5hcoKi)^NzgA2DH5_8F!>qO6Ded;^_0^{HTm4j z>&HcDetyWcM~!V@6D)s*_Y(R@A^aAc12=S$(Gj8zVcO#*4mEuXaV)!#3Zz_`w~(Ho zHfoSIG(MM>gn)92D`kCdQEC2{sYdY$ahD9C>v#Q~{U1L+^qC54RnWc)G>4C?fUq3ByQXfp*D zs60q8_?+A)Gs*mg<^(Eb#b)(bby6Dz-I_^3|0oEhpzqv^drXTmd2iKX20Wg-1&7!b zkdQ1Fg6J0h`M})5Lf}B8YgjhjhHh5*lg&(m@&~X*5S(K_>USx_fGQ+Zvhzsx0;sL` zxdp98t$*oMtAK9^3U`2LQ9zVDUQHx(r9ok2%ypn%Yt}3e>x6F7@K>RDG8#o91X3hj zta#UvxAwk00@vtAv0qQ5xoBy2>w*-zU@IlmWA`DTVEmW;xp4IQksfuRAAsrzil#vc zJsPuT)HlbIyRe-bs4=W-_czY+JNvlEJGFygJAV;&i~iL;Zs}j!2uMah#-j`0yB-#) zarRw?1qOlfJ6N1hevM@GBnaA6P0oNs{Cx)$&?LrUa9M=hO@TDT{NsHET8gaedwpaj zTrSo*E^FYM4h11jutRKCS8rQ|Eih7lQOj6|8O{aL-sTlDnLkz;ICWQa$E zr(jtdDRbOmW|xojIqujx+`Fxp+YJrHQw2)a_KlJcScVKOmn@GIWq;orPR}57!jRX2a^e z$VnR5+!=HR?EZO348})M2$ZG6rtv%Sf(^y7WV*`k$@&*-;jdPRDLc?qEd8F)JVis^ z9ZQ z=6F~j-choO=Tm~la8y=C=NRW!H3zMSNxKANN5k310J+ETd) zUBqljPKTI)ANF!kY^!S=x(>~-REAO{^;&?y&$Ut|57N?w+}NK;4Ved>nWYqHU16h$ zW+|amelq{J!p}PSx=(mMa;+EY1(u0k)r+Ap)=_d6nOBTUDgVg*g3@E%XjnVu8JR6a z59=3M-23%~yw758RYb;K^Txh<*QuoSFV*hVkj{#j`&)mrqmG**n%E5doxTvSz>MQ|3Lb(O2 zPUz0&t=}^R6xQzqI2W1BLTWqK?iWYjrbV348SF zeWW$dcFZo0uSTIRf~eR+0Acy z+^?5nBaB~g+(OjJ=m@hvAsWwtp84e>e4W&n${$l!Sa3=m_w)svhAlVDVcTPhCxMQs|PdnEU(}HP?ulgP$ngbx`@sq(YU`SLK zc4(?49CGu+*`vat)+-&nHPWCc|F4j8#;x^#S5eBRoUeGpjJBQjqtJz_cnYZ;0Tqwu z&)7$)vc7ktz^7y-K)x8wVC+n8^KP<)D*j(uO6D*EVi1bMg*WjX9nhX$YFmy^9>BW; z0t+x$)A6~0gYyQ&n5AHc8)EfW^GJUy@jmvSLJpw7e#rf+c>%9?{l8x8q5bzOG98Pa z)364-m!<7zP<})Cnjv%HEkOTlkzIQ0CYmlG`A(wO3w0sc)Le_%`)QXReehW#;k}Dk zQNNLo4{|25U@JOtW@&ptoYQCvW4~oP?N6C*2DDltyjg^Qtego|&t=4O67iB-#S{0k zO%eew9-IEsuH=ca}Nc)iXur z|Fl6LHqZjD3h^3LkOjG{K5gDuAb5-*bEErT?yLj+gx_ubb3>r4cRz-LTSnyIg#w0| z9?T0Mg}9v;2pF`{`N6ViVjHD^00&KOZxE2W(rFUFxnVPquMCB^pB&W`2{>TdZo>ME zhme@UeRY=!QcK%OSh+y(FMuE#X#)+9AdFR}l0DbC(vgnE)8oyOgs)E24rXlfvtHY0 zV<*vGR07D~my8Ky<8s7S?TAs^?q znLo&cBF96bf#r@^ZAwSF^%5Cs+)O~mdxQIB2V_^G`(eC70+rZdBa~1I=B1M2r=Rnj zPRmvEs=>scoN@(yb~COD8<4~>@P;p^PjDn7atQ3Sbfc{fhmZ*ab_u<-ww{`fYHO$K zKYyDh+O><%!W3)#1Nb@F4~eHClhCu&3u5Ec0<8;uNr+J9WXo+tQ9F==VeN*1kQuMs zjky5oAHf?8CkyOf!cF$^^!8=CPyXvHX z(kQ(tW6|Fl^NYGMa1KJ%NJ6W7yIpA{^WC)Z4Z@}>`T_h6&HijLm5hs3O_Zl(TsusJ zK*30!PNPD^#VfRupBXTZ?2T*)zzxpo$hV`?L`;`NyU`t#G?jg{=_W|FE3(>r3h7z!U*BGJeejIEE!Dexlm&yjKq#Z1{uOdz`ZDceS zLgZL(xF4i7Y?_t9E~2ksb-gtTnumx1?KMceEEq=yD;a%}#;lEu5v;GJE8VCOE9gly zOk<;951@iA4nO8-egR6p{?i^;Jb>2(%zy=HYO;$9G%L#khc;|_&+-1YZd>8faNo*2TLQaK3-plk z{hCOss67q0=dY>jAzgXBo*)tuH4D2nzK_^0?mV~#`cDjvj5@+_Jd&oX zR_qtwq&5qli@#`+aSGC?D1F@PrI}3#&DvW*=4^fh4qB5z$7){$u5i6s7XeE8s7;oq z!0VM^X$6;QSp<&QOPPq3@|WQZxH#>!?Q2gHVOoYVlltig`i}_yFZ5g&c4VBTmH*38 z_Owr7ZOy#sCI+?;Be2b${=7u118nX^8q}Nx#i8U|M~u#dDDT@3wpkP8N=#|`p5iRI(X3O6HVs;Wh5lKCXR--)Q|WuL*%7~B%Um-!Mn#{ur|_TARPn#ENVF%<#K@ew=*)ZBusZC)i?2x0!e|RA)QolF(a(6zhJCfE zWV|fr_-dOS?`|?706aBy{)S*vE|R&0{YihSH2tY`N05<1;I&Z*)e|j-@5$A2fAAag z51NGBmXx|=j>|d69B5miuGUA|#(-i`R=ld!pnqMVabBd8S?CyRYY4U}fe6u=L9Lec z0?$9e2h}MAH43TlZ~*1r%sF5L#HZj9D=mJRMg z$;7sZalBb%0RnWHJfn2con_FFep^b#Uw-OqHA(9n8t7-{KU|r4_$TLc!Y)bQ(H&$V zu91a>h2ORQ%)kwm1Nu+jz+lVX-oAQ%XvhS`7@thV1k;38@y~TA>z+!4eYuZzpZaT- zIUd?(*c|#&MAMhz;Z`?<0^gkK#(2<9B*Jw5=lu{}Gh71SQ}q>S$N~g_BH+$&MfE=c z83dYe$noYz2LWm3YgdwOrEq)ci!>W(31Yv7Twy*Y@;dc2mS3@rFB@gy5qIDZ;f{9E zo}rcLHb8RW07W+rSj(l6s72vPBzZ;>uLBVa_JG9W1iBkzM%e?Fi}Z{F=|PREI;%i2 zz}bzA_pc~&g3Otg^~d6`mB z#&Qgmy%yfi-XP|G=eKJne@~}v;ebyG)X$kj zb1AV)vmYg{0MD1fm8ai~j*L2oQm}<&V++OifX%!Dn;9GX|I@rCk_2&o=S6`cP3(_s zMBbHTR)BNNY)VARr9D=bXW@4^aeb?RR* zU4{z!K1&N6QwNk%CLD2{&X3U>%sg04eY+wtqO@?~@&)X2+7;x8!YYn0E_1=W<@ z2(R zePnn3!J(llX--pZ{B6)Y@dd8BJ+uD%NO19U^9thS2N8f!gy`@#V)@z!V5Sk1#?|cP zm#eKvB%txR0xzPlERt)7Mria4cVQgvPLYWw@>eE}f6x=aQ+Ti?}zM-$a z3@!XNav>NV*>EagELY%Fd?kex!)8-{Wawfi1y_Nf>O1l4NMjPn@)3q`B2;;{3Us{! zc?|@phpyQIiYS&6+y>8M(ZU0gji2Gk9BsQ(d;6ySYLB{7LyP9%MPXmcTH41uWOCiHDm#rf+Ss)|AFbVmzNK$LWVvf zq695k_*L?Uxg8>#n%9w&t|asUXf+#j2?#wKQzs+gn9Y5;1)PrBK;+`JR130Cz*PdP z?1e66z&h*b#P@U;akv`;JKN4k#KQXp-aU-6MK!mcwOi&vD#| zpnxI#tb+Br)KH;_@bY@SYeLd`GEmyOUiYJ1=)qo8h#f^m9T(`7Z``%_+^#c@n{GtB zP%;EypQL9Aw{Q})ADpj!tJ#MF{eU{u82B)rE~dJ0B2vqYR%BqBMDWNWw%xI;tb0*| z2)X4!>iT2?NSkg%lF@3aAX0E@|5&4MRU+J>jm)l&fF7;m&S0)|k%$hWez6SXNX+h5 zotSK@h3pq9rU?sNt3d`s&}r-Fz)BKl4X0-hxkl$s^o~50CX4TW4adSP&AX+_y&}80 zyb6FcG^Se9<$LBTT{SI_MIa&eJ~!3jle{5;BZ)ET(M=SLxpR`)&w1?m_X@A%C;O5J z99N-Pmf*$kc8K4IgkDPxp>TSkOYf`nU$8gm?ijIUbp8W+`VwIEZfI!RALh~MVLuaj zl8H<$0!6gI|B}g}Ydz=}5|9+(VmXpReWyzEcRLSdZJ7;|4II=wtSFD@>1?Tk zLHb2zvmAW0Y=6uBt~Otg5Xi>Dvi%ku9QVap+3J?|2(C?t*qALJDBJt`I@T-YaX@E3 zO6B0k&-qX56F@iZK^+)v;1f?FT_j%u#t%+O4@z_SLCjQyn}kQFS&Mxkn>u&584dFt z@SxBp`j7_Fm<%)4cbW0n&J={D!xroKV`WGsf@LD3ImrZ}P?$I~4I~24L@2*z3X>bC zXd6(CTxlsyXfmyERPF~B*cR)nY(l?&hEfh#c>ym0nNx!%!7P9UAG}9eU{Pr8dEPF) zOJX6sYLsNVOxN%i<%&&f6Ne#`Dz!jaAWTGjoQlb(c4K@5U5RM6L-ersvl9ZaBD;s! z-u11LSTJ=V`$0H2D1WhB|B^oTs->KQTOn8(T{#|FL4u-J@e#JG1`ywxC)lNeFKYzq zJaQ7`ns|LEdQFVLASJ_Y=q+itzx+EzH3E}AKk7vATH_joRO5dU(It!zUS?=6%0|MWX21o+NDL zaw<~K?z#^Zli`MVyBX6`RRe*9BfIC6&x*Y@(4Br;x8RTM+A!N8De%J|R^O+Jlw0OO z`yU{6qLAkn02Y9rz!eZ)dolSF3fEO8lQQXJl)#TE5uP+eNqH+Hzyy2W_BxIKf9M6wXyR5IthE2F%8{l32i;*a8D zt`2I$t5J%~&0#mC_NNneo&fSz4d{R`ZUuQ>mAA*(n`ric<_`vTryq_grs2OzY^Rj~ zZ!mdT)Q*(5`L6}1L%){mH8Mu*N-ldR#g9eXJ{_yLv_a>9=BWEHH76G>;0R9E)ca~9}zEptqXJ!_27lB zY^#_m!%IL{5@zwoZ=|pV-}w=54Yb+;T;7@SYvvhGBWL4`xFSY$th(cQ%w18D;I~Vf z1N(0Q<l$@Kod~d zc?;Kfh@D`$6)DP6h$-y$QBT>?>(s^BWUJ(eXp@};WpWTnV?FGF};QL=}_Fi*b@ zl+u^h=8XaG0eyAA4J0-I_iY;k{)+%mBF&04DdA*8YY046$>bPZNkruT!j_-p>A$U+ zom2MVUg!Ha86+;4r`raGvI&I@Yyx$%oa3*HdHP)zPtVS2maObSfh51AC}+*@#t5T- zXr`6X?UgfFN>0!V=6OA2nS^OlCbwxp+cSP+6#ZoPM^XjK7c^%)xi6g5W4BpgUvm5I zYkCL1ovw&@KX0T>OA0R{0oq`jFIY(jolabrzkk%&j{??7?W601;*T7*05G9n zx#CANT~@Ryu7{G`Vd^&FzVh1}q(fzvtMyW^lSF-iZ#aI$2+Dm99&}}3G&iqa>nE8x zP}OI$g#VZpt+{|capcQ=CeYOeR$Zv}s$OE5qp3GGo+GMPMt+tm7{`Gq?ct^_02}09 zI$0oB7pg-S7tP{o3KySCg@h&l0I8*~oCcCP+ulvML&5GQx2gOy;rAy|!vur6UPyD4 z`g@izu=z)kGhzBfLhX@~+jPl}4_&SFrXV%rQi9Xf43Wu5+aL=89h053U!Y0AM#j1N zOuLFoo$EFS02XsM5g!jUaA2Ut(j5}*lBSh2&Af$2Y!^_2HZp;|m5n3CQ&f9JE%Y% z14!oiet}pW`>OQWBlREtL*4_q%zXd#vD9DoAjbtjQ(S^MLt*d#M&O13fuC$ot=9iv zO`Ll?l=&XV$91%!?Iha5xa^|Xl$bPQ4V5udOfKEn)UY|$ZY8Cp;u$8xlF@Mql_t5Y zY1SpuiZW)MN~~LhiD;Dj7+Et$GxW@y--EN~%)j%`@AZ3r&-43!zTfxfBQ=!efi#40 ze!kTKpq$cMQuP~PrK2q}Y&7-YK>X$kRU zgp$FReG3FkmC`=}L-ub`%uPc4g1OO%&GpPQYQm}C*CB<|X| zhOo{CvkLkQ+hjICob>*`;7r+J+Zri}O<)}Nhg9c8n9viz$~6IKbihD5DmM-RC)rC% zL1ue;-C|g!#)g4=R$B|jGt<**C_t>t4)HXia3%w_ks2Hh2L_{H;XDY5K>@G#{lGHH z9rRGu9vB(BAs){0w=);(QM7+n#}sSW3D@2icQ|-&za&n%Y&uyZGr6h|L+0~A(GO(F zh%jbFz)gUHi$c6+U?qm@(!gt_-~KjhExJR>z`02RGMt(I?8BV6BtL9OjPmm?kW4fC zS#cf-Mo}(Gf+jUv6wiXk<;1=f9h)D->DdC*^H6#fDeMX$R_g2P8`gkfJRQA;A+{!W z{thvM8>LSRx-eZNG(M^^lo4-*$mWKH?`L`MAdft&V$hfB1-J^!bh_4>dO0ty;%QYWGD=$n)23E{Woy=&ssha?+v|JKZjKq}AJ-j)E%p7DBJ zqC)jy=WUfhx0WXSHx@H-02|d0=598 z)O=R$KJFbfUd+_d{ZbWBr6OHrd?Hr19;I9MJd;@}rrJFQ9TRXOeCIZOrO7#_NkOBqY-raU z#z>Q6@I=|_@~xW=80hSE+bCoBQV(adIqMD)vO4^$9beE{3@Y1B!^S_7vBs{YoW zD@1Rg`Y_U#t#_!q>lOX+_O|P;hKm7FMkAx={Apge8FD~0g z#R*5l27hi^TH*0kdbA*cUcTRh@+Q2nRFNMHdXwHh2twmOU^#=V|dBlO*>_Z2L)#>#!k4Xh5yY?3v1pFqFgpd=W!i z#aEyh0U>w1cJ#Kw}RlWCW5iOc!|lh}$I~I0&~_s3Mg)pMWC7_*gGr zJ;`Twcc|%4$>sUGU#e|;dc1wx^}Tqv;Q7$+Zr8Q@*35v%(Dg6odFN0Vb2eta3ED1op6LBdztyr#Xb>NGfqM?6XQi! zd|5`m&_keuBBi$6_3(4+uVOJ>8u~%GK=ZqIqF(Uq@c&K*OD43 zG0T7N9K-iE3acXte^{R_a&D{ zHomEy?{Pp+PZ5dnujijZ`|irnTLon;LdoR;s+l6+nAX)!B zu;3`ew;UYzK4v<;;P^$vu`Pn#@^Niz2sL6_s>OLGR)ASks^Vy zVPxI1pMZRujpc1II{@6?uk^LKOXZr=wJ)g@^`U^?&r6O%WbNqlYgcj*KozDU==fO{ U>)$_f83lf156a&1-PDBt01Hsg%>V!Z diff --git a/icons/obj/butts.dmi b/icons/obj/butts.dmi new file mode 100644 index 0000000000000000000000000000000000000000..104906120d4eb4cdf3aa48b513e62b60dad0b4e1 GIT binary patch literal 27429 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 literal 0 HcmV?d00001 diff --git a/icons/obj/chronos.dmi b/icons/obj/chronos.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e544110b5d18a1ecb5cab2456e64225e3c5a4ba7 GIT binary patch literal 7558 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%0A7djGrwNGSn*jbq0aWx`bb^ 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 delta 14759 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 flou%oBZF;YVk{^I-xW?nGlQ~A4iWzk9L7>d From 6d4551d0369708443ccae84607b80a8f9b7cb8ee Mon Sep 17 00:00:00 2001 From: Atermonera Date: Sun, 10 May 2020 15:12:38 -0700 Subject: [PATCH 092/105] Merge pull request #7102 from Razgriz1032/master Ian shirt for Teshari attempt 2 --- icons/mob/species/seromi/suit.dmi | Bin 102270 -> 104107 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/species/seromi/suit.dmi b/icons/mob/species/seromi/suit.dmi index d10902a6ffb7842dc59a78bcf8678ff5c2cfd00f..726fb11a8ab7e30a665b75b84450355456a0aa60 100644 GIT binary patch delta 5796 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 Date: Sun, 10 May 2020 15:40:09 -0700 Subject: [PATCH 095/105] Merge pull request #7107 from VOREStation/pol-holohear Prevent holopad chat from going to lobby --- code/modules/mob/new_player/new_player.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 1f0d451ee1..8365d73cbb 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -608,6 +608,9 @@ /mob/new_player/hear_holopad_talk(list/message_pieces, var/verb = "says", var/mob/speaker = null) return +/mob/new_player/hear_holopad_talk(list/message_pieces, var/verb = "says", var/mob/speaker = null) + return + // Prevents lobby players from seeing emotes, even with ghosteyes /mob/new_player/show_message(msg, type, alt, alt_type) return From 80e3e16ce722c16de51ba5646b84863fa783f489 Mon Sep 17 00:00:00 2001 From: Rykka Date: Sun, 10 May 2020 19:12:39 -0400 Subject: [PATCH 099/105] Add _vr where appropriate, split chronos mob files into chronos_vr --- icons/mob/chronos_mob_vr.dmi | Bin 0 -> 23949 bytes icons/mob/mob.dmi | Bin 226391 -> 211295 bytes icons/obj/{butts.dmi => butts_vr.dmi} | Bin icons/obj/{chronos.dmi => chronos_vr.dmi} | Bin 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/mob/chronos_mob_vr.dmi rename icons/obj/{butts.dmi => butts_vr.dmi} (100%) rename icons/obj/{chronos.dmi => chronos_vr.dmi} (100%) diff --git a/icons/mob/chronos_mob_vr.dmi b/icons/mob/chronos_mob_vr.dmi new file mode 100644 index 0000000000000000000000000000000000000000..06b1ca66863bcb3ede04aa066415d51506bfcfb0 GIT binary patch literal 23949 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 delta 36034 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 diff --git a/icons/obj/butts.dmi b/icons/obj/butts_vr.dmi similarity index 100% rename from icons/obj/butts.dmi rename to icons/obj/butts_vr.dmi diff --git a/icons/obj/chronos.dmi b/icons/obj/chronos_vr.dmi similarity index 100% rename from icons/obj/chronos.dmi rename to icons/obj/chronos_vr.dmi From 29037fd40a7f471aa9052dd9d3ec20f39287175f Mon Sep 17 00:00:00 2001 From: Rykka Date: Sun, 10 May 2020 21:53:31 -0400 Subject: [PATCH 100/105] AI PiP Fixes Fixes the undefined icon resulting in this: ![https://i.tigercat2000.net/2020/05/firefox_4x2cbYTrT1.png](https://i.tigercat2000.net/2020/05/firefox_4x2cbYTrT1.png) Fixes the two buttons being misaligned with the UI. Fixes double-clicking inside the AI PiP room teleporting the AI Eye out to the room and completely breaking the view. Do note that double-clicking no longer works at all inside the multi-cam room, as a tradeoff for completely preventing UI breaks. --- code/_onclick/hud/_defines.dm | 4 ++-- code/_onclick/hud/picture_in_picture.dm | 1 + code/modules/mob/freelook/ai/eye.dm | 7 ++++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index 4736d5d074..fa14c1ca48 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -75,8 +75,8 @@ #define ui_ai_pda_log "SOUTH:6,WEST+11:16" #define ui_ai_take_picture "SOUTH:6,WEST+12:16" #define ui_ai_view_images "SOUTH:6,WEST+13:16" -#define ui_ai_multicam "SOUTH+1:6,WEST+13" -#define ui_ai_add_multicam "SOUTH+1:6,WEST+14" +#define ui_ai_multicam "SOUTH+1:6,WEST+12:16" +#define ui_ai_add_multicam "SOUTH+1:6,WEST+13:16" //Gun buttons #define ui_gun1 "EAST-2:26,SOUTH+2:7" diff --git a/code/_onclick/hud/picture_in_picture.dm b/code/_onclick/hud/picture_in_picture.dm index a7d23c913d..b824fad687 100644 --- a/code/_onclick/hud/picture_in_picture.dm +++ b/code/_onclick/hud/picture_in_picture.dm @@ -2,6 +2,7 @@ name = "Picture-in-picture" screen_loc = "CENTER" plane = PLANE_WORLD + icon = null var/atom/center var/width = 0 var/height = 0 diff --git a/code/modules/mob/freelook/ai/eye.dm b/code/modules/mob/freelook/ai/eye.dm index 67a1b810d7..50f0f75399 100644 --- a/code/modules/mob/freelook/ai/eye.dm +++ b/code/modules/mob/freelook/ai/eye.dm @@ -86,7 +86,12 @@ /atom/proc/move_camera_by_click() if(istype(usr, /mob/living/silicon/ai)) var/mob/living/silicon/ai/AI = usr - if(AI.eyeobj && (AI.multicam_on || (AI.client.eye == AI.eyeobj))) + if(AI.eyeobj) ++ if(!AI.multicam_on || AI.client.eye != AI.eyeobj) ++ return ++ var/area/A = get_area(AI.eyeobj) ++ if(istype(A, /area/ai_multicam_room)) ++ return var/turf/T = get_turf(src) if(T) AI.eyeobj.setLoc(T) From dd2efa029dedf9b0a42dffcf908493ad6f1293cb Mon Sep 17 00:00:00 2001 From: Rykka Date: Sun, 10 May 2020 22:00:41 -0400 Subject: [PATCH 101/105] Bad Formatting, my bad. --- code/modules/mob/freelook/ai/eye.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/freelook/ai/eye.dm b/code/modules/mob/freelook/ai/eye.dm index 50f0f75399..5b37804da3 100644 --- a/code/modules/mob/freelook/ai/eye.dm +++ b/code/modules/mob/freelook/ai/eye.dm @@ -87,11 +87,11 @@ if(istype(usr, /mob/living/silicon/ai)) var/mob/living/silicon/ai/AI = usr if(AI.eyeobj) -+ if(!AI.multicam_on || AI.client.eye != AI.eyeobj) -+ return -+ var/area/A = get_area(AI.eyeobj) -+ if(istype(A, /area/ai_multicam_room)) -+ return + if(!AI.multicam_on || AI.client.eye != AI.eyeobj) + return + var/area/A = get_area(AI.eyeobj) + if(istype(A, /area/ai_multicam_room)) + return var/turf/T = get_turf(src) if(T) AI.eyeobj.setLoc(T) From 7dcd7efd67e48db5a4f1922b510e7df60306bbf0 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Sun, 10 May 2020 23:40:47 -0400 Subject: [PATCH 102/105] Testing init fixes --- code/game/atoms.dm | 4 ++-- code/modules/maps/tg/reader.dm | 22 ++++++++-------------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index ab703fa650..123daae654 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -37,8 +37,8 @@ // During dynamic mapload (reader.dm) this assigns the var overrides from the .dmm file // Native BYOND maploading sets those vars before invoking New(), by doing this FIRST we come as close to that behavior as we can. - if(use_preloader && (src.type == _preloader.target_path))//in case the instanciated atom is creating other atoms in New() - _preloader.load(src) + if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New() + GLOB._preloader.load(src) // Pass our arguments to InitAtom so they can be passed to initialize(), but replace 1st with if-we're-during-mapload. var/do_initialize = SSatoms.initialized diff --git a/code/modules/maps/tg/reader.dm b/code/modules/maps/tg/reader.dm index 71adb65bad..ffbc13be57 100644 --- a/code/modules/maps/tg/reader.dm +++ b/code/modules/maps/tg/reader.dm @@ -2,15 +2,9 @@ //SS13 Optimized Map loader ////////////////////////////////////////////////////////////// -/* //global datum that will preload variables on atoms instanciation GLOBAL_VAR_INIT(use_preloader, FALSE) GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) -*/ - -//global datum that will preload variables on atoms instanciation -var/global/dmm_suite/preloader/_preloader = new() -var/global/use_preloader = FALSE /dmm_suite // /"([a-zA-Z]+)" = \(((?:.|\n)*?)\)\n(?!\t)|\((\d+),(\d+),(\d+)\) = \{"([a-zA-Z\n]*)"\}/g @@ -350,7 +344,7 @@ var/global/use_preloader = FALSE index = members.len if(members[index] != /area/template_noop) var/atom/instance - _preloader.setup(members_attributes[index])//preloader for assigning set variables on atom creation + GLOB._preloader.setup(members_attributes[index])//preloader for assigning set variables on atom creation var/atype = members[index] for(var/area/A in world) if(A.type == atype) @@ -361,8 +355,8 @@ var/global/use_preloader = FALSE if(crds) instance.contents.Add(crds) - if(use_preloader && instance) - _preloader.load(instance) + if(GLOB.use_preloader && instance) + GLOB._preloader.load(instance) //then instance the /turf and, if multiple tiles are presents, simulates the DMM underlays piling effect @@ -398,7 +392,7 @@ var/global/use_preloader = FALSE //Instance an atom at (x,y,z) and gives it the variables in attributes /dmm_suite/proc/instance_atom(path,list/attributes, turf/crds, no_changeturf, orientation=0) - _preloader.setup(attributes, path) + GLOB._preloader.setup(attributes, path) if(crds) if(!no_changeturf && ispath(path, /turf)) @@ -406,8 +400,8 @@ var/global/use_preloader = FALSE else . = create_atom(path, crds)//first preloader pass - if(use_preloader && .)//second preloader pass, for those atoms that don't ..() in New() - _preloader.load(.) + if(GLOB.use_preloader && .)//second preloader pass, for those atoms that don't ..() in New() + GLOB._preloader.load(.) //custom CHECK_TICK here because we don't want things created while we're sleeping to not initialize if(TICK_CHECK) @@ -530,7 +524,7 @@ var/global/use_preloader = FALSE /dmm_suite/preloader/proc/setup(list/the_attributes, path) if(the_attributes.len) - use_preloader = TRUE + GLOB.use_preloader = TRUE attributes = the_attributes target_path = path @@ -540,7 +534,7 @@ var/global/use_preloader = FALSE if(islist(value)) value = deepCopyList(value) what.vars[attribute] = value - use_preloader = FALSE + GLOB.use_preloader = FALSE /area/template_noop name = "Area Passthrough" From 9cf164d66ceefbe4fbbe691acb43b7064c737bde Mon Sep 17 00:00:00 2001 From: ShadowLarkens Date: Sun, 10 May 2020 21:14:52 -0700 Subject: [PATCH 103/105] Fix AI multicam exploits & a few other bugs --- code/_onclick/hud/picture_in_picture.dm | 51 +++++++-- code/_onclick/hud/screen_objects.dm | 1 - .../modules/mob/living/silicon/ai/multicam.dm | 103 +++++++++++++++--- code/modules/overmap/spacetravel.dm | 5 + icons/misc/pic_in_pic.dmi | Bin 3370 -> 3598 bytes 5 files changed, 130 insertions(+), 30 deletions(-) diff --git a/code/_onclick/hud/picture_in_picture.dm b/code/_onclick/hud/picture_in_picture.dm index b824fad687..14b6a862c2 100644 --- a/code/_onclick/hud/picture_in_picture.dm +++ b/code/_onclick/hud/picture_in_picture.dm @@ -12,7 +12,7 @@ var/obj/screen/component_button/button_expand var/obj/screen/component_button/button_shrink - var/mutable_appearance/standard_background + var/list/background_mas = list() var/const/max_dimensions = 10 /obj/screen/movable/pic_in_pic/Initialize() @@ -36,11 +36,17 @@ set_view_size(width-1, height-1) /obj/screen/movable/pic_in_pic/proc/make_backgrounds() - standard_background = new /mutable_appearance() - standard_background.icon = 'icons/misc/pic_in_pic.dmi' - standard_background.icon_state = "background" - standard_background.layer = DISPOSAL_LAYER - standard_background.plane = PLATING_PLANE + var/mutable_appearance/base = new /mutable_appearance() + base.icon = 'icons/misc/pic_in_pic.dmi' + base.layer = DISPOSAL_LAYER + base.plane = PLATING_PLANE + base.appearance_flags = PIXEL_SCALE + + for(var/direction in cardinal) + var/mutable_appearance/dir = new /mutable_appearance(base) + dir.dir = direction + dir.icon_state = "background_[direction]" + background_mas += dir /obj/screen/movable/pic_in_pic/proc/add_buttons() var/static/mutable_appearance/move_tab @@ -97,11 +103,34 @@ /obj/screen/movable/pic_in_pic/proc/add_background() if((width > 0) && (height > 0)) - var/matrix/M = matrix() - M.Scale(width + 0.5, height + 0.5) - M.Translate((width-1)/2 * world.icon_size, (height-1)/2 * world.icon_size) - standard_background.transform = M - overlays += standard_background + for(var/mutable_appearance/dir in background_mas) + var/matrix/M = matrix() + var/x_scale = 1 + var/y_scale = 1 + + var/x_off = 0 + var/y_off = 0 + + if(dir.dir & (NORTH|SOUTH)) + x_scale = width + x_off = (width-1)/2 * world.icon_size + if(dir.dir & NORTH) + y_off = ((height-1) * world.icon_size) + 3 + else + y_off = -3 + + if(dir.dir & (EAST|WEST)) + y_scale = height + y_off = (height-1)/2 * world.icon_size + if(dir.dir & EAST) + x_off = ((width-1) * world.icon_size) + 3 + else + x_off = -3 + + M.Scale(x_scale, y_scale) + M.Translate(x_off, y_off) + dir.transform = M + overlays += dir /obj/screen/movable/pic_in_pic/proc/set_view_size(width, height, do_refresh = TRUE) width = CLAMP(width, 0, max_dimensions) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 367ed9d153..ab6985bdbd 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -610,7 +610,6 @@ /obj/screen/component_button var/obj/screen/parent - /obj/screen/component_button/Initialize(mapload, obj/screen/new_parent) . = ..() parent = new_parent diff --git a/code/modules/mob/living/silicon/ai/multicam.dm b/code/modules/mob/living/silicon/ai/multicam.dm index 9a973e7fa3..018454608c 100644 --- a/code/modules/mob/living/silicon/ai/multicam.dm +++ b/code/modules/mob/living/silicon/ai/multicam.dm @@ -2,7 +2,7 @@ /obj/screen/movable/pic_in_pic/ai var/mob/living/silicon/ai/ai - var/mutable_appearance/highlighted_background + var/list/highlighted_mas = list() var/highlighted = FALSE var/mob/observer/eye/aiEye/pic_in_pic/aiEye @@ -12,9 +12,12 @@ aiEye.screen = src /obj/screen/movable/pic_in_pic/ai/Destroy() + . = ..() + if(!QDELETED(aiEye)) + QDEL_NULL(aiEye) + else + aiEye = null set_ai(null) - QDEL_NULL(aiEye) - return ..() /obj/screen/movable/pic_in_pic/ai/Click() ..() @@ -23,22 +26,57 @@ /obj/screen/movable/pic_in_pic/ai/make_backgrounds() ..() - highlighted_background = new /mutable_appearance() - highlighted_background.icon = 'icons/misc/pic_in_pic.dmi' - highlighted_background.icon_state = "background_highlight" - highlighted_background.layer = DISPOSAL_LAYER - highlighted_background.plane = PLATING_PLANE + var/mutable_appearance/base = new /mutable_appearance() + base.icon = 'icons/misc/pic_in_pic.dmi' + base.layer = DISPOSAL_LAYER + base.plane = PLATING_PLANE + base.appearance_flags = PIXEL_SCALE + + for(var/direction in cardinal) + var/mutable_appearance/dir = new /mutable_appearance(base) + dir.dir = direction + dir.icon_state = "background_highlight_[direction]" + highlighted_mas += dir /obj/screen/movable/pic_in_pic/ai/add_background() if((width > 0) && (height > 0)) - var/matrix/M = matrix() - M.Scale(width + 0.5, height + 0.5) - M.Translate((width-1)/2 * world.icon_size, (height-1)/2 * world.icon_size) - highlighted_background.transform = M - standard_background.transform = M - overlays += highlighted ? highlighted_background : standard_background + if(!highlighted) + return ..() + + for(var/mutable_appearance/dir in highlighted_mas) + var/matrix/M = matrix() + var/x_scale = 1 + var/y_scale = 1 + + var/x_off = 0 + var/y_off = 0 + + if(dir.dir & (NORTH|SOUTH)) + x_scale = width + x_off = (width-1)/2 * world.icon_size + if(dir.dir & NORTH) + y_off = ((height-1) * world.icon_size) + 3 + else + y_off = -3 + + if(dir.dir & (EAST|WEST)) + y_scale = height + y_off = (height-1)/2 * world.icon_size + if(dir.dir & EAST) + x_off = ((width-1) * world.icon_size) + 3 + else + x_off = -3 + + M.Scale(x_scale, y_scale) + M.Translate(x_off, y_off) + dir.transform = M + overlays += dir /obj/screen/movable/pic_in_pic/ai/set_view_size(width, height, do_refresh = TRUE) + if(!aiEye) + qdel(src) + return + aiEye.static_visibility_range = (round(max(width, height) / 2) + 1) if(ai) ai.camera_visibility(aiEye) @@ -46,27 +84,50 @@ /obj/screen/movable/pic_in_pic/ai/set_view_center(atom/target, do_refresh = TRUE) ..() + if(!aiEye) + qdel(src) + return + aiEye.setLoc(get_turf(target)) /obj/screen/movable/pic_in_pic/ai/refresh_view() ..() + if(!aiEye) + qdel(src) + return + aiEye.setLoc(get_turf(center)) /obj/screen/movable/pic_in_pic/ai/proc/highlight() if(highlighted) return + if(!aiEye) + qdel(src) + return highlighted = TRUE - overlays -= standard_background - overlays += highlighted_background + overlays.Cut() + add_background() + add_buttons() /obj/screen/movable/pic_in_pic/ai/proc/unhighlight() if(!highlighted) return + if(!aiEye) + qdel(src) + return highlighted = FALSE - overlays -= highlighted_background - overlays += standard_background + overlays.Cut() + add_background() + add_buttons() /obj/screen/movable/pic_in_pic/ai/proc/set_ai(mob/living/silicon/ai/new_ai) + if(!aiEye && !QDELETED(src)) + if(new_ai) + to_chat(new_ai, "

You've run into a unfixable bug with AI eye code. \ +In order to create a new multicam, you will have to select a different camera first before trying to add one, or ask an admin to fix you. \ +Whatever you did that made the last camera window disappear-- don't do that again.

") + qdel(src) + return if(ai) ai.multicam_screens -= src ai.all_eyes -= aiEye @@ -88,6 +149,8 @@ icon = 'icons/misc/pic_in_pic.dmi' icon_state = "room_background" flags = NOJAUNT + plane = SPACE_PLANE + layer = AREA_LAYER + 0.1 /turf/unsimulated/ai_visible/Initialize() . = ..() @@ -182,6 +245,10 @@ GLOBAL_DATUM(ai_camera_room_landmark, /obj/effect/landmark/ai_multicam_room) disable_camera_telegraphing() if(screen && screen.ai) screen.ai.all_eyes -= src + if(!QDELETED(screen)) + QDEL_NULL(screen) + else + screen = null return ..() //AI procs diff --git a/code/modules/overmap/spacetravel.dm b/code/modules/overmap/spacetravel.dm index a51cfc3f6d..ac5846202a 100644 --- a/code/modules/overmap/spacetravel.dm +++ b/code/modules/overmap/spacetravel.dm @@ -63,11 +63,16 @@ proc/overmap_spacetravel(var/turf/space/T, var/atom/movable/A) if (!M) return + // Don't let AI eyes yeet themselves off the map + if(istype(A, /mob/observer/eye)) + return + if(A.lost_in_space()) if(!QDELETED(A)) qdel(A) return + var/nx = 1 var/ny = 1 var/nz = 1 diff --git a/icons/misc/pic_in_pic.dmi b/icons/misc/pic_in_pic.dmi index 9c550f3c25ecdf6817afd63dc0843875e245dfaa..cdac1295132945eeb87decca007cef4a35d5f92b 100644 GIT binary patch literal 3598 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 literal 3370 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 E2DHmSY5)KL From 3e0932093d52b9f6cce9b9846125e921a6e67768 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Mon, 11 May 2020 00:17:55 -0400 Subject: [PATCH 104/105] Re-init regexes and other statics --- code/modules/maps/tg/reader.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/maps/tg/reader.dm b/code/modules/maps/tg/reader.dm index ffbc13be57..b7bf3561f5 100644 --- a/code/modules/maps/tg/reader.dm +++ b/code/modules/maps/tg/reader.dm @@ -30,6 +30,12 @@ GLOBAL_DATUM_INIT(_preloader, /dmm_suite/preloader, new) * */ /dmm_suite/load_map(dmm_file as file, x_offset as num, y_offset as num, z_offset as num, cropMap as num, measureOnly as num, no_changeturf as num, orientation as num) + + dmmRegex = new/regex({""(\[a-zA-Z]+)" = \\(((?:.|\n)*?)\\)\n(?!\t)|\\((\\d+),(\\d+),(\\d+)\\) = \\{"(\[a-zA-Z\n]*)"\\}"}, "g") + trimQuotesRegex = new/regex({"^\[\\s\n]+"?|"?\[\\s\n]+$|^"|"$"}, "g") + trimRegex = new/regex("^\[\\s\n]+|\[\\s\n]+$", "g") + modelCache = list() + //How I wish for RAII if(!measureOnly) Master.StartLoadingMap() From e2bf78a196789824b627954abdbf7953cae2ba82 Mon Sep 17 00:00:00 2001 From: Arokha Sieyes Date: Mon, 11 May 2020 01:05:35 -0400 Subject: [PATCH 105/105] Fix depthours requirement for never-used departments --- code/game/jobs/job/job_vr.dm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/game/jobs/job/job_vr.dm b/code/game/jobs/job/job_vr.dm index 05874df0d1..3ffd0d05f9 100644 --- a/code/game/jobs/job/job_vr.dm +++ b/code/game/jobs/job/job_vr.dm @@ -25,6 +25,9 @@ return (available_in_playhours(C) == 0) /datum/job/proc/available_in_playhours(client/C) - if(C && config.use_playtime_restriction_for_jobs && isnum(C.play_hours[pto_type]) && dept_time_required > 0) - return max(0, dept_time_required - C.play_hours[pto_type]) + if(C && config.use_playtime_restriction_for_jobs) + if(isnum(C.play_hours[pto_type])) // Has played that department before + return max(0, dept_time_required - C.play_hours[pto_type]) + else // List doesn't have that entry, maybe never played, maybe invalid PTO type (you should fix that...) + return dept_time_required // Could be 0, too, which is fine! They can play that return 0 \ No newline at end of file