diff --git a/baystation12.dme b/baystation12.dme index 7d61c875d2e..361118cb4bf 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -548,6 +548,7 @@ #include "code\game\objects\items\weapons\RCD.dm" #include "code\game\objects\items\weapons\RSF.dm" #include "code\game\objects\items\weapons\scrolls.dm" +#include "code\game\objects\items\weapons\shards.dm" #include "code\game\objects\items\weapons\shields.dm" #include "code\game\objects\items\weapons\stunbaton.dm" #include "code\game\objects\items\weapons\surgery_tools.dm" diff --git a/code/WorkInProgress/Wrongnumber/weldbackpack.dm b/code/WorkInProgress/Wrongnumber/weldbackpack.dm index b0a9f87b235..18899745c9a 100644 --- a/code/WorkInProgress/Wrongnumber/weldbackpack.dm +++ b/code/WorkInProgress/Wrongnumber/weldbackpack.dm @@ -34,13 +34,15 @@ user << "\blue The tank scoffs at your insolence. It only provides services to welders." return -/obj/item/weapon/weldpack/afterattack(obj/O as obj, mob/user as mob) - if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume < max_fuel) +/obj/item/weapon/weldpack/afterattack(obj/O as obj, mob/user as mob, proximity) + if(!proximity) // this replaces and improves the get_dist(src,O) <= 1 checks used previously + return + if (istype(O, /obj/structure/reagent_dispensers/fueltank) && src.reagents.total_volume < max_fuel) O.reagents.trans_to(src, max_fuel) user << "\blue You crack the cap off the top of the pack and fill it back up again from the tank." playsound(src.loc, 'sound/effects/refill.ogg', 50, 1, -6) return - else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.reagents.total_volume == max_fuel) + else if (istype(O, /obj/structure/reagent_dispensers/fueltank) && src.reagents.total_volume == max_fuel) user << "\blue The pack is already full!" return diff --git a/code/WorkInProgress/computer3/computers/crew.dm b/code/WorkInProgress/computer3/computers/crew.dm index 2d89b336f80..b3ef9398bab 100644 --- a/code/WorkInProgress/computer3/computers/crew.dm +++ b/code/WorkInProgress/computer3/computers/crew.dm @@ -47,7 +47,7 @@ log += "[life_status] [damage_report]Not Available" if(3) var/area/player_area = get_area(H) - log += "[life_status] [damage_report][player_area.name] ([pos.x], [pos.y])" + log += "[life_status] [damage_report][sanitize(player_area.name)] ([pos.x], [pos.y])" logs += log logs = sortList(logs) for(var/log in logs) @@ -75,4 +75,4 @@ if(href_list["update"]) interact() //src.updateUsrDialog() - return \ No newline at end of file + return diff --git a/code/WorkInProgress/computer3/laptop.dm b/code/WorkInProgress/computer3/laptop.dm index 0fad61af82f..52d996827b6 100644 --- a/code/WorkInProgress/computer3/laptop.dm +++ b/code/WorkInProgress/computer3/laptop.dm @@ -55,15 +55,20 @@ del src return + if(!stored_computer.manipulating) + stored_computer.manipulating = 1 + stored_computer.loc = loc + stored_computer.stat &= ~MAINT + stored_computer.update_icon() + loc = null + usr << "You open \the [src]." - stored_computer.loc = loc - stored_computer.stat &= ~MAINT - stored_computer.update_icon() - loc = null - usr << "You open \the [src]." + spawn(5) + stored_computer.manipulating = 0 + del src + else + usr << "\red You are already opening the computer!" - spawn(5) - del src AltClick() if(Adjacent(usr)) @@ -112,6 +117,7 @@ pixel_y = -3 show_keyboard = 0 + var/manipulating = 0 // To prevent disappearing bug var/obj/item/device/laptop/portable = null New(var/L, var/built = 0) @@ -147,10 +153,11 @@ portable=new portable.stored_computer = src - portable.loc = loc - loc = portable - stat |= MAINT - usr << "You close \the [src]." + if(!manipulating) + portable.loc = loc + loc = portable + stat |= MAINT + usr << "You close \the [src]." auto_use_power() if(stat&MAINT) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index d29bb84bc98..a48f759de12 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -15,9 +15,8 @@ // Run all strings to be used in an SQL query through this proc first to properly escape out injection attempts. /proc/sanitizeSQL(var/t as text) - var/sanitized_text = replacetext(t, "'", "\\'") - sanitized_text = replacetext(sanitized_text, "\"", "\\\"") - return sanitized_text + var/sqltext = dbcon.Quote(t); + return copytext(sqltext, 2, lentext(sqltext)-1);//Quote() adds quotes around input, we already do that /* * Text sanitization @@ -314,4 +313,4 @@ proc/TextPreview(var/string,var/len=40) else return string else - return "[copytext(string, 1, 37)]..." \ No newline at end of file + return "[copytext(string, 1, 37)]..." diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index c6078c10ac8..6522aae611d 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -124,8 +124,7 @@ Topic("breaker=1", list("breaker"="1"), 0) // 0 meaning no window (consistency! wait...) /obj/machinery/turretid/AICtrlClick() //turns off/on Turrets - src.enabled = !src.enabled - src.updateTurrets() + Topic("toggleOn", list("toggleOn" = 1), 1) // 1 meaning no window (consistency!) /atom/proc/AIAltClick(var/atom/A) AltClick(A) @@ -140,8 +139,7 @@ return /obj/machinery/turretid/AIAltClick() //toggles lethal on turrets - src.lethal = !src.lethal - src.updateTurrets() + Topic("toggleLethal", list("toggleLethal" = 1), 1) // 1 meaning no window (consistency!) /atom/proc/AIMiddleClick() return diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 7d6628b5733..2fc7d0c8eeb 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -214,29 +214,6 @@ flags = FPRINT | TABLEPASS| CONDUCT matter = list("metal" = 3750) -/obj/item/weapon/shard - name = "shard" - icon = 'icons/obj/shards.dmi' - icon_state = "large" - sharp = 1 - edge = 1 - desc = "Could probably be used as ... a throwing weapon?" - w_class = 2.0 - force = 5.0 - throwforce = 8.0 - item_state = "shard-glass" - matter = list("glass" = 3750) - attack_verb = list("stabbed", "slashed", "sliced", "cut") - - suicide_act(mob/user) - viewers(user) << pick("\red [user] is slitting \his wrists with the shard of glass! It looks like \he's trying to commit suicide.", \ - "\red [user] is slitting \his throat with the shard of glass! It looks like \he's trying to commit suicide.") - return (BRUTELOSS) - -/obj/item/weapon/shard/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) - playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) - return ..() - /*/obj/item/weapon/syndicate_uplink name = "station bounced radio" desc = "Remain silent about this..." @@ -256,28 +233,6 @@ matter = list("metal" = 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." diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 771b43caa57..4ddfbffb48b 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -20,7 +20,7 @@ /datum/game_mode/cult name = "cult" config_tag = "cult" - restricted_jobs = list("Chaplain","AI", "Cyborg", "Lawyer", "Head of Security", "Captain") + restricted_jobs = list("Chaplain","AI", "Cyborg", "Internal Affairs Agent", "Head of Security", "Captain") protected_jobs = list("Security Officer", "Warden", "Detective") required_players = 5 required_players_secret = 15 diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index fd774975d0f..8737b296d35 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -14,7 +14,7 @@ /datum/game_mode/revolution name = "revolution" config_tag = "revolution" - restricted_jobs = list("Lawyer", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") + restricted_jobs = list("Internal Affairs Agent", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") protected_jobs = list("Security Officer", "Warden", "Detective") required_players = 4 required_players_secret = 15 diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 0c0928dbc1a..7d7651a3629 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -6,7 +6,7 @@ name = "traitor" config_tag = "traitor" restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances - protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain")//AI", Currently out of the list as malf does not work for shit + protected_jobs = list("Security Officer", "Warden", "Detective", "Internal Affairs Agent", "Head of Security", "Captain")//AI", Currently out of the list as malf does not work for shit required_players = 0 required_enemies = 1 recommended_enemies = 4 diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index bed29b858e9..3a0118e9b8f 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -17,7 +17,7 @@ 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_xenoarch) - minimal_player_age = 7 + minimal_player_age = 14 equip(var/mob/living/carbon/human/H) if(!H) return 0 @@ -50,6 +50,8 @@ minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch) alt_titles = list("Xenoarcheologist", "Anomalist", "Phoron Researcher", "Xenobotanist") + minimal_player_age = 14 + 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_l_ear) @@ -79,6 +81,8 @@ access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology) minimal_access = list(access_research, access_xenobiology) + minimal_player_age = 14 + 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_l_ear) @@ -108,6 +112,8 @@ minimal_access = list(access_robotics, access_tech_storage, access_morgue, access_research) //As a job that handles so many corpses, it makes sense for them to have morgue access. alt_titles = list("Biomechanical Engineer","Mechatronic Engineer") + minimal_player_age = 7 + 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_l_ear) @@ -123,4 +129,4 @@ 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 \ No newline at end of file + return 1 diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 50b17ddc338..fe569e23647 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -325,7 +325,8 @@ var/global/list/frozen_items = list() time_entered = world.time // Book keeping! - log_admin("[key_name_admin(M)] has entered a stasis pod.") + var/turf/location = get_turf(src) + log_admin("[key_name_admin(M)] has entered a stasis pod. (JMP)") message_admins("\blue [key_name_admin(M)] has entered a stasis pod.") //Despawning occurs when process() is called with an occupant without a client. diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 9cd7b588947..c85599cf6a7 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -532,23 +532,26 @@ About the new airlock wires panel: return ((src.wires & wireFlag) == 0) /obj/machinery/door/airlock/proc/canAIControl() - return ((src.aiControlDisabled!=1) && (!src.isAllPowerCut())); + return ((src.aiControlDisabled!=1) && (!src.isAllPowerLoss())); -/obj/machinery/door/airlock/proc/canAIHack(var/user as mob) - return (isAI(user) && src.aiControlDisabled==1 && !hackProof && !src.isAllPowerCut()); +/obj/machinery/door/airlock/proc/canAIHack() + return ((src.aiControlDisabled==1) && (!hackProof) && (!src.isAllPowerLoss())); /obj/machinery/door/airlock/proc/arePowerSystemsOn() + if (stat & NOPOWER) + return 0 return (src.secondsMainPowerLost==0 || src.secondsBackupPowerLost==0) /obj/machinery/door/airlock/requiresID() return !(src.isWireCut(AIRLOCK_WIRE_IDSCAN) || aiDisabledIdScanner) -/obj/machinery/door/airlock/proc/isAllPowerCut() - var/retval=0 +/obj/machinery/door/airlock/proc/isAllPowerLoss() + if(stat & NOPOWER) + return 1 if(src.isWireCut(AIRLOCK_WIRE_MAIN_POWER1) || src.isWireCut(AIRLOCK_WIRE_MAIN_POWER2)) if(src.isWireCut(AIRLOCK_WIRE_BACKUP_POWER1) || src.isWireCut(AIRLOCK_WIRE_BACKUP_POWER2)) - retval=1 - return retval + return 1 + return 0 /obj/machinery/door/airlock/proc/regainMainPower() if(src.secondsMainPowerLost > 0) @@ -639,9 +642,11 @@ About the new airlock wires panel: else flick("door_closing", src) if("spark") - flick("door_spark", src) + if(density) + flick("door_spark", src) if("deny") - flick("door_deny", src) + if(density) + flick("door_deny", src) return /obj/machinery/door/airlock/attack_ai(mob/user as mob) @@ -868,7 +873,7 @@ About the new airlock wires panel: t1 += "Attach signaler" t1 += "
" - t1 += text("
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]", (src.locked ? "The door bolts have fallen!" : "The door bolts look up."), (src.lights ? "The door bolt lights are on." : "The door bolt lights are off!"), ((src.arePowerSystemsOn() && !(stat & NOPOWER)) ? "The test light is on." : "The test light is off!"), (src.aiControlDisabled==0 ? "The 'AI control allowed' light is on." : "The 'AI control allowed' light is off."), (src.safe==0 ? "The 'Check Wiring' light is on." : "The 'Check Wiring' light is off."), (src.normalspeed==0 ? "The 'Check Timing Mechanism' light is on." : "The 'Check Timing Mechanism' light is off.")) + t1 += text("
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]", (src.locked ? "The door bolts have fallen!" : "The door bolts look up."), (src.lights ? "The door bolt lights are on." : "The door bolt lights are off!"), ((src.arePowerSystemsOn()) ? "The test light is on." : "The test light is off!"), (src.aiControlDisabled==0 ? "The 'AI control allowed' light is on." : "The 'AI control allowed' light is off."), (src.safe==0 ? "The 'Check Wiring' light is on." : "The 'Check Wiring' light is off."), (src.normalspeed==0 ? "The 'Check Timing Mechanism' light is on." : "The 'Check Timing Mechanism' light is off.")) t1 += text("

Close

\n", src) @@ -1171,7 +1176,7 @@ About the new airlock wires panel: beingcrowbarred = 1 //derp, Agouri else beingcrowbarred = 0 - if( beingcrowbarred && (operating == -1 || density && welded && operating != 1 && src.p_open && (!src.arePowerSystemsOn() || stat & NOPOWER) && !src.locked) ) + if( beingcrowbarred && src.p_open && (operating == -1 || (density && welded && operating != 1 && !src.arePowerSystemsOn() && !src.locked)) ) playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) 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)) @@ -1211,7 +1216,7 @@ About the new airlock wires panel: del(src) return - else if(arePowerSystemsOn() && !(stat & NOPOWER)) + else if(arePowerSystemsOn()) user << "\blue The airlock's motors resist your efforts to force it." else if(locked) user << "\blue The airlock's bolts prevent it from being forced." @@ -1248,7 +1253,7 @@ About the new airlock wires panel: if( operating || welded || locked ) return 0 if(!forced) - if( !arePowerSystemsOn() || (stat & NOPOWER) || isWireCut(AIRLOCK_WIRE_OPEN_DOOR) ) + if( !arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_OPEN_DOOR) ) return 0 use_power(360) //360 W seems much more appropriate for an actuator moving an industrial door capable of crushing people if(istype(src, /obj/machinery/door/airlock/glass)) @@ -1263,7 +1268,7 @@ About the new airlock wires panel: if(operating || welded || locked) return if(!forced) - if( !arePowerSystemsOn() || (stat & NOPOWER) || isWireCut(AIRLOCK_WIRE_DOOR_BOLTS) ) + if( !arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_DOOR_BOLTS) ) return if(safe) for(var/turf/turf in locs) @@ -1305,7 +1310,7 @@ About the new airlock wires panel: return /obj/machinery/door/airlock/proc/lock(var/forced=0) - if (src.locked) return + if (operating || src.locked) return src.locked = 1 for(var/mob/M in range(1,src)) @@ -1313,9 +1318,9 @@ About the new airlock wires panel: update_icon() /obj/machinery/door/airlock/proc/unlock(var/forced=0) - if (!src.locked) return 0 + if (operating || !src.locked) return - if(forced || src.arePowerSystemsOn()) //only can raise bolts if power's on + if (forced || (src.arePowerSystemsOn())) //only can raise bolts if power's on src.locked = 0 for(var/mob/M in range(1,src)) M.show_message("You hear a click from the bottom of the door.", 2) diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm index 32ed0d1f3c1..3b1700df784 100644 --- a/code/game/machinery/doors/airlock_control.dm +++ b/code/game/machinery/doors/airlock_control.dm @@ -9,16 +9,19 @@ obj/machinery/door/airlock var/cur_command = null //the command the door is currently attempting to complete obj/machinery/door/airlock/proc/can_radio() - if( !arePowerSystemsOn() || (stat & NOPOWER) || isWireCut(AIRLOCK_WIRE_AI_CONTROL) ) + if(!arePowerSystemsOn()) return 0 return 1 obj/machinery/door/airlock/process() ..() - execute_current_command() + if (arePowerSystemsOn()) + execute_current_command() obj/machinery/door/airlock/receive_signal(datum/signal/signal) - if (!can_radio()) return + if (!arePowerSystemsOn()) return //no power + + if (!can_radio()) return //no radio if(!signal || signal.encryption) return @@ -28,6 +31,9 @@ obj/machinery/door/airlock/receive_signal(datum/signal/signal) execute_current_command() obj/machinery/door/airlock/proc/execute_current_command() + if(operating) + return //emagged or busy doing something else + if (!cur_command) return diff --git a/code/game/machinery/embedded_controller/docking_program_multi.dm b/code/game/machinery/embedded_controller/docking_program_multi.dm index 46f7538afde..3901591720c 100644 --- a/code/game/machinery/embedded_controller/docking_program_multi.dm +++ b/code/game/machinery/embedded_controller/docking_program_multi.dm @@ -199,7 +199,9 @@ //checks if we are ready for undocking /datum/computer/file/embedded_program/airlock/multi_docking/proc/ready_for_undocking() - return check_doors_secured() + var/ext_closed = check_exterior_door_secured() + var/int_closed = check_interior_door_secured() + return (ext_closed || int_closed) /datum/computer/file/embedded_program/airlock/multi_docking/proc/open_doors() toggleDoor(memory["interior_status"], tag_interior_door, memory["secure"], "open") diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm index b8975feaeb0..421ad9a9bbe 100644 --- a/code/game/machinery/pipe/construction.dm +++ b/code/game/machinery/pipe/construction.dm @@ -189,7 +189,12 @@ Buildable meters icon_state = islist[pipe_type + 1] //called when a turf is attacked with a pipe item -// place the pipe on the turf, setting pipe level to 1 (underfloor) if the turf is not intact +/obj/item/pipe/afterattack(turf/simulated/floor/target, mob/user, proximity) + if(!proximity) return + if(istype(target)) + user.drop_from_inventory(src, target) + else + return ..() // rotate the pipe item clockwise diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index 98af795ca83..5ad0ecae560 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -436,8 +436,9 @@ -/obj/machinery/turretid/Topic(href, href_list) - ..() +/obj/machinery/turretid/Topic(href, href_list, var/nowindow = 0) + if(..(href, href_list)) + return if (src.locked) if (!istype(usr, /mob/living/silicon)) usr << "Control panel is locked!" @@ -449,7 +450,8 @@ else if (href_list["toggleLethal"]) src.lethal = !src.lethal src.updateTurrets() - src.attack_hand(usr) + if(!nowindow) + src.attack_hand(usr) /obj/machinery/turretid/proc/updateTurrets() if(control_area) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index ac3b09ff6a5..15e243559dd 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -328,7 +328,8 @@ if (src.product_records.len == 0) dat += "No product loaded!" else - var/list/display_records = src.product_records + var/list/display_records = list() + display_records += src.product_records if(src.extended_inventory) display_records += src.hidden_records diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index f25f835c691..8d60a48a9b7 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -6,43 +6,52 @@ var/obj/machinery/computer/mech_bay_power_console/recharge_console var/obj/mecha/recharging_mecha = null - Entered(var/obj/mecha/mecha) - . = ..() - if(istype(mecha)) - mecha.occupant_message("Initializing power control devices.") - init_devices() - if(recharge_console && recharge_port) - recharging_mecha = mecha - recharge_console.mecha_in(mecha) - return - else if(!recharge_console) - mecha.occupant_message("Control console not found. Terminating.") - else if(!recharge_port) - mecha.occupant_message("Power port not found. Terminating.") - return +/turf/simulated/floor/mech_bay_recharge_floor/Entered(var/obj/mecha/mecha) + . = ..() + if(istype(mecha)) + mecha.occupant_message("Initializing power control devices.") + init_devices() + if(recharge_console && recharge_port) + recharging_mecha = mecha + recharge_console.mecha_in(mecha) + return + else if(!recharge_console) + mecha.occupant_message("Control console not found. Terminating.") + else if(!recharge_port) + mecha.occupant_message("Power port not found. Terminating.") + return - Exited(atom) - . = ..() - if(atom == recharging_mecha) - recharging_mecha = null - if(recharge_console) - recharge_console.mecha_out() - return - - proc/init_devices() - recharge_console = locate() in range(1,src) - recharge_port = locate(/obj/machinery/mech_bay_recharge_port, get_step(src, WEST)) +/turf/simulated/floor/mech_bay_recharge_floor/Exited(atom) + . = ..() + if(atom == recharging_mecha) + recharging_mecha = null if(recharge_console) - recharge_console.recharge_floor = src - if(recharge_port) - recharge_console.recharge_port = recharge_port + recharge_console.mecha_out() + return + +/turf/simulated/floor/mech_bay_recharge_floor/proc/init_devices() + if(!recharge_console) + recharge_console = locate() in range(1,src) + if(!recharge_port) + recharge_port = locate() in get_step(src, WEST) + + if(recharge_console) + recharge_console.recharge_floor = src if(recharge_port) - recharge_port.recharge_floor = src - if(recharge_console) - recharge_port.recharge_console = recharge_console - return - + recharge_console.recharge_port = recharge_port + if(recharge_port) + recharge_port.recharge_floor = src + if(recharge_console) + recharge_port.recharge_console = recharge_console + return +// temporary fix for broken icon until somebody gets around to make these player-buildable +/turf/simulated/floor/mech_bay_recharge_floor/attackby(obj/item/C as obj, mob/user as mob) + ..() + if(floor_tile) + icon_state = "recharge_floor" + else + icon_state = "support_lattice" /obj/machinery/mech_bay_recharge_port @@ -55,50 +64,50 @@ var/obj/machinery/computer/mech_bay_power_console/recharge_console var/datum/global_iterator/mech_bay_recharger/pr_recharger - New() - ..() - pr_recharger = new /datum/global_iterator/mech_bay_recharger(null,0) - return +/obj/machinery/mech_bay_recharge_port/New() + ..() + pr_recharger = new /datum/global_iterator/mech_bay_recharger(null,0) + return - proc/start_charge(var/obj/mecha/recharging_mecha) - if(stat&(NOPOWER|BROKEN)) - recharging_mecha.occupant_message("Power port not responding. Terminating.") - return 0 - else - if(recharging_mecha.cell) - recharging_mecha.occupant_message("Now charging...") - pr_recharger.start(list(src,recharging_mecha)) - return 1 - else - return 0 - - proc/stop_charge() - if(recharge_console && !recharge_console.stat) - recharge_console.icon_state = initial(recharge_console.icon_state) - pr_recharger.stop() - return - - proc/active() - if(pr_recharger.active()) +/obj/machinery/mech_bay_recharge_port/proc/start_charge(var/obj/mecha/recharging_mecha) + if(stat&(NOPOWER|BROKEN)) + recharging_mecha.occupant_message("Power port not responding. Terminating.") + return 0 + else + if(recharging_mecha.cell) + recharging_mecha.occupant_message("Now charging...") + pr_recharger.start(list(src,recharging_mecha)) return 1 else return 0 - power_change() - if(powered()) - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - stat |= NOPOWER - pr_recharger.stop() - return +/obj/machinery/mech_bay_recharge_port/proc/stop_charge() + if(recharge_console && !recharge_console.stat) + recharge_console.icon_state = initial(recharge_console.icon_state) + pr_recharger.stop() + return - proc/set_voltage(new_voltage) - if(new_voltage && isnum(new_voltage)) - pr_recharger.max_charge = new_voltage - return 1 - else - return 0 +/obj/machinery/mech_bay_recharge_port/proc/active() + if(pr_recharger.active()) + return 1 + else + return 0 + +/obj/machinery/mech_bay_recharge_port/power_change() + if(powered()) + stat &= ~NOPOWER + else + spawn(rand(0, 15)) + stat |= NOPOWER + pr_recharger.stop() + return + +/obj/machinery/mech_bay_recharge_port/proc/set_voltage(new_voltage) + if(new_voltage && isnum(new_voltage)) + pr_recharger.max_charge = new_voltage + return 1 + else + return 0 /datum/global_iterator/mech_bay_recharger @@ -106,23 +115,22 @@ var/max_charge = 45 check_for_null = 0 //since port.stop_charge() must be called. The checks are made in process() - process(var/obj/machinery/mech_bay_recharge_port/port, var/obj/mecha/mecha) - if(!port) - return 0 - if(mecha && mecha in port.recharge_floor) - if(!mecha.cell) return - var/delta = min(max_charge, mecha.cell.maxcharge - mecha.cell.charge) - if(delta>0) - mecha.give_power(delta) - port.use_power(delta*150) - else - mecha.occupant_message("Fully charged.") - port.stop_charge() +/datum/global_iterator/mech_bay_recharger/process(var/obj/machinery/mech_bay_recharge_port/port, var/obj/mecha/mecha) + if(!port) + return 0 + if(mecha && mecha in port.recharge_floor) + if(!mecha.cell) + return + var/delta = min(max_charge, mecha.cell.maxcharge - mecha.cell.charge) + if(delta>0) + mecha.give_power(delta) + port.use_power(delta*150) else + mecha.occupant_message("Fully charged.") port.stop_charge() - return - - + else + port.stop_charge() + return /obj/machinery/computer/mech_bay_power_console @@ -137,82 +145,90 @@ var/turf/simulated/floor/mech_bay_recharge_floor/recharge_floor var/obj/machinery/mech_bay_recharge_port/recharge_port - proc/mecha_in(var/obj/mecha/mecha) - if(stat&(NOPOWER|BROKEN)) - mecha.occupant_message("Control console not responding. Terminating...") - return - if(recharge_port && autostart) - var/answer = recharge_port.start_charge(mecha) - if(answer) - recharge_port.set_voltage(voltage) - src.icon_state = initial(src.icon_state)+"_on" +/obj/machinery/computer/mech_bay_power_console/proc/mecha_in(var/obj/mecha/mecha) + if(stat&(NOPOWER|BROKEN)) + mecha.occupant_message("Control console not responding. Terminating...") return + if(recharge_port && autostart) + var/answer = recharge_port.start_charge(mecha) + if(answer) + recharge_port.set_voltage(voltage) + src.icon_state = initial(src.icon_state)+"_on" + return - proc/mecha_out() +/obj/machinery/computer/mech_bay_power_console/proc/mecha_out() + if(recharge_port) + recharge_port.stop_charge() + return + + +/obj/machinery/computer/mech_bay_power_console/power_change() + if(stat & BROKEN) + icon_state = initial(icon_state)+"_broken" if(recharge_port) recharge_port.stop_charge() - return - - - power_change() - if(stat & BROKEN) - icon_state = initial(icon_state)+"_broken" + else if(powered()) + icon_state = initial(icon_state) + stat &= ~NOPOWER + else + spawn(rand(0, 15)) + icon_state = initial(icon_state)+"_nopower" + stat |= NOPOWER if(recharge_port) recharge_port.stop_charge() - else if(powered()) - icon_state = initial(icon_state) - stat &= ~NOPOWER - else - spawn(rand(0, 15)) - icon_state = initial(icon_state)+"_nopower" - stat |= NOPOWER - if(recharge_port) - recharge_port.stop_charge() - set_broken() - icon_state = initial(icon_state)+"_broken" - stat |= BROKEN - if(recharge_port) - recharge_port.stop_charge() +/obj/machinery/computer/mech_bay_power_console/set_broken() + icon_state = initial(icon_state)+"_broken" + stat |= BROKEN + if(recharge_port) + recharge_port.stop_charge() - attack_hand(mob/user as mob) - if(..()) return - var/output = "[src.name]" - if(!recharge_floor) - output += "Mech Bay Recharge Station not initialized.
" - else - output += {"Mech Bay Recharge Station Data:
- Mecha: [recharge_floor.recharging_mecha||"None"]
"} - if(recharge_floor.recharging_mecha) - var/cell_charge = recharge_floor.recharging_mecha.get_charge() - output += "Cell charge: [isnull(cell_charge)?"No powercell found":"[recharge_floor.recharging_mecha.cell.charge]/[recharge_floor.recharging_mecha.cell.maxcharge]"]
" - output += "
" - if(!recharge_port) - output += "Mech Bay Power Port not initialized.
" - else - output += "Mech Bay Power Port Status: [recharge_port.active()?"Now charging":"On hold"]
" - - /* - output += {"
- Settings: -
- Start sequence on succesful init: [autostart?"On":"Off"]
- Recharge Port Voltage: Low - Medium - High
-
"} - */ - - output += "" - user << browse(output, "window=mech_bay_console") - onclose(user, "mech_bay_console") +/obj/machinery/computer/mech_bay_power_console/attack_hand(mob/user as mob) + if(..()) return + if(!recharge_floor || !recharge_port) + var/turf/simulated/floor/mech_bay_recharge_floor/F = locate() in range(1,src) + if(F) + F.init_devices() + + var/output = "[src.name]" + if(!recharge_floor) + output += "Mech Bay Recharge Station not initialized.
" + else + output += {"Mech Bay Recharge Station Data:
+ Mecha: [recharge_floor.recharging_mecha||"None"]
"} + if(recharge_floor.recharging_mecha) + var/cell_charge = recharge_floor.recharging_mecha.get_charge() + output += "Cell charge: [isnull(cell_charge)?"No powercell found":"[recharge_floor.recharging_mecha.cell.charge]/[recharge_floor.recharging_mecha.cell.maxcharge]"]
" + output += "
" + if(!recharge_port) + output += "Mech Bay Power Port not initialized.
" + else + output += "Mech Bay Power Port Status: [recharge_port.active()?"Now charging":"On hold"]
" + /* + output += {"
+ Settings: +
+ Start sequence on succesful init: [autostart?"On":"Off"]
+ Recharge Port Voltage: Low - Medium - High
+
"} + */ - Topic(href, href_list) - if(href_list["autostart"]) - autostart = !autostart - if(href_list["voltage"]) - voltage = text2num(href_list["voltage"]) - if(recharge_port) - recharge_port.set_voltage(voltage) - updateUsrDialog() - return \ No newline at end of file + output += "" + user << browse(output, "window=mech_bay_console") + onclose(user, "mech_bay_console") + return + +// unused at the moment, also lacks any kind of exploit prevention +/* +/obj/machinery/computer/mech_bay_power_console/Topic(href, href_list) + if(href_list["autostart"]) + autostart = !autostart + if(href_list["voltage"]) + voltage = text2num(href_list["voltage"]) + if(recharge_port) + recharge_port.set_voltage(voltage) + updateUsrDialog() + return +*/ diff --git a/code/game/objects/effects/decals/Cleanable/fuel.dm b/code/game/objects/effects/decals/Cleanable/fuel.dm index 0b8fd7a69c5..6b7ef0242e7 100644 --- a/code/game/objects/effects/decals/Cleanable/fuel.dm +++ b/code/game/objects/effects/decals/Cleanable/fuel.dm @@ -6,7 +6,10 @@ obj/effect/decal/cleanable/liquid_fuel anchored = 1 var/amount = 1 //Basically moles. - New(newLoc,amt=1) + New(turf/newLoc,amt=1,nologs=0) + if(!nologs) + message_admins("Liquid fuel has spilled in [newLoc.loc.name] ([newLoc.x],[newLoc.y],[newLoc.z]) (JMP)") + log_game("Liquid fuel has spilled in [newLoc.loc.name] ([newLoc.x],[newLoc.y],[newLoc.z])") src.amount = amt //Be absorbed by any other liquid fuel in the tile. @@ -30,7 +33,7 @@ obj/effect/decal/cleanable/liquid_fuel var/turf/simulated/origin = get_turf(src) if(origin.CanPass(null, target, 0, 0) && target.CanPass(null, origin, 0, 0)) if(!locate(/obj/effect/decal/cleanable/liquid_fuel) in target) - new/obj/effect/decal/cleanable/liquid_fuel(target, amount*0.25) + new/obj/effect/decal/cleanable/liquid_fuel(target, amount*0.25,1) amount *= 0.75 flamethrower_fuel diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm index a1de93987f1..02d11f22519 100644 --- a/code/game/objects/items/devices/modkit.dm +++ b/code/game/objects/items/devices/modkit.dm @@ -14,7 +14,10 @@ /obj/item/clothing/suit/space/rig ) -/obj/item/device/modkit/afterattack(obj/O, mob/user as mob) +/obj/item/device/modkit/afterattack(obj/O, mob/user as mob, proximity) + if(!proximity) + return + if (!target_species) return //it shouldn't be null, okay? @@ -38,6 +41,7 @@ var/in_list = (target_species in I.species_restricted) if (excluding ^ in_list) user << "[I] is already modified." + return if(!isturf(O.loc)) user << "[O] must be safely placed on the ground for modification." diff --git a/code/game/objects/items/devices/pipe_painter.dm b/code/game/objects/items/devices/pipe_painter.dm index 74374297cc0..130770aa9d6 100644 --- a/code/game/objects/items/devices/pipe_painter.dm +++ b/code/game/objects/items/devices/pipe_painter.dm @@ -13,7 +13,10 @@ modes += "[C]" mode = pick(modes) -/obj/item/device/pipe_painter/afterattack(atom/A, mob/user as mob) +/obj/item/device/pipe_painter/afterattack(atom/A, mob/user as mob, proximity) + if(!proximity) + return + if(!istype(A,/obj/machinery/atmospherics/pipe) || istype(A,/obj/machinery/atmospherics/pipe/tank) || istype(A,/obj/machinery/atmospherics/pipe/vent) || istype(A,/obj/machinery/atmospherics/pipe/simple/heat_exchanging) || istype(A,/obj/machinery/atmospherics/pipe/simple/insulated) || !in_range(user, A)) return var/obj/machinery/atmospherics/pipe/P = A diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 6b86d88fe05..8ef724fcde0 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -364,7 +364,9 @@ REAGENT SCANNER var/details = 0 var/recent_fail = 0 -/obj/item/device/reagent_scanner/afterattack(obj/O, mob/user as mob) +/obj/item/device/reagent_scanner/afterattack(obj/O, mob/user as mob, proximity) + if(!proximity) + return if (user.stat) return if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") diff --git a/code/game/objects/items/devices/suit_cooling.dm b/code/game/objects/items/devices/suit_cooling.dm index 19d146b82cd..6355fd26fd4 100644 --- a/code/game/objects/items/devices/suit_cooling.dm +++ b/code/game/objects/items/devices/suit_cooling.dm @@ -42,7 +42,7 @@ var/mob/living/carbon/human/H = loc - var/efficiency = H.get_pressure_protection() //you need to have a good seal for effective cooling + var/efficiency = 1 - H.get_pressure_weakness() //you need to have a good seal for effective cooling var/env_temp = get_environment_temperature() //wont save you from a fire var/temp_adj = min(H.bodytemperature - max(thermostat, env_temp), max_cooling) diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 1e7c4597560..8cace9a2235 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -16,6 +16,7 @@ return 1 /obj/item/device/transfer_valve/attackby(obj/item/item, mob/user) + var/turf/location = get_turf(src) // For admin logs if(istype(item, /obj/item/weapon/tank)) if(tank_one && tank_two) user << "There are already two tanks attached, remove one first." @@ -31,6 +32,8 @@ user.drop_item() item.loc = src user << "You attach the tank to the transfer valve." + message_admins("[key_name_admin(user)] attached both tanks to a transfer valve. (JMP)") + log_game("[key_name_admin(user)] attached both tanks to a transfer valve.") update_icon() nanomanager.update_uis(src) // update all UIs attached to src @@ -51,7 +54,7 @@ A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb). bombers += "[key_name(user)] attached a [item] to a transfer valve." - message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") + message_admins("[key_name_admin(user)] attached a [item] to a transfer valve. (JMP)") log_game("[key_name_admin(user)] attached a [item] to a transfer valve.") attacher = user nanomanager.update_uis(src) // update all UIs attached to src @@ -83,7 +86,7 @@ // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm ui = new(user, src, ui_key, "transfer_valve.tmpl", "Tank Transfer Valve", 460, 280) // when the ui is first opened this is the data it will use - ui.set_initial_data(data) + ui.set_initial_data(data) // open the new ui window ui.open() // auto update every Master Controller tick diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm index 9945c2a00a0..d2825c82f77 100644 --- a/code/game/objects/items/stacks/rods.dm +++ b/code/game/objects/items/stacks/rods.dm @@ -52,15 +52,19 @@ use(1) else return 1 - else + + else if(!in_use) if(amount < 2) user << "\blue You need at least two rods to do this." return usr << "\blue Assembling grille..." + in_use = 1 if (!do_after(usr, 10)) + in_use = 0 return var/obj/structure/grille/F = new /obj/structure/grille/ ( usr.loc ) usr << "\blue You assemble a grille" + in_use = 0 F.add_fingerprint(usr) use(2) return diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 843cb782468..d24c9350fab 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -236,76 +236,6 @@ return 0 -/* - * Glass shards - TODO: Move this into code/game/object/item/weapons - */ -/obj/item/weapon/shard/Bump() - - spawn( 0 ) - if (prob(20)) - src.force = 15 - else - src.force = 4 - ..() - return - return - -/obj/item/weapon/shard/New() - - src.icon_state = pick("large", "medium", "small") - switch(src.icon_state) - if("small") - src.pixel_x = rand(-12, 12) - src.pixel_y = rand(-12, 12) - if("medium") - src.pixel_x = rand(-8, 8) - src.pixel_y = rand(-8, 8) - if("large") - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) - else - return - -/obj/item/weapon/shard/attackby(obj/item/weapon/W as obj, mob/user as mob) - ..() - if ( istype(W, /obj/item/weapon/weldingtool)) - var/obj/item/weapon/weldingtool/WT = W - if(WT.remove_fuel(0, user)) - var/obj/item/stack/sheet/glass/NG = new (user.loc) - for (var/obj/item/stack/sheet/glass/G in user.loc) - if(G==NG) - continue - if(G.amount>=G.max_amount) - continue - G.attackby(NG, user) - usr << "You add the newly-formed glass to the stack. It now contains [NG.amount] sheets." - //SN src = null - del(src) - return - return ..() - -/obj/item/weapon/shard/Crossed(AM as mob|obj) - if(ismob(AM)) - var/mob/M = AM - M << "\red You step in the broken glass!" - playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - - if(H.species.flags & IS_SYNTHETIC) - return - - if( !H.shoes && ( !H.wear_suit || !(H.wear_suit.body_parts_covered & FEET) ) ) - var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot")) - if(affecting.status & ORGAN_ROBOT) - return - H.Weaken(3) - if(affecting.take_damage(5, 0)) - H.UpdateDamageIcon() - H.updatehealth() - ..() - - /* diff --git a/code/game/objects/items/weapons/implants/implanter.dm b/code/game/objects/items/weapons/implants/implanter.dm index f92f5b759ce..19cb00b999d 100644 --- a/code/game/objects/items/weapons/implants/implanter.dm +++ b/code/game/objects/items/weapons/implants/implanter.dm @@ -112,7 +112,9 @@ return ..() -/obj/item/weapon/implanter/compressed/afterattack(atom/A, mob/user as mob) +/obj/item/weapon/implanter/compressed/afterattack(atom/A, mob/user as mob, proximity) + if(!proximity) + return if(istype(A,/obj/item) && imp) var/obj/item/weapon/implant/compressed/c = imp if (c.scanned) diff --git a/code/game/objects/items/weapons/shards.dm b/code/game/objects/items/weapons/shards.dm new file mode 100644 index 00000000000..1eeb6dff8df --- /dev/null +++ b/code/game/objects/items/weapons/shards.dm @@ -0,0 +1,114 @@ +// Glass shards + +/obj/item/weapon/shard + name = "glass shard" + icon = 'icons/obj/shards.dmi' + icon_state = "large" + sharp = 1 + edge = 1 + desc = "Could probably be used as ... a throwing weapon?" + w_class = 2.0 + force = 5.0 + throwforce = 8.0 + item_state = "shard-glass" + matter = list("glass" = 3750) + attack_verb = list("stabbed", "slashed", "sliced", "cut") + +/obj/item/weapon/shard/suicide_act(mob/user) + viewers(user) << pick("\red [user] is slitting \his wrists with \the [src]! It looks like \he's trying to commit suicide.", \ + "\red [user] is slitting \his throat with \the [src]! It looks like \he's trying to commit suicide.") + return (BRUTELOSS) + +/obj/item/weapon/shard/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + playsound(loc, 'sound/weapons/bladeslice.ogg', 50, 1, -1) + return ..() + +/obj/item/weapon/shard/Bump() + + spawn( 0 ) + if (prob(20)) + src.force = 15 + else + src.force = 4 + ..() + return + return + +/obj/item/weapon/shard/New() + + src.icon_state = pick("large", "medium", "small") + switch(src.icon_state) + if("small") + src.pixel_x = rand(-12, 12) + src.pixel_y = rand(-12, 12) + if("medium") + src.pixel_x = rand(-8, 8) + src.pixel_y = rand(-8, 8) + if("large") + src.pixel_x = rand(-5, 5) + src.pixel_y = rand(-5, 5) + else + return + +/obj/item/weapon/shard/attackby(obj/item/weapon/W as obj, mob/user as mob) + ..() + if ( istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0, user)) + var/obj/item/stack/sheet/glass/NG = new (user.loc) + for (var/obj/item/stack/sheet/glass/G in user.loc) + if(G==NG) + continue + if(G.amount>=G.max_amount) + continue + G.attackby(NG, user) + usr << "You add the newly-formed glass to the stack. It now contains [NG.amount] sheets." + //SN src = null + del(src) + return + return ..() + +/obj/item/weapon/shard/Crossed(AM as mob|obj) + if(ismob(AM)) + var/mob/M = AM + M << "\red You step on \the [src]!" + playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1) // not sure how to handle metal shards with sounds + if(ishuman(M)) + var/mob/living/carbon/human/H = M + + if(H.species.flags & IS_SYNTHETIC) + return + + if( !H.shoes && ( !H.wear_suit || !(H.wear_suit.body_parts_covered & FEET) ) ) + var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot")) + if(affecting.status & ORGAN_ROBOT) + return + H.Weaken(3) + if(affecting.take_damage(5, 0)) + H.UpdateDamageIcon() + H.updatehealth() + ..() + +// Shrapnel + +/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 \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/fancy.dm b/code/game/objects/items/weapons/storage/fancy.dm index 5353b6871db..061548848cb 100644 --- a/code/game/objects/items/weapons/storage/fancy.dm +++ b/code/game/objects/items/weapons/storage/fancy.dm @@ -68,6 +68,7 @@ icon_type = "egg" name = "egg box" storage_slots = 12 + max_combined_w_class = 24 can_hold = list("/obj/item/weapon/reagent_containers/food/snacks/egg") /obj/item/weapon/storage/fancy/egg_box/New() diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 64d72508d31..782a5a17455 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -65,7 +65,9 @@ O.show_message(text("\red [] waves [] over []'s head.", user, src, M), 1) return -/obj/item/weapon/nullrod/afterattack(atom/A, mob/user as mob) +/obj/item/weapon/nullrod/afterattack(atom/A, mob/user as mob, proximity) + if(!proximity) + return if (istype(A, /turf/simulated/floor)) user << "\blue You hit the floor with the [src]." call(/obj/effect/rune/proc/revealrunes)(src) @@ -231,7 +233,7 @@ update_icon(user) /obj/item/weapon/butterfly/switchblade - name = "/proper switchblade" + name = "switchblade" desc = "A classic switchblade with gold engraving. Just holding it makes you feel like a gangster." icon_state = "switchblade" 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 19bbcf36f45..b3b0404054d 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -47,13 +47,21 @@ buckle_mob(M, user) return +/obj/structure/stool/bed/proc/afterbuckle(mob/M as mob) // Called after somebody buckled / unbuckled + return + + /obj/structure/stool/bed/proc/unbuckle() if(buckled_mob) if(buckled_mob.buckled == src) //this is probably unneccesary, but it doesn't hurt buckled_mob.buckled = null buckled_mob.anchored = initial(buckled_mob.anchored) buckled_mob.update_canmove() + + var/M = buckled_mob buckled_mob = null + + afterbuckle(M) return /obj/structure/stool/bed/proc/manual_unbuckle(mob/user as mob) @@ -103,6 +111,7 @@ M.update_canmove() src.buckled_mob = M src.add_fingerprint(user) + afterbuckle(M) return /* diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index 115806277cd..31a1681eace 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -95,25 +95,40 @@ /obj/structure/stool/bed/chair/comfy name = "comfy chair" desc = "It looks comfy." + icon_state = "comfychair" + color = rgb(255,255,255) + var/image/armrest = null + +/obj/structure/stool/bed/chair/comfy/New() + armrest = image("icons/obj/objects.dmi", "comfychair_armrest") + armrest.layer = MOB_LAYER + 0.1 + + return ..() + +/obj/structure/stool/bed/chair/comfy/afterbuckle() + if(buckled_mob) + overlays += armrest + else + overlays -= armrest /obj/structure/stool/bed/chair/comfy/brown - icon_state = "comfychair_brown" + color = rgb(255,113,0) /obj/structure/stool/bed/chair/comfy/beige - icon_state = "comfychair_beige" + color = rgb(255,253,195) /obj/structure/stool/bed/chair/comfy/teal - icon_state = "comfychair_teal" + color = rgb(0,255,255) /obj/structure/stool/bed/chair/office anchored = 0 movable = 1 /obj/structure/stool/bed/chair/comfy/black - icon_state = "comfychair_black" + color = rgb(167,164,153) /obj/structure/stool/bed/chair/comfy/lime - icon_state = "comfychair_lime" + color = rgb(255,251,0) /obj/structure/stool/bed/chair/office/Move() ..() diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index 705351acfc4..9c00ee38963 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -18,12 +18,17 @@ buckled_mob.dir = dir /obj/structure/stool/bed/chair/wheelchair/relaymove(mob/user, direction) + // Redundant check? if(user.stat || user.stunned || user.weakened || user.paralysis || user.lying || user.restrained()) if(user==pulling) pulling = null user.pulledby = null user << "\red You lost your grip!" return + if(buckled_mob && pulling && user == buckled_mob) + if(pulling.stat || pulling.stunned || pulling.weakened || pulling.paralysis || pulling.lying || pulling.restrained()) + pulling.pulledby = null + pulling = null if(user.pulling && (user == pulling)) pulling = null user.pulledby = null @@ -136,12 +141,12 @@ if(propelled || (pulling && (pulling.a_intent == "hurt"))) var/mob/living/occupant = buckled_mob unbuckle() - + if (pulling && (pulling.a_intent == "hurt")) occupant.throw_at(A, 3, 3, pulling) else if (propelled) occupant.throw_at(A, 3, propelled) - + occupant.apply_effect(6, STUN, 0) occupant.apply_effect(6, WEAKEN, 0) occupant.apply_effect(6, STUTTER, 0) diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index b3cdba60306..39c19c76fe0 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -254,7 +254,6 @@ //send resources to the client. It's here in its own proc so we can move it around easiliy if need be /client/proc/send_resources() -// preload_vox() //Causes long delays with initial start window and subsequent windows when first logged in. getFiles( 'html/search.js', diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 38ef31dbf1a..6e078326feb 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -292,6 +292,8 @@ datum/preferences if(total_cost < MAX_GEAR_COST) dat += " \[add\]" + if(gear && gear.len) + dat += " \[remove\]" dat += "

