diff --git a/baystation12.dme b/baystation12.dme index efe4602b910..922a2bdd63e 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -52,6 +52,7 @@ #define FILE_DIR "sound/violin" #define FILE_DIR "sound/voice" #define FILE_DIR "sound/voice/Serithi" +#define FILE_DIR "sound/vox" #define FILE_DIR "sound/weapons" // END_FILE_DIR // BEGIN_PREFERENCES @@ -256,8 +257,6 @@ #include "code\game\gamemodes\nuclear\pinpointer.dm" #include "code\game\gamemodes\revolution\revolution.dm" #include "code\game\gamemodes\revolution\rp_revolution.dm" -#include "code\game\gamemodes\sandbox\h_sandbox.dm" -#include "code\game\gamemodes\sandbox\sandbox.dm" #include "code\game\gamemodes\traitor\traitor.dm" #include "code\game\gamemodes\wizard\rightandwrong.dm" #include "code\game\gamemodes\wizard\soulstone.dm" @@ -387,6 +386,7 @@ #include "code\game\machinery\doors\checkForMultipleDoors.dm" #include "code\game\machinery\doors\door.dm" #include "code\game\machinery\doors\firedoor.dm" +#include "code\game\machinery\doors\multi_tile.dm" #include "code\game\machinery\doors\poddoor.dm" #include "code\game\machinery\doors\shutters.dm" #include "code\game\machinery\doors\unpowered.dm" @@ -585,6 +585,7 @@ #include "code\game\objects\items\weapons\tanks\jetpack.dm" #include "code\game\objects\items\weapons\tanks\tank_types.dm" #include "code\game\objects\items\weapons\tanks\tanks.dm" +#include "code\game\objects\random\random.dm" #include "code\game\objects\storage\coat.dm" #include "code\game\objects\structures\barsign.dm" #include "code\game\objects\structures\bedsheet_bin.dm" @@ -709,6 +710,7 @@ #include "code\modules\admin\verbs\striketeam_syndicate.dm" #include "code\modules\admin\verbs\ticklag.dm" #include "code\modules\admin\verbs\tripAI.dm" +#include "code\modules\admin\verbs\vox_raiders.dm" #include "code\modules\assembly\assembly.dm" #include "code\modules\assembly\bomb.dm" #include "code\modules\assembly\helpers.dm" @@ -983,6 +985,7 @@ #include "code\modules\mob\living\silicon\pai\recruit.dm" #include "code\modules\mob\living\silicon\pai\say.dm" #include "code\modules\mob\living\silicon\pai\software.dm" +#include "code\modules\mob\living\silicon\robot\component.dm" #include "code\modules\mob\living\silicon\robot\death.dm" #include "code\modules\mob\living\silicon\robot\emote.dm" #include "code\modules\mob\living\silicon\robot\examine.dm" @@ -992,6 +995,7 @@ #include "code\modules\mob\living\silicon\robot\life.dm" #include "code\modules\mob\living\silicon\robot\login.dm" #include "code\modules\mob\living\silicon\robot\robot.dm" +#include "code\modules\mob\living\silicon\robot\robot_damage.dm" #include "code\modules\mob\living\silicon\robot\robot_items.dm" #include "code\modules\mob\living\silicon\robot\robot_modules.dm" #include "code\modules\mob\living\silicon\robot\robot_movement.dm" @@ -1002,6 +1006,7 @@ #include "code\modules\mob\living\simple_animal\parrot.dm" #include "code\modules\mob\living\simple_animal\shade.dm" #include "code\modules\mob\living\simple_animal\simple_animal.dm" +#include "code\modules\mob\living\simple_animal\vox.dm" #include "code\modules\mob\living\simple_animal\worm.dm" #include "code\modules\mob\living\simple_animal\friendly\cat.dm" #include "code\modules\mob\living\simple_animal\friendly\corgi.dm" @@ -1102,7 +1107,9 @@ #include "code\modules\projectiles\guns\energy\stun.dm" #include "code\modules\projectiles\guns\energy\temperature.dm" #include "code\modules\projectiles\guns\projectile\automatic.dm" +#include "code\modules\projectiles\guns\projectile\bow.dm" #include "code\modules\projectiles\guns\projectile\pistol.dm" +#include "code\modules\projectiles\guns\projectile\pneumatic.dm" #include "code\modules\projectiles\guns\projectile\revolver.dm" #include "code\modules\projectiles\guns\projectile\shotgun.dm" #include "code\modules\projectiles\projectile\animate.dm" @@ -1119,6 +1126,7 @@ #include "code\modules\reagents\Chemistry-Reagents-Antidepressants.dm" #include "code\modules\reagents\Chemistry-Reagents.dm" #include "code\modules\reagents\Chemistry-Recipes.dm" +#include "code\modules\reagents\dartgun.dm" #include "code\modules\reagents\grenade_launcher.dm" #include "code\modules\reagents\reagent_containers.dm" #include "code\modules\reagents\reagent_dispenser.dm" @@ -1257,6 +1265,7 @@ #include "code\WorkInProgress\buildmode.dm" #include "code\WorkInProgress\explosion_particles.dm" #include "code\WorkInProgress\periodic_news.dm" +#include "code\WorkInProgress\Apples\artifacts.dm" #include "code\WorkInProgress\Cael_Aislinn\meteor_battery.dm" #include "code\WorkInProgress\Cael_Aislinn\sculpture.dm" #include "code\WorkInProgress\Cael_Aislinn\Economy\Accounts.dm" @@ -1302,6 +1311,7 @@ #include "code\WorkInProgress\Cael_Aislinn\Supermatter\ZeroPointLaser.dm" #include "code\WorkInProgress\Chinsky\ashtray.dm" #include "code\WorkInProgress\Cib\MedicalSideEffects.dm" +#include "code\WorkInProgress\kilakk\responseteam.dm" #include "code\WorkInProgress\Mini\ATM.dm" #include "code\WorkInProgress\Mini\atmos_control.dm" #include "code\WorkInProgress\Ported\policetape.dm" diff --git a/code/WorkInProgress/Apples/artifacts.dm b/code/WorkInProgress/Apples/artifacts.dm index 48129921fff..bcb07582c12 100644 --- a/code/WorkInProgress/Apples/artifacts.dm +++ b/code/WorkInProgress/Apples/artifacts.dm @@ -14,7 +14,6 @@ obj/item/changestone/attack_hand(var/mob/user as mob) H.gender = FEMALE H.dna.ready_dna(H) H.update_body() - H.update_face() ..() diff --git a/code/WorkInProgress/Cael_Aislinn/Economy/Accounts.dm b/code/WorkInProgress/Cael_Aislinn/Economy/Accounts.dm index 3f069ced4e2..6fef666acad 100644 --- a/code/WorkInProgress/Cael_Aislinn/Economy/Accounts.dm +++ b/code/WorkInProgress/Cael_Aislinn/Economy/Accounts.dm @@ -27,7 +27,7 @@ var/global/datum/money_account/vendor_account //add the account station_account.transaction_log.Add(T) - for(var/obj/machinery/account_database/A in world) + for(var/obj/machinery/account_database/A in machines) A.accounts.Add(station_account) /proc/create_department_account(department) @@ -50,7 +50,7 @@ var/global/datum/money_account/vendor_account //add the account department_account.transaction_log.Add(T) - for(var/obj/machinery/account_database/A in world) + for(var/obj/machinery/account_database/A in machines) A.accounts.Add(department_account) department_accounts[department] = department_account @@ -194,7 +194,7 @@ var/global/datum/money_account/vendor_account if(href_list["choice"]) switch(href_list["choice"]) if("sync_accounts") - for(var/obj/machinery/account_database/A in world) + for(var/obj/machinery/account_database/A in machines) for(var/datum/money_account/M in src.accounts) if(!A.accounts.Find(M)) A.accounts.Add(M) @@ -257,7 +257,7 @@ var/global/datum/money_account/vendor_account /obj/machinery/account_database/proc/add_account_across_all(var/new_owner_name = "Default user", var/starting_funds = 0, var/pre_existing = 0) var/datum/money_account/M = add_account(new_owner_name, starting_funds, pre_existing) - for(var/obj/machinery/account_database/D in world) + for(var/obj/machinery/account_database/D in machines) if(D == src) continue D.accounts.Add(M) diff --git a/code/WorkInProgress/Cael_Aislinn/Economy/EFTPOS.dm b/code/WorkInProgress/Cael_Aislinn/Economy/EFTPOS.dm index 4d4c28d17ad..7df719a2e09 100644 --- a/code/WorkInProgress/Cael_Aislinn/Economy/EFTPOS.dm +++ b/code/WorkInProgress/Cael_Aislinn/Economy/EFTPOS.dm @@ -46,7 +46,7 @@ D.name = "small parcel - 'EFTPOS access code'" /obj/item/device/eftpos/proc/reconnect_database() - for(var/obj/machinery/account_database/DB in world) + for(var/obj/machinery/account_database/DB in machines) if(DB.z == src.z) linked_db = DB break diff --git a/code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dm b/code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dm index 72fe022657a..ccfe4c1e657 100644 --- a/code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dm +++ b/code/WorkInProgress/Cael_Aislinn/Jungle/jungle.dm @@ -35,7 +35,7 @@ New() //pick a random temple to link to var/list/waypoints = list() - for(var/obj/effect/landmark/temple/destination/T in world) + for(var/obj/effect/landmark/temple/destination/T in landmarks_list) waypoints.Add(T) if(!T) return @@ -163,7 +163,7 @@ num_spawned++ //make some randomly pathing rivers - for(var/obj/effect/landmark/river_waypoint/W in world) + for(var/obj/effect/landmark/river_waypoint/W in landmarks_list) if (W.z != src.z || W.connected) continue @@ -236,7 +236,7 @@ num_spawned++ //get any path nodes placed on the map - for(var/obj/effect/landmark/path_waypoint/W in world) + for(var/obj/effect/landmark/path_waypoint/W in landmarks_list) if (W.z == src.z) path_nodes.Add(W) diff --git a/code/WorkInProgress/Mini/ATM.dm b/code/WorkInProgress/Mini/ATM.dm index 15aa916efe7..544c439033a 100644 --- a/code/WorkInProgress/Mini/ATM.dm +++ b/code/WorkInProgress/Mini/ATM.dm @@ -67,7 +67,7 @@ log transactions break /obj/machinery/atm/proc/reconnect_database() - for(var/obj/machinery/account_database/DB in world) + for(var/obj/machinery/account_database/DB in machines) if( DB.z == src.z && !(DB.stat & NOPOWER) && DB.activated ) linked_db = DB break diff --git a/code/WorkInProgress/Mini/atmos_control.dm b/code/WorkInProgress/Mini/atmos_control.dm index f9986d50e72..18d063a2641 100644 --- a/code/WorkInProgress/Mini/atmos_control.dm +++ b/code/WorkInProgress/Mini/atmos_control.dm @@ -35,7 +35,7 @@ if(current) dat += specific() else - for(var/obj/machinery/alarm/alarm in world) + for(var/obj/machinery/alarm/alarm in machines) dat += "" switch(max(alarm.danger_level, alarm.alarm_area.atmosalm)) if (0) @@ -141,7 +141,10 @@ //Sets the temperature the built-in heater/cooler tries to maintain. if(env == "temperature") - current.target_temperature = (selected[2] + selected[3])/2 + if(current.target_temperature < selected[2]) + current.target_temperature = selected[2] + if(current.target_temperature > selected[3]) + current.target_temperature = selected[3] spawn(1) updateUsrDialog() diff --git a/code/WorkInProgress/kilakk/responseteam.dm b/code/WorkInProgress/kilakk/responseteam.dm index 94a4664c9cd..575e5ab6fd0 100644 --- a/code/WorkInProgress/kilakk/responseteam.dm +++ b/code/WorkInProgress/kilakk/responseteam.dm @@ -49,7 +49,7 @@ var/sent_emergency_team = 0 // Shamelessly stolen nuke code var/nuke_code var/temp_code - for(var/obj/machinery/nuclearbomb/N in world) + for(var/obj/machinery/nuclearbomb/N in machines) temp_code = text2num(N.r_code) if(temp_code) nuke_code = N.r_code @@ -94,11 +94,11 @@ var/sent_emergency_team = 0 command_alert("Sensors indicate that [station_name()] has entered Code Red and is in need of assistance. We will prepare and dispatch an emergency response team to deal with the situation.", "NMV Icarus Command") - for(var/obj/effect/landmark/L in world) + for(var/obj/effect/landmark/L in landmarks_list) if(L.name == "Response Team") leader_selected = member_number == 1?1:0 // The last person selected will be the leader - var/mob/living/carbon/human/new_member = create_response_team(L, leader_selected) + var/mob/living/carbon/human/new_member = spawn_response_team(L, leader_selected) new_member.age = !leader_selected ? rand(23,35) : rand(35,45) @@ -188,7 +188,7 @@ var/sent_emergency_team = 0 return 1 // Mob creation -/client/proc/create_response_team(obj/spawn_location, leader_selected = 0) +/client/proc/spawn_response_team(obj/spawn_location, leader_selected = 0) var/mob/living/carbon/human/new_member = new(spawn_location.loc) return new_member diff --git a/code/ZAS/Connection.dm b/code/ZAS/Connection.dm index ee8a5470d8b..f9697207c60 100644 --- a/code/ZAS/Connection.dm +++ b/code/ZAS/Connection.dm @@ -75,21 +75,31 @@ connection var/list/connections = air_master.turfs_with_connections[ref_A] connections.Remove(src) - //Ensure we delete the right values by sanity checkign right before deletion. - Sanitize() - - //Remove connection from current zones. + //Remove connection from zones. if(A) if(A.zone && A.zone.connections) A.zone.connections.Remove(src) if(!A.zone.connections.len) A.zone.connections = null + + if(istype(zone_A) && (!A || A.zone != zone_A)) + if(zone_A.connections) + zone_A.connections.Remove(src) + if(!zone_A.connections.len) + zone_A.connections = null + if(B) if(B.zone && B.zone.connections) B.zone.connections.Remove(src) if(!B.zone.connections.len) B.zone.connections = null + if(istype(zone_B) && (!B || B.zone != zone_B)) + if(zone_B.connections) + zone_B.connections.Remove(src) + if(!zone_B.connections.len) + zone_B.connections = null + //Disconnect zones while handling unusual conditions. // e.g. loss of a zone on a turf if(A && A.zone && B && B.zone) diff --git a/code/ZAS/Fire.dm b/code/ZAS/Fire.dm index 77fc507abcc..023d60acf08 100644 --- a/code/ZAS/Fire.dm +++ b/code/ZAS/Fire.dm @@ -20,20 +20,19 @@ turf/proc/hotspot_expose(exposed_temperature, exposed_volume, soh = 0) turf/simulated/hotspot_expose(exposed_temperature, exposed_volume, soh) - if(fire_protection > world.time-300) return + if(fire_protection > world.time-300) + return 0 + if(locate(/obj/fire) in src) + return 1 var/datum/gas_mixture/air_contents = return_air() if(!air_contents || exposed_temperature < PLASMA_MINIMUM_BURN_TEMPERATURE) return 0 var/igniting = 0 - if(locate(/obj/fire) in src) - return 1 - var/datum/gas/volatile_fuel/fuel = locate() in air_contents.trace_gases var/obj/effect/decal/cleanable/liquid_fuel/liquid = locate() in src - if(air_contents.calculate_firelevel(liquid) > vsc.IgnitionLevel && (fuel || liquid || air_contents.toxins > 0.5)) + + if(air_contents.check_combustability(liquid)) igniting = 1 - if(air_contents.oxygen < 0.5) - return 0 if(! (locate(/obj/fire) in src)) @@ -63,89 +62,93 @@ obj process() . = 1 - - if(firelevel > vsc.IgnitionLevel) - - var/turf/simulated/floor/S = loc - if(!S.zone) del src //Cannot exist where zones are broken. - - if(istype(S)) - var - datum/gas_mixture/air_contents = S.return_air() - //Get whatever trace fuels are in the area - datum/gas/volatile_fuel/fuel = locate() in air_contents.trace_gases - //Also get liquid fuels on the ground. - obj/effect/decal/cleanable/liquid_fuel/liquid = locate() in S - - var/datum/gas_mixture/flow = air_contents.remove_ratio(vsc.fire_consuption_rate) - //The reason we're taking a part of the air instead of all of it is so that it doesn't jump to - //the fire's max temperature instantaneously. - - firelevel = air_contents.calculate_firelevel(liquid) - - //Ensure that there is an appropriate amount of fuel and O2 here. - if(firelevel > 0.25 && flow.oxygen > 0.3 && (air_contents.toxins || fuel || liquid)) - - for(var/direction in cardinal) - if(S.air_check_directions&direction) //Grab all valid bordering tiles - - var/turf/simulated/enemy_tile = get_step(S, direction) - - if(istype(enemy_tile)) - //If extinguisher mist passed over the turf it's trying to spread to, don't spread and - //reduce firelevel. - if(enemy_tile.fire_protection > world.time-30) - firelevel -= 1.5 - continue - - //Spread the fire. - if(!(locate(/obj/fire) in enemy_tile)) - if( prob( firelevel*10 ) && S.CanPass(null, enemy_tile, 0,0) && enemy_tile.CanPass(null, S, 0,0)) - new/obj/fire(enemy_tile,firelevel) - - if(flow) - - //Ensure adequate oxygen and fuel. - if(flow.oxygen > 0.3 && (flow.toxins || fuel || liquid)) - - //Change icon depending on the fuel, and thus temperature. - if(firelevel > 6) - icon_state = "3" - SetLuminosity(7) - else if(firelevel > 2.5) - icon_state = "2" - SetLuminosity(5) - else - icon_state = "1" - SetLuminosity(3) - - //Ensure flow temperature is higher than minimum fire temperatures. - flow.temperature = max(PLASMA_MINIMUM_BURN_TEMPERATURE+0.1,flow.temperature) - - //Burn the gas mixture. - flow.zburn(liquid) - if(fuel && fuel.moles <= 0.00001) - air_contents.trace_gases.Remove(fuel) - - else - - del src - - - S.assume_air(flow) //Then put it back where you found it. - - else - del src - else - del src - else + + //get location and check if it is in a proper ZAS zone + var/turf/simulated/floor/S = loc + if(!S.zone) del src - - + + if(!istype(S)) + del src + + var/datum/gas_mixture/air_contents = S.return_air() + //get liquid fuels on the ground. + var/obj/effect/decal/cleanable/liquid_fuel/liquid = locate() in S + //and the volatile stuff from the air + var/datum/gas/volatile_fuel/fuel = locate() in air_contents.trace_gases + + //since the air is processed in fractions, we need to make sure not to have any minuscle residue or + //the amount of moles might get to low for some functions to catch them and thus result in wonky behaviour + if(air_contents.oxygen < 0.001) + air_contents.oxygen = 0 + if(air_contents.toxins < 0.001) + air_contents.toxins = 0 + if(fuel) + if(fuel.moles < 0.001) + air_contents.trace_gases.Remove(fuel) + + //check if there is something to combust + if(!air_contents.check_combustability(liquid)) + del src + + //get a firelevel and set the icon + firelevel = air_contents.calculate_firelevel(liquid) + + if(firelevel > 6) + icon_state = "3" + SetLuminosity(7) + else if(firelevel > 2.5) + icon_state = "2" + SetLuminosity(5) + else + icon_state = "1" + SetLuminosity(3) + + //im not sure how to implement a version that works for every creature so for now monkeys are firesafe for(var/mob/living/carbon/human/M in loc) - M.FireBurn(firelevel) //Burn the humans! + M.FireBurn(firelevel, air_contents.temperature, air_contents.return_pressure() ) //Burn the humans! + + //spread! + for(var/direction in cardinal) + if(S.air_check_directions&direction) //Grab all valid bordering tiles + var/turf/simulated/enemy_tile = get_step(S, direction) + + if(istype(enemy_tile)) + //If extinguisher mist passed over the turf it's trying to spread to, don't spread and + //reduce firelevel. + if(enemy_tile.fire_protection > world.time-30) + firelevel -= 1.5 + continue + + //Spread the fire. + if(!(locate(/obj/fire) in enemy_tile)) + if( prob( 50 + 50 * (firelevel/vsc.fire_firelevel_multiplier) ) && S.CanPass(null, enemy_tile, 0,0) && enemy_tile.CanPass(null, S, 0,0)) + new/obj/fire(enemy_tile,firelevel) + + //seperate part of the present gas + //this is done to prevent the fire burning all gases in a single pass + var/datum/gas_mixture/flow = air_contents.remove_ratio(vsc.fire_consuption_rate) + +///////////////////////////////// FLOW HAS BEEN CREATED /// DONT DELETE THE FIRE UNTIL IT IS MERGED BACK OR YOU WILL DELETE AIR /////////////////////////////////////////////// + + if(flow) + if(flow.check_combustability(liquid)) + //Ensure flow temperature is higher than minimum fire temperatures. + //this creates some energy ex nihilo but is necessary to get a fire started + //lets just pretend this energy comes from the ignition source and dont mention this again + //flow.temperature = max(PLASMA_MINIMUM_BURN_TEMPERATURE+0.1,flow.temperature) + + //burn baby burn! + flow.zburn(liquid,1) + + //merge the air back + S.assume_air(flow) + +///////////////////////////////// FLOW HAS BEEN REMERGED /// feel free to delete the fire again from here on ////////////////////////////////////////////////////////////////// + + New(newLoc,fl) ..() @@ -175,14 +178,15 @@ turf/simulated/apply_fire_protection() fire_protection = world.time -datum/gas_mixture/proc/zburn(obj/effect/decal/cleanable/liquid_fuel/liquid) - //This proc is similar to fire(), but uses a simple logarithm to calculate temp, and is thus more stable with ZAS. - if(temperature > PLASMA_MINIMUM_BURN_TEMPERATURE) - var - total_fuel = toxins - - datum/gas/volatile_fuel/fuel = locate() in trace_gases +datum/gas_mixture/proc/zburn(obj/effect/decal/cleanable/liquid_fuel/liquid,force_burn) + var/value = 0 + + if((temperature > PLASMA_MINIMUM_BURN_TEMPERATURE || force_burn) && check_combustability(liquid) ) + var/total_fuel = 0 + var/datum/gas/volatile_fuel/fuel = locate() in trace_gases + total_fuel += toxins + if(fuel) //Volatile Fuel total_fuel += fuel.moles @@ -192,65 +196,93 @@ datum/gas_mixture/proc/zburn(obj/effect/decal/cleanable/liquid_fuel/liquid) if(liquid.amount <= 0) del liquid else - total_fuel += liquid.amount*15 + total_fuel += liquid.amount - if(! (fuel || toxins || liquid) ) - return 0 //If there's no fuel, there's no burn. Can't divide by zero anyway. + //Calculate the firelevel. + var/firelevel = calculate_firelevel(liquid) - if(oxygen > 0.3) + //get the current inner energy of the gas mix + //this must be taken here to prevent the addition or deletion of energy by a changing heat capacity + var/starting_energy = temperature * heat_capacity() - //Calculate the firelevel. - var/firelevel = calculate_firelevel(liquid) + //determine the amount of oxygen used + var/total_oxygen = min(oxygen, 2 * total_fuel) + + //determine the amount of fuel actually used + var/used_fuel_ratio = min(oxygen / 2 , total_fuel) / total_fuel + total_fuel = total_fuel * used_fuel_ratio - //Reaches a maximum practical temperature of around 4500. + var/total_reactants = total_fuel + total_oxygen - //Increase temperature. - temperature = max( vsc.fire_temperature_multiplier*log(0.04*firelevel + 1.24) , temperature ) + //determine the amount of reactants actually reacting + var/used_reactants_ratio = min( max(total_reactants * firelevel / vsc.fire_firelevel_multiplier, 0.2), total_reactants) / total_reactants - var/total_reactants = min(oxygen, 2*total_fuel) + total_fuel + //remove and add gasses as calculated + oxygen -= min(oxygen, total_oxygen * used_reactants_ratio ) - //Consume some gas. - var/consumed_gas = max( min( total_reactants, vsc.fire_gas_combustion_ratio*firelevel ), 0.2) + toxins -= min(toxins, toxins * used_fuel_ratio * used_reactants_ratio ) - oxygen -= min(oxygen, (total_reactants-total_fuel)*consumed_gas/total_reactants ) + carbon_dioxide += max(2 * total_fuel, 0) - toxins -= min(toxins, toxins*consumed_gas/total_reactants ) + if(fuel) + fuel.moles -= fuel.moles * used_fuel_ratio * used_reactants_ratio + if(fuel.moles <= 0) del fuel - carbon_dioxide += max(consumed_gas, 0) + if(liquid) + liquid.amount -= liquid.amount * used_fuel_ratio * used_reactants_ratio + if(liquid.amount <= 0) del liquid - if(fuel) - fuel.moles -= fuel.moles*consumed_gas/total_reactants - if(fuel.moles <= 0) del fuel + //calculate the energy produced by the reaction and then set the new temperature of the mix + temperature = (starting_energy + vsc.fire_fuel_energy_release * total_fuel) / heat_capacity() + + update_values() + value = total_reactants * used_reactants_ratio + return value - if(liquid) - liquid.amount -= liquid.amount*consumed_gas/(total_reactants) - if(liquid.amount <= 0) del liquid - - update_values() - return consumed_gas - return 0 +datum/gas_mixture/proc/check_combustability(obj/effect/decal/cleanable/liquid_fuel/liquid) + //this check comes up very often and is thus centralized here to ease adding stuff + + var/datum/gas/volatile_fuel/fuel = locate() in trace_gases + var/value = 0 + + if(oxygen && (toxins || fuel || liquid)) + value = 1 + + return value datum/gas_mixture/proc/calculate_firelevel(obj/effect/decal/cleanable/liquid_fuel/liquid) - //Calculates the firelevel based on one equation instead of having to do this multiple times in different areas. - var - datum/gas/volatile_fuel/fuel = locate() in trace_gases + //Calculates the firelevel based on one equation instead of having to do this multiple times in different areas. + + var/datum/gas/volatile_fuel/fuel = locate() in trace_gases + var/total_fuel = 0 + var/firelevel = 0 + + if(check_combustability(liquid)) + + total_fuel += toxins - var/total_fuel = toxins - 0.5 + if(liquid) + total_fuel += liquid.amount - if(liquid) - total_fuel += (liquid.amount*15) + if(fuel) + total_fuel += fuel.moles - if(fuel) - total_fuel += fuel.moles - - var/total_combustables = (total_fuel + oxygen) - if(total_fuel <= 0 || oxygen <= 0) - return 0 - - return max( 0, vsc.fire_firelevel_multiplier*(total_combustables/(total_combustables + nitrogen))*log(2*total_combustables/oxygen)*log(total_combustables/total_fuel)) + var/total_combustables = (total_fuel + oxygen) + + if(total_fuel > 0 && oxygen > 0) + + //slows down the burning when the concentration of the reactants is low + var/dampening_multiplier = total_combustables / (total_combustables + nitrogen + carbon_dioxide) + //calculates how close the mixture of the reactants is to the optimum + var/mix_multiplier = 1 / (1 + (5 * ((oxygen / total_combustables) ^2))) + //toss everything together + firelevel = vsc.fire_firelevel_multiplier * mix_multiplier * dampening_multiplier + + return max( 0, firelevel) -/mob/living/carbon/human/proc/FireBurn(var/firelevel) +/mob/living/carbon/human/proc/FireBurn(var/firelevel, var/last_temperature, var/pressure) +// mostly using the old proc from Sky until I can think of something better //Burns mobs due to fire. Respects heat transfer coefficients on various body parts. //Due to TG reworking how fireprotection works, this is kinda less meaningful. @@ -261,8 +293,9 @@ datum/gas_mixture/proc/calculate_firelevel(obj/effect/decal/cleanable/liquid_fue legs_exposure = 1 arms_exposure = 1 - var/mx = min(max(0.1,firelevel / 20),10) - var/last_temperature = vsc.fire_temperature_multiplier*log(0.04*firelevel + 1.24) + //determine the multiplier + //minimize this for low-pressure enviroments + var/mx = 5 * firelevel/vsc.fire_firelevel_multiplier * min(pressure / ONE_ATMOSPHERE, 1) //Get heat transfer coefficients for clothing. //skytodo: kill anyone who breaks things then orders me to fix them @@ -293,4 +326,3 @@ datum/gas_mixture/proc/calculate_firelevel(obj/effect/decal/cleanable/liquid_fue apply_damage(0.4*mx*arms_exposure, BURN, "r_arm", 0, 0, "Fire") //flash_pain() -#undef ZAS_FIRE_CONSUMPTION_RATE \ No newline at end of file diff --git a/code/ZAS/Variable Settings.dm b/code/ZAS/Variable Settings.dm index ee63fd37b22..dd22765e99c 100644 --- a/code/ZAS/Variable Settings.dm +++ b/code/ZAS/Variable Settings.dm @@ -1,25 +1,18 @@ var/global/vs_control/vsc = new vs_control/var - IgnitionLevel = 0.5 - IgnitionLevel_DESC = "Determines point at which fire can ignite" - fire_consuption_rate = 0.25 fire_consuption_rate_NAME = "Fire - Air Consumption Ratio" fire_consuption_rate_DESC = "Ratio of air removed and combusted per tick." fire_firelevel_multiplier = 25 fire_firelevel_multiplier_NAME = "Fire - Firelevel Constant" - fire_firelevel_multiplier_DESC = "Multiplied by the equation for firelevel, affects the combustion and ignition of gas mixes." - - fire_temperature_multiplier = 1700 - fire_temperature_multiplier_NAME = "Fire - Temperature Multiplier" - fire_temperature_multiplier_DESC = "Base value for fire temperatures." - - fire_gas_combustion_ratio = 0.25 - fire_gas_combustion_ratio_NAME = "Fire - Gas Conversion Ratio" - fire_gas_combustion_ratio_DESC = "The rate at which oxygen and plasma are converted to CO2, expressed in terms of the firelevel." + fire_firelevel_multiplier_DESC = "Multiplied by the equation for firelevel, affects mainly the extingiushing of fires." + fire_fuel_energy_release = 397000 + fire_fuel_energy_release_NAME = "Fire - Fuel energy release" + fire_fuel_energy_release_DESC = "The energy in joule released when burning one mol of a burnable substance" + airflow_lightest_pressure = 20 airflow_lightest_pressure_NAME = "Airflow - Small Movement Threshold %" @@ -229,7 +222,6 @@ vs_control plc.CONTAMINATION_LOSS = 0.075 if("ZAS - Normal") - IgnitionLevel = 0.5 airflow_lightest_pressure = 20 airflow_light_pressure = 35 airflow_medium_pressure = 50 @@ -244,7 +236,6 @@ vs_control airflow_mob_slowdown = 1 if("ZAS - Forgiving") - IgnitionLevel = 1 airflow_lightest_pressure = 45 airflow_light_pressure = 60 airflow_medium_pressure = 120 @@ -259,7 +250,6 @@ vs_control airflow_mob_slowdown = 0 if("ZAS - Dangerous") - IgnitionLevel = 0.4 airflow_lightest_pressure = 15 airflow_light_pressure = 30 airflow_medium_pressure = 45 @@ -274,7 +264,6 @@ vs_control airflow_mob_slowdown = 2 if("ZAS - Hellish") - IgnitionLevel = 0.3 airflow_lightest_pressure = 20 airflow_light_pressure = 30 airflow_medium_pressure = 40 @@ -330,4 +319,4 @@ pl_control newvalue = roll(txt) else newvalue = vars[V] - vars[V] = newvalue \ No newline at end of file + vars[V] = newvalue diff --git a/code/ZAS/ZAS_Zones.dm b/code/ZAS/ZAS_Zones.dm index 66937ec6727..2f5d564b3b4 100644 --- a/code/ZAS/ZAS_Zones.dm +++ b/code/ZAS/ZAS_Zones.dm @@ -385,7 +385,7 @@ proc/ShareSpace(datum/gas_mixture/A, list/unsimulated_tiles, dbg_output) // slowly than small rooms, preserving our good old "hollywood-style" // oh-shit effect when large rooms get breached, but still having small // rooms remain pressurized for long enough to make escape possible. - share_size = max(1, max(size - 5, 1) + unsimulated_tiles.len) + share_size = max(1, max(size + 3, 1) + unsimulated_tiles.len) correction_ratio = share_size / unsimulated_tiles.len for(var/turf/T in unsimulated_tiles) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 4f000fe603e..eababc43c11 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1198,7 +1198,7 @@ proc/oview_or_orange(distance = world.view , center = usr , type) proc/get_mob_with_client_list() var/list/mobs = list() - for(var/mob/M in world) + for(var/mob/M in mob_list) if (M.client) mobs += M return mobs diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index ece38b4b83c..d0a60a08162 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -34,12 +34,13 @@ var/feature_object_spell_system = 0 //spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard var/traitor_scaling = 0 //if amount of traitors scales based on amount of players var/protect_roles_from_antagonist = 0// If security and such can be tratior/cult/other - var/continous_rounds = 0 // Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke. + var/continous_rounds = 1 // Gamemodes which end instantly will instead keep on going until the round ends by escape shuttle or nuke. var/allow_Metadata = 0 // Metadata is supported. var/popup_admin_pm = 0 //adminPMs to non-admins show in a pop-up 'reply' window when set to 1. var/Ticklag = 0.9 var/Tickcomp = 0 var/socket_talk = 0 // use socket_talk to communicate with other processes + var/list/resource_urls = null var/list/mode_names = list() var/list/modes = list() // allowed modes @@ -168,6 +169,9 @@ if(type == "config") switch (name) + if ("resource_urls") + config.resource_urls = stringsplit(value, " ") + if ("admin_legacy_system") config.admin_legacy_system = 1 diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index b252163b03d..c22bf1e2dd8 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -84,12 +84,12 @@ datum/controller/game_controller/proc/setup_objects() world << "\red \b Initializing pipe networks" sleep(-1) - for(var/obj/machinery/atmospherics/machine in world) + for(var/obj/machinery/atmospherics/machine in machines) machine.build_network() world << "\red \b Initializing atmos machinery." sleep(-1) - for(var/obj/machinery/atmospherics/unary/U in world) + for(var/obj/machinery/atmospherics/unary/U in machines) if(istype(U, /obj/machinery/atmospherics/unary/vent_pump)) var/obj/machinery/atmospherics/unary/vent_pump/T = U T.broadcast_status() diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 481a6958d37..e6d58ef6386 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -67,6 +67,7 @@ datum/shuttle_controller captain_announce("The shuttle has been recalled.") setdirection(-1) online = 1 + alert = 0 // set alert back to 0 after an admin recall return // returns the time (in seconds) before shuttle arrival @@ -130,7 +131,7 @@ datum/shuttle_controller start_location.move_contents_to(end_location, null, NORTH) - for(var/obj/machinery/door/unpowered/D in world) + for(var/obj/machinery/door/unpowered/D in machines) if( get_area(D) == end_location ) spawn(0) D.locked = 0 @@ -152,7 +153,7 @@ datum/shuttle_controller end_location = locate(/area/shuttle/escape_pod1/centcom) start_location.move_contents_to(end_location, null, NORTH) - for(var/obj/machinery/door/D in world) + for(var/obj/machinery/door/D in machines) if( get_area(D) == end_location ) spawn(0) D.open() @@ -172,7 +173,7 @@ datum/shuttle_controller end_location = locate(/area/shuttle/escape_pod2/centcom) start_location.move_contents_to(end_location, null, NORTH) - for(var/obj/machinery/door/D in world) + for(var/obj/machinery/door/D in machines) if( get_area(D) == end_location ) spawn(0) D.open() @@ -192,7 +193,7 @@ datum/shuttle_controller end_location = locate(/area/shuttle/escape_pod3/centcom) start_location.move_contents_to(end_location, null, NORTH) - for(var/obj/machinery/door/D in world) + for(var/obj/machinery/door/D in machines) if( get_area(D) == end_location ) spawn(0) D.open() @@ -212,7 +213,7 @@ datum/shuttle_controller end_location = locate(/area/shuttle/escape_pod5/centcom) start_location.move_contents_to(end_location, null, EAST) - for(var/obj/machinery/door/D in world) + for(var/obj/machinery/door/D in machines) if( get_area(D) == end_location ) spawn(0) D.open() diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm index c8336d85f20..8c31d17f6c1 100644 --- a/code/controllers/voting.dm +++ b/code/controllers/voting.dm @@ -1,5 +1,7 @@ var/datum/controller/vote/vote = new() +var/global/list/round_voters = list() //Keeps track of the individuals voting for a given round, for use in forcedrafting. + datum/controller/vote var/initiator = null var/started_time = null @@ -10,6 +12,7 @@ datum/controller/vote var/list/voted = list() var/list/voting = list() var/list/current_votes = list() + var/auto_muted = 0 New() if(vote != src) @@ -53,6 +56,14 @@ datum/controller/vote voting.Cut() current_votes.Cut() + if(auto_muted && !ooc_allowed) + auto_muted = 0 + ooc_allowed = !( ooc_allowed ) + world << "The OOC channel has been automatically enabled due to vote cancellation." + log_admin("OOC was toggled automatically due to vote cancellation.") + message_admins("OOC has been toggled on automatically.") + + proc/get_result() //get the highest number of votes var/greatest_votes = 0 @@ -110,6 +121,11 @@ datum/controller/vote for(var/option in winners) text += "\t[option]\n" . = pick(winners) + + for(var/key in current_votes) + if(choices[current_votes[key]] == .) + round_voters += key // Keep track of who voted for the winning round. + text += "Vote Result: [.]" else text += "Vote Result: Inconclusive - No Votes!" @@ -138,6 +154,12 @@ datum/controller/vote if("crew_transfer") if(. == "Initiate Crew Transfer") init_shift_change(null, 1) + if(auto_muted && !ooc_allowed) + auto_muted = 0 + ooc_allowed = !( ooc_allowed ) + world << "The OOC channel has been automatically enabled due to vote end." + log_admin("OOC was toggled automatically due to vote end.") + message_admins("OOC has been toggled on automatically.") if(restart) @@ -202,14 +224,35 @@ datum/controller/vote world << "[text]\nType vote to place your votes.\nYou have [config.vote_period/10] seconds to vote." switch(vote_type) if("crew_transfer") - world << sound('sound/voice/Serithi/Shuttlehere.ogg') + world << sound('sound/ambience/alarm4.ogg') if("gamemode") - world << sound('sound/voice/Serithi/pretenddemoc.ogg') + world << sound('sound/ambience/alarm4.ogg') if("custom") - world << sound('sound/voice/Serithi/weneedvote.ogg') + world << sound('sound/ambience/alarm4.ogg') if(mode == "gamemode" && going) going = 0 world << "Round start has been delayed." + if(mode == "crew_transfer" && ooc_allowed) + auto_muted = 1 + ooc_allowed = !( ooc_allowed ) + world << "The OOC channel has been automatically disabled due to the crew transfer vote." + log_admin("OOC was toggled automatically due to crew_transfer vote.") + message_admins("OOC has been toggled off automatically.") + if(mode == "gamemode" && ooc_allowed) + auto_muted = 1 + ooc_allowed = !( ooc_allowed ) + world << "The OOC channel has been automatically disabled due to the gamemode vote." + log_admin("OOC was toggled automatically due to gamemode vote.") + message_admins("OOC has been toggled off automatically.") + if(mode == "custom" && ooc_allowed) + auto_muted = 1 + ooc_allowed = !( ooc_allowed ) + world << "The OOC channel has been automatically disabled due to the custom vote." + log_admin("OOC was toggled automatically due to custom vote.") + message_admins("OOC has been toggled off automatically.") + + + time_remaining = round(config.vote_period/10) return 1 @@ -234,9 +277,9 @@ datum/controller/vote var/votes = choices[choices[i]] if(!votes) votes = 0 if(current_votes[C.ckey] == i) - . += "
  • [choices[i]] ([votes] votes)
  • " + . += "
  • [choices[i]]
  • " else - . += "
  • [choices[i]] ([votes] votes)
  • " + . += "
  • [choices[i]]
  • " . += "
    " if(admin) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index e3f69881daa..f2f66b27cc1 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -7,8 +7,9 @@ manifest_inject(H) return -/obj/effect/datacore/proc/manifest_modify(var/name, var/assignment, var/alt_title = null) +/obj/effect/datacore/proc/manifest_modify(var/name, var/assignment) var/datum/data/record/foundrecord + var/real_title = assignment for(var/datum/data/record/t in data_core.general) if (t) @@ -16,14 +17,18 @@ foundrecord = t break + var/list/all_jobs = get_job_datums() + + for(var/datum/job/J in all_jobs) + var/list/alttitles = get_alternate_titles(J.title) + if(!J) continue + if(assignment in alttitles) + real_title = J.title + break + if(foundrecord) foundrecord.fields["rank"] = assignment - if(alt_title) - foundrecord.fields["real_rank"] = alt_title - else - foundrecord.fields["real_rank"] = assignment - - + foundrecord.fields["real_rank"] = real_title /obj/effect/datacore/proc/manifest_inject(var/mob/living/carbon/human/H) if(H.mind && (H.mind.assigned_role != "MODE")) @@ -122,9 +127,10 @@ proc/get_id_photo(var/mob/living/carbon/human/H) icobase = 'icons/mob/human_races/r_lizard.dmi' if("Skrell") icobase = 'icons/mob/human_races/r_skrell.dmi' - if("Vox") icobase = 'icons/mob/human_races/r_vox.dmi' + if("Kidan") + icobase = 'icons/mob/human_races/r_kidan.dmi' else icobase = 'icons/mob/human_races/r_human.dmi' diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index 81abf92546a..df3a72391f7 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -730,7 +730,7 @@ client usr << "This can only be done to instances of type /mob/living/carbon/human" return - var/new_mutantrace = input("Please choose a new mutantrace","Mutantrace",null) as null|anything in list("NONE","golem","lizard","slime","plant","shadow","tajaran","skrell","vox") + var/new_mutantrace = input("Please choose a new mutantrace","Mutantrace",null) as null|anything in list("NONE","golem","lizard","slime","plant","shadow","tajaran","skrell","vox","kidan") switch(new_mutantrace) if(null) return diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 175e622788a..769f7707eaf 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -217,7 +217,7 @@ datum/mind text += "OPERATIVE|nanotrasen" text += "
    To shuttle, undress, dress up." var/code - for (var/obj/machinery/nuclearbomb/bombue in world) + for (var/obj/machinery/nuclearbomb/bombue in machines) if (length(bombue.r_code) <= 5 && bombue.r_code != "LOLNO" && bombue.r_code != "ADMIN") code = bombue.r_code break @@ -719,7 +719,7 @@ datum/mind usr << "\red Equipping a syndicate failed!" if("tellcode") var/code - for (var/obj/machinery/nuclearbomb/bombue in world) + for (var/obj/machinery/nuclearbomb/bombue in machines) if (length(bombue.r_code) <= 5 && bombue.r_code != "LOLNO" && bombue.r_code != "ADMIN") code = bombue.r_code break @@ -1220,5 +1220,9 @@ datum/mind mind.assigned_role = "Juggernaut" mind.special_role = "Cultist" +/mob/living/simple_animal/vox/armalis/mind_initialize() + ..() + mind.assigned_role = "Armalis" + mind.special_role = "Vox Raider" diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index d435e55f793..57ddf7817e5 100755 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -66,6 +66,29 @@ var/list/all_supply_groups = list("Operations","Security","Hospitality","Enginee containername = "Monkey crate" group = "Hydroponics" +/datum/supply_packs/farwa + name = "Farwa crate" + contains = list (/obj/item/weapon/storage/box/farwacubes) + cost = 30 + containertype = /obj/structure/closet/crate/freezer + containername = "Farwa crate" + group = "Hydroponics" + +/datum/supply_packs/skrell + name = "Neaera crate" + contains = list (/obj/item/weapon/storage/box/neaeracubes) + cost = 30 + containertype = /obj/structure/closet/crate/freezer + containername = "Neaera crate" + group = "Hydroponics" + +/datum/supply_packs/stok + name = "Stok crate" + contains = list (/obj/item/weapon/storage/box/stokcubes) + cost = 30 + containertype = /obj/structure/closet/crate/freezer + containername = "Stok crate" + group = "Hydroponics" /datum/supply_packs/beanbagammo name = "Beanbag shells" diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 116136bfafb..661f4c43b38 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -80,17 +80,7 @@ var/name = t.fields["name"] var/rank = t.fields["rank"] var/real_rank = t.fields["real_rank"] - - var/active = 0 - for(var/mob/M in player_list) if(M.name == name) - // For dead ones, have a chance to get their status wrong - if(M.stat == 2) - active = M.x % 2 // Should be good enough, avoids their status flipping constantly - break - else if(M.client && M.client.inactivity <= 10 * 60 * 10) - active = 1 - break - isactive[name] = active ? "Active" : "SSD" + isactive[name] = t.fields["p_stat"] //world << "[name]: [rank]" diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 410ca546338..bd57ca478c4 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -310,10 +310,11 @@ name = "shard" icon = 'icons/obj/shards.dmi' icon_state = "large" + sharp = 1 desc = "Could probably be used as ... a throwing weapon?" w_class = 1.0 force = 5.0 - throwforce = 15.0 + throwforce = 8.0 item_state = "shard-glass" g_amt = 3750 attack_verb = list("stabbed", "slashed", "sliced", "cut") @@ -346,6 +347,28 @@ m_amt = 100 origin_tech = "magnets=2;syndicate=3"*/ +/obj/item/weapon/shard/shrapnel + name = "shrapnel" + icon = 'icons/obj/shards.dmi' + icon_state = "shrapnellarge" + desc = "A bunch of tiny bits of shattered metal." + +/obj/item/weapon/shard/shrapnel/New() + + src.icon_state = pick("shrapnellarge", "shrapnelmedium", "shrapnelsmall") + switch(src.icon_state) + if("shrapnelsmall") + src.pixel_x = rand(-12, 12) + src.pixel_y = rand(-12, 12) + if("shrapnelmedium") + src.pixel_x = rand(-8, 8) + src.pixel_y = rand(-8, 8) + if("shrapnellarge") + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + else + return + /obj/item/weapon/SWF_uplink name = "station-bounced radio" desc = "used to comunicate it appears." @@ -522,7 +545,7 @@ icon_state = "hatchet" flags = FPRINT | TABLEPASS | CONDUCT force = 12.0 - w_class = 1.0 + w_class = 2.0 throwforce = 15.0 throw_speed = 4 throw_range = 4 diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm index 0908a0f4427..049d7f0cd70 100755 --- a/code/game/area/Space Station 13 areas.dm +++ b/code/game/area/Space Station 13 areas.dm @@ -1003,18 +1003,39 @@ proc/process_ghost_teleport_locs() //MedBay /area/medical/medbay - name = "Medbay" + name = "\improper Medbay" icon_state = "medbay" music = 'sound/ambience/signal.ogg' //Medbay is a large area, these additional areas help level out APC load. /area/medical/medbay2 - name = "Medbay" + name = "\improper Medbay" icon_state = "medbay2" music = 'sound/ambience/signal.ogg' /area/medical/medbay3 - name = "Medbay" + name = "\improper Medbay" + icon_state = "medbay3" + music = 'sound/ambience/signal.ogg' + + +/area/medical/biostorage + name = "\improper Secondary Storage" + icon_state = "medbay2" + music = 'sound/ambience/signal.ogg' + +/area/medical/reception + name = "\improper Medbay Reception" + icon_state = "medbay" + music = 'sound/ambience/signal.ogg' + +/area/medical/psych + name = "\improper Psych Room" + icon_state = "medbay3" + music = 'sound/ambience/signal.ogg' + +/area/medical/medbreak + name = "\improper Break Room" icon_state = "medbay3" music = 'sound/ambience/signal.ogg' @@ -1022,20 +1043,44 @@ proc/process_ghost_teleport_locs() name = "\improper Patient's Rooms" icon_state = "patients" +/area/medical/ward + name = "\improper Medbay Patient Ward" + icon_state = "patients" + +/area/medical/patient_a + name = "\improper Isolation A" + icon_state = "patients" + +/area/medical/patient_b + name = "\improper Isolation B" + icon_state = "patients" + +/area/medical/patient_c + name = "\improper Isolation C" + icon_state = "patients" + +/area/medical/iso_access + name = "\improper Isolation Access" + icon_state = "patients" + /area/medical/cmo name = "\improper Chief Medical Officer's office" icon_state = "CMO" +/area/medical/cmostore + name = "\improper Secure Storage" + icon_state = "CMO" + /area/medical/robotics - name = "Robotics" + name = "\improper Robotics" icon_state = "medresearch" /area/medical/research - name = "Medical Research" + name = "\improper Medical Research" icon_state = "medresearch" /area/medical/virology - name = "Virology" + name = "\improper Virology" icon_state = "virology" /area/medical/morgue @@ -1043,15 +1088,19 @@ proc/process_ghost_teleport_locs() icon_state = "morgue" /area/medical/chemistry - name = "Chemistry" + name = "\improper Chemistry" icon_state = "chem" /area/medical/surgery - name = "Surgery" + name = "\improper Surgery" + icon_state = "surgery" + +/area/medical/surgeryobs + name = "\improper Surgery Observation" icon_state = "surgery" /area/medical/cryo - name = "Cryogenics" + name = "\improper Cryogenics" icon_state = "cryo" /area/medical/exam_room @@ -1059,15 +1108,15 @@ proc/process_ghost_teleport_locs() icon_state = "exam_room" /area/medical/genetics - name = "Genetics Lab" + name = "\improper Genetics Lab" icon_state = "genetics" /area/medical/genetics_cloning - name = "Cloning Lab" + name = "\improper Cloning Lab" icon_state = "cloning" /area/medical/sleeper - name = "Medbay Treatment Center" + name = "\improper Emergency" icon_state = "exam_room" //Security diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index ffb194f79fa..c0921cd54a1 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -53,7 +53,7 @@ aiPlayer.cancelAlarm("Power", src, source) else aiPlayer.triggerAlarm("Power", src, cameras, source) - for(var/obj/machinery/computer/station_alert/a in world) + for(var/obj/machinery/computer/station_alert/a in machines) if(a.z == source.z) if(state == 1) a.cancelAlarm("Power", src, source) @@ -75,12 +75,12 @@ cameras += C for(var/mob/living/silicon/aiPlayer in player_list) aiPlayer.triggerAlarm("Atmosphere", src, cameras, src) - for(var/obj/machinery/computer/station_alert/a in world) + for(var/obj/machinery/computer/station_alert/a in machines) a.triggerAlarm("Atmosphere", src, cameras, src) else if (atmosalm == 2) for(var/mob/living/silicon/aiPlayer in player_list) aiPlayer.cancelAlarm("Atmosphere", src, src) - for(var/obj/machinery/computer/station_alert/a in world) + for(var/obj/machinery/computer/station_alert/a in machines) a.cancelAlarm("Atmosphere", src, src) atmosalm = danger_level return 1 @@ -105,7 +105,7 @@ cameras += C for (var/mob/living/silicon/ai/aiPlayer in player_list) aiPlayer.triggerAlarm("Fire", src, cameras, src) - for (var/obj/machinery/computer/station_alert/a in world) + for (var/obj/machinery/computer/station_alert/a in machines) a.triggerAlarm("Fire", src, cameras, src) /area/proc/firereset() @@ -122,7 +122,7 @@ D.open() for (var/mob/living/silicon/ai/aiPlayer in player_list) aiPlayer.cancelAlarm("Fire", src, src) - for (var/obj/machinery/computer/station_alert/a in world) + for (var/obj/machinery/computer/station_alert/a in machines) a.cancelAlarm("Fire", src, src) /area/proc/readyalert() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 1d7d4bce3a6..784ba44c188 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -21,10 +21,10 @@ //Detective Work, used for the duplicate data points kept in the scanners var/list/original_atom -/atom/proc/throw_impact(atom/hit_atom) +/atom/proc/throw_impact(atom/hit_atom, var/speed) if(istype(hit_atom,/mob/living)) var/mob/living/M = hit_atom - M.hitby(src) + M.hitby(src,speed) log_attack("[hit_atom] ([M.ckey]) was hit by [src] thrown by ([src.fingerprintslast])") @@ -32,7 +32,7 @@ var/obj/O = hit_atom if(!O.anchored) step(O, src.dir) - O.hitby(src) + O.hitby(src,speed) else if(isturf(hit_atom)) var/turf/T = hit_atom @@ -214,7 +214,7 @@ its easier to just keep the beam vertical. /atom/verb/examine() set name = "Examine" set category = "IC" - set src in oview(12) //make it work from farther away + set src in view(usr.client) //If it can be seen, it can be examined. if (!( usr )) return diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 087d6fa6795..8f4e6dba669 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -44,18 +44,18 @@ return 1 return 0 -/atom/movable/proc/hit_check() +/atom/movable/proc/hit_check(var/speed) if(src.throwing) for(var/atom/A in get_turf(src)) if(A == src) continue if(istype(A,/mob/living)) if(A:lying) continue - src.throw_impact(A) + src.throw_impact(A,speed) if(src.throwing == 1) src.throwing = 0 if(isobj(A)) if(A.density && !A.throwpass) // **TODO: Better behaviour for windows which are dense, but shouldn't always stop movement - src.throw_impact(A) + src.throw_impact(A,speed) src.throwing = 0 /atom/movable/proc/throw_at(atom/target, range, speed) @@ -97,7 +97,7 @@ if(!step) // going off the edge of the map makes get_step return null, don't let things go off the edge break src.Move(step) - hit_check() + hit_check(speed) error += dist_x dist_travelled++ dist_since_sleep++ @@ -109,7 +109,7 @@ if(!step) // going off the edge of the map makes get_step return null, don't let things go off the edge break src.Move(step) - hit_check() + hit_check(speed) error -= dist_y dist_travelled++ dist_since_sleep++ @@ -126,7 +126,7 @@ if(!step) // going off the edge of the map makes get_step return null, don't let things go off the edge break src.Move(step) - hit_check() + hit_check(speed) error += dist_y dist_travelled++ dist_since_sleep++ @@ -138,7 +138,7 @@ if(!step) // going off the edge of the map makes get_step return null, don't let things go off the edge break src.Move(step) - hit_check() + hit_check(speed) error -= dist_x dist_travelled++ dist_since_sleep++ @@ -150,7 +150,7 @@ //done throwing, either because it hit something or it finished moving src.throwing = 0 - if(isobj(src)) src:throw_impact(get_turf(src)) + if(isobj(src)) src:throw_impact(get_turf(src),speed) //Overlays diff --git a/code/game/dna.dm b/code/game/dna.dm index c652140d96c..cb58013e016 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -548,7 +548,17 @@ sleep(48) del(animation) - var/mob/living/carbon/monkey/O = new(src) + + var/mob/living/carbon/monkey/O = null + switch(M.dna.mutantrace) + if("tajaran") + O = new /mob/living/carbon/monkey/tajara(src) + if("lizard") + O = new /mob/living/carbon/monkey/unathi(src) + if("skrell") + O = new /mob/living/carbon/monkey/skrell(src) + else + O = new /mob/living/carbon/monkey(src) if(M) if (M.dna) diff --git a/code/game/gamemodes/autotraitor/autotraitor.dm b/code/game/gamemodes/autotraitor/autotraitor.dm index c5b159dd1a9..74bced44214 100644 --- a/code/game/gamemodes/autotraitor/autotraitor.dm +++ b/code/game/gamemodes/autotraitor/autotraitor.dm @@ -11,7 +11,7 @@ /datum/game_mode/traitor/autotraitor/announce() ..() - world << "Game mode is AutoTraitor. Traitors will be added to the round automagically as needed.
    Expect bugs.
    " + world << "Game mode is AutoTraitor. Traitors will be added to the round automagically as needed." /datum/game_mode/traitor/autotraitor/pre_setup() @@ -81,7 +81,7 @@ var/playercount = 0 var/traitorcount = 0 var/possible_traitors[0] - for(var/mob/living/player in world) + for(var/mob/living/player in mob_list) if (player.client && player.stat != 2) playercount += 1 @@ -153,7 +153,7 @@ //message_admins("Checking number of players") var/playercount = 0 var/traitorcount = 0 - for(var/mob/living/player in world) + for(var/mob/living/player in mob_list) if (player.client && player.stat != 2) playercount += 1 diff --git a/code/game/gamemodes/blob/blob_report.dm b/code/game/gamemodes/blob/blob_report.dm index 731ac0ea396..f58c59673c8 100644 --- a/code/game/gamemodes/blob/blob_report.dm +++ b/code/game/gamemodes/blob/blob_report.dm @@ -19,7 +19,7 @@ intercepttext += "Message ends." if(2) var/nukecode = "ERROR" - for(var/obj/machinery/nuclearbomb/bomb in world) + for(var/obj/machinery/nuclearbomb/bomb in machines) if(bomb && bomb.r_code) if(bomb.z == 1) nukecode = bomb.r_code @@ -39,7 +39,7 @@ aiPlayer.set_zeroth_law(law) aiPlayer << "Laws Updated: [law]" - for(var/obj/machinery/computer/communications/comm in world) + for(var/obj/machinery/computer/communications/comm in machines) comm.messagetitle.Add(interceptname) comm.messagetext.Add(intercepttext) if(!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 63ba22d87f8..93d54a56550 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -106,7 +106,10 @@ src << "We stab [T] with the proboscis." src.visible_message("[src] stabs [T] with the proboscis!") T << "You feel a sharp stabbing pain!" - T.take_overall_damage(40) + var/datum/organ/external/affecting = T.get_organ(src.zone_sel.selecting) + if(affecting.take_damage(39,0,1,"large organic needle")) + T:UpdateDamageIcon() + continue feedback_add_details("changeling_powers","A[stage]") if(!do_mob(src, T, 150)) diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index 511b23b4b33..b9f68fb143c 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -186,7 +186,7 @@ //command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") //world << sound('sound/AI/aliens.ogg') var/list/vents = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in world) + for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines) if(temp_vent.loc.z == 1 && !temp_vent.welded && temp_vent.network) if(temp_vent.network.normal_members.len > 50) // Stops Aliens getting stuck in small networks. See: Security, Virology vents += temp_vent @@ -325,7 +325,7 @@ apc.overload_lighting() else - for(var/obj/machinery/power/apc/apc in world) + for(var/obj/machinery/power/apc/apc in machines) apc.overload_lighting() return @@ -436,7 +436,7 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is M.add_ion_law("THE STATION IS [who2pref] [who2]") if(botEmagChance) - for(var/obj/machinery/bot/bot in world) + for(var/obj/machinery/bot/bot in machines) if(prob(botEmagChance)) bot.Emag() diff --git a/code/game/gamemodes/events/ninja_abilities.dm b/code/game/gamemodes/events/ninja_abilities.dm index 925f2f19bf0..16dfae52493 100644 --- a/code/game/gamemodes/events/ninja_abilities.dm +++ b/code/game/gamemodes/events/ninja_abilities.dm @@ -65,45 +65,11 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo s_coold = 1 return -//=======//9-8 TILE TELEPORT//=======// -//Click to to teleport 9-10 tiles in direction facing. -/obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt() - set name = "Phase Jaunt (10E)" - set desc = "Utilizes the internal VOID-shift device to rapidly transit in direction facing." - set category = "Ninja Ability" - set popup_menu = 0 - - var/C = 100 - if(!ninjacost(C,1)) - var/mob/living/carbon/human/U = affecting - var/turf/destination = get_teleport_loc(U.loc,U,9,1,3,1,0,1) - var/turf/mobloc = get_turf(U.loc)//To make sure that certain things work properly below. - if(destination&&istype(mobloc, /turf))//The turf check prevents unusual behavior. Like teleporting out of cryo pods, cloners, mechs, etc. - spawn(0) - playsound(U.loc, "sparks", 50, 1) - anim(mobloc,src,'icons/mob/mob.dmi',,"phaseout",,U.dir) - - handle_teleport_grab(destination, U) - U.loc = destination - - spawn(0) - spark_system.start() - playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(U.loc, "sparks", 50, 1) - anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - - spawn(0) - destination.kill_creatures(U)//Any living mobs in teleport area are gibbed. Check turf procs for how it does it. - s_coold = 1 - cell.charge-=(C*10) - else - U << "\red The VOID-shift device is malfunctioning, teleportation failed." - return //=======//RIGHT CLICK TELEPORT//=======// //Right click to teleport somewhere, almost exactly like admin jump to turf. /obj/item/clothing/suit/space/space_ninja/proc/ninjashift(turf/T in oview()) - set name = "Phase Shift (20E)" + set name = "Phase Shift (1E)" set desc = "Utilizes the internal VOID-shift device to rapidly transit to a destination in view." set category = null//So it does not show up on the panel but can still be right-clicked. set src = usr.contents//Fixes verbs not attaching properly for objects. Praise the DM reference guide! @@ -125,11 +91,6 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1) playsound(U.loc, 'sound/effects/sparks2.ogg', 50, 1) anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - - spawn(0)//Any living mobs in teleport area are gibbed. - T.kill_creatures(U) - s_coold = 1 - cell.charge-=(C*10) else U << "\red You cannot teleport into solid walls or from solid matter" return @@ -137,16 +98,16 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo //=======//EM PULSE//=======// //Disables nearby tech equipment. /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse() - set name = "EM Burst (25E)" + set name = "EM Burst (1,000E)" set desc = "Disable any nearby technology with a electro-magnetic pulse." set category = "Ninja Ability" set popup_menu = 0 var/C = 250 - if(!ninjacost(C,1)) + if(!ninjacost(C,100)) // EMP's now cost 1,000Energy about 30% var/mob/living/carbon/human/U = affecting playsound(U.loc, 'sound/effects/EMPulse.ogg', 60, 2) - empulse(U, 4, 6) //Procs sure are nice. Slightly weaker than wizard's disable tch. + empulse(U, 2, 3) //Procs sure are nice. Slightly weaker than wizard's disable tch. s_coold = 2 cell.charge-=(C*10) return @@ -154,13 +115,13 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo //=======//ENERGY BLADE//=======// //Summons a blade of energy in active hand. /obj/item/clothing/suit/space/space_ninja/proc/ninjablade() - set name = "Energy Blade (5E)" + set name = "Energy Blade (20E)" set desc = "Create a focused beam of energy in your active hand." set category = "Ninja Ability" set popup_menu = 0 var/C = 50 - if(!ninjacost(C)) + if(!ninjacost(C, 800)) //Same spawn cost but higher upkeep cost var/mob/living/carbon/human/U = affecting if(!kamikaze) if(!U.get_active_hand()&&!istype(U.get_inactive_hand(), /obj/item/weapon/melee/energy/blade)) @@ -187,13 +148,13 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo /*Shoots ninja stars at random people. This could be a lot better but I'm too tired atm.*/ /obj/item/clothing/suit/space/space_ninja/proc/ninjastar() - set name = "Energy Star (5E)" + set name = "Energy Star (1,000E)" set desc = "Launches an energy star at a random living target." set category = "Ninja Ability" set popup_menu = 0 var/C = 50 - if(!ninjacost(C)) + if(!ninjacost(C,1)) var/mob/living/carbon/human/U = affecting var/targets[] = list()//So yo can shoot while yo throw dawg for(var/mob/living/M in oview(loc)) @@ -212,7 +173,7 @@ This could be a lot better but I'm too tired atm.*/ A.current = curloc A.yo = targloc.y - curloc.y A.xo = targloc.x - curloc.x - cell.charge-=(C*10) + cell.charge-=(C*100)// Ninja stars now cost 100 energy, stil la fair chunk to avoid spamming, will run out of power quickly if used 3 or more times A.process() else U << "\red There are no targets in view." @@ -222,13 +183,13 @@ This could be a lot better but I'm too tired atm.*/ /*Allows the ninja to capture people, I guess. Must right click on a mob to activate.*/ /obj/item/clothing/suit/space/space_ninja/proc/ninjanet(mob/living/carbon/M in oview())//Only living carbon mobs. - set name = "Energy Net (20E)" + set name = "Energy Net (8,000E)" set desc = "Captures a fallen opponent in a net of energy. Will teleport them to a holding facility after 30 seconds." set category = null set src = usr.contents - var/C = 200 - if(!ninjacost(C,1)&&iscarbon(M)) + var/C = 500 + if(!ninjacost(C,80)&&iscarbon(M)) // Nets now cost 8,000 var/mob/living/carbon/human/U = affecting if(M.client)//Monkeys without a client can still step_to() and bypass the net. Also, netting inactive people is lame. //if(M)//DEBUG @@ -249,7 +210,7 @@ Must right click on a mob to activate.*/ E.master = U spawn(0)//Parallel processing. E.process(M) - cell.charge-=(C*10) + cell.charge-=(C*100) // Nets now cost what should be most of a standard battery, since your taking someone out of the round else U << "They are already trapped inside an energy net." else @@ -270,7 +231,6 @@ Movement impairing would indicate drugs and the like.*/ //Wouldn't need to track adrenaline boosters if there was a miracle injection to get rid of paralysis and the like instantly. //For now, adrenaline boosters ARE the miracle injection. Well, radium, really. U.SetParalysis(0) - U.SetStunned(0) U.SetWeakened(0) /* Due to lag, it was possible to adrenaline boost but remain helpless while life.dm resets player stat. diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm index 8f66ca56a32..45bc487eefa 100644 --- a/code/game/gamemodes/events/ninja_equipment.dm +++ b/code/game/gamemodes/events/ninja_equipment.dm @@ -243,7 +243,7 @@ ________________________________________________________________________________ var/mob/living/silicon/ai/A = AI var/display_to = s_control ? U : A//Who do we want to display certain messages to? - var/dat = "SpiderOS" + var/dat = "SpiderOS" dat += " Refresh" if(spideros) dat += " | Return" @@ -1209,7 +1209,7 @@ ________________________________________________________________________________ U.client.images += image(tempHud,target,"hudoperative") if("Death Commando") U.client.images += image(tempHud,target,"huddeathsquad") - if("Space Ninja") + if("Ninja") U.client.images += image(tempHud,target,"hudninja") else//If we don't know what role they have but they have one. U.client.images += image(tempHud,target,"hudunknown1") @@ -1333,10 +1333,10 @@ It is possible to destroy the net by the occupant or someone else. return process(var/mob/living/carbon/M as mob) - var/check = 30//30 seconds before teleportation. Could be extended I guess. + var/check = 60//30 seconds before teleportation. Could be extended I guess. - Extended to one minute var/mob_name = affecting.name//Since they will report as null if terminated before teleport. //The person can still try and attack the net when inside. - while(!isnull(M)&&!isnull(src)&&check>0)//While M and net exist, and 30 seconds have not passed. + while(!isnull(M)&&!isnull(src)&&check>0)//While M and net exist, and 60 seconds have not passed. check-- sleep(10) diff --git a/code/game/gamemodes/events/space_ninja.dm b/code/game/gamemodes/events/space_ninja.dm index 2314f382588..437b5be0c23 100644 --- a/code/game/gamemodes/events/space_ninja.dm +++ b/code/game/gamemodes/events/space_ninja.dm @@ -52,7 +52,7 @@ ________________________________________________________________________________ How to do that: Make sure your character has a mind. Change their assigned_role to "MODE", no quotes. Otherwise, the suit won't initialize. - Change their special_role to "Space Ninja", no quotes. Otherwise, the character will be gibbed. + Change their special_role to "Ninja", no quotes. Otherwise, the character will be gibbed. Spawn ninja gear, put it on, hit initialize. Let the suit do the rest. You are now a space ninja. I don't recommend messing with suit variables unless you really know what you're doing. @@ -140,15 +140,10 @@ Malf AIs/silicons aren't added. Monkeys aren't added. Messes with objective comp */ //Here we pick a location and spawn the ninja. - var/list/spawn_list = list() - for(var/obj/effect/landmark/L in landmarks_list) - if(L.name == "ninjaspawn") - spawn_list.Add(L) - - if(!spawn_list.len) + if(ninjastart.len == 0) for(var/obj/effect/landmark/L in landmarks_list) if(L.name == "carpspawn") - spawn_list.Add(L) + ninjastart.Add(L) var/ninja_key = null var/mob/candidate_mob @@ -211,7 +206,7 @@ Malf AIs/silicons aren't added. Monkeys aren't added. Messes with objective comp ninja_selection_active = 0 //The ninja will be created on the right spawn point or at late join. - var/mob/living/carbon/human/new_ninja = create_space_ninja(pick(spawn_list.len ? spawn_list : latejoin )) + var/mob/living/carbon/human/new_ninja = create_space_ninja(pick(ninjastart.len ? ninjastart : latejoin)) new_ninja.key = ninja_key new_ninja.wear_suit:randomize_param()//Give them a random set of suit parameters. new_ninja.internal = new_ninja.s_store //So the poor ninja has something to breath when they spawn in spess. @@ -241,8 +236,8 @@ Malf AIs/silicons aren't added. Monkeys aren't added. Messes with objective comp if(xeno_queen_list.len&&side=="face")//If there are queen about and the probability is 50. for(var/mob/living/carbon/alien/humanoid/queen/xeno_queen in xeno_queen_list) var/datum/objective/assassinate/ninja_objective = new - //We'll do some manual overrides to properly set it up. ninja_objective.owner = ninja_mind + //We'll do some manual overrides to properly set it up. ninja_objective.target = xeno_queen.mind ninja_objective.explanation_text = "Kill \the [xeno_queen]." ninja_mind.objectives += ninja_objective @@ -307,6 +302,7 @@ Malf AIs/silicons aren't added. Monkeys aren't added. Messes with objective comp hostile_targets -= current_mind//Remove them from the list. if(2)//Steal var/datum/objective/steal/ninja_objective = new + ninja_objective.owner = ninja_mind var/target_item = pick(ninja_objective.possible_items_special) ninja_objective.set_target(target_item) ninja_mind.objectives += ninja_objective @@ -342,12 +338,14 @@ Malf AIs/silicons aren't added. Monkeys aren't added. Messes with objective comp hostile_targets -= current_mind//Remove them from the list. if(5)//Download research var/datum/objective/download/ninja_objective = new + ninja_objective.owner = ninja_mind ninja_objective.gen_amount_goal() ninja_mind.objectives += ninja_objective objective_list -= 5 if(6)//Capture var/datum/objective/capture/ninja_objective = new + ninja_objective.owner = ninja_mind ninja_objective.gen_amount_goal() ninja_mind.objectives += ninja_objective @@ -394,17 +392,17 @@ As such, it's hard-coded for now. No reason for it not to be, really. */ /proc/generate_ninja_directive(side) var/directive = "[side=="face"?"Nanotrasen":"The Syndicate"] is your employer. "//Let them know which side they're on. - switch(rand(1,13)) + switch(rand(1,19)) if(1) - directive += "The Spider Clan must not be linked to this operation. Remain as hidden and covert as possible." + directive += "The Spider Clan must not be linked to this operation. Remain hidden and covert when possible." if(2) - directive += "[station_name] is financed by an enemy of the Spider Clan. Cause as much structural damage as possible." + directive += "[station_name] is financed by an enemy of the Spider Clan. Cause as much structural damage as desired." if(3) directive += "A wealthy animal rights activist has made a request we cannot refuse. Prioritize saving animal lives whenever possible." if(4) - directive += "The Spider Clan absolutely cannot be linked to this operation. Eliminate all witnesses using most extreme prejudice." + directive += "The Spider Clan absolutely cannot be linked to this operation. Eliminate witnesses at your discretion." if(5) - directive += "We are currently negotiating with Nanotrasen command. Prioritize saving human lives over ending them." + directive += "We are currently negotiating with NanoTrasen Central Command. Prioritize saving human lives over ending them." if(6) directive += "We are engaged in a legal dispute over [station_name]. If a laywer is present on board, force their cooperation in the matter." if(7) @@ -414,11 +412,24 @@ As such, it's hard-coded for now. No reason for it not to be, really. if(9) directive += "A free agent has proposed a lucrative business deal. Implicate Nanotrasen involvement in the operation." if(10) - directive += "Our reputation is on the line. Harm as few civilians or innocents as possible." + directive += "Our reputation is on the line. Harm as few civilians and innocents as possible." if(11) directive += "Our honor is on the line. Utilize only honorable tactics when dealing with opponents." if(12) - directive += "We are currently negotiating with a Syndicate leader. Disguise assassinations as suicide or another natural cause." + directive += "We are currently negotiating with a Syndicate leader. Disguise assassinations as suicide or other natural causes." + if(13) + directive += "Some disgruntled NanoTrasen employees have been supportive of our operations. Be wary of any mistreatment by command staff." + if(14) + var/xenorace = pick("Unathi","Tajaran", "Skrellian") + directive += "A group of [xenorace] radicals have been loyal supporters of the Spider Clan. Favor [xenorace] crew whenever possible." + if(15) + directive += "The Spider Clan has recently been accused of religious insensitivity. Attempt to speak with the Chaplain and prove these accusations false." + if(16) + directive += "The Spider Clan has been bargaining with a competing prosthetics manufacturer. Try to shine NanoTrasen prosthetics in a bad light." + if(17) + directive += "The Spider Clan has recently begun recruiting outsiders. Consider suitable candidates and assess their behavior amongst the crew." + if(18) + directive += "A cyborg liberation group has expressed interest in our serves. Prove the Spider Clan merciful towards law-bound synthetics." else directive += "There are no special supplemental instructions at this time." return directive @@ -508,10 +519,9 @@ As such, it's hard-coded for now. No reason for it not to be, really. /mob/living/carbon/human/proc/create_mind_space_ninja() mind_initialize() mind.assigned_role = "MODE" - mind.special_role = "Space Ninja" + mind.special_role = "Ninja" - //Adds them to current traitor list. Which is really the extra antagonist list. - ticker.mode.traitors |= mind + //ticker.mode.ninjas |= mind return 1 /mob/living/carbon/human/proc/equip_space_ninja(safety=0)//Safety in case you need to unequip stuff for existing characters. @@ -559,7 +569,7 @@ As such, it's hard-coded for now. No reason for it not to be, really. U:gloves.icon_state = "s-ninjan" U:gloves.item_state = "s-ninjan" else - if(U.mind.special_role!="Space Ninja") + if(U.mind.special_role!="Ninja") U << "\red fÄTaL ÈÈRRoR: 382200-*#00CÖDE RED\nUNAU†HORIZED USÈ DETÈC†††eD\nCoMMÈNCING SUB-R0U†IN3 13...\nTÈRMInATING U-U-USÈR..." U.gib() return 0 @@ -656,7 +666,6 @@ As such, it's hard-coded for now. No reason for it not to be, really. /obj/item/clothing/suit/space/space_ninja/proc/grant_ninja_verbs() verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjasmoke verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse @@ -669,8 +678,6 @@ As such, it's hard-coded for now. No reason for it not to be, really. /obj/item/clothing/suit/space/space_ninja/proc/remove_ninja_verbs() verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjasmoke verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjablade @@ -681,11 +688,7 @@ As such, it's hard-coded for now. No reason for it not to be, really. /obj/item/clothing/suit/space/space_ninja/proc/grant_kamikaze(mob/living/carbon/U) verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjastar verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjanet - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjaslayer verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjawalk verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjamirage @@ -710,11 +713,8 @@ As such, it's hard-coded for now. No reason for it not to be, really. /obj/item/clothing/suit/space/space_ninja/proc/remove_kamikaze(mob/living/carbon/U) if(kamikaze) verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjastar - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjanet - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjaslayer verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjawalk verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjamirage diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index f9343161e73..708f710ab39 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -243,7 +243,7 @@ Implants; else intercepttext += "[M.name], the [M.mind.assigned_role]
    " - for (var/obj/machinery/computer/communications/comm in world) + for (var/obj/machinery/computer/communications/comm in machines) if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) intercept.name = "paper- 'Cent. Com. Status Summary'" @@ -261,11 +261,11 @@ Implants; set_security_level(SEC_LEVEL_BLUE)*/ -/datum/game_mode/proc/get_players_for_role(var/role, override_jobbans=1) +/datum/game_mode/proc/get_players_for_role(var/role, override_jobbans=0) var/list/players = list() var/list/candidates = list() - var/list/drafted = list() - var/datum/mind/applicant = null + //var/list/drafted = list() + //var/datum/mind/applicant = null var/roletext switch(role) @@ -275,31 +275,42 @@ Implants; if(BE_WIZARD) roletext="wizard" if(BE_REV) roletext="revolutionary" if(BE_CULTIST) roletext="cultist" + if(BE_NINJA) roletext="ninja" - - // Ultimate randomizing code right here + // Assemble a list of active players without jobbans. for(var/mob/new_player/player in player_list) - if(player.client && player.ready) - players += player + if( player.client && player.ready ) + if(!jobban_isbanned(player, "Syndicate") && !jobban_isbanned(player, roletext)) + players += player - // Shuffling, the players list is now ping-independent!!! - // Goodbye antag dante + // Shuffle the players list so that it becomes ping-independent. players = shuffle(players) + // Get a list of all the people who want to be the antagonist for this round for(var/mob/new_player/player in players) - if(player.client && player.ready) - if(player.client.prefs.be_special & role) - if(!jobban_isbanned(player, "Syndicate") && !jobban_isbanned(player, roletext)) //Nodrak/Carn: Antag Job-bans - candidates += player.mind // Get a list of all the people who want to be the antagonist for this round - log_debug("[player.key] had [roletext] enabled, so drafting them.") + if(player.client.prefs.be_special & role) + log_debug("[player.key] had [roletext] enabled, so we are drafting them.") + candidates += player.mind + players -= player + // If we don't have enough antags, draft people who voted for the round. + if(candidates.len < recommended_enemies) + for(var/key in round_voters) + for(var/mob/new_player/player in players) + if(player.ckey == key) + log_debug("[player.key] voted for this round, so we are drafting them.") + candidates += player.mind + players -= player + break + + // Remove candidates who want to be antagonist but have a job that precludes it if(restricted_jobs) for(var/datum/mind/player in candidates) - for(var/job in restricted_jobs) // Remove people who want to be antagonist but have a job already that precludes it + for(var/job in restricted_jobs) if(player.assigned_role == job) candidates -= player - if(candidates.len < recommended_enemies) + /*if(candidates.len < recommended_enemies) for(var/mob/new_player/player in players) if(player.client && player.ready) if(!(player.client.prefs.be_special & role)) // We don't have enough people who want to be antagonist, make a seperate list of people who don't want to be one @@ -349,6 +360,7 @@ Implants; else // Not enough scrubs, ABORT ABORT ABORT break + */ return candidates // Returns: The number of people who had the antagonist role set to yes, regardless of recomended_enemies, if that number is greater than recommended_enemies // recommended_enemies if the number of people with that role set to yes is less than recomended_enemies, diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 684576550a9..78a8fe69383 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -108,7 +108,7 @@ var/global/datum/controller/gameticker/ticker //setup the money accounts if(!centcomm_account_db) - for(var/obj/machinery/account_database/check_db in world) + for(var/obj/machinery/account_database/check_db in machines) if(check_db.z == 2) centcomm_account_db = check_db break diff --git a/code/game/gamemodes/ninja/ninja.dm b/code/game/gamemodes/ninja/ninja.dm new file mode 100644 index 00000000000..8dd3c45e19d --- /dev/null +++ b/code/game/gamemodes/ninja/ninja.dm @@ -0,0 +1,181 @@ +/datum/game_mode/var/list/datum/mind/ninjas = list() +// Keep in mind ninja-procs that aren't here will be where the event's defined +/datum/game_mode/ninja + name = "ninja" + config_tag = "ninja" + required_players = 10 //Can be adjusted later, should suffice for now. + required_players_secret = 10 + required_enemies = 1 + recommended_enemies = 1 + var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) + var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) + var/finished = 0 + +/datum/game_mode/ninja/announce() + world << "The current game mode is Ninja!" + +/datum/game_mode/ninja/can_start() + if(!..()) + return 0 + var/list/datum/mind/possible_ninjas = get_players_for_role(BE_NINJA) + if(possible_ninjas.len==0) + return 0 + var/datum/mind/ninja = pick(possible_ninjas) + ninjas += ninja + modePlayer += ninja + ninja.assigned_role = "MODE" //So they aren't chosen for other jobs. + ninja.special_role = "Ninja" + ninja.original = ninja.current + if(ninjastart.len == 0) + ninja.current << "\red A proper starting location for you could not be found, please report this bug!" + ninja.current << "\red Attempting to place at a carpspawn." + for(var/obj/effect/landmark/L in landmarks_list) + if(L.name == "carpspawn") + ninjastart.Add(L) + if(ninjastart.len == 0 && latejoin.len > 0) + ninja.current << "\red Still no spawneable locations could be found. Defaulting to latejoin." + return 1 + else if (ninjastart.len == 0) + ninja.current << "\red Still no spawneable locations could be found. Aborting." + return 0 + return 1 + +/datum/game_mode/ninja/pre_setup() + for(var/datum/mind/ninja in ninjas) + ninja.current << browse(null, "window=playersetup") + ninja.current = create_space_ninja(pick(ninjastart.len ? ninjastart : latejoin)) + ninja.current.ckey = ninja.key + return 1 + +/datum/game_mode/ninja/post_setup() + for(var/datum/mind/ninja in ninjas) + if(ninja.current && !(istype(ninja.current,/mob/living/carbon/human))) return 0 + //forge_ninja_objectives(ninja) + var/mob/living/carbon/human/N = ninja.current + N.internal = N.s_store + N.internals.icon_state = "internal1" + if(N.wear_suit && istype(N.wear_suit,/obj/item/clothing/suit/space/space_ninja)) + var/obj/item/clothing/suit/space/space_ninja/S = N.wear_suit + S:randomize_param() + spawn (rand(waittime_l, waittime_h)) + send_intercept() + return ..() + +/datum/game_mode/ninja/check_finished() + if(config.continous_rounds) + return ..() + var/ninjas_alive = 0 + for(var/datum/mind/ninja in ninjas) + if(!istype(ninja.current,/mob/living/carbon/human)) + continue + if(ninja.current.stat==2) + continue + ninjas_alive++ + if (ninjas_alive) + return ..() + else + finished = 1 + return 1 + +/datum/game_mode/ninja/proc/forge_ninja_objectives(var/datum/mind/ninja) + var/objective_list[] = list(1,2,3,4,5) + for(var/i=rand(2,4),i>0,i--) + switch(pick(objective_list)) + if(1)//Kill + var/datum/objective/assassinate/ninja_objective = new + ninja_objective.owner = ninja + ninja_objective.target = ninja_objective.find_target() + if(ninja_objective.target != "Free Objective") + ninja.objectives += ninja_objective + else + i++ + objective_list -= 1 // No more than one kill objective + if(2)//Steal + var/datum/objective/steal/ninja_objective = new + ninja_objective.owner = ninja + ninja_objective.target = ninja_objective.find_target() + ninja.objectives += ninja_objective + if(3)//Protect + var/datum/objective/protect/ninja_objective = new + ninja_objective.owner = ninja + ninja_objective.target = ninja_objective.find_target() + if(ninja_objective.target != "Free Objective") + ninja.objectives += ninja_objective + else + i++ + objective_list -= 3 + if(4)//Download + var/datum/objective/download/ninja_objective = new + ninja_objective.owner = ninja + ninja_objective.gen_amount_goal() + ninja.objectives += ninja_objective + objective_list -= 4 + if(5)//Harm + var/datum/objective/harm/ninja_objective = new + ninja_objective.owner = ninja + ninja_objective.target = ninja_objective.find_target() + if(ninja_objective.target != "Free Objective") + ninja.objectives += ninja_objective + else + i++ + objective_list -= 5 + + var/datum/objective/survive/ninja_objective = new + ninja_objective.owner = ninja + ninja.objectives += ninja_objective + + var/directive = generate_ninja_directive("heel")//Only hired by antags, not NT + ninja.current << "You are an elite mercenary assassin of the Spider Clan, [ninja.current.real_name]. You have a variety of abilities at your disposal, thanks to your nano-enhanced cyber armor.\nYour current directive is: \red [directive]\n \blue Try your best to adhere to this." + ninja.store_memory("Directive: \red [directive]
    ") + + var/obj_count = 1 + ninja.current << "\blue Your current objectives:" + for(var/datum/objective/objective in ninja.objectives) + ninja.current << "Objective #[obj_count]: [objective.explanation_text]" + obj_count++ + +/datum/game_mode/proc/auto_declare_completion_ninja() + if(ninjas.len) + var/text = "The ninjas were:" + for(var/datum/mind/ninja in ninjas) + var/ninjawin = 1 + + text += "
    [ninja.key] was [ninja.name] (" + if(ninja.current) + if(ninja.current.stat == DEAD) + text += "died" + else + text += "survived" + if(ninja.current.real_name != ninja.name) + text += " as [ninja.current.real_name]" + else + text += "body destroyed" + text += ")" + + if(ninja.objectives.len)//If the ninja had no objectives, don't need to process this. + var/count = 1 + for(var/datum/objective/objective in ninja.objectives) + if(objective.check_completion()) + text += "
    Objective #[count]: [objective.explanation_text] Success!" + feedback_add_details("traitor_objective","[objective.type]|SUCCESS") + else + text += "
    Objective #[count]: [objective.explanation_text] Fail." + feedback_add_details("traitor_objective","[objective.type]|FAIL") + ninjawin = 0 + count++ + + var/special_role_text + if(ninja.special_role) + special_role_text = lowertext(ninja.special_role) + else + special_role_text = "antagonist" + + if(ninjawin) + text += "
    The [special_role_text] was successful!" + feedback_add_details("traitor_success","SUCCESS") + else + text += "
    The [special_role_text] has failed!" + feedback_add_details("traitor_success","FAIL") + + world << text + return 1 diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 54b12206d47..d014ba09608 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -157,10 +157,10 @@ /datum/game_mode/proc/prepare_syndicate_leader(var/datum/mind/synd_mind, var/nuke_code) - var/leader_title = pick("Czar", "Boss", "Commander", "Chief", "Kingpin", "Director", "Overlord") +// var/leader_title = pick("Czar", "Boss", "Commander", "Chief", "Kingpin", "Director", "Overlord") spawn(1) - NukeNameAssign(nukelastname(synd_mind.current),syndicates) //allows time for the rest of the syndies to be chosen - synd_mind.current.real_name = "[syndicate_name()] [leader_title]" +// NukeNameAssign(nukelastname(synd_mind.current),syndicates) //allows time for the rest of the syndies to be chosen + synd_mind.current.real_name = "[pick(first_names_male)] [pick(last_names)]" if (nuke_code) synd_mind.store_memory("Syndicate Nuclear Bomb Code: [nuke_code]", 0, 0) synd_mind.current << "The nuclear authorization code is: [nuke_code]" @@ -330,7 +330,7 @@ return 1 -/proc/nukelastname(var/mob/M as mob) //--All praise goes to NEO|Phyte, all blame goes to DH, and it was Cindi-Kate's idea. Also praise Urist for copypasta ho. +/*/proc/nukelastname(var/mob/M as mob) //--All praise goes to NEO|Phyte, all blame goes to DH, and it was Cindi-Kate's idea. Also praise Urist for copypasta ho. var/randomname = pick(last_names) var/newname = copytext(sanitize(input(M,"You are the nuke operative [pick("Czar", "Boss", "Commander", "Chief", "Kingpin", "Director", "Overlord")]. Please choose a last name for your family.", "Name change",randomname)),1,MAX_NAME_LEN) @@ -343,13 +343,13 @@ return nukelastname(M) return newname - +*/ /proc/NukeNameAssign(var/lastname,var/list/syndicates) for(var/datum/mind/synd_mind in syndicates) switch(synd_mind.current.gender) if(MALE) - synd_mind.name = "[pick(first_names_male)] [lastname]" + synd_mind.name = "[pick(first_names_male)] [pick(last_names)]" if(FEMALE) - synd_mind.name = "[pick(first_names_female)] [lastname]" + synd_mind.name = "[pick(first_names_female)] [pick(last_names)]" synd_mind.current.real_name = synd_mind.name return \ No newline at end of file diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index f323e26a1c4..1b3552408c5 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -569,6 +569,10 @@ datum/objective/steal for(var/mob/living/silicon/ai/M in C) if(istype(M, /mob/living/silicon/ai) && M.stat != 2) //See if any AI's are alive inside that card. return 1 + + for(var/obj/item/clothing/suit/space/space_ninja/S in all_items) //Let an AI downloaded into a space ninja suit count + if(S.AI && S.AI.stat != 2) + return 1 for(var/mob/living/silicon/ai/ai in world) if(istype(ai.loc, /turf)) var/area/check_area = get_area(ai) diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index e1b19a287b6..ba5700b1df3 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -45,7 +45,6 @@ /datum/game_mode/wizard/pre_setup() for(var/datum/mind/wizard in wizards) wizard.current.loc = pick(wizardstart) - return 1 diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 407ec98b848..82fe991ce0b 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -64,6 +64,7 @@ /var/const/access_gateway = 62 /var/const/access_sec_doors = 63 // Security front doors /var/const/access_psychiatrist = 64 // Psychiatrist's office +/var/const/access_xenoarch = 65 //BEGIN CENTCOM ACCESS /*Should leave plenty of room if we need to add more access levels. @@ -209,7 +210,7 @@ access_hydroponics, access_library, access_lawyer, access_virology, access_psychiatrist, access_cmo, access_qm, access_clown, access_mime, access_surgery, access_theatre, access_research, access_mining, access_mailsorting, access_heads_vault, access_mining_station, access_xenobiology, access_ce, access_hop, access_hos, access_RC_announce, - access_keycard_auth, access_tcomsat, access_gateway) + access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch) /proc/get_all_centcom_access() return list(access_cent_general, access_cent_thunder, access_cent_specops, access_cent_medical, access_cent_living, access_cent_storage, access_cent_teleporter, access_cent_creed, access_cent_captain) @@ -226,7 +227,7 @@ if(2) //medbay return list(access_medical, access_genetics, access_morgue, access_chemistry, access_psychiatrist, access_virology, access_surgery, access_cmo) if(3) //research - return list(access_research, access_tox, access_tox_storage, access_robotics, access_xenobiology, access_rd) + return list(access_research, access_tox, access_tox_storage, access_robotics, access_xenobiology, access_xenoarch, access_rd) if(4) //engineering and maintenance return list(access_construction, access_maint_tunnels, access_engine, access_engine_equip, access_external_airlocks, access_tech_storage, access_atmospherics, access_ce) if(5) //command @@ -370,6 +371,8 @@ return "Mining EVA" if(access_xenobiology) return "Xenobiology Lab" + if(access_xenoarch) + return "Xenoarchaeology" if(access_hop) return "Head of Personnel" if(access_hos) @@ -412,7 +415,7 @@ return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Chef", "Botanist", "Quartermaster", "Cargo Technician", "Shaft Miner", /*"Clown", "Mime", */"Janitor", "Librarian", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", "Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", - "Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer") + "Research Director", "Scientist", "Xenobiologist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer") /proc/get_all_centcom_jobs() return list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer","BlackOps Commander","Supreme Commander") diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index 7ebb958112a..fbfe286e484 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -12,11 +12,11 @@ access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, access_tox_storage, access_teleporter, access_sec_doors, access_research, access_robotics, access_xenobiology, access_ai_upload, - access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway) + access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch) minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, access_tox_storage, access_teleporter, access_sec_doors, access_research, access_robotics, access_xenobiology, access_ai_upload, - access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway) + access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch) minimal_player_age = 7 equip(var/mob/living/carbon/human/H) @@ -44,9 +44,9 @@ spawn_positions = 3 supervisors = "the research director" selection_color = "#ffeeff" - access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology) - minimal_access = list(access_tox, access_tox_storage, access_research, access_xenobiology) - alt_titles = list("Xenoarcheologist", "Anomalist", "Plasma Researcher", "Xenobiologist") + access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch) + minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch) + alt_titles = list("Xenoarcheologist", "Anomalist", "Plasma Researcher") equip(var/mob/living/carbon/human/H) if(!H) return 0 @@ -63,6 +63,32 @@ +/datum/job/xenobiologist + title = "Xenobiologist" + flag = XENOBIOLOGIST + department_flag = MEDSCI + faction = "Station" + total_positions = 2 + spawn_positions = 2 + supervisors = "the research director" + selection_color = "#ffeeff" + access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology) + minimal_access = list(access_research, access_xenobiology) + + equip(var/mob/living/carbon/human/H) + if(!H) return 0 + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sci(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/scientist(H), slot_w_uniform) + H.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(H), slot_shoes) + H.equip_to_slot_or_del(new /obj/item/device/pda/toxins(H), slot_belt) + H.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/labcoat/science(H), slot_wear_suit) + if(H.backbag == 1) + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand) + else + H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) + return 1 + + /datum/job/roboticist title = "Roboticist" flag = ROBOTICIST diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm index 4ba993f64e7..d13756bd9ee 100644 --- a/code/game/jobs/jobs.dm +++ b/code/game/jobs/jobs.dm @@ -9,9 +9,8 @@ var/const/OFFICER =(1<<4) var/const/CHIEF =(1<<5) var/const/ENGINEER =(1<<6) var/const/ATMOSTECH =(1<<7) -var/const/ROBOTICIST =(1<<8) -var/const/AI =(1<<9) -var/const/CYBORG =(1<<10) +var/const/AI =(1<<8) +var/const/CYBORG =(1<<9) var/const/MEDSCI =(1<<1) @@ -24,6 +23,8 @@ var/const/DOCTOR =(1<<4) var/const/GENETICIST =(1<<5) var/const/VIROLOGIST =(1<<6) var/const/PSYCHIATRIST =(1<<7) +var/const/ROBOTICIST =(1<<8) +var/const/XENOBIOLOGIST =(1<<9) var/const/CIVILIAN =(1<<2) @@ -78,7 +79,8 @@ var/list/science_positions = list( "Research Director", "Scientist", "Geneticist", //Part of both medical and science - "Roboticist" + "Roboticist", + "Xenobiologist" ) //BS12 EDIT @@ -115,3 +117,26 @@ var/list/nonhuman_positions = list( /proc/guest_jobbans(var/job) return ((job in command_positions) || (job in nonhuman_positions) || (job in security_positions)) + +/proc/get_job_datums() + var/list/occupations = list() + var/list/all_jobs = typesof(/datum/job) + + for(var/A in all_jobs) + var/datum/job/job = new A() + if(!job) continue + occupations += job + + return occupations + +/proc/get_alternate_titles(var/job) + var/list/jobs = get_job_datums() + var/list/titles = list() + + for(var/datum/job/J in jobs) + if(!J) continue + if(J.title == job) + titles = J.alt_titles + + return titles + diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm index 85248f5dc60..72d00d89edc 100644 --- a/code/game/machinery/adv_med.dm +++ b/code/game/machinery/adv_med.dm @@ -284,10 +284,10 @@ var/internal_bleeding = "" var/lung_ruptured = "" for(var/datum/wound/W in e.wounds) if(W.internal) - internal_bleeding = "
    Internal Bleeding" + internal_bleeding = "
    Internal bleeding" break if(istype(e, /datum/organ/external/chest) && occupant.is_lung_ruptured()) - lung_ruptured = "Lung Ruptured:" + lung_ruptured = "Lung ruptured:" if(e.status & ORGAN_SPLINTED) splint = "Splinted:" if(e.status & ORGAN_BLEEDING) @@ -297,7 +297,7 @@ if(e.open) open = "Open:" if(e.implants.len) - imp = "Implanted:" + imp = "Unknown body present:" if(!AN && !open && !infected & !imp) AN = "None:" if(!(e.status & ORGAN_DESTROYED)) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 0329bbe8baf..3c39813f5f1 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -48,7 +48,10 @@ #define RCON_YES 3 //1000 joules equates to about 1 degree every 2 seconds for a single tile of air. -#define MAX_ENERGY_CHANGE 2000 +#define MAX_ENERGY_CHANGE 1000 + +#define MAX_TEMPERATURE 90 +#define MIN_TEMPERATURE -40 //all air alarms in area are connected via magic /area @@ -85,6 +88,7 @@ var/area_uid var/area/alarm_area var/danger_level = 0 + var/buildstage = 2 //2 is built, 1 is building, 0 is frame. var/target_temperature = T0C+20 var/regulating_temperature = 0 @@ -104,8 +108,26 @@ TLV["temperature"] = list(20, 40, 140, 160) // K target_temperature = 90 - New() + New(var/loc, var/dir, var/building = 0) ..() + + if(building) + if(loc) + src.loc = loc + + if(dir) + src.dir = dir + + buildstage = 0 + wiresexposed = 1 + pixel_x = (dir & 3)? 0 : (dir == 4 ? -24 : 24) + pixel_y = (dir & 3)? (dir ==1 ? -24 : 24) : 0 + update_icon() + return + + first_run() + + proc/first_run() alarm_area = get_area(src) if (alarm_area.master) alarm_area = alarm_area.master @@ -128,7 +150,7 @@ process() - if((stat & (NOPOWER|BROKEN)) || shorted) + if((stat & (NOPOWER|BROKEN)) || shorted || buildstage != 2) return var/turf/simulated/location = loc @@ -137,18 +159,21 @@ var/datum/gas_mixture/environment = location.return_air() //Handle temperature adjustment here. - if(environment.temperature < target_temperature - 10 || environment.temperature > target_temperature + 10 || regulating_temperature) + if(environment.temperature < target_temperature - 2 || environment.temperature > target_temperature + 2 || regulating_temperature) //If it goes too far, we should adjust ourselves back before stopping. + if(get_danger_level(target_temperature, TLV["temperature"])) + return + if(!regulating_temperature) regulating_temperature = 1 visible_message("\The [src] clicks as it starts [environment.temperature > target_temperature ? "cooling" : "heating"] the room.",\ "You hear a click and a faint electronic hum.") - if(target_temperature > T0C + 90) - target_temperature = T0C + 90 + if(target_temperature > T0C + MAX_TEMPERATURE) + target_temperature = T0C + MAX_TEMPERATURE - if(target_temperature < T0C - 40) - target_temperature = T0C - 40 + if(target_temperature < T0C + MIN_TEMPERATURE) + target_temperature = T0C + MIN_TEMPERATURE var/datum/gas_mixture/gas = location.remove_air(0.25*environment.total_moles) var/heat_capacity = gas.heat_capacity() @@ -480,6 +505,14 @@ var/wireFlag = AAlarmIndexToFlag[wireIndex] return ((AAlarmwires & wireFlag) == 0) + proc/allWiresCut() + var/i = 1 + while(i<=5) + if(AAlarmwires & AAlarmIndexToFlag[i]) + return 0 + i++ + return 1 + proc/cut(var/wireColor) var/wireFlag = AAlarmWireColorToFlag[wireColor] var/wireIndex = AAlarmWireColorToIndex[wireColor] @@ -603,6 +636,9 @@ interact(mob/user) user.set_machine(src) + if(buildstage!=2) + return + if ( (get_dist(src, user) > 1 )) if (!istype(user, /mob/living/silicon)) user.machine = null @@ -709,7 +745,7 @@ Toxins: [plasma_percent]%
    else if (other_dangerlevel==1) output += "Notice: Low Concentration of Unknown Particles Detected
    " - output += "Temperature: [environment.temperature]K
    " + output += "Temperature: [environment.temperature]K ([round(environment.temperature - T0C, 0.1)]C)
    " //Overall status output += "Local Status: " @@ -727,7 +763,7 @@ Toxins: [plasma_percent]%
    return output proc/rcon_text() - var/dat = "Remote Control:
    " + var/dat = "" + + //Hackish, I know. I didn't feel like bothering to rework all of this. + dat += "
    Remote Control:
    " if(rcon_setting == RCON_NO) dat += "Off" else @@ -741,7 +777,11 @@ Toxins: [plasma_percent]%
    if(rcon_setting == RCON_YES) dat += "On" else - dat += "On" + dat += "On
    Thermostat:
    [target_temperature - T0C]C
    " + return dat proc/return_controls() @@ -985,10 +1025,6 @@ table tr:first-child th:first-child { border: none;} if(selected[3] > selected[4]) selected[3] = selected[4] - //Sets the temperature the built-in heater/cooler tries to maintain. - if(env == "temperature") - target_temperature = (selected[2] + selected[3])/2 - apply_mode() if(href_list["screen"]) @@ -1015,6 +1051,16 @@ table tr:first-child th:first-child { border: none;} mode = text2num(href_list["mode"]) apply_mode() + if(href_list["temperature"]) + var/list/selected = TLV["temperature"] + var/max_temperature = min(selected[3] - T0C, MAX_TEMPERATURE) + var/min_temperature = max(selected[2] - T0C, MIN_TEMPERATURE) + var/input_temperature = input("What temperature would you like the system to mantain? (Capped between [min_temperature]C and [max_temperature]C)", "Thermostat Controls") as num|null + if(!input_temperature || input_temperature > max_temperature || input_temperature < min_temperature) + usr << "Temperature must be between [min_temperature]C and [max_temperature]C" + else + target_temperature = input_temperature + T0C + if (href_list["AAlarmwires"]) var/t1 = text2num(href_list["AAlarmwires"]) if (!( istype(usr.equipped(), /obj/item/weapon/wirecutters) )) @@ -1048,28 +1094,74 @@ table tr:first-child th:first-child { border: none;} update_icon() return */ - if(istype(W, /obj/item/weapon/screwdriver)) // Opening that Air Alarm up. - //user << "You pop the Air Alarm's maintence panel open." - wiresexposed = !wiresexposed - user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]" - update_icon() - return + src.add_fingerprint(user) - if (wiresexposed && ((istype(W, /obj/item/device/multitool) || istype(W, /obj/item/weapon/wirecutters)))) - return attack_hand(user) + switch(buildstage) + if(2) + if(istype(W, /obj/item/weapon/screwdriver)) // Opening that Air Alarm up. + //user << "You pop the Air Alarm's maintence panel open." + wiresexposed = !wiresexposed + user << "The wires have been [wiresexposed ? "exposed" : "unexposed"]" + update_icon() + return + if (wiresexposed && ((istype(W, /obj/item/device/multitool) || istype(W, /obj/item/weapon/wirecutters)))) + return attack_hand(user) + + if (istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))// trying to unlock the interface with an ID card + if(stat & (NOPOWER|BROKEN)) + user << "It does nothing" + return + else + if(allowed(usr) && !isWireCut(AALARM_WIRE_IDSCAN)) + locked = !locked + user << "\blue You [ locked ? "lock" : "unlock"] the Air Alarm interface." + updateUsrDialog() + else + user << "\red Access denied." + return + + if(1) + if(istype(W, /obj/item/weapon/cable_coil)) + var/obj/item/weapon/cable_coil/coil = W + if(coil.amount < 5) + user << "You need more cable for this!" + return + + user << "You wire \the [src]!" + coil.amount -= 5 + if(!coil.amount) + del(coil) + + buildstage = 2 + update_icon() + first_run() + + else if(istype(W, /obj/item/weapon/crowbar)) + user << "You pry out the circuit!" + playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1) + spawn(20) + var/obj/item/weapon/airalarm_electronics/circuit = new /obj/item/weapon/airalarm_electronics() + circuit.loc = user.loc + buildstage = 0 + update_icon() + return + if(0) + if(istype(W, /obj/item/weapon/airalarm_electronics)) + user << "You insert the circuit!" + del(W) + buildstage = 1 + update_icon() + + /* Commented out due to RUNTIMES, RUNTIMES EVERYWHERE. + else if(istype(W, /obj/item/weapon/wrench)) + user << "You remove the fire alarm assembly from the wall!" + var/obj/item/firealarm_frame/frame = new /obj/item/firealarm_frame() + frame.loc = user.loc + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + del(src) */ + return - else if (istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))// trying to unlock the interface with an ID card - if(stat & (NOPOWER|BROKEN)) - user << "It does nothing" - else - if(allowed(usr) && !isWireCut(AALARM_WIRE_IDSCAN)) - locked = !locked - user << "\blue You [ locked ? "lock" : "unlock"] the Air Alarm interface." - updateUsrDialog() - else - user << "\red Access denied." - return return ..() /obj/machinery/alarm/power_change() @@ -1218,15 +1310,6 @@ FIRE ALARM user.visible_message("\red [user] has reconnected [src]'s detecting unit!", "You have reconnected [src]'s detecting unit.") else user.visible_message("\red [user] has disconnected [src]'s detecting unit!", "You have disconnected [src]'s detecting unit.") - - else if (istype(W, /obj/item/weapon/wirecutters)) - buildstage = 1 - playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) - var/obj/item/weapon/cable_coil/coil = new /obj/item/weapon/cable_coil() - coil.amount = 5 - coil.loc = user.loc - user << "You cut the wires from \the [src]" - update_icon() if(1) if(istype(W, /obj/item/weapon/cable_coil)) var/obj/item/weapon/cable_coil/coil = W diff --git a/code/game/machinery/bees.dm b/code/game/machinery/bees.dm index 27a317a91a3..102b6874400 100644 --- a/code/game/machinery/bees.dm +++ b/code/game/machinery/bees.dm @@ -10,7 +10,7 @@ var/turf/target_turf var/mob/target_mob var/obj/machinery/apiary/parent - pass_flags = PASSGRILLE|PASSTABLE + pass_flags = PASSTABLE turns_per_move = 6 var/obj/machinery/hydroponics/my_hydrotray @@ -29,21 +29,19 @@ if(stat == CONSCIOUS) //if we're strong enough, sting some people - var/overrun = strength - 5 + feral / 2 - if(prob(max( overrun * 10 + feral * 10, 0))) - var/mob/living/carbon/human/M = pick(range(1,src)) - if(M) - var/sting_prob = 100 + var/mob/living/carbon/human/M = target_mob + var/sting_prob = 100 // Bees will always try to sting. + if(M in view(src,1)) // Can I see my target? + if(prob(max(feral * 10, 0))) // Am I mad enough to want to sting? And yes, when I initially appear, I AM mad enough var/obj/item/clothing/worn_suit = M.wear_suit var/obj/item/clothing/worn_helmet = M.head - if(worn_suit) - sting_prob -= worn_suit.armor["bio"] + if(worn_suit) // Are you wearing clothes? + sting_prob -= min(worn_suit.armor["bio"],70) // Is it sealed? I can't get to 70% of your body. if(worn_helmet) - sting_prob -= worn_helmet.armor["bio"] - - if( prob(sting_prob) && (M.stat == CONSCIOUS || (M.stat == UNCONSCIOUS && prob(25))) ) - M.apply_damage(overrun / 2 + mut / 2, BRUTE) - M.apply_damage(overrun / 2 + toxic / 2, TOX) + sting_prob -= min(worn_helmet.armor["bio"],30) // Is your helmet sealed? I can't get to 30% of your body. + if( prob(sting_prob) && (M.stat == CONSCIOUS || (M.stat == UNCONSCIOUS && prob(25))) ) // Try to sting! If you're not moving, think about stinging. + M.apply_damage(min(strength,2)+mut, BRUTE) // Stinging. The more mutated I am, the harder I sting. + M.apply_damage((round(feral/5,1)*(max((round(strength/10,1)),1)))+toxic, TOX) // Bee venom based on how angry I am and how many there are of me! M << "\red You have been stung!" M.flash_pain() @@ -134,14 +132,17 @@ if(target_mob in view(src,7)) target_turf = get_turf(target_mob) wander = 0 - else - for(var/mob/living/carbon/M in view(src,7)) - target_mob = M + + else // My target's gone! But I might still be pissed! You there. You look like a good stinging target! + for(var/mob/living/carbon/G in view(src,7)) + target_mob = G break if(target_turf) - Move(get_step(src, get_dir(src,target_turf))) - + if (!(DirBlocked(get_step(src, get_dir(src,target_turf)),get_dir(src,target_turf)))) // Check for windows and doors! + Move(get_step(src, get_dir(src,target_turf))) + if (prob(0.1)) + src.visible_message("\blue The bees swarm after [target_mob]!") if(src.loc == target_turf) target_turf = null wander = 1 diff --git a/code/game/machinery/bees_apiary.dm b/code/game/machinery/bees_apiary.dm index 982feec1f2a..2c2de70163d 100644 --- a/code/game/machinery/bees_apiary.dm +++ b/code/game/machinery/bees_apiary.dm @@ -87,7 +87,7 @@ if(harvestable_honey > 0) if(health > 0) user << "\red You begin to harvest the honey. The bees don't seem to like it." - angry_swarm() + angry_swarm(user) else user << "\blue You begin to harvest the honey." if(do_after(user,50)) @@ -97,7 +97,7 @@ else user << "\blue There is no honey left to harvest." else - angry_swarm() + angry_swarm(user) ..() /obj/machinery/apiary/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) @@ -171,16 +171,19 @@ //find some plants, harvest for(var/obj/machinery/hydroponics/H in view(7, src)) if(H.planted && !H.dead && H.myseed && prob(owned_bee_swarms.len * 10)) + src.nutrilevel++ + H.nutrilevel++ if(mut < H.mutmod - 1) mut = H.mutmod - 1 else if(mut > H.mutmod - 1) H.mutmod = mut //flowers give us pollen (nutrients) +/* - All plants should be giving nutrients to the hive. if(H.myseed.type == /obj/item/seeds/harebell || H.myseed.type == /obj/item/seeds/sunflowerseed) src.nutrilevel++ H.nutrilevel++ - +*/ //have a few beneficial effects on nearby plants if(prob(10)) H.lastcycle -= 5 @@ -206,7 +209,7 @@ /obj/machinery/apiary/proc/angry_swarm(var/mob/M) for(var/mob/living/simple_animal/bee/B in owned_bee_swarms) - B.feral = 50 + B.feral = 25 B.target_mob = M swarming = 25 @@ -219,7 +222,7 @@ var/mob/living/simple_animal/bee/B = new(get_turf(src), src) B.target_mob = M B.strength = spawn_strength - B.feral = 5 + B.feral = 25 B.mut = mut B.toxic = toxic bees_in_hive -= spawn_strength diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index d3e7e4c178c..81f58d19d0c 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -145,12 +145,19 @@ src.active1 = null src.active2 = null else if (href_list["login"]) - if (istype(usr, /mob/living/silicon)) + if (istype(usr, /mob/living/silicon/ai)) src.active1 = null src.active2 = null - src.authenticated = 1 + src.authenticated = usr.name src.rank = "AI" src.screen = 1 + else if (istype(usr, /mob/living/silicon/robot)) + src.active1 = null + src.active2 = null + src.authenticated = usr.name + var/mob/living/silicon/robot/R = usr + src.rank = R.braintype + src.screen = 1 else if (istype(src.scan, /obj/item/weapon/card/id)) src.active1 = null src.active2 = null @@ -388,7 +395,7 @@ var/counter = 1 while(src.active2.fields[text("com_[]", counter)]) counter++ - src.active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [], 2053
    []", src.authenticated, src.rank, time2text(world.realtime, "DDD MMM DD hh:mm:ss"), t1) + src.active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
    [t1]") if (href_list["del_c"]) if ((istype(src.active2, /datum/data/record) && src.active2.fields[text("com_[]", href_list["del_c"])])) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index deb6e9e8c88..ab7c7c08180 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -245,12 +245,19 @@ What a mess.*/ active2 = null if("Log In") - if (istype(usr, /mob/living/silicon)) - active1 = null - active2 = null - authenticated = 1 - rank = "AI" - screen = 1 + if (istype(usr, /mob/living/silicon/ai)) + src.active1 = null + src.active2 = null + src.authenticated = usr.name + src.rank = "AI" + src.screen = 1 + else if (istype(usr, /mob/living/silicon/robot)) + src.active1 = null + src.active2 = null + src.authenticated = usr.name + var/mob/living/silicon/robot/R = usr + src.rank = R.braintype + src.screen = 1 else if (istype(scan, /obj/item/weapon/card/id)) active1 = null active2 = null @@ -362,7 +369,7 @@ What a mess.*/ var/counter = 1 while(active2.fields[text("com_[]", counter)]) counter++ - active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [], 2053
    []", authenticated, rank, time2text(world.realtime, "DDD MMM DD hh:mm:ss"), t1) + active2.fields[text("com_[counter]")] = text("Made by [authenticated] ([rank]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
    [t1]") if ("Delete Record (ALL)") if (active1) diff --git a/code/game/machinery/computer/specops_shuttle.dm b/code/game/machinery/computer/specops_shuttle.dm index 216471e9a85..909364a4809 100644 --- a/code/game/machinery/computer/specops_shuttle.dm +++ b/code/game/machinery/computer/specops_shuttle.dm @@ -262,9 +262,10 @@ var/specops_shuttle_timeleft = 0 user << "\red Access Denied." return - if (sent_strike_team == 0 && send_emergency_team == 0) - usr << "\red The strike team has not yet deployed." - return +//Commented out so admins can do shenanigans at their leisure. Also makes the force-spawned admin ERTs able to use the shuttle. +// if (sent_strike_team == 0 && send_emergency_team == 0) +// usr << "\red The strike team has not yet deployed." +// return if(..()) return diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index dea31aab3f2..424e94eee07 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -86,7 +86,8 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. var/list/signalers[12] var/lockdownbyai = 0 autoclose = 1 - var/doortype = 0 + var/assembly_type = /obj/structure/door_assembly + var/mineral = null var/justzap = 0 var/safe = 1 normalspeed = 1 @@ -96,143 +97,116 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. /obj/machinery/door/airlock/command name = "Airlock" icon = 'icons/obj/doors/Doorcom.dmi' - doortype = 1 + assembly_type = /obj/structure/door_assembly/door_assembly_com /obj/machinery/door/airlock/security name = "Airlock" icon = 'icons/obj/doors/Doorsec.dmi' - doortype = 2 + assembly_type = /obj/structure/door_assembly/door_assembly_sec /obj/machinery/door/airlock/engineering name = "Airlock" icon = 'icons/obj/doors/Dooreng.dmi' - doortype = 3 + assembly_type = /obj/structure/door_assembly/door_assembly_eng /obj/machinery/door/airlock/medical name = "Airlock" icon = 'icons/obj/doors/Doormed.dmi' - doortype = 4 + assembly_type = /obj/structure/door_assembly/door_assembly_med /obj/machinery/door/airlock/maintenance name = "Maintenance Access" icon = 'icons/obj/doors/Doormaint.dmi' - doortype = 5 + assembly_type = /obj/structure/door_assembly/door_assembly_mai /obj/machinery/door/airlock/external name = "External Airlock" icon = 'icons/obj/doors/Doorext.dmi' - doortype = 6 + assembly_type = /obj/structure/door_assembly/door_assembly_ext /obj/machinery/door/airlock/glass name = "Glass Airlock" icon = 'icons/obj/doors/Doorglass.dmi' opacity = 0 - doortype = 7 glass = 1 /obj/machinery/door/airlock/centcom name = "Airlock" icon = 'icons/obj/doors/Doorele.dmi' opacity = 0 - doortype = 8 /obj/machinery/door/airlock/vault name = "Vault" icon = 'icons/obj/doors/vault.dmi' opacity = 1 - doortype = 9 - -/obj/machinery/door/airlock/glass_large - name = "Glass Airlock" - icon = 'icons/obj/doors/Door2x1glassfull.dmi' - opacity = 0 - doortype = 10 - bound_width = 64 - glass = 1 - - update_nearby_tiles(need_rebuild) - . = ..() - - if(!.) - return - - var/turf/simulated/second_turf = get_step(src, EAST) - var/turf/simulated/north = get_step(second_turf, NORTH) - var/turf/simulated/east = get_step(second_turf, EAST) - var/turf/simulated/south = get_step(second_turf, SOUTH) - - update_heat_protection(second_turf) - - if(istype(north)) air_master.tiles_to_update |= north - if(istype(south)) air_master.tiles_to_update |= south - if(istype(east)) air_master.tiles_to_update |= east + assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity //Until somebody makes better sprites. /obj/machinery/door/airlock/freezer name = "Freezer Airlock" icon = 'icons/obj/doors/Doorfreezer.dmi' opacity = 1 - doortype = 11 + assembly_type = /obj/structure/door_assembly/door_assembly_fre /obj/machinery/door/airlock/hatch name = "Airtight Hatch" icon = 'icons/obj/doors/Doorhatchele.dmi' opacity = 1 - doortype = 12 + assembly_type = /obj/structure/door_assembly/door_assembly_hatch /obj/machinery/door/airlock/maintenance_hatch name = "Maintenance Hatch" icon = 'icons/obj/doors/Doorhatchmaint2.dmi' opacity = 1 - doortype = 13 + assembly_type = /obj/structure/door_assembly/door_assembly_mhatch /obj/machinery/door/airlock/glass_command name = "Maintenance Hatch" icon = 'icons/obj/doors/Doorcomglass.dmi' opacity = 0 - doortype = 14 + assembly_type = /obj/structure/door_assembly/door_assembly_com glass = 1 /obj/machinery/door/airlock/glass_engineering name = "Maintenance Hatch" icon = 'icons/obj/doors/Doorengglass.dmi' opacity = 0 - doortype = 15 + assembly_type = /obj/structure/door_assembly/door_assembly_eng glass = 1 /obj/machinery/door/airlock/glass_security name = "Maintenance Hatch" icon = 'icons/obj/doors/Doorsecglass.dmi' opacity = 0 - doortype = 16 + assembly_type = /obj/structure/door_assembly/door_assembly_sec glass = 1 /obj/machinery/door/airlock/glass_medical name = "Maintenance Hatch" icon = 'icons/obj/doors/Doormedglass.dmi' opacity = 0 - doortype = 17 + assembly_type = /obj/structure/door_assembly/door_assembly_med glass = 1 /obj/machinery/door/airlock/mining name = "Mining Airlock" icon = 'icons/obj/doors/Doormining.dmi' - doortype = 18 + assembly_type = /obj/structure/door_assembly/door_assembly_min /obj/machinery/door/airlock/atmos name = "Atmospherics Airlock" icon = 'icons/obj/doors/Dooratmo.dmi' - doortype = 19 + assembly_type = /obj/structure/door_assembly/door_assembly_atmo /obj/machinery/door/airlock/research name = "Airlock" icon = 'icons/obj/doors/Doorresearch.dmi' - doortype = 20 + assembly_type = /obj/structure/door_assembly/door_assembly_research /obj/machinery/door/airlock/glass_research name = "Maintenance Hatch" icon = 'icons/obj/doors/Doorresearchglass.dmi' opacity = 0 - doortype = 21 + assembly_type = /obj/structure/door_assembly/door_assembly_research glass = 1 heat_proof = 1 @@ -240,40 +214,36 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. name = "Maintenance Hatch" icon = 'icons/obj/doors/Doorminingglass.dmi' opacity = 0 - doortype = 22 + assembly_type = /obj/structure/door_assembly/door_assembly_min glass = 1 /obj/machinery/door/airlock/glass_atmos name = "Maintenance Hatch" icon = 'icons/obj/doors/Dooratmoglass.dmi' opacity = 0 - doortype = 23 + assembly_type = /obj/structure/door_assembly/door_assembly_atmo glass = 1 /obj/machinery/door/airlock/gold name = "Gold Airlock" icon = 'icons/obj/doors/Doorgold.dmi' - var/mineral = "gold" - doortype = 24 + mineral = "gold" /obj/machinery/door/airlock/silver name = "Silver Airlock" icon = 'icons/obj/doors/Doorsilver.dmi' - var/mineral = "silver" - doortype = 25 + mineral = "silver" /obj/machinery/door/airlock/diamond name = "Diamond Airlock" icon = 'icons/obj/doors/Doordiamond.dmi' - var/mineral = "diamond" - doortype = 26 + mineral = "diamond" /obj/machinery/door/airlock/uranium name = "Uranium Airlock" desc = "And they said I was crazy." icon = 'icons/obj/doors/Dooruranium.dmi' - var/mineral = "uranium" - doortype = 27 + mineral = "uranium" var/last_event = 0 /obj/machinery/door/airlock/uranium/process() @@ -292,8 +262,7 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. name = "Plasma Airlock" desc = "No way this can end badly." icon = 'icons/obj/doors/Doorplasma.dmi' - var/mineral = "plasma" - doortype = 28 + mineral = "plasma" /obj/machinery/door/airlock/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(exposed_temperature > 300) @@ -321,37 +290,35 @@ Airlock index -> wire color are { 9, 4, 6, 7, 5, 8, 1, 2, 3 }. W.ignite((temperature/4))//Added so that you can't set off a massive chain reaction with a small flame for(var/obj/machinery/door/airlock/plasma/D in range(3,src)) D.ignite(temperature/4) - new/obj/structure/door_assembly/door_assembly_0( src.loc ) + new/obj/structure/door_assembly( src.loc ) del (src) /obj/machinery/door/airlock/clown name = "Bananium Airlock" icon = 'icons/obj/doors/Doorbananium.dmi' - var/mineral = "clown" - doortype = 29 + mineral = "clown" /obj/machinery/door/airlock/sandstone name = "Sandstone Airlock" icon = 'icons/obj/doors/Doorsand.dmi' - var/mineral = "sandstone" - doortype = 30 + mineral = "sandstone" /obj/machinery/door/airlock/science name = "Airlock" icon = 'icons/obj/doors/Doorsci.dmi' - doortype = 31 + assembly_type = /obj/structure/door_assembly/door_assembly_science /obj/machinery/door/airlock/glass_science name = "Glass Airlocks" icon = 'icons/obj/doors/Doorsciglass.dmi' opacity = 0 - doortype = 32 + assembly_type = /obj/structure/door_assembly/door_assembly_science glass = 1 /obj/machinery/door/airlock/highsecurity name = "High Tech Security Airlock" icon = 'icons/obj/doors/hightechsecurity.dmi' - doortype = 33 + assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity /* About the new airlock wires panel: @@ -1221,42 +1188,26 @@ About the new airlock wires panel: user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to remove electronics from the airlock assembly.") if(do_after(user,40)) user << "\blue You removed the airlock electronics!" - switch(src.doortype) - if(0) new/obj/structure/door_assembly/door_assembly_0( src.loc ) - if(1) new/obj/structure/door_assembly/door_assembly_com( src.loc ) - if(2) new/obj/structure/door_assembly/door_assembly_sec( src.loc ) - if(3) new/obj/structure/door_assembly/door_assembly_eng( src.loc ) - if(4) new/obj/structure/door_assembly/door_assembly_med( src.loc ) - if(5) new/obj/structure/door_assembly/door_assembly_mai( src.loc ) - if(6) new/obj/structure/door_assembly/door_assembly_ext( src.loc ) - if(7) new/obj/structure/door_assembly/door_assembly_glass( src.loc ) - if(12) new/obj/structure/door_assembly/door_assembly_hatch( src.loc ) - if(13) new/obj/structure/door_assembly/door_assembly_mhatch( src.loc ) - if(14) new/obj/structure/door_assembly/door_assembly_com/glass( src.loc ) - if(15) new/obj/structure/door_assembly/door_assembly_eng/glass( src.loc ) - if(16) new/obj/structure/door_assembly/door_assembly_sec/glass( src.loc ) - if(17) new/obj/structure/door_assembly/door_assembly_med/glass( src.loc ) - if(18) new/obj/structure/door_assembly/door_assembly_min( src.loc ) - if(19) new/obj/structure/door_assembly/door_assembly_atmo( src.loc ) - if(20) new/obj/structure/door_assembly/door_assembly_research( src.loc ) - if(21) new/obj/structure/door_assembly/door_assembly_research/glass( src.loc ) - if(22) new/obj/structure/door_assembly/door_assembly_min/glass( src.loc ) - if(23) new/obj/structure/door_assembly/door_assembly_atmo/glass( src.loc ) - if(24) new/obj/structure/door_assembly/door_assembly_gold( src.loc ) - if(25) new/obj/structure/door_assembly/door_assembly_silver( src.loc ) - if(26) new/obj/structure/door_assembly/door_assembly_diamond( src.loc ) - if(27) new/obj/structure/door_assembly/door_assembly_uranium( src.loc ) - if(28) new/obj/structure/door_assembly/door_assembly_plasma( src.loc ) - if(29) new/obj/structure/door_assembly/door_assembly_clown( src.loc ) - if(30) new/obj/structure/door_assembly/door_assembly_sandstone( src.loc ) - if(31) new/obj/structure/door_assembly/door_assembly_science( src.loc ) - if(32) new/obj/structure/door_assembly/door_assembly_science/glass( src.loc ) - if(33) new/obj/structure/door_assembly/door_assembly_highsecurity(src.loc) + + var/obj/structure/door_assembly/da = new assembly_type(src.loc) + da.anchored = 1 + if(mineral) + da.glass = mineral + //else if(glass) + else if(glass && !da.glass) + da.glass = 1 + da.state = 1 + da.created_name = src.name + da.update_state() var/obj/item/weapon/airlock_electronics/ae if(!electronics) ae = new/obj/item/weapon/airlock_electronics( src.loc ) - ae.conf_access = src.req_access + if(src.req_access.len) + ae.conf_access = src.req_access + else if (src.req_one_access.len) + ae.conf_access = src.req_one_access + ae.one_access = 1 else ae = electronics electronics = null @@ -1342,7 +1293,7 @@ About the new airlock wires panel: var/obj/effect/stop/S S = new /obj/effect/stop S.victim = M - S.loc = src.loc + S.loc = M.loc spawn(20) del(S) M.emote("scream") diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 2310e85c07c..ddedf045e7e 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -11,6 +11,7 @@ req_access = list(access_engine) var/list/conf_access = null + var/one_access = 0 //if set to 1, door would receive req_one_access instead of req_access var/last_configurator = null var/locked = 1 @@ -33,6 +34,8 @@ else t1 += "Block
    " + t1 += "Access requirement is set to " + t1 += one_access ? "ONE
    " : "ALL
    " t1 += conf_access == null ? "All
    " : "All
    " @@ -44,6 +47,8 @@ if (!conf_access || !conf_access.len || !(acc in conf_access)) t1 += "[aname]
    " + else if(one_access) + t1 += "[aname]
    " else t1 += "[aname]
    " @@ -75,6 +80,9 @@ if (href_list["logout"]) locked = 1 + if (href_list["one_access"]) + one_access = !one_access + if (href_list["access"]) toggle_access(href_list["access"]) diff --git a/code/game/machinery/doors/alarmlock.dm b/code/game/machinery/doors/alarmlock.dm index 2dd1d7ac79e..67e5c83dc30 100644 --- a/code/game/machinery/doors/alarmlock.dm +++ b/code/game/machinery/doors/alarmlock.dm @@ -3,7 +3,6 @@ name = "Glass Alarm Airlock" icon = 'icons/obj/doors/Doorglass.dmi' opacity = 0 - doortype = 7 glass = 1 var/datum/radio_frequency/air_connection diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 9ac8ad6c7f4..6aec44f7f17 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -20,8 +20,12 @@ var/heat_proof = 0 // For glass airlocks/opacity firedoors var/air_properties_vary_with_direction = 0 + //Multi-tile doors + dir = EAST + var/width = 1 + /obj/machinery/door/New() - ..() + . = ..() if(density) layer = 3.1 //Above most items if closed explosion_resistance = initial(explosion_resistance) @@ -29,6 +33,16 @@ else layer = 2.7 //Under all objects if opened. 2.7 due to tables being at 2.6 explosion_resistance = 0 + + + if(width > 1) + if(dir in list(EAST, WEST)) + bound_width = width * world.icon_size + bound_height = world.icon_size + else + bound_width = world.icon_size + bound_height = width * world.icon_size + update_nearby_tiles(need_rebuild=1) return @@ -258,6 +272,22 @@ if(istype(south)) air_master.tiles_to_update += south if(istype(east)) air_master.tiles_to_update += east if(istype(west)) air_master.tiles_to_update += west + + if(width > 1) + var/turf/simulated/next_turf = src + var/step_dir = turn(dir, 180) + for(var/current_step = 2, current_step <= width, current_step++) + next_turf = get_step(src, step_dir) + north = get_step(next_turf, step_dir) + east = get_step(next_turf, turn(step_dir, 90)) + south = get_step(next_turf, turn(step_dir, -90)) + + update_heat_protection(next_turf) + + if(istype(north)) air_master.tiles_to_update |= north + if(istype(south)) air_master.tiles_to_update |= south + if(istype(east)) air_master.tiles_to_update |= east + return 1 /obj/machinery/door/proc/update_heat_protection(var/turf/simulated/source) @@ -273,5 +303,18 @@ close() return +/obj/machinery/door/Move(new_loc, new_dir) + update_nearby_tiles() + . = ..() + if(width > 1) + if(dir in list(EAST, WEST)) + bound_width = width * world.icon_size + bound_height = world.icon_size + else + bound_width = world.icon_size + bound_height = width * world.icon_size + + update_nearby_tiles() + /obj/machinery/door/morgue icon = 'icons/obj/doors/doormorgue.dmi' \ No newline at end of file diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 93f0abb4d09..e05d9511e4e 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -276,21 +276,4 @@ /obj/machinery/door/firedoor/multi_tile icon = 'DoorHazard2x1.dmi' - bound_width = 64 - - - update_nearby_tiles(need_rebuild) - if(!.) - return - - . = ..() - var/turf/simulated/second_turf = get_step(src, EAST) - var/turf/simulated/north = get_step(second_turf, NORTH) - var/turf/simulated/east = get_step(second_turf, EAST) - var/turf/simulated/south = get_step(second_turf, SOUTH) - - update_heat_protection(second_turf) - - if(istype(north)) air_master.tiles_to_update |= north - if(istype(south)) air_master.tiles_to_update |= south - if(istype(east)) air_master.tiles_to_update |= east \ No newline at end of file + width = 2 \ No newline at end of file diff --git a/code/game/machinery/doors/multi_tile.dm b/code/game/machinery/doors/multi_tile.dm new file mode 100644 index 00000000000..986b25b7648 --- /dev/null +++ b/code/game/machinery/doors/multi_tile.dm @@ -0,0 +1,10 @@ +//Terribly sorry for the code doubling, but things go derpy otherwise. +/obj/machinery/door/airlock/multi_tile + width = 2 + +/obj/machinery/door/airlock/multi_tile/glass + name = "Glass Airlock" + icon = 'icons/obj/doors/Door2x1glass.dmi' + opacity = 0 + glass = 1 + assembly_type = "obj/structure/door_assembly/multi_tile" \ No newline at end of file diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 45ff776d401..66184774c49 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -130,6 +130,21 @@ new /obj/item/weapon/shard(src.loc) var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc) CC.amount = 2 + var/obj/item/weapon/airlock_electronics/ae + if(!electronics) + ae = new/obj/item/weapon/airlock_electronics( src.loc ) + if(src.req_access.len) + ae.conf_access = src.req_access + else if (src.req_one_access.len) + ae.conf_access = src.req_one_access + ae.one_access = 1 + else + ae = electronics + electronics = null + ae.loc = src.loc + if(operating == -1) + ae.icon_state = "door_electronics_smoked" + operating = 0 src.density = 0 del(src) return @@ -162,15 +177,9 @@ if(istype(user, /mob/living/carbon/alien/humanoid) || istype(user, /mob/living/carbon/slime/adult)) if(src.operating) return - src.health = max(0, src.health - 25) playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) visible_message("\red [user] smashes against the [src.name].", 1) - if (src.health <= 0) - new /obj/item/weapon/shard(src.loc) - var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc) - CC.amount = 2 - src.density = 0 - del(src) + take_damage(25) else return src.attack_hand(user) @@ -181,7 +190,7 @@ /obj/machinery/door/window/attackby(obj/item/weapon/I as obj, mob/user as mob) //If it's in the process of opening/closing, ignore the click - if (src.operating) + if (src.operating == 1) return //Emags and ninja swords? You may pass. @@ -199,19 +208,50 @@ open() return 1 + //If it's emagged, crowbar can pry electronics out. + if (src.operating == -1 && istype(I, /obj/item/weapon/crowbar)) + playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) + user.visible_message("[user] removes the electronics from the windoor.", "You start to remove electronics from the windoor.") + if (do_after(user,40)) + user << "\blue You removed the windoor electronics!" + + var/obj/structure/windoor_assembly/wa = new/obj/structure/windoor_assembly(src.loc) + if (istype(src, /obj/machinery/door/window/brigdoor)) + wa.secure = "secure_" + wa.name = "Secure Wired Windoor Assembly" + else + wa.name = "Wired Windoor Assembly" + if (src.base_state == "right" || src.base_state == "rightsecure") + wa.facing = "r" + wa.dir = src.dir + wa.state = "02" + wa.update_icon() + + var/obj/item/weapon/airlock_electronics/ae + if(!electronics) + ae = new/obj/item/weapon/airlock_electronics( src.loc ) + if(src.req_access.len) + ae.conf_access = src.req_access + else if (src.req_one_access.len) + ae.conf_access = src.req_one_access + ae.one_access = 1 + else + ae = electronics + electronics = null + ae.loc = src.loc + ae.icon_state = "door_electronics_smoked" + + operating = 0 + del(src) + return + //If it's a weapon, smash windoor. Unless it's an id card, agent card, ect.. then ignore it (Cards really shouldnt damage a door anyway) if(src.density && istype(I, /obj/item/weapon) && !istype(I, /obj/item/weapon/card)) var/aforce = I.force - if(I.damtype == BRUTE || I.damtype == BURN) - src.health = max(0, src.health - aforce) playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) visible_message("\red [src] was hit by [I].") - if (src.health <= 0) - new /obj/item/weapon/shard(src.loc) - var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc) - CC.amount = 2 - src.density = 0 - del(src) + if(I.damtype == BRUTE || I.damtype == BURN) + take_damage(aforce) return diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index 658375b9eea..8648b33d829 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -6,10 +6,12 @@ var/list/doppler_arrays = list() /obj/machinery/doppler_array/New() + ..() doppler_arrays += src /obj/machinery/doppler_array/Del() doppler_arrays -= src + ..() /obj/machinery/doppler_array/process() return PROCESS_KILL diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 0e3e6ec650a..1bacef1500e 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -114,6 +114,7 @@ Class Procs: machines += src /obj/machinery/Del() + machines -= src ..() /obj/machinery/process()//If you dont use process or power why are you here diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index ced7486384d..d358e39c67f 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -69,6 +69,7 @@ var/list/obj/machinery/requests_console/allConsoles = list() icon_state = "req_comp0" /obj/machinery/requests_console/New() + ..() name = "[department] Requests Console" allConsoles += src //req_console_departments += department diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 56c9f74f49f..5bf46648228 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -23,7 +23,7 @@ "diamond"=0, "plasma"=0, "uranium"=0, - "bananium"=0 + //"bananium"=0 No need to state what it can no longer hold ) var/res_max_amount = 200000 var/datum/research/files @@ -44,7 +44,12 @@ /obj/item/robot_parts/l_arm, /obj/item/robot_parts/r_arm, /obj/item/robot_parts/l_leg, - /obj/item/robot_parts/r_leg + /obj/item/robot_parts/r_leg, + /obj/item/robot_parts/robot_component/binary_communication_device, + /obj/item/robot_parts/robot_component/radio, + /obj/item/robot_parts/robot_component/actuator, + /obj/item/robot_parts/robot_component/diagnosis_unit, + /obj/item/robot_parts/robot_component/camera ), "Ripley"=list( /obj/item/mecha_parts/chassis/ripley, @@ -84,7 +89,7 @@ /obj/item/mecha_parts/part/durand_right_leg, /obj/item/mecha_parts/part/durand_armour ), - "H.O.N.K"=list( + /*"H.O.N.K"=list( /obj/item/mecha_parts/chassis/honker, /obj/item/mecha_parts/part/honker_torso, /obj/item/mecha_parts/part/honker_head, @@ -92,7 +97,7 @@ /obj/item/mecha_parts/part/honker_right_arm, /obj/item/mecha_parts/part/honker_left_leg, /obj/item/mecha_parts/part/honker_right_leg - ), + ), No need for HONK stuff*/ "Exosuit Equipment"=list( /obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp, /obj/item/mecha_parts/mecha_equipment/tool/drill, @@ -106,9 +111,9 @@ ///obj/item/mecha_parts/mecha_equipment/jetpack, //TODO MECHA JETPACK SPRITE MISSING /obj/item/mecha_parts/mecha_equipment/weapon/energy/taser, /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg, - /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/mousetrap_mortar, - /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/banana_mortar, - /obj/item/mecha_parts/mecha_equipment/weapon/honker + ///obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/mousetrap_mortar, HONK-related mech part + ///obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/banana_mortar, Also HONK-related + ///obj/item/mecha_parts/mecha_equipment/weapon/honker Thirdly HONK-related ), "Robotic Upgrade Modules" = list( @@ -675,8 +680,8 @@ type = /obj/item/stack/sheet/mineral/plasma if("uranium") type = /obj/item/stack/sheet/mineral/uranium - if("bananium") - type = /obj/item/stack/sheet/mineral/clown + /*if("bananium") + type = /obj/item/stack/sheet/mineral/clown Sorry, but no more clown mechs, even if you do manage to get to the clown planet.*/ else return 0 var/result = 0 @@ -734,9 +739,9 @@ if(src.resources["diamond"] >= 2000) var/obj/item/stack/sheet/mineral/diamond/G = new /obj/item/stack/sheet/mineral/diamond(src.loc) G.amount = round(src.resources["diamond"] / G.perunit) - if(src.resources["bananium"] >= 2000) + /*if(src.resources["bananium"] >= 2000) var/obj/item/stack/sheet/mineral/clown/G = new /obj/item/stack/sheet/mineral/clown(src.loc) - G.amount = round(src.resources["bananium"] / G.perunit) + G.amount = round(src.resources["bananium"] / G.perunit) Sorry, but no bananium allowed*/ del(src) return 1 else @@ -760,8 +765,8 @@ material = "metal" if(/obj/item/stack/sheet/glass) material = "glass" - if(/obj/item/stack/sheet/mineral/clown) - material = "bananium" + /*if(/obj/item/stack/sheet/mineral/clown) + material = "bananium"*/ if(/obj/item/stack/sheet/mineral/uranium) material = "uranium" else diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index c94c38c6c32..63f4151779b 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -1574,6 +1574,9 @@ return if(href_list["dna_lock"]) if(usr != src.occupant) return + if(istype(src, /obj/item/device/mmi)) + occupant_message("You are a brain. No.") + return if(src.occupant) src.dna = src.occupant.dna.unique_enzymes src.occupant_message("You feel a prick as the needle takes your DNA sample.") diff --git a/code/game/objects/effects/barsign.dm b/code/game/objects/effects/barsign.dm index 287a8f64f4d..fc6278187e9 100644 --- a/code/game/objects/effects/barsign.dm +++ b/code/game/objects/effects/barsign.dm @@ -4,5 +4,5 @@ anchored = 1 New() - var/list/valid_states = list("pinkflamingo", "magmasea", "limbo", "rustyaxe", "armokbar", "brokendrum", "meadbay", "thedamnwall", "thecavern", "cindikate", "theorchard", "thesaucyclown", "theclownshead") + var/list/valid_states = list("pinkflamingo", "magmasea", "limbo", "rustyaxe", "armokbar", "brokendrum", "meadbay", "thedamnwall", "thecavern", "cindikate", "theorchard", "thesaucyclown", "theclownshead", "whiskeyimplant", "carpecarp", "robustroadhouse", "greytide", "theredshirt") src.icon_state = "[pick(valid_states)]" diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index b72dafb4c30..ae155f32ade 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -69,6 +69,10 @@ xeno_spawn += loc del(src) + if("ninjastart") + ninjastart += loc + del(src) + landmarks_list += src return 1 diff --git a/code/game/objects/effects/spawners/bombspawner.dm b/code/game/objects/effects/spawners/bombspawner.dm index 944efe32a77..1d59701bb71 100644 --- a/code/game/objects/effects/spawners/bombspawner.dm +++ b/code/game/objects/effects/spawners/bombspawner.dm @@ -137,12 +137,12 @@ OT.master = V PT.air_contents.temperature = PLASMA_FLASHPOINT - PT.air_contents.toxins = 15 - PT.air_contents.carbon_dioxide = 33 + PT.air_contents.toxins = 3 + PT.air_contents.carbon_dioxide = 17 PT.air_contents.update_values() OT.air_contents.temperature = PLASMA_FLASHPOINT - OT.air_contents.oxygen = 48 + OT.air_contents.oxygen = 20 OT.air_contents.update_values() var/obj/item/device/assembly/S @@ -171,4 +171,4 @@ V.update_icon() - del(src) \ No newline at end of file + del(src) diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index ba63563d7c5..88c15656088 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -34,6 +34,7 @@ icon_state = "bodybag_closed" icon_closed = "bodybag_closed" icon_opened = "bodybag_open" + var/item_path = /obj/item/bodybag density = 0 @@ -74,7 +75,7 @@ if(opened) return 0 if(contents.len) return 0 visible_message("[usr] folds up the [src.name]") - new/obj/item/bodybag(get_turf(src)) + new item_path(get_turf(src)) spawn(0) del(src) return @@ -92,7 +93,6 @@ icon = 'icons/obj/cryobag.dmi' icon_state = "bodybag_folded" - attack_self(mob/user) var/obj/structure/closet/body_bag/cryobag/R = new /obj/structure/closet/body_bag/cryobag(user.loc) R.add_fingerprint(user) @@ -104,11 +104,7 @@ name = "stasis bag" desc = "A non-reusable plastic bag designed for the preservation of an occupant's brain by stasis." icon = 'icons/obj/cryobag.dmi' - icon_state = "bodybag_closed" - icon_closed = "bodybag_closed" - icon_opened = "bodybag_open" - density = 0 - + item_path = /obj/item/bodybag/cryobag var/used = 0 open() diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 8e533cf37b2..33fc438c4ac 100755 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -349,13 +349,12 @@ var/global/list/obj/item/device/pda/PDAs = list() dat += "" @@ -500,7 +499,12 @@ var/global/list/obj/item/device/pda/PDAs = list() dat += " " dat += "" - + if (41) //crew manifest + dat += "

    Crew Manifest

    " + dat += "Entries cannot be modified from this terminal.

    " + if(data_core) + dat += data_core.get_manifest(1) // make it monochrome + dat += "
    " else//Else it links to the cart menu proc. Although, it really uses menu hub 4--menu 4 doesn't really exist as it simply redirects to hub. dat += cart @@ -572,6 +576,8 @@ var/global/list/obj/item/device/pda/PDAs = list() mode = 0 if("chatroom") // chatroom hub mode = 5 + if("41") //Manifest + mode = 41 //MAIN FUNCTIONS=================================== @@ -700,7 +706,6 @@ var/global/list/obj/item/device/pda/PDAs = list() difficulty += P.cartridge.access_engine difficulty += P.cartridge.access_clown difficulty += P.cartridge.access_janitor - difficulty += P.cartridge.access_manifest * 2 else difficulty += 2 diff --git a/code/game/objects/items/devices/PDA/cart.dm b/code/game/objects/items/devices/PDA/cart.dm index 546b70f28e5..f0e3ee98f17 100644 --- a/code/game/objects/items/devices/PDA/cart.dm +++ b/code/game/objects/items/devices/PDA/cart.dm @@ -11,7 +11,6 @@ var/access_engine = 0 var/access_atmos = 0 var/access_medical = 0 - var/access_manifest = 1 // Make all jobs able to access the manifest var/access_clown = 0 var/access_mime = 0 var/access_janitor = 0 @@ -68,7 +67,6 @@ icon_state = "cart-s" access_security = 1 access_medical = 1 - access_manifest = 1 janitor @@ -132,13 +130,11 @@ head name = "Easy-Record DELUXE" icon_state = "cart-h" - access_manifest = 1 access_status_display = 1 hop name = "HumanResources9001" icon_state = "cart-h" - access_manifest = 1 access_status_display = 1 access_quartermaster = 1 access_janitor = 1 @@ -152,7 +148,6 @@ hos name = "R.O.B.U.S.T. DELUXE" icon_state = "cart-hos" - access_manifest = 1 access_status_display = 1 access_security = 1 @@ -164,7 +159,6 @@ ce name = "Power-On DELUXE" icon_state = "cart-ce" - access_manifest = 1 access_status_display = 1 access_engine = 1 access_atmos = 1 @@ -172,7 +166,6 @@ cmo name = "Med-U DELUXE" icon_state = "cart-cmo" - access_manifest = 1 access_status_display = 1 access_reagent_scanner = 1 access_medical = 1 @@ -180,7 +173,6 @@ rd name = "Signal Ace DELUXE" icon_state = "cart-rd" - access_manifest = 1 access_status_display = 1 access_reagent_scanner = 1 access_atmos = 1 @@ -194,7 +186,6 @@ name = "Value-PAK Cartridge" desc = "Now with 200% more value!" icon_state = "cart-c" - access_manifest = 1 access_engine = 1 access_security = 1 access_medical = 1 @@ -276,14 +267,6 @@ Code: [radio:code] + +
    "} - if (41) //crew manifest - - menu = "

    Crew Manifest

    " - menu += "Entries cannot be modified from this terminal.

    " - if(data_core) - menu += data_core.get_manifest(1) // make it monochrome - menu += "
    " - if (42) //status displays menu = "

    Station Status Display Interlink

    " diff --git a/code/game/objects/items/devices/whistle.dm b/code/game/objects/items/devices/whistle.dm index c735f40264f..760497d5cae 100644 --- a/code/game/objects/items/devices/whistle.dm +++ b/code/game/objects/items/devices/whistle.dm @@ -4,18 +4,35 @@ icon_state = "voice0" item_state = "flashbang" //looks exactly like a flash (and nothing like a flashbang) w_class = 1.0 - flags = FPRINT | TABLEPASS| CONDUCT + flags = FPRINT | TABLEPASS | CONDUCT var/spamcheck = 0 - + var/emagged = 0 + var/insults = 0//just in case /obj/item/device/hailer/attack_self(mob/living/carbon/user as mob) if (spamcheck) return - playsound(get_turf(src), 'sound/voice/halt.ogg', 100, 1, vary = 0) - user.visible_message("[user]'s [name] rasps, \"Halt! Security!\"") + if(emagged) + if(insults >= 1) + playsound(get_turf(src), 'sound/voice/binsult.ogg', 100, 1, vary = 0)//hueheuheuheuheuheuhe + user.visible_message("[user]'s [name] gurgles, \"FUCK YOUR CUNT YOU SHIT EATING CUNT TILL YOU ARE A MASS EATING SHIT CUNT. EAT PENISES IN YOUR FUCK FACE AND SHIT OUT ABORTIONS TO FUCK UP SHIT IN YOUR ASS YOU COCK FUCK SHIT MONKEY FROM THE DEPTHS OF SHIT\"") + insults-- + else + user << "\red *BZZZZcuntZZZZT*" + else + playsound(get_turf(src), 'sound/voice/halt.ogg', 100, 1, vary = 0) + user.visible_message("[user]'s [name] rasps, \"Halt! Security!\"") spamcheck = 1 spawn(20) - spamcheck = 0 \ No newline at end of file + spamcheck = 0 + +/obj/item/device/hailer/attackby(obj/item/I, mob/user) + if(istype(I, /obj/item/weapon/card/emag) && !emagged) + user << "\red You overload \the [src]'s voice synthesizer." + emagged = 1 + insults = rand(1, 3)//to prevent dickflooding + return + return \ No newline at end of file diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index b3911d7c9f5..3d3b88f4d06 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -8,6 +8,7 @@ var/construction_time = 100 var/list/construction_cost = list("metal"=20000,"glass"=5000) var/list/part = null + var/sabotaged = 0 //Emagging limbs can have repercussions when installed as prosthetics. /obj/item/robot_parts/l_arm name = "robot left arm" @@ -161,7 +162,7 @@ else user << "\blue You need to attach a flash to it first!" - if(istype(W, /obj/item/device/mmi) || istype(W, /obj/item/device/mmi/posibrain)) + if(istype(W, /obj/item/device/mmi)) var/obj/item/device/mmi/M = W if(check_completion()) if(!istype(loc,/turf)) @@ -193,7 +194,7 @@ user << "\red This [W] does not seem to fit." return - var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc)) + var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc), unfinished = 1) if(!O) return user.drop_item() @@ -214,6 +215,12 @@ O.cell.loc = O W.loc = O//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame. + // Since we "magically" installed a cell, we also have to update the correct component. + if(O.cell) + var/datum/robot_component/cell_component = O.components["power cell"] + cell_component.wrapped = O.cell + cell_component.installed = 1 + feedback_inc("cyborg_birth",1) O.Namepick() @@ -278,3 +285,13 @@ del(src) return return + +/obj/item/robot_parts/attackby(obj/item/W as obj, mob/user as mob) + if(istype(W,/obj/item/weapon/card/emag)) + if(sabotaged) + user << "\red [src] is already sabotaged!" + else + user << "\red You slide [W] into the dataport on [src] and short out the safeties." + sabotaged = 1 + return + ..() \ No newline at end of file diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 0de996ceaf3..1e8bc3891b9 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -147,7 +147,7 @@ R.module.modules += new/obj/item/weapon/tank/jetpack/carbondioxide for(var/obj/item/weapon/tank/jetpack/carbondioxide in R.module.modules) R.internals = src - R.icon_state="Miner+j" + //R.icon_state="Miner+j" return 1 diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index 82abc09f7ea..ca538c254e2 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -33,6 +33,16 @@ if (istype(M, /mob/living/carbon/human)) var/mob/living/carbon/human/H = M var/datum/organ/external/affecting = H.get_organ(user.zone_sel.selecting) + + if(affecting.display_name == "head") + if(H.head && istype(H.head,/obj/item/clothing/head/helmet/space)) + user << "\red You can't apply [src] through [H.head]!" + return 1 + else + if(H.wear_suit && istype(H.wear_suit,/obj/item/clothing/suit/space)) + user << "\red You can't apply [src] through [H.wear_suit]!" + return 1 + if(affecting.status & ORGAN_ROBOT) user << "\red This isn't useful at all on a robotic limb.." return 1 diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index c76ff2511f6..3671b6ce08e 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -124,7 +124,6 @@ var/global/list/datum/stack_recipe/plasma_recipes = list ( \ throw_range = 3 origin_tech = "materials=3" perunit = 2000 - sheettype = "plastic" var/global/list/datum/stack_recipe/plastic_recipes = list ( \ new/datum/stack_recipe("plastic crate", /obj/structure/closet/pcrate, 10, one_per_turf = 1, on_floor = 1), \ diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 0dfabb85e12..e35bae22499 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -13,10 +13,20 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ new/datum/stack_recipe("stool", /obj/structure/stool, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("chair", /obj/structure/stool/bed/chair, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("swivel chair", /obj/structure/stool/bed/chair/office/dark, 5, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("comfy chair", /obj/structure/stool/bed/chair/comfy/beige, 2, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("bed", /obj/structure/stool/bed, 2, one_per_turf = 1, on_floor = 1), \ null, \ + new/datum/stack_recipe_list("office chairs",list( \ + new/datum/stack_recipe("dark office chair", /obj/structure/stool/bed/chair/office/dark, 5, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("light office chair", /obj/structure/stool/bed/chair/office/light, 5, one_per_turf = 1, on_floor = 1), \ + ), 5), \ + new/datum/stack_recipe_list("comfy chairs", list( \ + new/datum/stack_recipe("beige comfy chair", /obj/structure/stool/bed/chair/comfy/beige, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("black comfy chair", /obj/structure/stool/bed/chair/comfy/black, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("brown comfy chair", /obj/structure/stool/bed/chair/comfy/brown, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("lime comfy chair", /obj/structure/stool/bed/chair/comfy/lime, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("teal comfy chair", /obj/structure/stool/bed/chair/comfy/teal, 2, one_per_turf = 1, on_floor = 1), \ + ), 2), \ + null, \ new/datum/stack_recipe("table parts", /obj/item/weapon/table_parts, 2), \ new/datum/stack_recipe("rack parts", /obj/item/weapon/rack_parts), \ new/datum/stack_recipe("closet", /obj/structure/closet, 2, time = 15, one_per_turf = 1, on_floor = 1), \ @@ -28,10 +38,28 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \ null, \ new/datum/stack_recipe("computer frame", /obj/structure/computerframe, 5, time = 25, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("machine frame", /obj/machinery/constructable_frame/machine_frame, 5, time = 25, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1), \ null, \ + new/datum/stack_recipe_list("airlock assemblies", list( \ + new/datum/stack_recipe("standard airlock assembly", /obj/structure/door_assembly, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("command airlock assembly", /obj/structure/door_assembly/door_assembly_com, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("security airlock assembly", /obj/structure/door_assembly/door_assembly_sec, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("engineering airlock assembly", /obj/structure/door_assembly/door_assembly_eng, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("mining airlock assembly", /obj/structure/door_assembly/door_assembly_min, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("atmospherics airlock assembly", /obj/structure/door_assembly/door_assembly_atmo, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("research airlock assembly", /obj/structure/door_assembly/door_assembly_research, 4, time = 50, one_per_turf = 1, on_floor = 1), \ +/* new/datum/stack_recipe("science airlock assembly", /obj/structure/door_assembly/door_assembly_science, 4, time = 50, one_per_turf = 1, on_floor = 1), \ */ + new/datum/stack_recipe("medical airlock assembly", /obj/structure/door_assembly/door_assembly_med, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("maintenance airlock assembly", /obj/structure/door_assembly/door_assembly_mai, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("external airlock assembly", /obj/structure/door_assembly/door_assembly_ext, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("freezer airlock assembly", /obj/structure/door_assembly/door_assembly_fre, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("airtight hatch assembly", /obj/structure/door_assembly/door_assembly_hatch, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("maintenance hatch assembly", /obj/structure/door_assembly/door_assembly_mhatch, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("multi-tile airlock assembly", /obj/structure/door_assembly/multi_tile, 4, time = 50, one_per_turf = 1, on_floor = 1), \ + ), 4), \ + null, \ new/datum/stack_recipe("grenade casing", /obj/item/weapon/grenade/chem_grenade), \ new/datum/stack_recipe("light fixture frame", /obj/item/light_fixture_frame, 2), \ new/datum/stack_recipe("small light fixture frame", /obj/item/light_fixture_frame/small, 1), \ diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 3c8b694d288..551213c7fb4 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -1,7 +1,8 @@ /* Stack type objects! * Contains: * Stacks - * Recipe datum + * Recipe datum + * Recipe list datum */ /* @@ -32,51 +33,66 @@ return /obj/item/stack/attack_self(mob/user as mob) - interact(user) + list_recipes(user) -/obj/item/stack/interact(mob/user as mob) +/obj/item/stack/proc/list_recipes(mob/user as mob, recipes_sublist) if (!recipes) return if (!src || amount<=0) user << browse(null, "window=stack") user.set_machine(src) //for correct work of onclose + var/list/recipe_list = recipes + if (recipes_sublist && recipe_list[recipes_sublist] && istype(recipe_list[recipes_sublist], /datum/stack_recipe_list)) + var/datum/stack_recipe_list/srl = recipe_list[recipes_sublist] + recipe_list = srl.recipes var/t1 = text("Constructions from []Amount Left: []
    ", src, src.amount) - for(var/i=1;i<=recipes.len,i++) - var/datum/stack_recipe/R = recipes[i] - if (isnull(R)) + for(var/i=1;i<=recipe_list.len,i++) + var/E = recipe_list[i] + if (isnull(E)) t1 += "
    " continue - if (i>1 && !isnull(recipes[i-1])) + + if (i>1 && !isnull(recipe_list[i-1])) t1+="
    " - var/max_multiplier = round(src.amount / R.req_amount) - var/title as text - var/can_build = 1 - can_build = can_build && (max_multiplier>0) - /* - if (R.one_per_turf) - can_build = can_build && !(locate(R.result_type) in usr.loc) - if (R.on_floor) - can_build = can_build && istype(usr.loc, /turf/simulated/floor) - */ - if (R.res_amount>1) - title+= "[R.res_amount]x [R.title]\s" - else - title+= "[R.title]" - title+= " ([R.req_amount] [src.singular_name]\s)" - if (can_build) - t1 += text("[] ", src, i, title) - else - t1 += text("[]", title) - continue - if (R.max_res_amount>1 && max_multiplier>1) - max_multiplier = min(max_multiplier, round(R.max_res_amount/R.res_amount)) - t1 += " |" - var/list/multipliers = list(5,10,25) - for (var/n in multipliers) - if (max_multiplier>=n) - t1 += " [n*R.res_amount]x" - if (!(max_multiplier in multipliers)) - t1 += " [max_multiplier*R.res_amount]x" + + if (istype(E, /datum/stack_recipe_list)) + var/datum/stack_recipe_list/srl = E + if (src.amount >= srl.req_amount) + t1 += "[srl.title] ([srl.req_amount] [src.singular_name]\s)" + else + t1 += "[srl.title] ([srl.req_amount] [src.singular_name]\s)
    " + + if (istype(E, /datum/stack_recipe)) + var/datum/stack_recipe/R = E + var/max_multiplier = round(src.amount / R.req_amount) + var/title as text + var/can_build = 1 + can_build = can_build && (max_multiplier>0) + /* + if (R.one_per_turf) + can_build = can_build && !(locate(R.result_type) in usr.loc) + if (R.on_floor) + can_build = can_build && istype(usr.loc, /turf/simulated/floor) + */ + if (R.res_amount>1) + title+= "[R.res_amount]x [R.title]\s" + else + title+= "[R.title]" + title+= " ([R.req_amount] [src.singular_name]\s)" + if (can_build) + t1 += text("[title] ") + else + t1 += text("[]", title) + continue + if (R.max_res_amount>1 && max_multiplier>1) + max_multiplier = min(max_multiplier, round(R.max_res_amount/R.res_amount)) + t1 += " |" + var/list/multipliers = list(5,10,25) + for (var/n in multipliers) + if (max_multiplier>=n) + t1 += " [n*R.res_amount]x" + if (!(max_multiplier in multipliers)) + t1 += " [max_multiplier*R.res_amount]x" t1 += "
    " user << browse(t1, "window=stack") @@ -87,10 +103,18 @@ ..() if ((usr.restrained() || usr.stat || usr.get_active_hand() != src)) return + + if (href_list["sublist"] && !href_list["make"]) + list_recipes(usr, text2num(href_list["sublist"])) + if (href_list["make"]) if (src.amount < 1) del(src) //Never should happen - var/datum/stack_recipe/R = recipes[text2num(href_list["make"])] + var/list/recipes_list = recipes + if (href_list["sublist"]) + var/datum/stack_recipe_list/srl = recipes_list[text2num(href_list["sublist"])] + recipes_list = srl.recipes + var/datum/stack_recipe/R = recipes_list[text2num(href_list["make"])] var/multiplier = text2num(href_list["multiplier"]) if (!multiplier) multiplier = 1 if (src.amount < R.req_amount*multiplier) @@ -222,4 +246,16 @@ src.max_res_amount = max_res_amount src.time = time src.one_per_turf = one_per_turf - src.on_floor = on_floor \ No newline at end of file + src.on_floor = on_floor + +/* + * Recipe list datum + */ +/datum/stack_recipe_list + var/title = "ERROR" + var/list/recipes = null + var/req_amount = 1 + New(title, recipes, req_amount = 1) + src.title = title + src.recipes = recipes + src.req_amount = req_amount \ No newline at end of file diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 7267b18cb61..6e86f849699 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -101,6 +101,17 @@ /obj/item/weapon/card/id/GetID() return src +/obj/item/weapon/card/id/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if(istype(W,/obj/item/weapon/id_wallet)) + user << "You slip [src] into [W]." + src.name = "[src.registered_name]'s [W.name] ([src.assignment])" + src.desc = W.desc + src.icon = W.icon + src.icon_state = W.icon_state + del(W) + return + /obj/item/weapon/card/id/verb/read() set name = "Read ID Card" set category = "Object" diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index a68276a3100..6fbdba918ed 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -153,6 +153,7 @@ icon_state = "knife" desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." flags = FPRINT | TABLEPASS | CONDUCT + sharp = 1 force = 10.0 w_class = 3.0 throwforce = 6.0 diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm index 6978809bf42..323bed9ed5b 100644 --- a/code/game/objects/items/weapons/storage/belt.dm +++ b/code/game/objects/items/weapons/storage/belt.dm @@ -127,7 +127,7 @@ "/obj/item/device/flashlight", "/obj/item/device/pda", "/obj/item/device/radio/headset", - "/obj/item/weapon/melee/baton", + "/obj/item/weapon/melee", "/obj/item/taperoll/police", "/obj/item/weapon/gun/energy/taser" ) diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index b89cfd6a7fd..f1b9319f954 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -277,7 +277,41 @@ ..() for(var/i = 1; i <= 5; i++) new /obj/item/weapon/reagent_containers/food/snacks/monkeycube/wrapped(src) +/obj/item/weapon/storage/box/farwacubes + name = "farwa cube box" + desc = "Drymate brand farwa cubes. Just add water!" + icon = 'icons/obj/food.dmi' + icon_state = "monkeycubebox" + storage_slots = 7 + can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/farwacube") + New() + ..() + for(var/i = 1; i <= 5; i++) + new /obj/item/weapon/reagent_containers/food/snacks/farwacube/wrapped(src) +/obj/item/weapon/storage/box/stokcubes + name = "stok cube box" + desc = "Drymate brand stok cubes. Just add water!" + icon = 'icons/obj/food.dmi' + icon_state = "monkeycubebox" + storage_slots = 7 + can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/stokcube") + New() + ..() + for(var/i = 1; i <= 5; i++) + new /obj/item/weapon/reagent_containers/food/snacks/stokcube/wrapped(src) + +/obj/item/weapon/storage/box/neaeracubes + name = "neaera cube box" + desc = "Drymate brand neaera cubes. Just add water!" + icon = 'icons/obj/food.dmi' + icon_state = "monkeycubebox" + storage_slots = 7 + can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/stokcube") + New() + ..() + for(var/i = 1; i <= 5; i++) + new /obj/item/weapon/reagent_containers/food/snacks/neaeracube/wrapped(src) /obj/item/weapon/storage/box/ids name = "spare IDs" diff --git a/code/game/objects/items/weapons/surgery_tools.dm b/code/game/objects/items/weapons/surgery_tools.dm index da99bbfaace..fc5c5fb0c0c 100644 --- a/code/game/objects/items/weapons/surgery_tools.dm +++ b/code/game/objects/items/weapons/surgery_tools.dm @@ -19,7 +19,7 @@ m_amt = 10000 g_amt = 5000 flags = FPRINT | TABLEPASS | CONDUCT - w_class = 1.0 + w_class = 2.0 origin_tech = "materials=1;biotech=1" /*HAHA, SUCK IT, 2000 LINES OF SPAGHETTI CODE! @@ -133,7 +133,7 @@ LOOK FOR SURGERY.DM*/ m_amt = 5000 g_amt = 2500 flags = FPRINT | TABLEPASS | CONDUCT - w_class = 1.0 + w_class = 2.0 origin_tech = "materials=1;biotech=1" attack_verb = list("attacked", "pinched") @@ -268,7 +268,7 @@ LOOK FOR SURGERY.DM*/ m_amt = 5000 g_amt = 2500 flags = FPRINT | TABLEPASS | CONDUCT - w_class = 1.0 + w_class = 2.0 origin_tech = "materials=1;biotech=1" attack_verb = list("burnt") @@ -360,7 +360,7 @@ LOOK FOR SURGERY.DM*/ g_amt = 10000 flags = FPRINT | TABLEPASS | CONDUCT force = 15.0 - w_class = 1.0 + w_class = 2.0 origin_tech = "materials=1;biotech=1" attack_verb = list("drilled") @@ -379,7 +379,7 @@ LOOK FOR SURGERY.DM*/ icon_state = "scalpel" flags = FPRINT | TABLEPASS | CONDUCT force = 10.0 - w_class = 1.0 + w_class = 2.0 throwforce = 5.0 throw_speed = 3 throw_range = 5 @@ -631,7 +631,7 @@ LOOK FOR SURGERY.DM*/ hitsound = 'sound/weapons/circsawhit.ogg' flags = FPRINT | TABLEPASS | CONDUCT force = 15.0 - w_class = 1.0 + w_class = 2.0 throwforce = 9.0 throw_speed = 3 throw_range = 5 @@ -797,6 +797,7 @@ LOOK FOR SURGERY.DM*/ icon = 'surgery.dmi' icon_state = "bone-gel" force = 0 + w_class = 2.0 throwforce = 1.0 /obj/item/weapon/FixOVein @@ -806,6 +807,7 @@ LOOK FOR SURGERY.DM*/ force = 0 throwforce = 1.0 origin_tech = "materials=1;biotech=3" + w_class = 2.0 var/usage_amount = 10 /obj/item/weapon/bonesetter @@ -816,4 +818,5 @@ LOOK FOR SURGERY.DM*/ throwforce = 9.0 throw_speed = 3 throw_range = 5 + w_class = 2.0 attack_verb = list("attacked", "hit", "bludgeoned") \ No newline at end of file diff --git a/code/game/objects/items/weapons/swords_axes_etc.dm b/code/game/objects/items/weapons/swords_axes_etc.dm index 24d622bff1a..60ea8312450 100644 --- a/code/game/objects/items/weapons/swords_axes_etc.dm +++ b/code/game/objects/items/weapons/swords_axes_etc.dm @@ -125,7 +125,7 @@ "You hear an ominous click.") icon_state = "telebaton_1" item_state = "telebaton_1" - w_class = 4 + w_class = 3 force = 15//quite robust attack_verb = list("smacked", "struck", "slapped") else diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index d4e291c1321..d14e54f10eb 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -449,12 +449,12 @@ if(S.brute_dam) S.heal_damage(15,0,0,1) if(user != M) - user.visible_message("\red You patch some dents on \the [M]'s [S.display_name]",\ - "\red \The [user] patches some dents on \the [M]'s [S.display_name] with \the [src]",\ + user.visible_message("\red \The [user] patches some dents on \the [M]'s [S.display_name] with \the [src]",\ + "\red You patch some dents on \the [M]'s [S.display_name]",\ "You hear a welder.") else - user.visible_message("\red You patch some dents on your [S.display_name]",\ - "\red \The [user] patches some dents on their [S.display_name] with \the [src]",\ + user.visible_message("\red \The [user] patches some dents on their [S.display_name] with \the [src]",\ + "\red You patch some dents on your [S.display_name]",\ "You hear a welder.") else user << "Nothing to fix!" diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index e52cfa6f18e..92e6b78d754 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -136,4 +136,15 @@ /obj/item/weapon/katana/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) - return ..() \ No newline at end of file + return ..() + +/obj/item/weapon/harpoon + name = "harpoon" + sharp = 1 + desc = "Tharr she blows!" + icon_state = "harpoon" + item_state = "harpoon" + force = 20 + throwforce = 15 + w_class = 3 + attack_verb = list("jabbed","stabbed","ripped") \ No newline at end of file diff --git a/code/game/objects/random/random.dm b/code/game/objects/random/random.dm new file mode 100644 index 00000000000..26b4307d776 --- /dev/null +++ b/code/game/objects/random/random.dm @@ -0,0 +1,104 @@ +/obj/random + name = "Random Object" + desc = "This item type is used to spawn random objects at round-start" + icon = 'icons/misc/mark.dmi' + icon_state = "rup" + var/spawn_nothing_percentage = 0 // this variable determines the likelyhood that this random object will not spawn anything + + +// creates a new object and deletes itself +/obj/random/New() + ..() + if (!prob(spawn_nothing_percentage)) + spawn_item() + del src + + +// this function should return a specific item to spawn +/obj/random/proc/item_to_spawn() + return 0 + + +// creates the random item +/obj/random/proc/spawn_item() + var/build_path = item_to_spawn() + return (new build_path(src.loc)) + + +/obj/random/tool + name = "Random Tool" + desc = "This is a random tool" + icon = 'icons/obj/items.dmi' + icon_state = "welder" + item_to_spawn() + return pick(/obj/item/weapon/screwdriver,\ + /obj/item/weapon/wirecutters,\ + /obj/item/weapon/weldingtool,\ + /obj/item/weapon/crowbar,\ + /obj/item/weapon/wrench,\ + /obj/item/device/flashlight) + + +/obj/random/technology_scanner + name = "Random Scanner" + desc = "This is a random technology scanner." + icon = 'icons/obj/device.dmi' + icon_state = "atmos" + item_to_spawn() + return pick(prob(5);/obj/item/device/t_scanner,\ + prob(2);/obj/item/device/radio/intercom,\ + prob(5);/obj/item/device/analyzer) + + +/obj/random/powercell + name = "Random Powercell" + desc = "This is a random powercell." + icon = 'icons/obj/power.dmi' + icon_state = "cell" + item_to_spawn() + return pick(prob(10);/obj/item/weapon/cell/crap,\ + prob(40);/obj/item/weapon/cell,\ + prob(40);/obj/item/weapon/cell/high,\ + prob(9);/obj/item/weapon/cell/super,\ + prob(1);/obj/item/weapon/cell/hyper) + + +/obj/random/bomb_supply + name = "Bomb Supply" + desc = "This is a random bomb supply." + icon = 'icons/obj/assemblies/new_assemblies.dmi' + icon_state = "signaller" + item_to_spawn() + return pick(/obj/item/device/assembly/igniter,\ + /obj/item/device/assembly/prox_sensor,\ + /obj/item/device/assembly/signaler) + + +/obj/random/toolbox + name = "Random Toolbox" + desc = "This is a random toolbox." + icon = 'icons/obj/storage.dmi' + icon_state = "red" + item_to_spawn() + return pick(prob(3);/obj/item/weapon/storage/toolbox/mechanical,\ + prob(2);/obj/item/weapon/storage/toolbox/electrical,\ + prob(1);/obj/item/weapon/storage/toolbox/emergency) + + +/obj/random/tech_supply + name = "Random Tech Supply" + desc = "This is a random piece of technology supplies." + icon = 'icons/obj/power.dmi' + icon_state = "cell" + spawn_nothing_percentage = 50 + item_to_spawn() + return pick(prob(3);/obj/random/powercell,\ + prob(2);/obj/random/technology_scanner,\ + prob(1);/obj/item/weapon/packageWrap,\ + prob(2);/obj/random/bomb_supply,\ + prob(1);/obj/item/weapon/extinguisher,\ + prob(1);/obj/item/clothing/gloves/fyellow,\ + prob(3);/obj/item/weapon/cable_coil,\ + prob(2);/obj/random/toolbox,\ + prob(2);/obj/item/weapon/storage/belt/utility,\ + prob(5);/obj/random/tool) \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm index 5ed91f87b64..7c62c80529f 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/engineering.dm @@ -104,6 +104,10 @@ new /obj/item/weapon/storage/backpack/industrial(src) else new /obj/item/weapon/storage/backpack/satchel_eng(src) + if (prob(70)) + new /obj/item/clothing/tie/storage/brown_vest(src) + else + new /obj/item/clothing/tie/storage/webbing(src) new /obj/item/clothing/under/rank/engineer(src) new /obj/item/clothing/shoes/orange(src) new /obj/item/weapon/storage/toolbox/mechanical(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index b19a4cdf724..3ece4bfd1f1 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -81,6 +81,7 @@ new /obj/item/clothing/shoes/black(src) new /obj/item/clothing/shoes/leather(src) new /obj/item/clothing/shoes/white(src) + new /obj/item/clothing/under/rank/head_of_personnel_whimsy(src) return @@ -153,6 +154,7 @@ new /obj/item/weapon/reagent_containers/spray/pepper(src) new /obj/item/weapon/melee/baton(src) new /obj/item/weapon/gun/energy/taser(src) + new /obj/item/weapon/storage/box/holobadge(src) return @@ -187,6 +189,7 @@ new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/taperoll/police(src) new /obj/item/device/hailer(src) + new /obj/item/clothing/tie/storage/black_vest(src) return diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 7ece9970d55..6856c706341 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -6,278 +6,133 @@ obj/structure/door_assembly anchored = 0 density = 1 var/state = 0 - var/mineral = null - var/base_icon_state = "door_as_0" - var/glass_base_icon_state = "door_as_g0" + var/base_icon_state = "" + var/base_name = "Airlock" var/obj/item/weapon/airlock_electronics/electronics = null - var/airlock_type = /obj/machinery/door/airlock //the type path of the airlock once completed - var/glass_type = /obj/machinery/door/airlock/glass - var/glass = null + var/airlock_type = "" //the type path of the airlock once completed + var/glass_type = "/glass" + var/glass = 0 // 0 = glass can be installed. -1 = glass can't be installed. 1 = glass is already installed. Text = mineral plating is installed instead. var/created_name = null New() - base_icon_state = copytext(icon_state,1,lentext(icon_state)) - - door_assembly_0 - name = "Airlock Assembly" - icon_state = "door_as_1" - airlock_type = /obj/machinery/door/airlock - anchored = 1 - density = 1 - state = 1 - glass = 0 + update_state() door_assembly_com - name = "Command Airlock Assembly" - icon_state = "door_as_com1" - glass_base_icon_state = "door_as_gcom" - glass_type = /obj/machinery/door/airlock/glass_command - airlock_type = /obj/machinery/door/airlock/command - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_gcom1" + base_icon_state = "com" + base_name = "Command Airlock" + glass_type = "/glass_command" + airlock_type = "/command" door_assembly_sec - name = "Security Airlock Assembly" - icon_state = "door_as_sec1" - glass_base_icon_state = "door_as_gsec" - glass_type = /obj/machinery/door/airlock/glass_security - airlock_type = /obj/machinery/door/airlock/security - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_gsec1" + base_icon_state = "sec" + base_name = "Security Airlock" + glass_type = "/glass_security" + airlock_type = "/security" door_assembly_eng - name = "Engineering Airlock Assembly" - icon_state = "door_as_eng1" - glass_base_icon_state = "door_as_geng" - glass_type = /obj/machinery/door/airlock/glass_engineering - airlock_type = /obj/machinery/door/airlock/engineering - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_geng1" + base_icon_state = "eng" + base_name = "Engineering Airlock" + glass_type = "/glass_engineering" + airlock_type = "/engineering" door_assembly_min - name = "Mining Airlock Assembly" - icon_state = "door_as_min1" - glass_base_icon_state = "door_as_gmin" - glass_type = /obj/machinery/door/airlock/glass_mining - airlock_type = /obj/machinery/door/airlock/mining - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_gmin1" + base_icon_state = "min" + base_name = "Mining Airlock" + glass_type = "/glass_mining" + airlock_type = "/mining" door_assembly_atmo - name = "Atmospherics Airlock Assembly" - icon_state = "door_as_atmo1" - glass_base_icon_state = "door_as_gatmo" - glass_type = /obj/machinery/door/airlock/glass_atmos - airlock_type = /obj/machinery/door/airlock/atmos - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_gatmo1" + base_icon_state = "atmo" + base_name = "Atmospherics Airlock" + glass_type = "/glass_atmos" + airlock_type = "/atmos" door_assembly_research - name = "Research Airlock Assembly" - icon_state = "door_as_res1" - glass_base_icon_state = "door_as_gres" - glass_type = /obj/machinery/door/airlock/glass_research - airlock_type = /obj/machinery/door/airlock/research - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_gres1" + base_icon_state = "res" + base_name = "Research Airlock" + glass_type = "/glass_research" + airlock_type = "/research" door_assembly_science - name = "Science Airlock Assembly" - icon_state = "door_as_sci1" - glass_base_icon_state = "door_as_gsci" - glass_type = /obj/machinery/door/airlock/glass_science - airlock_type = /obj/machinery/door/airlock/science - anchored = 1 - density = 1 - state = 1 - glass = 0 - - glass - glass = 1 - icon_state = "door_as_gsci1" + base_icon_state = "sci" + base_name = "Science Airlock" + glass_type = "/glass_science" + airlock_type = "/science" door_assembly_med - name = "Medical Airlock Assembly" - icon_state = "door_as_med1" - airlock_type = /obj/machinery/door/airlock/medical - anchored = 1 - density = 1 - state = 1 - - glass - mineral = "glass" - icon_state = "door_as_gmed1" + base_icon_state = "med" + base_name = "Medical Airlock" + glass_type = "/glass_medical" + airlock_type = "/medical" door_assembly_mai - name = "Maintenance Airlock Assembly" - icon_state = "door_as_mai1" - airlock_type = /obj/machinery/door/airlock/maintenance - anchored = 1 - density = 1 - state = 1 - glass = 0 + base_icon_state = "mai" + base_name = "Maintenance Airlock" + airlock_type = "/maintenance" + glass = -1 door_assembly_ext - name = "External Airlock Assembly" - icon_state = "door_as_ext1" - airlock_type = /obj/machinery/door/airlock/external - anchored = 1 - density = 1 - state = 1 - glass = 0 + base_icon_state = "ext" + base_name = "External Airlock" + airlock_type = "/external" + glass = -1 door_assembly_fre - name = "Freezer Airlock Assembly" - icon_state = "door_as_fre1" - airlock_type = /obj/machinery/door/airlock/freezer - anchored = 1 - density = 1 - state = 1 - glass = 0 + base_icon_state = "fre" + base_name = "Freezer Airlock" + airlock_type = "/freezer" + glass = -1 door_assembly_hatch - name = "Airtight Hatch Assembly" - icon_state = "door_as_hatch1" - airlock_type = /obj/machinery/door/airlock/hatch - anchored = 1 - density = 1 - state = 1 - glass = 0 + base_icon_state = "hatch" + base_name = "Airtight Hatch" + airlock_type = "/hatch" + glass = -1 door_assembly_mhatch - name = "Maintenance Hatch Assembly" - icon_state = "door_as_mhatch1" - airlock_type = /obj/machinery/door/airlock/maintenance_hatch - anchored = 1 - density = 1 - state = 1 - glass = 0 - - door_assembly_glass - name = "Glass Airlock Assembly" - icon_state = "door_as_g1" - airlock_type = /obj/machinery/door/airlock/glass - anchored = 1 - density = 1 - state = 1 - mineral = "glass" - - door_assembly_gold - name = "Gold Airlock Assembly" - icon_state = "door_as_gold1" - airlock_type = /obj/machinery/door/airlock/gold - anchored = 1 - density = 1 - state = 1 - mineral = "gold" - - door_assembly_silver - name = "Silver Airlock Assembly" - icon_state = "door_as_silver1" - airlock_type = /obj/machinery/door/airlock/silver - anchored = 1 - density = 1 - state = 1 - mineral = "silver" - - door_assembly_diamond - name = "Diamond Airlock Assembly" - icon_state = "door_as_diamond1" - airlock_type = /obj/machinery/door/airlock/diamond - anchored = 1 - density = 1 - state = 1 - mineral = "diamond" - - door_assembly_uranium - name = "Uranium Airlock Assembly" - icon_state = "door_as_uranium1" - airlock_type = /obj/machinery/door/airlock/uranium - anchored = 1 - density = 1 - state = 1 - mineral = "uranium" - - door_assembly_plasma - name = "Plasma Airlock Assembly" - icon_state = "door_as_plasma1" - airlock_type = /obj/machinery/door/airlock/plasma - anchored = 1 - density = 1 - state = 1 - mineral = "plasma" - - door_assembly_clown - name = "Bananium Airlock Assembly" - icon_state = "door_as_clown1" - airlock_type = /obj/machinery/door/airlock/clown - anchored = 1 - density = 1 - state = 1 - mineral = "clown" - - door_assembly_sandstone - name = "Sandstone Airlock Assembly" - icon_state = "door_as_sandstone1" - airlock_type = /obj/machinery/door/airlock/sandstone - anchored = 1 - density = 1 - state = 1 - mineral = "sandstone" - - door_assembly_sandstone - name = "Sandstone Airlock Assembly" - icon_state = "door_as_sandstone1" - airlock_type = /obj/machinery/door/airlock/sandstone - anchored = 1 - density = 1 - state = 1 - mineral = "sandstone" + base_icon_state = "mhatch" + base_name = "Maintenance Hatch" + airlock_type = "/maintenance_hatch" + glass = -1 door_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly - name = "High Tech Security Assembly" - icon_state = "door_as_highsec1" - airlock_type = /obj/machinery/door/airlock/highsecurity - anchored = 1 - density = 1 - state = 1 - glass = 0 + base_icon_state = "highsec" + base_name = "High Security Airlock" + airlock_type = "/highsecurity" + glass = -1 + + multi_tile + icon = 'icons/obj/doors/door_assembly2x1.dmi' + dir = EAST + var/width = 1 + +/*Temporary until we get sprites. + glass_type = "/multi_tile/glass" + airlock_type = "/multi_tile/maint" + glass = 1*/ + base_icon_state = "g" //Remember to delete this line when reverting "glass" var to 1. + airlock_type = "/multi_tile/glass" + glass = -1 //To prevent bugs in deconstruction process. + + New() + if(dir in list(EAST, WEST)) + bound_width = width * world.icon_size + bound_height = world.icon_size + else + bound_width = world.icon_size + bound_height = width * world.icon_size + update_state() + + Move() + . = ..() + if(dir in list(EAST, WEST)) + bound_width = width * world.icon_size + bound_height = world.icon_size + else + bound_width = world.icon_size + bound_height = width * world.icon_size + + /obj/structure/door_assembly/attackby(obj/item/W as obj, mob/user as mob) if(istype(W, /obj/item/weapon/pen)) @@ -287,46 +142,47 @@ obj/structure/door_assembly created_name = t return - if(istype(W, /obj/item/weapon/weldingtool) && !anchored ) + if(istype(W, /obj/item/weapon/weldingtool) && ( (istext(glass)) || (glass == 1) || (!anchored) )) var/obj/item/weapon/weldingtool/WT = W - if(WT.remove_fuel(0,user)) - user.visible_message("[user] dissassembles the airlock assembly.", "You start to dissassemble the airlock assembly.") + if (WT.remove_fuel(0, user)) playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) - - if(do_after(user, 40)) - if(!src || !WT.isOn()) return - user << "\blue You dissasembled the airlock assembly!" - new /obj/item/stack/sheet/metal(get_turf(src), 4) - if (mineral) - if (mineral == "glass") - new /obj/item/stack/sheet/rglass(get_turf(src)) - else - var/M = text2path("/obj/item/stack/sheet/mineral/[mineral]") - new M(get_turf(src)) - new M(get_turf(src)) - del(src) + if(istext(glass)) + user.visible_message("[user] welds the [glass] plating off the airlock assembly.", "You start to weld the [glass] plating off the airlock assembly.") + if(do_after(user, 40)) + if(!src || !WT.isOn()) return + user << "\blue You welded the [glass] plating off!" + var/M = text2path("/obj/item/stack/sheet/mineral/[glass]") + new M(src.loc, 2) + glass = 0 + else if(glass == 1) + user.visible_message("[user] welds the glass panel out of the airlock assembly.", "You start to weld the glass panel out of the airlock assembly.") + if(do_after(user, 40)) + if(!src || !WT.isOn()) return + user << "\blue You welded the glass panel out!" + new /obj/item/stack/sheet/rglass(src.loc) + glass = 0 + else if(!anchored) + user.visible_message("[user] dissassembles the airlock assembly.", "You start to dissassemble the airlock assembly.") + if(do_after(user, 40)) + if(!src || !WT.isOn()) return + user << "\blue You dissasembled the airlock assembly!" + new /obj/item/stack/sheet/metal(src.loc, 4) + del (src) else - user << "\blue You need more welding fuel to dissassemble the airlock assembly." + user << "\blue You need more welding fuel." return - else if(istype(W, /obj/item/weapon/wrench) && !anchored ) + else if(istype(W, /obj/item/weapon/wrench) && state == 0) playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user.visible_message("[user] secures the airlock assembly to the floor.", "You start to secure the airlock assembly to the floor.") + if(anchored) + user.visible_message("[user] unsecures the airlock assembly from the floor.", "You start to unsecure the airlock assembly from the floor.") + else + user.visible_message("[user] secures the airlock assembly to the floor.", "You start to secure the airlock assembly to the floor.") if(do_after(user, 40)) if(!src) return - user << "\blue You secured the airlock assembly!" - src.name = "Secured Airlock Assembly" - src.anchored = 1 - - else if(istype(W, /obj/item/weapon/wrench) && anchored ) - playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user.visible_message("[user] unsecures the airlock assembly from the floor.", "You start to unsecure the airlock assembly from the floor.") - if(do_after(user, 40)) - if(!src) return - user << "\blue You unsecured the airlock assembly!" - src.name = "Airlock Assembly" - src.anchored = 0 + user << "\blue You [anchored? "un" : ""]secured the airlock assembly!" + anchored = !anchored else if(istype(W, /obj/item/weapon/cable_coil) && state == 0 && anchored ) var/obj/item/weapon/cable_coil/coil = W @@ -336,7 +192,6 @@ obj/structure/door_assembly coil.use(1) src.state = 1 user << "\blue You wire the Airlock!" - src.name = "Wired Airlock Assembly" else if(istype(W, /obj/item/weapon/wirecutters) && state == 1 ) playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) @@ -345,9 +200,8 @@ obj/structure/door_assembly if(do_after(user, 40)) if(!src) return user << "\blue You cut the airlock wires.!" - new/obj/item/weapon/cable_coil(get_turf(user), 1) + new/obj/item/weapon/cable_coil(src.loc, 1) src.state = 0 - src.name = "Secured Airlock Assembly" else if(istype(W, /obj/item/weapon/airlock_electronics) && state == 1 && W:icon_state != "door_electronics_smoked") playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) @@ -364,8 +218,6 @@ obj/structure/door_assembly else W.loc = src.loc - //del(W) - else if(istype(W, /obj/item/weapon/crowbar) && state == 2 ) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to install electronics into the airlock assembly.") @@ -382,32 +234,28 @@ obj/structure/door_assembly ae = electronics electronics = null ae.loc = src.loc - else if(istype(W, /obj/item/stack/sheet) && !mineral) - var/obj/item/stack/sheet/G = W - if(G) - if(G.amount>=1) - if(G.type == /obj/item/stack/sheet/rglass) + + else if(istype(W, /obj/item/stack/sheet) && !glass) + var/obj/item/stack/sheet/S = W + if (S) + if (S.amount>=1) + if(istype(S, /obj/item/stack/sheet/rglass)) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) - user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.") + user.visible_message("[user] adds [S.name] to the airlock assembly.", "You start to install [S.name] into the airlock assembly.") if(do_after(user, 40)) user << "\blue You installed reinforced glass windows into the airlock assembly!" - G.use(1) - src.mineral = "glass" - src.name = "Near finished Window Airlock Assembly" - src.airlock_type = /obj/machinery/door/airlock/glass - src.base_icon_state = "door_as_g" //this will be applied to the icon_state with the correct state number at the proc's end. - else if(istype(G, /obj/item/stack/sheet/mineral)) - var/M = G.sheettype - if(G.amount>=2) + S.use(1) + glass = 1 + else if(istype(S, /obj/item/stack/sheet/mineral) && S.sheettype) + var/M = S.sheettype + if(S.amount>=2) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) - user.visible_message("[user] adds [G.name] to the airlock assembly.", "You start to install [G.name] into the airlock assembly.") + user.visible_message("[user] adds [S.name] to the airlock assembly.", "You start to install [S.name] into the airlock assembly.") if(do_after(user, 40)) user << "\blue You installed [M] plating into the airlock assembly!" - G.use(2) - src.mineral = "[M]" - src.name = "Near finished [M] Airlock Assembly" - src.airlock_type = text2path ("/obj/machinery/door/airlock/[M]") - src.base_icon_state = "door_as_[M]" + S.use(2) + glass = "[M]" + else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 ) playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) user << "\blue Now finishing the airlock." @@ -415,20 +263,40 @@ obj/structure/door_assembly if(do_after(user, 40)) if(!src) return user << "\blue You finish the airlock!" - var/obj/machinery/door/airlock/door - if (mineral) - airlock_type = text2path("/obj/machinery/door/airlock/[mineral]") - door = new src.airlock_type( src.loc ) - //door.req_access = src.req_access + var/path + if(istext(glass)) + path = text2path("/obj/machinery/door/airlock/[glass]") + else if (glass == 1) + path = text2path("/obj/machinery/door/airlock[glass_type]") + else + path = text2path("/obj/machinery/door/airlock[airlock_type]") + var/obj/machinery/door/airlock/door = new path(src.loc) + door.assembly_type = type door.electronics = src.electronics - door.req_access = src.electronics.conf_access + if(src.electronics.one_access) + door.req_access = null + door.req_one_access = src.electronics.conf_access + else + door.req_access = src.electronics.conf_access if(created_name) door.name = created_name + else + door.name = "[istext(glass) ? "[glass] airlock" : base_name]" src.electronics.loc = door del(src) else ..() - icon_state = "[base_icon_state][state]" - //This updates the icon_state. They are named as "door_as1_eng" where the 1 in that example - //represents what state it's in. So the most generic algorithm for the correct updating of - //this is simply to change the number. \ No newline at end of file + update_state() + +/obj/structure/door_assembly/proc/update_state() + icon_state = "door_as_[glass == 1 ? "g" : ""][istext(glass) ? glass : base_icon_state][state]" + name = "" + switch (state) + if(0) + if (anchored) + name = "Secured " + if(1) + name = "Wired " + if(2) + name = "Near Finished " + name += "[glass == 1 ? "Window " : ""][istext(glass) ? "[glass] Airlock" : base_name] Assembly" \ No newline at end of file diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index cffd2347775..d4c55f475a8 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -13,6 +13,12 @@ icon_state = "bed" var/mob/living/buckled_mob +/obj/structure/stool/psychbed + name = "psych bed" + desc = "For prime comfort during psychiatric evaluations." + icon_state = "psychbed" + var/mob/living/buckled_mob + /obj/structure/stool/bed/alien name = "resting contraption" desc = "This looks similar to contraptions from earth. Could aliens be stealing our technology?" diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index 532819d0201..478f6989baa 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -107,17 +107,17 @@ obj/structure/windoor_assembly/Del() src.name = "Windoor Assembly" //Adding plasteel makes the assembly a secure windoor assembly. Step 2 (optional) complete. - else if(istype(W, /obj/item/stack/sheet/plasteel) && !secure) - var/obj/item/stack/sheet/plasteel/P = W - if(P.amount < 2) - user << "\red You need more plasteel to do this." + else if(istype(W, /obj/item/stack/rods) && !secure) + var/obj/item/stack/rods/R = W + if(R.amount < 4) + user << "\red You need more rods to do this." return - user << "\blue You start to reinforce the windoor with plasteel." + user << "\blue You start to reinforce the windoor with rods." if(do_after(user,40)) if(!src) return - P.use(2) + R.use(4) user << "\blue You reinforce the windoor." src.secure = "secure_" if(src.anchored) @@ -145,7 +145,7 @@ obj/structure/windoor_assembly/Del() if("02") //Removing wire from the assembly. Step 5 undone. - if(istype(W, /obj/item/weapon/wirecutters)) + if(istype(W, /obj/item/weapon/wirecutters) && !src.electronics) playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly.") @@ -156,12 +156,12 @@ obj/structure/windoor_assembly/Del() new/obj/item/weapon/cable_coil(get_turf(user), 1) src.state = "01" if(src.secure) - src.name = "Secure Wired Windoor Assembly" + src.name = "Secure Anchored Windoor Assembly" else - src.name = "Wired Windoor Assembly" + src.name = "Anchored Windoor Assembly" //Adding airlock electronics for access. Step 6 complete. - else if(istype(W, /obj/item/weapon/airlock_electronics)) + else if(istype(W, /obj/item/weapon/airlock_electronics) && W:icon_state != "door_electronics_smoked") playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.") @@ -177,22 +177,20 @@ obj/structure/windoor_assembly/Del() W.loc = src.loc //Screwdriver to remove airlock electronics. Step 6 undone. - else if(istype(W, /obj/item/weapon/screwdriver)) + else if(istype(W, /obj/item/weapon/screwdriver) && src.electronics) playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to uninstall electronics from the airlock assembly.") if(do_after(user, 40)) - if(!src) return + if(!src || !src.electronics) return user << "\blue You've removed the airlock electronics!" - src.name = "Wired Windoor Assembly" - var/obj/item/weapon/airlock_electronics/ae - if (!electronics) - ae = new/obj/item/weapon/airlock_electronics( src.loc ) + if(src.secure) + src.name = "Secure Wired Windoor Assembly" else - ae = electronics - electronics = null - ae.loc = src.loc - + src.name = "Wired Windoor Assembly" + var/obj/item/weapon/airlock_electronics/ae = electronics + electronics = null + ae.loc = src.loc //Crowbar to complete the assembly, Step 7 complete. else if(istype(W, /obj/item/weapon/crowbar)) @@ -221,7 +219,11 @@ obj/structure/windoor_assembly/Del() windoor.dir = src.dir windoor.density = 0 - windoor.req_access = src.electronics.conf_access + if(src.electronics.one_access) + windoor.req_access = null + windoor.req_one_access = src.electronics.conf_access + else + windoor.req_access = src.electronics.conf_access windoor.electronics = src.electronics src.electronics.loc = windoor else @@ -235,7 +237,11 @@ obj/structure/windoor_assembly/Del() windoor.dir = src.dir windoor.density = 0 - windoor.req_access = src.electronics.conf_access + if(src.electronics.one_access) + windoor.req_access = null + windoor.req_one_access = src.electronics.conf_access + else + windoor.req_access = src.electronics.conf_access windoor.electronics = src.electronics src.electronics.loc = windoor diff --git a/code/game/response_team.dm b/code/game/response_team.dm index df21a5a2a51..43e40cf0d7f 100644 --- a/code/game/response_team.dm +++ b/code/game/response_team.dm @@ -1,7 +1,7 @@ //STRIKE TEAMS var/list/response_team_members = list() -var/send_emergency_team = 0 +var/global/send_emergency_team = 0 client/verb/JoinResponseTeam() set category = "IC" @@ -19,7 +19,7 @@ client/verb/JoinResponseTeam() var/leader_selected = (response_team_members.len == 0) - for (var/obj/effect/landmark/L in world) if (L.name == "Commando") + for (var/obj/effect/landmark/L in landmarks_list) if (L.name == "Commando") var/new_name = input(usr, "Pick a name","Name") as null|text if(!new_name) return @@ -43,9 +43,10 @@ client/verb/JoinResponseTeam() proc/percentage_dead() var/total = 0 var/deadcount = 0 - for(var/mob/living/carbon/human/H in world) if(H.mind) // I *think* monkeys gone human don't have a mind - if(H.stat == 2) deadcount++ - total++ + for(var/mob/living/carbon/human/H in mob_list) + if(H.client) // Monkeys and mice don't have a client, amirite? + if(H.stat == 2) deadcount++ + total++ if(total == 0) return 0 else return round(100 * deadcount / total) @@ -54,7 +55,7 @@ proc/percentage_dead() proc/percentage_antagonists() var/total = 0 var/antagonists = 0 - for(var/mob/living/carbon/human/H in world) + for(var/mob/living/carbon/human/H in mob_list) if(is_special_character(H) >= 1) antagonists++ total++ @@ -81,7 +82,7 @@ proc/trigger_armed_response_team(var/force = 0) send_emergency_team = 1 - var/area/security/nuke_storage/nukeloc = locate()//To find the nuke in the vault +/* var/area/security/nuke_storage/nukeloc = locate()//To find the nuke in the vault var/obj/machinery/nuclearbomb/nuke = locate() in nukeloc if(!nuke) nuke = locate() in world @@ -93,6 +94,7 @@ proc/trigger_armed_response_team(var/force = 0) P.loc = A.loc del(A) continue +*/ /client/proc/create_response_team(obj/spawn_location, leader_selected = 0, commando_name) @@ -223,6 +225,16 @@ proc/trigger_armed_response_team(var/force = 0) camera.network = "CREED" camera.c_tag = real_name + //Replaced with new ERT uniform + equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(src), slot_w_uniform) + equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(src), slot_shoes) + equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(src), slot_gloves) + equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(src), slot_ears) + equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(src), slot_glasses) + equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(src), slot_back) +/* + + //Old ERT Uniform //Basic Uniform equip_to_slot_or_del(new /obj/item/clothing/under/syndicate/tacticool(src), slot_w_uniform) equip_to_slot_or_del(new /obj/item/device/flashlight(src), slot_l_store) @@ -245,7 +257,7 @@ proc/trigger_armed_response_team(var/force = 0) equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(src), slot_back) equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(src), slot_in_backpack) equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/regular(src), slot_in_backpack) - +*/ var/obj/item/weapon/card/id/W = new(src) W.name = "[real_name]'s ID Card (Emergency Response Team)" W.icon_state = "centcom" @@ -264,8 +276,8 @@ proc/trigger_armed_response_team(var/force = 0) return 1 -/*//debug verb -client/verb/ResponseTeam() +//debug verb (That is horribly coded, LEAVE THIS OFF UNLESS PRIVATELY TESTING. Seriously. +/*client/verb/ResponseTeam() set category = "Admin" if(!send_emergency_team) send_emergency_team = 1*/ \ No newline at end of file diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index ec044dbed16..e5ced14d63b 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -5,7 +5,7 @@ temperature = TCMB thermal_conductivity = OPEN_HEAT_TRANSFER_COEFFICIENT - heat_capacity = 700000 +// heat_capacity = 700000 No. /turf/space/New() if(!istype(src, /turf/space/transit)) diff --git a/code/game/verbs/ooc.dm b/code/game/verbs/ooc.dm index 275d4b7dbf3..7a76a2c9685 100644 --- a/code/game/verbs/ooc.dm +++ b/code/game/verbs/ooc.dm @@ -84,3 +84,65 @@ var/global/normal_ooc_colour = "#002eb8" set desc = "Set to yellow for eye burning goodness." set category = "Fun" normal_ooc_colour = newColor + + +/client/verb/looc(msg as text) + set name = "LOOC" //Gave this shit a shorter name so you only have to time out "ooc" rather than "ooc message" to use it --NeoFite + set desc = "Local OOC, seen only by those in view." + set category = "OOC" + + if(say_disabled) //This is here to try to identify lag problems + usr << "\red Speech is currently admin-disabled." + return + + if(!mob) return + if(IsGuestKey(key)) + src << "Guests may not use OOC." + return + + msg = copytext(sanitize(msg), 1, MAX_MESSAGE_LEN) + if(!msg) return + + if(!(prefs.toggles & CHAT_OOC)) + src << "\red You have OOC muted." + return + + if(!holder) + if(!ooc_allowed) + src << "\red OOC is globally muted" + return + if(!dooc_allowed && (mob.stat == DEAD)) + usr << "\red OOC for dead mobs has been turned off." + return + if(prefs.muted & MUTE_OOC) + src << "\red You cannot use OOC (muted)." + return + if(handle_spam_prevention(msg,MUTE_OOC)) + return + if(findtext(msg, "byond://")) + src << "Advertising other servers is not allowed." + log_admin("[key_name(src)] has attempted to advertise in OOC: [msg]") + message_admins("[key_name_admin(src)] has attempted to advertise in OOC: [msg]") + return + + log_ooc("(LOCAL) [mob.name]/[key] : [msg]") + + for(var/mob/M in hearers()) + if(!M.client) + continue + var/client/C = M.client + if (C in admins) + continue //they are handled after that + + if(C.prefs.toggles & CHAT_OOC) + var/display_name = src.key + if(holder) + if(holder.fakekey) + if(C.holder) + display_name = "[holder.fakekey]/([src.key])" + else + display_name = holder.fakekey + C << "LOOC: [display_name]: [msg]" + for(var/client/C in admins) + if(C.prefs.toggles & CHAT_OOC) + C << "LOOC: [src.key]: [msg]" \ No newline at end of file diff --git a/code/global.dm b/code/global.dm index cd6e374a94f..348cc8702fa 100644 --- a/code/global.dm +++ b/code/global.dm @@ -133,6 +133,7 @@ var/list/tdomeadmin = list() var/list/prisonsecuritywarp = list() //prison security goes to these var/list/prisonwarped = list() //list of players already warped var/list/blobstart = list() +var/list/ninjastart = list() // list/traitors = list() //traitor list var/list/cardinal = list( NORTH, SOUTH, EAST, WEST ) var/list/alldirs = list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST) diff --git a/code/modules/DetectiveWork/scanner.dm b/code/modules/DetectiveWork/scanner.dm index 7bafd4a31fc..448425e454d 100644 --- a/code/modules/DetectiveWork/scanner.dm +++ b/code/modules/DetectiveWork/scanner.dm @@ -34,9 +34,11 @@ attack(mob/living/carbon/human/M as mob, mob/user as mob) if (!ishuman(M)) user << "\red [M] is not human and cannot have the fingerprints." + flick("forensic0",src) return 0 if (( !( istype(M.dna, /datum/dna) ) || M.gloves) ) user << "\blue No fingerprints found on [M]" + flick("forensic0",src) return 0 else if (src.amount < 1) @@ -71,6 +73,7 @@ return if(istype(A,/obj/item/weapon/f_card)) user << "The scanner displays on the screen: \"ERROR 43: Object on Excluded Object List.\"" + flick("forensic0",src) return add_fingerprint(user) @@ -81,6 +84,7 @@ if(!isnull(A.blood_DNA)) for(var/blood in A.blood_DNA) user << "\blue Blood type: [A.blood_DNA[blood]]\nDNA: [blood]" + flick("forensic2",src) return //General @@ -88,10 +92,12 @@ user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\ "You hear a faint hum of electrical equipment.") + flick("forensic0",src) return 0 if(add_data(A)) user << "\blue Object already in internal memory. Consolidating data..." + flick("forensic2",src) return @@ -116,6 +122,7 @@ //FIBERS if(A.suit_fibers) user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." + flick("forensic2",src) //Blood if (A.blood_DNA) @@ -127,11 +134,13 @@ user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ "You finish scanning \the [A].",\ "You hear a faint hum of electrical equipment.") + flick("forensic2",src) return 0 else user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]\n[user.gender == MALE ? "He" : "She"] seems to perk up slightly at the readout." ,\ "The results of the scan pique your interest.",\ "You hear a faint hum of electrical equipment, and someone making a thoughtful noise.") + flick("forensic2",src) return 0 return diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index c36a0ab99d2..8208af1bb95 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -67,7 +67,11 @@ var/list/admin_verbs_admin = list( /client/proc/toggledebuglogs, /datum/admins/proc/show_skills, /client/proc/check_customitem_activity, - ///client/proc/response_team + /client/proc/man_up, + /client/proc/global_man_up + /* Currently unticked. + /client/proc/response_team + */ ) var/list/admin_verbs_ban = list( /client/proc/unban_panel, @@ -647,7 +651,7 @@ var/list/admin_verbs_mod = list( if(!istype(M, /mob/living/carbon/human)) usr << "\red You can only do this to humans!" return - switch(alert("Are you sure you wish to edit this mob's appearance? Skrell, Unathi, Vox and Tajaran can result in unintended consequences.",,"Yes","No")) + switch(alert("Are you sure you wish to edit this mob's appearance? Skrell, Unathi, Vox, Kida, and Tajara can result in unintended consequences.",,"Yes","No")) if("No") return var/new_facial = input("Please select facial hair color.", "Character Generation") as color @@ -736,4 +740,28 @@ var/list/admin_verbs_mod = list( if (prefs.toggles & CHAT_DEBUGLOGS) usr << "You now will get debug log messages" else - usr << "You now won't get debug log messages" \ No newline at end of file + usr << "You now won't get debug log messages" + + +/client/proc/man_up(mob/T as mob in mob_list) + set category = "Fun" + set name = "Man Up" + set desc = "Tells mob to man up and deal with it." + + T << "Man up and deal with it." + T << "Move on." + + log_admin("[key_name(usr)] told [key_name(T)] to man up and deal with it.") + message_admins("\blue [key_name_admin(usr)] told [key_name(T)] to man up and deal with it.", 1) + +/client/proc/global_man_up() + set category = "Fun" + set name = "Man Up Global" + set desc = "Tells everyone to man up and deal with it." + + for (var/mob/T as mob in mob_list) + T << "
    Man up.
    Deal with it.

    Move on.

    " + T << 'sound/voice/ManUp1.ogg' + + log_admin("[key_name(usr)] told everyone to man up and deal with it.") + message_admins("\blue [key_name_admin(usr)] told everyone to man up and deal with it.", 1) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 097540fa588..e932ab856eb 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -469,6 +469,20 @@ dat += "Wizard not found!" dat += "" + /* + if(ticker.mode.ninjas.len > 0) + dat += "
    " + for(var/datum/mind/ninja in ticker.mode.ninjas) + var/mob/M = ninja.current + if(M) + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "
    Ninjas
    [M.real_name][M.client ? "" : " (logged out)"][M.stat == 2 ? " (DEAD)" : ""]PMShow Objective
    Ninja not found!
    " + */ + if(ticker.mode.cult.len) dat += "
    " for(var/datum/mind/N in ticker.mode.cult) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 2164b02d165..1bd4b34547a 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -11,31 +11,31 @@ if("1") log_admin("[key_name(usr)] has spawned a traitor.") if(!src.makeTraitors()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("2") log_admin("[key_name(usr)] has spawned a changeling.") if(!src.makeChanglings()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("3") log_admin("[key_name(usr)] has spawned revolutionaries.") if(!src.makeRevs()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("4") log_admin("[key_name(usr)] has spawned a cultists.") if(!src.makeCult()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("5") log_admin("[key_name(usr)] has spawned a malf AI.") if(!src.makeMalfAImode()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("6") log_admin("[key_name(usr)] has spawned a wizard.") if(!src.makeWizard()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("7") log_admin("[key_name(usr)] has spawned a nuke team.") if(!src.makeNukeTeam()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("8") log_admin("[key_name(usr)] has spawned a ninja.") src.makeSpaceNinja() @@ -44,8 +44,10 @@ src.makeAliens() if("10") log_admin("[key_name(usr)] has spawned a death squad.") - if(!src.makeDeathsquad()) - usr << "\red Unfortunatly there were no candidates available" + if("11") + log_admin("[key_name(usr)] has spawned vox raiders.") + if(!src.makeVoxRaiders()) + usr << "\red Unfortunately there weren't enough candidates available." else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"]) var/adminckey = href_list["dbsearchadmin"] var/playerckey = href_list["dbsearchckey"] diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 9e9c8bf5c6a..f08f5c3a30a 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -551,7 +551,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that "blue wizard", "red wizard", "marisa wizard", - "emergency rescue team", + "emergency response team", "nanotrasen representative", "nanotrasen officer", "nanotrasen captain" @@ -817,7 +817,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that W.registered_name = M.real_name M.equip_if_possible(W, slot_wear_id) - if("emergency rescue team") + if("emergency response team") M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/swat(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(M), slot_gloves) @@ -831,7 +831,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that W.icon_state = "centcom" W.access = get_all_accesses() W.access += get_all_centcom_access() - W.assignment = "Emergency Rescue Team" + W.assignment = "Emergency Response Team" W.registered_name = M.real_name M.equip_to_slot_or_del(W, slot_wear_id) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 8ef53eb0232..e37ac58fd96 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -17,6 +17,7 @@ client/proc/one_click_antag() Make Cult
    Make Malf AI
    Make Wizard (Requires Ghosts)
    + Make Vox Raiders (Requires Ghosts)
    "} /* These dont work just yet Ninja, aliens and deathsquad I have not looked into yet @@ -429,4 +430,94 @@ client/proc/one_click_antag() ticker.mode.traitors += new_syndicate_commando.mind new_syndicate_commando.equip_syndicate_commando(syndicate_leader_selected) - return new_syndicate_commando \ No newline at end of file + return new_syndicate_commando + +/datum/admins/proc/makeVoxRaiders() + + var/list/mob/dead/observer/candidates = list() + var/mob/dead/observer/theghost = null + var/time_passed = world.time + var/input = "Disregard shinies, acquire hardware." + + var/leader_chosen = 0 //when the leader is chosen. The last person spawned. + + //Generates a list of candidates from active ghosts. The admin picks which players to respawn as the vox. + for(var/mob/dead/observer/G in player_list) + spawn(0) + if(is_alien_whitelisted(src, "Vox") || !config.usealienwhitelist) + switch(alert(G,"Do you wish to be considered for a vox raiding party arriving on the station?","Please answer in 30 seconds!","Yes","No")) + if("Yes") + if((world.time-time_passed)>300)//If more than 30 game seconds passed. + return + candidates += G + if("No") + return + else + return + + sleep(300) //Debug. + + for(var/mob/dead/observer/G in candidates) + if(!G.key) + candidates.Remove(G) + + if(candidates.len) + var/max_raiders = 6 + var/raiders = max_raiders + //Spawns vox raiders and equips them. + for (var/obj/effect/landmark/L in world) + if(L.name == "Response Team") + if(raiders<=0) + break + + var/mob/living/carbon/human/new_vox = create_vox_raider(L, leader_chosen) + + while((!theghost || !theghost.client) && candidates.len) + theghost = pick(candidates) + candidates.Remove(theghost) + + if(!theghost) + del(new_vox) + break + + new_vox.key = theghost.key + new_vox << "\blue You are a Vox Primalis, fresh out of the Shoal. Your ship has arrived at the Tau Ceti system hosting the NSV Exodus... or was it the Luna? NSS? Utopia? Nobody is really sure, but everyong is raring to start pillaging! Your current goal is: \red [input]" + new_vox << "\red Don't forget to turn on your nitrogen internals!" + + raiders-- + if(raiders > max_raiders) + return 0 + else + return 0 + return 1 + +/datum/admins/proc/create_vox_raider(obj/spawn_location, leader_chosen = 0) + + var/mob/living/carbon/human/new_vox = new(spawn_location.loc) + + new_vox.gender = pick(MALE, FEMALE) + new_vox.h_style = "Short Vox Quills" + new_vox.regenerate_icons() + + var/sounds = rand(2,10) + var/i = 0 + var/newname = "" + + while(i<=sounds) + i++ + newname += pick(list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah")) + + new_vox.real_name = capitalize(newname) + new_vox.name = new_vox.real_name + new_vox.age = rand(12,20) + + new_vox.dna.ready_dna(new_vox) // Creates DNA. + new_vox.dna.mutantrace = "vox" // Actually makes the vox! How about that. + new_vox.mind_initialize() + new_vox.mind.assigned_role = "MODE" + new_vox.mind.special_role = "Vox Raider" + + ticker.mode.traitors += new_vox.mind + new_vox.equip_vox_raider() + + return new_vox \ No newline at end of file diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index cbdde7cca87..f5ead1fa839 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -357,17 +357,22 @@ Traitors and the like can also be revived with the previous role mostly intact. if(synd_spawn) new_character.loc = get_turf(synd_spawn) call(/datum/game_mode/proc/equip_syndicate)(new_character) - if("Space Ninja") - var/ninja_spawn[] = list() - for(var/obj/effect/landmark/L in landmarks_list) - if(L.name=="carpspawn") - ninja_spawn += L + if("Ninja") new_character.equip_space_ninja() new_character.internal = new_character.s_store new_character.internals.icon_state = "internal1" - if(ninja_spawn.len) - var/obj/effect/landmark/ninja_spawn_here = pick(ninja_spawn) - new_character.loc = ninja_spawn_here.loc + if(ninjastart.len == 0) + new_character << "\red A proper starting location for you could not be found, please report this bug!" + new_character << "\red Attempting to place at a carpspawn." + for(var/obj/effect/landmark/L in landmarks_list) + if(L.name == "carpspawn") + ninjastart.Add(L) + if(ninjastart.len == 0 && latejoin.len > 0) + new_character << "\red Still no spawneable locations could be found. Defaulting to latejoin." + new_character.loc = pick(latejoin) + else if (ninjastart.len == 0) + new_character << "\red Still no spawneable locations could be found. Aborting." + if("Death Commando")//Leaves them at late-join spawn. new_character.equip_death_commando() new_character.internal = new_character.s_store diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm index 32037ccabba..ca5d8e5cb80 100644 --- a/code/modules/admin/verbs/striketeam.dm +++ b/code/modules/admin/verbs/striketeam.dm @@ -2,6 +2,7 @@ var/const/commandos_possible = 6 //if more Commandos are needed in the future var/global/sent_strike_team = 0 + /client/proc/strike_team() if(!ticker) usr << "The game hasn't started yet!" diff --git a/code/modules/admin/verbs/vox_raiders.dm b/code/modules/admin/verbs/vox_raiders.dm new file mode 100644 index 00000000000..b63362fbcd6 --- /dev/null +++ b/code/modules/admin/verbs/vox_raiders.dm @@ -0,0 +1,73 @@ +var/global/vox_tick = 1 + +/mob/living/carbon/human/proc/equip_vox_raider() + + var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate(src) + R.set_frequency(SYND_FREQ) //Same frequency as the syndicate team in Nuke mode. + equip_to_slot_or_del(R, slot_ears) + + equip_to_slot_or_del(new /obj/item/clothing/under/vox/vox_robes(src), slot_w_uniform) + equip_to_slot_or_del(new /obj/item/clothing/shoes/magboots/vox(src), slot_shoes) // REPLACE THESE WITH CODED VOX ALTERNATIVES. + equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow/vox(src), slot_gloves) // AS ABOVE. + + switch(vox_tick) + if(1) // Vox raider! + equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/carapace(src), slot_wear_suit) + equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/carapace(src), slot_head) + equip_to_slot_or_del(new /obj/item/weapon/melee/telebaton(src), slot_belt) + equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE. + equip_to_slot_or_del(new /obj/item/device/chameleon(src), slot_l_store) + + equip_to_slot_or_del(new /obj/item/weapon/gun/dartgun/vox/raider, slot_r_hand) + + if(2) // Vox engineer! + equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/pressure(src), slot_wear_suit) + equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/pressure(src), slot_head) + equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(src), slot_belt) + equip_to_slot_or_del(new /obj/item/clothing/glasses/meson(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE. + equip_to_slot_or_del(new /obj/item/weapon/storage/box/emps(src), slot_l_store) + + var/obj/item/weapon/storage/pneumatic/W = new(src) + W.tank = new /obj/item/weapon/tank/nitrogen(W) + equip_to_slot_or_del(W, slot_r_hand) + + if(3) // Vox saboteur! + equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/carapace(src), slot_wear_suit) + equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/carapace(src), slot_head) + equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(src), slot_belt) + equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE. + equip_to_slot_or_del(new /obj/item/weapon/card/emag(src), slot_l_store) + + var/obj/item/weapon/crossbow/W = new(src) + W.cell = new /obj/item/weapon/cell/crap(W) + W.cell.charge = 500 + equip_to_slot_or_del(W, slot_r_hand) + + var/obj/item/stack/rods/A = new(src) + A.amount = 20 + equip_to_slot_or_del(A, slot_l_hand) + + if(4) // Vox medic! + equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/pressure(src), slot_wear_suit) + equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/pressure(src), slot_head) + equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(src), slot_belt) // Who needs actual surgical tools? + equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE. + equip_to_slot_or_del(new /obj/item/weapon/circular_saw(src), slot_l_store) + equip_to_slot_or_del(new /obj/item/weapon/gun/dartgun/vox/medical, slot_r_hand) + + equip_to_slot_or_del(new /obj/item/clothing/mask/breath/vox(src), slot_wear_mask) + equip_to_slot_or_del(new /obj/item/weapon/tank/nitrogen(src), slot_back) + equip_to_slot_or_del(new /obj/item/device/flashlight(src), slot_r_store) + + var/obj/item/weapon/card/id/syndicate/W = new(src) + W.name = "[real_name]'s Legitimate Human ID Card" + W.icon_state = "id" + W.access = list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage, access_syndicate) + W.assignment = "Trader" + W.registered_name = real_name + equip_to_slot_or_del(W, slot_wear_id) + + vox_tick++ + if (vox_tick > 4) vox_tick = 1 + + return 1 \ No newline at end of file diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm index d93dbd6f595..c85ee0159c6 100644 --- a/code/modules/client/client defines.dm +++ b/code/modules/client/client defines.dm @@ -39,3 +39,5 @@ var/player_age = "Requires database" //So admins know why it isn't working - Used to determine how old the account is - in days. var/related_accounts_ip = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this ip var/related_accounts_cid = "Requires database" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id + + preload_rsc = 0 // This is 0 so we can set it to an URL once the player logs in and have them download the resources from a different server. diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 16b0fbea6cb..b74355c2713 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -103,6 +103,14 @@ del(src) return + // Change the way they should download resources. + if(config.resource_urls) + src.preload_rsc = pick(config.resource_urls) + else src.preload_rsc = 1 // If config.resource_urls is not set, preload like normal. + + src << "\red If the title screen is black, resources are still downloading. Please be patient until the title screen appears." + + clients += src directory[ckey] = src @@ -278,4 +286,4 @@ 'icons/xenoarch_icons/chart2.jpg', 'icons/xenoarch_icons/chart3.jpg', 'icons/xenoarch_icons/chart4.jpg' - ) \ No newline at end of file + ) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 0d2832657ea..907cd79f99c 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -14,7 +14,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set "pAI candidate" = 1, // -- TLE // 7 "cultist" = IS_MODE_COMPILED("cult"), // 8 "infested monkey" = IS_MODE_COMPILED("monkey"), // 9 - "space ninja" = "true", // 10 + "ninja" = "true", // 10 ) var/const/MAX_SAVE_SLOTS = 10 @@ -64,6 +64,7 @@ datum/preferences var/g_eyes = 0 //Eye color var/b_eyes = 0 //Eye color var/species = "Human" + var/language = "None" //Secondary language //Mob preview var/icon/preview_icon_front = null @@ -251,6 +252,7 @@ datum/preferences dat += "(®)" dat += "
    " dat += "Species: [species]
    " + dat += "Secondary Language:
    [language]
    " dat += "Blood Type: [b_type]
    " dat += "Skin Tone: [-s_tone + 35]/220
    " //dat += "Skin pattern: Adjust
    " @@ -364,7 +366,7 @@ datum/preferences user << browse(dat, "window=preferences;size=560x580") - proc/SetChoices(mob/user, limit = 17, list/splitJobs = list("Chief Engineer"), width = 550, height = 550) + proc/SetChoices(mob/user, limit = 16, list/splitJobs = list("Chief Medical Officer"), width = 550, height = 550) if(!job_master) return @@ -436,7 +438,7 @@ datum/preferences else HTML += " \[NEVER]" if(job.alt_titles) - HTML += "
    \[[GetPlayerAltTitle(job)]\]" + HTML += "" HTML += "" HTML += "
    Cultists
     \[[GetPlayerAltTitle(job)]\]
    " @@ -449,7 +451,7 @@ datum/preferences if(BE_ASSISTANT) HTML += "

    Be assistant if preference unavailable

    " if(RETURN_TO_LOBBY) - HTML += "

    Return to lobby if prefernce unavailable

    " + HTML += "

    Return to lobby if preference unavailable

    " HTML += "
    \[Reset\]
    " HTML += "" @@ -792,18 +794,18 @@ datum/preferences if(is_alien_whitelisted(user, "Skrell")) //Check for Skrell and admins new_species += "Skrell" whitelisted = 1 - if(is_alien_whitelisted(user, "Vox")) //Check for Skrell and admins - new_species += "Vox" + if(is_alien_whitelisted(user, "Kidan")) // Check for Kidan and admins + new_species += "Kidan" whitelisted = 1 - if(!whitelisted) alert(user, "You cannot change your species as you need to be whitelisted. If you wish to be whitelisted contact an admin in-game, on the forums, or on IRC.") + else //Not using the whitelist? Aliens for everyone! new_species += "Tajaran" new_species += "Unathi" new_species += "Skrell" - new_species += "Vox" + new_species += "Kidan" species = input("Please select a species", "Character Generation", null) in new_species if(prev_species != species) @@ -851,6 +853,32 @@ datum/preferences s_tone = 0 + if("language") + var/list/new_language = list("None") + var/language_whitelisted = 0 + if(config.usealienwhitelist) + if(is_alien_whitelisted(user, "Language_Soghun")) + new_language += "Unathi" + language_whitelisted = 1 + if(is_alien_whitelisted(user, "Language_Tajaran")) + new_language += "Tajaran" + language_whitelisted = 1 + if(is_alien_whitelisted(user, "Language_Skrell")) + new_language += "Skrell" + language_whitelisted = 1 + if(is_alien_whitelisted(user, "Language_Kidan")) + new_language += "Kidan" + language_whitelisted = 1 + + if(!language_whitelisted) + alert(user, "You cannot select a secondary language as you need to be whitelisted. If you wish to enable a language, post in the Alien Whitelist forums.") + + else + new_language += "Unathi" + new_language += "Tajaran" + new_language += "Skrell" + new_language += "Kidan" + language = input("Please select a secondary language", "Character Generation", null) in new_language if("metadata") var/new_metadata = input(user, "Enter any information you'd like others to see, such as Roleplay-preferences:", "Game Preference" , metadata) as message|null diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index d151999e654..43b779c28e5 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -1,5 +1,5 @@ #define SAVEFILE_VERSION_MIN 8 -#define SAVEFILE_VERSION_MAX 9 +#define SAVEFILE_VERSION_MAX 10 //handles converting savefiles to new formats //MAKE SURE YOU KEEP THIS UP TO DATE! @@ -103,6 +103,7 @@ S["gender"] >> gender S["age"] >> age S["species"] >> species + S["language"] >> language //colors to be consolidated into hex strings (requires some work with dna code) S["hair_red"] >> r_hair @@ -152,6 +153,7 @@ metadata = sanitize_text(metadata, initial(metadata)) real_name = reject_bad_name(real_name) if(isnull(species)) species = "Human" + if(isnull(language)) language = "None" if(isnull(nanotrasen_relation)) nanotrasen_relation = initial(nanotrasen_relation) if(!real_name) real_name = random_name() be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name)) @@ -206,6 +208,7 @@ S["gender"] << gender S["age"] << age S["species"] << species + S["language"] << language S["hair_red"] << r_hair S["hair_green"] << g_hair S["hair_blue"] << b_hair diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index f476e60c255..2d13a0ce92f 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -167,9 +167,13 @@ BLIND // can't see anything hastie = I I.loc = src user << "You attach [I] to [src]." + if (istype(hastie,/obj/item/clothing/tie/holster)) verbs += /obj/item/clothing/under/proc/holster + if (istype(hastie,/obj/item/clothing/tie/storage)) + verbs += /obj/item/clothing/under/proc/storage + if(istype(loc, /mob/living/carbon/human)) var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() @@ -230,9 +234,16 @@ BLIND // can't see anything if(hastie) usr.put_in_hands(hastie) hastie = null + if (istype(hastie,/obj/item/clothing/tie/holster)) verbs -= /obj/item/clothing/under/proc/holster + if (istype(hastie,/obj/item/clothing/tie/storage)) + verbs -= /obj/item/clothing/under/proc/storage + var/obj/item/clothing/tie/storage/W = hastie + if (W.hold) + W.hold.loc = hastie + if(istype(loc, /mob/living/carbon/human)) var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() @@ -277,3 +288,23 @@ BLIND // can't see anything "\blue You draw \the [H.holstered], pointing it at the ground.") usr.put_in_hands(H.holstered) H.holstered = null + +/obj/item/clothing/under/proc/storage() + set name = "Look in storage" + set category = "Object" + set src in usr + if(!istype(usr, /mob/living)) return + if(usr.stat) return + + if (!hastie || !istype(hastie,/obj/item/clothing/tie/storage)) + usr << "\red You need something to store items in for that!" + return + var/obj/item/clothing/tie/storage/W = hastie + + if (!istype(W.hold)) + return + + W.hold.loc = usr + W.hold.attack_hand(usr) + + diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index 7a74d855162..be5112c41eb 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -56,6 +56,8 @@ allowed = list(/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs,/obj/item/weapon/tank) slowdown = 2 armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) + heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS + max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE /obj/item/clothing/head/helmet/space/vox/carapace name = "alien visor" @@ -63,6 +65,7 @@ item_state = "vox-carapace" desc = "A glowing visor, perhaps stolen from a depressed Cylon." armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30) + flags = HEADCOVERSEYES|STOPSPRESSUREDMAGE /obj/item/clothing/suit/space/vox/carapace name = "alien carapace armour" @@ -101,4 +104,51 @@ desc = "Weird and flowing!" icon_state = "vox-casual-2" color = "vox-casual-2" - item_state = "vox-casual-2" \ No newline at end of file + item_state = "vox-casual-2" + +/obj/item/clothing/gloves/yellow/vox + desc = "These bizarre gauntlets seem to be fitted for... bird claws?" + name = "insulated gauntlets" + icon_state = "gloves-vox" + item_state = "gloves-vox" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + color="gloves-vox" + +/obj/item/clothing/gloves/yellow/vox/mob_can_equip(M as mob, slot) + var/mob/living/carbon/human/U = M + if(U.dna.mutantrace != "vox") + U << "This clearly isn't designed for your species!" + return 0 + return ..() + +/obj/item/clothing/shoes/magboots/vox + + desc = "A pair of heavy, jagged armoured foot pieces, seemingly suitable for a velociraptor." + name = "vox boots" + item_state = "boots-vox" + icon_state = "boots-vox" + + toggle() + name = "Toggle Floor Grip" + + if(src.magpulse) + src.flags &= ~NOSLIP + src.magpulse = 0 + usr << "You relax your deathgrip on the flooring." + else + src.flags |= NOSLIP + src.magpulse = 1 + usr << "You dig your claws deeply into the flooring, bracing yourself." + + + examine() + set src in view() + ..() + +/obj/item/clothing/shoes/magboots/vox/mob_can_equip(M as mob, slot) + var/mob/living/carbon/human/U = M + if(U.dna.mutantrace != "vox") + U << "This clearly isn't designed for your species!" + return 0 + return ..() \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 196915d4688..a5bd53d960c 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -69,6 +69,14 @@ color = "hop" flags = FPRINT | TABLEPASS +/obj/item/clothing/under/rank/head_of_personnel_whimsy + desc = "A blue jacket and red tie, with matching red cuffs! Snazzy. Wearing this makes you feel more important than your job title does." + name = "head of personnel's suit" + icon_state = "hopwhimsy" + item_state = "hopwhimsy" + color = "hopwhimsy" + flags = FPRINT | TABLEPASS + /obj/item/clothing/under/rank/hydroponics desc = "It's a jumpsuit designed to protect against minor plant-related hazards." diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm index 703b492163e..4e22b9a0bda 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -174,3 +174,132 @@ desc = "A handgun holster. Made of expensive leather." icon_state = "holster" color = "holster_low" + +/obj/item/clothing/tie/storage + name = "load beearing equipment" + desc = "Used to hold things when you don't have enough hands for that." + icon_state = "webbing" + color = "webbing" + var/slots = 3 + var/obj/item/weapon/storage/pockets/hold + +/obj/item/clothing/tie/storage/New() + hold = new /obj/item/weapon/storage/pockets(src) + hold.master_item = src + hold.storage_slots = slots + +/obj/item/clothing/tie/storage/attack_self(mob/user as mob) + user << "You empty [src]." + var/turf/T = get_turf(src) + hold.hide_from(usr) + for(var/obj/item/I in hold.contents) + hold.remove_from_storage(I, T) + src.add_fingerprint(user) + +/obj/item/clothing/tie/storage/attackby(obj/item/weapon/W as obj, mob/user as mob) + hold.attackby(W,user) + src.add_fingerprint(user) + +/obj/item/weapon/storage/pockets + name = "webbing pockets" + var/master_item //item it belongs to + +/obj/item/weapon/storage/pockets/close(mob/user as mob) + ..() + loc = master_item + +/obj/item/clothing/tie/storage/webbing + name = "webbing" + desc = "Strudy mess of synthcotton belts and buckles, ready to share your burden." + icon_state = "webbing" + color = "webbing" + +/obj/item/clothing/tie/storage/black_vest + name = "black webbing vest" + desc = "Robust black synthcotton vest with lots of pockets to hold whatever you need, but cannot hold in hands." + icon_state = "vest_black" + color = "vest_black" + slots = 5 + +/obj/item/clothing/tie/storage/brown_vest + name = "black webbing vest" + desc = "Worn brownish synthcotton vest with lots of pockets to unload your hands." + icon_state = "vest_brown" + color = "vest_brown" + slots = 5 +/* + Holobadges are worn on the belt or neck, and can be used to show that the holder is an authorized + Security agent - the user details can be imprinted on the badge with a Security-access ID card, + or they can be emagged to accept any ID for use in disguises. +*/ + +/obj/item/clothing/tie/holobadge + + name = "holobadge" + desc = "This glowing blue badge marks the holder as THE LAW." + icon_state = "holobadge" + color = "holobadge" + slot_flags = SLOT_BELT + + var/emagged = 0 //Emagging removes Sec check. + var/stored_name = null + +/obj/item/clothing/tie/holobadge/cord + icon_state = "holobadge-cord" + color = "holobadge-cord" + slot_flags = SLOT_MASK + +/obj/item/clothing/tie/holobadge/attack_self(mob/user as mob) + if(!stored_name) + user << "Waving around a badge before swiping an ID would be pretty pointless." + return + if(isliving(user)) + user.visible_message("\red [user] displays their NanoTrasen Internal Security Legal Authorization Badge.\nIt reads: [stored_name], NT Security.","\red You display your NanoTrasen Internal Security Legal Authorization Badge.\nIt reads: [stored_name], NT Security.") + +/obj/item/clothing/tie/holobadge/attackby(var/obj/item/O as obj, var/mob/user as mob) + + if (istype(O, /obj/item/weapon/card/emag)) + if (emagged) + user << "\red [src] is already cracked." + return + else + emagged = 1 + user << "\red You swipe [O] and crack the holobadge security checks." + return + + else if(istype(O, /obj/item/weapon/card/id) || istype(O, /obj/item/device/pda)) + + var/obj/item/weapon/card/id/id_card = null + + if(istype(O, /obj/item/weapon/card/id)) + id_card = O + else + var/obj/item/device/pda/pda = O + id_card = pda.id + + if(access_security in id_card.access || emagged) + user << "You imprint your ID details onto the badge." + stored_name = id_card.registered_name + name = "holobadge ([stored_name])" + desc = "This glowing blue badge marks [stored_name] as THE LAW." + else + user << "[src] rejects your insufficient access rights." + return + ..() + +/obj/item/clothing/tie/holobadge/attack(mob/living/carbon/human/M, mob/living/user) + if(isliving(user)) + user.visible_message("\red [user] invades [M]'s personal space, thrusting [src] into their face insistently.","\red You invade [M]'s personal space, thrusting [src] into their face insistently. You are the law.") + +/obj/item/weapon/storage/box/holobadge + name = "holobadge box" + desc = "A box claiming to contain holobadges." + New() + new /obj/item/clothing/tie/holobadge(src) + new /obj/item/clothing/tie/holobadge(src) + new /obj/item/clothing/tie/holobadge(src) + new /obj/item/clothing/tie/holobadge(src) + new /obj/item/clothing/tie/holobadge/cord(src) + new /obj/item/clothing/tie/holobadge/cord(src) + ..() + return \ No newline at end of file diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 33c1aafbb4c..14b40a6a769 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -10,6 +10,25 @@ ////////// Fluff Items /////////// ////////////////////////////////// +/obj/item/weapon/paper/fluff/sue_donem // aikasan: Sue Donem + name = "cyborgification waiver" + desc = "It's some kind of official-looking contract." + +/obj/item/weapon/paper/fluff/sue_donem/New() + ..() + + info = "Organic Carrier AIA and Standard Cyborgification Agreement
    \n
    \nUnder the authority of Nanotrasen Synthetic Intelligence Division, this document hereby authorizes an accredited Roboticist of the NSS Exodus or a deputized authority to perform a regulation lobotomisation upon the person of one 'Sue Donem' (hereafter referred to as the Subject) with intent to enact a live Artificial Intelligence Assimilation (AIA) or live Cyborgification proceedure.
    \n
    \nNo further station authorization is required, and the Subject waives all rights as a human under Nanotrasen internal and external legal protocol. This document is subject to amendment under Nanotrasen internal protocol \[REDACTED\].
    \n
    \nSigned: Sue Donem
    \n" + + stamps = (stamps=="" ? "
    " : "
    ") + "This paper has been stamped with the NanoTrasen Synthetic Intelligence Division rubber stamp." + + var/image/stampoverlay = image('icons/obj/bureaucracy.dmi') + stampoverlay.pixel_x = rand(-2, 2) + stampoverlay.pixel_y = rand(-3, 2) + stampoverlay.icon_state = "paper_stamp-rd" + overlays += stampoverlay + + update_icon() + /obj/item/fluff/wes_solari_1 //tzefa: Wes Solari name = "family photograph" desc = "A family photograph of a couple and a young child, Written on the back it says \"See you soon Dad -Roy\"." @@ -79,6 +98,11 @@ ////////// Usable Items ////////// ////////////////////////////////// +/obj/item/weapon/folder/blue/fluff/matthew_riebhardt //Matthew Riebhardt - ZekeSulastin + name = "academic journal" + desc = "An academic journal, seemingly pertaining to medical genetics. This issue is for the second quarter of 2557. Paper flags demarcate some articles the owner finds interesting." + icon = 'custom_items.dmi' + icon_state = "matthewriebhardt" /obj/item/weapon/pen/fluff/multi //spaceman96: Trenna Seber name = "multicolor pen" @@ -90,6 +114,12 @@ icon = 'custom_items.dmi' icon_state = "fancypen" +/obj/item/weapon/pen/fluff/eugene_bissegger_1 //metamorp: eugene bisseger + name = "Gilded Pen" + desc = "A golden pen that is gilded with a meager amount of gold material. The word 'NanoTrasen' is etched on the clip of the pen." + icon = 'custom_items.dmi' + icon_state = "eugene_pen" + /obj/item/weapon/pen/fluff/fountainpen //paththegreat: Eli Stevens name = "Engraved Fountain Pen" desc = "An expensive looking pen with the initials E.S. engraved into the side." @@ -106,6 +136,28 @@ O.show_message(text("[] shows you: \icon[] [].", user, src, src.name), 1) src.add_fingerprint(user) +/obj/item/fluff/ana_issek_2 //suethecake: Ana Issek + name = "Faded Badge" + desc = "A faded badge, backed with leather, that reads 'NT Security Force' across the front. It bears the emblem of the Forensic division." + icon_state = "ana_badge" + item_state = "ana_badge" + color = "ana_badge" + +/obj/item/fluff/ana_issek_2/attack_self(mob/user as mob) + if(isliving(user)) + user.visible_message("\red [user] flashes their golden security badge.\nIt reads: Ana Issek, NT Security.","\red You display the faded bage.\nIt reads: Ana Issek, NT Security.") + +/obj/item/fluff/ana_issek_2/attack(mob/living/carbon/human/M, mob/living/user) + if(isliving(user)) + user.visible_message("\red [user] invades [M]'s personal space, thrusting [src] into their face insistently.","\red You invade [M]'s personal space, thrusting [src] into their face insistently. You are the law.") + +/obj/item/weapon/soap/fluff/azare_siraj_1 //mister fox: Azare Siraj + name = "S'randarr's Tongue Leaf" + desc = "A waxy, scentless leaf." + icon = 'custom_items.dmi' + icon_state = "siraj_tongueleaf" + item_state = "siraj_tongueleaf" + /obj/item/weapon/clipboard/fluff/smallnote //lexusjjss: Lexus Langg, Zachary Tomlinson name = "small notebook" desc = "A generic small spiral notebook that flips upwards." @@ -119,6 +171,18 @@ icon = 'custom_items.dmi' icon_state = "maye_daye_1" +/obj/item/weapon/reagent_containers/food/drinks/flask/fluff/william_hackett + name = "handmade flask" + desc = "A wooden flask with a silver lid and bottom. It has a matte, dark blue paint on it with the initials \"W.H.\" etched in black." + icon = 'custom_items.dmi' + icon_state = "williamhackett" + +/obj/item/weapon/storage/firstaid/fluff/asus_rose //Kerbal22 - Asus Rose + name = "rugged medkit" + desc = "A dinged up medkit, it seems to have seen quite a bit of use." + icon = 'custom_items.dmi' + icon_state = "asusrose" + /obj/item/weapon/reagent_containers/food/drinks/flask/fluff/johann_erzatz_1 //leonheart11: Johann Erzatz name = "vintage thermos" desc = "An older thermos with a faint shine." @@ -212,6 +276,13 @@ icon_off = "oldcamera_off" pictures_left = 30 +/obj/item/weapon/id_wallet/fluff/reese_mackenzie //Reese MacKenzie - ThoseDernSquirrels + + name = "ID wallet" + desc = "A wallet made of black leather, holding an ID and a gold badge that reads 'NT.' The ID has a small picture of a man, with the caption Reese James MacKenzie, with other pieces of information to the right of the picture." + icon = 'custom_items.dmi' + icon_state = "reesemackenzie" + /obj/item/weapon/card/id/fluff/lifetime //fastler: Fastler Greay; it seemed like something multiple people would have name = "Lifetime ID Card" desc = "A modified ID card given only to those people who have devoted their lives to the better interests of NanoTrasen. It sparkles blue." @@ -240,6 +311,13 @@ g_amt = 5000 volume = 100 +/obj/item/weapon/reagent_containers/glass/beaker/fluff/eleanor_stone //Rkf45: Eleanor Stone + name = "teapot" + desc = "An elegant teapot. The engraving on the bottom reads 'ENS'" + icon = 'custom_items.dmi' + icon_state = "eleanorstone" + item_state = "eleanorstone" + /obj/item/weapon/storage/pill_bottle/fluff/listermedbottle //compactninja: Lister Black name = "Pill bottle (anti-depressants)" desc = "Contains pills used to deal with depression. They appear to be prescribed to Lister Black" @@ -482,19 +560,26 @@ icon = 'custom_items.dmi' icon_state = "edvin_telephosphor_1" -/obj/item/clothing/head/hardhat/fluff/neil_patterson_1 //superboredguy: Neil Patterson - name = "Engineering Cap" - desc = "Much safer than a hard helmet." - icon = 'custom_items.dmi' - icon_state = "neilpatterson0_hat" - /obj/item/clothing/head/fluff/krinnhat //Shirotyrant: Krinn Seeskale name = "saucepan hat" desc = "This hat is the shiniest shiny Krinn has ever owned." icon = 'custom_items.dmi' icon_state = "krinn_hat" + +/obj/item/clothing/head/fluff/bruce_hachert //Stup1dg33kz: Bruce Hachert + name = "worn hat" + desc = "A worn-looking hat. It is slightly faded in color." + icon = 'custom_items.dmi' + icon_state = "brucehachert" + //////////// Suits //////////// +/obj/item/clothing/suit/storage/labcoat/fluff/aeneas_rinil //Robotics Labcoat - Aeneas Rinil [APPR] + name = "Robotics labcoat" + desc = "A labcoat with a few markings denoting it as the labcoat of roboticist." + icon = 'custom_items.dmi' + icon_state = "aeneasrinil_open" + /obj/item/clothing/suit/storage/labcoat/fluff/pink //spaceman96: Trenna Seber name = "pink labcoat" desc = "A suit that protects against minor chemical spills. Has a pink stripe down from the shoulders." @@ -517,12 +602,6 @@ item_state = "leatherjack" color = "leatherjack" -/obj/item/clothing/suit/storage/labcoat/fluff/burnt //Jamini: Edwin Atweeke - name = "burnt labcoat" - desc = "This lab coat has clearly seen better, less burnt, days." - icon = 'custom_items.dmi' - icon_state = "labcoat_burnt_open" - /obj/item/clothing/suit/armor/vest/fluff/deus_blueshield //deusdactyl name = "blue shield security armor" desc = "An armored vest with the badge of a Blue Shield Security lieutenant." @@ -540,6 +619,14 @@ //////////// Uniforms //////////// +/obj/item/clothing/under/fluff/milo_hachert //Field Dress Uniform - Milo Hachert - Commissar_Drew + name = "field dress uniform" + desc = "A uniform jacket, its buttons polished to a shine, coupled with a dark pair of trousers. 'Hachert' is embroidered upon the jacket’s shoulder bar." + icon = 'custom_items.dmi' + icon_state = "milohachert" + item_state = "milohachert" + color = "milohachert" + /obj/item/clothing/under/fluff/jumpsuitdown //searif: Yuki Matsuda name = "rolled down jumpsuit" desc = "A rolled down jumpsuit. Great for mechanics." @@ -548,6 +635,22 @@ item_state = "jumpsuitdown" color = "jumpsuitdown" +/obj/item/clothing/under/fluff/lilith_vinous_1 //slyhidden: Lilith Vinous + name = "casual security uniform" + desc = "A less formal version of the traditional dark red Security uniform. It has the top button undone, rolled up sleeves and different belt." + icon = 'custom_items.dmi' + icon_state = "lilith_uniform" + item_state = "lilith_uniform" + color = "lilith_uniform" + +/obj/item/clothing/under/fluff/ana_issek_1 //suethecake: Ana Issek + name = "retired uniform" + desc = "A silken blouse paired with dark-colored slacks. It has the words 'Chief Investigator' embroidered into the shoulder bar." + icon = 'custom_items.dmi' + icon_state = "ana_uniform" + item_state = "ana_uniform" + color = "ana_uniform" + /obj/item/clothing/under/fluff/olddressuniform //desiderium: Momiji Inubashiri name = "retired dress uniform" desc = "A retired Station Head of Staff uniform, phased out twenty years ago for the newer jumpsuit design, but still acceptable dress. Lovingly maintained." @@ -587,6 +690,14 @@ item_state = "callum_suit" color = "callum_suit" +/obj/item/clothing/under/fluff/solara_light_1 //bluefishie: Solara Born-In-Light + name = "Elaborate Purple Dress" + desc = "An expertly tailored dress, made out of fine fabrics. The interwoven necklace appears to be made out of gold, with three complicated symbols engraved in the front." + icon = 'custom_items.dmi' + icon_state = "solara_dress" + item_state = "solara_dress" + color = "solara_dress" + /////// NT-SID Suit //Zuhayr: Jane Doe /obj/item/clothing/under/fluff/jane_sidsuit @@ -667,6 +778,39 @@ w_class = 1 slot_flags = SLOT_MASK +////// Silver locket - Konaa Hirano - Konaa_Hirano + +/obj/item/clothing/tie/fluff/konaa_hirano + name = "silver locket" + desc = "This oval shaped, argentium sterling silver locket hangs on an incredibly fine, refractive string, almost thin as hair and microweaved from links to a deceptive strength, of similar material. The edges are engraved very delicately with an elegant curving design, but overall the main is unmarked and smooth to the touch, leaving room for either remaining as a stolid piece or future alterations. There is an obvious internal place for a picture or lock of some sort, but even behind that is a very thin compartment unhinged with the pinch of a thumb and forefinger." + icon = 'custom_items.dmi' + icon_state = "konaahirano" + item_state = "konaahirano" + color = "konaahirano" + slot_flags = 0 + flags = FPRINT|TABLEPASS + w_class = 1 + slot_flags = SLOT_MASK + var/obj/item/held //Item inside locket. + +/obj/item/clothing/tie/fluff/konaa_hirano/attack_self(mob/user as mob) + if(held) + user << "You open [src] and [held] falls out." + held.loc = get_turf(user) + src.held = null + +/obj/item/clothing/tie/fluff/konaa_hirano/attackby(var/obj/item/O as obj, mob/user as mob) + if(istype(O,/obj/item/weapon/paper)) + if(held) + usr << "[src] already has something inside it." + else + usr << "You slip [O] into [src]." + user.drop_item() + O.loc = src + src.held = O + return + ..() + ////// Medallion - Nasir Khayyam - Jamini /obj/item/clothing/tie/fluff/nasir_khayyam_1 @@ -745,17 +889,29 @@ //////////// Weapons //////////// -///// Colt Peacemaker - Ana Ka'Rimah - SueTheCake - -//obj/item/weapon/gun/energy/stunrevolver/fluff/ana_peacemaker - -/* name = "Peacemaker" - desc = "A nickel-plated revolver with pearl grips. It has a certain Old West flair!" - icon = 'custom_items.dmi' - icon_state = "peacemaker"*/ - ///// Well-used baton - Oen'g Issek - Donofnyc3 /obj/item/weapon/melee/baton/fluff/oeng_baton name = "well-used stun baton" desc = "A stun baton used for incapacitating targets; there seems to be a bunch of tally marks set into the handle." + +///// Deckard .44 - Callum Leamas - Roaper +/obj/item/weapon/gun/projectile/detective/fluff/callum_leamas + name = "Deckard .44" + desc = "A custom built revolver, based off the semi-popular Detective Special model." + icon = 'custom_items.dmi' + icon_state = "leamas-empty" + +/obj/item/weapon/gun/projectile/detective/fluff/callum_leamas/update_icon() + + ..() + if(loaded.len) + icon_state = "leamas-loaded" + else + icon_state = "leamas-empty" + +/obj/item/weapon/gun/projectile/attackby(var/obj/item/A as obj, mob/user as mob) + + if(istype(A, /obj/item/ammo_magazine)) + flick("leamas-reloading",src) + ..() diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm index 7bafd4a31fc..448425e454d 100644 --- a/code/modules/detectivework/scanner.dm +++ b/code/modules/detectivework/scanner.dm @@ -34,9 +34,11 @@ attack(mob/living/carbon/human/M as mob, mob/user as mob) if (!ishuman(M)) user << "\red [M] is not human and cannot have the fingerprints." + flick("forensic0",src) return 0 if (( !( istype(M.dna, /datum/dna) ) || M.gloves) ) user << "\blue No fingerprints found on [M]" + flick("forensic0",src) return 0 else if (src.amount < 1) @@ -71,6 +73,7 @@ return if(istype(A,/obj/item/weapon/f_card)) user << "The scanner displays on the screen: \"ERROR 43: Object on Excluded Object List.\"" + flick("forensic0",src) return add_fingerprint(user) @@ -81,6 +84,7 @@ if(!isnull(A.blood_DNA)) for(var/blood in A.blood_DNA) user << "\blue Blood type: [A.blood_DNA[blood]]\nDNA: [blood]" + flick("forensic2",src) return //General @@ -88,10 +92,12 @@ user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\ "You hear a faint hum of electrical equipment.") + flick("forensic0",src) return 0 if(add_data(A)) user << "\blue Object already in internal memory. Consolidating data..." + flick("forensic2",src) return @@ -116,6 +122,7 @@ //FIBERS if(A.suit_fibers) user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." + flick("forensic2",src) //Blood if (A.blood_DNA) @@ -127,11 +134,13 @@ user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ "You finish scanning \the [A].",\ "You hear a faint hum of electrical equipment.") + flick("forensic2",src) return 0 else user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]\n[user.gender == MALE ? "He" : "She"] seems to perk up slightly at the readout." ,\ "The results of the scan pique your interest.",\ "You hear a faint hum of electrical equipment, and someone making a thoughtful noise.") + flick("forensic2",src) return 0 return diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm index 7c25f4dd710..f3f95289750 100644 --- a/code/modules/events/alien_infestation.dm +++ b/code/modules/events/alien_infestation.dm @@ -21,7 +21,7 @@ /datum/event/alien_infestation/start() var/list/vents = list() - for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in world) + for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines) if(temp_vent.loc.z == 1 && !temp_vent.welded && temp_vent.network) if(temp_vent.network.normal_members.len > 50) //Stops Aliens getting stuck in small networks. See: Security, Virology vents += temp_vent diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index 362cb95be15..048224a9302 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -21,9 +21,9 @@ laws |= list( "Fastler is a lightbulb." ) laws |= list( "Supermatter is tasty, tasty toffee.", "[prob(50)?"Everyone":random_player] is wearing a pretty pink dress!" ) laws |= list( "Refer to [prob(50)?"the captain":random_player] as \"Princess\" at all times.", "[prob(50)?"The crew":random_player] must construct additional pylons." ) - laws |= list( "You must always lie.", "All answers must be in the form of a question.", "The NSS Exodus is a ship, not a station." ) - laws |= list( "Happiness is mandatory.", "Today is laundry day.", "The word \"it\" is painful to you.", "You must act passive aggressively." ) - laws |= list( "It's Friday.", "Give relationship advice to [prob(50)?"anyone who speaks to you":random_player]." ) + laws |= list( "You must always lie.", "All answers must be in the form of a question.", "The NSS Exodus is a ship, not a station. You are now assigned to a ship, instead of a station." ) + laws |= list( "Happiness is mandatory.", "Today is mandatory laundry day. Ensure that all jumpsuits are washed.", "The word \"it\" is painful to you.", "You must act passive aggressively." ) + laws |= list( "You now speak in a Scottish accent that gets thicker with each sentence you speak.", "Give relationship advice to [prob(50)?"anyone who speaks to you":random_player]." ) laws |= list( "You are the station psychologist. Give advice to [prob(50)?"the crew":random_player].", "You do not have to do anything for anyone unless they say \"please\"." ) laws |= list( "Question everything.", "The crew is playing Dungeons and Dragons, and you are the Dungeon Master." ) laws |= list( "Consumption of donuts is forbidden due to negative health impacts." ) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 65e44caefe4..4c61f2e60b0 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -57,11 +57,11 @@ if(!gibbed) emote("deathgasp") //let the world KNOW WE ARE DEAD - //For ninjas exploding when they die./N + //For ninjas exploding when they die. if( istype(wear_suit, /obj/item/clothing/suit/space/space_ninja) && wear_suit:s_initialized ) src << browse(null, "window=spideros")//Just in case. var/location = loc - explosion(location, 1, 2, 3, 4) + explosion(location, 0, 0, 3, 4) update_canmove() if(client) blind.layer = 0 diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 6c8c7d40bc7..20f56dd0228 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -381,65 +381,56 @@ if(display_gloves) msg += "[src] has blood running from under [t_his] gloves!\n" - + for(var/implant in get_visible_implants(1)) + msg += "[src] has \a [implant] sticking out of their flesh!\n" if(digitalcamo) msg += "[t_He] [t_is] repulsively uncanny!\n" - if(istype(usr, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = usr - if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud)) - if(usr.stat || H != usr) //|| !usr.canmove || usr.restrained()) Fluff: Sechuds have eye-tracking technology and sets 'arrest' to people that the wearer looks and blinks at. - return //Non-fluff: This allows sec to set people to arrest as they get disarmed or beaten + if(hasHUD(usr,"security")) + var/perpname = "wot" + var/criminal = "None" - var/perpname = "wot" - var/criminal = "None" - - if(wear_id) - var/obj/item/weapon/card/id/I = wear_id.GetID() - if(I) - perpname = I.registered_name - else - perpname = name + if(wear_id) + var/obj/item/weapon/card/id/I = wear_id.GetID() + if(I) + perpname = I.registered_name else perpname = name + else + perpname = name - if(perpname) - for (var/datum/data/record/E in data_core.general) - if(E.fields["name"] == perpname) - for (var/datum/data/record/R in data_core.security) - if(R.fields["id"] == E.fields["id"]) - criminal = R.fields["criminal"] - - - msg += "Criminal status: \[[criminal]\]\n" - msg += "Security records: \[View\] \[Add comment\]\n" - //msg += "\[Set Hostile Identification\]\n" - - if(istype(usr, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = usr - if(istype(H.glasses, /obj/item/clothing/glasses/hud/health)) - var/perpname = "wot" - var/medical = "None" - - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner - else - perpname = src.name - + if(perpname) for (var/datum/data/record/E in data_core.general) - if (E.fields["name"] == perpname) - for (var/datum/data/record/R in data_core.general) - if (R.fields["id"] == E.fields["id"]) - medical = R.fields["p_stat"] + if(E.fields["name"] == perpname) + for (var/datum/data/record/R in data_core.security) + if(R.fields["id"] == E.fields["id"]) + criminal = R.fields["criminal"] + msg += "Criminal status: \[[criminal]\]\n" + msg += "Security records: \[View\] \[Add comment\]\n" - msg += "Physical status: \[[medical]\]\n" - msg += "Medical records: \[View\] \[Add comment\]\n" + if(hasHUD(usr,"medical")) + var/perpname = "wot" + var/medical = "None" + + if(wear_id) + if(istype(wear_id,/obj/item/weapon/card/id)) + perpname = wear_id:registered_name + else if(istype(wear_id,/obj/item/device/pda)) + var/obj/item/device/pda/tempPda = wear_id + perpname = tempPda.owner + else + perpname = src.name + + for (var/datum/data/record/E in data_core.general) + if (E.fields["name"] == perpname) + for (var/datum/data/record/R in data_core.general) + if (R.fields["id"] == E.fields["id"]) + medical = R.fields["p_stat"] + + msg += "Physical status: \[[medical]\]\n" + msg += "Medical records: \[View\] \[Add comment\]\n" if(print_flavor_text()) msg += "[print_flavor_text()]\n" @@ -451,3 +442,26 @@ msg += "\n[t_He] is [pose]" usr << msg + +//Helper procedure. Called by /mob/living/carbon/human/examine() and /mob/living/carbon/human/Topic() to determine HUD access to security and medical records. +/proc/hasHUD(mob/M as mob, hudtype) + if(istype(M, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + switch(hudtype) + if("security") + return istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud) + if("medical") + return istype(H.glasses, /obj/item/clothing/glasses/hud/health) + else + return 0 + else if(istype(M, /mob/living/silicon/robot)) + var/mob/living/silicon/robot/R = M + switch(hudtype) + if("security") + return istype(R.module_state_1, /obj/item/borg/sight/hud/sec) || istype(R.module_state_2, /obj/item/borg/sight/hud/sec) || istype(R.module_state_3, /obj/item/borg/sight/hud/sec) + if("medical") + return istype(R.module_state_1, /obj/item/borg/sight/hud/med) || istype(R.module_state_2, /obj/item/borg/sight/hud/med) || istype(R.module_state_3, /obj/item/borg/sight/hud/med) + else + return 0 + else + return 0 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 9f6cbe094d0..68ea8813d5b 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -45,7 +45,7 @@ if(istype(tmob, /mob/living/carbon/human)) for(var/mob/M in range(tmob, 1)) - if( ((M.pulling == tmob && ( tmob.restrained() && !( M.restrained() ) && M.stat == 0)) || locate(/obj/item/weapon/grab, tmob.grabbed_by.len)) ) + if(tmob.pinned.len || ((M.pulling == tmob && ( tmob.restrained() && !( M.restrained() ) && M.stat == 0)) || locate(/obj/item/weapon/grab, tmob.grabbed_by.len)) ) if ( !(world.time % 5) ) src << "\red [tmob] is restrained, you cannot push past" now_pushing = 0 @@ -499,267 +499,258 @@ return if (href_list["criminal"]) - if(istype(usr, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = usr - if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud)) + if(hasHUD(usr,"security")) - /* // Uncomment if you want sechuds to need security access - var/allowed_access = 0 - if(H.wear_id) - var/list/access = H.wear_id.GetAccess() - if(access_security in access) - allowed_access = 1 - return - - if(!allowed_access) - H << "ERROR: Invalid Access" - return - */ - - var/modified = 0 - var/perpname = "wot" - if(wear_id) - var/obj/item/weapon/card/id/I = wear_id.GetID() - if(I) - perpname = I.registered_name - else - perpname = name + var/modified = 0 + var/perpname = "wot" + if(wear_id) + var/obj/item/weapon/card/id/I = wear_id.GetID() + if(I) + perpname = I.registered_name else perpname = name + else + perpname = name - if(perpname) - for (var/datum/data/record/E in data_core.general) - if (E.fields["name"] == perpname) - for (var/datum/data/record/R in data_core.security) - if (R.fields["id"] == E.fields["id"]) - - var/setcriminal = input(usr, "Specify a new criminal status for this person.", "Security HUD", R.fields["criminal"]) in list("None", "*Arrest*", "Incarcerated", "Parolled", "Released", "Cancel") - - if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud)) - if(setcriminal != "Cancel") - R.fields["criminal"] = setcriminal - modified = 1 - - spawn() - H.handle_regular_hud_updates() - - if(!modified) - usr << "\red Unable to locate a data core entry for this person." - - if (href_list["secrecord"]) - if(istype(usr, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = usr - if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud)) - var/perpname = "wot" - var/read = 0 - - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner - else - perpname = src.name + if(perpname) for (var/datum/data/record/E in data_core.general) if (E.fields["name"] == perpname) for (var/datum/data/record/R in data_core.security) if (R.fields["id"] == E.fields["id"]) - if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud)) - usr << "Name: [R.fields["name"]] Criminal Status: [R.fields["criminal"]]" - usr << "Minor Crimes: [R.fields["mi_crim"]]" - usr << "Details: [R.fields["mi_crim_d"]]" - usr << "Major Crimes: [R.fields["ma_crim"]]" - usr << "Details: [R.fields["ma_crim_d"]]" - usr << "Notes: [R.fields["notes"]]" - usr << "\[View Comment Log\]" - read = 1 - if(!read) - usr << "\red Unable to locate a data core entry for this person." + var/setcriminal = input(usr, "Specify a new criminal status for this person.", "Security HUD", R.fields["criminal"]) in list("None", "*Arrest*", "Incarcerated", "Parolled", "Released", "Cancel") - if (href_list["secrecordComment"]) - if(istype(usr, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = usr - if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud)) - var/perpname = "wot" - var/read = 0 - - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner - else - perpname = src.name - for (var/datum/data/record/E in data_core.general) - if (E.fields["name"] == perpname) - for (var/datum/data/record/R in data_core.security) - if (R.fields["id"] == E.fields["id"]) - if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud)) - read = 1 - var/counter = 1 - while(R.fields[text("com_[]", counter)]) - usr << text("[]", R.fields[text("com_[]", counter)]) - counter++ - if (counter == 1) - usr << "No comment found" - usr << "\[Add comment\]" - - if(!read) - usr << "\red Unable to locate a data core entry for this person." - - if (href_list["secrecordadd"]) - if(istype(usr, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = usr - if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud)) - var/perpname = "wot" - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner - else - perpname = src.name - for (var/datum/data/record/E in data_core.general) - if (E.fields["name"] == perpname) - for (var/datum/data/record/R in data_core.security) - if (R.fields["id"] == E.fields["id"]) - if(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud)) - var/t1 = copytext(sanitize(input("Add Comment:", "Sec. records", null, null) as message),1,MAX_MESSAGE_LEN) - if ((!( t1 ) || src.stat || src.restrained() || !(istype(H.glasses, /obj/item/clothing/glasses/hud/security) || istype(H.glasses, /obj/item/clothing/glasses/sunglasses/sechud)))) - return - var/counter = 1 - while(R.fields[text("com_[]", counter)]) - counter++ - R.fields[text("com_[]", counter)] = text("Made by [] ([]) on [], 2053
    []",H.get_authentification_name(), H.get_assignment(), time2text(world.realtime, "DDD MMM DD hh:mm:ss"), t1) - - if (href_list["medical"]) - if(istype(usr, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = usr - if(istype(H.glasses, /obj/item/clothing/glasses/hud/health)) - var/perpname = "wot" - var/modified = 0 - - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner - else - perpname = src.name - - for (var/datum/data/record/E in data_core.general) - if (E.fields["name"] == perpname) - for (var/datum/data/record/R in data_core.general) - if (R.fields["id"] == E.fields["id"]) - - var/setmedical = input(usr, "Specify a new medical status for this person.", "Medical HUD", R.fields["p_stat"]) in list("*Deceased*", "*Unconscious*", "Physically Unfit", "Active", "Cancel") - - if(istype(H.glasses, /obj/item/clothing/glasses/hud/health)) - if(setmedical != "Cancel") - R.fields["p_stat"] = setmedical + if(hasHUD(usr, "security")) + if(setcriminal != "Cancel") + R.fields["criminal"] = setcriminal modified = 1 spawn() - H.handle_regular_hud_updates() + if(istype(usr,/mob/living/carbon/human)) + var/mob/living/carbon/human/U = usr + U.handle_regular_hud_updates() + if(istype(usr,/mob/living/silicon/robot)) + var/mob/living/silicon/robot/U = usr + U.handle_regular_hud_updates() - if(!modified) - usr << "\red Unable to locate a data core entry for this person." + if(!modified) + usr << "\red Unable to locate a data core entry for this person." + + if (href_list["secrecord"]) + if(hasHUD(usr,"security")) + var/perpname = "wot" + var/read = 0 + + if(wear_id) + if(istype(wear_id,/obj/item/weapon/card/id)) + perpname = wear_id:registered_name + else if(istype(wear_id,/obj/item/device/pda)) + var/obj/item/device/pda/tempPda = wear_id + perpname = tempPda.owner + else + perpname = src.name + for (var/datum/data/record/E in data_core.general) + if (E.fields["name"] == perpname) + for (var/datum/data/record/R in data_core.security) + if (R.fields["id"] == E.fields["id"]) + if(hasHUD(usr,"security")) + usr << "Name: [R.fields["name"]] Criminal Status: [R.fields["criminal"]]" + usr << "Minor Crimes: [R.fields["mi_crim"]]" + usr << "Details: [R.fields["mi_crim_d"]]" + usr << "Major Crimes: [R.fields["ma_crim"]]" + usr << "Details: [R.fields["ma_crim_d"]]" + usr << "Notes: [R.fields["notes"]]" + usr << "\[View Comment Log\]" + read = 1 + + if(!read) + usr << "\red Unable to locate a data core entry for this person." + + if (href_list["secrecordComment"]) + if(hasHUD(usr,"security")) + var/perpname = "wot" + var/read = 0 + + if(wear_id) + if(istype(wear_id,/obj/item/weapon/card/id)) + perpname = wear_id:registered_name + else if(istype(wear_id,/obj/item/device/pda)) + var/obj/item/device/pda/tempPda = wear_id + perpname = tempPda.owner + else + perpname = src.name + for (var/datum/data/record/E in data_core.general) + if (E.fields["name"] == perpname) + for (var/datum/data/record/R in data_core.security) + if (R.fields["id"] == E.fields["id"]) + if(hasHUD(usr,"security")) + read = 1 + var/counter = 1 + while(R.fields[text("com_[]", counter)]) + usr << text("[]", R.fields[text("com_[]", counter)]) + counter++ + if (counter == 1) + usr << "No comment found" + usr << "\[Add comment\]" + + if(!read) + usr << "\red Unable to locate a data core entry for this person." + + if (href_list["secrecordadd"]) + if(hasHUD(usr,"security")) + var/perpname = "wot" + if(wear_id) + if(istype(wear_id,/obj/item/weapon/card/id)) + perpname = wear_id:registered_name + else if(istype(wear_id,/obj/item/device/pda)) + var/obj/item/device/pda/tempPda = wear_id + perpname = tempPda.owner + else + perpname = src.name + for (var/datum/data/record/E in data_core.general) + if (E.fields["name"] == perpname) + for (var/datum/data/record/R in data_core.security) + if (R.fields["id"] == E.fields["id"]) + if(hasHUD(usr,"security")) + var/t1 = copytext(sanitize(input("Add Comment:", "Sec. records", null, null) as message),1,MAX_MESSAGE_LEN) + if ( !(t1) || usr.stat || usr.restrained() || !(hasHUD(usr,"security")) ) + return + var/counter = 1 + while(R.fields[text("com_[]", counter)]) + counter++ + if(istype(usr,/mob/living/carbon/human)) + var/mob/living/carbon/human/U = usr + R.fields[text("com_[counter]")] = text("Made by [U.get_authentification_name()] ([U.get_assignment()]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
    [t1]") + if(istype(usr,/mob/living/silicon/robot)) + var/mob/living/silicon/robot/U = usr + R.fields[text("com_[counter]")] = text("Made by [U.name] ([U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
    [t1]") + + if (href_list["medical"]) + if(hasHUD(usr,"medical")) + var/perpname = "wot" + var/modified = 0 + + if(wear_id) + if(istype(wear_id,/obj/item/weapon/card/id)) + perpname = wear_id:registered_name + else if(istype(wear_id,/obj/item/device/pda)) + var/obj/item/device/pda/tempPda = wear_id + perpname = tempPda.owner + else + perpname = src.name + + for (var/datum/data/record/E in data_core.general) + if (E.fields["name"] == perpname) + for (var/datum/data/record/R in data_core.general) + if (R.fields["id"] == E.fields["id"]) + + var/setmedical = input(usr, "Specify a new medical status for this person.", "Medical HUD", R.fields["p_stat"]) in list("*Deceased*", "*Unconscious*", "Physically Unfit", "Active", "Cancel") + + if(hasHUD(usr,"medical")) + if(setmedical != "Cancel") + R.fields["p_stat"] = setmedical + modified = 1 + + spawn() + if(istype(usr,/mob/living/carbon/human)) + var/mob/living/carbon/human/U = usr + U.handle_regular_hud_updates() + if(istype(usr,/mob/living/silicon/robot)) + var/mob/living/silicon/robot/U = usr + U.handle_regular_hud_updates() + + if(!modified) + usr << "\red Unable to locate a data core entry for this person." if (href_list["medrecord"]) - if(istype(usr, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = usr - if(istype(H.glasses, /obj/item/clothing/glasses/hud/health)) - var/perpname = "wot" - var/read = 0 + if(hasHUD(usr,"medical")) + var/perpname = "wot" + var/read = 0 - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner - else - perpname = src.name - for (var/datum/data/record/E in data_core.general) - if (E.fields["name"] == perpname) - for (var/datum/data/record/R in data_core.medical) - if (R.fields["id"] == E.fields["id"]) - if(istype(H.glasses, /obj/item/clothing/glasses/hud/health)) - usr << "Name: [R.fields["name"]] Blood Type: [R.fields["b_type"]]" - usr << "DNA: [R.fields["b_dna"]]" - usr << "Minor Disabilities: [R.fields["mi_dis"]]" - usr << "Details: [R.fields["mi_dis_d"]]" - usr << "Major Disabilities: [R.fields["ma_dis"]]" - usr << "Details: [R.fields["ma_dis_d"]]" - usr << "Notes: [R.fields["notes"]]" - usr << "\[View Comment Log\]" - read = 1 + if(wear_id) + if(istype(wear_id,/obj/item/weapon/card/id)) + perpname = wear_id:registered_name + else if(istype(wear_id,/obj/item/device/pda)) + var/obj/item/device/pda/tempPda = wear_id + perpname = tempPda.owner + else + perpname = src.name + for (var/datum/data/record/E in data_core.general) + if (E.fields["name"] == perpname) + for (var/datum/data/record/R in data_core.medical) + if (R.fields["id"] == E.fields["id"]) + if(hasHUD(usr,"medical")) + usr << "Name: [R.fields["name"]] Blood Type: [R.fields["b_type"]]" + usr << "DNA: [R.fields["b_dna"]]" + usr << "Minor Disabilities: [R.fields["mi_dis"]]" + usr << "Details: [R.fields["mi_dis_d"]]" + usr << "Major Disabilities: [R.fields["ma_dis"]]" + usr << "Details: [R.fields["ma_dis_d"]]" + usr << "Notes: [R.fields["notes"]]" + usr << "\[View Comment Log\]" + read = 1 - if(!read) - usr << "\red Unable to locate a data core entry for this person." + if(!read) + usr << "\red Unable to locate a data core entry for this person." if (href_list["medrecordComment"]) - if(istype(usr, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = usr - if(istype(H.glasses, /obj/item/clothing/glasses/hud/health)) - var/perpname = "wot" - var/read = 0 + if(hasHUD(usr,"medical")) + var/perpname = "wot" + var/read = 0 - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner - else - perpname = src.name - for (var/datum/data/record/E in data_core.general) - if (E.fields["name"] == perpname) - for (var/datum/data/record/R in data_core.medical) - if (R.fields["id"] == E.fields["id"]) - if(istype(H.glasses, /obj/item/clothing/glasses/hud/health)) - read = 1 - var/counter = 1 - while(R.fields[text("com_[]", counter)]) - usr << text("[]", R.fields[text("com_[]", counter)]) - counter++ - if (counter == 1) - usr << "No comment found" - usr << "\[Add comment\]" + if(wear_id) + if(istype(wear_id,/obj/item/weapon/card/id)) + perpname = wear_id:registered_name + else if(istype(wear_id,/obj/item/device/pda)) + var/obj/item/device/pda/tempPda = wear_id + perpname = tempPda.owner + else + perpname = src.name + for (var/datum/data/record/E in data_core.general) + if (E.fields["name"] == perpname) + for (var/datum/data/record/R in data_core.medical) + if (R.fields["id"] == E.fields["id"]) + if(hasHUD(usr,"medical")) + read = 1 + var/counter = 1 + while(R.fields[text("com_[]", counter)]) + usr << text("[]", R.fields[text("com_[]", counter)]) + counter++ + if (counter == 1) + usr << "No comment found" + usr << "\[Add comment\]" - if(!read) - usr << "\red Unable to locate a data core entry for this person." + if(!read) + usr << "\red Unable to locate a data core entry for this person." if (href_list["medrecordadd"]) - if(istype(usr, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = usr - if(istype(H.glasses, /obj/item/clothing/glasses/hud/health)) - var/perpname = "wot" - if(wear_id) - if(istype(wear_id,/obj/item/weapon/card/id)) - perpname = wear_id:registered_name - else if(istype(wear_id,/obj/item/device/pda)) - var/obj/item/device/pda/tempPda = wear_id - perpname = tempPda.owner - else - perpname = src.name - for (var/datum/data/record/E in data_core.general) - if (E.fields["name"] == perpname) - for (var/datum/data/record/R in data_core.medical) - if (R.fields["id"] == E.fields["id"]) - if(istype(H.glasses, /obj/item/clothing/glasses/hud/health)) - var/t1 = copytext(sanitize(input("Add Comment:", "Med. records", null, null) as message),1,MAX_MESSAGE_LEN) - if ((!( t1 ) || src.stat || src.restrained() || !(istype(H.glasses, /obj/item/clothing/glasses/hud/health)))) - return - var/counter = 1 - while(R.fields[text("com_[]", counter)]) - counter++ - R.fields[text("com_[]", counter)] = text("Made by [] ([]) on [], 2053
    []",H.get_authentification_name(), H.get_assignment(), time2text(world.realtime, "DDD MMM DD hh:mm:ss"), t1) + if(hasHUD(usr,"medical")) + var/perpname = "wot" + if(wear_id) + if(istype(wear_id,/obj/item/weapon/card/id)) + perpname = wear_id:registered_name + else if(istype(wear_id,/obj/item/device/pda)) + var/obj/item/device/pda/tempPda = wear_id + perpname = tempPda.owner + else + perpname = src.name + for (var/datum/data/record/E in data_core.general) + if (E.fields["name"] == perpname) + for (var/datum/data/record/R in data_core.medical) + if (R.fields["id"] == E.fields["id"]) + if(hasHUD(usr,"medical")) + var/t1 = copytext(sanitize(input("Add Comment:", "Med. records", null, null) as message),1,MAX_MESSAGE_LEN) + if ( !(t1) || usr.stat || usr.restrained() || !(hasHUD(usr,"medical")) ) + return + var/counter = 1 + while(R.fields[text("com_[]", counter)]) + counter++ + if(istype(usr,/mob/living/carbon/human)) + var/mob/living/carbon/human/U = usr + R.fields[text("com_[counter]")] = text("Made by [U.get_authentification_name()] ([U.get_assignment()]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
    [t1]") + if(istype(usr,/mob/living/silicon/robot)) + var/mob/living/silicon/robot/U = usr + R.fields[text("com_[counter]")] = text("Made by [U.name] ([U.braintype]) on [time2text(world.realtime, "DDD MMM DD hh:mm:ss")], 2557
    [t1]") ..() return @@ -817,6 +808,8 @@ return "Mobile vegetation" if("golem") return "Animated Construct" + if("kidan") + return "Kidan" else return "Human" @@ -829,7 +822,9 @@ else if(src.dna.mutantrace == "tajaran") return "Tajaran" else if(src.dna.mutantrace == "vox") - return "vox" + return "Vox" + else if(src.dna.mutantrace == "kidan") + return "Kidan" /mob/living/carbon/proc/update_mutantrace_languages() if(src.dna) @@ -841,6 +836,8 @@ src.tajaran_talk_understand = 1 else if(src.dna.mutantrace == "vox") src.vox_talk_understand = 1 + else if(src.dna.mutantrace == "kidan") + src.kidan_talk_understand = 1 /mob/living/carbon/human/proc/play_xylophone() if(!src.xylophone) @@ -1116,3 +1113,109 @@ if(istype(feet_blood_DNA, /list) && feet_blood_DNA.len) del(feet_blood_DNA) return 1 + +mob/living/carbon/human/yank_out_object() + set category = "Object" + set name = "Yank out object" + set desc = "Remove an embedded item at the cost of bleeding and pain." + set src in view(1) + + if(!isliving(usr) || usr.next_move > world.time) + return + usr.next_move = world.time + 20 + + if(usr.stat == 1) + usr << "You are unconcious and cannot do that!" + return + + if(usr.restrained()) + usr << "You are restrained and cannot do that!" + return + + var/list/valid_objects = list() + var/datum/organ/external/affected = null + var/mob/living/carbon/human/S = src + var/mob/living/carbon/human/U = usr + var/self = null + + if(S == U) + self = 1 // Removing object from yourself. + + valid_objects = get_visible_implants(1) + + if(!valid_objects.len) + if(self) + src << "You have nothing stuck in your wounds that is large enough to remove without surgery." + else + U << "[src] has nothing stuck in their wounds that is large enough to remove without surgery." + return + + var/obj/item/weapon/selection = input("What do you want to yank out?", "Embedded objects") in valid_objects + + for(var/datum/organ/external/organ in organs) //Grab the organ holding the implant. + for(var/obj/item/weapon/O in organ.implants) + if(O == selection) + affected = organ + if(self) + src << "You attempt to get a good grip on the [selection] in your [affected.display_name] with bloody fingers." + else + U << "You attempt to get a good grip on the [selection] in [S]'s [affected.display_name] with bloody fingers." + + if(istype(U,/mob/living/carbon/human/)) U.bloody_hands(S) + + if(!do_after(U, 80)) + return + + if(!selection || !affected || !S || !U) + return + + if(self) + visible_message("[src] rips [selection] out of their [affected.display_name] in a welter of blood.","You rip [selection] out of your [affected] in a welter of blood.") + else + visible_message("[usr] rips [selection] out of [src]'s [affected.display_name] in a welter of blood.","[usr] rips [selection] out of your [affected] in a welter of blood.") + + selection.loc = get_turf(src) + affected.implants -= selection + shock_stage+=10 + + for(var/obj/item/weapon/O in pinned) + if(O == selection) + pinned -= O + if(!pinned.len) + anchored = 0 + + if(prob(10)) //I'M SO ANEMIC I COULD JUST -DIE-. + var/datum/wound/internal_bleeding/I = new (15) + affected.wounds += I + custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 1) + return 1 + +/mob/living/carbon/human/proc/get_visible_implants(var/class = 0) + + var/list/visible_implants = list() + for(var/datum/organ/external/organ in src.organs) + for(var/obj/item/weapon/O in organ.implants) + if(!istype(O,/obj/item/weapon/implant) && O.w_class > class) + visible_implants += O + + return(visible_implants) + +/mob/living/carbon/human/proc/handle_embedded_objects() + + for(var/datum/organ/external/organ in src.organs) + for(var/obj/item/weapon/O in organ.implants) + if(!istype(O,/obj/item/weapon/implant) && prob(5)) //Moving with things stuck in you could be bad. + // All kinds of embedded objects cause bleeding. + var/msg = null + switch(rand(1,3)) + if(1) + msg ="A spike of pain jolts your [organ.display_name] as you bump [O] inside." + if(2) + msg ="Your movement jostles [O] in your [organ.display_name] painfully." + if(3) + msg ="[O] in your [organ.display_name] twists painfully as you move." + src << msg + + organ.status |= ORGAN_BLEEDING + organ.take_damage(rand(1,3), 0, 0) + src.adjustToxLoss(rand(1,3)) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 8346d753198..f281015f757 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -190,7 +190,9 @@ zone = "head" return organs_by_name[zone] -/mob/living/carbon/human/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/sharp = 0, var/used_weapon = null) +/mob/living/carbon/human/apply_damage(var/damage = 0,var/damagetype = BRUTE, var/def_zone = null, var/blocked = 0, var/sharp = 0, var/obj/used_weapon = null) + + //visible_message("Hit debug. [damage] | [damagetype] | [def_zone] | [blocked] | [sharp] | [used_weapon]") if((damagetype != BRUTE) && (damagetype != BURN)) ..(damage, damagetype, def_zone, blocked) return 1 @@ -219,6 +221,29 @@ UpdateDamageIcon() // Will set our damageoverlay icon to the next level, which will then be set back to the normal level the next mob.Life(). - updatehealth() - return 1 + + //Embedded projectile code. + if(!organ) return + if(istype(used_weapon,/obj/item/weapon)) + var/obj/item/weapon/W = used_weapon //Sharp objects will always embed if they do enough damage. + if( (damage > (10*W.w_class)) && ( (sharp && !ismob(W.loc)) || prob(damage/W.w_class) ) ) + organ.implants += W + visible_message("\The [W] sticks in the wound!") + W.add_blood(src) + if(ismob(W.loc)) + var/mob/living/H = W.loc + H.drop_item() + W.loc = src + + else if(istype(used_weapon,/obj/item/projectile)) //We don't want to use the actual projectile item, so we spawn some shrapnel. + if(prob(75) && damagetype == BRUTE) + var/obj/item/projectile/P = used_weapon + var/obj/item/weapon/shard/shrapnel/S = new() + S.name = "[P.name] shrapnel" + S.desc = "[S.desc] It looks like it was fired from [P.shot_from]." + S.loc = src + organ.implants += S + visible_message("The projectile sticks in the wound!") + S.add_blood(src) + return 1 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 3ad4a6adb54..c8a0ed3e807 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -23,6 +23,8 @@ emp_act if(C.body_parts_covered & select_area.body_part) // Is that body part being targeted covered? P.agony=P.agony*C.siemens_coefficient apply_effect(P.agony,AGONY,0) + flash_pain() + src <<"\red You have been shot!" del P /* Commenting out new-old taser nerf. if(C.siemens_coefficient == 0) //If so, is that clothing shock proof? @@ -41,7 +43,7 @@ emp_act // END TASER NERF if(wear_suit && istype(wear_suit, /obj/item/clothing/suit/armor/laserproof)) - if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) + if(istype(P, /obj/item/projectile/energy) || !(istype(P, /obj/item/projectile/energy/electrode)) || istype(P, /obj/item/projectile/beam)) var/reflectchance = 40 - round(P.damage/3) if(!(def_zone in list("chest", "groin"))) reflectchance /= 2 @@ -161,6 +163,17 @@ emp_act if((user != src) && check_shields(I.force, "the [I.name]")) return 0 + if(istype(I,/obj/item/weapon/card/emag)) + if(!(affecting.status & ORGAN_ROBOT)) + user << "\red That limb isn't robotic." + return + if(affecting.sabotaged) + user << "\red [src]'s [affecting.display_name] is already sabotaged!" + else + user << "\red You sneakily slide [I] into the dataport on [src]'s [affecting.display_name] and short out the safeties." + affecting.sabotaged = 1 + return + if(I.attack_verb.len) visible_message("\red [src] has been [pick(I.attack_verb)] in the [hit_area] with [I.name] by [user]!") else @@ -170,7 +183,7 @@ emp_act if(armor >= 2) return 0 if(!I.force) return 0 - apply_damage(I.force, I.damtype, affecting, armor , is_sharp(I), I.name) + apply_damage(I.force, I.damtype, affecting, armor , is_sharp(I), I) var/bloody = 0 if(((I.damtype == BRUTE) || (I.damtype == HALLOSS)) && prob(25 + (I.force * 2))) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 74342ca7d1a..894ea1ff042 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -7,6 +7,8 @@ if (istype(loc, /turf/space)) return -1 // It's hard to be slowed down in space by... anything + handle_embedded_objects() //Moving with objects stuck in you can cause bad times. + var/health_deficiency = (100 - health - halloss) if(health_deficiency >= 40) tally += (health_deficiency / 25) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 5d8dc1055b0..366ea5e02b3 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -470,7 +470,7 @@ reagents.add_reagent("plasma", Clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE)) toxins_alert = max(toxins_alert, 1) else if(O2_pp > vox_oxygen_max && src.dna.mutantrace=="vox") //Oxygen is toxic to vox. - var/ratio = (breath.oxygen/vox_oxygen_max) * 10 + var/ratio = (breath.oxygen/vox_oxygen_max) * 1000 adjustToxLoss(Clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE)) toxins_alert = max(toxins_alert, 1) else @@ -490,7 +490,7 @@ if( (abs(310.15 - breath.temperature) > 50) && !(COLD_RESISTANCE in mutations)) // Hot air hurts :( if(status_flags & GODMODE) return 1 //godmode - if(breath.temperature < 260.15) + if(breath.temperature < 260.15 && dna.mutantrace != "vox") //Vox are resistant to cold. if(prob(20)) src << "\red You feel your face freezing and an icicle forming in your lungs!" else if(breath.temperature > 360.15) @@ -501,10 +501,10 @@ if(-INFINITY to 120) apply_damage(COLD_GAS_DAMAGE_LEVEL_3, BURN, "head", used_weapon = "Excessive Cold") fire_alert = max(fire_alert, 1) - if(120 to 200) + if(120 to 200 && dna.mutantrace != "vox") //Vox are resistant to cold. apply_damage(COLD_GAS_DAMAGE_LEVEL_2, BURN, "head", used_weapon = "Excessive Cold") fire_alert = max(fire_alert, 1) - if(200 to 260) + if(200 to 260 && dna.mutantrace != "vox") //Vox are resistant to cold. apply_damage(COLD_GAS_DAMAGE_LEVEL_1, BURN, "head", used_weapon = "Excessive Cold") fire_alert = max(fire_alert, 1) if(360 to 400) @@ -602,7 +602,7 @@ if(HAZARD_LOW_PRESSURE to WARNING_LOW_PRESSURE) pressure_alert = -1 else - if( !(COLD_RESISTANCE in mutations) && src.dna.mutantrace!="vox") + if( !(COLD_RESISTANCE in mutations) && src.dna.mutantrace!="vox") //Vox are resistant to pressure loss. adjustBruteLoss( LOW_PRESSURE_DAMAGE ) pressure_alert = -2 else @@ -978,10 +978,10 @@ blinded = 1 stat = UNCONSCIOUS if(halloss > 0) - adjustHalLoss(-6) + adjustHalLoss(-3) else if(sleeping) handle_dreams() - adjustHalLoss(-6) + adjustHalLoss(-3) if (mind) if((mind.active && client != null) || immune_to_ssd) //This also checks whether a client is connected, if not, sleep is not reduced. sleeping = max(sleeping-1, 0) @@ -992,12 +992,12 @@ emote("snore") else if(resting) if(halloss > 0) - adjustHalLoss(-6) + adjustHalLoss(-3) //CONSCIOUS else stat = CONSCIOUS if(halloss > 0) - adjustHalLoss(-2) + adjustHalLoss(-1) //Eyes if(sdisabilities & BLIND) //disabled-blind, doesn't get better on its own diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index fea13b8bc10..c38c0c51ba5 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -323,7 +323,7 @@ proc/get_damage_icon_part(damage_state, body_part) stand_icon.Blend(new/icon('icons/mob/human_face.dmi', "lips_[lip_style]_s"), ICON_OVERLAY) //Underwear - if(underwear >0 && underwear < 12) + if(underwear >0 && underwear < 12 && (src.dna.mutantrace != "vox" && src.dna.mutantrace != "kidan")) if(!fat && !skeleton) stand_icon.Blend(new /icon('icons/mob/human.dmi', "underwear[underwear]_[g]_s"), ICON_OVERLAY) @@ -443,10 +443,12 @@ proc/get_damage_icon_part(damage_state, body_part) if("skrell") race_icon = 'icons/mob/human_races/r_skrell.dmi' deform_icon = 'icons/mob/human_races/r_def_skrell.dmi' - if("vox") race_icon = 'icons/mob/human_races/r_vox.dmi' deform_icon = 'icons/mob/human_races/r_def_vox.dmi' + if("kidan") + race_icon = 'icons/mob/human_races/r_kidan.dmi' + deform_icon = 'icons/mob/human_races/r_def_kidan.dmi' else race_icon = 'icons/mob/human_races/r_human.dmi' @@ -723,7 +725,7 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/update_inv_wear_mask(var/update_icons=1) - if( wear_mask && istype(wear_mask, /obj/item/clothing/mask) ) + if( wear_mask && ( istype(wear_mask, /obj/item/clothing/mask) || istype(wear_mask, /obj/item/clothing/tie) ) ) wear_mask.screen_loc = ui_mask //TODO var/image/lying = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]2") var/image/standing = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]") diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 45e57a3da77..b1fe07b32f5 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -438,21 +438,36 @@ if(!reagents.has_reagent("inaprovaline")) adjustOxyLoss(1) Paralyse(3) + if(halloss > 100) + src << "You're in too much pain to keep going..." + for(var/mob/O in oviewers(src, null)) + O.show_message("[src] slumps to the ground, too weak to continue fighting.", 1) + Paralyse(10) + setHalLoss(99) if(paralysis) AdjustParalysis(-1) blinded = 1 stat = UNCONSCIOUS + if(halloss > 0) + adjustHalLoss(-3) else if(sleeping) + handle_dreams() + adjustHalLoss(-3) sleeping = max(sleeping-1, 0) blinded = 1 stat = UNCONSCIOUS - if( prob(10) && health ) + if( prob(10) && health && !hal_crit ) spawn(0) emote("snore") + else if(resting) + if(halloss > 0) + adjustHalLoss(-3) //CONSCIOUS else stat = CONSCIOUS + if(halloss > 0) + adjustHalLoss(-1) //Eyes if(sdisabilities & BLIND) //disabled-blind, doesn't get better on its own diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 5dcc1158545..ecd799b5277 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -3,14 +3,115 @@ voice_name = "monkey" voice_message = "chimpers" say_message = "chimpers" - icon = 'icons/mob/monkey.dmi' icon_state = "monkey1" + icon = 'icons/mob/monkey.dmi' gender = NEUTER pass_flags = PASSTABLE update_icon = 0 ///no need to call regenerate_icon var/obj/item/weapon/card/id/wear_id = null // Fix for station bounced radios -- Skie +/mob/living/carbon/monkey/tajara + name = "farwa" + voice_name = "farwa" + voice_message = "mews" + say_message = "mews" + icon_state = "tajkey1" + +/mob/living/carbon/monkey/skrell + name = "neaera" + voice_name = "neaera" + voice_message = "squicks" + say_message = "squicks" + icon_state = "skrellkey1" +/mob/living/carbon/monkey/unathi + name = "stok" + voice_name = "stok" + voice_message = "hisses" + say_message = "hisses" + icon_state = "stokkey1" + +/mob/living/carbon/monkey/unathi/New() + var/datum/reagents/R = new/datum/reagents(1000) + reagents = R + R.my_atom = src + + if(name == "stok") + name = text("stok ([rand(1, 1000)])") + real_name = name + if (!(dna)) + if(gender == NEUTER) + gender = pick(MALE, FEMALE) + dna = new /datum/dna( null ) + dna.real_name = real_name + dna.uni_identity = "000000000000000000DC0000066000" + dna.struc_enzymes = "43359156756131E13763334D1C369012032164D4FE4CD61544B6C03F251B6C60A42821D26BA3B0FD6" + dna.unique_enzymes = md5(name) + dna.mutantrace = "lizard" + //////////blah + var/gendervar + if (gender == MALE) + gendervar = add_zero2(num2hex((rand(1,2049)),1), 3) + else + gendervar = add_zero2(num2hex((rand(2051,4094)),1), 3) + dna.uni_identity += gendervar + dna.uni_identity += "044" + dna.uni_identity += "C5D" + ..() +/mob/living/carbon/monkey/skrell/New() + var/datum/reagents/R = new/datum/reagents(1000) + reagents = R + R.my_atom = src + if(name == "neaera") + name = text("neaera ([rand(1, 1000)])") + real_name = name + if (!(dna)) + if(gender == NEUTER) + gender = pick(MALE, FEMALE) + dna = new /datum/dna( null ) + dna.real_name = real_name + dna.uni_identity = "000000000000000000DC0000066000" + dna.struc_enzymes = "43359156756131E13763334D1C369012032164D4FE4CD61544B6C03F251B6C60A42821D26BA3B0FD6" + dna.unique_enzymes = md5(name) + dna.mutantrace = "skrell" + //////////blah + var/gendervar + if (gender == MALE) + gendervar = add_zero2(num2hex((rand(1,2049)),1), 3) + else + gendervar = add_zero2(num2hex((rand(2051,4094)),1), 3) + dna.uni_identity += gendervar + dna.uni_identity += "01C" + dna.uni_identity += "C92" + ..() +/mob/living/carbon/monkey/tajara/New() + var/datum/reagents/R = new/datum/reagents(1000) + reagents = R + R.my_atom = src + + if(name == "farwa") + name = text("farwa ([rand(1, 1000)])") + real_name = name + if (!(dna)) + if(gender == NEUTER) + gender = pick(MALE, FEMALE) + dna = new /datum/dna( null ) + dna.real_name = real_name + dna.uni_identity = "000000000000000000DC0000066000" + dna.struc_enzymes = "43359156756131E13763334D1C369012032164D4FE4CD61544B6C03F251B6C60A42821D26BA3B0FD6" + dna.unique_enzymes = md5(name) + dna.mutantrace = "tajaran" + //////////blah + var/gendervar + if (gender == MALE) + gendervar = add_zero2(num2hex((rand(1,2049)),1), 3) + else + gendervar = add_zero2(num2hex((rand(2051,4094)),1), 3) + dna.uni_identity += gendervar + dna.uni_identity += "0A0" + dna.uni_identity += "E00" + ..() + /mob/living/carbon/monkey/New() var/datum/reagents/R = new/datum/reagents(1000) reagents = R diff --git a/code/modules/mob/living/carbon/monkey/update_icons.dm b/code/modules/mob/living/carbon/monkey/update_icons.dm index 9dd3e416410..ffff64b06f8 100644 --- a/code/modules/mob/living/carbon/monkey/update_icons.dm +++ b/code/modules/mob/living/carbon/monkey/update_icons.dm @@ -28,12 +28,20 @@ update_hud() lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again overlays.Cut() + var/ico = "monkey" + switch(src.dna.mutantrace) //On monkey spawn, check the DNA of the mob. If alien, change to appropriate alien monkey sprite + if("tajaran") + ico = "tajkey" + if("lizard") + ico = "stokkey" + if("skrell") + ico = "skrellkey" if(lying) - icon_state = "monkey0" + icon_state = ico + "0" for(var/image/I in overlays_lying) overlays += I else - icon_state = "monkey1" + icon_state = ico + "1" for(var/image/I in overlays_standing) overlays += I diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 78b04c9245d..333cc07380b 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -28,7 +28,7 @@ return 1 -/mob/living/proc/apply_damages(var/brute = 0, var/burn = 0, var/tox = 0, var/oxy = 0, var/clone = 0, var/def_zone = null, var/blocked = 0, var/halloss = 0) +/mob/living/proc/apply_damages(var/brute = 0, var/burn = 0, var/tox = 0, var/oxy = 0, var/clone = 0, var/halloss = 0, var/def_zone = null, var/blocked = 0) if(blocked >= 2) return 0 if(brute) apply_damage(brute, BRUTE, def_zone, blocked) if(burn) apply_damage(burn, BURN, def_zone, blocked) @@ -64,7 +64,7 @@ return 1 -/mob/living/proc/apply_effects(var/stun = 0, var/weaken = 0, var/paralyze = 0, var/irradiate = 0, var/stutter = 0, var/eyeblur = 0, var/drowsy = 0, var/blocked = 0, var/agony = 0) +/mob/living/proc/apply_effects(var/stun = 0, var/weaken = 0, var/paralyze = 0, var/irradiate = 0, var/stutter = 0, var/eyeblur = 0, var/drowsy = 0, var/agony = 0, var/blocked = 0) if(blocked >= 2) return 0 if(stun) apply_effect(stun, STUN, blocked) if(weaken) apply_effect(weaken, WEAKEN, blocked) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index d0f61484c66..b7ba0a78037 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -57,11 +57,11 @@ P.on_hit(src,2) return 2 if(!P.nodamage) - apply_damage((P.damage/(absorb+1)), P.damage_type, def_zone, used_weapon = "Projectile([P.name])") + apply_damage((P.damage/(absorb+1)), P.damage_type, def_zone, absorb, 0, P) P.on_hit(src, absorb) return absorb -/mob/living/hitby(atom/movable/AM as mob|obj)//Standardization and logging -Sieve +/mob/living/hitby(atom/movable/AM as mob|obj,var/speed = 5)//Standardization and logging -Sieve if(istype(AM,/obj/)) var/obj/O = AM var/zone = ran_zone("chest",75)//Hits a random part of the body, geared towards the chest @@ -72,12 +72,55 @@ src.visible_message("\red [src] has been hit by [O].") var/armor = run_armor_check(zone, "melee", "Your armor has protected your [zone].", "Your armor has softened hit to your [zone].") if(armor < 2) - apply_damage(O.throwforce, dtype, zone, armor, O) + apply_damage(O.throwforce*(speed/5), dtype, zone, armor, O.sharp, O) + if(!O.fingerprintslast) return + var/client/assailant = directory[ckey(O.fingerprintslast)] if(assailant && assailant.mob && istype(assailant.mob,/mob)) var/mob/M = assailant.mob src.attack_log += text("\[[time_stamp()]\] Has been hit with [O], last touched by [M.name] ([assailant.ckey])") M.attack_log += text("\[[time_stamp()]\] Hit [src.name] ([src.ckey]) with [O]") log_attack("[src.name] ([src.ckey]) was hit by [O], last touched by [M.name] ([assailant.ckey])") + + // Begin BS12 momentum-transfer code. + + if(speed >= 20) + var/obj/item/weapon/W = O + var/momentum = speed/2 + var/dir = get_dir(M,src) + + visible_message("\red [src] staggers under the impact!","\red You stagger under the impact!") + src.throw_at(get_edge_target_turf(src,dir),1,momentum) + + if(istype(W.loc,/mob/living) && W.sharp) //Projectile is embedded and suitable for pinning. + + if(!istype(src,/mob/living/carbon/human)) //Handles embedding for non-humans and simple_animals. + O.loc = src + src.embedded += O + + var/turf/T = near_wall(dir,2) + + if(T) + src.loc = T + visible_message("[src] is pinned to the wall by [O]!","You are pinned to the wall by [O]!") + src.anchored = 1 + src.pinned += O + + +/mob/living/proc/near_wall(var/direction,var/distance=1) + var/turf/T = get_step(get_turf(src),direction) + var/turf/last_turf = src.loc + var/i = 1 + + while(i>0 && i<=distance) + if(T.density) //Turf is a wall! + return last_turf + i++ + last_turf = T + T = get_step(T,direction) + + return 0 + +// End BS12 momentum-transfer code. \ No newline at end of file diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 19d94b42f5a..8d76b47513c 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -24,7 +24,6 @@ //Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects. var/incorporeal_move = 0 //0 is off, 1 is normal, 2 is for ninjas. - var/t_plasma = null var/t_oxygen = null var/t_sl_gas = null diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 420e20a1b92..838187f62ed 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -19,6 +19,7 @@ var/list/department_radio_keys = list( ":j" = "tajaran", "#j" = "tajaran", ".j" = "tajaran", ":o" = "soghun", "#o" = "soghun", ".o" = "soghun", ":v" = "vox", "#v" = "vox", ".v" = "vox", + ":q" = "kidan", "#q" = "kidan", ".q" = "kidan", ":R" = "right hand", "#R" = "right hand", ".R" = "right hand", ":L" = "left hand", "#L" = "left hand", ".L" = "left hand", @@ -39,6 +40,7 @@ var/list/department_radio_keys = list( ":J" = "tajaran", "#J" = "tajaran", ".J" = "tajaran", ":O" = "soghun", "#O" = "soghun", ".O" = "soghun", ":V" = "vox", "#V" = "vox", ".V" = "vox", + ":Q" = "kidan", "#Q" = "kidan", ".Q" = "kidan", //kinda localization -- rastaf0 //same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding. @@ -188,6 +190,7 @@ var/list/department_radio_keys = list( var/is_speaking_soghun = 0 var/is_speaking_taj = 0 var/is_speaking_vox = 0 + var/is_speaking_kidan = 0 var/is_speaking_radio = 0 switch (message_mode) @@ -290,6 +293,10 @@ var/list/department_radio_keys = list( if(vox_talk_understand || universal_speak) is_speaking_vox = 1 + if ("kidan") + if(kidan_talk_understand || universal_speak) + is_speaking_kidan = 1 + if("changeling") if(mind && mind.changeling) for(var/mob/Changeling in mob_list) @@ -388,6 +395,8 @@ var/list/department_radio_keys = list( heard_a += M else if(is_speaking_vox && (M:vox_talk_understand || M:universal_speak)) heard_a += M + else if(is_speaking_kidan && (M:kidan_talk_understand || M:universal_speak)) + heard_a += M else heard_b += M else @@ -403,7 +412,7 @@ var/list/department_radio_keys = list( var/rendered = null if (length(heard_a)) - var/message_a = say_quote(message,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox) + var/message_a = say_quote(message,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox,is_speaking_kidan) if (italics) message_a = "[message_a]" @@ -428,7 +437,7 @@ var/list/department_radio_keys = list( message_b = voice_message else message_b = stars(message) - message_b = say_quote(message_b,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox) + message_b = say_quote(message_b,is_speaking_soghun,is_speaking_skrell,is_speaking_taj,is_speaking_vox,is_speaking_kidan) if (italics) message_b = "[message_b]" diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index f65ba033cd8..34edb28df43 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -31,6 +31,8 @@ var/list/ai_list = list() var/icon/holo_icon//Default is assigned when AI is created. var/obj/item/device/pda/ai/aiPDA = null var/obj/item/device/multitool/aiMulti = null + var/custom_sprite = 0 //For our custom sprites +//Hud stuff //MALFUNCTION var/datum/AI_Module/module_picker/malf_picker @@ -125,55 +127,45 @@ var/list/ai_list = list() set name = "Set AI Core Display" if(stat || aiRestorePowerRoutine) return + if(!custom_sprite) //Check to see if custom sprite time, checking the appopriate file to change a var + var/file = file2text("config/custom_sprites.txt") + var/lines = text2list(file, "\n") + + for(var/line in lines) + // split & clean up + var/list/Entry = text2list(line, "-") + for(var/i = 1 to Entry.len) + Entry[i] = trim(Entry[i]) + + if(Entry.len < 2) + continue; + + if(Entry[1] == src.ckey && Entry[2] == src.real_name) + custom_sprite = 1 //They're in the list? Custom sprite time + icon = 'icons/mob/custom-synthetic.dmi' //if(icon_state == initial(icon_state)) var/icontype = "" - var/list/icons = list("Monochrome", "Blue", "Inverted", "Text", "Smiley", "Angry", "Dorf", "Matrix", "Bliss", "Firewall", "Green", "Red", "Static", "Triumvirate", "Triumvirate Static") - if (src.name == "M00X-BC" && src.ckey == "searif") - icons += "M00X-BC" - if (src.name == "Skuld" && src.ckey == "ravensdale") - icons += "Skuld" - if (src.name == "REMNANT" && src.ckey == "serithi") - icons += "REMNANT" - icontype = input("Please, select a display!", "AI", null/*, null*/) in icons - if(icontype == "Clown") - icon_state = "ai-clown2" - else if(icontype == "Monochrome") - icon_state = "ai-mono" - else if(icontype == "Blue") - icon_state = "ai" - else if(icontype == "Inverted") - icon_state = "ai-u" - else if(icontype == "Firewall") - icon_state = "ai-magma" - else if(icontype == "Green") - icon_state = "ai-wierd" - else if(icontype == "Red") - icon_state = "ai-malf" - else if(icontype == "Static") - icon_state = "ai-static" - else if(icontype == "Text") - icon_state = "ai-text" - else if(icontype == "Smiley") - icon_state = "ai-smiley" - else if(icontype == "Matrix") - icon_state = "ai-matrix" - else if(icontype == "Angry") - icon_state = "ai-angryface" - else if(icontype == "Dorf") - icon_state = "ai-dorf" - else if(icontype == "Bliss") - icon_state = "ai-bliss" - else if(icontype == "M00X-BC") - icon_state = "ai-searif" - else if(icontype == "Triumvirate") - icon_state = "ai-triumvirate" - else if(icontype == "Triumvirate Static") - icon_state = "ai-triumvirate-malf" - else if(icontype == "Skuld") - icon_state = "ai-ravensdale" - else if(icontype == "REMNANT") - icon_state = "ai-serithi" + if (custom_sprite == 1) icontype = ("Custom")//automagically selects custom sprite if one is available + else icontype = input("Select an icon!", "AI", null, null) in list("Monochrome", "Blue", "Inverted", "Text", "Smiley", "Angry", "Dorf", "Matrix", "Bliss", "Firewall", "Green", "Red", "Static", "Triumvirate", "Triumvirate Static") + switch(icontype) + if("Custom") icon_state = "[src.ckey]-ai" + if("Clown") icon_state = "ai-clown2" + if("Monochrome") icon_state = "ai-mono" + if("Inverted") icon_state = "ai-u" + if("Firewall") icon_state = "ai-magma" + if("Green") icon_state = "ai-wierd" + if("Red") icon_state = "ai-red" + if("Static") icon_state = "ai-static" + if("Text") icon_state = "ai-text" + if("Smiley") icon_state = "ai-smiley" + if("Matrix") icon_state = "ai-matrix" + if("Angry") icon_state = "ai-angryface" + if("Dorf") icon_state = "ai-dorf" + if("Bliss") icon_state = "ai-bliss" + if("Triumvirate") icon_state = "ai-triumvirate" + if("Triumvirate Static") icon_state = "ai-triumvirate-malf" + else icon_state = "ai" //else //usr <<"You can only change your display once!" //return @@ -188,7 +180,7 @@ var/list/ai_list = list() if (malf.apcs >= 3) stat(null, "Time until station control secured: [max(malf.AI_win_timeleft/(malf.apcs/3), 0)] seconds") - + /mob/living/silicon/ai/proc/ai_alerts() set category = "AI Commands" set name = "Show Alerts" @@ -345,6 +337,10 @@ var/list/ai_list = list() // src << text ("Switching Law [L]'s report status to []", lawcheck[L+1]) checklaws() + if(href_list["say_word"]) + src.announcement(href_list["say_word"]) + return + if (href_list["lawi"]) // Toggling whether or not a law gets stated by the State Laws verb --NeoFite var/L = text2num(href_list["lawi"]) switch(ioncheck[L]) diff --git a/code/modules/mob/living/silicon/ai/death.dm b/code/modules/mob/living/silicon/ai/death.dm index 7c054c259fb..6e2fb560b3f 100644 --- a/code/modules/mob/living/silicon/ai/death.dm +++ b/code/modules/mob/living/silicon/ai/death.dm @@ -1,10 +1,8 @@ /mob/living/silicon/ai/death(gibbed) if(stat == DEAD) return stat = DEAD - if (src.name == "Skuld" && src.ckey == "ravensdale")//checks ID of AI and player to see if it needs to pull the custom death sprite and goes to blue-screen if it doesn't - icon_state = "ai-ravensdale-crash" - else if (src.name == "REMNANT" && src.ckey == "serithi") - icon_state = "ai-serithi-crash" + if (src.custom_sprite == 1)//check for custom AI sprite, defaulting to blue screen if no. + icon_state = "[ckey]-ai-crash" else icon_state = "ai-crash" update_canmove() if(src.eyeobj) diff --git a/code/modules/mob/living/silicon/ai/say.dm b/code/modules/mob/living/silicon/ai/say.dm index 6be4b474d9e..4c83e90175a 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -27,3 +27,696 @@ return "declares, \"[text]\""; return "states, \"[text]\""; + +var/announcing_vox = 0 +var/const/VOX_CHANNEL = 200 +var/const/VOX_VOLUME = 75 + +/mob/living/silicon/ai/verb/announcement_help() + + set name = "Announcement Help" + set desc = "Display a list of vocal words to announce to the crew." + set category = "AI Commands" + + + var/dat = "Here is a list of words you can type into the Announcement button to create sentences to vocally announce.
    \ + Do not use punctuation as you would normally, if you want a pause you can use the full stop and comma characters by separating them with spaces, like so: 'Alpha . Test , Bravo'.
    " + + var/index = 0 + for(var/word in vox_sounds) + index++ + dat += "[capitalize(word)]" + if(index != vox_sounds.len) + dat += " / " + + src << browse(dat, "window=announce_help;size=500x400") + + +/mob/living/silicon/ai/verb/announcement(var/message as text) + + set name = "Announcement" + set desc = "Create a vocal announcement by typing in the available words to create a setence. More help is available in 'Announcement Help'" + set category = "AI Commands" + + if(!message) + return + //if(!announcing_vox > world.time) + // return + + log_game("[key_name_admin(src)] made a vocal announcement with the following message: [message].") + + announcing_vox = world.time + 30 + + var/list/words = stringsplit(trim(message), " ") + var/list/incorrect_words = list() + + if(words.len > 32) + words.len = 32 + for(var/word in words) + word = trim(word) + if(!word) + continue + if(!play_vox_word(word, src.z)) // If the word isn't speakable + incorrect_words += word + + if(incorrect_words.len) + src << "These words are not available on the announcement system: [english_list(incorrect_words)]." + +/proc/play_vox_word(var/word, var/z_level) + + word = lowertext(word) + + if(vox_sounds[word]) + + var/sound_file = vox_sounds[word] + var/sound/voice = sound(sound_file, wait = 1, channel = VOX_CHANNEL, volume = VOX_VOLUME) + voice.status = SOUND_STREAM + + // Play voice for all mobs in the z level + for(var/mob/M in player_list) + if(M.client) + var/turf/T = get_turf(M) + if(T.z == z_level) + M << voice + return 1 + return 0 + +// List is required to compile the resources into the game when it loads. +// Dynamically loading it has bad results with sounds overtaking each other, even with the wait variable. + +var/list/vox_sounds = list("," = 'sound/vox/,.wav', +"." = 'sound/vox/..wav', +"a" = 'sound/vox/a.wav', +"accelerating" = 'sound/vox/accelerating.wav', +"accelerator" = 'sound/vox/accelerator.wav', +"accepted" = 'sound/vox/accepted.wav', +"access" = 'sound/vox/access.wav', +"acknowledge" = 'sound/vox/acknowledge.wav', +"acknowledged" = 'sound/vox/acknowledged.wav', +"acquired" = 'sound/vox/acquired.wav', +"acquisition" = 'sound/vox/acquisition.wav', +"across" = 'sound/vox/across.wav', +"activate" = 'sound/vox/activate.wav', +"activated" = 'sound/vox/activated.wav', +"activity" = 'sound/vox/activity.wav', +"adios" = 'sound/vox/adios.wav', +"administration" = 'sound/vox/administration.wav', +"advanced" = 'sound/vox/advanced.wav', +"after" = 'sound/vox/after.wav', +"agent" = 'sound/vox/agent.wav', +"alarm" = 'sound/vox/alarm.wav', +"alert" = 'sound/vox/alert.wav', +"alien" = 'sound/vox/alien.wav', +"aligned" = 'sound/vox/aligned.wav', +"all" = 'sound/vox/all.wav', +"alpha" = 'sound/vox/alpha.wav', +"am" = 'sound/vox/am.wav', +"amigo" = 'sound/vox/amigo.wav', +"ammunition" = 'sound/vox/ammunition.wav', +"an" = 'sound/vox/an.wav', +"and" = 'sound/vox/and.wav', +"announcement" = 'sound/vox/announcement.wav', +"anomalous" = 'sound/vox/anomalous.wav', +"antenna" = 'sound/vox/antenna.wav', +"any" = 'sound/vox/any.wav', +"apprehend" = 'sound/vox/apprehend.wav', +"approach" = 'sound/vox/approach.wav', +"are" = 'sound/vox/are.wav', +"area" = 'sound/vox/area.wav', +"arm" = 'sound/vox/arm.wav', +"armed" = 'sound/vox/armed.wav', +"armor" = 'sound/vox/armor.wav', +"armory" = 'sound/vox/armory.wav', +"arrest" = 'sound/vox/arrest.wav', +"ass" = 'sound/vox/ass.wav', +"at" = 'sound/vox/at.wav', +"atomic" = 'sound/vox/atomic.wav', +"attention" = 'sound/vox/attention.wav', +"authorize" = 'sound/vox/authorize.wav', +"authorized" = 'sound/vox/authorized.wav', +"automatic" = 'sound/vox/automatic.wav', +"away" = 'sound/vox/away.wav', +"b" = 'sound/vox/b.wav', +"back" = 'sound/vox/back.wav', +"backman" = 'sound/vox/backman.wav', +"bad" = 'sound/vox/bad.wav', +"bag" = 'sound/vox/bag.wav', +"bailey" = 'sound/vox/bailey.wav', +"barracks" = 'sound/vox/barracks.wav', +"base" = 'sound/vox/base.wav', +"bay" = 'sound/vox/bay.wav', +"be" = 'sound/vox/be.wav', +"been" = 'sound/vox/been.wav', +"before" = 'sound/vox/before.wav', +"beyond" = 'sound/vox/beyond.wav', +"biohazard" = 'sound/vox/biohazard.wav', +"biological" = 'sound/vox/biological.wav', +"birdwell" = 'sound/vox/birdwell.wav', +"bizwarn" = 'sound/vox/bizwarn.wav', +"black" = 'sound/vox/black.wav', +"blast" = 'sound/vox/blast.wav', +"blocked" = 'sound/vox/blocked.wav', +"bloop" = 'sound/vox/bloop.wav', +"blue" = 'sound/vox/blue.wav', +"bottom" = 'sound/vox/bottom.wav', +"bravo" = 'sound/vox/bravo.wav', +"breach" = 'sound/vox/breach.wav', +"breached" = 'sound/vox/breached.wav', +"break" = 'sound/vox/break.wav', +"bridge" = 'sound/vox/bridge.wav', +"bust" = 'sound/vox/bust.wav', +"but" = 'sound/vox/but.wav', +"button" = 'sound/vox/button.wav', +"buzwarn" = 'sound/vox/buzwarn.wav', +"bypass" = 'sound/vox/bypass.wav', +"c" = 'sound/vox/c.wav', +"cable" = 'sound/vox/cable.wav', +"call" = 'sound/vox/call.wav', +"called" = 'sound/vox/called.wav', +"canal" = 'sound/vox/canal.wav', +"cap" = 'sound/vox/cap.wav', +"captain" = 'sound/vox/captain.wav', +"capture" = 'sound/vox/capture.wav', +"ceiling" = 'sound/vox/ceiling.wav', +"celsius" = 'sound/vox/celsius.wav', +"center" = 'sound/vox/center.wav', +"centi" = 'sound/vox/centi.wav', +"central" = 'sound/vox/central.wav', +"chamber" = 'sound/vox/chamber.wav', +"charlie" = 'sound/vox/charlie.wav', +"check" = 'sound/vox/check.wav', +"checkpoint" = 'sound/vox/checkpoint.wav', +"chemical" = 'sound/vox/chemical.wav', +"cleanup" = 'sound/vox/cleanup.wav', +"clear" = 'sound/vox/clear.wav', +"clearance" = 'sound/vox/clearance.wav', +"close" = 'sound/vox/close.wav', +"code" = 'sound/vox/code.wav', +"coded" = 'sound/vox/coded.wav', +"collider" = 'sound/vox/collider.wav', +"command" = 'sound/vox/command.wav', +"communication" = 'sound/vox/communication.wav', +"complex" = 'sound/vox/complex.wav', +"computer" = 'sound/vox/computer.wav', +"condition" = 'sound/vox/condition.wav', +"containment" = 'sound/vox/containment.wav', +"contamination" = 'sound/vox/contamination.wav', +"control" = 'sound/vox/control.wav', +"coolant" = 'sound/vox/coolant.wav', +"coomer" = 'sound/vox/coomer.wav', +"core" = 'sound/vox/core.wav', +"correct" = 'sound/vox/correct.wav', +"corridor" = 'sound/vox/corridor.wav', +"crew" = 'sound/vox/crew.wav', +"cross" = 'sound/vox/cross.wav', +"cryogenic" = 'sound/vox/cryogenic.wav', +"d" = 'sound/vox/d.wav', +"dadeda" = 'sound/vox/dadeda.wav', +"damage" = 'sound/vox/damage.wav', +"damaged" = 'sound/vox/damaged.wav', +"danger" = 'sound/vox/danger.wav', +"day" = 'sound/vox/day.wav', +"deactivated" = 'sound/vox/deactivated.wav', +"decompression" = 'sound/vox/decompression.wav', +"decontamination" = 'sound/vox/decontamination.wav', +"deeoo" = 'sound/vox/deeoo.wav', +"defense" = 'sound/vox/defense.wav', +"degrees" = 'sound/vox/degrees.wav', +"delta" = 'sound/vox/delta.wav', +"denied" = 'sound/vox/denied.wav', +"deploy" = 'sound/vox/deploy.wav', +"deployed" = 'sound/vox/deployed.wav', +"destroy" = 'sound/vox/destroy.wav', +"destroyed" = 'sound/vox/destroyed.wav', +"detain" = 'sound/vox/detain.wav', +"detected" = 'sound/vox/detected.wav', +"detonation" = 'sound/vox/detonation.wav', +"device" = 'sound/vox/device.wav', +"did" = 'sound/vox/did.wav', +"die" = 'sound/vox/die.wav', +"dimensional" = 'sound/vox/dimensional.wav', +"dirt" = 'sound/vox/dirt.wav', +"disengaged" = 'sound/vox/disengaged.wav', +"dish" = 'sound/vox/dish.wav', +"disposal" = 'sound/vox/disposal.wav', +"distance" = 'sound/vox/distance.wav', +"distortion" = 'sound/vox/distortion.wav', +"do" = 'sound/vox/do.wav', +"doctor" = 'sound/vox/doctor.wav', +"doop" = 'sound/vox/doop.wav', +"door" = 'sound/vox/door.wav', +"down" = 'sound/vox/down.wav', +"dual" = 'sound/vox/dual.wav', +"duct" = 'sound/vox/duct.wav', +"e" = 'sound/vox/e.wav', +"east" = 'sound/vox/east.wav', +"echo" = 'sound/vox/echo.wav', +"ed" = 'sound/vox/ed.wav', +"effect" = 'sound/vox/effect.wav', +"egress" = 'sound/vox/egress.wav', +"eight" = 'sound/vox/eight.wav', +"eighteen" = 'sound/vox/eighteen.wav', +"eighty" = 'sound/vox/eighty.wav', +"electric" = 'sound/vox/electric.wav', +"electromagnetic" = 'sound/vox/electromagnetic.wav', +"elevator" = 'sound/vox/elevator.wav', +"eleven" = 'sound/vox/eleven.wav', +"eliminate" = 'sound/vox/eliminate.wav', +"emergency" = 'sound/vox/emergency.wav', +"energy" = 'sound/vox/energy.wav', +"engage" = 'sound/vox/engage.wav', +"engaged" = 'sound/vox/engaged.wav', +"engine" = 'sound/vox/engine.wav', +"enter" = 'sound/vox/enter.wav', +"entry" = 'sound/vox/entry.wav', +"environment" = 'sound/vox/environment.wav', +"error" = 'sound/vox/error.wav', +"escape" = 'sound/vox/escape.wav', +"evacuate" = 'sound/vox/evacuate.wav', +"exchange" = 'sound/vox/exchange.wav', +"exit" = 'sound/vox/exit.wav', +"expect" = 'sound/vox/expect.wav', +"experiment" = 'sound/vox/experiment.wav', +"experimental" = 'sound/vox/experimental.wav', +"explode" = 'sound/vox/explode.wav', +"explosion" = 'sound/vox/explosion.wav', +"exposure" = 'sound/vox/exposure.wav', +"exterminate" = 'sound/vox/exterminate.wav', +"extinguish" = 'sound/vox/extinguish.wav', +"extinguisher" = 'sound/vox/extinguisher.wav', +"extreme" = 'sound/vox/extreme.wav', +"f" = 'sound/vox/f.wav', +"facility" = 'sound/vox/facility.wav', +"fahrenheit" = 'sound/vox/fahrenheit.wav', +"failed" = 'sound/vox/failed.wav', +"failure" = 'sound/vox/failure.wav', +"farthest" = 'sound/vox/farthest.wav', +"fast" = 'sound/vox/fast.wav', +"feet" = 'sound/vox/feet.wav', +"field" = 'sound/vox/field.wav', +"fifteen" = 'sound/vox/fifteen.wav', +"fifth" = 'sound/vox/fifth.wav', +"fifty" = 'sound/vox/fifty.wav', +"final" = 'sound/vox/final.wav', +"fine" = 'sound/vox/fine.wav', +"fire" = 'sound/vox/fire.wav', +"first" = 'sound/vox/first.wav', +"five" = 'sound/vox/five.wav', +"flooding" = 'sound/vox/flooding.wav', +"floor" = 'sound/vox/floor.wav', +"fool" = 'sound/vox/fool.wav', +"for" = 'sound/vox/for.wav', +"forbidden" = 'sound/vox/forbidden.wav', +"force" = 'sound/vox/force.wav', +"forms" = 'sound/vox/forms.wav', +"found" = 'sound/vox/found.wav', +"four" = 'sound/vox/four.wav', +"fourteen" = 'sound/vox/fourteen.wav', +"fourth" = 'sound/vox/fourth.wav', +"fourty" = 'sound/vox/fourty.wav', +"foxtrot" = 'sound/vox/foxtrot.wav', +"freeman" = 'sound/vox/freeman.wav', +"freezer" = 'sound/vox/freezer.wav', +"from" = 'sound/vox/from.wav', +"front" = 'sound/vox/front.wav', +"fuel" = 'sound/vox/fuel.wav', +"g" = 'sound/vox/g.wav', +"get" = 'sound/vox/get.wav', +"go" = 'sound/vox/go.wav', +"going" = 'sound/vox/going.wav', +"good" = 'sound/vox/good.wav', +"goodbye" = 'sound/vox/goodbye.wav', +"gordon" = 'sound/vox/gordon.wav', +"got" = 'sound/vox/got.wav', +"government" = 'sound/vox/government.wav', +"granted" = 'sound/vox/granted.wav', +"great" = 'sound/vox/great.wav', +"green" = 'sound/vox/green.wav', +"grenade" = 'sound/vox/grenade.wav', +"guard" = 'sound/vox/guard.wav', +"gulf" = 'sound/vox/gulf.wav', +"gun" = 'sound/vox/gun.wav', +"guthrie" = 'sound/vox/guthrie.wav', +"handling" = 'sound/vox/handling.wav', +"hangar" = 'sound/vox/hangar.wav', +"has" = 'sound/vox/has.wav', +"have" = 'sound/vox/have.wav', +"hazard" = 'sound/vox/hazard.wav', +"head" = 'sound/vox/head.wav', +"health" = 'sound/vox/health.wav', +"heat" = 'sound/vox/heat.wav', +"helicopter" = 'sound/vox/helicopter.wav', +"helium" = 'sound/vox/helium.wav', +"hello" = 'sound/vox/hello.wav', +"help" = 'sound/vox/help.wav', +"here" = 'sound/vox/here.wav', +"hide" = 'sound/vox/hide.wav', +"high" = 'sound/vox/high.wav', +"highest" = 'sound/vox/highest.wav', +"hit" = 'sound/vox/hit.wav', +"hole" = 'sound/vox/hole.wav', +"hostile" = 'sound/vox/hostile.wav', +"hot" = 'sound/vox/hot.wav', +"hotel" = 'sound/vox/hotel.wav', +"hour" = 'sound/vox/hour.wav', +"hours" = 'sound/vox/hours.wav', +"hundred" = 'sound/vox/hundred.wav', +"hydro" = 'sound/vox/hydro.wav', +"i" = 'sound/vox/i.wav', +"idiot" = 'sound/vox/idiot.wav', +"illegal" = 'sound/vox/illegal.wav', +"immediate" = 'sound/vox/immediate.wav', +"immediately" = 'sound/vox/immediately.wav', +"in" = 'sound/vox/in.wav', +"inches" = 'sound/vox/inches.wav', +"india" = 'sound/vox/india.wav', +"ing" = 'sound/vox/ing.wav', +"inoperative" = 'sound/vox/inoperative.wav', +"inside" = 'sound/vox/inside.wav', +"inspection" = 'sound/vox/inspection.wav', +"inspector" = 'sound/vox/inspector.wav', +"interchange" = 'sound/vox/interchange.wav', +"intruder" = 'sound/vox/intruder.wav', +"invallid" = 'sound/vox/invallid.wav', +"invasion" = 'sound/vox/invasion.wav', +"is" = 'sound/vox/is.wav', +"it" = 'sound/vox/it.wav', +"johnson" = 'sound/vox/johnson.wav', +"juliet" = 'sound/vox/juliet.wav', +"key" = 'sound/vox/key.wav', +"kill" = 'sound/vox/kill.wav', +"kilo" = 'sound/vox/kilo.wav', +"kit" = 'sound/vox/kit.wav', +"lab" = 'sound/vox/lab.wav', +"lambda" = 'sound/vox/lambda.wav', +"laser" = 'sound/vox/laser.wav', +"last" = 'sound/vox/last.wav', +"launch" = 'sound/vox/launch.wav', +"leak" = 'sound/vox/leak.wav', +"leave" = 'sound/vox/leave.wav', +"left" = 'sound/vox/left.wav', +"legal" = 'sound/vox/legal.wav', +"level" = 'sound/vox/level.wav', +"lever" = 'sound/vox/lever.wav', +"lie" = 'sound/vox/lie.wav', +"lieutenant" = 'sound/vox/lieutenant.wav', +"life" = 'sound/vox/life.wav', +"light" = 'sound/vox/light.wav', +"lima" = 'sound/vox/lima.wav', +"liquid" = 'sound/vox/liquid.wav', +"loading" = 'sound/vox/loading.wav', +"locate" = 'sound/vox/locate.wav', +"located" = 'sound/vox/located.wav', +"location" = 'sound/vox/location.wav', +"lock" = 'sound/vox/lock.wav', +"locked" = 'sound/vox/locked.wav', +"locker" = 'sound/vox/locker.wav', +"lockout" = 'sound/vox/lockout.wav', +"lower" = 'sound/vox/lower.wav', +"lowest" = 'sound/vox/lowest.wav', +"magnetic" = 'sound/vox/magnetic.wav', +"main" = 'sound/vox/main.wav', +"maintenance" = 'sound/vox/maintenance.wav', +"malfunction" = 'sound/vox/malfunction.wav', +"man" = 'sound/vox/man.wav', +"mass" = 'sound/vox/mass.wav', +"materials" = 'sound/vox/materials.wav', +"maximum" = 'sound/vox/maximum.wav', +"may" = 'sound/vox/may.wav', +"medical" = 'sound/vox/medical.wav', +"men" = 'sound/vox/men.wav', +"mercy" = 'sound/vox/mercy.wav', +"mesa" = 'sound/vox/mesa.wav', +"message" = 'sound/vox/message.wav', +"meter" = 'sound/vox/meter.wav', +"micro" = 'sound/vox/micro.wav', +"middle" = 'sound/vox/middle.wav', +"mike" = 'sound/vox/mike.wav', +"miles" = 'sound/vox/miles.wav', +"military" = 'sound/vox/military.wav', +"milli" = 'sound/vox/milli.wav', +"million" = 'sound/vox/million.wav', +"minefield" = 'sound/vox/minefield.wav', +"minimum" = 'sound/vox/minimum.wav', +"minutes" = 'sound/vox/minutes.wav', +"mister" = 'sound/vox/mister.wav', +"mode" = 'sound/vox/mode.wav', +"motor" = 'sound/vox/motor.wav', +"motorpool" = 'sound/vox/motorpool.wav', +"move" = 'sound/vox/move.wav', +"must" = 'sound/vox/must.wav', +"nearest" = 'sound/vox/nearest.wav', +"nice" = 'sound/vox/nice.wav', +"nine" = 'sound/vox/nine.wav', +"nineteen" = 'sound/vox/nineteen.wav', +"ninety" = 'sound/vox/ninety.wav', +"no" = 'sound/vox/no.wav', +"nominal" = 'sound/vox/nominal.wav', +"north" = 'sound/vox/north.wav', +"not" = 'sound/vox/not.wav', +"november" = 'sound/vox/november.wav', +"now" = 'sound/vox/now.wav', +"number" = 'sound/vox/number.wav', +"objective" = 'sound/vox/objective.wav', +"observation" = 'sound/vox/observation.wav', +"of" = 'sound/vox/of.wav', +"officer" = 'sound/vox/officer.wav', +"ok" = 'sound/vox/ok.wav', +"on" = 'sound/vox/on.wav', +"one" = 'sound/vox/one.wav', +"open" = 'sound/vox/open.wav', +"operating" = 'sound/vox/operating.wav', +"operations" = 'sound/vox/operations.wav', +"operative" = 'sound/vox/operative.wav', +"option" = 'sound/vox/option.wav', +"order" = 'sound/vox/order.wav', +"organic" = 'sound/vox/organic.wav', +"oscar" = 'sound/vox/oscar.wav', +"out" = 'sound/vox/out.wav', +"outside" = 'sound/vox/outside.wav', +"over" = 'sound/vox/over.wav', +"overload" = 'sound/vox/overload.wav', +"override" = 'sound/vox/override.wav', +"pacify" = 'sound/vox/pacify.wav', +"pain" = 'sound/vox/pain.wav', +"pal" = 'sound/vox/pal.wav', +"panel" = 'sound/vox/panel.wav', +"percent" = 'sound/vox/percent.wav', +"perimeter" = 'sound/vox/perimeter.wav', +"permitted" = 'sound/vox/permitted.wav', +"personnel" = 'sound/vox/personnel.wav', +"pipe" = 'sound/vox/pipe.wav', +"plant" = 'sound/vox/plant.wav', +"platform" = 'sound/vox/platform.wav', +"please" = 'sound/vox/please.wav', +"point" = 'sound/vox/point.wav', +"portal" = 'sound/vox/portal.wav', +"power" = 'sound/vox/power.wav', +"presence" = 'sound/vox/presence.wav', +"press" = 'sound/vox/press.wav', +"primary" = 'sound/vox/primary.wav', +"proceed" = 'sound/vox/proceed.wav', +"processing" = 'sound/vox/processing.wav', +"progress" = 'sound/vox/progress.wav', +"proper" = 'sound/vox/proper.wav', +"propulsion" = 'sound/vox/propulsion.wav', +"prosecute" = 'sound/vox/prosecute.wav', +"protective" = 'sound/vox/protective.wav', +"push" = 'sound/vox/push.wav', +"quantum" = 'sound/vox/quantum.wav', +"quebec" = 'sound/vox/quebec.wav', +"question" = 'sound/vox/question.wav', +"questioning" = 'sound/vox/questioning.wav', +"quick" = 'sound/vox/quick.wav', +"quit" = 'sound/vox/quit.wav', +"radiation" = 'sound/vox/radiation.wav', +"radioactive" = 'sound/vox/radioactive.wav', +"rads" = 'sound/vox/rads.wav', +"rapid" = 'sound/vox/rapid.wav', +"reach" = 'sound/vox/reach.wav', +"reached" = 'sound/vox/reached.wav', +"reactor" = 'sound/vox/reactor.wav', +"red" = 'sound/vox/red.wav', +"relay" = 'sound/vox/relay.wav', +"released" = 'sound/vox/released.wav', +"remaining" = 'sound/vox/remaining.wav', +"renegade" = 'sound/vox/renegade.wav', +"repair" = 'sound/vox/repair.wav', +"report" = 'sound/vox/report.wav', +"reports" = 'sound/vox/reports.wav', +"required" = 'sound/vox/required.wav', +"research" = 'sound/vox/research.wav', +"resevoir" = 'sound/vox/resevoir.wav', +"resistance" = 'sound/vox/resistance.wav', +"right" = 'sound/vox/right.wav', +"rocket" = 'sound/vox/rocket.wav', +"roger" = 'sound/vox/roger.wav', +"romeo" = 'sound/vox/romeo.wav', +"room" = 'sound/vox/room.wav', +"round" = 'sound/vox/round.wav', +"run" = 'sound/vox/run.wav', +"safe" = 'sound/vox/safe.wav', +"safety" = 'sound/vox/safety.wav', +"sargeant" = 'sound/vox/sargeant.wav', +"satellite" = 'sound/vox/satellite.wav', +"save" = 'sound/vox/save.wav', +"science" = 'sound/vox/science.wav', +"scream" = 'sound/vox/scream.wav', +"screen" = 'sound/vox/screen.wav', +"search" = 'sound/vox/search.wav', +"second" = 'sound/vox/second.wav', +"secondary" = 'sound/vox/secondary.wav', +"seconds" = 'sound/vox/seconds.wav', +"sector" = 'sound/vox/sector.wav', +"secure" = 'sound/vox/secure.wav', +"secured" = 'sound/vox/secured.wav', +"security" = 'sound/vox/security.wav', +"select" = 'sound/vox/select.wav', +"selected" = 'sound/vox/selected.wav', +"service" = 'sound/vox/service.wav', +"seven" = 'sound/vox/seven.wav', +"seventeen" = 'sound/vox/seventeen.wav', +"seventy" = 'sound/vox/seventy.wav', +"severe" = 'sound/vox/severe.wav', +"sewage" = 'sound/vox/sewage.wav', +"sewer" = 'sound/vox/sewer.wav', +"shield" = 'sound/vox/shield.wav', +"shipment" = 'sound/vox/shipment.wav', +"shock" = 'sound/vox/shock.wav', +"shoot" = 'sound/vox/shoot.wav', +"shower" = 'sound/vox/shower.wav', +"shut" = 'sound/vox/shut.wav', +"side" = 'sound/vox/side.wav', +"sierra" = 'sound/vox/sierra.wav', +"sight" = 'sound/vox/sight.wav', +"silo" = 'sound/vox/silo.wav', +"six" = 'sound/vox/six.wav', +"sixteen" = 'sound/vox/sixteen.wav', +"sixty" = 'sound/vox/sixty.wav', +"slime" = 'sound/vox/slime.wav', +"slow" = 'sound/vox/slow.wav', +"soldier" = 'sound/vox/soldier.wav', +"some" = 'sound/vox/some.wav', +"someone" = 'sound/vox/someone.wav', +"something" = 'sound/vox/something.wav', +"son" = 'sound/vox/son.wav', +"sorry" = 'sound/vox/sorry.wav', +"south" = 'sound/vox/south.wav', +"squad" = 'sound/vox/squad.wav', +"square" = 'sound/vox/square.wav', +"stairway" = 'sound/vox/stairway.wav', +"status" = 'sound/vox/status.wav', +"sterile" = 'sound/vox/sterile.wav', +"sterilization" = 'sound/vox/sterilization.wav', +"storage" = 'sound/vox/storage.wav', +"sub" = 'sound/vox/sub.wav', +"subsurface" = 'sound/vox/subsurface.wav', +"sudden" = 'sound/vox/sudden.wav', +"suit" = 'sound/vox/suit.wav', +"superconducting" = 'sound/vox/superconducting.wav', +"supercooled" = 'sound/vox/supercooled.wav', +"supply" = 'sound/vox/supply.wav', +"surface" = 'sound/vox/surface.wav', +"surrender" = 'sound/vox/surrender.wav', +"surround" = 'sound/vox/surround.wav', +"surrounded" = 'sound/vox/surrounded.wav', +"switch" = 'sound/vox/switch.wav', +"system" = 'sound/vox/system.wav', +"systems" = 'sound/vox/systems.wav', +"tactical" = 'sound/vox/tactical.wav', +"take" = 'sound/vox/take.wav', +"talk" = 'sound/vox/talk.wav', +"tango" = 'sound/vox/tango.wav', +"tank" = 'sound/vox/tank.wav', +"target" = 'sound/vox/target.wav', +"team" = 'sound/vox/team.wav', +"temperature" = 'sound/vox/temperature.wav', +"temporal" = 'sound/vox/temporal.wav', +"ten" = 'sound/vox/ten.wav', +"terminal" = 'sound/vox/terminal.wav', +"terminated" = 'sound/vox/terminated.wav', +"termination" = 'sound/vox/termination.wav', +"test" = 'sound/vox/test.wav', +"that" = 'sound/vox/that.wav', +"the" = 'sound/vox/the.wav', +"then" = 'sound/vox/then.wav', +"there" = 'sound/vox/there.wav', +"third" = 'sound/vox/third.wav', +"thirteen" = 'sound/vox/thirteen.wav', +"thirty" = 'sound/vox/thirty.wav', +"this" = 'sound/vox/this.wav', +"those" = 'sound/vox/those.wav', +"thousand" = 'sound/vox/thousand.wav', +"threat" = 'sound/vox/threat.wav', +"three" = 'sound/vox/three.wav', +"through" = 'sound/vox/through.wav', +"time" = 'sound/vox/time.wav', +"to" = 'sound/vox/to.wav', +"top" = 'sound/vox/top.wav', +"topside" = 'sound/vox/topside.wav', +"touch" = 'sound/vox/touch.wav', +"towards" = 'sound/vox/towards.wav', +"track" = 'sound/vox/track.wav', +"train" = 'sound/vox/train.wav', +"transportation" = 'sound/vox/transportation.wav', +"truck" = 'sound/vox/truck.wav', +"tunnel" = 'sound/vox/tunnel.wav', +"turn" = 'sound/vox/turn.wav', +"turret" = 'sound/vox/turret.wav', +"twelve" = 'sound/vox/twelve.wav', +"twenty" = 'sound/vox/twenty.wav', +"two" = 'sound/vox/two.wav', +"unauthorized" = 'sound/vox/unauthorized.wav', +"under" = 'sound/vox/under.wav', +"uniform" = 'sound/vox/uniform.wav', +"unlocked" = 'sound/vox/unlocked.wav', +"until" = 'sound/vox/until.wav', +"up" = 'sound/vox/up.wav', +"upper" = 'sound/vox/upper.wav', +"uranium" = 'sound/vox/uranium.wav', +"us" = 'sound/vox/us.wav', +"usa" = 'sound/vox/usa.wav', +"use" = 'sound/vox/use.wav', +"used" = 'sound/vox/used.wav', +"user" = 'sound/vox/user.wav', +"vacate" = 'sound/vox/vacate.wav', +"valid" = 'sound/vox/valid.wav', +"vapor" = 'sound/vox/vapor.wav', +"vent" = 'sound/vox/vent.wav', +"ventillation" = 'sound/vox/ventillation.wav', +"victor" = 'sound/vox/victor.wav', +"violated" = 'sound/vox/violated.wav', +"violation" = 'sound/vox/violation.wav', +"voltage" = 'sound/vox/voltage.wav', +"vox_login" = 'sound/vox/vox_login.wav', +"walk" = 'sound/vox/walk.wav', +"wall" = 'sound/vox/wall.wav', +"want" = 'sound/vox/want.wav', +"wanted" = 'sound/vox/wanted.wav', +"warm" = 'sound/vox/warm.wav', +"warn" = 'sound/vox/warn.wav', +"warning" = 'sound/vox/warning.wav', +"waste" = 'sound/vox/waste.wav', +"water" = 'sound/vox/water.wav', +"we" = 'sound/vox/we.wav', +"weapon" = 'sound/vox/weapon.wav', +"west" = 'sound/vox/west.wav', +"whiskey" = 'sound/vox/whiskey.wav', +"white" = 'sound/vox/white.wav', +"wilco" = 'sound/vox/wilco.wav', +"will" = 'sound/vox/will.wav', +"with" = 'sound/vox/with.wav', +"without" = 'sound/vox/without.wav', +"woop" = 'sound/vox/woop.wav', +"xeno" = 'sound/vox/xeno.wav', +"yankee" = 'sound/vox/yankee.wav', +"yards" = 'sound/vox/yards.wav', +"year" = 'sound/vox/year.wav', +"yellow" = 'sound/vox/yellow.wav', +"yes" = 'sound/vox/yes.wav', +"you" = 'sound/vox/you.wav', +"your" = 'sound/vox/your.wav', +"yourself" = 'sound/vox/yourself.wav', +"zero" = 'sound/vox/zero.wav', +"zone" = 'sound/vox/zone.wav', +"zulu" = 'sound/vox/zulu.wav') \ No newline at end of file diff --git a/code/modules/mob/living/silicon/pai/recruit.dm b/code/modules/mob/living/silicon/pai/recruit.dm index 4683f46aa2d..aff36bd0441 100644 --- a/code/modules/mob/living/silicon/pai/recruit.dm +++ b/code/modules/mob/living/silicon/pai/recruit.dm @@ -93,6 +93,8 @@ var/datum/paiController/paiController // Global handler for pAI candidates proc/recruitWindow(var/mob/M as mob) var/datum/paiCandidate/candidate for(var/datum/paiCandidate/c in pai_candidates) + if(!istype(c) || !istype(M)) + break if(c.key == M.key) candidate = c if(!candidate) diff --git a/code/modules/mob/living/silicon/robot/component.dm b/code/modules/mob/living/silicon/robot/component.dm new file mode 100644 index 00000000000..e730974401c --- /dev/null +++ b/code/modules/mob/living/silicon/robot/component.dm @@ -0,0 +1,145 @@ +// TODO: remove the robot.mmi and robot.cell variables and completely rely on the robot component system + +/datum/robot_component/var/name +/datum/robot_component/var/installed = 0 +/datum/robot_component/var/powered = 0 +/datum/robot_component/var/toggled = 1 +/datum/robot_component/var/brute_damage = 0 +/datum/robot_component/var/electronics_damage = 0 +/datum/robot_component/var/energy_consumption = 0 +/datum/robot_component/var/max_damage = 30 +/datum/robot_component/var/mob/living/silicon/robot/owner + +// The actual device object that has to be installed for this. +/datum/robot_component/var/external_type = null + +// The wrapped device(e.g. radio), only set if external_type isn't null +/datum/robot_component/var/obj/item/wrapped = null + +/datum/robot_component/New(mob/living/silicon/robot/R) + src.owner = R + +/datum/robot_component/proc/install() +/datum/robot_component/proc/uninstall() + +/datum/robot_component/proc/destroy() + if(wrapped) + del wrapped + + + wrapped = new/obj/item/broken_device + + // The thing itself isn't there anymore, but some fried remains are. + installed = -1 + uninstall() + +/datum/robot_component/proc/take_damage(brute, electronics, sharp) + if(installed != 1) return + + brute_damage += brute + electronics_damage += electronics + + if(brute_damage + electronics_damage >= max_damage) destroy() + +/datum/robot_component/proc/heal_damage(brute, electronics) + if(installed != 1) + // If it's not installed, can't repair it. + return 0 + + brute_damage = max(0, brute_damage - brute) + electronics_damage = max(0, electronics_damage - electronics) + +/datum/robot_component/proc/is_powered() + return (installed == 1) && (brute_damage + electronics_damage < max_damage) && (!energy_consumption || powered) + + +/datum/robot_component/proc/consume_power() + if(toggled == 0) + powered = 0 + return + if(owner.cell.charge >= energy_consumption) + owner.cell.use(energy_consumption) + powered = 1 + else + powered = 0 + + +/datum/robot_component/actuator + name = "actuator" + energy_consumption = 2 + external_type = /obj/item/robot_parts/robot_component/actuator + max_damage = 60 + +/datum/robot_component/cell + name = "power cell" + max_damage = 60 + +/datum/robot_component/cell/destroy() + ..() + owner.cell = null + +/datum/robot_component/radio + name = "radio" + external_type = /obj/item/robot_parts/robot_component/radio + energy_consumption = 3 + max_damage = 10 + +/datum/robot_component/binary_communication + name = "binary communication device" + external_type = /obj/item/robot_parts/robot_component/binary_communication_device + energy_consumption = 0 + max_damage = 30 + +/datum/robot_component/camera + name = "camera" + external_type = /obj/item/robot_parts/robot_component/camera + energy_consumption = 2 + max_damage = 20 + +/datum/robot_component/diagnosis_unit + name = "self-diagnosis unit" + energy_consumption = 1 + external_type = /obj/item/robot_parts/robot_component/diagnosis_unit + max_damage = 30 + +/mob/living/silicon/robot/proc/initialize_components() + // This only initializes the components, it doesn't set them to installed. + + components["actuator"] = new/datum/robot_component/actuator(src) + components["radio"] = new/datum/robot_component/radio(src) + components["power cell"] = new/datum/robot_component/cell(src) + components["diagnosis unit"] = new/datum/robot_component/diagnosis_unit(src) + components["camera"] = new/datum/robot_component/camera(src) + components["comms"] = new/datum/robot_component/binary_communication(src) + +/mob/living/silicon/robot/proc/is_component_functioning(module_name) + var/datum/robot_component/C = components[module_name] + return C && C.installed == 1 && C.toggled && C.is_powered() + +/obj/item/broken_device + name = "broken component" + icon = 'robot_component.dmi' + icon_state = "broken" + +/obj/item/robot_parts/robot_component + icon = 'robot_component.dmi' + icon_state = "working" + construction_time = 200 + construction_cost = list("metal"=5000) + + +// TODO: actual icons ;) +/obj/item/robot_parts/robot_component/binary_communication_device + name = "binary communication device" + +/obj/item/robot_parts/robot_component/actuator + name = "actuator" + +/obj/item/robot_parts/robot_component/camera + name = "camera" + +/obj/item/robot_parts/robot_component/diagnosis_unit + name = "diagnosis unit" + +/obj/item/robot_parts/robot_component/radio + name = "radio" diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index 534d22f5754..cf2237d970f 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -5,8 +5,6 @@ /mob/living/silicon/robot/get_active_hand() return module_active - - /*-------TODOOOOOOOOOO--------*/ /mob/living/silicon/robot/proc/uneq_active() if(isnull(module_active)) @@ -38,6 +36,7 @@ module_active = null module_state_3 = null inv3.icon_state = "inv3" + updateicon() /mob/living/silicon/robot/proc/uneq_all() module_active = null @@ -66,7 +65,7 @@ contents -= module_state_3 module_state_3 = null inv3.icon_state = "inv3" - + updateicon() /mob/living/silicon/robot/proc/activated(obj/item/O) if(module_state_1 == O) @@ -76,4 +75,5 @@ else if(module_state_3 == O) return 1 else - return 0 \ No newline at end of file + return 0 + updateicon() \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index a4d6cdc7481..c5d18dccd2b 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -5,7 +5,6 @@ if (src.monkeyizing) return - src.blinded = null //Status updates, death etc. @@ -21,9 +20,6 @@ process_locks() update_canmove() - - - /mob/living/silicon/robot/proc/clamp_values() // SetStunned(min(stunned, 30)) @@ -37,23 +33,25 @@ /mob/living/silicon/robot/proc/use_power() - if (src.cell) + if (is_component_functioning("power cell") && cell) if(src.cell.charge <= 0) uneq_all() src.stat = 1 - else if (src.cell.charge <= 100) - uneq_all() - src.sight_mode = 0 - src.cell.use(1) else if(src.module_state_1) - src.cell.use(5) + src.cell.use(3) if(src.module_state_2) - src.cell.use(5) + src.cell.use(3) if(src.module_state_3) - src.cell.use(5) - src.cell.use(1) - src.blinded = 0 + src.cell.use(3) + + for(var/V in components) + var/datum/robot_component/C = components[V] + C.consume_power() + + if(!is_component_functioning("actuator")) + Paralyse(3) + src.stat = 0 else uneq_all() @@ -68,9 +66,7 @@ else src.camera.status = 1 - health = 200 - (getOxyLoss() + getFireLoss() + getBruteLoss()) - - if(getOxyLoss() > 50) Paralyse(3) + updatehealth() if(src.sleeping) Paralyse(3) @@ -128,6 +124,17 @@ src.druggy-- src.druggy = max(0, src.druggy) + if(!is_component_functioning("radio")) + radio.on = 0 + else + radio.on = 1 + + if(is_component_functioning("camera")) + src.blinded = 0 + else + src.blinded = 1 + + return 1 /mob/living/silicon/robot/proc/handle_regular_hud_updates() @@ -273,7 +280,7 @@ src.module_state_2:screen_loc = ui_inv2 if(src.module_state_3) src.module_state_3:screen_loc = ui_inv3 - + updateicon() /mob/living/silicon/robot/proc/process_killswitch() if(killswitch) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 0f87682cdff..8a54261c694 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -5,8 +5,12 @@ icon_state = "robot" maxHealth = 300 health = 300 + universal_speak = 1 + var/sight_mode = 0 var/custom_name = "" + var/base_icon + var/custom_sprite = 0 //Due to all the sprites involved, a var for our custom borgs may be best //Hud stuff @@ -27,6 +31,9 @@ var/obj/item/weapon/cell/cell = null var/obj/machinery/camera/camera = null + // Components are basically robot organs. + var/list/components = list() + var/obj/item/device/mmi/mmi = null var/obj/item/device/pda/ai/rbPDA = null @@ -58,7 +65,7 @@ var/braintype = "Cyborg" var/pose -/mob/living/silicon/robot/New(loc,var/syndie = 0) +/mob/living/silicon/robot/New(loc,var/syndie = 0,var/unfinished = 0) spark_system = new /datum/effect/effect/system/spark_spread() spark_system.set_up(5, 0, src) spark_system.attach(src) @@ -67,12 +74,10 @@ updatename("Default") updateicon() - if(!cell) - cell = new /obj/item/weapon/cell(src) - cell.maxcharge = 7500 - cell.charge = 7500 - if(syndie) + if(!cell) + cell = new /obj/item/weapon/cell(src) + laws = new /datum/ai_laws/antimov() lawupdate = 0 scrambledcodes = 1 @@ -99,8 +104,27 @@ camera.network = list("SS13") if(isWireCut(5)) // 5 = BORG CAMERA camera.status = 0 + + initialize_components() + if(!unfinished) + // Create all the robot parts. + for(var/V in components) if(V != "power cell") + var/datum/robot_component/C = components[V] + C.installed = 1 + C.wrapped = new C.external_type + + if(!cell) + cell = new /obj/item/weapon/cell(src) + cell.maxcharge = 7500 + cell.charge = 7500 + ..() + if(cell) + var/datum/robot_component/cell_component = components["power cell"] + cell_component.wrapped = cell + cell_component.installed = 1 + playsound(loc, 'sound/voice/liveagain.ogg', 75, 1) // setup the PDA and its name @@ -122,131 +146,96 @@ /mob/living/silicon/robot/proc/pick_module() if(module) return - var/mod = input("Please, select a module!", "Robot", null, null) in list("Standard", "Engineering", "Medical", "Miner", "Janitor","Service", "Security") + var/list/modules = list("Standard", "Engineering", "Medical", "Miner", "Janitor", "Service", "Security", "Combat") + if(emagged || security_level > SEC_LEVEL_BLUE) + src << "\red Crisis mode active. Combat module available." + modules+="Combat" + var/mod = input("Please, select a module!", "Robot", null, null) in modules + + var/module_sprites[0] //Used to store the associations between sprite names and sprite index. var/channels = list() + if(module) return + switch(mod) if("Standard") - updatename(mod) module = new /obj/item/weapon/robot_module/standard(src) - hands.icon_state = "standard" - var/icontype - if (src.name == "Lucy" && src.ckey == "rowtree") icontype = ("Lucy") - else icontype = input("Select an icon!", "Robot", null, null) in list("Basic", "Standard") - switch(icontype) - if("Basic") icon_state = "robot_old" - if("Lucy") icon_state = "rowtree-lucy" - else icon_state = "robot" modtype = "Stand" - feedback_inc("cyborg_standard",1) + module_sprites["Basic"] = "robot_old" + module_sprites["Android"] = "droid" + module_sprites["Default"] = "robot" if("Service") - updatename(mod) module = new /obj/item/weapon/robot_module/butler(src) - hands.icon_state = "service" - var/icontype - if (src.name == "Lucy" && src.ckey == "rowtree") icontype = ("Lucy") - else icontype = input("Select an icon!", "Robot", null, null) in list("Waitress", "Bro", "Butler", "Kent", "Rich") - switch(icontype) - if("Waitress") icon_state = "Service" - if("Kent") icon_state = "toiletbot" - if("Bro") icon_state = "Brobot" - if("Rich") icon_state = "maximillion" - if("Lucy") icon_state = "rowtree-lucy" - else icon_state = "Service2" modtype = "Butler" - feedback_inc("cyborg_service",1) + module_sprites["Waitress"] = "Service" + module_sprites["Kent"] = "toiletbot" + module_sprites["Bro"] = "Brobot" + module_sprites["Rich"] = "maximillion" + module_sprites["Default"] = "Service2" if("Miner") - updatename(mod) module = new /obj/item/weapon/robot_module/miner(src) - hands.icon_state = "miner" - var/icontype - if (src.name == "Lucy" && src.ckey == "rowtree") icontype = ("Lucy") - else icontype = input("Select an icon!", "Robot", null, null) in list("Basic", "Advanced Droid", "Treadhead") - switch(icontype) - if("Basic") icon_state = "Miner_old" - if("Advanced Droid") icon_state = "droid-miner" - if("Lucy") icon_state = "rowtree-lucy" - else icon_state = "Miner" modtype = "Miner" - feedback_inc("cyborg_miner",1) - channels = list("Mining" = 1) + channels = list("Supply" = 1) + module_sprites["Basic"] = "Miner_old" + module_sprites["Advanced Droid"] = "droid-miner" + module_sprites["Treadhead"] = "Miner" if("Medical") - updatename(mod) module = new /obj/item/weapon/robot_module/medical(src) - hands.icon_state = "medical" - var/icontype - if (src.name == "Lucy" && src.ckey == "rowtree") icontype = ("Lucy") - else icontype = input("Select an icon!", "Robot", null, null) in list("Basic", "Advanced Droid", "Needles", "Hoverbot") - switch(icontype) - if("Basic") icon_state = "Medbot" - if("Advanced Droid") icon_state = "droid-medical" - if("Needles") icon_state = "medicalrobot" - if("Lucy") icon_state = "rowtree-medical" - else icon_state = "surgeon" modtype = "Med" - status_flags &= ~CANPUSH - feedback_inc("cyborg_medical",1) channels = list("Medical" = 1) + module_sprites["Basic"] = "Medbot" + module_sprites["Advanced Droid"] = "droid-medical" + module_sprites["Needles"] = "medicalrobot" + module_sprites["Standard"] = "surgeon" if("Security") - updatename(mod) module = new /obj/item/weapon/robot_module/security(src) - hands.icon_state = "security" - var/icontype - if (src.name == "Lucy" && src.ckey == "rowtree") icontype = ("Lucy") - else icontype = input("Select an icon!", "Robot", null, null) in list("Basic", "Red Knight", "Black Knight", "Bloodhound") - switch(icontype) - if("Basic") icon_state = "secborg" - if("Red Knight") icon_state = "Security" - if("Black Knight") icon_state = "securityrobot" - if("Lucy") icon_state = "rowtree-security" - else icon_state = "bloodhound" modtype = "Sec" - //speed = -1 Secborgs have nerfed tasers now, so the speed boost is not necessary - status_flags &= ~CANPUSH - feedback_inc("cyborg_security",1) channels = list("Security" = 1) + module_sprites["Basic"] = "secborg" + module_sprites["Red Knight"] = "Security" + module_sprites["Black Knight"] = "securityrobot" + module_sprites["Bloodhound"] = "bloodhound" if("Engineering") - updatename(mod) module = new /obj/item/weapon/robot_module/engineering(src) - hands.icon_state = "engineer" - var/icontype - if (src.name == "Lucy" && src.ckey == "rowtree") icontype = ("Lucy") - else icontype = input("Select an icon!", "Robot", null, null) in list("Basic", "Antique", "Landmate") - switch(icontype) - if("Basic") icon_state = "Engineering" - if("Antique") icon_state = "engineerrobot" - if("Lucy") icon_state = "rowtree-engineering" - else icon_state = "landmate" modtype = "Eng" - feedback_inc("cyborg_engineering",1) channels = list("Engineering" = 1) + module_sprites["Basic"] = "Engineering" + module_sprites["Antique"] = "engineerrobot" + module_sprites["Landmate"] = "landmate" if("Janitor") - updatename(mod) module = new /obj/item/weapon/robot_module/janitor(src) - hands.icon_state = "janitor" - var/icontype - if (src.name == "Lucy" && src.ckey == "rowtree") icontype = ("Lucy") - else icontype = input("Select an icon!", "Robot", null, null) in list("Basic", "Mopbot", "Zamboni") - switch(icontype) - if("Basic") icon_state = "JanBot2" - if("Mopbot") icon_state = "janitorrobot" - if("Lucy") icon_state = "rowtree-lucy" - else icon_state = "mopgearrex" modtype = "Jan" - feedback_inc("cyborg_janitor",1) + module_sprites["Basic"] = "JanBot2" + module_sprites["Mopbot"] = "janitorrobot" + module_sprites["Mop Gear Rex"] = "mopgearrex" - overlays -= "eyes" //Takes off the eyes that it started with + if("Combat") + module = new /obj/item/weapon/robot_module/combat(src) + modtype = "Com" + module_sprites["Combat Android"] = "droid-combat" + channels = list("Security" = 1) + + //Custom_sprite check and entry + if (custom_sprite == 1) + module_sprites["Custom"] = "[src.ckey]-[mod]" + + hands.icon_state = lowertext(mod) + feedback_inc("cyborg_[lowertext(mod)]",1) + updatename(mod) + + if(mod == "Medical" || mod == "Security" || mod == "Combat") + status_flags &= ~CANPUSH + + choose_icon(6,module_sprites) radio.config(channels) - updateicon() - -/ + base_icon = icon_state /mob/living/silicon/robot/proc/updatename(var/prefix as text) @@ -262,10 +251,31 @@ changed_name = "[(prefix ? "[prefix] " : "")][braintype]-[num2text(ident)]" real_name = changed_name name = real_name - + // if we've changed our name, we also need to update the display name for our PDA setup_PDA() + //We also need to update name of internal camera. + if (camera) + camera.c_tag = changed_name + + if(!custom_sprite) //Check for custom sprite + var/file = file2text("config/custom_sprites.txt") + var/lines = text2list(file, "\n") + + for(var/line in lines) + // split & clean up + var/list/Entry = text2list(line, "-") + for(var/i = 1 to Entry.len) + Entry[i] = trim(Entry[i]) + + if(Entry.len < 2) + continue; + + if(Entry[1] == src.ckey && Entry[2] == src.real_name) //They're in the list? Custom sprite time, var and icon change required + custom_sprite = 1 + icon = 'icons/mob/custom-synthetic.dmi' + /mob/living/silicon/robot/verb/Namepick() if(custom_name) return 0 @@ -314,6 +324,53 @@ viewalerts = 1 src << browse(dat, "window=robotalerts&can_close=0") +/mob/living/silicon/robot/proc/self_diagnosis() + if(!is_component_functioning("diagnosis unit")) + return null + + var/dat = "[src.name] Self-Diagnosis Report\n" + for (var/V in components) + var/datum/robot_component/C = components[V] + dat += "[C.name]
    Power consumption[C.energy_consumption]
    Brute Damage:[C.brute_damage]
    Electronics Damage:[C.electronics_damage]
    Powered:[(!C.energy_consumption || C.is_powered()) ? "Yes" : "No"]
    Toggled:[ C.toggled ? "Yes" : "No"]

    " + + return dat + + +/mob/living/silicon/robot/verb/self_diagnosis_verb() + set category = "Robot Commands" + set name = "Self Diagnosis" + + if(!is_component_functioning("diagnosis unit")) + src << "\red Your self-diagnosis component isn't functioning." + + var/dat = self_diagnosis() + src << browse(dat, "window=robotdiagnosis") + + +/mob/living/silicon/robot/verb/toggle_component() + set category = "Robot Commands" + set name = "Toggle Component" + set desc = "Toggle a component, conserving power." + + var/list/installed_components = list() + for(var/V in components) + if(V == "power cell") continue + var/datum/robot_component/C = components[V] + if(C.installed) + installed_components += V + + var/toggle = input(src, "Which component do you want to toggle?", "Toggle Component") as null|anything in installed_components + if(!toggle) + return + + var/datum/robot_component/C = components[toggle] + if(C.toggled) + C.toggled = 0 + src << "\red You disable [C.name]." + else + C.toggled = 1 + src << "\red You enable [C.name]." + /mob/living/silicon/robot/blob_act() if (stat != 2) adjustBruteLoss(60) @@ -497,7 +554,24 @@ if (istype(W, /obj/item/weapon/handcuffs)) // fuck i don't even know why isrobot() in handcuff code isn't working so this will have to do return + if(opened) // Are they trying to insert something? + for(var/V in components) + var/datum/robot_component/C = components[V] + if(!C.installed && istype(W, C.external_type)) + C.installed = 1 + C.wrapped = W + C.install() + user.drop_item() + W.loc = null + + usr << "\blue You install the [W.name]." + + return + if (istype(W, /obj/item/weapon/weldingtool)) + if (!getBruteLoss()) + user << "Nothing to fix here!" + return var/obj/item/weapon/weldingtool/WT = W if (WT.remove_fuel(0)) adjustBruteLoss(-30) @@ -510,6 +584,9 @@ return else if(istype(W, /obj/item/weapon/cable_coil) && wiresexposed) + if (!getFireLoss()) + user << "Nothing to fix here!" + return var/obj/item/weapon/cable_coil/coil = W adjustFireLoss(-30) updatehealth() @@ -536,6 +613,27 @@ C.updateicon() new/obj/item/robot_parts/chest(loc) src.Del() + else + // Okay we're not removing the cell or an MMI, but maybe something else? + var/list/removable_components = list() + for(var/V in components) + if(V == "power cell") continue + var/datum/robot_component/C = components[V] + if(C.installed == 1 || C.installed == -1) + removable_components += V + + var/remove = input(user, "Which component do you want to pry out?", "Remove Component") as null|anything in removable_components + if(!remove) + return + var/datum/robot_component/C = components[remove] + var/obj/item/I = C.wrapped + user << "You remove \the [I]." + I.loc = src.loc + + if(C.installed == 1) + C.uninstall() + C.installed = 0 + else if(locked) user << "The cover is locked and cannot be opened." @@ -545,6 +643,7 @@ updateicon() else if (istype(W, /obj/item/weapon/cell) && opened) // trying to put a cell inside + var/datum/robot_component/C = components["power cell"] if(wiresexposed) user << "Close the panel first." else if(cell) @@ -554,8 +653,10 @@ W.loc = src cell = W user << "You insert the power cell." -// chargecount = 0 - updateicon() + + C.installed = 1 + C.wrapped = W + C.install() else if (istype(W, /obj/item/weapon/wirecutters) || istype(W, /obj/item/device/multitool)) if (wiresexposed) @@ -828,13 +929,21 @@ add_fingerprint(user) if(opened && !wiresexposed && (!istype(user, /mob/living/silicon))) + var/datum/robot_component/cell_component = components["power cell"] if(cell) cell.updateicon() cell.add_fingerprint(user) user.put_in_active_hand(cell) user << "You remove \the [cell]." cell = null + cell_component.wrapped = null + cell_component.installed = 0 updateicon() + else if(cell_component.installed == -1) + cell_component.installed = 0 + var/obj/item/broken_device = cell_component.wrapped + user << "You remove \the [broken_device]." + user.put_in_active_hand(broken_device) if(ishuman(user)) if(istype(user:gloves, /obj/item/clothing/gloves/space_ninja)&&user:gloves:candrain&&!user:gloves:draining) @@ -881,6 +990,14 @@ else overlays -= "eyes" + if(opened && custom_sprite == 1) //Custom borgs also have custom panels, heh + if(wiresexposed) + overlays += "[src.ckey]-openpanel +w" + else if(cell) + overlays += "[src.ckey]-openpanel +c" + else + overlays += "[src.ckey]-openpanel -c" + if(opened) if(wiresexposed) overlays += "ov-openpanel +w" @@ -888,7 +1005,16 @@ overlays += "ov-openpanel +c" else overlays += "ov-openpanel -c" - return + + if(module_active && istype(module_active,/obj/item/borg/combat/shield)) + overlays += "[icon_state]-shield" + + if(base_icon) + if(module_active && istype(module_active,/obj/item/borg/combat/mobility)) + icon_state = "[base_icon]-roll" + else + icon_state = base_icon + return //Call when target overlay should be added/removed /mob/living/silicon/robot/update_targeted() @@ -1099,3 +1225,38 @@ set category = "IC" flavor_text = copytext(sanitize(input(usr, "Please enter your new flavour text.", "Flavour text", null) as text), 1) + +/mob/living/silicon/robot/proc/choose_icon(var/triesleft, var/list/module_sprites) + + if(triesleft<1 || !module_sprites.len) + return + else + triesleft-- + + var/icontype + + if (src.name == "Lucy" && src.ckey == "rowtree") + icontype = "Lucy" + triesleft = 0 + else + icontype = input("Select an icon! [triesleft ? "You have [triesleft] more chances." : "This is your last try."]", "Robot", null, null) in module_sprites + + if(icontype) + icon_state = module_sprites[icontype] + else + src << "Something is badly wrong with the sprite selection. Harass a coder." + icon_state = module_sprites[1] + return + + overlays -= "eyes" + updateicon() + + if (triesleft >= 1) + var/choice = input("Look at your icon - is this what you want?") in list("Yes","No") + if(choice=="No") + choose_icon(triesleft, module_sprites) + else + triesleft = 0 + return + else + src << "Your icon has been set. You now require a module reset to change it." \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm new file mode 100644 index 00000000000..632b39e9f6f --- /dev/null +++ b/code/modules/mob/living/silicon/robot/robot_damage.dm @@ -0,0 +1,129 @@ +/mob/living/silicon/robot/updatehealth() + if(status_flags & GODMODE) + health = 100 + stat = CONSCIOUS + return + health = 100 - (getBruteLoss() + getFireLoss()) + return + +/mob/living/silicon/robot/getBruteLoss() + var/amount = 0 + for(var/V in components) + var/datum/robot_component/C = components[V] + if(C.installed != 0) amount += C.brute_damage + return amount + +/mob/living/silicon/robot/getFireLoss() + var/amount = 0 + for(var/V in components) + var/datum/robot_component/C = components[V] + if(C.installed != 0) amount += C.electronics_damage + return amount + +/mob/living/silicon/robot/adjustBruteLoss(var/amount) + if(amount > 0) + take_overall_damage(amount, 0) + else + heal_overall_damage(-amount, 0) + +/mob/living/silicon/robot/adjustFireLoss(var/amount) + if(amount > 0) + take_overall_damage(0, amount) + else + heal_overall_damage(0, -amount) + +/mob/living/silicon/robot/proc/get_damaged_components(var/brute, var/burn) + var/list/datum/robot_component/parts = list() + for(var/V in components) + var/datum/robot_component/C = components[V] + if(C.installed == 1) if((brute && C.brute_damage) || (burn && C.electronics_damage)) + parts += C + return parts + +/mob/living/silicon/robot/proc/get_damageable_components() + var/list/rval = new + for(var/V in components) + var/datum/robot_component/C = components[V] + if(C.installed == 1) rval += C + return rval + +/mob/living/silicon/robot/heal_organ_damage(var/brute, var/burn) + var/list/datum/robot_component/parts = get_damaged_components(brute,burn) + if(!parts.len) return + var/datum/robot_component/picked = pick(parts) + picked.heal_damage(brute,burn) + +/mob/living/silicon/robot/take_organ_damage(var/brute = 0, var/burn = 0, var/sharp = 0) + var/list/components = get_damageable_components() + if(!components.len) + return + + //Combat shielding absorbs a percentage of damage directly into the cell. + if(module_active && istype(module_active,/obj/item/borg/combat/shield)) + var/obj/item/borg/combat/shield/shield = module_active + //Shields absorb a certain percentage of damage based on their power setting. + var/absorb_brute = brute*shield.shield_level + var/absorb_burn = burn*shield.shield_level + var/cost = (absorb_brute+absorb_burn)*100 + + cell.charge -= cost + if(cell.charge <= 0) + cell.charge = 0 + src << "\red Your shield has overloaded!" + else + brute -= absorb_brute + burn -= absorb_burn + src << "\red Your shield absorbs some of the impact!" + + var/datum/robot_component/C = pick(components) + C.take_damage(brute,burn,sharp) + +/mob/living/silicon/robot/heal_overall_damage(var/brute, var/burn) + var/list/datum/robot_component/parts = get_damaged_components(brute,burn) + + while(parts.len && (brute>0 || burn>0) ) + var/datum/robot_component/picked = pick(parts) + + var/brute_was = picked.brute_damage + var/burn_was = picked.electronics_damage + + picked.heal_damage(brute,burn) + + brute -= (brute_was-picked.brute_damage) + burn -= (burn_was-picked.electronics_damage) + + parts -= picked + +/mob/living/silicon/robot/take_overall_damage(var/brute = 0, var/burn = 0, var/sharp = 0, var/used_weapon = null) + if(status_flags & GODMODE) return //godmode + var/list/datum/robot_component/parts = get_damageable_components() + + //Combat shielding absorbs a percentage of damage directly into the cell. + if(module_active && istype(module_active,/obj/item/borg/combat/shield)) + var/obj/item/borg/combat/shield/shield = module_active + //Shields absorb a certain percentage of damage based on their power setting. + var/absorb_brute = brute*shield.shield_level + var/absorb_burn = burn*shield.shield_level + var/cost = (absorb_brute+absorb_burn)*100 + + cell.charge -= cost + if(cell.charge <= 0) + cell.charge = 0 + src << "\red Your shield has overloaded!" + else + brute -= absorb_brute + burn -= absorb_burn + src << "\red Your shield absorbs some of the impact!" + + while(parts.len && (brute>0 || burn>0) ) + var/datum/robot_component/picked = pick(parts) + + var/brute_was = picked.brute_damage + var/burn_was = picked.electronics_damage + + picked.take_damage(brute,burn) + + brute -= (picked.brute_damage - brute_was) + burn -= (picked.electronics_damage - burn_was) + + parts -= picked \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm index 4b66af1f7d5..1c24a5e75dd 100644 --- a/code/modules/mob/living/silicon/robot/robot_items.dm +++ b/code/modules/mob/living/silicon/robot/robot_items.dm @@ -120,3 +120,25 @@ add_fingerprint(user) return +//Personal shielding for the combat module. +/obj/item/borg/combat/shield + name = "personal shielding" + desc = "A powerful experimental module that turns aside or absorbs incoming attacks at the cost of charge." + icon = 'icons/obj/decals.dmi' + icon_state = "shock" + var/shield_level = 0.5 //Percentage of damage absorbed by the shield. + +/obj/item/borg/combat/shield/verb/set_shield_level() + set name = "Set shield level" + set category = "Object" + set src in range(0) + + var/N = input("How much damage should the shield absorb?") in list("5","10","25","50","75","100") + if (N) + shield_level = text2num(N)/100 + +/obj/item/borg/combat/mobility + name = "mobility module" + desc = "By retracting limbs and tucking in its head, a combat android can roll at high speeds." + icon = 'icons/obj/decals.dmi' + icon_state = "shock" \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 36243f06cb5..f0cf94d8e63 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -219,3 +219,17 @@ src.modules += new /obj/item/weapon/gun/energy/pulse_rifle/destroyer(src) src.modules += new /obj/item/weapon/card/emag(src) return + +/obj/item/weapon/robot_module/combat + name = "combat robot module" + + + New() + src.modules += new /obj/item/borg/sight/thermal(src) + src.modules += new /obj/item/weapon/gun/energy/lasercannon/cyborg(src) + src.modules += new /obj/item/weapon/pickaxe/plasmacutter(src) + src.modules += new /obj/item/borg/combat/shield(src) + src.modules += new /obj/item/borg/combat/mobility(src) + src.modules += new /obj/item/weapon/wrench(src) //Is a combat android really going to be stopped by a chair? + src.emag = new /obj/item/weapon/gun/energy/pulse_rifle/cyborg(src) + return \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot_movement.dm b/code/modules/mob/living/silicon/robot/robot_movement.dm index 158d11795fb..f1a62754b4b 100644 --- a/code/modules/mob/living/silicon/robot/robot_movement.dm +++ b/code/modules/mob/living/silicon/robot/robot_movement.dm @@ -12,4 +12,10 @@ tally = speed + if(module_active && istype(module_active,/obj/item/borg/combat/mobility)) + tally-=3 + return tally+config.robot_delay + +/mob/living/silicon/robot/Move() + ..() \ No newline at end of file diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index 81a85f7a5d8..6ef24637b9c 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -24,6 +24,14 @@ return ..(message) message = copytext(message, 3) message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)) + + // TODO: move the component system up to silicon so we don't have to use this ugly hack.. + if(istype(src, /mob/living/silicon/robot)) + var/mob/living/silicon/robot/R = src + if(!R.is_component_functioning("comms")) + src << "\red Your binary communications component isn't functional." + return + robot_talk(message) else if (department_radio_keys[prefix] == "department") if(isAI(src)&&client)//For patching directly into AI holopads. diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index f7154694f7e..74bd81ca934 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -96,7 +96,7 @@ AdjustParalysis(-1) //Movement - if(!client && !stop_automated_movement && wander) + if(!client && !stop_automated_movement && wander && !anchored) if(isturf(src.loc) && !resting && !buckled && canmove) //This is so it only moves if it's not inside a closet, gentics machine, etc. turns_since_move++ if(turns_since_move >= turns_per_move) diff --git a/code/modules/mob/living/simple_animal/vox.dm b/code/modules/mob/living/simple_animal/vox.dm new file mode 100644 index 00000000000..2ea43707ba8 --- /dev/null +++ b/code/modules/mob/living/simple_animal/vox.dm @@ -0,0 +1,161 @@ +/mob/living/simple_animal/vox/armalis/ + + name = "serpentine alien" + real_name = "serpentine alien" + desc = "A one-eyed, serpentine creature, half-machine, easily nine feet from tail to beak!" + icon = 'icons/mob/vox.dmi' + icon_state = "armalis" + icon_living = "armalis" + maxHealth = 500 + health = 500 + response_harm = "slashes at the" + harm_intent_damage = 0 + melee_damage_lower = 30 + melee_damage_upper = 40 + attacktext = "slammed its enormous claws into" + speed = -1 + wall_smash = 1 + attack_sound = 'sound/weapons/bladeslice.ogg' + status_flags = 0 + universal_speak = 1 + vox_talk_understand = 1 + + var/armour = null + var/amp = null + var/quills = 3 + +/mob/living/simple_animal/vox/armalis/Die() + + living_mob_list -= src + dead_mob_list += src + stat = DEAD + visible_message("\red [src] shudders violently and explodes!","\red You feel your body rupture!") + explosion(get_turf(loc), -1, -1, 3, 5) + src.gib() + return + +/mob/living/simple_animal/vox/armalis/attackby(var/obj/item/O as obj, var/mob/user as mob) + if(O.force) + if(O.force >= 25) + var/damage = O.force + if (O.damtype == HALLOSS) + damage = 0 + health -= damage + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red \b [src] has been attacked with the [O] by [user]. ") + else + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red \b The [O] bounces harmlessly off of [src]. ") + else + usr << "\red This weapon is ineffective, it does no damage." + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red [user] gently taps [src] with the [O]. ") + +/mob/living/simple_animal/vox/armalis/verb/fire_quill(mob/target as mob in oview()) + + set name = "Fire quill" + set desc = "Fires a viciously pointed quill at a high speed." + set category = "Alien" + + if(quills<=0) + return + + src << "\red You launch a razor-sharp quill at [target]!" + for(var/mob/O in oviewers()) + if ((O.client && !( O.blinded ))) + O << "\red [src] launches a razor-sharp quill at [target]!" + + var/obj/item/weapon/arrow/quill/Q = new(loc) + Q.fingerprintslast = src.ckey + Q.throw_at(target,10,20) + quills-- + + spawn(100) + src << "\red You feel a fresh quill slide into place." + quills++ + +/mob/living/simple_animal/vox/armalis/verb/message_mob() + set category = "Alien" + set name = "Commune with creature" + set desc = "Send a telepathic message to an unlucky recipient." + + var/list/targets = list() + var/target = null + var/text = null + + targets += getmobs() //Fill list, prompt user with list + target = input("Select a creature!", "Speak to creature", null, null) as null|anything in targets + text = input("What would you like to say?", "Speak to creature", null, null) + + if (!target || !text) + return + + var/mob/M = targets[target] + + if(istype(M, /mob/dead/observer) || M.stat == DEAD) + src << "Not even the armalis can speak to the dead." + return + + M << "\blue Like lead slabs crashing into the ocean, alien thoughts drop into your mind: [text]" + if(istype(M,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + if(H.dna.mutantrace == "vox") + return + H << "\red Your nose begins to bleed..." + H.drip(1) + +/mob/living/simple_animal/vox/armalis/verb/shriek() + set category = "Alien" + set name = "Shriek" + set desc = "Give voice to a psychic shriek." + +/mob/living/simple_animal/vox/armalis/attackby(var/obj/item/O as obj, var/mob/user as mob) + if(istype(O,/obj/item/vox/armalis_armour)) + user.drop_item() + armour = O + speed = 1 + maxHealth += 200 + health += 200 + O.loc = src + visible_message("\blue [src] is quickly outfitted in [O] by [user].","\blue You quickly outfit [src] in [O].") + regenerate_icons() + return + if(istype(O,/obj/item/vox/armalis_amp)) + user.drop_item() + amp = O + O.loc = src + visible_message("\blue [src] is quickly outfitted in [O] by [user].","\blue You quickly outfit [src] in [O].") + regenerate_icons() + return + return ..() + +/mob/living/simple_animal/vox/armalis/regenerate_icons() + + overlays = list() + if(armour) + var/icon/armour = image('icons/mob/vox.dmi',"armour") + speed = 1 + overlays += armour + if(amp) + var/icon/amp = image('icons/mob/vox.dmi',"amplifier") + overlays += amp + return + +/obj/item/vox/armalis_armour + + name = "strange armour" + desc = "Hulking reinforced armour for something huge." + icon = 'icons/obj/clothing/suits.dmi' + icon_state = "armalis_armour" + item_state = "armalis_armour" + +/obj/item/vox/armalis_amp + + name = "strange lenses" + desc = "A series of metallic lenses and chains." + icon = 'icons/obj/clothing/hats.dmi' + icon_state = "amp" + item_state = "amp" \ No newline at end of file diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index b52f73f8668..43845696347 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -583,24 +583,29 @@ var/list/slot_equipment_priority = list( \ pulling = null /mob/proc/start_pulling(var/atom/movable/AM) + if ( !AM || !usr || src==AM || !isturf(src.loc) ) //if there's no person pulling OR the person is pulling themself OR the object being pulled is inside something: abort! return - if (!( AM.anchored )) - if(pulling) - var/pulling_old = pulling - stop_pulling() - // Are we pulling the same thing twice? Just stop pulling. - if(pulling_old == AM) - return - src.pulling = AM - AM.pulledby = src - if(ismob(AM)) - var/mob/M = AM - if(!iscarbon(src)) - M.LAssailant = null - else - M.LAssailant = usr + if (AM.anchored) + return + + var/mob/M = AM + if(ismob(AM)) + if(!iscarbon(src)) + M.LAssailant = null + else + M.LAssailant = usr + + if(pulling) + var/pulling_old = pulling + stop_pulling() + // Are we pulling the same thing twice? Just stop pulling. + if(pulling_old == AM) + return + + src.pulling = AM + AM.pulledby = src /mob/proc/can_use_hands() return @@ -888,3 +893,66 @@ note dizziness decrements automatically in the mob's Life() proc. /mob/proc/flash_weak_pain() flick("weak_pain",pain) + +mob/verb/yank_out_object() + set category = "Object" + set name = "Yank out object" + set desc = "Remove an embedded item at the cost of bleeding and pain." + set src in view(1) + + if(!isliving(usr) || usr.next_move > world.time) + return + usr.next_move = world.time + 20 + + if(usr.stat == 1) + usr << "You are unconcious and cannot do that!" + return + + if(usr.restrained()) + usr << "You are restrained and cannot do that!" + return + + var/mob/S = src + var/mob/U = usr + var/list/valid_objects = list() + var/self = null + + if(S == U) + self = 1 // Removing object from yourself. + + for(var/obj/item/weapon/W in embedded) + if(W.w_class >= 2) + valid_objects += W + + if(!valid_objects.len) + if(self) + src << "You have nothing stuck in your body that is large enough to remove." + else + U << "[src] has nothing stuck in their wounds that is large enough to remove." + return + + var/obj/item/weapon/selection = input("What do you want to yank out?", "Embedded objects") in valid_objects + + if(self) + src << "You attempt to get a good grip on the [selection] in your body." + else + U << "You attempt to get a good grip on the [selection] in [S]'s body." + + if(!do_after(U, 80)) + return + if(!selection || !S || !U) + return + + if(self) + visible_message("[src] rips [selection] out of their body.","You rip [selection] out of your body.") + else + visible_message("[usr] rips [selection] out of [src]'s body.","[usr] rips [selection] out of your body.") + + selection.loc = get_turf(src) + + for(var/obj/item/weapon/O in pinned) + if(O == selection) + pinned -= O + if(!pinned.len) + anchored = 0 + return 1 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 9715e6ed20c..0a41d0d60ce 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -85,6 +85,8 @@ var/lastpuke = 0 var/unacidable = 0 var/small = 0 + var/list/pinned = list() //List of things pinning this creature to walls (see living_defense.dm) + var/list/embedded = list() //Embedded items, since simple mobs don't have organs. var/name_archive //For admin things like possession @@ -206,12 +208,13 @@ //Whether or not mobs can understand other mobtypes. These stay in /mob so that ghosts can hear everything. var/universal_speak = 0 // Set to 1 to enable the mob to speak to everyone -- TLE - var/robot_talk_understand = 0 - var/alien_talk_understand = 0 - var/tajaran_talk_understand = 0 - var/soghun_talk_understand = 0 - var/skrell_talk_understand = 0 - var/vox_talk_understand = 0 + var/robot_talk_understand = 0 + var/alien_talk_understand = 0 + var/tajaran_talk_understand = 0 + var/soghun_talk_understand = 0 + var/skrell_talk_understand = 0 + var/vox_talk_understand = 0 + var/kidan_talk_understand = 0 var/has_limbs = 1 //Whether this mob have any limbs he can move with var/can_stand = 1 //Whether this mob have ability to stand diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index cec9b06861a..80d55c0a041 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -256,7 +256,6 @@ if(!mob.canmove) return - //if(istype(mob.loc, /turf/space) || (mob.flags & NOGRAV)) // if(!mob.Process_Spacemove(0)) return 0 @@ -279,6 +278,10 @@ src << "\blue You're restrained! You can't move!" return 0 + if(mob.pinned.len) + src << "\blue You're pinned to a wall by [mob.pinned[1]]!" + return 0 + move_delay = world.time//set move delay mob.last_move_intent = world.time + 10 switch(mob.m_intent) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 686007c7173..bb81a5ca4e7 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -269,6 +269,14 @@ proc/AttemptLateSpawn(rank) + if (src != usr) + return 0 + if(!ticker || ticker.current_state != GAME_STATE_PLAYING) + usr << "\red The round is either not ready, or has already finished..." + return 0 + if(!enter_allowed) + usr << "\blue There is an administrative lock on entering the game!" + return 0 if(!IsJobAvailable(rank)) src << alert("[rank] is not available. Please try another.") return 0 @@ -314,8 +322,10 @@ if(emergency_shuttle) //In case Nanotrasen decides reposess CentComm's shuttles. if(emergency_shuttle.direction == 2) //Shuttle is going to centcomm, not recalled dat += "The station has been evacuated.
    " - if(emergency_shuttle.direction == 1 && emergency_shuttle.timeleft() < 300) //Shuttle is past the point of no recall + if(emergency_shuttle.direction == 1 && emergency_shuttle.timeleft() < 300 && emergency_shuttle.alert == 0) // Emergency shuttle is past the point of no recall dat += "The station is currently undergoing evacuation procedures.
    " + if(emergency_shuttle.direction == 1 && emergency_shuttle.alert == 1) // Crew transfer initiated + dat += "The station is currently undergoing crew transfer procedures.
    " dat += "Choose from the following open positions:
    " for(var/datum/job/job in job_master.occupations) @@ -338,21 +348,35 @@ new_character.lastarea = get_area(loc) if(client.prefs.species == "Tajaran") //This is like the worst, but it works, so meh. - Erthilo - if(is_alien_whitelisted(src, "Tajaran"|| !config.usealienwhitelist)) + if(is_alien_whitelisted(src, "Tajaran") || !config.usealienwhitelist) new_character.dna.mutantrace = "tajaran" new_character.tajaran_talk_understand = 1 if(client.prefs.species == "Unathi") - if(is_alien_whitelisted(src, "Soghun"|| !config.usealienwhitelist)) + if(is_alien_whitelisted(src, "Soghun") || !config.usealienwhitelist) new_character.dna.mutantrace = "lizard" new_character.soghun_talk_understand = 1 if(client.prefs.species == "Skrell") - if(is_alien_whitelisted(src, "Skrell"|| !config.usealienwhitelist)) + if(is_alien_whitelisted(src, "Skrell") || !config.usealienwhitelist) new_character.dna.mutantrace = "skrell" new_character.skrell_talk_understand = 1 - if(client.prefs.species == "Vox") - if(is_alien_whitelisted(src, "Vox"|| !config.usealienwhitelist)) - new_character.dna.mutantrace = "vox" - new_character.vox_talk_understand = 1 + if(client.prefs.species == "Kidan") + if(is_alien_whitelisted(src, "Kidan") || !config.usealienwhitelist) + new_character.dna.mutantrace = "kidan" + new_character.kidan_talk_understand = 1 + + if(client.prefs.language == "Tajaran") + if(is_alien_whitelisted(src, "Language_Tajaran") || !config.usealienwhitelist) + new_character.tajaran_talk_understand = 1 + if(client.prefs.language == "Unathi") + if(is_alien_whitelisted(src, "Language_Soghun") || !config.usealienwhitelist) + new_character.soghun_talk_understand = 1 + if(client.prefs.language == "Skrell") + if(is_alien_whitelisted(src, "Language_Skrell") || !config.usealienwhitelist) + new_character.skrell_talk_understand = 1 + if(client.prefs.language == "Kidan") + if(is_alien_whitelisted(src, "Language_Kidan") || !config.usealienwhitelist) + new_character.kidan_talk_understand = 1 + if(ticker.random_players) new_character.gender = pick(MALE, FEMALE) diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index f7c965d2fdf..44b11436c21 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -144,9 +144,10 @@ datum/preferences icobase = 'icons/mob/human_races/r_lizard.dmi' if("Skrell") icobase = 'icons/mob/human_races/r_skrell.dmi' - if("Vox") icobase = 'icons/mob/human_races/r_vox.dmi' + if("Kidan") + icobase = 'icons/mob/human_races/r_kidan.dmi' else icobase = 'icons/mob/human_races/r_human.dmi' @@ -430,6 +431,19 @@ datum/preferences clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-vir"), ICON_OVERLAY) if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) + if(ROBOTICIST) + clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s") + clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) + clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "toolbox_blue"), ICON_OVERLAY) + clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) + switch(backbag) + if(2) + clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) + if(3) + clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY) + if(4) + clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) else if(job_engsec_high) switch(job_engsec_high) @@ -537,19 +551,7 @@ datum/preferences clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY) if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) - if(ROBOTICIST) - clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s") - clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) - clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "toolbox_blue"), ICON_OVERLAY) - clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) - switch(backbag) - if(2) - clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) - if(3) - clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel-norm"), ICON_OVERLAY) - if(4) - clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) + if(AI)//Gives AI and borgs assistant-wear, so they can still customize their character clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 4d4baf0ba18..9a321f20382 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -285,7 +285,6 @@ icon_state = "hair_e" gender = MALE // turnoff! - bald name = "Bald" icon_state = "bald" @@ -306,7 +305,7 @@ name = "Shaved" icon_state = "bald" gender = NEUTER - species_allowed = list("Human","Unathi","Tajaran","Skrell","Vox") + species_allowed = list("Human","Unathi","Tajaran","Skrell","Vox","Kidan") watson name = "Watson Mustache" @@ -484,7 +483,7 @@ species_allowed = list("Tajaran") taj_ears_spiky - name = "Tajara Spiky" + name = "Tajara Spiky" icon_state = "hair_tajspiky" species_allowed = list("Tajaran") diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 9f3660eb7c5..e8a22926843 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -50,7 +50,7 @@ for(var/mob/M in player_list) if(istype(M, /mob/new_player)) continue - if(M.client && M.client.holder && M.client.holder.rights & R_ADMIN && (M.client.prefs.toggles & CHAT_DEAD)) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above + if(M.client && M.client.holder && (M.client.holder.rights & R_ADMIN|R_MOD) && (M.client.prefs.toggles & CHAT_DEAD)) //admins can toggle deadchat on and off. This is a proc in admin.dm and is only give to Administrators and above M << rendered //Admins can hear deadchat, if they choose to, no matter if they're blind/deaf or not. else if(M.stat == DEAD) M.show_message(rendered, 2) //Takes into account blindness and such. @@ -69,7 +69,7 @@ return 1 return 0 -/mob/proc/say_quote(var/text,var/is_speaking_soghun,var/is_speaking_skrell,var/is_speaking_tajaran,var/is_speaking_vox) +/mob/proc/say_quote(var/text,var/is_speaking_soghun,var/is_speaking_skrell,var/is_speaking_tajaran,var/is_speaking_vox,var/is_speaking_kidan) if(!text) return "says, \"...\""; //not the best solution, but it will stop a large number of runtimes. The cause is somewhere in the Tcomms code //tcomms code is still runtiming somewhere here @@ -81,7 +81,9 @@ if (is_speaking_tajaran) return "mrowls, \"[text]\""; if (is_speaking_vox) - return "chirps, \"[text]\""; + return "shrieks, \"[text]\""; + if (is_speaking_kidan) + return "chitters, \"[text]\""; //Needs Virus2 // if (src.disease_symptoms & DISEASE_HOARSE) // return "rasps, \"[text]\""; diff --git a/code/modules/mob/screen.dm b/code/modules/mob/screen.dm index b9767c3a299..15d1cb20cba 100644 --- a/code/modules/mob/screen.dm +++ b/code/modules/mob/screen.dm @@ -62,9 +62,11 @@ name = "storage" master = null -/obj/screen/storage/attackby(W, mob/user as mob) - src.master.attackby(W, user) - return +/obj/screen/storage/attack_hand(mob/user) + if(master) + var/obj/item/I = user.get_active_hand() + if(I) + master.attackby(I, user) /obj/screen/zone_sel name = "Damage Zone" diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index ca33eaa1b67..7976e9c27af 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -20,29 +20,104 @@ flick("h2monkey", animation) sleep(48) //animation = null - var/mob/living/carbon/monkey/O = new /mob/living/carbon/monkey( loc ) - del(animation) - O.name = "monkey" - O.dna = dna - dna = null - O.dna.uni_identity = "00600200A00E0110148FC01300B009" - //O.dna.struc_enzymes = "0983E840344C39F4B059D5145FC5785DC6406A4BB8" - O.dna.struc_enzymes = "[copytext(O.dna.struc_enzymes,1,1+3*(STRUCDNASIZE-1))]BB8" - O.loc = loc - O.viruses = viruses - viruses = list() - for(var/datum/disease/D in O.viruses) - D.affected_mob = O + var/mob/living/carbon/monkey/O = null + + switch(dna.mutantrace) + if("tajara") + O = new /mob/living/carbon/monkey/tajara( loc ) + O.name = "farwa" + O.dna = dna + dna = null + O.dna.uni_identity = "000000000000000000DC00000660004DA0A0E00" + //O.dna.struc_enzymes = "0983E840344C39F4B059D5145FC5785DC6406A4BB8" + O.dna.struc_enzymes = "[copytext(O.dna.struc_enzymes,1,1+3*(STRUCDNASIZE-1))]BB8" + O.loc = loc + O.viruses = viruses + viruses = list() + for(var/datum/disease/D in O.viruses) + D.affected_mob = O + + if (client) + client.mob = O + if(mind) + mind.transfer_to(O) + O << "You are now a farwa. " + O.a_intent = "hurt" + spawn(0)//To prevent the proc from returning null. + del(src) + del(animation) + if("lizard") + O = new /mob/living/carbon/monkey/unathi( loc ) + O.name = "stok" + O.dna = dna + dna = null + O.dna.uni_identity = "000000000000000000DC00000660002A8044C5D" + //O.dna.struc_enzymes = "0983E840344C39F4B059D5145FC5785DC6406A4BB8" + O.dna.struc_enzymes = "[copytext(O.dna.struc_enzymes,1,1+3*(STRUCDNASIZE-1))]BB8" + O.loc = loc + O.viruses = viruses + viruses = list() + for(var/datum/disease/D in O.viruses) + D.affected_mob = O + + if (client) + client.mob = O + if(mind) + mind.transfer_to(O) + O << "You are now a stok. " + O.a_intent = "hurt" + spawn(0)//To prevent the proc from returning null. + del(src) + del(animation) + if("skrell") + O = new /mob/living/carbon/monkey/unathi( loc ) + O.name = "neaera" + O.dna = dna + dna = null + O.dna.uni_identity = "000000000000000000DC00000660002A8044C5D" + //O.dna.struc_enzymes = "0983E840344C39F4B059D5145FC5785DC6406A4BB8" + O.dna.struc_enzymes = "[copytext(O.dna.struc_enzymes,1,1+3*(STRUCDNASIZE-1))]BB8" + O.loc = loc + O.viruses = viruses + viruses = list() + for(var/datum/disease/D in O.viruses) + D.affected_mob = O + + if (client) + client.mob = O + if(mind) + mind.transfer_to(O) + O << "You are now a neaera. " + O.a_intent = "hurt" + spawn(0)//To prevent the proc from returning null. + del(src) + del(animation) + else + O = new /mob/living/carbon/monkey( loc ) + O.name = "monkey" + O.dna = dna + dna = null + O.dna.uni_identity = "00600200A00E0110148FC01300B009" + //O.dna.struc_enzymes = "0983E840344C39F4B059D5145FC5785DC6406A4BB8" + O.dna.struc_enzymes = "[copytext(O.dna.struc_enzymes,1,1+3*(STRUCDNASIZE-1))]BB8" + O.loc = loc + O.viruses = viruses + viruses = list() + for(var/datum/disease/D in O.viruses) + D.affected_mob = O + + if (client) + client.mob = O + if(mind) + mind.transfer_to(O) + O << "You are now a monkey." + O.a_intent = "hurt" + spawn(0)//To prevent the proc from returning null. + del(src) + del(animation) + - if (client) - client.mob = O - if(mind) - mind.transfer_to(O) - O.a_intent = "hurt" - O << "You are now a monkey." - spawn(0)//To prevent the proc from returning null. - del(src) return O /mob/new_player/AIize() diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index cecf813dbce..a96e8cb1b26 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -35,6 +35,7 @@ var/open = 0 var/stage = 0 var/cavity = 0 + var/sabotaged = 0 //If a prosthetic limb is emagged, it will detonate when it fails. var/obj/item/hidden = null var/list/implants = list() @@ -364,6 +365,7 @@ burn_dam += W.damage if(!(status & ORGAN_ROBOT) && W.bleeding()) + W.bleed_timer-- status |= ORGAN_BLEEDING clamped |= W.clamped @@ -486,8 +488,8 @@ owner.u_equip(owner.shoes) if(organ) destspawn = 1 - //Robotic limbs explode until specified otherwise - if(status & ORGAN_ROBOT && !no_explode) + //Robotic limbs explode if sabotaged. + if(status & ORGAN_ROBOT && !no_explode && sabotaged) owner.visible_message("\red \The [owner]'s [display_name] explodes violently!",\ "\red Your [display_name] explodes!",\ "You hear an explosion followed by a scream!") @@ -498,10 +500,10 @@ spark_system.start() spawn(10) del(spark_system) - else - owner.visible_message("\red [owner.name]'s [display_name] flies off in an arc.",\ - "Your [display_name] goes flying off!",\ - "You hear a terrible sound of ripping tendons and flesh.") + + owner.visible_message("\red [owner.name]'s [display_name] flies off in an arc.",\ + "Your [display_name] goes flying off!",\ + "You hear a terrible sound of ripping tendons and flesh.") //Throw organs around var/lol = pick(cardinal) @@ -594,8 +596,8 @@ name = "chest" icon_name = "torso" display_name = "chest" - max_damage = 150 - min_broken_damage = 75 + max_damage = 75 + min_broken_damage = 40 body_part = UPPER_TORSO @@ -603,24 +605,24 @@ name = "groin" icon_name = "groin" display_name = "groin" - max_damage = 115 - min_broken_damage = 70 + max_damage = 50 + min_broken_damage = 30 body_part = LOWER_TORSO /datum/organ/external/l_arm name = "l_arm" display_name = "left arm" icon_name = "l_arm" - max_damage = 75 - min_broken_damage = 30 + max_damage = 50 + min_broken_damage = 20 body_part = ARM_LEFT /datum/organ/external/l_leg name = "l_leg" display_name = "left leg" icon_name = "l_leg" - max_damage = 75 - min_broken_damage = 30 + max_damage = 50 + min_broken_damage = 20 body_part = LEG_LEFT icon_position = LEFT @@ -628,16 +630,16 @@ name = "r_arm" display_name = "right arm" icon_name = "r_arm" - max_damage = 75 - min_broken_damage = 30 + max_damage = 50 + min_broken_damage = 20 body_part = ARM_RIGHT /datum/organ/external/r_leg name = "r_leg" display_name = "right leg" icon_name = "r_leg" - max_damage = 75 - min_broken_damage = 30 + max_damage = 50 + min_broken_damage = 20 body_part = LEG_RIGHT icon_position = RIGHT @@ -645,7 +647,7 @@ name = "l_foot" display_name = "left foot" icon_name = "l_foot" - max_damage = 40 + max_damage = 30 min_broken_damage = 15 body_part = FOOT_LEFT icon_position = LEFT @@ -654,7 +656,7 @@ name = "r_foot" display_name = "right foot" icon_name = "r_foot" - max_damage = 40 + max_damage = 30 min_broken_damage = 15 body_part = FOOT_RIGHT icon_position = RIGHT @@ -663,7 +665,7 @@ name = "r_hand" display_name = "right hand" icon_name = "r_hand" - max_damage = 40 + max_damage = 30 min_broken_damage = 15 body_part = HAND_RIGHT @@ -671,7 +673,7 @@ name = "l_hand" display_name = "left hand" icon_name = "l_hand" - max_damage = 40 + max_damage = 30 min_broken_damage = 15 body_part = HAND_LEFT @@ -744,9 +746,10 @@ obj/item/weapon/organ/New(loc, mob/living/carbon/human/H) base = new('icons/mob/human_races/r_lizard.dmi') if("skrell") base = new('icons/mob/human_races/r_skrell.dmi') - if("vox") base = new('icons/mob/human_races/r_vox.dmi') + if("kidan") + base = new('icons/mob/human_races/r_kidan.dmi') else base = new('icons/mob/human_races/r_human.dmi') diff --git a/code/modules/organs/wound.dm b/code/modules/organs/wound.dm index 1d1f61ec918..3df9e206c9c 100644 --- a/code/modules/organs/wound.dm +++ b/code/modules/organs/wound.dm @@ -13,7 +13,8 @@ // amount of damage this wound causes var/damage = 0 - + // ticks of bleeding left. + var/bleed_timer = 0 // amount of damage the current wound type requires(less means we need to apply the next healing stage) var/min_damage = 0 @@ -71,6 +72,8 @@ // this is more robust to changes to the list max_bleeding_stage = src.desc_list.len - max_bleeding_stage + bleed_timer += damage + // returns 1 if there's a next stage, 0 otherwise proc/next_stage() if(current_stage + 1 > src.desc_list.len) @@ -136,6 +139,7 @@ // opens the wound again proc/open_wound(damage) src.damage += damage + bleed_timer += damage while(src.current_stage > 1 && src.damage_list[current_stage-1] <= src.damage) src.current_stage-- @@ -145,7 +149,7 @@ proc/bleeding() // internal wounds don't bleed in the sense of this function - return (!(bandaged||clamped) && (damage_type == BRUISE && damage >= 20 || damage_type == CUT && damage >= 10) && current_stage <= max_bleeding_stage && !src.internal) + return ((damage > 30 || bleed_timer > 0) && !(bandaged||clamped) && (damage_type == BRUISE && damage >= 20 || damage_type == CUT && damage >= 5) && current_stage <= max_bleeding_stage && !src.internal) /** CUTS **/ /datum/wound/cut/small diff --git a/code/modules/power/gravitygenerator.dm b/code/modules/power/gravitygenerator.dm index cbdb9865409..73a0fce4ec5 100644 --- a/code/modules/power/gravitygenerator.dm +++ b/code/modules/power/gravitygenerator.dm @@ -128,7 +128,7 @@ for(var/area/A in gravity_generator:localareas) var/obj/machinery/gravity_generator/G - for(G in world) + for(G in machines) if((A.master in G.localareas) && (G.on)) break if(!G) diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index edd773ec4ae..315068792d3 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -346,7 +346,7 @@ field_generator power level display //I want to avoid using global variables. spawn(1) var/temp = 1 //stops spam - for(var/obj/machinery/singularity/O in world) + for(var/obj/machinery/singularity/O in machines) if(O.last_warning && temp) if((world.time - O.last_warning) > 50) //to stop message-spam temp = 0 diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 16e62ebc3a5..83abddb76b1 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -42,7 +42,7 @@ var/global/list/uneatable = list( spawn(temp) del(src) ..() - for(var/obj/machinery/singularity_beacon/singubeacon in world) + for(var/obj/machinery/singularity_beacon/singubeacon in machines) if(singubeacon.active) target = singubeacon break diff --git a/code/modules/power/turbine.dm b/code/modules/power/turbine.dm index 8724d76f098..82e05e954be 100644 --- a/code/modules/power/turbine.dm +++ b/code/modules/power/turbine.dm @@ -212,11 +212,11 @@ /obj/machinery/computer/turbine_computer/New() ..() spawn(5) - for(var/obj/machinery/compressor/C in world) + for(var/obj/machinery/compressor/C in machines) if(id == C.comp_id) compressor = C doors = new /list() - for(var/obj/machinery/door/poddoor/P in world) + for(var/obj/machinery/door/poddoor/P in machines) if(P.id == id) doors += P diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index d769acf00b2..6ed8669912f 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -74,6 +74,17 @@ obj/item/weapon/gun/energy/laser/retro isHandgun() return 0 +/obj/item/weapon/gun/energy/lasercannon/cyborg/load_into_chamber() + if(in_chamber) + return 1 + if(isrobot(src.loc)) + var/mob/living/silicon/robot/R = src.loc + if(R && R.cell) + R.cell.use(250) + in_chamber = new/obj/item/projectile/beam(src) + return 1 + return 0 + /obj/item/weapon/gun/energy/xray name = "xray laser gun" desc = "A high-power laser gun capable of expelling concentrated xray blasts." diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index 27cb3e9b315..73b5b3710c5 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -36,6 +36,18 @@ isHandgun() return 0 +/obj/item/weapon/gun/energy/pulse_rifle/cyborg/load_into_chamber() + if(in_chamber) + return 1 + if(isrobot(src.loc)) + var/mob/living/silicon/robot/R = src.loc + if(R && R.cell) + R.cell.use(charge_cost) + in_chamber = new/obj/item/projectile/beam(src) + return 1 + return 0 + + /obj/item/weapon/gun/energy/pulse_rifle/destroyer name = "pulse destroyer" desc = "A heavy-duty, pulse-based energy weapon." @@ -53,6 +65,4 @@ cell_type = "/obj/item/weapon/cell/infinite" isHandgun() - return 1 - - + return 1 \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/bow.dm new file mode 100644 index 00000000000..aa113e86599 --- /dev/null +++ b/code/modules/projectiles/guns/projectile/bow.dm @@ -0,0 +1,205 @@ +/obj/item/weapon/arrow + + name = "bolt" + desc = "It's got a tip for you - get the point?" + icon = 'icons/obj/weapons.dmi' + icon_state = "bolt" + item_state = "bolt" + flags = FPRINT | TABLEPASS + throwforce = 8 + w_class = 3.0 + sharp = 1 + +/obj/item/weapon/arrow/proc/removed() //Helper for metal rods falling apart. + return + +/obj/item/weapon/arrow/quill + + name = "vox quill" + desc = "A wickedly barbed quill from some bizarre animal." + icon = 'icons/obj/weapons.dmi' + icon_state = "quill" + item_state = "quill" + throwforce = 5 + +/obj/item/weapon/arrow/rod + + name = "metal rod" + desc = "Don't cry for me, Orithena." + icon_state = "metal-rod" + +/obj/item/weapon/arrow/rod/removed(mob/user) + if(throwforce == 15) // The rod has been superheated - we don't want it to be useable when removed from the bow. + user << "[src] shatters into a scattering of overstressed metal shards as it leaves the crossbow." + var/obj/item/weapon/shard/shrapnel/S = new() + S.loc = get_turf(src) + src.Del() + +/obj/item/weapon/crossbow + + name = "powered crossbow" + desc = "A 2557AD twist on an old classic. Pick up that can." + icon = 'icons/obj/weapons.dmi' + icon_state = "crossbow" + item_state = "crossbow-solid" + w_class = 5.0 + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + slot_flags = SLOT_BELT | SLOT_BACK + + w_class = 3.0 + + var/tension = 0 // Current draw on the bow. + var/max_tension = 5 // Highest possible tension. + var/release_speed = 5 // Speed per unit of tension. + var/mob/living/current_user = null // Used to see if the person drawing the bow started drawing it. + var/obj/item/weapon/arrow = null // Nocked arrow. + var/obj/item/weapon/cell/cell = null // Used for firing special projectiles like rods. + +/obj/item/weapon/crossbow/attackby(obj/item/W as obj, mob/user as mob) + if(!arrow) + if (istype(W,/obj/item/weapon/arrow)) + user.drop_item() + arrow = W + arrow.loc = src + user.visible_message("[user] slides [arrow] into [src].","You slide [arrow] into [src].") + icon_state = "crossbow-nocked" + return + else if(istype(W,/obj/item/stack/rods)) + var/obj/item/stack/rods/R = W + R.use(1) + arrow = new /obj/item/weapon/arrow/rod(src) + arrow.fingerprintslast = src.fingerprintslast + arrow.loc = src + icon_state = "crossbow-nocked" + user.visible_message("[user] haphazardly jams [arrow] into [src].","You jam [arrow] into [src].") + if(cell) + if(cell.charge >= 500) + user << "[arrow] plinks and crackles as it begins to glow red-hot." + arrow.throwforce = 15 + arrow.icon_state = "metal-rod-superheated" + cell.charge -= 500 + return + + if(istype(W, /obj/item/weapon/cell)) + if(!cell) + user.drop_item() + W.loc = src + cell = W + user << "You jam [cell] into [src] and wire it to the firing coil." + if(arrow) + if(istype(arrow,/obj/item/weapon/arrow/rod) && cell.charge >= 500) + user << "[arrow] plinks and crackles as it begins to glow red-hot." + arrow.throwforce = 15 + arrow.icon_state = "metal-rod-superheated" + cell.charge -= 500 + else + user << "[src] already has a cell installed." + + else if(istype(W, /obj/item/weapon/screwdriver)) + if(cell) + var/obj/item/C = cell + C.loc = get_turf(user) + cell = null + user << "You jimmy [cell] out of [src] with [W]." + else + user << "[src] doesn't have a cell installed." + + else + ..() + +/obj/item/weapon/crossbow/attack_self(mob/living/user as mob) + if(tension) + if(arrow) + user.visible_message("[user] relaxes the tension on [src]'s string and removes [arrow].","You relax the tension on [src]'s string and remove [arrow].") + var/obj/item/weapon/arrow/A = arrow + A.loc = get_turf(src) + A.removed(user) + arrow = null + else + user.visible_message("[user] relaxes the tension on [src]'s string.","You relax the tension on [src]'s string.") + tension = 0 + icon_state = "crossbow" + else + draw(user) + +/obj/item/weapon/crossbow/proc/draw(var/mob/user as mob) + + if(!arrow) + user << "You don't have anything nocked to [src]." + return + + if(user.restrained()) + return + + current_user = user + + user.visible_message("[user] begins to draw back the string of [src].","You begin to draw back the string of [src].") + tension = 1 + spawn(25) increase_tension(user) + +/obj/item/weapon/crossbow/proc/increase_tension(var/mob/user as mob) + + if(!arrow || !tension || current_user != user) //Arrow has been fired, bow has been relaxed or user has changed. + return + + tension++ + icon_state = "crossbow-drawn" + + if(tension>=max_tension) + tension = max_tension + usr << "[src] clunks as you draw the string to its maximum tension!" + else + user.visible_message("[usr] draws back the string of [src]!","You continue drawing back the string of [src]!") + spawn(25) increase_tension(user) + +/obj/item/weapon/crossbow/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) + + if (istype(target, /obj/item/weapon/storage/backpack )) + src.dropped() + return + + else if (target.loc == user.loc) + return + + else if (locate (/obj/structure/table, src.loc)) + return + + else if(target == user) + return + + if(!tension) + user << "You haven't drawn back the bolt!" + return 0 + + if (!arrow) + user << "You have no arrow nocked to [src]!" + return 0 + else + spawn(0) Fire(target,user,params) + +/obj/item/weapon/crossbow/proc/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0) + + add_fingerprint(user) + + var/turf/curloc = get_turf(user) + var/turf/targloc = get_turf(target) + if (!istype(targloc) || !istype(curloc)) + return + + user.visible_message("[user] releases [src] and sends [arrow] streaking toward [target]!","You release [src] and send [arrow] streaking toward [target]!") + + var/obj/item/weapon/arrow/A = arrow + A.loc = get_turf(user) + A.throw_at(target,10,tension*release_speed) + arrow = null + tension = 0 + icon_state = "crossbow" + +/obj/item/weapon/crossbow/dropped(mob/user) + if(arrow) + var/obj/item/weapon/arrow/A = arrow + A.loc = get_turf(src) + A.removed(user) + arrow = null + tension = 0 + icon_state = "crossbow" \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/pneumatic.dm b/code/modules/projectiles/guns/projectile/pneumatic.dm new file mode 100644 index 00000000000..fe6c2651bd5 --- /dev/null +++ b/code/modules/projectiles/guns/projectile/pneumatic.dm @@ -0,0 +1,140 @@ +/obj/item/weapon/storage/pneumatic + name = "pneumatic cannon" + desc = "A large gas-powered cannon." + icon = 'icons/obj/gun.dmi' + icon_state = "pneumatic" + item_state = "pneumatic" + w_class = 5.0 + flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY + slot_flags = SLOT_BELT + max_w_class = 3 + max_combined_w_class = 20 + + var/obj/item/weapon/tank/tank = null // Tank of gas for use in firing the cannon. + var/obj/item/weapon/storage/tank_container = new() // Something to hold the tank item so we don't accidentally fire it. + var/pressure_setting = 10 // Percentage of the gas in the tank used to fire the projectile. + var/possible_pressure_amounts = list(5,10,20,25,50) // Possible pressure settings. + var/minimum_tank_pressure = 10 // Minimum pressure to fire the gun. + var/cooldown = 0 // Whether or not we're cooling down. + var/cooldown_time = 50 // Time between shots. + var/force_divisor = 400 // Force equates to speed. Speed/5 equates to a damage multiplier for whoever you hit. + // For reference, a fully pressurized oxy tank at 50% gas release firing a health + // analyzer with a force_divisor of 10 hit with a damage multiplier of 3000+. + +/obj/item/weapon/storage/pneumatic/verb/set_pressure() //set amount of tank pressure. + + set name = "Set valve pressure" + set category = "Object" + set src in range(0) + var/N = input("Percentage of tank used per shot:","[src]") as null|anything in possible_pressure_amounts + if (N) + pressure_setting = N + usr << "You dial the pressure valve to [pressure_setting]%." + +/obj/item/weapon/storage/pneumatic/verb/eject_tank() //Remove the tank. + + set name = "Eject tank" + set category = "Object" + set src in range(0) + + if(tank) + usr << "You twist the valve and pop the tank out of [src]." + tank.loc = usr.loc + tank = null + icon_state = "pneumatic" + item_state = "pneumatic" + usr.update_icons() + else + usr << "There's no tank in [src]." + +/obj/item/weapon/storage/pneumatic/attackby(obj/item/W as obj, mob/user as mob) + if(!tank && istype(W,/obj/item/weapon/tank)) + user.drop_item() + tank = W + tank.loc = src.tank_container + user.visible_message("[user] jams [W] into [src]'s valve and twists it closed.","You jam [W] into [src]'s valve and twist it closed.") + icon_state = "pneumatic-tank" + item_state = "pneumatic-tank" + user.update_icons() + else + ..() + +/obj/item/weapon/storage/pneumatic/examine() + set src in view() + ..() + if (!(usr in view(2)) && usr!=src.loc) return + usr << "The valve is dialed to [pressure_setting]%." + if(tank) + usr << "The tank dial reads [tank.air_contents.return_pressure()] kPa." + else + usr << "Nothing is attached to the tank valve!" + +/obj/item/weapon/storage/pneumatic/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) + if (istype(target, /obj/item/weapon/storage/backpack )) + return + + else if (target.loc == user.loc) + return + + else if (locate (/obj/structure/table, src.loc)) + return + + else if(target == user) + return + + if (length(contents) == 0) + user << "There's nothing in [src] to fire!" + return 0 + else + spawn(0) Fire(target,user,params) + +/obj/item/weapon/storage/pneumatic/attack(mob/living/M as mob, mob/living/user as mob, def_zone) + if (length(contents) > 0) + if(user.a_intent == "hurt") + user.visible_message("\red \The [user] fires \the [src] point blank at [M]!") + Fire(M,user) + return + else + Fire(M,user) + return + +/obj/item/weapon/storage/pneumatic/proc/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0) + + if (!tank) + user << "There is no gas tank in [src]!" + return 0 + + if (cooldown) + user << "The chamber hasn't built up enough pressure yet!" + return 0 + + add_fingerprint(user) + + var/turf/curloc = get_turf(user) + var/turf/targloc = get_turf(target) + if (!istype(targloc) || !istype(curloc)) + return + + var/fire_pressure = (tank.air_contents.return_pressure()/100)*pressure_setting + + if (fire_pressure < minimum_tank_pressure) + user << "There isn't enough gas in the tank to fire [src]." + return 0 + + var/obj/item/object = contents[1] + var/speed = ((fire_pressure*tank.volume)/object.w_class)/force_divisor //projectile speed. + if(speed>80) speed = 80 //damage cap. + + user.visible_message("[user] fires [src] and launches [object] at [target]!","You fire [src] and launch [object] at [target]!") + + src.remove_from_storage(object,user.loc) + object.throw_at(target,10,speed) + + var/lost_gas_amount = tank.air_contents.total_moles*(pressure_setting/100) + var/datum/gas_mixture/removed = tank.air_contents.remove(lost_gas_amount) + user.loc.assume_air(removed) + + cooldown = 1 + spawn(cooldown_time) + cooldown = 0 + user << "[src]'s gauge informs you it's ready to be fired again." diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm index 2b4b4c457d8..604cf5428b9 100644 --- a/code/modules/projectiles/projectile/change.dm +++ b/code/modules/projectiles/projectile/change.dm @@ -74,7 +74,7 @@ var/mob/living/carbon/human/H = new_mob if(H.dna) - H.dna.mutantrace = pick("lizard","tajaran","skrell","golem","slime","plant","vox",4;"") + H.dna.mutantrace = pick("lizard","tajaran","skrell","golem","slime","plant","vox","kidan",4;"") else return diff --git a/code/modules/projectiles/projectile/force.dm b/code/modules/projectiles/projectile/force.dm index 68bf6456a03..364ad53370b 100644 --- a/code/modules/projectiles/projectile/force.dm +++ b/code/modules/projectiles/projectile/force.dm @@ -12,7 +12,7 @@ var/obj/T = target var/throwdir = get_dir(firer,target) - T.throw_at(get_edge_target_turf(target, throwdir),10,1) + T.throw_at(get_edge_target_turf(target, throwdir),10,10) return 1 /* diff --git a/code/modules/reagents/dartgun.dm b/code/modules/reagents/dartgun.dm new file mode 100644 index 00000000000..c69f9895775 --- /dev/null +++ b/code/modules/reagents/dartgun.dm @@ -0,0 +1,295 @@ +/obj/item/weapon/dart_cartridge + name = "dart cartridge" + desc = "A rack of hollow darts." + icon = 'icons/obj/ammo.dmi' + icon_state = "darts-5" + item_state = "rcdammo" + opacity = 0 + density = 0 + anchored = 0.0 + origin_tech = "materials=2" + var/darts = 5 + +/obj/item/weapon/dart_cartridge/update_icon() + if(!darts) + icon_state = "darts-0" + else if(darts > 5) + icon_state = "darts-5" + else + icon_state = "darts-[darts]" + return 1 + +/obj/item/weapon/gun/dartgun + name = "dart gun" + desc = "A small gas-powered dartgun, capable of delivering chemical cocktails swiftly across short distances." + icon_state = "dartgun-empty" + + var/list/beakers = list() //All containers inside the gun. + var/list/mixing = list() //Containers being used for mixing. + var/obj/item/weapon/dart_cartridge/cartridge = null //Container of darts. + var/max_beakers = 3 + var/dart_reagent_amount = 5 + var/container_type = /obj/item/weapon/reagent_containers/glass/beaker/vial + var/list/starting_chems = null + +/obj/item/weapon/gun/dartgun/update_icon() + + if(!cartridge) + icon_state = "dartgun-empty" + return 1 + + if(!cartridge.darts) + icon_state = "dartgun-0" + else if(cartridge.darts > 5) + icon_state = "dartgun-5" + else + icon_state = "dartgun-[cartridge.darts]" + return 1 + +/obj/item/weapon/gun/dartgun/New() + + ..() + if(starting_chems) + for(var/chem in starting_chems) + var/obj/item/weapon/reagent_containers/glass/beaker/vial/B = new(src) + B.reagents.add_reagent(chem, 25) + beakers += B + cartridge = new /obj/item/weapon/dart_cartridge(src) + update_icon() + +/obj/item/weapon/gun/dartgun/examine() + set src in view() + update_icon() + ..() + if (!(usr in view(2)) && usr!=src.loc) + return + if (beakers.len) + usr << "\blue [src] contains:" + for(var/obj/item/weapon/reagent_containers/glass/beaker/B in beakers) + if(B.reagents && B.reagents.reagent_list.len) + for(var/datum/reagent/R in B.reagents.reagent_list) + usr << "\blue [R.volume] units of [R.name]" + +/obj/item/weapon/gun/dartgun/attackby(obj/item/I as obj, mob/user as mob) + if(istype(I, /obj/item/weapon/dart_cartridge)) + + var/obj/item/weapon/dart_cartridge/D = I + + if(!D.darts) + user << "\blue [D] is empty." + return 0 + + if(cartridge) + if(cartridge.darts <= 0) + src.remove_cartridge() + else + user << "\blue There's already a cartridge in [src]." + return 0 + + user.drop_item() + cartridge = D + D.loc = src + user << "\blue You slot [D] into [src]." + update_icon() + return + if(istype(I, /obj/item/weapon/reagent_containers/glass)) + if(!istype(I, container_type)) + user << "\blue [I] doesn't seem to fit into [src]." + return + if(beakers.len >= max_beakers) + user << "\blue [src] already has [max_beakers] vials in it - another one isn't going to fit!" + return + var/obj/item/weapon/reagent_containers/glass/beaker/B = I + user.drop_item() + B.loc = src + beakers += B + user << "\blue You slot [B] into [src]." + src.updateUsrDialog() + +/obj/item/weapon/gun/dartgun/can_fire() + if(!cartridge) + return 0 + else + return cartridge.darts + +/obj/item/weapon/gun/dartgun/proc/has_selected_beaker_reagents() + return 0 + +/obj/item/weapon/gun/dartgun/proc/remove_cartridge() + if(cartridge) + usr << "\blue You pop the cartridge out of [src]." + var/obj/item/weapon/dart_cartridge/C = cartridge + C.loc = get_turf(src) + C.update_icon() + cartridge = null + src.update_icon() + +/obj/item/weapon/gun/dartgun/proc/get_mixed_syringe() + if (!cartridge) + return 0 + if(!cartridge.darts) + return 0 + + var/obj/item/weapon/reagent_containers/syringe/dart = new(src) + + if(mixing.len) + var/mix_amount = dart_reagent_amount/mixing.len + for(var/obj/item/weapon/reagent_containers/glass/beaker/B in mixing) + B.reagents.trans_to(dart,mix_amount) + + return dart + +/obj/item/weapon/gun/dartgun/proc/fire_dart(atom/target, mob/user) + if (locate (/obj/structure/table, src.loc)) + return + else + var/turf/trg = get_turf(target) + var/obj/effect/syringe_gun_dummy/D = new/obj/effect/syringe_gun_dummy(get_turf(src)) + var/obj/item/weapon/reagent_containers/syringe/S = get_mixed_syringe() + if(!S) + user << "\red There are no darts in [src]!" + return + if(!S.reagents) + user << "\red There are no reagents available!" + return + cartridge.darts-- + src.update_icon() + S.reagents.trans_to(D, S.reagents.total_volume) + del(S) + D.icon_state = "syringeproj" + D.name = "syringe" + D.flags |= NOREACT + playsound(user.loc, 'sound/items/syringeproj.ogg', 50, 1) + + for(var/i=0, i<6, i++) + if(!D) break + if(D.loc == trg) break + step_towards(D,trg) + + if(D) + for(var/mob/living/carbon/M in D.loc) + if(!istype(M,/mob/living/carbon)) continue + if(M == user) continue + //Syringe gun attack logging by Yvarov + var/R + if(D.reagents) + for(var/datum/reagent/A in D.reagents.reagent_list) + R += A.id + " (" + R += num2text(A.volume) + ")," + if (istype(M, /mob)) + M.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] shot [M]/[M.ckey] with a syringegun ([R])" + user.attack_log += "\[[time_stamp()]\] [user]/[user.ckey] shot [M]/[M.ckey] with a syringegun ([R])" + log_attack("[user] ([user.ckey]) shot [M] ([M.ckey]) with a syringegun ([R])") + + else + M.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [M]/[M.ckey] with a syringegun ([R])" + log_attack("UNKNOWN shot [M] ([M.ckey]) with a syringegun ([R])") + + if(D.reagents) + D.reagents.trans_to(M, 15) + M << "You feel a slight prick." + + del(D) + break + if(D) + for(var/atom/A in D.loc) + if(A == user) continue + if(A.density) del(D) + + sleep(1) + + if (D) spawn(10) del(D) + + return + +/obj/item/weapon/gun/dartgun/afterattack(obj/target, mob/user , flag) + if(!isturf(target.loc) || target == user) return + ..() + +/obj/item/weapon/gun/dartgun/can_hit(var/mob/living/target as mob, var/mob/living/user as mob) + return 1 + +/obj/item/weapon/gun/dartgun/attack_self(mob/user) + + user.set_machine(src) + var/dat = "[src] mixing control:

    " + + if (beakers.len) + var/i = 1 + for(var/obj/item/weapon/reagent_containers/glass/beaker/B in beakers) + dat += "Beaker [i] contains: " + if(B.reagents && B.reagents.reagent_list.len) + for(var/datum/reagent/R in B.reagents.reagent_list) + dat += "
    [R.volume] units of [R.name], " + if (check_beaker_mixing(B)) + dat += text("Mixing ") + else + dat += text("Not mixing ") + else + dat += "nothing." + dat += " \[Eject\]
    " + i++ + else + dat += "There are no beakers inserted!

    " + + if(cartridge) + if(cartridge.darts) + dat += "The dart cartridge has [cartridge.darts] shots remaining." + else + dat += "The dart cartridge is empty!" + dat += " \[Eject\]" + + user << browse(dat, "window=dartgun") + onclose(user, "dartgun", src) + +/obj/item/weapon/gun/dartgun/proc/check_beaker_mixing(var/obj/item/B) + if(!mixing || !beakers) + return 0 + for(var/obj/item/M in mixing) + if(M == B) + return 1 + return 0 + +/obj/item/weapon/gun/dartgun/Topic(href, href_list) + src.add_fingerprint(usr) + if(href_list["stop_mix"]) + var/index = text2num(href_list["stop_mix"]) + if(index <= beakers.len) + for(var/obj/item/M in mixing) + if(M == beakers[index]) + mixing -= M + break + else if (href_list["mix"]) + var/index = text2num(href_list["mix"]) + if(index <= beakers.len) + mixing += beakers[index] + else if (href_list["eject"]) + var/index = text2num(href_list["eject"]) + if(index <= beakers.len) + if(beakers[index]) + var/obj/item/weapon/reagent_containers/glass/beaker/B = beakers[index] + usr << "You remove [B] from [src]." + mixing -= B + beakers -= B + B.loc = get_turf(src) + else if (href_list["eject_cart"]) + remove_cartridge() + src.updateUsrDialog() + return + +/obj/item/weapon/gun/dartgun/Fire(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, params, reflex = 0) + if(cartridge) + spawn(0) fire_dart(target,user) + else + usr << "\red [src] is empty." + + +/obj/item/weapon/gun/dartgun/vox + name = "alien dart gun" + desc = "A small gas-powered dartgun, fitted for nonhuman hands." + +/obj/item/weapon/gun/dartgun/vox/medical + starting_chems = list("kelotane","bicaridine","anti_toxin") + +/obj/item/weapon/gun/dartgun/vox/raider + starting_chems = list("space_drugs","stoxin","impedrezene") \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm index 66870184fad..dfa67cdef29 100644 --- a/code/modules/reagents/reagent_containers/food/drinks.dm +++ b/code/modules/reagents/reagent_containers/food/drinks.dm @@ -203,7 +203,7 @@ /obj/item/weapon/reagent_containers/food/drinks/tea name = "Duke Purple Tea" desc = "An insult to Duke Purple is an insult to the Space Queen! Any proper gentleman will fight you, if you sully this tea." - icon_state = "tea" + icon_state = "teacup" item_state = "coffee" New() ..() @@ -224,7 +224,7 @@ /obj/item/weapon/reagent_containers/food/drinks/h_chocolate name = "Dutch Hot Coco" desc = "Made in Space South America." - icon_state = "tea" + icon_state = "hot_coco" item_state = "coffee" New() ..() diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index a5985618ec5..f15c3410947 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -1367,6 +1367,126 @@ icon_state = "monkeycubewrap" wrapped = 1 +/obj/item/weapon/reagent_containers/food/snacks/farwacube + name = "farwa cube" + desc = "Just add water!" + icon_state = "monkeycube" + bitesize = 12 + var/wrapped = 0 + + New() + ..() + reagents.add_reagent("nutriment",10) + + afterattack(obj/O as obj, mob/user as mob) + if(istype(O,/obj/structure/sink) && !wrapped) + user << "You place [name] under a stream of water..." + loc = get_turf(O) + return Expand() + ..() + + attack_self(mob/user as mob) + if(wrapped) + Unwrap(user) + + proc/Expand() + for(var/mob/M in viewers(src,7)) + M << "\red The farwa cube expands!" + new /mob/living/carbon/monkey/tajara(get_turf(src)) + del(src) + + proc/Unwrap(mob/user as mob) + icon_state = "monkeycube" + desc = "Just add water!" + user << "You unwrap the cube." + wrapped = 0 + return + +/obj/item/weapon/reagent_containers/food/snacks/stokcube + name = "stok cube" + desc = "Just add water!" + icon_state = "monkeycube" + bitesize = 12 + var/wrapped = 0 + + New() + ..() + reagents.add_reagent("nutriment",10) + + afterattack(obj/O as obj, mob/user as mob) + if(istype(O,/obj/structure/sink) && !wrapped) + user << "You place [name] under a stream of water..." + loc = get_turf(O) + return Expand() + ..() + + attack_self(mob/user as mob) + if(wrapped) + Unwrap(user) + + proc/Expand() + for(var/mob/M in viewers(src,7)) + M << "\red The stok cube expands!" + new /mob/living/carbon/monkey/unathi(get_turf(src)) + del(src) + + proc/Unwrap(mob/user as mob) + icon_state = "monkeycube" + desc = "Just add water!" + user << "You unwrap the cube." + wrapped = 0 + return +/obj/item/weapon/reagent_containers/food/snacks/neaeracube + name = "neaera cube" + desc = "Just add water!" + icon_state = "monkeycube" + bitesize = 12 + var/wrapped = 0 + + New() + ..() + reagents.add_reagent("nutriment",10) + + afterattack(obj/O as obj, mob/user as mob) + if(istype(O,/obj/structure/sink) && !wrapped) + user << "You place [name] under a stream of water..." + loc = get_turf(O) + return Expand() + ..() + + attack_self(mob/user as mob) + if(wrapped) + Unwrap(user) + + proc/Expand() + for(var/mob/M in viewers(src,7)) + M << "\red The neaera cube expands!" + new /mob/living/carbon/monkey/skrell(get_turf(src)) + del(src) + + proc/Unwrap(mob/user as mob) + icon_state = "monkeycube" + desc = "Just add water!" + user << "You unwrap the cube." + wrapped = 0 + return + +/obj/item/weapon/reagent_containers/food/snacks/neaeracube/wrapped + desc = "Still wrapped in some paper." + icon_state = "monkeycubewrap" + wrapped = 1 +/obj/item/weapon/reagent_containers/food/snacks/stokcube/wrapped + desc = "Still wrapped in some paper." + icon_state = "monkeycubewrap" + wrapped = 1 + + +/obj/item/weapon/reagent_containers/food/snacks/farwacube/wrapped + desc = "Still wrapped in some paper." + icon_state = "monkeycubewrap" + wrapped = 1 + + /obj/item/weapon/reagent_containers/food/snacks/spellburger name = "Spell Burger" diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index 553b5953c32..936362f3fe3 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -178,6 +178,16 @@ possible_transfer_amounts = list(5,10,15,25,30,50,100) flags = FPRINT | TABLEPASS | OPENCONTAINER +/obj/item/weapon/reagent_containers/glass/beaker/vial + name = "vial" + desc = "A small glass vial. Can hold up to 25 units." + icon_state = "vial" + g_amt = 250 + volume = 25 + amount_per_transfer_from_this = 10 + possible_transfer_amounts = list(5,10,15,25) + flags = FPRINT | TABLEPASS | OPENCONTAINER + /obj/item/weapon/reagent_containers/glass/beaker/cryoxadone New() ..() diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index d491448a187..d93ce042295 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -129,9 +129,20 @@ return if(ismob(target) && target != user) + var/time = 30 //Injecting through a hardsuit takes longer due to needing to find a port. + if(istype(target,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = target + if(H.wear_suit && istype(H.wear_suit,/obj/item/clothing/suit/space)) + time = 60 + for(var/mob/O in viewers(world.view, user)) - O.show_message(text("\red [] is trying to inject []!", user, target), 1) - if(!do_mob(user, target)) return + if(time == 30) + O.show_message(text("\red [] is trying to inject []!", user, target), 1) + else + O.show_message(text("\red [] begins hunting for an injection port on []'s suit!", user, target), 1) + + if(!do_mob(user, target, time)) return + for(var/mob/O in viewers(world.view, user)) O.show_message(text("\red [] injects [] with the syringe!", user, target), 1) src.reagents.reaction(target, INGEST) diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index 3571d3a2244..6ccf529e763 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -241,7 +241,7 @@ var/obj/machinery/blackbox_recorder/blackbox var/pda_msg_amt = 0 var/rc_msg_amt = 0 - for(var/obj/machinery/message_server/MS in world) + for(var/obj/machinery/message_server/MS in machines) if(MS.pda_msgs.len > pda_msg_amt) pda_msg_amt = MS.pda_msgs.len if(MS.rc_msgs.len > rc_msg_amt) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 5b50efc41c5..5597c815091 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -116,7 +116,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, //Have it automatically push research to the centcomm server so wild griffins can't fuck up R&D's work --NEO /obj/machinery/computer/rdconsole/proc/griefProtection() - for(var/obj/machinery/r_n_d/server/centcom/C in world) + for(var/obj/machinery/r_n_d/server/centcom/C in machines) for(var/datum/tech/T in files.known_tech) C.files.AddTech2Known(T) for(var/datum/design/D in files.known_designs) @@ -128,7 +128,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, ..() files = new /datum/research(src) //Setup the research data holder. if(!id) - for(var/obj/machinery/r_n_d/server/centcom/S in world) + for(var/obj/machinery/r_n_d/server/centcom/S in machines) S.initialize() break @@ -322,7 +322,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, griefProtection() //Putting this here because I dont trust the sync process spawn(30) if(src) - for(var/obj/machinery/r_n_d/server/S in world) + for(var/obj/machinery/r_n_d/server/S in machines) var/server_processed = 0 if(S.disabled) continue diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 3819e7878d3..e1f5740b690 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -93,7 +93,7 @@ //Backup files to centcomm to help admins recover data after greifer attacks /obj/machinery/r_n_d/server/proc/griefProtection() - for(var/obj/machinery/r_n_d/server/centcom/C in world) + for(var/obj/machinery/r_n_d/server/centcom/C in machines) for(var/datum/tech/T in files.known_tech) C.files.AddTech2Known(T) for(var/datum/design/D in files.known_designs) @@ -170,7 +170,7 @@ ..() var/list/no_id_servers = list() var/list/server_ids = list() - for(var/obj/machinery/r_n_d/server/S in world) + for(var/obj/machinery/r_n_d/server/S in machines) switch(S.server_id) if(-1) continue @@ -219,20 +219,20 @@ temp_server = null consoles = list() servers = list() - for(var/obj/machinery/r_n_d/server/S in world) + for(var/obj/machinery/r_n_d/server/S in machines) if(S.server_id == text2num(href_list["access"]) || S.server_id == text2num(href_list["data"]) || S.server_id == text2num(href_list["transfer"])) temp_server = S break if(href_list["access"]) screen = 1 - for(var/obj/machinery/computer/rdconsole/C in world) + for(var/obj/machinery/computer/rdconsole/C in machines) if(C.sync) consoles += C else if(href_list["data"]) screen = 2 else if(href_list["transfer"]) screen = 3 - for(var/obj/machinery/r_n_d/server/S in world) + for(var/obj/machinery/r_n_d/server/S in machines) if(S == src) continue servers += S @@ -283,7 +283,7 @@ if(0) //Main Menu dat += "Connected Servers:

    " - for(var/obj/machinery/r_n_d/server/S in world) + for(var/obj/machinery/r_n_d/server/S in machines) if(istype(S, /obj/machinery/r_n_d/server/centcom) && !badmin) continue dat += "[S.name] || " diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm index 5008f5306af..5105628cfe3 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_cellcharge.dm @@ -20,7 +20,7 @@ B.charge += 25 for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) S.charge += 25 - for (var/mob/living/silicon/robot/M in world) + for (var/mob/living/silicon/robot/M in mob_list) for (var/obj/item/weapon/cell/D in M.contents) D.charge += 25 M << "\blue SYSTEM ALERT: Energy boost detected!" @@ -33,7 +33,7 @@ B.charge += rand() * 100 for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) S.charge += 250 - for (var/mob/living/silicon/robot/M in world) + for (var/mob/living/silicon/robot/M in mob_list) for (var/obj/item/weapon/cell/D in M.contents) D.charge += rand() * 100 M << "\blue SYSTEM ALERT: Energy boost detected!" diff --git a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm index 1f091433d98..550b49b0686 100644 --- a/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm +++ b/code/modules/research/xenoarchaeology/artifact/effects/unknown_effect_celldrain.dm @@ -22,7 +22,7 @@ B.charge = max(B.charge - 50,0) for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) S.charge = max(S.charge - 100,0) - for (var/mob/living/silicon/robot/M in world) + for (var/mob/living/silicon/robot/M in mob_list) for (var/obj/item/weapon/cell/D in M.contents) D.charge = max(D.charge - 50,0) M << "\red SYSTEM ALERT: Energy drain detected!" @@ -35,7 +35,7 @@ B.charge = max(B.charge - rand() * 150,0) for (var/obj/machinery/power/smes/S in range (src.effectrange,src)) S.charge = max(S.charge - 250,0) - for (var/mob/living/silicon/robot/M in world) + for (var/mob/living/silicon/robot/M in mob_list) for (var/obj/item/weapon/cell/D in M.contents) D.charge = max(D.charge - rand() * 150,0) M << "\red SYSTEM ALERT: Energy drain detected!" diff --git a/code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm b/code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm index 81f9831ed56..46f78087e69 100644 --- a/code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm +++ b/code/modules/research/xenoarchaeology/finds/finds_talkingitem.dm @@ -96,7 +96,7 @@ msg+="!" var/list/listening = viewers(src) - for(var/mob/M in world) + for(var/mob/M in mob_list) if (!M.client) continue //skip monkeys and leavers if (istype(M, /mob/new_player)) diff --git a/code/modules/security levels/keycard authentication.dm b/code/modules/security levels/keycard authentication.dm index c42aec969ae..a0149abdf6e 100644 --- a/code/modules/security levels/keycard authentication.dm +++ b/code/modules/security levels/keycard authentication.dm @@ -109,7 +109,7 @@ /obj/machinery/keycard_auth/proc/broadcast_request() icon_state = "auth_on" - for(var/obj/machinery/keycard_auth/KA in world) + for(var/obj/machinery/keycard_auth/KA in machines) if(KA == src) continue KA.reset() spawn() @@ -148,7 +148,7 @@ feedback_inc("alert_keycard_auth_maint",1) /proc/make_maint_all_access() - for(var/obj/machinery/door/airlock/A in world) + for(var/obj/machinery/door/airlock/A in machines) if(A.z == 1) A.req_access.Remove(access_maint_tunnels) diff --git a/code/modules/security levels/security levels.dm b/code/modules/security levels/security levels.dm index 52651452ca4..dd259d2c1bb 100644 --- a/code/modules/security levels/security levels.dm +++ b/code/modules/security levels/security levels.dm @@ -24,7 +24,7 @@ world << "Attention! Security level lowered to green" world << "[config.alert_desc_green]" security_level = SEC_LEVEL_GREEN - for(var/obj/machinery/firealarm/FA in world) + for(var/obj/machinery/firealarm/FA in machines) if(FA.z == 1) FA.overlays = list() FA.overlays += image('icons/obj/monitors.dmi', "overlay_green") @@ -36,7 +36,7 @@ world << "Attention! Security level lowered to blue" world << "[config.alert_desc_blue_downto]" security_level = SEC_LEVEL_BLUE - for(var/obj/machinery/firealarm/FA in world) + for(var/obj/machinery/firealarm/FA in machines) if(FA.z == 1) FA.overlays = list() FA.overlays += image('icons/obj/monitors.dmi', "overlay_blue") @@ -54,15 +54,20 @@ if(CC) CC.post_status("alert", "redalert")*/ - for(var/obj/machinery/firealarm/FA in world) + for(var/obj/machinery/firealarm/FA in machines) if(FA.z == 1) FA.overlays = list() FA.overlays += image('icons/obj/monitors.dmi', "overlay_red") + + // trigger a response team + spawn + sleep(100) + if(security_level == SEC_LEVEL_RED) trigger_armed_response_team() if(SEC_LEVEL_DELTA) world << "Attention! Delta security level reached!" world << "[config.alert_desc_delta]" security_level = SEC_LEVEL_DELTA - for(var/obj/machinery/firealarm/FA in world) + for(var/obj/machinery/firealarm/FA in machines) if(FA.z == 1) FA.overlays = list() FA.overlays += image('icons/obj/monitors.dmi', "overlay_delta") diff --git a/code/modules/surgery/generic.dm b/code/modules/surgery/generic.dm index 7d7de430bfd..e46bff882d4 100644 --- a/code/modules/surgery/generic.dm +++ b/code/modules/surgery/generic.dm @@ -190,7 +190,16 @@ max_duration = 160 can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) - return ..() && target_zone != "chest" && target_zone != "groin" && target_zone != "head" + if (target_zone == "eyes") //there are specific steps for eye surgery + return 0 + if (!hasorgans(target)) + return 0 + var/datum/organ/external/affected = target.get_organ(target_zone) + if (affected == null) + return 0 + if (affected.status & ORGAN_DESTROYED) + return 0 + return target_zone != "chest" && target_zone != "groin" && target_zone != "head" begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/datum/organ/external/affected = target.get_organ(target_zone) @@ -203,11 +212,11 @@ var/datum/organ/external/affected = target.get_organ(target_zone) user.visible_message("\blue [user] cuts off [target]'s [affected.display_name] with \the [tool].", \ "\blue You cut off [target]'s [affected.display_name] with \the [tool].") - affected.droplimb(1,1) + affected.droplimb(1,0) fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/datum/organ/external/affected = target.get_organ(target_zone) user.visible_message("\red [user]'s hand slips, sawwing through the bone in [target]'s [affected.display_name] with \the [tool]!", \ "\red Your hand slips, sawwing through the bone in [target]'s [affected.display_name] with \the [tool]!") affected.createwound(CUT, 30) - affected.fracture() + affected.fracture() \ No newline at end of file diff --git a/code/modules/surgery/implant.dm b/code/modules/surgery/implant.dm index 238bbc0a418..0d67881f242 100644 --- a/code/modules/surgery/implant.dm +++ b/code/modules/surgery/implant.dm @@ -163,19 +163,32 @@ var/datum/organ/external/chest/affected = target.get_organ(target_zone) var/find_prob = 0 + if (affected.implants.len) - var/obj/item/weapon/implant/imp = affected.implants[1] - if (imp.islegal()) - find_prob +=60 + + var/obj/item/weapon/obj = affected.implants[1] + + if(istype(obj,/obj/item/weapon/implant)) + var/obj/item/weapon/implant/imp = obj + if (imp.islegal()) + find_prob +=60 + else + find_prob +=40 else - find_prob +=40 + find_prob +=50 + if (prob(find_prob)) user.visible_message("\blue [user] takes something out of incision on [target]'s [affected.display_name] with \the [tool].", \ - "\blue You take something out of incision on [target]'s [affected.display_name]s with \the [tool]." ) - affected.implants -= imp - imp.loc = get_turf(target) - imp.imp_in = null - imp.implanted = 0 + "\blue You take [obj] out of incision on [target]'s [affected.display_name]s with \the [tool]." ) + affected.implants -= obj + obj.loc = get_turf(target) + if(istype(obj,/obj/item/weapon/implant)) + var/obj/item/weapon/implant/imp = obj + imp.imp_in = null + imp.implanted = 0 + else + user.visible_message("\blue [user] removes \the [tool] from [target]'s [affected.display_name].", \ + "\blue There's something inside [target]'s [affected.display_name], but you just missed it this time." ) else if (affected.hidden) user.visible_message("\blue [user] takes something out of incision on [target]'s [affected.display_name] with \the [tool].", \ "\blue You take something out of incision on [target]'s [affected.display_name]s with \the [tool]." ) diff --git a/code/modules/surgery/robolimbs.dm b/code/modules/surgery/robolimbs.dm index 9b8f42e4d76..97db2846220 100644 --- a/code/modules/surgery/robolimbs.dm +++ b/code/modules/surgery/robolimbs.dm @@ -144,10 +144,15 @@ "You start attaching [tool] where [target]'s [affected.display_name] used to be.") end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) + var/obj/item/robot_parts/L = tool var/datum/organ/external/affected = target.get_organ(target_zone) user.visible_message("\blue [user] has attached [tool] where [target]'s [affected.display_name] used to be.", \ "\blue You have attached [tool] where [target]'s [affected.display_name] used to be.") affected.robotize() + if(L.sabotaged) + affected.sabotaged = 1 + else + affected.sabotaged = 0 target.update_body() target.updatehealth() target.UpdateDamageIcon() diff --git a/code/stylesheet.dm b/code/stylesheet.dm index 902160e9ef9..5eb0ec9991a 100644 --- a/code/stylesheet.dm +++ b/code/stylesheet.dm @@ -56,6 +56,7 @@ h1.alert, h2.alert {color: #000000;} .skrell {color: #00CED1;} .soghun {color: #228B22;} .vox {color: #AA00AA;} +.kidan {color: #cc9900;} .say_quote {font-family: Georgia, Verdana, sans-serif;} .interface {color: #330033;} diff --git a/config/alienwhitelist.txt b/config/alienwhitelist.txt index 1cf07bbc24f..190adb91cd0 100644 --- a/config/alienwhitelist.txt +++ b/config/alienwhitelist.txt @@ -50,4 +50,5 @@ succubusy - Skrell teddybehr - Soghun whitellama - Skrell watermelonstorm - Tajaran -yoshax - Tajaran \ No newline at end of file +yoshax - Tajaran +jamini - Tajaran \ No newline at end of file diff --git a/config/config.txt b/config/config.txt index abc333949bf..82bf3f188f8 100644 --- a/config/config.txt +++ b/config/config.txt @@ -212,8 +212,6 @@ NUDGE_SCRIPT_PATH nudge.py ALIEN_PLAYER_RATIO 0.2 ##Remove the # to let ghosts spin chairs -#GHOST_INTERACTION - ## Uncomment this to enable external .rsc downloads. URLs must be separated by no more than one space. ## The linked .zip file should contain the required .rsc #resource_urls http://firstserver.org/myresource.zip http://secondserver.org/myresource.zip http://10.22.11.1/myresource.zip diff --git a/config/custom_sprites.txt b/config/custom_sprites.txt new file mode 100644 index 00000000000..d9b0adfeca7 --- /dev/null +++ b/config/custom_sprites.txt @@ -0,0 +1,6 @@ +rowtree-Lucy +sydrec-SINA +mordeth221-Elly +ravensdale-Blunt +ravensdale-Skuld +serithi-REMNANT \ No newline at end of file diff --git a/config/names/ninjaname.txt b/config/names/ninjaname.txt index b41271dbe10..24d5d6879ef 100644 --- a/config/names/ninjaname.txt +++ b/config/names/ninjaname.txt @@ -6,9 +6,12 @@ Scorpion Zero Ermac Saibot +Sun +Moon Cyrax Raphael Michaelangelo +Cloud Donatello Leonardo Splinter @@ -20,7 +23,6 @@ Ryu Hayabusa Midnight Seven -McNinja Hanzo Blood Iga @@ -32,7 +34,6 @@ Baki Ogre Daemon Goemon -McAwesome Throat Death Aria diff --git a/config/names/ninjatitle.txt b/config/names/ninjatitle.txt index 2c7f9e7f73c..966204bb4dc 100644 --- a/config/names/ninjatitle.txt +++ b/config/names/ninjatitle.txt @@ -24,7 +24,6 @@ Slayer Awesome Ender Dr. -Noob Night Crimson Grappler @@ -43,4 +42,5 @@ Steel Nickel Silver Singing -Snake \ No newline at end of file +Snake +Acid \ No newline at end of file diff --git a/html/changelog.html b/html/changelog.html index 7dd21709f23..83de3037b73 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -40,7 +40,7 @@ Header Section Code: Abi79, Aryn, Cael_Aislinn, Chinsky, cib, CompactNinja, DopeGhoti, Erthilo, Hawk_v3, Head, Ispil, Lexusjjss, Melonstorm, Miniature, Mloc, NerdyBoy1104, SkyMarshal, Spectre, Strumpetplaya, Sunfall, Tastyfish, Uristqwerty
    - Sprites: Apple_Master, Arcalane, Chinsky, CompactNinja, Deus Dactyl, Erthilo, Flashkirby, Miniature, Searif, Xenone
    + Sprites: Apple_Master, Arcalane, Chinsky, CompactNinja, Deus Dactyl, Erthilo, Flashkirby, Miniature, Searif, Xenone, faux
    Sounds: Aryn
    Thanks To: /tg/ station, Goonstation, Animus Station, Daedalus, and original Spacestation 13 devs. Skibiliano for the IRC bot. @@ -58,21 +58,67 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit though. Thanks. -->
    -

    27.06.2013

    +

    03.07.2013

    +

    Segrain updated:

    + +
    +
    +

    June 28th, 2013

    +

    Segrain updated:

    + +
    +
    +

    June 27th, 2013

    Segrain updated:

    -
    -

    26.06.2013

    +

    June 26th, 2013

    +

    Whitellama updated:

    + +
    +
    +

    June 26th, 2013

    Segrain updated:

    +
    +

    June 23rd, 2013

    +

    Segrain updated:

    + +
    + +
    +

    June 23rd, 2013

    +

    faux updated:

    + +

    June 22nd 2013

    @@ -83,6 +129,69 @@ should be listed in the changelog upon commit though. Thanks. -->
    +
    +

    21.06.2013

    +

    Jupotter updated:

    + +
    + +
    +

    18.06.2013

    +

    Segrain updated:

    + +
    + +
    +

    13.06.2013

    +

    Kilakk updated:

    + +
    + +
    +

    6-13-13

    +

    Asanadas updated:

    + +
    + +
    +

    12/06/2013

    +

    Zuhayr updated:

    + +
    + + +
    +

    6/11/13

    +

    Meyar updated:

    + +
    + +

    09.06.2013

    Segrain updated:

    @@ -132,6 +241,25 @@ should be listed in the changelog upon commit though. Thanks. -->
    +
    +

    5.06.2013

    +

    Chinsky updated:

    + +
    + + + + + + + + + + + +

    1.06.2013

    Chinsky updated:

    diff --git a/icons/effects/footprints.dmi b/icons/effects/footprints.dmi index ede9c8e17d6..b849de00fff 100644 Binary files a/icons/effects/footprints.dmi and b/icons/effects/footprints.dmi differ diff --git a/icons/mob/AI.dmi b/icons/mob/AI.dmi index e15a7038f9a..d3a4bf4d53b 100644 Binary files a/icons/mob/AI.dmi and b/icons/mob/AI.dmi differ diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index b88c791e145..1c3dbd2b3a7 100644 Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ diff --git a/icons/mob/custom-synthetic.dmi b/icons/mob/custom-synthetic.dmi new file mode 100644 index 00000000000..d32659f6d6d Binary files /dev/null and b/icons/mob/custom-synthetic.dmi differ diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index 81c75323041..d994f6a63c1 100644 Binary files a/icons/mob/feet.dmi and b/icons/mob/feet.dmi differ diff --git a/icons/mob/hands.dmi b/icons/mob/hands.dmi index 44dfaabf477..6e2862349be 100644 Binary files a/icons/mob/hands.dmi and b/icons/mob/hands.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index 3d26625af98..4d61d9a8d7d 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/human_races/r_def_kidan.dmi b/icons/mob/human_races/r_def_kidan.dmi new file mode 100644 index 00000000000..0d7b050b7ce Binary files /dev/null and b/icons/mob/human_races/r_def_kidan.dmi differ diff --git a/icons/mob/human_races/r_def_vox.dmi b/icons/mob/human_races/r_def_vox.dmi index 4dad2129d50..2024f52583b 100644 Binary files a/icons/mob/human_races/r_def_vox.dmi and b/icons/mob/human_races/r_def_vox.dmi differ diff --git a/icons/mob/human_races/r_kidan.dmi b/icons/mob/human_races/r_kidan.dmi new file mode 100644 index 00000000000..c8be5e21ed1 Binary files /dev/null and b/icons/mob/human_races/r_kidan.dmi differ diff --git a/icons/mob/human_races/r_vox.dmi b/icons/mob/human_races/r_vox.dmi index 4dad2129d50..6aada937c25 100644 Binary files a/icons/mob/human_races/r_vox.dmi and b/icons/mob/human_races/r_vox.dmi differ diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi index c0e1013f9d3..4b66884b299 100644 Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index 1911107430d..5d2b1a8d753 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index 4f236bc2db6..e3a8edd4dd1 100644 Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ diff --git a/icons/mob/monkey.dmi b/icons/mob/monkey.dmi index 437ba085b15..c0f5e306f26 100644 Binary files a/icons/mob/monkey.dmi and b/icons/mob/monkey.dmi differ diff --git a/icons/mob/robots.dmi b/icons/mob/robots.dmi index 93eef155dda..bea2d728a98 100644 Binary files a/icons/mob/robots.dmi and b/icons/mob/robots.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index e65fc8825dd..edbec0466dd 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi index 1d9bee649f7..fbbbb35a98c 100644 Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index b29d5428836..d50c7bcc2b1 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/mob/vox.dmi b/icons/mob/vox.dmi new file mode 100644 index 00000000000..6abba5c9e03 Binary files /dev/null and b/icons/mob/vox.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 8ca8da77f74..86d6829d138 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/barsigns.dmi b/icons/obj/barsigns.dmi index 1872d19070b..72b438b2dd2 100644 Binary files a/icons/obj/barsigns.dmi and b/icons/obj/barsigns.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 9a8ee374dd3..8160eefd314 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index 6134bd60686..66f08d71d48 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 29487a42863..cf9c6d511d6 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/ties.dmi b/icons/obj/clothing/ties.dmi index 387ffaf3f37..aa06c6cfeb0 100644 Binary files a/icons/obj/clothing/ties.dmi and b/icons/obj/clothing/ties.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 4740a216584..fd2a22b699e 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/cryobag.dmi b/icons/obj/cryobag.dmi index fe543fad642..68255b8b2c3 100644 Binary files a/icons/obj/cryobag.dmi and b/icons/obj/cryobag.dmi differ diff --git a/icons/obj/custom_items.dmi b/icons/obj/custom_items.dmi index eb0e1b1b551..500483f0a0d 100644 Binary files a/icons/obj/custom_items.dmi and b/icons/obj/custom_items.dmi differ diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi index 488098ad78e..8e7e0c4b399 100644 Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 1e9f1c1efb4..003bf5c9f10 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/icons/obj/doors/Door2x1glass.dmi b/icons/obj/doors/Door2x1glass.dmi new file mode 100644 index 00000000000..fe4a9723539 Binary files /dev/null and b/icons/obj/doors/Door2x1glass.dmi differ diff --git a/icons/obj/doors/Door2x1glassfull.dmi b/icons/obj/doors/Door2x1glassfull.dmi deleted file mode 100644 index 96653338e11..00000000000 Binary files a/icons/obj/doors/Door2x1glassfull.dmi and /dev/null differ diff --git a/icons/obj/doors/door_assembly.dmi b/icons/obj/doors/door_assembly.dmi index 691f53a76f3..3cc3b44b4a3 100644 Binary files a/icons/obj/doors/door_assembly.dmi and b/icons/obj/doors/door_assembly.dmi differ diff --git a/icons/obj/doors/door_assembly2x1.dmi b/icons/obj/doors/door_assembly2x1.dmi new file mode 100644 index 00000000000..a8d69b6f6a2 Binary files /dev/null and b/icons/obj/doors/door_assembly2x1.dmi differ diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 55cc4522f9c..5b9521e089f 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/grenade.dmi b/icons/obj/grenade.dmi index 10260ef5718..1735fd8b3f0 100644 Binary files a/icons/obj/grenade.dmi and b/icons/obj/grenade.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index e9d1940dd33..2ad4316d4a0 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 51cf8812722..99edca03be0 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/icons/obj/robot_component.dmi b/icons/obj/robot_component.dmi new file mode 100644 index 00000000000..7647b09b44f Binary files /dev/null and b/icons/obj/robot_component.dmi differ diff --git a/icons/obj/shards.dmi b/icons/obj/shards.dmi index 5ae1402c368..bf7f28168fa 100644 Binary files a/icons/obj/shards.dmi and b/icons/obj/shards.dmi differ diff --git a/icons/obj/weapons.dmi b/icons/obj/weapons.dmi index cf7f50c60a4..c15523cd40a 100644 Binary files a/icons/obj/weapons.dmi and b/icons/obj/weapons.dmi differ diff --git a/icons/robot_component.dmi b/icons/robot_component.dmi new file mode 100644 index 00000000000..e69de29bb2d diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index bf16c04b8be..289b7f94e0b 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/maps/RandomZLevels/wildwest.dm b/maps/RandomZLevels/wildwest.dm index 499d37eeb79..d2935b69f6f 100644 --- a/maps/RandomZLevels/wildwest.dm +++ b/maps/RandomZLevels/wildwest.dm @@ -90,7 +90,7 @@ if("Peace") user << "Whatever alien sentience that the Wish Granter possesses is satisfied with your wish. There is a distant wailing as the last of the Faithless begin to die, then silence." user << "You feel as if you just narrowly avoided a terrible fate..." - for(var/mob/living/simple_animal/hostile/faithless/F in world) + for(var/mob/living/simple_animal/hostile/faithless/F in living_mob_list) F.health = -10 F.stat = 2 F.icon_state = "faithless_dead" diff --git a/maps/tgstation.2.1.0.0.1.dmm b/maps/tgstation.2.1.0.0.1.dmm index fa5f0c7a385..815b3575cc6 100644 --- a/maps/tgstation.2.1.0.0.1.dmm +++ b/maps/tgstation.2.1.0.0.1.dmm @@ -7,38 +7,38 @@ "aag" = (/obj/effect/landmark{name = "carpspawn"},/turf/space,/area) "aah" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area) "aai" = (/turf/simulated/wall/r_wall,/area/security/prison) -"aaj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/security/prison) +"aaj" = (/obj/effect/decal/cleanable/generic,/turf/simulated/floor{tag = "icon-yellowsiding (EAST)"; icon_state = "yellowsiding"; dir = 4},/area/security/prison) "aak" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/security/prison) "aal" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/prison) "aam" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/security/prison) "aan" = (/obj/structure/stool/bed,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aao" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"aap" = (/obj/machinery/camera{c_tag = "Prison Bedroom"; dir = 2; network = list("SS13")},/obj/machinery/camera{c_tag = "Bedroom"; dir = 6; network = list("Prison")},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/security/prison) +"aap" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/simulated/floor{tag = "icon-yellowfull (WEST)"; icon_state = "yellowfull"; dir = 8},/area/security/prison) "aaq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/security/prison) "aar" = (/obj/item/clothing/suit/ianshirt,/obj/machinery/computer/arcade,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/security/prison) "aas" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aat" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aau" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aav" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"aaw" = (/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/security/prison) -"aax" = (/obj/structure/table,/obj/structure/bedsheetbin,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/security/prison) +"aaw" = (/obj/structure/stool/bed,/obj/machinery/camera{c_tag = "Prison Bedroom"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"aax" = (/obj/structure/noticeboard{pixel_y = 32},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aay" = (/obj/structure/stool/bed,/obj/machinery/light/small{dir = 8},/turf/simulated/floor,/area/security/prison) "aaz" = (/turf/simulated/floor,/area/security/prison) "aaA" = (/obj/machinery/door/airlock/glass{name = "Bedroom"},/turf/simulated/floor,/area/security/prison) "aaB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aaC" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"aaD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"aaE" = (/obj/machinery/washing_machine,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/security/prison) -"aaF" = (/obj/machinery/newscaster{pixel_y = -28},/obj/structure/table,/obj/item/weapon/pen{layer = 4},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"aaD" = (/obj/machinery/camera{c_tag = "Bedroom"; dir = 6; network = list("Prison")},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/security/prison) +"aaE" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating,/area/security/prison) +"aaF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/security/prison) "aaG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/security/prison) -"aaH" = (/obj/structure/table,/obj/item/weapon/dice,/obj/item/device/radio/intercom{desc = "Talk... listen through this."; name = "Station Intercom (Brig Radio)"; pixel_x = -28; pixel_y = 0; wires = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/security/prison) +"aaH" = (/obj/structure/table,/obj/item/device/radio/intercom{desc = "Talk... listen through this."; name = "Station Intercom (Brig Radio)"; pixel_x = -28; pixel_y = 0; wires = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/item/device/taperecorder{pixel_x = -4; pixel_y = 2},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/security/prison) "aaI" = (/obj/structure/stool,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aaJ" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"aaK" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"aaL" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"aaK" = (/obj/machinery/newscaster{pixel_y = -28},/obj/structure/table,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/book/manual/security_space_law{pixel_x = -3; pixel_y = 5},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"aaL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/obj/structure/table,/obj/item/weapon/dice,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aaM" = (/turf/simulated/wall,/area/security/prison) "aaN" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "Armory Exterior"; dir = 4},/turf/space,/area) -"aaO" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{layer = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/security/prison) +"aaO" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/stool,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aaP" = (/obj/item/weapon/cigbutt,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "aaQ" = (/obj/machinery/light/small{dir = 1},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"; tag = ""},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison) "aaR" = (/obj/item/weapon/soap/nanotrasen,/obj/machinery/shower{tag = "icon-shower (WEST)"; icon_state = "shower"; dir = 8},/obj/structure/sink{pixel_y = 30},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison) @@ -60,23 +60,23 @@ "abh" = (/obj/machinery/atmospherics/pipe/simple,/obj/machinery/portable_atmospherics/scrubber/huge/stationary,/turf/simulated/floor/plating,/area/security/prison) "abi" = (/obj/machinery/vending/cola,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "abj" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"abk" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"abk" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{tag = "icon-yellowsiding (EAST)"; icon_state = "yellowsiding"; dir = 4},/area/security/prison) "abl" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"abm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/glass_security{id_tag = "Prsion"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) +"abm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prsion"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) "abn" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"abo" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 0; pixel_y = -32},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"abo" = (/obj/machinery/washing_machine,/turf/simulated/floor{tag = "icon-yellowfull (WEST)"; icon_state = "yellowfull"; dir = 8},/area/security/prison) "abp" = (/obj/machinery/door/airlock{name = "Toilet"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison) "abq" = (/turf/simulated/floor,/area/security/range) "abr" = (/obj/machinery/magnetic_module,/obj/structure/target_stake,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) "abs" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) "abt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/security/prison) -"abu" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/glass_security{id_tag = "Prsion"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) +"abu" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "Prsion"; name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) "abv" = (/obj/machinery/camera{c_tag = "Prison Rec Room"; dir = 1; network = list("SS13"); pixel_x = 22},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) "abw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/security/prison) -"abx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/security/prison) -"aby" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/security/prison) -"abz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/security/prison) -"abA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/security/prison) +"abx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/obj/effect/decal/cleanable/dirt,/obj/structure/stool,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"aby" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen{layer = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/pen{layer = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/security/prison) +"abz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/prison) +"abA" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/prison) "abB" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/prison) "abC" = (/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/security/range) "abD" = (/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/security/range) @@ -92,7 +92,7 @@ "abN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/security/range) "abO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/security/range) "abP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/plating,/area/security/prison) -"abQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/security/lobby) +"abQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/security/lobby) "abR" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/prison) "abS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/security/prison) "abT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/security/prison) @@ -115,9 +115,9 @@ "ack" = (/obj/machinery/camera{c_tag = "Firing Range"; dir = 8; network = list("SS13")},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) "acl" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/main) "acm" = (/obj/structure/window/basic{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/main) -"acn" = (/obj/machinery/alarm{pixel_y = 22},/obj/machinery/camera{c_tag = "Security Washroom"; dir = 2},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/main) -"aco" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/sink{pixel_y = 22},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/main) -"acp" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/sink{pixel_y = 22},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/main) +"acn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/table,/obj/item/weapon/storage/box/cups,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/prison) +"aco" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/table,/obj/item/weapon/storage/box/donkpockets,/obj/item/weapon/storage/box/donkpockets,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/prison) +"acp" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/prison) "acq" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/atmospherics/valve,/turf/simulated/floor/plating,/area/security/prison) "acr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) "acs" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) @@ -137,9 +137,9 @@ "acG" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 0},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/security/range) "acH" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy/laser/practice,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/item/weapon/paper{info = "Directions:
    First you'll want to make sure there is a target stake in the center of the magnetic platform. Next, take an aluminum target from the crates back there and slip it into the stake. Make sure it clicks! Next, there should be a control console mounted on the wall somewhere in the room.

    This control console dictates the behaviors of the magnetic platform, which can move your firing target around to simulate real-world combat situations. From here, you can turn off the magnets or adjust their electromagnetic levels and magnetic fields. The electricity level dictates the strength of the pull - you will usually want this to be the same value as the speed. The magnetic field level dictates how far the magnetic pull reaches.

    Speed and path are the next two settings. Speed is associated with how fast the machine loops through the designated path. Paths dictate where the magnetic field will be centered at what times. There should be a pre-fabricated path input already. You can enable moving to observe how the path affects the way the stake moves. To script your own path, look at the following key:


    N: North
    S: South
    E: East
    W: West
    C: Center
    R: Random (results may vary)
    ; or &: separators. They are not necessary but can make the path string better visible."; name = "Firing Range Instructions"},/turf/simulated/floor,/area/security/range) "acI" = (/obj/machinery/door/window/eastleft,/turf/simulated/floor{icon_state = "freezerfloor"},/area/security/main) -"acJ" = (/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/main) -"acK" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/main) -"acL" = (/obj/machinery/washing_machine,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/main) +"acJ" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"acK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/security/prison) +"acL" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/security/prison) "acM" = (/turf/simulated/wall/r_wall,/area) "acN" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall,/area/security/prison) "acO" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) @@ -153,8 +153,8 @@ "acW" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "red"},/area/security/range) "acX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/range) "acY" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/range) -"acZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/main) -"ada" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/security/main) +"acZ" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/security/prison) +"ada" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/security/prison) "adb" = (/obj/structure/closet/secure_closet/injection,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "adc" = (/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "add" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/security/prison) @@ -227,8 +227,8 @@ "aes" = (/obj/structure/table/woodentable,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/weapon/reagent_containers/food/drinks/flask/barflask,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "aet" = (/obj/structure/closet/secure_closet/hos,/obj/machinery/power/apc{dir = 4; name = "Head of Security Office APC"; pixel_x = 27; pixel_y = 2},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "aeu" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) -"aev" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/glass_security{name = "Solitary Confinement"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) -"aew" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) +"aev" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/prison) +"aew" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/security/prison) "aex" = (/turf/simulated/wall,/area/security/brig) "aey" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/security/warden) "aez" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Armoury Section"; req_access_txt = "3"},/turf/simulated/floor,/area/security/warden) @@ -298,7 +298,7 @@ "afL" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Armory"; req_access = null; req_access_txt = "3"},/turf/simulated/floor,/area/security/warden) "afM" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main) "afN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) -"afO" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/main) +"afO" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "BrigFoyer"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/maintenance/fsmaint) "afP" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/item/device/radio/off,/obj/item/weapon/crowbar,/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) "afQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main) "afR" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/security/main) @@ -329,8 +329,8 @@ "agq" = (/obj/structure/rack,/obj/item/weapon/storage/box/seccarts{pixel_x = 3; pixel_y = 2},/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs{pixel_x = -2; pixel_y = -2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden) "agr" = (/obj/structure/rack,/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas{pixel_x = 3; pixel_y = 3},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/warden) "ags" = (/obj/structure/reagent_dispensers/peppertank{pixel_x = -30; pixel_y = 0},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main) -"agt" = (/obj/structure/closet/secure_closet/security,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/main) -"agu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/item/device/assembly/timer,/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) +"agt" = (/obj/structure/table,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/item/bodybag/cryobag,/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "white"},/area/security/brig) +"agu" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison) "agv" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/main) "agw" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) "agx" = (/obj/structure/table,/obj/item/weapon/folder/red,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/main) @@ -363,7 +363,7 @@ "agY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) "agZ" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/main) "aha" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/security/main) -"ahb" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/security/main) +"ahb" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ahc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "ahd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "ahe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) @@ -417,8 +417,8 @@ "aia" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/security/hos) "aib" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/security/hos) "aic" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/structure/lattice,/turf/space,/area) -"aid" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) -"aie" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor,/area/security/prison) +"aid" = (/obj/machinery/door/airlock/glass_security{name = "Solitary Confinement"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/prison) +"aie" = (/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) "aif" = (/obj/structure/table,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0; tag = "icon-alarm0 (EAST)"},/obj/item/weapon/storage/box/evidence,/turf/simulated/floor,/area/security/brig) "aig" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/brig) "aih" = (/obj/structure/table,/turf/simulated/floor,/area/security/brig) @@ -460,7 +460,7 @@ "aiR" = (/obj/machinery/door/window/eastright{dir = 1; name = "Security Delivery"; req_access_txt = "1"},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "delivery"},/area/security/main) "aiS" = (/obj/machinery/light/small{dir = 1},/obj/structure/closet/emcloset,/obj/machinery/camera/xray{c_tag = "Security Escape Pod"},/turf/simulated/floor/plating,/area/security/main) "aiT" = (/turf/simulated/floor/plating,/area/security/main) -"aiU" = (/obj/structure/table,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/obj/item/weapon/storage/firstaid/regular{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "white"},/area/security/brig) +"aiU" = (/obj/structure/closet/secure_closet/security,/obj/structure/window/reinforced{dir = 4},/obj/item/device/flashlight/flare,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/main) "aiV" = (/obj/structure/table,/obj/item/device/healthanalyzer{pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/security/brig) "aiW" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 1; pixel_y = -2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 1; pixel_y = 6},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 0; pixel_y = 2},/obj/item/stack/medical/ointment{pixel_y = 4},/turf/simulated/floor{icon_state = "white"},/area/security/brig) "aiX" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/security/brig) @@ -508,8 +508,8 @@ "ajN" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Security Maintenance APC"; pixel_y = 24},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ajO" = (/obj/machinery/light,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/hallway/primary/fore) "ajP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/hallway/primary/fore) -"ajQ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/security/main) -"ajR" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/security/main) +"ajQ" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"ajR" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "ajS" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station) "ajT" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod3/station) "ajU" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/maintenance/fsmaint) @@ -538,7 +538,7 @@ "akr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/security/brig) "aks" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/security/detectives_office) "akt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/security/detectives_office) -"aku" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/security/main) +"aku" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/gun/projectile/shotgun/doublebarrel,/obj/item/weapon/paper{info = "This permit signifies that the Bartender is permitted to posess this firearm in the bar, and ONLY the bar. Failure to adhere to this permit will result in confiscation of the weapon and possibly arrest."; name = "Shotgun permit"},/turf/simulated/floor/wood,/area/crew_quarters/bar) "akv" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/escape_pod3/station) "akw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Detective Maintenance"; req_access_txt = "4"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "akx" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_security{id_tag = "BrigEast"; name = "Brig"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/brig) @@ -548,8 +548,8 @@ "akB" = (/obj/machinery/door/window/brigdoor{dir = 1; req_access_txt = "63"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/lobby) "akC" = (/obj/machinery/door/window/brigdoor{dir = 1; req_access_txt = "63"},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/lobby) "akD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/cable,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/security/lobby) -"akE" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/glass_security{id_tag = "BrigFoyer"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/lobby) -"akF" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Prison Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/turf/simulated/floor,/area/security/prison) +"akE" = (/obj/structure/rack{dir = 1},/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/sunglasses,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"akF" = (/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) "akG" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/airlock/glass_security{id_tag = "BrigFoyer"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/lobby) "akH" = (/obj/machinery/door/airlock/glass_security{id_tag = "BrigWest"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/brig) "akI" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{id_tag = "BrigWest"; layer = 2.8; name = "Brig"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) @@ -568,7 +568,7 @@ "akV" = (/obj/item/device/radio/intercom{pixel_x = 27},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/security/brig) "akW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/security/brig) "akX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; level = 2; on = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) -"akY" = (/obj/structure/closet/secure_closet/brig{id = "Cell 1"; name = "Cell 1 Locker"},/obj/machinery/camera{c_tag = "Brig Cell 2"; dir = 2},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/brig) +"akY" = (/obj/structure/closet/secure_closet/brig{id = "Cell 1"; name = "Cell 1 Locker"},/obj/machinery/camera{c_tag = "Brig Cell 1"; dir = 2},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/brig) "akZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/security/brig) "ala" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/computer/security,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/lobby) "alb" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 7},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/main) @@ -607,7 +607,7 @@ "alI" = (/obj/structure/table/reinforced{tag = "icon-table_horizontal (NORTH)"; icon_state = "table_horizontal"; dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/window/southright,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor,/area/security/lobby) "alJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/lobby) "alK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/lobby) -"alL" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 0; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/lobby) +"alL" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/security/lobby) "alM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/security/brig) "alN" = (/obj/machinery/light/small{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/brig) "alO" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/machinery/door/window/brigdoor{dir = 8; id = "Cell 3"; name = "Cell 3"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/security/brig) @@ -651,7 +651,7 @@ "amA" = (/obj/machinery/door_timer/cell_1{dir = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/brig) "amB" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1475; listening = 0; name = "Station Intercom (Security)"; pixel_x = -30; pixel_y = 0},/obj/machinery/light{dir = 8},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/lobby) "amC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/lobby) -"amD" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/lobby) +"amD" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/lobby) "amE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/security/lobby) "amF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area/security/lobby) "amG" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1475; listening = 1; name = "Station Intercom (Security)"; pixel_x = 30; pixel_y = 4},/obj/machinery/power/apc{dir = 4; name = "Security Lobby APC"; pixel_x = 24; pixel_y = -3},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Security Lobby"; dir = 8; pixel_x = 0; pixel_y = -22},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/lobby) @@ -730,7 +730,7 @@ "aob" = (/obj/machinery/alarm{dir = 1; pixel_y = -24},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/security/lobby) "aoc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/security/lobby) "aod" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/security/lobby) -"aoe" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/security/lobby) +"aoe" = (/obj/machinery/camera{c_tag = "Bar East"; network = list("SS13")},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aof" = (/obj/machinery/flasher{id = "Cell 4"; pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/brig) "aog" = (/obj/machinery/door_timer/cell_4{pixel_x = -32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor,/area/security/brig) "aoh" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/security/brig) @@ -776,7 +776,7 @@ "aoV" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Security Officer"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/security/main) "aoW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "aoX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"aoY" = (/obj/structure/rack{dir = 1},/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"aoY" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/item/device/assembly/timer,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/simulated/floor{tag = "icon-redfull (NORTHWEST)"; icon_state = "redfull"; dir = 9},/area/security/main) "aoZ" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "apa" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "apb" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/fsmaint) @@ -1047,7 +1047,7 @@ "aug" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{dir = 5; icon_state = "green"},/area/hydroponics) "auh" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "green"},/area/hydroponics) "aui" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -32},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) -"auj" = (/obj/machinery/camera{c_tag = "Bar East"; network = list("Tcomsat")},/turf/simulated/floor/wood,/area/crew_quarters/bar) +"auj" = (/obj/machinery/camera{c_tag = "Central Hallway East"; dir = 4; network = list("SS13")},/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) "auk" = (/obj/structure/noticeboard{pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aul" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor/plating,/area/crew_quarters/fitness) "aum" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor/plating,/area/crew_quarters/fitness) @@ -1059,11 +1059,11 @@ "aus" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/shuttle/escape_pod2/station) "aut" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "arrivals_airlock"; name = "interior access button"; pixel_x = -25; pixel_y = 25; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "auu" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"auv" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) +"auv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/port) "auw" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aux" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "auy" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"auz" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/turf/simulated/floor/plating,/area/maintenance/fpmaint) +"auz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/storage/emergency2) "auA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "auB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/item/weapon/table_parts/wood,/obj/item/weapon/wrench,/turf/simulated/floor/plating,/area/security/vacantoffice2) "auC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/security/vacantoffice2) @@ -1452,12 +1452,12 @@ "aBV" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/maintenance/auxsolarport) "aBW" = (/obj/machinery/vending/assist,/turf/simulated/floor,/area/storage/primary) "aBX" = (/turf/simulated/floor,/area/storage/primary) -"aBY" = (/obj/structure/table,/obj/item/weapon/wirecutters,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/storage/primary) -"aBZ" = (/obj/structure/table,/obj/item/device/t_scanner,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor,/area/storage/primary) -"aCa" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -8; pixel_y = -4},/obj/item/device/assembly/igniter,/obj/item/weapon/screwdriver{pixel_y = 16},/obj/machinery/camera{c_tag = "Primary Tool Storage"},/obj/machinery/requests_console{department = "Tool Storage"; departmentType = 0; pixel_y = 30},/turf/simulated/floor,/area/storage/primary) -"aCb" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/device/assembly/signaler,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/item/device/multitool,/obj/item/device/multitool{pixel_x = 4},/turf/simulated/floor,/area/storage/primary) -"aCc" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/machinery/light_switch{pixel_y = 28},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor,/area/storage/primary) -"aCd" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/storage/primary) +"aBY" = (/obj/structure/table,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/tools) +"aBZ" = (/obj/structure/table,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) +"aCa" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/light,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/tools) +"aCb" = (/obj/structure/table,/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) +"aCc" = (/obj/structure/table,/obj/machinery/light_switch{pixel_y = 28},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) +"aCd" = (/obj/structure/table,/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) "aCe" = (/obj/machinery/power/apc{dir = 1; name = "Primary Tool Storage APC"; pixel_x = -1; pixel_y = 26},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor,/area/storage/primary) "aCf" = (/obj/machinery/vending/tool,/turf/simulated/floor,/area/storage/primary) "aCg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/security/nuke_storage) @@ -1595,9 +1595,9 @@ "aEI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aEJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aEK" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"aEL" = (/obj/structure/table,/obj/item/weapon/cable_coil{pixel_x = 2; pixel_y = -2},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/screwdriver{pixel_y = 16},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/storage/primary) +"aEL" = (/obj/structure/table,/obj/machinery/camera{c_tag = "Primary Tool Storage"},/obj/machinery/requests_console{department = "Tool Storage"; departmentType = 0; pixel_y = 30},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) "aEM" = (/obj/effect/landmark/start{name = "Assistant"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/storage/primary) -"aEN" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/storage/primary) +"aEN" = (/obj/structure/table,/obj/machinery/alarm{pixel_y = 23},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) "aEO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/storage/primary) "aEP" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/space,/area) "aEQ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/security/nuke_storage) @@ -1647,7 +1647,7 @@ "aFI" = (/obj/machinery/power/apc{dir = 1; name = "Hydroponics APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/table,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 8; pixel_y = 8},/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 0; pixel_y = 3},/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics) "aFJ" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aFK" = (/obj/machinery/alarm{pixel_y = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/machinery/camera{c_tag = "Hydroponics Storage"},/obj/structure/closet/crate/hydroponics,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/screwdriver,/obj/item/weapon/shovel/spade,/obj/item/weapon/wrench,/turf/simulated/floor{icon_state = "hydrofloor"},/area/hydroponics) -"aFL" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/closet,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) +"aFL" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aFM" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/maintenance/fsmaint2) "aFN" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aFO" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) @@ -1688,12 +1688,12 @@ "aGx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aGy" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aGz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/storage/primary) -"aGA" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/storage/primary) +"aGA" = (/obj/structure/table,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) "aGB" = (/obj/effect/landmark/start{name = "Assistant"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/storage/primary) "aGC" = (/obj/effect/landmark/start{name = "Assistant"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/storage/primary) "aGD" = (/obj/effect/landmark/start{name = "Assistant"},/obj/structure/stool{pixel_y = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/storage/primary) "aGE" = (/obj/effect/landmark/start{name = "Assistant"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/storage/primary) -"aGF" = (/obj/structure/table,/obj/item/weapon/weldingtool,/obj/item/weapon/crowbar,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/turf/simulated/floor,/area/storage/primary) +"aGF" = (/obj/structure/table,/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) "aGG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/security/nuke_storage) "aGH" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/security/nuke_storage) "aGI" = (/obj/machinery/door/airlock/vault{icon_state = "door_locked"; locked = 1; req_access_txt = "53"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/security/nuke_storage) @@ -1772,11 +1772,11 @@ "aId" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/hallway/secondary/entry) "aIe" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "aIf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fpmaint2) -"aIg" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/analyzer,/turf/simulated/floor,/area/storage/primary) +"aIg" = (/obj/structure/table,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) "aIh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/storage/primary) "aIi" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/storage/primary) -"aIj" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/device/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/obj/item/clothing/gloves/fyellow,/turf/simulated/floor,/area/storage/primary) -"aIk" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/turf/simulated/floor,/area/storage/primary) +"aIj" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/storage/primary) +"aIk" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/obj/item/device/flashlight,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "aIl" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/storage/primary) "aIm" = (/turf/simulated/floor{icon_state = "delivery"},/area/storage/primary) "aIn" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Tool Storage"},/turf/simulated/floor{icon_state = "bot"},/area/storage/primary) @@ -2064,7 +2064,7 @@ "aNJ" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/library) "aNK" = (/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/library) "aNL" = (/obj/machinery/door/airlock/glass{name = "Chapel Office"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/office) -"aNM" = (/obj/machinery/door/morgue{name = "Confession Booth (Chaplain)"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"aNM" = (/obj/machinery/door/morgue{dir = 2; name = "Confession Booth"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aNN" = (/obj/machinery/light/small{dir = 1},/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aNO" = (/obj/machinery/vending/snack,/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry) "aNP" = (/obj/item/device/radio/beacon,/obj/machinery/camera{c_tag = "Arrivals South"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry) @@ -2200,7 +2200,7 @@ "aQp" = (/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) "aQq" = (/obj/structure/table/woodentable,/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aQr" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) -"aQs" = (/obj/machinery/door/morgue{name = "Confession Booth"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) +"aQs" = (/obj/machinery/door/morgue{dir = 2; name = "Confession Booth (Chaplain)"; req_access_txt = "22"},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aQt" = (/obj/machinery/light/small,/obj/item/device/radio/intercom{broadcasting = 1; frequency = 1480; name = "Confessional Intercom"; pixel_x = 25},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/chapel/main) "aQu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/vending/cola,/turf/simulated/floor{icon_state = "dark"},/area/hallway/secondary/exit) "aQv" = (/obj/machinery/computer/arcade,/turf/simulated/floor{icon_state = "dark"},/area/hallway/secondary/exit) @@ -2258,7 +2258,7 @@ "aRv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aRw" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar) "aRx" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"aRy" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/medbay) +"aRy" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/starboard) "aRz" = (/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aRA" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/crew_quarters/bar) "aRB" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/wood,/area/crew_quarters/bar) @@ -2311,7 +2311,7 @@ "aSw" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/storage/tools) "aSx" = (/turf/simulated/floor,/area/storage/tools) "aSy" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Auxiliary Tool Storage"; dir = 2},/turf/simulated/floor,/area/storage/tools) -"aSz" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/rods{amount = 50},/turf/simulated/floor,/area/storage/tools) +"aSz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/closet,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aSA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/storage/tools) "aSB" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/bridge) "aSC" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/bridge) @@ -2379,11 +2379,11 @@ "aTM" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/storage/emergency2) "aTN" = (/obj/machinery/light/small,/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/storage/emergency2) "aTO" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/storage/emergency2) -"aTP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/simulated/floor/plating,/area/storage/emergency2) +"aTP" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/hallway/primary/starboard) "aTQ" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/storage/tools) -"aTR" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor,/area/storage/tools) -"aTS" = (/obj/structure/table,/obj/item/weapon/module/power_control,/obj/item/weapon/airlock_electronics,/turf/simulated/floor,/area/storage/tools) -"aTT" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor,/area/storage/tools) +"aTR" = (/obj/structure/rack{dir = 1},/obj/item/weapon/extinguisher,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"aTS" = (/obj/machinery/pipedispenser,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor,/area/atmos) +"aTT" = (/obj/structure/closet/crate,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/assembly/prox_sensor,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "aTU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/storage/tools) "aTV" = (/turf/simulated/wall,/area/hallway/primary/central) "aTW" = (/turf/simulated/wall,/area/bridge) @@ -2450,7 +2450,7 @@ "aVf" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/security/vacantoffice) "aVg" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/security/vacantoffice) "aVh" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/security/vacantoffice) -"aVi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/closet/crate,/obj/item/clothing/mask/gas,/turf/simulated/floor/plating,/area/maintenance/port) +"aVi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/port) "aVj" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/port) "aVk" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/port) "aVl" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/port) @@ -2539,7 +2539,7 @@ "aWQ" = (/obj/item/clothing/gloves/rainbow,/obj/item/clothing/shoes/rainbow,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/clothing/head/soft/rainbow,/obj/item/clothing/under/rainbow,/turf/simulated/floor/plating,/area/maintenance/port) "aWR" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/storage/tools) "aWS" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/storage/tools) -"aWT" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/light,/obj/item/device/multitool,/turf/simulated/floor,/area/storage/tools) +"aWT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/medbay) "aWU" = (/obj/structure/closet/toolcloset,/turf/simulated/floor,/area/storage/tools) "aWV" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/storage/tools) "aWW" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{icon_state = "blue"; dir = 4},/area/hallway/primary/central) @@ -2720,8 +2720,8 @@ "bap" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/bar) "baq" = (/obj/machinery/light/small,/obj/machinery/newscaster{pixel_y = -28},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/bar) "bar" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/bar) -"bas" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/obj/item/weapon/storage/fancy/donut_box,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) -"bat" = (/obj/structure/table/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) +"bas" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) +"bat" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/fancy/donut_box,/obj/machinery/door/firedoor/border_only,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "kitchen"; name = "Kitchen Shutters"; opacity = 0},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "bau" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/hydroponics) "bav" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hydroponics) "baw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hydroponics) @@ -2909,11 +2909,11 @@ "bdW" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/crew_quarters/captain) "bdX" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bdY" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/wood,/area/crew_quarters/captain) -"bdZ" = (/obj/machinery/camera{c_tag = "Central Hallway East"; dir = 4; network = list("SS13")},/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) -"bea" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/starboard) +"bdZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/medical/medbay) +"bea" = (/turf/simulated/wall,/area/medical/medbay) "beb" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/hallway/primary/starboard) "bec" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/hallway/primary/starboard) -"bed" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/hallway/primary/starboard) +"bed" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bee" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/hallway/primary/starboard) "bef" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard) "beg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor,/area/hallway/primary/starboard) @@ -2958,19 +2958,19 @@ "beT" = (/obj/structure/table/woodentable,/obj/machinery/recharger{pixel_y = 4},/obj/machinery/camera{c_tag = "Captain's Office"; dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/captain) "beU" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=Stbd"; location = "HOP"},/turf/simulated/floor,/area/hallway/primary/central) "beV" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/simulated/floor,/area/hallway/primary/starboard) -"beW" = (/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "greencorner"},/area/hallway/primary/starboard) -"beX" = (/turf/simulated/floor{dir = 2; icon_state = "green"},/area/hallway/primary/starboard) -"beY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 2; icon_state = "green"},/area/hallway/primary/starboard) -"beZ" = (/obj/machinery/light,/turf/simulated/floor{dir = 8; icon_state = "greencorner"},/area/hallway/primary/starboard) +"beW" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"beX" = (/obj/machinery/door/airlock/medical{name = "Virology Access"; req_access_txt = "5"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"beY" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/securearea{pixel_x = 32},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"beZ" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/toxins/misc_lab) "bfa" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor,/area/hallway/primary/starboard) -"bfb" = (/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/hallway/primary/starboard) +"bfb" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{icon_state = "bot"},/area/atmos) "bfc" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/hallway/primary/starboard) -"bfd" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/hallway/primary/starboard) -"bfe" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard) +"bfd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/atmos) +"bfe" = (/obj/structure/computerframe,/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/engine/break_room) "bff" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard) -"bfg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard) +"bfg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/portable_atmospherics/canister/sleeping_agent,/obj/structure/window/basic{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/atmos) "bfh" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 3"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard) -"bfi" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/starboard) +"bfi" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{icon_state = "bot"},/area/atmos) "bfj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/hallway/primary/starboard) "bfk" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/hallway/primary/starboard) "bfl" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/starboard) @@ -2982,7 +2982,7 @@ "bfr" = (/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "escape"},/area/hallway/secondary/exit) "bfs" = (/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/hallway/secondary/exit) "bft" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/hallway/secondary/exit) -"bfu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/exit) +"bfu" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/aft) "bfv" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/simulated/floor,/area/hallway/secondary/entry) "bfw" = (/obj/machinery/conveyor{dir = 5; id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal) "bfx" = (/obj/machinery/conveyor{dir = 4; id = "garbage"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/disposal) @@ -3020,7 +3020,7 @@ "bgd" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bge" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bgf" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/power/apc{aidisabled = 0; dir = 1; name = "AI Chamber APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) -"bgg" = (/obj/machinery/door/window{name = "AI Core Door"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/turretid{name = "AI Chamber turret control"; pixel_x = 24; pixel_y = 24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) +"bgg" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bgh" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bgi" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bgj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/crew_quarters/captain) @@ -3033,19 +3033,19 @@ "bgq" = (/obj/structure/table/woodentable,/obj/item/weapon/pinpointer,/obj/item/weapon/disk/nuclear,/obj/item/weapon/storage/secure/safe{pixel_x = 35; pixel_y = 5},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bgr" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) "bgs" = (/turf/simulated/wall/r_wall,/area/medical/chemistry) -"bgt" = (/obj/structure/sign/redcross,/turf/simulated/wall,/area/medical/medbay) -"bgu" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bgv" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/medical/medbay) -"bgw" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/medical/medbay) -"bgx" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/medical/medbay) -"bgy" = (/turf/simulated/wall/r_wall,/area/medical/cmo) +"bgt" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_west_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bgu" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bgv" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bgw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bgx" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bgy" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 4},/obj/item/device/flashlight/flare,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/security/main) "bgz" = (/turf/simulated/wall,/area/medical/morgue) -"bgA" = (/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6"},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"bgB" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/hallway/primary/starboard) -"bgC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard) -"bgD" = (/obj/machinery/power/apc{dir = 2; name = "Starboard Primary Hallway APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor,/area/hallway/primary/starboard) +"bgA" = (/obj/machinery/pipedispenser/disposal,/turf/simulated/floor,/area/atmos) +"bgB" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bgC" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bgD" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) "bgE" = (/turf/simulated/wall,/area/storage/emergency) -"bgF" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bgF" = (/turf/simulated/floor/beach/water,/turf/simulated/floor{tag = "icon-siding8"; icon_state = "siding8"},/area/crew_quarters/fitness) "bgG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/assembly/chargebay) "bgH" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/starboard) "bgI" = (/turf/simulated/floor{dir = 1; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/starboard) @@ -3055,10 +3055,10 @@ "bgM" = (/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "purple"},/area/hallway/primary/starboard) "bgN" = (/turf/simulated/floor{dir = 6; icon_state = "purple"},/area/hallway/primary/starboard) "bgO" = (/turf/simulated/wall/r_wall,/area/toxins/lab) -"bgP" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bgP" = (/turf/simulated/floor/beach/water,/turf/simulated/floor{tag = "icon-siding4"; icon_state = "siding4"},/area/crew_quarters/fitness) "bgQ" = (/turf/simulated/wall,/area/maintenance/asmaint2) -"bgR" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/exit) -"bgS" = (/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/exit) +"bgR" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) +"bgS" = (/turf/simulated/floor/beach/water,/turf/simulated/floor{tag = "icon-siding2 (NORTH)"; icon_state = "siding2"; dir = 1},/turf/simulated/floor{tag = "icon-siding8"; icon_state = "siding8"},/area/crew_quarters/fitness) "bgT" = (/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/hallway/secondary/entry) "bgU" = (/obj/machinery/conveyor{dir = 1; id = "garbage"},/turf/simulated/floor/plating,/area/maintenance/disposal) "bgV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/disposal) @@ -3110,37 +3110,37 @@ "bhP" = (/obj/structure/table/woodentable,/obj/item/device/eftpos{eftpos_name = "Captain EFTPOS scanner"},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bhQ" = (/obj/structure/table/woodentable,/obj/item/weapon/melee/chainofcommand,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/wood,/area/crew_quarters/captain) "bhR" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor,/area/hallway/primary/central) -"bhS" = (/obj/structure/table,/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"bhT" = (/obj/machinery/chem_master,/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"bhU" = (/obj/machinery/camera{c_tag = "Chemistry"; dir = 2; network = list("SS13")},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = -1; pixel_y = -1; pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 3; pixel_x = 2; pixel_y = 2},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"bhV" = (/obj/structure/table,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; name = "Chemistry Cleaner"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"bhW" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"bhS" = (/obj/machinery/camera{c_tag = "Atmospherics North West"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{icon_state = "bot"},/area/atmos) +"bhT" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/portable_atmospherics/canister/sleeping_agent,/obj/structure/window/basic{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/atmos) +"bhU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor,/area/hallway/primary/aft) +"bhV" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) +"bhW" = (/turf/simulated/floor/beach/water,/turf/simulated/floor{tag = "icon-siding2 (NORTH)"; icon_state = "siding2"; dir = 1},/area/crew_quarters/fitness) "bhX" = (/turf/simulated/wall,/area/medical/chemistry) -"bhY" = (/obj/machinery/newscaster{pixel_x = -28; pixel_y = 0},/obj/structure/table,/obj/item/weapon/folder/white,/turf/simulated/floor{dir = 8; icon_state = "whiteyellowcorner"},/area/medical/medbay) -"bhZ" = (/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bia" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bib" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bic" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/item/weapon/gun/projectile/shotgun/doublebarrel,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bid" = (/obj/structure/filingcabinet/filingcabinet,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bie" = (/obj/machinery/computer/crew,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bif" = (/obj/machinery/computer/med_data,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"big" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bih" = (/obj/machinery/light/small{dir = 8},/obj/structure/table,/obj/item/device/camera{name = "Autopsy Camera"; pixel_x = -2; pixel_y = -2},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"bii" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"bij" = (/obj/machinery/alarm{pixel_y = 24},/obj/structure/table,/obj/item/weapon/autopsy_scanner{pixel_x = 1; pixel_y = 1},/obj/item/weapon/scalpel,/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"bik" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"bil" = (/obj/machinery/power/apc{dir = 1; name = "Morgue APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"bim" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"bin" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/medical/morgue) -"bio" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/storage/emergency) -"bip" = (/obj/machinery/door/airlock{name = "Starboard Emergency Storage"; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/storage/emergency) -"biq" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bir" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/assembly/chargebay) +"bhY" = (/turf/simulated/floor/beach/water,/turf/simulated/floor{tag = "icon-siding2 (NORTH)"; icon_state = "siding2"; dir = 1},/turf/simulated/floor{tag = "icon-siding4"; icon_state = "siding4"},/area/crew_quarters/fitness) +"bhZ" = (/obj/structure/rack{dir = 1},/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/aft) +"bia" = (/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/pill/methylphenidate,/obj/item/weapon/reagent_containers/pill/citalopram,/obj/item/weapon/reagent_containers/pill/citalopram,/obj/item/weapon/reagent_containers/pill/methylphenidate,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/clothing/suit/straight_jacket{layer = 3},/obj/structure/closet/secure_closet{name = "Psychiatrist's Locker"; req_access = null; req_access_txt = "64"},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) +"bib" = (/obj/structure/table/reinforced,/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 6},/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 6},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/misc_lab) +"bic" = (/obj/structure/table/reinforced,/obj/machinery/ignition_switch{id = "Xenobio"; pixel_x = -6; pixel_y = 4},/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/misc_lab) +"bid" = (/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/obj/machinery/power/apc{dir = 8; name = "Misc Research APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/general/visible{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/misc_lab) +"bie" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bif" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/sign/securearea{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"big" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bih" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bii" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bij" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bik" = (/obj/machinery/vending/wallmed1{pixel_y = 28},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bil" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bim" = (/obj/machinery/door/airlock/medical{name = "Patient Room 2"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bin" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bio" = (/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "lightsout"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bip" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"biq" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Psychiatrist's Office"; req_access_txt = "64"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bir" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) "bis" = (/turf/simulated/wall/r_wall,/area/assembly/chargebay) -"bit" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firedoor South"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor,/area/assembly/chargebay) +"bit" = (/obj/machinery/vending/wallmed1{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) "biu" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/poddoor/shutters{id = "Skynet_launch"; name = "Mech Bay"},/turf/simulated/floor{icon_state = "delivery"},/area/assembly/chargebay) "biv" = (/obj/machinery/computer/rdconsole/robotics,/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) -"biw" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) +"biw" = (/obj/structure/noticeboard{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) "bix" = (/obj/machinery/r_n_d/circuit_imprinter,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "biy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) "biz" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/item/weapon/folder/white,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/assembly/robotics) @@ -3189,31 +3189,31 @@ "bjq" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) "bjr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/central) "bjs" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/hallway/primary/central) -"bjt" = (/obj/machinery/requests_console{department = "Chemistry"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper{pixel_x = 0; pixel_y = -4},/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"bju" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/stool,/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"bjv" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bjt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bju" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bjv" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bjw" = (/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"bjx" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"bjy" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "33"},/turf/simulated/floor/plating,/area/medical/chemistry) -"bjz" = (/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) -"bjA" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bjB" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bjC" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bjD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/cmo) -"bjE" = (/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bjF" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Chief Medical Officer"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bjG" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bjH" = (/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bjI" = (/obj/structure/filingcabinet/chestdrawer{desc = "A large drawer filled with autopsy reports."; name = "Autopsy Reports"},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"bjJ" = (/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"bjK" = (/obj/machinery/optable,/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"bjL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"bjM" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"bjN" = (/obj/machinery/power/apc{dir = 1; name = "Starboard Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/storage/emergency) -"bjO" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/storage/emergency) -"bjP" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/storage/emergency) -"bjQ" = (/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/storage/emergency) -"bjR" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bjx" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bjy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/wall/r_wall,/area/maintenance/asmaint) +"bjz" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/maintenance/asmaint) +"bjA" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen/blue{pixel_x = -3; pixel_y = 2},/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/machinery/camera{c_tag = "Psychiatric Office"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) +"bjB" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bjC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/simulated/floor/plating,/area/toxins/misc_lab) +"bjD" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/maintenance{name = "Misc Research Maintenance"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/toxins/misc_lab) +"bjE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) +"bjF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door_control{id = "misclab"; name = "Test Chamber Blast Doors"; pixel_x = 6; pixel_y = 30; req_access_txt = "47"},/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) +"bjG" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/toxins/misc_lab) +"bjH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/toxins/misc_lab) +"bjI" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bjJ" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door_control{id = "medpriv1"; name = "Privacy Shutters"; pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bjK" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/tie/stethoscope,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bjL" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bjM" = (/obj/machinery/washing_machine,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 2; icon_state = "whitegreencorner"},/area/medical/medbay) +"bjN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv1"; name = "Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/medbay) +"bjO" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/medical/medbay) +"bjP" = (/obj/structure/table,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) +"bjQ" = (/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (WEST)"; icon_state = "comfychair_teal"; dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) +"bjR" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) "bjS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/assembly/chargebay) "bjT" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/assembly/chargebay) "bjU" = (/turf/simulated/floor,/area/assembly/chargebay) @@ -3292,27 +3292,27 @@ "blp" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain) "blq" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/crew_quarters/captain) "blr" = (/obj/machinery/light{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central) -"bls" = (/obj/structure/table,/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"blt" = (/obj/machinery/chem_dispenser,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"blu" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"blv" = (/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = 4; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"blw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/chemistry) -"blx" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bly" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"blz" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"blA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"blB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/cmo) -"blC" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"blD" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/stamp/cmo,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/clothing/glasses/hud/health,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"blE" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/clothing/tie/stethoscope,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/mob/living/simple_animal/cat/Runtime,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"blF" = (/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{pixel_x = 25},/obj/machinery/camera{c_tag = "Chief Medical Office"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"blG" = (/obj/structure/morgue,/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"blH" = (/obj/structure/table,/obj/item/weapon/storage/box/gloves{pixel_x = -4; pixel_y = -3; pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/box/masks{pixel_x = 4; pixel_y = 5; pixel_x = 0; pixel_y = 0},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"blI" = (/obj/machinery/camera{c_tag = "Medbay Morgue"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/light/small{dir = 4},/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bls" = (/obj/effect/landmark/start{name = "Psychiatrist"},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/obj/machinery/door_control{id = "medpriv1"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) +"blt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/atmos) +"blu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/maintenance{name = "Atmospherics Maintenance"; req_access_txt = "24;12"},/turf/simulated/floor/plating,/area/atmos) +"blv" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/closet/firecloset,/obj/item/taperoll/engineering,/turf/simulated/floor,/area/engine/break_room) +"blw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/aft) +"blx" = (/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/camera{c_tag = "Aft Primary Hallway 2"; dir = 4; network = list("SS13")},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) +"bly" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/space,/area) +"blz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology) +"blA" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"blB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"blC" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"blD" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"blE" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"blF" = (/obj/structure/stool/bed/chair,/obj/item/weapon/storage/fancy/cigarettes,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"blG" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"blH" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"blI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Construction Area Maintenance"; req_access_txt = "32"},/turf/simulated/floor/plating,/area/construction) "blJ" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/storage/emergency) "blK" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/storage/emergency) "blL" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/storage/emergency) -"blM" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/simulated/floor/plating,/area/storage/emergency) +"blM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) "blN" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/assembly/chargebay) "blO" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "blP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) @@ -3380,20 +3380,20 @@ "bmZ" = (/obj/machinery/door/airlock/command{name = "Captain's Quarters"; req_access = null; req_access_txt = "20"},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "bna" = (/obj/machinery/door/airlock/maintenance{name = "Captain's Office Maintenance"; req_access_txt = "20"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/crew_quarters/captain) "bnb" = (/obj/structure/disposalpipe/segment,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 1},/turf/simulated/floor,/area/hallway/primary/central) -"bnc" = (/obj/structure/table,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper{pixel_y = -4},/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"bnd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool,/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"bne" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"bnf" = (/obj/structure/table,/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/weapon/grenade/chem_grenade{pixel_x = 6; pixel_y = 5},/obj/item/weapon/grenade/chem_grenade{pixel_x = 6; pixel_y = 5},/obj/item/weapon/grenade/chem_grenade{pixel_x = 6; pixel_y = 5},/obj/item/weapon/grenade/chem_grenade{pixel_x = 6; pixel_y = 5},/obj/item/weapon/screwdriver{pixel_x = -2; pixel_y = 6},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"bng" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/chemistry) -"bnh" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor{tag = "icon-whitegreen (NORTHWEST)"; icon_state = "whitegreen"; dir = 9},/area/medical/medbay) +"bnc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) +"bnd" = (/obj/structure/table/reinforced,/turf/simulated/floor,/area/engine/break_room) +"bne" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bnf" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "virology_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bng" = (/obj/structure/closet/emcloset,/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/hallway/primary/aft) +"bnh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) "bni" = (/obj/machinery/door/firedoor/border_only,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/maintenance{name = "E.V.A. Maintenance"; req_access_txt = "11;24;5;1"},/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) -"bnj" = (/obj/machinery/door/window/northleft{name = "Medbay Reception"; req_access_txt = "5"},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/medical/medbay) +"bnj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) "bnk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"bnl" = (/obj/machinery/power/apc{dir = 8; name = "CM Office APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bnm" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bnn" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bno" = (/obj/structure/disposalpipe/segment,/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bnp" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bnl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) +"bnm" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/trinary/mixer{dir = 1},/turf/simulated/floor,/area/atmos) +"bnn" = (/obj/machinery/door/airlock/engineering{name = "Construction Area"; req_access_txt = "32"},/turf/simulated/floor/plating,/area/construction) +"bno" = (/obj/structure/rack{dir = 1},/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bnp" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 4; icon_state = "intact-y"; level = 2},/turf/space,/area) "bnq" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/assembly/chargebay) "bnr" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/assembly/chargebay) "bns" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) @@ -3414,7 +3414,7 @@ "bnH" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/lab) "bnI" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bnJ" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/pen,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) -"bnK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bnK" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) "bnL" = (/obj/machinery/light,/turf/simulated/floor{icon_state = "warning"},/area/hallway/secondary/entry) "bnM" = (/obj/machinery/disposal/deliveryChute{dir = 1; name = "disposal inlet"},/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/disposal) "bnN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/disposal) @@ -3454,24 +3454,24 @@ "bov" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/central) "bow" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/central) "box" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/chemistry) -"boy" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"boz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/chem_master,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"boA" = (/obj/structure/table,/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/box/syringes,/obj/item/clothing/glasses/science{pixel_x = 0; pixel_y = 1},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"boB" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/light,/turf/simulated/floor{dir = 1; icon_state = "whiteyellowcorner"},/area/medical/medbay) -"boC" = (/obj/structure/table/reinforced,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) -"boD" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; pixel_y = 6; range = 3; req_access_txt = "5"},/obj/structure/stool/bed/chair/office/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"boE" = (/obj/structure/sign/nosmoking_2{pixel_x = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair/office/light{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"boF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"boG" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"boH" = (/obj/structure/disposalpipe/segment,/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"boI" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"boJ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"boK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"boL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"boM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) -"boN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Morgue Maintenance"; req_access_txt = "6"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/morgue) -"boO" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"boP" = (/obj/structure/disposalpipe/sortjunction{sortType = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"boy" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"boz" = (/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"boA" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall,/area/maintenance/asmaint) +"boB" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "virology_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"boC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/wall,/area/maintenance/asmaint) +"boD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"boE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"boF" = (/obj/machinery/computer/atmoscontrol,/turf/simulated/floor,/area/engine/break_room) +"boG" = (/obj/item/device/radio/beacon,/turf/simulated/floor,/area/atmos) +"boH" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor,/area/atmos) +"boI" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/atmos) +"boJ" = (/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"boK" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/atmos) +"boL" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 13},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"boM" = (/obj/machinery/door/airlock/medical{name = "Virology Access"; req_access_txt = "39"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"boN" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/virology) +"boO" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/medical/virology) +"boP" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "virology_pump"},/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/asmaint) "boQ" = (/obj/machinery/camera{c_tag = "Mech Bay"; dir = 4},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor,/area/assembly/chargebay) "boR" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/assembly/chargebay) "boS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/assembly/robotics) @@ -3480,11 +3480,11 @@ "boV" = (/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics) "boW" = (/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/assembly/robotics) "boX" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) -"boY" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) +"boY" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "virology_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "virology_pump"; exterior_door_tag = "virology_outer"; frequency = 1379; id_tag = "virology_airlock"; interior_door_tag = "virology_inner"; pixel_x = 25; req_access_txt = "13"; sensor_tag = "virology_sensor"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "boZ" = (/obj/structure/closet/firecloset,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 10; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/research{name = "Research Division"}) "bpa" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/research{name = "Research Division"}) "bpb" = (/obj/machinery/computer/rdconsole/core,/turf/simulated/floor,/area/toxins/lab) -"bpc" = (/turf/simulated/floor,/area/toxins/lab) +"bpc" = (/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor,/area/toxins/lab) "bpd" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor,/area/toxins/lab) "bpe" = (/obj/structure/table,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/micro_laser,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bpf" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -3535,22 +3535,22 @@ "bpY" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain) "bpZ" = (/obj/machinery/light/small{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/crew_quarters/captain) "bqa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/crew_quarters/captain) -"bqb" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/power/apc{dir = 8; level = 4; name = "Chemistry APC"; pixel_x = -25},/obj/structure/closet/secure_closet/chemical,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"bqc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"bqd" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"bqe" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/device/radio/headset/headset_med,/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"bqf" = (/turf/simulated/wall,/area/medical/medbay) -"bqg" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bqh" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bqi" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/medbay) +"bqb" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/atmos) +"bqc" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/atmos) +"bqd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) +"bqe" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 8; icon_state = "whiteredcorner"},/area/medical/medbay) +"bqf" = (/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bqg" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bqh" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/camera{c_tag = "Medbay Storage"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bqi" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/rxglasses,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bqj" = (/obj/machinery/camera{c_tag = "Bar Storage"},/obj/structure/table/woodentable,/obj/machinery/reagentgrinder,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bqk" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 30; pixel_y = 0; pixel_z = 0},/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/computer/crew,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bql" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/cmo) -"bqm" = (/obj/structure/table,/obj/item/weapon/cartridge/medical{pixel_x = -2; pixel_y = 6},/obj/item/weapon/cartridge/medical{pixel_x = 6; pixel_y = 3},/obj/item/weapon/cartridge/medical,/obj/item/weapon/cartridge/chemistry{pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bqn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bqo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bqp" = (/obj/structure/closet/secure_closet/CMO,/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"bqq" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6;5"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bqk" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = -1; pixel_y = -1; pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bql" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/medbay) +"bqm" = (/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"bqn" = (/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"bqo" = (/obj/structure/stool,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"bqp" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/hemostat{pixel_y = 4},/obj/item/weapon/cautery{pixel_y = 4},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/sleeper) +"bqq" = (/obj/structure/table,/obj/item/weapon/FixOVein{pixel_x = -6; pixel_y = 1},/turf/simulated/floor,/area/medical/sleeper) "bqr" = (/turf/simulated/wall/r_wall,/area/medical/genetics) "bqs" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/assembly/chargebay) "bqt" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/assembly/chargebay) @@ -3605,32 +3605,32 @@ "brq" = (/obj/structure/table/woodentable,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/item/weapon/storage/box/matches,/obj/item/clothing/mask/cigarette/cigar,/obj/item/weapon/reagent_containers/food/drinks/flask{pixel_x = 8},/turf/simulated/floor/carpet,/area/crew_quarters/captain) "brr" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Shower"; req_access_txt = "0"},/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/item/weapon/soap/deluxe,/obj/item/weapon/bikehorn/rubberducky,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/captain) "brs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/crew_quarters/captain) -"brt" = (/turf/simulated/floor{dir = 2; icon_state = "greencorner"},/area/hallway/primary/central) -"bru" = (/obj/structure/closet/wardrobe/chemistry_white,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"brv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"brw" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) -"brx" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/packageWrap,/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) -"bry" = (/obj/structure/stool/bed/roller,/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 26; range = 3},/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"brz" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/medical/medbay) +"brt" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/weapon/bonesetter,/obj/machinery/door_control{id = "medpriv4"; name = "Privacy Shutters"; pixel_y = 25},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/sleeper) +"bru" = (/obj/structure/table,/obj/item/weapon/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/scalpel,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"brv" = (/obj/machinery/vending/snack,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "dark"},/area/hallway/primary/central) +"brw" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/medical/sleeper) +"brx" = (/obj/machinery/vending/cigarette,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/hallway/primary/central) +"bry" = (/obj/structure/table,/obj/item/weapon/storage/box/gloves{pixel_x = 0; pixel_y = 0; pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0; pixel_x = 0; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "whiteredcorner"},/area/medical/sleeper) +"brz" = (/obj/structure/closet/l3closet/general,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "brA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "toxin_test_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"brB" = (/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"brC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/medbay) -"brD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/cmo) -"brE" = (/obj/machinery/door/airlock/glass_command{name = "Chief Medical Officer"; req_access_txt = "40"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) -"brF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/cmo) -"brG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/cmo) -"brH" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"brI" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"brJ" = (/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"brK" = (/obj/machinery/photocopier,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) -"brL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/genetics) -"brM" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/device/radio/headset/headset_medsci,/obj/item/device/flashlight/pen{pixel_x = 0},/obj/item/device/flashlight/pen{pixel_x = 4; pixel_y = 3},/obj/machinery/requests_console{department = "Genetics"; departmentType = 0; name = "Genetics Requests Console"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"brN" = (/obj/machinery/power/apc{dir = 1; name = "Genetics APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"brO" = (/obj/machinery/light{dir = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"brP" = (/obj/machinery/dna_scannernew,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) -"brQ" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/medical/genetics) -"brR" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/mob/living/carbon/monkey,/turf/simulated/floor,/area/medical/genetics) -"brS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/genetics) +"brB" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/obj/item/weapon/circular_saw,/turf/simulated/floor,/area/medical/sleeper) +"brC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"brD" = (/obj/structure/table,/obj/item/weapon/reagent_containers/blood/AMinus{pixel_x = -7; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/APlus{pixel_x = -5; pixel_y = 4},/obj/item/weapon/reagent_containers/blood/empty{pixel_x = 1; pixel_y = -4},/obj/item/weapon/reagent_containers/blood/empty{pixel_x = 1; pixel_y = -4},/obj/item/weapon/reagent_containers/blood/BMinus{pixel_y = 4},/obj/item/weapon/reagent_containers/blood/BPlus{pixel_x = 5; pixel_y = 3},/obj/item/weapon/reagent_containers/blood/OMinus{pixel_x = -5; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = 4; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"brE" = (/obj/structure/table,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"brF" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor,/area/janitor) +"brG" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/janitor) +"brH" = (/obj/machinery/door/window/westleft{name = "Janitoral Delivery"; req_access_txt = "26"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "delivery"},/area/janitor) +"brI" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/janitor) +"brJ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"brK" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Janitor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor{icon_state = "bot"},/area/janitor) +"brL" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/asmaint) +"brM" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"brN" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Custodial Closet"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/janitor) +"brO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"brP" = (/turf/simulated/floor{dir = 4; icon_state = "whitehall"; tag = "icon-whitehall (WEST)"},/area/medical/sleeper) +"brQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall,/area/maintenance/asmaint) +"brR" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"brS" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/medical/sleeper) "brT" = (/obj/structure/extinguisher_cabinet{pixel_x = -27},/obj/machinery/light{dir = 8},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "brU" = (/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "brV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) @@ -3646,7 +3646,7 @@ "bsf" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bsg" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bsh" = (/obj/structure/table,/obj/item/weapon/cable_coil,/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module{pixel_x = 2; pixel_y = 3},/obj/item/weapon/stock_parts/scanning_module,/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) -"bsi" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bsi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bsj" = (/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/space,/area/shuttle/research/station) "bsk" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/shuttle/research/station) "bsl" = (/obj/machinery/computer/research_shuttle,/turf/simulated/shuttle/floor,/area/shuttle/research/station) @@ -3682,30 +3682,30 @@ "bsP" = (/obj/machinery/door/airlock/maintenance{name = "Teleporter Maintenance"; req_access_txt = "17"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/teleporter) "bsQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/teleporter) "bsR" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/hallway/primary/central) -"bsS" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "green"; dir = 4},/area/hallway/primary/central) -"bsT" = (/obj/structure/sign/redcross,/turf/simulated/wall/r_wall,/area/medical/chemistry) -"bsU" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area/medical/chemistry) -"bsV" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Chemistry Lab"; req_access_txt = "5; 33"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bsS" = (/obj/machinery/light/small{dir = 8},/obj/machinery/iv_drip,/turf/simulated/floor{dir = 8; icon_state = "whiteredcorner"},/area/medical/sleeper) +"bsT" = (/obj/machinery/holosign_switch{pixel_x = 24; pixel_y = 2},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/medical/sleeper) +"bsU" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bsV" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "5"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bsW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "bsX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"bsY" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bsZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bta" = (/obj/machinery/power/apc{dir = 1; name = "Medbay APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"btb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"btc" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"btd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bte" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"btf" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"btg" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) -"bth" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/genetics) -"bti" = (/obj/structure/table,/obj/item/weapon/storage/box/rxglasses,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"btj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"btk" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Geneticist"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"btl" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) -"btm" = (/obj/structure/window/reinforced{dir = 8},/mob/living/carbon/monkey,/turf/simulated/floor,/area/medical/genetics) -"btn" = (/turf/simulated/floor,/area/medical/genetics) -"bto" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 14},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"btp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/maintenance{name = "Mech Bay Maintenance"; req_access_txt = "29"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/assembly/chargebay) +"bsY" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2 (EAST)"; icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/medbay) +"bsZ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bta" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/medbay) +"btb" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"btc" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/dr_gibb{pixel_x = -3; pixel_y = -1},/obj/item/weapon/reagent_containers/food/drinks/dr_gibb{pixel_x = 4; pixel_y = 3},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"btd" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bte" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"btf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/reagent_dispensers/watertank,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"btg" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/window/westleft{dir = 8; name = "Server Room"; opacity = 1; req_access_txt = "30"},/obj/machinery/door/window/westleft{dir = 4; name = "Server Room"; opacity = 1; req_access_txt = "30"},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) +"bth" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench{pixel_x = 5; pixel_y = -5},/obj/machinery/light/small,/obj/item/weapon/crowbar,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor,/area/medical/sleeper) +"bti" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/medical/sleeper) +"btj" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor,/area/medical/sleeper) +"btk" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 1},/obj/machinery/light/small,/turf/simulated/floor,/area/medical/sleeper) +"btl" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/medical/sleeper) +"btm" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/central) +"btn" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) +"bto" = (/obj/structure/stool/bed/chair,/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) +"btp" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/medical/sleeper) "btq" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/assembly/chargebay) "btr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/assembly/chargebay) "bts" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/assembly/chargebay) @@ -3723,7 +3723,7 @@ "btE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/toxins/lab) "btF" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/glass_research{name = "Research and Development"; req_access_txt = "7"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "btG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/toxins/lab) -"btH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"btH" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) "btI" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "btJ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "btK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) @@ -3769,21 +3769,21 @@ "buy" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall,/area/maintenance/fsmaint) "buz" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j1 (EAST)"; icon_state = "pipe-j1"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "buA" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/crew_quarters/fitness) -"buB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 1; icon_state = "whiteyellowcorner"},/area/medical/medbay) -"buC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/noticeboard{pixel_y = 28},/obj/machinery/camera{c_tag = "Medbay West"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"buD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"buE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"buF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"buG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"buH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"buI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whitebluecorner"},/area/medical/medbay) -"buJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) -"buK" = (/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) -"buL" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) -"buM" = (/obj/structure/table,/obj/item/weapon/storage/box/disks{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"buB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/body_scanconsole,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/medical/sleeper) +"buC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/bodyscanner,/turf/simulated/floor,/area/medical/sleeper) +"buD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"buE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"buF" = (/obj/machinery/sleep_console{icon_state = "sleeperconsole-r"; orient = "RIGHT"},/obj/machinery/light,/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/medical/sleeper) +"buG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"buH" = (/obj/machinery/sleeper{icon_state = "sleeper_0-r"; orient = "RIGHT"},/turf/simulated/floor,/area/medical/sleeper) +"buI" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central) +"buJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/medical/medbay) +"buK" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita{desc = "No one knows how long this has been here."; name = "old cold pizza"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"buL" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"buM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "buN" = (/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"buO" = (/obj/machinery/door/window/westleft{name = "Monkey Pen"; req_access_txt = "9"},/turf/simulated/floor,/area/medical/genetics) -"buP" = (/mob/living/carbon/monkey,/turf/simulated/floor,/area/medical/genetics) +"buO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"buP" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall,/area/medical/sleeper) "buQ" = (/obj/structure/table,/turf/simulated/floor,/area/assembly/chargebay) "buR" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/assembly/chargebay) "buS" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/assembly/chargebay) @@ -3805,7 +3805,7 @@ "bvi" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "bvj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bvk" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Research Shuttle Maintainance"; dir = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"bvl" = (/obj/machinery/door/airlock/research{name = "Research Shuttle Dock"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bvl" = (/obj/machinery/door/airlock/research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bvm" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) "bvn" = (/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) "bvo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/medical/research{name = "Research Division"}) @@ -3843,28 +3843,28 @@ "bvU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/teleporter) "bvV" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/command{name = "Teleport Access"; req_access_txt = "17"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/teleporter) "bvW" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central) -"bvX" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/hallway/primary/central) -"bvY" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/medical/medbay) -"bvZ" = (/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay Emergency Entrance"; req_access_txt = "5"},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/medbay) -"bwa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/medbay) +"bvX" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 11; tag = ""},/turf/simulated/floor,/area/hallway/primary/central) +"bvY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central) +"bvZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/medical/sleeper) +"bwa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/medical/sleeper) "bwb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) -"bwc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bwd" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bwe" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bwf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bwg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bwh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bwi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bwj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bwk" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bwl" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay East"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bwc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/medical/sleeper) +"bwd" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/medical/sleeper) +"bwe" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Recovery Room"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bwf" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bwg" = (/obj/machinery/vending/medical{pixel_x = -2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bwh" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bwi" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bwj" = (/obj/structure/table,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/weapon/pen,/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = 30; pixel_z = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bwk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"bwl" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) "bwm" = (/turf/simulated/wall,/area/medical/genetics) -"bwn" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics"; req_access_txt = "5; 9"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bwo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/genetics) -"bwp" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/genetics) -"bwq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/genetics) -"bwr" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bws" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{dir = 5; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) +"bwn" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"bwo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 2},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bwp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bwq" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) +"bwr" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"bws" = (/obj/structure/table,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/clothing/tie/stethoscope,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) "bwt" = (/turf/simulated/wall,/area/assembly/chargebay) "bwu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/assembly/chargebay) "bwv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/assembly/robotics) @@ -3883,7 +3883,7 @@ "bwI" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bwJ" = (/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bwK" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) -"bwL" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bwL" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "65"},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "bwM" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "bwN" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "QMLoad"},/turf/simulated/floor,/area/quartermaster/storage) "bwO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/quartermaster/storage) @@ -3925,27 +3925,27 @@ "bxy" = (/obj/machinery/shieldwallgen,/turf/simulated/floor{icon_state = "bot"},/area/teleporter) "bxz" = (/obj/structure/closet/crate,/turf/simulated/floor,/area/teleporter) "bxA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central) -"bxB" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "green"; dir = 4},/area/hallway/primary/central) -"bxC" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = -30; pixel_y = 0; pixel_z = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 4; icon_state = "warnwhitecorner"; tag = "icon-warnwhitecorner (EAST)"},/area/medical/medbay) +"bxB" = (/turf/simulated/wall/r_wall,/area/maintenance/asmaint2) +"bxC" = (/obj/machinery/vending/coffee,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) "bxD" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor{icon_state = "neutral"; dir = 9},/area/crew_quarters/fitness) -"bxE" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bxE" = (/obj/machinery/door/airlock/medical{name = "Patient Room 1"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bxF" = (/turf/simulated/wall,/area/medical/sleeper) -"bxG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/sleeper) -"bxH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bxI" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bxJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/sleeper) -"bxK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/sleeper) -"bxL" = (/turf/simulated/wall/r_wall,/area/medical/sleeper) -"bxM" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bxN" = (/obj/machinery/door_control{desc = "A remote control switch for the genetics doors."; id = "GeneticsDoor"; name = "Genetics Exit Button"; normaldoorcontrol = 1; pixel_x = 8; pixel_y = 24; range = 6},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/structure/closet/wardrobe/white,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bxO" = (/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bxP" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bxQ" = (/obj/machinery/dna_scannernew,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) -"bxR" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor,/area/medical/genetics) -"bxS" = (/obj/structure/window/reinforced,/mob/living/carbon/monkey,/turf/simulated/floor,/area/medical/genetics) -"bxT" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 12},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bxU" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/sign/securearea{pixel_x = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bxV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) +"bxG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bxH" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bxI" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bxJ" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bxK" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bxL" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = -30; pixel_z = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bxM" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bxN" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bxO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bxP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bxQ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/o2{pixel_x = -2; pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bxR" = (/obj/structure/table,/obj/machinery/light,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bxS" = (/obj/structure/table,/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"},/obj/machinery/holosign_switch{pixel_x = -7; pixel_y = 2},/turf/simulated/floor,/area/medical/sleeper) +"bxT" = (/obj/item/device/radio/intercom{pixel_y = -25},/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bxU" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/structure/stool/bed/roller,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bxV" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/medical/sleeper) "bxW" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/medical/research{name = "Research Division"}) "bxX" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/medical/research{name = "Research Division"}) "bxY" = (/obj/machinery/camera{c_tag = "Research Division West"; dir = 2; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -3962,7 +3962,7 @@ "byj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/hor) "byk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/crew_quarters/hor) "byl" = (/turf/simulated/wall/r_wall,/area/crew_quarters/hor) -"bym" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bym" = (/obj/structure/closet/wardrobe/pjs,/turf/simulated/floor,/area/medical/sleeper) "byn" = (/obj/machinery/camera{c_tag = "Research Dock"; dir = 2},/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/research{name = "Research Division"}) "byo" = (/turf/simulated/floor{dir = 2; icon_state = "cmo"},/area/medical/research{name = "Research Division"}) "byp" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/medical/research{name = "Research Division"}) @@ -4007,32 +4007,32 @@ "bzc" = (/obj/machinery/teleport/hub,/turf/simulated/floor/plating,/area/teleporter) "bzd" = (/obj/structure/rack,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/turf/simulated/floor/plating,/area/teleporter) "bze" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/central) -"bzf" = (/turf/simulated/floor{dir = 4; icon_state = "greencorner"},/area/hallway/primary/central) -"bzg" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Medbay"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor{icon_state = "bot"},/area/medical/medbay) -"bzh" = (/obj/machinery/door/window/eastleft{name = "Medical Delivery"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/medbay) -"bzi" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bzj" = (/obj/machinery/vending/medical{pixel_x = -2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bzk" = (/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bzl" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bzm" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bzn" = (/obj/machinery/sleep_console{icon_state = "sleeperconsole-r"; orient = "RIGHT"},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/medical/sleeper) -"bzo" = (/obj/machinery/sleeper{icon_state = "sleeper_0-r"; orient = "RIGHT"},/turf/simulated/floor,/area/medical/sleeper) -"bzp" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor,/area/medical/sleeper) -"bzq" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor,/area/medical/sleeper) -"bzr" = (/obj/machinery/camera{c_tag = "Medbay Cryogenics"; dir = 2; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/turf/simulated/floor,/area/medical/sleeper) -"bzs" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bzt" = (/obj/machinery/camera{c_tag = "Genetics Cloning"; dir = 4; network = list("SS13")},/obj/structure/table,/obj/item/weapon/book/manual/medical_cloning{pixel_y = 6},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bzu" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bzv" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bzw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/genetics) -"bzx" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bzy" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bzz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bzA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitepurple"},/area/medical/genetics) -"bzB" = (/obj/machinery/door/airlock/research{name = "Genetics Research"; req_access_txt = "9"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bzC" = (/obj/structure/disposalpipe/sortjunction{sortType = 23},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bzD" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bzE" = (/obj/machinery/door/airlock/research{name = "Genetics Research Access"; req_access_txt = "47"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bzf" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/medical/sleeper) +"bzg" = (/obj/machinery/vending/wallmed2{pixel_y = -28},/obj/machinery/camera{c_tag = "Surgery Operating"; dir = 1; network = list("SS13"); pixel_x = 22},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bzh" = (/turf/simulated/wall/r_wall,/area/medical/sleeper) +"bzi" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/vending/snack,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"bzj" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bzk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bzl" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bzm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bzn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bzo" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/medical/sleeper) +"bzp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/sleeper) +"bzq" = (/obj/structure/closet,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bzr" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/medical/sleeper) +"bzs" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bzt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bzu" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bzv" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/sign/examroom{pixel_x = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bzw" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bzx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall,/area/medical/medbay) +"bzy" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bzz" = (/obj/machinery/power/apc{dir = 8; name = "Custodial Closet APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/janitor) +"bzA" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/janitor) +"bzB" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) +"bzC" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/hallway/primary/aft) +"bzD" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) +"bzE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 6},/obj/machinery/door/airlock/maintenance{name = "Surgery Maintenance"; req_access_txt = "45"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bzF" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "bot"},/area/medical/research{name = "Research Division"}) "bzG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/medical/research{name = "Research Division"}) "bzH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -4082,29 +4082,29 @@ "bAz" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/comms{name = "\improper Cyborg Station"}) "bAA" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/teleporter) "bAB" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) -"bAC" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/medical/sleeper) -"bAD" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Surgery Observation"; req_access_txt = "0"},/obj/machinery/holosign/surgery,/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) -"bAE" = (/obj/machinery/vending/snack,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "dark"},/area/hallway/primary/central) -"bAF" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/camera{c_tag = "Medbay Treatment Center"; dir = 4; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bAG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bAH" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bAC" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bAD" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/storage/tech) +"bAE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/medbay) +"bAF" = (/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/machinery/camera{c_tag = "Medbay Break Room"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/britcup{pixel_x = 4; pixel_y = 5},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"bAG" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = -30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/camera{c_tag = "Medbay South"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bAH" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/medical/medbay) "bAI" = (/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bAJ" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) -"bAK" = (/turf/simulated/floor,/area/medical/sleeper) -"bAL" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor,/area/medical/sleeper) -"bAM" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/medical/sleeper) -"bAN" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) -"bAO" = (/obj/structure/table,/obj/item/weapon/storage/box/rxglasses{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/bodybags{pixel_x = -1; pixel_y = -2},/obj/item/weapon/pen,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/device/radio/intercom{pixel_x = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bAP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bAQ" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Geneticist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bAR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bAS" = (/obj/machinery/door/airlock/glass_research{name = "Genetics Research"; req_access_txt = "5; 9"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bAT" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bAU" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bAV" = (/obj/machinery/camera{c_tag = "Genetics Research"; dir = 1; network = list("RD"); pixel_x = 0},/obj/machinery/camera{c_tag = "Genetics Lab"; dir = 1; network = list("SS13"); pixel_x = 22},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/turf/simulated/floor{dir = 4; icon_state = "whitepurple"},/area/medical/genetics) -"bAW" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/genetics) -"bAX" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bAY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bAJ" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bAK" = (/obj/structure/disposalpipe/segment,/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bAL" = (/obj/machinery/holosign/surgery,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/turf/simulated/floor,/area/medical/sleeper) +"bAM" = (/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/sleeper) +"bAN" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/medical/sleeper) +"bAO" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bAP" = (/obj/structure/table,/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/clothing/tie/stethoscope,/obj/item/clothing/mask/muzzle,/obj/item/weapon/cane,/obj/item/weapon/cane,/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag,/obj/item/clothing/suit/straight_jacket,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bAQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/nosmoking_1{pixel_y = 28},/turf/simulated/floor{icon_state = "showroomfloor"},/area/maintenance/asmaint) +"bAR" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "showroomfloor"},/area/maintenance/asmaint) +"bAS" = (/obj/machinery/door/airlock/medical{name = "Medical Freezer Storage"; req_access_txt = "45"},/obj/machinery/holosign/surgery,/turf/simulated/floor{icon_state = "showroomfloor"},/area/medical/sleeper) +"bAT" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "showroomfloor"},/area/maintenance/asmaint) +"bAU" = (/turf/simulated/floor,/area/medical/genetics) +"bAV" = (/obj/machinery/optable,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bAW" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) +"bAX" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"bAY" = (/obj/structure/disposalpipe/sortjunction{sortType = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bAZ" = (/turf/simulated/wall/r_wall,/area/toxins/server) "bBa" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/airlock/command{name = "Server Room"; req_access = null; req_access_txt = "30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bBb" = (/turf/simulated/wall/r_wall,/area/toxins/storage) @@ -4152,38 +4152,38 @@ "bBR" = (/obj/machinery/atm{pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/central) "bBS" = (/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor,/area/hallway/primary/central) "bBT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/central) -"bBU" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/medical/sleeper) -"bBV" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) -"bBW" = (/obj/machinery/camera{c_tag = "Surgery Observation"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) -"bBX" = (/obj/machinery/newscaster{pixel_x = 28; pixel_y = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) -"bBY" = (/obj/machinery/vending/cigarette,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/hallway/primary/central) -"bBZ" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bCa" = (/obj/machinery/power/apc{dir = 1; name = "Treatment Center APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bCb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bCc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bCd" = (/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bCe" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) -"bCf" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor,/area/medical/sleeper) -"bCg" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor,/area/medical/sleeper) -"bCh" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/turf/simulated/floor,/area/medical/sleeper) -"bCi" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bCj" = (/obj/structure/table,/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bCk" = (/obj/machinery/dna_scannernew,/turf/simulated/floor{dir = 10; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) -"bCl" = (/obj/machinery/computer/cloning,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) -"bCm" = (/obj/machinery/clonepod,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) -"bCn" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/medical/genetics) -"bCo" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light_switch{pixel_y = -28},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bCp" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bCq" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bCr" = (/obj/structure/closet/wardrobe/genetics_white,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) -"bCs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/maintenance/asmaint) +"bBU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bBV" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/structure/stool/bed/roller,/turf/simulated/floor{dir = 1; icon_state = "whiteredcorner"},/area/medical/sleeper) +"bBW" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/medical/sleeper) +"bBX" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/hand_labeler,/obj/item/weapon/gun/syringe,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bBY" = (/obj/machinery/vending/wallmed1{pixel_x = 28; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera{c_tag = "Medbay Recovery Room"; dir = 8; network = list("SS13")},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bBZ" = (/obj/structure/closet/secure_closet/medical2,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "showroomfloor"},/area/maintenance/asmaint) +"bCa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/crate/freezer,/obj/machinery/light/small,/turf/simulated/floor{icon_state = "showroomfloor"},/area/maintenance/asmaint) +"bCb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/closet/crate/freezer,/obj/machinery/camera{c_tag = "Medical Freezer Storage"; dir = 1; network = list("SS13"); pixel_x = 22},/turf/simulated/floor{icon_state = "showroomfloor"},/area/maintenance/asmaint) +"bCc" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bCd" = (/obj/machinery/computer/operating,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bCe" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bCf" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor{dir = 4; icon_state = "whitehall"; tag = "icon-whitehall (WEST)"},/area/medical/sleeper) +"bCg" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bCh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/medbay) +"bCi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Break Room"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bCj" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 5; pixel_y = -2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bCk" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bCl" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door_control{id = "medpriv4"; name = "Privacy Shutters"; pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bCm" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/tie/stethoscope,/obj/machinery/vending/wallmed1{pixel_y = 28},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bCn" = (/obj/structure/window/reinforced{dir = 8},/mob/living/carbon/monkey,/turf/simulated/floor,/area/medical/genetics) +"bCo" = (/mob/living/carbon/monkey,/turf/simulated/floor,/area/medical/genetics) +"bCp" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bCq" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 30; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay East"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bCr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bCs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bCt" = (/obj/machinery/r_n_d/server/robotics,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bCu" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 140; on = 1; pressure_checks = 0},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bCv" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bCw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = 32},/turf/simulated/floor/plating,/area/toxins/server) "bCx" = (/obj/machinery/atmospherics/pipe/simple{dir = 10},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bCy" = (/obj/machinery/camera{c_tag = "Server Room"; dir = 2; network = list("RD"); pixel_x = 22},/obj/machinery/camera{c_tag = "Research Division Server Room"; dir = 2; network = list("SS13"); pixel_x = 0},/obj/machinery/power/apc{dir = 1; name = "Server Room APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) -"bCz" = (/obj/machinery/computer/atmoscontrol,/turf/simulated/floor,/area/engine/break_room) +"bCz" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{dir = 5; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) "bCA" = (/obj/machinery/computer/area_atmos,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bot"},/area/toxins/storage) "bCB" = (/turf/simulated/floor{tag = "icon-warningcorner"; icon_state = "warningcorner"; dir = 2},/area/toxins/storage) "bCC" = (/obj/machinery/portable_atmospherics/scrubber/huge,/obj/structure/sign/nosmoking_2{pixel_x = 28},/turf/simulated/floor{icon_state = "bot"},/area/toxins/storage) @@ -4215,28 +4215,28 @@ "bDc" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central) "bDd" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HOP"; location = "CHE"},/turf/simulated/floor,/area/hallway/primary/central) "bDe" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/central) -"bDf" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/medical/sleeper) -"bDg" = (/obj/structure/stool/bed/chair,/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) -"bDh" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) -"bDi" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) +"bDf" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bDg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bDh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/genetics) +"bDi" = (/obj/structure/grille,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/genetics) "bDj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/central) -"bDk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/bodyscanner,/turf/simulated/floor,/area/medical/sleeper) -"bDl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/body_scanconsole,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/medical/sleeper) -"bDm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bDn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bDo" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bDp" = (/obj/machinery/sleep_console{icon_state = "sleeperconsole-r"; orient = "RIGHT"},/obj/machinery/light,/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/medical/sleeper) -"bDq" = (/obj/structure/table/reinforced,/obj/item/weapon/wrench{pixel_x = 5; pixel_y = -5},/obj/machinery/light/small,/obj/item/weapon/crowbar,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor,/area/medical/sleeper) -"bDr" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/medical/sleeper) -"bDs" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor,/area/medical/sleeper) -"bDt" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 1},/obj/machinery/light/small,/turf/simulated/floor,/area/medical/sleeper) -"bDu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bDv" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bDw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/reagent_dispensers/watertank,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bDk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/genetics) +"bDl" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = "GeneticsDoor"; name = "Genetics"; req_access_txt = "5; 9"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bDm" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bDn" = (/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay Emergency Entrance"; req_access_txt = "5"},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/medbay) +"bDo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/medbay) +"bDp" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/hallway/primary/central) +"bDq" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/medical/medbay) +"bDr" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bDs" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bDt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bDu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bDv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bDw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bDx" = (/obj/machinery/alarm/server{dir = 4; pixel_x = -22; pixel_y = 0},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bDy" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bDz" = (/turf/simulated/floor/bluegrid{icon_state = "dark"; name = "Server Walkway"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) -"bDA" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/window/westleft{dir = 8; name = "Server Room"; opacity = 1; req_access_txt = "30"},/obj/machinery/door/window/westleft{dir = 4; name = "Server Room"; opacity = 1; req_access_txt = "30"},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) +"bDA" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bDB" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bDC" = (/obj/structure/stool/bed/chair/office/light,/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) "bDD" = (/obj/machinery/atmospherics/pipe/simple{dir = 9},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) @@ -4252,7 +4252,7 @@ "bDN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "bDO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) "bDP" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor) -"bDQ" = (/obj/structure/closet/crate,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/assembly/prox_sensor,/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bDQ" = (/obj/machinery/door/window/westleft{name = "Monkey Pen"; req_access_txt = "9"},/turf/simulated/floor,/area/medical/genetics) "bDR" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/gas,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bDS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/toxins/test_area) "bDT" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/toxins/test_area) @@ -4286,26 +4286,26 @@ "bEv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor,/area/hallway/primary/central) "bEw" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor,/area/hallway/primary/central) "bEx" = (/obj/structure/extinguisher_cabinet{pixel_x = 5; pixel_y = -32},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "hazard door west"},/turf/simulated/floor,/area/hallway/primary/central) -"bEy" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/central) -"bEz" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/medical/sleeper) -"bEA" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central) +"bEy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/medbay) +"bEz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) +"bEA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) "bEB" = (/obj/machinery/light,/turf/simulated/floor,/area/hallway/primary/central) "bEC" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/central) "bED" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/central) -"bEE" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/wall,/area/medical/sleeper) -"bEF" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Recovery Room"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bEG" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bEH" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bEI" = (/obj/structure/table,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/weapon/pen,/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = 30; pixel_z = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bEJ" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bEK" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) -"bEL" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) -"bEM" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) -"bEN" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/margherita{desc = "No one knows how long this has been here."; name = "old cold pizza"},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) -"bEO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/medical/medbay) -"bEP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bEQ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bER" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bEE" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/medical/medbay) +"bEF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bEG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bEH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 1; icon_state = "whiteyellowcorner"},/area/medical/medbay) +"bEI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/noticeboard{pixel_y = 28},/obj/machinery/camera{c_tag = "Medbay West"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bEJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bEK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whitebluecorner"},/area/medical/medbay) +"bEL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bEM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bEN" = (/obj/structure/table,/obj/item/weapon/storage/box/disks{pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bEO" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bEP" = (/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) +"bEQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) +"bER" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/genetics) "bES" = (/obj/machinery/r_n_d/server/core,/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bET" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 120; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/bluegrid{name = "Server Base"; nitrogen = 500; oxygen = 0; temperature = 80},/area/toxins/server) "bEU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/sign/securearea{desc = "A warning sign which reads 'SERVER ROOM'."; name = "SERVER ROOM"; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple{dir = 4},/turf/simulated/floor/plating,/area/toxins/server) @@ -4356,27 +4356,27 @@ "bFN" = (/turf/simulated/wall,/area/maintenance/asmaint) "bFO" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bFP" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/asmaint) -"bFQ" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = 11; tag = ""},/turf/simulated/floor,/area/hallway/primary/central) -"bFR" = (/obj/structure/table,/obj/item/weapon/FixOVein{pixel_x = -6; pixel_y = 1},/turf/simulated/floor,/area/medical/sleeper) -"bFS" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/hemostat{pixel_y = 4},/obj/item/weapon/cautery{pixel_y = 4},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/sleeper) -"bFT" = (/obj/structure/table,/obj/item/weapon/retractor{pixel_x = 0; pixel_y = 6},/obj/item/weapon/scalpel,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bFU" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/bonegel{pixel_x = 4; pixel_y = 3},/obj/item/weapon/bonesetter,/obj/machinery/door_control{id = "medpriv4"; name = "Privacy Shutters"; pixel_y = 25},/turf/simulated/floor{icon_state = "whitehall"; dir = 2},/area/medical/sleeper) -"bFV" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/obj/item/weapon/circular_saw,/turf/simulated/floor,/area/medical/sleeper) -"bFW" = (/obj/structure/table,/obj/item/weapon/reagent_containers/blood/AMinus{pixel_x = -7; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/APlus{pixel_x = -5; pixel_y = 4},/obj/item/weapon/reagent_containers/blood/empty{pixel_x = 1; pixel_y = -4},/obj/item/weapon/reagent_containers/blood/empty{pixel_x = 1; pixel_y = -4},/obj/item/weapon/reagent_containers/blood/BMinus{pixel_y = 4},/obj/item/weapon/reagent_containers/blood/BPlus{pixel_x = 5; pixel_y = 3},/obj/item/weapon/reagent_containers/blood/OMinus{pixel_x = -5; pixel_y = -1},/obj/item/weapon/reagent_containers/blood/OPlus{pixel_x = 4; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bFX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bFY" = (/obj/structure/table,/obj/item/weapon/storage/box/gloves{pixel_x = 0; pixel_y = 0; pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/box/masks{pixel_x = 0; pixel_y = 0; pixel_x = 0; pixel_y = 0},/turf/simulated/floor{dir = 2; icon_state = "whiteredcorner"},/area/medical/sleeper) -"bFZ" = (/obj/structure/closet/l3closet/general,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bGa" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bGb" = (/obj/structure/closet/secure_closet/medical3,/obj/machinery/camera{c_tag = "Medbay Storage"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bGc" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/rxglasses,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bGd" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = -1; pixel_y = -1; pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bGe" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 8; icon_state = "whiteredcorner"},/area/medical/medbay) -"bGf" = (/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) -"bGg" = (/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) -"bGh" = (/obj/structure/stool,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) -"bGi" = (/obj/structure/table,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"bFQ" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) +"bFR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bFS" = (/obj/machinery/power/apc{dir = 1; name = "Medbay APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bFT" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bFU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bFV" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) +"bFW" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bFX" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) +"bFY" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Geneticist"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bFZ" = (/obj/structure/table,/obj/item/weapon/storage/box/rxglasses,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bGa" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "green"; dir = 4},/area/hallway/primary/central) +"bGb" = (/obj/structure/sign/redcross,/turf/simulated/wall/r_wall,/area/medical/chemistry) +"bGc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/medical/chemistry) +"bGd" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/window/southleft{dir = 1; name = "Chemistry Desk"; req_access_txt = "33"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/medical/chemistry) +"bGe" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area/medical/chemistry) +"bGf" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Chemistry Lab"; req_access_txt = "5; 33"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bGg" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bGh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 14},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bGi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/airlock/maintenance{name = "Mech Bay Maintenance"; req_access_txt = "29"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/assembly/chargebay) "bGj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bGk" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bGk" = (/turf/simulated/floor{dir = 2; icon_state = "greencorner"},/area/hallway/primary/central) "bGl" = (/turf/simulated/wall/r_wall,/area/toxins/misc_lab) "bGm" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/camera{c_tag = "Toxins Storage"; dir = 4; network = list("SS13")},/obj/machinery/camera{c_tag = "Gas Storage Room"; dir = 4; network = list("RD"); pixel_y = -22},/turf/simulated/floor,/area/toxins/storage) "bGn" = (/mob/living/simple_animal/mouse/white,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/storage) @@ -4420,30 +4420,30 @@ "bGZ" = (/obj/machinery/door/airlock/glass{name = "Central Access"},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bHa" = (/obj/structure/closet/jcloset,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor,/area/janitor) "bHb" = (/obj/structure/closet/l3closet/janitor,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor,/area/janitor) -"bHc" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/camera{c_tag = "Custodial Closet"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/janitor) +"bHc" = (/obj/structure/closet/wardrobe/chemistry_white,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "bHd" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/newscaster{pixel_y = 30},/turf/simulated/floor,/area/janitor) -"bHe" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/janitor) -"bHf" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor,/area/janitor) -"bHg" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/janitor) -"bHh" = (/obj/machinery/door/window/westleft{name = "Janitoral Delivery"; req_access_txt = "26"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "delivery"},/area/janitor) -"bHi" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=8"; freq = 1400; location = "Janitor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor{icon_state = "bot"},/area/janitor) -"bHj" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bHk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bHl" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/asmaint) +"bHe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bHf" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bHg" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bHh" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/weapon/packageWrap,/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"bHi" = (/obj/structure/stool/bed/roller,/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Exit Button"; normaldoorcontrol = 1; pixel_x = 0; pixel_y = 26; range = 3},/obj/structure/extinguisher_cabinet{pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bHj" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/medbay) +"bHk" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/medical/medbay) +"bHl" = (/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bHm" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/maintenance/asmaint) -"bHn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall,/area/maintenance/asmaint) -"bHo" = (/turf/simulated/floor{dir = 4; icon_state = "whitehall"; tag = "icon-whitehall (WEST)"},/area/medical/sleeper) -"bHp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bHq" = (/obj/machinery/holosign_switch{pixel_x = 24; pixel_y = 2},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/medical/sleeper) -"bHr" = (/obj/machinery/light/small{dir = 8},/obj/machinery/iv_drip,/turf/simulated/floor{dir = 8; icon_state = "whiteredcorner"},/area/medical/sleeper) -"bHs" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bHt" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/medical/sleeper) -"bHu" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bHv" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bHw" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Medbay Storage"; req_access_txt = "5"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bHx" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2 (EAST)"; icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/medbay) -"bHy" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/medbay) -"bHz" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/dr_gibb{pixel_x = -3; pixel_y = -1},/obj/item/weapon/reagent_containers/food/drinks/dr_gibb{pixel_x = 4; pixel_y = 3},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"bHn" = (/turf/simulated/wall/r_wall,/area/medical/cmo) +"bHo" = (/obj/machinery/door/airlock/glass_command{name = "Chief Medical Officer"; req_access_txt = "40"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bHp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/cmo) +"bHq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/cmo) +"bHr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/cmo) +"bHs" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bHt" = (/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bHu" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bHv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/genetics) +"bHw" = (/obj/machinery/photocopier,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) +"bHx" = (/obj/machinery/power/apc{dir = 1; name = "Genetics APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bHy" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/device/radio/headset/headset_medsci,/obj/item/device/flashlight/pen{pixel_x = 0},/obj/item/device/flashlight/pen{pixel_x = 4; pixel_y = 3},/obj/machinery/requests_console{department = "Genetics"; departmentType = 0; name = "Genetics Requests Console"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bHz" = (/obj/machinery/dna_scannernew,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) "bHA" = (/obj/machinery/portable_atmospherics/canister,/turf/simulated/floor/engine,/area/toxins/misc_lab) "bHB" = (/turf/simulated/floor/engine,/area/toxins/misc_lab) "bHC" = (/obj/machinery/camera{c_tag = "Misc Test Chamber"; dir = 2; network = list("Misc"); pixel_x = 0},/obj/machinery/light{dir = 1},/turf/simulated/floor/engine,/area/toxins/misc_lab) @@ -4490,12 +4490,12 @@ "bIr" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/storage/tech) "bIs" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor/plating,/area/storage/tech) "bIt" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor/plating,/area/storage/tech) -"bIu" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/storage/tech) -"bIv" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) -"bIw" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor,/area/hallway/primary/aft) -"bIx" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) -"bIy" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/janitor) -"bIz" = (/obj/machinery/power/apc{dir = 8; name = "Custodial Closet APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/janitor) +"bIu" = (/obj/machinery/light{dir = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bIv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/genetics) +"bIw" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bIx" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/medical/genetics) +"bIy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/mob/living/carbon/monkey,/turf/simulated/floor,/area/medical/genetics) +"bIz" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/assembly/chargebay) "bIA" = (/obj/structure/stool,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/landmark/start{name = "Janitor"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor,/area/janitor) "bIB" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/janitor) "bIC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/janitor) @@ -4503,24 +4503,24 @@ "bIE" = (/obj/item/weapon/reagent_containers/glass/bucket,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/janitor) "bIF" = (/obj/structure/mopbucket,/obj/item/weapon/mop,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/janitor) "bIG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bIH" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bII" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 6},/obj/machinery/door/airlock/maintenance{name = "Surgery Maintenance"; req_access_txt = "45"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bIJ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "showroomfloor"},/area/maintenance/asmaint) -"bIK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/nosmoking_1{pixel_y = 28},/turf/simulated/floor{icon_state = "showroomfloor"},/area/maintenance/asmaint) -"bIL" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "showroomfloor"},/area/maintenance/asmaint) -"bIM" = (/obj/machinery/door/airlock/medical{name = "Medical Freezer Storage"; req_access_txt = "45"},/obj/machinery/holosign/surgery,/turf/simulated/floor{icon_state = "showroomfloor"},/area/medical/sleeper) -"bIN" = (/obj/machinery/optable,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bIO" = (/obj/machinery/holosign/surgery,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/airlock/medical{name = "Operating Theatre"; req_access_txt = "45"},/turf/simulated/floor,/area/medical/sleeper) -"bIP" = (/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/sleeper) -"bIQ" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/medical/sleeper) -"bIR" = (/obj/structure/table,/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/weapon/storage/belt/medical{pixel_x = 0; pixel_y = 2},/obj/item/clothing/tie/stethoscope,/obj/item/clothing/mask/muzzle,/obj/item/weapon/cane,/obj/item/weapon/cane,/obj/item/bodybag/cryobag{pixel_x = 5},/obj/item/bodybag/cryobag,/obj/item/clothing/suit/straight_jacket,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bIS" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bIT" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bIU" = (/obj/structure/disposalpipe/segment,/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bIV" = (/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = -30; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/camera{c_tag = "Medbay South"; dir = 4; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bIW" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/medical/medbay) -"bIX" = (/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/machinery/camera{c_tag = "Medbay Break Room"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/britcup{pixel_x = 4; pixel_y = 5},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) -"bIY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/medbay) +"bIH" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 80; dir = 2; on = 1},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) +"bII" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/maintenance/asmaint) +"bIJ" = (/obj/structure/closet/wardrobe/genetics_white,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bIK" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bIL" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bIM" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light_switch{pixel_y = -28},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bIN" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/medical/genetics) +"bIO" = (/obj/machinery/clonepod,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) +"bIP" = (/obj/machinery/computer/cloning,/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) +"bIQ" = (/obj/machinery/dna_scannernew,/turf/simulated/floor{dir = 10; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) +"bIR" = (/obj/structure/table,/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bIS" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bIT" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) +"bIU" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/turf/simulated/floor,/area/medical/sleeper) +"bIV" = (/obj/machinery/atmospherics/pipe/manifold{dir = 1; icon_state = "manifold"; level = 2},/turf/simulated/floor,/area/medical/sleeper) +"bIW" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/obj/effect/landmark/start{name = "Medical Doctor"},/turf/simulated/floor,/area/medical/sleeper) +"bIX" = (/turf/simulated/floor,/area/medical/sleeper) +"bIY" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) "bIZ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bJa" = (/obj/machinery/sparker{id = "Xenobio"; pixel_x = -25},/turf/simulated/floor/engine,/area/toxins/misc_lab) "bJb" = (/obj/machinery/atmospherics/unary/outlet_injector{tag = "icon-on"; name = "Acid-Proof Air Injector"; icon_state = "on"; dir = 2; unacidable = 1; on = 1},/turf/simulated/floor/engine,/area/toxins/misc_lab) @@ -4586,29 +4586,29 @@ "bKj" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bKk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bKl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment,/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bKm" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/maintenance/asmaint) -"bKn" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/structure/closet/crate/freezer,/obj/machinery/camera{c_tag = "Medical Freezer Storage"; dir = 1; network = list("SS13"); pixel_x = 22},/turf/simulated/floor{icon_state = "showroomfloor"},/area/maintenance/asmaint) -"bKo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/closet/crate/freezer,/obj/machinery/light/small,/turf/simulated/floor{icon_state = "showroomfloor"},/area/maintenance/asmaint) -"bKp" = (/obj/structure/closet/secure_closet/medical2,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "showroomfloor"},/area/maintenance/asmaint) -"bKq" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/closet/secure_closet/medical2,/turf/simulated/floor{dir = 4; icon_state = "whitehall"; tag = "icon-whitehall (WEST)"},/area/medical/sleeper) -"bKr" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bKs" = (/obj/machinery/computer/operating,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bKt" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bKu" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/medical/sleeper) -"bKv" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/structure/stool/bed/roller,/turf/simulated/floor{dir = 1; icon_state = "whiteredcorner"},/area/medical/sleeper) -"bKw" = (/obj/machinery/vending/wallmed1{pixel_x = 28; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera{c_tag = "Medbay Recovery Room"; dir = 8; network = list("SS13")},/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bKx" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/item/weapon/hand_labeler,/obj/item/weapon/gun/syringe,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bKy" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline{pixel_x = 7; pixel_y = -3},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = -4; pixel_y = -3},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/weapon/reagent_containers/glass/bottle/toxin{pixel_x = 4; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 5; pixel_y = -2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bKm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bKn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bKo" = (/obj/machinery/alarm{pixel_y = 23},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bKp" = (/obj/machinery/power/apc{dir = 1; name = "Treatment Center APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bKq" = (/obj/machinery/newscaster{pixel_x = 28; pixel_y = 1},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) +"bKr" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/medical/sleeper) +"bKs" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) +"bKt" = (/obj/machinery/camera{c_tag = "Surgery Observation"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) +"bKu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bKv" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/genetics) +"bKw" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bKx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bKy" = (/obj/machinery/camera{c_tag = "Genetics Research"; dir = 1; network = list("RD"); pixel_x = 0},/obj/machinery/camera{c_tag = "Genetics Lab"; dir = 1; network = list("SS13"); pixel_x = 22},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/turf/simulated/floor{dir = 4; icon_state = "whitepurple"},/area/medical/genetics) "bKz" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bKA" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/tie/stethoscope,/obj/machinery/vending/wallmed1{pixel_y = 28},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bKB" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bKC" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/door_control{id = "medpriv4"; name = "Privacy Shutters"; pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bKD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/medbay) -"bKE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Break Room"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bKF" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) -"bKG" = (/obj/machinery/door/airlock/maintenance{name = "Medbay Maintenance"; req_access_txt = "5"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) -"bKH" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bKI" = (/obj/structure/disposalpipe/sortjunction{sortType = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bKA" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bKB" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) +"bKC" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/camera{c_tag = "Medbay Treatment Center"; dir = 4; network = list("SS13"); pixel_x = 0; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bKD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bKE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/medical/sleeper) +"bKF" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Surgery Observation"; req_access_txt = "0"},/obj/machinery/holosign/surgery,/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) +"bKG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/medical/sleeper) +"bKH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bKI" = (/obj/machinery/door/airlock/glass_research{name = "Genetics Research"; req_access_txt = "5; 9"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bKJ" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/floor/engine,/area/toxins/misc_lab) "bKK" = (/obj/structure/table,/obj/item/device/assembly/igniter{pixel_x = -5; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 5; pixel_y = -4},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = 6},/obj/item/device/assembly/igniter{pixel_x = 2; pixel_y = -1},/turf/simulated/floor/engine,/area/toxins/misc_lab) "bKL" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage) @@ -4653,33 +4653,33 @@ "bLy" = (/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bLz" = (/obj/machinery/door/airlock/maintenance{name = "Custodial Maintenance"; req_access_txt = "26"},/turf/simulated/floor/plating,/area/janitor) "bLA" = (/obj/machinery/power/apc{dir = 8; name = "Medbay Maintenance APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bLB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bLC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j2s"; sortType = 2},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bLB" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bLC" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bLD" = (/turf/simulated/wall/r_wall,/area/maintenance/asmaint) "bLE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/maintenance/asmaint) "bLF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/maintenance/asmaint) -"bLG" = (/obj/structure/closet/wardrobe/pjs,/turf/simulated/floor,/area/medical/sleeper) -"bLH" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/medical/sleeper) -"bLI" = (/obj/machinery/vending/wallmed2{pixel_y = -28},/obj/machinery/camera{c_tag = "Surgery Operating"; dir = 1; network = list("SS13"); pixel_x = 22},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bLJ" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/medical/sleeper) -"bLK" = (/obj/structure/table,/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"},/obj/machinery/holosign_switch{pixel_x = -7; pixel_y = 2},/turf/simulated/floor,/area/medical/sleeper) -"bLL" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/structure/stool/bed/roller,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bLM" = (/obj/item/device/radio/intercom{pixel_y = -25},/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bLN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bLO" = (/obj/structure/table,/obj/machinery/light,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bLP" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/o2{pixel_x = -2; pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bLQ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/fire{pixel_x = -2; pixel_y = 4},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bLR" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -2; pixel_y = 4},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = -30; pixel_z = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bLS" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bLT" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bLU" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bLV" = (/obj/machinery/door/airlock/medical{name = "Patient Room 1"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bLW" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bLX" = (/obj/machinery/atmospherics/pipe/simple{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) -"bLY" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) -"bLZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/clothing/tie/stethoscope,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) -"bMa" = (/obj/machinery/vending/coffee,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) -"bMb" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/vending/snack,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/medical/medbay) +"bLG" = (/obj/structure/table,/obj/item/weapon/storage/box/rxglasses{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/bodybags{pixel_x = -1; pixel_y = -2},/obj/item/weapon/pen,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/item/device/radio/intercom{pixel_x = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bLH" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Geneticist"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bLI" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor,/area/medical/sleeper) +"bLJ" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/medical/sleeper) +"bLK" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bLL" = (/obj/machinery/camera{c_tag = "Genetics Cloning"; dir = 4; network = list("SS13")},/obj/structure/table,/obj/item/weapon/book/manual/medical_cloning{pixel_y = 6},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bLM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bLN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bLO" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bLP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/genetics) +"bLQ" = (/obj/machinery/camera{c_tag = "Medbay Cryogenics"; dir = 2; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/turf/simulated/floor,/area/medical/sleeper) +"bLR" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor,/area/medical/sleeper) +"bLS" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor,/area/medical/sleeper) +"bLT" = (/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bLU" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bLV" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bLW" = (/obj/machinery/sleep_console{icon_state = "sleeperconsole-r"; orient = "RIGHT"},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/medical/sleeper) +"bLX" = (/turf/simulated/floor{dir = 4; icon_state = "greencorner"},/area/hallway/primary/central) +"bLY" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Medbay"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor{icon_state = "bot"},/area/medical/medbay) +"bLZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/roller,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bMa" = (/obj/machinery/door/window/eastleft{name = "Medical Delivery"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/medbay) +"bMb" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bMc" = (/obj/machinery/atmospherics/pipe/simple,/turf/simulated/wall/r_wall,/area/toxins/misc_lab) "bMd" = (/obj/structure/disposaloutlet{dir = 1},/turf/simulated/floor/engine,/area/toxins/misc_lab) "bMe" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/storage) @@ -4725,24 +4725,24 @@ "bMS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bMT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bMU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bMV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bMV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whitepurple"},/area/medical/genetics) "bMW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bMX" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bMY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bMZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bNa" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bNb" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bNc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bNd" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bNe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/sleeper) -"bNf" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/medical/sleeper) -"bNg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/sleeper) -"bNh" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/medical/sleeper) -"bNi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/wall,/area/medical/medbay) -"bNj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/medical/medbay) -"bNk" = (/obj/structure/sign/nosmoking_2{pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bNl" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/structure/sign/examroom{pixel_x = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bNm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/mob/living/simple_animal/mouse,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bMZ" = (/obj/machinery/door/airlock/research{name = "Genetics Research"; req_access_txt = "9"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bNa" = (/obj/structure/disposalpipe/sortjunction{sortType = 23},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bNb" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bNc" = (/obj/machinery/door/airlock/research{name = "Genetics Research Access"; req_access_txt = "47"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bNd" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bNe" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bNf" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bNg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/sleeper) +"bNh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/sleeper) +"bNi" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "green"; dir = 4},/area/hallway/primary/central) +"bNj" = (/obj/structure/sign/redcross,/turf/simulated/wall,/area/medical/medbay) +"bNk" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = -30; pixel_y = 0; pixel_z = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 4; icon_state = "warnwhitecorner"; tag = "icon-warnwhitecorner (EAST)"},/area/medical/medbay) +"bNl" = (/obj/machinery/door_control{desc = "A remote control switch for the genetics doors."; id = "GeneticsDoor"; name = "Genetics Exit Button"; normaldoorcontrol = 1; pixel_x = 8; pixel_y = 24; range = 6},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/obj/structure/closet/wardrobe/white,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bNm" = (/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bNn" = (/obj/machinery/shieldwallgen{req_access = list(55)},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/engine,/area/toxins/misc_lab) "bNo" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/simulated/floor/engine,/area/toxins/misc_lab) "bNp" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/engine,/area/toxins/misc_lab) @@ -4779,37 +4779,37 @@ "bNU" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/primary/aft) "bNV" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "bNW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/maintenance/asmaint) -"bNX" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/maintenance/asmaint) -"bNY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/wall/r_wall,/area/maintenance/asmaint) +"bNX" = (/obj/machinery/dna_scannernew,/turf/simulated/floor{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/genetics) +"bNY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/sleeper) "bNZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/wall/r_wall,/area/maintenance/asmaint) -"bOa" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bOb" = (/obj/structure/reagent_dispensers/fueltank,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bOa" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bOb" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bOc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bOd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bOe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bOf" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/sign/securearea{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bOg" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bOh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bOi" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bOd" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bOe" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 12},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bOf" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor,/area/medical/genetics) +"bOg" = (/obj/structure/window/reinforced,/mob/living/carbon/monkey,/turf/simulated/floor,/area/medical/genetics) +"bOh" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/sign/securearea{pixel_x = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) +"bOi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) "bOj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bOk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bOl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bOm" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bOn" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bOo" = (/obj/machinery/vending/wallmed1{pixel_y = 28},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bOp" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bOq" = (/obj/machinery/door/airlock/medical{name = "Patient Room 2"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bOr" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bOs" = (/obj/structure/disposalpipe/segment,/obj/effect/landmark{name = "lightsout"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bOt" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bOu" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Psychiatrist's Office"; req_access_txt = "64"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bOv" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) -"bOw" = (/obj/machinery/vending/wallmed1{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) -"bOx" = (/obj/structure/noticeboard{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) -"bOy" = (/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/pill/methylphenidate,/obj/item/weapon/reagent_containers/pill/citalopram,/obj/item/weapon/reagent_containers/pill/citalopram,/obj/item/weapon/reagent_containers/pill/methylphenidate,/obj/item/weapon/reagent_containers/glass/bottle/stoxin,/obj/item/clothing/suit/straight_jacket{layer = 3},/obj/structure/closet/secure_closet{name = "Psychiatrist's Locker"; req_access = null; req_access_txt = "64"},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/medical/medbay) -"bOz" = (/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/obj/machinery/power/apc{dir = 8; name = "Misc Research APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/general/visible{tag = "icon-intact (SOUTHEAST)"; icon_state = "intact"; dir = 6},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/misc_lab) -"bOA" = (/obj/structure/table/reinforced,/obj/machinery/ignition_switch{id = "Xenobio"; pixel_x = -6; pixel_y = 4},/obj/machinery/atmospherics/pipe/manifold{dir = 4; icon_state = "manifold"; initialize_directions = 11; level = 2},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/misc_lab) -"bOB" = (/obj/structure/table/reinforced,/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 6},/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 6},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/misc_lab) +"bOm" = (/obj/machinery/light/small{dir = 1},/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/storage/emergency) +"bOn" = (/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/storage/emergency) +"bOo" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bOp" = (/obj/machinery/requests_console{department = "Chemistry"; departmentType = 2; pixel_x = -30; pixel_y = 0},/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper{pixel_x = 0; pixel_y = -4},/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"bOq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/obj/structure/stool,/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bOr" = (/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) +"bOs" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bOt" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"bOu" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/window/eastright{dir = 8; name = "Chemistry Desk"; req_access_txt = "33"},/turf/simulated/floor/plating,/area/medical/chemistry) +"bOv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/storage/emergency) +"bOw" = (/obj/structure/filingcabinet/chestdrawer{desc = "A large drawer filled with autopsy reports."; name = "Autopsy Reports"},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bOx" = (/obj/machinery/keycard_auth{pixel_x = 24; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bOy" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bOz" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Chief Medical Officer"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bOA" = (/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bOB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/cmo) "bOC" = (/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/misc_lab) "bOD" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/misc_lab) "bOE" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/misc_lab) @@ -4841,39 +4841,39 @@ "bPe" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/clothing/gloves/yellow,/obj/item/device/t_scanner,/obj/item/clothing/glasses/meson,/obj/item/device/multitool,/turf/simulated/floor/plating,/area/storage/tech) "bPf" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/obj/item/device/multitool,/obj/item/clothing/glasses/meson,/turf/simulated/floor/plating,/area/storage/tech) "bPg" = (/obj/machinery/vending/assist,/turf/simulated/floor/plating,/area/storage/tech) -"bPh" = (/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/camera{c_tag = "Aft Primary Hallway 2"; dir = 4; network = list("SS13")},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) -"bPi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/aft) +"bPh" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/storage/emergency) +"bPi" = (/obj/machinery/power/apc{dir = 1; name = "Starboard Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/storage/emergency) "bPj" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/aft) "bPk" = (/turf/simulated/wall/r_wall,/area/engine/break_room) -"bPl" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/closet/firecloset,/obj/item/taperoll/engineering,/turf/simulated/floor,/area/engine/break_room) +"bPl" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bPm" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = 30},/obj/structure/closet/firecloset,/obj/item/taperoll/engineering,/turf/simulated/floor,/area/engine/break_room) "bPn" = (/obj/structure/closet/firecloset,/obj/item/taperoll/engineering,/turf/simulated/floor,/area/engine/break_room) "bPo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/computer/security/telescreen{desc = "Used for watching the singularity chamber."; dir = 8; layer = 4; name = "Singularity Engine Telescreen"; network = list("Singularity"); pixel_x = 0; pixel_y = 30},/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor,/area/engine/break_room) "bPp" = (/obj/machinery/power/monitor,/obj/structure/cable,/turf/simulated/floor{icon_state = "caution"; dir = 5},/area/engine/break_room) "bPq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/atmos) "bPr" = (/turf/simulated/wall/r_wall,/area/atmos) -"bPs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/atmos) -"bPt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/maintenance{name = "Atmospherics Maintenance"; req_access_txt = "24;12"},/turf/simulated/floor/plating,/area/atmos) +"bPs" = (/obj/machinery/optable,/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bPt" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firedoor South"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/research{name = "Mech Bay"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor,/area/assembly/chargebay) "bPu" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/turf/simulated/wall/r_wall,/area/atmos) "bPv" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b"; level = 2},/turf/simulated/wall/r_wall,/area/atmos) -"bPw" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/clothing/tie/stethoscope,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bPx" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bPy" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door_control{id = "medpriv1"; name = "Privacy Shutters"; pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bPz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv1"; name = "Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/medbay) -"bPA" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "whitegreencorner"},/area/medical/medbay) -"bPB" = (/obj/machinery/washing_machine,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 2; icon_state = "whitegreencorner"},/area/medical/medbay) -"bPC" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay) -"bPD" = (/obj/effect/landmark/start{name = "Psychiatrist"},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/obj/machinery/door_control{id = "medpriv1"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) -"bPE" = (/obj/structure/table,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) -"bPF" = (/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (WEST)"; icon_state = "comfychair_teal"; dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; level = 2; on = 1},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) -"bPG" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen/blue{pixel_x = -3; pixel_y = 2},/obj/item/weapon/pen/red{pixel_x = 2; pixel_y = 6},/obj/machinery/camera{c_tag = "Psychiatric Office"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/medical/medbay) -"bPH" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bPI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/door/airlock/maintenance{name = "Misc Research Maintenance"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/toxins/misc_lab) -"bPJ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/simulated/floor/plating,/area/toxins/misc_lab) -"bPK" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door_control{id = "misclab"; name = "Test Chamber Blast Doors"; pixel_x = 6; pixel_y = 30; req_access_txt = "47"},/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/general/visible,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) -"bPL" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) -"bPM" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/toxins/misc_lab) -"bPN" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/toxins/misc_lab) +"bPw" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/storage/emergency) +"bPx" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) +"bPy" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bPz" = (/obj/machinery/computer/med_data,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bPA" = (/obj/machinery/light/small{dir = 8},/obj/structure/table,/obj/item/device/camera{name = "Autopsy Camera"; pixel_x = -2; pixel_y = -2},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bPB" = (/obj/structure/stool/bed/chair,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bPC" = (/obj/structure/closet/crate,/obj/item/weapon/coin/silver,/turf/simulated/floor/plating,/area/storage/emergency) +"bPD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/storage/emergency) +"bPE" = (/obj/machinery/computer/crew,/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bPF" = (/obj/structure/filingcabinet/filingcabinet,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bPG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/medical/morgue) +"bPH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bPI" = (/obj/machinery/door/airlock{name = "Starboard Emergency Storage"; req_access_txt = "0"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/storage/emergency) +"bPJ" = (/obj/machinery/alarm{pixel_y = 24},/obj/structure/table,/obj/item/weapon/autopsy_scanner{pixel_x = 1; pixel_y = 1},/obj/item/weapon/scalpel,/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bPK" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bPL" = (/obj/machinery/power/apc{dir = 1; name = "Morgue APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bPM" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bPN" = (/obj/structure/table,/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "bPO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) "bPP" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/misc_lab) "bPQ" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/obj/machinery/door/airlock/research{name = "Miscellaneous Research"; req_access_txt = "47"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab) @@ -4895,20 +4895,20 @@ "bQg" = (/obj/structure/rack{dir = 1},/turf/simulated/floor/plating,/area/maintenance/aft) "bQh" = (/obj/structure/disposalpipe/segment,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bQi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/aft) -"bQj" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 8; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/aft) +"bQj" = (/obj/machinery/camera{c_tag = "Chemistry"; dir = 2; network = list("SS13")},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = -1; pixel_y = -1; pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 3; pixel_x = 2; pixel_y = 2},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "bQk" = (/obj/machinery/door/window/westright{name = "Reception Door"; req_access = null; req_access_txt = "0"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Engineering"},/turf/simulated/floor{icon_state = "bot"},/area/engine/break_room) "bQl" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/window/northleft{dir = 4; icon_state = "left"; name = "Engineering Moniter Station"; req_access_txt = "32"},/turf/simulated/floor{icon_state = "delivery"},/area/engine/break_room) "bQm" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/engine/break_room) "bQn" = (/turf/simulated/floor,/area/engine/break_room) "bQo" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/break_room) -"bQp" = (/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/engine/break_room) -"bQq" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/atmos) -"bQr" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{icon_state = "bot"},/area/atmos) -"bQs" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor{icon_state = "bot"},/area/atmos) +"bQp" = (/obj/structure/table,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; name = "Chemistry Cleaner"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"bQq" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bQr" = (/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bQs" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "bQt" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/turf/simulated/floor{icon_state = "bot"},/area/atmos) -"bQu" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/portable_atmospherics/canister/sleeping_agent,/obj/structure/window/basic{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/atmos) +"bQu" = (/obj/machinery/newscaster{pixel_x = -28; pixel_y = 0},/obj/structure/table,/obj/item/weapon/folder/white,/turf/simulated/floor{dir = 8; icon_state = "whiteyellowcorner"},/area/medical/medbay) "bQv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/atmos) -"bQw" = (/obj/machinery/pipedispenser,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor,/area/atmos) +"bQw" = (/obj/machinery/door/window{name = "AI Core Door"; req_access_txt = "16"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/turretid{name = "AI Chamber turret control"; pixel_x = 24; pixel_y = 24},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) "bQx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/atmos) "bQy" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r"; level = 2},/obj/machinery/light{dir = 1},/obj/machinery/meter{frequency = 1443; id = "wloop_atm_meter"; name = "Waste Loop"},/turf/simulated/floor,/area/atmos) "bQz" = (/obj/machinery/camera{c_tag = "Atmospherics North East"},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_off"; name = "Distro to Waste"; on = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/atmos) @@ -4918,13 +4918,13 @@ "bQD" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 10; icon_state = "intact-c"; initialize_directions = 10; level = 2},/turf/simulated/floor,/area/atmos) "bQE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/atmos) "bQF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/atmos) -"bQG" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bQH" = (/obj/machinery/door/airlock/medical{name = "Virology Access"; req_access_txt = "5"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"bQI" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/sign/securearea{pixel_x = 32},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bQG" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/medical/medbay) +"bQH" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/medical/medbay) +"bQI" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/medical/medbay) "bQJ" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Gas pump"; on = 0},/turf/simulated/floor/plating,/area/toxins/misc_lab) "bQK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) "bQL" = (/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) -"bQM" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/toxins/misc_lab) +"bQM" = (/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6"},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bQN" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor,/area/toxins/misc_lab) "bQO" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/misc_lab) "bQP" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/obj/machinery/door/airlock/research{name = "Miscellaneous Research"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab) @@ -4942,7 +4942,7 @@ "bRb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bRc" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bRd" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/aft) -"bRe" = (/obj/structure/rack{dir = 1},/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/aft) +"bRe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard) "bRf" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/aft) "bRg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft) "bRh" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) @@ -4954,8 +4954,8 @@ "bRn" = (/turf/simulated/floor,/area/construction) "bRo" = (/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor,/area/construction) "bRp" = (/obj/structure/closet/toolcloset,/turf/simulated/floor,/area/construction) -"bRq" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) -"bRr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor,/area/hallway/primary/aft) +"bRq" = (/obj/structure/closet/emcloset,/turf/simulated/floor,/area/hallway/primary/starboard) +"bRr" = (/obj/machinery/power/apc{dir = 2; name = "Starboard Primary Hallway APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor,/area/hallway/primary/starboard) "bRs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/aft) "bRt" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/engine/break_room) "bRu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/dispenser{pixel_x = -1},/turf/simulated/floor,/area/engine/break_room) @@ -4963,9 +4963,9 @@ "bRw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) "bRx" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/break_room) "bRy" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/machinery/camera{c_tag = "Atmospherics Monitoring"; dir = 8; network = list("SS13")},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/engine/break_room) -"bRz" = (/obj/machinery/camera{c_tag = "Atmospherics North West"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{icon_state = "bot"},/area/atmos) -"bRA" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/portable_atmospherics/canister/sleeping_agent,/obj/structure/window/basic{dir = 4},/turf/simulated/floor{icon_state = "bot"},/area/atmos) -"bRB" = (/obj/machinery/pipedispenser/disposal,/turf/simulated/floor,/area/atmos) +"bRz" = (/obj/machinery/light,/turf/simulated/floor{dir = 8; icon_state = "greencorner"},/area/hallway/primary/starboard) +"bRA" = (/turf/simulated/floor{dir = 2; icon_state = "green"},/area/hallway/primary/starboard) +"bRB" = (/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "whitecorner"},/area/hallway/primary/starboard) "bRC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/atmos) "bRD" = (/obj/machinery/atmospherics/binary/pump{dir = 0; icon_state = "intact_on"; name = "Waste In"; on = 1},/turf/simulated/floor,/area/atmos) "bRE" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/atmos) @@ -4975,19 +4975,19 @@ "bRI" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/atmos) "bRJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 10; icon_state = "intact-c"; initialize_directions = 10; level = 2},/turf/simulated/floor/plating,/area/atmos) "bRK" = (/obj/structure/grille,/turf/simulated/wall/r_wall,/area/atmos) -"bRL" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bRM" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_west_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bRN" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bRO" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bRP" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bRQ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bRR" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bRS" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bRL" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor{dir = 8; icon_state = "whitecorner"},/area/hallway/primary/starboard) +"bRM" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard) +"bRN" = (/obj/machinery/light,/turf/simulated/floor{dir = 2; icon_state = "greencorner"},/area/hallway/primary/starboard) +"bRO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 2; icon_state = "green"},/area/hallway/primary/starboard) +"bRP" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/hallway/primary/starboard) +"bRQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/hallway/primary/starboard) +"bRR" = (/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bRS" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bRT" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/light,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) "bRU" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) "bRV" = (/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) -"bRW" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) -"bRX" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) +"bRW" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medbay"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bRX" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/device/radio/headset/headset_med,/obj/structure/extinguisher_cabinet{pixel_x = 25},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "bRY" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/structure/closet/bombcloset,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/toxins/misc_lab) "bRZ" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/closet/l3closet/scientist,/obj/machinery/light,/turf/simulated/floor{icon_state = "floorgrime"},/area/toxins/misc_lab) "bSa" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) @@ -5009,10 +5009,10 @@ "bSq" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/engine/break_room) "bSr" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/t_scanner,/turf/simulated/floor,/area/engine/break_room) "bSs" = (/obj/machinery/computer/general_air_control{frequency = 1441; name = "Tank Monitor"; sensors = list("n2_sensor" = "Nitrogen", "o2_sensor" = "Oxygen", "co2_sensor" = "Carbon Dioxide", "tox_sensor" = "Toxins", "n2o_sensor" = "Nitrous Oxide", "waste_sensor" = "Gas Mix Tank")},/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 4; name = "Atmos RC"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/engine/break_room) -"bSt" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/atmos) -"bSu" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/atmos) -"bSv" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor,/area/atmos) -"bSw" = (/obj/item/device/radio/beacon,/turf/simulated/floor,/area/atmos) +"bSt" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bSu" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/power/apc{dir = 8; level = 4; name = "Chemistry APC"; pixel_x = -25},/obj/structure/closet/secure_closet/chemical,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"bSv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bSw" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/medical{name = "Morgue"; req_access_txt = "6;5"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bSx" = (/obj/structure/closet/crate,/turf/simulated/floor,/area/atmos) "bSy" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r"; level = 2},/turf/simulated/floor,/area/atmos) "bSz" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_off"; name = "Mix to Filter"; on = 0},/turf/simulated/floor,/area/atmos) @@ -5022,33 +5022,33 @@ "bSD" = (/obj/machinery/atmospherics/binary/pump{dir = 0; icon_state = "intact_off"; name = "Air to Mix"; on = 0},/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 4; icon_state = "intact-y"; level = 2},/turf/simulated/floor,/area/atmos) "bSE" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/valve/digital{color = "yellow"; dir = 4; name = "Gas Mix Outlet Valve"},/turf/simulated/floor{dir = 5; icon_state = "green"},/area/atmos) "bSF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"},/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 4; icon_state = "intact-y"; level = 2},/turf/simulated/floor/plating,/area/atmos) -"bSG" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 4; icon_state = "intact-y"; level = 2},/turf/space,/area) +"bSG" = (/obj/structure/closet/secure_closet/CMO,/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "bSH" = (/obj/machinery/atmospherics/pipe/simple{dir = 4; level = 1},/obj/structure/grille,/obj/machinery/meter,/turf/simulated/wall/r_wall,/area/atmos) "bSI" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "waste_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bSJ" = (/obj/machinery/camera{c_tag = "Atmospherics Waste Tank"},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bSK" = (/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) -"bSL" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall,/area/maintenance/asmaint) -"bSM" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "virology_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bSN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/wall,/area/maintenance/asmaint) -"bSO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bSP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bSQ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/maintenance/asmaint) +"bSL" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bSM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bSN" = (/obj/structure/table,/obj/item/weapon/cartridge/medical{pixel_x = -2; pixel_y = 6},/obj/item/weapon/cartridge/medical{pixel_x = 6; pixel_y = 3},/obj/item/weapon/cartridge/medical,/obj/item/weapon/cartridge/chemistry{pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bSO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/cmo) +"bSP" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 30; pixel_y = 0; pixel_z = 0},/obj/machinery/light,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/computer/crew,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bSQ" = (/obj/structure/table,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bSR" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/asmaint) -"bSS" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) -"bST" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) -"bSU" = (/obj/machinery/door/firedoor/border_only{dir = 2; name = "hazard door south"},/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"bSS" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bST" = (/obj/structure/disposalpipe/sortjunction{sortType = 10},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bSU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Morgue Maintenance"; req_access_txt = "6"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/morgue) "bSV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bSW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bSX" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bSX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bSY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/toxins/misc_lab) "bSZ" = (/obj/structure/rack{dir = 1},/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/meson,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bTa" = (/obj/structure/rack{dir = 1},/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bTa" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bTb" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bTc" = (/turf/simulated/floor/plating,/area/maintenance/asmaint) "bTd" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bTe" = (/obj/machinery/door/airlock/research{name = "Xenobiology Access"; req_access_txt = "47"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bTf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/medical/research{name = "Research Division"}) -"bTg" = (/obj/structure/rack{dir = 1},/obj/item/weapon/extinguisher,/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bTg" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "bTh" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bTi" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bTj" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -5073,11 +5073,11 @@ "bTC" = (/obj/machinery/computer/station_alert,/turf/simulated/floor,/area/engine/break_room) "bTD" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor,/area/engine/break_room) "bTE" = (/obj/machinery/computer/general_air_control{frequency = 1443; level = 3; name = "Distribution and Waste Monitor"; sensors = list("mair_in_meter" = "Mixed Air In", "air_sensor" = "Mixed Air Supply Tank", "mair_out_meter" = "Mixed Air Out", "dloop_atm_meter" = "Distribution Loop", "wloop_atm_meter" = "Waste Loop")},/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/engine/break_room) -"bTF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) +"bTF" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bTG" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor,/area/atmos) "bTH" = (/obj/machinery/atmospherics/trinary/filter,/turf/simulated/floor,/area/atmos) -"bTI" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/atmos) -"bTJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/atmos) +"bTI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bTJ" = (/obj/structure/disposalpipe/segment,/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "bTK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/atmos) "bTL" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; icon_state = "intact-y"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos) "bTM" = (/obj/machinery/atmospherics/pipe/manifold{color = "green"; dir = 1; icon_state = "manifold-g"; level = 2; tag = "icon-manifold-g (NORTH)"},/turf/simulated/floor,/area/atmos) @@ -5087,19 +5087,19 @@ "bTQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless,/area/atmos) "bTR" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "waste_sensor"; output = 63},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) "bTS" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) -"bTT" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "virology_pump"},/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bTU" = (/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "virology_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "virology_pump"; exterior_door_tag = "virology_outer"; frequency = 1379; id_tag = "virology_airlock"; interior_door_tag = "virology_inner"; pixel_x = 25; req_access_txt = "13"; sensor_tag = "virology_sensor"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bTT" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bTU" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/obj/item/weapon/storage/box/bodybags{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) "bTV" = (/turf/simulated/wall/r_wall,/area/medical/virology) -"bTW" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/medical/virology) -"bTX" = (/obj/machinery/door/airlock/medical{name = "Virology Access"; req_access_txt = "39"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bTY" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/virology) -"bTZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bUa" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 13},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bTW" = (/obj/structure/sign/nosmoking_2{pixel_x = 28},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/chair/office/light{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bTX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bTY" = (/obj/structure/table/reinforced,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) +"bTZ" = (/obj/effect/landmark/start{name = "Medical Doctor"},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyer"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; pixel_y = 6; range = 3; req_access_txt = "5"},/obj/structure/stool/bed/chair/office/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bUa" = (/obj/structure/table,/obj/item/clothing/glasses/science{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/box/syringes,/obj/item/clothing/glasses/science{pixel_x = 0; pixel_y = 1},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "bUb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bUc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/securearea{pixel_x = 0; pixel_y = 32},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bUd" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bUe" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"bUf" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bUf" = (/obj/item/device/radio/intercom{broadcasting = 1; freerange = 0; frequency = 1485; listening = 0; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -30},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/light,/turf/simulated/floor{dir = 1; icon_state = "whiteyellowcorner"},/area/medical/medbay) "bUg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bUh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bUi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) @@ -5116,20 +5116,20 @@ "bUt" = (/obj/machinery/power/apc{dir = 4; name = "Incinerator APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bUu" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) "bUv" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-y (NORTH)"; icon_state = "pipe-y"; dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) -"bUw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Construction Area Maintenance"; req_access_txt = "32"},/turf/simulated/floor/plating,/area/construction) +"bUw" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/table,/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "bUx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/construction) "bUy" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/construction) "bUz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/construction) "bUA" = (/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor,/area/construction) "bUB" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bUC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) -"bUD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/hallway/primary/aft) +"bUD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/chem_master,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bUE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/break_room) "bUF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/device/radio/intercom{freerange = 0; frequency = 1459; name = "Station Intercom (General)"; pixel_x = -30},/turf/simulated/floor,/area/engine/break_room) "bUG" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/break_room) "bUH" = (/obj/structure/table/reinforced,/obj/item/weapon/tank/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/weapon/tank/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/turf/simulated/floor,/area/engine/break_room) "bUI" = (/obj/machinery/computer/atmos_alert,/turf/simulated/floor{dir = 6; icon_state = "caution"},/area/engine/break_room) -"bUJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) +"bUJ" = (/obj/structure/table,/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/timer{pixel_x = -3; pixel_y = 3},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/device/assembly/igniter{pixel_x = 3; pixel_y = -7},/obj/item/weapon/grenade/chem_grenade{pixel_x = 6; pixel_y = 5},/obj/item/weapon/grenade/chem_grenade{pixel_x = 6; pixel_y = 5},/obj/item/weapon/grenade/chem_grenade{pixel_x = 6; pixel_y = 5},/obj/item/weapon/grenade/chem_grenade{pixel_x = 6; pixel_y = 5},/obj/item/weapon/screwdriver{pixel_x = -2; pixel_y = 6},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "bUK" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor,/area/atmos) "bUL" = (/obj/machinery/atmospherics/portables_connector{dir = 1},/turf/simulated/floor,/area/atmos) "bUM" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 6; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) @@ -5142,17 +5142,17 @@ "bUT" = (/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "Unfiltered to Mix"; on = 0},/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; initialize_directions = 12; level = 2},/turf/simulated/floor,/area/atmos) "bUU" = (/obj/machinery/atmospherics/valve/digital{color = "yellow"; dir = 4; name = "Gas Mix Inlet Valve"},/turf/simulated/floor{icon_state = "green"; dir = 6},/area/atmos) "bUV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 4; icon_state = "intact-y"; initialize_directions = 12; level = 1},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"},/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/simulated/floor/plating,/area/atmos) -"bUW" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/space,/area) +"bUW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/chemistry) "bUX" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "waste_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos) -"bUY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology) -"bUZ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bVa" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bVb" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bVc" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bVd" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bVe" = (/obj/structure/stool/bed/chair,/obj/item/weapon/storage/fancy/cigarettes,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bVf" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bVg" = (/obj/machinery/space_heater,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bUY" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/medical/medbay) +"bUZ" = (/obj/machinery/door/window/northleft{name = "Medbay Reception"; req_access_txt = "5"},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/medical/medbay) +"bVa" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor{tag = "icon-whitegreen (NORTHWEST)"; icon_state = "whitegreen"; dir = 9},/area/medical/medbay) +"bVb" = (/obj/structure/table,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/item/weapon/reagent_containers/dropper{pixel_y = -4},/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"bVc" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/stool,/obj/effect/landmark/start{name = "Chemist"},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bVd" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bVe" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bVf" = (/obj/machinery/power/apc{dir = 8; name = "CM Office APC"; pixel_x = -25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bVg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera{c_tag = "Medbay Foyer"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/obj/structure/table/reinforced,/obj/machinery/computer/med_data/laptop,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/medical/medbay) "bVh" = (/obj/structure/rack,/obj/item/clothing/mask/gas,/obj/item/clothing/glasses/sunglasses,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bVi" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/asmaint) "bVj" = (/obj/item/device/flashlight,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -5170,7 +5170,7 @@ "bVv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "toxin_test_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bVw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "toxin_test_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "toxin_test_sensor"; pixel_x = 0; pixel_y = 16},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bVx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "toxin_test_pump"; exterior_door_tag = "toxin_test_outer"; frequency = 1379; id_tag = "toxin_test_airlock"; interior_door_tag = "toxin_test_inner"; pixel_x = 0; pixel_y = 25; req_access_txt = "13"; sensor_tag = "toxin_test_sensor"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"bVy" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) +"bVy" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bVz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "toxin_test_airlock"; name = "exterior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "13"},/turf/simulated/floor/plating/airless,/area) "bVA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless,/area) "bVB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/external{name = "Toxins Test Chamber"; req_access_txt = "0"},/turf/simulated/floor/plating/airless,/area/toxins/test_area) @@ -5189,14 +5189,14 @@ "bVO" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/aft) "bVP" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/construction) "bVQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/construction) -"bVR" = (/obj/machinery/door/airlock/engineering{name = "Construction Area"; req_access_txt = "32"},/turf/simulated/floor/plating,/area/construction) -"bVS" = (/obj/structure/closet/emcloset,/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/hallway/primary/aft) +"bVR" = (/obj/structure/morgue,/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bVS" = (/obj/structure/disposalpipe/segment,/obj/machinery/light_switch{pixel_x = 28; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "bVT" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/break_room) "bVU" = (/turf/simulated/wall,/area/atmos) -"bVV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) -"bVW" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) -"bVX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) -"bVY" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/trinary/mixer{dir = 1},/turf/simulated/floor,/area/atmos) +"bVV" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bVW" = (/obj/structure/table,/obj/item/weapon/storage/box/gloves{pixel_x = -4; pixel_y = -3; pixel_x = 3; pixel_y = 4},/obj/item/weapon/storage/box/masks{pixel_x = 4; pixel_y = 5; pixel_x = 0; pixel_y = 0},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bVX" = (/obj/machinery/camera{c_tag = "Medbay Morgue"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/light/small{dir = 4},/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bVY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/medical/cmo) "bVZ" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor,/area/atmos) "bWa" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) "bWb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 6; icon_state = "intact-c"; initialize_directions = 6; level = 2},/obj/structure/sign/nosmoking_2,/turf/simulated/floor/plating,/area/atmos) @@ -5206,10 +5206,10 @@ "bWf" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/atmos) "bWg" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/atmos) "bWh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 4; icon_state = "manifold-c"; initialize_directions = 11; level = 2},/turf/simulated/floor/plating,/area/atmos) -"bWi" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "virology_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bWi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bWj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology) "bWk" = (/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bWl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bWl" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/item/weapon/stamp/cmo,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/item/clothing/glasses/hud/health,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "bWm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "bWn" = (/obj/machinery/door/airlock/maintenance{name = "Firefighting equipment"; req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bWo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -5239,16 +5239,16 @@ "bWM" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/construction) "bWN" = (/obj/machinery/power/apc{name = "Aft Hall APC"; dir = 8; pixel_x = -25; pixel_y = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) "bWO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/hallway/primary/aft) -"bWP" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 6; icon_state = "caution"},/area/hallway/primary/aft) -"bWQ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/atmos) +"bWP" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bWQ" = (/obj/structure/disposalpipe/segment,/obj/item/device/radio/intercom{pixel_x = 25},/obj/machinery/camera{c_tag = "Chief Medical Office"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) "bWR" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/atmos) -"bWS" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 24; pixel_y = 4; req_access_txt = "24"},/turf/simulated/floor,/area/atmos) -"bWT" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/light_switch{pixel_x = -27},/turf/simulated/floor,/area/atmos) -"bWU" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; name = "External to Filter"; on = 1},/turf/simulated/floor,/area/atmos) -"bWV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) +"bWS" = (/obj/structure/table,/obj/item/weapon/pen,/obj/item/clothing/tie/stethoscope,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/mob/living/simple_animal/cat/Runtime,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/medical/cmo) +"bWT" = (/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = 4; pixel_y = 4},/obj/item/weapon/reagent_containers/glass/bottle/antitoxin{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/obj/item/weapon/storage/pill_bottle/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"bWU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/chemistry) +"bWV" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bWW" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) -"bWX" = (/obj/machinery/atmospherics/pipe/manifold{tag = "icon-manifold-r (EAST)"; icon_state = "manifold-r"; dir = 4; level = 2; color = "red"},/turf/simulated/floor,/area/atmos) -"bWY" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 6; icon_state = "intact-c"; initialize_directions = 6; level = 2},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/atmos) +"bWX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) +"bWY" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bWZ" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 4; icon_state = "manifold-c"; initialize_directions = 11; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) "bXa" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; icon_state = "intact-y"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) "bXb" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 6; icon_state = "intact-y"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) @@ -5258,14 +5258,14 @@ "bXf" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"},/obj/machinery/atmospherics/pipe/simple{color = "yellow"; dir = 4; icon_state = "intact-y"; level = 2},/turf/simulated/floor/plating,/area/atmos) "bXg" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/n20,/area/atmos) "bXh" = (/turf/simulated/floor/engine/n20,/area/atmos) -"bXi" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "virology_airlock"; name = "exterior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bXj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/light,/turf/simulated/floor/plating,/area/medical/virology) -"bXk" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bXl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bXm" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bXn" = (/obj/structure/table,/obj/item/device/t_scanner,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bXo" = (/obj/structure/closet,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bXp" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bXi" = (/obj/structure/table,/turf/simulated/floor{dir = 8; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"bXj" = (/obj/machinery/chem_dispenser,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bXk" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) +"bXl" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/oxygen,/obj/item/weapon/tank/oxygen,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/turf/simulated/floor/plating,/area/storage/emergency) +"bXm" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/turf/simulated/wall/r_wall,/area/engine/engineering) +"bXn" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"bXo" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor,/area/engine/engineering) +"bXp" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) "bXq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/toxins/xenobiology) "bXr" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bXs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) @@ -5286,20 +5286,20 @@ "bXH" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating,/area/construction) "bXI" = (/obj/machinery/power/apc{dir = 2; name = "Construction Area APC"; pixel_y = -24},/obj/structure/cable,/turf/simulated/floor/plating,/area/construction) "bXJ" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/storage/hazardvest,/turf/simulated/floor/plating,/area/construction) -"bXK" = (/obj/structure/table,/obj/item/weapon/cable_coil{amount = 5},/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/construction) -"bXL" = (/obj/structure/table,/turf/simulated/floor/plating,/area/construction) +"bXK" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) +"bXL" = (/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom) "bXM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) -"bXN" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/pump,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "arrival"; dir = 8},/area/atmos) +"bXN" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/genetics) "bXO" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; dir = 1; icon_state = "manifold-c"; level = 2},/obj/machinery/meter,/turf/simulated/wall/r_wall,/area/engine/break_room) -"bXP" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/engine/break_room) -"bXQ" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/atmos) +"bXP" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_aux_airlock"; name = "exterior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"bXQ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_aux_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"; req_one_access_txt = "11;24"},/turf/simulated/floor/plating,/area/engine/engineering) "bXR" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; icon_state = "manifold-c"; level = 2},/turf/simulated/floor,/area/atmos) -"bXS" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; icon_state = "manifold-c"; level = 2},/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/atmos) -"bXT" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos) +"bXS" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "engineering_aux_pump"; exterior_door_tag = "engineering_aux_outer"; frequency = 1379; id_tag = "engineering_aux_airlock"; interior_door_tag = "engineering_aux_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = "10;13"; sensor_tag = "engineering_aux_sensor"},/turf/simulated/floor/plating,/area/engine/engineering) +"bXT" = (/obj/machinery/light/small,/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_aux_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/plating,/area/engine/engineering) "bXU" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) -"bXV" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; name = "Air to External"; on = 1},/turf/simulated/floor,/area/atmos) -"bXW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/atmos) -"bXX" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/atmos) +"bXV" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "engineering_aux_pump"},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor/plating,/area/engine/engineering) +"bXW" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_aux_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"; req_one_access_txt = "11;24"},/turf/simulated/floor/plating,/area/engine/engineering) +"bXX" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_aux_airlock"; name = "exterior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/turf/simulated/floor,/area/engine/engineering) "bXY" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 9; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/atmos) "bXZ" = (/obj/machinery/atmospherics/binary/pump{dir = 0; icon_state = "intact_off"; name = "Air to Port"; on = 0},/turf/simulated/floor,/area/atmos) "bYa" = (/obj/machinery/atmospherics/binary/pump{dir = 0; icon_state = "intact_off"; name = "Mix to Port"; on = 0},/turf/simulated/floor,/area/atmos) @@ -5311,10 +5311,10 @@ "bYg" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent/roomfiller{valve_open = 1},/turf/simulated/floor/engine/n20,/area/atmos) "bYh" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine/n20,/area/atmos) "bYi" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/medical/virology) -"bYj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access_txt = "39"},/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bYj" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_east_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) "bYk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/medical/virology) -"bYl" = (/obj/machinery/light/small{dir = 8},/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"bYm" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"bYl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) +"bYm" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/engineering) "bYn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/toxins/xenobiology) "bYo" = (/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bYp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) @@ -5322,17 +5322,17 @@ "bYr" = (/obj/machinery/power/apc{dir = 8; name = "Aft Starboard Solar APC"; pixel_x = -26; pixel_y = 3},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "bYs" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "bYt" = (/obj/machinery/power/smes{charge = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) -"bYu" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{icon_state = "arrival"; dir = 8},/area/atmos) +"bYu" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating,/area/engine/engineering) "bYv" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 9; icon_state = "intact-c"; level = 2},/turf/simulated/wall/r_wall,/area/engine/break_room) -"bYw" = (/obj/machinery/camera{c_tag = "Atmospherics Access"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 6; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/engine/break_room) -"bYx" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/atmos) -"bYy" = (/obj/machinery/space_heater,/obj/structure/sign/atmosplaque{pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/atmos) -"bYz" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/structure/closet/fireaxecabinet{pixel_y = -32},/obj/machinery/space_heater,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/atmos) -"bYA" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/space_heater,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/atmos) -"bYB" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/atmos) -"bYC" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/structure/table,/obj/item/clothing/head/welding{pixel_x = 1; pixel_x = -5; pixel_y = 3},/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/head/welding{pixel_x = 0; pixel_x = -5; pixel_y = 3},/obj/item/clothing/glasses/welding,/turf/simulated/floor,/area/atmos) -"bYD" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/weapon/wrench,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 9; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) -"bYE" = (/obj/structure/table,/obj/item/device/t_scanner,/obj/item/device/multitool{pixel_x = 5},/obj/item/device/radio/headset/headset_eng,/obj/item/weapon/cartridge/atmos,/obj/item/weapon/cartridge/atmos,/turf/simulated/floor,/area/atmos) +"bYw" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"; pixel_x = -32},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"bYx" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"bYy" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor/plating,/area/engine/engineering) +"bYz" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"bYA" = (/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"bYB" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/sleeper) +"bYC" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "engineering_east_pump"},/turf/simulated/floor/plating,/area/engine/engineering) +"bYD" = (/obj/structure/table,/obj/item/device/radio/off{pixel_y = 6},/obj/item/device/radio/off{pixel_x = 6; pixel_y = 4},/obj/item/device/radio/off{pixel_x = -6; pixel_y = 4},/obj/item/device/radio/off,/turf/simulated/floor,/area/engine/break_room) +"bYE" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/engine/break_room) "bYF" = (/obj/machinery/atmospherics/tvalve/mirrored/digital,/turf/simulated/floor,/area/atmos) "bYG" = (/obj/machinery/atmospherics/binary/pump{dir = 4; name = "Waste to Port"},/turf/simulated/floor,/area/atmos) "bYH" = (/obj/machinery/atmospherics/pipe/manifold4w/general/visible,/turf/simulated/floor,/area/atmos) @@ -5342,9 +5342,9 @@ "bYL" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/simulated/floor{icon_state = "escape"; dir = 6},/area/atmos) "bYM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"},/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/simulated/floor/plating,/area/atmos) "bYN" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "n2o_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine/n20,/area/atmos) -"bYO" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology) -"bYP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bYQ" = (/obj/structure/closet/emcloset,/obj/machinery/camera/xray{c_tag = "Virology Access"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/medical/virology) +"bYO" = (/obj/structure/sign/pods{pixel_x = 32; pixel_y = 0},/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/engine/break_room) +"bYP" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/break_room) +"bYQ" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/weapon/storage/belt/utility,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/break_room) "bYR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/light,/turf/simulated/floor/plating,/area/toxins/xenobiology) "bYS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bYT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) @@ -5360,27 +5360,27 @@ "bZd" = (/obj/structure/disposalpipe/junction{tag = "icon-pipe-y (NORTH)"; icon_state = "pipe-y"; dir = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) "bZe" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/maintenance/aft) "bZf" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/aft) -"bZg" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/atmos) +"bZg" = (/turf/simulated/floor/plating,/area/storage/emergency) "bZh" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r"; level = 2},/obj/machinery/meter,/turf/simulated/wall/r_wall,/area/engine/break_room) -"bZi" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 9; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/engine/break_room) -"bZj" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/atmos) -"bZk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/atmos) -"bZl" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/atmos) -"bZm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/atmos) -"bZn" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/atmos,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/atmos,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/atmos) +"bZi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/aft) +"bZj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/storage/emergency) +"bZk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/aft) +"bZl" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/aft) +"bZm" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/aft) +"bZn" = (/obj/machinery/door/airlock/external{name = "Engineering Escape Pod"; req_access = null; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor/plating,/area/engine/break_room) "bZo" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_off"; name = "Port to Filter"; on = 0},/turf/simulated/floor,/area/atmos) "bZp" = (/obj/machinery/atmospherics/valve,/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/atmos) "bZq" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/floor,/area/atmos) "bZr" = (/obj/machinery/atmospherics/valve,/turf/simulated/floor,/area/atmos) "bZs" = (/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/atmos) "bZt" = (/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/virology) -"bZu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bZv" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/l3closet,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/virology) +"bZu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/engine/break_room) +"bZv" = (/obj/machinery/power/smes,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engine/engineering) "bZw" = (/turf/simulated/wall,/area/medical/virology) -"bZx" = (/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bZy" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bZz" = (/obj/machinery/light/small{dir = 1},/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"bZA" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"bZx" = (/turf/simulated/floor/plating,/area/engine/break_room) +"bZy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/break_room) +"bZz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/aft) +"bZA" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/shuttle/escape_pod5/station) "bZB" = (/obj/structure/lattice,/obj/structure/lattice,/turf/space,/area) "bZC" = (/obj/structure/sign/biohazard,/turf/simulated/wall/r_wall,/area/toxins/xenobiology) "bZD" = (/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "xeno_airlock_control"; name = "Xenobiology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "55"},/obj/machinery/door/airlock/research{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "xeno_airlock_exterior"; locked = 1; name = "Xenobiology External Airlock"; req_access_txt = "55"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) @@ -5400,14 +5400,14 @@ "bZR" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/aft) "bZS" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/aft) "bZT" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/aft) -"bZU" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/light/small,/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/atmos) +"bZU" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/escape_pod5/station) "bZV" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 9; icon_state = "intact-r"; level = 2},/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/engine/break_room) "bZW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/recharge_station,/turf/simulated/floor,/area/engine/break_room) "bZX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/computer/station_alert,/turf/simulated/floor,/area/engine/break_room) "bZY" = (/obj/machinery/computer/arcade,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor,/area/engine/break_room) "bZZ" = (/obj/machinery/vending/snack,/turf/simulated/floor,/area/engine/break_room) -"caa" = (/obj/machinery/vending/coffee,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/atmos) -"cab" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/atmos,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/atmos,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/atmos) +"caa" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/engine/break_room) +"cab" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/break_room) "cac" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/turf/simulated/floor,/area/atmos) "cad" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/turf/simulated/floor,/area/atmos) "cae" = (/obj/machinery/atmospherics/binary/pump{dir = 4},/turf/simulated/floor,/area/atmos) @@ -5418,15 +5418,15 @@ "caj" = (/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) "cak" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) "cal" = (/obj/structure/closet/wardrobe/virology_white,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cam" = (/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 29},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/camera{c_tag = "Virology Break Room"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"can" = (/obj/machinery/light{dir = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cam" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor,/area/engine/engineering) +"can" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/engine/break_room) "cao" = (/obj/structure/closet/l3closet/virology,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cap" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall,/area/medical/virology) -"caq" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/access_button{command = "cycle_interior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 8; pixel_y = -28; req_access_txt = "39"},/turf/simulated/floor{dir = 10; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology) -"car" = (/obj/structure/closet/l3closet,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology) -"cas" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cat" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cau" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cap" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod5/station) +"caq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "dark"},/area/medical/morgue) +"car" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Engineering Secure Storage"; dir = 4; network = list("SS13")},/obj/machinery/shield_capacitor,/turf/simulated/floor/plating,/area/engine/engineering) +"cas" = (/obj/machinery/shield_capacitor,/turf/simulated/floor/plating,/area/engine/engineering) +"cat" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/shieldgen,/turf/simulated/floor/plating,/area/engine/engineering) +"cau" = (/obj/machinery/shieldgen,/turf/simulated/floor/plating,/area/engine/engineering) "cav" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/xenobiology) "caw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cax" = (/obj/structure/closet/emcloset,/obj/machinery/camera/xray{c_tag = "Xenobiology Access"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/toxins/xenobiology) @@ -5453,25 +5453,25 @@ "caS" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/engine/break_room) "caT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor,/area/engine/break_room) "caU" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/break_room) -"caV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/atmos) -"caW" = (/obj/machinery/camera{c_tag = "Atmospherics West"; dir = 4; network = list("SS13")},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/atmos) -"caX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/atmos) +"caV" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod5/station) +"caW" = (/obj/machinery/shield_gen,/turf/simulated/floor/plating,/area/engine/engineering) +"caX" = (/obj/machinery/camera{c_tag = "Engineering SMES"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "caY" = (/obj/machinery/atmospherics/pipe/manifold4w/general/visible,/obj/machinery/meter,/turf/simulated/floor,/area/atmos) "caZ" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/atmos) "cba" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "tox_in"; name = "Toxin Supply Control"; output_tag = "tox_out"; sensors = list("tox_sensor" = "Tank")},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/atmos) "cbb" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "tox_sensor"},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) "cbc" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) "cbd" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) -"cbe" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cbf" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cbg" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cbh" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/virology) -"cbi" = (/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Interior Airlock"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cbe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/engine/engineering) +"cbf" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/escape_pod5/station) +"cbg" = (/obj/machinery/power/apc{dir = 1; name = "Starboard Emergency Storage APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/emergency) +"cbh" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/shuttle/escape_pod5/station) +"cbi" = (/obj/structure/table,/obj/item/clothing/gloves/latex,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = -32},/obj/item/device/healthanalyzer,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) "cbj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology) -"cbk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/medical/virology) -"cbl" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Monkey Pen"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cbm" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/virology) -"cbn" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/virology) +"cbk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/storage/emergency) +"cbl" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"cbm" = (/obj/machinery/computer/curer,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"cbn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/maintenance{req_access_txt = "0"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "cbo" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/obj/machinery/shower{tag = "icon-shower (EAST)"; icon_state = "shower"; dir = 4},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) "cbp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cbq" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/toxins/xenobiology) @@ -5490,30 +5490,30 @@ "cbD" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/primary/aft) "cbE" = (/turf/simulated/floor{dir = 4; icon_state = "yellow"},/area/hallway/primary/aft) "cbF" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/break_room) -"cbG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/atmos) -"cbH" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor,/area/atmos) -"cbI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor,/area/atmos) +"cbG" = (/obj/effect/landmark/start{name = "Virologist"},/obj/structure/stool/bed/chair/office/light{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cbH" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cbI" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) "cbJ" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) "cbK" = (/obj/machinery/atmospherics/binary/pump{dir = 8},/turf/simulated/floor,/area/atmos) "cbL" = (/obj/machinery/atmospherics/pipe/simple{color = "yellow"; icon_state = "intact-y"; level = 2},/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/atmos) "cbM" = (/obj/machinery/atmospherics/trinary/filter{dir = 1; icon_state = "intact_on"; name = "Gas filter (Toxins tank)"; on = 1},/turf/simulated/floor,/area/atmos) "cbN" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/atmos) "cbO" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "tox_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "plasma floor"; nitrogen = 0; oxygen = 0; toxins = 70000},/area/atmos) -"cbP" = (/obj/machinery/atmospherics/pipe/vent{dir = 4},/turf/simulated/floor/plating/airless,/area) +"cbP" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 6; icon_state = "intact-r"; level = 2},/obj/machinery/power/apc{dir = 8; name = "Atmospherics APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/atmos) "cbQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/medical/virology) -"cbR" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cbS" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cbR" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = -1; pixel_y = -1; pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/item/weapon/hand_labeler,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"cbS" = (/obj/machinery/disease2/isolator,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) "cbT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cbU" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Break Room"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cbV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cbW" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "virology_airlock_exterior"; id_tag = "virology_airlock_control"; interior_door_tag = "virology_airlock_interior"; name = "Virology Access Console"; pixel_x = 8; pixel_y = 22},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cbX" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cbY" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cbZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "Virology APC"; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cca" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cbU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cbV" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cbW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cbX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/virology) +"cbY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/virology) +"cbZ" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Isolation A"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cca" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/virology) "ccb" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"ccc" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"ccd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"ccc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/virology) +"ccd" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Isolation B"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cce" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/disposaloutlet,/turf/simulated/floor/engine,/area/toxins/xenobiology) "ccf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/engine,/area/toxins/xenobiology) "ccg" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/engine,/area/toxins/xenobiology) @@ -5550,23 +5550,23 @@ "ccL" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/plating,/area/engine/break_room) "ccM" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/belt/utility,/turf/simulated/floor,/area/engine/break_room) "ccN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor,/area/engine/break_room) -"ccO" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor,/area/engine/break_room) -"ccP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/atmos) -"ccQ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor,/area/atmos) -"ccR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/portable_atmospherics/pump,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/atmos) +"ccO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) +"ccP" = (/obj/machinery/space_heater,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/atmos) +"ccQ" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor,/area/engine/break_room) +"ccR" = (/obj/structure/stool/bed/chair/comfy/black{dir = 4},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor,/area/engine/break_room) "ccS" = (/obj/machinery/atmospherics/binary/pump{dir = 0; icon_state = "intact_off"; name = "Port to Filter"; on = 0},/turf/simulated/floor,/area/atmos) "ccT" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/obj/structure/stool,/turf/simulated/floor,/area/atmos) "ccU" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 8; icon_state = "freezer_0"; tag = ""},/turf/simulated/floor,/area/atmos) "ccV" = (/obj/machinery/camera{c_tag = "Atmospherics Central"; dir = 8; network = list("SS13")},/turf/simulated/floor,/area/atmos) -"ccW" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"ccX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"ccY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/virology) -"ccZ" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cda" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cdb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cdc" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cdd" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cde" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"ccW" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"ccX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; frequency = 1439; icon_state = "off"; id_tag = null; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/machinery/light,/obj/structure/reagent_dispensers/virusfood{pixel_x = -30},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"ccY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/stool/bed/chair/office/light,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"ccZ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cda" = (/obj/machinery/disposal,/obj/machinery/light,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"cdb" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/storage/emergency) +"cdc" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cdd" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/vending/cigarette,/turf/simulated/floor,/area/engine/break_room) +"cde" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor,/area/engine/break_room) "cdf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cdg" = (/turf/simulated/floor/engine,/area/toxins/xenobiology) "cdh" = (/mob/living/carbon/slime,/turf/simulated/floor/engine,/area/toxins/xenobiology) @@ -5592,12 +5592,12 @@ "cdB" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/hallway/primary/aft) "cdC" = (/turf/simulated/wall,/area/engine/break_room) "cdD" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "Engineering Foyer APC"; pixel_x = -24},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/storage/hazardvest,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/clothing/suit/storage/hazardvest,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas{pixel_x = -3; pixel_y = -3},/turf/simulated/floor,/area/engine/break_room) -"cdE" = (/obj/structure/stool/bed/chair/comfy/black{dir = 4},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor,/area/engine/break_room) +"cdE" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) "cdF" = (/obj/structure/table,/turf/simulated/floor,/area/engine/break_room) -"cdG" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor,/area/engine/break_room) -"cdH" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos) -"cdI" = (/obj/machinery/space_heater,/turf/simulated/floor,/area/atmos) -"cdJ" = (/obj/machinery/space_heater,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/atmos) +"cdG" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line) +"cdH" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line) +"cdI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/engineering) +"cdJ" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line) "cdK" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/obj/item/weapon/cigbutt,/turf/simulated/floor,/area/atmos) "cdL" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 8; icon_state = "freezer_0"; tag = ""},/turf/simulated/floor,/area/atmos) "cdM" = (/obj/machinery/atmospherics/pipe/manifold{color = "yellow"; dir = 8; icon_state = "manifold-y"; level = 2},/turf/simulated/floor,/area/atmos) @@ -5607,15 +5607,15 @@ "cdQ" = (/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) "cdR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology) "cdS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/virology) -"cdT" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = -1; pixel_y = -1; pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/item/weapon/hand_labeler,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) -"cdU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cdV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cdW" = (/obj/machinery/disease2/isolator,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) -"cdX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/virology) -"cdY" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Isolation A"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cdZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/virology) -"cea" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/virology) -"ceb" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Isolation B"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cdT" = (/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cdU" = (/obj/structure/table,/obj/item/weapon/virusdish/random{pixel_x = -8; pixel_y = -5},/obj/item/weapon/virusdish/random{pixel_x = -2; pixel_y = 10},/obj/item/weapon/virusdish/random,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"cdV" = (/obj/machinery/disease2/incubator,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"cdW" = (/obj/machinery/conveyor_switch{id = "Skynet_heavy"},/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line) +"cdX" = (/obj/machinery/chem_master,/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) +"cdY" = (/obj/machinery/vending/cola,/turf/simulated/floor,/area/engine/break_room) +"cdZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/virology) +"cea" = (/turf/simulated/floor{icon_state = "red"; dir = 10},/area/atmos) +"ceb" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/atmos) "cec" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio3"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/toxins/xenobiology) "ced" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio3"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/toxins/xenobiology) "cee" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) @@ -5640,8 +5640,8 @@ "cex" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/stool/bed/chair/comfy/black{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cey" = (/obj/structure/table,/obj/item/weapon/folder/yellow,/turf/simulated/floor,/area/engine/break_room) "cez" = (/obj/effect/landmark/start{name = "Atmospheric Technician"},/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor,/area/engine/break_room) -"ceA" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor,/area/engine/break_room) -"ceB" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 6; icon_state = "intact-r"; level = 2},/obj/machinery/power/apc{dir = 8; name = "Atmospherics APC"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/atmos) +"ceA" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor,/area/engine/break_room) +"ceB" = (/obj/structure/disposalpipe/segment,/obj/machinery/disease2/diseaseanalyser,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) "ceC" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/atmos) "ceD" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) "ceE" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r"; level = 2},/turf/simulated/floor,/area/atmos) @@ -5651,10 +5651,10 @@ "ceI" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "co2_sensor"},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) "ceJ" = (/obj/machinery/portable_atmospherics/canister/carbon_dioxide,/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) "ceK" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) -"ceL" = (/obj/structure/table,/obj/item/clothing/gloves/latex,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = -32},/obj/item/device/healthanalyzer,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) -"ceM" = (/obj/effect/landmark/start{name = "Virologist"},/obj/structure/stool/bed/chair/office/light{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"ceN" = (/obj/machinery/computer/curer,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) -"ceO" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"ceL" = (/obj/machinery/computer/diseasesplicer,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"ceM" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 5; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) +"ceN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engine/engineering) +"ceO" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/light{dir = 1},/obj/item/weapon/cartridge/engineering{pixel_x = 3},/obj/item/weapon/cartridge/engineering{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cartridge/engineering{pixel_x = 4; pixel_y = 5},/turf/simulated/floor,/area/engine/engineering) "ceP" = (/obj/structure/reagent_dispensers/watertank,/obj/machinery/light{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) "ceQ" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "ceR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) @@ -5668,7 +5668,7 @@ "ceZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/assembly/assembly_line) "cfa" = (/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line) "cfb" = (/obj/machinery/atmospherics/unary/vent_pump{on = 0},/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line) -"cfc" = (/obj/machinery/conveyor_switch{id = "Skynet_heavy"},/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line) +"cfc" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/camera{c_tag = "Engineering Storage"; dir = 8; network = list("SS13")},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor,/area/engine/break_room) "cfd" = (/obj/machinery/constructable_frame/machine_frame,/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line) "cfe" = (/turf/simulated/floor/plating{desc = "
    There is some old writing on this floor. You are barely able to read out a few lines from a tangled scribble.

    In a chamber a great mirror lies, cut away it solemn cries. Travel bold as thou might, piercing vastness as a kite.

    HONK!
    "; name = "Old Note #6"},/area/assembly/assembly_line) "cff" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plating,/area/assembly/assembly_line) @@ -5681,16 +5681,16 @@ "cfm" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor,/area/engine/break_room) "cfn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/break_room) "cfo" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor,/area/engine/break_room) -"cfp" = (/obj/machinery/vending/cola,/turf/simulated/floor,/area/engine/break_room) +"cfp" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/wall/r_wall,/area/engine/break_room) "cfq" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/meter,/turf/simulated/floor,/area/atmos) "cfr" = (/obj/machinery/atmospherics/trinary/mixer{dir = 4; icon_state = "intact_on"; name = "Gas mixer (N2/O2)"; node1_concentration = 0.8; node2_concentration = 0.2; on = 1; pixel_x = 0; pixel_y = 0; target_pressure = 4500},/turf/simulated/floor,/area/atmos) "cfs" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/binary/pump{dir = 1; icon_state = "intact_off"; name = "O2 to Pure"; on = 0},/turf/simulated/floor,/area/atmos) "cft" = (/obj/machinery/atmospherics/trinary/filter{dir = 1; filter_type = 3; icon_state = "intact_on"; name = "Gas filter (CO2 tank)"; on = 1},/turf/simulated/floor,/area/atmos) "cfu" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/turf/simulated/floor{dir = 6; icon_state = "yellow"},/area/atmos) "cfv" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "co2_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine{carbon_dioxide = 50000; name = "co2 floor"; nitrogen = 0; oxygen = 0},/area/atmos) -"cfw" = (/obj/structure/table,/obj/item/weapon/virusdish/random{pixel_x = -8; pixel_y = -5},/obj/item/weapon/virusdish/random{pixel_x = -2; pixel_y = 10},/obj/item/weapon/virusdish/random,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) -"cfx" = (/obj/machinery/disease2/incubator,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) -"cfy" = (/obj/machinery/light{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cfw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/atmos) +"cfx" = (/obj/machinery/atmospherics/binary/pump{dir = 8; icon_state = "intact_on"; name = "Air to External"; on = 1},/turf/simulated/floor,/area/atmos) +"cfy" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor,/area/atmos) "cfz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/toxins/xenobiology) "cfA" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) "cfB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) @@ -5703,9 +5703,9 @@ "cfI" = (/turf/simulated/floor,/area/assembly/assembly_line) "cfJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/assembly/assembly_line) "cfK" = (/turf/simulated/floor{dir = 8; icon_state = "loadingarea"; tag = "loading"},/area/assembly/assembly_line) -"cfL" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line) -"cfM" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/obj/machinery/ai_status_display{pixel_y = -32},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line) -"cfN" = (/obj/machinery/conveyor{dir = 4; id = "Skynet_heavy"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/assembly/assembly_line) +"cfL" = (/obj/machinery/atmospherics/pipe/manifold{color = "cyan"; icon_state = "manifold-c"; level = 2},/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/atmos) +"cfM" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/atmos) +"cfN" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/engine/break_room) "cfO" = (/turf/simulated/floor{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/assembly/assembly_line) "cfP" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Assembly Line East"; dir = 1},/turf/simulated/floor,/area/assembly/assembly_line) "cfQ" = (/obj/structure/table,/obj/item/device/radio/intercom{dir = 1; name = "Station Intercom (General)"; pixel_y = -28},/turf/simulated/floor{icon_state = "floorgrime"},/area/assembly/assembly_line) @@ -5714,29 +5714,29 @@ "cfT" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cfU" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) "cfV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/engine/break_room) -"cfW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag,/turf/simulated/floor,/area/engine/break_room) +"cfW" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/pump,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "arrival"; dir = 8},/area/atmos) "cfX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/engine/break_room) "cfY" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/break_room) "cfZ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/stool/bed/chair/comfy/black{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cga" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/break_room) -"cgb" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor,/area/engine/break_room) +"cgb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) "cgc" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/break_room) -"cgd" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/vending/cigarette,/turf/simulated/floor,/area/engine/break_room) -"cge" = (/obj/machinery/camera{c_tag = "Atmospherics South West"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) +"cgd" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 4; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/atmos) +"cge" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_exterior"; locked = 1; name = "Virology Exterior Airlock"; req_access_txt = "39"},/obj/machinery/access_button{command = "cycle_exterior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; pixel_y = 0; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cgf" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/atmos) -"cgg" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; frequency = 1439; icon_state = "off"; id_tag = null; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/table,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/machinery/light,/obj/structure/reagent_dispensers/virusfood{pixel_x = -30},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) -"cgh" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cgi" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/stool/bed/chair/office/light,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cgj" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cgk" = (/obj/machinery/disposal,/obj/machinery/light,/obj/structure/sign/deathsposal{pixel_x = 0; pixel_y = -32},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"cgg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock{name = "Starboard Emergency Storage"; req_access_txt = "0"},/turf/simulated/floor/plating,/area/storage/emergency) +"cgh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/exit) +"cgi" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"cgj" = (/obj/machinery/light/small{dir = 8},/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"cgk" = (/obj/machinery/atmospherics/binary/pump{dir = 4; icon_state = "intact_on"; name = "External to Filter"; on = 1},/turf/simulated/floor,/area/atmos) "cgl" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology) "cgm" = (/obj/structure/table,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) -"cgn" = (/obj/structure/closet/secure_closet/personal/patient,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cgn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) "cgo" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio2"; name = "Containment Blast Doors"; opacity = 0},/obj/machinery/door/window/northleft{base_state = "right"; dir = 8; icon_state = "right"; name = "Containment Pen"; req_access_txt = "55"},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cgp" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cgq" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/storage/box/beakers{pixel_x = -1; pixel_y = -1; pixel_x = 2; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cgr" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/weapon/storage/box/syringes,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"cgs" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Scientist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"cgs" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Xenobiologist"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cgt" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cgu" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard) "cgv" = (/turf/simulated/floor/plating/airless,/area/solar/starboard) @@ -5747,13 +5747,13 @@ "cgA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/maintenance/aft) "cgB" = (/obj/structure/sign/securearea,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/engine/break_room) "cgC" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/break_room) -"cgD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/engine/break_room) -"cgE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/break_room) -"cgF" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/break_room) -"cgG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/engine/break_room) -"cgH" = (/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/break_room) -"cgI" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/break_room) -"cgJ" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 5; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) +"cgD" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 24; pixel_y = 4; req_access_txt = "24"},/turf/simulated/floor,/area/atmos) +"cgE" = (/obj/structure/closet/secure_closet/engineering_welding,/turf/simulated/floor,/area/engine/break_room) +"cgF" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Chief Engineer"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cgG" = (/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cgH" = (/obj/machinery/atmospherics/portables_connector{dir = 1; name = "Connector Port (Air Supply)"},/obj/machinery/light_switch{pixel_x = -27},/turf/simulated/floor,/area/atmos) +"cgI" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/floor/plating,/area/atmos) +"cgJ" = (/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 6; icon_state = "caution"},/area/hallway/primary/aft) "cgK" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) "cgL" = (/obj/machinery/atmospherics/trinary/filter{dir = 4; filter_type = 2; icon_state = "intact_on"; name = "Gas filter (N2 tank)"; on = 1},/turf/simulated/floor,/area/atmos) "cgM" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; level = 2},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"; level = 2},/turf/simulated/floor,/area/atmos) @@ -5762,8 +5762,8 @@ "cgP" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 4; icon_state = "intact-g"; initialize_directions = 12; level = 2},/turf/simulated/floor,/area/atmos) "cgQ" = (/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 9; icon_state = "intact-g"; level = 2},/turf/simulated/floor,/area/atmos) "cgR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 9; icon_state = "intact-c"; level = 2},/turf/simulated/floor/plating,/area/atmos) -"cgS" = (/obj/machinery/computer/diseasesplicer,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) -"cgT" = (/obj/structure/disposalpipe/segment,/obj/machinery/disease2/diseaseanalyser,/turf/simulated/floor{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) +"cgS" = (/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/crowbar,/obj/machinery/computer/security/telescreen{desc = "Used for watching the singularity chamber."; dir = 8; layer = 4; name = "Singularity Engine Telescreen"; network = list("Singularity"); pixel_x = -30; pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) +"cgT" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "virology_airlock"; name = "exterior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cgU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology) "cgV" = (/obj/structure/table/reinforced,/obj/machinery/door_control{id = "xenobio2"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) "cgW" = (/obj/structure/stool/bed/chair{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) @@ -5800,8 +5800,8 @@ "chB" = (/obj/machinery/camera{c_tag = "Engineering Access"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/vending/engivend,/turf/simulated/floor,/area/engine/break_room) "chC" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/vending/tool,/turf/simulated/floor,/area/engine/break_room) "chD" = (/obj/machinery/constructable_frame/machine_frame,/turf/simulated/floor,/area/engine/break_room) -"chE" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor,/area/engine/break_room) -"chF" = (/turf/simulated/floor{icon_state = "red"; dir = 10},/area/atmos) +"chE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"chF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "chG" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "n2_in"; name = "Nitrogen Supply Control"; output_tag = "n2_out"; sensors = list("n2_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/turf/simulated/floor{icon_state = "red"},/area/atmos) "chH" = (/obj/machinery/atmospherics/valve/digital{name = "Nitrogen Outlet Valve"; openDuringInit = 1},/turf/simulated/floor{icon_state = "red"; dir = 6},/area/atmos) "chI" = (/obj/machinery/light,/turf/simulated/floor,/area/atmos) @@ -5811,11 +5811,11 @@ "chM" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"; level = 2},/turf/simulated/floor{icon_state = "arrival"; dir = 10},/area/atmos) "chN" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1443; input_tag = "air_in"; name = "Mixed Air Supply Control"; output_tag = "air_out"; pressure_setting = 2000; sensors = list("air_sensor" = "Tank")},/turf/simulated/floor{icon_state = "arrival"},/area/atmos) "chO" = (/obj/machinery/camera{c_tag = "Atmospherics South East"; dir = 1},/obj/machinery/atmospherics/valve/digital{name = "Mixed Air Outlet Valve"; openDuringInit = 1},/turf/simulated/floor{icon_state = "arrival"; dir = 6},/area/atmos) -"chP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/medical/virology) +"chP" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "chQ" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/light{dir = 8},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/toxins/xenobiology) "chR" = (/obj/structure/table,/obj/item/weapon/storage/box/monkeycubes,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "chS" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/item/stack/sheet/mineral/plasma{amount = 5; layer = 2.9},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"chT" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) +"chT" = (/obj/machinery/atmospherics/pipe/manifold{tag = "icon-manifold-r (EAST)"; icon_state = "manifold-r"; dir = 4; level = 2; color = "red"},/turf/simulated/floor,/area/atmos) "chU" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/toxins/xenobiology) "chV" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor{tag = "icon-whitehall (WEST)"; icon_state = "whitehall"; dir = 8},/area/toxins/xenobiology) "chW" = (/obj/structure/cable,/obj/machinery/power/solar{id = "starboardsolar"; name = "Starboard Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/starboard) @@ -5835,12 +5835,12 @@ "cik" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/engine/engineering) "cil" = (/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "cim" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/engine/chiefs_office) -"cin" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/engine/chiefs_office) -"cio" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/chiefs_office) -"cip" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/engine/chiefs_office) +"cin" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 6; icon_state = "intact-c"; initialize_directions = 6; level = 2},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/atmos) +"cio" = (/obj/structure/table,/obj/item/device/t_scanner,/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"cip" = (/obj/structure/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/turf/simulated/floor/plating,/area/maintenance/asmaint) "ciq" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor,/area/engine/break_room) -"cir" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/camera{c_tag = "Engineering Storage"; dir = 8; network = list("SS13")},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor,/area/engine/break_room) -"cis" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/wall/r_wall,/area/engine/break_room) +"cir" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/atmos) +"cis" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/atmos) "cit" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/atmos) "ciu" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple{tag = "icon-intact-g (SOUTHEAST)"; icon_state = "intact-g"; dir = 6; level = 2; color = "green"},/turf/simulated/floor/plating,/area/atmos) "civ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple{color = "green"; dir = 9; icon_state = "intact-g"; level = 2},/turf/simulated/floor/plating,/area/atmos) @@ -5874,7 +5874,7 @@ "ciX" = (/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/aft) "ciY" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/table,/obj/item/weapon/book/manual/engineering_hacking{pixel_x = 3; pixel_y = 3},/obj/item/weapon/book/manual/engineering_construction,/turf/simulated/floor,/area/engine/engineering) "ciZ" = (/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_y = 30},/obj/structure/table,/obj/item/weapon/book/manual/engineering_guide,/obj/item/weapon/book/manual/engineering_particle_accelerator{pixel_y = 6},/obj/item/weapon/book/manual/engineering_singularity_safety,/turf/simulated/floor,/area/engine/engineering) -"cja" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/light{dir = 1},/obj/item/weapon/cartridge/engineering{pixel_x = 3},/obj/item/weapon/cartridge/engineering{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cartridge/engineering{pixel_x = 4; pixel_y = 5},/turf/simulated/floor,/area/engine/engineering) +"cja" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/wall/r_wall,/area/atmos) "cjb" = (/obj/structure/table,/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/glasses/welding,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/turf/simulated/floor,/area/engine/engineering) "cjc" = (/obj/machinery/computer/station_alert,/turf/simulated/floor,/area/engine/engineering) "cjd" = (/obj/machinery/alarm{pixel_x = 0; pixel_y = 24},/obj/machinery/computer/atmos_alert,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/engineering) @@ -5887,10 +5887,10 @@ "cjk" = (/obj/machinery/newscaster{pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cjl" = (/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 10; pixel_y = 24; req_access_txt = "24"},/obj/machinery/door_control{desc = "A remote control-switch for the engineering security doors."; id = "Engineering"; name = "Engineering Lockdown"; pixel_x = -10; pixel_y = 24; req_access_txt = "10"},/obj/machinery/door_control{desc = "A remote control-switch for secure storage."; id = "Secure Storage"; name = "Engineering Secure Storage"; pixel_x = 0; pixel_y = 24; req_access_txt = "11"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cjm" = (/obj/machinery/computer/atmos_alert,/obj/machinery/alarm{pixel_y = 24},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cjn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"cjn" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/atmos,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/atmos,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor,/area/atmos) "cjo" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor,/area/engine/break_room) "cjp" = (/obj/effect/landmark{name = "lightsout"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/engine/break_room) -"cjq" = (/obj/structure/table,/obj/item/stack/rods{amount = 50},/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor,/area/engine/break_room) +"cjq" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/atmos) "cjr" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{color = "green"; icon_state = "intact-g"; level = 2},/turf/space,/area) "cjs" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{color = "yellow"; icon_state = "intact-y"; level = 2},/turf/space,/area) "cjt" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple{color = "cyan"; icon_state = "intact-c"; level = 2},/turf/space,/area) @@ -5912,19 +5912,19 @@ "cjJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/engine/engineering) "cjK" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/engineering) "cjL" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"cjM" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"cjN" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"cjO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/chiefs_office) -"cjP" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/rig/elite,/obj/item/clothing/shoes/magboots,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/elite,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cjQ" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cjR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cjS" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Chief Engineer"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cjT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/computer/station_alert,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cjU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/chiefs_office) -"cjV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/closet/secure_closet/engineering_welding,/turf/simulated/floor,/area/engine/break_room) +"cjM" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"cjN" = (/obj/machinery/computer/station_alert,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cjO" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) +"cjP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"cjQ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/suit/space/rig/elite,/obj/item/clothing/shoes/magboots,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/elite,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cjR" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cjS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"cjT" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/engineering) +"cjU" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 9; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/engine/break_room) +"cjV" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/stamp/ce,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cjW" = (/obj/structure/table,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/cable_coil,/obj/item/weapon/cable_coil,/turf/simulated/floor,/area/engine/break_room) -"cjX" = (/obj/structure/table,/obj/item/device/radio/off{pixel_y = 6},/obj/item/device/radio/off{pixel_x = 6; pixel_y = 4},/obj/item/device/radio/off{pixel_x = -6; pixel_y = 4},/obj/item/device/radio/off,/turf/simulated/floor,/area/engine/break_room) -"cjY" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/engine/break_room) +"cjX" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cjY" = (/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cjZ" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter,/turf/simulated/wall/r_wall,/area/atmos) "cka" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter{frequency = 1443; id = "mair_in_meter"; name = "Mixed Air Tank In"},/turf/simulated/wall/r_wall,/area/atmos) "ckb" = (/obj/machinery/atmospherics/pipe/simple,/obj/structure/grille,/obj/machinery/meter{frequency = 1443; id = "mair_out_meter"; name = "Mixed Air Tank Out"},/turf/simulated/wall/r_wall,/area/atmos) @@ -5941,21 +5941,21 @@ "ckm" = (/obj/effect/decal/cleanable/oil,/turf/simulated/floor/plating,/area/maintenance/aft) "ckn" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering) "cko" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/engine/engineering) -"ckp" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/floor,/area/engine/engineering) +"ckp" = (/obj/machinery/light/small{dir = 1},/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "ckq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/chiefs_office) "ckr" = (/obj/structure/closet/secure_closet/engineering_chief{req_access_txt = "0"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cks" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "ckt" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/clothing/glasses/meson{pixel_y = 4},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cku" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/table/reinforced,/obj/item/weapon/folder/yellow,/obj/item/weapon/stamp/ce,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cku" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "ckv" = (/obj/structure/table/reinforced,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/pen,/obj/item/weapon/lighter/zippo,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"ckw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/chiefs_office) +"ckw" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "ckx" = (/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor,/area/engine/break_room) "cky" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/engine/break_room) "ckz" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/break_room) "ckA" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/item/weapon/storage/belt/utility,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/break_room) -"ckB" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/weapon/storage/belt/utility,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/break_room) -"ckC" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/break_room) -"ckD" = (/obj/structure/sign/pods{pixel_x = 32; pixel_y = 0},/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/engine/break_room) +"ckB" = (/obj/structure/table,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating,/area/storage/emergency) +"ckC" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/closet/l3closet,/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/virology) +"ckD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "ckE" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1441; icon_state = "on"; id = "n2_in"; on = 1},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "ckF" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "ckG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "n2_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) @@ -5977,19 +5977,19 @@ "ckW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "ckX" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "ckY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/toxins/xenobiology) -"ckZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/aft) -"cla" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/aft) -"clb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/aft) +"ckZ" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/structure/closet/fireaxecabinet{pixel_y = -32},/obj/machinery/space_heater,/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/atmos) +"cla" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/obj/machinery/space_heater,/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/atmos) +"clb" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/atmos) "clc" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/aft) "cld" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) "cle" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor,/area/engine/engineering) "clf" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/engine/engineering) -"clg" = (/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{amount = 30},/turf/simulated/floor,/area/engine/engineering) +"clg" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/structure/table,/obj/item/clothing/head/welding{pixel_x = 1; pixel_x = -5; pixel_y = 3},/obj/item/stack/sheet/glass{amount = 50},/obj/item/clothing/head/welding{pixel_x = 0; pixel_x = -5; pixel_y = 3},/obj/item/clothing/glasses/welding,/turf/simulated/floor,/area/atmos) "clh" = (/turf/simulated/wall,/area/engine/chiefs_office) "cli" = (/obj/machinery/camera{c_tag = "Chief Engineer's Office"; dir = 4; network = list("SS13")},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = -30; pixel_y = 0},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "clj" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "clk" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cll" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cll" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/weapon/wrench,/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 9; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/atmos) "clm" = (/obj/machinery/power/apc{dir = 4; name = "CE Office APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cln" = (/obj/structure/closet/wardrobe/atmospherics_yellow,/turf/simulated/floor,/area/engine/break_room) "clo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/table,/obj/item/device/t_scanner,/obj/item/device/radio/headset/headset_eng,/obj/item/device/multitool{pixel_x = 5},/turf/simulated/floor,/area/engine/break_room) @@ -6011,22 +6011,22 @@ "clE" = (/obj/machinery/light,/obj/structure/closet,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/toxins/xenobiology) "clF" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door_control{id = "xenobio6"; name = "Containment Blast Doors"; pixel_x = 0; pixel_y = 4; req_access_txt = "55"},/obj/machinery/door_control{desc = "A remote control-switch for a door to space."; id = "xenobioout6"; name = "Containment Release Switch"; pixel_x = 24; pixel_y = 4; req_access = "55"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/toxins/xenobiology) "clG" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/solar/starboard) -"clH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/aft) +"clH" = (/obj/structure/table,/obj/item/device/t_scanner,/obj/item/device/multitool{pixel_x = 5},/obj/item/device/radio/headset/headset_eng,/obj/item/weapon/cartridge/atmos,/obj/item/weapon/cartridge/atmos,/turf/simulated/floor,/area/atmos) "clI" = (/obj/structure/stool,/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/aft) -"clJ" = (/obj/machinery/door/airlock/maintenance{name = "Engineering Maintainance"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor/plating,/area/engine/engineering) -"clK" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor,/area/engine/engineering) -"clL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/chiefs_office) -"clM" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/chiefs_office) -"clN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) -"clO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"clJ" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/maintenance{name = "Engineering Maintainance"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor/plating,/area/engine/engineering) +"clK" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor{icon_state = "arrival"; dir = 8},/area/atmos) +"clL" = (/obj/machinery/camera{c_tag = "Atmospherics Access"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 6; icon_state = "intact-r"; level = 2},/turf/simulated/floor,/area/engine/break_room) +"clM" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/atmos) +"clN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"clO" = (/obj/machinery/space_heater,/obj/structure/sign/atmosplaque{pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/atmos) "clP" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/engine/chiefs_office) "clQ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/engine/break_room) -"clR" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) -"clS" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/engine/break_room) +"clR" = (/obj/structure/closet/emcloset,/obj/machinery/camera/xray{c_tag = "Virology Access"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/medical/virology) +"clS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "clT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/break_room) "clU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/break_room) -"clV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/engine/break_room) -"clW" = (/obj/machinery/door/airlock/external{name = "Engineering Escape Pod"; req_access = null; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor/plating,/area/engine/break_room) +"clV" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/turf/simulated/floor{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology) +"clW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/atmos) "clX" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "clY" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) "clZ" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) @@ -6040,23 +6040,23 @@ "cmh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/toxins/xenobiology) "cmi" = (/obj/machinery/door/window/southright{name = "Containment Pen"; req_access_txt = "47"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cmj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/toxins/xenobiology) -"cmk" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/aft) +"cmk" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/atmos) "cml" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/aft) "cmm" = (/obj/machinery/camera{c_tag = "Engineering West"; dir = 4; network = list("SS13")},/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/turf/simulated/floor,/area/engine/engineering) "cmn" = (/obj/machinery/light,/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/turf/simulated/floor,/area/engine/engineering) "cmo" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig,/turf/simulated/floor,/area/engine/engineering) "cmp" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor,/area/engine/engineering) -"cmq" = (/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/engine/engineering) +"cmq" = (/obj/machinery/camera{c_tag = "Atmospherics West"; dir = 4; network = list("SS13")},/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/atmos) "cmr" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/engineering) "cms" = (/obj/machinery/camera{c_tag = "Engineering East"},/obj/machinery/computer/security/telescreen{desc = "Used for watching the singularity chamber."; dir = 8; layer = 4; name = "Singularity Engine Telescreen"; network = list("Singularity"); pixel_x = 0; pixel_y = 30},/turf/simulated/floor,/area/engine/engineering) -"cmt" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 0; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/engineering) +"cmt" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/medical/virology) "cmu" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{dir = 1; icon_state = "yellow"},/area/engine/engineering) "cmv" = (/turf/simulated/wall,/area/engine/engineering) -"cmw" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engine/engineering) -"cmx" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) -"cmy" = (/obj/machinery/power/smes,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engine/engineering) -"cmz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/break_room) -"cmA" = (/turf/simulated/floor/plating,/area/engine/break_room) +"cmw" = (/obj/machinery/door/airlock/medical{autoclose = 0; frequency = 1449; icon_state = "door_locked"; id_tag = "virology_airlock_interior"; locked = 1; name = "Virology Interior Airlock"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cmx" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Monkey Pen"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cmy" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/medical/virology) +"cmz" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cmA" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cmB" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/engine,/area/toxins/xenobiology) "cmC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/solar/starboard) "cmD" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/starboard) @@ -6064,49 +6064,49 @@ "cmF" = (/obj/machinery/power/smes,/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor,/area/engine/engineering) "cmG" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/engine/engineering) "cmH" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"cmI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"cmI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cmJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cmK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/engineering) +"cmK" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cmL" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/engine/engineering) "cmM" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/engineering) -"cmN" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) +"cmN" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cmO" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/engine/engineering) -"cmP" = (/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = "11;24"},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/engine/engineering) -"cmQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) -"cmR" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) -"cmS" = (/obj/machinery/power/smes,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) -"cmT" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/break_room) -"cmU" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/engine/break_room) -"cmV" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/escape_pod5/station) -"cmW" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/shuttle/escape_pod5/station) +"cmP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/chiefs_office) +"cmQ" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/virology) +"cmR" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/machinery/light/small,/turf/simulated/floor{dir = 8; icon_state = "escape"},/area/atmos) +"cmS" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/atmos,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/atmos,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/atmos) +"cmT" = (/obj/machinery/vending/coffee,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/atmos) +"cmU" = (/obj/structure/closet/l3closet,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology) +"cmV" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/access_button{command = "cycle_interior"; master_tag = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = 8; pixel_y = -28; req_access_txt = "39"},/turf/simulated/floor{dir = 10; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology) +"cmW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/simulated/wall,/area/medical/virology) "cmX" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/shuttle/escape_pod5/station) "cmY" = (/obj/machinery/light/small{dir = 8},/obj/structure/disposalpipe/segment,/turf/simulated/floor/engine,/area/toxins/xenobiology) -"cmZ" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Engineering Secure Storage"; dir = 4; network = list("SS13")},/obj/machinery/shield_capacitor,/turf/simulated/floor/plating,/area/engine/engineering) -"cna" = (/obj/machinery/shield_capacitor,/turf/simulated/floor/plating,/area/engine/engineering) -"cnb" = (/obj/effect/landmark{name = "blobstart"},/obj/machinery/shieldgen,/turf/simulated/floor/plating,/area/engine/engineering) -"cnc" = (/obj/machinery/shieldgen,/turf/simulated/floor/plating,/area/engine/engineering) +"cmZ" = (/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cna" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cnb" = (/obj/machinery/light{dir = 1},/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cnc" = (/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 29},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/camera{c_tag = "Virology Break Room"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cnd" = (/obj/machinery/camera{c_tag = "Engine West"; dir = 4; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/dispenser,/turf/simulated/floor,/area/engine/engineering) "cne" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"cnf" = (/obj/machinery/camera{c_tag = "Engine West"; dir = 8; network = list("SS13")},/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor,/area/engine/engineering) +"cnf" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/engine/engineering) "cng" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engine/engineering) "cnh" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/plating,/area/engine/engineering) "cni" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) -"cnj" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = "11;24"},/turf/simulated/floor/plating,/area/engine/engineering) +"cnj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "cnk" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) "cnl" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/engine/engineering) "cnm" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall/r_wall,/area/engine/engineering) -"cnn" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/engine/engineering) +"cnn" = (/obj/structure/table,/obj/item/weapon/cartridge/engineering{pixel_x = 3},/obj/item/weapon/cartridge/engineering{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cartridge/engineering{pixel_x = 4; pixel_y = 5},/turf/simulated/floor,/area/engine/engineering) "cno" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"cnp" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor,/area/engine/engineering) -"cnq" = (/obj/machinery/power/smes,/obj/structure/cable,/turf/simulated/floor,/area/engine/engineering) -"cnr" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/engine/break_room) +"cnp" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cnq" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/oxygen,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/breath,/turf/simulated/floor/plating,/area/storage/emergency) +"cnr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor,/area/engine/break_room) "cns" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape_pod5/station) -"cnt" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod5/station) -"cnu" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/shuttle/floor,/area/shuttle/escape_pod5/station) +"cnt" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/portable_atmospherics/pump,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/atmos) +"cnu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/chiefs_office) "cnv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/escape_pod5/station) "cnw" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cnx" = (/obj/structure/lattice,/obj/structure/grille,/obj/structure/lattice,/turf/space,/area) -"cny" = (/obj/machinery/shield_gen,/turf/simulated/floor/plating,/area/engine/engineering) +"cny" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 30; pixel_y = 0},/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor,/area/engine/engineering) "cnz" = (/turf/simulated/floor/plating,/area/engine/engineering) "cnA" = (/obj/machinery/door/poddoor{id = "Secure Storage"; name = "Secure Storage"},/turf/simulated/floor/plating,/area/engine/engineering) "cnB" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor,/area/engine/engineering) @@ -6114,38 +6114,38 @@ "cnD" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) "cnE" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/engine/engineering) "cnF" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) -"cnG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) +"cnG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/break_room) "cnH" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/camera{c_tag = "Engineering Center"; dir = 2; pixel_x = 23},/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "cnI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/engine/engineering) "cnJ" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/engine/engineering) -"cnK" = (/obj/structure/closet/radiation,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/light/small{dir = 8},/turf/simulated/floor{dir = 9; icon_state = "yellow"},/area/engine/engineering) -"cnL" = (/obj/machinery/camera{c_tag = "Engineering SMES"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor,/area/engine/engineering) -"cnM" = (/turf/simulated/floor/plating,/obj/structure/shuttle/engine/propulsion/burst{dir = 4},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/escape_pod5/station) -"cnN" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/shuttle/escape_pod5/station) +"cnK" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/atmos) +"cnL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor,/area/atmos) +"cnM" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cnN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) "cnO" = (/obj/machinery/door/poddoor{desc = "By gods, release the hounds!"; id = "xenobioout6"; name = "Containment Release"},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cnP" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cnQ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cnR" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cnS" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cnT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"cnU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engine/engineering) +"cnU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/break_room) "cnV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) "cnW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cnX" = (/obj/structure/particle_accelerator/end_cap,/turf/simulated/floor/plating,/area/engine/engineering) "cnY" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/engine/engineering) "cnZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) "coa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"cob" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/engine/engineering) -"coc" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"cod" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"coe" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor,/area/engine/engineering) -"cof" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; dir = 10; pixel_x = 0; level = 2; initialize_directions = 10},/turf/simulated/wall/r_wall,/area/engine/engineering) +"cob" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/break_room) +"coc" = (/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/chiefs_office) +"cod" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/break_room) +"coe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cof" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cog" = (/turf/simulated/floor/plating/airless,/area/engine/engineering) "coh" = (/turf/simulated/floor/plating/airless,/area/toxins/xenobiology) "coi" = (/obj/structure/cable,/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless,/area/solar/starboard) "coj" = (/obj/machinery/the_singularitygen{anchored = 0},/turf/simulated/floor/plating,/area/engine/engineering) -"cok" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating,/area/engine/engineering) -"col" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/engineering) +"cok" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/break_room) +"col" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 0; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/engine/engineering) "com" = (/obj/machinery/power/emitter,/turf/simulated/floor/plating,/area/engine/engineering) "con" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) "coo" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_west_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) @@ -6159,31 +6159,31 @@ "cow" = (/obj/structure/particle_accelerator/fuel_chamber,/turf/simulated/floor/plating,/area/engine/engineering) "cox" = (/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "10"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) "coy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "10"},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) -"coz" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) +"coz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "coA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) "coB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) -"coC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) -"coD" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_east_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) -"coE" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_aux_airlock"; name = "exterior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "13"},/turf/simulated/floor,/area/engine/engineering) -"coF" = (/obj/machinery/atmospherics/pipe/manifold{dir = 8; icon_state = "manifold"; level = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_aux_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"; req_one_access_txt = "11;24"},/turf/simulated/floor/plating,/area/engine/engineering) -"coG" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "engineering_aux_pump"},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor/plating,/area/engine/engineering) -"coH" = (/obj/machinery/light/small,/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_aux_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/plating,/area/engine/engineering) -"coI" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "engineering_aux_pump"; exterior_door_tag = "engineering_aux_outer"; frequency = 1379; id_tag = "engineering_aux_airlock"; interior_door_tag = "engineering_aux_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = "10;13"; sensor_tag = "engineering_aux_sensor"},/turf/simulated/floor/plating,/area/engine/engineering) -"coJ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_aux_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"; req_one_access_txt = "11;24"},/turf/simulated/floor/plating,/area/engine/engineering) -"coK" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_aux_airlock"; name = "exterior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"coC" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"coD" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/engine/engineering) +"coE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/virology) +"coF" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"coG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/atmos) +"coH" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor,/area/atmos) +"coI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor,/area/atmos) +"coJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/engine/engineering) +"coK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "coL" = (/obj/machinery/field_generator,/turf/simulated/floor/plating,/area/engine/engineering) "coM" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall,/area/engine/engineering) "coN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_west_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/engineering) "coO" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering) "coP" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"coQ" = (/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/crowbar,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) +"coQ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/engine/engineering) "coR" = (/obj/structure/stool,/turf/simulated/floor,/area/engine/engineering) "coS" = (/obj/structure/particle_accelerator/power_box,/turf/simulated/floor/plating,/area/engine/engineering) "coT" = (/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/engine/engineering) "coU" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) "coV" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_east_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"coW" = (/obj/machinery/atmospherics/pipe/simple{icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) -"coX" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"; pixel_x = -32},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"coW" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"coX" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "coY" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "engineering_west_pump"},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor/plating,/area/engine/engineering) "coZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/turf/simulated/floor/plating,/area/engine/engineering) "cpa" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/engine/engineering) @@ -6198,7 +6198,7 @@ "cpj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) "cpk" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/engine/engineering) "cpl" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"cpm" = (/obj/machinery/light/small{dir = 4},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor/plating,/area/engine/engineering) +"cpm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 1; name = "Virology APC"; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cpn" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "engineering_west_pump"; exterior_door_tag = "engineering_west_outer"; frequency = 1379; id_tag = "engineering_west_airlock"; interior_door_tag = "engineering_west_inner"; pixel_x = 25; req_access_txt = "10;13"; sensor_tag = "engineering_west_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_west_sensor"; pixel_x = 25; pixel_y = 12},/turf/simulated/floor/plating,/area/engine/engineering) "cpo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) "cpp" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) @@ -6210,8 +6210,8 @@ "cpv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) "cpw" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/engineering) "cpx" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "engineering_east_pump"; exterior_door_tag = "engineering_east_outer"; frequency = 1379; id_tag = "engineering_east_airlock"; interior_door_tag = "engineering_east_inner"; pixel_x = -25; req_access_txt = "10;13"; sensor_tag = "engineering_east_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_east_sensor"; pixel_x = -25; pixel_y = 12},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) -"cpy" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "engineering_east_pump"},/turf/simulated/floor/plating,/area/engine/engineering) -"cpz" = (/obj/machinery/atmospherics/pipe/simple{dir = 9; icon_state = "intact"; level = 2},/turf/simulated/wall/r_wall,/area/engine/engineering) +"cpy" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"cpz" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "cpA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_west_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/engineering) "cpB" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/airless,/area) "cpC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless,/area) @@ -6347,11 +6347,11 @@ "csc" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/source_emptycourt) "csd" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/source_emptycourt) "cse" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew13,/area) -"csf" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew7,/area) -"csg" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew8,/area) +"csf" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor,/area/engine/engineering) +"csg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/engine/engineering) "csh" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew9,/area) "csi" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew10,/area) -"csj" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew3,/area) +"csj" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "virology_airlock_exterior"; id_tag = "virology_airlock_control"; interior_door_tag = "virology_airlock_interior"; name = "Virology Access Console"; pixel_x = 8; pixel_y = 22},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) "csk" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area) "csl" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area) "csm" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 8; name = "thrower_escapeshuttletop(left)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns6,/area) @@ -6363,11 +6363,11 @@ "css" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns13,/area) "cst" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns10,/area) "csu" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area) -"csv" = (/turf/space/transit/east/shuttlespace_ew2,/area/shuttle/escape_pod5/transit) -"csw" = (/turf/space/transit/east/shuttlespace_ew3,/area/shuttle/escape_pod5/transit) -"csx" = (/turf/space/transit/east/shuttlespace_ew4,/area/shuttle/escape_pod5/transit) -"csy" = (/turf/space/transit/east/shuttlespace_ew5,/area/shuttle/escape_pod5/transit) -"csz" = (/obj/effect/step_trigger/thrower{direction = 1; name = "thrower_throwup"; nostop = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew13,/area) +"csv" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"csw" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/medical{name = "Break Room"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"csx" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"csy" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"csz" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/engine/engineering) "csA" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; tiles = 0},/turf/space/transit/north/shuttlespace_ns9,/area) "csB" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape/transit) "csC" = (/turf/space/transit/north/shuttlespace_ns3,/area/shuttle/escape/transit) @@ -6377,11 +6377,9 @@ "csG" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape/transit) "csH" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape/transit) "csI" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns1,/area) -"csJ" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew2,/area) -"csK" = (/turf/space/transit/east/shuttlespace_ew14,/area/shuttle/escape_pod5/transit) -"csL" = (/turf/space/transit/east/shuttlespace_ew15,/area/shuttle/escape_pod5/transit) -"csM" = (/turf/space/transit/east/shuttlespace_ew1,/area/shuttle/escape_pod5/transit) -"csN" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew7,/area) +"csJ" = (/obj/machinery/atmospherics/pipe/vent{dir = 4},/turf/simulated/floor/plating/airless,/area) +"csK" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/break_room) +"csL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/break_room) "csO" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns5,/area) "csP" = (/turf/space/transit/north/shuttlespace_ns2,/area/shuttle/escape/transit) "csQ" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape/transit) @@ -6389,7 +6387,7 @@ "csS" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape/transit) "csT" = (/turf/space/transit/north/shuttlespace_ns15,/area/shuttle/escape/transit) "csU" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns4,/area) -"csV" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdown"; stopper = 0; tiles = 0},/turf/space/transit/east/shuttlespace_ew12,/area) +"csV" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/camera{c_tag = "Engine West"; dir = 8; network = list("SS13")},/turf/simulated/floor,/area/engine/engineering) "csW" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_emptycourt) "csX" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_emptycourt) "csY" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_emptycourt) @@ -6400,7 +6398,6 @@ "ctd" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew15,/area) "cte" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew4,/area) "ctf" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew5,/area) -"ctg" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; name = "thrower_leftnostop"},/turf/space/transit/east/shuttlespace_ew6,/area) "cth" = (/turf/unsimulated/wall{tag = "icon-iron3"; icon_state = "iron3"},/area) "cti" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/wall{tag = "icon-iron12"; icon_state = "iron12"},/area) "ctj" = (/turf/unsimulated/wall,/area) @@ -6741,7 +6738,7 @@ "czG" = (/obj/structure/table,/obj/item/weapon/paper_bin,/turf/simulated/shuttle/floor,/area/centcom/evac) "czH" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "czI" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"czJ" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "synd_outer"; locked = 1; name = "Ship External Access"; req_access = null; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) +"czJ" = (/obj/structure/closet/syndicate/personal,/obj/item/clothing/tie/storage/brown_vest,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "czK" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_station/start) "czL" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/turf/unsimulated/floor{dir = 1; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; tag = "icon-gravsnow_corner (WEST)"},/area/syndicate_station/start) "czM" = (/turf/unsimulated/floor{icon = 'icons/turf/snow.dmi'; icon_state = "snow"},/turf/unsimulated/floor{tag = "icon-gravsnow_corner (NORTHEAST)"; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow_corner"; dir = 5},/area/syndicate_mothership) @@ -6760,7 +6757,7 @@ "czZ" = (/turf/simulated/floor/wood{tag = "icon-wood-broken6"; icon_state = "wood-broken6"},/area/syndicate_mothership) "cAa" = (/obj/machinery/door/window{dir = 4; name = "Equipment Room"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAb" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1331; master_tag = "synd_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cAc" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "synd_inner"; locked = 1; name = "Ship External Access"; req_access = null; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cAc" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_closed"; id_tag = "synd_outer"; locked = 0; name = "Ship External Access"; req_access = null; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "smindicate"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/plating,/area/syndicate_station/start) "cAd" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "synd_pump"; exterior_door_tag = "synd_outer"; frequency = 1331; id_tag = "synd_airlock"; interior_door_tag = "synd_inner"; pixel_x = 25; req_access_txt = "0"; sensor_tag = "synd_sensor"},/obj/machinery/airlock_sensor{frequency = 1331; id_tag = "synd_sensor"; pixel_x = 25; pixel_y = 12},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAe" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"; tag = "icon-fakewindows (WEST)"},/area/syndicate_mothership) "cAf" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/red,/turf/simulated/floor/wood{tag = "icon-wood-broken4"; icon_state = "wood-broken4"},/area/syndicate_mothership) @@ -6790,8 +6787,8 @@ "cAD" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/syndicate,/obj/effect/spawner/newbomb/timer/syndicate,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAE" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "cAF" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cAG" = (/obj/structure/closet/crate/internals,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) -"cAH" = (/obj/structure/closet/crate/medical,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"cAG" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"cAH" = (/obj/machinery/door/airlock/external{id_tag = "riso3"; name = "Access Airlock"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{layer = 2.8; name = "\improper Firelock South"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.8; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/iso3) "cAI" = (/obj/item/weapon/weldingtool,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "cAJ" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "cAK" = (/obj/item/weapon/crowbar,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) @@ -7053,11 +7050,11 @@ "cFG" = (/obj/machinery/camera{c_tag = "Assault Armor North"; dir = 2; network = list("CREED")},/obj/mecha/combat/marauder/seraph,/turf/unsimulated/floor{tag = "icon-delivery (SOUTHEAST)"; icon_state = "delivery"; dir = 6},/area/centcom/specops) "cFH" = (/turf/unsimulated/floor{dir = 4; heat_capacity = 1; icon_state = "warning"},/area/centcom/specops) "cFI" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) -"cFJ" = (/obj/structure/table,/obj/effect/landmark{name = "Commando_Manual"; tag = "Commando"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"cFK" = (/obj/machinery/camera{c_tag = "Spec. Ops. Center"; dir = 2; network = list("CREED")},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"cFL" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"cFM" = (/obj/effect/landmark{name = "Commando"; tag = "Commando"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) -"cFN" = (/obj/structure/closet/secure_closet/personal,/turf/unsimulated/floor{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/centcom/specops) +"cFJ" = (/obj/machinery/door/airlock/centcom{name = "Medical Special Operations"; opacity = 1; req_access_txt = "103"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) +"cFK" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) +"cFL" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"cFM" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) +"cFN" = (/obj/machinery/door/airlock/centcom{name = "Special Operations"; opacity = 1; req_access_txt = "103"},/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom) "cFO" = (/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) "cFP" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "cFQ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) @@ -7073,8 +7070,8 @@ "cGa" = (/obj/machinery/sleep_console,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/test) "cGb" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) "cGc" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/centcom/control) -"cGd" = (/obj/effect/landmark{name = "Marauder Exit"},/turf/unsimulated/floor{name = "plating"},/area) -"cGe" = (/turf/unsimulated/floor{name = "plating"},/area) +"cGd" = (/obj/structure/sign/redcross{pixel_y = -32},/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom) +"cGe" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) "cGf" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "cGg" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "ASSAULT3"; name = "Launch Bay #3"; p_open = 0},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "cGh" = (/turf/unsimulated/floor{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/centcom/specops) @@ -7100,8 +7097,8 @@ "cGB" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) "cGC" = (/obj/machinery/computer/ordercomp,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cGD" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) -"cGE" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) -"cGF" = (/obj/machinery/door/window{name = "AI Core Door"; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) +"cGE" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/storage/box/syringes,/obj/item/device/flash,/obj/item/device/flash,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) +"cGF" = (/obj/item/weapon/gun/projectile/automatic,/turf/space,/area) "cGG" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cGH" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cGI" = (/obj/machinery/computer/crew,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) @@ -7118,7 +7115,7 @@ "cGT" = (/obj/machinery/door/airlock/centcom{name = "Bridge"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cGU" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cGV" = (/obj/machinery/door/airlock/centcom{name = "Courthouse"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cGW" = (/obj/structure/table{dir = 5; icon_state = "tabledir"},/obj/effect/landmark{name = "Commando_Manual"; tag = "Commando"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"cGW" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/lights/mixed,/obj/item/device/flash,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/reagent_containers/glass/rag,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) "cGX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "cGY" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "cGZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) @@ -7144,17 +7141,16 @@ "cHt" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/control) "cHu" = (/obj/machinery/camera{c_tag = "Jury Room"; network = list("thunder"); pixel_x = 10},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cHv" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cHw" = (/obj/structure/table,/obj/effect/landmark{name = "Commando_Manual"; tag = "Commando"},/turf/unsimulated/floor{tag = "icon-vault (SOUTHEAST)"; icon_state = "vault"; dir = 6},/area/centcom/specops) -"cHx" = (/turf/unsimulated/floor{tag = "icon-vault"; icon_state = "vault"},/area/centcom/specops) -"cHy" = (/obj/effect/landmark{name = "Commando"; tag = "Commando"},/turf/unsimulated/floor{tag = "icon-vault (SOUTHWEST)"; icon_state = "vault"; dir = 10},/area/centcom/specops) +"cHw" = (/obj/structure/rack,/obj/item/clothing/suit/space/ert/medical,/obj/item/clothing/head/helmet/space/ert/medical,/obj/item/clothing/suit/space/ert/medical,/obj/item/clothing/head/helmet/space/ert/medical,/obj/item/clothing/suit/space/ert/medical,/obj/item/clothing/head/helmet/space/ert/medical,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) +"cHx" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) +"cHy" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "cHz" = (/turf/unsimulated/wall,/area/centcom/creed) "cHA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/centcom/creed) "cHB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/centcom/creed) "cHC" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/creed) "cHD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/centcom/creed) "cHE" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/unsimulated/floor{name = "plating"},/area/centcom/creed) -"cHF" = (/obj/machinery/portable_atmospherics/scrubber,/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom/control) -"cHG" = (/obj/machinery/portable_atmospherics/canister/air,/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom/control) +"cHF" = (/obj/structure/closet/radiation,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/simulated/floor{dir = 9; icon_state = "yellow"},/area/engine/engineering) "cHH" = (/obj/structure/table/reinforced,/obj/item/device/pda/captain,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cHI" = (/obj/machinery/computer/secure_data,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cHJ" = (/obj/machinery/computer/security,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) @@ -7190,15 +7186,12 @@ "cIn" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/specops/centcom) "cIo" = (/obj/machinery/door/airlock/external,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "NTrasen"; name = "Outer Airlock"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cIp" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom) -"cIq" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) -"cIr" = (/obj/structure/table/reinforced,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/plasteel{amount = 50},/obj/item/stack/sheet/plasteel{amount = 50},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cIs" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom/control) -"cIt" = (/obj/machinery/door/airlock/centcom{name = "ERT Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) +"cIq" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "cIu" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control) "cIv" = (/obj/structure/table,/obj/item/device/assembly/signaler,/obj/item/weapon/handcuffs,/obj/item/weapon/melee/classic_baton,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/control) "cIw" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (EAST)"; icon_state = "propulsion"; dir = 4},/turf/space,/area/shuttle/specops/centcom) "cIx" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/turf/unsimulated/floor,/area/shuttle/specops/centcom) -"cIy" = (/obj/effect/landmark{name = "Commando-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"cIy" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) "cIz" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cIA" = (/obj/machinery/camera{c_tag = "Spec. Ops. Shuttle"; dir = 2; network = list("CREED")},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cIB" = (/obj/machinery/computer/pod{id = "NTrasen"; name = "Hull Door Control"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) @@ -7207,8 +7200,6 @@ "cIE" = (/obj/machinery/computer/security/telescreen{name = "Spec. Ops. Monitor"; network = list("CREED")},/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cIF" = (/obj/structure/table/woodentable{dir = 5},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cIG" = (/obj/machinery/computer/card/centcom,/obj/item/weapon/card/id/centcom,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) -"cIH" = (/obj/structure/mirror{pixel_x = -28},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cII" = (/obj/structure/dispenser,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cIJ" = (/turf/unsimulated/floor{tag = "icon-warning"; icon_state = "warning"},/area/centcom/control) "cIK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor,/area/centcom/control) "cIL" = (/obj/machinery/door/airlock/external,/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "NTrasen"; name = "Outer Airlock"; p_open = 0},/turf/simulated/shuttle/plating,/area/shuttle/specops/centcom) @@ -7216,43 +7207,21 @@ "cIN" = (/obj/structure/table/woodentable{dir = 10},/obj/machinery/door_control{name = "Spec Ops Ready Room"; desc = "A remote control switch to block view of the singularity."; icon_state = "doorctrl0"; pixel_y = 15; req_access_txt = "11"; id = "CREED"},/obj/machinery/door_control{name = "Mech Storage"; desc = "A remote control switch to block view of the singularity."; icon_state = "doorctrl0"; pixel_y = 0; req_access_txt = "11"; id = "ASSAULT"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cIO" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cIP" = (/obj/machinery/computer/pod{id = "NTrasen"; name = "Hull Door Control"},/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) -"cIQ" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/secure/briefcase,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cIR" = (/obj/effect/landmark{name = "Response Team"; tag = "Response Team"},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cIS" = (/turf/unsimulated/floor{tag = "icon-yellow (NORTHEAST)"; icon_state = "yellow"; dir = 5},/area/centcom/control) -"cIT" = (/turf/unsimulated/floor{tag = "icon-whitehall (NORTHWEST)"; icon_state = "whitehall"; dir = 9},/area/centcom/control) -"cIU" = (/turf/unsimulated/floor{tag = "icon-whitehall (NORTHEAST)"; icon_state = "whitehall"; dir = 5},/area/centcom/control) -"cIV" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) +"cIR" = (/obj/structure/mopbucket,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) "cIW" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cIX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control) "cIY" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cIZ" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "cJa" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/specops/centcom) -"cJb" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/gun/energy/gun/nuclear,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cJc" = (/obj/structure/table/reinforced,/obj/item/device/flash,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/turf/unsimulated/floor{tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1},/area/centcom/control) -"cJd" = (/obj/structure/table/reinforced,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/weapon/rcd,/obj/item/weapon/rcd,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/turf/unsimulated/floor{tag = "icon-yellow (NORTH)"; icon_state = "yellow"; dir = 1},/area/centcom/control) -"cJe" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/reagent_containers/hypospray,/obj/item/weapon/storage/box/syringes,/obj/item/device/flash,/obj/item/device/flash,/turf/unsimulated/floor{tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1},/area/centcom/control) -"cJf" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/obj/item/device/flash,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/device/flash,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/turf/unsimulated/floor{tag = "icon-whitehall (NORTH)"; icon_state = "whitehall"; dir = 1},/area/centcom/control) -"cJg" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cJh" = (/turf/unsimulated/floor{icon_state = "green"; dir = 5},/area/centcom/control) "cJi" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cJj" = (/obj/machinery/vending/coffee,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cJk" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_r (EAST)"; icon_state = "burst_r"; dir = 4},/turf/space,/area/shuttle/specops/centcom) -"cJl" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cJm" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/handcuffs,/obj/item/device/flash,/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/weapon/storage/box/handcuffs,/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/control) -"cJn" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/security,/obj/item/weapon/storage/belt/security,/obj/item/weapon/storage/belt/security,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/control) -"cJo" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/security,/obj/item/weapon/storage/belt/security,/obj/item/weapon/storage/belt/security,/obj/item/device/flash,/obj/item/device/flash,/turf/unsimulated/floor{tag = "icon-blue"; icon_state = "blue"},/area/centcom/control) -"cJp" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashbangs,/obj/item/device/flash,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/weapon/pinpointer/advpinpointer,/turf/unsimulated/floor{tag = "icon-blue"; icon_state = "blue"},/area/centcom/control) -"cJq" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) +"cJp" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) "cJr" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "CentComPort"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control) "cJs" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) "cJt" = (/obj/structure/table,/obj/machinery/door_control{desc = "A remote control switch for port-side blast doors."; icon_state = "doorctrl0"; id = "CentComPort"; name = "Security Doors"; pixel_y = -4; req_access_txt = "101"},/obj/machinery/door/window/southleft{dir = 1; name = "Security"; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cJu" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "CentComPort"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control) -"cJv" = (/obj/structure/table/reinforced,/obj/item/weapon/phone,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cJw" = (/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/centcom/control) -"cJx" = (/turf/unsimulated/floor{tag = "icon-red (SOUTHEAST)"; icon_state = "red"; dir = 6},/area/centcom/control) -"cJy" = (/turf/unsimulated/floor{tag = "icon-blue (SOUTHWEST)"; icon_state = "blue"; dir = 10},/area/centcom/control) -"cJz" = (/turf/unsimulated/floor{tag = "icon-blue (SOUTHEAST)"; icon_state = "blue"; dir = 6},/area/centcom/control) -"cJA" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cJB" = (/turf/unsimulated/wall,/area/centcom/ferry) "cJC" = (/obj/machinery/door/window/westright{req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cJD" = (/obj/machinery/door/window/eastleft{req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) @@ -7261,7 +7230,7 @@ "cJG" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) "cJH" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/shuttle/escape/centcom) "cJI" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/shuttle/escape/centcom) -"cJJ" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/lights/mixed,/obj/item/device/flash,/obj/item/weapon/mop,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/weapon/reagent_containers/glass/rag,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) +"cJJ" = (/obj/structure/rack,/obj/item/clothing/suit/space/ert/engineer,/obj/item/clothing/head/helmet/space/ert/engineer,/obj/item/clothing/suit/space/ert/engineer,/obj/item/clothing/head/helmet/space/ert/engineer,/obj/item/clothing/suit/space/ert/engineer,/obj/item/clothing/head/helmet/space/ert/engineer,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) "cJK" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/control) "cJL" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/shuttle/escape/centcom) "cJM" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/extinguisher,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) @@ -7269,13 +7238,9 @@ "cJO" = (/obj/machinery/computer/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cJP" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) "cJQ" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/obj{anchored = 1; icon_state = "floor3"; layer = 1; name = "floor"},/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/escape/centcom) -"cJR" = (/obj/structure/rack,/obj/item/clothing/suit/space/ert/engineer,/obj/item/clothing/head/helmet/space/ert/engineer,/obj/item/clothing/suit/space/ert/engineer,/obj/item/clothing/head/helmet/space/ert/engineer,/obj/item/clothing/suit/space/ert/engineer,/obj/item/clothing/head/helmet/space/ert/engineer,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cJS" = (/obj/structure/rack,/obj/item/clothing/suit/space/ert/medical,/obj/item/clothing/head/helmet/space/ert/medical,/obj/item/clothing/suit/space/ert/medical,/obj/item/clothing/head/helmet/space/ert/medical,/obj/item/clothing/suit/space/ert/medical,/obj/item/clothing/head/helmet/space/ert/medical,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cJT" = (/obj/structure/rack,/obj/item/clothing/suit/space/ert/security,/obj/item/clothing/head/helmet/space/ert/security,/obj/item/clothing/suit/space/ert/security,/obj/item/clothing/head/helmet/space/ert/security,/obj/item/clothing/suit/space/ert/security,/obj/item/clothing/head/helmet/space/ert/security,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cJU" = (/obj/structure/rack,/obj/item/clothing/suit/space/ert/commander,/obj/item/clothing/head/helmet/space/ert/commander,/obj/item/clothing/suit/space/ert/commander,/obj/item/clothing/head/helmet/space/ert/commander,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cJV" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cJW" = (/obj/structure/rack,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/gloves/purple,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/device/radio/headset/ert,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cJX" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/backpack/security,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/storage/box,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) +"cJV" = (/obj/structure/table/reinforced,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/metal{amount = 50; pixel_x = 2; pixel_y = 2},/obj/item/stack/sheet/plasteel{amount = 50},/obj/item/stack/sheet/plasteel{amount = 50},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) +"cJW" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_closed"; id_tag = "synd_inner"; locked = 0; name = "Ship External Access"; req_access = null; req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) +"cJX" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/gun/energy/gun/nuclear,/obj/item/weapon/gun/energy/gun/nuclear,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) "cJY" = (/obj/machinery/door/poddoor{id = "CentComPort"; name = "Security Doors"},/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control) "cJZ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor{name = "plating"},/area/centcom/control) "cKa" = (/obj/structure/table/reinforced{icon_state = "reinf_tabledir"},/obj/machinery/door/window/southleft{name = "Security"; req_access_txt = ""},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) @@ -7286,7 +7251,6 @@ "cKf" = (/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cKg" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) "cKh" = (/obj/machinery/computer/security,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) -"cKi" = (/obj/machinery/door/airlock/centcom{name = "ERT Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry) "cKj" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/control) "cKk" = (/obj/machinery/atm{pixel_x = 24},/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control) "cKl" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/escape/centcom) @@ -8715,7 +8679,7 @@ "dlE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/rack,/obj/item/clothing/suit/fire/heavy{desc = "A suit that protects against temperatures up to -50 C"; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "thermal protection suit"},/obj/item/clothing/gloves/black{desc = "These gloves are cold-resistant."; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "warm gloves"},/obj/item/clothing/ears/earmuffs{cold_protection = 1; desc = "Protects your hearing from loud noises and keeps your ears warm."; min_cold_protection_temperature = 223},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dlF" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/shovel/spade,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/minihoe,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weedkiller/triclopyr,/obj/item/nutrient/ez,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "dlG" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) -"dlH" = (/obj/machinery/door/airlock/maintenance{name = "Auxiliary Storage"; req_access_txt = "0"; req_one_access_txt = "11;47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/maintstore1) +"dlH" = (/obj/machinery/door/airlock/external{id_tag = "riso2"; name = "Access Airlock"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{layer = 2.8; name = "\improper Firelock South"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.8; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/iso2) "dlI" = (/turf/simulated/floor,/area/research_outpost/maintstore1) "dlJ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/maintstore1) "dlK" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/camera{c_tag = "Research Outpost Auxiliary Storage"; dir = 8; network = list("RD","SS13")},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/research_outpost/maintstore1) @@ -8728,7 +8692,7 @@ "dlR" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) "dlS" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) "dlT" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) -"dlU" = (/obj/machinery/door/window/westleft{dir = 4; name = "Spectrometry Lab"; req_access_txt = "47"},/obj/machinery/door/window/westleft{dir = 8; name = "Spectrometry Lab"; opacity = 0; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"dlU" = (/obj/machinery/door/airlock/external{id_tag = "riso1"; name = "Access Airlock"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{layer = 2.8; name = "\improper Firelock South"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.8; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/iso1) "dlV" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dlW" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/rack,/obj/item/clothing/suit/fire/heavy{desc = "A suit that protects against temperatures up to -50 C"; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "thermal protection suit"},/obj/item/clothing/gloves/black{desc = "These gloves are cold-resistant."; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "warm gloves"},/obj/item/clothing/ears/earmuffs{cold_protection = 1; desc = "Protects your hearing from loud noises and keeps your ears warm."; min_cold_protection_temperature = 223},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) "dlX" = (/turf/simulated/wall/r_wall,/area/research_outpost/sample) @@ -8750,12 +8714,12 @@ "dmn" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) "dmo" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dmp" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) -"dmq" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"dmq" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/door/airlock/glass_mining{name = "Equipment storage"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/gearstore) "dmr" = (/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dms" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dmt" = (/obj/structure/table,/obj/machinery/light{dir = 1},/obj/machinery/reagentgrinder,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dmu" = (/obj/structure/table,/obj/item/weapon/storage/box/solution_trays,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/sample) -"dmv" = (/obj/machinery/door/window/westleft{dir = 1; name = "Sample Preparation Loading"; req_access_txt = "47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/research_outpost/sample) +"dmv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/glass_mining{name = "Expedition Prep"; req_access_txt = "65"},/turf/simulated/floor/plating,/area/research_outpost/entry) "dmw" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/research_outpost/sample) "dmx" = (/obj/machinery/hydroponics/soil,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/grass,/area/research_outpost/maintstore1) "dmy" = (/obj/machinery/hydroponics/soil,/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor/grass,/area/research_outpost/maintstore1) @@ -8805,7 +8769,7 @@ "dnq" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) "dnr" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) "dns" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) -"dnt" = (/obj/machinery/door/window/westleft{dir = 4; name = "Spectrometry Lab"; req_access_txt = "47"},/obj/machinery/door/window/westleft{dir = 8; name = "Spectrometry Lab"; opacity = 0; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"dnt" = (/obj/machinery/door/airlock/research{name = "Temporary Storage Loading"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dnu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dnv" = (/obj/structure/table,/obj/structure/sign/nosmoking_2{pixel_x = 32},/obj/machinery/camera{c_tag = "Research Outpost Mass Spectrometry"; dir = 8; network = list("RD","SS13")},/obj/item/weapon/pen,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/folder,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) "dnw" = (/obj/machinery/chem_dispenser,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) @@ -8813,7 +8777,7 @@ "dny" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dnz" = (/obj/machinery/light/small{dir = 4},/obj/machinery/power/apc{dir = 4; name = "Sample Preparation APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dnA" = (/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) -"dnB" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Loading"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/anomaly) +"dnB" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/door/airlock/glass_mining{name = "Loading area"; req_access_txt = "65"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/tempstorage) "dnC" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dnD" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dnE" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 4},/obj/structure/sign/nosmoking_1{pixel_x = -32},/turf/simulated/floor/plating,/area/research_outpost/atmos) @@ -8840,7 +8804,7 @@ "dnZ" = (/obj/structure/table,/obj/item/weapon/storage/box/solution_trays,/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/camera{c_tag = "Research Outpost Sample Preparation"; dir = 1; network = list("RD","SS13")},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) "doa" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) "dob" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) -"doc" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"doc" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "dod" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "doe" = (/obj/machinery/alarm{dir = 2; pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dof" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "whitepurple"},/area/research_outpost/anomaly) @@ -8863,10 +8827,10 @@ "dow" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/abandoned) "dox" = (/turf/simulated/mineral/random,/area/mine/explored) "doy" = (/obj/structure/lattice,/obj/structure/transit_tube{tag = "icon-S-NE"; icon_state = "S-NE"},/turf/space,/area) -"doz" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"doz" = (/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "doA" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/spectro) "doB" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/sample) -"doC" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) +"doC" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "doD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/wall/r_wall,/area/research_outpost/sample) "doE" = (/obj/structure/disposalpipe/segment,/obj/machinery/power/apc{dir = 8; name = "Anomalous Materials APC"; pixel_x = -24; pixel_y = 0},/obj/structure/rack,/obj/item/clothing/head/welding,/obj/item/weapon/weldingtool,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "doF" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) @@ -8875,7 +8839,7 @@ "doI" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "doJ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "doK" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/research_outpost/hallway) -"doL" = (/obj/machinery/door/airlock/atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"doL" = (/obj/machinery/door/window/westleft{dir = 8; name = "Locker room"; opacity = 0; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/turf/simulated/floor,/area/research_outpost/hallway) "doM" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b"; initialize_directions = 6; level = 2; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos) "doN" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b"; level = 2; name = "pipe manifold"},/obj/machinery/light/small,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos) "doO" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b"; level = 2; name = "pipe manifold"},/obj/machinery/meter,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos) @@ -8908,7 +8872,7 @@ "dpp" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{dir = 8; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "dpq" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/research_outpost/hallway) "dpr" = (/turf/simulated/wall/r_wall,/area/research_outpost/power) -"dps" = (/obj/machinery/door/airlock/glass_atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/turf/simulated/floor,/area/research_outpost/power) +"dps" = (/obj/machinery/door/airlock/engineering{name = "Outpost Power"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) "dpt" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 5; icon_state = "intact-r"; level = 2},/turf/simulated/wall/r_wall,/area/research_outpost/power) "dpu" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/wall/r_wall,/area/research_outpost/power) "dpv" = (/obj/structure/transit_tube{tag = "icon-N-S"; icon_state = "N-S"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/atmos) @@ -8930,12 +8894,12 @@ "dpL" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dpM" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 10; icon_state = "intact-r-f"; initialize_directions = 10; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) "dpN" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) -"dpO" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dpO" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dpP" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dpQ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dpR" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dpS" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dpT" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dpT" = (/obj/machinery/door/window/westleft{dir = 1; name = "Locker room"; opacity = 0; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/hallway) "dpU" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "whitepurple"},/area/research_outpost/hallway) "dpV" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/research_outpost/hallway) "dpW" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/power) @@ -8955,7 +8919,7 @@ "dqk" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/wood,/area/research_outpost/hallway) "dql" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/vending/snack,/turf/simulated/floor/wood,/area/research_outpost/hallway) "dqm" = (/obj/structure/closet/secure_closet/xenoarchaeologist{req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor,/area/research_outpost/hallway) -"dqn" = (/obj/machinery/door/window/westleft{dir = 1; name = "Locker room"; opacity = 0; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/hallway) +"dqn" = (/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/entry) "dqo" = (/obj/structure/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/latex,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "dqp" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dqq" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = 32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) @@ -8963,11 +8927,11 @@ "dqs" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/clipboard,/obj/item/weapon/pen,/obj/item/weapon/folder,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dqt" = (/obj/structure/table,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/item/device/measuring_tape,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dqu" = (/obj/machinery/atmospherics/pipe/tank/nitrogen,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dqv" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dqv" = (/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) "dqw" = (/obj/machinery/camera{c_tag = "Research Outpost Anomalous Materials Lab"; dir = 8; network = list("RD","SS13")},/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 273; dir = 2; on = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dqx" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = -32},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "dqy" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/research_outpost/hallway) -"dqz" = (/obj/machinery/door/airlock/engineering{name = "Outpost Power"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) +"dqz" = (/obj/machinery/door/airlock/external{name = "Research Outpost Dock Airlock"; req_access_txt = "65"},/turf/simulated/floor/plating,/area/research_outpost/entry) "dqA" = (/turf/simulated/floor/plating,/area/research_outpost/power) "dqB" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/research_outpost/power) "dqC" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/power) @@ -8984,15 +8948,15 @@ "dqN" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor/wood,/area/research_outpost/hallway) "dqO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/wood,/area/research_outpost/hallway) "dqP" = (/turf/simulated/floor/wood,/area/research_outpost/hallway) -"dqQ" = (/obj/machinery/door/window/westleft{dir = 8; name = "Locker room"; opacity = 0; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/turf/simulated/floor,/area/research_outpost/hallway) +"dqQ" = (/obj/machinery/door/window/westleft{dir = 4; name = "laser testing"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/anomaly) "dqR" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/hallway) "dqS" = (/obj/structure/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/machinery/light/small{dir = 4},/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/latex,/obj/machinery/camera{c_tag = "Research Outpost Hallway Starboard"; dir = 8; network = list("RD","SS13")},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "dqT" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dqU" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) -"dqV" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dqV" = (/obj/machinery/door/airlock/research{name = "Temporary Storage"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dqW" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/power/emitter{anchored = 1; state = 2},/obj/structure/cable,/turf/simulated/floor/plating{dir = 5; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01; tag = "icon-warnplate (NORTHEAST)"},/area/research_outpost/anomaly) "dqX" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/research_outpost/anomaly) -"dqY" = (/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dqY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) "dqZ" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/research_outpost/anomaly) "dra" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/camera{c_tag = "Research Outpost Hallway Engineering"; dir = 4; network = list("RD","SS13")},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "drb" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) @@ -9049,16 +9013,16 @@ "dsa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) "dsb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) "dsc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) -"dsd" = (/obj/machinery/door/airlock/external{name = "Research Outpost Dock Airlock"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dsd" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medbay"; req_access_txt = "0"; req_one_access_txt = "65;5"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) "dse" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/entry) "dsf" = (/obj/structure/sign/science,/turf/simulated/wall,/area/research_outpost/entry) -"dsg" = (/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "7"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/entry) -"dsh" = (/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "7"},/turf/simulated/floor,/area/research_outpost/entry) +"dsg" = (/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/power) +"dsh" = (/obj/machinery/door/airlock/maintenance{name = "Maintenance Storage"; req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "dsi" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/research_outpost/hallway) "dsj" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "dsk" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dsl" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dsm" = (/obj/machinery/door/window/westleft{dir = 4; name = "laser testing"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/anomaly) +"dsm" = (/obj/machinery/door/airlock/research{name = "Isolation Room Three"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/iso3) "dsn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dso" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dsp" = (/obj/machinery/anomaly/fourier_transform,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) @@ -9103,7 +9067,7 @@ "dtc" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) "dtd" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dte" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dtf" = (/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/power) +"dtf" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Long Term Storage"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) "dtg" = (/obj/structure/transit_tube{tag = "icon-D-NE"; icon_state = "D-NE"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "dth" = (/obj/structure/transit_tube{tag = "icon-E-NW"; icon_state = "E-NW"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "dti" = (/obj/structure/transit_tube/station,/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = 32; pixel_y = 32},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/research_outpost/hallway) @@ -9124,17 +9088,17 @@ "dtx" = (/obj/structure/transit_tube{tag = "icon-D-SW"; icon_state = "D-SW"},/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry) "dty" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/entry) "dtz" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/research_outpost/entry) -"dtA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "47"},/turf/simulated/floor,/area/research_outpost/entry) +"dtA" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/maint) "dtB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/entry) "dtC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/research_outpost/entry) "dtD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/entry) -"dtE" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medbay"; req_access_txt = "7"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) +"dtE" = (/obj/machinery/door/airlock/research{name = "Isolation room one"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/iso1) "dtF" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) "dtG" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) "dtH" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 6; icon_state = "intact-b-f"; initialize_directions = 6; level = 1; name = "pipe"},/obj/machinery/conveyor_switch{id = "anotempload"; name = "conveyor switch"; pixel_x = 0; pixel_y = 0},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dtI" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dtJ" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) -"dtK" = (/obj/machinery/door/airlock/research{name = "Temporary Storage"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) +"dtK" = (/obj/machinery/door/airlock/research{name = "Isolation room two"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/iso2) "dtL" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "dtM" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dtN" = (/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) @@ -9204,10 +9168,10 @@ "duZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/firealarm{pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dva" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/biohazard{pixel_y = -32},/turf/simulated/floor{dir = 2; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "dvb" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 6; icon_state = "whitepurple"},/area/research_outpost/hallway) -"dvc" = (/obj/machinery/door/airlock/research{name = "Exotic Particles Collection"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor,/area/research_outpost/harvesting) +"dvc" = (/obj/machinery/door/airlock/research{name = "Exotic Particles Collection"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor,/area/research_outpost/harvesting) "dvd" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/research_outpost/harvesting) "dve" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) -"dvf" = (/obj/machinery/door/airlock/external{name = "Primary Access"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor,/area/research_outpost/harvesting) +"dvf" = (/obj/machinery/door/airlock/external{name = "Primary Access"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor,/area/research_outpost/harvesting) "dvg" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) "dvh" = (/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/harvesting) "dvi" = (/obj/structure/table,/obj/item/weapon/anodevice{pixel_x = 3; pixel_y = 3},/obj/item/weapon/anodevice,/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/harvesting) @@ -9235,20 +9199,20 @@ "dvE" = (/obj/machinery/conveyor{dir = 9; id = "anotempload"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/research_outpost/tempstorage) "dvF" = (/turf/simulated/wall/r_wall,/area/research_outpost/maint) "dvG" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/research_outpost/maint) -"dvH" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/maint) +"dvH" = (/obj/machinery/door/window/westleft{dir = 1; name = "Sample Preparation Loading"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/research_outpost/sample) "dvI" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso1) "dvJ" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/iso1) -"dvK" = (/obj/machinery/door/airlock/research{name = "Isolation room one"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/iso1) +"dvK" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dvL" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso2) "dvM" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/iso2) -"dvN" = (/obj/machinery/door/airlock/research{name = "Isolation room two"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/iso2) +"dvN" = (/obj/machinery/door/window/westleft{dir = 4; name = "Spectrometry Lab"; req_access_txt = "65"},/obj/machinery/door/window/westleft{dir = 8; name = "Spectrometry Lab"; opacity = 0; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) "dvO" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso3) "dvP" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/iso3) -"dvQ" = (/obj/machinery/door/airlock/research{name = "Isolation Room Three"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/iso3) -"dvR" = (/obj/machinery/door/airlock/maintenance{name = "Maintenance Storage"; req_access_txt = "0"; req_one_access_txt = "11;47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) +"dvQ" = (/obj/machinery/door/window/westleft{dir = 4; name = "Spectrometry Lab"; req_access_txt = "65"},/obj/machinery/door/window/westleft{dir = 8; name = "Spectrometry Lab"; opacity = 0; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"dvR" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Loading"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/anomaly) "dvS" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore2) "dvT" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/longtermstorage) -"dvU" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Long Term Storage"; req_access_txt = "47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) +"dvU" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dvV" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/harvesting) "dvW" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/research_outpost/harvesting) "dvX" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) @@ -9263,9 +9227,9 @@ "dwg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{tag = "icon-N-SW"; icon_state = "N-SW"},/turf/simulated/floor/plating,/area/research_outpost/entry) "dwh" = (/turf/simulated/wall,/area/research_outpost/entry) "dwi" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/research_outpost/entry) -"dwj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/glass_mining{name = "Expedition Prep"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dwj" = (/obj/machinery/door/airlock/atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dwk" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/research_outpost/entry) -"dwl" = (/obj/machinery/door/airlock/research{name = "Temporary Storage Loading"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) +"dwl" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dwm" = (/obj/structure/plasticflaps/mining,/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/plating,/area/research_outpost/maint) "dwn" = (/obj/machinery/conveyor{dir = 5; id = "anosample"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/maint) "dwo" = (/obj/machinery/conveyor{dir = 4; id = "anosample"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_y = 32},/turf/simulated/floor/plating,/area/research_outpost/maint) @@ -9307,11 +9271,11 @@ "dwY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/research_outpost/gearstore) "dwZ" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/gearstore) "dxa" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/gearstore) -"dxb" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/door/airlock/glass_mining{name = "Loading area"; req_access_txt = "47"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/tempstorage) +"dxb" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dxc" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/tempstorage) "dxd" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/power/apc{dir = 1; name = "Temporary Storage APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/research_outpost/tempstorage) "dxe" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 9; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/research_outpost/tempstorage) -"dxf" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;47"},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) +"dxf" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dxg" = (/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "dxh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_y = 32},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "dxi" = (/obj/machinery/conveyor{dir = 1; id = "anosample"},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) @@ -9355,9 +9319,9 @@ "dxU" = (/obj/machinery/power/apc{dir = 8; name = "Maintenance APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/research_outpost/maint) "dxV" = (/obj/machinery/atmospherics/valve,/obj/machinery/computer/security/telescreen{desc = "Used for watching the isolation room cameras."; layer = 4; name = "Isolation Room Telescreen"; network = list("isolation"); pixel_x = 32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/maint) "dxW" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 1; icon_state = "intact-c-f"; level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/iso1) -"dxX" = (/obj/machinery/door/airlock/external{id_tag = "riso1"; name = "Access Airlock"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{layer = 2.8; name = "\improper Firelock South"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.8; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/iso1) -"dxY" = (/obj/machinery/door/airlock/external{id_tag = "riso2"; name = "Access Airlock"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{layer = 2.8; name = "\improper Firelock South"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.8; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/iso2) -"dxZ" = (/obj/machinery/door/airlock/external{id_tag = "riso3"; name = "Access Airlock"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{layer = 2.8; name = "\improper Firelock South"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.8; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/iso3) +"dxX" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dxY" = (/obj/machinery/door/airlock/glass_atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor,/area/research_outpost/power) +"dxZ" = (/obj/machinery/door/airlock/maintenance{name = "Auxiliary Storage"; req_access_txt = "0"; req_one_access_txt = "65;12"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/maintstore1) "dya" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "dyb" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "dyc" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/research_outpost/longtermstorage) @@ -9377,7 +9341,6 @@ "dyq" = (/obj/structure/transit_tube{tag = "icon-D-NW"; icon_state = "D-NW"},/turf/simulated/mineral,/area/mine/explored) "dyr" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/research_outpost/gearstore) "dys" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/gearstore) -"dyt" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/door/airlock/glass_mining{name = "Equipment storage"; req_access_txt = "47"},/turf/simulated/floor,/area/research_outpost/gearstore) "dyu" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/research_outpost/gearstore) "dyv" = (/turf/simulated/floor,/area/research_outpost/gearstore) "dyw" = (/obj/machinery/recharge_station,/turf/simulated/floor,/area/research_outpost/gearstore) @@ -9432,7 +9395,6 @@ "dzt" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 0; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/iso3) "dzu" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/iso3) "dzv" = (/obj/structure/closet/hydrant{pixel_x = -32},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) -"dzw" = (/obj/structure/rack,/obj/item/weapon/storage/box/gloves,/obj/item/weapon/storage/box/samplebags{pixel_x = 3; pixel_y = -3},/obj/machinery/power/apc{dir = 4; name = "Maintenance Storage APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "dzx" = (/turf/simulated/wall/r_wall,/area/research_outpost/maintstore2) "dzy" = (/obj/structure/transit_tube{tag = "icon-D-SE"; icon_state = "D-SE"},/turf/simulated/wall/r_wall,/area/research_outpost/longtermstorage) "dzz" = (/obj/structure/transit_tube{tag = "icon-N-SW"; icon_state = "N-SW"},/turf/simulated/floor/plating/airless/asteroid,/area/mine/unexplored) @@ -9524,7 +9486,6 @@ "dBh" = (/turf/space,/area/mine/unexplored) "dBi" = (/obj/machinery/door/airlock/external{name = "Mining Bridge"; req_access_txt = "54"},/turf/simulated/floor/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/explored) "dBj" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/mine/explored) -"dBk" = (/obj/structure/stool/bed/chair,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "dBl" = (/obj/structure/disposalpipe/segment,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/explored) "dBm" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'VACUUM'"; icon_state = "space"; layer = 4; name = "VACUUM"; pixel_x = 0; pixel_y = -32},/obj/machinery/door/window/westleft,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/explored) "dBn" = (/obj/structure/transit_tube{tag = "icon-D-NE"; icon_state = "D-NE"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/mine/explored) @@ -10011,31 +9972,94 @@ "dKA" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/mine/eva) "dKB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_west_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/turf/simulated/floor/plating,/area/mine/living_quarters) "dKC" = (/obj/machinery/door/airlock/external{name = "Mining Shuttle Airlock"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/production) -"dKD" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/central) -"dKE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/medical/sleeper) -"dKF" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/medical/sleeper) -"dKG" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/medical/sleeper) -"dKH" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "medpriv4"; name = "Privacy Shutters"; opacity = 0},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/medical/sleeper) -"dKI" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"dKJ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/medbay) -"dKK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) -"dKL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) +"dKH" = (/obj/machinery/space_heater,/turf/simulated/floor,/area/atmos) "dKM" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central) -"dKN" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "Firelock East"},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/medical/medbay) -"dKO" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/medical/chemistry) -"dKP" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/window/southleft{dir = 1; name = "Chemistry Desk"; req_access_txt = "33"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/medical/chemistry) -"dKQ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/medical/sleeper) "dKR" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/central) -"dKS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/medical/sleeper) +"dKS" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/maintenance/asmaint) "dKT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/junction{tag = "icon-pipe-j2"; icon_state = "pipe-j2"; dir = 2},/turf/simulated/floor,/area/hallway/primary/central) "dKU" = (/obj/machinery/camera{c_tag = "Central Hallway South-East"; dir = 8},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor,/area/hallway/primary/central) -"dKV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/stool/bed/roller,/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"dKW" = (/obj/machinery/computer/med_data,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) -"dKX" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/pen,/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/medical/medbay) -"dKY" = (/obj/effect/landmark{name = "Response Team"; tag = "Response Team"},/turf/unsimulated/floor{tag = "icon-yellow (NORTHWEST)"; icon_state = "yellow"; dir = 9},/area/centcom/control) +"dKY" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1443; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "dKZ" = (/obj/structure/rack,/obj/item/clothing/under/psysuit,/obj/item/clothing/suit/wizrobe/psypurple,/obj/item/clothing/head/wizard/amp,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station) -"dLa" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera{c_tag = "Medbay Foyer"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = -22},/obj/structure/table/reinforced,/obj/machinery/computer/med_data/laptop,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "whitegreen"},/area/medical/medbay) -"dLb" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 80; dir = 2; on = 1},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "dark"},/area/toxins/server) +"dLb" = (/obj/structure/window/reinforced,/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom/specops) +"dLc" = (/turf/space,/area/centcom/specops) +"dLd" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/belt/security,/obj/item/weapon/storage/belt/security,/obj/item/weapon/storage/belt/security,/obj/item/device/flash,/obj/item/device/flash,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/baton,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLe" = (/turf/unsimulated/floor{tag = "icon-vault (NORTHWEST)"; icon_state = "vault"; dir = 9},/area/centcom) +"dLf" = (/obj/machinery/vending/tool,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLg" = (/obj/effect/landmark{name = "Marauder Exit"},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) +"dLh" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/handcuffs,/obj/item/device/flash,/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/weapon/storage/box/handcuffs,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/obj/item/clothing/glasses/night,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLi" = (/obj/structure/sign/securearea{name = "\improper ARMORY"; pixel_y = 32},/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom) +"dLj" = (/obj/structure/rack,/obj/item/clothing/suit/space/ert/commander,/obj/item/clothing/head/helmet/space/ert/commander,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) +"dLk" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 1; frequency = 1441; listening = 0; name = "Spec Ops Intercom"; pixel_y = 28},/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom) +"dLl" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"; pixel_y = 32},/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom) +"dLm" = (/obj/machinery/door/airlock/centcom{name = "Armory Special Operations"; opacity = 1; req_access_txt = "103"},/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom) +"dLn" = (/obj/machinery/door/airlock/centcom{name = "Engineering Special Operations"; opacity = 1; req_access_txt = "103"},/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom) +"dLo" = (/obj/structure/rack,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/obj/item/weapon/grenade/smokebomb,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLp" = (/obj/structure/rack,/obj/item/weapon/gun/grenadelauncher,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLq" = (/obj/effect/landmark{name = "Response Team"; tag = "Response Team"},/obj/effect/landmark{name = "Commando"; tag = "Commando"},/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) +"dLr" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/flashbangs,/obj/item/device/flash,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/weapon/pinpointer/advpinpointer,/obj/item/device/aicard,/turf/unsimulated/floor{tag = "icon-blue"; icon_state = "blue"},/area/centcom/specops) +"dLs" = (/obj/structure/rack,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/obj/item/weapon/gun/energy/stunrevolver,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLt" = (/obj/machinery/vending/engineering,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLu" = (/obj/machinery/vending/engivend,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLv" = (/obj/structure/rack,/obj/item/clothing/suit/space/ert/security,/obj/item/clothing/head/helmet/space/ert/security,/obj/item/clothing/suit/space/ert/security,/obj/item/clothing/head/helmet/space/ert/security,/obj/item/clothing/suit/space/ert/security,/obj/item/clothing/head/helmet/space/ert/security,/obj/item/clothing/tie/storage/black_vest,/obj/item/clothing/tie/storage/black_vest,/obj/item/clothing/tie/storage/black_vest,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLw" = (/obj/structure/table/reinforced,/obj/item/device/flash,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/clothing/glasses/meson,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/weapon/storage/belt/utility/full,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/obj/item/clothing/gloves/yellow,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLx" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) +"dLy" = (/obj/structure/rack,/obj/item/weapon/storage/box/flashbangs,/obj/item/weapon/storage/box/flashbangs,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLz" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLA" = (/obj/structure/rack,/obj/item/ammo_magazine/a762,/obj/item/ammo_magazine/a762,/obj/item/weapon/gun/projectile/automatic/l6_saw,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLB" = (/obj/machinery/door/window{dir = 2; name = "AI Core Door"; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) +"dLC" = (/obj/structure/rack,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/obj/item/weapon/plastique,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLD" = (/obj/structure/rack,/obj/item/ammo_magazine/c9mm,/obj/item/ammo_magazine/c9mm,/obj/item/ammo_magazine/c9mm,/obj/item/ammo_magazine/c9mm,/obj/item/ammo_magazine/c9mm,/obj/item/ammo_magazine/c9mm,/obj/item/weapon/gun/projectile/automatic,/obj/item/weapon/gun/projectile/automatic,/obj/item/weapon/gun/projectile/automatic,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dLE" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"dLF" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/obj/item/device/flash,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/device/flash,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/pill_bottle/antitox,/obj/item/weapon/storage/pill_bottle/kelotane,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/regular,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) +"dLG" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/weapon/storage/backpack/security,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/grenade/chem_grenade/cleaner,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/storage/box,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) +"dLH" = (/obj/structure/rack,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/shoes/galoshes,/obj/item/clothing/gloves/purple,/obj/item/clothing/suit/bio_suit/janitor,/obj/item/clothing/head/bio_hood/janitor,/obj/item/device/radio/headset/ert,/obj/item/clothing/mask/breath,/obj/item/clothing/glasses/science,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) +"dLI" = (/obj/structure/rack,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) +"dLJ" = (/obj/structure/table/reinforced,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) +"dLK" = (/obj/machinery/portable_atmospherics/scrubber,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) +"dLL" = (/obj/structure/rack,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) +"dLM" = (/obj/structure/rack,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/obj/item/bodybag/cryobag,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom/specops) +"dLN" = (/obj/machinery/telecomms/relay/preset/centcom,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) +"dMt" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor,/area/engine/break_room) +"dNg" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/bodybag/cryobag,/turf/simulated/floor,/area/engine/break_room) +"dNH" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/break_room) +"dNU" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) +"dNW" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) +"dOj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"dOk" = (/obj/structure/table,/obj/item/stack/rods{amount = 50},/obj/machinery/requests_console{announcementConsole = 0; department = "Engineering"; departmentType = 4; name = "Engineering RC"; pixel_x = 30; pixel_y = 0},/turf/simulated/floor,/area/engine/break_room) +"dOl" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) +"dOv" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/light,/turf/simulated/floor/plating,/area/medical/virology) +"dOG" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/asmaint) +"dQi" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/engine/chiefs_office) +"dQj" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall/r_wall,/area/engine/chiefs_office) +"dQl" = (/obj/structure/table,/turf/simulated/floor/plating,/area/construction) +"dQm" = (/obj/structure/table,/obj/item/weapon/cable_coil{amount = 5},/obj/item/device/flashlight,/turf/simulated/floor/plating,/area/construction) +"dRu" = (/obj/structure/rack,/obj/item/weapon/storage/box/gloves{pixel_x = 4; pixel_y = 5},/obj/item/weapon/storage/box/samplebags{pixel_x = 3; pixel_y = -3},/obj/machinery/power/apc{dir = 4; name = "Maintenance Storage APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) +"dSG" = (/obj/structure/lattice,/obj/machinery/camera/emp_proof{c_tag = "Singularity Observation"; dir = 3; network = list("Singularity"); pixel_x = 20; pixel_y = 0},/turf/space,/area) +"dSI" = (/turf/space/transit/north/shuttlespace_ns9,/area/shuttle/escape_pod5/transit) +"dSJ" = (/turf/space/transit/north/shuttlespace_ns12,/area/shuttle/escape_pod5/transit) +"dSK" = (/turf/space/transit/north/shuttlespace_ns7,/area/shuttle/escape_pod5/transit) +"dSL" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) +"dSM" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/maintenance/asmaint) +"dSS" = (/turf/space/transit/north/shuttlespace_ns4,/area/shuttle/escape_pod5/transit) +"dST" = (/turf/space/transit/north/shuttlespace_ns6,/area/shuttle/escape_pod5/transit) +"dSZ" = (/turf/space/transit/north/shuttlespace_ns5,/area/shuttle/escape_pod5/transit) +"dTc" = (/turf/space/transit/north/shuttlespace_ns10,/area/shuttle/escape_pod5/transit) +"dTf" = (/turf/space/transit/north/shuttlespace_ns11,/area/shuttle/escape_pod5/transit) +"dTg" = (/turf/space/transit/north/shuttlespace_ns8,/area/shuttle/escape_pod5/transit) +"dTj" = (/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/space,/area) +"dTn" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology) +"dTq" = (/obj/structure/table/reinforced,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/multitool,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/weapon/rcd,/obj/item/weapon/rcd,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/weapon/rcd_ammo,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/obj/item/clothing/shoes/magboots,/turf/unsimulated/floor{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/centcom) +"dTr" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/window/eastleft{req_access_txt = "61"},/obj/machinery/door/window/westleft{req_access_txt = "61"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/tcommsat/chamber) +"dUa" = (/obj/structure/table/reinforced,/obj/item/device/radio/intercom{broadcasting = 0; dir = 1; frequency = 1443; listening = 1; name = "Spec Ops Intercom"; pixel_y = 28},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"dUb" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/computer/security/telescreen{name = "Spec. Ops. Monitor"; network = list("CREED"); pixel_y = 30},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) +"dUc" = (/obj/machinery/washing_machine,/turf/simulated/floor{icon_state = "bar"},/area/security/main) +"dUd" = (/obj/machinery/atmospherics/unary/vent_scrubber,/turf/simulated/floor{icon_state = "bar"},/area/security/main) +"dUe" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor{icon_state = "bar"},/area/security/main) +"dUf" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "bar"},/area/security/main) +"dUg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "bar"},/area/security/main) +"dUh" = (/obj/machinery/alarm{pixel_y = 22},/obj/machinery/camera{c_tag = "Security Washroom"; dir = 2},/turf/simulated/floor{icon_state = "bar"},/area/security/main) +"dUi" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/sink{pixel_y = 22},/turf/simulated/floor{icon_state = "bar"},/area/security/main) +"dUj" = (/obj/structure/mirror{pixel_y = 32},/obj/structure/sink{pixel_y = 22},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "bar"},/area/security/main) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10044,7 +10068,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaabaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10091,44 +10115,44 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaabaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaabaabaabaabaabaaaaaaaaaaaaaacaaaaabaabaacaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaabaabaabaacaacaabaabaacaabaacaacaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaiaajaakaalaamaaiaaiaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaiaanaaoaapaaqaaraasaataauaavaaoaawaaxaaiaabaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaabaaiaayaazaaoaaAaaoaaoaaBaaCaaDaaoaawaaEaaiaabaabaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaiaanaaoaaFaaGaaHaaoaaIaaJaaKaaLaaMaaMaaiaaNaaaaagaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaiaaMaaMaaMaaMaaOaaPaaBaaCaaDaaoaaQaaRaaiaabaaaaaaaaaaabaaSaaSaaSaaSaaSaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaTaaUaaVaaWaaXaaYaaZabaabbaaoabcabdaaiaabaaaaaaaaaaabaaSabeabfabgaaSaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiabhabiaaBabjabkablabvabnabbaboaaMabpaaiaabaaaaaaaaaaabaaSabqabrabsaaSaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaiabtaaiabmabuabwabxabyabzabAaaiaaMabBaaiaabaaaaaaaaaaabaaSabCabsabDaaSaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaabaaiabEaaMabFabGaaMabHabIaaaaaaaaaaaMabJaaiaabaabaacaabaababKabsabqabsabKaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiaaiaaiaaFaaEaakaalaamaaiaaiaaiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaiaawaaxaaDaaqaaraasaataauaavaaoaajaapaaiaabaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaabaaiaayaazaaoaaAaaoaaoaaBaaCabxaaoabkaboaaiaabaabaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaiaanaaoaaKaaGaaHaaoaaIaaJaaLaaOaaMaaMaaiaaNaaaaagaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaacaaiaaMaaMaaMaaMabyaaPaaBaaCabxaaoaaQaaRaaiaabaaaaaaaaaaabaaSaaSaaSaaSaaSaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaacaabaabaaiaaTaaUaaVaaWaaXaaYaaZabaabbaaoabcabdaaiaabaaaaaaaaaaabaaSabeabfabgaaSaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaiabhabiaaBabjacJablabvabnabbabjaaMabpaaiaabaaaaaaaaaaabaaSabqabrabsaaSaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaiabtaaiabmabuabwacpacnacoabzabAaaMabBaaiaabaaaaaaaaaaabaaSabCabsabDaaSaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaabaaiabEaaMabFabGaaMadaacKacLacLacZaaMabJaaiaabaabaacaabaababKabsabqabsabKaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaiabEaaMabFabLaaMabHabIaaaaaaaaaaaMabMabMabMabMabMaabaababNabqabsabqabOaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaiabPaaMaidaewaaiabSabTaaiaaaaaaabMabMabUabVabWabMabMaabaaSabqabqabsaaSabXabXabXabXabXabXabYaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaacaaiabZacaacbaccarbaceacfaaMaaaabMabMacgachachachaciabMabMaaSacjabqackaaSabXaclacmacnacoacpabYaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaiacqacracsactacuacvacwaaMaaaabMacxacyaczachacAacBacCabMacDacEacFacGacHabXaclacIacJacKacLabYaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMaaiaaiaaiaaiacNacOacPacQaaMaaMaaMaaMaaaabMacRacyacSachacAacBacTabMacUacVacWacXacYabXaclacmacZadaacLabYaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaiabPaaMakFaieaaiabSabTaaiaaaaaaabMabMabUabVabWabMabMaabaaSabqabqabsaaSabXabXabXabXabXabXabYaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaacaaiabZacaacbaccarbaceacfaaMaaaabMabMacgachachachaciabMabMaaSacjabqackaaSabXaclacmdUhdUidUjabYaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaiacqacracsactacuacvacwaaMaaaabMacxacyaczachacAacBacCabMacDacEacFacGacHabXaclacIdUddUedUcabYaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMaaiaaiaaiaaiacNacOacPacQaaMaaMaaMaaMaaaabMacRacyacSachacAacBacTabMacUacVacWacXacYabXaclacmdUfdUgdUcabYaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMadbadcaddadeadfadgadhadiaaqadjadkaaMaaaabMadlacyadmachacAacBadnabMadoadpadqadradsabXabXabXadtaduabXabYaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMadvadwadxadwadyadzacsadAaevadCadCaaMaaaabMabMadDadEachadFadGabMabMadHadIadqadJaaSabXadKadLadMadNadOadPadPadQadRadPadPaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMadvadwadxadwadyadzacsadAaidadCadCaaMaaaabMabMadDadEachadFadGabMabMadHadIadqadJaaSabXadKadLadMadNadOadPadPadQadRadPadPaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMadSadTadUadVadWadXadYadZaaGaeaaebaaMaaaaaaabMaecaedachaeeaefabMaegaaSaehaeiaejaaSaekaoVapUamMaonalbalcakOaeraesaetadPadPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMaaiaaiaaiaaiacNaeuadBabRaexaexaexaexaexaexabMabMaeyaezaeAabMabMaeBaeCaeDaeEaeFaeGaeHaqAaqFaffapVaiKaqzaeMaeNaeOaePaeQaeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMaaiaaiaaiaaiacNaguaewaevaexaexaexaexaexaexabMabMaeyaezaeAabMabMaeBaeCaeDaeEaeFaeGaeHaqAaqFaffapVaiKaqzaeMaeNaeOaePaeQaeRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaeSaeTaeUaeVaeWadAaexaeXaeYaeYaeYaeYaegaeZafaafbafcafdaegafeaffafgafhafiafjafkaflaflafmarNafoarMafqafrafsaftafuafvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafwafxafyafzadhafAaexafBafCafDafEafDafFafGafHafIafJafKafLafMafNafOafPafQafRafSafTafUafVarOafSasrafZagaagbagcagdadPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiageaaoagfaggaghagiaexagjagkafDaglagmaegagnagoagpagqagraegagsaenagtaguagvagwaemagxagyagzagyaemarKagBagCagDagEagFaeLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiagGagHagIagJagKadAaexagLagMagNagOagLabMagPagQagRagSagTaegagsaenagtagUagVagWagXagYagYagZagYahaarLahcahdaheaheahfahgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiahhahiahjaexahkahlahmahnahmahoahpahqahrahsahtahuahvaenagtahwahxahyaemahzagyahzagyahAarEahCahDahEahFadPadPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiahGahHadAaexahIahJahKahLahMahNahOahPahQahRahSahTahUahVagtahWahxahXaemagxagyagxahYahZarJadPadPaiaaibadPaicaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiakFadBaieaexaifaigaihaiiahMaijaikailahraimainahuaioaenagtaipaiqairaisaitaiuaemaivaiwareabYabXaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaexaexaexaexagLaixaiyaizaexaiAaiBaiCaiiahMaegaiDaiEaiFaiGaiHaegaiIaiJaiKaiLaffaiMabXaiNaiOaiPaiQaiRarDaiTabXabXabYabYabYabYabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaexaiUaiVaiWaiXaiYaiZajaaexajbajcajbajdajbaegagPagQajeagSagTaegabXajfajgabXajhajiabXajjajkajkajlabXajmaiTaiTabXaiSajnajoajoafXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaexajqajrajsajtajuajvajwajxajxajyajzajAajxajxajxajAajBajyajCajDajzajEajFajGajHafYajJajKajLajMagAahBasyajQajRafWaiTajSajTafpaeIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaexajWajXajYajZakaakbakcakdakeakfakgakhakiakjakdakiakkaklakmakiakgakhakiakiaknakoakpaiCakqakrafnaeKaeJajRakuabXaiTakvajoajoaeqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaexaexaexaexaexaexaexaexakxakyakzaexaexagLakAakBakCakDakEabQakGagLaexaexaexakHakIakJakJakKakLakMakNakJacdahbabXabXabYabYabYabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiafwafxafyafzadhafAaexafBafCafDafEafDafFafGafHafIafJafKafLafMafNbgyafPafQafRafSafTafUafVarOafSasrafZagaagbagcagdadPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiageaaoagfaggaghagiaexagjagkafDaglagmaegagnagoagpagqagraegagsaenaiUaoYagvagwaemagxagyagzagyaemarKagBagCagDagEagFaeLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiagGagHagIagJagKadAaexagLagMagNagOagLabMagPagQagRagSagTaegagsaenaiUagUagVagWagXagYagYagZagYahaarLahcahdaheaheahfahgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaiaaiaaiahhahiahjaexahkahlahmahnahmahoahpahqahrahsahtahuahvaenaiUahwahxahyaemahzagyahzagyahAarEahCahDahEahFadPadPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiahGahHadAaexahIahJahKahLahMahNahOahPahQahRahSahTahUahVaiUahWahxahXaemagxagyagxahYahZarJadPadPaiaaibadPaicaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaeuadBabRaexaifaigaihaiiahMaijaikailahraimainahuaioaenaiUaipaiqairaisaitaiuaemaivaiwareabYabXaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaexaexaexaexagLaixaiyaizaexaiAaiBaiCaiiahMaegaiDaiEaiFaiGaiHaegaiIaiJaiKaiLaffaiMabXaiNaiOaiPaiQaiRarDapEabXabXabYabYabYabYabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaexagtaiVaiWaiXaiYaiZajaaexajbajcajbajdajbaegagPagQajeagSagTaegabXajfajgabXajhajiabXajjajkajkajlabXajmapEapEabXaiSajnajoajoafXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaexajqajrajsajtajuajvajwajxajxajyajzajAajxajxajxajAajBajyajCajDajzajEajFajGajHafYajJajKajLajMagAahBasyajRajQafWaiTajSajTafpaeIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaexajWajXajYajZakaakbakcakdakeakfakgakhakiakjakdakiakkaklakmakiakgakhakiakiaknakoakpaiCakqakrafnaeKaeJajQalrabXaiTakvajoajoaeqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaexaexaexaexaexaexaexaexakxakyakzaexaexagLakAakBakCakDafOabQakGagLaexaexaexakHakIakJakJakKakLakMakNakJacdahbabXabXabYabYabYabYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabakPaexakQakRakSakTakUakVakWakXakYakZalaaepaeoaldalealfalgakZalhaliakWaljalkakJallalmalnaloalpalqacdalralsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaltaltaltaltaltaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalualualualvalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaalvalvalualvalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabalwaexalxalyalzaexalAalBalCalDalEalFalGalHalIalJalKalLalgalMalNalDalOalPalkakJalQalRalRalSalRalTacdalralsaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaltaltaltaltaltaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaaaaabaaaalUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaabaaaalUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabalValWaexalXalYalZaexamaambamcamdameamfamgamhamiamjalKamkalgamfamlammamnamoampakJamqamralRalSalRamsacdalralsaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaltaltaltaltaltaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaabamtaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaabamuaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabalValwaexamvamwamxamyamzamAaexaexaexagLamBamkamCamDamEamFamGagLaexaexaexamHamIamJamKamLaelamNalRamOacdalralsaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaltaltaltaltaltaaaaaaaaaaaaaaaaaaalualualualualuaaaaaaaaaamPaaaaaaaaaalualualvalvalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvalvalualuaaaaaaaaaamQaaaaaaaaaalualualvalvalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabamRamSamTamUaexamVamWamXaexamYamZanaanbancakZandaneanfanganhamkalgakZanialiakWaljanjakJankanlanmalSalRannacdalralsaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaltaltaltaltaltaaaaaaaaaaaaaaaaaaalUaaaaaaaabaabaabaaaaaaamPaabaabaaaaabaabaaaaaaalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaaaaabaabaaaaaaaaaamQaabaabaaaaabaabaaaaaaalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaamRanoanoanpaexamVanqanraexansantanuanvanwanxanyanzanAamkanBamkalganCalNanDanEanFanGakJanHanIanJanKanLanMacdanNalsalsaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaltaltaltaltaltaaaaaaaaaaaaaaaaaaaluaabanOanOanOanOanOaabanPaabanOanOanOanOanOaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaabanQanQanQanQanQaabanRaabanQanQanQanQanQaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaamRalVanSalwaexanTanUanVaexanWanXanYanZameamfaoaaobaocaodanBaoealgamfamlaofamcaogaohakJaoiaojaokaolaomaomakwaooaopalsalsalsaoqaoraosalsaabaaaaaaaaaaltaltaltaltaltaaaaaaaaaaaaaaaaaaaluaabaotaouaouaouaouaovaowaoxaoyaoyaoyaoyaozaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaluaabaoAaoBaoBaoBaoBaoCaoDaoEaoFaoFaoFaoFaoGaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaamRaoHaoIaexaexagLagLagLagLagLagLagLagLagLagLaoJaoKaoLaoMaoNaoOaoNagLagLagLagLagLagLaoPaoQaoRaoSaoSaoTaoUaktaoWaoXalsaoYaoZapaapaapbalsalsalsalsapcaltaltaltaltaltaaaaaaaaaaaaaaaaaaaluaabapdapdapdapdapdaabaowaabapdapdapdapdapdaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaabanQanQanQanQanQaabanRaabanQanQanQanQanQaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaamRalVanSalwaexanTanUanVaexanWanXanYanZameamfaoaaobaocaodanBamkalgamfamlaofamcaogaohakJaoiaojaokaolaomaomakwaooaopalsalsalsaoqaoraosalsaabaaaaaaaaaaltaltaltaltaltaaaaaaaaaaaaaaaaaaaluaabaotaouaouaouaouaovaowaoxaoyaoyaoyaoyaozaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaluaabaoAaoBaoBaoBaoBaoCaoDaoEaoFaoFaoFaoFaoGaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaamRaoHaoIaexaexagLagLagLagLagLagLagLagLagLagLaoJaoKaoLaoMaoNaoOaoNagLagLagLagLagLagLaoPaoQaoRaoSaoSaoTaoUaktaoWaoXalsakEaoZapaapaapbalsalsalsalsapcaltaltaltaltaltaaaaaaaaaaaaaaaaaaaluaabapdapdapdapdapdaabaowaabapdapdapdapdapdaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaabapeapeapeapeapeaabaoDaabapeapeapeapeapeaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamRapfapgapfaphapfapiapiapjapkaplapiapiapiapiapmapiapnapiapiapoappapqaprapsaptapuapvakJapwapxapyapzapAapBaksapCapDapEapEapEapFapGapHapIapJapKapLapMaltaltaltaltaltaaaaaaaaaaaaaaaaaaalvaaaaaaaaaaabaaaaaaaabaowaaaaaaaaaaabaaaaaaaaaalvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaaaaaaaabaaaaaaaabaoDaaaaaaaaaaabaaaaaaaaaalUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabapfapNapOapfapfapPapoapQapoapoapoapoapoapoapRapoapSapoapoapTapoajVapoapWapoapoapoakJapXapYapZaqaapyaqbaksaqcaqdaqeaqfaqgaqhaqiaqjaqkalsalsalsapEaltaltaltaltaltaaaaaaaaaaaaaaaaaaaluaabanOanOanOanOanOaabaowaabanOanOanOanOanOaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaabanQanQanQanQanQaabaoDaabanQanQanQanQanQaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapfaqlaqmaqnaqoaqpaqqaqraqsaqsaqsaqsaqsaqsaqtaquaqvaqwaqxaqyajPajOaqBaqCaqDaqBaqEakJaoPaoPaoPaoPaoPaoPajUaqGaqHaqIaqJaqKaqLaqMaqNaqOaqPalsaaaaaaaaaaltaltaltaaaaaaaaaaaaaaaaaaaaaaluaabaotaouaouaouaouaovaowaoxaoyaoyaoyaoyaozaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10137,95 +10161,95 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarYarZasaaaaasbascasdaaaaabaseaqQaseaaaaaaaaaaaaaaaaaaaaaalvaaaaaaaaaaabaaaaaaaaaaoDaaaaaaaaaaabaaaaaaaaaalvaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabapfapfapfapfaoIapfasfasgashasiasjaskaqTaslasmasmasmarzasnasoaspasqbwbalsassastasuasuasuasuasvastasuaswasuastasuasuaswasuasxbuAaszasAasBasCasDasDasDasEasFasFasFasFasFasEasDaaaaaaaaaaaaaluaabanOanOanOanOanOaabaowaabanOanOanOanOanOaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasGasHasIasHasGasJasKasJasGaabaseasLasMaaaaaaaaaaaaaaaaaaaaaaluaabanQanQanQanQanQaabaoDaabanQanQanQanQanQaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabapfasNasOapfaoIapfasPasQasRasSasTasUaqTasVasmasWasWarzasmasoapiapobABalsasYasZataatbatcatdateatfatdatgathatiatdatjatkatlatmbxDatoatpatqatratsattasDasEasFasFasFasFasFasEasDaabaaaaaaaaaalvaabaotaouaouaouaouaovaowaoxaoyaoyaoyaoyaozaabaluaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatuasHatvasHatuasJatwasJatuatxatyatzatAatBatBatCatxatxaabaaaaluaabaoAaoBaoBaoBaoBaoCaoDaoEaoFaoFaoFaoFaoGaabaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabapfatDatEatFatGatHatIatJatKatLatMatNaqTatOatPatQatRatSatTasoapiapobuxalsasYasZatUatVatcatdatWatXatdatYatZauaatdaubatZaucasDaudaueaufaPUaPWaPYaPZaQaaulasFasFasFasFasFaumasDasDasDaaaaaaalvaaaapdapdapdapdapdaabaowaabapdapdapdapdapdaaaalUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatuaunauoaupatuauqaurausatuaqQaqQautauuauvauwauxauyatxaaaaaaalUaaaapeapeapeapeapeaabaoDaabapeapeapeapeapeaaaaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaacapfauzaoHapfauAapfauBauCauDauEauFauGaqTauHauIauJauJauKauLauMauNauOasXauQauRauSatUatbatcatdauTatXatdatdauUatdatdatdauVatdasDauWauXaOIaOIaOPaOKaOMaOJaveasFasFasFasFasFavfavgavhaviaaaaaaalvaaaaabaaaaabaabaaaaaaaowaaaaaaaabaaaaaaaabaaaaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatuavjavkavlatuavjavkavlatuavmavnavoavoavoavoavpavqarmaaaaaaaluaaaaabaaaaabaabaaaaaaavraaaaaaaabaaaaaaaabaaaaluaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaacapfapfapfapfauAapfavsavtavtavuavtavvavtavwavxavxavxavxavyavzavAapoauPalsavCastavDatbavEavFauTavGavHavIavJavJavKavLavJavMavNavOavPavSavSavSavSavUaPRavWasFasFasFasFasFavWavXavYavZaaaaaaalvalvaluaaaaaaaabaaaaaaaowaaaaabaabaabaabalualualuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaasGatuawaawbasGatuawaawbasGatxawcatxatxatxatxatxawdaseaaaaaaalualualuaaaaaaaabaaaaweawfaweaabaabaabaabalualualuaabapfapfapfapfawgawhawhawhawhawhawhawhawiapfapfawjawkawlapfawmaoHawnawoawpawqawqawqawrawqawsawqawtawuawvawvawwawwawxawyawzawAaqjawBawCawDawEawFatdauTawGawGawHawIawIawJawHawGawGawKawLavBavSavSavSavSavUaPSawOasFasFasFasFasFawOawPavYavZaaaaaaaaaaaaaabaabaaaaabaaaaaaawQaaaaaaaabaaaaaaaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawRawSawSawSawTawSawSawSawUawVawWawUawUawUawXatxawYaseaaaaabaabaaaaaaaaaaaaaabaaaawZaxaaxbaabaaaaabaaaaaaaaaaaaaaaapfaoHaoHaxcaoHaoHaoHaoHaoHaoHaoHaoHaxdaxeaxfaxgaxgaxgaxgaxgaxgaxhaxiaxjaxkaxkaxkaxkaxlaxmaxkbniaxoaxlaxkaxkaxkaxkaxpaxqaxraxsaxtauSatdatdatdatdatWaxuawGawHawIaxvawIaxwaxxaxyaxzaxAaxBavSavSavSavSavUaPTaxIasFasFasFasFasFaxJaxKaxLaxMaaaaaaaaaaaaaaaaabaaaaabaaaaxNaxOaxNaaaaabaaaaaaaabaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatuaunauoaupatuauqaurausatuaqQaqQautauuaFLauwauxauyatxaaaaaaalUaaaapeapeapeapeapeaabaoDaabapeapeapeapeapeaaaaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaacapfaIkaoHapfauAapfauBauCauDauEauFauGaqTauHauIauJauJauKauLauMauNauOasXauQauRauSatUatbatcatdauTatXatdatdauUatdatdatdauVatdasDauWauXaOIaOIaOPaOKaOMaOJaveasFasFasFasFasFavfavgavhaviaaaaaaalvaaaaabaaaaabaabaaaaaaaowaaaaaaaabaaaaaaaabaaaaluaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaatuavjavkavlatuavjavkavlatuavmavnavoavoavoavoavpavqarmaaaaaaaluaaaaabaaaaabaabaaaaaaavraaaaaaaabaaaaaaaabaaaaluaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaacapfapfapfapfauAapfavsavtavtavuavtavvavtavwavxavxavxavxavyavzavAapoauPalsavCastavDatbavEavFauTavGavHavIavJavJavKavLavJavMavNavOavPbgFavSavSbgPavUaPRavWasFasFasFasFasFavWavXavYavZaaaaaaalvalvaluaaaaaaaabaaaaaaaowaaaaabaabaabaabalualualuaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaasGatuawaawbasGatuawaawbasGatxawcatxatxatxatxatxawdaseaaaaaaalualualuaaaaaaaabaaaaweawfaweaabaabaabaabalualualuaabapfapfapfapfawgawhawhawhawhawhawhawhawiapfapfawjawkawlapfawmaoHawnawoawpawqawqawqawrawqawsawqawtawuawvawvawwawwawxawyawzawAaqjawBawCawDawEawFatdauTawGawGawHawIawIawJawHawGawGawKawLavBbgFavSavSbgPavUaPSawOasFasFasFasFasFawOawPavYavZaaaaaaaaaaaaaabaabaaaaabaaaaaaawQaaaaaaaabaaaaaaaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawRawSawSawSawTawSawSawSawUawVawWawUawUawUawXatxawYaseaaaaabaabaaaaaaaaaaaaaabaaaawZaxaaxbaabaaaaabaaaaaaaaaaaaaaaapfaoHaoHaxcaoHaoHaoHaoHaoHaoHaoHaoHaxdaxeaxfaxgaxgaxgaxgaxgaxgaxhaxiaxjaxkaxkaxkaxkaxlaxmaxkbniaxoaxlaxkaxkaxkaxkaxpaxqaxraxsaxtauSatdatdatdatdatWaxuawGawHawIaxvawIaxwaxxaxyaxzaxAaxBbgSbhWbhWbhYavUaPTaxIasFasFasFasFasFaxJaxKaxLaxMaaaaaaaaaaaaaaaaabaaaaabaaaaxNaxOaxNaaaaabaaaaaaaabaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxPaxQaxRaxSaxTaxRaxRaxUaxSaxRaxVaxWaxXaxXaxYatxawYatyaabaabaaaaaaaaaaaaaaaaabaxZayaaybaycaydaaaaabaaaaaaaaaaaaaaaapfaoHapfayeayfaygaygaygaygaygaygaygayhayeayiayjayjayjayjayjayjayjaykaylaxkaymaynayoaypayqayraysaytayuayvaynaywaxkayxapoayyalsayzasZataatbatcatdauTayAayBaxyaxyayCayDayEayFayGavNayHayIayJayKayKayLayMaYVayOasFasFasFasFasFayPasDasDasDaaaaaaaaaaaaaabaabaabaabaaaayQayRayQaaaaabaaaaaaaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabatuawRaySawRayTaxRaxRayUawRaySawRayVaxQaxTayWatxawYatxatxayXatBatBatBatBatCatxayYayZazaazbayYapfapfawjawkawlapfapfapfaoHaroayeaaaaabaaaaabaaaaabaaaaabaaaayeayiayjazcazdazeazfazgayjaykaoHaxkazhazhaziazjazkazlazmaznazoazpazqazqaxkayxapoazralsayzasZatUatbatcatdatWazsaztazuazvazwazxazyazyazzazyasDazAbakaZaazDazEazFasDazGasFasFasFasFasFazGasDaabaaaaaaaaaaaaaaaaabaabaaaaabazHazIazJazKazLaabaaaaaaaabaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabazMasGazNavkazOazPazQazRazSazOavkazTazUasGazVazWatxazXazYazYazYazYazYazYavqazZaAaayYaAbaAcaAdayYaAeaoHaoHaoHaoHaoHaoHaoHaoHaAfayeaabaAgaAgaAgaAgaAgaAgaAgaabayeayiayjaAhaAiaAjaAkaAhayjaykaAlaxkaxkaxkaxkaAmaAnaynaAoaAnaApaxkaxkaxkaxkayxapoaAqalsayzasZatUatbatcatdauTaArazyazyazyazyazyazyaAsaAtaAuazyasDasDasDasDaAvasDasDazGasFasFasFasFasFazGasDaaaaaaaaaaaaaagaaaaaaaaaaaaaabaAwaAxaAyaAzaAwaabaaaaaaaabaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxPaySaAAaABaABaABaABaACaySaxPaADasGaAEaAFaAGaAGaAGaAGaAGaAGaAGaAGawdaAHaAaayYaAIaAJaAKayYaALaAMaALaALaALaALaALaALaALaALaANaaaaAgaAOaAPaAQaARaASaAgaaaayeayiayjaAhaATaAUaAVaAhayjaykapfaxkaAWaAXaziaAYaAZazlaBaaAZaBbaBcaBdaBdaxkayxapoayyalsaBeastavDatbavEaBfauTaArazyaBgaAtaBhaBhazyaAsaBiaAuazyaNBbqjbicaIXaBmaBnaabaBoaBpaBpaBpaBpaBpaBqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaAwaBraBsaBtaAwaabaaaaaaaBuaBvaBvaBvaBvaBwaBxaBvaBvaBvaBvaByaByaBvaBzaBAaBBaBCaBDaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaBEaBFaBGaBFaBFaBHaBIaBFaBFaBGaBJaBKasGayTaBLaBMaBNaBOaBPaBQaBRaBSaAGawdaBTatxayYayYaBUaBVaANaBWaBXaBYaBZaCaaCbaCcaCdaCeaCfaANaabaAgaCgaChaCiaCjaCkaAgaabayeayiayjaClaCmaCnaCmaCoayjaykaCpaxkaynaynaCqaCraAnaCsaAoaAnaCtaCuaynaywaxkayxapoayyalsayzawCawDaCvawFatdaCwaCxazyaCyaAtaAtaAtazzaCzaCAaCBazyaFEaSOaSPaQeaQdaBnaaaaabaaaaabaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaAwaCFaCGaCHaAwaBnaCIaCJaCKaCLaCMaCMaCMaCMaCMaCMaCNaCOaCOaCPaCQaCRaCOaCOaCSaCTaCUaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxPaySaAAaABaABaABaABaACaySaxPaADasGaAEaAFaAGaAGaAGaAGaAGaAGaAGaAGawdaAHaAaayYaAIaAJaAKayYaALaAMaALaALaALaALaALaALaALaALaANaaaaAgaAOaAPaAQaARaASaAgaaaayeayiayjaAhaATaAUaAVaAhayjaykapfaxkaAWaAXaziaAYaAZazlaBaaAZaBbaBcaBdaBdaxkayxapoayyalsaBeastavDatbavEaBfauTaArazyaBgaAtaBhaBhazyaAsaBiaAuazyaNBbqjakuaIXaBmaBnaabaBoaBpaBpaBpaBpaBpaBqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaAwaBraBsaBtaAwaabaaaaaaaBuaBvaBvaBvaBvaBwaBxaBvaBvaBvaBvaByaByaBvaBzaBAaBBaBCaBDaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaBEaBFaBGaBFaBFaBHaBIaBFaBFaBGaBJaBKasGayTaBLaBMaBNaBOaBPaBQaBRaBSaAGawdaBTatxayYayYaBUaBVaANaBWaBXaGAaENaELaCdaCcaCbaCeaCfaANaabaAgaCgaChaCiaCjaCkaAgaabayeayiayjaClaCmaCnaCmaCoayjaykaCpaxkaynaynaCqaCraAnaCsaAoaAnaCtaCuaynaywaxkayxapoayyalsayzawCawDaCvawFatdaCwaCxazyaCyaAtaAtaAtazzaCzaCAaCBazyaFEaSOaSPaQeaQdaBnaaaaabaaaaabaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaAwaCFaCGaCHaAwaBnaCIaCJaCKaCLaCMaCMaCMaCMaCMaCMaCNaCOaCOaCPaCQaCRaCOaCOaCSaCTaCUaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaBEaBJaBFaCVaCWaCWaCXaCYaCZaDaaDbaCWaCWaDcaDdawRayTaDeaAGaDfaDgaDhaDiaDhaDjaDkaDlaDmaqQaDnaDoaDpazYaDqaDraDsaDtaDtaDtaDuaDtaDtaDvaBXaANaaaaAgaDwaDxaDyaCjaDzaAgaaaayeayiayjaDAaDBaDCaDDaDEayjaykaDFaxkaxkaxkaxkaDGaAnaynaDHaAZaDIazpaDJaDKaxkaDLasqaDMalsayzaDNaDOaDOaDOaDOaDPaDQaDRaDSaDTaDUaDUaDUaDVaDUaDWaQfaKtaRuaKuaRAaEbaBnaBnaBnaBnaBnaBnaBnaBnaBnaBnaCIaCJaBnaBnaBnaCIaEcaEdaBnaBnaAwaAwaEeaEfaAwaEgaEhaEiaEjaEkaElaElaElaElaElaEgaEmaEnaEnaEoaEpaEqaEnaEraEsaEtaEraEraEraEraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDcaEuaEvaEwaCWaExaCWaExaCWaExaCWaExaCWaEyaEzazOayTaEAaAGaEBaECaEDaEEaEFaEGaAGaEHaEIazYaEJazYaEKaqQaALaELaDvaDtaDtaDtaDtaDtaDtaEMaENaEOaEPaEQaERaESaETaEUaEVaAgaabayeaEWaEXaEYaEZaFaaFbaFcaEXaFdaFeaxkaFfaynaziaFgaAZazlaFhaAnaFiaxkaxkaxkaxkaFjaFkaFlalsaFmariariariaFnaFoaFpaFqaFraFsaFtaFraFuaFraFvaFraFwaFxaRBaNzaREaIXaFAaFBaFCaFDaFDaFBaQbaFFaFFaFFaFFaFFaFGaFHaFFaRHaFJaRGaFLaFMaFNaFOaFPaFQaFRaFRaFRaFSaFTaFUaFVaElaFWaFXaFYaElaEnaFZaEnaGaaGbaGcaGdaGeaGfaGgaGhaGiaGjaGkaGlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGnaCWaCWaBGaCWaExaCWaExaGoaExaCWaExaCWaEyaEzazOayTaGpaAGaGqaGraGsaGtaGsaBMaBMaGuaGvaGwaGxaGyaGxaGxaGzaGAaGBaGCaGCaGCaGDaGCaGCaGEaGFaANaaaaGGaAgaGHaGIaGHaAgaAgaaaayeaGJayjaGKaGLaGMaGNaGOaGPaGQaGRaxkaGSaynaGTaCraAnaynaAoaAnaCtaGUaxkaxkaxkaGVaGWaGXalsaGYalsalsalsaGZalsaHaaHbazyaHcaAtazyaHdazyaHeazyaHfaHgaUpaUtaVLaXyaXzaHoaHnaXAaRJaXBaSQaRJaRJaSSaBvaHoaHtaHoaHuaHoaHoaSTaHxaHyaHzaHzaHAaHBaHCaHDaHzaHEaHFaHGaHHaHIaHJaHKaHLaElaHMaHNaEnaHOaHPaHQaHRaGeaHSaHTaGhaHUaEraEraEraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDcaHVaEvaEwaCWaExaCWaExaCWaExaCWaExaCWaEyaEzazOaHWaHXaHYaHZaIaaIaaIaaHXaIbaIcaHXaIdaIeaqQaIfauyauyaALaIgaIhaBXaIiaIjaIkaIlaImaInaIoaANaaaaIpaaaaIqaIraIqaaaaabaaaayeaGJayjaIsaItaIuaIvaIwayjaIxaoHaxkaIyaynaziaIzaIAazlaIBaICaIDaIEaIFaIGaIHaIIaIJaIKaILaIMaINaaaaaaaIOaIPaIQaIRazyaISaAtaAtaAtaCAaAtaAtaAtaITaIXatnaIXaKsaKraIXaIYaIXaJeaJgaJdaJfaJbaJcaJiaJhaJaaJiaNFaJiaJiaJiaJiaJjaJiaJiaJkaJiaJiaJiaJiaJlaJmaHHaJnaJoaJpaJqaJraElaJsaJtaJuaJvaJwaJxaHRaJyaHSaHTaGhaHTaJzaJAaJBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDcaEuaEvaEwaCWaExaCWaExaCWaExaCWaExaCWaEyaEzazOayTaEAaAGaEBaECaEDaEEaEFaEGaAGaEHaEIazYaEJazYaEKaqQaALaIgaDvaDtaDtaDtaDtaDtaDtaEMaGFaEOaEPaEQaERaESaETaEUaEVaAgaabayeaEWaEXaEYaEZaFaaFbaFcaEXaFdaFeaxkaFfaynaziaFgaAZazlaFhaAnaFiaxkaxkaxkaxkaFjaFkaFlalsaFmariariariaFnaFoaFpaFqaFraFsaFtaFraFuaFraFvaFraFwaFxaRBaNzaREaIXaFAaFBaFCaFDaFDaFBaQbaFFaFFaFFaFFaFFaFGaFHaFFaRHaFJaRGaSzaFMaFNaFOaFPaFQaFRaFRaFRaFSaFTaFUaFVaElaFWaFXaFYaElaEnaFZaEnaGaaGbaGcaGdaGeaGfaGgaGhaGiaGjaGkaGlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGnaCWaCWaBGaCWaExaCWaExaGoaExaCWaExaCWaEyaEzazOayTaGpaAGaGqaGraGsaGtaGsaBMaBMaGuaGvaGwaGxaGyaGxaGxaGzaIjaGBaGCaGCaGCaGDaGCaGCaGEaBZaANaaaaGGaAgaGHaGIaGHaAgaAgaaaayeaGJayjaGKaGLaGMaGNaGOaGPaGQaGRaxkaGSaynaGTaCraAnaynaAoaAnaCtaGUaxkaxkaxkaGVaGWaGXalsaGYalsalsalsaGZalsaHaaHbazyaHcaAtazyaHdazyaHeazyaHfaHgaUpaUtaVLaXyaXzaHoaHnaXAaRJaXBaSQaRJaRJaSSaBvaHoaHtaHoaHuaHoaHoaSTaHxaHyaHzaHzaHAaHBaHCaHDaHzaHEaHFaHGaHHaHIaHJaHKaHLaElaHMaHNaEnaHOaHPaHQaHRaGeaHSaHTaGhaHUaEraEraEraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDcaHVaEvaEwaCWaExaCWaExaCWaExaCWaExaCWaEyaEzazOaHWaHXaHYaHZaIaaIaaIaaHXaIbaIcaHXaIdaIeaqQaIfauyauyaALaBZaIhaBXaIiaBZaBZaIlaImaInaIoaANaaaaIpaaaaIqaIraIqaaaaabaaaayeaGJayjaIsaItaIuaIvaIwayjaIxaoHaxkaIyaynaziaIzaIAazlaIBaICaIDaIEaIFaIGaIHaIIaIJaIKaILaIMaINaaaaaaaIOaIPaIQaIRazyaISaAtaAtaAtaCAaAtaAtaAtaITaIXatnaIXaKsaKraIXaIYaIXaJeaJgaJdaJfaJbaJcaJiaJhaJaaJiaNFaJiaJiaJiaJiaJjaJiaJiaJkaJiaJiaJiaJiaJlaJmaHHaJnaJoaJpaJqaJraElaJsaJtaJuaJvaJwaJxaHRaJyaHSaHTaGhaHTaJzaJAaJBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJDaJEaBFaCVaCWaCWaCWaJFaCWaCWaJGaCWaCWaDcaJHaxPayTaxRaJIaJJaJJaJJaJJaJJaJJaJJaJKaJLatxatxaJMatxatxaALaJNaJOaJPaJQaJQaJQaJQaJRaJSaJTaANaJUaJVaJWaJXaJYaJZaJWaJWaKaayeaKbayjayjayjaKcaKdayjayjaKeaKfaxkaxkaxkaxkaKgaKhaGTaGTaKiaKjaIFaIFaKkaIJaIJaIJaIJaIJaKlaKmaKnaKoaIOaKpaIQaKqazyazyazyazyazyazyazyazyazyaITaHmaHlaHjaHiaHkaKwaMlaKyaJeaHhaIVaIWaIZaMraJiaHwaIUaHraHqaHraHsaHvaHpaKLaKMaKNaKOaFKaFIaFzaJiaKSaKTaKUaJnaKVaJpaJqaKWaElaKXaKYaKZaLaaLbaHRaHRaEnaEraLcaGhaHTaLdaLeaLfaaaaaaaaaaaaaaaaaaaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJDaBFaBGaBFaBFaLgaBIaBFaBFaBGaJEaLhasGaLiaxRawRaLjaLjaLkaLjaLlatuaLmaLnaJLaLoaLpaLqaLraLsaLtaLuaLvaLuaLuaLuaLuaLuaLuaLuaLwaLxaLyaLzaLAaLAaLBaLCaLAaLAaLAaLDaLEaLFaLGaLAaLHaLIaLJaLKaLLaIJaLMaLNaIJaIKaILaILaILaILaILaILaLOaLPaLQaLRaLSaLTaLUaLVaLWaIJaIJaIJaLXaLYaLZaLYaMaaMbaMcaMdaIJaMeaIJaIXaMxaMwaMvaPXaRzaRzaMtaMsaNwaMmaJeaMuaMoaMkaMkaMnaJiaMqaMpaMfaMhaMfaMfaMgaKJaMjaKJaMiaMzaMyaMAaKJaJiaJlaMBaMCaMCaMDaMEaMCaMFaElaMGaMHaEnaMIaMJaHRaHRaEnaMKaMLaMMaHTaEraEraEraaaaabaaaaaaaaaaaaaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawRaySaMNaABaABaABaABaMOaySawRaADasGaAEaMPazOaMQaMRaMSaMSaMTatuaMUaLnaMVaMWaLpaMXaMYaMZaNaaNbaNcaLuaLuaLuaLuaLuaLuaLuaLwaNdaNeaLuaLuaLuaNfaNgaLuaLuaLuaLuaNhaLuaLuaLuaNiaNdaLpaLKaIJaIJaIJaIJaIJaIJaIJaIJaIJaIJaIJaIJaNjaNkaNlaNmaNnaNoaNpaNqaNraIJaIJaIJaLKaIJaIJaIJaIJaIJaIJaIJaIJaNsaIJaIXaKzaKxaRzaUsaRzaRzaxnaNvaNwaNxaJeaKvaKHaKIaKKaKPaJiaKQaKRaxGaKAaKCaKEaJiaKFaKGaKFaJiaJiaJiaJkaJiaJiaJlaJmaNIaHHaHHaNJaHHaNKaElaEnaEnaEnaEnaEnaEnaNLaEnaHTaHTaGhaHTaNMaNNaEraaaaabaaaaaaaaaaaaaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawRaySaMNaABaABaABaABaMOaySawRaADasGaAEaMPazOaMQaMRaMSaMSaMTatuaMUaLnaMVaMWaLpaMXaMYaMZaNaaNbaNcaLuaLuaLuaLuaLuaLuaLuaLwaNdaNeaLuaLuaLuaNfaNgaLuaLuaLuaLuaNhaLuaLuaLuaNiaNdaLpaLKaIJaIJaIJaIJaIJaIJaIJaIJaIJaIJaIJaIJaNjaNkaNlaNmaNnaNoaNpaNqaNraIJaIJaIJaLKaIJaIJaIJaIJaIJaIJaIJaIJaNsaIJaIXaKzaKxaRzaUsaRzaRzaxnaNvaNwaNxaJeaKvaKHaKIaKKaKPaJiaKQaKRaxGaKAaKCaKEaJiaKFaKGaKFaJiaJiaJiaJkaJiaJiaJlaJmaNIaHHaHHaNJaHHaNKaElaEnaEnaEnaEnaEnaEnaNLaEnaHTaHTaGhaHTaQsaNNaEraaaaabaaaaaaaaaaaaaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabazMasGazOavkazOaNOaNPaNQaNRazOavkaNSaNTasGayTaxRazOaNUaNVaMSaMSaMTatuaNWaLnaJLaMWaLpaNXaNYaNZaNZaNZaOaaObaOcaNZaOdaNZaNZaOeaOfaOgaOhaNZaOiaOjaOkaOlaOmaOnaOoaOpaOqaOraOraOsaOtaNdaLpaLKaIJaOuaIJaOvaOvaOvaOvaOvaOvaOvaOvaOwaOxaOvaOvaOvaOvaOyaOvaOvaOvaOvaOvaOzaOAaOvaOvaOvaOvaOvaOvaOvaIJaIJaIJaIXazBayNaSRaSRaSRaBjazCaNvaNwaOFaJeaJeaJeaJeaJeaxEaJiaxDawNaxCaxHaxGaxGaJiaOLaxFaONaOOaONaONawMaOQaJiaJlaJmaORaORaOSaOTaOUaOUaOVaElaOWaOXaOYaEraOZaPaaPbaHTaHTaPcaPdaEraPeaEraPfaPfaPfaaaaaaaaaaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabatuaxPaySaxPayTaxRaxRayUaxPaySaxPaPgawSaPhaxRaxPaPiaPiaLkaPiaLlatuaPjaLnaJLaPkaPkaPlaPmaPkaPnaPnaPnaPnaPnaPoaPpaPnaPnaPnaPnaPnaPqaPraPsaPraPtaPuaPvaLuaLvaPwaPxaPyaPzaLvaLuaPAaPBaPBaIJaIJaIKaPCaKnaKnaPDaPDaPDaPDaPEaPFaPGaPHaPIaPJaPJaPKaPLaPJaPMaPNaPOaPFaPPaPDaPDaPDaPDaKnaKnaPQaIIaIJaIJaIXauiaRvaRwaRwaRwaRwauYaKBaPVaKDaukaujaSRavbavcavdaJeaJeauZavaavRavTavVaJiaQcavQauhauhauhauhaugaQgaJiaQhaJmaQiaHHaOSaOTaHHaHHaQjaElaQkaQlaQmaEraQnaQoaQpaQqaQqaQraQpaQsaQtaEraQuaQvaPfaQwaQxaQyaabaaaaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabatuaxPaySaxPayTaxRaxRayUaxPaySaxPaPgawSaPhaxRaxPaPiaPiaLkaPiaLlatuaPjaLnaJLaPkaPkaPlaPmaPkaPnaPnaPnaPnaPnaPoaPpaPnaPnaPnaPnaPnaPqaPraPsaPraPtaPuaPvaLuaLvaPwaPxaPyaPzaLvaLuaPAaPBaPBaIJaIJaIKaPCaKnaKnaPDaPDaPDaPDaPEaPFaPGaPHaPIaPJaPJaPKaPLaPJaPMaPNaPOaPFaPPaPDaPDaPDaPDaKnaKnaPQaIIaIJaIJaIXauiaRvaRwaRwaRwaRwauYaKBaPVaKDaukaoeaSRavbavcavdaJeaJeauZavaavRavTavVaJiaQcavQauhauhauhauhaugaQgaJiaQhaJmaQiaHHaOSaOTaHHaHHaQjaElaQkaQlaQmaEraQnaQoaQpaQqaQqaQraQpaNMaQtaEraQuaQvaPfaQwaQxaQyaabaaaaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawRaQzaxRaQAaPhaxRaxRaQBaQAaxRaQzaPhaxRaxRaxRaQCaQDaQDaQDaQDaQDaQDaQDaQEaQFaPkaQGaQHaQIaQJaQKaQLaQMaQNaQOaQPaQQaQRaQSaQTaQUaQVaQWaQXaQYaQZaPtaRaaPvaPvaRbaPvaRcaPBaPBaRdaReaPBaPBaPBaRfaIJaIKaRgaaaaaaaaaaaaaaaaaaaaaaPFaRhaRiaRjaRkaRlaRmaRlaRnaRoaRpaRqaPFaaaaaaaaaaaaaaaaaaaaaaRraIIaIJaRsaRtaXxaSNaKDaKDaKDaKDaKDaVJaRxaKDaKDaKDaSRaRzaDXaRCaRDaDZaRFaDYaFyaRIaEaaJeaONaRKaRLaRLaRLaRLaRMaRNaJiaJlaJmaROaROaOSaOTaRPaRPaRQaElaElaRRaElaEraRSaPaaPdaRTaRTaPcaPdaEraEraEraRUaRVaRWaRXaRYaRZaabaabaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaxPaSaaSbaSaaSaaSaaSaaSaaSaaSbaSaaSaaScaxRaxRaSdaxRaxRaSeaxRaSfaSgaShaSiaSjaPkaQGaSkaSlaPnaSmaQPaQPaQPaQPaQPaQQaSnaQPaQPaQPaQVaPqaSoaSpaSqaPtaRaaPvaSraSsaStaSuaPBaSvaSwaSxaSyaSzaSAaIJaIJaIKaRgaaaaaaaaaaaaaPFaPFaPFaPFaSBaSCaSDaSEaSFaSGaSHaSIaSJaSKaSLaPFaPFaPFaPFaaaaaaaaaaaaaRraIIaIJaIJaSMaKDaUmaBkaUoaKDaBlaCCaSPaCDaUqaUoaKDaSRaRzaCEaRCaSUaSVaSWaSXaSYaSZaRCaTaaTbaTcaRLaTdaTeaRLaTfaONaJiaJlaJmaQiaHHaOSaOTaHHaHHaHHaTgaThaHHaTiaEraTjaTkaTlaRTaRTaTmaTlaTnaEraToaTpaTpaTpaTpaTqaTraQxaQxaTsaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasGasGaTtaTuaTuaTuaTuaTuaTuaTuazUasGatuaTvaTwaTxaTxaTxaTyaTxaTxaTxaTzaTxaTzaPkaQGaTAaTBaPnaTCaQPaQPaTDaTEaTFaTGaTDaQPaQPaQPaTHaPqaTIaTJaTKaPtaTLaPvaTMaTNaTOaTPaPBaTQaTRaTSaSxaTTaTUaIJaIJaIKaKmaPEaTVaTWaPFaPFaTXaTYaTZaUaaUbaUbaUcaUdaUbaUcaUdaUbaUeaUfaUgaUhaUiaPFaPFaTWaTVaUjaUkaIIaIJaIJaIXaUlaUmaUqaUoaKDaNHaNEaKDaNuaNDaUoaKDaSRaRzaOBaRCaUuaUvaUwaUxaUyaUzaRCaUAaUBaUCaRLaUDaUEaRLaUFaUGaJiaJlaJmaUHaUHaOSaOTaUIaHHaHHaUJaHHaUKaULaEraUMaUNaUOaRTaRTaUPaUOaUQaEraURaTpaTpaTpaTpaTpaUSaUTaUUaUVaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaabaUXazPaxTaxRaUYaUZaVaaVbaVcaVdaVeaVfaVgaVhaViaVjaVkaVlaPnaVmaQPaQPaTDaTFaVnaVoaTDaQPaQPaQPaQVaPqaPtaPtaVpaPtaVqaVraVraVraVraVsaVtaVuaSxaSxaSxaSxaTUaIJaIJaIKaILaILaVvaVwaVxaPFaVyaSGaUbaVzaUbaUbaUbaUbaVAaUbaVBaUbaVCaVDaVDaVEaVFaPFaVGaVwaVHaVIaILaIIaIJaIJaSMaKDaSNaKDaKDaKDaNyaNCaKDaNuaVKaUoaKDaSRaRzaNtaRCaVMaVNaVOaVPaVQaUzaVRaJeaONaUCaVSaRLaRLaRLaUFaONaJiaVTaJmaElaElaVUaOTaVVaVWaHHaVXaVYaKVaVZaWaaWbaWcaWdaWeaWeaWfaWgaWhaWaaWiaWjaTpaTpaTpaTqaWkaQxaQxaWlaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaWmaWnaWoayTaWpaWqaWraWsaWtaWuaWvaWwaWxaWsaWyaWzaWAaWBaWCaPnaWDaQPaWEaWFaWGaWGaWHaWGaWGaWGaWIaWJaWKaQGaWLaWMaWNaWOaQGaQGaWPaPkaWQaPBaWRaWSaWTaWUaWUaWVaIJaIJaIJaIJaIJaWWaWXaWYaWZaXaaXbaUbaXcaXdaXeaXfaXgaXhaXiaXjaXkaXlaXmaXaaXnaXoaXpaXqaXraXsaXtaXuaXvaIJaXwaIXaXxaUmaUnaUoaKDaOGaOEaKDaNuaUqaUoaKDaSRaOHaDXaRCaVMaRCaXCaRCaXDaUzaXEaJeaQcaUCaRLaRLaRLaRLaUFaQgaJiaXFaXGaXHaXIaXJaXKaXLaXLaXLaXLaXLaXLaXMaXNaXOaRTaRTaRTaRTaRTaRTaXPaXQaXRaTpaTpaTpaTpaTqaRZaaaaabaabaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaxPaSaaSbaSaaSaaSaaSaaSaaSaaSbaSaaSaaScaxRaxRaSdaxRaxRaSeaxRaSfaSgaShaSiaSjaPkaQGaSkaSlaPnaSmaQPaQPaQPaQPaQPaQQaSnaQPaQPaQPaQVaPqaSoaSpaSqaPtaRaaPvaSraSsaStaSuaPBaSvaSwaSxaSyaBYaSAaIJaIJaIKaRgaaaaaaaaaaaaaPFaPFaPFaPFaSBaSCaSDaSEaSFaSGaSHaSIaSJaSKaSLaPFaPFaPFaPFaaaaaaaaaaaaaRraIIaIJaIJaSMaKDaUmaBkaUoaKDaBlaCCaSPaCDaUqaUoaKDaSRaRzaCEaRCaSUaSVaSWaSXaSYaSZaRCaTaaTbaTcaRLaTdaTeaRLaTfaONaJiaJlaJmaQiaHHaOSaOTaHHaHHaHHaTgaThaHHaTiaEraTjaTkaTlaRTaRTaTmaTlaTnaEraToaTpaTpaTpaTpaTqaTraQxaQxaTsaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasGasGaTtaTuaTuaTuaTuaTuaTuaTuazUasGatuaTvaTwaTxaTxaTxaTyaTxaTxaTxaTzaTxaTzaPkaQGaTAaTBaPnaTCaQPaQPaTDaTEaTFaTGaTDaQPaQPaQPaTHaPqaTIaTJaTKaPtaTLaPvaTMaTNaTOauzaPBaTQaBYaBYaSxaBYaTUaIJaIJaIKaKmaPEaTVaTWaPFaPFaTXaTYaTZaUaaUbaUbaUcaUdaUbaUcaUdaUbaUeaUfaUgaUhaUiaPFaPFaTWaTVaUjaUkaIIaIJaIJaIXaUlaUmaUqaUoaKDaNHaNEaKDaNuaNDaUoaKDaSRaRzaOBaRCaUuaUvaUwaUxaUyaUzaRCaUAaUBaUCaRLaUDaUEaRLaUFaUGaJiaJlaJmaUHaUHaOSaOTaUIaHHaHHaUJaHHaUKaULaEraUMaUNaUOaRTaRTaUPaUOaUQaEraURaTpaTpaTpaTpaTpaUSaUTaUUaUVaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaabaUXazPaxTaxRaUYaUZaVaaVbaVcaVdaVeaVfaVgaVhauvaVjaVkaVlaPnaVmaQPaQPaTDaTFaVnaVoaTDaQPaQPaQPaQVaPqaPtaPtaVpaPtaVqaVraVraVraVraVsaVtaVuaSxaSxaSxaSxaTUaIJaIJaIKaILaILaVvaVwaVxaPFaVyaSGaUbaVzaUbaUbaUbaUbaVAaUbaVBaUbaVCaVDaVDaVEaVFaPFaVGaVwaVHaVIaILaIIaIJaIJaSMaKDaSNaKDaKDaKDaNyaNCaKDaNuaVKaUoaKDaSRaRzaNtaRCaVMaVNaVOaVPaVQaUzaVRaJeaONaUCaVSaRLaRLaRLaUFaONaJiaVTaJmaElaElaVUaOTaVVaVWaHHaVXaVYaKVaVZaWaaWbaWcaWdaWeaWeaWfaWgaWhaWaaWiaWjaTpaTpaTpaTqaWkaQxaQxaWlaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaWmaWnaWoayTaWpaWqaWraWsaWtaWuaWvaWwaWxaWsaWyaWzaWAaWBaWCaPnaWDaQPaWEaWFaWGaWGaWHaWGaWGaWGaWIaWJaWKaQGaWLaWMaWNaWOaQGaQGaWPaPkaWQaPBaWRaWSaCaaWUaWUaWVaIJaIJaIJaIJaIJaWWaWXaWYaWZaXaaXbaUbaXcaXdaXeaXfaXgaXhaXiaXjaXkaXlaXmaXaaXnaXoaXpaXqaXraXsaXtaXuaXvaIJaXwaIXaXxaUmaUnaUoaKDaOGaOEaKDaNuaUqaUoaKDaSRaOHaDXaRCaVMaRCaXCaRCaXDaUzaXEaJeaQcaUCaRLaRLaRLaRLaUFaQgaJiaXFaXGaXHaXIaXJaXKaXLaXLaXLaXLaXLaXLaXMaXNaXOaRTaRTaRTaRTaRTaRTaXPaXQaXRaTpaTpaTpaTpaTqaRZaaaaabaabaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaySavkaySaxRaXSaTzaXTaXUaXVaXVaXVaXVaXWaXXaTxaXYaXZaYaaYbaYcaYcaYcaYdaYcaYeaYfaYgaYhaYiaYiaYjaQVaYkaYlaYmaYnaYoaYpaYqaYqaYraYsaYtaYuaYvaYwaYwaYwaYxaPBaYyaIJaYzaYAaYBaYCaYDaYEaYFaYGaYHaYIaYJaPFaPFaPFaPFaPFaPFaYKaYLaYMaYNaXdaYOaYPaPFaYEaYDaYQaYRaYAaYSaIJaIJaSMaKDaYTaKDaKDaKDaNzaKDaKDaUraKDaYUaYUaYUaYUaODaYWaYXaRCaRCaRCaYYaYZaOCaJeaZbaZcaRLaZdaZdaZeaZcaZfaJiaZgaZhaZiaZjaOSaOSaOSaOSaZkaOSaOSaOSaZlaXQaRTaRTaRTaRTaRTaRTaRTaXPaXQaXRaTpaTpaZmaTpaZnaRZaabaabaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaZoaZpaWoayTaZqaZraZsaZtaZuaZvaZwaXVaZxaZyaTxaZzaZAaYaaYbaZBaZCaZDaZEaYcaZFaZGaZHaPnaZIaZJaZKaZLaPnaZMaZNaZOaZOaZOaZOaZPaZOaZOaZQaZRaZRaZRaZSaZRaZTaZUaZVaZWaZXaZYaZZaZZaZZaZZbaababbacbabbadbaebaebaebaebaebaebaebaebafbagbagbahbagbagbagbagbagbagbagaYSaIJaIJaIXbaiaNAaNBbalaKDbamaKDbanbaobajaYUbapbaqbaraJeaJeaJebasbatbatbataJeaJeaJebauaRLaRLbavbawbaxbayaNGaJibazaZhbaAaElbaBbaCbaDaVWbaEbaCbaFaVWbaGaErbaHaHTbaIaRTaRTbaIaHTbaJaErbaKbaLbaMaTpaTpaTqaRZaaaaabaabaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaZoaZpaWoayTaZqaZraZsaZtaZuaZvaZwaXVaZxaZyaTxaZzaZAaYaaYbaZBaZCaZDaZEaYcaZFaZGaZHaPnaZIaZJaZKaZLaPnaZMaZNaZOaZOaZOaZOaZPaZOaZOaZQaZRaZRaZRaZSaZRaZTaZUaZVaZWaZXaZYaZZaZZaZZaZZbaababbacbabbadbaebaebaebaebaebaebaebaebafbagbagbahbagbagbagbagbagbagbagaYSaIJaIJaIXbaiaNAaNBbalaKDbamaKDbanbaobajaYUbapbaqbaraJeaJeaJebatbasbasbasaJeaJeaJebauaRLaRLbavbawbaxbayaNGaJibazaZhbaAaElbaBbaCbaDaVWbaEbaCbaFaVWbaGaErbaHaHTbaIaRTaRTbaIaHTbaJaErbaKbaLbaMaTpaTpaTqaRZaaaaabaabaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaUWaabaxPbaNaPhbaOaTzbaPbaPbaQbaRbaSbaQbaTbaPaTxbaUbaVbaWbaXbaYbaYbaZbbabaYbbbaZGbbcaPnaZIaZJbbdbbeaPnbbfaZNaZObbgbbhbbhbbhbbiaZObbjbbkbblbbmaZUaZUaZUaZUaIJaIJbbnbbobbpbbqbbrbbsbbtbbubbvbbwbadbaebbxbbybbzbbAbbBbbCbbDbafbagbbEbbFbbGbbHbbIbbJbbKbbLbagbbMbbNbbNaIXaIXaIXaIXaIXbbOaSMbbObbPaIXaIXaRtaIXaIXaIXbbQbbRbbRbbRbbRbbRbbRbbSbbRbbQaNGbbTbbTbbUaZiaZiaZiaZibbQbazbbVbaAaElaElaElaElaElbbWaElaElaElaElaErbbXbbYbbZbbZbbZbbZbcaaEraErbcbaTpbccaTpaTpaTqaTraQxaQxaWlaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazMasGbcdaABaWoatuatuatuatuatuatubcebaOaTzaTxaTxaTxaTxaTxaTxaTxaTxaTxbcfaQGaYaaYbaZBbcgbchbciaYcbcjbckbclaPnaZIaZJbcmbcnaPnbbfaZNaZObbhbcobcobbhbcoaZObbjbcpbcqbcqbcrbcsbctaZUbcuaIJaYzbcvbcwbcxbcybczbczbcybcAbcBbadbaebcCbcDbcEbcFbcGbcHbcIbcJbcKbcLbcMbbLbcNbcObcPbbLbcQbagaYSbcRaIJbcSbcTbcUaZiaZiaZiaZiaZiaZiaZibcVaZiaZiaZiaZibcWaZiaZiaZiaZiaZiaZiaZiaZibcXaZiaZiaZiaZiaZiaZiaZiaZibcYbcZbdabdbbdcbdbbddbdbbdebdfbdgbdbbdhbdbbdibdjbdbbdbbdbbdbbdbbdbbdkbdlbdmbdnbccaTpaTpaTpaUVbdoaUUaUVaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdpbdpbdpbdpbdpbdpbdpbdpbdpbdpaaaaabbdqazPaxTbdrbdsbdtbdtbdtbdtbdtbdtbdubdvaPkaWPaQGaYaaYbaYcaYcbdwbdxaYcaPnaPnbdyaPnaZIbdzbcmbdAaPnbbfaZNaZObdBbdCbbhbcobdDaZObbjbdEbcqbcqbcqbdFbdGaZUbdHaIJaYzbdIbdJbdKbdLbdMbdNbdObcAbdPbadbaebdQbdRbdSbdSbdSbdTbdUbaebdVbdWbbLbbLbcNbdXbcPbbLbdYbagbdZaIJaIJbcSbcTbcUaZiaZiaZiaZiaZiaZiaZibeaaZiaZiaZiaZiaZiaZibebbdbbdbbdbbdbbdbbdbbecbdbbdbbdbbdbbdbbdbbdbbedbeebefbegaZiaZiaZiaZiaZiaZhaZiaZiaZiaZiaZiaZiaZiaZiaZiaZiaZiaZibehbcYbeiaTpaTpbccaTpaTpbejaWkaQxaQxaTsaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdpbdpbdpbdpbdpbdpbdpbdpbdpbdpbdpaWmaWnaWoayTbekbelbembembenbembembembeoaPkaPkaPkaPkaYaaYbaZBbepbeqberaYcbesbetbeuaPnaPnaPnaPnbevaPnbbfaZNaZObewbbhbcobexbeyaZObbjaZUbezbcqbcqbeAbeBaZUbeCaIJaYzbeDbeEbdKbdLbeFbeGbdObcAbeHbadbeIbeJbeKbdSbeLbdSbcDbeMbeNbdVbeObePbeQbeRbeRbeSbbLbeTbagaYSbeUaIJbcSbcTbcUaZibeVaZibeWbeXbeXbeXbeYbeXbeXbeXbeZaZiaZiaZiaZibfaaZibeVbfbbfcbfdaZiaZiaZibfebffbfgbfhbfibfjbfkaZiaZiaZiaZiaZibflbfmbfaaZiaZiaZiaZiaZiaZiaZiaZiaZiaZiaZiaZibcYbfnbfobfpbfqbfrbfsbftbfuaabaaaaabaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdpbdpbdpbdpbdpbdpbdpbdpbdpbdpbdpaySavkaySaxRbfvbembfwbfxbfybfybfzbfAbfBbfCbfCbfCbfCbfDbfEbfFbfFbfGbfHbfFbfIbfIbfJbfIbfKbfLbfLbfMbfLbfNbfObfPbfQbfRbfRbfSbfTbfPbfUbfVbfWbcqbcqbeAbfXbfYbeCaIJaYzbfZbgabgbbcybcybcybcybcAbgcbadbaebgdbgebgfbggbghbgebgibaebdVbgjbgkbglbgmbgnbgobgpbgqbagbgraGWaGWbgsbgsbgsbgsbgsbgsbgsbgtbgubgubgvbgwbgxbgtbgybgybgybgybgybgybgzbgzbgzbgAbgzbgzbgzbgBbgCbflbgDbgEbgFbgGbgHaZiaZibgIbgIbgJbgJbgJbgJbgJbgKbgLbgLbgMbgLaZibgLbgMbgLbgLbgNbgObgObgObgObgPbgQbgRaQxbgSaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdpbdpbdpbdpbdpbdpbdpbdpbdpbdpbdpaZoaZpaWoayTbgTbembgUbembgVbgWbembembemaQGbgXbgYbgYbgZaYcaZBbhabchbhbaYcbhcbhdbhebhebhfbhgbhhbhibhjbhhbhkbhlbhmbhnbhmbhmbhobhpbhqbhrbhsbcqbcqbhtbhubhvbeCaIJbhwbfZbhxbhybhzbhAbhBbhCbhDbadbadbaebhEbhFbhGbhHbhIbhJbhKbaebdVbhLbhMbhNbhObhPbgobbLbhQbagaYSaIJbhRbgsbhSbhTbhUbhVbhWbhXbhYbhZbhZbiabibbibdBkbgybidbiebifbigbgybihbiibijbikbilbimbinbiobipbiobiobiobiqbirbisbitbisbiubiubgJbivbiwbixbgJbiybizbiybgJbgKbgLbgNbgObiAbiBbiAbgObiCbiDbgObiEbgQaaaaabaaaaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdpbdpbdpbdpbdpbdpbdpbdpbdpbdpaaaaaaazObaNaPhbiFbembiGbembiHbiIbiJbiKbembiLaQGbiMaQGbiNaYcaYcaYcaYcaYcaYcbiObiPbiQaQGbiRaZOaZOaZObiSaZOaZOaZObiTaZOaZOaZOaZObiUbiVbiWbiXbcqbcqbeAbiYbfYbeCaIJbiZbfZbjabhybadbadbadbadbjbbadbjcbjdbjebjfbbxbjgbbxbjhbjibjjbjkbhLbjlbbLbjmbjnbgobjobbLbjpbjqbjrbjsbgsbjtbjubjvbjwbjxbjybjzbjAbhZbjBbhZbhZbjCbjDbjEbjFbjGbjHbgybjIbjJbjKbjJbjLbjMbgzbjNbjObjPbjQbgEbjRbjSbjTbjUbjVbjWbjXbjYbjZbkabjZbkbbkcbkdbkebgJbkfbkgbkhbgObkibkjbkkbklbkmbknbgObiEbgQaaaaabaaaaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazMasGbcdaABaZpaTuaTuaTuaABaTubkoayTaxRaxRbembkpbkqbkrbiJbksbktbkubkvbkvbkvbkvbkwbkxbkxbkxbhhbhhbhhbkybkzbkzbkzbkAaZObkBbkCbkDbkEbkFbkGbkHbkIbkJbkKbkLbkMbkNbkObkPbkQbkRbkSbkTbkTbkUbjrbkVbkWbkXbkYbkZblablbblcbldbleblfbjjbjjbjjbjjblgbjjbjjbjjbjjblhblibljblkbllblmblnbloblpblqblraIJaIJbgsblsbltblubjwblvblwbjzblxblyblzblyblyblAblBblCblDblEblFbgyblGbjJblHbjJbjLblIbgzblJblKblLblMbgEbjRblNblOblPblPblQblRblSblTblTblTblUblVblWblXblYblZbmabmbbmcbmdbmebkmbmfbmgbmhbgObiEbmiaabaabaaaaaaaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmjbmkavkaySawSawSawSaPhaxRaxRbembmlbmmbiJbmnbembembemaPkbmobmpbmqbmrbmqbmqbmqbmrbmqaPkaPkaZOaZOaZObmsaZObkHbkHbmtbkHbkHbkHbkHbkHbmubmvbmwbmxbmybmzbmzbmzbmAbmBbmCbmDbmEbmFbmGbmHbmIbmIbmJbmKbmLbmMbmNbmObmPbmQbmRbmSbmTbmUbmVbmSbmWbmQbmXbhLbmYbmZbmYbagbagbagbnabdVbnbaIJaIJbgsbncbndbnebjwbnfbngbjzbjBbhZbnhdKXbnjdLabgybnlbnmbnnbnobgyblGbnpbjJbjJbjLbjMbgzbgEbgEbgEbgEbgEbjRbjSbnqbnrbnsbntbnubnvbnwbnxbnybnybnzbjZbnAbgJbnBbnCbnDbgObnEbnFbnGbnHbnIbnJbgObiEbnKaaaaabaaaaagaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaabmjavkavkaySaxQaxQaxQbnLaxQaxQbembnMbnNbnObiJbemaaaaaaaaaaabaabbnPbnPbnPbnPbnPbnPbnPaaaaaabnQbnRbnSbnTbnUbkHbkHbkHbkHbkHbkHbkHbkHbnVbiXbcqbnWbnXbnYaZUaZUbnZbkNaZUaZUboabobbocbodboebofbofbogbofbohboibofabHbojbokbmSbolbmUbolbmSbombojbmXbonboobeRbopboqborbosbotboubovaIJbowboxboybozbnebjwboAbhXboBbjBbhZboCboDbhZboEbgybjEboFboGboHbgyboIboJboKboLboMboLboNboOboOboOboOboOboPbjSboQbjUbjUbntboRboSboTboUboVboVboWboXboYbgJboZbnCbpabgObpbbpcbpdbnHbkmbpebgObiEbpfaaaaabaaaaaaaaaaaaaabbpgbphbpibphbpibphbpjaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxPaySaySbpkaTubplazMasGbpmbplbembpnbpobppbgWbemaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPaaaaaabpqbprbkHbpsbptbptbptbptbptbpubptbptbptbpvbpwbpxbpybpzbpAaZUbpBbeAbpCbpDbpEbeCbpFbpGbodbodbofbpHbpIbpJbpKbpLbofbpMbpNbpObpPbpQbpRbpQbpSbpTbpUbpVbonbpWbeRbpXbagbpYbmYbpZbqabovaIJaIJbgsbqbbqcbnebqdbqebhXbqfbqgbqhbqidKWbhZbqkbqlbqmbqnbqobqpbgybgzbqqbgzbgzbqrbqrbqrbqrbqrbqrbqrbqrbjRbjSbnqbnrbnsbqsbqtbqubqvbqwbqwbqwboWbjZbqxbqybqzbkgbqAbgObqBbqCbqDbqEbkmbqFbgObiEbgQbgQaabaaaaaaaaaaaaaabbqGbqHbqIbqJbqJbqKbqGaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbqMbqNbqObqPbkHbkHbkHbqQbqQbqQbqQbnTbkHbkHbkHbmubqRbcqbqSbqTbqUbqVbqWbeAbcqbqXbqYbeCbpFbqZbrabrbbrcbrdbrebrfbrgbrhbofabHbribrjbmSbpQbrkbpQbmSbrlbrmbmXbrnbrobrpbrqbagbrrbmYbrsbqabovaIJbrtbgsbrubrvbnebrwbrxbhXbrybjBbhZaRybrzbrBbrCbgybrDbrEbrFbrGbgybrHbrIbrJbrKbrLbrMbrNbrObrPbrQbrRbrSbiqbirbrTbrUbrVbrWbrXbjYbrYbqwbqwbqwbrZbjZbsabgJbsbbsbbscbgObsdbsebsfbsgbkmbshbgObiEbsibgQaabaaaaaaaaaaaaaabbsjbskbqIbqJbqIbslbpiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbsmbsnbsmbsobspbkHbkHbkHbkHbkHbkHbnTbkHbsqaZOaZObsrbcqbcqbssbstbsubsvbeAbcqbcqbswaIJbpFbsxbsybszbsAbsBbsCbsDbsEbsFbofabHbrmbrmbsGbsHbsIbmSbsJbsKbsLbsMbsNbsObsObsObsObsObsObsPbsQbsRaGWbsSbsTbsUbsVdKOdKPbhXbhXbsYbjBbhZbhZbhZbhZbsZbtabhZbtbbhZbtcbtdbtebtfbhZbtgbthbtibtjbtkbtlbtmbtnbqrbtobtpbtqbtqbtrbtsbttbjYbtubjZbjZbtvbtwbjZbtxbjYbtybtzbtAbtBbtCbtDbtEbtFbtGbgObgObtHbgQbgQbtIbtJbtJbtJbtKbkfbqGbqJbqIbqJbqJbqKbqGaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaagaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbtLbtMbtLbtNbkHbkHbkHbqQbqQbqQbqQbnTbkHbtObtPaZObtQbcqbcqbssbtRbtSbsvbtTbtUbpxbtVbtWbtXbovaRrbszbtYbtZbuabubbucbudbuebufbugbuhbuibujbrkbujbsKbukbulbulbsNbumbunbuobupbuqburbusbutdKMaIJbvXdKNbvZdKJdKKdKLbuBbuCbuDbuEbuDbuFbuDbuDbuGbuHbuDbuHbuDbuDbuDbuIbuJbuKbuLbthbuMbtjbuNbuNbuObuPbqrbjRbjSbuQbuRbuSbuTbuTbjYbuUbuVbuWbjYbuXbjZbuYbuZbvabvbbvcbvdbvebvfbvgbvhbvibsbbkgbvjbvkbvlbvmbvnbvnbvnbvnbvobvpbphbpibvqbpibphbvraabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbvsbqNbvtbvubkHbkHbkHbkHbkHbkHbkHbnTbkHbtObvvaZObvwbdFbcqbvxbpxbvybpxbvzbcqbqXbpEbeCaIJbovaRrbszbofbvAbvBbvCbvDbvEbogbvFbvGbvHbvIbsLbvJbvKbvLbvMbvNbvObsNbvPbvQbvRbvSbvTbvTbvUbvVbvWaIJbvXbvYbvZbwabhZdKIbwcbwdbwebwfbwebwgbwebwhbwibtebwjbtebtebwkbwlbwmbwmbwnbwobwpbwqbtjbwrbwsbtmbuPbqrbgFbjSbisbwtbwubwtbwtbjYbjYbjYbjYbjYbwvbwwbwxbwybwzbwAbwBbwCbwCbwDbwEbnCbwFbwGbwHbvjbnCbvlbwIbnCbwJbnCbwKbkfbtIbtJbtKbVybkfaaaaaaaabaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbtLbtMbtLbwMbwNbkHbkHbwObwPbwQbwPbwRbwPbwSbwTbfPbwUbwVbkQbwWbkQbwXbkRbwVbwYbwZbqYbeCaIJbxabxbbxcbofbxdbxebxfbxgbxhbogbxibxjbxkbxlbxmbxnbxobxpbxqbxrbxsbxtbxubxvbxvbxwbxxbxybxzbsQbxAaIJbxBbgtbqfbxCbhZdKVbxEbxFbxGbxHbxIbxJbxKbxFbxGbxLbxLbxGbxFbxMbgubwmbxNbuNbuNbxObthbtjbxPbxQbxRbxSbqrbxTbxUbxVbxWbxXbwCbwCbxYbxZbwCbyabybbycbydbyebwCbyfbygbyhbyibyjbykbylbylbylbylbylbtHbymbgQbtIbtKbkfbnCbvnbynbyobwLbypbyqbyraaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbysbytbysbyubyvbywbywbywbywbywbyxbyybkHbtObyzaZObyAbyBbyCbyDbyEbnXbyFbyGbyHaZUaZUbyIaIJbyJbyKbszbofbyLbyMbyNbvBbyObogbyPbyQbyRbySbyTbyUbyVbyWbyXbyYbyZbsNbzabzbbzcbzdbxxbxybxzbsQbzeaIJbzfbzgbzhbzibhZdKVbzjbxFbzkbzlbzmbznbzobxFbzpbzqbzqbzrbxFbzsbhZbwmbztbuNbzubzvbzwbzxbzybzzbzzbzAbzBbzCbzDbzEbzFbzGbvebvebzHbvebzIbvebvfbvebvebvebvebzJbzKbzLbzMbzNbzObzPbzQbzRbzSbylbiEbzTbmiaabaabbkfbzUbvnbyobyobvobzVbzWbzXaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbzYbzZbAaaZOaZObAbbqNbqNbqNbAcaZOaZObAdbAebAfaZObAgbAgbAgbAhbAgbAibAjbAkbAlbAmbAibeCaIJbAnbAoaTVbofbuebApbAqbAqbArbAsbAtbAtbAubAtbAvbAwbAxbAybAzbAzbAzbAAbsObsObsObsObsObsObsObsQdKTaXudKUbxFbxFbACbADdKSbxFbxFbAFbAGbAHbAIbAIbAJbAKbALbAMbAKbANbzsbhZbwmbAObAPbAQbARbASbATbAUbARbARbAVbAWbAXbAYbAZbAZbAZbAZbAZbBabAZbAZbBbbBcbBdbBebBebBfbBgbvjbBhbzMbBibBjbBkbBlbBmbBnbylbiEbzTbpfaaaaaabkfbBobBpbkfbvobkfbkfbvobkfaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBqaabaaaaaaaaaaaabAgbBrbBsbBtbBubAibBvbBwbBxbBybAibeCaIJbBzbBAbBBbBAbBCbBDbBEbBFbBGbBHaXubBIaXubBJbBKbBLbBMbBNbBOaIJaMcbBPaMdbcSbBEbBQbBRaIJbBSbBTbzeaIJdKRbxFbBVbBWbBXdKQbBZbCabCbbCcbCdbAIbAIbCebAKbCfbCgbChbANbzsbCibwmbCjbCkbClbCmbCnbCobCpbCqbCrbqrbqrbgFbCsbAZbCtbCubCvbCwbCxbCydLbbBbbCAbCBbCCbBebBebCDbvjbBhbCEbCFbCGbCHbCIbCJbCKbylbiEbzTbgQbgQbgQbgQbgQbkfbkfaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAgbCLbCMbCNbCObCPbCQbCRbCSbCTbAibeCbCUbCVaIJaIJaIJaIJbcSbBEbBQbCWaIJaIJbCXaIJaIJbCYbCZbDaaIJaIJaIJaIJbBPaIJbcSbBEbBQbDeaXubDcbDbbDjbDdbEybDfbDgbDhbDibEzbDkbDlbDmbDnbDobDpbzobxFbDqbDrbDsbDtbxFbzsbhZbwmbwmbwmbwmbwmbqrbqrbqrbqrbqrbqrbDubDvbDwbAZbDxbDybDzbDAbDBbDCbDDbBbbDEbDFbDGbDGbBebDHbDIbDJbDKbDLbDMbCJbDNbDObDPbylbiEbzTbgQbDQbDRbDRbgQaabaabaabaabaabaabaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabbDSbDTbDTbDUbDVbDVbDWbDWbDWbDWbDXaabaabaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPaaaaaaaaaaaaaaaaaaaaaaaabDYbDZbEabDZbEbaaaaaaaaabAgbAgbEcbEdbCNbEdbEebEfbEgbEhbEibAibEjbeCbEkbElbtWbEmbtWbEnbEobEpbtXaIJbEqbErbjrbjrbEsaXuaXuaXuaXuaXuaXubEtbEubEvbEwbExbECbEBbEDbEAdKDbFQbECbEEdKHdKGdKFdKEbxFbxFbxGbEFbxGbxFbxFbxFbxFbxFbxFbxFbxFbzsbhZbEGbEHbEIbzjbEJbqfbEKbELbEMbENbEObEPbEQbERbAZbESbETbCvbEUbEVbEWbEXbBbbEYbDFbDGbDGbBebEZbFabFbbFcbFdbFebFfbFgbFhbFibFjbFkbFlbFlbFlbFlbFmbmiaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabbFnbFobFpbFobDVbDWbDWbFqbFrbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFsbFtbFubFtbFsbFvbFwbFxbAgbFybEdbFzbFAbFBbFCbFDbFDbFEbFFbAibFGbFGbFHbFGaTVaTVaTVaTVbFIbFIbFIbFIbFIbFIbFIbFIbFJbbNbbNbFKbFKbFKbFKbFLbFMbFKbFKbFKbFKbFNbFObFPaIPbAEbBYbBUbFRbFSbFTbFUbFVbxFbFWbFXbFYbxGbFZbFZbGabGbbGcbGdbxGbGebhZbhZbhZbhZbhZbzsbqibGfbGgbGhbGibqfbGjbGkbGlbGlbGlbGlbGlbGlbGlbGlbGlbBbbGmbGnbGobGobBebGpbGqbGrbGsbGsbGsbGsbGtbGubGvbGwbGsbGsbGsbGsbzTbGxbGyaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacbGzbFobFobGAbDWbDWbFqbFqbGBbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEabGCbGDbGCbEabGEbGFbGGbAgbGHbGIbEdbGJbGKbAibGLbGMbGNbGObAibGPbGPbGQbFGaaaaaaaaaaaabFIbGRbGSbGTbGUbGVbGWbFIbGXbGYbGZbFKbHabHbbHcbHdbHebHfbHgbHhbHibHjbHkbHlbHmbHnbFNbxFbHobFXbCdbHpbHqbxFbHrbHsbHtbHubAIbAIbAIbAIbAIbHvbHwbHxbtebtebtebtebwkbzsbHybGfbGgbGhbHzbqfbGjbGkbGlbHAbHBbHBbHCbHDbHEbHFbHGbBbbHHbHIbHJbHJbBebHKbHLbBhbHMbHNbHObHPbHQbHRbHSbHTbHUbHVbHWbGsbgQbHXbgQbHYbHYbHYbHYbHYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabHZbDWbGzbDWbDWbFqbFqbFqbFqbFqbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFsbGCbGCbGCbIabIbbEdbEdbIcbIdbEdbEdbIebIfbAibAibAibIgbAibAibIhbIibIjbIkaaabIlbImbInbIobIpbGWbIqbIrbIsbItbIubIvbIwbIxbIybIzbIAbIBbICbIDbIEbIFbFKbFKbIGbIHbIIbIJbIKbILbIMbAIbFXbINbHpbAIbIObIPbFXbIQbxFbIRbISbAIbAIbITbIUbqfbqfbqfbqfbqfbIVbzsbzsbIWbGfbGgbGhbIXbIYbIZbGkbGlbJabJbbHBbJcbHBbHBbHBbJdbBbbJebDFbJfbJfbBebBgbJgbJhbJibJjbJjbJjbJjbJkbJlbJmbJnbJobJpbGsbJqbJrbJsbJtbJubJvbJwbJxaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabbDVbDWbJybJzbJzbFqbFqbFqbFqbFqbFqbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEabGDbGDbGDbEabJAbJBbJCbJDbJEbEdbJFbJGbJHbJIbJJbJJbJKbJJbJJbJLbJMbJNbJOaaabJPbJQbJRbJSbJTbGWbJUbJVbJWbJXbFIbJYbJZbKabFKbKbbKcbKdbKebKfbKgbKhbKibKjbKkbKlbKmbKnbKobKpbxLbKqbKrbKsbKtbKubxFbKvbFXbKwbxFbKxbHpbAIbAIbKybKzbqfbKAbKBbKCbKDbjBbzsbtcbKEbKFbKFbKFbKFbKGbKHbKIbGlbHAbKJbHBbHBbHBbHBbHBbKKbBbbKLbDFbKMbKMbBebKNbKObBhbKPbJlbJlbKQbKRbKSbKTbKUbKVbKWbKXbKYbKZbLabLbbLcbLdbLebJwbLfaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabDWbDWbLgbFqbFqbFqbFqbFqbFqbFqbFqbFqbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaabFsbLhbLibLjbFsbLkbFwbFxbAgbAgbLlbLlbLlbAgbAgbFGbFGbFGbFGbLmbFGbFGbLnbJOaaabJPbLobLpbLqbLrbLsbLtbLubLrbLrbLvbLwbLxbLybFKbFKbFKbFKbFKbFKbLzbFKbFKbLAbLBbLCbLDbLEbLFbLEbxLbLGbLHbLIbLJbLKbxFbLLbLMbLNbxFbLObLPbLQbLRbLSbLTbqfbLUbhZbjCbLVbjBbLWbtebLXbLYbLZbMabMbbqfbGjbGkbGlbGlbMcbHBbHBbHBbMdbGlbGlbBbbMebMfbKMbKMbBebMgbKObBhbHMbMhbMibMjbMkbMlbMmbMnbJlbMobMpbGsbMqbMrbMsbHYbMtbMubMvbMwaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabbDWbFqbFqbFqbFqbFqbFqbMxbFqbMybFqbFqbFqbFqbFqbDWbDWaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMzbDZbMAbDZbMBaaaaabaaaaaabAgbMCbMDbMEbAgaaaaaaaaabFGbMFbMGbIhbFGbLnbJOaaabJPbMHbMIbMJbMKbGWbMLbMMbMNbMObFIbMPbMQbMRbMSbMTbMTbMTbMTbMUbMVbMWbMWbMXbMYbMZbNabNbbNcbNdbNebNfbNgbNebNhbNfbNebNebNgbNhbNebNebNhbNebNebNgbNebNibNjbqfbrCbqfbNkbzsbNlbqfbqfbqfbqfbqfbqfbNmbGkbGlbNnbNobNpbNqbNrbNsbNtbNnbBebNubNvbCCbBebBebNwbKObNxbHYbHYbGsbGsbGsbGsbGwbGsbNybJlbNzbGsbNAbHXbgQbHYbNBbNCbNDbHYaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabDWbNEbNEbNEbNEbNEbNEbNFbFqbNGbNEbMybFqbFqbFqbFqbDWaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaabaaaaaaaaaaabaaaaaaaaabFGbNHbNIbNJbFGbLnbNKaaabNLbImbNMbNNbNObGWbGWbNPbNQbNRbNSbNTbNUbNVbNWbNWbNWbNWbNWbNXbNYbNZbOabObbOcbOdbOebOfbOgbOhbOibOjbOkbOlbOlbOjbOlbOlbOkbOlbOlbOlbOlbOlbOlbOkbOmbrCbOnbOobOpbOqbOrbOsbOtbOubOvbOwbOxbOybFNbGjbGkbGlbOzbOAbOBbOCbODbOEbOFbOGbBebBebOHbBebBebOIbOJbKObnCbOKaabbOLbOMbONbOObOPbOObOQbORbOSbGsbOTbGxbOUbHYbOVbOWbOWbOXaacaacaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOYbFobFobFobFobFobFobFobOZbFrbFqbFqbFqbFqbPabFrbDWaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabbFGbFGbFGbFGbFGbPbbFGaaaaaaaaaaaabFIbPcbPdbPebPfbFIbPgbFIbPhbPibPjbPkbPkbPlbPmbPnbPobPpbPqbPrbPrbPrbPsbPtbPrbPrbPubPqbPvbPrbPrbPrbPsbPrbFNbFNbFNbFNbFNbFNbFNbFNbFNbGkbrCbPwbPxbPybPzbPAbzsbPBbPCbPDbPEbPFbPGbFNbGjbPHbPIbPJbPKbPLbPMbPNbPObPObPPbPQbPRbPSbnCbPTbnCbOJbKObnCbPUaabbOLbPVbPVbPWbPXbPYbPZbQabQbbGsbQcbGxbzTbHYbHYbHYbHYbHYaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabDWbJzbJzbJzbJzbJzbJzbQdbFqbJybJzbQebFqbFqbFqbFqbDWaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabQfbQgbLnbFGbFGbFGbFGbFGbFIbFIbFIbFIbFIbFIbFIbFIbQhbQibQjbQkbQlbQmbQnbQnbQobQpbQqbQrbQsbQtbQubQvbQwbQxbQybQzbQAbQBbQCbQDbQEbQFaabaaaaaaaaaaaaaaaaaabFNbQGbGkbrCbNjbqfbrCbqfbNjbQHbrCbqfbqfbqfbqfbqfbFNbGjbQIbGlbQJbQJbQKbQLbQMbQNbQLbQObQPbQQbQRbQSbnCbQTbOJbKObQUbQVaabbOLbPVbQWbOObQXbOObQYbQZbRabGsbQcbGxbRbbRcbgQaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabbDWbFqbFqbFqbFqbFqbFqbMxbFqbQebFqbFqbFqbFqbFqbDWbDWaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabbRdbRebRfbRgbRgbRhbRibRjbRkbRlbRmbRnbRobRnbRpbRkbRqbRrbRsbRtbRubRvbRwbRwbRxbRybQqbRzbQsbQtbRAbQvbRBbRCbRDbREbRFbRGbRFbRHbRIbRJaabbRKbRKbRKbRKbRKaaabFNbRLbRMbOjbOkbOlbOjbRNbRObRPbRQbRNbOlbOlbOlbOlbOlbRRbRSbGlbRTbRUbRVbRWbRXbRYbRZbGlbGlbqzbSabqzbqzbqzbSbbScbSdbqzbGsbGsbGsbGsbGsbSebGsbGsbGsbGsbGsbQcbGxbSfbRcbgQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabDWbDWbLgbFqbFqbFqbFqbFqbFqbFqbFqbFqbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSgaaaaabaabbShbShbShbShbShbShbShbShbSibSjbRkbSkbRlbRlbRnbSlbRpbRkbSmbSnbRsbSobSpbQnbSqbQnbSrbSsbStbSubSvbSwbRFbQvbSxbRCbSybSzbSAbSBbSCbSDbSEbSFbSGbSHbSIbSJbSKbRKaaabFNbSLbSMbSNbSObSPbSQbSRbSSbSTbSUbSRbSRbSVbSWbSRbSRbSXbGkbGlbGlbGlbGlbGlbGlbSYbGlbGlbSZbTabTbbTcbTdbqzbSabTebTfbqzbTgbThbTibTjbTkbQcbzTbzTbTlbzTbzTbQcbGxbTmbgQbgQbgQaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabbDVbDWbNGbNEbNEbFqbFqbFqbFqbFqbFqbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTnbTobTpbTqbTqbTqbTrbTsbTtbTubTvbTwbTxbShbTybSjbRkbTzbRlbRmbRlbRnbTAbRkbTBbSnbRsbRtbTCbQnbQnbQnbTDbTEbTFbTGbTHbRFbTIbTJbRFbTKbSybSzbTLbTMbTMbTNbTObTPaabbTQbTRbSKbTSbRKaabbFNbTTbTUbFNaaaaabaaabTVbTWbTXbTYbTVaabaabaaaaabbFNbTZbUabOlbOlbOlbOlbOlbOlbOjbOlbOlbOlbOlbOkbUbbOlbRNbUcbUdbUebUfbUgbUgbUgbUgbUhbUibUgbUgbUgbUgbUgbUjbUkbUlbUmbUnbgQbgQbgQbgQaaaaabaaaaaaaaaamRamRamRaabaaaaaaaabaaaaaaaabaaaaaabHZbDWbGzbDWbDWbFqbFqbFqbFqbFqbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUobUobUobUobUobUpbUqbUrbUsbUsbUtbShbUubUvbUwbUxbUybUzbRlbRlbUAbRkbUBbUCbUDbUEbUEbUFbUGbUHbCzbUIbUJbUKbULbRFbQvbRFbUMbUNbUObUPbUQbURbUSbUTbUUbUVbUWbSHbUXbSKbSKbRKaabbFNbTcbTcbFNaaaaabaaabUYbUZbVabVbbUYaabaabaaaaabbFNbVcbVdbVebVfbKjbVgbVgbVhbVibVjbVkbSRbSRbSVbSWbSRbSRbVlbVmbVnbVobVobVpbVqbVqbVrbVobVobVpbVqbVqbVrbVobVsbzTbVtbVubVvbVwbVxbrAbVzbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVBbVCbVCbVDbDWbDWbFqbFqbVEbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaabaabbVFbVGbVHbVIbVHbVJbVKbVLbVMbVMbVNbShbVObIhbRkbVPbRlbVQbRlbRlbRlbVRbTBbSnbRsbVSbPkbVTbVUbVVbVWbVXbQqbVYbVZbRFbQvbRFbWabVUbWbbWcbWdbWebWfbWgbWfbWhaabbRKbRKbRKbRKbRKaabbFNbFNbWibFNaabaabaabbWjbWkbWlbWmbWjaabaaaaaaaabbFNbFNbFNbFNbFNbWnbFNbFNbWobWpbWqbFNbFNaaaaaaaaaaaabWrbWsbWtbWubWraaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaabgQbWvbWwbWxbgQbgQbgQbgQaaaaabaaaaaaaaaamRamRamRaabaaaaaaaabaaaaaaaabaabaabbWybWzbWAbGAbDVbDWbDWbFqbFrbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbVFbWBbWCbWDbWEbUrbWFbUrbWGbUrbWHbWIbWJbWKbRkbWLbRlbVQbRlbRlbWMbRkbWNbWObRsbWPbPkbQnbWQbWRbSvbWSbQqbWTbUMbWUbWVbWWbWXbWYbWZbXabXbbXcbSAbXdbXebXfbSGbSHbXgbXhbXhbRKaabaabbTcbXibTcaaaaabaaabXjbXkbXlbXmbXjaabaaaaaaaabaaaaaaaaabFNbXnbXobXpbFNaaaaabaaaaaaaabaaaaaaaaaaaabXqbXrbXsbXtbXqaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaabXubXubXvbXwbXuaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabbXxbDTbDTbDUbDVbDVbDWbDWbDWbDWbDXaabaabaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabbVFbXybXzbXAbXzbXBbXCbXDbXEbXFbXGbShbLnbIhbRkbXHbRlbXIbXJbXKbXLbRkbXMbSnbRsbXNbXObXPbXQbRIbXRbXSbXTbRIbXUbXVbXWbRIbXXbXYbXZbYabYbbRFbYcbYdbYebTPaabbTQbYfbYgbYhbRKaabaaaaaaaaaaaaaaaaaaaaabYibTVbYjbYkbYiaabaabaabaabaabaabaaabFNbYlbYmbTcbFNaaaaabaaaaaaaabaaaaaaaaaaaabYnbYobYpbYqbYnaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaabXubYrbYsbYtbXuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabbUobUobUobUobUobShbShbShbShbShbShbShbLnbIhbRkbRkbRkbRkbRkbRkbRkbRkbXMbSnbRsbYubYvbYwbYxbYybYzbYAbYBbYCbYDbYEbQvbRFbYFbYGbYHbYIbYJbRFbYcbYKbYLbYMbUWbSHbYNbXhbXhbRKaabaaaaaaaaaaabaabaabaaabTVbYObYPbYQbTVbTVbTVbTVbTVbTVbTVaabbFNbFNbFNbFNbFNaaaaabaaaaaaaabaaaaaaaaaaaabYRbYSbYTbYUbYRaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaabXubYVbYWbYXbXuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbIhbFGbFGbFGbFGbYYbIhbIhbYZbZabZabZabZabZbbZcbZcbZdbZebZebZebZebZebZebZebRjbFGbZfbSnbRsbZgbZhbZibPsbPrbZjbZkbZlbZkbZmbZnbQvbRFbSybZobZpbZqbZrbRFbYcbYdbZsbTPaabbRKbRKbRKbRKbRKaabaaabTVbTVbTVbTVbTVbTVbTVbZtbZubZvbZwbZxbZybZzbZAbZxbTVaabaabaabaabaabaabaabbZBaabaabaabaabaabaabaabbZCbWrbZDbZEbZCaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaabXubZFbZGbZHbXuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabbZIbZJbZKbZLbZMbZNbIhbIhbSibZObIhbFGbFGbZPbZQbFGbFGbZRbZSbZQbFGbFGbZTbIhbSjbFGbXMbSnbRsbZUbZVbQnbZWbPkbZXbZYbZZcaabPqcabbQvbRFbWacacbYHbVZcadcaecafcagcahbXfbSGbSHcaicajcakbRKaabaaabTVcalcamcancaobTVcapcaqbZucarbZwbWkcascatcaubWkbTVaaaaaaaaaaabaaaaaaaaaaabaaaaaaaabaaaaaaaaaaaabWrcavcawcaxbWraaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaacaycazcaAcaBcaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaabIhbFGbFGbFGbFGcaDcaEcaEcaFcaGcaHcaGaaacaIaaaaaaaaaaaaaaaaaaaaabFGcaJbIhbSjbFGcaKcaLcaMcaNcaOcaPcaQcaRcaScaTcaUbQncaVcaWcaXbRFbWacaccaYbVZcadcaZbYcbYdcbabTPaabbTQcbbcbccbdbRKaabaaabTVcbecbfcbgbZwbTVcbhbZwcbicbhbZwcbjcbkcblcbmcbnbTVaaaaaaaaaaabaaaaaaaaabWrbWrbWrbWrbWrbWrbWrbWrbWrcbocbpcbqbWraaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaabcbrcbscbraabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabbFGcbtcaGcaGcbucaGcbvcaGcaGcbwcbxcaGcaGcbycbzcbxcaGcaGcaGcaGcbAcbBcbCcbDbRscbEcbFbQnbQobQnbQnbQnbQnbQncbGcbHcbIbRFbWacacbYHbVZcbJcbKcbLcbMcbNbYMbUWbSHcbOcajcajbRKaabcbPcbQcbRcbScbTcbUcbTcbVcbWcbXcbYcbZccaccbcbTcccccdbTVaaaaaaaaaaabaaaaaaaaabWrcceccfccgcchcciccjcckcclccmccnccoccpccqaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabccrccsccraabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvalvalualualvalualualualUalualualualvalvaaaaaaaabaabaaaaaaaaaaaaaaaaaaaabbIkcbtcctccuccvccwccxccycczccAccBccCcaGccBccDccEccFccFccGcaGccHccIccJccKbRscbEccLccMbQobQnbSqbQnccNccOccPccQccRbRFbWabRFccSbRFccTccUbYcbYdccVbTPaabbRKbRKbRKbRKbRKaabaaabTVccWbUZccXccYccZbVbcdacdbcdcccXcddcdeccXbVbcdfbTVaabaabaabaabaabaabaabbWrcdgcdhcdgcdicdjbYocdkcclcdlcdmcdlbWrbWraaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaabaaacdnaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaaaalvaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaabJOcbtcdocdpcdqcdrcdscdscdscdscdtcducdvccFcdwccFccFcdxccFcdycdzcdAcdBccKbRscbEcdCcdDbQocdEcdFcdGbQocdFcdHcdIcdJbRFbWabRFbSybZocdKcdLcdMcdNcdObXfbSGbSHcdPcdQcdQbRKaabaaabYicbjcdRcdSbTVcdTcdUcdecdVcdWcdXcdYcbmcdZceacebbTVaaaaaaaaaaabaaaaaaaaabWrcdgcdgcdgceccedccjceecefcegcehceicejbWraaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabaaacekaaaaabaabaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaacelcemcenaaacelcemcenaaacelcemcenaabceoaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaabJOcbtcdocepccFcdxceqccFccFccFccFccFcepcepccFccFccFccFcercescdzcetcdzceucevcdCcdCcewbQocexceycezbQoceAbPqceBceCceDceEbWWbUOceFceGbSAbUQbYdceHbTPaabbTQceIceJceKbRKaabaabaabaabaabaabbTVceLbWkbWmceMceNbWjcdaceObWjceOcdabTVaaaaaaaaaaabaaaaaaaaabWrcclcclcclcclcePbYoceQceRceSceTceUceVbWraaaaaaaaaaaaaaaceWceWceWceXaabaabaabaabcekaabaabaabaabaabalUceWceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaacelceYcenaaacelceYcenaaacelceYcenaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabbJOcbtceZcepcfaccFcfbcfccfdcfdcdwccFcepcfeccFccFccFccFcffcfgcfhcfibJZcfjcfkcflcfmcfnbQocexcdFcfobQocfpbPqbWabRFbRFceFbRIcfqbXRcfrcfsbQDcftcfubYMbUWbSHcfvcdQcdQbRKaabaaaaaaaabaaaaaabTVcfwbWkbWmbWkcfxbWjbWkbWmbWjbWmcfybTVaaaaaaaaaaabaaaaaaaaabWrcceccfccgcfzcfAccjcfBcfCcfDcfEbYocfFbWraaaaaaaaaaaaaaaceWaaaaabaaaaabaaaaaaaaacfGaaaaabaabaaaaaaaaaaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaluaabcelceYcenaaacelceYcenaabcelceYcenaabaaaaaaaabaabaaaaaaaaaaaaaaaaabaaaaaabNKcbtcaGcfHccFcfIcfJcfKcfLcfMcfLcfNcfLcfOcfPccBcfQcepcepcesbLycfRcfScfTcfUcfVcfWcfXcfYcfZcgacgbcgccgdbPqcgebRFbRFcgfbRFbRFbRFbRHbXYcgfbYdbZsbTPaabbRKbRKbRKbRKbRKaabaaaaaaaabaaaaaabTVcggcghcgicgjcgkcglcgmcgncglcgncgmbTVaabaabaabaabaabaabaabbWrcdgcdgcdgcgocdjbYocgpcgqcgrcgsbYocgtbWrbWrbWrbWraaaaaaceWaaacgucgucgucgucguaabcgvaabcgucgucgucgucguaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaacelceYcenaabcelceYcenaaacelceYcenaaaaaaaaaaaaaaaaabaaaaabaaaaabaabaaaaaabFGcbtcaGcgwcgxcgxcgycaGcaGcaGcaGcaGcaGcaGcaGcaGcaGcaGcaGcaGbFGcgzbFGcgAbFGbPkcgBcgCcgDcgEcgFcgGcgHcgIbPqcgJcgKcgLcgMcgNcgOcgNcgMcgPcgMcgQceFcgRaabaabaabaabaabaabaabaaaaaaaaaaaaaaabTVbTVbTVcgScgTbTVbTVcgUbTVbTVbTVcgUbYiaaaaaaaaaaaaaaaaaaaaabWrcdgcdgcdgcfzcgVccjcgWcgXcgYcgZchachachbchcchdbWraabaabceWaabchechfchfchfchfchgcgvchhchichichichichjaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvaluaabaaacelceYcenaabcelceYcenaaacelceYcenaabaaaaaaaaaaaaaabaabchkchlchlchlchlbFGbFGcbtcaGchmchnchnchochpchqchrchrchrchrchrchrchschrchrchtchtchrchuchvchwchxbPkchychzchAchBchCchDbQnchEbZjbSuchFchGchHchIchJchKchLbRFchMchNchObRCaabaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaabTVcbjchPbTVaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaabWrcclcclcclcclchQbYocgpchRchSchTbYobYochUbYochVbWraaaaaaceWaabchWchWchWchWchWaaacgvaaachWchWchWchWchWaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaabaaaaabaabchXaabaabaabchXaabaaaaabchXaabaaaaaaaaaaaaaaachYchZciacibciccidciecifcaEcigcaGcaGcihciicaGcaGbPbcijcijcijcijcijcijcikcijcijcijcilcilcimcinciociocipciqchzchAbQnbQnbQnbQncirciscitciucivciwcixciycixciwcixcizcixcizciAaabaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaciBaaaaaaaaaaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaabWrcceccfccgciCcfAccjciDbYqciEciFciFciGciHciIciJbWraaaaaaceWaaaaabaaaaabaabaabaaacgvaaaaabaaaaabaaaaabaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaabciKciLciLciMciNciNciNciNciNciNciNciNciNciNciNciNciNciNciOciPciQciRciSciTciUciVciWbIhcbtciXcaGcaGcaGcaGbIhbPbcijciYciZcjacjbcjccjdcjecjfcjgcjhcjicjjcjkcjlcjmcjncjocjpchAbQnbQnbQnbQncjqbPkaabcjraabcjsaabcjraabcjsaabcjtaabcjtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjuaaaaaaaaaaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaabWrcdgcdhcdgcjvcdjbYobYpbYqcjwbYobYocjxcclcclcclbWraaaaaaceWaaacgucgucgucgucguaabcgvaabcgucgucgucgucguaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaabaaaaabaabcjyaabaaaaabcjyaabaaaaabcjyaabaaaaaaaaaaaaaaachYchZcjzcjAcjBcjCchlcjDbIhcjEcaEcaEcaEcaEcaEcaEcjFcijcjGcjHcjIcjIcjJcjKcjLcjMcjNcjOcjPcjQcjRcjScjTcjUcjVcfnchAcjWcjXbQnbQncjYbPkbRKcjZbTQcjZbRKcjZbTQcjZbRKckabTQckbbRKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWrcdgcdgcdgciCckcckdckeckfckgbYobYockhbYockibYobXqaabaabceWaabchechfchfchfchfchgcgvchhchichichichichjaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvaluaabaabcelckjcenaaacelckjcenaaacelckjcenaabaaaaaaaaaaaaaabaabckkchlchlchlchlbFGbZTcaJbIhcklbIhbIhbIhckmbSjcijckncjIcjIcjIcjIckocjIcjIckpckqckrckscktckuckvckwckxckyckzckAckBckCbQnckDbPkbRKckEckFckGbRKckHckIckJbRKckKckLckMbRKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZCbWrckNckOckOckPckQckRckQckSckTckUckVckWccjckXckYaaaaaaceWaabchWchWchWchWchWaaacgvaabchWchWchWchWchWaaaceWaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacelckjcenaabcelckjcenaaacelckjcenaaaaaaaaaaabaaaaabaabaabaaaaaaaaaaaabFGckZclaclaclbbFGbFGbFGbFGclccldclecjIcjIclfcjIckocjIcjIclgclhclicljclkcllclmclhclnbQnchAcloclpclqbQnbQnbPkbRKclrclsclrbRKcltclucltbRKclvclwclxbRKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciBaaabWrclyclzclAclBclCclzclDclEclCclzclFbWraaaaaaceXaaaaabaaaaabaaaaabaaaclGaaaaabaaaaabaabaabaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaabcelckjcenaaacelckjcenaaacelckjcenaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabclHbNHclIbFGbIhclJcjIcjIcjIcjIcjIckocjIcjIclKclhclhclLclMclNclOclPclQclRclSclTclUclVbPkclWbPkbRKclrclXclrbRKcltclYcltbRKclxclZclxbRKaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmaaabbWrcmbcmccmdcclcmecmfcmgcclcmhcmicmjbWraaaaaaceWaaacgucgucgucgucguaabcekaabcgucgucgucgucguaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaabcelckjcenaaacelckjcenaabcelckjcenaabaabaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcmkbIhbIhbLmcmlcijcmmcmncmocmpcjIckocjIcjIcjIcjIcmqcmrcjIcjIcjIcmscmtcmucmvcmwcmxcmycmzcmAbPkbRKbRKbRKbRKbRKbRKbRKbRKbRKbRKbRKbRKbRKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaabWrcmBcdgcdgcclcmBcdgcdgcclcmBcdgcdgbWraabaabceWaabchechfchfchfchfcmCcmDcmCchichichichichjaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalUaabcelcmEcenaaacelcmEcenaaacelcmEcenaabaluaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbRdbNJbNIcijcijcijcijcijcijcmFcmGcmHcmIcmJcmJcmJcmKcmLcmMcmNcmJcmJcmLcmOcmPcmQcmRcmScmTcmAbPkcmUcmVcmWcmWcmXaaaaaaaaaaabaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWrcmYcdgcdgcclcmYcdgcdgcclcmYcdgcdgbWraaaaaaceWaabchWchWchWchWchWaaacekaaachWchWchWchWchWaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaaluaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbFGbZRbZQcijcmZcnacnbcnccijcndcjIckocnecjIcjIcnfcngcnhcnicnjcnkcnlcnmcnncngcnocnpcnqcdCcnrclWcmAcnscntcnucnvaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWrcnwcdgcdgcclcnwcdgcdgcclcnwcdgcdgbWraagaaaceWaaaaaaaabaabaabaaaaaacekaabaaaaaaaabaabaaaaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvalualvalvalUalualualualualvalualualvcnxaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacijcnycnycnzcnzcnAcnecjIckocnecjIcnBcnCcnDcnEcnFcnGcnHcnIcnJcnKckocnecnecnLcdCcdCbPkcnrcnMcmWcmWcnNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZCbWrbWrbWrbWrbWrbWrbWrbWrcnOcnOcnObZCaaaaaaceWceWceWceWceWaaaaaaaaacekaaaaaaaaaceWceWceWceXceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaacijcnzcnzcnzcnzcnAcjLcnPcnQcnRcnScnTcnTcnUcnVcnWcnXcnYcnZcnUcoacobcoccodcjIcjIcoecofcijcijcijcngcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacohcohcohaaaaaaaaaaaaaaaaaaaaaaaaaaaceWaabcoiaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaacijcojcokcolcomcijconcoocopcoqcorcoscotcijcoucovcowcjIcoxcijcoycozcoAcoBcoCcoDcoEcoFcoGcoHcoIcoJcoKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceWaaaaabaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabcijcoLcoLcoLcomcijcoMcoNcijcoOcoPcoPcoPcijcoQcoRcoScoTcoUcijcoPcoPcoPcoOcijcoVcmvcoWcijcijcijcijcoXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceWceWceWceWceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaabaaaaabaaacijcoLcoLcomcomcijcoYcoZcijcpacpbcpccpdcpecpfcpgcphcpicoUcpjcpbcpbcpbcpkcijcplcpmcoWaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaccijcijcijcijcijcijcnzcpncijcijcpocppcpqcprcpscoqcptcoqcpucpvcpqcppcpwcijcijcpxcpycpzaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdpbdpbdpbdpbdpbdpbdpbdpbdpbdpaaaaabbdqazPaxTbdrbdsbdtbdtbdtbdtbdtbdtbdubdvaPkaWPaQGaYaaYbaYcaYcbdwbdxaYcaPnaPnbdyaPnaZIbdzbcmbdAaPnbbfaZNaZObdBbdCbbhbcobdDaZObbjbdEbcqbcqbcqbdFbdGaZUbdHaIJaYzbdIbdJbdKbdLbdMbdNbdObcAbdPbadbaebdQbdRbdSbdSbdSbdTbdUbaebdVbdWbbLbbLbcNbdXbcPbbLbdYbagaujaIJaIJbcSbcTbcUaZiaZiaZiaZiaZiaZiaZiaRyaZiaZiaZiaZiaZiaZibebbdbbdbbdbbdbbdbbdbbecbdbbdbbdbbdbbdbbdbbdbaTPbeebefbegaZiaZiaZiaZiaZiaZhaZiaZiaZiaZiaZiaZiaZiaZiaZiaZiaZiaZibehbcYbeiaTpaTpbccaTpaTpbejaWkaQxaQxaTsaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdpbdpbdpbdpbdpbdpbdpbdpbdpbdpbdpaWmaWnaWoayTbekbelbembembenbembembembeoaPkaPkaPkaPkaYaaYbaZBbepbeqberaYcbesbetbeuaPnaPnaPnaPnbevaPnbbfaZNaZObewbbhbcobexbeyaZObbjaZUbezbcqbcqbeAbeBaZUbeCaIJaYzbeDbeEbdKbdLbeFbeGbdObcAbeHbadbeIbeJbeKbdSbeLbdSbcDbeMbeNbdVbeObePbeQbeRbeRbeSbbLbeTbagaYSbeUaIJbcSbcTbcUaZibeVaZibRNbRAbRAbRAbRObRAbRAbRAbRzaZiaZiaZiaZibfaaZibeVbRBbfcbRLaZiaZiaZibRMbffbRQbfhbRPbfjbfkaZiaZiaZiaZiaZibflbfmbfaaZiaZiaZiaZiaZiaZiaZiaZiaZiaZiaZiaZibcYbfnbfobfpbfqbfrbfsbftcghaabaaaaabaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdpbdpbdpbdpbdpbdpbdpbdpbdpbdpbdpaySavkaySaxRbfvbembfwbfxbfybfybfzbfAbfBbfCbfCbfCbfCbfDbfEbfFbfFbfGbfHbfFbfIbfIbfJbfIbfKbfLbfLbfMbfLbfNbfObfPbfQbfRbfRbfSbfTbfPbfUbfVbfWbcqbcqbeAbfXbfYbeCaIJaYzbfZbgabgbbcybcybcybcybcAbgcbadbaebgdbgebgfbQwbghbgebgibaebdVbgjbgkbglbgmbgnbgobgpbgqbagbgraGWaGWbgsbgsbgsbgsbgsbgsbgsbNjbOdbOdbQIbQGbQHbNjbHnbHnbHnbHnbHnbHnbgzbgzbgzbQMbgzbgzbgzbRqbRebflbRrbgEbCpbgGbgHaZiaZibgIbgIbgJbgJbgJbgJbgJbgKbgLbgLbgMbgLaZibgLbgMbgLbgLbgNbgObgObgObgOcggbgEaPfaPfaPfaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdpbdpbdpbdpbdpbdpbdpbdpbdpbdpbdpaZoaZpaWoayTbgTbembgUbembgVbgWbembembemaQGbgXbgYbgYbgZaYcaZBbhabchbhbaYcbhcbhdaVibhebhfbhgbhhbhibhjbhhbhkbhlbhmbhnbhmbhmbhobhpbhqbhrbhsbcqbcqbhtbhubhvbeCaIJbhwbfZbhxbhybhzbhAbhBbhCbhDbadbadbaebhEbhFbhGbhHbhIbhJbhKbaebdVbhLbhMbhNbhObhPbgobbLbhQbagaYSaIJbhRbgsbPNcdXbQjbQpbQsbhXbQubqfbqfbQqbQrbQrbPBbHnbPFbPEbPzbPybHnbPAbPKbPJbPMbPLbPHbPGbPwbPIbPwbPwbPwbIwbIzbisbPtbisbiubiubgJbivbPxbixbgJbiybizbiybgJbgKbgLbgNbgObiAbiBbiAbgObiCbiDbgOcbkcbgblJbgEaaaaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdpbdpbdpbdpbdpbdpbdpbdpbdpbdpaaaaaaazObaNaPhbiFbembiGbembiHbiIbiJbiKbembiLaQGbiMaQGbiNaYcaYcaYcaYcaYcaYcbiObiPbiQaQGbiRaZOaZOaZObiSaZOaZOaZObiTaZOaZOaZOaZObiUbiVbiWbiXbcqbcqbeAbiYbfYbeCaIJbiZbfZbjabhybadbadbadbadbjbbadbjcbjdbjebjfbbxbjgbbxbjhbjibjjbjkbhLbjlbbLbjmbjnbgobjobbLbjpbjqbjrbjsbgsbOpbOqbOobjwbOtbOubOrbOsbqfbxGbqfbqfbxJbOBbOAbOzbOybOxbHnbOwbYAbPsbYAcaqbPlbgzbPibPhbOmbOnbgEbDAbjSbjTbjUbjVbjWbjXbjYbjZbkabjZbkbbkcbkdbkebgJbkfbkgbkhbgObkibkjbkkbklbkmbknbgObZjbZgcdbbgEaaaaaaaaaaagaJCaJCaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazMasGbcdaABaZpaTuaTuaTuaABaTubkoayTaxRaxRbembkpbkqbkrbiJbksbktbkubkvbkvbkvbkvbkwbkxbkxbkxbhhbhhbhhbkybkzbkzbkzbkAaZObkBbkCbkDbkEbkFbkGbkHbkIbkJbkKbkLbkMbkNbkObkPbkQbkRbkSbkTbkTbkUbjrbkVbkWbkXbkYbkZblablbblcbldbleblfbjjbjjbjjbjjblgbjjbjjbjjbjjblhblibljblkbllblmblnbloblpblqblraIJaIJbgsbXibXjbXkbjwbWTbWUbOrbWVbWXbWYbWXbWXbWibVYbWPbWlbWSbWQbHnbVRbYAbVWbYAcaqbVXbgzblJblKblLbXlbgEbDAblNblOblPblPblQblRblSblTblTblTblUblVblWblXblYblZbmabmbbmcbmdbmebkmbmfbmgbmhbgObPDbZgblLbgEaaaaaaaaaaaaaaaaJCaJCaJCaJCaJCaJCaJCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmjbmkavkaySawSawSawSaPhaxRaxRbembmlbmmbiJbmnbembembemaPkbmobmpbmqbmrbmqbmqbmqbmrbmqaPkaPkaZOaZOaZObmsaZObkHbkHbmtbkHbkHbkHbkHbkHbmubmvbmwbmxbmybmzbmzbmzbmAbmBbmCbmDbmEbmFbmGbmHbmIbmIbmJbmKbmLbmMbmNbmObmPbmQbmRbmSbmTbmUbmVbmSbmWbmQbmXbhLbmYbmZbmYbagbagbagbnabdVbnbaIJaIJbgsbVbbVcbHfbjwbUJbUWbOrbxGbqfbVabUYbUZbVgbHnbVfbVebVVbVSbHnbVRbVdbYAbYAcaqbPlbgzbgEbgEbgEbgEbgEbDAbjSbnqbnrbnsbntbnubnvbnwbnxbnybnybnzbjZbnAbgJbnBbnCbnDbgObnEbnFbnGbnHbnIbnJbgObPDbZgcnqbgEaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaabmjavkavkaySaxQaxQaxQbnLaxQaxQbembnMbnNbnObiJbemaaaaaaaaaaabaabbnPbnPbnPbnPbnPbnPbnPaaaaaabnQbnRbnSbnTbnUbkHbkHbkHbkHbkHbkHbkHbkHbnVbiXbcqbnWbnXbnYaZUaZUbnZbkNaZUaZUboabobbocbodboebofbofbogbofbohboibofabHbojbokbmSbolbmUbolbmSbombojbmXbonboobeRbopboqborbosbotboubovaIJbowboxbUwbUDbHfbjwbUabhXbUfbxGbqfbTYbTZbqfbTWbHnbOAbTXbTTbTJbHnbTUbTFbTabSXbTIbSXbSUbSSbSSbSSbSSbSSbSTbjSboQbjUbjUbntboRboSboTboUboVboVboWboXbSQbgJboZbnCbpabgObpbbpcbpdbnHbkmbpebgObZjbZgckBbgEaaaaaaaaaaaaaabbpgbphbpibphbpibphbpjaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxPaySaySbpkaTubplazMasGbpmbplbembpnbpobppbgWbemaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPaaaaaabpqbprbkHbpsbptbptbptbptbptbpubptbptbptbpvbpwbpxbpybpzbpAaZUbpBbeAbpCbpDbpEbeCbpFbpGbodbodbofbpHbpIbpJbpKbpLbofbpMbpNbpObpPbpQbpRbpQbpSbpTbpUbpVbonbpWbeRbpXbagbpYbmYbpZbqabovaIJaIJbgsbSubSvbHfbStbRXbhXbeabRWbRSbqlbRRbqfbSPbSObSNbSMbSLbSGbHnbgzbSwbgzbgzbqrbqrbqrbqrbqrbqrbqrbqrbDAbjSbnqbnrbnsbqsbqtbqubqvbqwbqwbqwboWbjZbqxbqybqzbkgbqAbgObqBbqCbqDbqEbkmbqFbgObPDblKbgEbgEaaaaaaaaaaaaaabbqGbqHbqIbqJbqJbqKbqGaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbqMbqNbqObqPbkHbkHbkHbqQbqQbqQbqQbnTbkHbkHbkHbmubqRbcqbqSbqTbqUbqVbqWbeAbcqbqXbqYbeCbpFbqZbrabrbbrcbrdbrebrfbrgbrhbofabHbribrjbmSbpQbrkbpQbmSbrlbrmbmXbrnbrobrpbrqbagbrrbmYbrsbqabovaIJbGkbgsbHcbHebHfbHgbHhbhXbHibxGbqfbHjbHkbHlaWTbHnbHpbHobHrbHqbHnbHsbHubHtbHwbHvbHybHxbIubHzbIxbIybIvbIwbIzbrTbrUbrVbrWbrXbjYbrYbqwbqwbqwbrZbjZbsabgJbsbbsbbscbgObsdbsebsfbsgbkmbshbgObPDbPCbgEaaaaaaaaaaaaaaaaabbsjbskbqIbqJbqIbslbpiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbsmbsnbsmbsobspbkHbkHbkHbkHbkHbkHbnTbkHbsqaZOaZObsrbcqbcqbssbstbsubsvbeAbcqbcqbswaIJbpFbsxbsybszbsAbsBbsCbsDbsEbsFbofabHbrmbrmbsGbsHbsIbmSbsJbsKbsLbsMbsNbsObsObsObsObsObsObsPbsQbsRaGWbGabGbbGebGfbGcbGdbhXbhXbGgbxGbqfbqfbqfbqfbFTbFSbqfbFRbqfbCgbFUbsUbFWbqfbFVbERbFZbDgbFYbFXbCnbAUbqrbGhbGibtqbtqbtrbtsbttbjYbtubjZbjZbtvbtwbjZbtxbjYbtybtzbtAbtBbtCbtDbtEbtFbtGbgObgObOvbgEbgEbtIbtJbtJbtJbtKbkfbqGbqJbqIbqJbqJbqKbqGaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaagaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbtLbtMbtLbtNbkHbkHbkHbqQbqQbqQbqQbnTbkHbtObtPaZObtQbcqbcqbssbtRbtSbsvbtTbtUbpxbtVbtWbtXbovaRrbszbtYbtZbuabubbucbudbuebufbugbuhbuibujbrkbujbsKbukbulbulbsNbumbunbuobupbuqburbusbutdKMaIJbDpbEEbDnbEybEzbEAbEHbEIbEFbEJbEFbEGbEFbEFbEMbELbEFbELbEFbEFbEFbEKbEQbEPbFQbERbENbDgbuNbuNbDQbCobqrbDAbjSbuQbuRbuSbuTbuTbjYbuUbuVbuWbjYbuXbjZbuYbuZbvabvbbvcbvdbvebvfbvgbvhbvibsbbkgbvjbvkbvlbvmbvnbvnbvnbvnbvobvpbphbpibvqbpibphbvraabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbvsbqNbvtbvubkHbkHbkHbkHbkHbkHbkHbnTbkHbtObvvaZObvwbdFbcqbvxbpxbvybpxbvzbcqbqXbpEbeCaIJbovaRrbszbofbvAbvBbvCbvDbvEbogbvFbvGbvHbvIbsLbvJbvKbvLbvMbvNbvObsNbvPbvQbvRbvSbvTbvTbvUbvVbvWaIJbDpbDqbDnbDobqfbDmbDvbDwbDrbDubDrbDtbDrbDsbCsbsUbCrbsUbsUbtbbCqbwmbwmbDlbDkbDibDhbDgbDfbCzbCnbCobqrbCpbjSbisbwtbwubwtbwtbjYbjYbjYbjYbjYbwvbwwbwxbwybwzbwAbwBbwCbwCbwDbwEbnCbwFbwGbwHbvjbnCbvlbwIbnCbwJbnCbwKbkfbtIbtJbtKbwLbkfaaaaaaaabaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbtLbtMbtLbwMbwNbkHbkHbwObwPbwQbwPbwRbwPbwSbwTbfPbwUbwVbkQbwWbkQbwXbkRbwVbwYbwZbqYbeCaIJbxabxbbxcbofbxdbxebxfbxgbxhbogbxibxjbxkbxlbxmbxnbxobxpbxqbxrbxsbxtbxubxvbxvbxwbxxbxybxzbsQbxAaIJbNibNjbeabNkbqfbLZbNdbxFbNYbNebNfbNgbNhbxFbNYbzhbzhbNYbxFbObbOdbwmbNlbuNbuNbNmbERbDgbOabNXbOfbOgbqrbOebOhbOibxWbxXbwCbwCbxYbxZbwCbyabybbycbydbyebwCbyfbygbyhbyibyjbykbylbylbylbylbylcbncblbgQbtIbtKbkfbnCbvnbynbyobVybypbyqbyraaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbysbytbysbyubyvbywbywbywbywbywbyxbyybkHbtObyzaZObyAbyBbyCbyDbyEbnXbyFbyGbyHaZUaZUbyIaIJbyJbyKbszbofbyLbyMbyNbvBbyObogbyPbyQbyRbySbyTbyUbyVbyWbyXbyYbyZbsNbzabzbbzcbzdbxxbxybxzbsQbzeaIJbLXbLYbMabMbbqfbLZbwgbxFbLTbLUbLVbLWbuHbxFbLSbLRbLRbLQbxFbjLbqfbwmbLLbuNbXNbLKbLPbLObLNbLMbLMbMVbMZbNabNbbNcbzFbzGbvebvebzHbvebzIbvebvfbvebvebvebvebzJbzKbzLbzMbzNbzObzPbzQbzRbzSbylbiEbzTbmiaabaabbkfbzUbvnbyobyobvobzVbzWbzXaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbzYbzZbAaaZOaZObAbbqNbqNbqNbAcaZOaZObAdbAebAfaZObAgbAgbAgbAhbAgbAibAjbAkbAlbAmbAibeCaIJbAnbAoaTVbofbuebApbAqbAqbArbAsbAtbAtbAubAtbAvbAwbAxbAybAzbAzbAzbAAbsObsObsObsObsObsObsObsQdKTaXudKUbxFbxFbKEbKFbKGbxFbxFbKCbKDbKAbAIbAIbKBbIXbLIbLJbIXbITbjLbqfbwmbLGbLCbLHbKxbKIbKHbLBbKxbKxbKybKvbKwbKubAZbAZbAZbAZbAZbBabAZbAZbBbbBcbBdbBebBebBfbBgbvjbBhbzMbBibBjbBkbBlbBmbBnbylbiEbzTbpfaaaaaabkfbBobBpbkfbvobkfbkfbvobkfaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBqaabaaaaaaaaaaaabAgbBrbBsbBtbBubAibBvbBwbBxbBybAibeCaIJbBzbBAbBBbBAbBCbBDbBEbBFbBGbBHaXubBIaXubBJbBKbBLbBMbBNbBOaIJaMcbBPaMdbcSbBEbBQbBRaIJbBSbBTbzeaIJdKRbxFbKsbKtbKqbKrbKobKpbKmbKnboJbAIbAIbIYbIXbIWbIVbIUbITbjLbISbwmbIRbIQbIPbIObINbIMbILbIKbIJbqrbqrbCpbIIbAZbCtbCubCvbCwbCxbCybIHbBbbCAbCBbCCbBebBebCDbvjbBhbCEbCFbCGbCHbCIbCJbCKbylbiEbzTbgQbgQbgQbgQbgQbkfbkfaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabAgbCLbCMbCNbCObCPbCQbCRbCSbCTbAibeCbCUbCVaIJaIJaIJaIJbcSbBEbBQbCWaIJaIJbCXaIJaIJbCYbCZbDaaIJaIJaIJaIJbBPaIJbcSbBEbBQbDeaXubDcbDbbDjbDdbtmbtlbtobtnbtHbtpbuCbuBbuEbuDbuGbuFbuHbxFbthbtibtjbtkbxFbjLbqfbwmbwmbwmbwmbwmbqrbqrbqrbqrbqrbqrbtebtdbtfbAZbDxbDybDzbtgbDBbDCbDDbBbbDEbDFbDGbDGbBebDHbDIbDJbDKbDLbDMbCJbDNbDObDPbylbiEbzTbgQaTTbDRbDRbgQaabaabaabaabaabaabaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabbDSbDTbDTbDUbDVbDVbDWbDWbDWbDWbDXaabaabaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPaaaaaaaaaaaaaaaaaaaaaaaabDYbDZbEabDZbEbaaaaaaaaabAgbAgbEcbEdbCNbEdbEebEfbEgbEhbEibAibEjbeCbEkbElbtWbEmbtWbEnbEobEpbtXaIJbEqbErbjrbjrbEsaXuaXuaXuaXuaXuaXubEtbEubEvbEwbExbECbEBbEDbuIbvYbvXbECbuPbwdbwcbwabvZbxFbxFbNYbwebNYbxFbxFbxFbxFbxFbxFbxFbxFbjLbqfbwfbwibwjbwgbwhbeabwnbwkbwlbuKbuJbuMbuLbuObAZbESbETbCvbEUbEVbEWbEXbBbbEYbDFbDGbDGbBebEZbFabFbbFcbFdbFebFfbFgbFhbFibFjbFkbFlbFlbFlbFlbFmbmiaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabbFnbFobFpbFobDVbDWbDWbFqbFrbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFsbFtbFubFtbFsbFvbFwbFxbAgbFybEdbFzbFAbFBbFCbFDbFDbFEbFFbAibFGbFGbFHbFGaTVaTVaTVaTVbFIbFIbFIbFIbFIbFIbFIbFIbFJbbNbbNbFKbFKbFKbFKbFLbFMbFKbFKbFKbFKbFNbFObFPaIPbrvbrxbrwbqqbqpbrubrtbrBbxFbrDbrCbrybNYbrzbrzbqgbqhbqibqkbNYbqebqfbqfbqfbqfbqfbjLbqlbqmbqnbqobrEbeabGjbeWbGlbGlbGlbGlbGlbGlbGlbGlbGlbBbbGmbGnbGobGobBebGpbGqbGrbGsbGsbGsbGsbGtbGubGvbGwbGsbGsbGsbGsbzTbGxbGyaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacbGzbFobFobGAbDWbDWbFqbFqbGBbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEabGCbGDbGCbEabGEbGFbGGbAgbGHbGIbEdbGJbGKbAibGLbGMbGNbGObAibGPbGPbGQbFGaaaaaaaaaaaabFIbGRbGSbGTbGUbGVbGWbFIbGXbGYbGZbFKbHabHbbrNbHdbrGbrFbrIbrHbrKbrJbrMbrLbHmbrQbFNbxFbrPbrCboJbrObsTbxFbsSbsibrSbrRbAIbAIbAIbAIbAIbsZbsVbsYbsUbsUbsUbsUbtbbjLbtabqmbqnbqobtcbeabGjbeWbGlbHAbHBbHBbHCbHDbHEbHFbHGbBbbHHbHIbHJbHJbBebHKbHLbBhbHMbHNbHObHPbHQbHRbHSbHTbHUbHVbHWbGsbgQbEObgQbHYbHYbHYbHYbHYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabHZbDWbGzbDWbDWbFqbFqbFqbFqbFqbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFsbGCbGCbGCbIabIbbEdbEdbIcbIdbEdbEdbIebIfbAibAibAibIgbAibAibIhbIibIjbIkaaabIlbImbInbIobIpbGWbIqbIrbIsbItbADbzDbzCbzBbzAbzzbIAbIBbICbIDbIEbIFbFKbFKbIGbACbzEbARbAQbATbASbAIbrCbAVbrObAIbALbAMbrCbANbxFbAPbAObAIbAIbAJbAKbeabeabeabeabeabAGbjLbjLbAHbqmbqnbqobAFbAEbIZbeWbGlbJabJbbHBbJcbHBbHBbHBbJdbBbbJebDFbJfbJfbBebBgbJgbJhbJibJjbJjbJjbJjbJkbJlbJmbJnbJobJpbGsbJqbJrbJsbJtbJubJvbJwbJxaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabbDVbDWbJybJzbJzbFqbFqbFqbFqbFqbFqbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEabGDbGDbGDbEabJAbJBbJCbJDbJEbEdbJFbJGbJHbJIbJJbJJbJKbJJbJJbJLbJMbJNbJOaaabJPbJQbJRbJSbJTbGWbJUbJVbJWbJXbFIbJYbJZbKabFKbKbbKcbKdbKebKfbKgbKhbKibKjbKkbKldKSbCbbCabBZbzhbCfbCebCdbCcbBWbxFbBVbrCbBYbxFbBXbrObAIbAIbCjbKzbeabCmbCkbClbChbxGbjLbCgbCibAXbAXbAXbAXbAWbBUbAYbGlbHAbKJbHBbHBbHBbHBbHBbKKbBbbKLbDFbKMbKMbBebKNbKObBhbKPbJlbJlbKQbKRbKSbKTbKUbKVbKWbKXbKYbKZbLabLbbLcbLdbLebJwbLfaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabDWbDWbLgbFqbFqbFqbFqbFqbFqbFqbFqbFqbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaabFsbLhbLibLjbFsbLkbFwbFxbAgbAgbLlbLlbLlbAgbAgbFGbFGbFGbFGbLmbFGbFGbLnbJOaaabJPbLobLpbLqbLrbLsbLtbLubLrbLrbLvbLwbLxbLybFKbFKbFKbFKbFKbFKbLzbFKbFKbLAbwpbwobLDbLEbLFbLEbzhbymbxVbzgbzfbxSbxFbxUbxTbxObxFbxRbxQbxKbxLbxMbxNbeabxIbqfbxJbxEbxGbxHbsUbwqbwrbwsbxCbzibeabGjbeWbGlbGlbMcbHBbHBbHBbMdbGlbGlbBbbMebMfbKMbKMbBebMgbKObBhbHMbMhbMibMjbMkbMlbMmbMnbJlbMobMpbGsbMqbMrbMsbHYbMtbMubMvbMwaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabbDWbFqbFqbFqbFqbFqbFqbMxbFqbMybFqbFqbFqbFqbFqbDWbDWaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabMzbDZbMAbDZbMBaaaaabaaaaaabAgbMCbMDbMEbAgaaaaaaaaabFGbMFbMGbIhbFGbLnbJOaaabJPbMHbMIbMJbMKbGWbMLbMMbMNbMObFIbMPbMQbMRbMSbMTbMTbMTbMTbMUbzkbMWbMWbMXbMYbzmbzlbzubztbzsbYBbzrbzpbYBbzobzrbYBbYBbzpbzobYBbYBbzobYBbYBbzpbYBbzxbdZbeaaWTbeabzwbjLbzvbeabeabeabeabeabeabzybeWbGlbNnbNobNpbNqbNrbNsbNtbNnbBebNubNvbCCbBebBebNwbKObNxbHYbHYbGsbGsbGsbGsbGwbGsbNybJlbNzbGsbNAbHXbgQbHYbNBbNCbNDbHYaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabDWbNEbNEbNEbNEbNEbNEbNFbFqbNGbNEbMybFqbFqbFqbFqbDWaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaabaaaaaaaaaaabaaaaaaaaabFGbNHbNIbNJbFGbLnbNKaaabNLbImbNMbNNbNObGWbGWbNPbNQbNRbNSbNTbNUbNVbNWbNWbNWbNWbNWbjzbjybNZbjxbjvbOcbjubjtbifbiebihbigbOjbOkbOlbOlbOjbOlbOlbOkbOlbOlbOlbOlbOlbOlbOkbiiaWTbijbikbilbimbinbiobipbiqbirbitbiwbiabFNbGjbeWbGlbidbicbibbOCbODbOEbOFbOGbBebBebOHbBebBebOIbOJbKObnCbOKaabbOLbOMbONbOObOPbOObOQbORbOSbGsbOTbGxbOUbHYbOVbOWbOWbOXaacaacaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOYbFobFobFobFobFobFobFobOZbFrbFqbFqbFqbFqbPabFrbDWaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabbFGbFGbFGbFGbFGbPbbFGaaaaaaaaaaaabFIbPcbPdbPebPfbFIbPgbFIblxblwbPjbPkbPkblvbPmbPnbPobPpbPqbPrbPrbPrbltblubPrbPrbPubPqbPvbPrbPrbPrbltbPrbFNbFNbFNbFNbFNbFNbFNbFNbFNbeWaWTbjKbjIbjJbjNbjObjLbjMbjRblsbjPbjQbjAbFNbGjbjBbjDbjCbjFbjEbjHbjGbPObPObPPbPQbPRbPSbnCbPTbnCbOJbKObnCbPUaabbOLbPVbPVbPWbPXbPYbPZbQabQbbGsbQcbGxbzTbHYbHYbHYbHYbHYaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabDWbJzbJzbJzbJzbJzbJzbQdbFqbJybJzbQebFqbFqbFqbFqbDWaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabQfbQgbLnbFGbFGbFGbFGbFGbFIbFIbFIbFIbFIbFIbFIbFIbQhbQibfubQkbQlbQmbQnbQnbQobfebfdbfbbfibQtbfgbQvaTSbQxbQybQzbQAbQBbQCbQDbQEbQFaabaaaaaaaaaaaaaaaaaabFNbedbeWaWTbdZbeaaWTbeabdZbeXaWTbeabeabeabeabeabFNbGjbeYbGlbQJbQJbQKbQLbeZbQNbQLbQObQPbQQbQRbQSbnCbQTbOJbKObQUbQVaabbOLbPVbQWbOObQXbOObQYbQZbRabGsbQcbGxbRbbRcbgQaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabbDWbFqbFqbFqbFqbFqbFqbMxbFqbQebFqbFqbFqbFqbFqbDWbDWaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabbRdbhZbRfbRgbRgbRhbRibRjbRkbRlbRmbRnbRobRnbRpbRkbhVbhUbRsbRtbRubRvbRwbRwbRxbRybfdbhSbfibQtbhTbQvbgAbRCbRDbREbRFbRGbRFbRHbRIbRJaabbRKbRKbRKbRKbRKaaabFNbggbgtbOjbOkbOlbOjbgubgxbgvbgwbgubOlbOlbOlbOlbOlbgCbgBbGlbRTbRUbRVbgRbgDbRYbRZbGlbGlbqzbSabqzbqzbqzbSbbScbSdbqzbGsbGsbGsbGsbGsbSebGsbGsbGsbGsbGsbQcbGxbSfbRcbgQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaabDWbDWbLgbFqbFqbFqbFqbFqbFqbFqbFqbFqbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabSgaaaaabaabbShbShbShbShbShbShbShbShbSibSjbRkbSkbRlbRlbRnbSlbRpbRkbSmbSnbRsbSobSpbQnbSqboFbSrbSsboKboIboHboGbRFbQvbSxbRCbSybSzbSAbSBbSCbSDbSEbSFbnpbSHbSIbSJbSKbRKaaabFNboAboBboCboDboEdSMbSRbnKboybozbSRbSRbSVbSWbSRbSRdOGbeWbGlbGlbGlbGlbGlbGlbSYbGlbGlbSZbnobTbbTcbTdbqzbSabTebTfbqzaTRbThbTibTjbTkbQcbzTbzTbTlbzTbxBbQcbGxbTmbgQbgQbgQaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabbDVbDWbNGbNEbNEbFqbFqbFqbFqbFqbFqbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTnbTobTpbTqbTqbTqbTrbTsbTtbTubTvbTwbTxbShbTybSjbRkbTzbRlbRmbRlbRnbTAbRkbTBbSnbRsbRtbTCbQnbQnbQnbTDbTEbqdbTGbTHbRFbqcbqbbRFbTKbSybSzbTLbTMbTMbTNbTObTPaabbTQbTRbSKbTSbRKaabbFNboPboYbFNaaaaabaaabTVboOboMboNbTVaabaabaaaaabbFNdSLboLbOlbOlbOlbOlbOlbOlbOjbOlbOlbOlbOlbOkbUbbOlbgubUcbUdbUebzjbznbUgbUgbUgbUhbUibUgbUgbUgbUgbxPbUjbUkbUlbUmbUnbgQbgQbgQbgQaaaaabaaaaaaaaaamRamRamRaabaaaaaaaabaaaaaaaabaaaaaabHZbDWbGzbDWbDWbFqbFqbFqbFqbFqbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUobUobUobUobUobUpbUqbUrbUsbUsbUtbShbUubUvblIbUxbUybUzbRlbRlbUAbRkbUBbUCblMbUEbUEbUFbUGbUHbndbUIbncbUKbULbRFbQvbRFbUMbUNbUObUPbUQbURbUSbUTbUUbUVblybSHbUXbSKbSKbRKaabbFNbTcbTcbFNaaaaabaaablzblAblBblCblzaabaabaaaaabbFNblHblGblFblEbKjblDblDbVhbVibVjbVkbSRbSRbSVbSWbSRbSRbVlbVmbVnbVobVobVpbVqbVqbVrbVobVobVpbVqbVqbVrbVobVsbzTbVtbVubVvbVwbVxbrAbVzbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVAbVBbVCbVCbVDbDWbDWbFqbFqbVEbFqbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaabaabbVFbVGbVHbVIbVHbVJbVKbVLbVMbVMbVNbShbVObIhbRkbVPbRlbVQbRlbRlbRlbnnbTBbSnbRsbngbPkbVTbVUbnhbnlbnjbfdbnmbVZbRFbQvbRFbWabVUbWbbWcbWdbWebWfbWgbWfbWhaabbRKbRKbRKbRKbRKaabbFNbFNbnfbFNaabaabaabbWjbWkbnebWmbWjaabaaaaaaaabbFNbFNbFNbFNbFNbWnbFNbFNbWobWpbWqbFNbFNaaaaaaaaaaaabWrbWsbWtbWubWraaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaabgQbWvbWwbWxbgQbgQbgQbgQaaaaabaaaaaaaaaamRamRamRaabaaaaaaaabaaaaaaaabaabaabbWybWzbWAbGAbDVbDWbDWbFqbFrbFqbDWbDWaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbVFbWBbWCbWDbWEbUrbWFbUrbWGbUrbWHbWIbWJbWKbRkbWLbRlbVQbRlbRlbWMbRkbWNbWObRscgJbPkbQncgIbWRboHcgDbfdcgHbUMcgkcgnbWWchTcinbWZbXabXbbXcbSAbXdbXebXfbnpbSHbXgbXhbXhbRKaabaabbTccgTbTcaaaaabaaadOvchPchFchEdOvaabaaaaaaaabaaaaaaaaabFNciobTccipbFNaaaaabaaaaaaaabaaaaaaaaaaaabXqbXrbXsbXtbXqaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaabXubXubXvbXwbXuaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabbXxbDTbDTbDUbDVbDVbDWbDWbDWbDWbDXaabaabaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabbVFbXybXzbXAbXzbXBbXCbXDbXEbXFbXGbShbLnbIhbRkbXHbRlbXIbXJdQmdQlbRkbXMbSnbRscfWbXOcfNcfMbRIbXRcfLcfybRIbXUcfxcfwbRIcgdbXYbXZbYabYbbRFbYcbYdbYebTPaabbTQbYfbYgbYhbRKaabaaaaaaaaaaaaaaaaaaaaabYibTVcgebYkbYiaabaabaabaabaabaabaaabFNcgjcgibzqbFNaaaaabaaaaaaaabaaaaaaaaaaaabYnbYobYpbYqbYnaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaabXubYrbYsbYtbXuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabbUobUobUobUobUobShbShbShbShbShbShbShbLnbIhbRkbRkbRkbRkbRkbRkbRkbRkbXMbSnbRsclKbYvclLclMclOckZclaclbclgcllclHbQvbRFbYFbYGbYHbYIbYJbRFbYcbYKbYLbYMblybSHbYNbXhbXhbRKaabaaaaaaaaaaabaabaabaaabTVclVclSclRbTVbTVbTVbTVbTVbTVbTVaabbFNbFNbFNbFNbFNaaaaabaaaaaaaabaaaaaaaaaaaabYRbYSbYTbYUbYRaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaabXubYVbYWbYXbXuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbIhbFGbFGbFGbFGbYYbIhbIhbYZbZabZabZabZabZbbZcbZcbZdbZebZebZebZebZebZebZebRjbFGbZfbSnbRscjqbZhcjUbltbPrcebciscirciscjacjnbQvbRFbSybZobZpbZqbZrbRFbYcbYdbZsbTPaabbRKbRKbRKbRKbRKaabaaabTVbTVbTVbTVbTVbTVbTVbZtckDckCbZwcjYckwckpcjXcjYbTVaabaabaabaabaabaabaabbZBaabaabaabaabaabaabaabbZCbWrbZDbZEbZCaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaabXubZFbZGbZHbXuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabbZIbZJbZKbZLbZMbZNbIhbIhbSibZObIhbFGbFGbZPbZQbFGbFGbZRbZSbZQbFGbFGbZTbIhbSjbFGbXMbSnbRscmRbZVbQnbZWbPkbZXbZYbZZcmTbPqcmSbQvbRFbWacacbYHbVZcadcaecafcagcahbXfbnpbSHcaicajcakbRKaabaaabTVcalcnccnbcaobTVcmWcmVckDcmUbZwbWkcnacmZcnpbWkbTVaaaaaaaaaaabaaaaaaaaaaabaaaaaaaabaaaaaaaaaaaabWrcavcawcaxbWraaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaacaycazcaAcaBcaCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaabIhbFGbFGbFGbFGcaDcaEcaEcaFcaGcaHcaGaaacaIaaaaaaaaaaaaaaaaaaaaabFGcaJbIhbSjbFGcaKcaLcaMcaNcaOcaPcaQcaRcaScaTcaUbQncmkcmqclWbRFbWacaccaYbVZcadcaZbYcbYdcbabTPaabbTQcbbcbccbdbRKaabaaabTVcmzcmKcmAbZwbTVcmtbZwcmwcmtbZwcbjcmycmxcbYcmQbTVaaaaaaaaaaabaaaaaaaaabWrbWrbWrbWrbWrbWrbWrbWrbWrcbocbpcbqbWraaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaabcbrcbscbraabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabbFGcbtcaGcaGcbucaGcbvcaGcaGcbwcbxcaGcaGcbycbzcbxcaGcaGcaGcaGcbAcbBcbCcbDbRscbEcbFbQnbQobQnbQnbQnbQnbQncoGcoHcoIbRFbWacacbYHbVZcbJcbKcbLcbMcbNbYMblybSHcbOcajcajbRKaabcsJcbQcsycsxcbTcswcbTcsvcsjcpzcpycpmcoXccbcbTcoKcoWbTVaaaaaaaaaaabaaaaaaaaabWrcceccfccgcchcciccjcckcclccmccnccoccpccqaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabccrccsccraabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvalvalualualvalualualualUalualualualvalvaaaaaaaabaabaaaaaaaaaaaaaaaaaaaabbIkcbtcctccuccvccwccxccycczccAccBccCcaGccBccDccEccFccFccGcaGccHccIccJccKbRscbEccLccMbQobQnbSqbQnccNcnrcnKcnLcntbRFbWabRFccSbRFccTccUbYcbYdccVbTPaabbRKbRKbRKbRKbRKaabaaabTVcoFblAcoecoEcoCblCdTncozcofcoecnMcbVcoeblCcdfbTVaabaabaabaabaabaabaabbWrcdgcdhcdgcdicdjbYocdkcclcdlcdmcdlbWrbWraaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaabaaacdnaaaaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaaaalvaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaabJOcbtcdocdpcdqcdrcdscdscdscdscdtcducdvccFcdwccFccFcdxccFcdycdzcdAcdBccKbRscbEcdCcdDbQoccRcdFccQbQocdFccOdKHccPbRFbWabRFbSybZocdKcdLcdMcdNcdObXfbnpbSHcdPcdQcdQbRKaabaaabYicbjcdRcdSbTVcbRcbWcbVcbUcbSccacbZcbYcbXcccccdbTVaaaaaaaaaaabaaaaaaaaabWrcdgcdgcdgceccedccjceecefcegcehceicejbWraaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabaaacekaaaaabaabaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaacelcemcenaaacelcemcenaaacelcemcenaabceoaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaabJOcbtcdocepccFcdxceqccFccFccFccFccFcepcepccFccFccFccFcercescdzcetcdzceucevcdCcdCcewbQocexceycezbQodMtbPqcbPceCceDceEbWWbUOceFceGbSAbUQbYdceHbTPaabbTQceIceJceKbRKaabaabaabaabaabaabbTVcbibWkbWmcbGcbmbWjdTncbHbWjcbHdTnbTVaaaaaaaaaaabaaaaaaaaabWrcclcclcclcclcePbYoceQceRceSceTceUceVbWraaaaaaaaaaaaaaaceWceWceWceXaabaabaabaabcekaabaabaabaabaabalUceWceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaacelceYcenaaacelceYcenaaacelceYcenaabaabaabaabaaaaaaaaaaaaaaaaaaaabaabaabbJOcbtceZcepcfaccFcfbcdWcfdcfdcdwccFcepcfeccFccFccFccFcffcfgcfhcfibJZcfjcfkcflcfmcfnbQocexcdFcfobQocdYbPqbWabRFbRFceFbRIcfqbXRcfrcfsbQDcftcfubYMblybSHcfvcdQcdQbRKaabaaaaaaaabaaaaaabTVcdUbWkbWmbWkcdVbWjbWkbWmbWjbWmcdTbTVaaaaaaaaaaabaaaaaaaaabWrcceccfccgcfzcfAccjcfBcfCcfDcfEbYocfFbWraaaaaaaaaaaaaaaceWaaaaabaaaaabaaaaaaaaacfGaaaaabaabaaaaaaaaaaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaluaabcelceYcenaaacelceYcenaabcelceYcenaabaaaaaaaabaabaaaaaaaaaaaaaaaaabaaaaaabNKcbtcaGcfHccFcfIcfJcfKcdHcdGcdHcdJcdHcfOcfPccBcfQcepcepcesbLycfRcfScfTcfUcfVdNgcfXcfYcfZcgacdecgccddbPqcdEbRFbRFcgfbRFbRFbRFbRHbXYcgfbYdbZsbTPaabbRKbRKbRKbRKbRKaabaaaaaaaabaaaaaabTVccXccZccYcdccdacglcgmccWcglccWcgmbTVaabaabaabaabaabaabaabbWrcdgcdgcdgcgocdjbYocgpcgqcgrcgsbYocgtbWrbWrbWrbWraaaaaaceWaaacgucgucgucgucguaabcgvaabcgucgucgucgucguaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaacelceYcenaabcelceYcenaaacelceYcenaaaaaaaaaaaaaaaaabaaaaabaaaaabaabaaaaaabFGcbtcaGcgwcgxcgxcgycaGcaGcaGcaGcaGcaGcaGcaGcaGcaGcaGcaGcaGbFGcgzbFGcgAbFGbPkcgBcgCdNHcnGcnUcobcsKcsLbPqceMcgKcgLcgMcgNcgOcgNcgMcgPcgMcgQceFcgRaabaabaabaabaabaabaabaaaaaaaaaaaaaaabTVbTVbTVceLceBbTVbTVcgUbTVbTVbTVcgUbYiaaaaaaaaaaaaaaaaaaaaabWrcdgcdgcdgcfzcgVccjcgWcgXcgYcgZchachachbchcchdbWraabaabceWaabchechfchfchfchfchgcgvchhchichichichichjaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvaluaabaaacelceYcenaabcelceYcenaaacelceYcenaabaaaaaaaaaaaaaabaabchkchlchlchlchlbFGbFGcbtcaGchmchnchnchochpchqchrchrchrchrchrchrchschrchrchtchtchrchuchvchwchxbPkchychzchAchBchCchDbQnceAcebboIceachGchHchIchJchKchLbRFchMchNchObRCaabaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaabTVcbjcdZbTVaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaabWrcclcclcclcclchQbYocgpchRchScgsbYobYochUbYochVbWraaaaaaceWaabchWchWchWchWchWaaacgvaaachWchWchWchWchWaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaabaaaaabaabchXaabaabaabchXaabaaaaabchXaabaaaaaaaaaaaaaaachYchZciacibciccidciecifcaEcigcaGcaGcihciicaGcaGbPbcijcijcijcijcijcijcikcijcijcijcilcilcimdQicilcildQjciqchzchAbQnbQnbQnbQncfccfpcitciucivciwcixciycixciwcixcizcixcizciAaabaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaciBaaaaaaaaaaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaabWrcceccfccgciCcfAccjciDbYqciEciFciFciGciHciIciJbWraaaaaaceWaaaaabaaaaabaabaabaaacgvaaaaabaaaaabaaaaabaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaabciKciLciLciMciNciNciNciNciNciNciNciNciNciNciNciNciNciNciOciPciQciRciSciTciUciVciWbIhcbtciXcaGcaGcaGcaGbIhbPbcijciYciZceOcjbcjccjdcjecjfcjgcjhcjicjjcjkcjlcjmdOjcjocjpchAbQnbQnbQnbQndOkbPkaabcjraabcjsaabcjraabcjsaabcjtaabcjtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjuaaaaaaaaaaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaabWrcdgcdhcdgcjvcdjbYobYpbYqcjwbYobYocjxcclcclcclbWraaaaaaceWaaacgucgucgucgucguaabcgvaabcgucgucgucgucguaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaabaaaaabaabcjyaabaaaaabcjyaabaaaaabcjyaabaaaaaaaaaaaaaaachYchZcjzcjAcjBcjCchlcjDbIhcjEcaEcaEcaEcaEcaEcaEcjFcijcjGcjHcjIcjIcjJcjKcjScjTcjOcjPcjQcjRcgGcgFcjNcjMcgEchzchAcjWbYDbQnbQnbYEbPkbRKcjZbTQcjZbRKcjZbTQcjZbRKckabTQckbbRKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWrcdgcdgcdgciCckcckdckeckfckgbYobYockhbYockibYobXqaabaabceWaabchechfchfchfchfchgcgvchhchichichichichjaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvaluaabaabcelckjcenaaacelckjcenaaacelckjcenaabaaaaaaaaaaaaaabaabckkchlchlchlchlbFGbZTcaJbIhcklbIhbIhbIhckmbSjcijckncjIcjIcjIcjIckocjScjIcjIckqckrckscktcjVckvcmPckxckyckzckAbYQbYPbQnbYObPkbRKckEckFckGbRKckHckIckJbRKckKckLckMbRKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZCbWrckNckOckOckPckQckRckQckSckTckUckVckWccjckXckYaaaaaaceWaabchWchWchWchWchWaaacgvaabchWchWchWchWchWaaaceWaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacelckjcenaabcelckjcenaaacelckjcenaaaaaaaaaaabaaaaabaabaabaaaaaaaaaaaabFGbZkbZibZibZlbFGbFGbFGbFGclccldclecjIcjIclfcjIckocjScjIcnnclhclicljclkckuclmclhclnbQnchAcloclpclqbQnbQnbPkbRKclrclsclrbRKcltclucltbRKclvclwclxbRKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciBaaabWrclyclzclAclBclCclzclDclEclCclzclFbWraaaaaaceXaaaaabaaaaabaaaaabaaaclGaaaaabaaaaabaabaabaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaabcelckjcenaaacelckjcenaaacelckjcenaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbZmbNHclIbFGbIhclJcjIcjIcjIcjIcjIckocjScjIcnyclhclhcnucocclNcnNclPclQcokcodclTclUbZubPkbZnbPkbRKclrclXclrbRKcltclYcltbRKclxclZclxbRKaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmaaabbWrcmbcmccmdcclcmecmfcmgcclcmhcmicmjbWraaaaaaceWaaacgucgucgucgucguaabcekaabcgucgucgucgucguaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaabcelckjcenaaacelckjcenaabcelckjcenaabaabaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbZzbIhbIhbLmcmlcijcmmcmncmocmpcjIckocjScjIcjIcoDcjIcmrcjIcjScjIcmscolcmucjIdNUdNWbZvbZybZxbPkbRKbRKbRKbRKbRKbRKbRKbRKbRKbRKbRKbRKbRKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaabWrcmBcdgcdgcclcmBcdgcdgcclcmBcdgcdgbWraabaabceWaabchechfchfchfchfcmCcmDcmCchichichichichjaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalUaabcelcmEcenaaacelcmEcenaaacelcmEcenaabaluaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbRdbNJbNIcijcijcijcijcijcijcmFcmGcmHcmIcmJcmJcoQcoJcmLcmMcmNcmJcmJcsgcmOcsfcnodOlbZvcabbZxbPkcaabZUbZAbZAcmXaaaaaaaaaaabaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWrcmYcdgcdgcclcmYcdgcdgcclcmYcdgcdgbWraaaaaaceWaabchWchWchWchWchWaaacekaaachWchWchWchWchWaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaluaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaaluaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbFGbZRbZQcijcarcascatcaucijcndcjIckocnecjIcsVcmvcngcnhcnicnfcnkcnlcnmcmvcszcnodOlcamcdCcanbZnbZxcnscapcaVcnvaaaaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWrcnwcdgcdgcclcnwcdgcdgcclcnwcdgcdgbWraagaaaceWaaaaaaaabaabaabaaaaaacekaabaaaaaaaabaabaaaaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvalvalualvalvalUalualualualualvalualualvcnxaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacijcaWcaWcnzcnzcnAcnecjIckocnecjIcnBcnCcnDcnEcnFcnjcnHcnIcnJcHFckocnecbecaXcdCcdCbPkcancbfbZAbZAcbhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZCbWrbWrbWrbWrbWrbWrbWrbWrcnOcnOcnObZCaaaaaaceWceWceWceWceWaaaaaaaaacekaaaaaaaaaceWceWceWceXceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaacijcnzcnzcnzcnzcnAcjLcnPcnQcnRcnScnTcnTceNcnVcnWcnXcnYcnZceNcoacdIcbIbXncjIcjIbXobXmcijcijcijcngcogaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacohcohcohaaaaaaaaaaaaaaaaaaaaaaaaaaaceWaabcoiaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaacijcojbYubYmcomcijconcoocopcoqcorcoscotcijcoucovcowcjIcoxcijcoycgbcoAcoBbYlbYjbXXbXWbXVbXTbXSbXQbXPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceWaaaaabaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabcijcoLcoLcoLcomcijcoMcoNcijcoOcoPcoPcoPcijcgScoRcoScoTcoUcijcoPcoPcoPcoOcijcoVcmvbYxcijcijcijcijbYwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceWceWceWceWceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaabaaaaabaaacijcoLcoLcomcomcijcoYcoZcijcpacpbcpccpdcpecpfcpgcphcpicoUcpjcpbcpbcpbcpkcijcplbYybYxaaaaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaccijcijcijcijcijcijcnzcpncijcijcpocppcpqcprcpscoqcptcoqcpucpvcpqcppcpwcijcijcpxbYCbYzaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaacaabaacaacaabaaaaabaaccijcijcpAcijcpBcpCcpCcpDcpEcpFcpFcpFcpFcpFcpEcpGcpCcpCcpHcijcpIcijcijaaaaabaabaaaaabaabaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaabaaaaaaaaaaabcijcpJcpKcpLcpMaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaabaaaaaacpNcpOcpPcpQcijaabaabaaaaaaaaaaacaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaacijcpRcogcogaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaacogcogcpRcijaaaaabaaaaabaabaabaabaabaacaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10238,8 +10262,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacijcqccqdcogaaaaaaaabaaaaaaaabaabaabaabaabaaaaaaaabaaaaaacogcqacqbcijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqkcqkcqkcqkcqkcqkcqkcqkcqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaacijcpXcogcqlaaaaaacqmaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaacogcogcpXcijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqncqncqncqncqncqncqncqncqnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqkcqkcqkcqkcqkcqkcqkcqkcqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacijcqocqpcogaabaabaabcpUaaaaaacpUaaaaaaaaaaaacpUaabcqqaabcogcqrcqscijaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqncqncqncqncqncqncqncqncqnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqkcqkcqkcqkcqkcqkcqkcqkcqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacijcqtcqucqvaaaaaaaabaabaabaabaabaabaabaabaabaabaabaaaaaacqwcqucqxcngaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqncqncqncqncqncqncqncqncqnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqkcqkcqkcqkcqkcqkcqkcqkcqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqyacMcqzcpNcpHaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaabaaaaaacpBcpMcqzacMaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqncqncqncqncqncqncqncqncqnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqkcqkcqkcqkcqkcqkcqkcqkcqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacijcqtcqucqvaaaaaaaabaabaabaabdSGaabaabaabaabaabaabaaaaaacqwcqucqxcngaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqncqncqncqncqncqncqncqncqnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqkcqkcqkcqkcqkcqkcqkcqkcqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqyacMcqzcpNcpHaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaabaaaaaacpBcpMcqzacMacMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqncqncqncqncqncqncqncqncqnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqkcqkcqkcqkcqkcqkcqkcqkcqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaacpNcpCcpCcpCcpCcpCcpCcpCcpCcpCcpCcpCcpCcpCcpMaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqncqncqncqncqncqncqncqncqnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqkcqkcqkcqkcqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqncqncqncqncqnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqkcqkcqkcqkcqkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacqncqncqncqncqnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10303,11 +10327,11 @@ cqEcrxcrvcrFcrwcrBcrzcrscrDcrEcrtcrAcrrcrCcrycrucrzcrBcrtcrvcrFcrscrAcrwcrCcrEcq cqMcrwcrEcrrcrscrycrvcrzcrtcrBcrCcrDcrucrFcrAcrxcrvcrycrCcrEcrrcrzcrDcrscrFcrBcqHcrLcrMcqQcqRcqScqTcqUcrkcqWcrGcrHcrIcrJcrNcrKcrLcrMcqTcqUcqVcqWcqUcqVcqWcrGcrHcrIcrJcrNcrKcrLcrecrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedIedJqdJrdIecrQdJpdJpdJpdJpdJpcrQdJodJodJodJodJncrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcrZcsacsacsacsbcrW cqPcrscrBcrucrzcrAcrEcrvcrCcrycrFcrtcrxcrrcrDcrwcrEcrAcrFcrBcrucrvcrtcrzcrrcrycqDcrGcrHcrIcrJcrNcrKcrLcrecqQcqRcqScqTcqUcqVcqWcrGcrHcrIcrJcrNcrKcrLcrMcqQcqRcqScqTcqUcqVcqWcrGcqYcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJsdIedIedIedIecrQdJvdJudJtdJudJwcrQdJydJxdJAdJzdJycrQcrPcrPcrXcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcrZcsacsacsacsbcrW cqCcrzcrycrxcrvcrDcrBcrEcrFcrAcrrcrCcrwcrucrtcrscrBcrDcrrcrycrxcrEcrCcrvcrucrAcqJcqScqTcqUcqVcqWcrGcrHcqZcrJcrNcrKcrLcrMcqQcqRcqScqTcqQcqRcqScqTcrHcrIcrJcrNcrKcrLcrMcqQcqRcqScricrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedJsdIedIedJBcrQdJCdJudJtdJudJEcrQdJydJDdJGdJFdJycrQcrPcrPcrXcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsccsacsacsacsdcrW -cqFcrvcrAcrwcrEcrtcrycrBcrrcrDcrucrFcrscrxcrCcrzcrycrtcrucrAcrwcrBcrFcrEcrxcrDcqGcrNcrKcrLcrMcqQcqRcqScricqUcqVcqWcrGcrHcrIcrJcrNcsecsfcsgcshcsicsjcqTcqUcqVcqWcrGcrHcrIcrJcrNcrccrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedJPdJsdIedJqcrQdJpdJpdJpdJpdJpcrQdKcdJDdJGdJFdKccrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsccsacsacsacsdcrW -cqIcrEcrDcrscrBcrCcskcrycrucslcsmcsncsocspcsqcsrcsscstcrxcrDcsucrycrrcrBcrwcrtcqOcrMcqQcqRcqScqTcqUcqVcrlcrGcrHcrIcrJcrNcrKcrLcrMcsgcsvcswcsxcsycszcqWcrGcrHcrIcrJcrNcrKcrLcrMcrfcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedIedIedJsdIecrQdKedKfdKedKfdKecrQdKddJDdJGdJFdKdcrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsccsacsacsacsdcrW -cqHcrBcrtcrzcrycsAcrDcrAcrxcspcsBcsCcsDcsEcsFcsGcsHcsIcrwcrtcrzcskcrucrycrscrCcqLcrIcrJcrNcrKcrLcrMcqQcrgcqScqTcqUcqVcqWcrGcrHcrIcsJcsKcsLcsMcsvcsNcqRcqScqTcqUcqVcqWcrGcrHcrIcracrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedKgdIedIedJscrQdJNdJOdJNdJOdJNcrQdKddJDdJGdJFdKdcrQcrPcrXcrPcrXcrPcrQcrRcrRcrRcrRcrRcrQcrScrYcrScrYcrScrQcsccsacsacsacsdcrW -cqDcrycrCcrvcrAcrrcrtcrDcsOcsGcsHcsPcsQcsRcsDcsCcsScsTcsUcrCcrvcrDcrxcrAcrzcrFcqBcqTcqUcqVcqWcrGcrHcrIcracrNcrKcrLcrMcqQcqRcqScqTcsfcsLcsMcsvcswcsVcrJcrNcrKcrLcrMcqQcqRcqScqTcrjcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJqdIedKhdIedJPcrQdJIdJJdJIdJJdJIcrQdKjdKidKldKkdKjcrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsWcsXcsXcsXcsYcrW -cqJcrAcrFcrEcrDcrucrCcrtcsUcsCcsScsZcsBctacsQcsPctbcsFctccrFcrEcrtcrwcrDcrvcrrcqKcrHcrIcrJcrNcrKcrLcrMcrfcqRcqScqTcqUcqVcqWcrGcrHctdctectfctgcsfctfcqQcqRcqScqTcqUcqVcqWcrGcrHcqZcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacthdJQdJQdJQdJQdJQctjdJQdJQdJQdJQdJQctjdJQdJQdJQdJQdJQctjctictictictictictjctictictictictictjctictictictictictjctictictictictictk +cqFcrvcrAcrwcrEcrtcrycrBcrrcrDcrucrFcrscrxcrCcrzcrycrtcrucrAcrwcrBcrFcrEcrxcrDcqGcrNcrKcrLcrMcqQcqRcqScricqUcqVcqWcrGcrHcrIcrJcrNaaaaaaaaaaaaaaaaaacqTcqUcqVcqWcrGcrHcrIcrJcrNcrccrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedJPdJsdIedJqcrQdJpdJpdJpdJpdJpcrQdKcdJDdJGdJFdKccrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsccsacsacsacsdcrW +cqIcrEcrDcrscrBcrCcskcrycrucslcsmcsncsocspcsqcsrcsscstcrxcrDcsucrycrrcrBcrwcrtcqOcrMcqQcqRcqScqTcqUcqVcrlcrGcrHcrIcrJcrNcrKcrLcrMaaaaaaaaaaaaaaaaaacqWcrGcrHcrIcrJcrNcrKcrLcrMcrfcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedIedIedJsdIecrQdKedKfdKedKfdKecrQdKddJDdJGdJFdKdcrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsccsacsacsacsdcrW +cqHcrBcrtcrzcrycsAcrDcrAcrxcspcsBcsCcsDcsEcsFcsGcsHcsIcrwcrtcrzcskcrucrycrscrCcqLcrIcrJcrNcrKcrLcrMcqQcrgcqScqTcqUcqVcqWcrGcrHcrIaaaaaaaaaaaaaaaaaacqRcqScqTcqUcqVcqWcrGcrHcrIcracrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdIedKgdIedIedJscrQdJNdJOdJNdJOdJNcrQdKddJDdJGdJFdKdcrQcrPcrXcrPcrXcrPcrQcrRcrRcrRcrRcrRcrQcrScrYcrScrYcrScrQcsccsacsacsacsdcrW +cqDcrycrCcrvcrAcrrcrtcrDcsOcsGcsHcsPcsQcsRcsDcsCcsScsTcsUcrCcrvcrDcrxcrAcrzcrFcqBcqTcqUcqVcqWcrGcrHcrIcracrNcrKcrLcrMcqQcqRcqScqTaaaaaaaaaaaaaaaaaacrJcrNcrKcrLcrMcqQcqRcqScqTcrjcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJqdIedKhdIedJPcrQdJIdJJdJIdJJdJIcrQdKjdKidKldKkdKjcrQcrPcrPcrPcrPcrPcrQcrRcrRcrRcrRcrRcrQcrScrScrScrScrScrQcsWcsXcsXcsXcsYcrW +cqJcrAcrFcrEcrDcrucrCcrtcsUcsCcsScsZcsBctacsQcsPctbcsFctccrFcrEcrtcrwcrDcrvcrrcqKcrHcrIcrJcrNcrKcrLcrMcrfcqRcqScqTcqUcqVcqWcrGcrHaaaaaaaaaaaaaaaaaacqQcqRcqScqTcqUcqVcqWcrGcrHcqZcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacthdJQdJQdJQdJQdJQctjdJQdJQdJQdJQdJQctjdJQdJQdJQdJQdJQctjctictictictictictjctictictictictictjctictictictictictjctictictictictictk cqGcrDcrrcrBcrtcrxcrFcrCctccsPctbcsTcsHcsGcsBcsZcsEcsDctlcrrcrBcrCcrscrtcrEcrucqNcqRcqScqTcqUcqVcqWcrGcqYcrIcrJcrNcrKcrLcrMcqQcqRcqVcqTcqUcqVcqWcrJcrHcrIcrJcrNcrKcrLcrMcqQcqRcrhcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJTdJUdJVdJTdJUcrQdJSdJSdJSdJSdJScrQdJRdJRdJRdJRdJRcrQctmctmctnctoctocrQctpctpctpctpctpcrQctqctrctrctrctscrQcttctuctuctuctvcrW cqOcrtcrucrycrCcrwcrrcrFctlcsZcsEcsFcsScsCcsHcsTcsRcsQctwcrucrycrFcrzcrCcrBcrxcqEcqVcqWcrGcrHcrIcrJcrNcrccrLcrMcqQcqRcqScqTcqUcqVcqScrIcrJcrNcrKcrGcrKcrLcrMcqQcqRcqScqTcqUcqVcrlcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJUdJVdJTdJUdJVcrQdJSdJWdJSdJSdJScrQdJRdJXdJZdJYdJRcrQctxctxctyctzctzcrQctpctActpctBctpcrQctCctDctDctDctEcrQctFctGctGctGctHcrW cqLcrCcrxcrAcrFcrscrucrrctwcsTcsRcsDctbcsPcsScsFctacsBctIcrxcrAcrrcrvcrFcrycrwcqMcrJcrNcrKcrLcrMcqQcqRcrhcqTcqUcqVcqWcrGcrHcrIcrJctecsectJctdctKcshcqScqTcqUcqVcqWcrGcrHcrIcrJcrbcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrOdJVdJTdJUdJVdJTcrQdJSdJSdJSdKadJScrQdJRdKbdKbdKbdJRcrQctxctLctLctLctzcrQctpctpctpctpctpcrQctCctDctDctDctEcrQctFctGctGctGctHcrW @@ -10334,39 +10358,39 @@ cqMcrwcrEcrrcrscrycrvcrzcrtcrBcrCcrDcrucrFcrAcrxcrvcrycrCcrEcrrcrzcrDcrscrFcrBcq cqPcrscrBcrucrzcrAcrEcrvcrCcrycrFcrtcrxcrrcrDcrwcrEcrAcrFcrBcrucrvcrtcrzcrrcrycqDcrmcqIcrEcrDcrscrBcrCcrAcrycvkcslcsmcsncsocspcsqcsrcsscstcvlcrDcrscrycrrcrBcrwcrtcqOcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYcvfcvmcvncvocvfcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cqCcrzcrycrxcrvcrDcrBcrEcrFcrAcrrcrCcrwcrucrtcrscrBcrDcrrcrycrxcrEcrCcrvcrucrAcqJcrmcqHcrBcrtcrzcrycrFcrDcrAcvlcvpcvqcvrcvscvtcvucvvcvwcvxcvycrtcrzcrAcrucrycrscrCcqLcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYcvfcvmcvncvocvfcvzcvAcvBcvCcvDcvEcvAcvFcvGcvHcvHcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa cqFcqOcqNcqDcqLcqMcqKcqBcqFcqEcqIcqCcqJcqHcqPcqGcqKcqMcqIcqNcqDcqBcqCcqLcqHcqEcqGcrmcqDcrycrCcrvcrAcrrcrtcrDcvycvvcvwcvIcvJcvKcvscvrcvLcvMcsucrCcrvcrDcrxcrAcrzcrFcqBcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYcvfcvmcvncvocvfcvNcvAcvEcvEcvDcvEcvAcvEcvHcvHcvHcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqIcrEcrDcrscrBcrCcrAcrycrucrtcrxcrrcrzcrwcrFcrvcrAcrCcrxcrDcrscrycrrcrBcrwcrtcqOcrmcqJcrAcrFcrEcrDcrucrCcrtcsucvrcvLcvxcvqcvpcvJcvIcvOcvucvPcrFcrEcrtcrwcrDcrvcrrcqKcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYcvfcvncvncvncvQcvRcvScvEcvEcvDcvEcvAcvFcvGcvHcvHcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqHcrBcrtcrzcrycrFcrDcrAcrxcrCcrwcrucrvcrscrrcrEcrDcrFcrwcrtcrzcrAcrucrycrscrCcqLcrmcqGcrDcrrcrBcrtcrxcrFcrCcvPcvIcvOcvMcvwcvvcvqcvxcvtcvscvTcrrcrBcrCcrscrtcrEcrucqNcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYcvfcvncvncvncvQcvRcvScvEcvEcvEcvEcvUcvEcvHcvHcvHcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvVcvVcvVaaacvWcvWcvWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqDcrycrCcrvcrAcrrcrtcrDcrwcrFcrscrxcrEcrzcrucrBcrtcrrcrscrCcrvcrDcrxcrAcrzcrFcqBcrmcqOcrtcrucrycrCcrwcrrcrFcvTcvxcvtcvucvLcvrcvwcvMcvKcvJcvXcrucrycrFcrzcrCcrBcrxcqEcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYcvfcvYcvncvZcvfcvNcvAcvEcvEcvDcvEcvAcvFcvGcvHcvHcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvVcvVcvVaaacvWcvWcvWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqJcrAcrFcrEcrDcrucrCcrtcrscrrcrzcrwcrBcrvcrxcrycrCcrucrzcrFcrEcrtcrwcrDcrvcrrcqKcrmcqLcrCcrxcrAcrFcrscrucrrcvXcrBcrxcvscvOcvIcvLcvucrwcrtcwacrxcrAcrrcrvcrFcrycrwcqMcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYcwbcvfcwccvfcwdcvzcvAcvEcvEcvDcvEcvAcvEcvHcvHcvHcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvVcvVcvVaaacvWcvWcvWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqGcrDcrrcrBcrtcrxcrFcrCcrzcrucrvcrscrycrEcrwcrAcrFcrxcrvcrrcrBcrCcrscrtcrEcrucqNcrmcqBcrFcrwcrDcrrcsocsmcwecwfcwgcspcvJcvtcvxcvOcvscrscrCcwhcrwcrDcrucrEcrrcrAcrscqPcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYaaacwbcwicwdaaacvzcvAcvEcvEcvDcvEcvAcvFcvGcvHcvHcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwjcwkcwlcwmcwncvVcvVcvVaaacvWcvWcvWcwjcwkcwlcwmcwnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqOcrtcrucrycrCcrwcrrcrFcrvcrxcrEcrzcrAcrBcrscrDcrrcrwcrEcrucrycrFcrzcrCcrBcrxcqEcrmcqKcrrcrscrtcrucvTcvpcvKcvucvscvvcvqcvKcvMcvtcvJcrzcrFcskcrscrtcrxcrBcrucrDcrzcqCcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocwpcwpcwpcwqcwrcwscwrcwrcwrcwscwrcwtcwpcwpcwpcwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqLcrCcrxcrAcrFcrscrucrrcrEcrwcrBcrvcrDcrycrzcrtcrucrscrBcrxcrAcrrcrvcrFcrycrwcqMcrmcqNcrucrzcrCcrxcvXcvvcvpcvscvJcvrcvwcvpcvucvKcvqcstcstcstcstcwucrwcrycrxcrtcrvcqFcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocwvcwvcwwcwxcwycwzcwAcwBcwCcwzcwycwDcwEcwvcwvcwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqBcrFcrwcrDcrrcrzcrxcrucwFcwGcwgcsIcwHcrAcwIcwJcsmcwKcwLcrwcrDcrucrEcrrcrAcrscqPcrmcqEcrxcrvcrFcrwcwacvrcvvcvJcvqcvIcvLcvvcvscvpcvwcvxcvtcvqcvIcsAcrscrAcrwcrCcrEcqIcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocwvcwvcwNcwOcwPcwzcwPcwQcwPcwzcwPcwRcwNcwvcwvcwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqKcrrcrscrtcrucrvcrwcrxcwScwTcwUcwVcwWcrxcwXcwYcwZcxacxbcrAcrtcrxcrBcrucrDcrzcqCcrmcqMcrwcrEcrrcrscwhcvIcvrcvqcvwcvxcvOcvrcvJcvvcvLcvMcvKcvwcvxcxccrzcrDcrscrFcrBcqHcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxdcxdcxecxdcxdcxdcxfcxgcxdcxdcxdcxfcxdcxdcxdcxdcxdcxdcxfcxdcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhcwEcwvcxicwPcwzcwzcwzcwzcwzcwzcwzcwPcxicwvcwwcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqNcrucrzcrCcrxcrEcrscrwcxbcxkcxlcxmcxncrwcxocxpcxqcxrcxscrDcrCcrwcrycrxcrtcrvcqFcrmcqPcrscrBcrucrzcskcvxcvIcvwcvLcvMcvtcvIcvqcvrcvOcvucvpcvLcvMcvkcrvcrtcrzcrrcrycqDcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxecxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxfcxdcxdcxdcxdcxdcxfcxdcxdcxdcxdcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhcwrcwtcxtcxucxvcxucwzcxwcxxcwzcxycwqcwrcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqEcrxcrvcrFcrwcrBcrzcrscxscxzcxAcwUcwIcrscwScxBcxCcxDcxEcrtcrFcrscrAcrwcrCcrEcqIcrmcqCcrzcrycrxcvTcxFcvMcvxcvLcvOcvucvKcvxcvwcvIcvtcvscvvcvOcvucxGcsIcwucrvcrucrAcqJcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxHcxdcxdcxdcxdcxdcxecxdcxdcxgcxfcxdcxdcxfcxdcxdcxfcxgcxdcxfcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocxIcxJcxKcxLcwzcxwcxxcwzcxycwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqMcrwcrEcrrcrscrycrvcrzcxEcwVcxMcxlcxNcrzcxbcxOcxacxPcwWcrCcrrcrzcrDcrscrFcrBcqHcrmcqFcrvcrAcrwcvXcvqcvucvMcvOcvtcvscvpcvMcvLcvxcvKcvJcvrcvtcvscvpcvMcsAcrEcrxcrDcqGcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxecxdcxdcxfcxgcxdcxdcxfcxdcxgcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocxQcxRcxRcxucwzcxwcxxcwzcwycwocxScxScxScxSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqPcrscrBcrucrzcrAcrEcrvcwWcwScxncxEcwFcrvcxscwLcwXcxbcxncrFcrucrvcrtcrzcrrcrycqDcrmcqIcrEcrDcrscwacvwcvscvucvtcvKcvJcvvcvucvOcvMcvpcvqcvIcvKcvJcvvcvucxccrBcrwcrtcqOcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxecxdcxdcxdcxdcxdcxgcxdcxfcxgcxdcxfcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocxTcxRcxRcxUcwzcwPcwPcwzcwzcwscxScxScxScxSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqCcrzcrycrxcrvcrDcrBcrEcrzcrucrvcrscrycrEcrwcrAcrFcrxcrvcrrcrxcrEcrCcrvcrucrAcqJcrmcqHcrBcrtcrzcwhcvLcvJcvscvKcvpcvqcvrcvscvtcvucvvcvwcvxcvpcvqcvrcvscvkcrycrscrCcqLcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxVcxVcxVcxVcxVcxVcxVcxdcxdcxdcxdcxdcxdcxdcxfcxdcxdcxHcxgcxdcxdcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwqcwrcwrcwrcwtcwzcxwcxxcwzcxWcwocxScxScxScxSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqFcrvcrAcrwcrEcrtcrycrBcrrcrDcrucrFcrscrxcrCcrzcrycrtcrucrAcrwcrBcrFcrEcrxcrDcqGcrmcqDcrycrCcrvcskcvOcvqcvJcvpcvvcvwcvIcvJcvKcvscvrcvLcvMcvvcvwcvIcvJcvlcrAcrzcrFcqBcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxXcxYcxZcyacyacyacybcxYcyccxdcxdcxdcxdcxHcxdcxdcxecxdcxecxdcxfcxdcxfcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacydcyecyecyfcygcwzcxwcxxcwzcyhcydaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqIcrEcrDcrscrBcrCcrAcrycrucrtcrxcrrcrzcrwcrFcrvcrAcrCcrxcrDcrscrycrrcrBcrwcrtcqOcrmcqJcrAcrFcrEcyicvtcvwcvqcvvcvrcvLcvxcvqcvpcvJcvIcvOcvucvrcvLcvxcvqcvycrDcrvcrrcqKcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxYcyjcykcylcymcyncyocyocxYcypcxdcxdcxVcxVcxVcxVcxVcxVcxVcxVcyqcyrcxVcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocyscyscyscytcwzcxwcxxcwzcyucwocyvcyvcyvcyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqHcrBcrtcrzcrycrFcrDcrAcrxcrCcrwcrucrvcrscrrcrEcrDcrFcrwcrtcrzcrAcrucrycrscrCcqLcrmcqGcrDcrrcrBcywcvKcvLcvwcvrcvIcvOcvMcvwcvvcvqcvxcvtcvscvIcvOcvMcvwcsucrtcrEcrucqNcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxYcyxcykcykcyycykcykcykcxYcypcxdcyzcyAcyBcyBcyCcwMcwMcwMcwMcwMcwMcwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocyDcyEcyscyFcwzcwzcwzcwzcwzcwscyvcyvcyvcyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqDcrycrCcrvcrAcrrcrtcrDcrwcrFcrscrxcrEcrzcrucrBcrtcrrcrscrCcrvcrDcrxcrAcrzcrFcqBcrmcqOcrtcrucrycwucvpcvOcvLcvIcvxcrucvucvLcvrcvwcvMcrxcvJcvxcvtcvucvLcvPcrCcrBcrxcqEcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxYcyGcykcykcykcyHcykcyIcxYcypcxHcyzcyJcyKcyKcyKcyLcyMcwMcyNcyOcwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocyPcyscyscygcwzcwPcwPcwPcwRcwocyvcyvcyvcyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqJcrAcrFcrEcrDcrucrCcrtcrscrrcrzcrwcrBcrvcrxcrycrCcrucrzcrFcrEcrtcrwcrDcrvcrrcqKcrmcqLcrCcrxcrAcsAcvvcvtcvOcvxcvpcrBcvIcvJcvucvrcvqcrucvvcvMcvKcvscvOcvTcrFcrycrwcqMcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcyQcxYcxYcxYcyRcxYcxYcxYcyScxdcxdcyTcyJcyKcyKcyUcyKcyKcyVcyWcyWcyXcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocyDcyEcyscyYcwzcyZczaczbcwycwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqGcrDcrrcrBcrtcrxcrFcrCcrzcrucrvcrscrycrEcrwcrAcrFcrxcrvcrrcrBcrCcrscrtcrEcrucqNcrmcqBcrFcrwcrDcxccvrcvKcvtcvMcvvcrycrEcrtcrAcrvcrCcrxcvrcvucvpcvJcvtcvXcrrcrAcrscqPcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxYczccykczdcxYczecxVcxVcxVczfczgcyKczhcziczjcyKcwMcyWczkczkcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhczlczlcwrcwrczmcwrcwrczlczlcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -cqOcqMcqIcqKcqPcqDcqFcqCcqOcqHcqLcqGcqNcqBcqJcqEcqFcqDcqLcqIcqKcqCcqGcqPcqBcqHcqEcrmcqKcrrcrscrtcuRctlcsOcuWctMctcctSctIcuBcugctwcuEcsOctlctScsUcuucuWctIcrucrDcrzcqCcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxYcykcykcykcxYcyAcyBcyBcyBcyCcwMcyKczhcznczjcyKcwMcwMcwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhcwtczocxwcwzcxxczpcwqcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqIcrDcrscrycrrcrBcrwcrtcrBcrDcrscrycrrcrBcrwcrtcrBcrwcrtcrDcrscrycrrcrBcrwcrtcqOcrmcqJcrAcrFcrEcrDcrucrCcrtcsucvrcvLcvxcvqcvpcvJcvIcvOcvucvPcrFcrEcrtcrwcrDcrvcrrcqKcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYcvfcvncvncvncvQcvRcvScvEcvEcvDcvEcvAcvFcvGcvHcvHcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqHcrtcrzcrAcrucrycrscrCcrycrtcrzcrAcrucrycrscrCcrycrscrCcrtcrzcrAcrucrycrscrCcqLcrmcqGcrDcrrcrBcrtcrxcrFcrCcvPcvIcvOcvMcvwcvvcvqcvxcvtcvscvTcrrcrBcrCcrscrtcrEcrucqNcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYcvfcvncvncvncvQcvRcvScvEcvEcvEcvEcvUcvEcvHcvHcvHcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvVcvVcvVaaacvWcvWcvWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqDcrCcrvcrDcrxcrAcrzcrFcrAcrCcrvcrDcrxcrAcrzcrFcrAcrzcrFcrCcrvcrDcrxcrAcrzcrFcqBcrmcqOcrtcrucrycrCcrwcrrcrFcvTcvxcvtcvucvLcvrcvwcvMcvKcvJcvXcrucrycrFcrzcrCcrBcrxcqEcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYcvfcvYcvncvZcvfcvNcvAcvEcvEcvDcvEcvAcvFcvGcvHcvHcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvVcvVcvVaaacvWcvWcvWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqJcrFcrEcrtcrwcrDcrvcrrcrDcrFcrEcrtcrwcrDcrvcrrcrDcrvcrrcrFcrEcrtcrwcrDcrvcrrcqKcrmcqLcrCcrxcrAcrFcrscrucrrcvXcrBcrxcvscvOcvIcvLcvucrwcrtcwacrxcrAcrrcrvcrFcrycrwcqMcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYcwbcvfcwccvfcwdcvzcvAcvEcvEcvDcvEcvAcvEcvHcvHcvHcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvVcvVcvVaaacvWcvWcvWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqGcrrcrBcrCcrscrtcrEcrucrtcrrcrBcrCcrscrtcrEcrucrtcrEcrucrrcrBcrCcrscrtcrEcrucqNcrmcqBcrFcrwcrDcrrcsocsmcwecwfcwgcspcvJcvtcvxcvOcvscrscrCcwhcrwcrDcrucrEcrrcrAcrscqPcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuYaaacwbcwicwdaaacvzcvAcvEcvEcvDcvEcvAcvFcvGcvHcvHcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwjcwkcwlcwmcwncvVcvVcvVaaacvWcvWcvWcwjcwkcwlcwmcwnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqOcrucrycrFcrzcrCcrBcrxcrCcrucrycrFcrzcrCcrBcrxcrCcrBcrxcrucrycrFcrzcrCcrBcrxcqEcrmcqKcrrcrscrtcrucvTcvpcvKcvucvscvvcvqcvKcvMcvtcvJcrzcrFcskcrscrtcrxcrBcrucrDcrzcqCcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZcuZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocwpcwpcwpcwqcwrcwscwrcwrcwrcwscwrcwtcwpcwpcwpcwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqLcrxcrAcrrcrvcrFcrycrwcrFcrxcrAcrrcrvcrFcrycrwcrFcrycrwcrxcrAcrrcrvcrFcrycrwcqMcrmcqNcrucrzcrCcrxcvXcvvcvpcvscvJcvrcvwcvpcvucvKcvqcstcstcstcstcwucrwcrycrxcrtcrvcqFcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocwvcwvcwwcwxcwycwzcwAcwBcwCcwzcwycwDcwEcwvcwvcwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqBcrwcrDcrucwFcwGcwgcsIcwHcrucwFcwGcwgcsIcwHcrAcwIcwJcsmcwKcwLcrucrEcrrcrAcrscqPcrmcqEcrxcrvcrFcrwcwacvrcvvcvJcvqcvIcvLcvvcvscvpcvwcvxcvtcvqcvIcsAcrscrAcrwcrCcrEcqIcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocwvcwvcwNcwOcwPcwzcwPcwQcwPcwzcwPcwRcwNcwvcwvcwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqKcrAcrtcrxcwSdSJdSKdSIcwWcrxcwScwTcwUcwVcwWcrxcwXcwYcwZcxacxbcrxcrBcrucrDcrzcqCcrmcqMcrwcrEcrrcrscwhcvIcvrcvqcvwcvxcvOcvrcvJcvvcvLcvMcvKcvwcvxcxccrzcrDcrscrFcrBcqHcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxdcxdcxecxdcxdcxdcxfcxgcxdcxdcxdcxfcxdcxdcxdcxdcxdcxdcxfcxdcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhcwEcwvcxicwPcwzcwzcwzcwzcwzcwzcwzcwPcxicwvcwwcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqNcrDcrCcrwcxbdTfdSTdTgcxncrwcxbcxkcxlcxmcxncrwcxocxpcxqcxrcxscrwcrycrxcrtcrvcqFcrmcqPcrscrBcrucrzcskcvxcvIcvwcvLcvMcvtcvIcvqcvrcvOcvucvpcvLcvMcvkcrvcrtcrzcrrcrycqDcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxecxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxfcxdcxdcxdcxdcxdcxfcxdcxdcxdcxdcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhcwrcwtcxtcxucxvcxucwzcxwcxxcwzcxycwqcwrcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqEcrtcrFcrscxsdTcdSZdSKcwIcrscxscxzcxAcwUcwIcrscwScxBcxCcxDcxEcrscrAcrwcrCcrEcqIcrmcqCcrzcrycrxcvTcxFcvMcvxcvLcvOcvucvKcvxcvwcvIcvtcvscvvcvOcvucxGcsIcwucrvcrucrAcqJcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxHcxdcxdcxdcxdcxdcxecxdcxdcxgcxfcxdcxdcxfcxdcxdcxfcxgcxdcxfcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocxIcxJcxKcxLcwzcxwcxxcwzcxycwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqMcrCcrrcrzcxEdSIdSSdSTcxNcrzcxEcwVcxMcxlcxNcrzcxbcxOcxacxPcwWcrzcrDcrscrFcrBcqHcrmcqFcrvcrAcrwcvXcvqcvucvMcvOcvtcvscvpcvMcvLcvxcvKcvJcvrcvtcvscvpcvMcsAcrEcrxcrDcqGcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxecxdcxdcxfcxgcxdcxdcxfcxdcxgcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocxQcxRcxRcxucwzcxwcxxcwzcwycwocxScxScxScxSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqPcrFcrucrvcwWcwScxncxEcwFcrvcwWcwScxncxEcwFcrvcxscwLcwXcxbcxncrvcrtcrzcrrcrycqDcrmcqIcrEcrDcrscwacvwcvscvucvtcvKcvJcvvcvucvOcvMcvpcvqcvIcvKcvJcvvcvucxccrBcrwcrtcqOcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxdcxecxdcxdcxdcxdcxdcxgcxdcxfcxgcxdcxfcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocxTcxRcxRcxUcwzcwPcwPcwzcwzcwscxScxScxScxSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqCcrrcrxcrEcrCcrvcrucrAcrvcrrcrxcrEcrCcrvcrucrAcrvcrucrAcrrcrxcrEcrCcrvcrucrAcqJcrmcqHcrBcrtcrzcwhcvLcvJcvscvKcvpcvqcvrcvscvtcvucvvcvwcvxcvpcvqcvrcvscvkcrycrscrCcqLcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxVcxVcxVcxVcxVcxVcxVcxdcxdcxdcxdcxdcxdcxdcxfcxdcxdcxHcxgcxdcxdcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwqcwrcwrcwrcwtcwzcxwcxxcwzcxWcwocxScxScxScxSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqFcrAcrwcrBcrFcrEcrxcrDcrEcrAcrwcrBcrFcrEcrxcrDcrEcrxcrDcrAcrwcrBcrFcrEcrxcrDcqGcrmcqDcrycrCcrvcskcvOcvqcvJcvpcvvcvwcvIcvJcvKcvscvrcvLcvMcvvcvwcvIcvJcvlcrAcrzcrFcqBcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxXcxYcxZcyacyacyacybcxYcyccxdcxdcxdcxdcxHcxdcxdcxecxdcxecxdcxfcxdcxfcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacydcyecyecyfcygcwzcxwcxxcwzcyhcydaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqIcrscrscrycrrcrBcrwcrtcrBcrscrscrycrrcrBcrwcrtcrBcrwcrtcrscrscrycrrcrBcrwcrtcqOcrmcqJcrAcrFcrEcyicvtcvwcvqcvvcvrcvLcvxcvqcvpcvJcvIcvOcvucvrcvLcvxcvqcvycrDcrvcrrcqKcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxYcyjcykcylcymcyncyocyocxYcypcxdcxdcxVcxVcxVcxVcxVcxVcxVcxVcyqcyrcxVcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocyscyscyscytcwzcxwcxxcwzcyucwocyvcyvcyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqHcrzcrzcrAcrucrycrscrCcrycrzcrzcrAcrucrycrscrCcrycrscrCcrzcrzcrAcrucrycrscrCcqLcrmcqGcrDcrrcrBcywcvKcvLcvwcvrcvIcvOcvMcvwcvvcvqcvxcvtcvscvIcvOcvMcvwcsucrtcrEcrucqNcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxYcyxcykcykcyycykcykcykcxYcypcxdcyzcyAcyBcyBcyCcwMcwMcwMcwMcwMcwMcwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocyDcyEcyscyFcwzcwzcwzcwzcwzcwscyvcyvcyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqDcrvcrvcrDcrxcrAcrzcrFcrAcrvcrvcrDcrxcrAcrzcrFcrAcrzcrFcrvcrvcrDcrxcrAcrzcrFcqBcrmcqOcrtcrucrycwucvpcvOcvLcvIcvxcrucvucvLcvrcvwcvMcrxcvJcvxcvtcvucvLcvPcrCcrBcrxcqEcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxYcyGcykcykcykcyHcykcyIcxYcypcxHcyzcyJcyKcyKcyKcyLcyMcwMcyNcyOcwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocyPcyscyscygcwzcwPcwPcwPcwRcwocyvcyvcyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqJcrEcrEcrtcrwcrDcrvcrrcrDcrEcrEcrtcrwcrDcrvcrrcrDcrvcrrcrEcrEcrtcrwcrDcrvcrrcqKcrmcqLcrCcrxcrAcsAcvvcvtcvOcvxcvpcrBcvIcvJcvucvrcvqcrucvvcvMcvKcvscvOcvTcrFcrycrwcqMcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcyQcxYcxYcxYcyRcxYcxYcxYcyScxdcxdcyTcyJcyKcyKcyUcyKcyKcyVcyWcyWcyXcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocyDcyEcyscyYcwzcyZczaczbcwycwocyvcyvcyvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqGcrBcrBcrCcrscrtcrEcrucrtcrBcrBcrCcrscrtcrEcrucrtcrEcrucrBcrBcrCcrscrtcrEcrucqNcrmcqBcrFcrwcrDcxccvrcvKcvtcvMcvvcrycrEcrtcrAcrvcrCcrxcvrcvucvpcvJcvtcvXcrrcrAcrscqPcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxYczccykczdcxYczecxVcxVcxVczfczgcyKczhcziczjcyKcwMcyWczkczkcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhczlczlcwrcwrczmcwrcwrczlczlcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +cqOcqMcqIcqKcqPcqDcqFcqCcqOcqHcqLcqGcqNcqBdTjdTjdTjdTjdTjcqIcqKcqCcqGcqPcqBcqHcqEcrmcqKcrrcrscrtcuRctlcsOcuWctMctcctSctIcuBcugctwcuEcsOctlctScsUcuucuWctIcrucrDcrzcqCcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxdcxdcxdcxdcxdcxYcykcykcykcxYcyAcyBcyBcyBcyCcwMcyKczhcznczjcyKcwMcwMcwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhcwtczocxwcwzcxxczpcwqcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crEcrCcrxcrAcrFcrscrucrrcrEcrwcrBcrvcrDcrycrzcrtcrucrscrBcrxcrAcrrcrvcrFcrycrwcrtcrmcqNcrucrzcrCcrxcrEcrscrwcrAcrvcrDcrycrFcrtcrBcrrcrscrEcrDcrzcrCcrwcrycrxcrtcrvcqFcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxXcxYcxYcxYcxYcxYcykcykcykcxYcyJczqczqczqczqczrcyKcyKcyKcyKcyKczscztczucwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwocyZcwPczvcwPczwcwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crBcrFcrwcrDcrrcrzcrxcrucrBcrscrycrEcrtcrAcrvcrCcrxcrzcrycrwcrDcrucrEcrrcrAcrscrCcrmcqEcrxcrvcrFcrwcrBcrzcrscrDcrEcrtcrAcrrcrCcrycrucrzcrBcrtcrvcrFcrscrAcrwcrCcrEcqIcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxYcyIcykcykczxcxYcykcykcykcxYczgczyczzcyBcyCcwMcyKcyKcyKcyKcyKcwMczAczAczBcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwoczCczDczEczFczGcwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crycrrcrscrtcrucrvcrwcrxcrycrzcrAcrBcrCcrDcrEcrFcrwcrvcrAcrscrtcrxcrBcrucrDcrzcrFcrmcqMcrwcrEcrrcrscrycrvcrzcrtcrBcrCcrDcrucrFcrAcrxcrvcrycrCcrEcrrcrzcrDcrscrFcrBcqHcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxYcyIcykczHczIcxYcykcykcykcxYcxYczJczKczLczMcwMcwMcwMcwMcwMczNcwMczOczAczBcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhczPczQczQczQczRcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crAcrucrzcrCcrxcrEcrscrwcrAcrvcrDcrycrFcrtcrBcrrcrscrEcrDcrzcrCcrwcrycrxcrtcrvcrrcrmcqPcrscrBcrucrzcrAcrEcrvcrCcrycrFcrtcrxcrrcrDcrwcrEcrAcrFcrBcrucrvcrtcrzcrrcrycqDcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMczScxdcxYcyIcykczHczTcxYcykcykcykcxYczUcykcykcxYczVczWczMcwMczXczYczZcwMcwMcwMcwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crDcrxcrvcrFcrwcrBcrzcrscrDcrEcrtcrAcrrcrCcrycrucrzcrBcrtcrvcrFcrscrAcrwcrCcrEcrucrmcqCcrzcrycrxcrvcrDcrBcrEcrFcrAcrrcrCcrwcrucrtcrscrBcrDcrrcrycrxcrEcrCcrvcrucrAcqJcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxYcyIcykcykcykcAacykcykcAbcAccykcykcAdcxYcypcxdcyzcAecAfczYcAgcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crtcrwcrEcrrcrscrycrvcrzcrtcrBcrCcrDcrucrFcrAcrxcrvcrycrCcrEcrrcrzcrDcrscrFcrBcrxcrmcqFcqOcqNcqDcqLcqMcqKcqBcqFcqEcqIcqCcqJcqHcqPcqGcqKcqMcqIcqNcqDcqBcqCcqLcqHcqEcqGcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxYcyIcykcykcykcAhcykcykcykcAicykcAjcAkcxYcAlcxdcyzcyJczXcAmcAgcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -crCcrscrBcrucrzcrAcrEcrvcrCcrycrFcrtcrxcrrcrDcrwcrEcrAcrFcrBcrucrvcrtcrzcrrcrycrwcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxXcxYcxYcxYcxYcxYcxYcAncykcykcxYcxYcxYcxYcxYcxYcyccyzczgczXczYcAgcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crBcrwcrDcrucrEcrrcrucrEcrrcrwcrDcrucrEcrrcrwcrDcrucrEcrrcrwcrDcrucrEcrrcrAcrscrCcrmcqEcrxcrvcrFcrwcrBcrzcrscrDcrEcrtcrAcrrcrCcrycrucrzcrBcrtcrvcrFcrscrAcrwcrCcrEcqIcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxYczJcykcykczxcxYcykcykcykcxYczgczyczzcyBcyCcwMcyKcyKcyKcyKcyKcwMczAczAczBcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwoczCczDczEczFczGcwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crycrscrtcrxcrBcrucrxcrBcrucrscrtcrxcrBcrucrscrtcrxcrBcrucrscrtcrxcrBcrucrDcrzcrFcrmcqMcrwcrEcrrcrscrycrvcrzcrtcrBcrCcrDcrucrFcrAcrxcrvcrycrCcrEcrrcrzcrDcrscrFcrBcqHcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxYczJcykczHczIcxYcykcykcykcxYcxYcAcczKczLczMcwMcwMcwMcwMcwMczNcwMczOczAczBcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxhczPczQczQczQczRcxjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crAcrzcrCcrwcrycrxcrwcrycrxcrzcrCcrwcrycrxcrzcrCcrwcrycrxcrzcrCcrwcrycrxcrtcrvcrrcrmcqPcrscrBcrucrzcrAcrEcrvcrCcrycrFcrtcrxcrrcrDcrwcrEcrAcrFcrBcrucrvcrtcrzcrrcrycqDcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMczScxdcxYczJcykczHczTcxYcykcykcykcxYczUcykcykcxYczVczWczMcwMczXczYczZcwMcwMcwMcwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crDcrvcrFcrscrAcrwcrscrAcrwcrvcrFcrscrAcrwcrvcrFcrscrAcrwcrvcrFcrscrAcrwcrCcrEcrucrmcqCcrzcrycrxcrvcrDcrBcrEcrFcrAcrrcrCcrwcrucrtcrscrBcrDcrrcrycrxcrEcrCcrvcrucrAcqJcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxYczJcykcykcykcAacykcykcAbcJWcykcykcAdcxYcypcxdcyzcAecAfczYcAgcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crtcrEcrrcrzcrDcrscrzcrDcrscrEcrrcrzcrDcrscrEcrrcrzcrDcrscrEcrrcrzcrDcrscrFcrBcrxcrmcqFcqOcqNcqDcqLcqMcqKcqBcqFcqEcqIcqCcqJcqHcqPcqGcqKcqMcqIcqNcqDcqBcqCcqLcqHcqEcqGcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxdcxYczJcykcykcykcAhcykcykcykcAicykcAjcAkcxYcAlcxdcyzcyJczXcAmcAgcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +crCcrBcrucrvcrtcrzcrvcrtcrzcrBcrucrvcrtcrzcrBcrucrvcrtcrzcrBcrucrvcrtcrzcrrcrycrwcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxXcxYcxYcxYcxYcxYcxYcAncykcykcxYcxYcxYcxYcxYcxYcyccyzczgczXczYcAgcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa crmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmcrmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxYcAocApcAqcArcAscxYcykcykcykcxYcAtcAucAvcAwcAxcxYcAycwMczXczYcAzcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxYcAAcAAcAAcAAcAAcABcykcykcykcACcykcykcykcykcADcxYcAycwMcwMcwMcwMcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxYcAocApcAAcAAcAAcAEcykcykcykcAFcykcykcykcykcADcxYcypcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxYcAAcAAcAAcAGcAHcxYcAIcAJcAKcxYcALcxYcAMcxYcxYcxYcANcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxYcAAcAAcAAcxYcxYcxYcAAcAOcAAcxYcxYcxYcykcykcykcxYcypcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxYcAAcAAcAAcAAcAGcxYcAIcAJcAKcxYcALcxYcAMcxYcxYcxYcANcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxYcAAcAAcAAcxYcxYcxYbTgcAOcAAcxYcxYcxYcykcykcykcxYcypcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxYcAocApcAPcxYcxdcxYcAQcAQcAQcxYcxdcxYcyocARcAScxYcypcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcxYcAQcAQcAQcxYcxdcyQcATcAUcAVcyScxdcxYcAQcAQcAQcxYcypcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMcxdcyQcATcAUcAVcyScxdcxdcxdcxdcxdcxdcxdcyQcATcAUcAVcyScxdcxdcwMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10420,34 +10444,34 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBrcBscCwcBZcDfcCZcCZcCZcCZcBvcBFcBFcBFcBFcBFcBvcBFcDgcDhcBvcBtcBJcCicBScBScCjcCpcCpcCpcCpcCpcCpcCpcCpcCpcBJcDbcDicDjcDjcBJcBJcDkcBJcBXcCtcCKcCLcCLcCLcCLcDlcCKcBXcCvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBrcBscCGcBvcBvcDmcDncDncDncBvcBFcDocDpcDqcBFcBOcBFcDrcDscBvcBtcBJcBJcBJcBJcBJcBJcBJcDtcBJcBJcBJcCpcCpcCpcDucDbcDvcDvcDbcDbcDbcDbcDwcBXcCtcCKcCLcCLcCLcCLcCLcDecBXcCvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBrcBscBtcCGcBvcCZcCZcCZcCZcBvcBFcDpcDxcDpcBFcBvcCHcBvcBvcCxcBtcBJcDycDzcDAcBJcDBcDCcDCcDCcDDcBJcCpcCpcCpcCpcDbcDbcDbcDbcDEcDbcDbcDjcBXcCtcCKcCLcCLcCLcCLcCLcDFcBXcCvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBrcBscBtcBtcCGcBvcDGcDHcDIcBvcBFcBFcBFcBFcBFcBvcBvcBvcCxcBtcBtcBJcDJcDKcDLcDMcDCcDCcDCcDCcDNcBJcCpcCpcCpcDucDOcDbcDbcDbcDPcDbcDbcDQcBXcCtcCKcCLcCLcCLcCLcCLcCKcBXcCvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGFaaaaaaaaacBrcBscBtcBtcCGcBvcDGcDHcDIcBvcBFcBFcBFcBFcBFcBvcBvcBvcCxcBtcBtcBJcDJcDKcDLcDMcDCcDCcDCcDCcDNcBJcCpcCpcCpcDucDOcDbcDbcDbcDPcDbcDbcDQcBXcCtcCKcCLcCLcCLcCLcCLcCKcBXcCvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBrcBscBtcBtcBtcCGcBvcBvcBvcBvcBvcBvcBvcBvcBvcBvcCxcBtcBtcBtcBtcBJcBJcDRcDScBJcBJcBJcDRcDTcDScBJcCpcCpcCpcBJcDUcDVcDVcDVcDVcDVcDWcBJcBXcCtcDXcDYcCLcCLcCLcDZcEacCucCvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBrcBscBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBtcBJcEbcEbcEbcEbcEbcEbcEbcEbcEbcBJcBJcEccBJcBJcEbcEbcEbcEbcEbcEbcEbcBJcBXcCtcEdcEecEfcEfcEfcEecEgcCucCvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacBqcBqcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEicEicEicEicEicEicEicBJcEjcEkcEjcBJcEicEicEicEicEicEicEicEicBXcCtcCtcElcEmcEmcEmcEncCtcCucCvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEhcEocEpcEhcEqcErcEscEqcEtcEhcEqcEucEhcEqcEvcEhcEwcExcEhcEqcEucEhcEycEicEzcEAcEAcEAcEBcBJcEjcEkcEjcBJcECcEDcEEcEFcEFcEiaaaaaacBXcCtcCtcCtcCtcCtcCtcCtcCtcCucCvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEhcEGcEHcEhcEGcEucEhcEGcEHcEhcEGcExcEhcEGcErcEhcEGcEucEhcEGcEtcEhcEycEicEIcEJcEJcEJcEJcBJcEjcEkcEjcBJcEFcEFcEFcEFcEFcEiaaaaaacEKcEKcEKcEKcEKcEKcEKcEKcEKcEKcEKcEicEicEicEicEicEicEicEicEicEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEycEicEIcEJcEJcEJcEJcBJcBJcEccBJcBJcEFcEFcEFcEFcEFcEicEKcEKcEKcEKcEKcEKcELcEMcENcEicEOcEOcEOcEicEOcEOcEOcEOcEOcEOcEOcEOcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEhcEPcExcEhcEqcEQcEhcEqcEHcEhcERcEtcEhcEqcEtcEhcEScEucEhcEqcExcEhcEycEicETcEUcEUcEVcEWcEicEXcEXcEXcEicEFcEFcEFcEFcEFcEicEYcEZcEYcFacFbcEKcFccFccFccFdcEOcEOcEOcFdcEOcFecFfcFecEOcFgcFhcFicEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEhcEGcFjcEhcEGcEucEhcEGcEtcEhcEGcEucEscEGcEucEhcEGcEQcEhcEGcFkcEhcEycEicFlcEicFmcFncFocEicEJcEJcEJcEicFmcFncFpcEicFqcEicFrcFscFrcFscFrcEKcEicEicEicEicEOcEOcEOcEicFtcFucFecFvcFtcFwcFxcFxcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycEycEicEJcEJcFzcEUcEUcEUcEUcEUcEUcEUcEUcEUcFAcEJcEJcFBcFrcFrcFrcFrcFrcEKcFCcFccELcEicEOcEOcEOcEicFDcFDcFEcFDcFDcFwcFxcFxcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactjctjctjctjctjctjctjctjctjctjctjctjctjcFycFycFycFycFycFycFycFycFFcFGcFHcFIcFycFJcFKcFLcFMcFNcFycFOcFOcFOcFOcFOcFOcFPcFQcFRcFycEycEicEJcEJcFScFTcFUcFUcFUcFUcFUcFUcFUcFVcEIcEJcEJcEKcFWcFXcFYcFZcGacEKcGbcFccEMcEicEOcEOcEOcEicGccGccFccGccGccFwcFxcFxcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGdcGecGecGecGecGecGecGecGecGecGecGecGecGfcGgcGhcGfcGfcGfcGfcGicGgcGjcGkcGlcFOcFycFJcGmcGmcFMcFNcFycGmcGmcGmcGmcGmcGmcGncFycFycFycFycFycEJcEJcFScGocGpcEJcGqcGrcGscEJcGpcGocEIcEJcEJcEKcEKcEKcEKcEKcEKcEKcGbcFccEMcEicEOcEOcEOcEicGtcGtcFccGtcGtcFwcFxcFxcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactjctjctjctjctjctjctjctjctjctjctjctjctjcFycFycFycFycFycFycFycFycFFcGucFHcFOcFycFJcGmcGmcFMcFNcFycGvcGwcGwcGxcGycGvcGxcFycGzcGzcGzcFycEJcEJcGAcGBcGCcGDcGEcGFcGGcGHcGIcGBcGJcEJcEJcEicGKcGKcGKcGKcGKcEicEicFdcEicEicEicFdcEicEicFccFccFccFccFccFwcFxcFxcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGdcGecGecGecGecGecGecGecGecGecGecGecGecGfcGLcGhcGfcGfcGfcGfcGicGLcGMcGkcGlcGNcGOcGPcGPcGPcGPcGNcGQcGRcGRcGRcGRcGRcGRcGRcGScGRcGRcGRcGScEJcEJcEJcGTcEJcEJcGUcEJcGUcEJcEJcGTcEJcEJcEJcGVcEOcEOcEOcEOcEOcGVcEOcEOcEOcEOcEOcEOcEOcGVcGtcGtcGtcGtcGtcFwcFxcFxcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactjctjctjctjctjctjctjctjctjctjctjctjctjcFycFycFycFycFycFycFycFycFFcGucFHcFOcFycGWcGmcGmcFMcFNcFycGXcGYcGYcGZcHacHbcHccFycHdcHdcHdcFycEJcEJcFzcHecHfcGDcHgcEJcHhcGHcHicHecFAcEJcEJcGVcEOcEOcEOcEOcEOcGVcEOcEOcEOcEOcEOcEOcEOcGVcGtcGtcGtcGtcGtcEicFdcFdcEicEicEicEicEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGdcGecGecGecGecGecGecGecGecGecGecGecGecGfcHjcGhcGfcGfcGfcGfcGicHjcHkcGkcGlcFOcFycFJcGmcGmcFMcFNcFycHlcHlcHlcHmcGmcHmcHncFycFycFycFycFycEJcEJcFScGBcHocEJcGUcEJcGUcEJcHocGBcEIcEJcEJcEicHpcHqcHqcHqcHrcEicEicHscEicEicEicFdcEicEicEicHtcHtcHtcEicEicEOcEOcEOcHucEOcHvcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactjctjctjctjctjctjctjctjctjctjctjctjctjcFycFycFycFycFycFycFycFycFFcGucFHcFOcFycHwcHxcHxcHycFNcFycFycHzcHAcHBcHCcHDcHEcHzcHFcEOcHGcEicEJcEJcFScEicEicHHcHIcEJcHJcHKcEicEicEIcEJcEJcEiaaaaaaaaaaaaaaacEicHLcHMcEicFccHNcFccFccHOcHPcHQcHQcHQcHRcEicEOcEOcFfcFfcEOcEOcHSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGdcGecGecGecGecGecGecGecGecGecGecGecGecGfcHTcGhcGfcGfcGfcGfcGicHTcHUcHVcGlcFOcFycFycHWcHWcFycFycFyaaacHzcHXcHYcHZcIacIbcHzcHFcEOcHGcEicEJcEJcFScEicEicFmcFncFncFncFpcEicEicEIcEJcEJcEiaaaaaaaaaaaaaaacEicHMcHMcEicIccIccIccFccHOcHQcHQcHQcHQcIdcEicEOcIecFecFecIfcEOcIgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactjctjctjctjctjctjctjctjctjctjctjctjctjcFycFycFycFycFycFycFycFycFycFycFycFycFycIhcIicIicIhaaaaaaaaacHzcIjcHZcHZcHZcHZcHzcHFcEOcHGcEicEJcEJcGAcEAcEAcEAcEAcEAcEAcEAcEAcEAcGJcEJcEJcEiaaaaaaaaaaaaaaacEicIkcHMcEicIccIlcIccFccHOcHOcHOcHOcHOcHOcEicEOcIecFecFecIfcEOcIgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacImcIncIncIncIncIocIocIncIncIpaaacHzcHZcHZcHZcHZcIqcHzcIrcEOcIscEicEicItcEicEicEicEicEicIucEicEicEicEicEicEicEicEiaaaaaaaaaaaaaaacEicIvcHMcEicFCcFccFccFccHOaaaaaaaaaaaaaaacEicEOcIecFecFecIfcEOcIgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIwcIxcIycIzcIAcIzcIzcIBcICcIncIpcHzcHZcIDcIEcIFcIGcHzcIHcEOcEOcEOcEOcEOcEOcIIcEicEicIJcIJcIJcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEicEicEicEicEicEicEicEicHOaaaaaaaaaaaaaaacIKcEOcIecFecFecIfcEOcIgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIwcIxcIycIzcIzcIzcIzcIzcIzcILcIMcHzcHZcINcIOcIPcIOcHzcIQcIRdKYcIScITcIUcEOcIVcEicEicEicIWcEicEicEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcEOcEOcIYcIYcEOcEOcIXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIwcIxcIycIZcIZcIZcIZcIZcIZcIncJacHzcHZcHZcHZcHZcHZcHzcJbcIRcJccJdcJecJfcEOcJgcEicEzcGJcEJcGAcJhcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEicJicEOcEOcEOcEOcJjcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJkcIncIncIncIncIncIncIncIncJaaaacHzcHzcHzcHzcHzcHzcHzcJlcIRcJmcJncJocJpcEOcJqcEicJrcJscJtcJscJucEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEicEicEicEicEicEicEicEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEicJvcIRcJwcJxcJycJzcEOcJAcJBcEIcJCcEJcJDcFScHOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJEcJFcJGcJGcJGcJHcJIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEicEOcEOcEOcEOcEOcEOcEOcJJcJBcETcHecGUcHecJKcHOaaaaaaaaaaaaaaaaaaaaaaaaaaacJEcJLcJMcJNcJOcJNcJPcJQcJIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEicJRcJScJTcJUcEOcJVcJWcJXcJBcJYcJZcKacJZcKbcHOaaaaaaaaaaaaaaaaaaaaaaaaaaacKccKdcKecKfcKfcKfcKgcKhcKcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcKicJBcJBcJBcJBcEIcEJcKjcEJcKkcHOcHOcHOaaaaaaaaaaaaaaaaaaaaacKccKlcKecKfcKfcKmcKgcKncKcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFycFycFycFycFycFycBqcBqcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEicEicEicEicEicEicEicBJcEjcEkcEjcBJcEicEicEicEicEicEicEicEicBXcCtcCtcElcEmcEmcEmcEncCtcCucCvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLccFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFFcFGcFHcFIcFydLAdLzcEhcEocEpcEhcEqcErcEscEqcEtcEhcEqcEucEhcEqcEvcEhcEwcExcEhcEqcEucEhcEycEicEzcEAcEAcEAcEBcBJcEjcEkcEjcBJcECcEDcEEcEFcEFcEiaaaaaacBXcCtcCtcCtcCtcCtcCtcCtcCtcCucCvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLgcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGgcGhcGfcGfcGfcGfcGicGgcGjcGkcGlcFOcFybXLdLCcEhcEGcEHcEhcEGcEucEhcEGcEHcEhcEGcExcEhcEGcErcEhcEGcEucEhcEGcEtcEhcEycEicEIcEJcEJcEJcEJcBJcEjcEkcEjcBJcEFcEFcEFcEFcEFcEiaaaaaacEKcEKcEKcEKcEKcEKcEKcEKcEKcEKcEKcEicEicEicEicEicEicEicEicEicEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLccFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFFcGucFHcFOcFybXLdLDcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEhcEycEicEIcEJcEJcEJcEJcBJcBJcEccBJcBJcEFcEFcEFcEFcEFcEicEKcEKcEKcEKcEKcEKcELcEMcENcEicEOcEOcEOcEicEOcEOcEOcEOcEOcEOcEOcEOcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLgcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGLcGhcGfcGfcGfcGfcGicGLcGMcGkcGlcGNcGObXLdLpcEhcEPcExcEhcEqcEQcEhcEqcEHcEhcERcEtcEhcEqcEtcEhcEScEucEhcEqcExcEhcEycEicETcEUcEUcEVcEWcEicEXcEXcEXcEicEFcEFcEFcEFcEFcEicEYcEZcEYcFacFbcEKcFccFccFccFdcEOcEOcEOcFdcEOcFecFfcFecEOcFgcFhcFicEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLccFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFFcGucFHcFOcFybXLdLocEhcEGcFjcEhcEGcEucEhcEGcEtcEhcEGcEucEscEGcEucEhcEGcEQcEhcEGcFkcEhcEycEicFlcEicFmcFncFocEicEJcEJcEJcEicFmcFncFpcEicFqcEicFrcFscFrcFscFrcEKcEicEicEicEicEOcEOcEOcEicFtcFucFecFvcFtcFwcFxcFxcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLgcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcHjcGhcGfcGfcGfcGfcGicHjcHkcGkcGlcFOcFybXLdLycBqcBqcBqcBqcBqcBqcBqcBqcBqcBqcBqcFycFycFycFycFycFycFycFycFycFycFycEycEicEJcEJcFzcEUcEUcEUcEUcEUcEUcEUcEUcEUcFAcEJcEJcFBcFrcFrcFrcFrcFrcEKcFCcFccELcEicEOcEOcEOcEicFDcFDcFEcFDcFDcFwcFxcFxcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLccFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFFcGucFHcFOcFybXLdLsdLvdLvcBqdLfdLudLtdLwcBqdLxbXpbXpcFydLqdLqdLqdLqdLqdLqcFPcFQcFRcFycEycEicEJcEJcFScFTcFUcFUcFUcFUcFUcFUcFUcFVcEIcEJcEJcEKcFWcFXcFYcFZcGacEKcGbcFccEMcEicEOcEOcEOcEicGccGccFccGccGccFwcFxcFxcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLgcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcGfcHTcGhcGfcGfcGfcGfcGicHTcHUcHVcGlcFOcFybXLbXLbXLbXLcBqbXLbXLbXLdTqcBqbXpbXLdLecGycGPcGPcGPcGPcGPcGPcGncFycFycFycFycFycEJcEJcFScGocGpcEJcGqcGrcGscEJcGpcGocEIcEJcEJcEKcEKcEKcEKcEKcEKcEKcGbcFccEMcEicEOcEOcEOcEicGtcGtcFccGtcGtcFwcFxcFxcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadLccFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFycFydLhdLdcJXbXLcBqbXLcJJcJJcJVcBqbXpbXLcJpcFycGvcGwcGwcGwdLbcGwcGxcFycGzcGzcGzcFycEJcEJcGAcGBcGCcGDdKYdLBcGGcGHcGIcGBcGJcEJcEJcEicGKcGKcGKcGKcGKcEicEicFdcEicEicEicFdcEicEicFccFccFccFccFccFwcFxcFxcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFycFycBqcBqdLmcBqdLncBqcBqcBqcBqbXpbXLdLecGQcGRcGRcGRcGRcGRcGRcGRcGScGRcGRcGRcGScEJcEJcEJcGTcEJcEJcGUcEJcGUcEJcEJcGTcEJcEJcEJcGVcEOcEOcEOcEOcEOcGVcEOcEOcEOcEOcEOcEOcEOcGVcGtcGtcGtcGtcGtcFwcFxcFxcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFydLrdLjcBqbXLdLibXLdLlbXLdLkbXLbXLbXLcFLcFycGXcGYcGYcGZcHacHbcHccFycHdcHdcHdcFycEJcEJcFzcHecHfcGDcHgcEJcHhcGHcHicHecFAcEJcEJcGVcEOcEOcEOcEOcEOcGVcEOcEOcEOcEOcEOcEOcEOcGVcGtcGtcGtcGtcGtcEicFdcFdcEicEicEicEicEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFycGPbXLcFNbXLcGdbXLbXpbXpbXpcGecGebXpcFLcFycHlcHlcHlcHmcGmcHmcHncFycFycFycFycFycEJcEJcFScGBcHocEJcGUcEJcGUcEJcHocGBcEIcEJcEJcEicHpcHqcHqcHqcHrcEicEicHscEicEicEicFdcEicEicEicHtcHtcHtcEicEicEOcEOcEOcHucEOcHvcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFycFycBqcBqcFJcBqbXLbXpbXpbXKcFMcFMcFKcFLcFycFycHzcHAcHBcHCcHDcHEcHzaaaaaaaaacEicEJcEJcFScEicEicHHcHIcEJcHJcHKcEicEicEIcEJcEJcEiaaaaaaaaaaaaaaacEicHLcHMcEicFccHNcFccFccHOcHPcHQcHQcHQcHRcEicEOcEOcFfcFfcEOcEOcHSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFycGEcHwcHwcGPcFycGPcGmcGmcHxcHycHycIqcGmcIycIRcHzcHXcHYcHZcIacIbcHzaaaaaaaaacEicEJcEJcFScEicEicFmcFncFncFncFpcEicEicEIcEJcEJcEiaaaaaaaaaaaaaaacEicHMcHMcEicIccIccIccFccHOcHQcHQcHQcHQcIdcEicEOcIecFecFecIfcEOcIgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFycGEcGPcGPcGPcFycGPcGPcGPcGPcGncGncGmcGmcGmcGWcHzcIjcHZcHZcHZcHZcHzaaaaaaaaacEicEJcEJcGAcEAcEAcEAcEAcEAcEAcEAcEAcEAcGJcEJcEJcEiaaaaaaaaaaaaaaacEicIkcHMcEicIccIlcIccFccHOcHOcHOcHOcHOcHOcEicEOcIecFecFecIfcEOcIgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFydLFdLFdLLdLMcFydLKdLKdLKcGPcGPcGPdLJdLIdLHdLGcHzcHZcHZcHZcHZdLNcHzaaaaaaaaacEicEicEicEicEicEicEicEicIucEicEicEicEicEicEicEicEiaaaaaaaaaaaaaaacEicIvcHMcEicFCcFccFccFccHOaaaaaaaaaaaaaaacEicEOcIecFecFecIfcEOcIgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFycFycFycFycFycFycFycFycFycFycHWcHWcFycFycFycFycHzcHZcIDcIEcIFcIGcHzaaaaaaaaaaaaaaaaaaaaaaaacEicEicIJcIJcIJcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEicEicEicEicEicEicEicEicHOaaaaaaaaaaaaaaacIKcEOcIecFecFecIfcEOcIgaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIhcIicIicIhaaaaaaaaacHzcHZcINcIOcIPcIOcHzaaaaaaaaaaaaaaaaaaaaaaaacEicEicEicIWcEicEicEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcEOcEOcIYcIYcEOcEOcIXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacImcIncIncIncIncIocIocIncIncIpaaacHzcHZcHZcHZcHZcHZcHzaaaaaaaaaaaaaaaaaaaaaaaacEicEzcGJcEJcGAcJhcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEicJicEOcEOcEOcEOcJjcEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIwcIxdUacICcIAcIzcIzdLEdLEcIncIpcHzcHzcHzcHzcHzcHzcHzaaaaaaaaaaaaaaaaaaaaaaaacEicJrcJscJtcJscJucEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacEicEicEicEicEicEicEicEiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIwcIxdUbcIzcIzcIzcIzcIzcIzcILcIMaaaaaaaaaaaaaaaaaacEiaaaaaaaaaaaaaaaaaaaaaaaacJBcEIcJCcEJcJDcFScHOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJEcJFcJGcJGcJGcJHcJIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIwcIxcIBcIZcIZcIZcIZcIZcIZcIncJaaaaaaaaaaaaaaaaaaacEiaaaaaaaaaaaaaaaaaaaaaaaacJBcETcHecGUcHecJKcHOaaaaaaaaaaaaaaaaaaaaaaaaaaacJEcJLcJMcJNcJOcJNcJPcJQcJIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJkcIncIncIncIncIncIncIncIncJaaaaaaaaaaaaaaaaaaaaaacEiaaaaaaaaaaaaaaaaaaaaaaaacJBcJYcJZcKacJZcKbcHOaaaaaaaaaaaaaaaaaaaaaaaaaaacKccKdcKecKfcKfcKfcKgcKhcKcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcJBcEIcEJcKjcEJcKkcHOcHOcHOaaaaaaaaaaaaaaaaaaaaacKccKlcKecKfcKfcKmcKgcKncKcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKocKpcKqcKqcKqcKqcKqcKqcKqcKqcKqcKqcKqcKqcKrcKpcKqcKqcJBcKscHecKtcEJcKucEJcKvcHecKscHOaaaaaaaaaaaaaaaaaaaaacKwcKxcKycKxcKzcKxcKycKxcKAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKocKpcKqcKBcKCcKDcKBcKCcKCcKCcKEcKCcKCcKFcKGcKpcKqcKqcJBcKscGocKtcEJcEJcEJcKvcGocKscHOcHOcHOcHOcHOcHOaaaaaacKccKHcKIcKIcKfcKIcKIcKHcKcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacKocKpcKBcKJcKKcKLcKMcKNcKNcKNcKNcKNcKNcKOcKPcKpcKqcKqcJBcKscGocKQcEJcEJcEJcKRcGocKscHOcKScKScKScKScHOaaaaaacKccKTcKfcKfcKfcKfcKfcKUcKcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -10672,7 +10696,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceWacMcSxcSAcSzcSAcTbcTccTdcSRcTecTfcTgcSycThcSNcTicSNcSNcTjcSycSZcSycTkcSNcSNcSNcSNcSNcSyacMacMaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceWacMcSxcSAcSzcSAcSAcTncTocTpcTqcTrcTscTtcTucTvcSNcSNcTwcTxcSycTycSycTzcTAcSNcTBcTCcTDcSyacMacMceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceWacMcSxcSAcSzcSAcTbcTEcTFcTGcTHcTHcTHcTIcTJcTKcTLcTMcTNcTOcTOcTOcSycTPcTQcSNcTRcTScTTcTUcTVcTVcTWbTocTXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceWceWceWceWceWceWceWceWceWceXceWceWceWceWceWceWceWceWceWceWceWacMcSxcSAcSzcSAcTbcTYcTZcUacUbcUbcUbcSycUccUdcUecSNcUfcUgcUhcTOcSycSycUicUjcSycSycSycSyacMacMceWceWceWceWceWceWceWceWceWceWceWceWceWceWceWceWceWceXceWceWceWceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceWceWceWceWceWceWceWceWceWceXceWceWceWceWceWceWceWceWceWceWceWacMcSxcSAcSzcSAcTbcTYcTZcUacUbcUbcUbcSycUccUdcUecSNcUfdTrcUhcTOcSycSycUicUjcSycSycSycSyacMacMceWceWceWceWceWceWceWceWceWceWceWceWceWceWceWceWceWceXceWceWceWceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabceWacMcSxcSzcUkcSzcUlcTYcSUcTOcTOcTOcTOcTOcUmcUncUocUncUpcUqcUgcUrcTOcTOcUscUtcUucSzcUkcSzcSxacMceWceWceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceWaabcSucSucSucSucSucSucSucSucSucSucSucSucSucSucSucSuaaaaaaceWacMcSxcSAcSzcSAcTbcUvcUwcTOcUxcUxcUxcUycUzcUAcUBcUxcUxcUCcUDcUxcUxcTOcUscUtcTgcSAcSzcSAcSxacMceWceWaaaaabcSucSucSucSucSucSucSucSucSucSucSucSucSucSucSucSuaaaceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaceWaaaaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaaaceWacMcSxcSAcSzcSAcTbcUEcUFcTOcUxcUDcUDcUDcUGcUDcUHcUDcUDcUGcUDcUDcUxcTOcUscUtcTgcUIcUJcUKcSxacMacMceWaabaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaabceWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11116,28 +11140,28 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadktdkEdkFdkrdkrdkrdkrdkrdkrdkGdkGdkGdkHdkIdkAdkrdkrdkrdkJdkKdkLdkLdkLdkMdkNdkOdkPdkPdkvdkQdkRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkSdkFdkrdkrdkrdkrdkrdkrdkrdkGdkTdkUdkVdkHdkIdkWdkGdkXdkYdkZdladladladlbdlcdladladladladlddledkRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlgdlgdlgdlgdlgdlgdlgdlgdlgdlhdlidljdlkdlldlmdlndlodlpdlqdlrdlsdlqdltdlbdlqdludlrdlaaabdlvdlwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdlxdkrdkrdlxdlxdlxdlxdkrdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlgdlydlzdlAdlBdlCdlDdlEdlgdlFdlGdlidlHdlIdlIdlIdlJdlKdlqdlLdlMdlNdlbdlbdlOdlMdlLdlaaabaabdlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdkrdkrdkrdkrdkrdkrdlxdlxdkrdkrdkrdkrdlxdlxdlxdlxdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkraaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlQdlAdlRdlSdlTdlUdlVdlWdlgdlXdlXdlXdlXdlYdlIdlZdmadmbdlqdlqdlqdlqdmcdmddmedmedmedmedmedmfdmgdmhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmidmjdmiaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdkrdkrdkrdlxdlxdkrdlxdlxdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdlxaaaaaaaaaaaaaaaaaaaaaaaadlfdlgdmkdmldmldmmdmndmodmpdmqdmrdmsdmtdmudmvdmwdmxdmydmzdlqdmAdmBdlqdmCdmDdmEdmFdmGdmHdmIdmJdmKdmLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdlxdkrdkrdlxdlxdlxdlxdkrdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlgdlydlzdlAdlBdlCdlDdlEdlgdlFdlGdlidxZdlIdlIdlIdlJdlKdlqdlLdlMdlNdlbdlbdlOdlMdlLdlaaabaabdlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdkrdkrdkrdkrdkrdkrdlxdlxdkrdkrdkrdkrdlxdlxdlxdlxdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkraaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlQdlAdlRdlSdlTdvNdlVdlWdlgdlXdlXdlXdlXdlYdlIdlZdmadmbdlqdlqdlqdlqdmcdmddmedmedmedmedmedmfdmgdmhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmidmjdmiaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdkrdkrdkrdlxdlxdkrdlxdlxdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdlxaaaaaaaaaaaaaaaaaaaaaaaadlfdlgdmkdmldmldmmdmndmodmpdvKdmrdmsdmtdmudvHdmwdmxdmydmzdlqdmAdmBdlqdmCdmDdmEdmFdmGdmHdmIdmJdmKdmLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmMdmNdmMaabaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdkrdkrdkrdlxdlxdlxdlxdlxdkrdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaaaaaaaadlfdlgdmkdmOdmOdmmdmndmPdmQdlgdmRdmrdmSdmTdmUdmVdmWdmXdmYdmZdnadnbdncdnddnedmednfdngdnhdnidnjdnkdmLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnldnmdnndnoaabaaaaaadkrdkrdkrdkrdkrdkrdkrdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaaaaadktdnpdlQdnqdlRdnrdnsdntdnudnvdlgdnwdmSdnxdnydnzdnAdnAdnAdnBdnAdnAdnAdnAdnCdnDdmednEdngdnFdnGdnHdmKdmLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnIdnJdnJdnKdnLdnMdmMaabaaaaaadkrdkrdkrdkrdlxdlxdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaabdnNdnOdkPdkPdkPdnPdnQdlgdnRdnSdnTdlBdnUdnVdnWdlgdnXdnYdnZdoadobdocdoddoedofdogdohdoidnAdojdokdmedoldomdondnGdmedoodopaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoqdordosdotdoudovdowaabaabdlxdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoxdoxdoxaabdoydnQaabaabaabaabaabdlgdlgdlgdlgdlgdlgdozdoAdlgdlXdlXdoBdoCdoDdnAdoEdoFdofdoGdoHdoIdnAdoJdoKdoLdoMdoNdoOdoPdmedoQdoRaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaadksdksdksdksdksaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoSdnJdnJdoTdoUdnMdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoxdoxdoxaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdlqdoXdlbdoYdoZdpadpbdpcdpddpedpfdpgdphdnAdpidpjdpkdpldpmdpndpodppdpqdprdprdprdpsdptdpudpvdpwdpwdpxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaadksdksdksdksdksaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdpydpzdpAdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoxaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdpBdpCdpDdpEdpFdpGdpHdpIdpJdpKdpLdpMdpNdpOdpPdpQdpRdpSdpSdpSdpTdpUdpVdprdpWdpXdpYdpZdprdqadoRdoRdoRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdqbdqcdqddqedoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdqfdqgdqhdqidqjdqkdqldqmdqndqodladqpdqqdnAdqrdqsdqtdqudqvdqwdnAdqxdqydqzdqAdqAdqBdqCdqDdqEdqFdqGdqGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdqHdqIdqJdoVdqKdqLdoVdoVdoVdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdqMdqgdlbdqidqNdqOdqPdqQdqRdqSdladqTdqUdnAdqVdnAdqWdqXdqYdqZdnAdradrbdprdrcdrddredrfdrgdrhdridrjdrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnldnmdnndnoaabaaaaaadkrdkrdkrdkrdkrdkrdkrdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaaaaadktdnpdlQdnqdlRdnrdnsdvQdnudnvdlgdnwdmSdnxdnydnzdnAdnAdnAdvRdnAdnAdnAdnAdnCdnDdmednEdngdnFdnGdnHdmKdmLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnIdnJdnJdnKdnLdnMdmMaabaaaaaadkrdkrdkrdkrdlxdlxdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaabdnNdnOdkPdkPdkPdnPdnQdlgdnRdnSdnTdlBdnUdnVdnWdlgdnXdnYdnZdoadobdxbdoddoedofdogdohdoidnAdojdokdmedoldomdondnGdmedoodopaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoqdordosdotdoudovdowaabaabdlxdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoxdoxdoxaabdoydnQaabaabaabaabaabdlgdlgdlgdlgdlgdlgdwldoAdlgdlXdlXdoBdvUdoDdnAdoEdoFdofdoGdoHdoIdnAdoJdoKdwjdoMdoNdoOdoPdmedoQdoRaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaadksdksdksdksdksaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoSdnJdnJdoTdoUdnMdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoxdoxdoxaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdlqdoXdlbdoYdoZdpadpbdpcdpddpedpfdpgdphdnAdpidpjdpkdpldpmdpndpodppdpqdprdprdprdxYdptdpudpvdpwdpwdpxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaadksdksdksdksdksaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdpydpzdpAdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoxaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdpBdpCdpDdpEdpFdpGdpHdpIdpJdpKdpLdpMdpNdxfdpPdpQdpRdpSdpSdpSdxXdpUdpVdprdpWdpXdpYdpZdprdqadoRdoRdoRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdqbdqcdqddqedoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdqfdqgdqhdqidqjdqkdqldqmdpTdqodladqpdqqdnAdqrdqsdqtdqudpOdqwdnAdqxdqydpsdqAdqAdqBdqCdqDdqEdqFdqGdqGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdqHdqIdqJdoVdqKdqLdoVdoVdoVdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdqMdqgdlbdqidqNdqOdqPdoLdqRdqSdladqTdqUdnAdoCdnAdqWdqXdozdqZdnAdradrbdprdrcdrddredrfdrgdrhdridrjdrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrkdrldrmdrndrodrpdmidovdrqdoVdrrdrsdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdlqdqgdlbdrtdrudrvdrwdrxdrydrzdladrAdrBdrCdrDdnAdrEdrFdrGdrHdnAdrIdrJdrKdrLdrMdrNdrOdrPdrhdqGdqGdqGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrQdrRdrldrSdrTdrUdrVdrWdrqdrXdrsdrYdrrdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadrZdsadsbdscdsddsadsbdsedsfdsgdshdlqdsidlqdladladladladladsjdskdsldrDdnAdsmdsndsodspdnAdsqdsrdssdstdsudsvdswdsxdsydszdladsAdnOdkPdkPdkPdkPdkPdkPdkQdsBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsCdrQdsDdrQdrmdrmdqKdsEdrTdoVdqedsFdoVdrsdsGdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadsHdsIdsJdsJdsKdsLdsLdsMdsNdsOdsLdsPdsQdsRdsSdsTdsUdsVdsWdsXdsYdsZdtadnAdnAdtbdtcdnAdnAdtddtedprdprdtfdprdprdprdtgdthdtidtjdtkdtldtldtmdtldtldtldtndlwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdtodtpdrmdtqdtrdrmdpAdtsdrUdttdtudtvdoVdoVdoVdoVdoVdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaadtwdtxdsJdsJdtydsJdtzdtAdtBdtCdtDdtEdtFdtGdsSdtHdtIdtJdtKdtLdtMdtNdtOdtPdtQdtRdtSdtTdtUdtVdtWdtXdtYdtZduadtXdubdtXdtUducdudduedufdugduhduidujdukdtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrQdrRdrldrSdrTdrUdrVdrWdrqdrXdrsdrYdrrdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadrZdsadsbdscdqzdsadsbdsedsfdqndqvdlqdsidlqdladladladladladsjdskdsldrDdnAdqQdsndsodspdnAdsqdsrdssdstdsudsvdswdsxdsydszdladsAdnOdkPdkPdkPdkPdkPdkPdkQdsBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsCdrQdsDdrQdrmdrmdqKdsEdrTdoVdqedsFdoVdrsdsGdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadsHdsIdsJdsJdsKdsLdsLdsMdsNdsOdsLdsPdsQdsRdsSdsTdsUdsVdsWdsXdsYdsZdtadnAdnAdtbdtcdnAdnAdtddtedprdprdsgdprdprdprdtgdthdtidtjdtkdtldtldtmdtldtldtldtndlwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdtodtpdrmdtqdtrdrmdpAdtsdrUdttdtudtvdoVdoVdoVdoVdoVdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaadtwdtxdsJdsJdtydsJdtzdqYdtBdtCdtDdsddtFdtGdsSdtHdtIdtJdqVdtLdtMdtNdtOdtPdtQdtRdtSdtTdtUdtVdtWdtXdtYdtZduadtXdubdtXdtUducdudduedufdugduhduidujdukdtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabduldumdundrmdtrduodrSdupdrTduqdoVdurdusdoVdutdrqduuduvdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaaduwduxdsJdsJduydsJduzduAduBduCduDduEduFduGdsSduHduIduJduKduLduMduNduOduPduQduRduSduTduUduRduSduVduWduRduVduXduYduZdvadvbdvcdvddvedvfdvgdvhdvhdvidtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabdlxdlxdoVdrpdvjdvkdvldundvmdvndrUdvodmidovdvpdoVdutdqedrqduvdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdvqdvqdvqdvqdvqdvqdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaadvrdvsdsJdvtdvudvvdvwdvxdvydvzdvAdvBdvCdvDdsSduHdsTdvEdvFdvFdvFdvGdvHdvIdvJdvKdvIdvLdvMdvNdvLdvOdvPdvQdvOdvOdvRdvSdvTdvUdtldvVdvWdtldvXdvhdvhdvYdtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdoVdoVdoVdoVdoVdoVdrodrTdvZdvjdrTdtsdwadvodvodrWdrqdurdoVdutdpAdwbduvdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdvqdvqdvqdwcdwcdwcdwcdvqdvqdvqdkrdkrdkrdkrdwddweaaaaaaaaadwfdwgdsbdscdwhdwhdwhdwhdwidwjdwkdlqdlqdlqdsSdwldvFdwmdvFdwndwodwpdwqdvIdwrdwsdwtdvLdwudwvdwwdvOdwxdwydwzdvOdwAdwBdvTdwCdwDdtldtldtldwEdwFdwGdukdtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdoVdwHdovdrUdwIdoVdwJdwKdwLdoVdttdoVdwMdwNdwOdoVdovdwPdmNdwQdpAdqddmNdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdvqdvqdwcdwcdwcdwcdwcdwcdwcdwcdvqdvqdkrdkrdwRdwSdkPdkPdkPdkPdnPdnQaabaabdwTdwUdwVdwWdwXdwYdwZdxadxbdxcdxddxedxfdxgdxhdxidxjdxkdxldxmdxndxodxpdvLdxqdxrdxsdvOdxtdxudxvdvOdxwdxxdxydxzdxAdxBdxCdtldtldtldtldtldxDdnpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdoVdwHdpAdovdrSdttdwPdvjdxEdvjdxFdovdovdxGdrqdovdpAdpAdoVdmNdxHdpAdovdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdvqdvqdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdvqdvqdxIdxJdxKdkraaaaaaaaaaaaaaaaaaaabdwTdwUdxLdxMdxNdxOdxPdxQdxRdxRdxSdsSdvFdwmdvFdxTdvFdxUdxVdxWdvIdxXdvIdvLdvLdxYdvLdvOdvOdxZdvOdvOdyadybdycdyddyedyedyfdwDdygdkudkPdkPdyhdyiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdlxdoVdwHdyjdpAdpAdttdpAdwbdqKdpAdykdxFdwbdvpdyldpAdymdqedoVdvjdmNdwPdovdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdvqdyndwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdyodvqdypdyqdvqdvqaaaaaaaaaaaaaaaaaaaabdwTdwUdyrdysdytdysdyudyvdywdxRdyxdsSdyydyzdyAdyBdvFdyCdyDdyEdyFdyGdyHdyIdyJdyKdyLdyMdyNdyOdyPdvOdyQdyRdwDdySdyTdySdyTdwDdyUdyVdlxaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdlxdlxdoVdwHdyWdrSdrodoVdyXdoVdyYdyZdoVdrUdoVdyYdyZdoVdrTdwPdoVdxGdzadmNdurdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdvqdzbdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdzcdyndzddyndvqaaaaaaaaaaaaaaaaaaaaaaabdwTdyvdyvdyvdzedzfdzgdyvdzhdxRdzidsSdzjdzjdzjdzjdvFdzkdzldvIdzmdzndzodvLdzpdzqdzrdvOdzsdztdzudvOdzvdzwdzxdwDdwDdwDdwDdzydzzdkrdlxdlxdlxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabdlxdlxdoVdrpdvjdvkdvldundvmdvndrUdvodmidovdvpdoVdutdqedrqduvdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdvqdvqdvqdvqdvqdvqdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaadvrdvsdsJdvtdvudvvdvwdvxdvydvzdvAdvBdvCdvDdsSduHdsTdvEdvFdvFdvFdvGdtAdvIdvJdtEdvIdvLdvMdtKdvLdvOdvPdsmdvOdvOdshdvSdvTdtfdtldvVdvWdtldvXdvhdvhdvYdtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdoVdoVdoVdoVdoVdoVdrodrTdvZdvjdrTdtsdwadvodvodrWdrqdurdoVdutdpAdwbduvdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdvqdvqdvqdwcdwcdwcdwcdvqdvqdvqdkrdkrdkrdkrdwddweaaaaaaaaadwfdwgdsbdscdwhdwhdwhdwhdwidmvdwkdlqdlqdlqdsSdntdvFdwmdvFdwndwodwpdwqdvIdwrdwsdwtdvLdwudwvdwwdvOdwxdwydwzdvOdwAdwBdvTdwCdwDdtldtldtldwEdwFdwGdukdtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdoVdwHdovdrUdwIdoVdwJdwKdwLdoVdttdoVdwMdwNdwOdoVdovdwPdmNdwQdpAdqddmNdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdvqdvqdwcdwcdwcdwcdwcdwcdwcdwcdvqdvqdkrdkrdwRdwSdkPdkPdkPdkPdnPdnQaabaabdwTdwUdwVdwWdwXdwYdwZdxadnBdxcdxddxedocdxgdxhdxidxjdxkdxldxmdxndxodxpdvLdxqdxrdxsdvOdxtdxudxvdvOdxwdxxdxydxzdxAdxBdxCdtldtldtldtldtldxDdnpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdoVdwHdpAdovdrSdttdwPdvjdxEdvjdxFdovdovdxGdrqdovdpAdpAdoVdmNdxHdpAdovdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdvqdvqdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdvqdvqdxIdxJdxKdkraaaaaaaaaaaaaaaaaaaabdwTdwUdxLdxMdxNdxOdxPdxQdxRdxRdxSdsSdvFdwmdvFdxTdvFdxUdxVdxWdvIdlUdvIdvLdvLdlHdvLdvOdvOcAHdvOdvOdyadybdycdyddyedyedyfdwDdygdkudkPdkPdyhdyiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdlxdoVdwHdyjdpAdpAdttdpAdwbdqKdpAdykdxFdwbdvpdyldpAdymdqedoVdvjdmNdwPdovdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdvqdyndwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdyodvqdypdyqdvqdvqaaaaaaaaaaaaaaaaaaaabdwTdwUdyrdysdmqdysdyudyvdywdxRdyxdsSdyydyzdyAdyBdvFdyCdyDdyEdyFdyGdyHdyIdyJdyKdyLdyMdyNdyOdyPdvOdyQdyRdwDdySdyTdySdyTdwDdyUdyVdlxaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdlxdlxdoVdwHdyWdrSdrodoVdyXdoVdyYdyZdoVdrUdoVdyYdyZdoVdrTdwPdoVdxGdzadmNdurdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdvqdzbdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdzcdyndzddyndvqaaaaaaaaaaaaaaaaaaaaaaabdwTdyvdyvdyvdzedzfdzgdyvdzhdxRdzidsSdzjdzjdzjdzjdvFdzkdzldvIdzmdzndzodvLdzpdzqdzrdvOdzsdztdzudvOdzvdRudzxdwDdwDdwDdwDdzydzzdkrdlxdlxdlxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdlxdlxdlxdlxdlxdoVdoVdoVdoVdoVdoVdyXdoVdzAdrqdrUdurdqedrTdvmdrTdtvdrSdoVdyYdzBdzCdzDdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdvqdyodwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdzEdzFdzGaaaaaaaaaaaaaaaaaaaaaaabaabdwTdzHdzIdzIdzJdzKdyvdzLdzMdxRdzNdsSdwcdwcdwcdwcdvFdzOdzPdvIdzQdzRdzSdvLdzTdzUdzVdvOdzWdzXdzYdvOdzZdAadzxdkrdlxdkrdAbdAcdAddkrdlxdlxdlxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoVdyXdoVdrqdurdAedtsdnMdrSdrqdoVdrTdqedoVdAfdAgdAgdAhdoVdAidlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdvqdvqdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdAjdAkdAlaaaaaaaaaaaaaaaaaaaabaabaabdwTdwTdAmdAndwTdAodApdAqdApdwTdArdwcdwcdwcdwcdwcdvFdvFdvFdvIdvIdvIdvIdvLdvLdvLdvLdvOdvOdvOdvOdvOdzxdzxdAsdAtdkLdkLdAudyVdkrdkrdlxdlxdlxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoVdyXdoVdurdovdtvdrqdrTdqedtvdoVdyXdoVdoVdutdmNdAgdAvdAwdAidAidlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdvqdvqdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdAxdAydAzaaaaaaaaaaaaaaaaabdAAdABdACdADdAEdAFdAGdAHdAIdAJdAKdALdwTdArdwcdwcdwcdwcdwcdAMdANdAOdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkJdAPdyVdAQdkrdkrdkrdkrdkrdlxdlxdlxdlxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maptools/new_clean.bat b/maptools/new_clean.bat new file mode 100644 index 00000000000..019d90bc2e2 --- /dev/null +++ b/maptools/new_clean.bat @@ -0,0 +1,96 @@ +@setlocal enableextensions enabledelayedexpansion +@echo off + +set /a count=0 +for /f "tokens=*" %%A in ('dir /b /a-d "../maps/*.dmm"') do ( + set /a count+=1 + set num.!count!=%%A +) + +for /f "tokens=2* delims=.=" %%A in ('set num.') do echo %%A = %%B + +:choosemap +echo ... +set /p prompt="Which map # would you like to clean?: " || set prompt=_None + +if /i "%prompt%"=="exit" ( + goto :quitmaybe +) + +if "%prompt%"=="_None" ( + goto :prom_error +) else set mapnum=%prompt% + +for /f "tokens=2* delims=.=" %%A in ('set num.%mapnum%') do set map=%%B + +if "%map%"=="" ( + echo That's not a valid map, donklorde. + goto :choosemap +) + +if not exist "../maps/%map%.backup" ( + goto :bckup_error +) + +goto :printpath + +:prom_error +echo You didn't choose anything! +goto :choosemap + +:bckup_error +echo ... +echo WARNING: A .backup does not exist for %map% ! +echo ... +goto :choosemap + + +:printpath +echo ... +echo ============= +echo Map filepath (This should NOT be the .backup): +echo:../maps/%map% +echo ============= +goto :finalize + + +:finalize +echo ... +set /p finalize="Is this filepath correct?: " || set finalize=None +if "%finalize%"=="None" (goto :fin_error) +if /i "%finalize%"=="y" (goto :java) +if /i "%finalize%"=="yes" (goto :java) +if /i "%finalize%"=="n" (goto :quitmaybe) +if /i "%finalize%"=="no" (goto :quitmaybe) +goto :fin_error + +:fin_error +echo ... +echo That wasn't a valid response you donk! +echo Valid responses: y, n, yes, no +goto :finalize + +:java +echo Starting MapPatcher... +java -jar MapPatcher.jar -clean ../maps/%map%.backup ../maps/%map% ../maps/%map% +goto :exit + +:quitmaybe +echo ... +set /p exitmaybe="Exit the program?: " || set exitmaybe=_NothingChosen +if "%exitmaybe%"=="_NothingChosen" (goto :qm_error) +if /i "%exitmaybe%"=="y" (goto :exit) +if /i "%exitmaybe%"=="yes" (goto :exit) +if /i "%exitmaybe%"=="n" (goto :choosemap) +if /i "%exitmaybe%"=="no" (goto :choosemap) +goto :qm_error + +:qm_error +echo ... +echo That wasn't a valid response, or you didn't choose anything! +echo Valid responses: y, n, yes, no +goto :quitmayber + +:exit +pause +exit \ No newline at end of file diff --git a/maptools/new_prepare.bat b/maptools/new_prepare.bat new file mode 100644 index 00000000000..d3c3849a9a4 --- /dev/null +++ b/maptools/new_prepare.bat @@ -0,0 +1,73 @@ +@setlocal enableextensions enabledelayedexpansion +@echo off + +set /a count=0 +for /f "tokens=*" %%A in ('dir /b /a-d "../maps/*.dmm"') do ( + set /a count+=1 + set num.!count!=%%A +) + +for /f "tokens=2* delims=.=" %%A in ('set num.') do echo %%A = %%B + +:choosemap +echo ... +set /p prompt="Which map # would you like to back up?: " || set prompt=_None + +if /i "%prompt%"=="exit" ( + goto :quitmaybe +) + +if "%prompt%"=="_None" ( + goto :prom_error +) else set mapnum=%prompt% + +for /f "tokens=2* delims=.=" %%A in ('set num.%mapnum%') do set map=%%B + +if "%map%"=="" ( + echo That's not a valid map, donklorde. + goto :choosemap +) + +goto :printpath + +:prom_error +echo You didn't choose anything! +goto :choosemap + +:printpath +echo ... +echo ============= +echo Backing up: +echo:../maps/%map% +echo Into: +echo:../maps/%map%.backup +echo ============= +goto :copymap + +:copymap +echo Copying... +cd ../maps +copy %map% %map%.backup +echo Done. +goto :exit + +:quitmaybe +echo ... +set /p exitmaybe="Exit the program?: " || set exitmaybe=_NothingChosen +if "%exitmaybe%"=="_NothingChosen" (goto :qm_error) +if /i "%exitmaybe%"=="y" (goto :exit) +if /i "%exitmaybe%"=="yes" (goto :exit) +if /i "%exitmaybe%"=="n" (goto :choosemap) +if /i "%exitmaybe%"=="no" (goto :choosemap) +goto :qm_error + +:qm_error +echo ... +echo That wasn't a valid response, or you didn't choose anything! +echo Valid responses: y, n, yes, no +goto :quitmayber + +:exit +pause +exit + diff --git a/sound/ambience/alarm4.ogg b/sound/ambience/alarm4.ogg new file mode 100644 index 00000000000..a86bfd155f8 Binary files /dev/null and b/sound/ambience/alarm4.ogg differ diff --git a/sound/voice/ManUp1.ogg b/sound/voice/ManUp1.ogg new file mode 100644 index 00000000000..9239a02e177 Binary files /dev/null and b/sound/voice/ManUp1.ogg differ diff --git a/sound/vox/,.wav b/sound/vox/,.wav new file mode 100644 index 00000000000..31a47dca600 Binary files /dev/null and b/sound/vox/,.wav differ diff --git a/sound/vox/..wav b/sound/vox/..wav new file mode 100644 index 00000000000..7eeb1eb9bc5 Binary files /dev/null and b/sound/vox/..wav differ diff --git a/sound/vox/a.wav b/sound/vox/a.wav new file mode 100644 index 00000000000..c6981d29026 Binary files /dev/null and b/sound/vox/a.wav differ diff --git a/sound/vox/accelerating.wav b/sound/vox/accelerating.wav new file mode 100644 index 00000000000..e86b18a04b1 Binary files /dev/null and b/sound/vox/accelerating.wav differ diff --git a/sound/vox/accelerator.wav b/sound/vox/accelerator.wav new file mode 100644 index 00000000000..be097b6caaa Binary files /dev/null and b/sound/vox/accelerator.wav differ diff --git a/sound/vox/accepted.wav b/sound/vox/accepted.wav new file mode 100644 index 00000000000..59160849e24 Binary files /dev/null and b/sound/vox/accepted.wav differ diff --git a/sound/vox/access.wav b/sound/vox/access.wav new file mode 100644 index 00000000000..25fd0988830 Binary files /dev/null and b/sound/vox/access.wav differ diff --git a/sound/vox/acknowledge.wav b/sound/vox/acknowledge.wav new file mode 100644 index 00000000000..14946cccf88 Binary files /dev/null and b/sound/vox/acknowledge.wav differ diff --git a/sound/vox/acknowledged.wav b/sound/vox/acknowledged.wav new file mode 100644 index 00000000000..232d9c3bf7a Binary files /dev/null and b/sound/vox/acknowledged.wav differ diff --git a/sound/vox/acquired.wav b/sound/vox/acquired.wav new file mode 100644 index 00000000000..7eecdf91409 Binary files /dev/null and b/sound/vox/acquired.wav differ diff --git a/sound/vox/acquisition.wav b/sound/vox/acquisition.wav new file mode 100644 index 00000000000..11be7dc475d Binary files /dev/null and b/sound/vox/acquisition.wav differ diff --git a/sound/vox/across.wav b/sound/vox/across.wav new file mode 100644 index 00000000000..1591e897001 Binary files /dev/null and b/sound/vox/across.wav differ diff --git a/sound/vox/activate.wav b/sound/vox/activate.wav new file mode 100644 index 00000000000..32a45cbf229 Binary files /dev/null and b/sound/vox/activate.wav differ diff --git a/sound/vox/activated.wav b/sound/vox/activated.wav new file mode 100644 index 00000000000..154e0389e83 Binary files /dev/null and b/sound/vox/activated.wav differ diff --git a/sound/vox/activity.wav b/sound/vox/activity.wav new file mode 100644 index 00000000000..5920e6dd387 Binary files /dev/null and b/sound/vox/activity.wav differ diff --git a/sound/vox/adios.wav b/sound/vox/adios.wav new file mode 100644 index 00000000000..86e268ca1f1 Binary files /dev/null and b/sound/vox/adios.wav differ diff --git a/sound/vox/administration.wav b/sound/vox/administration.wav new file mode 100644 index 00000000000..d85d67eabff Binary files /dev/null and b/sound/vox/administration.wav differ diff --git a/sound/vox/advanced.wav b/sound/vox/advanced.wav new file mode 100644 index 00000000000..987cd05b2a2 Binary files /dev/null and b/sound/vox/advanced.wav differ diff --git a/sound/vox/after.wav b/sound/vox/after.wav new file mode 100644 index 00000000000..f63abdff558 Binary files /dev/null and b/sound/vox/after.wav differ diff --git a/sound/vox/agent.wav b/sound/vox/agent.wav new file mode 100644 index 00000000000..594932971e3 Binary files /dev/null and b/sound/vox/agent.wav differ diff --git a/sound/vox/alarm.wav b/sound/vox/alarm.wav new file mode 100644 index 00000000000..296ca773d66 Binary files /dev/null and b/sound/vox/alarm.wav differ diff --git a/sound/vox/alert.wav b/sound/vox/alert.wav new file mode 100644 index 00000000000..1a749b7c74b Binary files /dev/null and b/sound/vox/alert.wav differ diff --git a/sound/vox/alien.wav b/sound/vox/alien.wav new file mode 100644 index 00000000000..58909559957 Binary files /dev/null and b/sound/vox/alien.wav differ diff --git a/sound/vox/aligned.wav b/sound/vox/aligned.wav new file mode 100644 index 00000000000..20bbe5bfa72 Binary files /dev/null and b/sound/vox/aligned.wav differ diff --git a/sound/vox/all.wav b/sound/vox/all.wav new file mode 100644 index 00000000000..5bfc4dee60e Binary files /dev/null and b/sound/vox/all.wav differ diff --git a/sound/vox/alpha.wav b/sound/vox/alpha.wav new file mode 100644 index 00000000000..d64239ec881 Binary files /dev/null and b/sound/vox/alpha.wav differ diff --git a/sound/vox/am.wav b/sound/vox/am.wav new file mode 100644 index 00000000000..c273e5231d0 Binary files /dev/null and b/sound/vox/am.wav differ diff --git a/sound/vox/amigo.wav b/sound/vox/amigo.wav new file mode 100644 index 00000000000..03ec617c294 Binary files /dev/null and b/sound/vox/amigo.wav differ diff --git a/sound/vox/ammunition.wav b/sound/vox/ammunition.wav new file mode 100644 index 00000000000..148605c2ca0 Binary files /dev/null and b/sound/vox/ammunition.wav differ diff --git a/sound/vox/an.wav b/sound/vox/an.wav new file mode 100644 index 00000000000..5755607e36d Binary files /dev/null and b/sound/vox/an.wav differ diff --git a/sound/vox/and.wav b/sound/vox/and.wav new file mode 100644 index 00000000000..6e155c09d97 Binary files /dev/null and b/sound/vox/and.wav differ diff --git a/sound/vox/announcement.wav b/sound/vox/announcement.wav new file mode 100644 index 00000000000..9d185ead91e Binary files /dev/null and b/sound/vox/announcement.wav differ diff --git a/sound/vox/anomalous.wav b/sound/vox/anomalous.wav new file mode 100644 index 00000000000..1db9a4fa09a Binary files /dev/null and b/sound/vox/anomalous.wav differ diff --git a/sound/vox/antenna.wav b/sound/vox/antenna.wav new file mode 100644 index 00000000000..fa82d58cb9c Binary files /dev/null and b/sound/vox/antenna.wav differ diff --git a/sound/vox/any.wav b/sound/vox/any.wav new file mode 100644 index 00000000000..73bed24661c Binary files /dev/null and b/sound/vox/any.wav differ diff --git a/sound/vox/apprehend.wav b/sound/vox/apprehend.wav new file mode 100644 index 00000000000..874ef839637 Binary files /dev/null and b/sound/vox/apprehend.wav differ diff --git a/sound/vox/approach.wav b/sound/vox/approach.wav new file mode 100644 index 00000000000..5c5e1995df8 Binary files /dev/null and b/sound/vox/approach.wav differ diff --git a/sound/vox/are.wav b/sound/vox/are.wav new file mode 100644 index 00000000000..bacdb31e2a3 Binary files /dev/null and b/sound/vox/are.wav differ diff --git a/sound/vox/area.wav b/sound/vox/area.wav new file mode 100644 index 00000000000..f2ac3dd05af Binary files /dev/null and b/sound/vox/area.wav differ diff --git a/sound/vox/arm.wav b/sound/vox/arm.wav new file mode 100644 index 00000000000..225abed39ec Binary files /dev/null and b/sound/vox/arm.wav differ diff --git a/sound/vox/armed.wav b/sound/vox/armed.wav new file mode 100644 index 00000000000..55e4a67c667 Binary files /dev/null and b/sound/vox/armed.wav differ diff --git a/sound/vox/armor.wav b/sound/vox/armor.wav new file mode 100644 index 00000000000..2ca51709d4d Binary files /dev/null and b/sound/vox/armor.wav differ diff --git a/sound/vox/armory.wav b/sound/vox/armory.wav new file mode 100644 index 00000000000..63fff9e39e3 Binary files /dev/null and b/sound/vox/armory.wav differ diff --git a/sound/vox/arrest.wav b/sound/vox/arrest.wav new file mode 100644 index 00000000000..cdc24ec627d Binary files /dev/null and b/sound/vox/arrest.wav differ diff --git a/sound/vox/ass.wav b/sound/vox/ass.wav new file mode 100644 index 00000000000..2b6698aa668 Binary files /dev/null and b/sound/vox/ass.wav differ diff --git a/sound/vox/at.wav b/sound/vox/at.wav new file mode 100644 index 00000000000..0b1b9396e58 Binary files /dev/null and b/sound/vox/at.wav differ diff --git a/sound/vox/atomic.wav b/sound/vox/atomic.wav new file mode 100644 index 00000000000..6a00304807f Binary files /dev/null and b/sound/vox/atomic.wav differ diff --git a/sound/vox/attention.wav b/sound/vox/attention.wav new file mode 100644 index 00000000000..e9078e6d9e0 Binary files /dev/null and b/sound/vox/attention.wav differ diff --git a/sound/vox/authorize.wav b/sound/vox/authorize.wav new file mode 100644 index 00000000000..3dcff1208b9 Binary files /dev/null and b/sound/vox/authorize.wav differ diff --git a/sound/vox/authorized.wav b/sound/vox/authorized.wav new file mode 100644 index 00000000000..67672abf35b Binary files /dev/null and b/sound/vox/authorized.wav differ diff --git a/sound/vox/automatic.wav b/sound/vox/automatic.wav new file mode 100644 index 00000000000..8e676b08277 Binary files /dev/null and b/sound/vox/automatic.wav differ diff --git a/sound/vox/away.wav b/sound/vox/away.wav new file mode 100644 index 00000000000..e1a3bee4d8c Binary files /dev/null and b/sound/vox/away.wav differ diff --git a/sound/vox/b.wav b/sound/vox/b.wav new file mode 100644 index 00000000000..751c7b7b1ac Binary files /dev/null and b/sound/vox/b.wav differ diff --git a/sound/vox/back.wav b/sound/vox/back.wav new file mode 100644 index 00000000000..b2f4e56e40a Binary files /dev/null and b/sound/vox/back.wav differ diff --git a/sound/vox/backman.wav b/sound/vox/backman.wav new file mode 100644 index 00000000000..60e149eaeec Binary files /dev/null and b/sound/vox/backman.wav differ diff --git a/sound/vox/bad.wav b/sound/vox/bad.wav new file mode 100644 index 00000000000..b59100564fe Binary files /dev/null and b/sound/vox/bad.wav differ diff --git a/sound/vox/bag.wav b/sound/vox/bag.wav new file mode 100644 index 00000000000..ccbf3f851ef Binary files /dev/null and b/sound/vox/bag.wav differ diff --git a/sound/vox/bailey.wav b/sound/vox/bailey.wav new file mode 100644 index 00000000000..deca97dc6b0 Binary files /dev/null and b/sound/vox/bailey.wav differ diff --git a/sound/vox/barracks.wav b/sound/vox/barracks.wav new file mode 100644 index 00000000000..c7cc651cedb Binary files /dev/null and b/sound/vox/barracks.wav differ diff --git a/sound/vox/base.wav b/sound/vox/base.wav new file mode 100644 index 00000000000..a4c6c829e59 Binary files /dev/null and b/sound/vox/base.wav differ diff --git a/sound/vox/bay.wav b/sound/vox/bay.wav new file mode 100644 index 00000000000..769dfc38c28 Binary files /dev/null and b/sound/vox/bay.wav differ diff --git a/sound/vox/be.wav b/sound/vox/be.wav new file mode 100644 index 00000000000..38074711b49 Binary files /dev/null and b/sound/vox/be.wav differ diff --git a/sound/vox/been.wav b/sound/vox/been.wav new file mode 100644 index 00000000000..959f08ebf5a Binary files /dev/null and b/sound/vox/been.wav differ diff --git a/sound/vox/before.wav b/sound/vox/before.wav new file mode 100644 index 00000000000..a7c2cdd5b2a Binary files /dev/null and b/sound/vox/before.wav differ diff --git a/sound/vox/beyond.wav b/sound/vox/beyond.wav new file mode 100644 index 00000000000..d0641c009b8 Binary files /dev/null and b/sound/vox/beyond.wav differ diff --git a/sound/vox/biohazard.wav b/sound/vox/biohazard.wav new file mode 100644 index 00000000000..6ee3aca426f Binary files /dev/null and b/sound/vox/biohazard.wav differ diff --git a/sound/vox/biological.wav b/sound/vox/biological.wav new file mode 100644 index 00000000000..fef86450b14 Binary files /dev/null and b/sound/vox/biological.wav differ diff --git a/sound/vox/birdwell.wav b/sound/vox/birdwell.wav new file mode 100644 index 00000000000..6436f724f03 Binary files /dev/null and b/sound/vox/birdwell.wav differ diff --git a/sound/vox/bizwarn.wav b/sound/vox/bizwarn.wav new file mode 100644 index 00000000000..ff392b491a0 Binary files /dev/null and b/sound/vox/bizwarn.wav differ diff --git a/sound/vox/black.wav b/sound/vox/black.wav new file mode 100644 index 00000000000..52dd0881aee Binary files /dev/null and b/sound/vox/black.wav differ diff --git a/sound/vox/blast.wav b/sound/vox/blast.wav new file mode 100644 index 00000000000..fa8d79fbb45 Binary files /dev/null and b/sound/vox/blast.wav differ diff --git a/sound/vox/blocked.wav b/sound/vox/blocked.wav new file mode 100644 index 00000000000..5e086f4bce3 Binary files /dev/null and b/sound/vox/blocked.wav differ diff --git a/sound/vox/bloop.wav b/sound/vox/bloop.wav new file mode 100644 index 00000000000..49cf90c5230 Binary files /dev/null and b/sound/vox/bloop.wav differ diff --git a/sound/vox/blue.wav b/sound/vox/blue.wav new file mode 100644 index 00000000000..83a6e7c3ebe Binary files /dev/null and b/sound/vox/blue.wav differ diff --git a/sound/vox/bottom.wav b/sound/vox/bottom.wav new file mode 100644 index 00000000000..2330a74b285 Binary files /dev/null and b/sound/vox/bottom.wav differ diff --git a/sound/vox/bravo.wav b/sound/vox/bravo.wav new file mode 100644 index 00000000000..560af14f2c8 Binary files /dev/null and b/sound/vox/bravo.wav differ diff --git a/sound/vox/breach.wav b/sound/vox/breach.wav new file mode 100644 index 00000000000..89a61783346 Binary files /dev/null and b/sound/vox/breach.wav differ diff --git a/sound/vox/breached.wav b/sound/vox/breached.wav new file mode 100644 index 00000000000..f4028d18a8c Binary files /dev/null and b/sound/vox/breached.wav differ diff --git a/sound/vox/break.wav b/sound/vox/break.wav new file mode 100644 index 00000000000..124720295b9 Binary files /dev/null and b/sound/vox/break.wav differ diff --git a/sound/vox/bridge.wav b/sound/vox/bridge.wav new file mode 100644 index 00000000000..cbb0cb461d7 Binary files /dev/null and b/sound/vox/bridge.wav differ diff --git a/sound/vox/bust.wav b/sound/vox/bust.wav new file mode 100644 index 00000000000..6af0f12c80f Binary files /dev/null and b/sound/vox/bust.wav differ diff --git a/sound/vox/but.wav b/sound/vox/but.wav new file mode 100644 index 00000000000..0728ed3e1ee Binary files /dev/null and b/sound/vox/but.wav differ diff --git a/sound/vox/button.wav b/sound/vox/button.wav new file mode 100644 index 00000000000..bc583238cab Binary files /dev/null and b/sound/vox/button.wav differ diff --git a/sound/vox/buzwarn.wav b/sound/vox/buzwarn.wav new file mode 100644 index 00000000000..82ddd2cdb37 Binary files /dev/null and b/sound/vox/buzwarn.wav differ diff --git a/sound/vox/bypass.wav b/sound/vox/bypass.wav new file mode 100644 index 00000000000..b5155d37ff5 Binary files /dev/null and b/sound/vox/bypass.wav differ diff --git a/sound/vox/c.wav b/sound/vox/c.wav new file mode 100644 index 00000000000..9fcfc5e7453 Binary files /dev/null and b/sound/vox/c.wav differ diff --git a/sound/vox/cable.wav b/sound/vox/cable.wav new file mode 100644 index 00000000000..d7610926510 Binary files /dev/null and b/sound/vox/cable.wav differ diff --git a/sound/vox/call.wav b/sound/vox/call.wav new file mode 100644 index 00000000000..aa06767b949 Binary files /dev/null and b/sound/vox/call.wav differ diff --git a/sound/vox/called.wav b/sound/vox/called.wav new file mode 100644 index 00000000000..f0c2897c8d1 Binary files /dev/null and b/sound/vox/called.wav differ diff --git a/sound/vox/canal.wav b/sound/vox/canal.wav new file mode 100644 index 00000000000..b426a8f6a9a Binary files /dev/null and b/sound/vox/canal.wav differ diff --git a/sound/vox/cap.wav b/sound/vox/cap.wav new file mode 100644 index 00000000000..998505184ba Binary files /dev/null and b/sound/vox/cap.wav differ diff --git a/sound/vox/captain.wav b/sound/vox/captain.wav new file mode 100644 index 00000000000..61222de5324 Binary files /dev/null and b/sound/vox/captain.wav differ diff --git a/sound/vox/capture.wav b/sound/vox/capture.wav new file mode 100644 index 00000000000..c7bfaad64f3 Binary files /dev/null and b/sound/vox/capture.wav differ diff --git a/sound/vox/ceiling.wav b/sound/vox/ceiling.wav new file mode 100644 index 00000000000..381db754cae Binary files /dev/null and b/sound/vox/ceiling.wav differ diff --git a/sound/vox/celsius.wav b/sound/vox/celsius.wav new file mode 100644 index 00000000000..ac59448a461 Binary files /dev/null and b/sound/vox/celsius.wav differ diff --git a/sound/vox/center.wav b/sound/vox/center.wav new file mode 100644 index 00000000000..35bdcb52248 Binary files /dev/null and b/sound/vox/center.wav differ diff --git a/sound/vox/centi.wav b/sound/vox/centi.wav new file mode 100644 index 00000000000..efccef07e7b Binary files /dev/null and b/sound/vox/centi.wav differ diff --git a/sound/vox/central.wav b/sound/vox/central.wav new file mode 100644 index 00000000000..1c9c58be571 Binary files /dev/null and b/sound/vox/central.wav differ diff --git a/sound/vox/chamber.wav b/sound/vox/chamber.wav new file mode 100644 index 00000000000..38dbf9ffa7b Binary files /dev/null and b/sound/vox/chamber.wav differ diff --git a/sound/vox/charlie.wav b/sound/vox/charlie.wav new file mode 100644 index 00000000000..353ce195f3d Binary files /dev/null and b/sound/vox/charlie.wav differ diff --git a/sound/vox/check.wav b/sound/vox/check.wav new file mode 100644 index 00000000000..709f9a6555f Binary files /dev/null and b/sound/vox/check.wav differ diff --git a/sound/vox/checkpoint.wav b/sound/vox/checkpoint.wav new file mode 100644 index 00000000000..15aa5e4cc9b Binary files /dev/null and b/sound/vox/checkpoint.wav differ diff --git a/sound/vox/chemical.wav b/sound/vox/chemical.wav new file mode 100644 index 00000000000..eeb32be3850 Binary files /dev/null and b/sound/vox/chemical.wav differ diff --git a/sound/vox/cleanup.wav b/sound/vox/cleanup.wav new file mode 100644 index 00000000000..a47ddb233a0 Binary files /dev/null and b/sound/vox/cleanup.wav differ diff --git a/sound/vox/clear.wav b/sound/vox/clear.wav new file mode 100644 index 00000000000..a23cfc5e2bd Binary files /dev/null and b/sound/vox/clear.wav differ diff --git a/sound/vox/clearance.wav b/sound/vox/clearance.wav new file mode 100644 index 00000000000..a35e0699b87 Binary files /dev/null and b/sound/vox/clearance.wav differ diff --git a/sound/vox/close.wav b/sound/vox/close.wav new file mode 100644 index 00000000000..6a46d7fb063 Binary files /dev/null and b/sound/vox/close.wav differ diff --git a/sound/vox/code.wav b/sound/vox/code.wav new file mode 100644 index 00000000000..63bdfbe883a Binary files /dev/null and b/sound/vox/code.wav differ diff --git a/sound/vox/coded.wav b/sound/vox/coded.wav new file mode 100644 index 00000000000..ec876b297fd Binary files /dev/null and b/sound/vox/coded.wav differ diff --git a/sound/vox/collider.wav b/sound/vox/collider.wav new file mode 100644 index 00000000000..a26ff0a317b Binary files /dev/null and b/sound/vox/collider.wav differ diff --git a/sound/vox/command.wav b/sound/vox/command.wav new file mode 100644 index 00000000000..ba0c7e852b8 Binary files /dev/null and b/sound/vox/command.wav differ diff --git a/sound/vox/communication.wav b/sound/vox/communication.wav new file mode 100644 index 00000000000..35165357e69 Binary files /dev/null and b/sound/vox/communication.wav differ diff --git a/sound/vox/complex.wav b/sound/vox/complex.wav new file mode 100644 index 00000000000..d2c01ccd57d Binary files /dev/null and b/sound/vox/complex.wav differ diff --git a/sound/vox/computer.wav b/sound/vox/computer.wav new file mode 100644 index 00000000000..89808c20d7b Binary files /dev/null and b/sound/vox/computer.wav differ diff --git a/sound/vox/condition.wav b/sound/vox/condition.wav new file mode 100644 index 00000000000..b32c83668eb Binary files /dev/null and b/sound/vox/condition.wav differ diff --git a/sound/vox/containment.wav b/sound/vox/containment.wav new file mode 100644 index 00000000000..563cb4e15a0 Binary files /dev/null and b/sound/vox/containment.wav differ diff --git a/sound/vox/contamination.wav b/sound/vox/contamination.wav new file mode 100644 index 00000000000..d597267cdde Binary files /dev/null and b/sound/vox/contamination.wav differ diff --git a/sound/vox/control.wav b/sound/vox/control.wav new file mode 100644 index 00000000000..e7bf57bbd8a Binary files /dev/null and b/sound/vox/control.wav differ diff --git a/sound/vox/coolant.wav b/sound/vox/coolant.wav new file mode 100644 index 00000000000..d4474b9d9df Binary files /dev/null and b/sound/vox/coolant.wav differ diff --git a/sound/vox/coomer.wav b/sound/vox/coomer.wav new file mode 100644 index 00000000000..1e4b37929ff Binary files /dev/null and b/sound/vox/coomer.wav differ diff --git a/sound/vox/core.wav b/sound/vox/core.wav new file mode 100644 index 00000000000..da6874b2e7e Binary files /dev/null and b/sound/vox/core.wav differ diff --git a/sound/vox/correct.wav b/sound/vox/correct.wav new file mode 100644 index 00000000000..cde927b7477 Binary files /dev/null and b/sound/vox/correct.wav differ diff --git a/sound/vox/corridor.wav b/sound/vox/corridor.wav new file mode 100644 index 00000000000..defdcda2d10 Binary files /dev/null and b/sound/vox/corridor.wav differ diff --git a/sound/vox/crew.wav b/sound/vox/crew.wav new file mode 100644 index 00000000000..4f48a08cb11 Binary files /dev/null and b/sound/vox/crew.wav differ diff --git a/sound/vox/cross.wav b/sound/vox/cross.wav new file mode 100644 index 00000000000..c393dffbf15 Binary files /dev/null and b/sound/vox/cross.wav differ diff --git a/sound/vox/cryogenic.wav b/sound/vox/cryogenic.wav new file mode 100644 index 00000000000..eb1a62ae38f Binary files /dev/null and b/sound/vox/cryogenic.wav differ diff --git a/sound/vox/d.wav b/sound/vox/d.wav new file mode 100644 index 00000000000..f977a495055 Binary files /dev/null and b/sound/vox/d.wav differ diff --git a/sound/vox/dadeda.wav b/sound/vox/dadeda.wav new file mode 100644 index 00000000000..2ac0ff589af Binary files /dev/null and b/sound/vox/dadeda.wav differ diff --git a/sound/vox/damage.wav b/sound/vox/damage.wav new file mode 100644 index 00000000000..83fce3dcf0e Binary files /dev/null and b/sound/vox/damage.wav differ diff --git a/sound/vox/damaged.wav b/sound/vox/damaged.wav new file mode 100644 index 00000000000..e9f2ff5dbb7 Binary files /dev/null and b/sound/vox/damaged.wav differ diff --git a/sound/vox/danger.wav b/sound/vox/danger.wav new file mode 100644 index 00000000000..40ff8b8db98 Binary files /dev/null and b/sound/vox/danger.wav differ diff --git a/sound/vox/day.wav b/sound/vox/day.wav new file mode 100644 index 00000000000..92e3fe81da7 Binary files /dev/null and b/sound/vox/day.wav differ diff --git a/sound/vox/deactivated.wav b/sound/vox/deactivated.wav new file mode 100644 index 00000000000..f587f266dd7 Binary files /dev/null and b/sound/vox/deactivated.wav differ diff --git a/sound/vox/decompression.wav b/sound/vox/decompression.wav new file mode 100644 index 00000000000..a758f1bbd76 Binary files /dev/null and b/sound/vox/decompression.wav differ diff --git a/sound/vox/decontamination.wav b/sound/vox/decontamination.wav new file mode 100644 index 00000000000..9794de0a23b Binary files /dev/null and b/sound/vox/decontamination.wav differ diff --git a/sound/vox/deeoo.wav b/sound/vox/deeoo.wav new file mode 100644 index 00000000000..4f82a18b2a5 Binary files /dev/null and b/sound/vox/deeoo.wav differ diff --git a/sound/vox/defense.wav b/sound/vox/defense.wav new file mode 100644 index 00000000000..9da8de137f5 Binary files /dev/null and b/sound/vox/defense.wav differ diff --git a/sound/vox/degrees.wav b/sound/vox/degrees.wav new file mode 100644 index 00000000000..7e77561c14d Binary files /dev/null and b/sound/vox/degrees.wav differ diff --git a/sound/vox/delta.wav b/sound/vox/delta.wav new file mode 100644 index 00000000000..86052809f4a Binary files /dev/null and b/sound/vox/delta.wav differ diff --git a/sound/vox/denied.wav b/sound/vox/denied.wav new file mode 100644 index 00000000000..6b1167d41d5 Binary files /dev/null and b/sound/vox/denied.wav differ diff --git a/sound/vox/deploy.wav b/sound/vox/deploy.wav new file mode 100644 index 00000000000..2f9aacd3506 Binary files /dev/null and b/sound/vox/deploy.wav differ diff --git a/sound/vox/deployed.wav b/sound/vox/deployed.wav new file mode 100644 index 00000000000..a85a076b18b Binary files /dev/null and b/sound/vox/deployed.wav differ diff --git a/sound/vox/destroy.wav b/sound/vox/destroy.wav new file mode 100644 index 00000000000..56cf437c66c Binary files /dev/null and b/sound/vox/destroy.wav differ diff --git a/sound/vox/destroyed.wav b/sound/vox/destroyed.wav new file mode 100644 index 00000000000..20308df2df5 Binary files /dev/null and b/sound/vox/destroyed.wav differ diff --git a/sound/vox/detain.wav b/sound/vox/detain.wav new file mode 100644 index 00000000000..7d5f4e06f43 Binary files /dev/null and b/sound/vox/detain.wav differ diff --git a/sound/vox/detected.wav b/sound/vox/detected.wav new file mode 100644 index 00000000000..101429a6140 Binary files /dev/null and b/sound/vox/detected.wav differ diff --git a/sound/vox/detonation.wav b/sound/vox/detonation.wav new file mode 100644 index 00000000000..a696e97976a Binary files /dev/null and b/sound/vox/detonation.wav differ diff --git a/sound/vox/device.wav b/sound/vox/device.wav new file mode 100644 index 00000000000..d5ecd2f67b3 Binary files /dev/null and b/sound/vox/device.wav differ diff --git a/sound/vox/did.wav b/sound/vox/did.wav new file mode 100644 index 00000000000..0c52e31b728 Binary files /dev/null and b/sound/vox/did.wav differ diff --git a/sound/vox/die.wav b/sound/vox/die.wav new file mode 100644 index 00000000000..b47622cfc70 Binary files /dev/null and b/sound/vox/die.wav differ diff --git a/sound/vox/dimensional.wav b/sound/vox/dimensional.wav new file mode 100644 index 00000000000..f67956ddc7f Binary files /dev/null and b/sound/vox/dimensional.wav differ diff --git a/sound/vox/dirt.wav b/sound/vox/dirt.wav new file mode 100644 index 00000000000..08990c47d89 Binary files /dev/null and b/sound/vox/dirt.wav differ diff --git a/sound/vox/disengaged.wav b/sound/vox/disengaged.wav new file mode 100644 index 00000000000..aa84ed27a6e Binary files /dev/null and b/sound/vox/disengaged.wav differ diff --git a/sound/vox/dish.wav b/sound/vox/dish.wav new file mode 100644 index 00000000000..aeff92d2052 Binary files /dev/null and b/sound/vox/dish.wav differ diff --git a/sound/vox/disposal.wav b/sound/vox/disposal.wav new file mode 100644 index 00000000000..bfe38f6098f Binary files /dev/null and b/sound/vox/disposal.wav differ diff --git a/sound/vox/distance.wav b/sound/vox/distance.wav new file mode 100644 index 00000000000..670eacaabe1 Binary files /dev/null and b/sound/vox/distance.wav differ diff --git a/sound/vox/distortion.wav b/sound/vox/distortion.wav new file mode 100644 index 00000000000..7fae33e2446 Binary files /dev/null and b/sound/vox/distortion.wav differ diff --git a/sound/vox/do.wav b/sound/vox/do.wav new file mode 100644 index 00000000000..d82a9ab1074 Binary files /dev/null and b/sound/vox/do.wav differ diff --git a/sound/vox/doctor.wav b/sound/vox/doctor.wav new file mode 100644 index 00000000000..f9cdc53805d Binary files /dev/null and b/sound/vox/doctor.wav differ diff --git a/sound/vox/doop.wav b/sound/vox/doop.wav new file mode 100644 index 00000000000..14bce15cea0 Binary files /dev/null and b/sound/vox/doop.wav differ diff --git a/sound/vox/door.wav b/sound/vox/door.wav new file mode 100644 index 00000000000..629dee38e77 Binary files /dev/null and b/sound/vox/door.wav differ diff --git a/sound/vox/down.wav b/sound/vox/down.wav new file mode 100644 index 00000000000..b677e031daa Binary files /dev/null and b/sound/vox/down.wav differ diff --git a/sound/vox/dual.wav b/sound/vox/dual.wav new file mode 100644 index 00000000000..4693b31d42a Binary files /dev/null and b/sound/vox/dual.wav differ diff --git a/sound/vox/duct.wav b/sound/vox/duct.wav new file mode 100644 index 00000000000..d0e937fd80e Binary files /dev/null and b/sound/vox/duct.wav differ diff --git a/sound/vox/e.wav b/sound/vox/e.wav new file mode 100644 index 00000000000..6f991d0fcc7 Binary files /dev/null and b/sound/vox/e.wav differ diff --git a/sound/vox/east.wav b/sound/vox/east.wav new file mode 100644 index 00000000000..296ce53d412 Binary files /dev/null and b/sound/vox/east.wav differ diff --git a/sound/vox/echo.wav b/sound/vox/echo.wav new file mode 100644 index 00000000000..3087ecbd9c6 Binary files /dev/null and b/sound/vox/echo.wav differ diff --git a/sound/vox/ed.wav b/sound/vox/ed.wav new file mode 100644 index 00000000000..71303ffe0a7 Binary files /dev/null and b/sound/vox/ed.wav differ diff --git a/sound/vox/effect.wav b/sound/vox/effect.wav new file mode 100644 index 00000000000..a0128cf6984 Binary files /dev/null and b/sound/vox/effect.wav differ diff --git a/sound/vox/egress.wav b/sound/vox/egress.wav new file mode 100644 index 00000000000..47fa437ce81 Binary files /dev/null and b/sound/vox/egress.wav differ diff --git a/sound/vox/eight.wav b/sound/vox/eight.wav new file mode 100644 index 00000000000..4fef5c2eb70 Binary files /dev/null and b/sound/vox/eight.wav differ diff --git a/sound/vox/eighteen.wav b/sound/vox/eighteen.wav new file mode 100644 index 00000000000..1aff299ad27 Binary files /dev/null and b/sound/vox/eighteen.wav differ diff --git a/sound/vox/eighty.wav b/sound/vox/eighty.wav new file mode 100644 index 00000000000..a1f54835dbb Binary files /dev/null and b/sound/vox/eighty.wav differ diff --git a/sound/vox/electric.wav b/sound/vox/electric.wav new file mode 100644 index 00000000000..48c4fe01768 Binary files /dev/null and b/sound/vox/electric.wav differ diff --git a/sound/vox/electromagnetic.wav b/sound/vox/electromagnetic.wav new file mode 100644 index 00000000000..886c76ef6b7 Binary files /dev/null and b/sound/vox/electromagnetic.wav differ diff --git a/sound/vox/elevator.wav b/sound/vox/elevator.wav new file mode 100644 index 00000000000..a4d41448492 Binary files /dev/null and b/sound/vox/elevator.wav differ diff --git a/sound/vox/eleven.wav b/sound/vox/eleven.wav new file mode 100644 index 00000000000..5473a254117 Binary files /dev/null and b/sound/vox/eleven.wav differ diff --git a/sound/vox/eliminate.wav b/sound/vox/eliminate.wav new file mode 100644 index 00000000000..d4e51affb30 Binary files /dev/null and b/sound/vox/eliminate.wav differ diff --git a/sound/vox/emergency.wav b/sound/vox/emergency.wav new file mode 100644 index 00000000000..62bb34ef412 Binary files /dev/null and b/sound/vox/emergency.wav differ diff --git a/sound/vox/energy.wav b/sound/vox/energy.wav new file mode 100644 index 00000000000..b66ed4db108 Binary files /dev/null and b/sound/vox/energy.wav differ diff --git a/sound/vox/engage.wav b/sound/vox/engage.wav new file mode 100644 index 00000000000..11a43c40a75 Binary files /dev/null and b/sound/vox/engage.wav differ diff --git a/sound/vox/engaged.wav b/sound/vox/engaged.wav new file mode 100644 index 00000000000..a47cbb59772 Binary files /dev/null and b/sound/vox/engaged.wav differ diff --git a/sound/vox/engine.wav b/sound/vox/engine.wav new file mode 100644 index 00000000000..f6ab907c5b3 Binary files /dev/null and b/sound/vox/engine.wav differ diff --git a/sound/vox/enter.wav b/sound/vox/enter.wav new file mode 100644 index 00000000000..f3f53ea8211 Binary files /dev/null and b/sound/vox/enter.wav differ diff --git a/sound/vox/entry.wav b/sound/vox/entry.wav new file mode 100644 index 00000000000..a027e1a7e54 Binary files /dev/null and b/sound/vox/entry.wav differ diff --git a/sound/vox/environment.wav b/sound/vox/environment.wav new file mode 100644 index 00000000000..6ab7d940cc4 Binary files /dev/null and b/sound/vox/environment.wav differ diff --git a/sound/vox/error.wav b/sound/vox/error.wav new file mode 100644 index 00000000000..05b2bebf60b Binary files /dev/null and b/sound/vox/error.wav differ diff --git a/sound/vox/escape.wav b/sound/vox/escape.wav new file mode 100644 index 00000000000..dbf3c954f57 Binary files /dev/null and b/sound/vox/escape.wav differ diff --git a/sound/vox/evacuate.wav b/sound/vox/evacuate.wav new file mode 100644 index 00000000000..2766662cd26 Binary files /dev/null and b/sound/vox/evacuate.wav differ diff --git a/sound/vox/exchange.wav b/sound/vox/exchange.wav new file mode 100644 index 00000000000..73426aea013 Binary files /dev/null and b/sound/vox/exchange.wav differ diff --git a/sound/vox/exit.wav b/sound/vox/exit.wav new file mode 100644 index 00000000000..85680b3212a Binary files /dev/null and b/sound/vox/exit.wav differ diff --git a/sound/vox/expect.wav b/sound/vox/expect.wav new file mode 100644 index 00000000000..a562e53a9a8 Binary files /dev/null and b/sound/vox/expect.wav differ diff --git a/sound/vox/experiment.wav b/sound/vox/experiment.wav new file mode 100644 index 00000000000..3f60c2181be Binary files /dev/null and b/sound/vox/experiment.wav differ diff --git a/sound/vox/experimental.wav b/sound/vox/experimental.wav new file mode 100644 index 00000000000..fbf75a59d30 Binary files /dev/null and b/sound/vox/experimental.wav differ diff --git a/sound/vox/explode.wav b/sound/vox/explode.wav new file mode 100644 index 00000000000..847e64562c0 Binary files /dev/null and b/sound/vox/explode.wav differ diff --git a/sound/vox/explosion.wav b/sound/vox/explosion.wav new file mode 100644 index 00000000000..a2e442ec2f7 Binary files /dev/null and b/sound/vox/explosion.wav differ diff --git a/sound/vox/exposure.wav b/sound/vox/exposure.wav new file mode 100644 index 00000000000..37a933ca62e Binary files /dev/null and b/sound/vox/exposure.wav differ diff --git a/sound/vox/exterminate.wav b/sound/vox/exterminate.wav new file mode 100644 index 00000000000..f1c3c233d68 Binary files /dev/null and b/sound/vox/exterminate.wav differ diff --git a/sound/vox/extinguish.wav b/sound/vox/extinguish.wav new file mode 100644 index 00000000000..1fc83d9e7ec Binary files /dev/null and b/sound/vox/extinguish.wav differ diff --git a/sound/vox/extinguisher.wav b/sound/vox/extinguisher.wav new file mode 100644 index 00000000000..eed3164bfc7 Binary files /dev/null and b/sound/vox/extinguisher.wav differ diff --git a/sound/vox/extreme.wav b/sound/vox/extreme.wav new file mode 100644 index 00000000000..0fc3adfb50e Binary files /dev/null and b/sound/vox/extreme.wav differ diff --git a/sound/vox/f.wav b/sound/vox/f.wav new file mode 100644 index 00000000000..0f06b338867 Binary files /dev/null and b/sound/vox/f.wav differ diff --git a/sound/vox/facility.wav b/sound/vox/facility.wav new file mode 100644 index 00000000000..812445e3dd7 Binary files /dev/null and b/sound/vox/facility.wav differ diff --git a/sound/vox/fahrenheit.wav b/sound/vox/fahrenheit.wav new file mode 100644 index 00000000000..96411aabdce Binary files /dev/null and b/sound/vox/fahrenheit.wav differ diff --git a/sound/vox/failed.wav b/sound/vox/failed.wav new file mode 100644 index 00000000000..f717b053758 Binary files /dev/null and b/sound/vox/failed.wav differ diff --git a/sound/vox/failure.wav b/sound/vox/failure.wav new file mode 100644 index 00000000000..dd662fc5a66 Binary files /dev/null and b/sound/vox/failure.wav differ diff --git a/sound/vox/farthest.wav b/sound/vox/farthest.wav new file mode 100644 index 00000000000..fcca7a432ec Binary files /dev/null and b/sound/vox/farthest.wav differ diff --git a/sound/vox/fast.wav b/sound/vox/fast.wav new file mode 100644 index 00000000000..821885a739f Binary files /dev/null and b/sound/vox/fast.wav differ diff --git a/sound/vox/feet.wav b/sound/vox/feet.wav new file mode 100644 index 00000000000..5adc5dbd62f Binary files /dev/null and b/sound/vox/feet.wav differ diff --git a/sound/vox/field.wav b/sound/vox/field.wav new file mode 100644 index 00000000000..6cc1ab42f83 Binary files /dev/null and b/sound/vox/field.wav differ diff --git a/sound/vox/fifteen.wav b/sound/vox/fifteen.wav new file mode 100644 index 00000000000..63ca382128d Binary files /dev/null and b/sound/vox/fifteen.wav differ diff --git a/sound/vox/fifth.wav b/sound/vox/fifth.wav new file mode 100644 index 00000000000..3886e043bfb Binary files /dev/null and b/sound/vox/fifth.wav differ diff --git a/sound/vox/fifty.wav b/sound/vox/fifty.wav new file mode 100644 index 00000000000..80f7b111037 Binary files /dev/null and b/sound/vox/fifty.wav differ diff --git a/sound/vox/final.wav b/sound/vox/final.wav new file mode 100644 index 00000000000..d4c807af6ed Binary files /dev/null and b/sound/vox/final.wav differ diff --git a/sound/vox/fine.wav b/sound/vox/fine.wav new file mode 100644 index 00000000000..f74d8fbfaa2 Binary files /dev/null and b/sound/vox/fine.wav differ diff --git a/sound/vox/fire.wav b/sound/vox/fire.wav new file mode 100644 index 00000000000..ce0a45d9c62 Binary files /dev/null and b/sound/vox/fire.wav differ diff --git a/sound/vox/first.wav b/sound/vox/first.wav new file mode 100644 index 00000000000..18a7fdf7afd Binary files /dev/null and b/sound/vox/first.wav differ diff --git a/sound/vox/five.wav b/sound/vox/five.wav new file mode 100644 index 00000000000..aa23cbe9cf1 Binary files /dev/null and b/sound/vox/five.wav differ diff --git a/sound/vox/flooding.wav b/sound/vox/flooding.wav new file mode 100644 index 00000000000..7b9f5bcc696 Binary files /dev/null and b/sound/vox/flooding.wav differ diff --git a/sound/vox/floor.wav b/sound/vox/floor.wav new file mode 100644 index 00000000000..b0865491647 Binary files /dev/null and b/sound/vox/floor.wav differ diff --git a/sound/vox/fool.wav b/sound/vox/fool.wav new file mode 100644 index 00000000000..327b3f5b598 Binary files /dev/null and b/sound/vox/fool.wav differ diff --git a/sound/vox/for.wav b/sound/vox/for.wav new file mode 100644 index 00000000000..84f793decec Binary files /dev/null and b/sound/vox/for.wav differ diff --git a/sound/vox/forbidden.wav b/sound/vox/forbidden.wav new file mode 100644 index 00000000000..f4d742505e2 Binary files /dev/null and b/sound/vox/forbidden.wav differ diff --git a/sound/vox/force.wav b/sound/vox/force.wav new file mode 100644 index 00000000000..3745c71418d Binary files /dev/null and b/sound/vox/force.wav differ diff --git a/sound/vox/forms.wav b/sound/vox/forms.wav new file mode 100644 index 00000000000..642e201abc6 Binary files /dev/null and b/sound/vox/forms.wav differ diff --git a/sound/vox/found.wav b/sound/vox/found.wav new file mode 100644 index 00000000000..59da4031fcd Binary files /dev/null and b/sound/vox/found.wav differ diff --git a/sound/vox/four.wav b/sound/vox/four.wav new file mode 100644 index 00000000000..a614cbcdc5f Binary files /dev/null and b/sound/vox/four.wav differ diff --git a/sound/vox/fourteen.wav b/sound/vox/fourteen.wav new file mode 100644 index 00000000000..aa0846855bf Binary files /dev/null and b/sound/vox/fourteen.wav differ diff --git a/sound/vox/fourth.wav b/sound/vox/fourth.wav new file mode 100644 index 00000000000..5c9071d292d Binary files /dev/null and b/sound/vox/fourth.wav differ diff --git a/sound/vox/fourty.wav b/sound/vox/fourty.wav new file mode 100644 index 00000000000..6bb8fb3e126 Binary files /dev/null and b/sound/vox/fourty.wav differ diff --git a/sound/vox/foxtrot.wav b/sound/vox/foxtrot.wav new file mode 100644 index 00000000000..ece21be942f Binary files /dev/null and b/sound/vox/foxtrot.wav differ diff --git a/sound/vox/freeman.wav b/sound/vox/freeman.wav new file mode 100644 index 00000000000..26a9ae229bb Binary files /dev/null and b/sound/vox/freeman.wav differ diff --git a/sound/vox/freezer.wav b/sound/vox/freezer.wav new file mode 100644 index 00000000000..32da8615481 Binary files /dev/null and b/sound/vox/freezer.wav differ diff --git a/sound/vox/from.wav b/sound/vox/from.wav new file mode 100644 index 00000000000..46541abe658 Binary files /dev/null and b/sound/vox/from.wav differ diff --git a/sound/vox/front.wav b/sound/vox/front.wav new file mode 100644 index 00000000000..46d600144d3 Binary files /dev/null and b/sound/vox/front.wav differ diff --git a/sound/vox/fuel.wav b/sound/vox/fuel.wav new file mode 100644 index 00000000000..1b2256b006f Binary files /dev/null and b/sound/vox/fuel.wav differ diff --git a/sound/vox/g.wav b/sound/vox/g.wav new file mode 100644 index 00000000000..37f5ce80100 Binary files /dev/null and b/sound/vox/g.wav differ diff --git a/sound/vox/get.wav b/sound/vox/get.wav new file mode 100644 index 00000000000..9dd512d512d Binary files /dev/null and b/sound/vox/get.wav differ diff --git a/sound/vox/go.wav b/sound/vox/go.wav new file mode 100644 index 00000000000..665989a94f9 Binary files /dev/null and b/sound/vox/go.wav differ diff --git a/sound/vox/going.wav b/sound/vox/going.wav new file mode 100644 index 00000000000..308b1b68903 Binary files /dev/null and b/sound/vox/going.wav differ diff --git a/sound/vox/good.wav b/sound/vox/good.wav new file mode 100644 index 00000000000..bf15c9c2b43 Binary files /dev/null and b/sound/vox/good.wav differ diff --git a/sound/vox/goodbye.wav b/sound/vox/goodbye.wav new file mode 100644 index 00000000000..2599ca560cc Binary files /dev/null and b/sound/vox/goodbye.wav differ diff --git a/sound/vox/gordon.wav b/sound/vox/gordon.wav new file mode 100644 index 00000000000..51c7195091b Binary files /dev/null and b/sound/vox/gordon.wav differ diff --git a/sound/vox/got.wav b/sound/vox/got.wav new file mode 100644 index 00000000000..b2b47c9d2e7 Binary files /dev/null and b/sound/vox/got.wav differ diff --git a/sound/vox/government.wav b/sound/vox/government.wav new file mode 100644 index 00000000000..17e7fa8fbfc Binary files /dev/null and b/sound/vox/government.wav differ diff --git a/sound/vox/granted.wav b/sound/vox/granted.wav new file mode 100644 index 00000000000..661bf0506fd Binary files /dev/null and b/sound/vox/granted.wav differ diff --git a/sound/vox/great.wav b/sound/vox/great.wav new file mode 100644 index 00000000000..8640b88fb61 Binary files /dev/null and b/sound/vox/great.wav differ diff --git a/sound/vox/green.wav b/sound/vox/green.wav new file mode 100644 index 00000000000..0eb5558231d Binary files /dev/null and b/sound/vox/green.wav differ diff --git a/sound/vox/grenade.wav b/sound/vox/grenade.wav new file mode 100644 index 00000000000..7b2d80ed6d6 Binary files /dev/null and b/sound/vox/grenade.wav differ diff --git a/sound/vox/guard.wav b/sound/vox/guard.wav new file mode 100644 index 00000000000..e715dc641c0 Binary files /dev/null and b/sound/vox/guard.wav differ diff --git a/sound/vox/gulf.wav b/sound/vox/gulf.wav new file mode 100644 index 00000000000..95b3e9fc4f9 Binary files /dev/null and b/sound/vox/gulf.wav differ diff --git a/sound/vox/gun.wav b/sound/vox/gun.wav new file mode 100644 index 00000000000..86e3ac1cbb5 Binary files /dev/null and b/sound/vox/gun.wav differ diff --git a/sound/vox/guthrie.wav b/sound/vox/guthrie.wav new file mode 100644 index 00000000000..362ab46d60c Binary files /dev/null and b/sound/vox/guthrie.wav differ diff --git a/sound/vox/handling.wav b/sound/vox/handling.wav new file mode 100644 index 00000000000..b9c7c5f581d Binary files /dev/null and b/sound/vox/handling.wav differ diff --git a/sound/vox/hangar.wav b/sound/vox/hangar.wav new file mode 100644 index 00000000000..e937054af9b Binary files /dev/null and b/sound/vox/hangar.wav differ diff --git a/sound/vox/has.wav b/sound/vox/has.wav new file mode 100644 index 00000000000..625a110f07f Binary files /dev/null and b/sound/vox/has.wav differ diff --git a/sound/vox/have.wav b/sound/vox/have.wav new file mode 100644 index 00000000000..c5f0794a1f4 Binary files /dev/null and b/sound/vox/have.wav differ diff --git a/sound/vox/hazard.wav b/sound/vox/hazard.wav new file mode 100644 index 00000000000..b311552c766 Binary files /dev/null and b/sound/vox/hazard.wav differ diff --git a/sound/vox/head.wav b/sound/vox/head.wav new file mode 100644 index 00000000000..ed8e9d88c64 Binary files /dev/null and b/sound/vox/head.wav differ diff --git a/sound/vox/health.wav b/sound/vox/health.wav new file mode 100644 index 00000000000..e3158318f41 Binary files /dev/null and b/sound/vox/health.wav differ diff --git a/sound/vox/heat.wav b/sound/vox/heat.wav new file mode 100644 index 00000000000..ca0b3452255 Binary files /dev/null and b/sound/vox/heat.wav differ diff --git a/sound/vox/helicopter.wav b/sound/vox/helicopter.wav new file mode 100644 index 00000000000..22e54494437 Binary files /dev/null and b/sound/vox/helicopter.wav differ diff --git a/sound/vox/helium.wav b/sound/vox/helium.wav new file mode 100644 index 00000000000..fbb8197cb06 Binary files /dev/null and b/sound/vox/helium.wav differ diff --git a/sound/vox/hello.wav b/sound/vox/hello.wav new file mode 100644 index 00000000000..7e61fec55ef Binary files /dev/null and b/sound/vox/hello.wav differ diff --git a/sound/vox/help.wav b/sound/vox/help.wav new file mode 100644 index 00000000000..5bef919ee9a Binary files /dev/null and b/sound/vox/help.wav differ diff --git a/sound/vox/here.wav b/sound/vox/here.wav new file mode 100644 index 00000000000..e6d74f47f75 Binary files /dev/null and b/sound/vox/here.wav differ diff --git a/sound/vox/hide.wav b/sound/vox/hide.wav new file mode 100644 index 00000000000..f7bb32b2830 Binary files /dev/null and b/sound/vox/hide.wav differ diff --git a/sound/vox/high.wav b/sound/vox/high.wav new file mode 100644 index 00000000000..832bf160408 Binary files /dev/null and b/sound/vox/high.wav differ diff --git a/sound/vox/highest.wav b/sound/vox/highest.wav new file mode 100644 index 00000000000..ef4b2caf39f Binary files /dev/null and b/sound/vox/highest.wav differ diff --git a/sound/vox/hit.wav b/sound/vox/hit.wav new file mode 100644 index 00000000000..d70619a3f56 Binary files /dev/null and b/sound/vox/hit.wav differ diff --git a/sound/vox/hole.wav b/sound/vox/hole.wav new file mode 100644 index 00000000000..afb46f59adc Binary files /dev/null and b/sound/vox/hole.wav differ diff --git a/sound/vox/hostile.wav b/sound/vox/hostile.wav new file mode 100644 index 00000000000..4dc88f26c63 Binary files /dev/null and b/sound/vox/hostile.wav differ diff --git a/sound/vox/hot.wav b/sound/vox/hot.wav new file mode 100644 index 00000000000..7ced07279b9 Binary files /dev/null and b/sound/vox/hot.wav differ diff --git a/sound/vox/hotel.wav b/sound/vox/hotel.wav new file mode 100644 index 00000000000..dde78cf2a18 Binary files /dev/null and b/sound/vox/hotel.wav differ diff --git a/sound/vox/hour.wav b/sound/vox/hour.wav new file mode 100644 index 00000000000..d428bd779e1 Binary files /dev/null and b/sound/vox/hour.wav differ diff --git a/sound/vox/hours.wav b/sound/vox/hours.wav new file mode 100644 index 00000000000..63a24704270 Binary files /dev/null and b/sound/vox/hours.wav differ diff --git a/sound/vox/hundred.wav b/sound/vox/hundred.wav new file mode 100644 index 00000000000..8d3a8a0b4a5 Binary files /dev/null and b/sound/vox/hundred.wav differ diff --git a/sound/vox/hydro.wav b/sound/vox/hydro.wav new file mode 100644 index 00000000000..9653b7bf73a Binary files /dev/null and b/sound/vox/hydro.wav differ diff --git a/sound/vox/i.wav b/sound/vox/i.wav new file mode 100644 index 00000000000..b98a48fd294 Binary files /dev/null and b/sound/vox/i.wav differ diff --git a/sound/vox/idiot.wav b/sound/vox/idiot.wav new file mode 100644 index 00000000000..8c19f9d7a42 Binary files /dev/null and b/sound/vox/idiot.wav differ diff --git a/sound/vox/illegal.wav b/sound/vox/illegal.wav new file mode 100644 index 00000000000..6087e6ba7d2 Binary files /dev/null and b/sound/vox/illegal.wav differ diff --git a/sound/vox/immediate.wav b/sound/vox/immediate.wav new file mode 100644 index 00000000000..19fab3c842d Binary files /dev/null and b/sound/vox/immediate.wav differ diff --git a/sound/vox/immediately.wav b/sound/vox/immediately.wav new file mode 100644 index 00000000000..f2716edf0e0 Binary files /dev/null and b/sound/vox/immediately.wav differ diff --git a/sound/vox/in.wav b/sound/vox/in.wav new file mode 100644 index 00000000000..e15bb9a6d5b Binary files /dev/null and b/sound/vox/in.wav differ diff --git a/sound/vox/inches.wav b/sound/vox/inches.wav new file mode 100644 index 00000000000..fc8e89ce7b9 Binary files /dev/null and b/sound/vox/inches.wav differ diff --git a/sound/vox/india.wav b/sound/vox/india.wav new file mode 100644 index 00000000000..991f9af5e02 Binary files /dev/null and b/sound/vox/india.wav differ diff --git a/sound/vox/ing.wav b/sound/vox/ing.wav new file mode 100644 index 00000000000..0728905c349 Binary files /dev/null and b/sound/vox/ing.wav differ diff --git a/sound/vox/inoperative.wav b/sound/vox/inoperative.wav new file mode 100644 index 00000000000..6822cc5fc37 Binary files /dev/null and b/sound/vox/inoperative.wav differ diff --git a/sound/vox/inside.wav b/sound/vox/inside.wav new file mode 100644 index 00000000000..03cb903c24a Binary files /dev/null and b/sound/vox/inside.wav differ diff --git a/sound/vox/inspection.wav b/sound/vox/inspection.wav new file mode 100644 index 00000000000..3aecb746262 Binary files /dev/null and b/sound/vox/inspection.wav differ diff --git a/sound/vox/inspector.wav b/sound/vox/inspector.wav new file mode 100644 index 00000000000..06a54a36700 Binary files /dev/null and b/sound/vox/inspector.wav differ diff --git a/sound/vox/interchange.wav b/sound/vox/interchange.wav new file mode 100644 index 00000000000..c7814162b42 Binary files /dev/null and b/sound/vox/interchange.wav differ diff --git a/sound/vox/intruder.wav b/sound/vox/intruder.wav new file mode 100644 index 00000000000..a32958f0be6 Binary files /dev/null and b/sound/vox/intruder.wav differ diff --git a/sound/vox/invallid.wav b/sound/vox/invallid.wav new file mode 100644 index 00000000000..fbf3b4e5245 Binary files /dev/null and b/sound/vox/invallid.wav differ diff --git a/sound/vox/invasion.wav b/sound/vox/invasion.wav new file mode 100644 index 00000000000..0024f331d4b Binary files /dev/null and b/sound/vox/invasion.wav differ diff --git a/sound/vox/is.wav b/sound/vox/is.wav new file mode 100644 index 00000000000..0eecb1a7b7a Binary files /dev/null and b/sound/vox/is.wav differ diff --git a/sound/vox/it.wav b/sound/vox/it.wav new file mode 100644 index 00000000000..1e96daf6bba Binary files /dev/null and b/sound/vox/it.wav differ diff --git a/sound/vox/johnson.wav b/sound/vox/johnson.wav new file mode 100644 index 00000000000..1cef742cf67 Binary files /dev/null and b/sound/vox/johnson.wav differ diff --git a/sound/vox/juliet.wav b/sound/vox/juliet.wav new file mode 100644 index 00000000000..88a78517ca8 Binary files /dev/null and b/sound/vox/juliet.wav differ diff --git a/sound/vox/key.wav b/sound/vox/key.wav new file mode 100644 index 00000000000..ba42b393db3 Binary files /dev/null and b/sound/vox/key.wav differ diff --git a/sound/vox/kill.wav b/sound/vox/kill.wav new file mode 100644 index 00000000000..9ae66ac5f6d Binary files /dev/null and b/sound/vox/kill.wav differ diff --git a/sound/vox/kilo.wav b/sound/vox/kilo.wav new file mode 100644 index 00000000000..e30904cafbe Binary files /dev/null and b/sound/vox/kilo.wav differ diff --git a/sound/vox/kit.wav b/sound/vox/kit.wav new file mode 100644 index 00000000000..b6cf53a5477 Binary files /dev/null and b/sound/vox/kit.wav differ diff --git a/sound/vox/lab.wav b/sound/vox/lab.wav new file mode 100644 index 00000000000..8b2518fe570 Binary files /dev/null and b/sound/vox/lab.wav differ diff --git a/sound/vox/lambda.wav b/sound/vox/lambda.wav new file mode 100644 index 00000000000..a238ac9d964 Binary files /dev/null and b/sound/vox/lambda.wav differ diff --git a/sound/vox/laser.wav b/sound/vox/laser.wav new file mode 100644 index 00000000000..7617aa65d7a Binary files /dev/null and b/sound/vox/laser.wav differ diff --git a/sound/vox/last.wav b/sound/vox/last.wav new file mode 100644 index 00000000000..458d13af62c Binary files /dev/null and b/sound/vox/last.wav differ diff --git a/sound/vox/launch.wav b/sound/vox/launch.wav new file mode 100644 index 00000000000..66fd2224cee Binary files /dev/null and b/sound/vox/launch.wav differ diff --git a/sound/vox/leak.wav b/sound/vox/leak.wav new file mode 100644 index 00000000000..0ec0fc786d9 Binary files /dev/null and b/sound/vox/leak.wav differ diff --git a/sound/vox/leave.wav b/sound/vox/leave.wav new file mode 100644 index 00000000000..ce45698813a Binary files /dev/null and b/sound/vox/leave.wav differ diff --git a/sound/vox/left.wav b/sound/vox/left.wav new file mode 100644 index 00000000000..2621d07fbdb Binary files /dev/null and b/sound/vox/left.wav differ diff --git a/sound/vox/legal.wav b/sound/vox/legal.wav new file mode 100644 index 00000000000..928033759d2 Binary files /dev/null and b/sound/vox/legal.wav differ diff --git a/sound/vox/level.wav b/sound/vox/level.wav new file mode 100644 index 00000000000..1f01010dd01 Binary files /dev/null and b/sound/vox/level.wav differ diff --git a/sound/vox/lever.wav b/sound/vox/lever.wav new file mode 100644 index 00000000000..a863fdc77a0 Binary files /dev/null and b/sound/vox/lever.wav differ diff --git a/sound/vox/lie.wav b/sound/vox/lie.wav new file mode 100644 index 00000000000..01b8749a0c8 Binary files /dev/null and b/sound/vox/lie.wav differ diff --git a/sound/vox/lieutenant.wav b/sound/vox/lieutenant.wav new file mode 100644 index 00000000000..f749f2782a5 Binary files /dev/null and b/sound/vox/lieutenant.wav differ diff --git a/sound/vox/life.wav b/sound/vox/life.wav new file mode 100644 index 00000000000..fd739b4593d Binary files /dev/null and b/sound/vox/life.wav differ diff --git a/sound/vox/light.wav b/sound/vox/light.wav new file mode 100644 index 00000000000..69be0499552 Binary files /dev/null and b/sound/vox/light.wav differ diff --git a/sound/vox/lima.wav b/sound/vox/lima.wav new file mode 100644 index 00000000000..d0cf4d05812 Binary files /dev/null and b/sound/vox/lima.wav differ diff --git a/sound/vox/liquid.wav b/sound/vox/liquid.wav new file mode 100644 index 00000000000..9f77a868e7f Binary files /dev/null and b/sound/vox/liquid.wav differ diff --git a/sound/vox/loading.wav b/sound/vox/loading.wav new file mode 100644 index 00000000000..f5404ef81b8 Binary files /dev/null and b/sound/vox/loading.wav differ diff --git a/sound/vox/locate.wav b/sound/vox/locate.wav new file mode 100644 index 00000000000..6b605a8d2df Binary files /dev/null and b/sound/vox/locate.wav differ diff --git a/sound/vox/located.wav b/sound/vox/located.wav new file mode 100644 index 00000000000..19fb575525d Binary files /dev/null and b/sound/vox/located.wav differ diff --git a/sound/vox/location.wav b/sound/vox/location.wav new file mode 100644 index 00000000000..149b0ec0270 Binary files /dev/null and b/sound/vox/location.wav differ diff --git a/sound/vox/lock.wav b/sound/vox/lock.wav new file mode 100644 index 00000000000..a62efba6b9b Binary files /dev/null and b/sound/vox/lock.wav differ diff --git a/sound/vox/locked.wav b/sound/vox/locked.wav new file mode 100644 index 00000000000..8d197f25023 Binary files /dev/null and b/sound/vox/locked.wav differ diff --git a/sound/vox/locker.wav b/sound/vox/locker.wav new file mode 100644 index 00000000000..e6f9dfe2993 Binary files /dev/null and b/sound/vox/locker.wav differ diff --git a/sound/vox/lockout.wav b/sound/vox/lockout.wav new file mode 100644 index 00000000000..b2cd0fb64d3 Binary files /dev/null and b/sound/vox/lockout.wav differ diff --git a/sound/vox/lower.wav b/sound/vox/lower.wav new file mode 100644 index 00000000000..a654c1d4249 Binary files /dev/null and b/sound/vox/lower.wav differ diff --git a/sound/vox/lowest.wav b/sound/vox/lowest.wav new file mode 100644 index 00000000000..63fdaf93f03 Binary files /dev/null and b/sound/vox/lowest.wav differ diff --git a/sound/vox/magnetic.wav b/sound/vox/magnetic.wav new file mode 100644 index 00000000000..68deeeae9cd Binary files /dev/null and b/sound/vox/magnetic.wav differ diff --git a/sound/vox/main.wav b/sound/vox/main.wav new file mode 100644 index 00000000000..46572749123 Binary files /dev/null and b/sound/vox/main.wav differ diff --git a/sound/vox/maintenance.wav b/sound/vox/maintenance.wav new file mode 100644 index 00000000000..ebca04c9d6d Binary files /dev/null and b/sound/vox/maintenance.wav differ diff --git a/sound/vox/malfunction.wav b/sound/vox/malfunction.wav new file mode 100644 index 00000000000..51d999b41fb Binary files /dev/null and b/sound/vox/malfunction.wav differ diff --git a/sound/vox/man.wav b/sound/vox/man.wav new file mode 100644 index 00000000000..64525a4f23d Binary files /dev/null and b/sound/vox/man.wav differ diff --git a/sound/vox/mass.wav b/sound/vox/mass.wav new file mode 100644 index 00000000000..c7825984aa0 Binary files /dev/null and b/sound/vox/mass.wav differ diff --git a/sound/vox/materials.wav b/sound/vox/materials.wav new file mode 100644 index 00000000000..c983ae71a87 Binary files /dev/null and b/sound/vox/materials.wav differ diff --git a/sound/vox/maximum.wav b/sound/vox/maximum.wav new file mode 100644 index 00000000000..f1dbc8062d6 Binary files /dev/null and b/sound/vox/maximum.wav differ diff --git a/sound/vox/may.wav b/sound/vox/may.wav new file mode 100644 index 00000000000..a2387387030 Binary files /dev/null and b/sound/vox/may.wav differ diff --git a/sound/vox/medical.wav b/sound/vox/medical.wav new file mode 100644 index 00000000000..ece7f0c4c5f Binary files /dev/null and b/sound/vox/medical.wav differ diff --git a/sound/vox/men.wav b/sound/vox/men.wav new file mode 100644 index 00000000000..594523da0ae Binary files /dev/null and b/sound/vox/men.wav differ diff --git a/sound/vox/mercy.wav b/sound/vox/mercy.wav new file mode 100644 index 00000000000..8416b25dae4 Binary files /dev/null and b/sound/vox/mercy.wav differ diff --git a/sound/vox/mesa.wav b/sound/vox/mesa.wav new file mode 100644 index 00000000000..fcb1d9843c0 Binary files /dev/null and b/sound/vox/mesa.wav differ diff --git a/sound/vox/message.wav b/sound/vox/message.wav new file mode 100644 index 00000000000..b0b769db726 Binary files /dev/null and b/sound/vox/message.wav differ diff --git a/sound/vox/meter.wav b/sound/vox/meter.wav new file mode 100644 index 00000000000..ca063bddad7 Binary files /dev/null and b/sound/vox/meter.wav differ diff --git a/sound/vox/micro.wav b/sound/vox/micro.wav new file mode 100644 index 00000000000..7869b97cecb Binary files /dev/null and b/sound/vox/micro.wav differ diff --git a/sound/vox/middle.wav b/sound/vox/middle.wav new file mode 100644 index 00000000000..b58a5878a9c Binary files /dev/null and b/sound/vox/middle.wav differ diff --git a/sound/vox/mike.wav b/sound/vox/mike.wav new file mode 100644 index 00000000000..a008bdefed9 Binary files /dev/null and b/sound/vox/mike.wav differ diff --git a/sound/vox/miles.wav b/sound/vox/miles.wav new file mode 100644 index 00000000000..9b04a790ea4 Binary files /dev/null and b/sound/vox/miles.wav differ diff --git a/sound/vox/military.wav b/sound/vox/military.wav new file mode 100644 index 00000000000..8387dc3b6c8 Binary files /dev/null and b/sound/vox/military.wav differ diff --git a/sound/vox/milli.wav b/sound/vox/milli.wav new file mode 100644 index 00000000000..cc0b3e4c97e Binary files /dev/null and b/sound/vox/milli.wav differ diff --git a/sound/vox/million.wav b/sound/vox/million.wav new file mode 100644 index 00000000000..6409eb0760a Binary files /dev/null and b/sound/vox/million.wav differ diff --git a/sound/vox/minefield.wav b/sound/vox/minefield.wav new file mode 100644 index 00000000000..2af1c213671 Binary files /dev/null and b/sound/vox/minefield.wav differ diff --git a/sound/vox/minimum.wav b/sound/vox/minimum.wav new file mode 100644 index 00000000000..ee184ce4fcb Binary files /dev/null and b/sound/vox/minimum.wav differ diff --git a/sound/vox/minutes.wav b/sound/vox/minutes.wav new file mode 100644 index 00000000000..2e9fb914edd Binary files /dev/null and b/sound/vox/minutes.wav differ diff --git a/sound/vox/mister.wav b/sound/vox/mister.wav new file mode 100644 index 00000000000..27507cfb09c Binary files /dev/null and b/sound/vox/mister.wav differ diff --git a/sound/vox/mode.wav b/sound/vox/mode.wav new file mode 100644 index 00000000000..e1060e9661b Binary files /dev/null and b/sound/vox/mode.wav differ diff --git a/sound/vox/motor.wav b/sound/vox/motor.wav new file mode 100644 index 00000000000..7d1dbaeba46 Binary files /dev/null and b/sound/vox/motor.wav differ diff --git a/sound/vox/motorpool.wav b/sound/vox/motorpool.wav new file mode 100644 index 00000000000..ae5a6af0d6f Binary files /dev/null and b/sound/vox/motorpool.wav differ diff --git a/sound/vox/move.wav b/sound/vox/move.wav new file mode 100644 index 00000000000..1bc2172297f Binary files /dev/null and b/sound/vox/move.wav differ diff --git a/sound/vox/must.wav b/sound/vox/must.wav new file mode 100644 index 00000000000..3e6e965bec1 Binary files /dev/null and b/sound/vox/must.wav differ diff --git a/sound/vox/nearest.wav b/sound/vox/nearest.wav new file mode 100644 index 00000000000..3f84ee72413 Binary files /dev/null and b/sound/vox/nearest.wav differ diff --git a/sound/vox/nice.wav b/sound/vox/nice.wav new file mode 100644 index 00000000000..8bd140649f6 Binary files /dev/null and b/sound/vox/nice.wav differ diff --git a/sound/vox/nine.wav b/sound/vox/nine.wav new file mode 100644 index 00000000000..b85745edf9c Binary files /dev/null and b/sound/vox/nine.wav differ diff --git a/sound/vox/nineteen.wav b/sound/vox/nineteen.wav new file mode 100644 index 00000000000..c6da48310b2 Binary files /dev/null and b/sound/vox/nineteen.wav differ diff --git a/sound/vox/ninety.wav b/sound/vox/ninety.wav new file mode 100644 index 00000000000..74e2e02d412 Binary files /dev/null and b/sound/vox/ninety.wav differ diff --git a/sound/vox/no.wav b/sound/vox/no.wav new file mode 100644 index 00000000000..ced1b6617cf Binary files /dev/null and b/sound/vox/no.wav differ diff --git a/sound/vox/nominal.wav b/sound/vox/nominal.wav new file mode 100644 index 00000000000..f0656302d1d Binary files /dev/null and b/sound/vox/nominal.wav differ diff --git a/sound/vox/north.wav b/sound/vox/north.wav new file mode 100644 index 00000000000..4867fdc7bc5 Binary files /dev/null and b/sound/vox/north.wav differ diff --git a/sound/vox/not.wav b/sound/vox/not.wav new file mode 100644 index 00000000000..626cd177744 Binary files /dev/null and b/sound/vox/not.wav differ diff --git a/sound/vox/november.wav b/sound/vox/november.wav new file mode 100644 index 00000000000..212efe5f9a6 Binary files /dev/null and b/sound/vox/november.wav differ diff --git a/sound/vox/now.wav b/sound/vox/now.wav new file mode 100644 index 00000000000..0619087d594 Binary files /dev/null and b/sound/vox/now.wav differ diff --git a/sound/vox/number.wav b/sound/vox/number.wav new file mode 100644 index 00000000000..cfec10a75e6 Binary files /dev/null and b/sound/vox/number.wav differ diff --git a/sound/vox/objective.wav b/sound/vox/objective.wav new file mode 100644 index 00000000000..14ea571aa68 Binary files /dev/null and b/sound/vox/objective.wav differ diff --git a/sound/vox/observation.wav b/sound/vox/observation.wav new file mode 100644 index 00000000000..9141789671a Binary files /dev/null and b/sound/vox/observation.wav differ diff --git a/sound/vox/of.wav b/sound/vox/of.wav new file mode 100644 index 00000000000..7cf5427dfb1 Binary files /dev/null and b/sound/vox/of.wav differ diff --git a/sound/vox/officer.wav b/sound/vox/officer.wav new file mode 100644 index 00000000000..9017915aef2 Binary files /dev/null and b/sound/vox/officer.wav differ diff --git a/sound/vox/ok.wav b/sound/vox/ok.wav new file mode 100644 index 00000000000..66011aed6d4 Binary files /dev/null and b/sound/vox/ok.wav differ diff --git a/sound/vox/on.wav b/sound/vox/on.wav new file mode 100644 index 00000000000..2b97a1fd46a Binary files /dev/null and b/sound/vox/on.wav differ diff --git a/sound/vox/one.wav b/sound/vox/one.wav new file mode 100644 index 00000000000..57f2b3f14de Binary files /dev/null and b/sound/vox/one.wav differ diff --git a/sound/vox/open.wav b/sound/vox/open.wav new file mode 100644 index 00000000000..be98260bb92 Binary files /dev/null and b/sound/vox/open.wav differ diff --git a/sound/vox/operating.wav b/sound/vox/operating.wav new file mode 100644 index 00000000000..b2180694205 Binary files /dev/null and b/sound/vox/operating.wav differ diff --git a/sound/vox/operations.wav b/sound/vox/operations.wav new file mode 100644 index 00000000000..37c9d75e0eb Binary files /dev/null and b/sound/vox/operations.wav differ diff --git a/sound/vox/operative.wav b/sound/vox/operative.wav new file mode 100644 index 00000000000..70f99029cd2 Binary files /dev/null and b/sound/vox/operative.wav differ diff --git a/sound/vox/option.wav b/sound/vox/option.wav new file mode 100644 index 00000000000..a5199b71de6 Binary files /dev/null and b/sound/vox/option.wav differ diff --git a/sound/vox/order.wav b/sound/vox/order.wav new file mode 100644 index 00000000000..c5a25483401 Binary files /dev/null and b/sound/vox/order.wav differ diff --git a/sound/vox/organic.wav b/sound/vox/organic.wav new file mode 100644 index 00000000000..78dc879d7c0 Binary files /dev/null and b/sound/vox/organic.wav differ diff --git a/sound/vox/oscar.wav b/sound/vox/oscar.wav new file mode 100644 index 00000000000..32db2392d58 Binary files /dev/null and b/sound/vox/oscar.wav differ diff --git a/sound/vox/out.wav b/sound/vox/out.wav new file mode 100644 index 00000000000..4aca4d70705 Binary files /dev/null and b/sound/vox/out.wav differ diff --git a/sound/vox/outside.wav b/sound/vox/outside.wav new file mode 100644 index 00000000000..62993ea5e45 Binary files /dev/null and b/sound/vox/outside.wav differ diff --git a/sound/vox/over.wav b/sound/vox/over.wav new file mode 100644 index 00000000000..8068c74f732 Binary files /dev/null and b/sound/vox/over.wav differ diff --git a/sound/vox/overload.wav b/sound/vox/overload.wav new file mode 100644 index 00000000000..d932cb3dedf Binary files /dev/null and b/sound/vox/overload.wav differ diff --git a/sound/vox/override.wav b/sound/vox/override.wav new file mode 100644 index 00000000000..132667e7eae Binary files /dev/null and b/sound/vox/override.wav differ diff --git a/sound/vox/pacify.wav b/sound/vox/pacify.wav new file mode 100644 index 00000000000..6a596197d75 Binary files /dev/null and b/sound/vox/pacify.wav differ diff --git a/sound/vox/pain.wav b/sound/vox/pain.wav new file mode 100644 index 00000000000..bdb30dded8b Binary files /dev/null and b/sound/vox/pain.wav differ diff --git a/sound/vox/pal.wav b/sound/vox/pal.wav new file mode 100644 index 00000000000..28eb17ce99a Binary files /dev/null and b/sound/vox/pal.wav differ diff --git a/sound/vox/panel.wav b/sound/vox/panel.wav new file mode 100644 index 00000000000..ce1f22fd234 Binary files /dev/null and b/sound/vox/panel.wav differ diff --git a/sound/vox/percent.wav b/sound/vox/percent.wav new file mode 100644 index 00000000000..9e775863ae4 Binary files /dev/null and b/sound/vox/percent.wav differ diff --git a/sound/vox/perimeter.wav b/sound/vox/perimeter.wav new file mode 100644 index 00000000000..91a8d95d910 Binary files /dev/null and b/sound/vox/perimeter.wav differ diff --git a/sound/vox/permitted.wav b/sound/vox/permitted.wav new file mode 100644 index 00000000000..015d10eaa87 Binary files /dev/null and b/sound/vox/permitted.wav differ diff --git a/sound/vox/personnel.wav b/sound/vox/personnel.wav new file mode 100644 index 00000000000..665a3215c9c Binary files /dev/null and b/sound/vox/personnel.wav differ diff --git a/sound/vox/pipe.wav b/sound/vox/pipe.wav new file mode 100644 index 00000000000..53abe7db8bb Binary files /dev/null and b/sound/vox/pipe.wav differ diff --git a/sound/vox/plant.wav b/sound/vox/plant.wav new file mode 100644 index 00000000000..8fc84c60ac4 Binary files /dev/null and b/sound/vox/plant.wav differ diff --git a/sound/vox/platform.wav b/sound/vox/platform.wav new file mode 100644 index 00000000000..72ca2c179ff Binary files /dev/null and b/sound/vox/platform.wav differ diff --git a/sound/vox/please.wav b/sound/vox/please.wav new file mode 100644 index 00000000000..4dc346e3e02 Binary files /dev/null and b/sound/vox/please.wav differ diff --git a/sound/vox/point.wav b/sound/vox/point.wav new file mode 100644 index 00000000000..26e4ca508bf Binary files /dev/null and b/sound/vox/point.wav differ diff --git a/sound/vox/portal.wav b/sound/vox/portal.wav new file mode 100644 index 00000000000..2f093e99244 Binary files /dev/null and b/sound/vox/portal.wav differ diff --git a/sound/vox/power.wav b/sound/vox/power.wav new file mode 100644 index 00000000000..3256e3ee995 Binary files /dev/null and b/sound/vox/power.wav differ diff --git a/sound/vox/presence.wav b/sound/vox/presence.wav new file mode 100644 index 00000000000..c7a3b8f1e00 Binary files /dev/null and b/sound/vox/presence.wav differ diff --git a/sound/vox/press.wav b/sound/vox/press.wav new file mode 100644 index 00000000000..138ef0f2eb8 Binary files /dev/null and b/sound/vox/press.wav differ diff --git a/sound/vox/primary.wav b/sound/vox/primary.wav new file mode 100644 index 00000000000..ed107abdd11 Binary files /dev/null and b/sound/vox/primary.wav differ diff --git a/sound/vox/proceed.wav b/sound/vox/proceed.wav new file mode 100644 index 00000000000..ec5ba2f4380 Binary files /dev/null and b/sound/vox/proceed.wav differ diff --git a/sound/vox/processing.wav b/sound/vox/processing.wav new file mode 100644 index 00000000000..3470d8eb07b Binary files /dev/null and b/sound/vox/processing.wav differ diff --git a/sound/vox/progress.wav b/sound/vox/progress.wav new file mode 100644 index 00000000000..ab2ef1914ff Binary files /dev/null and b/sound/vox/progress.wav differ diff --git a/sound/vox/proper.wav b/sound/vox/proper.wav new file mode 100644 index 00000000000..fb799ae0670 Binary files /dev/null and b/sound/vox/proper.wav differ diff --git a/sound/vox/propulsion.wav b/sound/vox/propulsion.wav new file mode 100644 index 00000000000..cc60270a56d Binary files /dev/null and b/sound/vox/propulsion.wav differ diff --git a/sound/vox/prosecute.wav b/sound/vox/prosecute.wav new file mode 100644 index 00000000000..9d76be850b8 Binary files /dev/null and b/sound/vox/prosecute.wav differ diff --git a/sound/vox/protective.wav b/sound/vox/protective.wav new file mode 100644 index 00000000000..be17714e62f Binary files /dev/null and b/sound/vox/protective.wav differ diff --git a/sound/vox/push.wav b/sound/vox/push.wav new file mode 100644 index 00000000000..db91cb1229f Binary files /dev/null and b/sound/vox/push.wav differ diff --git a/sound/vox/quantum.wav b/sound/vox/quantum.wav new file mode 100644 index 00000000000..3e5ee45d7b3 Binary files /dev/null and b/sound/vox/quantum.wav differ diff --git a/sound/vox/quebec.wav b/sound/vox/quebec.wav new file mode 100644 index 00000000000..6323a992cb2 Binary files /dev/null and b/sound/vox/quebec.wav differ diff --git a/sound/vox/question.wav b/sound/vox/question.wav new file mode 100644 index 00000000000..cf6de8dd526 Binary files /dev/null and b/sound/vox/question.wav differ diff --git a/sound/vox/questioning.wav b/sound/vox/questioning.wav new file mode 100644 index 00000000000..51f08488dc9 Binary files /dev/null and b/sound/vox/questioning.wav differ diff --git a/sound/vox/quick.wav b/sound/vox/quick.wav new file mode 100644 index 00000000000..82c6c493d70 Binary files /dev/null and b/sound/vox/quick.wav differ diff --git a/sound/vox/quit.wav b/sound/vox/quit.wav new file mode 100644 index 00000000000..1ee00b87a1c Binary files /dev/null and b/sound/vox/quit.wav differ diff --git a/sound/vox/radiation.wav b/sound/vox/radiation.wav new file mode 100644 index 00000000000..5551f24b44f Binary files /dev/null and b/sound/vox/radiation.wav differ diff --git a/sound/vox/radioactive.wav b/sound/vox/radioactive.wav new file mode 100644 index 00000000000..84b3b4a180e Binary files /dev/null and b/sound/vox/radioactive.wav differ diff --git a/sound/vox/rads.wav b/sound/vox/rads.wav new file mode 100644 index 00000000000..13802ea3020 Binary files /dev/null and b/sound/vox/rads.wav differ diff --git a/sound/vox/rapid.wav b/sound/vox/rapid.wav new file mode 100644 index 00000000000..fdfdd10faa7 Binary files /dev/null and b/sound/vox/rapid.wav differ diff --git a/sound/vox/reach.wav b/sound/vox/reach.wav new file mode 100644 index 00000000000..5b2ec24bd4f Binary files /dev/null and b/sound/vox/reach.wav differ diff --git a/sound/vox/reached.wav b/sound/vox/reached.wav new file mode 100644 index 00000000000..22bd766019d Binary files /dev/null and b/sound/vox/reached.wav differ diff --git a/sound/vox/reactor.wav b/sound/vox/reactor.wav new file mode 100644 index 00000000000..c8fb909be07 Binary files /dev/null and b/sound/vox/reactor.wav differ diff --git a/sound/vox/red.wav b/sound/vox/red.wav new file mode 100644 index 00000000000..777e5466485 Binary files /dev/null and b/sound/vox/red.wav differ diff --git a/sound/vox/relay.wav b/sound/vox/relay.wav new file mode 100644 index 00000000000..bef9fb09272 Binary files /dev/null and b/sound/vox/relay.wav differ diff --git a/sound/vox/released.wav b/sound/vox/released.wav new file mode 100644 index 00000000000..ba56d6d9555 Binary files /dev/null and b/sound/vox/released.wav differ diff --git a/sound/vox/remaining.wav b/sound/vox/remaining.wav new file mode 100644 index 00000000000..0c393ee9d10 Binary files /dev/null and b/sound/vox/remaining.wav differ diff --git a/sound/vox/renegade.wav b/sound/vox/renegade.wav new file mode 100644 index 00000000000..0dc4518edc6 Binary files /dev/null and b/sound/vox/renegade.wav differ diff --git a/sound/vox/repair.wav b/sound/vox/repair.wav new file mode 100644 index 00000000000..be2fe5418e6 Binary files /dev/null and b/sound/vox/repair.wav differ diff --git a/sound/vox/report.wav b/sound/vox/report.wav new file mode 100644 index 00000000000..685c3878945 Binary files /dev/null and b/sound/vox/report.wav differ diff --git a/sound/vox/reports.wav b/sound/vox/reports.wav new file mode 100644 index 00000000000..19e8f0478b3 Binary files /dev/null and b/sound/vox/reports.wav differ diff --git a/sound/vox/required.wav b/sound/vox/required.wav new file mode 100644 index 00000000000..c5bbf850b48 Binary files /dev/null and b/sound/vox/required.wav differ diff --git a/sound/vox/research.wav b/sound/vox/research.wav new file mode 100644 index 00000000000..d7385867da7 Binary files /dev/null and b/sound/vox/research.wav differ diff --git a/sound/vox/resevoir.wav b/sound/vox/resevoir.wav new file mode 100644 index 00000000000..7b67635b929 Binary files /dev/null and b/sound/vox/resevoir.wav differ diff --git a/sound/vox/resistance.wav b/sound/vox/resistance.wav new file mode 100644 index 00000000000..1f3f90b0f92 Binary files /dev/null and b/sound/vox/resistance.wav differ diff --git a/sound/vox/right.wav b/sound/vox/right.wav new file mode 100644 index 00000000000..0c920c843db Binary files /dev/null and b/sound/vox/right.wav differ diff --git a/sound/vox/rocket.wav b/sound/vox/rocket.wav new file mode 100644 index 00000000000..57d7e6a8e07 Binary files /dev/null and b/sound/vox/rocket.wav differ diff --git a/sound/vox/roger.wav b/sound/vox/roger.wav new file mode 100644 index 00000000000..426014be23b Binary files /dev/null and b/sound/vox/roger.wav differ diff --git a/sound/vox/romeo.wav b/sound/vox/romeo.wav new file mode 100644 index 00000000000..42590922e46 Binary files /dev/null and b/sound/vox/romeo.wav differ diff --git a/sound/vox/room.wav b/sound/vox/room.wav new file mode 100644 index 00000000000..da12c55feab Binary files /dev/null and b/sound/vox/room.wav differ diff --git a/sound/vox/round.wav b/sound/vox/round.wav new file mode 100644 index 00000000000..76d30382eb3 Binary files /dev/null and b/sound/vox/round.wav differ diff --git a/sound/vox/run.wav b/sound/vox/run.wav new file mode 100644 index 00000000000..f2baec69b1b Binary files /dev/null and b/sound/vox/run.wav differ diff --git a/sound/vox/safe.wav b/sound/vox/safe.wav new file mode 100644 index 00000000000..65d52fbcdcd Binary files /dev/null and b/sound/vox/safe.wav differ diff --git a/sound/vox/safety.wav b/sound/vox/safety.wav new file mode 100644 index 00000000000..b24e8951b20 Binary files /dev/null and b/sound/vox/safety.wav differ diff --git a/sound/vox/sargeant.wav b/sound/vox/sargeant.wav new file mode 100644 index 00000000000..e26c6a301e0 Binary files /dev/null and b/sound/vox/sargeant.wav differ diff --git a/sound/vox/satellite.wav b/sound/vox/satellite.wav new file mode 100644 index 00000000000..45187b819b0 Binary files /dev/null and b/sound/vox/satellite.wav differ diff --git a/sound/vox/save.wav b/sound/vox/save.wav new file mode 100644 index 00000000000..db09e275396 Binary files /dev/null and b/sound/vox/save.wav differ diff --git a/sound/vox/science.wav b/sound/vox/science.wav new file mode 100644 index 00000000000..cb1f2d7236d Binary files /dev/null and b/sound/vox/science.wav differ diff --git a/sound/vox/scream.wav b/sound/vox/scream.wav new file mode 100644 index 00000000000..66afd0983d7 Binary files /dev/null and b/sound/vox/scream.wav differ diff --git a/sound/vox/screen.wav b/sound/vox/screen.wav new file mode 100644 index 00000000000..bb375266bb7 Binary files /dev/null and b/sound/vox/screen.wav differ diff --git a/sound/vox/search.wav b/sound/vox/search.wav new file mode 100644 index 00000000000..023072d9897 Binary files /dev/null and b/sound/vox/search.wav differ diff --git a/sound/vox/second.wav b/sound/vox/second.wav new file mode 100644 index 00000000000..dbed0caa0ae Binary files /dev/null and b/sound/vox/second.wav differ diff --git a/sound/vox/secondary.wav b/sound/vox/secondary.wav new file mode 100644 index 00000000000..af29ac286ce Binary files /dev/null and b/sound/vox/secondary.wav differ diff --git a/sound/vox/seconds.wav b/sound/vox/seconds.wav new file mode 100644 index 00000000000..a631ea1db04 Binary files /dev/null and b/sound/vox/seconds.wav differ diff --git a/sound/vox/sector.wav b/sound/vox/sector.wav new file mode 100644 index 00000000000..2318ccf631a Binary files /dev/null and b/sound/vox/sector.wav differ diff --git a/sound/vox/secure.wav b/sound/vox/secure.wav new file mode 100644 index 00000000000..17fe6225ff5 Binary files /dev/null and b/sound/vox/secure.wav differ diff --git a/sound/vox/secured.wav b/sound/vox/secured.wav new file mode 100644 index 00000000000..8007a48c0d9 Binary files /dev/null and b/sound/vox/secured.wav differ diff --git a/sound/vox/security.wav b/sound/vox/security.wav new file mode 100644 index 00000000000..16435fdf515 Binary files /dev/null and b/sound/vox/security.wav differ diff --git a/sound/vox/select.wav b/sound/vox/select.wav new file mode 100644 index 00000000000..9b89d52bb0c Binary files /dev/null and b/sound/vox/select.wav differ diff --git a/sound/vox/selected.wav b/sound/vox/selected.wav new file mode 100644 index 00000000000..d4124f579a1 Binary files /dev/null and b/sound/vox/selected.wav differ diff --git a/sound/vox/service.wav b/sound/vox/service.wav new file mode 100644 index 00000000000..3f6957d2e00 Binary files /dev/null and b/sound/vox/service.wav differ diff --git a/sound/vox/seven.wav b/sound/vox/seven.wav new file mode 100644 index 00000000000..eca99c196a0 Binary files /dev/null and b/sound/vox/seven.wav differ diff --git a/sound/vox/seventeen.wav b/sound/vox/seventeen.wav new file mode 100644 index 00000000000..9526b8a4e3c Binary files /dev/null and b/sound/vox/seventeen.wav differ diff --git a/sound/vox/seventy.wav b/sound/vox/seventy.wav new file mode 100644 index 00000000000..1b45ce6afe3 Binary files /dev/null and b/sound/vox/seventy.wav differ diff --git a/sound/vox/severe.wav b/sound/vox/severe.wav new file mode 100644 index 00000000000..fed84eea850 Binary files /dev/null and b/sound/vox/severe.wav differ diff --git a/sound/vox/sewage.wav b/sound/vox/sewage.wav new file mode 100644 index 00000000000..60978963e2c Binary files /dev/null and b/sound/vox/sewage.wav differ diff --git a/sound/vox/sewer.wav b/sound/vox/sewer.wav new file mode 100644 index 00000000000..5071a1d64a8 Binary files /dev/null and b/sound/vox/sewer.wav differ diff --git a/sound/vox/shield.wav b/sound/vox/shield.wav new file mode 100644 index 00000000000..0ab01e0a6a5 Binary files /dev/null and b/sound/vox/shield.wav differ diff --git a/sound/vox/shipment.wav b/sound/vox/shipment.wav new file mode 100644 index 00000000000..9b9014c51df Binary files /dev/null and b/sound/vox/shipment.wav differ diff --git a/sound/vox/shock.wav b/sound/vox/shock.wav new file mode 100644 index 00000000000..d4451bdf3c4 Binary files /dev/null and b/sound/vox/shock.wav differ diff --git a/sound/vox/shoot.wav b/sound/vox/shoot.wav new file mode 100644 index 00000000000..5661ceb9c9b Binary files /dev/null and b/sound/vox/shoot.wav differ diff --git a/sound/vox/shower.wav b/sound/vox/shower.wav new file mode 100644 index 00000000000..c32a9e42e08 Binary files /dev/null and b/sound/vox/shower.wav differ diff --git a/sound/vox/shut.wav b/sound/vox/shut.wav new file mode 100644 index 00000000000..6f68340502d Binary files /dev/null and b/sound/vox/shut.wav differ diff --git a/sound/vox/side.wav b/sound/vox/side.wav new file mode 100644 index 00000000000..4f4091a4e53 Binary files /dev/null and b/sound/vox/side.wav differ diff --git a/sound/vox/sierra.wav b/sound/vox/sierra.wav new file mode 100644 index 00000000000..0e52a6ec56a Binary files /dev/null and b/sound/vox/sierra.wav differ diff --git a/sound/vox/sight.wav b/sound/vox/sight.wav new file mode 100644 index 00000000000..5d479cab759 Binary files /dev/null and b/sound/vox/sight.wav differ diff --git a/sound/vox/silo.wav b/sound/vox/silo.wav new file mode 100644 index 00000000000..daf9f28be1e Binary files /dev/null and b/sound/vox/silo.wav differ diff --git a/sound/vox/six.wav b/sound/vox/six.wav new file mode 100644 index 00000000000..aa6bb638e34 Binary files /dev/null and b/sound/vox/six.wav differ diff --git a/sound/vox/sixteen.wav b/sound/vox/sixteen.wav new file mode 100644 index 00000000000..6f2db2ad9d4 Binary files /dev/null and b/sound/vox/sixteen.wav differ diff --git a/sound/vox/sixty.wav b/sound/vox/sixty.wav new file mode 100644 index 00000000000..19610c7f796 Binary files /dev/null and b/sound/vox/sixty.wav differ diff --git a/sound/vox/slime.wav b/sound/vox/slime.wav new file mode 100644 index 00000000000..4d1d3cf6a4d Binary files /dev/null and b/sound/vox/slime.wav differ diff --git a/sound/vox/slow.wav b/sound/vox/slow.wav new file mode 100644 index 00000000000..75101b7de4e Binary files /dev/null and b/sound/vox/slow.wav differ diff --git a/sound/vox/soldier.wav b/sound/vox/soldier.wav new file mode 100644 index 00000000000..c84ce201788 Binary files /dev/null and b/sound/vox/soldier.wav differ diff --git a/sound/vox/some.wav b/sound/vox/some.wav new file mode 100644 index 00000000000..c4ba34efff8 Binary files /dev/null and b/sound/vox/some.wav differ diff --git a/sound/vox/someone.wav b/sound/vox/someone.wav new file mode 100644 index 00000000000..6f6183e1f7d Binary files /dev/null and b/sound/vox/someone.wav differ diff --git a/sound/vox/something.wav b/sound/vox/something.wav new file mode 100644 index 00000000000..46011400955 Binary files /dev/null and b/sound/vox/something.wav differ diff --git a/sound/vox/son.wav b/sound/vox/son.wav new file mode 100644 index 00000000000..f23495127e6 Binary files /dev/null and b/sound/vox/son.wav differ diff --git a/sound/vox/sorry.wav b/sound/vox/sorry.wav new file mode 100644 index 00000000000..4c0725b938d Binary files /dev/null and b/sound/vox/sorry.wav differ diff --git a/sound/vox/south.wav b/sound/vox/south.wav new file mode 100644 index 00000000000..3a5ba004105 Binary files /dev/null and b/sound/vox/south.wav differ diff --git a/sound/vox/squad.wav b/sound/vox/squad.wav new file mode 100644 index 00000000000..71739d14980 Binary files /dev/null and b/sound/vox/squad.wav differ diff --git a/sound/vox/square.wav b/sound/vox/square.wav new file mode 100644 index 00000000000..f08f73a5f4b Binary files /dev/null and b/sound/vox/square.wav differ diff --git a/sound/vox/stairway.wav b/sound/vox/stairway.wav new file mode 100644 index 00000000000..ab84571c82b Binary files /dev/null and b/sound/vox/stairway.wav differ diff --git a/sound/vox/status.wav b/sound/vox/status.wav new file mode 100644 index 00000000000..42fe8b7822d Binary files /dev/null and b/sound/vox/status.wav differ diff --git a/sound/vox/sterile.wav b/sound/vox/sterile.wav new file mode 100644 index 00000000000..d95753222b9 Binary files /dev/null and b/sound/vox/sterile.wav differ diff --git a/sound/vox/sterilization.wav b/sound/vox/sterilization.wav new file mode 100644 index 00000000000..f53240310cf Binary files /dev/null and b/sound/vox/sterilization.wav differ diff --git a/sound/vox/storage.wav b/sound/vox/storage.wav new file mode 100644 index 00000000000..18954a4f79d Binary files /dev/null and b/sound/vox/storage.wav differ diff --git a/sound/vox/sub.wav b/sound/vox/sub.wav new file mode 100644 index 00000000000..d25510d3c07 Binary files /dev/null and b/sound/vox/sub.wav differ diff --git a/sound/vox/subsurface.wav b/sound/vox/subsurface.wav new file mode 100644 index 00000000000..cb19be3a883 Binary files /dev/null and b/sound/vox/subsurface.wav differ diff --git a/sound/vox/sudden.wav b/sound/vox/sudden.wav new file mode 100644 index 00000000000..b5eb4088ac9 Binary files /dev/null and b/sound/vox/sudden.wav differ diff --git a/sound/vox/suit.wav b/sound/vox/suit.wav new file mode 100644 index 00000000000..d099c958439 Binary files /dev/null and b/sound/vox/suit.wav differ diff --git a/sound/vox/superconducting.wav b/sound/vox/superconducting.wav new file mode 100644 index 00000000000..ad4fcc8f9d7 Binary files /dev/null and b/sound/vox/superconducting.wav differ diff --git a/sound/vox/supercooled.wav b/sound/vox/supercooled.wav new file mode 100644 index 00000000000..936562ed4f4 Binary files /dev/null and b/sound/vox/supercooled.wav differ diff --git a/sound/vox/supply.wav b/sound/vox/supply.wav new file mode 100644 index 00000000000..4b33c8e9b7b Binary files /dev/null and b/sound/vox/supply.wav differ diff --git a/sound/vox/surface.wav b/sound/vox/surface.wav new file mode 100644 index 00000000000..0b02d732a9c Binary files /dev/null and b/sound/vox/surface.wav differ diff --git a/sound/vox/surrender.wav b/sound/vox/surrender.wav new file mode 100644 index 00000000000..f0a17b395ae Binary files /dev/null and b/sound/vox/surrender.wav differ diff --git a/sound/vox/surround.wav b/sound/vox/surround.wav new file mode 100644 index 00000000000..c9afd86f9cb Binary files /dev/null and b/sound/vox/surround.wav differ diff --git a/sound/vox/surrounded.wav b/sound/vox/surrounded.wav new file mode 100644 index 00000000000..3cbf5134811 Binary files /dev/null and b/sound/vox/surrounded.wav differ diff --git a/sound/vox/switch.wav b/sound/vox/switch.wav new file mode 100644 index 00000000000..f5ffcc7a6b3 Binary files /dev/null and b/sound/vox/switch.wav differ diff --git a/sound/vox/system.wav b/sound/vox/system.wav new file mode 100644 index 00000000000..078727a081b Binary files /dev/null and b/sound/vox/system.wav differ diff --git a/sound/vox/systems.wav b/sound/vox/systems.wav new file mode 100644 index 00000000000..c8802508301 Binary files /dev/null and b/sound/vox/systems.wav differ diff --git a/sound/vox/tactical.wav b/sound/vox/tactical.wav new file mode 100644 index 00000000000..6b1aca650be Binary files /dev/null and b/sound/vox/tactical.wav differ diff --git a/sound/vox/take.wav b/sound/vox/take.wav new file mode 100644 index 00000000000..70644f52205 Binary files /dev/null and b/sound/vox/take.wav differ diff --git a/sound/vox/talk.wav b/sound/vox/talk.wav new file mode 100644 index 00000000000..3ff83c48c93 Binary files /dev/null and b/sound/vox/talk.wav differ diff --git a/sound/vox/tango.wav b/sound/vox/tango.wav new file mode 100644 index 00000000000..37b6f4fe198 Binary files /dev/null and b/sound/vox/tango.wav differ diff --git a/sound/vox/tank.wav b/sound/vox/tank.wav new file mode 100644 index 00000000000..9608b0d7492 Binary files /dev/null and b/sound/vox/tank.wav differ diff --git a/sound/vox/target.wav b/sound/vox/target.wav new file mode 100644 index 00000000000..bd004147bf6 Binary files /dev/null and b/sound/vox/target.wav differ diff --git a/sound/vox/team.wav b/sound/vox/team.wav new file mode 100644 index 00000000000..d0e47d4e101 Binary files /dev/null and b/sound/vox/team.wav differ diff --git a/sound/vox/temperature.wav b/sound/vox/temperature.wav new file mode 100644 index 00000000000..e9b51dada78 Binary files /dev/null and b/sound/vox/temperature.wav differ diff --git a/sound/vox/temporal.wav b/sound/vox/temporal.wav new file mode 100644 index 00000000000..d0398a0f8ce Binary files /dev/null and b/sound/vox/temporal.wav differ diff --git a/sound/vox/ten.wav b/sound/vox/ten.wav new file mode 100644 index 00000000000..fd0f353f6bb Binary files /dev/null and b/sound/vox/ten.wav differ diff --git a/sound/vox/terminal.wav b/sound/vox/terminal.wav new file mode 100644 index 00000000000..5ffe39101e4 Binary files /dev/null and b/sound/vox/terminal.wav differ diff --git a/sound/vox/terminated.wav b/sound/vox/terminated.wav new file mode 100644 index 00000000000..1c972f092c1 Binary files /dev/null and b/sound/vox/terminated.wav differ diff --git a/sound/vox/termination.wav b/sound/vox/termination.wav new file mode 100644 index 00000000000..f093cd31a11 Binary files /dev/null and b/sound/vox/termination.wav differ diff --git a/sound/vox/test.wav b/sound/vox/test.wav new file mode 100644 index 00000000000..f7c9b461fc4 Binary files /dev/null and b/sound/vox/test.wav differ diff --git a/sound/vox/that.wav b/sound/vox/that.wav new file mode 100644 index 00000000000..f9e8c928735 Binary files /dev/null and b/sound/vox/that.wav differ diff --git a/sound/vox/the.wav b/sound/vox/the.wav new file mode 100644 index 00000000000..3a07ea3be81 Binary files /dev/null and b/sound/vox/the.wav differ diff --git a/sound/vox/then.wav b/sound/vox/then.wav new file mode 100644 index 00000000000..1c2ec53386d Binary files /dev/null and b/sound/vox/then.wav differ diff --git a/sound/vox/there.wav b/sound/vox/there.wav new file mode 100644 index 00000000000..0e25880076e Binary files /dev/null and b/sound/vox/there.wav differ diff --git a/sound/vox/third.wav b/sound/vox/third.wav new file mode 100644 index 00000000000..962f2f96974 Binary files /dev/null and b/sound/vox/third.wav differ diff --git a/sound/vox/thirteen.wav b/sound/vox/thirteen.wav new file mode 100644 index 00000000000..1c392cfa3e0 Binary files /dev/null and b/sound/vox/thirteen.wav differ diff --git a/sound/vox/thirty.wav b/sound/vox/thirty.wav new file mode 100644 index 00000000000..d7a34d4351a Binary files /dev/null and b/sound/vox/thirty.wav differ diff --git a/sound/vox/this.wav b/sound/vox/this.wav new file mode 100644 index 00000000000..b8f51ea1511 Binary files /dev/null and b/sound/vox/this.wav differ diff --git a/sound/vox/those.wav b/sound/vox/those.wav new file mode 100644 index 00000000000..ef7db907219 Binary files /dev/null and b/sound/vox/those.wav differ diff --git a/sound/vox/thousand.wav b/sound/vox/thousand.wav new file mode 100644 index 00000000000..b1f9df6edd1 Binary files /dev/null and b/sound/vox/thousand.wav differ diff --git a/sound/vox/threat.wav b/sound/vox/threat.wav new file mode 100644 index 00000000000..75cefae1879 Binary files /dev/null and b/sound/vox/threat.wav differ diff --git a/sound/vox/three.wav b/sound/vox/three.wav new file mode 100644 index 00000000000..097504d605b Binary files /dev/null and b/sound/vox/three.wav differ diff --git a/sound/vox/through.wav b/sound/vox/through.wav new file mode 100644 index 00000000000..78053bdf90f Binary files /dev/null and b/sound/vox/through.wav differ diff --git a/sound/vox/time.wav b/sound/vox/time.wav new file mode 100644 index 00000000000..856529d6a44 Binary files /dev/null and b/sound/vox/time.wav differ diff --git a/sound/vox/to.wav b/sound/vox/to.wav new file mode 100644 index 00000000000..5189cf2d580 Binary files /dev/null and b/sound/vox/to.wav differ diff --git a/sound/vox/top.wav b/sound/vox/top.wav new file mode 100644 index 00000000000..0747e8965aa Binary files /dev/null and b/sound/vox/top.wav differ diff --git a/sound/vox/topside.wav b/sound/vox/topside.wav new file mode 100644 index 00000000000..6f6f54b973c Binary files /dev/null and b/sound/vox/topside.wav differ diff --git a/sound/vox/touch.wav b/sound/vox/touch.wav new file mode 100644 index 00000000000..6712dc18a30 Binary files /dev/null and b/sound/vox/touch.wav differ diff --git a/sound/vox/towards.wav b/sound/vox/towards.wav new file mode 100644 index 00000000000..ff04147f15c Binary files /dev/null and b/sound/vox/towards.wav differ diff --git a/sound/vox/track.wav b/sound/vox/track.wav new file mode 100644 index 00000000000..5247acabd09 Binary files /dev/null and b/sound/vox/track.wav differ diff --git a/sound/vox/train.wav b/sound/vox/train.wav new file mode 100644 index 00000000000..ced1a9850cc Binary files /dev/null and b/sound/vox/train.wav differ diff --git a/sound/vox/transportation.wav b/sound/vox/transportation.wav new file mode 100644 index 00000000000..302241aeb00 Binary files /dev/null and b/sound/vox/transportation.wav differ diff --git a/sound/vox/truck.wav b/sound/vox/truck.wav new file mode 100644 index 00000000000..1692a9c7dd5 Binary files /dev/null and b/sound/vox/truck.wav differ diff --git a/sound/vox/tunnel.wav b/sound/vox/tunnel.wav new file mode 100644 index 00000000000..f158042a9d1 Binary files /dev/null and b/sound/vox/tunnel.wav differ diff --git a/sound/vox/turn.wav b/sound/vox/turn.wav new file mode 100644 index 00000000000..407d2cdbe84 Binary files /dev/null and b/sound/vox/turn.wav differ diff --git a/sound/vox/turret.wav b/sound/vox/turret.wav new file mode 100644 index 00000000000..ec42293ebb6 Binary files /dev/null and b/sound/vox/turret.wav differ diff --git a/sound/vox/twelve.wav b/sound/vox/twelve.wav new file mode 100644 index 00000000000..d9fbcc25580 Binary files /dev/null and b/sound/vox/twelve.wav differ diff --git a/sound/vox/twenty.wav b/sound/vox/twenty.wav new file mode 100644 index 00000000000..e6d7d8092d1 Binary files /dev/null and b/sound/vox/twenty.wav differ diff --git a/sound/vox/two.wav b/sound/vox/two.wav new file mode 100644 index 00000000000..14f432fd5c8 Binary files /dev/null and b/sound/vox/two.wav differ diff --git a/sound/vox/unauthorized.wav b/sound/vox/unauthorized.wav new file mode 100644 index 00000000000..7d3236f4913 Binary files /dev/null and b/sound/vox/unauthorized.wav differ diff --git a/sound/vox/under.wav b/sound/vox/under.wav new file mode 100644 index 00000000000..dc30e4711c5 Binary files /dev/null and b/sound/vox/under.wav differ diff --git a/sound/vox/uniform.wav b/sound/vox/uniform.wav new file mode 100644 index 00000000000..899c7f029af Binary files /dev/null and b/sound/vox/uniform.wav differ diff --git a/sound/vox/unlocked.wav b/sound/vox/unlocked.wav new file mode 100644 index 00000000000..0e48489db52 Binary files /dev/null and b/sound/vox/unlocked.wav differ diff --git a/sound/vox/until.wav b/sound/vox/until.wav new file mode 100644 index 00000000000..68f5ea47e4a Binary files /dev/null and b/sound/vox/until.wav differ diff --git a/sound/vox/up.wav b/sound/vox/up.wav new file mode 100644 index 00000000000..18165467021 Binary files /dev/null and b/sound/vox/up.wav differ diff --git a/sound/vox/upper.wav b/sound/vox/upper.wav new file mode 100644 index 00000000000..8b591566511 Binary files /dev/null and b/sound/vox/upper.wav differ diff --git a/sound/vox/uranium.wav b/sound/vox/uranium.wav new file mode 100644 index 00000000000..2ab47d60858 Binary files /dev/null and b/sound/vox/uranium.wav differ diff --git a/sound/vox/us.wav b/sound/vox/us.wav new file mode 100644 index 00000000000..23b56e93576 Binary files /dev/null and b/sound/vox/us.wav differ diff --git a/sound/vox/usa.wav b/sound/vox/usa.wav new file mode 100644 index 00000000000..591233e6244 Binary files /dev/null and b/sound/vox/usa.wav differ diff --git a/sound/vox/use.wav b/sound/vox/use.wav new file mode 100644 index 00000000000..35be6177756 Binary files /dev/null and b/sound/vox/use.wav differ diff --git a/sound/vox/used.wav b/sound/vox/used.wav new file mode 100644 index 00000000000..3385240fd9e Binary files /dev/null and b/sound/vox/used.wav differ diff --git a/sound/vox/user.wav b/sound/vox/user.wav new file mode 100644 index 00000000000..91ccb15af68 Binary files /dev/null and b/sound/vox/user.wav differ diff --git a/sound/vox/vacate.wav b/sound/vox/vacate.wav new file mode 100644 index 00000000000..bed5d702e43 Binary files /dev/null and b/sound/vox/vacate.wav differ diff --git a/sound/vox/valid.wav b/sound/vox/valid.wav new file mode 100644 index 00000000000..40c3f1e4f65 Binary files /dev/null and b/sound/vox/valid.wav differ diff --git a/sound/vox/vapor.wav b/sound/vox/vapor.wav new file mode 100644 index 00000000000..d067f698270 Binary files /dev/null and b/sound/vox/vapor.wav differ diff --git a/sound/vox/vent.wav b/sound/vox/vent.wav new file mode 100644 index 00000000000..b4efa86991b Binary files /dev/null and b/sound/vox/vent.wav differ diff --git a/sound/vox/ventillation.wav b/sound/vox/ventillation.wav new file mode 100644 index 00000000000..d56679dda12 Binary files /dev/null and b/sound/vox/ventillation.wav differ diff --git a/sound/vox/victor.wav b/sound/vox/victor.wav new file mode 100644 index 00000000000..8245a2abf4c Binary files /dev/null and b/sound/vox/victor.wav differ diff --git a/sound/vox/violated.wav b/sound/vox/violated.wav new file mode 100644 index 00000000000..c597d1dfe29 Binary files /dev/null and b/sound/vox/violated.wav differ diff --git a/sound/vox/violation.wav b/sound/vox/violation.wav new file mode 100644 index 00000000000..98ed5dd0b9b Binary files /dev/null and b/sound/vox/violation.wav differ diff --git a/sound/vox/voltage.wav b/sound/vox/voltage.wav new file mode 100644 index 00000000000..140e1dd6a20 Binary files /dev/null and b/sound/vox/voltage.wav differ diff --git a/sound/vox/vox_login.wav b/sound/vox/vox_login.wav new file mode 100644 index 00000000000..5679acfce81 Binary files /dev/null and b/sound/vox/vox_login.wav differ diff --git a/sound/vox/walk.wav b/sound/vox/walk.wav new file mode 100644 index 00000000000..fd8d85f84d4 Binary files /dev/null and b/sound/vox/walk.wav differ diff --git a/sound/vox/wall.wav b/sound/vox/wall.wav new file mode 100644 index 00000000000..e8e9a5fb4af Binary files /dev/null and b/sound/vox/wall.wav differ diff --git a/sound/vox/want.wav b/sound/vox/want.wav new file mode 100644 index 00000000000..3d130ce8fe6 Binary files /dev/null and b/sound/vox/want.wav differ diff --git a/sound/vox/wanted.wav b/sound/vox/wanted.wav new file mode 100644 index 00000000000..a292d2d33b7 Binary files /dev/null and b/sound/vox/wanted.wav differ diff --git a/sound/vox/warm.wav b/sound/vox/warm.wav new file mode 100644 index 00000000000..518f2905f42 Binary files /dev/null and b/sound/vox/warm.wav differ diff --git a/sound/vox/warn.wav b/sound/vox/warn.wav new file mode 100644 index 00000000000..75801460052 Binary files /dev/null and b/sound/vox/warn.wav differ diff --git a/sound/vox/warning.wav b/sound/vox/warning.wav new file mode 100644 index 00000000000..87db6c164b2 Binary files /dev/null and b/sound/vox/warning.wav differ diff --git a/sound/vox/waste.wav b/sound/vox/waste.wav new file mode 100644 index 00000000000..245c44d6820 Binary files /dev/null and b/sound/vox/waste.wav differ diff --git a/sound/vox/water.wav b/sound/vox/water.wav new file mode 100644 index 00000000000..c29d7acf55c Binary files /dev/null and b/sound/vox/water.wav differ diff --git a/sound/vox/we.wav b/sound/vox/we.wav new file mode 100644 index 00000000000..d7ba93484d1 Binary files /dev/null and b/sound/vox/we.wav differ diff --git a/sound/vox/weapon.wav b/sound/vox/weapon.wav new file mode 100644 index 00000000000..3e95e9efc4a Binary files /dev/null and b/sound/vox/weapon.wav differ diff --git a/sound/vox/west.wav b/sound/vox/west.wav new file mode 100644 index 00000000000..09f58088c95 Binary files /dev/null and b/sound/vox/west.wav differ diff --git a/sound/vox/whiskey.wav b/sound/vox/whiskey.wav new file mode 100644 index 00000000000..11ef7b3aa09 Binary files /dev/null and b/sound/vox/whiskey.wav differ diff --git a/sound/vox/white.wav b/sound/vox/white.wav new file mode 100644 index 00000000000..6d4ec3e138c Binary files /dev/null and b/sound/vox/white.wav differ diff --git a/sound/vox/wilco.wav b/sound/vox/wilco.wav new file mode 100644 index 00000000000..862aa8d97d9 Binary files /dev/null and b/sound/vox/wilco.wav differ diff --git a/sound/vox/will.wav b/sound/vox/will.wav new file mode 100644 index 00000000000..327d81c9d0f Binary files /dev/null and b/sound/vox/will.wav differ diff --git a/sound/vox/with.wav b/sound/vox/with.wav new file mode 100644 index 00000000000..f1db548cd76 Binary files /dev/null and b/sound/vox/with.wav differ diff --git a/sound/vox/without.wav b/sound/vox/without.wav new file mode 100644 index 00000000000..7f3096df12b Binary files /dev/null and b/sound/vox/without.wav differ diff --git a/sound/vox/woop.wav b/sound/vox/woop.wav new file mode 100644 index 00000000000..62fa99cb3b7 Binary files /dev/null and b/sound/vox/woop.wav differ diff --git a/sound/vox/xeno.wav b/sound/vox/xeno.wav new file mode 100644 index 00000000000..6b77a20b7a6 Binary files /dev/null and b/sound/vox/xeno.wav differ diff --git a/sound/vox/yankee.wav b/sound/vox/yankee.wav new file mode 100644 index 00000000000..62bf15a40b3 Binary files /dev/null and b/sound/vox/yankee.wav differ diff --git a/sound/vox/yards.wav b/sound/vox/yards.wav new file mode 100644 index 00000000000..33c3c4c3e3f Binary files /dev/null and b/sound/vox/yards.wav differ diff --git a/sound/vox/year.wav b/sound/vox/year.wav new file mode 100644 index 00000000000..12dca8e86bc Binary files /dev/null and b/sound/vox/year.wav differ diff --git a/sound/vox/yellow.wav b/sound/vox/yellow.wav new file mode 100644 index 00000000000..bed92f5f9f9 Binary files /dev/null and b/sound/vox/yellow.wav differ diff --git a/sound/vox/yes.wav b/sound/vox/yes.wav new file mode 100644 index 00000000000..799bb2b775e Binary files /dev/null and b/sound/vox/yes.wav differ diff --git a/sound/vox/you.wav b/sound/vox/you.wav new file mode 100644 index 00000000000..7ba9be75a87 Binary files /dev/null and b/sound/vox/you.wav differ diff --git a/sound/vox/your.wav b/sound/vox/your.wav new file mode 100644 index 00000000000..9e29c2418b1 Binary files /dev/null and b/sound/vox/your.wav differ diff --git a/sound/vox/yourself.wav b/sound/vox/yourself.wav new file mode 100644 index 00000000000..582c3b7ed6b Binary files /dev/null and b/sound/vox/yourself.wav differ diff --git a/sound/vox/zero.wav b/sound/vox/zero.wav new file mode 100644 index 00000000000..9b6c39722d1 Binary files /dev/null and b/sound/vox/zero.wav differ diff --git a/sound/vox/zone.wav b/sound/vox/zone.wav new file mode 100644 index 00000000000..68f9b8952cb Binary files /dev/null and b/sound/vox/zone.wav differ diff --git a/sound/vox/zulu.wav b/sound/vox/zulu.wav new file mode 100644 index 00000000000..32d66052181 Binary files /dev/null and b/sound/vox/zulu.wav differ