Occupation Choices
" dat += "\tSet Preferences
" @@ -999,10 +1001,18 @@ datum/preferences user << "\red That item will exceed the maximum loadout cost of [MAX_GEAR_COST] points." else if(href_list["task"] == "remove") - var/to_remove = href_list["gear"] - if(!to_remove) return + + if(isnull(gear) || !islist(gear)) + gear = list() + if(!gear.len) + return + + var/choice = input(user, "Select gear to remove: ") as null|anything in gear + if(!choice) + return + for(var/gear_name in gear) - if(gear_name == to_remove) + if(gear_name == choice) gear -= gear_name break diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 3f3fbbd8776..615b5f085fd 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -133,7 +133,7 @@ /obj/item/clothing/shoes/swimmingfins desc = "Help you swim good." name = "swimming fins" - icon_state = "flipperfeet" + icon_state = "flippers" flags = NOSLIP slowdown = SHOES_SLOWDOWN+1 species_restricted = null diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 53824fc9d6e..83b0616aeaf 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -170,6 +170,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/response = alert(src, "Are you -sure- you want to ghost?\n(You are alive. If you ghost, you won't be able to play this round for another 30 minutes! You can't change your mind so choose wisely!)","Are you sure you want to ghost?","Ghost","Stay in body") if(response != "Ghost") return //didn't want to ghost after-all resting = 1 + var/turf/location = get_turf(src) + message_admins("[key_name_admin(usr)] has ghosted. (JMP)") + log_game("[key_name_admin(usr)] has ghosted.") var/mob/dead/observer/ghost = ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3 ghost.timeofdeath = world.time // Because the living mob won't have a time of death and we want the respawn timer to work properly. return diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 09c0e0e4cb4..91253e2ca6c 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -85,15 +85,18 @@ return 0 -/mob/proc/drop_from_inventory(var/obj/item/W) +/mob/proc/drop_from_inventory(var/obj/item/W, var/atom/Target = null) if(W) + if(!Target) + Target = loc + if(client) client.screen -= W u_equip(W) if(!W) return 1 // self destroying objects (tk, grabs) W.layer = initial(W.layer) - W.loc = loc + W.loc = Target - var/turf/T = get_turf(loc) + var/turf/T = get_turf(Target) if(isturf(T)) T.Entered(W) @@ -316,4 +319,3 @@ if (del_on_fail) del(W) return equipped - diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index d8fd4b70007..575996a84f7 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -104,9 +104,9 @@ shock_damage *= siemens_coeff if (shock_damage<1) return 0 - + src.apply_damage(shock_damage, BURN, def_zone, used_weapon="Electrocution") - + playsound(loc, "sparks", 50, 1, -1) if (shock_damage > 10) src.visible_message( @@ -217,7 +217,7 @@ var/mob/living/carbon/human/H = src H.w_uniform.add_fingerprint(M) - if(lying) + if(lying || src.sleeping) src.sleeping = max(0,src.sleeping-5) if(src.sleeping == 0) src.resting = 0 diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index e10c35efa7a..2a9850171e7 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -280,6 +280,7 @@ for(var/datum/wound/W in temp.wounds) if(W.internal && !temp.open) continue // can't see internal wounds var/this_wound_desc = W.desc + if(W.damage_type == BURN && W.salved) this_wound_desc = "salved [this_wound_desc]" if(W.bleeding()) this_wound_desc = "bleeding [this_wound_desc]" else if(W.bandaged) this_wound_desc = "bandaged [this_wound_desc]" if(W.germ_level > 600) this_wound_desc = "badly infected [this_wound_desc]" diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 54ed39584c3..0080f217f95 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -2,7 +2,7 @@ //NOTE: Breathing happens once per FOUR TICKS, unless the last breath fails. In which case it happens once per ONE TICK! So oxyloss healing is done once per 4 ticks while oxyloss damage is applied once per tick! #define HUMAN_MAX_OXYLOSS 1 //Defines how much oxyloss humans can get per tick. A tile with no air at all (such as space) applies this value, otherwise it's a percentage of it. -#define HUMAN_CRIT_MAX_OXYLOSS ( (last_tick_duration) /5) //The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 100HP to get through, so (1/3)*last_tick_duration per second. Breaths however only happen every 4 ticks. +#define HUMAN_CRIT_MAX_OXYLOSS ( (last_tick_duration) /6) //The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 50HP to get through, so (1/6)*last_tick_duration per second. Breaths however only happen every 4 ticks. #define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point #define HEAT_DAMAGE_LEVEL_2 4 //Amount of damage applied when your body temperature passes the 400K point @@ -35,6 +35,8 @@ /mob/living/carbon/human/Life() + + set invisibility = 0 set background = 1 @@ -73,7 +75,7 @@ //No need to update all of these procs if the guy is dead. if(stat != DEAD && !in_stasis) - if(air_master.current_cycle%4==2 || failed_last_breath) //First, resolve location and get a breath + if(air_master.current_cycle%4==2 || failed_last_breath || (health < config.health_threshold_crit)) //First, resolve location and get a breath breathe() //Only try to take a breath every 4 ticks, unless suffocating else //Still give containing object the chance to interact @@ -130,38 +132,52 @@ for(var/obj/item/weapon/grab/G in src) G.process() +// Calculate how vulnerable the human is to under- and overpressure. +// Returns 0 (equals 0 %) if sealed in an undamaged suit, 1 if unprotected (equals 100%). +// Suitdamage can modifiy this in 10% steps. +/mob/living/carbon/human/proc/get_pressure_weakness() -//Much like get_heat_protection(), this returns a 0 - 1 value, which corresponds to the percentage of protection based on what you're wearing and what you're exposed to. -/mob/living/carbon/human/proc/get_pressure_protection() - var/pressure_adjustment_coefficient = 1 //Determins how much the clothing you are wearing protects you in percent. + var/pressure_adjustment_coefficient = 1 // Assume no protection at first. - if(head && (head.flags & STOPSPRESSUREDMAGE)) - pressure_adjustment_coefficient -= PRESSURE_HEAD_REDUCTION_COEFFICIENT + if(wear_suit && (wear_suit.flags & STOPSPRESSUREDMAGE) && head && (head.flags & STOPSPRESSUREDMAGE)) // Complete set of pressure-proof suit worn, assume fully sealed. + pressure_adjustment_coefficient = 0 - if(wear_suit && (wear_suit.flags & STOPSPRESSUREDMAGE)) - pressure_adjustment_coefficient -= PRESSURE_SUIT_REDUCTION_COEFFICIENT - - //Handles breaches in your space suit. 10 suit damage equals a 100% loss of pressure reduction. + // Handles breaches in your space suit. 10 suit damage equals a 100% loss of pressure protection. if(istype(wear_suit,/obj/item/clothing/suit/space)) var/obj/item/clothing/suit/space/S = wear_suit if(S.can_breach && S.damage) - var/pressure_loss = S.damage * 0.1 - pressure_adjustment_coefficient += pressure_loss + pressure_adjustment_coefficient += S.damage * 0.1 - pressure_adjustment_coefficient = min(1,max(pressure_adjustment_coefficient,0)) //So it isn't less than 0 or larger than 1. + pressure_adjustment_coefficient = min(1,max(pressure_adjustment_coefficient,0)) // So it isn't less than 0 or larger than 1. - return 1 - pressure_adjustment_coefficient //want 0 to be bad protection, 1 to be good protection + return pressure_adjustment_coefficient +// Calculate how much of the enviroment pressure-difference affects the human. /mob/living/carbon/human/calculate_affecting_pressure(var/pressure) - ..() - var/pressure_difference = abs( pressure - ONE_ATMOSPHERE ) + var/pressure_difference - pressure_difference = pressure_difference * (1 - get_pressure_protection()) + // First get the absolute pressure difference. + if(pressure < ONE_ATMOSPHERE) // We are in an underpressure. + pressure_difference = ONE_ATMOSPHERE - pressure + + else //We are in an overpressure or standard atmosphere. + pressure_difference = pressure - ONE_ATMOSPHERE + + if(pressure_difference < 5) // If the difference is small, don't bother calculating the fraction. + pressure_difference = 0 - if(pressure > ONE_ATMOSPHERE) - return ONE_ATMOSPHERE + pressure_difference else + // Otherwise calculate how much of that absolute pressure difference affects us, can be 0 to 1 (equals 0% to 100%). + // This is our relative difference. + pressure_difference *= get_pressure_weakness() + + // The difference is always positive to avoid extra calculations. + // Apply the relative difference on a standard atmosphere to get the final result. + // The return value will be the adjusted_pressure of the human that is the basis of pressure warnings and damage. + if(pressure < ONE_ATMOSPHERE) return ONE_ATMOSPHERE - pressure_difference + else + return ONE_ATMOSPHERE + pressure_difference /mob/living/carbon/human proc/handle_disabilities() diff --git a/code/modules/mob/living/carbon/monkey/diona.dm b/code/modules/mob/living/carbon/monkey/diona.dm index fe21c7a6ae8..0a123347010 100644 --- a/code/modules/mob/living/carbon/monkey/diona.dm +++ b/code/modules/mob/living/carbon/monkey/diona.dm @@ -108,7 +108,7 @@ var/list/trays = list() for(var/obj/machinery/portable_atmospherics/hydroponics/tray in range(1)) - if(tray.nutrilevel < 10) + if(tray.nutrilevel < 10 && src.Adjacent(tray)) trays += tray var/obj/machinery/portable_atmospherics/hydroponics/target = input("Select a tray:") as null|anything in trays @@ -127,7 +127,7 @@ var/list/trays = list() for(var/obj/machinery/portable_atmospherics/hydroponics/tray in range(1)) - if(tray.weedlevel > 0) + if(tray.weedlevel > 0 && src.Adjacent(tray)) trays += tray var/obj/machinery/portable_atmospherics/hydroponics/target = input("Select a tray:") as null|anything in trays @@ -186,7 +186,8 @@ var/list/choices = list() for(var/mob/living/carbon/human/H in oview(1,src)) - choices += H + if(src.Adjacent(H)) + choices += H var/mob/living/carbon/human/M = input(src,"Who do you wish to take a sample from?") in null|choices diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 08bd3cd97e9..ce681063582 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -80,11 +80,6 @@ emote(pick("scratch","jump","roll","tail")) updatehealth() - -/mob/living/carbon/monkey/calculate_affecting_pressure(var/pressure) - ..() - return pressure - /mob/living/carbon/monkey proc/handle_disabilities() @@ -389,9 +384,8 @@ //Moved these vars here for use in the fuck-it-skip-processing check. var/pressure = environment.return_pressure() - var/adjusted_pressure = calculate_affecting_pressure(pressure) //Returns how much pressure actually affects the mob. + if(pressure < WARNING_HIGH_PRESSURE && pressure > WARNING_LOW_PRESSURE && abs(environment.temperature - 293.15) < 20 && abs(bodytemperature - 310.14) < 0.5 && environment.gas["phoron"] < MOLES_PHORON_VISIBLE) - if(adjusted_pressure < WARNING_HIGH_PRESSURE && adjusted_pressure > WARNING_LOW_PRESSURE && abs(environment.temperature - 293.15) < 20 && abs(bodytemperature - 310.14) < 0.5 && environment.gas["phoron"] < gas_data.overlay_limit["phoron"]) //Hopefully should fix the walk-inside-still-pressure-warning issue. if(pressure_alert) @@ -413,9 +407,9 @@ bodytemperature += 0.1*(environment.temperature - bodytemperature)*environment_heat_capacity/(environment_heat_capacity + 270000) //Account for massive pressure differences - switch(adjusted_pressure) + switch(pressure) if(HAZARD_HIGH_PRESSURE to INFINITY) - adjustBruteLoss( min( ( (adjusted_pressure / HAZARD_HIGH_PRESSURE) -1 )*PRESSURE_DAMAGE_COEFFICIENT , MAX_HIGH_PRESSURE_DAMAGE) ) + adjustBruteLoss( min( ( (pressure / HAZARD_HIGH_PRESSURE) -1 )*PRESSURE_DAMAGE_COEFFICIENT , MAX_HIGH_PRESSURE_DAMAGE) ) pressure_alert = 2 if(WARNING_HIGH_PRESSURE to HAZARD_HIGH_PRESSURE) pressure_alert = 1 diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 3ab8632e8ec..2c0b3bbdb62 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -18,7 +18,7 @@ //This proc is used for mobs which are affected by pressure to calculate the amount of pressure that actually //affects them once clothing is factored in. ~Errorage /mob/living/proc/calculate_affecting_pressure(var/pressure) - return 0 + return //sort of a legacy burn method for /electrocute, /shock, and the e_chair @@ -300,6 +300,7 @@ dead_mob_list -= src living_mob_list += src tod = null + timeofdeath = 0 // restore us to conciousness stat = CONSCIOUS diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 758883dfff7..792ef9296f9 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -446,13 +446,6 @@ var/list/ai_verbs_default = list( lawchannel = setchannel checklaws() - //Uncomment this line of code if you are enabling the AI Vocal (VOX) announcements. -/* - if(href_list["say_word"]) - play_vox_word(href_list["say_word"], null, src) - 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/say.dm b/code/modules/mob/living/silicon/ai/say.dm index f3f1b4e1c80..62a75fad245 100644 --- a/code/modules/mob/living/silicon/ai/say.dm +++ b/code/modules/mob/living/silicon/ai/say.dm @@ -3,126 +3,3 @@ return parent.say(message) //If there is a defined "parent" AI, it is actually an AI, and it is alive, anything the AI tries to say is said by the parent instead. return ..(message) - -// These Verbs are commented out since we've disabled the AI vocal (VOX) announcements. -// If you re-enable them there is 3 lines in ai.dm Topic() that you need to uncomment as well. -// just search for VOX in there. - -/* -var/announcing_vox = 0 // Stores the time of the last announcement -var/const/VOX_CHANNEL = 200 -var/const/VOX_DELAY = 100 // 10 seconds -var/const/VOX_PATH = "sound/vox/" - -/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 to everyone on the same level at you.
\ - \ - WARNING:
Misuse of the announcement system will get you job banned.
" - - var/index = 0 - var/list/vox_words = flist(VOX_PATH) // flist will return a list of strings with all the files in the path - for(var/word in vox_words) - index++ - var/stripped_word = copytext(word, 1, length(word) - 3) // Remove the .wav - dat += "[capitalize(stripped_word)]" - if(index != vox_words.len) - dat += " / " - - src << browse(dat, "window=announce_help;size=500x400") - - -/mob/living/silicon/ai/verb/announcement() - - set name = "Announcement" - set desc = "Create a vocal announcement by typing in the available words to create a sentence." - set category = "AI Commands" - - if(announcing_vox > world.time) - src << "Please wait [round((announcing_vox - world.time) / 10)] seconds." - return - - var/message = input(src, "WARNING: Misuse of this verb can result in you being job banned. More help is available in 'Announcement Help'", "Announcement", src.last_announcement) as text - - last_announcement = message - - if(!message || announcing_vox > world.time) - return - - var/list/words = text2list(trim(message), " ") - var/list/incorrect_words = list() - - if(words.len > 30) - words.len = 30 - - // Detect incorrect words which aren't .wav files. - for(var/word in words) - word = trim(word) - if(!word) - words -= word - continue - if(!vox_word_exists(word)) - incorrect_words += word - - if(incorrect_words.len) - src << "These words are not available on the announcement system: [english_list(incorrect_words)]." - return - - announcing_vox = world.time + VOX_DELAY - - log_game("[key_name_admin(src)] made a vocal announcement with the following message: [message].") - - for(var/word in words) - play_vox_word(word, src.z, null) - - -/proc/play_vox_word(var/word, var/z_level, var/mob/only_listener) - - word = lowertext(word) - - if(vox_word_exists(word)) - - var/sound_file = get_vox_file(word) - var/sound/voice = sound(sound_file, wait = 1, channel = VOX_CHANNEL) - voice.status = SOUND_STREAM - - // If there is no single listener, broadcast to everyone in the same z level - if(!only_listener) - // 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 - else - only_listener << voice - return 1 - return 0 - - -/proc/vox_word_exists(var/word) - return fexists("[VOX_PATH][word].wav") - -/proc/get_vox_file(var/word) - if(vox_word_exists(word)) - return file("[VOX_PATH][word].wav") - -// Dynamically loading it has bad results with sounds overtaking each other, even with the wait variable. -// We send the file to the user when they login. - -/client/proc/preload_vox() - var/list/vox_files = flist(VOX_PATH) - for(var/file in vox_files) - // src << "Downloading [file]" - var/sound/S = sound("[VOX_PATH][file]") - src << browse_rsc(S) - - -*/ diff --git a/code/modules/mob/living/silicon/pai/recruit.dm b/code/modules/mob/living/silicon/pai/recruit.dm index 33901641bde..73a6d59c158 100644 --- a/code/modules/mob/living/silicon/pai/recruit.dm +++ b/code/modules/mob/living/silicon/pai/recruit.dm @@ -19,6 +19,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates /datum/paiController + var/inquirer = null var/list/pai_candidates = list() var/list/asked = list() @@ -344,6 +345,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates user << browse(dat, "window=findPai") + /datum/paiController/proc/requestRecruits() for(var/mob/dead/observer/O in player_list) if(O.has_enabled_antagHUD == 1 && config.antag_hud_restricted) @@ -368,7 +370,7 @@ var/datum/paiController/paiController // Global handler for pAI candidates if(!C) return asked.Add(C.key) asked[C.key] = world.time - var/response = alert(C, "Someone is requesting a pAI personality. Would you like to play as a personal AI?", "pAI Request", "Yes", "No", "Never for this round") + var/response = alert(C, "[inquirer] is requesting a pAI personality. Would you like to play as a personal AI?", "pAI Request", "Yes", "No", "Never for this round") if(!C) return //handle logouts that happen whilst the alert is waiting for a response. if(response == "Yes") recruitWindow(C.mob) diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm index dfe1a9db29e..18adecccc36 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm @@ -69,9 +69,9 @@ /obj/item/weapon/gripper/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) return -/obj/item/weapon/gripper/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) +/obj/item/weapon/gripper/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, proximity, params) - if(!target || !flag) //Target is invalid or we are not adjacent. + if(!target || !proximity) //Target is invalid or we are not adjacent. return //There's some weirdness with items being lost inside the arm. Trying to fix all cases. ~Z @@ -80,25 +80,22 @@ wrapped = thing break - if(wrapped) //Already have an item. - + if(wrapped) //Already have an item. + + //Temporary put wrapped into user so target's attackby() checks pass. wrapped.loc = user - //Pass the attack on to the target. + + //Pass the attack on to the target. This might delete/relocate wrapped. target.attackby(wrapped,user) - - if(wrapped && src && wrapped.loc == user) + + //If wrapped did neither get deleted nor put into target, put it back into the gripper. + if(wrapped && user && (wrapped.loc == user)) wrapped.loc = src - - //Sanity/item use checks. - - if(!wrapped || !user) - return - - if(wrapped.loc != src.loc) + else wrapped = null return - if(istype(target,/obj/item)) //Check that we're not pocketing a mob. + else if(istype(target,/obj/item)) //Check that we're not pocketing a mob. //...and that the item is not in a container. if(!isturf(target.loc)) @@ -158,9 +155,9 @@ /obj/item/weapon/matter_decompiler/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) return -/obj/item/weapon/matter_decompiler/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag, params) +/obj/item/weapon/matter_decompiler/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, proximity, params) - if(!flag) return //Not adjacent. + if(!proximity) return //Not adjacent. //We only want to deal with using this on turfs. Specific items aren't important. var/turf/T = get_turf(target) @@ -357,4 +354,4 @@ stack = stack_plastic stack.amount++ - decompiler.stored_comms[type]--; \ No newline at end of file + decompiler.stored_comms[type]--; diff --git a/code/modules/mob/living/silicon/robot/robot_damage.dm b/code/modules/mob/living/silicon/robot/robot_damage.dm index ed66f1ae499..e0ebe671f19 100644 --- a/code/modules/mob/living/silicon/robot/robot_damage.dm +++ b/code/modules/mob/living/silicon/robot/robot_damage.dm @@ -1,9 +1,9 @@ /mob/living/silicon/robot/updatehealth() if(status_flags & GODMODE) - health = 200 + health = maxHealth stat = CONSCIOUS return - health = 200 - (getBruteLoss() + getFireLoss()) + health = maxHealth - (getBruteLoss() + getFireLoss()) return /mob/living/silicon/robot/getBruteLoss() @@ -145,4 +145,4 @@ brute -= (picked.brute_damage - brute_was) burn -= (picked.electronics_damage - burn_was) - parts -= picked \ No newline at end of file + parts -= picked diff --git a/code/modules/mob/living/silicon/robot/robot_items.dm b/code/modules/mob/living/silicon/robot/robot_items.dm index 931cb0556be..33748f056e2 100644 --- a/code/modules/mob/living/silicon/robot/robot_items.dm +++ b/code/modules/mob/living/silicon/robot/robot_items.dm @@ -6,7 +6,9 @@ name = "RoboTray" desc = "An autoloading tray specialized for carrying refreshments." -/obj/item/weapon/tray/robotray/afterattack(atom/target, mob/user as mob) +/obj/item/weapon/tray/robotray/afterattack(atom/target, mob/user as mob, proximity) + if(!proximity) + return if ( !target ) return // pick up items, mostly copied from base tray pickup proc diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 45acf2c713a..42f923aa291 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -168,7 +168,8 @@ stacktypes = list( /obj/item/stack/sheet/metal = 50, /obj/item/stack/sheet/plasteel = 10, - /obj/item/stack/sheet/rglass = 50 + /obj/item/stack/sheet/rglass = 50, + /obj/item/stack/rods = 50 ) New() diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index f044d849ecc..9071e3193b9 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -434,6 +434,9 @@ // And uncomment this, too. //new_character.dna.UpdateSE() + // Do the initial caching of the player's body icons. + new_character.regenerate_icons() + new_character.key = key //Manually transfer the key to log them in return new_character diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 64eda75b919..05f7635bcf4 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -206,6 +206,9 @@ This function completely restores a damaged organ to perfect condition. perma_injury = 0 brute_dam = 0 burn_dam = 0 + germ_level = 0 + wounds.Cut() + number_wounds = 0 // handle internal organs for(var/datum/organ/internal/current_organ in internal_organs) @@ -265,25 +268,6 @@ This function completely restores a damaged organ to perfect condition. if(W) wounds += W -/datum/organ/external/proc/get_wound_type(var/type = CUT, var/damage) - //if you look a the names in the wound's stages list for each wound type you will see the logic behind these values - switch(type) - if(CUT) - if (damage <= 5) return /datum/wound/cut/small - if (damage <= 15) return /datum/wound/cut/deep - if (damage <= 25) return /datum/wound/cut/flesh - if (damage <= 50) return /datum/wound/cut/gaping - if (damage <= 60) return /datum/wound/cut/gaping_big - return /datum/wound/cut/massive - if(BRUISE) - return /datum/wound/bruise - if(BURN) - if (damage <= 5) return /datum/wound/burn/moderate - if (damage <= 15) return /datum/wound/burn/large - if (damage <= 30) return /datum/wound/burn/severe - if (damage <= 40) return /datum/wound/burn/deep - return /datum/wound/burn/carbonised - /**************************************************** PROCESSING & UPDATING ****************************************************/ @@ -396,10 +380,9 @@ Note that amputating the affected organ does in fact remove the infection from t if(germ_level >= INFECTION_LEVEL_ONE) //having an infection raises your body temperature - var/fever_temperature = (owner.species.heat_level_1 - owner.species.body_temperature - 1)* min(germ_level/INFECTION_LEVEL_TWO, 1) + owner.species.body_temperature - if (fever_temperature > owner.bodytemperature) - //need to make sure we raise temperature fast enough to get around environmental cooling preventing us from reaching fever_temperature - owner.bodytemperature += (fever_temperature - T20C)/BODYTEMP_COLD_DIVISOR + 1 + var/fever_temperature = (owner.species.heat_level_1 - owner.species.body_temperature - 5)* min(germ_level/INFECTION_LEVEL_TWO, 1) + owner.species.body_temperature + //need to make sure we raise temperature fast enough to get around environmental cooling preventing us from reaching fever_temperature + owner.bodytemperature += between(0, (fever_temperature - T20C)/BODYTEMP_COLD_DIVISOR + 1, fever_temperature - owner.bodytemperature) if(prob(round(germ_level/10))) if (antibiotics < 5) diff --git a/code/modules/organs/wound.dm b/code/modules/organs/wound.dm index db3dd8be7c4..9d4a5364ae1 100644 --- a/code/modules/organs/wound.dm +++ b/code/modules/organs/wound.dm @@ -7,7 +7,7 @@ var/current_stage = 0 // description of the wound - var/desc = "" + var/desc = "wound" //default in case something borks // amount of damage this wound causes var/damage = 0 @@ -207,6 +207,44 @@ return (damage_type == BRUISE && wound_damage() >= 20 || damage_type == CUT && wound_damage() >= 5) +/** WOUND DEFINITIONS **/ + +//Note that the MINIMUM damage before a wound can be applied should correspond to +//the damage amount for the stage with the same name as the wound. +//e.g. /datum/wound/cut/deep should only be applied for 15 damage and up, +//because in it's stages list, "deep cut" = 15. +/proc/get_wound_type(var/type = CUT, var/damage) + switch(type) + if(CUT) + switch(damage) + if(70 to INFINITY) + return /datum/wound/cut/massive + if(60 to 70) + return /datum/wound/cut/gaping_big + if(50 to 60) + return /datum/wound/cut/gaping + if(25 to 50) + return /datum/wound/cut/flesh + if(15 to 25) + return /datum/wound/cut/deep + if(0 to 15) + return /datum/wound/cut/small + if(BRUISE) + return /datum/wound/bruise + if(BURN) + switch(damage) + if(50 to INFINITY) + return /datum/wound/burn/carbonised + if(40 to 50) + return /datum/wound/burn/deep + if(30 to 40) + return /datum/wound/burn/severe + if(15 to 30) + return /datum/wound/burn/large + if(0 to 15) + return /datum/wound/burn/moderate + return null //no wound + /** CUTS **/ /datum/wound/cut/small // link wound descriptions to amounts of damage @@ -220,7 +258,7 @@ damage_type = CUT /datum/wound/cut/flesh - max_bleeding_stage = 3 + max_bleeding_stage = 4 stages = list("ugly ripped flesh wound" = 35, "ugly flesh wound" = 30, "flesh wound" = 25, "blood soaked clot" = 15, "large scab" = 5, "fresh skin" = 0) damage_type = CUT @@ -249,25 +287,26 @@ datum/wound/cut/massive /** BURNS **/ /datum/wound/burn/moderate - stages = list("ripped burn" = 10, "moderate burn" = 5, "moderate salved burn" = 2, "fresh skin" = 0) + stages = list("ripped burn" = 10, "moderate burn" = 5, "healing moderate burn" = 2, "fresh skin" = 0) damage_type = BURN /datum/wound/burn/large - stages = list("ripped large burn" = 20, "large burn" = 15, "large salved burn" = 5, "fresh skin" = 0) + stages = list("ripped large burn" = 20, "large burn" = 15, "healing large burn" = 5, "fresh skin" = 0) damage_type = BURN /datum/wound/burn/severe - stages = list("ripped severe burn" = 35, "severe burn" = 30, "severe salved burn" = 10, "burn scar" = 0) + stages = list("ripped severe burn" = 35, "severe burn" = 30, "healing severe burn" = 10, "burn scar" = 0) damage_type = BURN /datum/wound/burn/deep - stages = list("ripped deep burn" = 45, "deep burn" = 40, "deep salved burn" = 15, "large burn scar" = 0) + stages = list("ripped deep burn" = 45, "deep burn" = 40, "healing deep burn" = 15, "large burn scar" = 0) damage_type = BURN /datum/wound/burn/carbonised - stages = list("carbonised area" = 50, "treated carbonised area" = 20, "massive burn scar" = 0) + stages = list("carbonised area" = 50, "healing carbonised area" = 20, "massive burn scar" = 0) damage_type = BURN +/** INTERNAL BLEEDING **/ /datum/wound/internal_bleeding internal = 1 stages = list("severed artery" = 30, "cut artery" = 20, "damaged artery" = 10, "bruised artery" = 5) @@ -284,4 +323,4 @@ datum/wound/cut/massive return 0 //cannot be merged /datum/wound/lost_limb/small - stages = list("ripped stump" = 40, "bloody stump" = 30, "clotted stump" = 15, "scarred stump" = 0) \ No newline at end of file + stages = list("ripped stump" = 40, "bloody stump" = 30, "clotted stump" = 15, "scarred stump" = 0) diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index fe2326c21b0..5fff5a7f311 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -30,6 +30,7 @@ var/icon/img //Big photo image var/scribble //Scribble on the back. var/icon/tiny + var/photo_size = 3 /obj/item/weapon/photo/attack_self(mob/user as mob) examine() @@ -54,9 +55,9 @@ user << browse_rsc(img, "tmp_photo.png") user << browse("[name]" \ + "" \ - + "" \ + + "" \ + "[scribble ? "
Written on the back:
[scribble]" : ""]"\ - + "", "window=book;size=192x[scribble ? 400 : 192]") + + "", "window=book;size=[64*photo_size]x[scribble ? 400 : 64*photo_size]") onclose(user, "[name]") return @@ -125,7 +126,15 @@ var/on = 1 var/icon_on = "camera" var/icon_off = "camera_off" + var/size = 3 +/obj/item/device/camera/verb/change_size() + set name = "Set Photo Focus" + set category = "Object" + var/nsize = input("Photo Size","Pick a size of resulting photo.") as null|anything in list(1,3,5,7) + if(nsize) + size = nsize + usr << "Camera will now take [size]x[size] photos." /obj/item/device/camera/attack(mob/living/carbon/human/M as mob, mob/user as mob) return @@ -157,6 +166,7 @@ //Bigger icon base to capture those icons that were shifted to the next tile //i.e. pretty much all wall-mounted machinery var/icon/res = icon('icons/effects/96x96.dmi', "") + res.Scale(size*32, size*32) // Initialize the photograph to black. res.Blend("#000", ICON_OVERLAY) @@ -171,7 +181,7 @@ // Sort the atoms into their layers var/list/sorted = sort_atoms_by_layer(atoms) - + var/center_offset = (size-1)/2 * 32 + 1 for(var/i; i <= sorted.len; i++) var/atom/A = sorted[i] if(A) @@ -184,19 +194,19 @@ // If they are, apply that effect to their picture. img.BecomeLying() // Calculate where we are relative to the center of the photo - var/xoff = (A.x - center.x) * 32 - var/yoff = (A.y - center.y) * 32 + var/xoff = (A.x - center.x) * 32 + center_offset + var/yoff = (A.y - center.y) * 32 + center_offset if (istype(A,/atom/movable)) xoff+=A:step_x yoff+=A:step_y - res.Blend(img, blendMode2iconMode(A.blend_mode), 33 + A.pixel_x + xoff, 33 + A.pixel_y + yoff) + res.Blend(img, blendMode2iconMode(A.blend_mode), A.pixel_x + xoff, A.pixel_y + yoff) // Lastly, render any contained effects on top. for(var/turf/the_turf in turfs) // Calculate where we are relative to the center of the photo - var/xoff = (the_turf.x - center.x) * 32 - var/yoff = (the_turf.y - center.y) * 32 - res.Blend(getFlatIcon(the_turf.loc), blendMode2iconMode(the_turf.blend_mode),33 + xoff,33 + yoff) + var/xoff = (the_turf.x - center.x) * 32 + center_offset + var/yoff = (the_turf.y - center.y) * 32 + center_offset + res.Blend(getFlatIcon(the_turf.loc), blendMode2iconMode(the_turf.blend_mode),xoff,yoff) return res @@ -246,22 +256,20 @@ return can_see /obj/item/device/camera/proc/captureimage(atom/target, mob/user, flag) - var/x_c = target.x - 1 - var/y_c = target.y + 1 + var/x_c = target.x - (size-1)/2 + var/y_c = target.y + (size-1)/2 var/z_c = target.z - - var/list/turfs = list() var/mobs = "" - for(var/i = 1; i <= 3; i++) - for(var/j = 1; j <= 3; j++) + for(var/i = 1; i <= size; i++) + for(var/j = 1; j <= size; j++) var/turf/T = locate(x_c, y_c, z_c) if(can_capture_turf(T, user)) turfs.Add(T) mobs += get_mobs(T) x_c++ y_c-- - x_c = x_c - 3 + x_c = x_c - size var/datum/picture/P = createpicture(target, user, turfs, mobs, flag) printpicture(user, P) @@ -286,6 +294,7 @@ P.fields["desc"] = mobs P.fields["pixel_x"] = rand(-10, 10) P.fields["pixel_y"] = rand(-10, 10) + P.fields["size"] = size return P @@ -303,3 +312,4 @@ desc = P.fields["desc"] pixel_x = P.fields["pixel_x"] pixel_y = P.fields["pixel_y"] + photo_size = P.fields["size"] \ No newline at end of file diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index cccf903872b..0edd2427614 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -35,6 +35,9 @@ /obj/machinery/power/smes/New() ..() spawn(5) + if(!powernet) + connect_to_network() + dir_loop: for(var/d in cardinal) var/turf/T = get_step(src, d) @@ -46,6 +49,8 @@ stat |= BROKEN return terminal.master = src + if(!terminal.powernet) + terminal.connect_to_network() updateicon() return @@ -385,11 +390,11 @@ /obj/machinery/power/smes/magical name = "magical power storage unit" desc = "A high-capacity superconducting magnetic energy storage (SMES) unit. Magically produces power." + capacity = 9000000 output = SMESMAXOUTPUT /obj/machinery/power/smes/magical/process() - capacity = INFINITY - charge = INFINITY + charge = 9000000 ..() /proc/rate_control(var/S, var/V, var/C, var/Min=1, var/Max=5, var/Limit=null) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index cc4a5b1354e..0d8986fcfd6 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -1099,8 +1099,7 @@ datum else if(!alien || alien != IS_DIONA) M.adjustOxyLoss(-2*REM) - if(holder.has_reagent("lexorin")) - holder.remove_reagent("lexorin", 2*REM) + holder.remove_reagent("lexorin", 2*REM) ..() return @@ -1123,8 +1122,7 @@ datum else if(!alien || alien != IS_DIONA) M.adjustOxyLoss(-M.getOxyLoss()) - if(holder.has_reagent("lexorin")) - holder.remove_reagent("lexorin", 2*REM) + holder.remove_reagent("lexorin", 2*REM) ..() return @@ -1221,8 +1219,7 @@ datum M.AdjustParalysis(-1) M.AdjustStunned(-1) M.AdjustWeakened(-1) - if(holder.has_reagent("mindbreaker")) - holder.remove_reagent("mindbreaker", 5) + holder.remove_reagent("mindbreaker", 5) M.hallucination = max(0, M.hallucination - 10) if(prob(60)) M.adjustToxLoss(1) ..() @@ -1315,7 +1312,7 @@ datum var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"] if(istype(E)) if(E.damage > 0) - E.damage -= 1 + E.damage = max(E.damage - 1, 0) ..() return @@ -1336,7 +1333,7 @@ datum //Peridaxon is hard enough to get, it's probably fair to make this all internal organs for(var/datum/organ/internal/I in H.internal_organs) if(I.damage > 0) - I.damage -= 0.20 + I.damage = max(I.damage - 0.20, 0) ..() return @@ -1600,8 +1597,7 @@ datum on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if(holder.has_reagent("inaprovaline")) - holder.remove_reagent("inaprovaline", 2*REM) + holder.remove_reagent("inaprovaline", 2*REM) ..() return reaction_obj(var/obj/O, var/volume) @@ -2052,7 +2048,7 @@ datum on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M.nutrition -= nutriment_factor + M.nutrition = max(M.nutrition - nutriment_factor, 0) M.overeatduration = 0 if(M.nutrition < 0)//Prevent from going into negatives. M.nutrition = 0 @@ -2202,25 +2198,14 @@ datum color = "#B31008" // rgb: 139, 166, 233 on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - if(!data) data = 1 - switch(data) - if(1 to 15) - M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT - if(holder.has_reagent("capsaicin")) - holder.remove_reagent("capsaicin", 5) - if(istype(M, /mob/living/carbon/slime)) - M.bodytemperature -= rand(5,20) - if(15 to 25) - M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT - if(istype(M, /mob/living/carbon/slime)) - M.bodytemperature -= rand(10,20) - if(25 to INFINITY) - M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT - if(prob(1)) M.emote("shiver") - if(istype(M, /mob/living/carbon/slime)) - M.bodytemperature -= rand(15,20) - data++ + if(!M) + M = holder.my_atom + M.bodytemperature = max(M.bodytemperature - 10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0) + if(prob(1)) + M.emote("shiver") + if(istype(M, /mob/living/carbon/slime)) + M.bodytemperature = max(M.bodytemperature - rand(10,20), 0) + holder.remove_reagent("capsaicin", 5) holder.remove_reagent(src.id, FOOD_METABOLISM) ..() return @@ -2629,8 +2614,7 @@ datum on_mob_life(var/mob/living/M as mob) if(M.getBruteLoss() && prob(20)) M.heal_organ_damage(1,0) - if(holder.has_reagent("capsaicin")) - holder.remove_reagent("capsaicin", 10*REAGENTS_METABOLISM) + holder.remove_reagent("capsaicin", 10*REAGENTS_METABOLISM) ..() return @@ -2673,7 +2657,7 @@ datum on_mob_life(var/mob/living/M as mob) ..() M.make_jittery(5) - if(adj_temp > 0 && holder.has_reagent("frostoil")) + if(adj_temp > 0) holder.remove_reagent("frostoil", 10*REAGENTS_METABOLISM) holder.remove_reagent(src.id, 0.1) @@ -2843,25 +2827,14 @@ datum adj_temp = -9 on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - if(!data) data = 1 - switch(data) - if(1 to 15) - M.bodytemperature -= 5 * TEMPERATURE_DAMAGE_COEFFICIENT - if(holder.has_reagent("capsaicin")) - holder.remove_reagent("capsaicin", 5) - if(istype(M, /mob/living/carbon/slime)) - M.bodytemperature -= rand(5,20) - if(15 to 25) - M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT - if(istype(M, /mob/living/carbon/slime)) - M.bodytemperature -= rand(10,20) - if(25 to INFINITY) - M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT - if(prob(1)) M.emote("shiver") - if(istype(M, /mob/living/carbon/slime)) - M.bodytemperature -= rand(15,20) - data++ + if(!M) + M = holder.my_atom + if(prob(1)) + M.emote("shiver") + M.bodytemperature = max(M.bodytemperature - 10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0) + if(istype(M, /mob/living/carbon/slime)) + M.bodytemperature = max(M.bodytemperature - rand(10,20), 0) + holder.remove_reagent("capsaicin", 5) holder.remove_reagent(src.id, FOOD_METABOLISM) ..() return diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm index c141a757e7d..d1f77e7ad86 100644 --- a/code/modules/reagents/reagent_containers/glass.dm +++ b/code/modules/reagents/reagent_containers/glass.dm @@ -94,6 +94,7 @@ spawn(5) src.reagents.clear_reagents() return else if(istype(target, /obj/structure/reagent_dispensers)) //A dispenser. Transfer FROM it TO us. + target.add_fingerprint(user) if(!target.reagents.total_volume && target.reagents) user << "\red [target] is empty." diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 54448450324..94772ba1955 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -114,11 +114,14 @@ overlays = new/list() /obj/structure/reagent_dispensers/fueltank/attackby(obj/item/weapon/W as obj, mob/user as mob) + src.add_fingerprint(user) if (istype(W,/obj/item/weapon/wrench)) user.visible_message("[user] wrenches [src]'s faucet [modded ? "closed" : "open"].", \ "You wrench [src]'s faucet [modded ? "closed" : "open"]") modded = modded ? 0 : 1 if (modded) + message_admins("[key_name_admin(user)] opened fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]), leaking fuel. (JMP)") + log_game("[key_name(user)] opened fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]), leaking fuel.") leak_fuel(amount_per_transfer_from_this) if (istype(W,/obj/item/device/assembly_holder)) if (rig) @@ -130,8 +133,8 @@ var/obj/item/device/assembly_holder/H = W if (istype(H.a_left,/obj/item/device/assembly/igniter) || istype(H.a_right,/obj/item/device/assembly/igniter)) - message_admins("[key_name_admin(user)] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.") - log_game("[key_name(user)] rigged fueltank at ([loc.x],[loc.y],[loc.z]) for explosion.") + message_admins("[key_name_admin(user)] rigged fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]) for explosion. (JMP)") + log_game("[key_name(user)] rigged fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]) for explosion.") rig = W user.drop_item() @@ -148,8 +151,8 @@ /obj/structure/reagent_dispensers/fueltank/bullet_act(var/obj/item/projectile/Proj) if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet)) if(istype(Proj.firer)) - message_admins("[key_name_admin(Proj.firer)] shot fueltank at ([loc.x],[loc.y],[loc.z]).") - log_game("[key_name(Proj.firer)] shot fueltank at ([loc.x],[loc.y],[loc.z]).") + message_admins("[key_name_admin(Proj.firer)] shot fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]) (JMP).") + log_game("[key_name(Proj.firer)] shot fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]).") if(!istype(Proj ,/obj/item/projectile/beam/lastertag) && !istype(Proj ,/obj/item/projectile/beam/practice) ) explode() @@ -174,18 +177,18 @@ if(temperature > T0C+500) explode() return ..() - + /obj/structure/reagent_dispensers/fueltank/Move() if (..() && modded) leak_fuel(amount_per_transfer_from_this/10.0) - + /obj/structure/reagent_dispensers/fueltank/proc/leak_fuel(amount) if (reagents.total_volume == 0) return - + amount = min(amount, reagents.total_volume) reagents.remove_reagent("fuel",amount) - new /obj/effect/decal/cleanable/liquid_fuel(src.loc, amount) + new /obj/effect/decal/cleanable/liquid_fuel(src.loc, amount,1) /obj/structure/reagent_dispensers/peppertank name = "Pepper Spray Refiller" diff --git a/code/modules/shuttles/escape_pods.dm b/code/modules/shuttles/escape_pods.dm index 0261997a9d3..719c29fd9a6 100644 --- a/code/modules/shuttles/escape_pods.dm +++ b/code/modules/shuttles/escape_pods.dm @@ -137,10 +137,3 @@ /datum/computer/file/embedded_program/docking/simple/escape_pod/prepare_for_undocking() eject_time = world.time + eject_delay*10 - -/* -/datum/computer/file/embedded_program/docking/simple/escape_pod/ready_for_undocking() - if (world.time < eject_time) - return 0 - return ..() -*/ \ No newline at end of file diff --git a/code/modules/shuttles/shuttle.dm b/code/modules/shuttles/shuttle.dm index 34a5d1e1380..c931e9fc299 100644 --- a/code/modules/shuttles/shuttle.dm +++ b/code/modules/shuttles/shuttle.dm @@ -34,15 +34,14 @@ if (moving_status == SHUTTLE_IDLE) return //someone cancelled the launch - move(departing, interim, direction) - moving_status = SHUTTLE_INTRANSIT + move(departing, interim, direction) + arrive_time = world.time + travel_time*10 while (world.time < arrive_time) sleep(5) move(interim, destination, direction) - moving_status = SHUTTLE_IDLE /datum/shuttle/proc/dock() @@ -69,6 +68,8 @@ return 0 //just moves the shuttle from A to B, if it can be moved +//A note to anyone overriding move in a subtype. move() must absolutely not, under any circumstances, fail to move the shuttle. +//If you want to conditionally cancel shuttle launches, that logic must go in short_jump() or long_jump() /datum/shuttle/proc/move(var/area/origin, var/area/destination, var/direction=null) //world << "move_shuttle() called for [shuttle_tag] leaving [origin] en route to [destination]." diff --git a/code/modules/surgery/ribcage.dm b/code/modules/surgery/ribcage.dm index ab16f569157..c14d065cd9b 100644 --- a/code/modules/surgery/ribcage.dm +++ b/code/modules/surgery/ribcage.dm @@ -202,7 +202,7 @@ var/is_chest_organ_damaged = 0 var/datum/organ/external/chest/chest = target.get_organ("chest") - for(var/datum/organ/internal/I in chest.internal_organs) + for(var/datum/organ/internal/I in chest.internal_organs) if(I.damage > 0) is_chest_organ_damaged = 1 break @@ -244,7 +244,7 @@ if(I && I.damage > 0) if(I.robotic < 2) user.visible_message("\blue [user] treats damage to [target]'s [I.name] with [tool_name].", \ - "You treat damage to [target]'s [I.name] with [tool_name]." ) + "\blue You treat damage to [target]'s [I.name] with [tool_name]." ) else user.visible_message("\blue [user] pokes [target]'s mechanical [I.name] with [tool_name]...", \ "\blue You poke [target]'s mechanical [I.name] with [tool_name]... \red For no effect, since it's robotic.") diff --git a/code/modules/surgery/surgery.dm b/code/modules/surgery/surgery.dm index 5b0bccbaaab..b0116585ab6 100644 --- a/code/modules/surgery/surgery.dm +++ b/code/modules/surgery/surgery.dm @@ -89,7 +89,7 @@ proc/do_surgery(mob/living/M, mob/living/user, obj/item/tool) //We had proper tools! (or RNG smiled.) and User did not move or change hands. if( prob(S.tool_quality(tool)) && do_mob(user, M, rand(S.min_duration, S.max_duration))) S.end_step(user, M, user.zone_sel.selecting, tool) //finish successfully - else //or + else if (tool in user.contents && user.Adjacent(M)) //or S.fail_step(user, M, user.zone_sel.selecting, tool) //malpractice~ return 1 //don't want to do weapony things after surgery return 0 diff --git a/code/setup.dm b/code/setup.dm index f5b680ee3e2..361cfaa66cc 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -19,6 +19,7 @@ #define O2STANDARD 0.21 #define N2STANDARD 0.79 +#define MOLES_PHORON_VISIBLE 0.7 //Moles in a standard cell after which phoron is visible #define MOLES_O2STANDARD MOLES_CELLSTANDARD*O2STANDARD // O2 standard value (21%) #define MOLES_N2STANDARD MOLES_CELLSTANDARD*N2STANDARD // N2 standard value (79%) @@ -72,9 +73,6 @@ #define MAX_HIGH_PRESSURE_DAMAGE 4 //This used to be 20... I got this much random rage for some retarded decision by polymorph?! Polymorph now lies in a pool of blood with a katana jammed in his spleen. ~Errorage --PS: The katana did less than 20 damage to him :( #define LOW_PRESSURE_DAMAGE 2 //The amounb of damage someone takes when in a low pressure area (The pressure threshold is so low that it doesn't make sense to do any calculations, so it just applies this flat value). -#define PRESSURE_SUIT_REDUCTION_COEFFICIENT 0.8 //This is how much (percentual) a suit with the flag STOPSPRESSUREDMAGE reduces pressure. -#define PRESSURE_HEAD_REDUCTION_COEFFICIENT 0.4 //This is how much (percentual) a helmet/hat with the flag STOPSPRESSUREDMAGE reduces pressure. - // Doors! #define DOOR_CRUSH_DAMAGE 10 @@ -837,7 +835,7 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse #define MAX_SIPHON_FLOWRATE 2500 //L/s This can be used to balance how fast a room is siphoned. Anything higher than CELL_VOLUME has no effect. #define MAX_SCRUBBER_FLOWRATE 200 //L/s Max flow rate when scrubbing from a turf. -//These balance how easy or hard it is to create huge pressure gradients with pumps and filters. Lower values means it takes longer to create large pressures differences. +//These balance how easy or hard it is to create huge pressure gradients with pumps and filters. Lower values means it takes longer to create large pressures differences. //Has no effect on pumping gasses from high pressure to low, only from low to high. Must be between 0 and 1. #define ATMOS_PUMP_EFFICIENCY 0.6 #define ATMOS_FILTER_EFFICIENCY 0.45 @@ -850,4 +848,4 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse #define ATMOS_DEFAULT_VOLUME_PUMP 200 //L #define ATMOS_DEFAULT_VOLUME_FILTER 200 //L #define ATMOS_DEFAULT_VOLUME_MIXER 200 //L -#define ATMOS_DEFAULT_VOLUME_PIPE 70 //L \ No newline at end of file +#define ATMOS_DEFAULT_VOLUME_PIPE 70 //L diff --git a/html/changelog.html b/html/changelog.html index e5fe332b92b..0800ac3b89d 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -126,6 +126,15 @@ should be listed in the changelog upon commit though. Thanks. --> +
+

2 August 2014

+

Whitellama updated:

+ +
+

31 July 2014

HarpyEagle updated:

@@ -142,11 +151,6 @@ should be listed in the changelog upon commit though. Thanks. -->
diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index 23d627a5f12..82d2dee3bde 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index 2f1430c9042..b13c0978bca 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -1124,7 +1124,7 @@ "avF" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/wall,/area/hydroponics) "avG" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) "avH" = (/obj/structure/sink/kitchen{pixel_y = 28},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "showroomfloor"},/area/crew_quarters/kitchen) -"avI" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/stool/bed/chair/comfy/brown{icon_state = "comfychair_brown"; dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/carpet,/area/crew_quarters/bar) +"avI" = (/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) "avJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/crew_quarters/bar) "avK" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/crew_quarters/kitchen) "avL" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/landmark/start{name = "Gardener"},/turf/simulated/floor{dir = 9; icon_state = "green"},/area/hydroponics/garden) @@ -1991,7 +1991,7 @@ "aMo" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aMp" = (/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aMq" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "green"; dir = 4},/area/crew_quarters/fitness) -"aMr" = (/obj/structure/stool/bed/chair/comfy/brown{icon_state = "comfychair_brown"; dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar) +"aMr" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aMs" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aMt" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 8},/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aMu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor,/area/crew_quarters/fitness) @@ -2155,7 +2155,7 @@ "aPw" = (/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/hallway/secondary/exit) "aPx" = (/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry) "aPy" = (/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry) -"aPz" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_beige"},/turf/simulated/floor{icon_state = "grimy"},/area/hallway/secondary/entry) +"aPz" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/bar) "aPA" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "dark"},/area/hallway/secondary/entry) "aPB" = (/turf/simulated/wall,/area/maintenance/port) "aPC" = (/obj/machinery/cryopod/right,/turf/simulated/floor{icon_state = "white"},/area/crew_quarters/sleep/cryo) @@ -3200,7 +3200,7 @@ "bjB" = (/turf/simulated/wall/r_wall,/area/rnd/test_area) "bjC" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=1"; dir = 1; freq = 1400; location = "Bridge"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor{icon_state = "bot"},/area/bridge/meeting_room) "bjD" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/supermatter_engine{pixel_x = -3},/turf/simulated/floor/carpet,/area/engine/break_room) -"bjE" = (/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair_beige (EAST)"; icon_state = "comfychair_beige"; dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room) +"bjE" = (/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room) "bjF" = (/obj/machinery/computer/atmos_alert,/turf/simulated/floor,/area/engine/chiefs_office) "bjG" = (/obj/machinery/sparker{dir = 2; id = "mixingsparker"; pixel_x = 25},/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1443; icon_state = "map_injector"; id = "air_in"; on = 1},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) "bjH" = (/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = -32},/turf/simulated/floor/bluegrid,/area/turret_protected/ai) @@ -3310,7 +3310,7 @@ "blH" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"; tag = "icon-whitebluecorner"},/area/medical/medbay2) "blI" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "blJ" = (/obj/machinery/camera{c_tag = "Medbay Lounge"; network = list("SS13")},/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) -"blK" = (/obj/machinery/light{dir = 1},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"blK" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "blL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/maintenance/fpmaint2) "blM" = (/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/storage/tech) "blN" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint2) @@ -3324,7 +3324,7 @@ "blV" = (/obj/machinery/door/airlock/security{name = "Security Checkpoint"; req_access = null; req_access_txt = "1"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor,/area/security/checkpoint2) "blW" = (/obj/machinery/vending/cigarette{pixel_x = 0; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) "blX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"blY" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 26},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (WEST)"; icon_state = "comfychair_teal"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"blY" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "Station Intercom (General)"; pixel_y = 26},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair (WEST)"; icon_state = "comfychair"; dir = 8},/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "blZ" = (/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},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) "bma" = (/obj/machinery/vending/coffee,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bmb" = (/obj/machinery/light{dir = 1},/obj/machinery/disposal,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/disposalpipe/trunk,/turf/simulated/floor{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) @@ -3799,7 +3799,7 @@ "bvc" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central) "bvd" = (/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) "bve" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"bvf" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair_teal (EAST)"; icon_state = "comfychair_teal"; dir = 4},/turf/simulated/floor{dir = 9; icon_state = "whitered"},/area/medical/ward) +"bvf" = (/obj/item/device/radio/intercom{dir = 0; name = "Station Intercom (General)"; pixel_x = -27},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/stool/bed/chair/comfy/teal{tag = "icon-comfychair (EAST)"; icon_state = "comfychair"; dir = 4},/turf/simulated/floor{dir = 9; icon_state = "whitered"},/area/medical/ward) "bvg" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "virology_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plating,/area/maintenance/asmaint) "bvh" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "bvi" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) @@ -3987,7 +3987,7 @@ "byI" = (/obj/machinery/atmospherics/trinary/mixer,/turf/simulated/floor{icon_state = "floorgrime"},/area/maintenance/incinerator) "byJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/carpet,/area/engine/break_room) "byK" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/plating,/area/maintenance/asmaint) -"byL" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_beige"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room) +"byL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/obj/effect/landmark/start{name = "Station Engineer"},/turf/simulated/floor/carpet,/area/engine/break_room) "byM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/turf/simulated/floor/carpet,/area/engine/break_room) "byN" = (/obj/structure/rack,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/obj/item/clothing/mask/gas,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "byO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft) @@ -4031,7 +4031,7 @@ "bzA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowfull"},/area/crew_quarters/sleep/engi) "bzB" = (/obj/machinery/airlock_sensor{command = "cycle_interior"; frequency = 1379; id_tag = "eng_eva_int_sensor"; master_tag = "eng_eva_airlock"; pixel_x = 0; pixel_y = 25; req_access_txt = "13"},/turf/simulated/floor{icon_state = "floorgrime"},/area/engine/engine_eva_maintenance) "bzC" = (/turf/simulated/wall/r_wall,/area/server) -"bzD" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1; icon_state = "comfychair_beige"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor/carpet,/area/engine/break_room) +"bzD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/stool/bed/chair/comfy/beige{tag = "icon-comfychair (NORTH)"; icon_state = "comfychair"; dir = 1},/obj/effect/landmark/start{name = "Atmospheric Technician"},/turf/simulated/floor/carpet,/area/engine/break_room) "bzE" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload_foyer) "bzF" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plating,/area/engine/engine_eva_maintenance) "bzG" = (/turf/simulated/wall,/area/medical/cmo) @@ -7226,7 +7226,7 @@ "cIX" = (/turf/space,/area/centcom/specops) "cIY" = (/obj/machinery/mech_bay_recharge_port,/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/specops) "cIZ" = (/obj/machinery/camera{c_tag = "Assault Armor North"; dir = 2; network = list("ERT")},/obj/mecha/combat/gygax/dark,/turf/unsimulated/floor{icon_state = "delivery"; dir = 6},/area/centcom/specops) -"cJa" = (/obj/machinery/atmospherics/unary/freezer{dir = 8; icon_state = "freezer"; req_access_txt = "56"; set_temperature = 1},/turf/simulated/floor/plating,/area/engine/engine_room) +"cJa" = (/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{icon_state = "vault"; dir = 1},/area/centcom) "cJb" = (/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 = "vault"; dir = 1},/area/centcom/specops) "cJc" = (/obj/structure/rack,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cJd" = (/obj/structure/stool/bed,/turf/unsimulated/floor{icon_state = "floorscorched1"},/area/prison/solitary) @@ -7254,7 +7254,7 @@ "cJz" = (/turf/unsimulated/floor{icon_state = "warnplate"; dir = 4},/area/centcom/specops) "cJA" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT3"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/specops) "cJB" = (/turf/unsimulated/floor{icon_state = "loadingarea"; dir = 8},/area/centcom/specops) -"cJC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/binary/pump/on{dir = 4; name = "Engine Filter Outpump"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"cJC" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) "cJD" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "cJE" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) "cJF" = (/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{icon_state = "vault"; dir = 1},/area/centcom) @@ -7272,7 +7272,7 @@ "cJR" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "ASSAULT2"; name = "Launch Bay #2"; p_open = 0},/turf/unsimulated/floor{name = "plating"},/area/centcom/specops) "cJS" = (/obj/machinery/mass_driver{dir = 8; id = "ASSAULT2"; name = "gravpult"},/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/specops) "cJT" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 9},/area/centcom/specops) -"cJU" = (/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{icon_state = "vault"; dir = 1},/area/centcom) +"cJU" = (/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 = "vault"; dir = 1},/area/centcom) "cJV" = (/obj/structure/rack,/obj/item/weapon/gun/grenadelauncher,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cJW" = (/obj/structure/stool/bed,/turf/unsimulated/floor{icon_state = "platingdmg3"},/area/prison/solitary) "cJX" = (/turf/unsimulated/floor{icon_state = "platingdmg1"},/area/prison/solitary) @@ -7328,8 +7328,8 @@ "cKV" = (/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{icon_state = "vault"; dir = 1},/area/centcom) "cKW" = (/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) "cKX" = (/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) -"cKY" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) -"cKZ" = (/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 = "vault"; dir = 1},/area/centcom) +"cKY" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cKZ" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cLa" = (/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) "cLb" = (/turf/unsimulated/floor{icon_state = "asteroid6"; name = "sand"},/area/centcom/specops) "cLc" = (/turf/unsimulated/floor{icon_state = "green"; dir = 4},/area/centcom/control) @@ -7348,9 +7348,9 @@ "cLp" = (/obj/machinery/camera{c_tag = "Assault Armor South"; dir = 1; network = list("ERT")},/turf/unsimulated/floor{icon_state = "loadingarea"; dir = 8},/area/centcom/specops) "cLq" = (/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{icon_state = "vault"; dir = 1},/area/centcom) "cLr" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 9},/area/centcom) -"cLs" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/obj/item/clothing/head/helmet/space/rig/ert/medical,/obj/item/clothing/suit/space/rig/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cLs" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cLt" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops) -"cLu" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/suit/armor/vest/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/obj/item/clothing/head/helmet/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cLu" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cLv" = (/obj/structure/grille,/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) "cLw" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cLx" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) @@ -7387,8 +7387,8 @@ "cMc" = (/obj/machinery/door/airlock/centcom{name = "Bridge"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cMd" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control) "cMe" = (/obj/machinery/door/airlock/centcom{name = "Courthouse"; opacity = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) -"cMf" = (/obj/structure/reagent_dispensers/watertank,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cMg" = (/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cMf" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cMg" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) "cMh" = (/obj/structure/sign/securearea{name = "\improper ARMORY"; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) "cMi" = (/obj/structure/sign/securearea{name = "ENGINEERING ACCESS"; pixel_y = 32},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) "cMj" = (/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 = "vault"; dir = 8},/area/centcom) @@ -7442,13 +7442,13 @@ "cNf" = (/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/evac) "cNg" = (/obj/structure/table,/obj/machinery/processor{pixel_x = 0; pixel_y = 10},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/evac) "cNh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control) -"cNi" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/suit/armor/vest/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/obj/item/clothing/head/helmet/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cNj" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/suit/armor/vest/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/obj/item/clothing/head/helmet/ert/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"cNk" = (/obj/effect/landmark{name = "Response Team"},/obj/effect/landmark{name = "Commando"},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cNl" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/ert/commander,/obj/item/clothing/suit/space/rig/ert/commander,/obj/item/weapon/storage/backpack/ert/commander,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) -"cNm" = (/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/device/aicard,/obj/item/weapon/pinpointer/advpinpointer,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "blue"},/area/centcom) -"cNn" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/command,/obj/item/clothing/head/helmet/ert/command,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cNo" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "ASSAULT"; name = "Assault Armor Storage"; p_open = 0},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) +"cNi" = (/obj/effect/landmark{name = "Response Team"},/obj/effect/landmark{name = "Commando"},/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cNj" = (/obj/structure/rack,/obj/item/clothing/head/helmet/space/rig/ert/commander,/obj/item/clothing/suit/space/rig/ert/commander,/obj/item/weapon/storage/backpack/ert/commander,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) +"cNk" = (/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/device/aicard,/obj/item/weapon/pinpointer/advpinpointer,/obj/item/device/megaphone,/turf/unsimulated/floor{icon_state = "blue"},/area/centcom) +"cNl" = (/obj/structure/rack,/obj/item/clothing/suit/armor/vest/ert/command,/obj/item/clothing/head/helmet/ert/command,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cNm" = (/obj/machinery/door/poddoor{icon_state = "pdoor1"; id = "ASSAULT"; name = "Assault Armor Storage"; p_open = 0},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) +"cNn" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) +"cNo" = (/obj/structure/closet{icon_closed = "syndicate1"; icon_opened = "syndicate1open"; icon_state = "syndicate1"; name = "emergency response team wardrobe"},/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/rank/centcom_officer,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) "cNp" = (/obj/structure/bookcase{name = "bookcase (Tactics)"},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cNq" = (/obj/structure/closet/secure_closet/hos,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cNr" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) @@ -7459,18 +7459,18 @@ "cNw" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cNx" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/control) "cNy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/unsimulated/floor,/area/centcom/control) -"cNz" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/obj/item/weapon/handcuffs,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom) +"cNz" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "cNA" = (/obj/item/device/radio/intercom{broadcasting = 1; dir = 8; listening = 0; name = "Station Intercom (General)"; pixel_x = -28},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cNB" = (/obj/structure/closet/secure_closet/injection,/turf/unsimulated/floor{icon_state = "white"},/area/centcom/control) "cNC" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/control) -"cND" = (/obj/structure/closet{icon_closed = "syndicate1"; icon_opened = "syndicate1open"; icon_state = "syndicate1"; name = "emergency response team wardrobe"},/obj/item/clothing/under/ert,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/under/rank/centcom_officer,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) -"cNE" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/obj/item/weapon/storage/backpack/ert/engineer,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cNF" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) -"cNG" = (/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/adv,/obj/item/weapon/storage/firstaid/adv,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"cNH" = (/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 = "vault"; dir = 1},/area/centcom) -"cNI" = (/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 = "vault"; dir = 1},/area/centcom) -"cNJ" = (/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 = "vault"; dir = 1},/area/centcom) -"cNK" = (/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 = "vault"; dir = 1},/area/centcom) +"cND" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/obj/item/weapon/storage/backpack/ert/security,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom/specops) +"cNE" = (/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/adv,/obj/item/weapon/storage/firstaid/adv,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cNF" = (/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 = "vault"; dir = 1},/area/centcom) +"cNG" = (/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 = "vault"; dir = 1},/area/centcom) +"cNH" = (/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 = "vault"; dir = 1},/area/centcom) +"cNI" = (/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 = "vault"; dir = 1},/area/centcom) +"cNJ" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"cNK" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_centcom_dock"; name = "docking port controller"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "103"; tag_door = "specops_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) "cNL" = (/obj/machinery/telecomms/relay/preset/centcom,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/creed) "cNM" = (/obj/machinery/bodyscanner,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/holding) "cNN" = (/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) @@ -8276,7 +8276,7 @@ "ddh" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/hatch{name = "Telecoms Satellite"; req_access_txt = "61"},/turf/simulated/floor,/area/turret_protected/tcomfoyer) "ddi" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/tcommsat/entrance) "ddj" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/tcommsat/chamber) -"ddk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance) +"ddk" = (/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{icon_state = "vault"; dir = 1},/area/centcom) "ddl" = (/obj/machinery/shower{icon_state = "shower"; dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 4; icon_state = "warnwhite"},/area/rnd/research) "ddm" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_mothership) "ddn" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/space) @@ -8285,8 +8285,8 @@ "ddq" = (/turf/simulated/floor,/area/tcommsat/entrance) "ddr" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/space,/area/turret_protected/tcomsat) "dds" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/tcommsat/entrance) -"ddt" = (/obj/machinery/power/smes/magical,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/tcommsat/entrance) -"ddu" = (/obj/machinery/power/smes/magical,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/tcommsat/entrance) +"ddt" = (/obj/structure/rack,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) +"ddu" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) "ddv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/camera{c_tag = "Power Room West"; dir = 1; network = list("Tcomsat")},/obj/machinery/light/small{dir = 1},/turf/simulated/floor,/area/tcommsat/entrance) "ddw" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "vault"; dir = 5},/area/turret_protected/tcomsat) "ddx" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/tcommsat/entrance) @@ -8581,8 +8581,8 @@ "dja" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_shuttle_fore_hatch"; locked = 1; name = "Forward Docking Hatch"; req_access_txt = "13"},/turf/simulated/shuttle/plating,/area/shuttle/specops/centcom) "djb" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_shuttle_fore"; name = "forward docking hatch controller"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "0"; tag_door = "specops_shuttle_fore_hatch"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "djc" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/extinguisher,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -28},/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "escape_shuttle"; pixel_x = 8; pixel_y = 25; req_access_txt = "0"; req_one_access_txt = "13"; tag_door = "escape_shuttle_hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape/centcom) -"djd" = (/obj/machinery/portable_atmospherics/powered/scrubber,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"dje" = (/obj/machinery/embedded_controller/radio/simple_docking_controller{frequency = 1380; id_tag = "specops_centcom_dock"; name = "docking port controller"; pixel_x = 0; pixel_y = -25; req_access_txt = "0"; req_one_access_txt = "103"; tag_door = "specops_centcom_dock_door"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom) +"djd" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_centcom_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom) +"dje" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "warningcorner"; dir = 4},/area/tcommsat/entrance) "djf" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_shuttle_port_hatch"; locked = 1; name = "Port Docking Hatch"; req_access_txt = "13"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/specops/centcom) "djg" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_northwest_lock"; locked = 1; req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) "djh" = (/obj/machinery/door/airlock/hatch{frequency = 1331; icon_state = "door_locked"; id_tag = "vox_northeast_lock"; locked = 1; req_access_txt = "150"; req_one_access = null; req_one_access_txt = "0"},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox/station) @@ -9115,8 +9115,8 @@ "dto" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/tcommsat/entrance) "dtp" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/wall/r_wall,/area/tcommsat/entrance) "dtq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/floor,/area/tcommsat/entrance) -"dtr" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance) -"dts" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor,/area/tcommsat/entrance) +"dtr" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/tcommsat/entrance) +"dts" = (/obj/machinery/power/smes/magical,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor,/area/tcommsat/entrance) "dtt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/tcommsat/entrance) "dtu" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/monitor{name = "telecoms power monitoring"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor{icon_state = "bot"},/area/tcommsat/entrance) "dtv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = "0"},/turf/simulated/wall/r_wall,/area/turret_protected/tcomfoyer) @@ -10982,7 +10982,7 @@ "edj" = (/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/weapon/reagent_containers/glass/fertilizer/ez,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "edk" = (/obj/structure/table,/obj/machinery/light,/obj/item/weapon/wrench,/obj/item/device/flashlight,/obj/machinery/cell_charger,/turf/simulated/floor,/area/engine/workshop) "edl" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4},/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/meter,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) -"edm" = (/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{icon_state = "vault"; dir = 1},/area/centcom) +"edm" = (/obj/machinery/atmospherics/unary/freezer{dir = 8; icon_state = "freezer"; req_access_txt = "56"; set_temperature = 1},/turf/simulated/floor/plating,/area/engine/engine_room) "edn" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/engine/engine_waste) "edo" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/machinery/light,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) "edp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) @@ -11078,9 +11078,9 @@ "efb" = (/obj/structure/cable,/obj/machinery/power/solar{id = "construction_solar"; name = "Construction Solar Array"},/turf/simulated/floor{icon_state = "solarpanel"},/area/djstation) "efc" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/djstation) "efd" = (/obj/machinery/telecomms/relay/preset/ruskie,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/djstation) -"efe" = (/obj/structure/rack,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/obj/item/bodybag,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"eff" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/obj/item/weapon/storage/backpack/ert/medical,/turf/unsimulated/floor{icon_state = "vault"; dir = 1},/area/centcom) -"efg" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "specops_centcom_dock_door"; locked = 1},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom) +"efe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/binary/pump/on{dir = 4; name = "Engine Filter Outpump"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/engine/engine_room) +"eff" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor,/area/tcommsat/entrance) +"efg" = (/obj/machinery/power/terminal{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/tcommsat/entrance) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11195,11 +11195,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaEBaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSayWaEHaAKbwPblyaEKaELaEMaENaAKbjZbkiaYQblLbhDaERaqYaAPaESaDBaDzaDzaDzaDzaDzaDzbTxaWjaWgbTwaVIaWMaWNaWKaWLaWJaAkaaeaygaWIaWpblGaWxaWqaWsblEaWpaZdaZcaxraFnaypazlaFmaBdazoazpaBdaDOaTuaypaDQaVHaWTaFsaFtaXcbdZagjagjagjagjaVEaVFaWSaVxaVybazaVxaXfaVxaXeaVxaXgaXhbTOaFHbcKaBoaXjaXmaXXbxRbxRbxSbAiaXYaXYaXYaXYaXYbaCaXYaXYaYwaYeaXnaRdaRdaYGaYxblNbCeaWQaWQaWQaWRaEsaEsaGeaEsaGfaGgaGhaEsaEubCvaEuaGjaXlaXkbbBaGnaGoaIbasHaGraGsaGtaGuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXoaDcaDcaBJaDcaEEaDcaEEaGxaEEaDcaEEaDcaEFaEGazSayWaGyaAKaAKblVaYKaYPaYKaQlaQlaYJaYNaYObtjaYMaYLbCwbakbajbJcaGLaGLaGLaGMaGLaGLaGNaGOaARaaaaZXaAkayJbmqayJaAkaAkaaaaygavOaylbmjaZIaZiaZqaZDaZEaZhbglaxraHbaypaFoaCuaAraypaAsaAraCwaZgaypaHdawGaYhaHfaHgaUnaYfalNalNalNalNalNaHjaYbazBbUMaAxazBaHmazBaHnazBaHobcvbcwbcNbczbdNbcXaYUbJUbJJbbvbdAbbwbbvbbvbbxbbzbbybbAbbybbybbybbibLVbcbbawbawbawbmxbaSbawbaxbawbaWaYIaHOaHPaHQaHRaHSaHTaEsaHUbaXaEuaHWaHXbWjaHZaGnaIaaIbasHaIcaEyaEyaEyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDiaIdaECaEDaDcaEEaDcaEEaDcaEEaDcaEEaDcaEFaEGazSaCnawzawyawxawuawuawuawzawCawDawzawAaImaInawBauKauKaAPaGOaIpaCaaIqaBOaGOaIraIsaItaIuasSaaaaOzaaaaMTavNaMTaaaaaeaaaasSavOaylaAZaBKavZaBLaBcaylaAtaAJaxrachaypazlaIFaIGazoaIHayyazraIKaILaIMawGaBeaIOaIPaAqaBhaISaaaaaaaUnaIUaIVaBsazBaIXaAxaLRaAxaCEaAxaAxaAxauOaBoaKyaBoaBoavJaBoaJcaBoaJdavHavGaJgaJhaJiaJjaJkavFaJjaJjaJjaJjaJjavDaJjaJjaJjaJjaJjaJjaJjaJjasIayRayvaAzaAiaBraBpazHbMsazIavpavlavmavnazFayNayPazDaAXasHaIbaJDaJEaJFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPasDatHaPRarOaPRaPRaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXazEasSaASavaaKbaKcavbaKeaKbaKbaKfasSavcaylaylazJaAbaAaayLawGaUnazGaxraxraxraxraKlaKmaCxaCxaKnayHawGawGaxraxrazqaIOaIOaIOaKpaKqaKraKsaUnaKtaIVaKuazBazBazBazBazBazBazBazBazBauOaKwayKaKxaIZauMavIaKBaKCaJdauyauWauXaznaKHaJjayOayQaPbayVayZaIyaJbaxDaxJayaayCayBaxBaxfaDqaJjauwauvaysaJraxdaxaaJuayqaEsaxNauuaLdavfauoaveaunaEuaEyaLhasHaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaBIaBJaBIaBIaDRaDSaBIaBIaBJaJIaLmasSaLnaxTawXaLoaLoaLpaLoaLqatHaLraLsasDaLtaLuaACaFGazwaLyaLzaLAaLzaLzaLzaLzaLzaLzaLzaLBaLCazNaAdaLFaLFayTaETaLFaLFaLFaLIazKaFraLKaLzaxtaNmaLuaLPaIOaGmaIOaLSaIzaFIaLTaLTaLTaLTaLTaLTaOraLVaOAaLXaLYaLZaMaaMbaMcaIOaIOaIOaOBaMeaMfaMeaMgaMhaLSaMjaIzaMkaEgaBoaMlaxMaOOaMoaMnaMpaxKaMraMsaMtaJdaxLaMvaMwaMwaMxaJjaDJaFTaEJaEJaEJaEJaEJaFqaBaaEOaEUaExaEJaEJaHMaJjasIarZaHPaHPaCXaDFaHPaHPaEsaMOaEpaEuaytaMRaHZavTaEuaRhaymayeaIbaEyaEyaEyaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaJIaBIaDbaDcaDcaDcaJJaDcaDcaJKaDcaDcaDiaJLaJMayWaxTaJNaJOaJOaJOaJOaJOaJOaJOaJPasDatHaPRarOaPRaPRaAPaJSaJTaJUaJVaJVaJVaJVaJWaJXazEasSaASavaaKbaKcavbaKeaKbaKbaKfasSavcaylaylazJaAbaAaayLawGaUnazGaxraxraxraxraKlaKmaCxaCxaKnayHawGawGaxraxrazqaIOaIOaIOaKpaKqaKraKsaUnaKtaIVaKuazBazBazBazBazBazBazBazBazBauOaKwayKaKxaIZauMaMraKBaKCaJdauyauWauXaznaKHaJjayOayQaPbayVayZaIyaJbaxDaxJayaayCayBaxBaxfaDqaJjauwauvaysaJraxdaxaaJuayqaEsaxNauuaLdavfauoaveaunaEuaEyaLhasHaIbaLiaLjaLkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJHaBIaBJaBIaBIaDRaDSaBIaBIaBJaJIaLmasSaLnaxTawXaLoaLoaLpaLoaLqatHaLraLsasDaLtaLuaACaFGazwaLyaLzaLAaLzaLzaLzaLzaLzaLzaLzaLBaLCazNaAdaLFaLFayTaETaLFaLFaLFaLIazKaFraLKaLzaxtaNmaLuaLPaIOaGmaIOaLSaIzaFIaLTaLTaLTaLTaLTaLTaOraLVaOAaLXaLYaLZaMaaMbaMcaIOaIOaIOaOBaMeaMfaMeaMgaMhaLSaMjaIzaMkaEgaBoaMlaxMaOOaMoaMnaMpaxKaPzaMsaMtaJdaxLaMvaMwaMwaMxaJjaDJaFTaEJaEJaEJaEJaEJaFqaBaaEOaEUaExaEJaEJaHMaJjasIarZaHPaHPaCXaDFaHPaHPaEsaMOaEpaEuaytaMRaHZavTaEuaRhaymayeaIbaEyaEyaEyaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXarBaMVaAFaAFaAFaAFaMWarBawXaAHasSaCFaMXaMYaDKavSaNbaNbaNcatHaNdaLsaxAaNfaLuaxzaNhaNiaNjaNkaNlaLzaLzaLzaLzaLzaLzaLzaCDaxiaxuaLzaLzaLzaxpayuaLzaLzaLzaLzaxvaLzaLzaLzaxtaNmaLuaLPaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaIOaNsaNtaNuaNvaNwaNxaNyaNzaNAaIOaIOaIOaLPaIOaIOaIOaIOaIOaIOaIOaIOaNBbNwaCjaCWaCQaMpaNEaMpaMpawEaNGaMsaCoaJdawFawJawSaQLaNMaJjaDraDHaCpaCpaCpaCpaCpaCqaCTaDlaDmaCpaCpaCzaNRaJjasIarZaNVaHPaHPaNWaHPaNXaEsaEuaEuaEuaEuaEuaEuavQaEuaIbaIbasHaIbaNZaOaaEyaaaaaeaaaaaaaaaaaaaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeazQasSaMYavtazSaObaOcaOdaOeazSavtaOfaOgasSatlaxTaMYaOhaOiaNbaNbaNcatHaOjaLsasDaNfaLuasXaLAaLzaLzaRyaChaEzaRCaLzausaOmardaOmaALatmarMaOmaOvaOwatzathauaatkatjatiatcatbatbasYaVdaNmaLuaLPaIOaOHaIOaOIaOIaOIaOIaOIaOIaOIaOIaOJaOKaOIaOIaOIaOIaOLaOIaOIaOIaOIaOIaOMaONaOIaOIaOIaOIaOIaOIaOIaIOaIOaIOaBoasQasOasCasCasCaMCaAYaNGaMsaBQaJdaJdaJdaJdaJdaOUaJjatsatraSgaTAaTzaUSatQatEaCKatyatCasUasNasNasWaJjasIarZaPfaPfaPgaPhaPiaPiaPjaEsaPkaPlaPmaEyaEZaVbasbaIbaIbasHaIbaEyaPsaEyaPtaPtaPtaPuaPvaPwaaaaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeatHaxRarBaJMayWaxTaxTayXaJMarBaJMaPxawYaPyaxTaxRaPzaPzaLpaPzaLqatHaPAaLsasDatHaPRarOasnaPRaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEatHatHascaPIaPJaPIaPKasGaPMaLzaLAaPNasFaPPaPQaLAaZHaPRaPRaUnaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVawGawRaxqaPZaQaaQaaQbaQcaQaaQdaQeaQfawGaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiashaQkaQkaQkaQkasyassasiaQoavXarFdZFaQsaQtaQuaJdaJdaszaTwaQwaQyaQzasfasfasfasLasMasAasfasfasfasfasaarZaQGaHPaPgaPhaHPaHPaQHaEsasBaQJaQKaEyaIbarpaPraSoaPoasgaIbaQQaQRaEyasKasJaPtaQUaQVaQWaaeaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaeatHaxRarBaJMayWaxTaxTayXaJMarBaJMaPxawYaPyaxTaxRavIavIaLpavIaLqatHaPAaLsasDatHaPRarOasnaPRaPEaPEaPEaPEaPEaPFaPGaPEaPEaPEatHatHascaPIaPJaPIaPKasGaPMaLzaLAaPNasFaPPaPQaLAaZHaPRaPRaUnaIOaIOaIPaPTaKraKraPUaPUaPUaPUaPVawGawRaxqaPZaQaaQaaQbaQcaQaaQdaQeaQfawGaQgaPUaPUaPUaPUaKraKraQhaINaIOaIOaBoaQiashaQkaQkaQkaQkasyassasiaQoavXarFdZFaQsaQtaQuaJdaJdaszaTwaQwaQyaQzasfasfasfasLasMasAasfasfasfasfasaarZaQGaHPaPgaPhaHPaHPaQHaEsasBaQJaQKaEyaIbarpaPraSoaPoasgaIbaQQaQRaEyasKasJaPtaQUaQVaQWaaeaaaaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawXaQXaxTaQYaPyaxTaxTaQZaQYaxTaQXaPyaxTaxTaxTaRaaRbaRbaRbaRbaRbaRbaRbaRcatUaPBbupbuobziautaumaxwaRkaRlaRmaRnaRoaRpaukaRraRsaRtaujaxhaRwaxIaPKatwaPMaPMaRzaPMaugaPSaPSaRBbaHaPSaPSaPSaxyaIOaIPaREaaaaaaaaaaaaaaaaaaaaaaPWaRFaRGaRHaRIaRJaRKaRJaRLaRMaRNaROaPWaaaaaaaaaaaaaaaaaaaaaaRPaINaIOauZaRRaRSatDaQoaQoaQoaQoaQoaRUatGaQoaQoaQoaQraMpaRWaRXaRYaRZatxaRXavKaSdavEasAaSnbcWavLawfawHawvawTawIasfasIarZaSjaSjaPgaPhaSkaSkaSlaEsaEsaSmaEsaEyaGvatZaulaulaulatNaJoaEyaEyaEyawtaSqaSraSsbeKaSuaaeaaeaaaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaxRaSvaSwaSvaSvaSvaSvaSvaSvaSwaSvaSvaSxaxTaxTaSyaxTavzavkaxTaSAaSBaueaSDatuaPBbCJbCIbeRaPEaSHaRnaRnaRnaRnaRnaRoaSIaRnaRnaRnaRtasEaSJaSKauRaPKatwaPMaSMaSNaupaFpaPSaxeaSRbdnavqaSUaSVaIOaIOaIPaREaaaaaaaaaaaaaPWaPWaPWaPWaSWaSXaSYaSZavCaTbaTcaTdaTeaTfaTgaPWaPWaPWaPWaaaaaaaaaaaaaRPaINaIOaIOaThaQoatnaTjaTkaQoaTlaTmaCIatqaToaTkaQoaQraMpaTpaRXaTqaTratTaTtauxauAauDauQauUauVauYavjavyavxavwavvasfasIarZaQGaHPaPgaPhaHPaHPaHPaTCaTDaHPaTEaEyarDastaSoaSoaSoasgaIbaIbaEyaTKaSsaSsaSsaSsaStaTLaTMaTMaTNaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasSasSaTOaTPaTPaTPaTPaTPaTPaTPazYasSatHaTRaTRatHatHaTSaFuaTSaTSaTSaBgaTSaBgaPBbCJattbNuaPEaTXaRnaRnaTYaTZaUaaUbaTYaRnaRnaRnaUcasEaUdaUeaNCaPKaFkaPMaVJaUiaUjaWPaPSaNHbdsbdyaSSccoaUmaIOaIOaIPaKqaPVaUnaUoaPWaPWaUpaUqaUraUsaUtaUtaUuaUvaUtaUuaUvaUtaUwaUxaUyaUzaUAaPWaPWaUoaUnaUBaUCaINaIOaIOaBoaUDatnaToaTkaQoaUEaUFaQoaFjaUHaTkaQoaQraMpaUIaRXaOtaFzaFyaUMaFxaUOaSbaTyawhawiaQTaNOavyaKTavwaTvasfasIarZaUWaUWaPgaPhaUXaHPaHPaUYaHPaUZaVaaEyaIbaTGaTHaSoaTGaFwaQqaVfaEyaVgaSsaSsaSsaSQaNNaSeaPeaTiaTaaJGaJGaJGaJGaJGaJGaJGaJGaJGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11274,7 +11274,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaacfWcfXcfYaaacfWcfXcfYaaacfWcfXcfYaaeaaeaaaaaaaaaaaaaaeaaeaaaaaaaaaaaacsLaaaaaabZUcdBcdEcfIcfQcfacftcdVcdOcdOcdTcdvbZDcdebZCbZCbZCccbcgtbZLbZjcVGcVGcVGcVGcVGcVGcVGaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaacfWchecfYaaacfWchecfYaaacfWchecfYaaeaaeaaeaaeaaaaaacthaaaaaaaaaaaeaaaaaaaaaaaabZUcdBcdEcfZcfQcfacftcgacftcgbcgjcgncgmcgDcglcglcgZchCchgcgGbZjaaeaaeaaEaaeaaeaaeaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaecfWchecfYaaacfWchecfYaaecfWchecfYaaeaaaaaaaaeaaectyaaaaaaaaaaaaaaaaaaaaaaaaaaabZUcdBcjjcjocjQcfacftcrvcrHcjZcrmcimcgXcfocascascascjhcjdcgYbZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaacfWchecfYaaecfWchecfYaaacfWchecfYaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaabZUedsedrednctkcPDbZCedqedpedoecWecVecWecTecUedlcJCecXecYcJabZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaacfWchecfYaaecfWchecfYaaacfWchecfYaaaaaaaaaaaaaaeaaeaaaaaaaaaaaaaaaaaaaaaaaaaaabZUedsedrednctkcPDbZCedqedpedoecWecVecWecTecUedlefeecXecYedmbZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaamaaEaaeaaacfWchecfYaaecfWchecfYaaacfWchecfYaaeaaaaaaaaaaaaaaeaaecjMcjNcjNcjNcjNcOXcPddgDecRecRecRecPbZjbZCbZCcPVbZjbZjbZjecMcWdecQbZjbZjbZjecScRccPSbZjaaeaaabYSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacmdcmdcmdcmdcmdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaeaaaaaeaaeckAaaeaaeaaeckAaaeaaaaaeckAaaeaaaaaaaaaaaaaaackBckCckDckEckFcPBcPqdhRdgEdigdicdicdihdpKbZjcOWbZCcvGcttcvEcIGecOcOLecNcIGctscttcyVbZCecLbZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaactvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvctvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEaaecltclucluclvclwclwclwclwclwclwclwclwclwclwclwclwclwclwcEZclydidcELcBvclCcwKclEdyKdyKdyKdyKdyMdyKdyNbZjbZCbZCcvGcttcvEcwIctpcyWcyXcwIctscttcyVbZCcyhbZjaaaaaaaaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11469,23 +11469,23 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcHocGdcGdcGdcGdcGdcGdcGdcGdcGdcGdcHfcGbcGbcGbcGbcGrcGrcIzcIAcGrcGrcGrcIzcIBcIAcGrcGXcGXcGXcGrcICcIDcIDcIDcIDcIDcIEcGrcGFcHbcIFcUQcHtcHtcHtcUycIIcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxaaacCFcFycFycFycCFaaadpBcFBcFCcFDdpPaaacCFcFycFycFycCFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFZcGacGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGbcGrcIJcIJcIJcIJcIJcIJcIJcIJcIJcGrcGrcIKcGrcGrcIJcIJcIJcIJcIJcIJcIJcGrcGFcHbcILcIMcINcINcINcIMcIOcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpBcFBcFCcFDdpPaaaaaaaaaaaaaaaaaaaaadpBcFBcFCcFDdpPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIPcIPcIPcIPcFYcIPcFYcFYcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIRcIRcIRcIRcIRcIRcIRcGrcIScITcIScGrcIRcIRcIRcIRcIRcIRcIRcIRcGFcHbcHbcIUcIVcIVcIVcIWcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYxcYx -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcIZcJbcFYcNFcJccJccIQcJdcJecIQcJfcJgcJhcJfcJicIQcJfcJjcIQcJfcJkcIQcJlcJmcIQcJfcJjcIQcJncIRdRcdRbdRadQZcJqcGrcIScITcIScGrcJrcJscJtcJucJucIRaaaaaacGFcHbcHbcHbcHbcHbcHbcHbcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYx +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcIZcJbcFYcNDcJccJccIQcJdcJecIQcJfcJgcJhcJfcJicIQcJfcJjcIQcJfcJkcIQcJlcJmcIQcJfcJjcIQcJncIRdRcdRbdRadQZcJqcGrcIScITcIScGrcJrcJscJtcJucJucIRaaaaaacGFcHbcHbcHbcHbcHbcHbcHbcHbcHccHdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJxcJycJwcJwcJwcJwcJzcJxcJAcJBcJDcFYcLtcJEcJFcIQcJGcJHcIQcJGcJjcIQcJGcJHcIQcJGcJmcIQcJGcJgcIQcJGcJjcIQcJGcJicIQcJncIRcJIcJJcJJcJJcJJcGrcIScITcIScGrcJucJucJucJucJucIRaaaaaacJKcJKcJKcJKcJKcJKcJKcJKcJKcJKcJKcIRcIRcIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcJLcJDcFYcLtcJEcJMcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcIQcJncIRcJIcJJcJJcJJcJJcGrcGrcIKcGrcGrcJucJucJucJucJucIRcJKcJKcJKcJKcJKcJKcJNcJOcJPcIRcJQcJQcJQcIRcJQcJQcJQcJQcJQcJQcJQcJQcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYx -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJRcJycJwcJwcJwcJwcJzcJRcJScJBcJTcNocLtcJEcJVcIQcJWcJmcIQcJfcJXcIQcJfcJHcIQcJYcJicIQcJfcJicIQcJZcJjcIQcJfcJmcIQcJncIRcKadQYdPKcKccKdcIRcKecKecKecIRcJucJucJucJucJucIRcKfcKgcKfcKhcKicJKcKjcKjcKjcKkcJQcJQcJQcKkcJQcKlcKmcKlcJQcKncKocKpcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYx +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJRcJycJwcJwcJwcJwcJzcJRcJScJBcJTcNmcLtcJEcJVcIQcJWcJmcIQcJfcJXcIQcJfcJHcIQcJYcJicIQcJfcJicIQcJZcJjcIQcJfcJmcIQcJncIRcKadQYdPKcKccKdcIRcKecKecKecIRcJucJucJucJucJucIRcKfcKgcKfcKhcKicJKcKjcKjcKjcKkcJQcJQcJQcKkcJQcKlcKmcKlcJQcKncKocKpcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcKqcJDcFYcLtcJEcKrcIQcJGcKscIQcJGcJjcIQcJGcJicIQcJGcJjcJhcJGcJjcIQcJGcJXcIQcJGcKtcIQcJncIRcKucIRcKvcKwcKxcIRcJJcJJcJJcIRcKvcKwcKycIRcKzcIRcKAcKBcKAcKBcKAcJKcIRcIRcIRcIRcJQcJQcJQcIRcKCcKDcKlcKEcKCcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcKHcJycJwcJwcJwcJwcJzcKHcKIcJBcJDcFYcLtcJEcKJcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcJncIRcJJcJJcKKcKbcKbcKbcKbcKbcKbcKbcKbcKbcKLcJJcJJcKMcKAcKAcKAcKAcKAcJKcKNcKjcJNcIRcJQcJQcJQcIRcKOcKOcKPcKOcKOcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYx -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcKqcJDcFYcLtcJEcKQcKRcKRcFYcKScKTcKUcNEcKVcFYcKWcKXcFYcNDcNDcNDcNDcNDcNDcNzcLacLbcIPcJncIRcJJcJJcLccLdcLecLecLecLecLecLecLecLfcJIcJJcJJcJKcLgcLhcLicLjcLkcJKcLlcKjcJOcIRcJQcJQcJQcIRcLmcLmcKjcLmcLmcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYx -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcLncJycJwcJwcJwcJwcJzcLncLocLpcJDcFYcLtcJEcJEcJEcJEcFYcJEcJEcJEcJEcLqcFYcKXcLrcMxcNkcNkcNkcNkcNkcNkcKYcIPcIPcIPcIPcIPcJJcJJcLccLvcLwcJJcLxcLycLzcJJcLwcLvcJIcJJcJJcJKcJKcJKcJKcJKcJKcJKcLlcKjcJOcIRcJQcJQcJQcIRcLAcLAcKjcLAcLAcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYx -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcFYcNjcLBcLCcLDcJEcFYcJEcLEcLEcNidiPcFYcKXcKXcIPcLHcLIcLIcLIcLJcLIcLKcIPcLLcLLcLLcIPcJJcJJcLMcLNcLOcLPcLQcLRcLScLTcLUcLNcLVcJJcJJcIRcLWcLWcLWcLWcLWcIRcIRcKkcIRcIRcIRcKkcIRcIRcKjcKjcKjcKjcKjcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYx +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIYcKqcJDcFYcLtcJEcKQcKRcKRcFYcKScKTcKUcNzcKVcFYcKWcKXcFYcNocNocNocNocNocNocNncLacLbcIPcJncIRcJJcJJcLccLdcLecLecLecLecLecLecLecLfcJIcJJcJJcJKcLgcLhcLicLjcLkcJKcLlcKjcJOcIRcJQcJQcJQcIRcLmcLmcKjcLmcLmcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYx +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacJvcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcJwcLncJycJwcJwcJwcJwcJzcLncLocLpcJDcFYcLtcJEcJEcJEcJEcFYcJEcJEcJEcJEcLqcFYcKXcLrcMxcNicNicNicNicNicNicJCcIPcIPcIPcIPcIPcJJcJJcLccLvcLwcJJcLxcLycLzcJJcLwcLvcJIcJJcJJcJKcJKcJKcJKcJKcJKcJKcLlcKjcJOcIRcJQcJQcJQcIRcLAcLAcKjcLAcLAcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYx +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIXcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcIPcFYcMgcLBcLCcLDcJEcFYcJEcLEcLEcMfdiPcFYcKXcKXcIPcLHcLIcLIcLIcLJcLIcLKcIPcLLcLLcLLcIPcJJcJJcLMcLNcLOcLPcLQcLRcLScLTcLUcLNcLVcJJcJJcIRcLWcLWcLWcLWcLWcIRcIRcKkcIRcIRcIRcKkcIRcIRcKjcKjcKjcKjcKjcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYx aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcLXcFYcLYcFYcFYcFYcFYcFYcKXcLrcLZcMacMacMacMacMacMacMacMbcMacMacMacMbcJJcJJcJJcMccJJcJJcMdcJJcMdcJJcJJcMccJJcJJcJJcMecJQcJQcJQcJQcJQcMecJQcJQcJQcJQcJQcJQcJQcMecLAcLAcLAcLAcLAcKFcKGcKGcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYx -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcNmcNlcNncFYcJEcMhcJEcMicJEcMjcJEcJEcJEcMkcIPcMlcMmcMmcMncMocMpcMqcIPcMrcMrcMrcIPcJJcJJcKKcMscMtcLPcMucJJcMvcLTcMwcMscKLcJJcJJcMecJQcJQcJQcJQcJQcMecJQcJQcJQcJQcJQcJQcJQcMecLAcLAcLAcLAcLAcIRcKkcKkcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcNkcNjcNlcFYcJEcMhcJEcMicJEcMjcJEcJEcJEcMkcIPcMlcMmcMmcMncMocMpcMqcIPcMrcMrcMrcIPcJJcJJcKKcMscMtcLPcMucJJcMvcLTcMwcMscKLcJJcJJcMecJQcJQcJQcJQcJQcMecJQcJQcJQcJQcJQcJQcJQcMecLAcLAcLAcLAcLAcIRcKkcKkcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJEcJEcJEcMxcJEcMycJEcKXcKXcKXcMzcMzcKXcMkcIPcMAcMAcMAcMBcMCcMBcMDcIPcIPcIPcIPcIPcJJcJJcLccLNcMEcJJcMdcJJcMdcJJcMEcLNcJIcJJcJJcIRcMFcMGcMGcMGcMHcIRcIRcMIcIRcIRcIRcKkcIRcIRcIRcMJcMJcMJcIRcIRcJQcJQcJQcMKcJQcMLcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcMMcFYcJEcKXcKXcMNcMOcMOcMPcMkcIPcIPcMQcMRcMScMTcMUcMVcMQaaaaaaaaacIRcJJcJJcLccIRcIRcMWcMXcJJcMYcMZcIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNacNbcIRcKjcNccKjcKjcNdcNecNfcNfcNfcNgcIRcJQcJQcKmcKmcJQcJQcNhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYxcYxcYxcYxcYxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJUcLscLscLucJEcFYcJEcKXcKXcMNcMOcMOcMPcLGcMfcMgcMQcNpcNqcNrcNscNtcMQaaaaaaaaacIRcJJcJJcLccIRcIRcKvcKwcKwcKwcKycIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNbcNbcIRcNucNucNucKjcNdcNfcNfcNfcNfcNvcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJUcJEcJEcJEcJEcFYcJEcJEcJEcJEcKYcKYcKXcKXcKXcKZcMQcNAcNrcNrcNrcNrcMQaaaaaaaaacIRcJJcJJcLMcJpcJpcJpcJpcJpcJpcJpcJpcJpcLVcJJcJJcIRaaaaaaaaaaaaaaacIRcNBcNbcIRcNucNCcNucKjcNdcNdcNdcNdcNdcNdcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcNGcNGefeedmeffcFYdjddjddjddjecJEcJEcNKcNJcNIcNHcMQcNrcNrcNrcNrcNLcMQcIRcIRcIRcIRcIRcIRdaQcIRcIRcJJcJJcJJcJJcJJcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaacIRcNNcNbcIRcKNcKjcKjcKjcNdaaaaaaaaaaaaaaacIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYefgefgcFYcFYcFYcFYcMQcNrcNPcNQcNRcNScMQdRydRYdRYdRydRHdRXcJJdRzcIRcIRcIRcOacIRcIRcBUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRcNdaaaaaaaaaaaaaaacNUcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZvcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcZvcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJ +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJacKYcKYcKZcJEcFYcJEcKXcKXcMNcMOcMOcMPcLGcLscLucMQcNpcNqcNrcNscNtcMQaaaaaaaaacIRcJJcJJcLccIRcIRcKvcKwcKwcKwcKycIRcIRcJIcJJcJJcIRaaaaaaaaaaaaaaacIRcNbcNbcIRcNucNucNucKjcNdcNfcNfcNfcNfcNvcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcJacJEcJEcJEcJEcFYcJEcJEcJEcJEcJCcJCcKXcKXcKXcJUcMQcNAcNrcNrcNrcNrcMQaaaaaaaaacIRcJJcJJcLMcJpcJpcJpcJpcJpcJpcJpcJpcJpcLVcJJcJJcIRaaaaaaaaaaaaaaacIRcNBcNbcIRcNucNCcNucKjcNdcNdcNdcNdcNdcNdcIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcNEcNEddtddkdducFYcNJcNJcNJcNKcJEcJEcNIcNHcNGcNFcMQcNrcNrcNrcNrcNLcMQcIRcIRcIRcIRcIRcIRdaQcIRcIRcJJcJJcJJcJJcJJcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaacIRcNNcNbcIRcKNcKjcKjcKjcNdaaaaaaaaaaaaaaacIRcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacFYcFYcFYcFYcFYcFYcFYcFYcFYcFYcFYdjddjdcFYcFYcFYcFYcMQcNrcNPcNQcNRcNScMQdRydRYdRYdRydRHdRXcJJdRzcIRcIRcIRcOacIRcIRcBUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRcNdaaaaaaaaaaaaaaacNUcJQcNwcKlcKlcNxcJQcNyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacZvcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcZvcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJcYJ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNVcNWcNWcNVaaaaaaaaacMQcNrcNXcNYcNZcNYcMQdRydRZdRZdRydRJdRCcJJdRzcIRcJocLVcJJcLMcOhcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacObcJQcJQcOccOccJQcJQcObaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOdcOecOecOecOedjfdjfcOecOecOgaaacMQcNrcNrcNrcNrcNrcMQdRydRYdRYdRydRRdRCcJJdRzcIRcJIcJJcJJcJJcLccIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOBdXUdXTcOFaaaaaaaaaaaaaaaaaaaaaaaaaaacIRcOicJQcJQcJQcJQcOjcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOkcOlcOmdiYdiXcOpcOpcOqcOqcOecOgcMQcMQcMQcMQcMQcMQcMQdRydRydRydRydRBdRCcJJdRzcIRdRAcORdRAdRDdRAcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacOBdaCdiZdROdaFcOFaaaaaaaaaaaaaaaaaaaaaaaacIRcIRcIRcIRcIRcIRcIRcIRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11733,8 +11733,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWcYZcYYcYZcZAdtLdtMdtMdtMdtMdufdtNdtPdtQdcQdMPduqduldupdtMdsMdtMdtMdugcZFcYZcYYdcWcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWdcXcYYcYZcYZdaydaydcYdaydaydcAdcZddadtwdcQddcdddddedcAdaydaydaydaydaycYZcYZcYYcYZcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWcYZcYYcYZcYZcYZcYZcYYcYZddfdcAdcAdcAdtvddhdcAdcAdcAdcAddfcYZcYZcYZcYZcYZcYZcYYcYZcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWcYYcYYcYYcYYcYYcYYcYYcYYddiddudtrddpdtsdttdMGddpddqdtuddscYYcYYcYYcYYcYYcYYcYYcYYcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalaalcYWcYYcYZcYZcYZcYZcYZcYWddfddtddkddvdtqddxddyddzddyddAddfcYWcYZcYZcYZcYZcYZcYYcYWaalaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalcYWcYYcYYcYYcYYcYYcYYcYYcYYddidtsefgddpeffdttdMGddpddqdtuddscYYcYYcYYcYYcYYcYYcYYcYYcYWaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZaalaalcYWcYYcYZcYZcYZcYZcYZcYWddfdtrdjeddvdtqddxddyddzddyddAddfcYWcYZcYZcYZcYZcYZcYYcYWaalaalclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZclZaalaalcYWcYWcYWcYWcYWcYWcYWddfddfddfddfdtpddCddDddfddfddfddfcYWcYWcYWcYWcYWcYWcYWaalaalclZclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZclZaalaalaalaalaalaalaalaalaalaalaalddfdtoddFddGddfaalaalaalaalaalaalaalaalaalaalaalclZclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaclZclZclZclZclZclZclZclZclZclZclZddfddfdtnddIddJddfddfclZclZclZclZclZclZclZclZclZclZclZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/sound/music/halloween/ghosts.ogg b/sound/music/halloween/ghosts.ogg deleted file mode 100644 index 26c40917a58..00000000000 Binary files a/sound/music/halloween/ghosts.ogg and /dev/null differ diff --git a/sound/music/halloween/halloween.ogg b/sound/music/halloween/halloween.ogg deleted file mode 100644 index c739941be33..00000000000 Binary files a/sound/music/halloween/halloween.ogg and /dev/null differ diff --git a/sound/music/halloween/skeletons.ogg b/sound/music/halloween/skeletons.ogg deleted file mode 100644 index 2b0b6878bf4..00000000000 Binary files a/sound/music/halloween/skeletons.ogg and /dev/null differ diff --git a/sound/vox/,.wav b/sound/vox/,.wav deleted file mode 100644 index 31a47dca600..00000000000 Binary files a/sound/vox/,.wav and /dev/null differ diff --git a/sound/vox/..wav b/sound/vox/..wav deleted file mode 100644 index 7eeb1eb9bc5..00000000000 Binary files a/sound/vox/..wav and /dev/null differ diff --git a/sound/vox/a.wav b/sound/vox/a.wav deleted file mode 100644 index c6981d29026..00000000000 Binary files a/sound/vox/a.wav and /dev/null differ diff --git a/sound/vox/accelerating.wav b/sound/vox/accelerating.wav deleted file mode 100644 index e86b18a04b1..00000000000 Binary files a/sound/vox/accelerating.wav and /dev/null differ diff --git a/sound/vox/accelerator.wav b/sound/vox/accelerator.wav deleted file mode 100644 index be097b6caaa..00000000000 Binary files a/sound/vox/accelerator.wav and /dev/null differ diff --git a/sound/vox/accepted.wav b/sound/vox/accepted.wav deleted file mode 100644 index 59160849e24..00000000000 Binary files a/sound/vox/accepted.wav and /dev/null differ diff --git a/sound/vox/access.wav b/sound/vox/access.wav deleted file mode 100644 index 25fd0988830..00000000000 Binary files a/sound/vox/access.wav and /dev/null differ diff --git a/sound/vox/acknowledge.wav b/sound/vox/acknowledge.wav deleted file mode 100644 index 14946cccf88..00000000000 Binary files a/sound/vox/acknowledge.wav and /dev/null differ diff --git a/sound/vox/acknowledged.wav b/sound/vox/acknowledged.wav deleted file mode 100644 index 232d9c3bf7a..00000000000 Binary files a/sound/vox/acknowledged.wav and /dev/null differ diff --git a/sound/vox/acquired.wav b/sound/vox/acquired.wav deleted file mode 100644 index 7eecdf91409..00000000000 Binary files a/sound/vox/acquired.wav and /dev/null differ diff --git a/sound/vox/acquisition.wav b/sound/vox/acquisition.wav deleted file mode 100644 index 11be7dc475d..00000000000 Binary files a/sound/vox/acquisition.wav and /dev/null differ diff --git a/sound/vox/across.wav b/sound/vox/across.wav deleted file mode 100644 index 1591e897001..00000000000 Binary files a/sound/vox/across.wav and /dev/null differ diff --git a/sound/vox/activate.wav b/sound/vox/activate.wav deleted file mode 100644 index 32a45cbf229..00000000000 Binary files a/sound/vox/activate.wav and /dev/null differ diff --git a/sound/vox/activated.wav b/sound/vox/activated.wav deleted file mode 100644 index 154e0389e83..00000000000 Binary files a/sound/vox/activated.wav and /dev/null differ diff --git a/sound/vox/activity.wav b/sound/vox/activity.wav deleted file mode 100644 index 5920e6dd387..00000000000 Binary files a/sound/vox/activity.wav and /dev/null differ diff --git a/sound/vox/adios.wav b/sound/vox/adios.wav deleted file mode 100644 index 86e268ca1f1..00000000000 Binary files a/sound/vox/adios.wav and /dev/null differ diff --git a/sound/vox/administration.wav b/sound/vox/administration.wav deleted file mode 100644 index d85d67eabff..00000000000 Binary files a/sound/vox/administration.wav and /dev/null differ diff --git a/sound/vox/advanced.wav b/sound/vox/advanced.wav deleted file mode 100644 index 987cd05b2a2..00000000000 Binary files a/sound/vox/advanced.wav and /dev/null differ diff --git a/sound/vox/after.wav b/sound/vox/after.wav deleted file mode 100644 index f63abdff558..00000000000 Binary files a/sound/vox/after.wav and /dev/null differ diff --git a/sound/vox/agent.wav b/sound/vox/agent.wav deleted file mode 100644 index 594932971e3..00000000000 Binary files a/sound/vox/agent.wav and /dev/null differ diff --git a/sound/vox/alarm.wav b/sound/vox/alarm.wav deleted file mode 100644 index 296ca773d66..00000000000 Binary files a/sound/vox/alarm.wav and /dev/null differ diff --git a/sound/vox/alert.wav b/sound/vox/alert.wav deleted file mode 100644 index 1a749b7c74b..00000000000 Binary files a/sound/vox/alert.wav and /dev/null differ diff --git a/sound/vox/alien.wav b/sound/vox/alien.wav deleted file mode 100644 index 58909559957..00000000000 Binary files a/sound/vox/alien.wav and /dev/null differ diff --git a/sound/vox/aligned.wav b/sound/vox/aligned.wav deleted file mode 100644 index 20bbe5bfa72..00000000000 Binary files a/sound/vox/aligned.wav and /dev/null differ diff --git a/sound/vox/all.wav b/sound/vox/all.wav deleted file mode 100644 index 5bfc4dee60e..00000000000 Binary files a/sound/vox/all.wav and /dev/null differ diff --git a/sound/vox/alpha.wav b/sound/vox/alpha.wav deleted file mode 100644 index d64239ec881..00000000000 Binary files a/sound/vox/alpha.wav and /dev/null differ diff --git a/sound/vox/am.wav b/sound/vox/am.wav deleted file mode 100644 index c273e5231d0..00000000000 Binary files a/sound/vox/am.wav and /dev/null differ diff --git a/sound/vox/amigo.wav b/sound/vox/amigo.wav deleted file mode 100644 index 03ec617c294..00000000000 Binary files a/sound/vox/amigo.wav and /dev/null differ diff --git a/sound/vox/ammunition.wav b/sound/vox/ammunition.wav deleted file mode 100644 index 148605c2ca0..00000000000 Binary files a/sound/vox/ammunition.wav and /dev/null differ diff --git a/sound/vox/an.wav b/sound/vox/an.wav deleted file mode 100644 index 5755607e36d..00000000000 Binary files a/sound/vox/an.wav and /dev/null differ diff --git a/sound/vox/and.wav b/sound/vox/and.wav deleted file mode 100644 index 6e155c09d97..00000000000 Binary files a/sound/vox/and.wav and /dev/null differ diff --git a/sound/vox/announcement.wav b/sound/vox/announcement.wav deleted file mode 100644 index 9d185ead91e..00000000000 Binary files a/sound/vox/announcement.wav and /dev/null differ diff --git a/sound/vox/anomalous.wav b/sound/vox/anomalous.wav deleted file mode 100644 index 1db9a4fa09a..00000000000 Binary files a/sound/vox/anomalous.wav and /dev/null differ diff --git a/sound/vox/antenna.wav b/sound/vox/antenna.wav deleted file mode 100644 index fa82d58cb9c..00000000000 Binary files a/sound/vox/antenna.wav and /dev/null differ diff --git a/sound/vox/any.wav b/sound/vox/any.wav deleted file mode 100644 index 73bed24661c..00000000000 Binary files a/sound/vox/any.wav and /dev/null differ diff --git a/sound/vox/apprehend.wav b/sound/vox/apprehend.wav deleted file mode 100644 index 874ef839637..00000000000 Binary files a/sound/vox/apprehend.wav and /dev/null differ diff --git a/sound/vox/approach.wav b/sound/vox/approach.wav deleted file mode 100644 index 5c5e1995df8..00000000000 Binary files a/sound/vox/approach.wav and /dev/null differ diff --git a/sound/vox/are.wav b/sound/vox/are.wav deleted file mode 100644 index bacdb31e2a3..00000000000 Binary files a/sound/vox/are.wav and /dev/null differ diff --git a/sound/vox/area.wav b/sound/vox/area.wav deleted file mode 100644 index f2ac3dd05af..00000000000 Binary files a/sound/vox/area.wav and /dev/null differ diff --git a/sound/vox/arm.wav b/sound/vox/arm.wav deleted file mode 100644 index 225abed39ec..00000000000 Binary files a/sound/vox/arm.wav and /dev/null differ diff --git a/sound/vox/armed.wav b/sound/vox/armed.wav deleted file mode 100644 index 55e4a67c667..00000000000 Binary files a/sound/vox/armed.wav and /dev/null differ diff --git a/sound/vox/armor.wav b/sound/vox/armor.wav deleted file mode 100644 index 2ca51709d4d..00000000000 Binary files a/sound/vox/armor.wav and /dev/null differ diff --git a/sound/vox/armory.wav b/sound/vox/armory.wav deleted file mode 100644 index 63fff9e39e3..00000000000 Binary files a/sound/vox/armory.wav and /dev/null differ diff --git a/sound/vox/arrest.wav b/sound/vox/arrest.wav deleted file mode 100644 index cdc24ec627d..00000000000 Binary files a/sound/vox/arrest.wav and /dev/null differ diff --git a/sound/vox/ass.wav b/sound/vox/ass.wav deleted file mode 100644 index 2b6698aa668..00000000000 Binary files a/sound/vox/ass.wav and /dev/null differ diff --git a/sound/vox/at.wav b/sound/vox/at.wav deleted file mode 100644 index 0b1b9396e58..00000000000 Binary files a/sound/vox/at.wav and /dev/null differ diff --git a/sound/vox/atomic.wav b/sound/vox/atomic.wav deleted file mode 100644 index 6a00304807f..00000000000 Binary files a/sound/vox/atomic.wav and /dev/null differ diff --git a/sound/vox/attention.wav b/sound/vox/attention.wav deleted file mode 100644 index e9078e6d9e0..00000000000 Binary files a/sound/vox/attention.wav and /dev/null differ diff --git a/sound/vox/authorize.wav b/sound/vox/authorize.wav deleted file mode 100644 index 3dcff1208b9..00000000000 Binary files a/sound/vox/authorize.wav and /dev/null differ diff --git a/sound/vox/authorized.wav b/sound/vox/authorized.wav deleted file mode 100644 index 67672abf35b..00000000000 Binary files a/sound/vox/authorized.wav and /dev/null differ diff --git a/sound/vox/automatic.wav b/sound/vox/automatic.wav deleted file mode 100644 index 8e676b08277..00000000000 Binary files a/sound/vox/automatic.wav and /dev/null differ diff --git a/sound/vox/away.wav b/sound/vox/away.wav deleted file mode 100644 index e1a3bee4d8c..00000000000 Binary files a/sound/vox/away.wav and /dev/null differ diff --git a/sound/vox/b.wav b/sound/vox/b.wav deleted file mode 100644 index 751c7b7b1ac..00000000000 Binary files a/sound/vox/b.wav and /dev/null differ diff --git a/sound/vox/back.wav b/sound/vox/back.wav deleted file mode 100644 index b2f4e56e40a..00000000000 Binary files a/sound/vox/back.wav and /dev/null differ diff --git a/sound/vox/backman.wav b/sound/vox/backman.wav deleted file mode 100644 index 60e149eaeec..00000000000 Binary files a/sound/vox/backman.wav and /dev/null differ diff --git a/sound/vox/bad.wav b/sound/vox/bad.wav deleted file mode 100644 index b59100564fe..00000000000 Binary files a/sound/vox/bad.wav and /dev/null differ diff --git a/sound/vox/bag.wav b/sound/vox/bag.wav deleted file mode 100644 index ccbf3f851ef..00000000000 Binary files a/sound/vox/bag.wav and /dev/null differ diff --git a/sound/vox/bailey.wav b/sound/vox/bailey.wav deleted file mode 100644 index deca97dc6b0..00000000000 Binary files a/sound/vox/bailey.wav and /dev/null differ diff --git a/sound/vox/barracks.wav b/sound/vox/barracks.wav deleted file mode 100644 index c7cc651cedb..00000000000 Binary files a/sound/vox/barracks.wav and /dev/null differ diff --git a/sound/vox/base.wav b/sound/vox/base.wav deleted file mode 100644 index a4c6c829e59..00000000000 Binary files a/sound/vox/base.wav and /dev/null differ diff --git a/sound/vox/bay.wav b/sound/vox/bay.wav deleted file mode 100644 index 769dfc38c28..00000000000 Binary files a/sound/vox/bay.wav and /dev/null differ diff --git a/sound/vox/be.wav b/sound/vox/be.wav deleted file mode 100644 index 38074711b49..00000000000 Binary files a/sound/vox/be.wav and /dev/null differ diff --git a/sound/vox/been.wav b/sound/vox/been.wav deleted file mode 100644 index 959f08ebf5a..00000000000 Binary files a/sound/vox/been.wav and /dev/null differ diff --git a/sound/vox/before.wav b/sound/vox/before.wav deleted file mode 100644 index a7c2cdd5b2a..00000000000 Binary files a/sound/vox/before.wav and /dev/null differ diff --git a/sound/vox/beyond.wav b/sound/vox/beyond.wav deleted file mode 100644 index d0641c009b8..00000000000 Binary files a/sound/vox/beyond.wav and /dev/null differ diff --git a/sound/vox/biohazard.wav b/sound/vox/biohazard.wav deleted file mode 100644 index 6ee3aca426f..00000000000 Binary files a/sound/vox/biohazard.wav and /dev/null differ diff --git a/sound/vox/biological.wav b/sound/vox/biological.wav deleted file mode 100644 index fef86450b14..00000000000 Binary files a/sound/vox/biological.wav and /dev/null differ diff --git a/sound/vox/birdwell.wav b/sound/vox/birdwell.wav deleted file mode 100644 index 6436f724f03..00000000000 Binary files a/sound/vox/birdwell.wav and /dev/null differ diff --git a/sound/vox/bizwarn.wav b/sound/vox/bizwarn.wav deleted file mode 100644 index ff392b491a0..00000000000 Binary files a/sound/vox/bizwarn.wav and /dev/null differ diff --git a/sound/vox/black.wav b/sound/vox/black.wav deleted file mode 100644 index 52dd0881aee..00000000000 Binary files a/sound/vox/black.wav and /dev/null differ diff --git a/sound/vox/blast.wav b/sound/vox/blast.wav deleted file mode 100644 index fa8d79fbb45..00000000000 Binary files a/sound/vox/blast.wav and /dev/null differ diff --git a/sound/vox/blocked.wav b/sound/vox/blocked.wav deleted file mode 100644 index 5e086f4bce3..00000000000 Binary files a/sound/vox/blocked.wav and /dev/null differ diff --git a/sound/vox/bloop.wav b/sound/vox/bloop.wav deleted file mode 100644 index 49cf90c5230..00000000000 Binary files a/sound/vox/bloop.wav and /dev/null differ diff --git a/sound/vox/blue.wav b/sound/vox/blue.wav deleted file mode 100644 index 83a6e7c3ebe..00000000000 Binary files a/sound/vox/blue.wav and /dev/null differ diff --git a/sound/vox/bottom.wav b/sound/vox/bottom.wav deleted file mode 100644 index 2330a74b285..00000000000 Binary files a/sound/vox/bottom.wav and /dev/null differ diff --git a/sound/vox/bravo.wav b/sound/vox/bravo.wav deleted file mode 100644 index 560af14f2c8..00000000000 Binary files a/sound/vox/bravo.wav and /dev/null differ diff --git a/sound/vox/breach.wav b/sound/vox/breach.wav deleted file mode 100644 index 89a61783346..00000000000 Binary files a/sound/vox/breach.wav and /dev/null differ diff --git a/sound/vox/breached.wav b/sound/vox/breached.wav deleted file mode 100644 index f4028d18a8c..00000000000 Binary files a/sound/vox/breached.wav and /dev/null differ diff --git a/sound/vox/break.wav b/sound/vox/break.wav deleted file mode 100644 index 124720295b9..00000000000 Binary files a/sound/vox/break.wav and /dev/null differ diff --git a/sound/vox/bridge.wav b/sound/vox/bridge.wav deleted file mode 100644 index cbb0cb461d7..00000000000 Binary files a/sound/vox/bridge.wav and /dev/null differ diff --git a/sound/vox/bust.wav b/sound/vox/bust.wav deleted file mode 100644 index 6af0f12c80f..00000000000 Binary files a/sound/vox/bust.wav and /dev/null differ diff --git a/sound/vox/but.wav b/sound/vox/but.wav deleted file mode 100644 index 0728ed3e1ee..00000000000 Binary files a/sound/vox/but.wav and /dev/null differ diff --git a/sound/vox/button.wav b/sound/vox/button.wav deleted file mode 100644 index bc583238cab..00000000000 Binary files a/sound/vox/button.wav and /dev/null differ diff --git a/sound/vox/buzwarn.wav b/sound/vox/buzwarn.wav deleted file mode 100644 index 82ddd2cdb37..00000000000 Binary files a/sound/vox/buzwarn.wav and /dev/null differ diff --git a/sound/vox/bypass.wav b/sound/vox/bypass.wav deleted file mode 100644 index b5155d37ff5..00000000000 Binary files a/sound/vox/bypass.wav and /dev/null differ diff --git a/sound/vox/c.wav b/sound/vox/c.wav deleted file mode 100644 index 9fcfc5e7453..00000000000 Binary files a/sound/vox/c.wav and /dev/null differ diff --git a/sound/vox/cable.wav b/sound/vox/cable.wav deleted file mode 100644 index d7610926510..00000000000 Binary files a/sound/vox/cable.wav and /dev/null differ diff --git a/sound/vox/call.wav b/sound/vox/call.wav deleted file mode 100644 index aa06767b949..00000000000 Binary files a/sound/vox/call.wav and /dev/null differ diff --git a/sound/vox/called.wav b/sound/vox/called.wav deleted file mode 100644 index f0c2897c8d1..00000000000 Binary files a/sound/vox/called.wav and /dev/null differ diff --git a/sound/vox/canal.wav b/sound/vox/canal.wav deleted file mode 100644 index b426a8f6a9a..00000000000 Binary files a/sound/vox/canal.wav and /dev/null differ diff --git a/sound/vox/cap.wav b/sound/vox/cap.wav deleted file mode 100644 index 998505184ba..00000000000 Binary files a/sound/vox/cap.wav and /dev/null differ diff --git a/sound/vox/captain.wav b/sound/vox/captain.wav deleted file mode 100644 index 61222de5324..00000000000 Binary files a/sound/vox/captain.wav and /dev/null differ diff --git a/sound/vox/capture.wav b/sound/vox/capture.wav deleted file mode 100644 index c7bfaad64f3..00000000000 Binary files a/sound/vox/capture.wav and /dev/null differ diff --git a/sound/vox/ceiling.wav b/sound/vox/ceiling.wav deleted file mode 100644 index 381db754cae..00000000000 Binary files a/sound/vox/ceiling.wav and /dev/null differ diff --git a/sound/vox/celsius.wav b/sound/vox/celsius.wav deleted file mode 100644 index ac59448a461..00000000000 Binary files a/sound/vox/celsius.wav and /dev/null differ diff --git a/sound/vox/center.wav b/sound/vox/center.wav deleted file mode 100644 index 35bdcb52248..00000000000 Binary files a/sound/vox/center.wav and /dev/null differ diff --git a/sound/vox/centi.wav b/sound/vox/centi.wav deleted file mode 100644 index efccef07e7b..00000000000 Binary files a/sound/vox/centi.wav and /dev/null differ diff --git a/sound/vox/central.wav b/sound/vox/central.wav deleted file mode 100644 index 1c9c58be571..00000000000 Binary files a/sound/vox/central.wav and /dev/null differ diff --git a/sound/vox/chamber.wav b/sound/vox/chamber.wav deleted file mode 100644 index 38dbf9ffa7b..00000000000 Binary files a/sound/vox/chamber.wav and /dev/null differ diff --git a/sound/vox/charlie.wav b/sound/vox/charlie.wav deleted file mode 100644 index 353ce195f3d..00000000000 Binary files a/sound/vox/charlie.wav and /dev/null differ diff --git a/sound/vox/check.wav b/sound/vox/check.wav deleted file mode 100644 index 709f9a6555f..00000000000 Binary files a/sound/vox/check.wav and /dev/null differ diff --git a/sound/vox/checkpoint.wav b/sound/vox/checkpoint.wav deleted file mode 100644 index 15aa5e4cc9b..00000000000 Binary files a/sound/vox/checkpoint.wav and /dev/null differ diff --git a/sound/vox/chemical.wav b/sound/vox/chemical.wav deleted file mode 100644 index eeb32be3850..00000000000 Binary files a/sound/vox/chemical.wav and /dev/null differ diff --git a/sound/vox/cleanup.wav b/sound/vox/cleanup.wav deleted file mode 100644 index a47ddb233a0..00000000000 Binary files a/sound/vox/cleanup.wav and /dev/null differ diff --git a/sound/vox/clear.wav b/sound/vox/clear.wav deleted file mode 100644 index a23cfc5e2bd..00000000000 Binary files a/sound/vox/clear.wav and /dev/null differ diff --git a/sound/vox/clearance.wav b/sound/vox/clearance.wav deleted file mode 100644 index a35e0699b87..00000000000 Binary files a/sound/vox/clearance.wav and /dev/null differ diff --git a/sound/vox/close.wav b/sound/vox/close.wav deleted file mode 100644 index 6a46d7fb063..00000000000 Binary files a/sound/vox/close.wav and /dev/null differ diff --git a/sound/vox/code.wav b/sound/vox/code.wav deleted file mode 100644 index 63bdfbe883a..00000000000 Binary files a/sound/vox/code.wav and /dev/null differ diff --git a/sound/vox/coded.wav b/sound/vox/coded.wav deleted file mode 100644 index ec876b297fd..00000000000 Binary files a/sound/vox/coded.wav and /dev/null differ diff --git a/sound/vox/collider.wav b/sound/vox/collider.wav deleted file mode 100644 index a26ff0a317b..00000000000 Binary files a/sound/vox/collider.wav and /dev/null differ diff --git a/sound/vox/command.wav b/sound/vox/command.wav deleted file mode 100644 index ba0c7e852b8..00000000000 Binary files a/sound/vox/command.wav and /dev/null differ diff --git a/sound/vox/communication.wav b/sound/vox/communication.wav deleted file mode 100644 index 35165357e69..00000000000 Binary files a/sound/vox/communication.wav and /dev/null differ diff --git a/sound/vox/complex.wav b/sound/vox/complex.wav deleted file mode 100644 index d2c01ccd57d..00000000000 Binary files a/sound/vox/complex.wav and /dev/null differ diff --git a/sound/vox/computer.wav b/sound/vox/computer.wav deleted file mode 100644 index 89808c20d7b..00000000000 Binary files a/sound/vox/computer.wav and /dev/null differ diff --git a/sound/vox/condition.wav b/sound/vox/condition.wav deleted file mode 100644 index b32c83668eb..00000000000 Binary files a/sound/vox/condition.wav and /dev/null differ diff --git a/sound/vox/containment.wav b/sound/vox/containment.wav deleted file mode 100644 index 563cb4e15a0..00000000000 Binary files a/sound/vox/containment.wav and /dev/null differ diff --git a/sound/vox/contamination.wav b/sound/vox/contamination.wav deleted file mode 100644 index d597267cdde..00000000000 Binary files a/sound/vox/contamination.wav and /dev/null differ diff --git a/sound/vox/control.wav b/sound/vox/control.wav deleted file mode 100644 index e7bf57bbd8a..00000000000 Binary files a/sound/vox/control.wav and /dev/null differ diff --git a/sound/vox/coolant.wav b/sound/vox/coolant.wav deleted file mode 100644 index d4474b9d9df..00000000000 Binary files a/sound/vox/coolant.wav and /dev/null differ diff --git a/sound/vox/coomer.wav b/sound/vox/coomer.wav deleted file mode 100644 index 1e4b37929ff..00000000000 Binary files a/sound/vox/coomer.wav and /dev/null differ diff --git a/sound/vox/core.wav b/sound/vox/core.wav deleted file mode 100644 index da6874b2e7e..00000000000 Binary files a/sound/vox/core.wav and /dev/null differ diff --git a/sound/vox/correct.wav b/sound/vox/correct.wav deleted file mode 100644 index cde927b7477..00000000000 Binary files a/sound/vox/correct.wav and /dev/null differ diff --git a/sound/vox/corridor.wav b/sound/vox/corridor.wav deleted file mode 100644 index defdcda2d10..00000000000 Binary files a/sound/vox/corridor.wav and /dev/null differ diff --git a/sound/vox/crew.wav b/sound/vox/crew.wav deleted file mode 100644 index 4f48a08cb11..00000000000 Binary files a/sound/vox/crew.wav and /dev/null differ diff --git a/sound/vox/cross.wav b/sound/vox/cross.wav deleted file mode 100644 index c393dffbf15..00000000000 Binary files a/sound/vox/cross.wav and /dev/null differ diff --git a/sound/vox/cryogenic.wav b/sound/vox/cryogenic.wav deleted file mode 100644 index eb1a62ae38f..00000000000 Binary files a/sound/vox/cryogenic.wav and /dev/null differ diff --git a/sound/vox/d.wav b/sound/vox/d.wav deleted file mode 100644 index f977a495055..00000000000 Binary files a/sound/vox/d.wav and /dev/null differ diff --git a/sound/vox/dadeda.wav b/sound/vox/dadeda.wav deleted file mode 100644 index 2ac0ff589af..00000000000 Binary files a/sound/vox/dadeda.wav and /dev/null differ diff --git a/sound/vox/damage.wav b/sound/vox/damage.wav deleted file mode 100644 index 83fce3dcf0e..00000000000 Binary files a/sound/vox/damage.wav and /dev/null differ diff --git a/sound/vox/damaged.wav b/sound/vox/damaged.wav deleted file mode 100644 index e9f2ff5dbb7..00000000000 Binary files a/sound/vox/damaged.wav and /dev/null differ diff --git a/sound/vox/danger.wav b/sound/vox/danger.wav deleted file mode 100644 index 40ff8b8db98..00000000000 Binary files a/sound/vox/danger.wav and /dev/null differ diff --git a/sound/vox/day.wav b/sound/vox/day.wav deleted file mode 100644 index 92e3fe81da7..00000000000 Binary files a/sound/vox/day.wav and /dev/null differ diff --git a/sound/vox/deactivated.wav b/sound/vox/deactivated.wav deleted file mode 100644 index f587f266dd7..00000000000 Binary files a/sound/vox/deactivated.wav and /dev/null differ diff --git a/sound/vox/decompression.wav b/sound/vox/decompression.wav deleted file mode 100644 index a758f1bbd76..00000000000 Binary files a/sound/vox/decompression.wav and /dev/null differ diff --git a/sound/vox/decontamination.wav b/sound/vox/decontamination.wav deleted file mode 100644 index 9794de0a23b..00000000000 Binary files a/sound/vox/decontamination.wav and /dev/null differ diff --git a/sound/vox/deeoo.wav b/sound/vox/deeoo.wav deleted file mode 100644 index 4f82a18b2a5..00000000000 Binary files a/sound/vox/deeoo.wav and /dev/null differ diff --git a/sound/vox/defense.wav b/sound/vox/defense.wav deleted file mode 100644 index 9da8de137f5..00000000000 Binary files a/sound/vox/defense.wav and /dev/null differ diff --git a/sound/vox/degrees.wav b/sound/vox/degrees.wav deleted file mode 100644 index 7e77561c14d..00000000000 Binary files a/sound/vox/degrees.wav and /dev/null differ diff --git a/sound/vox/delta.wav b/sound/vox/delta.wav deleted file mode 100644 index 86052809f4a..00000000000 Binary files a/sound/vox/delta.wav and /dev/null differ diff --git a/sound/vox/denied.wav b/sound/vox/denied.wav deleted file mode 100644 index 6b1167d41d5..00000000000 Binary files a/sound/vox/denied.wav and /dev/null differ diff --git a/sound/vox/deploy.wav b/sound/vox/deploy.wav deleted file mode 100644 index 2f9aacd3506..00000000000 Binary files a/sound/vox/deploy.wav and /dev/null differ diff --git a/sound/vox/deployed.wav b/sound/vox/deployed.wav deleted file mode 100644 index a85a076b18b..00000000000 Binary files a/sound/vox/deployed.wav and /dev/null differ diff --git a/sound/vox/destroy.wav b/sound/vox/destroy.wav deleted file mode 100644 index 56cf437c66c..00000000000 Binary files a/sound/vox/destroy.wav and /dev/null differ diff --git a/sound/vox/destroyed.wav b/sound/vox/destroyed.wav deleted file mode 100644 index 20308df2df5..00000000000 Binary files a/sound/vox/destroyed.wav and /dev/null differ diff --git a/sound/vox/detain.wav b/sound/vox/detain.wav deleted file mode 100644 index 7d5f4e06f43..00000000000 Binary files a/sound/vox/detain.wav and /dev/null differ diff --git a/sound/vox/detected.wav b/sound/vox/detected.wav deleted file mode 100644 index 101429a6140..00000000000 Binary files a/sound/vox/detected.wav and /dev/null differ diff --git a/sound/vox/detonation.wav b/sound/vox/detonation.wav deleted file mode 100644 index a696e97976a..00000000000 Binary files a/sound/vox/detonation.wav and /dev/null differ diff --git a/sound/vox/device.wav b/sound/vox/device.wav deleted file mode 100644 index d5ecd2f67b3..00000000000 Binary files a/sound/vox/device.wav and /dev/null differ diff --git a/sound/vox/did.wav b/sound/vox/did.wav deleted file mode 100644 index 0c52e31b728..00000000000 Binary files a/sound/vox/did.wav and /dev/null differ diff --git a/sound/vox/die.wav b/sound/vox/die.wav deleted file mode 100644 index b47622cfc70..00000000000 Binary files a/sound/vox/die.wav and /dev/null differ diff --git a/sound/vox/dimensional.wav b/sound/vox/dimensional.wav deleted file mode 100644 index f67956ddc7f..00000000000 Binary files a/sound/vox/dimensional.wav and /dev/null differ diff --git a/sound/vox/dirt.wav b/sound/vox/dirt.wav deleted file mode 100644 index 08990c47d89..00000000000 Binary files a/sound/vox/dirt.wav and /dev/null differ diff --git a/sound/vox/disengaged.wav b/sound/vox/disengaged.wav deleted file mode 100644 index aa84ed27a6e..00000000000 Binary files a/sound/vox/disengaged.wav and /dev/null differ diff --git a/sound/vox/dish.wav b/sound/vox/dish.wav deleted file mode 100644 index aeff92d2052..00000000000 Binary files a/sound/vox/dish.wav and /dev/null differ diff --git a/sound/vox/disposal.wav b/sound/vox/disposal.wav deleted file mode 100644 index bfe38f6098f..00000000000 Binary files a/sound/vox/disposal.wav and /dev/null differ diff --git a/sound/vox/distance.wav b/sound/vox/distance.wav deleted file mode 100644 index 670eacaabe1..00000000000 Binary files a/sound/vox/distance.wav and /dev/null differ diff --git a/sound/vox/distortion.wav b/sound/vox/distortion.wav deleted file mode 100644 index 7fae33e2446..00000000000 Binary files a/sound/vox/distortion.wav and /dev/null differ diff --git a/sound/vox/do.wav b/sound/vox/do.wav deleted file mode 100644 index d82a9ab1074..00000000000 Binary files a/sound/vox/do.wav and /dev/null differ diff --git a/sound/vox/doctor.wav b/sound/vox/doctor.wav deleted file mode 100644 index f9cdc53805d..00000000000 Binary files a/sound/vox/doctor.wav and /dev/null differ diff --git a/sound/vox/doop.wav b/sound/vox/doop.wav deleted file mode 100644 index 14bce15cea0..00000000000 Binary files a/sound/vox/doop.wav and /dev/null differ diff --git a/sound/vox/door.wav b/sound/vox/door.wav deleted file mode 100644 index 629dee38e77..00000000000 Binary files a/sound/vox/door.wav and /dev/null differ diff --git a/sound/vox/down.wav b/sound/vox/down.wav deleted file mode 100644 index b677e031daa..00000000000 Binary files a/sound/vox/down.wav and /dev/null differ diff --git a/sound/vox/dual.wav b/sound/vox/dual.wav deleted file mode 100644 index 4693b31d42a..00000000000 Binary files a/sound/vox/dual.wav and /dev/null differ diff --git a/sound/vox/duct.wav b/sound/vox/duct.wav deleted file mode 100644 index d0e937fd80e..00000000000 Binary files a/sound/vox/duct.wav and /dev/null differ diff --git a/sound/vox/e.wav b/sound/vox/e.wav deleted file mode 100644 index 6f991d0fcc7..00000000000 Binary files a/sound/vox/e.wav and /dev/null differ diff --git a/sound/vox/east.wav b/sound/vox/east.wav deleted file mode 100644 index 296ce53d412..00000000000 Binary files a/sound/vox/east.wav and /dev/null differ diff --git a/sound/vox/echo.wav b/sound/vox/echo.wav deleted file mode 100644 index 3087ecbd9c6..00000000000 Binary files a/sound/vox/echo.wav and /dev/null differ diff --git a/sound/vox/ed.wav b/sound/vox/ed.wav deleted file mode 100644 index 71303ffe0a7..00000000000 Binary files a/sound/vox/ed.wav and /dev/null differ diff --git a/sound/vox/effect.wav b/sound/vox/effect.wav deleted file mode 100644 index a0128cf6984..00000000000 Binary files a/sound/vox/effect.wav and /dev/null differ diff --git a/sound/vox/egress.wav b/sound/vox/egress.wav deleted file mode 100644 index 47fa437ce81..00000000000 Binary files a/sound/vox/egress.wav and /dev/null differ diff --git a/sound/vox/eight.wav b/sound/vox/eight.wav deleted file mode 100644 index 4fef5c2eb70..00000000000 Binary files a/sound/vox/eight.wav and /dev/null differ diff --git a/sound/vox/eighteen.wav b/sound/vox/eighteen.wav deleted file mode 100644 index 1aff299ad27..00000000000 Binary files a/sound/vox/eighteen.wav and /dev/null differ diff --git a/sound/vox/eighty.wav b/sound/vox/eighty.wav deleted file mode 100644 index a1f54835dbb..00000000000 Binary files a/sound/vox/eighty.wav and /dev/null differ diff --git a/sound/vox/electric.wav b/sound/vox/electric.wav deleted file mode 100644 index 48c4fe01768..00000000000 Binary files a/sound/vox/electric.wav and /dev/null differ diff --git a/sound/vox/electromagnetic.wav b/sound/vox/electromagnetic.wav deleted file mode 100644 index 886c76ef6b7..00000000000 Binary files a/sound/vox/electromagnetic.wav and /dev/null differ diff --git a/sound/vox/elevator.wav b/sound/vox/elevator.wav deleted file mode 100644 index a4d41448492..00000000000 Binary files a/sound/vox/elevator.wav and /dev/null differ diff --git a/sound/vox/eleven.wav b/sound/vox/eleven.wav deleted file mode 100644 index 5473a254117..00000000000 Binary files a/sound/vox/eleven.wav and /dev/null differ diff --git a/sound/vox/eliminate.wav b/sound/vox/eliminate.wav deleted file mode 100644 index d4e51affb30..00000000000 Binary files a/sound/vox/eliminate.wav and /dev/null differ diff --git a/sound/vox/emergency.wav b/sound/vox/emergency.wav deleted file mode 100644 index 62bb34ef412..00000000000 Binary files a/sound/vox/emergency.wav and /dev/null differ diff --git a/sound/vox/energy.wav b/sound/vox/energy.wav deleted file mode 100644 index b66ed4db108..00000000000 Binary files a/sound/vox/energy.wav and /dev/null differ diff --git a/sound/vox/engage.wav b/sound/vox/engage.wav deleted file mode 100644 index 11a43c40a75..00000000000 Binary files a/sound/vox/engage.wav and /dev/null differ diff --git a/sound/vox/engaged.wav b/sound/vox/engaged.wav deleted file mode 100644 index a47cbb59772..00000000000 Binary files a/sound/vox/engaged.wav and /dev/null differ diff --git a/sound/vox/engine.wav b/sound/vox/engine.wav deleted file mode 100644 index f6ab907c5b3..00000000000 Binary files a/sound/vox/engine.wav and /dev/null differ diff --git a/sound/vox/enter.wav b/sound/vox/enter.wav deleted file mode 100644 index f3f53ea8211..00000000000 Binary files a/sound/vox/enter.wav and /dev/null differ diff --git a/sound/vox/entry.wav b/sound/vox/entry.wav deleted file mode 100644 index a027e1a7e54..00000000000 Binary files a/sound/vox/entry.wav and /dev/null differ diff --git a/sound/vox/environment.wav b/sound/vox/environment.wav deleted file mode 100644 index 6ab7d940cc4..00000000000 Binary files a/sound/vox/environment.wav and /dev/null differ diff --git a/sound/vox/error.wav b/sound/vox/error.wav deleted file mode 100644 index 05b2bebf60b..00000000000 Binary files a/sound/vox/error.wav and /dev/null differ diff --git a/sound/vox/escape.wav b/sound/vox/escape.wav deleted file mode 100644 index dbf3c954f57..00000000000 Binary files a/sound/vox/escape.wav and /dev/null differ diff --git a/sound/vox/evacuate.wav b/sound/vox/evacuate.wav deleted file mode 100644 index 2766662cd26..00000000000 Binary files a/sound/vox/evacuate.wav and /dev/null differ diff --git a/sound/vox/exchange.wav b/sound/vox/exchange.wav deleted file mode 100644 index 73426aea013..00000000000 Binary files a/sound/vox/exchange.wav and /dev/null differ diff --git a/sound/vox/exit.wav b/sound/vox/exit.wav deleted file mode 100644 index 85680b3212a..00000000000 Binary files a/sound/vox/exit.wav and /dev/null differ diff --git a/sound/vox/expect.wav b/sound/vox/expect.wav deleted file mode 100644 index a562e53a9a8..00000000000 Binary files a/sound/vox/expect.wav and /dev/null differ diff --git a/sound/vox/experiment.wav b/sound/vox/experiment.wav deleted file mode 100644 index 3f60c2181be..00000000000 Binary files a/sound/vox/experiment.wav and /dev/null differ diff --git a/sound/vox/experimental.wav b/sound/vox/experimental.wav deleted file mode 100644 index fbf75a59d30..00000000000 Binary files a/sound/vox/experimental.wav and /dev/null differ diff --git a/sound/vox/explode.wav b/sound/vox/explode.wav deleted file mode 100644 index 847e64562c0..00000000000 Binary files a/sound/vox/explode.wav and /dev/null differ diff --git a/sound/vox/explosion.wav b/sound/vox/explosion.wav deleted file mode 100644 index a2e442ec2f7..00000000000 Binary files a/sound/vox/explosion.wav and /dev/null differ diff --git a/sound/vox/exposure.wav b/sound/vox/exposure.wav deleted file mode 100644 index 37a933ca62e..00000000000 Binary files a/sound/vox/exposure.wav and /dev/null differ diff --git a/sound/vox/exterminate.wav b/sound/vox/exterminate.wav deleted file mode 100644 index f1c3c233d68..00000000000 Binary files a/sound/vox/exterminate.wav and /dev/null differ diff --git a/sound/vox/extinguish.wav b/sound/vox/extinguish.wav deleted file mode 100644 index 1fc83d9e7ec..00000000000 Binary files a/sound/vox/extinguish.wav and /dev/null differ diff --git a/sound/vox/extinguisher.wav b/sound/vox/extinguisher.wav deleted file mode 100644 index eed3164bfc7..00000000000 Binary files a/sound/vox/extinguisher.wav and /dev/null differ diff --git a/sound/vox/extreme.wav b/sound/vox/extreme.wav deleted file mode 100644 index 0fc3adfb50e..00000000000 Binary files a/sound/vox/extreme.wav and /dev/null differ diff --git a/sound/vox/f.wav b/sound/vox/f.wav deleted file mode 100644 index 0f06b338867..00000000000 Binary files a/sound/vox/f.wav and /dev/null differ diff --git a/sound/vox/facility.wav b/sound/vox/facility.wav deleted file mode 100644 index 812445e3dd7..00000000000 Binary files a/sound/vox/facility.wav and /dev/null differ diff --git a/sound/vox/fahrenheit.wav b/sound/vox/fahrenheit.wav deleted file mode 100644 index 96411aabdce..00000000000 Binary files a/sound/vox/fahrenheit.wav and /dev/null differ diff --git a/sound/vox/failed.wav b/sound/vox/failed.wav deleted file mode 100644 index f717b053758..00000000000 Binary files a/sound/vox/failed.wav and /dev/null differ diff --git a/sound/vox/failure.wav b/sound/vox/failure.wav deleted file mode 100644 index dd662fc5a66..00000000000 Binary files a/sound/vox/failure.wav and /dev/null differ diff --git a/sound/vox/farthest.wav b/sound/vox/farthest.wav deleted file mode 100644 index fcca7a432ec..00000000000 Binary files a/sound/vox/farthest.wav and /dev/null differ diff --git a/sound/vox/fast.wav b/sound/vox/fast.wav deleted file mode 100644 index 821885a739f..00000000000 Binary files a/sound/vox/fast.wav and /dev/null differ diff --git a/sound/vox/feet.wav b/sound/vox/feet.wav deleted file mode 100644 index 5adc5dbd62f..00000000000 Binary files a/sound/vox/feet.wav and /dev/null differ diff --git a/sound/vox/field.wav b/sound/vox/field.wav deleted file mode 100644 index 6cc1ab42f83..00000000000 Binary files a/sound/vox/field.wav and /dev/null differ diff --git a/sound/vox/fifteen.wav b/sound/vox/fifteen.wav deleted file mode 100644 index 63ca382128d..00000000000 Binary files a/sound/vox/fifteen.wav and /dev/null differ diff --git a/sound/vox/fifth.wav b/sound/vox/fifth.wav deleted file mode 100644 index 3886e043bfb..00000000000 Binary files a/sound/vox/fifth.wav and /dev/null differ diff --git a/sound/vox/fifty.wav b/sound/vox/fifty.wav deleted file mode 100644 index 80f7b111037..00000000000 Binary files a/sound/vox/fifty.wav and /dev/null differ diff --git a/sound/vox/final.wav b/sound/vox/final.wav deleted file mode 100644 index d4c807af6ed..00000000000 Binary files a/sound/vox/final.wav and /dev/null differ diff --git a/sound/vox/fine.wav b/sound/vox/fine.wav deleted file mode 100644 index f74d8fbfaa2..00000000000 Binary files a/sound/vox/fine.wav and /dev/null differ diff --git a/sound/vox/fire.wav b/sound/vox/fire.wav deleted file mode 100644 index ce0a45d9c62..00000000000 Binary files a/sound/vox/fire.wav and /dev/null differ diff --git a/sound/vox/first.wav b/sound/vox/first.wav deleted file mode 100644 index 18a7fdf7afd..00000000000 Binary files a/sound/vox/first.wav and /dev/null differ diff --git a/sound/vox/five.wav b/sound/vox/five.wav deleted file mode 100644 index aa23cbe9cf1..00000000000 Binary files a/sound/vox/five.wav and /dev/null differ diff --git a/sound/vox/flooding.wav b/sound/vox/flooding.wav deleted file mode 100644 index 7b9f5bcc696..00000000000 Binary files a/sound/vox/flooding.wav and /dev/null differ diff --git a/sound/vox/floor.wav b/sound/vox/floor.wav deleted file mode 100644 index b0865491647..00000000000 Binary files a/sound/vox/floor.wav and /dev/null differ diff --git a/sound/vox/fool.wav b/sound/vox/fool.wav deleted file mode 100644 index 327b3f5b598..00000000000 Binary files a/sound/vox/fool.wav and /dev/null differ diff --git a/sound/vox/for.wav b/sound/vox/for.wav deleted file mode 100644 index 84f793decec..00000000000 Binary files a/sound/vox/for.wav and /dev/null differ diff --git a/sound/vox/forbidden.wav b/sound/vox/forbidden.wav deleted file mode 100644 index f4d742505e2..00000000000 Binary files a/sound/vox/forbidden.wav and /dev/null differ diff --git a/sound/vox/force.wav b/sound/vox/force.wav deleted file mode 100644 index 3745c71418d..00000000000 Binary files a/sound/vox/force.wav and /dev/null differ diff --git a/sound/vox/forms.wav b/sound/vox/forms.wav deleted file mode 100644 index 642e201abc6..00000000000 Binary files a/sound/vox/forms.wav and /dev/null differ diff --git a/sound/vox/found.wav b/sound/vox/found.wav deleted file mode 100644 index 59da4031fcd..00000000000 Binary files a/sound/vox/found.wav and /dev/null differ diff --git a/sound/vox/four.wav b/sound/vox/four.wav deleted file mode 100644 index a614cbcdc5f..00000000000 Binary files a/sound/vox/four.wav and /dev/null differ diff --git a/sound/vox/fourteen.wav b/sound/vox/fourteen.wav deleted file mode 100644 index aa0846855bf..00000000000 Binary files a/sound/vox/fourteen.wav and /dev/null differ diff --git a/sound/vox/fourth.wav b/sound/vox/fourth.wav deleted file mode 100644 index 5c9071d292d..00000000000 Binary files a/sound/vox/fourth.wav and /dev/null differ diff --git a/sound/vox/fourty.wav b/sound/vox/fourty.wav deleted file mode 100644 index 6bb8fb3e126..00000000000 Binary files a/sound/vox/fourty.wav and /dev/null differ diff --git a/sound/vox/foxtrot.wav b/sound/vox/foxtrot.wav deleted file mode 100644 index ece21be942f..00000000000 Binary files a/sound/vox/foxtrot.wav and /dev/null differ diff --git a/sound/vox/freeman.wav b/sound/vox/freeman.wav deleted file mode 100644 index 26a9ae229bb..00000000000 Binary files a/sound/vox/freeman.wav and /dev/null differ diff --git a/sound/vox/freezer.wav b/sound/vox/freezer.wav deleted file mode 100644 index 32da8615481..00000000000 Binary files a/sound/vox/freezer.wav and /dev/null differ diff --git a/sound/vox/from.wav b/sound/vox/from.wav deleted file mode 100644 index 46541abe658..00000000000 Binary files a/sound/vox/from.wav and /dev/null differ diff --git a/sound/vox/front.wav b/sound/vox/front.wav deleted file mode 100644 index 46d600144d3..00000000000 Binary files a/sound/vox/front.wav and /dev/null differ diff --git a/sound/vox/fuel.wav b/sound/vox/fuel.wav deleted file mode 100644 index 1b2256b006f..00000000000 Binary files a/sound/vox/fuel.wav and /dev/null differ diff --git a/sound/vox/g.wav b/sound/vox/g.wav deleted file mode 100644 index 37f5ce80100..00000000000 Binary files a/sound/vox/g.wav and /dev/null differ diff --git a/sound/vox/get.wav b/sound/vox/get.wav deleted file mode 100644 index 9dd512d512d..00000000000 Binary files a/sound/vox/get.wav and /dev/null differ diff --git a/sound/vox/go.wav b/sound/vox/go.wav deleted file mode 100644 index 665989a94f9..00000000000 Binary files a/sound/vox/go.wav and /dev/null differ diff --git a/sound/vox/going.wav b/sound/vox/going.wav deleted file mode 100644 index 308b1b68903..00000000000 Binary files a/sound/vox/going.wav and /dev/null differ diff --git a/sound/vox/good.wav b/sound/vox/good.wav deleted file mode 100644 index bf15c9c2b43..00000000000 Binary files a/sound/vox/good.wav and /dev/null differ diff --git a/sound/vox/goodbye.wav b/sound/vox/goodbye.wav deleted file mode 100644 index 2599ca560cc..00000000000 Binary files a/sound/vox/goodbye.wav and /dev/null differ diff --git a/sound/vox/gordon.wav b/sound/vox/gordon.wav deleted file mode 100644 index 51c7195091b..00000000000 Binary files a/sound/vox/gordon.wav and /dev/null differ diff --git a/sound/vox/got.wav b/sound/vox/got.wav deleted file mode 100644 index b2b47c9d2e7..00000000000 Binary files a/sound/vox/got.wav and /dev/null differ diff --git a/sound/vox/government.wav b/sound/vox/government.wav deleted file mode 100644 index 17e7fa8fbfc..00000000000 Binary files a/sound/vox/government.wav and /dev/null differ diff --git a/sound/vox/granted.wav b/sound/vox/granted.wav deleted file mode 100644 index 661bf0506fd..00000000000 Binary files a/sound/vox/granted.wav and /dev/null differ diff --git a/sound/vox/great.wav b/sound/vox/great.wav deleted file mode 100644 index 8640b88fb61..00000000000 Binary files a/sound/vox/great.wav and /dev/null differ diff --git a/sound/vox/green.wav b/sound/vox/green.wav deleted file mode 100644 index 0eb5558231d..00000000000 Binary files a/sound/vox/green.wav and /dev/null differ diff --git a/sound/vox/grenade.wav b/sound/vox/grenade.wav deleted file mode 100644 index 7b2d80ed6d6..00000000000 Binary files a/sound/vox/grenade.wav and /dev/null differ diff --git a/sound/vox/guard.wav b/sound/vox/guard.wav deleted file mode 100644 index e715dc641c0..00000000000 Binary files a/sound/vox/guard.wav and /dev/null differ diff --git a/sound/vox/gulf.wav b/sound/vox/gulf.wav deleted file mode 100644 index 95b3e9fc4f9..00000000000 Binary files a/sound/vox/gulf.wav and /dev/null differ diff --git a/sound/vox/gun.wav b/sound/vox/gun.wav deleted file mode 100644 index 86e3ac1cbb5..00000000000 Binary files a/sound/vox/gun.wav and /dev/null differ diff --git a/sound/vox/guthrie.wav b/sound/vox/guthrie.wav deleted file mode 100644 index 362ab46d60c..00000000000 Binary files a/sound/vox/guthrie.wav and /dev/null differ diff --git a/sound/vox/handling.wav b/sound/vox/handling.wav deleted file mode 100644 index b9c7c5f581d..00000000000 Binary files a/sound/vox/handling.wav and /dev/null differ diff --git a/sound/vox/hangar.wav b/sound/vox/hangar.wav deleted file mode 100644 index e937054af9b..00000000000 Binary files a/sound/vox/hangar.wav and /dev/null differ diff --git a/sound/vox/has.wav b/sound/vox/has.wav deleted file mode 100644 index 625a110f07f..00000000000 Binary files a/sound/vox/has.wav and /dev/null differ diff --git a/sound/vox/have.wav b/sound/vox/have.wav deleted file mode 100644 index c5f0794a1f4..00000000000 Binary files a/sound/vox/have.wav and /dev/null differ diff --git a/sound/vox/hazard.wav b/sound/vox/hazard.wav deleted file mode 100644 index b311552c766..00000000000 Binary files a/sound/vox/hazard.wav and /dev/null differ diff --git a/sound/vox/head.wav b/sound/vox/head.wav deleted file mode 100644 index ed8e9d88c64..00000000000 Binary files a/sound/vox/head.wav and /dev/null differ diff --git a/sound/vox/health.wav b/sound/vox/health.wav deleted file mode 100644 index e3158318f41..00000000000 Binary files a/sound/vox/health.wav and /dev/null differ diff --git a/sound/vox/heat.wav b/sound/vox/heat.wav deleted file mode 100644 index ca0b3452255..00000000000 Binary files a/sound/vox/heat.wav and /dev/null differ diff --git a/sound/vox/helicopter.wav b/sound/vox/helicopter.wav deleted file mode 100644 index 22e54494437..00000000000 Binary files a/sound/vox/helicopter.wav and /dev/null differ diff --git a/sound/vox/helium.wav b/sound/vox/helium.wav deleted file mode 100644 index fbb8197cb06..00000000000 Binary files a/sound/vox/helium.wav and /dev/null differ diff --git a/sound/vox/hello.wav b/sound/vox/hello.wav deleted file mode 100644 index 7e61fec55ef..00000000000 Binary files a/sound/vox/hello.wav and /dev/null differ diff --git a/sound/vox/help.wav b/sound/vox/help.wav deleted file mode 100644 index 5bef919ee9a..00000000000 Binary files a/sound/vox/help.wav and /dev/null differ diff --git a/sound/vox/here.wav b/sound/vox/here.wav deleted file mode 100644 index e6d74f47f75..00000000000 Binary files a/sound/vox/here.wav and /dev/null differ diff --git a/sound/vox/hide.wav b/sound/vox/hide.wav deleted file mode 100644 index f7bb32b2830..00000000000 Binary files a/sound/vox/hide.wav and /dev/null differ diff --git a/sound/vox/high.wav b/sound/vox/high.wav deleted file mode 100644 index 832bf160408..00000000000 Binary files a/sound/vox/high.wav and /dev/null differ diff --git a/sound/vox/highest.wav b/sound/vox/highest.wav deleted file mode 100644 index ef4b2caf39f..00000000000 Binary files a/sound/vox/highest.wav and /dev/null differ diff --git a/sound/vox/hit.wav b/sound/vox/hit.wav deleted file mode 100644 index d70619a3f56..00000000000 Binary files a/sound/vox/hit.wav and /dev/null differ diff --git a/sound/vox/hole.wav b/sound/vox/hole.wav deleted file mode 100644 index afb46f59adc..00000000000 Binary files a/sound/vox/hole.wav and /dev/null differ diff --git a/sound/vox/hostile.wav b/sound/vox/hostile.wav deleted file mode 100644 index 4dc88f26c63..00000000000 Binary files a/sound/vox/hostile.wav and /dev/null differ diff --git a/sound/vox/hot.wav b/sound/vox/hot.wav deleted file mode 100644 index 7ced07279b9..00000000000 Binary files a/sound/vox/hot.wav and /dev/null differ diff --git a/sound/vox/hotel.wav b/sound/vox/hotel.wav deleted file mode 100644 index dde78cf2a18..00000000000 Binary files a/sound/vox/hotel.wav and /dev/null differ diff --git a/sound/vox/hour.wav b/sound/vox/hour.wav deleted file mode 100644 index d428bd779e1..00000000000 Binary files a/sound/vox/hour.wav and /dev/null differ diff --git a/sound/vox/hours.wav b/sound/vox/hours.wav deleted file mode 100644 index 63a24704270..00000000000 Binary files a/sound/vox/hours.wav and /dev/null differ diff --git a/sound/vox/hundred.wav b/sound/vox/hundred.wav deleted file mode 100644 index 8d3a8a0b4a5..00000000000 Binary files a/sound/vox/hundred.wav and /dev/null differ diff --git a/sound/vox/hydro.wav b/sound/vox/hydro.wav deleted file mode 100644 index 9653b7bf73a..00000000000 Binary files a/sound/vox/hydro.wav and /dev/null differ diff --git a/sound/vox/i.wav b/sound/vox/i.wav deleted file mode 100644 index b98a48fd294..00000000000 Binary files a/sound/vox/i.wav and /dev/null differ diff --git a/sound/vox/idiot.wav b/sound/vox/idiot.wav deleted file mode 100644 index 8c19f9d7a42..00000000000 Binary files a/sound/vox/idiot.wav and /dev/null differ diff --git a/sound/vox/illegal.wav b/sound/vox/illegal.wav deleted file mode 100644 index 6087e6ba7d2..00000000000 Binary files a/sound/vox/illegal.wav and /dev/null differ diff --git a/sound/vox/immediate.wav b/sound/vox/immediate.wav deleted file mode 100644 index 19fab3c842d..00000000000 Binary files a/sound/vox/immediate.wav and /dev/null differ diff --git a/sound/vox/immediately.wav b/sound/vox/immediately.wav deleted file mode 100644 index f2716edf0e0..00000000000 Binary files a/sound/vox/immediately.wav and /dev/null differ diff --git a/sound/vox/in.wav b/sound/vox/in.wav deleted file mode 100644 index e15bb9a6d5b..00000000000 Binary files a/sound/vox/in.wav and /dev/null differ diff --git a/sound/vox/inches.wav b/sound/vox/inches.wav deleted file mode 100644 index fc8e89ce7b9..00000000000 Binary files a/sound/vox/inches.wav and /dev/null differ diff --git a/sound/vox/india.wav b/sound/vox/india.wav deleted file mode 100644 index 991f9af5e02..00000000000 Binary files a/sound/vox/india.wav and /dev/null differ diff --git a/sound/vox/ing.wav b/sound/vox/ing.wav deleted file mode 100644 index 0728905c349..00000000000 Binary files a/sound/vox/ing.wav and /dev/null differ diff --git a/sound/vox/inoperative.wav b/sound/vox/inoperative.wav deleted file mode 100644 index 6822cc5fc37..00000000000 Binary files a/sound/vox/inoperative.wav and /dev/null differ diff --git a/sound/vox/inside.wav b/sound/vox/inside.wav deleted file mode 100644 index 03cb903c24a..00000000000 Binary files a/sound/vox/inside.wav and /dev/null differ diff --git a/sound/vox/inspection.wav b/sound/vox/inspection.wav deleted file mode 100644 index 3aecb746262..00000000000 Binary files a/sound/vox/inspection.wav and /dev/null differ diff --git a/sound/vox/inspector.wav b/sound/vox/inspector.wav deleted file mode 100644 index 06a54a36700..00000000000 Binary files a/sound/vox/inspector.wav and /dev/null differ diff --git a/sound/vox/interchange.wav b/sound/vox/interchange.wav deleted file mode 100644 index c7814162b42..00000000000 Binary files a/sound/vox/interchange.wav and /dev/null differ diff --git a/sound/vox/intruder.wav b/sound/vox/intruder.wav deleted file mode 100644 index a32958f0be6..00000000000 Binary files a/sound/vox/intruder.wav and /dev/null differ diff --git a/sound/vox/invallid.wav b/sound/vox/invallid.wav deleted file mode 100644 index fbf3b4e5245..00000000000 Binary files a/sound/vox/invallid.wav and /dev/null differ diff --git a/sound/vox/invasion.wav b/sound/vox/invasion.wav deleted file mode 100644 index 0024f331d4b..00000000000 Binary files a/sound/vox/invasion.wav and /dev/null differ diff --git a/sound/vox/is.wav b/sound/vox/is.wav deleted file mode 100644 index 0eecb1a7b7a..00000000000 Binary files a/sound/vox/is.wav and /dev/null differ diff --git a/sound/vox/it.wav b/sound/vox/it.wav deleted file mode 100644 index 1e96daf6bba..00000000000 Binary files a/sound/vox/it.wav and /dev/null differ diff --git a/sound/vox/johnson.wav b/sound/vox/johnson.wav deleted file mode 100644 index 1cef742cf67..00000000000 Binary files a/sound/vox/johnson.wav and /dev/null differ diff --git a/sound/vox/juliet.wav b/sound/vox/juliet.wav deleted file mode 100644 index 88a78517ca8..00000000000 Binary files a/sound/vox/juliet.wav and /dev/null differ diff --git a/sound/vox/key.wav b/sound/vox/key.wav deleted file mode 100644 index ba42b393db3..00000000000 Binary files a/sound/vox/key.wav and /dev/null differ diff --git a/sound/vox/kill.wav b/sound/vox/kill.wav deleted file mode 100644 index 9ae66ac5f6d..00000000000 Binary files a/sound/vox/kill.wav and /dev/null differ diff --git a/sound/vox/kilo.wav b/sound/vox/kilo.wav deleted file mode 100644 index e30904cafbe..00000000000 Binary files a/sound/vox/kilo.wav and /dev/null differ diff --git a/sound/vox/kit.wav b/sound/vox/kit.wav deleted file mode 100644 index b6cf53a5477..00000000000 Binary files a/sound/vox/kit.wav and /dev/null differ diff --git a/sound/vox/lab.wav b/sound/vox/lab.wav deleted file mode 100644 index 8b2518fe570..00000000000 Binary files a/sound/vox/lab.wav and /dev/null differ diff --git a/sound/vox/lambda.wav b/sound/vox/lambda.wav deleted file mode 100644 index a238ac9d964..00000000000 Binary files a/sound/vox/lambda.wav and /dev/null differ diff --git a/sound/vox/laser.wav b/sound/vox/laser.wav deleted file mode 100644 index 7617aa65d7a..00000000000 Binary files a/sound/vox/laser.wav and /dev/null differ diff --git a/sound/vox/last.wav b/sound/vox/last.wav deleted file mode 100644 index 458d13af62c..00000000000 Binary files a/sound/vox/last.wav and /dev/null differ diff --git a/sound/vox/launch.wav b/sound/vox/launch.wav deleted file mode 100644 index 66fd2224cee..00000000000 Binary files a/sound/vox/launch.wav and /dev/null differ diff --git a/sound/vox/leak.wav b/sound/vox/leak.wav deleted file mode 100644 index 0ec0fc786d9..00000000000 Binary files a/sound/vox/leak.wav and /dev/null differ diff --git a/sound/vox/leave.wav b/sound/vox/leave.wav deleted file mode 100644 index ce45698813a..00000000000 Binary files a/sound/vox/leave.wav and /dev/null differ diff --git a/sound/vox/left.wav b/sound/vox/left.wav deleted file mode 100644 index 2621d07fbdb..00000000000 Binary files a/sound/vox/left.wav and /dev/null differ diff --git a/sound/vox/legal.wav b/sound/vox/legal.wav deleted file mode 100644 index 928033759d2..00000000000 Binary files a/sound/vox/legal.wav and /dev/null differ diff --git a/sound/vox/level.wav b/sound/vox/level.wav deleted file mode 100644 index 1f01010dd01..00000000000 Binary files a/sound/vox/level.wav and /dev/null differ diff --git a/sound/vox/lever.wav b/sound/vox/lever.wav deleted file mode 100644 index a863fdc77a0..00000000000 Binary files a/sound/vox/lever.wav and /dev/null differ diff --git a/sound/vox/lie.wav b/sound/vox/lie.wav deleted file mode 100644 index 01b8749a0c8..00000000000 Binary files a/sound/vox/lie.wav and /dev/null differ diff --git a/sound/vox/lieutenant.wav b/sound/vox/lieutenant.wav deleted file mode 100644 index f749f2782a5..00000000000 Binary files a/sound/vox/lieutenant.wav and /dev/null differ diff --git a/sound/vox/life.wav b/sound/vox/life.wav deleted file mode 100644 index fd739b4593d..00000000000 Binary files a/sound/vox/life.wav and /dev/null differ diff --git a/sound/vox/light.wav b/sound/vox/light.wav deleted file mode 100644 index 69be0499552..00000000000 Binary files a/sound/vox/light.wav and /dev/null differ diff --git a/sound/vox/lima.wav b/sound/vox/lima.wav deleted file mode 100644 index d0cf4d05812..00000000000 Binary files a/sound/vox/lima.wav and /dev/null differ diff --git a/sound/vox/liquid.wav b/sound/vox/liquid.wav deleted file mode 100644 index 9f77a868e7f..00000000000 Binary files a/sound/vox/liquid.wav and /dev/null differ diff --git a/sound/vox/loading.wav b/sound/vox/loading.wav deleted file mode 100644 index f5404ef81b8..00000000000 Binary files a/sound/vox/loading.wav and /dev/null differ diff --git a/sound/vox/locate.wav b/sound/vox/locate.wav deleted file mode 100644 index 6b605a8d2df..00000000000 Binary files a/sound/vox/locate.wav and /dev/null differ diff --git a/sound/vox/located.wav b/sound/vox/located.wav deleted file mode 100644 index 19fb575525d..00000000000 Binary files a/sound/vox/located.wav and /dev/null differ diff --git a/sound/vox/location.wav b/sound/vox/location.wav deleted file mode 100644 index 149b0ec0270..00000000000 Binary files a/sound/vox/location.wav and /dev/null differ diff --git a/sound/vox/lock.wav b/sound/vox/lock.wav deleted file mode 100644 index a62efba6b9b..00000000000 Binary files a/sound/vox/lock.wav and /dev/null differ diff --git a/sound/vox/locked.wav b/sound/vox/locked.wav deleted file mode 100644 index 8d197f25023..00000000000 Binary files a/sound/vox/locked.wav and /dev/null differ diff --git a/sound/vox/locker.wav b/sound/vox/locker.wav deleted file mode 100644 index e6f9dfe2993..00000000000 Binary files a/sound/vox/locker.wav and /dev/null differ diff --git a/sound/vox/lockout.wav b/sound/vox/lockout.wav deleted file mode 100644 index b2cd0fb64d3..00000000000 Binary files a/sound/vox/lockout.wav and /dev/null differ diff --git a/sound/vox/lower.wav b/sound/vox/lower.wav deleted file mode 100644 index a654c1d4249..00000000000 Binary files a/sound/vox/lower.wav and /dev/null differ diff --git a/sound/vox/lowest.wav b/sound/vox/lowest.wav deleted file mode 100644 index 63fdaf93f03..00000000000 Binary files a/sound/vox/lowest.wav and /dev/null differ diff --git a/sound/vox/magnetic.wav b/sound/vox/magnetic.wav deleted file mode 100644 index 68deeeae9cd..00000000000 Binary files a/sound/vox/magnetic.wav and /dev/null differ diff --git a/sound/vox/main.wav b/sound/vox/main.wav deleted file mode 100644 index 46572749123..00000000000 Binary files a/sound/vox/main.wav and /dev/null differ diff --git a/sound/vox/maintenance.wav b/sound/vox/maintenance.wav deleted file mode 100644 index ebca04c9d6d..00000000000 Binary files a/sound/vox/maintenance.wav and /dev/null differ diff --git a/sound/vox/malfunction.wav b/sound/vox/malfunction.wav deleted file mode 100644 index 51d999b41fb..00000000000 Binary files a/sound/vox/malfunction.wav and /dev/null differ diff --git a/sound/vox/man.wav b/sound/vox/man.wav deleted file mode 100644 index 64525a4f23d..00000000000 Binary files a/sound/vox/man.wav and /dev/null differ diff --git a/sound/vox/mass.wav b/sound/vox/mass.wav deleted file mode 100644 index c7825984aa0..00000000000 Binary files a/sound/vox/mass.wav and /dev/null differ diff --git a/sound/vox/materials.wav b/sound/vox/materials.wav deleted file mode 100644 index c983ae71a87..00000000000 Binary files a/sound/vox/materials.wav and /dev/null differ diff --git a/sound/vox/maximum.wav b/sound/vox/maximum.wav deleted file mode 100644 index f1dbc8062d6..00000000000 Binary files a/sound/vox/maximum.wav and /dev/null differ diff --git a/sound/vox/may.wav b/sound/vox/may.wav deleted file mode 100644 index a2387387030..00000000000 Binary files a/sound/vox/may.wav and /dev/null differ diff --git a/sound/vox/medical.wav b/sound/vox/medical.wav deleted file mode 100644 index ece7f0c4c5f..00000000000 Binary files a/sound/vox/medical.wav and /dev/null differ diff --git a/sound/vox/men.wav b/sound/vox/men.wav deleted file mode 100644 index 594523da0ae..00000000000 Binary files a/sound/vox/men.wav and /dev/null differ diff --git a/sound/vox/mercy.wav b/sound/vox/mercy.wav deleted file mode 100644 index 8416b25dae4..00000000000 Binary files a/sound/vox/mercy.wav and /dev/null differ diff --git a/sound/vox/mesa.wav b/sound/vox/mesa.wav deleted file mode 100644 index fcb1d9843c0..00000000000 Binary files a/sound/vox/mesa.wav and /dev/null differ diff --git a/sound/vox/message.wav b/sound/vox/message.wav deleted file mode 100644 index b0b769db726..00000000000 Binary files a/sound/vox/message.wav and /dev/null differ diff --git a/sound/vox/meter.wav b/sound/vox/meter.wav deleted file mode 100644 index ca063bddad7..00000000000 Binary files a/sound/vox/meter.wav and /dev/null differ diff --git a/sound/vox/micro.wav b/sound/vox/micro.wav deleted file mode 100644 index 7869b97cecb..00000000000 Binary files a/sound/vox/micro.wav and /dev/null differ diff --git a/sound/vox/middle.wav b/sound/vox/middle.wav deleted file mode 100644 index b58a5878a9c..00000000000 Binary files a/sound/vox/middle.wav and /dev/null differ diff --git a/sound/vox/mike.wav b/sound/vox/mike.wav deleted file mode 100644 index a008bdefed9..00000000000 Binary files a/sound/vox/mike.wav and /dev/null differ diff --git a/sound/vox/miles.wav b/sound/vox/miles.wav deleted file mode 100644 index 9b04a790ea4..00000000000 Binary files a/sound/vox/miles.wav and /dev/null differ diff --git a/sound/vox/military.wav b/sound/vox/military.wav deleted file mode 100644 index 8387dc3b6c8..00000000000 Binary files a/sound/vox/military.wav and /dev/null differ diff --git a/sound/vox/milli.wav b/sound/vox/milli.wav deleted file mode 100644 index cc0b3e4c97e..00000000000 Binary files a/sound/vox/milli.wav and /dev/null differ diff --git a/sound/vox/million.wav b/sound/vox/million.wav deleted file mode 100644 index 6409eb0760a..00000000000 Binary files a/sound/vox/million.wav and /dev/null differ diff --git a/sound/vox/minefield.wav b/sound/vox/minefield.wav deleted file mode 100644 index 2af1c213671..00000000000 Binary files a/sound/vox/minefield.wav and /dev/null differ diff --git a/sound/vox/minimum.wav b/sound/vox/minimum.wav deleted file mode 100644 index ee184ce4fcb..00000000000 Binary files a/sound/vox/minimum.wav and /dev/null differ diff --git a/sound/vox/minutes.wav b/sound/vox/minutes.wav deleted file mode 100644 index 2e9fb914edd..00000000000 Binary files a/sound/vox/minutes.wav and /dev/null differ diff --git a/sound/vox/mister.wav b/sound/vox/mister.wav deleted file mode 100644 index 27507cfb09c..00000000000 Binary files a/sound/vox/mister.wav and /dev/null differ diff --git a/sound/vox/mode.wav b/sound/vox/mode.wav deleted file mode 100644 index e1060e9661b..00000000000 Binary files a/sound/vox/mode.wav and /dev/null differ diff --git a/sound/vox/motor.wav b/sound/vox/motor.wav deleted file mode 100644 index 7d1dbaeba46..00000000000 Binary files a/sound/vox/motor.wav and /dev/null differ diff --git a/sound/vox/motorpool.wav b/sound/vox/motorpool.wav deleted file mode 100644 index ae5a6af0d6f..00000000000 Binary files a/sound/vox/motorpool.wav and /dev/null differ diff --git a/sound/vox/move.wav b/sound/vox/move.wav deleted file mode 100644 index 1bc2172297f..00000000000 Binary files a/sound/vox/move.wav and /dev/null differ diff --git a/sound/vox/must.wav b/sound/vox/must.wav deleted file mode 100644 index 3e6e965bec1..00000000000 Binary files a/sound/vox/must.wav and /dev/null differ diff --git a/sound/vox/nearest.wav b/sound/vox/nearest.wav deleted file mode 100644 index 3f84ee72413..00000000000 Binary files a/sound/vox/nearest.wav and /dev/null differ diff --git a/sound/vox/nice.wav b/sound/vox/nice.wav deleted file mode 100644 index 8bd140649f6..00000000000 Binary files a/sound/vox/nice.wav and /dev/null differ diff --git a/sound/vox/nine.wav b/sound/vox/nine.wav deleted file mode 100644 index b85745edf9c..00000000000 Binary files a/sound/vox/nine.wav and /dev/null differ diff --git a/sound/vox/nineteen.wav b/sound/vox/nineteen.wav deleted file mode 100644 index c6da48310b2..00000000000 Binary files a/sound/vox/nineteen.wav and /dev/null differ diff --git a/sound/vox/ninety.wav b/sound/vox/ninety.wav deleted file mode 100644 index 74e2e02d412..00000000000 Binary files a/sound/vox/ninety.wav and /dev/null differ diff --git a/sound/vox/no.wav b/sound/vox/no.wav deleted file mode 100644 index ced1b6617cf..00000000000 Binary files a/sound/vox/no.wav and /dev/null differ diff --git a/sound/vox/nominal.wav b/sound/vox/nominal.wav deleted file mode 100644 index f0656302d1d..00000000000 Binary files a/sound/vox/nominal.wav and /dev/null differ diff --git a/sound/vox/north.wav b/sound/vox/north.wav deleted file mode 100644 index 4867fdc7bc5..00000000000 Binary files a/sound/vox/north.wav and /dev/null differ diff --git a/sound/vox/not.wav b/sound/vox/not.wav deleted file mode 100644 index 626cd177744..00000000000 Binary files a/sound/vox/not.wav and /dev/null differ diff --git a/sound/vox/november.wav b/sound/vox/november.wav deleted file mode 100644 index 212efe5f9a6..00000000000 Binary files a/sound/vox/november.wav and /dev/null differ diff --git a/sound/vox/now.wav b/sound/vox/now.wav deleted file mode 100644 index 0619087d594..00000000000 Binary files a/sound/vox/now.wav and /dev/null differ diff --git a/sound/vox/number.wav b/sound/vox/number.wav deleted file mode 100644 index cfec10a75e6..00000000000 Binary files a/sound/vox/number.wav and /dev/null differ diff --git a/sound/vox/objective.wav b/sound/vox/objective.wav deleted file mode 100644 index 14ea571aa68..00000000000 Binary files a/sound/vox/objective.wav and /dev/null differ diff --git a/sound/vox/observation.wav b/sound/vox/observation.wav deleted file mode 100644 index 9141789671a..00000000000 Binary files a/sound/vox/observation.wav and /dev/null differ diff --git a/sound/vox/of.wav b/sound/vox/of.wav deleted file mode 100644 index 7cf5427dfb1..00000000000 Binary files a/sound/vox/of.wav and /dev/null differ diff --git a/sound/vox/officer.wav b/sound/vox/officer.wav deleted file mode 100644 index 9017915aef2..00000000000 Binary files a/sound/vox/officer.wav and /dev/null differ diff --git a/sound/vox/ok.wav b/sound/vox/ok.wav deleted file mode 100644 index 66011aed6d4..00000000000 Binary files a/sound/vox/ok.wav and /dev/null differ diff --git a/sound/vox/on.wav b/sound/vox/on.wav deleted file mode 100644 index 2b97a1fd46a..00000000000 Binary files a/sound/vox/on.wav and /dev/null differ diff --git a/sound/vox/one.wav b/sound/vox/one.wav deleted file mode 100644 index 57f2b3f14de..00000000000 Binary files a/sound/vox/one.wav and /dev/null differ diff --git a/sound/vox/open.wav b/sound/vox/open.wav deleted file mode 100644 index be98260bb92..00000000000 Binary files a/sound/vox/open.wav and /dev/null differ diff --git a/sound/vox/operating.wav b/sound/vox/operating.wav deleted file mode 100644 index b2180694205..00000000000 Binary files a/sound/vox/operating.wav and /dev/null differ diff --git a/sound/vox/operations.wav b/sound/vox/operations.wav deleted file mode 100644 index 37c9d75e0eb..00000000000 Binary files a/sound/vox/operations.wav and /dev/null differ diff --git a/sound/vox/operative.wav b/sound/vox/operative.wav deleted file mode 100644 index 70f99029cd2..00000000000 Binary files a/sound/vox/operative.wav and /dev/null differ diff --git a/sound/vox/option.wav b/sound/vox/option.wav deleted file mode 100644 index a5199b71de6..00000000000 Binary files a/sound/vox/option.wav and /dev/null differ diff --git a/sound/vox/order.wav b/sound/vox/order.wav deleted file mode 100644 index c5a25483401..00000000000 Binary files a/sound/vox/order.wav and /dev/null differ diff --git a/sound/vox/organic.wav b/sound/vox/organic.wav deleted file mode 100644 index 78dc879d7c0..00000000000 Binary files a/sound/vox/organic.wav and /dev/null differ diff --git a/sound/vox/oscar.wav b/sound/vox/oscar.wav deleted file mode 100644 index 32db2392d58..00000000000 Binary files a/sound/vox/oscar.wav and /dev/null differ diff --git a/sound/vox/out.wav b/sound/vox/out.wav deleted file mode 100644 index 4aca4d70705..00000000000 Binary files a/sound/vox/out.wav and /dev/null differ diff --git a/sound/vox/outside.wav b/sound/vox/outside.wav deleted file mode 100644 index 62993ea5e45..00000000000 Binary files a/sound/vox/outside.wav and /dev/null differ diff --git a/sound/vox/over.wav b/sound/vox/over.wav deleted file mode 100644 index 8068c74f732..00000000000 Binary files a/sound/vox/over.wav and /dev/null differ diff --git a/sound/vox/overload.wav b/sound/vox/overload.wav deleted file mode 100644 index d932cb3dedf..00000000000 Binary files a/sound/vox/overload.wav and /dev/null differ diff --git a/sound/vox/override.wav b/sound/vox/override.wav deleted file mode 100644 index 132667e7eae..00000000000 Binary files a/sound/vox/override.wav and /dev/null differ diff --git a/sound/vox/pacify.wav b/sound/vox/pacify.wav deleted file mode 100644 index 6a596197d75..00000000000 Binary files a/sound/vox/pacify.wav and /dev/null differ diff --git a/sound/vox/pain.wav b/sound/vox/pain.wav deleted file mode 100644 index bdb30dded8b..00000000000 Binary files a/sound/vox/pain.wav and /dev/null differ diff --git a/sound/vox/pal.wav b/sound/vox/pal.wav deleted file mode 100644 index 28eb17ce99a..00000000000 Binary files a/sound/vox/pal.wav and /dev/null differ diff --git a/sound/vox/panel.wav b/sound/vox/panel.wav deleted file mode 100644 index ce1f22fd234..00000000000 Binary files a/sound/vox/panel.wav and /dev/null differ diff --git a/sound/vox/percent.wav b/sound/vox/percent.wav deleted file mode 100644 index 9e775863ae4..00000000000 Binary files a/sound/vox/percent.wav and /dev/null differ diff --git a/sound/vox/perimeter.wav b/sound/vox/perimeter.wav deleted file mode 100644 index 91a8d95d910..00000000000 Binary files a/sound/vox/perimeter.wav and /dev/null differ diff --git a/sound/vox/permitted.wav b/sound/vox/permitted.wav deleted file mode 100644 index 015d10eaa87..00000000000 Binary files a/sound/vox/permitted.wav and /dev/null differ diff --git a/sound/vox/personnel.wav b/sound/vox/personnel.wav deleted file mode 100644 index 665a3215c9c..00000000000 Binary files a/sound/vox/personnel.wav and /dev/null differ diff --git a/sound/vox/pipe.wav b/sound/vox/pipe.wav deleted file mode 100644 index 53abe7db8bb..00000000000 Binary files a/sound/vox/pipe.wav and /dev/null differ diff --git a/sound/vox/plant.wav b/sound/vox/plant.wav deleted file mode 100644 index 8fc84c60ac4..00000000000 Binary files a/sound/vox/plant.wav and /dev/null differ diff --git a/sound/vox/platform.wav b/sound/vox/platform.wav deleted file mode 100644 index 72ca2c179ff..00000000000 Binary files a/sound/vox/platform.wav and /dev/null differ diff --git a/sound/vox/please.wav b/sound/vox/please.wav deleted file mode 100644 index 4dc346e3e02..00000000000 Binary files a/sound/vox/please.wav and /dev/null differ diff --git a/sound/vox/point.wav b/sound/vox/point.wav deleted file mode 100644 index 26e4ca508bf..00000000000 Binary files a/sound/vox/point.wav and /dev/null differ diff --git a/sound/vox/portal.wav b/sound/vox/portal.wav deleted file mode 100644 index 2f093e99244..00000000000 Binary files a/sound/vox/portal.wav and /dev/null differ diff --git a/sound/vox/power.wav b/sound/vox/power.wav deleted file mode 100644 index 3256e3ee995..00000000000 Binary files a/sound/vox/power.wav and /dev/null differ diff --git a/sound/vox/presence.wav b/sound/vox/presence.wav deleted file mode 100644 index c7a3b8f1e00..00000000000 Binary files a/sound/vox/presence.wav and /dev/null differ diff --git a/sound/vox/press.wav b/sound/vox/press.wav deleted file mode 100644 index 138ef0f2eb8..00000000000 Binary files a/sound/vox/press.wav and /dev/null differ diff --git a/sound/vox/primary.wav b/sound/vox/primary.wav deleted file mode 100644 index ed107abdd11..00000000000 Binary files a/sound/vox/primary.wav and /dev/null differ diff --git a/sound/vox/proceed.wav b/sound/vox/proceed.wav deleted file mode 100644 index ec5ba2f4380..00000000000 Binary files a/sound/vox/proceed.wav and /dev/null differ diff --git a/sound/vox/processing.wav b/sound/vox/processing.wav deleted file mode 100644 index 3470d8eb07b..00000000000 Binary files a/sound/vox/processing.wav and /dev/null differ diff --git a/sound/vox/progress.wav b/sound/vox/progress.wav deleted file mode 100644 index ab2ef1914ff..00000000000 Binary files a/sound/vox/progress.wav and /dev/null differ diff --git a/sound/vox/proper.wav b/sound/vox/proper.wav deleted file mode 100644 index fb799ae0670..00000000000 Binary files a/sound/vox/proper.wav and /dev/null differ diff --git a/sound/vox/propulsion.wav b/sound/vox/propulsion.wav deleted file mode 100644 index cc60270a56d..00000000000 Binary files a/sound/vox/propulsion.wav and /dev/null differ diff --git a/sound/vox/prosecute.wav b/sound/vox/prosecute.wav deleted file mode 100644 index 9d76be850b8..00000000000 Binary files a/sound/vox/prosecute.wav and /dev/null differ diff --git a/sound/vox/protective.wav b/sound/vox/protective.wav deleted file mode 100644 index be17714e62f..00000000000 Binary files a/sound/vox/protective.wav and /dev/null differ diff --git a/sound/vox/push.wav b/sound/vox/push.wav deleted file mode 100644 index db91cb1229f..00000000000 Binary files a/sound/vox/push.wav and /dev/null differ diff --git a/sound/vox/quantum.wav b/sound/vox/quantum.wav deleted file mode 100644 index 3e5ee45d7b3..00000000000 Binary files a/sound/vox/quantum.wav and /dev/null differ diff --git a/sound/vox/quebec.wav b/sound/vox/quebec.wav deleted file mode 100644 index 6323a992cb2..00000000000 Binary files a/sound/vox/quebec.wav and /dev/null differ diff --git a/sound/vox/question.wav b/sound/vox/question.wav deleted file mode 100644 index cf6de8dd526..00000000000 Binary files a/sound/vox/question.wav and /dev/null differ diff --git a/sound/vox/questioning.wav b/sound/vox/questioning.wav deleted file mode 100644 index 51f08488dc9..00000000000 Binary files a/sound/vox/questioning.wav and /dev/null differ diff --git a/sound/vox/quick.wav b/sound/vox/quick.wav deleted file mode 100644 index 82c6c493d70..00000000000 Binary files a/sound/vox/quick.wav and /dev/null differ diff --git a/sound/vox/quit.wav b/sound/vox/quit.wav deleted file mode 100644 index 1ee00b87a1c..00000000000 Binary files a/sound/vox/quit.wav and /dev/null differ diff --git a/sound/vox/radiation.wav b/sound/vox/radiation.wav deleted file mode 100644 index 5551f24b44f..00000000000 Binary files a/sound/vox/radiation.wav and /dev/null differ diff --git a/sound/vox/radioactive.wav b/sound/vox/radioactive.wav deleted file mode 100644 index 84b3b4a180e..00000000000 Binary files a/sound/vox/radioactive.wav and /dev/null differ diff --git a/sound/vox/rads.wav b/sound/vox/rads.wav deleted file mode 100644 index 13802ea3020..00000000000 Binary files a/sound/vox/rads.wav and /dev/null differ diff --git a/sound/vox/rapid.wav b/sound/vox/rapid.wav deleted file mode 100644 index fdfdd10faa7..00000000000 Binary files a/sound/vox/rapid.wav and /dev/null differ diff --git a/sound/vox/reach.wav b/sound/vox/reach.wav deleted file mode 100644 index 5b2ec24bd4f..00000000000 Binary files a/sound/vox/reach.wav and /dev/null differ diff --git a/sound/vox/reached.wav b/sound/vox/reached.wav deleted file mode 100644 index 22bd766019d..00000000000 Binary files a/sound/vox/reached.wav and /dev/null differ diff --git a/sound/vox/reactor.wav b/sound/vox/reactor.wav deleted file mode 100644 index c8fb909be07..00000000000 Binary files a/sound/vox/reactor.wav and /dev/null differ diff --git a/sound/vox/red.wav b/sound/vox/red.wav deleted file mode 100644 index 777e5466485..00000000000 Binary files a/sound/vox/red.wav and /dev/null differ diff --git a/sound/vox/relay.wav b/sound/vox/relay.wav deleted file mode 100644 index bef9fb09272..00000000000 Binary files a/sound/vox/relay.wav and /dev/null differ diff --git a/sound/vox/released.wav b/sound/vox/released.wav deleted file mode 100644 index ba56d6d9555..00000000000 Binary files a/sound/vox/released.wav and /dev/null differ diff --git a/sound/vox/remaining.wav b/sound/vox/remaining.wav deleted file mode 100644 index 0c393ee9d10..00000000000 Binary files a/sound/vox/remaining.wav and /dev/null differ diff --git a/sound/vox/renegade.wav b/sound/vox/renegade.wav deleted file mode 100644 index 0dc4518edc6..00000000000 Binary files a/sound/vox/renegade.wav and /dev/null differ diff --git a/sound/vox/repair.wav b/sound/vox/repair.wav deleted file mode 100644 index be2fe5418e6..00000000000 Binary files a/sound/vox/repair.wav and /dev/null differ diff --git a/sound/vox/report.wav b/sound/vox/report.wav deleted file mode 100644 index 685c3878945..00000000000 Binary files a/sound/vox/report.wav and /dev/null differ diff --git a/sound/vox/reports.wav b/sound/vox/reports.wav deleted file mode 100644 index 19e8f0478b3..00000000000 Binary files a/sound/vox/reports.wav and /dev/null differ diff --git a/sound/vox/required.wav b/sound/vox/required.wav deleted file mode 100644 index c5bbf850b48..00000000000 Binary files a/sound/vox/required.wav and /dev/null differ diff --git a/sound/vox/research.wav b/sound/vox/research.wav deleted file mode 100644 index d7385867da7..00000000000 Binary files a/sound/vox/research.wav and /dev/null differ diff --git a/sound/vox/resevoir.wav b/sound/vox/resevoir.wav deleted file mode 100644 index 7b67635b929..00000000000 Binary files a/sound/vox/resevoir.wav and /dev/null differ diff --git a/sound/vox/resistance.wav b/sound/vox/resistance.wav deleted file mode 100644 index 1f3f90b0f92..00000000000 Binary files a/sound/vox/resistance.wav and /dev/null differ diff --git a/sound/vox/right.wav b/sound/vox/right.wav deleted file mode 100644 index 0c920c843db..00000000000 Binary files a/sound/vox/right.wav and /dev/null differ diff --git a/sound/vox/rocket.wav b/sound/vox/rocket.wav deleted file mode 100644 index 57d7e6a8e07..00000000000 Binary files a/sound/vox/rocket.wav and /dev/null differ diff --git a/sound/vox/roger.wav b/sound/vox/roger.wav deleted file mode 100644 index 426014be23b..00000000000 Binary files a/sound/vox/roger.wav and /dev/null differ diff --git a/sound/vox/romeo.wav b/sound/vox/romeo.wav deleted file mode 100644 index 42590922e46..00000000000 Binary files a/sound/vox/romeo.wav and /dev/null differ diff --git a/sound/vox/room.wav b/sound/vox/room.wav deleted file mode 100644 index da12c55feab..00000000000 Binary files a/sound/vox/room.wav and /dev/null differ diff --git a/sound/vox/round.wav b/sound/vox/round.wav deleted file mode 100644 index 76d30382eb3..00000000000 Binary files a/sound/vox/round.wav and /dev/null differ diff --git a/sound/vox/run.wav b/sound/vox/run.wav deleted file mode 100644 index f2baec69b1b..00000000000 Binary files a/sound/vox/run.wav and /dev/null differ diff --git a/sound/vox/safe.wav b/sound/vox/safe.wav deleted file mode 100644 index 65d52fbcdcd..00000000000 Binary files a/sound/vox/safe.wav and /dev/null differ diff --git a/sound/vox/safety.wav b/sound/vox/safety.wav deleted file mode 100644 index b24e8951b20..00000000000 Binary files a/sound/vox/safety.wav and /dev/null differ diff --git a/sound/vox/sargeant.wav b/sound/vox/sargeant.wav deleted file mode 100644 index e26c6a301e0..00000000000 Binary files a/sound/vox/sargeant.wav and /dev/null differ diff --git a/sound/vox/satellite.wav b/sound/vox/satellite.wav deleted file mode 100644 index 45187b819b0..00000000000 Binary files a/sound/vox/satellite.wav and /dev/null differ diff --git a/sound/vox/save.wav b/sound/vox/save.wav deleted file mode 100644 index db09e275396..00000000000 Binary files a/sound/vox/save.wav and /dev/null differ diff --git a/sound/vox/science.wav b/sound/vox/science.wav deleted file mode 100644 index cb1f2d7236d..00000000000 Binary files a/sound/vox/science.wav and /dev/null differ diff --git a/sound/vox/scream.wav b/sound/vox/scream.wav deleted file mode 100644 index 66afd0983d7..00000000000 Binary files a/sound/vox/scream.wav and /dev/null differ diff --git a/sound/vox/screen.wav b/sound/vox/screen.wav deleted file mode 100644 index bb375266bb7..00000000000 Binary files a/sound/vox/screen.wav and /dev/null differ diff --git a/sound/vox/search.wav b/sound/vox/search.wav deleted file mode 100644 index 023072d9897..00000000000 Binary files a/sound/vox/search.wav and /dev/null differ diff --git a/sound/vox/second.wav b/sound/vox/second.wav deleted file mode 100644 index dbed0caa0ae..00000000000 Binary files a/sound/vox/second.wav and /dev/null differ diff --git a/sound/vox/secondary.wav b/sound/vox/secondary.wav deleted file mode 100644 index af29ac286ce..00000000000 Binary files a/sound/vox/secondary.wav and /dev/null differ diff --git a/sound/vox/seconds.wav b/sound/vox/seconds.wav deleted file mode 100644 index a631ea1db04..00000000000 Binary files a/sound/vox/seconds.wav and /dev/null differ diff --git a/sound/vox/sector.wav b/sound/vox/sector.wav deleted file mode 100644 index 2318ccf631a..00000000000 Binary files a/sound/vox/sector.wav and /dev/null differ diff --git a/sound/vox/secure.wav b/sound/vox/secure.wav deleted file mode 100644 index 17fe6225ff5..00000000000 Binary files a/sound/vox/secure.wav and /dev/null differ diff --git a/sound/vox/secured.wav b/sound/vox/secured.wav deleted file mode 100644 index 8007a48c0d9..00000000000 Binary files a/sound/vox/secured.wav and /dev/null differ diff --git a/sound/vox/security.wav b/sound/vox/security.wav deleted file mode 100644 index 16435fdf515..00000000000 Binary files a/sound/vox/security.wav and /dev/null differ diff --git a/sound/vox/select.wav b/sound/vox/select.wav deleted file mode 100644 index 9b89d52bb0c..00000000000 Binary files a/sound/vox/select.wav and /dev/null differ diff --git a/sound/vox/selected.wav b/sound/vox/selected.wav deleted file mode 100644 index d4124f579a1..00000000000 Binary files a/sound/vox/selected.wav and /dev/null differ diff --git a/sound/vox/service.wav b/sound/vox/service.wav deleted file mode 100644 index 3f6957d2e00..00000000000 Binary files a/sound/vox/service.wav and /dev/null differ diff --git a/sound/vox/seven.wav b/sound/vox/seven.wav deleted file mode 100644 index eca99c196a0..00000000000 Binary files a/sound/vox/seven.wav and /dev/null differ diff --git a/sound/vox/seventeen.wav b/sound/vox/seventeen.wav deleted file mode 100644 index 9526b8a4e3c..00000000000 Binary files a/sound/vox/seventeen.wav and /dev/null differ diff --git a/sound/vox/seventy.wav b/sound/vox/seventy.wav deleted file mode 100644 index 1b45ce6afe3..00000000000 Binary files a/sound/vox/seventy.wav and /dev/null differ diff --git a/sound/vox/severe.wav b/sound/vox/severe.wav deleted file mode 100644 index fed84eea850..00000000000 Binary files a/sound/vox/severe.wav and /dev/null differ diff --git a/sound/vox/sewage.wav b/sound/vox/sewage.wav deleted file mode 100644 index 60978963e2c..00000000000 Binary files a/sound/vox/sewage.wav and /dev/null differ diff --git a/sound/vox/sewer.wav b/sound/vox/sewer.wav deleted file mode 100644 index 5071a1d64a8..00000000000 Binary files a/sound/vox/sewer.wav and /dev/null differ diff --git a/sound/vox/shield.wav b/sound/vox/shield.wav deleted file mode 100644 index 0ab01e0a6a5..00000000000 Binary files a/sound/vox/shield.wav and /dev/null differ diff --git a/sound/vox/shipment.wav b/sound/vox/shipment.wav deleted file mode 100644 index 9b9014c51df..00000000000 Binary files a/sound/vox/shipment.wav and /dev/null differ diff --git a/sound/vox/shock.wav b/sound/vox/shock.wav deleted file mode 100644 index d4451bdf3c4..00000000000 Binary files a/sound/vox/shock.wav and /dev/null differ diff --git a/sound/vox/shoot.wav b/sound/vox/shoot.wav deleted file mode 100644 index 5661ceb9c9b..00000000000 Binary files a/sound/vox/shoot.wav and /dev/null differ diff --git a/sound/vox/shower.wav b/sound/vox/shower.wav deleted file mode 100644 index c32a9e42e08..00000000000 Binary files a/sound/vox/shower.wav and /dev/null differ diff --git a/sound/vox/shut.wav b/sound/vox/shut.wav deleted file mode 100644 index 6f68340502d..00000000000 Binary files a/sound/vox/shut.wav and /dev/null differ diff --git a/sound/vox/side.wav b/sound/vox/side.wav deleted file mode 100644 index 4f4091a4e53..00000000000 Binary files a/sound/vox/side.wav and /dev/null differ diff --git a/sound/vox/sierra.wav b/sound/vox/sierra.wav deleted file mode 100644 index 0e52a6ec56a..00000000000 Binary files a/sound/vox/sierra.wav and /dev/null differ diff --git a/sound/vox/sight.wav b/sound/vox/sight.wav deleted file mode 100644 index 5d479cab759..00000000000 Binary files a/sound/vox/sight.wav and /dev/null differ diff --git a/sound/vox/silo.wav b/sound/vox/silo.wav deleted file mode 100644 index daf9f28be1e..00000000000 Binary files a/sound/vox/silo.wav and /dev/null differ diff --git a/sound/vox/six.wav b/sound/vox/six.wav deleted file mode 100644 index aa6bb638e34..00000000000 Binary files a/sound/vox/six.wav and /dev/null differ diff --git a/sound/vox/sixteen.wav b/sound/vox/sixteen.wav deleted file mode 100644 index 6f2db2ad9d4..00000000000 Binary files a/sound/vox/sixteen.wav and /dev/null differ diff --git a/sound/vox/sixty.wav b/sound/vox/sixty.wav deleted file mode 100644 index 19610c7f796..00000000000 Binary files a/sound/vox/sixty.wav and /dev/null differ diff --git a/sound/vox/slime.wav b/sound/vox/slime.wav deleted file mode 100644 index 4d1d3cf6a4d..00000000000 Binary files a/sound/vox/slime.wav and /dev/null differ diff --git a/sound/vox/slow.wav b/sound/vox/slow.wav deleted file mode 100644 index 75101b7de4e..00000000000 Binary files a/sound/vox/slow.wav and /dev/null differ diff --git a/sound/vox/soldier.wav b/sound/vox/soldier.wav deleted file mode 100644 index c84ce201788..00000000000 Binary files a/sound/vox/soldier.wav and /dev/null differ diff --git a/sound/vox/some.wav b/sound/vox/some.wav deleted file mode 100644 index c4ba34efff8..00000000000 Binary files a/sound/vox/some.wav and /dev/null differ diff --git a/sound/vox/someone.wav b/sound/vox/someone.wav deleted file mode 100644 index 6f6183e1f7d..00000000000 Binary files a/sound/vox/someone.wav and /dev/null differ diff --git a/sound/vox/something.wav b/sound/vox/something.wav deleted file mode 100644 index 46011400955..00000000000 Binary files a/sound/vox/something.wav and /dev/null differ diff --git a/sound/vox/son.wav b/sound/vox/son.wav deleted file mode 100644 index f23495127e6..00000000000 Binary files a/sound/vox/son.wav and /dev/null differ diff --git a/sound/vox/sorry.wav b/sound/vox/sorry.wav deleted file mode 100644 index 4c0725b938d..00000000000 Binary files a/sound/vox/sorry.wav and /dev/null differ diff --git a/sound/vox/south.wav b/sound/vox/south.wav deleted file mode 100644 index 3a5ba004105..00000000000 Binary files a/sound/vox/south.wav and /dev/null differ diff --git a/sound/vox/squad.wav b/sound/vox/squad.wav deleted file mode 100644 index 71739d14980..00000000000 Binary files a/sound/vox/squad.wav and /dev/null differ diff --git a/sound/vox/square.wav b/sound/vox/square.wav deleted file mode 100644 index f08f73a5f4b..00000000000 Binary files a/sound/vox/square.wav and /dev/null differ diff --git a/sound/vox/stairway.wav b/sound/vox/stairway.wav deleted file mode 100644 index ab84571c82b..00000000000 Binary files a/sound/vox/stairway.wav and /dev/null differ diff --git a/sound/vox/status.wav b/sound/vox/status.wav deleted file mode 100644 index 42fe8b7822d..00000000000 Binary files a/sound/vox/status.wav and /dev/null differ diff --git a/sound/vox/sterile.wav b/sound/vox/sterile.wav deleted file mode 100644 index d95753222b9..00000000000 Binary files a/sound/vox/sterile.wav and /dev/null differ diff --git a/sound/vox/sterilization.wav b/sound/vox/sterilization.wav deleted file mode 100644 index f53240310cf..00000000000 Binary files a/sound/vox/sterilization.wav and /dev/null differ diff --git a/sound/vox/storage.wav b/sound/vox/storage.wav deleted file mode 100644 index 18954a4f79d..00000000000 Binary files a/sound/vox/storage.wav and /dev/null differ diff --git a/sound/vox/sub.wav b/sound/vox/sub.wav deleted file mode 100644 index d25510d3c07..00000000000 Binary files a/sound/vox/sub.wav and /dev/null differ diff --git a/sound/vox/subsurface.wav b/sound/vox/subsurface.wav deleted file mode 100644 index cb19be3a883..00000000000 Binary files a/sound/vox/subsurface.wav and /dev/null differ diff --git a/sound/vox/sudden.wav b/sound/vox/sudden.wav deleted file mode 100644 index b5eb4088ac9..00000000000 Binary files a/sound/vox/sudden.wav and /dev/null differ diff --git a/sound/vox/suit.wav b/sound/vox/suit.wav deleted file mode 100644 index d099c958439..00000000000 Binary files a/sound/vox/suit.wav and /dev/null differ diff --git a/sound/vox/superconducting.wav b/sound/vox/superconducting.wav deleted file mode 100644 index ad4fcc8f9d7..00000000000 Binary files a/sound/vox/superconducting.wav and /dev/null differ diff --git a/sound/vox/supercooled.wav b/sound/vox/supercooled.wav deleted file mode 100644 index 936562ed4f4..00000000000 Binary files a/sound/vox/supercooled.wav and /dev/null differ diff --git a/sound/vox/supply.wav b/sound/vox/supply.wav deleted file mode 100644 index 4b33c8e9b7b..00000000000 Binary files a/sound/vox/supply.wav and /dev/null differ diff --git a/sound/vox/surface.wav b/sound/vox/surface.wav deleted file mode 100644 index 0b02d732a9c..00000000000 Binary files a/sound/vox/surface.wav and /dev/null differ diff --git a/sound/vox/surrender.wav b/sound/vox/surrender.wav deleted file mode 100644 index f0a17b395ae..00000000000 Binary files a/sound/vox/surrender.wav and /dev/null differ diff --git a/sound/vox/surround.wav b/sound/vox/surround.wav deleted file mode 100644 index c9afd86f9cb..00000000000 Binary files a/sound/vox/surround.wav and /dev/null differ diff --git a/sound/vox/surrounded.wav b/sound/vox/surrounded.wav deleted file mode 100644 index 3cbf5134811..00000000000 Binary files a/sound/vox/surrounded.wav and /dev/null differ diff --git a/sound/vox/switch.wav b/sound/vox/switch.wav deleted file mode 100644 index f5ffcc7a6b3..00000000000 Binary files a/sound/vox/switch.wav and /dev/null differ diff --git a/sound/vox/system.wav b/sound/vox/system.wav deleted file mode 100644 index 078727a081b..00000000000 Binary files a/sound/vox/system.wav and /dev/null differ diff --git a/sound/vox/systems.wav b/sound/vox/systems.wav deleted file mode 100644 index c8802508301..00000000000 Binary files a/sound/vox/systems.wav and /dev/null differ diff --git a/sound/vox/tactical.wav b/sound/vox/tactical.wav deleted file mode 100644 index 6b1aca650be..00000000000 Binary files a/sound/vox/tactical.wav and /dev/null differ diff --git a/sound/vox/take.wav b/sound/vox/take.wav deleted file mode 100644 index 70644f52205..00000000000 Binary files a/sound/vox/take.wav and /dev/null differ diff --git a/sound/vox/talk.wav b/sound/vox/talk.wav deleted file mode 100644 index 3ff83c48c93..00000000000 Binary files a/sound/vox/talk.wav and /dev/null differ diff --git a/sound/vox/tango.wav b/sound/vox/tango.wav deleted file mode 100644 index 37b6f4fe198..00000000000 Binary files a/sound/vox/tango.wav and /dev/null differ diff --git a/sound/vox/tank.wav b/sound/vox/tank.wav deleted file mode 100644 index 9608b0d7492..00000000000 Binary files a/sound/vox/tank.wav and /dev/null differ diff --git a/sound/vox/target.wav b/sound/vox/target.wav deleted file mode 100644 index bd004147bf6..00000000000 Binary files a/sound/vox/target.wav and /dev/null differ diff --git a/sound/vox/team.wav b/sound/vox/team.wav deleted file mode 100644 index d0e47d4e101..00000000000 Binary files a/sound/vox/team.wav and /dev/null differ diff --git a/sound/vox/temperature.wav b/sound/vox/temperature.wav deleted file mode 100644 index e9b51dada78..00000000000 Binary files a/sound/vox/temperature.wav and /dev/null differ diff --git a/sound/vox/temporal.wav b/sound/vox/temporal.wav deleted file mode 100644 index d0398a0f8ce..00000000000 Binary files a/sound/vox/temporal.wav and /dev/null differ diff --git a/sound/vox/ten.wav b/sound/vox/ten.wav deleted file mode 100644 index fd0f353f6bb..00000000000 Binary files a/sound/vox/ten.wav and /dev/null differ diff --git a/sound/vox/terminal.wav b/sound/vox/terminal.wav deleted file mode 100644 index 5ffe39101e4..00000000000 Binary files a/sound/vox/terminal.wav and /dev/null differ diff --git a/sound/vox/terminated.wav b/sound/vox/terminated.wav deleted file mode 100644 index 1c972f092c1..00000000000 Binary files a/sound/vox/terminated.wav and /dev/null differ diff --git a/sound/vox/termination.wav b/sound/vox/termination.wav deleted file mode 100644 index f093cd31a11..00000000000 Binary files a/sound/vox/termination.wav and /dev/null differ diff --git a/sound/vox/test.wav b/sound/vox/test.wav deleted file mode 100644 index f7c9b461fc4..00000000000 Binary files a/sound/vox/test.wav and /dev/null differ diff --git a/sound/vox/that.wav b/sound/vox/that.wav deleted file mode 100644 index f9e8c928735..00000000000 Binary files a/sound/vox/that.wav and /dev/null differ diff --git a/sound/vox/the.wav b/sound/vox/the.wav deleted file mode 100644 index 3a07ea3be81..00000000000 Binary files a/sound/vox/the.wav and /dev/null differ diff --git a/sound/vox/then.wav b/sound/vox/then.wav deleted file mode 100644 index 1c2ec53386d..00000000000 Binary files a/sound/vox/then.wav and /dev/null differ diff --git a/sound/vox/there.wav b/sound/vox/there.wav deleted file mode 100644 index 0e25880076e..00000000000 Binary files a/sound/vox/there.wav and /dev/null differ diff --git a/sound/vox/third.wav b/sound/vox/third.wav deleted file mode 100644 index 962f2f96974..00000000000 Binary files a/sound/vox/third.wav and /dev/null differ diff --git a/sound/vox/thirteen.wav b/sound/vox/thirteen.wav deleted file mode 100644 index 1c392cfa3e0..00000000000 Binary files a/sound/vox/thirteen.wav and /dev/null differ diff --git a/sound/vox/thirty.wav b/sound/vox/thirty.wav deleted file mode 100644 index d7a34d4351a..00000000000 Binary files a/sound/vox/thirty.wav and /dev/null differ diff --git a/sound/vox/this.wav b/sound/vox/this.wav deleted file mode 100644 index b8f51ea1511..00000000000 Binary files a/sound/vox/this.wav and /dev/null differ diff --git a/sound/vox/those.wav b/sound/vox/those.wav deleted file mode 100644 index ef7db907219..00000000000 Binary files a/sound/vox/those.wav and /dev/null differ diff --git a/sound/vox/thousand.wav b/sound/vox/thousand.wav deleted file mode 100644 index b1f9df6edd1..00000000000 Binary files a/sound/vox/thousand.wav and /dev/null differ diff --git a/sound/vox/threat.wav b/sound/vox/threat.wav deleted file mode 100644 index 75cefae1879..00000000000 Binary files a/sound/vox/threat.wav and /dev/null differ diff --git a/sound/vox/three.wav b/sound/vox/three.wav deleted file mode 100644 index 097504d605b..00000000000 Binary files a/sound/vox/three.wav and /dev/null differ diff --git a/sound/vox/through.wav b/sound/vox/through.wav deleted file mode 100644 index 78053bdf90f..00000000000 Binary files a/sound/vox/through.wav and /dev/null differ diff --git a/sound/vox/time.wav b/sound/vox/time.wav deleted file mode 100644 index 856529d6a44..00000000000 Binary files a/sound/vox/time.wav and /dev/null differ diff --git a/sound/vox/to.wav b/sound/vox/to.wav deleted file mode 100644 index 5189cf2d580..00000000000 Binary files a/sound/vox/to.wav and /dev/null differ diff --git a/sound/vox/top.wav b/sound/vox/top.wav deleted file mode 100644 index 0747e8965aa..00000000000 Binary files a/sound/vox/top.wav and /dev/null differ diff --git a/sound/vox/topside.wav b/sound/vox/topside.wav deleted file mode 100644 index 6f6f54b973c..00000000000 Binary files a/sound/vox/topside.wav and /dev/null differ diff --git a/sound/vox/touch.wav b/sound/vox/touch.wav deleted file mode 100644 index 6712dc18a30..00000000000 Binary files a/sound/vox/touch.wav and /dev/null differ diff --git a/sound/vox/towards.wav b/sound/vox/towards.wav deleted file mode 100644 index ff04147f15c..00000000000 Binary files a/sound/vox/towards.wav and /dev/null differ diff --git a/sound/vox/track.wav b/sound/vox/track.wav deleted file mode 100644 index 5247acabd09..00000000000 Binary files a/sound/vox/track.wav and /dev/null differ diff --git a/sound/vox/train.wav b/sound/vox/train.wav deleted file mode 100644 index ced1a9850cc..00000000000 Binary files a/sound/vox/train.wav and /dev/null differ diff --git a/sound/vox/transportation.wav b/sound/vox/transportation.wav deleted file mode 100644 index 302241aeb00..00000000000 Binary files a/sound/vox/transportation.wav and /dev/null differ diff --git a/sound/vox/truck.wav b/sound/vox/truck.wav deleted file mode 100644 index 1692a9c7dd5..00000000000 Binary files a/sound/vox/truck.wav and /dev/null differ diff --git a/sound/vox/tunnel.wav b/sound/vox/tunnel.wav deleted file mode 100644 index f158042a9d1..00000000000 Binary files a/sound/vox/tunnel.wav and /dev/null differ diff --git a/sound/vox/turn.wav b/sound/vox/turn.wav deleted file mode 100644 index 407d2cdbe84..00000000000 Binary files a/sound/vox/turn.wav and /dev/null differ diff --git a/sound/vox/turret.wav b/sound/vox/turret.wav deleted file mode 100644 index ec42293ebb6..00000000000 Binary files a/sound/vox/turret.wav and /dev/null differ diff --git a/sound/vox/twelve.wav b/sound/vox/twelve.wav deleted file mode 100644 index d9fbcc25580..00000000000 Binary files a/sound/vox/twelve.wav and /dev/null differ diff --git a/sound/vox/twenty.wav b/sound/vox/twenty.wav deleted file mode 100644 index e6d7d8092d1..00000000000 Binary files a/sound/vox/twenty.wav and /dev/null differ diff --git a/sound/vox/two.wav b/sound/vox/two.wav deleted file mode 100644 index 14f432fd5c8..00000000000 Binary files a/sound/vox/two.wav and /dev/null differ diff --git a/sound/vox/unauthorized.wav b/sound/vox/unauthorized.wav deleted file mode 100644 index 7d3236f4913..00000000000 Binary files a/sound/vox/unauthorized.wav and /dev/null differ diff --git a/sound/vox/under.wav b/sound/vox/under.wav deleted file mode 100644 index dc30e4711c5..00000000000 Binary files a/sound/vox/under.wav and /dev/null differ diff --git a/sound/vox/uniform.wav b/sound/vox/uniform.wav deleted file mode 100644 index 899c7f029af..00000000000 Binary files a/sound/vox/uniform.wav and /dev/null differ diff --git a/sound/vox/unlocked.wav b/sound/vox/unlocked.wav deleted file mode 100644 index 0e48489db52..00000000000 Binary files a/sound/vox/unlocked.wav and /dev/null differ diff --git a/sound/vox/until.wav b/sound/vox/until.wav deleted file mode 100644 index 68f5ea47e4a..00000000000 Binary files a/sound/vox/until.wav and /dev/null differ diff --git a/sound/vox/up.wav b/sound/vox/up.wav deleted file mode 100644 index 18165467021..00000000000 Binary files a/sound/vox/up.wav and /dev/null differ diff --git a/sound/vox/upper.wav b/sound/vox/upper.wav deleted file mode 100644 index 8b591566511..00000000000 Binary files a/sound/vox/upper.wav and /dev/null differ diff --git a/sound/vox/uranium.wav b/sound/vox/uranium.wav deleted file mode 100644 index 2ab47d60858..00000000000 Binary files a/sound/vox/uranium.wav and /dev/null differ diff --git a/sound/vox/us.wav b/sound/vox/us.wav deleted file mode 100644 index 23b56e93576..00000000000 Binary files a/sound/vox/us.wav and /dev/null differ diff --git a/sound/vox/usa.wav b/sound/vox/usa.wav deleted file mode 100644 index 591233e6244..00000000000 Binary files a/sound/vox/usa.wav and /dev/null differ diff --git a/sound/vox/use.wav b/sound/vox/use.wav deleted file mode 100644 index 35be6177756..00000000000 Binary files a/sound/vox/use.wav and /dev/null differ diff --git a/sound/vox/used.wav b/sound/vox/used.wav deleted file mode 100644 index 3385240fd9e..00000000000 Binary files a/sound/vox/used.wav and /dev/null differ diff --git a/sound/vox/user.wav b/sound/vox/user.wav deleted file mode 100644 index 91ccb15af68..00000000000 Binary files a/sound/vox/user.wav and /dev/null differ diff --git a/sound/vox/vacate.wav b/sound/vox/vacate.wav deleted file mode 100644 index bed5d702e43..00000000000 Binary files a/sound/vox/vacate.wav and /dev/null differ diff --git a/sound/vox/valid.wav b/sound/vox/valid.wav deleted file mode 100644 index 40c3f1e4f65..00000000000 Binary files a/sound/vox/valid.wav and /dev/null differ diff --git a/sound/vox/vapor.wav b/sound/vox/vapor.wav deleted file mode 100644 index d067f698270..00000000000 Binary files a/sound/vox/vapor.wav and /dev/null differ diff --git a/sound/vox/vent.wav b/sound/vox/vent.wav deleted file mode 100644 index b4efa86991b..00000000000 Binary files a/sound/vox/vent.wav and /dev/null differ diff --git a/sound/vox/ventillation.wav b/sound/vox/ventillation.wav deleted file mode 100644 index d56679dda12..00000000000 Binary files a/sound/vox/ventillation.wav and /dev/null differ diff --git a/sound/vox/victor.wav b/sound/vox/victor.wav deleted file mode 100644 index 8245a2abf4c..00000000000 Binary files a/sound/vox/victor.wav and /dev/null differ diff --git a/sound/vox/violated.wav b/sound/vox/violated.wav deleted file mode 100644 index c597d1dfe29..00000000000 Binary files a/sound/vox/violated.wav and /dev/null differ diff --git a/sound/vox/violation.wav b/sound/vox/violation.wav deleted file mode 100644 index 98ed5dd0b9b..00000000000 Binary files a/sound/vox/violation.wav and /dev/null differ diff --git a/sound/vox/voltage.wav b/sound/vox/voltage.wav deleted file mode 100644 index 140e1dd6a20..00000000000 Binary files a/sound/vox/voltage.wav and /dev/null differ diff --git a/sound/vox/vox_login.wav b/sound/vox/vox_login.wav deleted file mode 100644 index 5679acfce81..00000000000 Binary files a/sound/vox/vox_login.wav and /dev/null differ diff --git a/sound/vox/walk.wav b/sound/vox/walk.wav deleted file mode 100644 index fd8d85f84d4..00000000000 Binary files a/sound/vox/walk.wav and /dev/null differ diff --git a/sound/vox/wall.wav b/sound/vox/wall.wav deleted file mode 100644 index e8e9a5fb4af..00000000000 Binary files a/sound/vox/wall.wav and /dev/null differ diff --git a/sound/vox/want.wav b/sound/vox/want.wav deleted file mode 100644 index 3d130ce8fe6..00000000000 Binary files a/sound/vox/want.wav and /dev/null differ diff --git a/sound/vox/wanted.wav b/sound/vox/wanted.wav deleted file mode 100644 index a292d2d33b7..00000000000 Binary files a/sound/vox/wanted.wav and /dev/null differ diff --git a/sound/vox/warm.wav b/sound/vox/warm.wav deleted file mode 100644 index 518f2905f42..00000000000 Binary files a/sound/vox/warm.wav and /dev/null differ diff --git a/sound/vox/warn.wav b/sound/vox/warn.wav deleted file mode 100644 index 75801460052..00000000000 Binary files a/sound/vox/warn.wav and /dev/null differ diff --git a/sound/vox/warning.wav b/sound/vox/warning.wav deleted file mode 100644 index 87db6c164b2..00000000000 Binary files a/sound/vox/warning.wav and /dev/null differ diff --git a/sound/vox/waste.wav b/sound/vox/waste.wav deleted file mode 100644 index 245c44d6820..00000000000 Binary files a/sound/vox/waste.wav and /dev/null differ diff --git a/sound/vox/water.wav b/sound/vox/water.wav deleted file mode 100644 index c29d7acf55c..00000000000 Binary files a/sound/vox/water.wav and /dev/null differ diff --git a/sound/vox/we.wav b/sound/vox/we.wav deleted file mode 100644 index d7ba93484d1..00000000000 Binary files a/sound/vox/we.wav and /dev/null differ diff --git a/sound/vox/weapon.wav b/sound/vox/weapon.wav deleted file mode 100644 index 3e95e9efc4a..00000000000 Binary files a/sound/vox/weapon.wav and /dev/null differ diff --git a/sound/vox/west.wav b/sound/vox/west.wav deleted file mode 100644 index 09f58088c95..00000000000 Binary files a/sound/vox/west.wav and /dev/null differ diff --git a/sound/vox/whiskey.wav b/sound/vox/whiskey.wav deleted file mode 100644 index 11ef7b3aa09..00000000000 Binary files a/sound/vox/whiskey.wav and /dev/null differ diff --git a/sound/vox/white.wav b/sound/vox/white.wav deleted file mode 100644 index 6d4ec3e138c..00000000000 Binary files a/sound/vox/white.wav and /dev/null differ diff --git a/sound/vox/wilco.wav b/sound/vox/wilco.wav deleted file mode 100644 index 862aa8d97d9..00000000000 Binary files a/sound/vox/wilco.wav and /dev/null differ diff --git a/sound/vox/will.wav b/sound/vox/will.wav deleted file mode 100644 index 327d81c9d0f..00000000000 Binary files a/sound/vox/will.wav and /dev/null differ diff --git a/sound/vox/with.wav b/sound/vox/with.wav deleted file mode 100644 index f1db548cd76..00000000000 Binary files a/sound/vox/with.wav and /dev/null differ diff --git a/sound/vox/without.wav b/sound/vox/without.wav deleted file mode 100644 index 7f3096df12b..00000000000 Binary files a/sound/vox/without.wav and /dev/null differ diff --git a/sound/vox/woop.wav b/sound/vox/woop.wav deleted file mode 100644 index 62fa99cb3b7..00000000000 Binary files a/sound/vox/woop.wav and /dev/null differ diff --git a/sound/vox/xeno.wav b/sound/vox/xeno.wav deleted file mode 100644 index 6b77a20b7a6..00000000000 Binary files a/sound/vox/xeno.wav and /dev/null differ diff --git a/sound/vox/yankee.wav b/sound/vox/yankee.wav deleted file mode 100644 index 62bf15a40b3..00000000000 Binary files a/sound/vox/yankee.wav and /dev/null differ diff --git a/sound/vox/yards.wav b/sound/vox/yards.wav deleted file mode 100644 index 33c3c4c3e3f..00000000000 Binary files a/sound/vox/yards.wav and /dev/null differ diff --git a/sound/vox/year.wav b/sound/vox/year.wav deleted file mode 100644 index 12dca8e86bc..00000000000 Binary files a/sound/vox/year.wav and /dev/null differ diff --git a/sound/vox/yellow.wav b/sound/vox/yellow.wav deleted file mode 100644 index bed92f5f9f9..00000000000 Binary files a/sound/vox/yellow.wav and /dev/null differ diff --git a/sound/vox/yes.wav b/sound/vox/yes.wav deleted file mode 100644 index 799bb2b775e..00000000000 Binary files a/sound/vox/yes.wav and /dev/null differ diff --git a/sound/vox/you.wav b/sound/vox/you.wav deleted file mode 100644 index 7ba9be75a87..00000000000 Binary files a/sound/vox/you.wav and /dev/null differ diff --git a/sound/vox/your.wav b/sound/vox/your.wav deleted file mode 100644 index 9e29c2418b1..00000000000 Binary files a/sound/vox/your.wav and /dev/null differ diff --git a/sound/vox/yourself.wav b/sound/vox/yourself.wav deleted file mode 100644 index 582c3b7ed6b..00000000000 Binary files a/sound/vox/yourself.wav and /dev/null differ diff --git a/sound/vox/zero.wav b/sound/vox/zero.wav deleted file mode 100644 index 9b6c39722d1..00000000000 Binary files a/sound/vox/zero.wav and /dev/null differ diff --git a/sound/vox/zone.wav b/sound/vox/zone.wav deleted file mode 100644 index 68f9b8952cb..00000000000 Binary files a/sound/vox/zone.wav and /dev/null differ diff --git a/sound/vox/zulu.wav b/sound/vox/zulu.wav deleted file mode 100644 index 32d66052181..00000000000 Binary files a/sound/vox/zulu.wav and /dev/null differ