From 50064d86b3a865b6fbd671f61872eea9c9346277 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Thu, 5 Feb 2015 11:54:51 +0100 Subject: [PATCH 01/32] Corrects ATM Machine syndromes. --- code/game/machinery/computer/RCON_Console.dm | 4 ++-- code/modules/power/smes.dm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/computer/RCON_Console.dm b/code/game/machinery/computer/RCON_Console.dm index e1ecdb28d2f..7ab0a135f10 100644 --- a/code/game/machinery/computer/RCON_Console.dm +++ b/code/game/machinery/computer/RCON_Console.dm @@ -5,7 +5,7 @@ // Allows remote operation of electrical systems on station (SMESs and Breaker Boxes) /obj/machinery/computer/rcon - name = "\improper RCON remote control console" + name = "\improper RCON console" desc = "Console used to remotely control machinery on the station." icon = 'icons/obj/computer.dmi' icon_state = "ai-fixer" @@ -61,7 +61,7 @@ ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) if (!ui) - ui = new(user, src, ui_key, "rcon.tmpl", "RCON Control Console", 600, 400) + ui = new(user, src, ui_key, "rcon.tmpl", "RCON Console", 600, 400) ui.set_initial_data(data) ui.open() ui.set_auto_update(1) diff --git a/code/modules/power/smes.dm b/code/modules/power/smes.dm index 18aa6b4885f..8d596794745 100644 --- a/code/modules/power/smes.dm +++ b/code/modules/power/smes.dm @@ -313,7 +313,7 @@ if (!ui) // the ui does not exist, so we'll create a new() one // for a list of parameters and their descriptions see the code docs in \code\modules\nano\nanoui.dm - ui = new(user, src, ui_key, "smes.tmpl", "SMES Power Storage Unit", 540, 380) + ui = new(user, src, ui_key, "smes.tmpl", "SMES Unit", 540, 380) // when the ui is first opened this is the data it will use ui.set_initial_data(data) // open the new ui window From 41816c26bfa49b016dd87034a95ca23e91561b05 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Fri, 6 Feb 2015 00:03:09 -0500 Subject: [PATCH 02/32] Fixes windows taking excessive damage from projectiles --- code/game/objects/structures/window.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index cd55637b355..7529618d322 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -59,7 +59,7 @@ return ..() - take_damage(Proj.damage * 4) + take_damage(Proj.damage) return From 251e162a2cc4a54ad7a490c461078066aab6a617 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Fri, 6 Feb 2015 09:52:01 +0000 Subject: [PATCH 03/32] Fixes changeling sting A* call, adds messages to let the changeling know what went wrong if it did --- .../gamemodes/changeling/changeling_powers.dm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index 5dcc891fa9b..8d15141df1e 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -679,11 +679,16 @@ var/list/datum/dna/hivemind_bank = list() ////////// /mob/proc/sting_can_reach(mob/M as mob, sting_range = 1) - if(M.loc == src.loc) return 1 //target and source are in the same thing - if(!isturf(src.loc) || !isturf(M.loc)) return 0 //One is inside, the other is outside something. - if(AStar(src.loc, M.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, sting_range)) //If a path exists, good! - return 1 - return 0 + if(M.loc == src.loc) + return 1 //target and source are in the same thing + if(!isturf(src.loc) || !isturf(M.loc)) + src << "We cannot reach \the [M] with a sting!" + return 0 //One is inside, the other is outside something. + // Maximum queued turfs set to 25; I don't *think* anything raises sting_range above 2, but if it does the 25 may need raising + if(!AStar(src.loc, M.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance, max_nodes=25, max_node_depth=sting_range)) //If we can't find a path, fail + src << "We cannot find a path to sting \the [M] by!" + return 0 + return 1 //Handles the general sting code to reduce on copypasta (seeming as somebody decided to make SO MANY dumb abilities) /mob/proc/changeling_sting(var/required_chems=0, var/verb_path) From ef197fb995ca3ac140c3a1b7a48ecbebc31bd82a Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Fri, 6 Feb 2015 16:04:37 +0000 Subject: [PATCH 04/32] Two fixes Fixes airless turf in Fore Starboard Solar Control causing minor atmos alert at roundstart Fixes clean_map_git.sh being set non-executable and using non-sh-compatible features with #!/bin/sh --- maps/exodus-1.dmm | 2 +- tools/mapmerge/clean_map_git.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) mode change 100644 => 100755 tools/mapmerge/clean_map_git.sh diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index 976ce9fc567..31724b0623f 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -1477,7 +1477,7 @@ "aCu" = (/turf/simulated/wall,/area/maintenance/substation/civilian_east) "aCv" = (/turf/simulated/wall/r_wall,/area/maintenance/auxsolarstarboard) "aCw" = (/obj/machinery/power/solar_control{id = "auxsolareast"; name = "Fore Starboard Solar Control"; track = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplatecorner"},/area/maintenance/auxsolarstarboard) -"aCx" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "solar_chapel_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/effect/decal/cleanable/dirt,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/maintenance/auxsolarstarboard) +"aCx" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "solar_chapel_airlock"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHEAST)"; icon_state = "intact"; dir = 5},/obj/effect/decal/cleanable/dirt,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 82.1472; oxygen = 21.8366},/area/maintenance/auxsolarstarboard) "aCy" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air/airlock,/turf/simulated/floor/plating{dir = 4; icon_state = "warnplatecorner"},/area/maintenance/auxsolarstarboard) "aCz" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) "aCA" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/hallway/secondary/entry/fore) diff --git a/tools/mapmerge/clean_map_git.sh b/tools/mapmerge/clean_map_git.sh old mode 100644 new mode 100755 index 1a0c9d65924..e8ad8165e49 --- a/tools/mapmerge/clean_map_git.sh +++ b/tools/mapmerge/clean_map_git.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash for i in {1..6} do @@ -7,4 +7,4 @@ do git show HEAD:maps/$MAPFILE > tmp.dmm java -jar MapPatcher.jar -clean tmp.dmm '../../maps/'$MAPFILE '../../maps/'$MAPFILE rm tmp.dmm -done \ No newline at end of file +done From c95399de91c610ddf4b66cb86964d9d3f1d146fa Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Fri, 6 Feb 2015 19:43:39 +0000 Subject: [PATCH 05/32] Fixes "" from languages over radio. --- code/modules/mob/hear_say.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index c238aef0264..f63566a0483 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -101,7 +101,7 @@ return else if(language) - message = language.scramble(language) + message = language.scramble(message) else message = stars(message) From 0651bb8d844c6abd0193af2e4a6a95d1f6857284 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Fri, 6 Feb 2015 23:26:09 +0000 Subject: [PATCH 06/32] Adds a cache to scramble() so that feeding the same input through multiple times in a short timespan results in the same output string. This means that you'll no longer get the radio message being entirely different from the non-radio message, and that all players will see the same scrambled string --- code/modules/mob/language.dm | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) mode change 100755 => 100644 code/modules/mob/language.dm diff --git a/code/modules/mob/language.dm b/code/modules/mob/language.dm old mode 100755 new mode 100644 index 4f4b8a0e6f8..9621ec0176e --- a/code/modules/mob/language.dm +++ b/code/modules/mob/language.dm @@ -1,3 +1,5 @@ +#define SCRAMBLE_CACHE_LEN 20 + /* Datum based languages. Easily editable and modular. */ @@ -35,11 +37,21 @@ return "[trim(full_name)]" +/datum/language + var/list/scramble_cache = list() + /datum/language/proc/scramble(var/input) if(!syllables || !syllables.len) return stars(input) + // If the input is cached already, move it to the end of the cache and return it + if(input in scramble_cache) + var/n = scramble_cache[input] + scramble_cache -= input + scramble_cache[input] = n + return n + var/input_size = length(input) var/scrambled_text = "" var/capitalize = 1 @@ -64,6 +76,13 @@ var/input_ending = copytext(input, input_size) if(input_ending in list("!","?",".")) scrambled_text += input_ending + + // Add it to cache, cutting old entries if the list is too long + scramble_cache[input] = scrambled_text + if(scramble_cache.len > SCRAMBLE_CACHE_LEN) + scramble_cache.Cut(1, scramble_cache.len-SCRAMBLE_CACHE_LEN-1) + + return scrambled_text /datum/language/proc/format_message(message, verb) @@ -424,4 +443,6 @@ dat += "[L.name] (:[L.key])
[L.desc]

" src << browse(dat, "window=checklanguage") - return \ No newline at end of file + return + +#undef SCRAMBLE_CACHE_LEN From a07e0a044fe63fd5939166be3b63a004d785ea1d Mon Sep 17 00:00:00 2001 From: ccomp5950 Date: Sat, 7 Feb 2015 00:04:50 -0500 Subject: [PATCH 07/32] Added buttons back to Mentors Before: Mentors see ahelps they only see ckeys, no links no character names, etc. Now: Character names shows up and I've added a mentor specific link bar so mentors can use the buttons they already have easily. --- code/modules/admin/admin.dm | 13 ++++++++++--- code/modules/admin/verbs/adminhelp.dm | 6 +++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index fdfb9f0e3e6..9ecbab5b9e9 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1148,15 +1148,22 @@ var/global/floorIsLava = 0 switch(detail) if(0) return "[key_name(C, link, name, highlight_special)]" - if(1) + + if(1) //Private Messages return "[key_name(C, link, name, highlight_special)](?)" - if(2) + + if(2) //Admins var/ref_mob = "\ref[M]" return "[key_name(C, link, name, highlight_special)](?) (PP) (VV) (SM) (JMP) (CA)" - if(3) + + if(3) //Devs var/ref_mob = "\ref[M]" return "[key_name(C, link, name, highlight_special)](VV)(JMP)" + if(4) //Mentors + var/ref_mob = "\ref[M]" + return "[key_name(C, link, name, highlight_special)] (?) (PP) (VV) (SM) (JMP)" + /proc/ishost(whom) if(!whom) diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 9e5260fbd69..bff2372aa95 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -87,7 +87,11 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey"," var/ai_cl if(ai_found) ai_cl = " (CL)" - var/mentor_msg = "\blue Request for Help: [get_options_bar(mob, 0, 0, 1, 0)][ai_cl]: [msg]" + + //Options bar: mob, details ( admin = 2, dev = 3, mentor = 4, character name (0 = just ckey, 1 = ckey and character name), link? (0 no don't make it a link, 1 do so), + // highlight special roles (0 = everyone has same looking name, 1 = antags / special roles get a golden name) + + var/mentor_msg = "\blue Request for Help: [get_options_bar(mob, 4, 1, 1, 0)][ai_cl]: [msg]" msg = "\blue Request for Help:: [get_options_bar(mob, 2, 1, 1)][ai_cl]: [msg]" var/admin_number_afk = 0 From 2d744fd47ad7814a59f7d33790cf70e71114d605 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Sat, 7 Feb 2015 17:26:57 -0500 Subject: [PATCH 08/32] Fixes doors being usable remotely when broken Fixes airlock doors being able to be opened and closed remotely (by buttons, airlocks, or docking) when broken. Also removes some redundant code, and refactors a few checks. --- code/datums/wires/airlock.dm | 21 ++++++++------ code/game/machinery/doors/airlock.dm | 30 ++++++++------------ code/game/machinery/doors/airlock_control.dm | 7 ----- 3 files changed, 24 insertions(+), 34 deletions(-) diff --git a/code/datums/wires/airlock.dm b/code/datums/wires/airlock.dm index e6cb473f590..f8b796269f8 100644 --- a/code/datums/wires/airlock.dm +++ b/code/datums/wires/airlock.dm @@ -34,14 +34,17 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048 /datum/wires/airlock/GetInteractWindow() var/obj/machinery/door/airlock/A = holder + var/haspower = A.arePowerSystemsOn() //If there's no power, then no lights will be on. + . += ..() - . += text("
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]", (A.locked ? "The door bolts have fallen!" : "The door bolts look up."), - (A.lights ? "The door bolt lights are on." : "The door bolt lights are off!"), - ((A.hasPower()) ? "The test light is on." : "The test light is off!"), - ((A.aiControlDisabled==0 && !A.emagged) ? "The 'AI control allowed' light is on." : "The 'AI control allowed' light is off."), - (A.safe==0 ? "The 'Check Wiring' light is on." : "The 'Check Wiring' light is off."), - (A.normalspeed==0 ? "The 'Check Timing Mechanism' light is on." : "The 'Check Timing Mechanism' light is off."), - (A.aiDisabledIdScanner==0 ? "The IDScan light is on." : "The IDScan light is off.")) + . += text("
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]
\n[]", + (A.locked ? "The door bolts have fallen!" : "The door bolts look up."), + ((A.lights && haspower) ? "The door bolt lights are on." : "The door bolt lights are off!"), + ((haspower) ? "The test light is on." : "The test light is off!"), + ((A.aiControlDisabled==0 && !A.emagged && haspower)? "The 'AI control allowed' light is on." : "The 'AI control allowed' light is off."), + ((A.safe==0 && haspower)? "The 'Check Wiring' light is on." : "The 'Check Wiring' light is off."), + ((A.normalspeed==0 && haspower)? "The 'Check Timing Mechanism' light is on." : "The 'Check Timing Mechanism' light is off."), + ((A.aiDisabledIdScanner==0 && haspower)? "The IDScan light is on." : "The IDScan light is off.")) /datum/wires/airlock/UpdateCut(var/index, var/mended) @@ -127,7 +130,7 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048 switch(index) if(AIRLOCK_WIRE_IDSCAN) //Sending a pulse through flashes the red light on the door (if the door has power). - if(A.hasPower() && A.density) + if(A.arePowerSystemsOn() && A.density) A.do_animate("deny") if(AIRLOCK_WIRE_MAIN_POWER1 || AIRLOCK_WIRE_MAIN_POWER2) //Sending a pulse through either one causes a breaker to trip, disabling the door for 10 seconds if backup power is connected, or 1 minute if not (or until backup power comes back on, whichever is shorter). @@ -139,7 +142,7 @@ var/const/AIRLOCK_WIRE_LIGHT = 2048 A.locked = 1 A.audible_message("You hear a click from the bottom of the door.", null, 1) else - if(A.hasPower()) //only can raise bolts if power's on + if(A.arePowerSystemsOn()) //only can raise bolts if power's on A.locked = 0 A.audible_message("You hear a click from the bottom of the door.", null, 1) A.update_icon() diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 73c0e66b8e8..815bad98052 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -330,7 +330,7 @@ About the new airlock wires panel: return ((src.aiControlDisabled==1) && (!hackProof) && (!src.isAllPowerLoss())); /obj/machinery/door/airlock/proc/arePowerSystemsOn() - if (stat & NOPOWER) + if (stat & (NOPOWER|BROKEN)) return 0 return (src.secondsMainPowerLost==0 || src.secondsBackupPowerLost==0) @@ -451,7 +451,7 @@ About the new airlock wires panel: if(density) flick("door_spark", src) if("deny") - if(density && !(stat & (BROKEN|NOPOWER))) + if(density && src.arePowerSystemsOn()) flick("door_deny", src) return @@ -900,12 +900,7 @@ About the new airlock wires panel: var/obj/item/weapon/pai_cable/cable = C cable.plugin(src, user) else if(!repairing && istype(C, /obj/item/weapon/crowbar)) - var/beingcrowbarred = null - if(istype(C, /obj/item/weapon/crowbar) ) - beingcrowbarred = 1 //derp, Agouri - else - beingcrowbarred = 0 - if( beingcrowbarred && src.p_open && (operating < 0 || (!operating && welded && !src.arePowerSystemsOn() && density && (!src.locked || (stat & BROKEN)))) ) + if(src.p_open && (operating < 0 || (!operating && welded && !src.arePowerSystemsOn() && density && (!src.locked || (stat & BROKEN)))) ) 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)) @@ -936,7 +931,7 @@ About the new airlock wires panel: del(src) return - else if(arePowerSystemsOn() && !(stat & BROKEN)) + 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." @@ -946,22 +941,22 @@ About the new airlock wires panel: else spawn(0) close(1) - else if(istype(C, /obj/item/weapon/twohanded/fireaxe) && (!arePowerSystemsOn() || (stat & BROKEN))) + else if(istype(C, /obj/item/weapon/twohanded/fireaxe) && !arePowerSystemsOn()) if(locked) user << "\blue The airlock's bolts prevent it from being forced." else if( !welded && !operating ) if(density) var/obj/item/weapon/twohanded/fireaxe/F = C - if(F:wielded) + if(F.wielded) spawn(0) open(1) else - user << "\red You need to be wielding the Fire axe to do that." + user << "\red You need to be wielding \the [C] to do that." else var/obj/item/weapon/twohanded/fireaxe/F = C - if(F:wielded) + if(F.wielded) spawn(0) close(1) else - user << "\red You need to be wielding the Fire axe to do that." + user << "\red You need to be wielding \the [C] to do that." else ..() @@ -1007,7 +1002,9 @@ About the new airlock wires panel: if(operating || welded || locked) return if(!forced) - if( !arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_DOOR_BOLTS) ) + //despite the name, this wire is for general door control. + //Bolts are already covered by the check for locked, above + if( !arePowerSystemsOn() || isWireCut(AIRLOCK_WIRE_OPEN_DOOR) ) return if(safe) for(var/turf/turf in locs) @@ -1135,9 +1132,6 @@ About the new airlock wires panel: ..() update_icon() -/obj/machinery/door/airlock/proc/hasPower() - return ((src.secondsMainPowerLost==0 || src.secondsBackupPowerLost==0) && !(stat & (NOPOWER|BROKEN))) - /obj/machinery/door/airlock/proc/prison_open() src.unlock() src.open() diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm index 7ad909c8eb4..ad9d9910365 100644 --- a/code/game/machinery/doors/airlock_control.dm +++ b/code/game/machinery/doors/airlock_control.dm @@ -8,11 +8,6 @@ obj/machinery/door/airlock var/datum/radio_frequency/radio_connection var/cur_command = null //the command the door is currently attempting to complete -obj/machinery/door/airlock/proc/can_radio() - if(!arePowerSystemsOn()) - return 0 - return 1 - obj/machinery/door/airlock/process() ..() if (arePowerSystemsOn()) @@ -21,8 +16,6 @@ obj/machinery/door/airlock/process() obj/machinery/door/airlock/receive_signal(datum/signal/signal) if (!arePowerSystemsOn()) return //no power - if (!can_radio()) return //no radio - if(!signal || signal.encryption) return if(id_tag != signal.data["tag"] || !signal.data["command"]) return From 71dabeb557e5b934fab66b8919006bfd3b0ac7c3 Mon Sep 17 00:00:00 2001 From: Kelenius Date: Sun, 8 Feb 2015 05:52:12 +0300 Subject: [PATCH 09/32] Fixes ore scanner Before: it didn't scan dark tiles and the tile you were standing on. Now: scans both. --- code/modules/mining/drilling/scanner.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mining/drilling/scanner.dm b/code/modules/mining/drilling/scanner.dm index 5b190641606..a770aa791dd 100644 --- a/code/modules/mining/drilling/scanner.dm +++ b/code/modules/mining/drilling/scanner.dm @@ -23,7 +23,7 @@ "exotic matter" = 0 ) - for(var/turf/T in oview(3,get_turf(user))) + for(var/turf/T in range(3,get_turf(user))) if(!T.has_resources) continue From 4495f4c8ed9e3e7ca82e504bcbd03d4a9d5fe777 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Sun, 8 Feb 2015 19:58:28 +0000 Subject: [PATCH 10/32] Fixes possible href exploit with APCs --- code/modules/power/apc.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index dc019ccaec6..5a1dcc5b721 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -888,6 +888,11 @@ if(!can_use(usr, 1)) return 1 + if(!istype(usr, /mob/living/silicon) && locked) + // Shouldn't happen, this is here to prevent href exploits + usr << "You must unlock the panel to use this!" + return 1 + if (href_list["lock"]) coverlocked = !coverlocked From 5496c7bbf01fcbda862a3d7e03ac79ebc69565c7 Mon Sep 17 00:00:00 2001 From: Chinsky Date: Mon, 9 Feb 2015 08:05:24 +0300 Subject: [PATCH 11/32] Fixes #8009 Fixed flaslights producing infinite light/ --- code/game/objects/items.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 13081d6abba..ce0e53f4b0e 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -141,9 +141,10 @@ if(isliving(src.loc)) return user.next_move = max(user.next_move+2,world.time + 2) - src.pickup(user) add_fingerprint(user) user.put_in_active_hand(src) + if(src.loc == user) + src.pickup(user) return From 42bd4e7fbab9f97076313cf9bac0683efea695c2 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Mon, 9 Feb 2015 11:15:19 +0000 Subject: [PATCH 12/32] Storage accessory w_class raised to 3, typo fix --- code/modules/clothing/under/ties.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/clothing/under/ties.dm b/code/modules/clothing/under/ties.dm index 050a2716e09..9010fca705c 100644 --- a/code/modules/clothing/under/ties.dm +++ b/code/modules/clothing/under/ties.dm @@ -198,6 +198,7 @@ icon_state = "holster" item_color = "holster" var/obj/item/weapon/gun/holstered = null + w_class = 3.0 // so it doesn't fit in pockets //subtypes can override this to specify what can be holstered /obj/item/clothing/tie/holster/proc/can_holster(obj/item/weapon/gun/W) @@ -316,6 +317,7 @@ desc = "Used to hold things when you don't have enough hands." icon_state = "webbing" item_color = "webbing" + w_class = 3.0 // so it doesn't fit in pockets var/slots = 3 var/obj/item/weapon/storage/internal/hold @@ -360,7 +362,7 @@ /obj/item/clothing/tie/storage/webbing name = "webbing" - desc = "Strudy mess of synthcotton belts and buckles, ready to share your burden." + desc = "Sturdy mess of synthcotton belts and buckles, ready to share your burden." icon_state = "webbing" item_color = "webbing" From 503eb679cc53efca43561dec46171ab0d7baa877 Mon Sep 17 00:00:00 2001 From: GinjaNinja32 Date: Mon, 9 Feb 2015 13:32:42 +0000 Subject: [PATCH 13/32] Fixes pAIs being spammed with "You are too small to pull that." when being pulled --- code/modules/mob/living/living.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index b9f898ab5dc..25fa8d56862 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -432,7 +432,8 @@ step(pulling, get_dir(pulling.loc, T)) - M.start_pulling(t) + if(t) + M.start_pulling(t) else if (pulling) if (istype(pulling, /obj/structure/window)) From 93f3b5b72a3cebfdca1fe668cf808514c9c666c0 Mon Sep 17 00:00:00 2001 From: D Anzorge Date: Mon, 9 Feb 2015 09:38:48 -0500 Subject: [PATCH 14/32] Fix a bug in isNotStationLevel() helper --- code/__HELPERS/game.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index dcfcb50fcbd..4e250cfe18e 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -43,7 +43,7 @@ return level in config.station_levels /proc/isNotStationLevel(var/level) - return !isStationLevel() + return !isStationLevel(level) /proc/isPlayerLevel(var/level) return level in config.player_levels From e096bc97706e8792d0466adf68b982a97a820feb Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 10 Feb 2015 10:16:47 +0100 Subject: [PATCH 15/32] Map Fixes and Additions Removes a number of random supply and scrubber pipes. Reconnects disconnected scrubber sections in medbay. Fixes APC issues in the bar/library maintenance area. Installs chinkey's new tinted windows in the HoP's office, mental health office, and the three patient cells, using both the id and id-less methods according to need. --- maps/exodus-1.dmm | 189 +++++++++++++++++++++++----------------------- 1 file changed, 96 insertions(+), 93 deletions(-) diff --git a/maps/exodus-1.dmm b/maps/exodus-1.dmm index 73cb64ef9eb..1f3a01e60f4 100644 --- a/maps/exodus-1.dmm +++ b/maps/exodus-1.dmm @@ -1367,7 +1367,7 @@ "aAo" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_x = -2; pixel_y = -28},/turf/simulated/floor{dir = 10; icon_state = "neutral"},/area/crew_quarters/fitness) "aAp" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/crew_quarters/fitness) "aAq" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/crew_quarters/fitness) -"aAr" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/library) +"aAr" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/fitness) "aAs" = (/obj/item/device/radio/intercom{pixel_x = 28},/obj/machinery/libraryscanner,/turf/simulated/floor/wood,/area/library) "aAt" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/library) "aAu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) @@ -1469,7 +1469,7 @@ "aCm" = (/turf/simulated/wall/r_wall,/area/maintenance/substation/civilian_east) "aCn" = (/obj/effect/decal/cleanable/dirt,/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/maintenance/bar) "aCo" = (/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/machinery/power/sensor{name = "Powernet Sensor - Civilian East Subgrid"; name_tag = "Civilian East Subgrid"},/turf/simulated/floor/plating,/area/maintenance/substation/civilian_east) -"aCp" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/camera{c_tag = "Dormitory South"; c_tag_order = 999; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/sleep) +"aCp" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/sleep) "aCq" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_x = 5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aCr" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aCs" = (/obj/machinery/shower{dir = 8; icon_state = "shower"; pixel_x = -5; pixel_y = 0},/obj/structure/curtain/open/shower,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) @@ -1526,7 +1526,7 @@ "aDr" = (/obj/structure/closet/lasertag/blue,/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness) "aDs" = (/turf/simulated/wall,/area/maintenance/bar) "aDt" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutralcorner"},/area/crew_quarters/fitness) -"aDu" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/crew_quarters/fitness) +"aDu" = (/obj/machinery/camera{c_tag = "Dormitory South"; c_tag_order = 999; dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/sleep) "aDv" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor,/area/crew_quarters/fitness) "aDw" = (/obj/structure/cable/green,/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/power/apc{dir = 2; name = "south bump"; pixel_y = -24},/turf/simulated/floor/plating,/area/maintenance/substation/civilian_east) "aDx" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/substation/civilian_east) @@ -1605,8 +1605,8 @@ "aES" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Bar Maintenance"; req_access_txt = "25"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/crew_quarters/bar) "aET" = (/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j1s"; sortType = "Bar"; name = "Bar"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/bar) "aEU" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/substation/civilian_east) -"aEV" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/sleep) -"aEW" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/sleep) +"aEV" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/library) +"aEW" = (/turf/simulated/floor/plating,/area/maintenance/library) "aEX" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "aEY" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) "aEZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/arrivals) @@ -1634,8 +1634,8 @@ "aFv" = (/obj/structure/closet/wardrobe/red,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/checkpoint2) "aFw" = (/obj/effect/decal/cleanable/dirt,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating{dir = 1; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/maintenance/arrivals) "aFx" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/arrivals) -"aFy" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/library) -"aFz" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plating,/area/maintenance/library) +"aFy" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/sleep) +"aFz" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/crew_quarters/sleep) "aFA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "red"},/area/security/checkpoint2) "aFB" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/maintenance/arrivals) "aFC" = (/turf/simulated/wall,/area/maintenance/substation/civilian_west) @@ -1671,7 +1671,7 @@ "aGg" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/port) "aGh" = (/obj/machinery/atmospherics/unary/vent_pump/on,/obj/structure/closet/emcloset,/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/hallway/secondary/entry/port) "aGi" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/port) -"aGj" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/crew_quarters/sleep) +"aGj" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/landmark{name = "blobstart"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/library) "aGk" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/sleep) "aGl" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aGm" = (/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) @@ -1763,10 +1763,10 @@ "aHU" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/crew_quarters/fitness) "aHV" = (/obj/structure/closet,/obj/item/device/flashlight,/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/bar) "aHW" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/library) -"aHX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/library) -"aHY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/library) +"aHX" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/library) +"aHY" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dormitory"},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/hallway/primary/central_two) "aHZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/effect/decal/cleanable/blood/oil/streak{amount = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/bar) -"aIa" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/library) +"aIa" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/hallway/primary/central_two) "aIb" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/camera{c_tag = "Holodeck South"; dir = 1; pixel_y = 6},/turf/simulated/floor/plating,/area/crew_quarters/fitness) "aIc" = (/obj/machinery/door/airlock/maintenance{name = "Library Maintenance"; req_access_txt = "0"; req_one_access_txt = "12;37"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/library) "aId" = (/obj/item/device/radio/intercom{pixel_y = 25},/obj/structure/table/woodentable,/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/simulated/floor/wood,/area/library) @@ -1827,8 +1827,8 @@ "aJg" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/central_one) "aJh" = (/obj/machinery/door/firedoor/border_only{dir = 1; name = "Firelock North"},/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central_one) "aJi" = (/turf/simulated/wall/r_wall,/area/hallway/primary/central_two) -"aJj" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dormitory"},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/hallway/primary/central_two) -"aJk" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass{name = "Dormitory"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/hallway/primary/central_two) +"aJj" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/bar) +"aJk" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = "Hydroponics"; name = "Hydroponics"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/bar) "aJl" = (/turf/simulated/wall,/area/hallway/primary/central_two) "aJm" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/mirror{pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aJn" = (/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) @@ -1844,14 +1844,14 @@ "aJx" = (/obj/structure/plasticflaps{opacity = 1},/obj/machinery/navbeacon{codes_txt = "delivery;dir=2"; freq = 1400; location = "Kitchen"},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/maintenance/bar) "aJy" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/bar) "aJz" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/bar) -"aJA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/bar) -"aJB" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j1s"; sortType = "Hydroponics"; name = "Hydroponics"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/bar) +"aJA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Bar\\Library Maintenance"; req_access_txt = "0"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/library) +"aJB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/maintenance/bar) "aJC" = (/obj/machinery/light/small{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/dormitory) "aJD" = (/obj/structure/table/reinforced,/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 28},/obj/item/weapon/packageWrap,/obj/item/weapon/hand_labeler,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; name = "Chemistry Cleaner"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "aJE" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/sleep/engi_wash) "aJF" = (/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/sleep/engi_wash) -"aJG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/library) -"aJH" = (/obj/structure/disposalpipe/sortjunction/flipped{dir = 4; sortType = "Chapel"; name = "Chapel"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/library) +"aJG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Fore Starboard Solar Access"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/library) +"aJH" = (/obj/structure/disposalpipe/sortjunction/flipped{dir = 4; sortType = "Chapel"; name = "Chapel"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/library) "aJI" = (/obj/structure/filingcabinet,/turf/simulated/floor/wood,/area/library) "aJJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/wood,/area/library) "aJK" = (/obj/structure/stool/bed/chair/office/dark,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/camera{c_tag = "Library North"; dir = 2; network = list("SS13")},/turf/simulated/floor/wood,/area/library) @@ -1871,7 +1871,7 @@ "aJY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/meter,/turf/simulated/floor/plating,/area/maintenance/substation/civilian_west) "aJZ" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/power/sensor{name = "Powernet Sensor - Civilian West"; name_tag = "Civilian West Subgrid"},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/structure/cable/green,/turf/simulated/floor/plating,/area/maintenance/substation/civilian_west) "aKa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/machinery/power/breakerbox/activated{RCon_tag = "Civilian West Substation Bypass"},/turf/simulated/floor/plating,/area/maintenance/substation/civilian_west) -"aKb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Fore Starboard Solar Access"; dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/maintenance/library) +"aKb" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/library) "aKc" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/storage/emergency2) "aKd" = (/turf/simulated/floor,/area/hallway/secondary/entry/starboard) "aKe" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/storage/emergency2) @@ -1915,8 +1915,8 @@ "aKQ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "nuke_shuttle_dock_outer"; locked = 1; name = "Docking Port Airlock"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/hallway/secondary/entry/port) "aKR" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/central_one) "aKS" = (/obj/machinery/vending/cola,/turf/simulated/floor{icon_state = "dark"},/area/hallway/primary/central_two) -"aKT" = (/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/hallway/primary/central_two) -"aKU" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/hallway/primary/central_two) +"aKT" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/maintenance/library) +"aKU" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/meter,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/library) "aKV" = (/obj/machinery/camera{c_tag = "Dormitory Toilets"; dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aKW" = (/obj/machinery/light,/turf/simulated/floor{icon_state = "freezerfloor"},/area/crew_quarters/toilet) "aKX" = (/obj/machinery/door/airlock{name = "Bar Backroom"; req_access_txt = "25"},/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/crew_quarters/bar) @@ -1990,8 +1990,8 @@ "aMn" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/central_one) "aMo" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/primary/central_one) "aMp" = (/obj/machinery/vending/snack,/turf/simulated/floor{icon_state = "dark"},/area/hallway/primary/central_two) -"aMq" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/hallway/primary/central_two) -"aMr" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/hallway/primary/central_two) +"aMq" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/hallway/primary/central_two) +"aMr" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/hallway/primary/central_two) "aMs" = (/obj/machinery/light_switch{pixel_y = 28},/obj/machinery/light{dir = 1},/obj/machinery/smartfridge/drinks,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aMt" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) "aMu" = (/obj/structure/reagent_dispensers/beerkeg,/obj/machinery/requests_console{announcementConsole = 0; department = "Bar"; departmentType = 2; name = "Bar RC"; pixel_x = 0; pixel_y = 30},/turf/simulated/floor{icon_state = "grimy"},/area/crew_quarters/bar) @@ -2083,8 +2083,8 @@ "aOc" = (/turf/simulated/floor{icon_state = "L15"},/area/hallway/primary/central_one) "aOd" = (/obj/machinery/light{dir = 1},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/turf/simulated/floor,/area/hallway/primary/central_two) "aOe" = (/turf/simulated/floor{icon_state = "neutralcorner"; dir = 4},/area/hallway/primary/central_two) -"aOf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "neutralcorner"; dir = 1},/area/hallway/primary/central_two) -"aOg" = (/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "neutralcorner"; dir = 4},/area/hallway/primary/central_two) +"aOf" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/library) +"aOg" = (/turf/simulated/floor{icon_state = "neutral"; dir = 4},/area/hallway/primary/central_two) "aOh" = (/obj/machinery/newscaster{pixel_y = 32},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "neutralcorner"; dir = 1},/area/hallway/primary/central_two) "aOi" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/camera{c_tag = "Central Hallway North-East"; dir = 2},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/hallway/primary/central_two) "aOj" = (/obj/machinery/light{dir = 1},/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/hallway/primary/central_two) @@ -2517,7 +2517,7 @@ "aWu" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "aWv" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/crew_quarters/kitchen) "aWw" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Kitchen"; req_access_txt = "28"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 5},/area/hydroponics/garden) -"aWx" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "grimy"},/area/hydroponics/garden) +"aWx" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "neutral"; dir = 8},/area/hallway/primary/central_two) "aWy" = (/obj/structure/table/reinforced,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "grimy"},/area/hydroponics/garden) "aWz" = (/obj/structure/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Gardener"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "green"; dir = 8},/area/hydroponics/garden) "aWA" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/hydroponics/garden) @@ -2611,7 +2611,7 @@ "aYk" = (/obj/structure/stool/bed/chair/comfy/black,/turf/simulated/floor/wood,/area/library) "aYl" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/turf/simulated/floor/wood,/area/library) "aYm" = (/obj/effect/landmark/start{name = "Librarian"},/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor/wood,/area/library) -"aYn" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/meter,/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/library) +"aYn" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "neutralcorner"; dir = 4},/area/hallway/primary/central_two) "aYo" = (/obj/structure/stool,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) "aYp" = (/obj/structure/stool,/turf/simulated/floor{icon_state = "chapel"},/area/chapel/main) "aYq" = (/obj/structure/stool,/turf/simulated/floor{dir = 8; icon_state = "chapel"},/area/chapel/main) @@ -2676,7 +2676,7 @@ "aZx" = (/obj/machinery/portable_atmospherics/hydroponics/soil,/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/grass,/area/hydroponics/garden) "aZy" = (/obj/structure/flora/ausbushes/brflowers,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/grass,/area/hydroponics/garden) "aZz" = (/turf/simulated/wall,/area/hallway/primary/starboard) -"aZA" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/starboard) +"aZA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "neutralcorner"; dir = 1},/area/hallway/primary/central_two) "aZB" = (/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/carpet,/area/library) "aZC" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/carpet,/area/library) "aZD" = (/obj/structure/table/woodentable,/obj/item/weapon/paper,/turf/simulated/floor/wood,/area/library) @@ -2784,7 +2784,7 @@ "bbB" = (/turf/simulated/floor{icon_state = "green"; dir = 8},/area/hydroponics/garden) "bbC" = (/obj/structure/flora/ausbushes/fernybush,/turf/simulated/floor/grass,/area/hydroponics/garden) "bbD" = (/obj/structure/flora/ausbushes/brflowers,/obj/machinery/camera/autoname{dir = 8},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/grass,/area/hydroponics/garden) -"bbE" = (/obj/structure/disposalpipe/sortjunction/flipped{dir = 2; sortType = "Library"; name = "Library"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor,/area/hallway/primary/starboard) +"bbE" = (/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{icon_state = "grimy"},/area/hydroponics/garden) "bbF" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard) "bbG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Library"},/turf/simulated/floor/carpet,/area/hallway/primary/starboard) "bbH" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/carpet,/area/library) @@ -2857,7 +2857,7 @@ "bcW" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{dir = 1; icon_state = "green"},/area/hydroponics/garden) "bcX" = (/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/hydroponics/garden) "bcY" = (/obj/structure/flora/ausbushes,/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor/grass,/area/hydroponics/garden) -"bcZ" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/green{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor,/area/hallway/primary/starboard) +"bcZ" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/primary/starboard) "bda" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/hallway/primary/starboard) "bdb" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/starboard) "bdc" = (/obj/machinery/door/firedoor/border_only{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass{name = "Library"},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/carpet,/area/hallway/primary/starboard) @@ -3402,12 +3402,12 @@ "bnv" = (/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bnw" = (/obj/machinery/door/airlock{name = "Medbay Substation"; req_access_txt = "5"},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/maintenance/substation/medical) "bnx" = (/obj/machinery/door/blast/regular{id = "mixvent"; name = "Mixer Room Vent"},/turf/simulated/floor/engine/vacuum,/area/rnd/mixing) -"bny" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psych"; name = "Mental Health Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay4) +"bny" = (/obj/structure/disposalpipe/sortjunction/flipped{dir = 2; sortType = "Library"; name = "Library"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/primary/starboard) "bnz" = (/obj/machinery/computer/rdconsole/robotics,/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bnA" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_y = 30},/obj/machinery/light{dir = 1},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bnB" = (/obj/machinery/r_n_d/circuit_imprinter,/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) -"bnC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psych"; name = "Mental Health Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay4) -"bnD" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "medprivc"; name = "Patient Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/patient_c) +"bnC" = (/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/green{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor,/area/hallway/primary/starboard) +"bnD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/structure/cable/cyan,/turf/simulated/floor/plating,/area/turret_protected/ai_upload) "bnE" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "scanhideside"; name = "Diagnostics Room Privacy Shutters"; opacity = 0},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/medbay4) "bnF" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "white"},/area/rnd/research) "bnG" = (/obj/machinery/autolathe,/turf/simulated/floor{icon_state = "white"},/area/rnd/lab) @@ -3470,7 +3470,7 @@ "boL" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "boM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "boN" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Chemist"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"},/area/medical/chemistry) -"boO" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "medprivb"; name = "Patient Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/patient_b) +"boO" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/door_control{desc = "A remote control-switch for shutters."; id = "hop_office_desk"; name = "Desk Privacy Shutter"; pixel_x = 16; pixel_y = 28},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/crew_quarters/heads/hop) "boP" = (/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/reception) "boQ" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{icon_state = "white"},/area/medical/reception) "boR" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/reception) @@ -3503,7 +3503,7 @@ "bps" = (/obj/machinery/camera{c_tag = "Robotics"; dir = 2; network = list("SS13","Research"); pixel_x = 22},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/turf/simulated/floor{dir = 4; icon_state = "whiteredcorner"},/area/assembly/robotics) "bpt" = (/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/assembly/robotics) "bpu" = (/obj/structure/stool,/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/assembly/robotics) -"bpv" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/structure/cable/green{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/maintenance/library) +"bpv" = (/obj/structure/grille,/obj/structure/cable/green,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/structure/window/reinforced/polarized{dir = 4},/obj/structure/window/reinforced/polarized{dir = 1},/obj/structure/window/reinforced/polarized{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/heads/hop) "bpw" = (/obj/machinery/door/airlock/research{name = "Research Division Access"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/hallway/primary/starboard) "bpx" = (/obj/structure/sign/securearea,/turf/simulated/wall,/area/hallway/primary/starboard) "bpy" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/clothing/glasses/welding,/turf/simulated/floor{dir = 1; icon_state = "whitepurple"},/area/rnd/lab) @@ -3601,7 +3601,7 @@ "brm" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/lab) "brn" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/rnd/lab) "bro" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/rnd/lab) -"brp" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/maintenance{name = "Bar\\Library Maintenance"; req_access_txt = "0"},/turf/simulated/floor/plating,/area/maintenance/library) +"brp" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable/green,/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 4},/obj/structure/window/reinforced/polarized{dir = 8},/turf/simulated/floor/plating,/area/crew_quarters/heads/hop) "brq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/storage/emergency) "brr" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor/plating,/area/storage/emergency) "brs" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/obj/machinery/door/firedoor/border_only{dir = 2},/turf/simulated/floor/plating,/area/hallway/secondary/entry/aft) @@ -3823,7 +3823,7 @@ "bvA" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/crew_quarters/heads/hop) "bvB" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/crew_quarters/heads/hop) "bvC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload_foyer) -"bvD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 4},/obj/structure/cable/cyan,/turf/simulated/floor/plating,/area/turret_protected/ai_upload) +"bvD" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Head of Personnel"},/obj/machinery/door_control{desc = "A remote control-switch for shutters."; id = "hop_office_desk"; name = "Desk Privacy Shutter"; pixel_x = 26; pixel_y = 17},/obj/machinery/button/windowtint{pixel_x = 36; pixel_y = 18},/turf/simulated/floor,/area/crew_quarters/heads/hop) "bvE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/cyan{d2 = 4; icon_state = "0-4"},/obj/structure/cable/cyan{d2 = 8; icon_state = "0-8"},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload_foyer) "bvF" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/cyan{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload_foyer) "bvG" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/substation/command) @@ -3831,7 +3831,7 @@ "bvI" = (/obj/structure/table,/obj/item/weapon/aiModule/nanotrasen,/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bvJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bvK" = (/obj/machinery/hologram/holopad,/obj/structure/cable/cyan{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) -"bvL" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/supply{dir = 4},/obj/structure/cable/cyan,/turf/simulated/floor/plating,/area/turret_protected/ai_upload) +"bvL" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/sign/poster{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/medical/sleeper) "bvM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_upload) "bvN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) "bvO" = (/obj/structure/table,/obj/item/weapon/aiModule/freeform,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai_upload) @@ -3847,7 +3847,7 @@ "bvY" = (/obj/machinery/smartfridge/secure/medbay,/turf/simulated/wall,/area/medical/chemistry) "bvZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{name = "Chemistry Laboratory"; req_access_txt = "33"},/obj/structure/sign/chemistry{pixel_x = 32},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "bwa" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "scanhideside"; name = "Diagnostics Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay4) -"bwb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "medpriva"; name = "Patient Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/patient_a) +"bwb" = (/obj/structure/closet/secure_closet/medical1,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -31},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bwc" = (/obj/machinery/door/window/eastright{base_state = "left"; dir = 8; icon_state = "left"; name = "Medical Reception"; req_access_txt = "5"},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor,/area/medical/reception) "bwd" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/medical/reception) "bwe" = (/turf/simulated/floor,/area/medical/reception) @@ -3905,7 +3905,7 @@ "bxe" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "loadingarea"},/area/hallway/primary/central_three) "bxf" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable/green{d2 = 4; icon_state = "0-4"},/turf/simulated/floor{icon_state = "delivery"},/area/hallway/primary/central_three) "bxg" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "scanhideside"; name = "Diagnostics Room Privacy Shutters"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/medbay4) -"bxh" = (/obj/structure/stool/bed/chair/office/dark{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/green{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/door_control{desc = "A remote control-switch for shutters."; id = "hop_office_desk"; name = "Desk Privacy Shutter"; pixel_x = 16; pixel_y = 28},/obj/machinery/door_control{desc = "A remote control-switch for shutters."; id = "hop_office_window"; name = "Window Privacy Shutters"; pixel_x = 16; pixel_y = 38},/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/crew_quarters/heads/hop) +"bxh" = (/obj/structure/table,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/structure/closet/fireaxecabinet{pixel_x = 32; pixel_y = 0},/obj/item/weapon/storage/toolbox/emergency,/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/device/radio{frequency = 1487; name = "Medbay Emergency Radio Link"},/obj/machinery/door_control{id = "acutesep"; name = "Acute Separation Shutters"; pixel_y = -25; req_access_txt = "5"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/machinery/camera{c_tag = "EMT Storage"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bxi" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/carpet,/area/crew_quarters/heads/hop) "bxj" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/carpet,/area/crew_quarters/heads/hop) "bxk" = (/turf/simulated/floor/carpet,/area/crew_quarters/heads/hop) @@ -4206,7 +4206,7 @@ "bCT" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central_three) "bCU" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor{icon_state = "bot"},/area/hallway/primary/central_three) "bCV" = (/obj/machinery/keycard_auth{pixel_x = -24; pixel_y = 0},/obj/machinery/account_database,/turf/simulated/floor{dir = 9; icon_state = "blue"},/area/crew_quarters/heads/hop) -"bCW" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Head of Personnel"},/obj/machinery/door_control{desc = "A remote control-switch for shutters."; id = "hop_office_desk"; name = "Desk Privacy Shutter"; pixel_x = 26; pixel_y = 17},/obj/machinery/door_control{desc = "A remote control-switch for shutters."; id = "hop_office_window"; name = "Window Privacy Shutters"; pixel_x = 38; pixel_y = 17},/turf/simulated/floor,/area/crew_quarters/heads/hop) +"bCW" = (/obj/machinery/door_control{id = "acutesep"; name = "Acute Separation Shutters"; pixel_y = 25; req_access_txt = "5"},/obj/machinery/camera{c_tag = "Medbay Acute"; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bCX" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/hop,/obj/item/device/eftpos{eftpos_name = "HoP EFTPOS scanner"},/turf/simulated/floor,/area/crew_quarters/heads/hop) "bCY" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/crew_quarters/heads/hop) "bCZ" = (/obj/machinery/computer/message_monitor,/obj/machinery/light/small{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/turret_protected/ai_server_room) @@ -4546,7 +4546,7 @@ "bJv" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/central_two) "bJw" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=HOP"; location = "CHE"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/hallway/primary/central_two) "bJx" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/medical/sleeper) -"bJy" = (/obj/machinery/mech_bay_recharge_port,/turf/simulated/floor/plating,/area/medical/sleeper) +"bJy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bJz" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay2) "bJA" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) "bJB" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 8; icon_state = "shutter0"; id = "cmooffice"; name = "CMO Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbay) @@ -4699,7 +4699,7 @@ "bMs" = (/obj/structure/table/rack,/obj/item/weapon/crowbar,/obj/item/weapon/crowbar,/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/vending/wallmed1{pixel_x = -32; pixel_y = 0; req_access_txt = "0"},/obj/item/roller,/obj/item/roller,/obj/item/roller,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bMt" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{autoclose = 1; name = "EMT Storage"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/medbay) "bMu" = (/obj/structure/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Paramedic"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bMv" = (/obj/structure/sign/poster{pixel_x = -32; pixel_y = 0},/obj/structure/closet/secure_closet/medical1,/obj/item/device/radio/intercom{broadcasting = 0; canhear_range = 5; freerange = 0; frequency = 1485; listening = 1; name = "Station Intercom (Medbay)"; pixel_x = 0; pixel_y = -31},/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/device/flashlight,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bMv" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 0; pixel_y = 36},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/button/windowtint{id = "isoA_window_tint"; pixel_y = 26},/turf/simulated/floor{dir = 5; icon_state = "whitered"},/area/medical/patient_a) "bMw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bMx" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) "bMy" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/table,/obj/machinery/photocopier/faxmachine{department = "CMO's Office"},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/crew_quarters/heads/cmo) @@ -4779,7 +4779,7 @@ "bNU" = (/turf/simulated/wall,/area/maintenance/engineering) "bNV" = (/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/structure/closet/secure_closet/medical_wall{name = "O- Blood Locker"},/turf/simulated/wall,/area/medical/sleeper) "bNW" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "misclab"; name = "Test Chamber Blast Doors"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "white"},/area/rnd/misc_lab) -"bNX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/medical/medbay) +"bNX" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 0; pixel_y = 36},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/button/windowtint{id = "isoB_window_tint"; pixel_y = 26},/turf/simulated/floor{dir = 5; icon_state = "whitered"},/area/medical/patient_b) "bNY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{icon_state = "white_1"},/area/medical/medbay) "bNZ" = (/obj/machinery/hologram/holopad,/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bOa" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -4860,7 +4860,7 @@ "bPx" = (/turf/simulated/floor/plating,/area/maintenance/engineering) "bPy" = (/obj/structure/table/rack{dir = 1},/obj/item/clothing/suit/fire/firefighter,/obj/item/weapon/tank/oxygen,/obj/item/clothing/mask/gas,/obj/item/weapon/extinguisher,/obj/item/clothing/head/hardhat/red,/obj/item/clothing/glasses/meson,/obj/effect/decal/cleanable/cobweb2,/turf/simulated/floor/plating,/area/maintenance/engineering) "bPz" = (/obj/machinery/atmospherics/unary/vent_scrubber/on,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"bPA" = (/obj/machinery/door_control{id = "acutesep"; name = "Acute Separation Shutters"; pixel_y = 25; req_access_txt = "5"},/obj/machinery/camera{c_tag = "Medbay Acute 2"; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"bPA" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/medical/sleeper) "bPB" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/door/firedoor/border_only{dir = 2},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "acutesep"; name = "Acute Separation Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/sleeper) "bPC" = (/obj/machinery/camera{c_tag = "Medbay Port Corridor"; dir = 8; network = list("SS13")},/obj/structure/disposalpipe/segment,/obj/machinery/light_switch{pixel_x = 22; pixel_y = -9},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) "bPD" = (/obj/machinery/camera{c_tag = "Medbay CMO Office"; dir = 4; network = list("SS13")},/obj/machinery/light_switch{pixel_x = -22; pixel_y = -9},/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Medical Officer's Desk"; departmentType = 5; name = "Chief Medical Officer RC"; pixel_x = -34; pixel_y = 2},/turf/simulated/floor{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/crew_quarters/heads/cmo) @@ -4946,11 +4946,11 @@ "bRf" = (/obj/machinery/computer/crew,/turf/simulated/floor{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/medbreak) "bRg" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/floor{dir = 9; icon_state = "whitered"},/area/medical/patient_a) "bRh" = (/obj/machinery/light{dir = 1},/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/medical/patient_a) -"bRi" = (/obj/machinery/door_control{id = "medpriva"; name = "Privacy Shutters"; pixel_y = 25},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 0; pixel_y = 36},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor{dir = 5; icon_state = "whitered"},/area/medical/patient_a) +"bRi" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/medical/sleeper) "bRj" = (/turf/simulated/wall,/area/medical/patient_a) "bRk" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/floor{dir = 9; icon_state = "whitered"},/area/medical/patient_b) "bRl" = (/obj/machinery/light{dir = 1},/obj/machinery/newscaster{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/medical/patient_b) -"bRm" = (/obj/machinery/door_control{id = "medprivb"; name = "Privacy Shutters"; pixel_y = 25},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 0; pixel_y = 36},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor{dir = 5; icon_state = "whitered"},/area/medical/patient_b) +"bRm" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{id = "isoA_window_tint"},/obj/structure/window/reinforced/polarized{dir = 4; id = "isoA_window_tint"},/obj/structure/window/reinforced/polarized{dir = 1; id = "isoA_window_tint"},/obj/structure/window/reinforced/polarized{dir = 8; id = "isoA_window_tint"},/turf/simulated/floor/plating,/area/medical/patient_a) "bRn" = (/turf/simulated/wall,/area/medical/patient_b) "bRo" = (/obj/machinery/atmospherics/pipe/simple/visible,/turf/simulated/floor/engine,/area/rnd/misc_lab) "bRp" = (/obj/structure/table,/obj/item/device/assembly/igniter,/turf/simulated/floor/engine,/area/rnd/misc_lab) @@ -5080,8 +5080,8 @@ "bTJ" = (/turf/simulated/wall,/area/medical/medbay4) "bTK" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay4) "bTL" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay4) -"bTM" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = -32},/obj/structure/cable/green,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "hop_office_window"; name = "HoP Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads/hop) -"bTN" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/cable/green,/obj/structure/cable/green{d2 = 2; icon_state = "0-2"},/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "hop_office_window"; name = "HoP Office Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/crew_quarters/heads/hop) +"bTM" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{dir = 4; id = "isoA_window_tint"},/obj/structure/window/reinforced/polarized{id = "isoA_window_tint"},/obj/structure/window/reinforced/polarized{dir = 1; id = "isoA_window_tint"},/obj/structure/window/reinforced/polarized{dir = 8; id = "isoA_window_tint"},/turf/simulated/floor/plating,/area/medical/patient_a) +"bTN" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{id = "isoB_window_tint"},/obj/structure/window/reinforced/polarized{dir = 4; id = "isoB_window_tint"},/obj/structure/window/reinforced/polarized{dir = 1; id = "isoB_window_tint"},/obj/structure/window/reinforced/polarized{dir = 8; id = "isoB_window_tint"},/turf/simulated/floor/plating,/area/medical/patient_b) "bTO" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "CMO's Office"; req_access_txt = "40"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay4) "bTP" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/extinguisher_cabinet{pixel_x = 25; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay4) "bTQ" = (/obj/machinery/door/blast/regular{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{icon_state = "bot"},/area/rnd/research) @@ -5134,8 +5134,8 @@ "bUL" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/engineering) "bUM" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/maintenance/engineering) "bUN" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor{icon_state = "red"; dir = 9},/area/medical/sleeper) -"bUO" = (/obj/machinery/atmospherics/pipe/simple/visible{icon_state = "intact"; dir = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "redcorner"; dir = 1},/area/medical/sleeper) -"bUP" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/turf/simulated/floor,/area/medical/sleeper) +"bUO" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor,/area/medical/sleeper) +"bUP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers,/turf/simulated/floor,/area/medical/sleeper) "bUQ" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/medical/sleeper) "bUR" = (/obj/machinery/door_control{id = "scanhide"; name = "Diagnostics Room Separation Shutters"; pixel_x = -6; pixel_y = 25; req_access_txt = "5"},/obj/machinery/camera{c_tag = "Medbay Scanning"; network = list("SS13")},/obj/machinery/atmospherics/unary/freezer{dir = 8; icon_state = "freezer"},/obj/machinery/door_control{id = "scanhideside"; name = "Diagnostics Room Privacy Shutters"; pixel_x = 6; pixel_y = 25; req_access_txt = "5"},/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) "bUS" = (/obj/structure/disposalpipe/segment,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/rnd/research) @@ -5210,8 +5210,8 @@ "bWj" = (/obj/machinery/navbeacon{codes_txt = "delivery;dir=4"; freq = 1400; location = "Medbay"},/obj/structure/plasticflaps{opacity = 1},/turf/simulated/floor{icon_state = "bot"},/area/medical/sleeper) "bWk" = (/obj/machinery/door/window/eastleft{name = "Medical Delivery"; req_access_txt = "5"},/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "delivery"},/area/medical/sleeper) "bWl" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/medical/sleeper) -"bWm" = (/obj/machinery/atmospherics/pipe/simple/visible{tag = "icon-intact (NORTHWEST)"; icon_state = "intact"; dir = 9},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/turf/simulated/floor,/area/medical/sleeper) -"bWn" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/medical/sleeper) +"bWm" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psych"; name = "Mental Health Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 8},/obj/structure/window/reinforced/polarized{dir = 1},/turf/simulated/floor/plating,/area/medical/medbay4) +"bWn" = (/obj/structure/grille,/obj/machinery/door/blast/shutters{density = 0; dir = 2; icon_state = "shutter0"; id = "psych"; name = "Mental Health Privacy Shutters"; opacity = 0},/obj/structure/window/reinforced/polarized,/obj/structure/window/reinforced/polarized{dir = 1},/obj/structure/window/reinforced/polarized{dir = 4},/turf/simulated/floor/plating,/area/medical/medbay4) "bWo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/medical/sleeper) "bWp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/turf/simulated/floor,/area/medical/sleeper) "bWq" = (/obj/machinery/door/blast/shutters{dir = 2; id = "qm_warehouse"; name = "Warehouse Shutters"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/quartermaster/storage) @@ -5500,7 +5500,7 @@ "cbN" = (/turf/simulated/floor{icon_state = "white"},/area/medical/ward) "cbO" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/medical,/obj/machinery/vending/wallmed1{name = "NanoMed Wall"; pixel_x = 25; pixel_y = 0; req_access_txt = "0"},/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/medical/ward) "cbP" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor/wood,/area/medical/psych) -"cbQ" = (/obj/structure/table/woodentable,/obj/machinery/light_switch{pixel_x = -4},/obj/machinery/door_control{id = "psych"; name = "Mental Health Privacy Shutters Control"; pixel_x = 6; pixel_y = 0},/turf/simulated/floor/wood,/area/medical/psych) +"cbQ" = (/obj/structure/grille,/obj/structure/window/reinforced/polarized{id = "isoC_window_tint"},/obj/structure/window/reinforced/polarized{dir = 4; id = "isoC_window_tint"},/obj/structure/window/reinforced/polarized{dir = 1; id = "isoC_window_tint"},/obj/structure/window/reinforced/polarized{dir = 8; id = "isoC_window_tint"},/turf/simulated/floor/plating,/area/medical/patient_c) "cbR" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/wood,/area/medical/psych) "cbS" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{icon_state = "dark"},/area/medical/biostorage) "cbT" = (/obj/structure/closet/crate{icon_state = "crateopen"; name = "Grenade Crate"; opened = 1},/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/weapon/grenade/chem_grenade,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/igniter,/obj/item/device/assembly/timer,/obj/item/device/assembly/timer,/obj/item/device/assembly/timer,/turf/simulated/floor{icon_state = "dark"},/area/medical/biostorage) @@ -5589,7 +5589,7 @@ "cdy" = (/obj/structure/table,/obj/item/weapon/storage/box/cdeathalarm_kit,/turf/simulated/floor{icon_state = "dark"},/area/medical/biostorage) "cdz" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/closet/secure_closet/personal/patient,/turf/simulated/floor{dir = 10; icon_state = "whitered"},/area/medical/patient_c) "cdA" = (/obj/machinery/light,/obj/machinery/newscaster{pixel_y = -28},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 3; icon_state = "whitered"},/area/medical/patient_c) -"cdB" = (/obj/machinery/door_control{id = "medprivc"; name = "Privacy Shutters"; pixel_y = -25},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 0; pixel_y = -36},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/turf/simulated/floor{dir = 6; icon_state = "whitered"},/area/medical/patient_c) +"cdB" = (/obj/structure/table/woodentable,/obj/machinery/light_switch{pixel_x = -4},/obj/machinery/button/windowtint{pixel_x = 3},/turf/simulated/floor/wood,/area/medical/psych) "cdC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/maintenance/research_port) "cdD" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/maintenance/research_port) "cdE" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/medical/virologyaccess) @@ -5658,7 +5658,7 @@ "ceP" = (/obj/structure/closet/l3closet,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/mask/gas,/obj/item/clothing/suit/bio_suit/general,/obj/item/clothing/suit/bio_suit/general,/obj/item/clothing/suit/bio_suit/general,/obj/item/clothing/mask/gas,/obj/item/clothing/head/bio_hood/general,/obj/item/clothing/head/bio_hood/general,/obj/item/clothing/head/bio_hood/general,/turf/simulated/floor{icon_state = "dark"},/area/medical/biostorage) "ceQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/research_port) "ceR" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/structure/mirror{pixel_x = 32},/turf/simulated/floor{icon_state = "freezerfloor"},/area/medical/patient_wing) -"ceS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/research_port) +"ceS" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/obj/machinery/light_switch{dir = 2; name = "light switch "; pixel_x = 0; pixel_y = -36},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/button/windowtint{id = "isoC_window_tint"; pixel_y = -26},/turf/simulated/floor{dir = 6; icon_state = "whitered"},/area/medical/patient_c) "ceT" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engineering/drone_fabrication) "ceU" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/engineering/drone_fabrication) "ceV" = (/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"},/turf/simulated/floor/plating,/area/maintenance/substation/engineering) @@ -5712,7 +5712,7 @@ "cfR" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "tox_sensor"},/turf/simulated/floor/engine{carbon_dioxide = 0; name = "phoron floor"; nitrogen = 0; oxygen = 0; phoron = 70000},/area/engineering/atmos) "cfS" = (/obj/structure/closet/secure_closet/personal,/turf/simulated/floor/wood,/area/crew_quarters/sleep/bedrooms) "cfT" = (/obj/machinery/power/tracker,/obj/structure/cable/yellow,/turf/simulated/floor/plating/airless,/area/solar/starboard) -"cfU" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "10;24"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/maintenance/substation/engineering) +"cfU" = (/obj/structure/closet/secure_closet/engineering_personal,/obj/item/weapon/tank/emergency_oxygen/engi,/obj/machinery/alarm{frequency = 1441; pixel_y = 22},/turf/simulated/floor,/area/engineering/locker_room) "cfV" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor{icon_state = "blue"; dir = 10},/area/medical/surgeryobs) "cfW" = (/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/medical/surgeryobs) "cfX" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor{icon_state = "blue"; dir = 6},/area/medical/surgeryobs) @@ -7020,7 +7020,7 @@ "cEZ" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "yellowcorner"},/area/engineering/foyer) "cFa" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engineering/foyer) "cFb" = (/obj/structure/table,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/engineering/locker_room) -"cFc" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table,/obj/machinery/camera{c_tag = "Engineering Washroom"; dir = 1; network = list("SS13")},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/engineering/locker_room) +"cFc" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor,/area/engineering/locker_room) "cFd" = (/turf/simulated/floor,/area/engineering/locker_room) "cFe" = (/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/engineering/locker_room) "cFf" = (/obj/machinery/button/holosign{pixel_x = -24; pixel_y = 2},/obj/machinery/camera{c_tag = "Medbay Operating Theatre 2"; dir = 4; network = list("SS13")},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{dir = 1; icon_state = "whiteredcorner"},/area/medical/surgery2) @@ -7191,8 +7191,11 @@ "cIo" = (/obj/machinery/sleeper,/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/medical/sleeper) "cIp" = (/obj/machinery/door/firedoor,/obj/machinery/door/blast/shutters{density = 0; dir = 4; icon_state = "shutter0"; id = "acute2"; name = "Acute Two Privacy Shutters"; opacity = 0},/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/medbay) "cIq" = (/obj/machinery/door_control{id = "scanhide"; name = "Diagnostics Room Separation Shutters"; pixel_x = -6; pixel_y = -25; req_access_txt = "5"},/obj/machinery/iv_drip,/obj/machinery/door_control{id = "acute2"; name = "Acute Treatment Privacy Shutters"; pixel_x = 6; pixel_y = -25; req_access_txt = "5"},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) -"cIr" = (/obj/structure/table,/obj/item/clothing/glasses/hud/health,/obj/item/clothing/glasses/hud/health,/obj/item/weapon/storage/belt/medical,/obj/item/weapon/storage/belt/medical,/obj/structure/closet/fireaxecabinet{pixel_x = 32; pixel_y = 0},/obj/item/weapon/storage/toolbox/emergency,/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/bodybag/cryobag{pixel_x = 6},/obj/item/device/radio{frequency = 1487; name = "Medbay Emergency Radio Link"},/obj/machinery/door_control{id = "acutesep"; name = "Acute Separation Shutters"; pixel_y = -25; req_access_txt = "5"},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) +"cIr" = (/obj/structure/cable/green{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 28},/turf/simulated/floor,/area/engineering/locker_room) "cIs" = (/obj/item/device/radio/intercom{freerange = 1; frequency = 1459; name = "Station Intercom (General)"; pixel_x = 28},/obj/structure/disposalpipe/segment,/obj/structure/cable/green{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/medbay) +"cIt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/effect/landmark{name = "blobstart"},/turf/simulated/floor/plating,/area/maintenance/research_port) +"cIu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/table,/obj/machinery/camera{c_tag = "Engineering Locker Room"; dir = 1; network = list("SS13")},/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/obj/random/tech_supply,/turf/simulated/floor,/area/engineering/locker_room) +"cIv" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "10;24"},/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/substation/engineering) "cIJ" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/maintenance/portsolar) "cIK" = (/turf/simulated/wall/r_wall,/area/maintenance/portsolar) "cIL" = (/turf/simulated/wall/r_wall,/area/maintenance/engi_engine) @@ -7347,25 +7350,25 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaatSauNaxwaxxatSauNaxyaxxatSauNawMauNauNauNauNauNavHatqaaaaaaaaIaaIaaIaaaaaaaafaaaaxBaxCaxBaafaafaafaafaaIaaIaaIaafanXanXanXanXaxDaxEaxEaxFanXanXanXanXaxGaucaucanXaxHaxIanXanXaxJaxKaxLaxMaxMaxMaxMaxMaxMaxMaxMaxNaxMaxMaxMaxMaxMaxOaxPaxQaxRaxOavpasZaxSawjcfSatCaxVaxXaxXaxXaxZaxYayaaybaxXavqaydayeayfaygayhayhayhayhawAavxawyawzatRatRatRatRatRatRatRatRatRatRavzaafaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaAuaAvaAuaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaynayoaypayoayqayoayrayoaysaytayvayvayvayvaywauNawNatqaaaaafaafaaaaaaaaaaaaaafaaaayyayzayAaafaaaaafaaaaaaaaaaaaaaaanXayBayCayDayCayCayCayCayEayCayCayFayGayDayHayIaxMaxMaxMaxMaxMaxMayJayKayLayLayLayLayMayLayLayNayLayMayLayLayLarAayOayPayQarEaAiasZcfSaycaxUatCayUayTayWayVayYayXayYayZayTazaazbazcazdazeazdazdazfawBawCawDawEaxsatRatRatRatRatRatRatRatRatRatRavzaafaaaaaaaaaaaaaaaaaaaaaaaaaafaafaBuaBvaBwaBxaByaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazqazrazsaztazuazvazwazxazyazwazzazAazwazwazBauNavHauRaafaafaaaaaaaaaaaaaaaaafazDazEazFazGazHaaaaafaaaaaaaaaaaaaaaanXazIanXazJazKazLazLazLazMazLazLazLazNazJazOazPazPazPazPazPazPazPazQazRayLazSazTazUazVazWazXazYazZaAaaAbazTaAcarAaAdayPayQarEaAiasZauuaAeauvatCaxWaxXaxXaxXaxXaAjaAkaAlaAmaAnaxkaAoaDtaApaApaApaAqaDratPaCJatPaykatRatRatRatRatRatRatRatRatRatRavzaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaCvaCwaCxaCyaCvaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafauNaAwaAxaAwaAyazsazsaAzaAwaAxaAwaAAaABaACaADauNavHauQauQaAEauUauUauUauUauVauQaAFaAGaAHaAIaAFanXanXaxHaAJaxIanXanXanXazIaAKazJaaaaafaaaaafaaaaafaaaaafaaaazJazOazPaALaAMaANaAOaAPazPazQaucayLaAQaAQaARaASaATaAUaAVaATaAWaAXazTaAcarAaAdayPaDdarEaAiasZawXaAgaAhaBbayRaBdaBeaBfaBgaBhaBiaBjaBjaBkaBjatPaBlaBmaBnaBoaBpaBraDuaDvaFcaGzatRatRatRatRatRatRatRatRatRatRavzaafaaaaaaaaaaaaaaaaacaaaaaaaafaaaaCvaDzaDAaDBaCvaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafauNaAwaAxaAwaAyazsazsaAzaAwaAxaAwaAAaABaACaADauNavHauQauQaAEauUauUauUauUauVauQaAFaAGaAHaAIaAFanXanXaxHaAJaxIanXanXanXazIaAKazJaaaaafaaaaafaaaaafaaaaafaaaazJazOazPaALaAMaANaAOaAPazPazQaucayLaAQaAQaARaASaATaAUaAVaATaAWaAXazTaAcarAaAdayPaDdarEaAiasZawXaAgaAhaBbayRaBdaBeaBfaBgaBhaBiaBjaBjaBkaBjatPaBlaBmaBnaBoaBpaBraAraDvaFcaGzatRatRatRatRatRatRatRatRatRatRavzaafaaaaaaaaaaaaaaaaacaaaaaaaafaaaaCvaDzaDAaDBaCvaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaBzatSaBAawHaBBaBCaBDaBEaBFaBBawHaBGaBHaBIaBJaBKaBLavHavHavHavHavHavHavHavHaBOaBPaAFaBQaBRaBSaAFaBTaBUayCayCayCayCayCaBVaBWaBXazJaafaBYaBYaBYaBYaBYaBYaBYaafazJazOazPaBZaCaaCbaCcaBZazPazQaCdayLayLayLayLaCeaCfaCgaChaCfaCiaCjazTaCkarAaAdayPaClarEaJCasZaAZaAYaBaatCaxWavqatEaBjaBjaBjaBjaBjaCqaCraCsaBjatPatPatPatPaCtatPatPaHSaGCaHRatRatRatRatRatRatRatRatRatRatRayiaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaCvaEXaEYazhaCvaaaaaaaaaaafaafaaaaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazqaAxaCzaCAaCAaCAaCAaCBaAxazqaaaaBIaCCaxzaBLaCEaCEaCEaCEaCEaCEaCEavHaCFaCGaAFaCHaCIaHTaAFaCKaCLaCKaCKaCKaCKaCKaCKaCKaCKaCMaaaaBYaCNaCOaCPaCQaCRaBYaaaazJazOazPaBZaCSaCTaCUaBZazPazQanXayLaCVaCWaARaCXaCYaCZaDaaDbaDcayLayLayLarAaAdayPayQarEaAiasZaxTaBcauvatCaDgavqatEaDhaDiaDjaDkaBjaCqaDlaCsaBjaDmaDnaDoaDpaDqaGwaDsatPatPaJWaxqaxqaxqaxqaxqaIbaxqaxqaxqaxqaHUaafaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaCvaCvaGxaGyaCvaDCaDDaDEaDCaDCaDCaDCaDCaDCaDCaDFaDGaDGaDGaDHaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaaaDIaDJaDKaDJaDJaDLaDMaDJaDJaDKaDNaDOaBIaDPaxAaBLaDRaDSaDTaDUaDVaDWaCEavHaDXauQaAFaAFaDYaDZaCMaEaaEbaEcaEdaEeaEfaEgaEhaEiaEjaCMaafaBYaEkaElaEmaEnaEoaBYaafazJazOazPaEpaEqaEraEsaEtazPazQaEuayLazSazTaEvaEwaCfaExaEyaATaEzaEAaEBaEBarAaAdayPayQarEaAiaCmaCmaCmaCmaCmaEHaEIatEaEJaEKaEKaELaEMaEKaENaEOaBjaEPaEQaERaESaETaCnaDsaafaaaaafaaaaafaaaaafaaaaafaaaaafaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaDCaAtaBqaDCazgaziazjaFdaFdaFdaFdaFeaFfaFgaFgaFgaFgaFgaFgaFgaFhaFiaFjaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaDIaDNaDJaFkaFlaFlaFmaFnaFoaFpaFqaFlaFlaFraFsaFtaDPayuaBLaFvayxaBMazCaBMaBNaCDavHaFuaDQaFxaBsaFwaEZaFIaFJaFKaFLaFLaFLaFMaFLaFLaFNaFOaCMaaaaBYaFPaElaFQaEnaFRaBYaaaazJazOazPaFSaFTaFUaFTaFVazPazQaFWayLayLayLayLaFXaCfaCgazTaCfaFYaFZazTaGaarAaGbaGcaGdarEaAiaDeaDfazkaCoaDeaCpaGjaGkaGlaGmaBjaBjaBjaBjaBjaBjaGnaGoaGpaGqaDpaGraGsaDsaDsaDsaDsaDsaDsaDsaDsaDsaFaaFbaDsaDsaFaaGtaDsaDsaaaaaaaDCaDCaDCaDCaDCaFyaFzaFdazlaznaDCaDCaDCaDCaDCaGDaGEaGFaGFaGFaGFaGFaGFaGGaGGaGHaGGaGGaGGaGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaFraGIaGJaGKaFlaGLaFlaGLaFlaGLaFlaGLaFlaGMaGNaGOaDPayuaBLaGPaFAaGRaGSaGTaGUaCEaFBaFDaFCaFCaFCbazaFEaFCaHcaFLaFLaFLaFLaFLaFLaFLaFNaHdaCMaafaBYaHeaHfaHgaHhaHiaBYaafazJazOazPaHjaHkaFUaHlaHmazPaHnaHoayLaHpazTaARaHqaATaHrazTaCfaFYaHsazTaHtarAaHuaHvaHwarEaGuaDyaEUaGvaDwaDxaEVaEWatEaHCaHDaBjaHEaBjaHFaBjaHGaBjaHHaGpaHIaDpaHJaHKaHLaHMaHMaHNaHOaHKaHKaHKaHKaHKaHPaHKaHKaHKaHQaHVaDsaDsaDsaDCaGAaGBaHWaHXaHYaIaaDCaDCaIcaDCaIdaIeaIfaIgaGFaIhaGFaIiaIjaIkaIlbinaInaIoaIpaIqaIraIsbjFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaIwaFlaFlaDKaFlaGLaFlaGLaIxaGLaIyaGLaFlaGMaGNaGOaDPaFFaIAaIAaFGaICaIDaICaIAaIAaIEaIFaFCaGQaFHaGWaGVaFCaIKaILaIMaFLaFLaINaFLaIOaIPaIKaCMaaaaBYaBYaIQaIRaIQaBYaBYaaaazJazOazPaISaITaIUaFTaIVazPaIWaIXayLaIYazTaIZaEwaCfaJaaEyaATaJbaJcazTaJdaJeaJfaJgaJhaMbaECaCuaCuaCuaCuaCuaJjaJkaJlaJmaJnaBjaJoaBjaJpaBjaJqaBjaJraGpaJsaJtaGsaGsaDqaJvaDsaDsaJwaDsaDsaJxaDsaGsaJyaGsaGsaGsaJzaHZaJBaJAaJAbrpaJHaKbaJGaJGaYnbpvaIgaJIaJJaJKaJLaJMaJNaIgaJOaJPaGFaJQaJRaJSaJTbinaJUaIoaJVaBtaGGaGGaGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaFraJXaGJaGKaFlaGLaFlaGLaFlaGLaFlaGLaFlaGMaGNaGOaDPaGYaGXaHaaGZaHbaHbaIBaIzaIHaIGaIJaIIaJZaJYatiaKaaFCaIKaKmaKnaKoaKpaIKaKqaKraKsaKtaKuaaaaafaaaaKvaKwaKvaaaaafaaaaKuazOazPaKxaKyaKzaKAaKBazPaKCaKDayLaKEazTaARaKFaKGaHrazTaKHaKIaKJaKKaKLaJeaEDaKNaKOaKPaEEaKRaaaaaaaJlaKSaKTaKUaJlaKVaJnaJnaJnaKWaJnaJnaJnaBjaDpaKXaDpaDpaDpaDpaKYaDpaKZaLaaLbaLcaLdaLeaLfaLgaLhaLfaLfaLfaLfaLfaLiaLfaLfaLfaLfaLfaLfaLfaLfaAraIgaLjaLkaLlaEFaLnaLoaIgaLpathaGFaLraLsaLtaJTaRraJUaIoaJVaIoaLvaLwaLxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaLyaLzaDJaFkaFlaFlaFlaLAaFlaFlaLBaFlaFlaFraLCaLDaDPaLEaLFaLGaLHaLGaLGaLGaLGaLGaLIaLJaFCaFCaFCaFCaFCaFCaLLaLMaLNaLOaLOaLOaLOaLPaLQaLRaKuaLSaLTaLTaLUaLVaLWaLTaLTaLXaKuaLYaKuaKuaLZaMaaLZaJeaJeaMbaMcaJeaJeaJeaJeaMdaMeaMgaMfaMhaMiaJeaJeaJeaJeaMjaKNaMkaMkaMlaMmaMnaMoaJlaMpaMqaMraJlaJlaJlaJlaJlaJlaJlaJlaBjaBjaMsaMtaMuaMvaMwaMxaMyaMzaKZaMAaMBaMCaMCaMDaLfaMEaMFaMGaMHaMIaMJaMKaMLaMMaMNaMHaMJaMIaMHaMOaLfaAraIgaMPaMQaMRaMSaMTaMUaIgaMVaMWaMXaMYaMZaNaaNbaGFaGGaNcaJVaIoaNdaNeaNfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaaaLyaDJaDKaDJaDJaDLaDMaDJaDJaDKaLzaNgaBIaNhaLEaNiaNjaNjaNkaNjaNlaIAaNmaNnaLJaNoaNpaNqaNraNsaNtaNraNuaNraNraNraNvaNraNraNwaNxaNyaNzaNAaNBaNzaNCaNzaNzaNzaNzaNDaNEaNFaNGaNraNHaNIaNJaNKaNLaNMaNLaNNaNOaNPaNQaNQaNRaNSaNTaNSaNUaNVaNWaEGaNYaNZaOaaObaOcaMkaMkaMkaOdaOeaOfaOgaOhaOiaOjaOkaOlaOmaOnaJlaOoaOpaOqaOraOsaOtaOuaOvaOwaOxaKZaOyaOzaOAaOAaOBaLfaOCaODaOEaOEaOEaOEaOFaOGaOHaOIaOJaOKaOKaOLaOMaLfaAraIgaONaOOaOPaOQaONaONaIgaORaOSaGFaOTaOUaOVaOWaGFaIoaIoaJVaIoaGGaGGaGGaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaOXaOYaOZaPaaPaaPaaPaaPbaOYaOXaaaaBIaPcaPdaPeauMatQaPhaPhaPiaIAaPjaNnaPkaPlaPmaPnaPoaPpaPqaPqaPraPsaPsaPsaPtaPuaPuaPvaPwaNIaPqaPqaPxaPyaPzaPAaPBaPBaPCaPBaPDaPyaPyaPyaPEaPFaPGaPHaMkaPIaPJaPJaPJaPJaPJaPJaPJaPJaPKaPJaPLaPMaPNaPOaPPaPQaPRaPSaPTaPJaPUaPJaPVaPWaPXaPWaPWaPWaPWaPWaPWaPYaPZaRsaQbaQbaQbaQcaQbaQbaQdaQeaQfaQgaKZaQhaMCaQiaQjaQkaLfaQlaQmaQnaQnaQnaQnaQnaQoaQpatjaQraQnaQnaQsaQtaLfaAraIgaQuaONaONaQvaONaQwaIgaGFaGFaGFaGFaGFaGFaQxaGFaIoaIoaJVaIoaQyaQzaGGaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaafaBIawqaBIaQBaQCaGOaQDaQEaQFaQGaGOaQCaQHaQIaBIaQJaLEaPeatgaQLaPhaPhaPiaIAaQMaNnaLJaQNaNpaQOaQPaNraNraQQaQRaQSaQTaNraQUaQVaQWaQVaQXaQYaQVaQVaQZaQVaQVaRaaRbaQVaRcaQVaRdaNraNraNraReaPFaPGaPHaMkaRfaMkaRgaRgaRgaRgaRgaRgaRgaRgaRhaRiaRgaRjaRgaRgaRkaRgaRgaRgaRgaRlaRmaRnaRoaRoaRoaRoaRoaRoaRoaRpaRqaRpaJlaImawOawOawOawOawOaItaRuaRvaRwaKZaKZaKZaKZaKZaRxaLfaRyaQmaQnaRzaRAaRBasPaRDaREaRFaQraRGaRHaRIaRJaLfaAraIgaRKaRKaRLaRMaRNaRNaROaIgaRPaRQaRRaGGaRSaRTaRUaRVaRVaRWaRXaGGaRYaGGaRZaRZaRZaSaaSbaScaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaGeaGgaGgaGiaGfaGhaSdaOYaLDaDPaHxaHxaSfaLDaOYaLDaHyaHAaHzaLEaSkaSlaSlaNkaSlaNlaIAaSmaNnaSnaIAaLKaLKaSoaLKaLKaLKaLKaLKaLKaSpaSqaLKaLKaLKaLKaLKaLKaSraSsaSraLKaStaLKaNraQPaSuaSvaSwaSxaNraSyaLKaMbaMbaMkaSzaKOaSAaMnaMnaSBaSBaSBaSBaSCaJeasfasNarVarXarXavParXarXarVasNawFaJeaSJaSKaSKaSKaSKaSLaSLaSMaSNaRqaRpaJlaSOaSPaSPaSPaSPaSPaSPaSQaSRaSSaSTaSUaSVaSWaSXaSYaKZaKZaSZaTaaTbaTcaTdaTeaTeaTeaTfaTgaTfaTeaTeaTeaTeaAraIgaThaONaRLaRMaONaONaTiaIgaTjaTkaTlaGGaIoaTmaTnaToaTpaTqaIoaTraTsaGGaTtaTuaRZaTvaTwaTxaafaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaKQaNXaLmaKMaQAaSgaSeaSiaShaSjaSiaTzaTyaTBaTAaTEaTCaTAaTFcozaTIaTJaTKaTLaTLaTLaTMaTLaTNaTOaIAaTPaTQaTRaTSaTTaTUaTVaTWaTXaTUaTYaTZaUaaUbaUcaUdaUeaUfaUgaUhaUeaUiaLKaLKaUjaLKaLKaLKaLKaUkaUlaLKaUmaMbaUnaSzaKOaUoaaaaaaaaaaaaaaaaaaaaaaUpaUqaUraUsaUtaUvaUuaUxaUwaUzaUyaVUaUpaaaaaaaaaaaaaaaaaaaaaaUAaSNaRqaUBaUCaUDaUEaUFaUFaUFaUFaUGaUHaUIaUFaUFaUFaUJaUKaULaUMaUNaUOaUPaUQaURaUSaUTaTfaUUaUVaUWaUXaUYaUZaVaaVbaTeaAraIgaVcaVcaRLaRMaVdaVdaVeaIgaIgaVfaIgaGGaVgaVhaViaViaViaVjaVkaGGaGGaGGaVlaVmaVnaVoaVpaVqaafaafaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaKQcmVaVrclfaDPaVsaVsaVtaVsaVsaVsaVDaVsaVsaVtaVsaVsaYEaWYaVuaVvaKdaKdaKdaKdaKdaVwaVxaVyaVzaIAaTQaTQaVAaTSaVBaTUaTUaTUaTUaTUaTYaVCaTUaTUaTUaUdaUeclraVEaVFaUeaUiaVGaVHaKeaKcaVKaUmaVLaVMaVNaVOaVPaVQaMkaSzaKOaUoaaaaaaaaaaaaaUpaUpaUpaUpaVRaVSaVTaXEaVVaVWaVXaXFaVZaWaaWbaUpaUpaUpaUpaaaaaaaaaaaaaUAaSNaRqaRpaWcaSSaWdaWeaWfaSSaWgaWhaWiaWjaWkaWlaWmaWnaQbaWoaWpaWqaWraWsaWtaWtaWuaWvaWwaWxaWyaWzaWAaWBaWCaWDaWEaTeaAraIgaThaONaRLaRMaONaONaONaWFaWGaONaWHaGGaWIaWJaToaToaToaTqaIoaYsaGGaQaaVoaLuaWQaVoaWRaWSaWTaWTaWUaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTGaGgaTHaGiaBIaBIaBIaWVaWWaWWaWWaWWaWWaWWaWWaWXaBIaBLcpSaWZaIAaXcaXbaXbaXbaYraXdaIAaIAaIAaIAaTQaXeaXfaTSaXgaTUaTUaXhaXiaXjaXkaXhaTUaTUaTUaXlaUeaXmaXnaXoaUeaUiaVGaXpaKfaXraXsaUmaXtaVPaXuaXvaXwaXxaMkaSzaKOaMmaSCaMbaXyaUpaUpaVYaXAaXzaXCaXDaXDaXEaXFaXGaXEaXFaXDaXDaXHaXIaXJaXBaUpaUpaXyaJlaXLaXMaSNaRqaRpaJlaXNaWdaXOaWfaSSaXPaXQaSSaXRaXSaWfaSSaXTaOtaXUaXVaUQaXWaXXaXYaXZaYaaYbaYcaYdaYeaYfaYgaWBaYhaWDaYiaTeaAraIgaYjaYjaRLaRMaYkaONaONaYlaONaYmaAsaGGaIoaYoaYpaToaYqaZkaZXaWLbaOaYGaWOaZcaVoaYvaYwaYxaYyaYzaYAaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaYVaaaaaaaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaafaYCaYDcpKaYFaWPaYHaYHaYIaYJaYKaYLaYMaYNaYOaYPaYQaYRaYSaTSaYTaTUaTUaXhaXjaYUbbTaXhaTUaTUaYWaUdaUeaUeaUeaUeaUeaUiaVGaVGaVGaVGaVGaUmaYYaXvaYZaXvaXvaXxaMkaSzaKOaNSaNSaZaaZbaWNaUpaZdaZeaZfaZgaZfaZfaZfaZfaZhaZfaZfaZfaZfaZfaZfaZiaZjaUpaWMaZbaZlaZmaZnaSNaRqaRpaWcaSSaSSaSSaSSaSSaXPaZoaSSaXRaZpaWfaSSaXTaOtaZqaXVaUQaZraZsaZtaZuaYaaZvaZwaYdaYeaYfaYgaWBaYhaZxaZyaZzaZAaZzaZzaZzaZBaZCaZDaZEaOOaZFaZGaZHaZIaGGaZJaZKaZLaToaZMaZLaIoaIoaXaaYtaVoaYuaVoaZNaZOaZPaZQaWTaZRaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaZSaZTaZUbjnaZWaSFaZYaZZbaababbacbadbaebafaYObagbahbaibajaTSbakbalbambanbaobapbaqbarbarbarbasbataTSbaubavbawbaxaKgbajbnZaKhbajbaCaUmbaDbaEbaFbaGbaHbaIaMkbaJbaKaMkbaLbaMbaNbcybaPbaQbaRbaQbaSbaTbaUbaVbaWbaXbaYbaZbbabbbbbcbaQbbdbbebbfbeobbhbbibbjbbkbblbbmbbnaJlaUDaWdbboaWfaSSbbpbbqbbrbbsaXOaWfaSSaXTbbtaULaXVbbubbvbbwaUQaUQaYabbxbbybbzbbAbbBaYgaWBbbCaWDbbDaZzbbEbbFbbFbbGbbHbbIaRLaRLaRLaRLaRLaRLaRLaGGbbJaYoaYpaToaYqaYpaIobbKaGGbbLaVoaYuaVoaZNbbMbbNbbOaafbbPaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBbbQbbRbbScqObbUaSFbaabaabaabaabaabbVbaabbWaYObbXbbYbaibbZbbZbbZbbZbcabbZbcbaTUbccbcdbcebcebcfbcgaTSaXebchbcibcjaKiaKjblcaKkbcobcobcpbcpbcpbcpbcpbcqaMbbcrbcsbctbcubcvbcwbcxbbgaUpbczbcAbcBbaBaUpaUpaUpaUpaUpbcDaUpaUpaUpbcCbcFbcGbczaUpbbgbcxbcHbcIbcJbcKbcLaRpaWcaSSaSSaSSaSSaSSaGpbcMaSSbcNaSSbcObcObcObcObcPbcQbcRbcSaUQaUQaUQbcTbcUaTeavybcWbcXaYgaWBaYhaWDbcYaZzbcZbdabdbbdcbddbdebddbddbddbddbddbdfbdgbdhbdibdjbdkbdlbdmbdnbdobdpbdqbdraVoaYubdsaZNaVobdtbbOaafaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaDIaDNaDJaFkaFlaFlaFmaFnaFoaFpaFqaFlaFlaFraFsaFtaDPayuaBLaFvayxaBMazCaBMaBNaCDavHaFuaDQaFxaBsaFwaEZaFIaFJaFKaFLaFLaFLaFMaFLaFLaFNaFOaCMaaaaBYaFPaElaFQaEnaFRaBYaaaazJazOazPaFSaFTaFUaFTaFVazPazQaFWayLayLayLayLaFXaCfaCgazTaCfaFYaFZazTaGaarAaGbaGcaGdarEaAiaDeaDfazkaCoaDeaDuaCpaGkaGlaGmaBjaBjaBjaBjaBjaBjaGnaGoaGpaGqaDpaGraGsaDsaDsaDsaDsaDsaDsaDsaDsaDsaFaaFbaDsaDsaFaaGtaDsaDsaaaaaaaDCaDCaDCaDCaDCaEWaEVaFdazlaznaDCaDCaDCaDCaDCaGDaGEaGFaGFaGFaGFaGFaGFaGGaGGaGHaGGaGGaGGaGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaFraGIaGJaGKaFlaGLaFlaGLaFlaGLaFlaGLaFlaGMaGNaGOaDPayuaBLaGPaFAaGRaGSaGTaGUaCEaFBaFDaFCaFCaFCbazaFEaFCaHcaFLaFLaFLaFLaFLaFLaFLaFNaHdaCMaafaBYaHeaHfaHgaHhaHiaBYaafazJazOazPaHjaHkaFUaHlaHmazPaHnaHoayLaHpazTaARaHqaATaHrazTaCfaFYaHsazTaHtarAaHuaHvaHwarEaGuaDyaEUaGvaDwaDxaFzaFyatEaHCaHDaBjaHEaBjaHFaBjaHGaBjaHHaGpaHIaDpaHJaHKaHLaHMaHMaHNaHOaHKaHKaHKaHKaHKaHPaHKaHKaHKaHQaHVaDsaDsaDsaDCaGAaGBaHWaHWaHXaGjaDCaDCaIcaDCaIdaIeaIfaIgaGFaIhaGFaIiaIjaIkaIlbinaInaIoaIpaIqaIraIsbjFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaIwaFlaFlaDKaFlaGLaFlaGLaIxaGLaIyaGLaFlaGMaGNaGOaDPaFFaIAaIAaFGaICaIDaICaIAaIAaIEaIFaFCaGQaFHaGWaGVaFCaIKaILaIMaFLaFLaINaFLaIOaIPaIKaCMaaaaBYaBYaIQaIRaIQaBYaBYaaaazJazOazPaISaITaIUaFTaIVazPaIWaIXayLaIYazTaIZaEwaCfaJaaEyaATaJbaJcazTaJdaJeaJfaJgaJhaMbaECaCuaCuaCuaCuaCuaIaaHYaJlaJmaJnaBjaJoaBjaJpaBjaJqaBjaJraGpaJsaJtaGsaGsaDqaJvaDsaDsaJwaDsaDsaJxaDsaGsaJyaGsaGsaGsaJzaHZaJkaJjaJBaJAaJHaJGaKbaKbaKUaKTaIgaJIaJJaJKaJLaJMaJNaIgaJOaJPaGFaJQaJRaJSaJTbinaJUaIoaJVaBtaGGaGGaGGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaFraJXaGJaGKaFlaGLaFlaGLaFlaGLaFlaGLaFlaGMaGNaGOaDPaGYaGXaHaaGZaHbaHbaIBaIzaIHaIGaIJaIIaJZaJYatiaKaaFCaIKaKmaKnaKoaKpaIKaKqaKraKsaKtaKuaaaaafaaaaKvaKwaKvaaaaafaaaaKuazOazPaKxaKyaKzaKAaKBazPaKCaKDayLaKEazTaARaKFaKGaHrazTaKHaKIaKJaKKaKLaJeaEDaKNaKOaKPaEEaKRaaaaaaaJlaKSaMraMqaJlaKVaJnaJnaJnaKWaJnaJnaJnaBjaDpaKXaDpaDpaDpaDpaKYaDpaKZaLaaLbaLcaLdaLeaLfaLgaLhaLfaLfaLfaLfaLfaLiaLfaLfaLfaLfaLfaLfaLfaLfaOfaIgaLjaLkaLlaEFaLnaLoaIgaLpathaGFaLraLsaLtaJTaRraJUaIoaJVaIoaLvaLwaLxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaLyaLzaDJaFkaFlaFlaFlaLAaFlaFlaLBaFlaFlaFraLCaLDaDPaLEaLFaLGaLHaLGaLGaLGaLGaLGaLIaLJaFCaFCaFCaFCaFCaFCaLLaLMaLNaLOaLOaLOaLOaLPaLQaLRaKuaLSaLTaLTaLUaLVaLWaLTaLTaLXaKuaLYaKuaKuaLZaMaaLZaJeaJeaMbaMcaJeaJeaJeaJeaMdaMeaMgaMfaMhaMiaJeaJeaJeaJeaMjaKNaMkaMkaMlaMmaMnaMoaJlaMpaWxaOgaJlaJlaJlaJlaJlaJlaJlaJlaBjaBjaMsaMtaMuaMvaMwaMxaMyaMzaKZaMAaMBaMCaMCaMDaLfaMEaMFaMGaMHaMIaMJaMKaMLaMMaMNaMHaMJaMIaMHaMOaLfaOfaIgaMPaMQaMRaMSaMTaMUaIgaMVaMWaMXaMYaMZaNaaNbaGFaGGaNcaJVaIoaNdaNeaNfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaaaLyaDJaDKaDJaDJaDLaDMaDJaDJaDKaLzaNgaBIaNhaLEaNiaNjaNjaNkaNjaNlaIAaNmaNnaLJaNoaNpaNqaNraNsaNtaNraNuaNraNraNraNvaNraNraNwaNxaNyaNzaNAaNBaNzaNCaNzaNzaNzaNzaNDaNEaNFaNGaNraNHaNIaNJaNKaNLaNMaNLaNNaNOaNPaNQaNQaNRaNSaNTaNSaNUaNVaNWaEGaNYaNZaOaaObaOcaMkaMkaMkaOdaOeaZAaYnaOhaOiaOjaOkaOlaOmaOnaJlaOoaOpaOqaOraOsaOtaOuaOvaOwaOxaKZaOyaOzaOAaOAaOBaLfaOCaODaOEaOEaOEaOEaOFaOGaOHaOIaOJaOKaOKaOLaOMaLfaOfaIgaONaOOaOPaOQaONaONaIgaORaOSaGFaOTaOUaOVaOWaGFaIoaIoaJVaIoaGGaGGaGGaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaOXaOYaOZaPaaPaaPaaPaaPbaOYaOXaaaaBIaPcaPdaPeauMatQaPhaPhaPiaIAaPjaNnaPkaPlaPmaPnaPoaPpaPqaPqaPraPsaPsaPsaPtaPuaPuaPvaPwaNIaPqaPqaPxaPyaPzaPAaPBaPBaPCaPBaPDaPyaPyaPyaPEaPFaPGaPHaMkaPIaPJaPJaPJaPJaPJaPJaPJaPJaPKaPJaPLaPMaPNaPOaPPaPQaPRaPSaPTaPJaPUaPJaPVaPWaPXaPWaPWaPWaPWaPWaPWaPYaPZaRsaQbaQbaQbaQcaQbaQbaQdaQeaQfaQgaKZaQhaMCaQiaQjaQkaLfaQlaQmaQnaQnaQnaQnaQnaQoaQpatjaQraQnaQnaQsaQtaLfaOfaIgaQuaONaONaQvaONaQwaIgaGFaGFaGFaGFaGFaGFaQxaGFaIoaIoaJVaIoaQyaQzaGGaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaafaBIawqaBIaQBaQCaGOaQDaQEaQFaQGaGOaQCaQHaQIaBIaQJaLEaPeatgaQLaPhaPhaPiaIAaQMaNnaLJaQNaNpaQOaQPaNraNraQQaQRaQSaQTaNraQUaQVaQWaQVaQXaQYaQVaQVaQZaQVaQVaRaaRbaQVaRcaQVaRdaNraNraNraReaPFaPGaPHaMkaRfaMkaRgaRgaRgaRgaRgaRgaRgaRgaRhaRiaRgaRjaRgaRgaRkaRgaRgaRgaRgaRlaRmaRnaRoaRoaRoaRoaRoaRoaRoaRpaRqaRpaJlaImawOawOawOawOawOaItaRuaRvaRwaKZaKZaKZaKZaKZaRxaLfaRyaQmaQnaRzaRAaRBasPaRDaREaRFaQraRGaRHaRIaRJaLfaOfaIgaRKaRKaRLaRMaRNaRNaROaIgaRPaRQaRRaGGaRSaRTaRUaRVaRVaRWaRXaGGaRYaGGaRZaRZaRZaSaaSbaScaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaGeaGgaGgaGiaGfaGhaSdaOYaLDaDPaHxaHxaSfaLDaOYaLDaHyaHAaHzaLEaSkaSlaSlaNkaSlaNlaIAaSmaNnaSnaIAaLKaLKaSoaLKaLKaLKaLKaLKaLKaSpaSqaLKaLKaLKaLKaLKaLKaSraSsaSraLKaStaLKaNraQPaSuaSvaSwaSxaNraSyaLKaMbaMbaMkaSzaKOaSAaMnaMnaSBaSBaSBaSBaSCaJeasfasNarVarXarXavParXarXarVasNawFaJeaSJaSKaSKaSKaSKaSLaSLaSMaSNaRqaRpaJlaSOaSPaSPaSPaSPaSPaSPaSQaSRaSSaSTaSUaSVaSWaSXaSYaKZaKZaSZaTaaTbaTcaTdaTeaTeaTeaTfaTgaTfaTeaTeaTeaTeaOfaIgaThaONaRLaRMaONaONaTiaIgaTjaTkaTlaGGaIoaTmaTnaToaTpaTqaIoaTraTsaGGaTtaTuaRZaTvaTwaTxaafaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaKQaNXaLmaKMaQAaSgaSeaSiaShaSjaSiaTzaTyaTBaTAaTEaTCaTAaTFcozaTIaTJaTKaTLaTLaTLaTMaTLaTNaTOaIAaTPaTQaTRaTSaTTaTUaTVaTWaTXaTUaTYaTZaUaaUbaUcaUdaUeaUfaUgaUhaUeaUiaLKaLKaUjaLKaLKaLKaLKaUkaUlaLKaUmaMbaUnaSzaKOaUoaaaaaaaaaaaaaaaaaaaaaaUpaUqaUraUsaUtaUvaUuaUxaUwaUzaUyaVUaUpaaaaaaaaaaaaaaaaaaaaaaUAaSNaRqaUBaUCaUDaUEaUFaUFaUFaUFaUGaUHaUIaUFaUFaUFaUJaUKaULaUMaUNaUOaUPaUQaURaUSaUTaTfaUUaUVaUWaUXaUYaUZaVaaVbaTeaOfaIgaVcaVcaRLaRMaVdaVdaVeaIgaIgaVfaIgaGGaVgaVhaViaViaViaVjaVkaGGaGGaGGaVlaVmaVnaVoaVpaVqaafaafaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaKQcmVaVrclfaDPaVsaVsaVtaVsaVsaVsaVDaVsaVsaVtaVsaVsaYEaWYaVuaVvaKdaKdaKdaKdaKdaVwaVxaVyaVzaIAaTQaTQaVAaTSaVBaTUaTUaTUaTUaTUaTYaVCaTUaTUaTUaUdaUeclraVEaVFaUeaUiaVGaVHaKeaKcaVKaUmaVLaVMaVNaVOaVPaVQaMkaSzaKOaUoaaaaaaaaaaaaaUpaUpaUpaUpaVRaVSaVTaXEaVVaVWaVXaXFaVZaWaaWbaUpaUpaUpaUpaaaaaaaaaaaaaUAaSNaRqaRpaWcaSSaWdaWeaWfaSSaWgaWhaWiaWjaWkaWlaWmaWnaQbaWoaWpaWqaWraWsaWtaWtaWuaWvaWwbbEaWyaWzaWAaWBaWCaWDaWEaTeaOfaIgaThaONaRLaRMaONaONaONaWFaWGaONaWHaGGaWIaWJaToaToaToaTqaIoaYsaGGaQaaVoaLuaWQaVoaWRaWSaWTaWTaWUaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTGaGgaTHaGiaBIaBIaBIaWVaWWaWWaWWaWWaWWaWWaWWaWXaBIaBLcpSaWZaIAaXcaXbaXbaXbaYraXdaIAaIAaIAaIAaTQaXeaXfaTSaXgaTUaTUaXhaXiaXjaXkaXhaTUaTUaTUaXlaUeaXmaXnaXoaUeaUiaVGaXpaKfaXraXsaUmaXtaVPaXuaXvaXwaXxaMkaSzaKOaMmaSCaMbaXyaUpaUpaVYaXAaXzaXCaXDaXDaXEaXFaXGaXEaXFaXDaXDaXHaXIaXJaXBaUpaUpaXyaJlaXLaXMaSNaRqaRpaJlaXNaWdaXOaWfaSSaXPaXQaSSaXRaXSaWfaSSaXTaOtaXUaXVaUQaXWaXXaXYaXZaYaaYbaYcaYdaYeaYfaYgaWBaYhaWDaYiaTeaOfaIgaYjaYjaRLaRMaYkaONaONaYlaONaYmaAsaGGaIoaYoaYpaToaYqaZkaZXaWLbaOaYGaWOaZcaVoaYvaYwaYxaYyaYzaYAaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaYVaaaaaaaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaafaYCaYDcpKaYFaWPaYHaYHaYIaYJaYKaYLaYMaYNaYOaYPaYQaYRaYSaTSaYTaTUaTUaXhaXjaYUbbTaXhaTUaTUaYWaUdaUeaUeaUeaUeaUeaUiaVGaVGaVGaVGaVGaUmaYYaXvaYZaXvaXvaXxaMkaSzaKOaNSaNSaZaaZbaWNaUpaZdaZeaZfaZgaZfaZfaZfaZfaZhaZfaZfaZfaZfaZfaZfaZiaZjaUpaWMaZbaZlaZmaZnaSNaRqaRpaWcaSSaSSaSSaSSaSSaXPaZoaSSaXRaZpaWfaSSaXTaOtaZqaXVaUQaZraZsaZtaZuaYaaZvaZwaYdaYeaYfaYgaWBaYhaZxaZyaZzbcZaZzaZzaZzaZBaZCaZDaZEaOOaZFaZGaZHaZIaGGaZJaZKaZLaToaZMaZLaIoaIoaXaaYtaVoaYuaVoaZNaZOaZPaZQaWTaZRaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaZSaZTaZUbjnaZWaSFaZYaZZbaababbacbadbaebafaYObagbahbaibajaTSbakbalbambanbaobapbaqbarbarbarbasbataTSbaubavbawbaxaKgbajbnZaKhbajbaCaUmbaDbaEbaFbaGbaHbaIaMkbaJbaKaMkbaLbaMbaNbcybaPbaQbaRbaQbaSbaTbaUbaVbaWbaXbaYbaZbbabbbbbcbaQbbdbbebbfbeobbhbbibbjbbkbblbbmbbnaJlaUDaWdbboaWfaSSbbpbbqbbrbbsaXOaWfaSSaXTbbtaULaXVbbubbvbbwaUQaUQaYabbxbbybbzbbAbbBaYgaWBbbCaWDbbDaZzbnybbFbbFbbGbbHbbIaRLaRLaRLaRLaRLaRLaRLaGGbbJaYoaYpaToaYqaYpaIobbKaGGbbLaVoaYuaVoaZNbbMbbNbbOaafbbPaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBbbQbbRbbScqObbUaSFbaabaabaabaabaabbVbaabbWaYObbXbbYbaibbZbbZbbZbbZbcabbZbcbaTUbccbcdbcebcebcfbcgaTSaXebchbcibcjaKiaKjblcaKkbcobcobcpbcpbcpbcpbcpbcqaMbbcrbcsbctbcubcvbcwbcxbbgaUpbczbcAbcBbaBaUpaUpaUpaUpaUpbcDaUpaUpaUpbcCbcFbcGbczaUpbbgbcxbcHbcIbcJbcKbcLaRpaWcaSSaSSaSSaSSaSSaGpbcMaSSbcNaSSbcObcObcObcObcPbcQbcRbcSaUQaUQaUQbcTbcUaTeavybcWbcXaYgaWBaYhaWDbcYaZzbnCbdabdbbdcbddbdebddbddbddbddbddbdfbdgbdhbdibdjbdkbdlbdmbdnbdobdpbdqbdraVoaYubdsaZNaVobdtbbOaafaaaaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBbdubdvaZUbdwbdxaSFaYHbdybaababbdzbbVbaabdAaYObdBbdCbaibbZbdDbdEbdFbdGbbZbdHbdIbdJaTSbdKbdLbdMbdNaTSaXebdObdPbdPaKlbdPbdPbdPbdPbdRbdSbdSbdSbdTbdSbdUaMbbdVbdWbdXaJeaJeaJebdYbdYbdYbdZbeabdZbdYbebbebbebbebbebbecbebbebbebbedbedbeebedaUpaUpaUpaJiaJiaJibcKbcLaRpaJlbefbegaDmbehaSSbeibcMbejbekbelbcObcObembenaZzaZzaZzaSHaSGaSGaSGaZzaZzaZzbeqberbesbetaWBaYhaYhbeuaZzbevbewbexaZzbeybezbeAaZEbeBbeCbeDbeEaONaGGaIobeFbeGbeHbeFbeIaIoaIoaGGbeJaVoaYuaVoaZNbeKbeLbbOaafbeMaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBaYBbeNbeObePbeQbeRaRtaYHbeTbeUaYHbdzbbVbeVbeWaYObeXbeYbaibbZbbZbbZbeZbfabbZbfbbdIbfcaTSbdKbdLbdMbfdaTSaXebdObdPbfebffbfgbfgbfhbdPbfibfjbfkbflbfmbfmbfmaMbaMkbcsbctaJebfnbfobfpbfqbfrbfsbftbfubdYbebbfvbfwaSEaSDbfzbfAbfBbebbedbfCbfDbfEbfFbfGbfHbfIbfJaJibfKbfLbfMaJlaZzaZzaZzaZzbfNbfObfPbfQaZzaZzbfRaZzaZzaZzaZzbfSbfTbfUbfVbfVbfVbfWbfXaZzbfYbfZbgabgbbgcbgcbgcbgdaZzbevbewbgeaZzaZzaZzaZzaZzaZzaZzaZzaZzaZzaZzbgfbggbghbgibgjbgfbggaZzaRZbgkaVoaYuaVoaZNaZObglbgmaWTaZRaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaabgnbgobgpbgqaZUbgrbgrbgrbgrbgrbgrbgsbgtbgraYOaYOaYOaYOaYObguaYOaYOaYObgvbgvbgwbbZbdDbgxbeZbgybbZbgzbgAbgzaTSbdKbdLbdMbfdaTSaXebdObdPbgBbgCbgDbfgbgDbdPbfibgEbgFbgGbgHbgIbgJaMbbgKbgLbctaWKbgNbgObgPbgQbgQbgRbgSbgTbdYbebbgUbgVbgWbgXbfvbgYbgZbebbedbhabhbbhcbhdbhebhfbhgbhhaJibhibhjaRpbhkbhlbhmbewbewbhnbewbhobewbewbewbewbhpbewbewbewbewbhqbewbewbewbewbewbewbhmbewbewbhrbhsbhsbhtbhsbhsbhubhvbewbhqbhwbhxbhpbewbhybewbewbewbhzbhAbhBbhCbewbhDbewbhEbewbewbhFbhGbhHaVoaYuaVobhIbhJbhKbhLbhMbhNaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -7377,37 +7380,37 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaTDaT aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaabgnbgobgpbgqbdvbpHbpHbpHbpIbpHbpJaZVbpKbpLbgrbpMbpNbpObpPbpQbpRbpSaYSaXeaXeaXebpTbkWbpUbkWbkWbkWbkWbpVbpWbpWbpXbpYbdPbpZbqabqbbqcbqdbqebqfbqgbqhbqibqjbqkbmAbqlbojbgGbgGbqmbfmaMbblqbqnbqoaJubqqbqrbqrbxqborbopbxsbotaafbebbebbebbebceebebbebbebbebaafbedbqzboCbqAbqBbqCbqDbqEaJibqFaRqaRpaJibqGbqHbqIbqJaJDbqLboPbqNboUboUboUboUboUboUbqObqPbqQboYbqRbqSbqTbnnbqUbqVbqWbpfbpgbphbpfbqXbYfaVJbpjbqYbqZbqZbrabrbbrcbrdbrdbrdbrebrdbrfbrgbrhbribrjbrkbnIbrlbpCbrmbrnbrocxlbnIbrqbpFbrrbnMaaaaaaaaaaaaaaaaaaaaaaIuaIuaIuaIuaIuaIuaIuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaaaaaabrsbrtbrubrvbrwbrxbrxbrybrzbrAbgrcedbrCbpPbrDbjpbjpbjpbajbrEbrFbrGbrHbrGbrGbrGbrHbrGbajbajbdPbdPbdPbrIbdPbrJbrJbrJbrJbrJbrJbqfbrKbrLbrMbrNbrObrPbrQbrRbrSbrTbrUbrVbrWbrXbrYbrZaHBbsbbqvbsabsebscbotbosbotaafbsibsjbskbslbsmbsnbskbsobsiaafbedbspbsqbspbedbedbedbsraJibssaRqaRpbXHboJboKbstbsubsvbqLbswbqNbsxbsybszbsAbsBbsCbqObsDbnibsEbsFbsGbsHbnnbsIbqVbpebpfbpgbphbpfbpibYfaVJbpjbsJbsKbsLbsMbplbsNbsObsPbsQbsRbsSbsTbsUbrhbsVbsWbsXbnIbsYbsZbtabtbbtcbtdbnIbrqbpFbtebnMaaaaaaaaaaaaaafaafaafaafceoceoceoceoaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaaaaaaaaaaaaaaaaaaaTDaTDaTDaTDaTDaaaaacaaaaaaaaaaaaaaaaaaaaabrsbtfbtgbthbtibtibtibtjbtibtibgrbtkbtlbtmbpPbjpaaaaaaaaaaafaafbtnbtnbtnbtnbtnbtnbtnaaaaaabtobtpbtqbtrbtsbrJbrJbrJbrJbrJbrJbttbtubtvbtwbtxbtybtzbtAbfmbfmbtBbfmbfmbtCbtDbtEbtFbmGbtHbmGbmGbmGbmGbmGbtIbmGaafbtJbtKbtLbtMbtNbtMbtLbtObtPaafbspbtQbtRbtSbtTbtUbspbtVaJlbtWbbmbtXaJibtYbmUbtZbuabubbucbudbuebufbugbuhbuibujbukbulbumbnibnnbunbuobupbnnbuqburbusbutbuubuubuvbuwbYfaXqbpjbuxbplbplbsMbuybuzbuAbuBbuCbuDbuEbuFbuGbrhbuHbuIbuJbnIbuKbuLbuMbtbbpCbuNbnIbpEbpFbuObnMaaaaaaaaaaaaaafbuPbuQbuRbuQbuRbuQbuSaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuTbeObuUbuUbuVbpHbuWbgnbgobuXbuWbgrbuYbuZbvabvbbjpaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaabvcbvdbrJbvebvfbvfbvfbvfbvfbvgbvhbvfbvibvjbvkbvlbvmbvnbvobfmbvpbgGbvqbvrbvsbvtbvubvvbmGbmGbmGbvxbvybvzbvAbvBbvwaafbvDbvIbvHbvJbvKbvMbvNbvObvLaafbspbvPbvQbxnbedbvRbspbvSaJlbvTbcLbvUaJibvVbvWbvXbvYbvZbuccdTcdUbwcbwdbwebwebwfbwgcdWcdVbwjbwkbwlbwmbwkbwkbwkbwkbwnbwkbwkaXKaXKaXKaXKaVJbpjbsJbsKbsLbwobwpbwqbwrbwsbwsbwsbsSbwtbwubwvbwwbwxbwybnIbwzbwAbwBbwCbpCbwDbnIbwEbwFbnMbnMaaaaaaaaaaaaaafbwGbwHbwIbwJbwJbwKbwGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbwMbwNbwObwPbrJbwQbrJbwRbwRbwRbwSbwTbrKbrJbrJbrLbwUbwVbwWbwXbwYbwZbxabgGbgGbxbbxcbvtbvubxdbxebxfbUbbxhbxibxjbxkbxlbvwaafbxmbqtbskbxobxpbxobskbqxbxraafbspbqwbxtcelbedbxvbspbtVaJlbxwbcLaRpaJibxxbxybxzbxAbxBbxCbxDbxEbxCbxFbxGbxHbxFbwkbxIbxJbwkbwkbxKbxLbxMbxNbxObxPbxQbxRbxSaXKbayaYXaXKaVJbpjbxXbqZbqZbxYbxZbppbyabwsbwsbwsbsSbwtbybbwwcbKbUabTQbwwbyfbygbyhbyibpCbyjbnIbrqbykbnMaaaaaaaaaaaaaaaaafbylbymbwIbwJbwIbynbuRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbyobypbyobyqbyrbwQbrJbrJbrJbysbrJbwTbrKbytbdPbdPbyubgGbrNbwXbyvbywbyxbyybyybyzbyAbyBbyCbyDbvsbyEbTNbyGbxkbyHbyIbyJbvwaafbxrbxrbyKbtLbyLbskbyMbxrbxraafbyNbyNbyNbyNbyNbyNbyNbyOaJibyPblMblNaJibyQbyRbyRbySbyTbxCbyUbyVbyWbyXbyYbyZbzabwmbzbbzcbzdbzebzfbzgbzgbzhbzibzgbzjbzkbckbaAcekbclbdQbcnbzrbzsbztbzubzvbzwbppbzxbpqbpqbzybsSbwtbzzbzAbzBbzCbzDbzAbzEbzFbzGbzHbzIbwwbwwbzJbnMbnMbzKbzLbzLbzLbzMbzNbwGbwJbwIbwJbwJbzObwGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaacaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzPbzQbzPbzRbrJbwQbrJbzSbzSbzSbzSbwTbrKbzTbzUbdPbzVbgGbrNbwXbzWbzXbzYbgGblnbgGbzZbAabAbbAcbAdbyEbTMbAfbxkbxkbxkbAgbvwbAhbAhbAhbxrbAibxpbAibxrbAjbAjbAjbyNbAkbAlbAmbAnbAobApbAqaJibAraRqaRpaJibAsbAtbAubAvbAwbAxbAybAzbAAbABbACbADbAEbAFbAGbAHbAIbAJbAKbAIcaJbAMbANbAObnvblUbsdbnwbsgbsfbaAbPObpjbAWbAXbAYbAZbAZbppbBabBbbBcbppbBdbBebBfbBgbBhbBibBjbBkbBlbBlbBmbBnbBobTHbBqbBrbBsbBtbTIbBvbBwbBwbBxbBybBzbuQbuRbBAbuRbuQbBBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabuTbeObuUbuUbuVbpHbuWbgnbgobuXbuWbgrbuYbuZbvabvbbjpaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaabvcbvdbrJbvebvfbvfbvfbvfbvfbvgbvhbvfbvibvjbvkbvlbvmbvnbvobfmbvpbgGbvqbvrbvsbvtbvubvvbmGbmGbmGbvxbvybvzbvAbvBbvwaafbnDbvIbvHbvJbvKbvMbvNbvObnDaafbspbvPbvQbxnbedbvRbspbvSaJlbvTbcLbvUaJibvVbvWbvXbvYbvZbuccdTcdUbwcbwdbwebwebwfbwgcdWcdVbwjbwkbwlbwmbwkbwkbwkbwkbwnbwkbwkaXKaXKaXKaXKaVJbpjbsJbsKbsLbwobwpbwqbwrbwsbwsbwsbsSbwtbwubwvbwwbwxbwybnIbwzbwAbwBbwCbpCbwDbnIbwEbwFbnMbnMaaaaaaaaaaaaaafbwGbwHbwIbwJbwJbwKbwGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbwMbwNbwObwPbrJbwQbrJbwRbwRbwRbwSbwTbrKbrJbrJbrLbwUbwVbwWbwXbwYbwZbxabgGbgGbxbbxcbvtbvubxdbxebxfbUbboObxibxjbxkbxlbvwaafbxmbqtbskbxobxpbxobskbqxbxraafbspbqwbxtcelbedbxvbspbtVaJlbxwbcLaRpaJibxxbxybxzbxAbxBbxCbxDbxEbxCbxFbxGbxHbxFbwkbxIbxJbwkbwkbxKbxLbxMbxNbxObxPbxQbxRbxSaXKbayaYXaXKaVJbpjbxXbqZbqZbxYbxZbppbyabwsbwsbwsbsSbwtbybbwwcbKbUabTQbwwbyfbygbyhbyibpCbyjbnIbrqbykbnMaaaaaaaaaaaaaaaaafbylbymbwIbwJbwIbynbuRaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbyobypbyobyqbyrbwQbrJbrJbrJbysbrJbwTbrKbytbdPbdPbyubgGbrNbwXbyvbywbyxbyybyybyzbyAbyBbyCbyDbvsbyEbpvbyGbxkbyHbyIbyJbvwaafbxrbxrbyKbtLbyLbskbyMbxrbxraafbyNbyNbyNbyNbyNbyNbyNbyOaJibyPblMblNaJibyQbyRbyRbySbyTbxCbyUbyVbyWbyXbyYbyZbzabwmbzbbzcbzdbzebzfbzgbzgbzhbzibzgbzjbzkbckbaAcekbclbdQbcnbzrbzsbztbzubzvbzwbppbzxbpqbpqbzybsSbwtbzzbzAbzBbzCbzDbzAbzEbzFbzGbzHbzIbwwbwwbzJbnMbnMbzKbzLbzLbzLbzMbzNbwGbwJbwIbwJbwJbzObwGaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaacaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzPbzQbzPbzRbrJbwQbrJbzSbzSbzSbzSbwTbrKbzTbzUbdPbzVbgGbrNbwXbzWbzXbzYbgGblnbgGbzZbAabAbbAcbAdbyEbrpbAfbxkbxkbxkbAgbvwbAhbAhbAhbxrbAibxpbAibxrbAjbAjbAjbyNbAkbAlbAmbAnbAobApbAqaJibAraRqaRpaJibAsbAtbAubAvbAwbAxbAybAzbAAbABbACbADbAEbAFbAGbAHbAIbAJbAKbAIcaJbAMbANbAObnvblUbsdbnwbsgbsfbaAbPObpjbAWbAXbAYbAZbAZbppbBabBbbBcbppbBdbBebBfbBgbBhbBibBjbBkbBlbBlbBmbBnbBobTHbBqbBrbBsbBtbTIbBvbBwbBwbBxbBybBzbuQbuRbBAbuRbuQbBBaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbBCbwNbBDbBEbrJbwQbrJbrJbrJbrJbrJbwTbrKbzTbBFbdPbBGbgGbBHbBIbgGbBJbgFbgGbgGbBKbvsbvtbAbbAcbAdbyEbvwbBLbBMbBNbBMbBObvwbBPbBQbBRbAhbxrbBSbxrbAjbBTbBUbBVbyNbBWbBXbBYbBZbCabCabCbbCcbAraRqaRpaJibCdbCebCebySbCfbxCbCgbChbxCbCibCjbCjbCkbwkbClbCmbwkbwkbwkbwkbwkbwkbCnbwkbwkbwmbCoaXKaXKaXKaXKbSwbpjbwwbzAbzAbzAbzAbzAbzAbzAbzAbzAbzIbCrbCsbCtbBhbCubCvbCwbCxbCxbCxbCybCzbSubCBbCCbCDbCEbTGbCGbCHbCGbCIbCJbzKbzLbzMbCKbzNbCLaaaaafaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzPbzQbzPbCMbCNbCObrJbrJbrJbCNbrJbwTbrKbzTbCPbdPbCQbgGbrNbwXbgGbqlbCRbgGbgGbCSbxcbvtbAbbCTbxcbCUbvwbCVbCWbCXbCYbxlbvwbCZbDabDbbDcbDdbvFbvEbDgbDhbDibDjbyNbDkbDlbDlbDmbDnbDobDpaJibDqbDrbDsaJibDtbCAbDvbDwbDxbDybDzbDAbyWbDBbDCbCjbDDbwmbDEbDFbwmbDGbDHbDIbDJbDKbDLbDMbCpbDNbDObDPbDQbDRbCpbVLbVMbDUbVAbDWbDXbDXbDYbDZbEabEbbEcbEdbEebEfbEabEgbEhbCvbEibEjbEkbwwbwwbwwbwwbwwcngcjDbEnbzKbzMbCJbEobEpbEqbErbEsbEtbEubEvaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbzPbzQbzPbCMbCNbCObrJbrJbrJbCNbrJbwTbrKbzTbCPbdPbCQbgGbrNbwXbgGbqlbCRbgGbgGbCSbxcbvtbAbbCTbxcbCUbvwbCVbvDbCXbCYbxlbvwbCZbDabDbbDcbDdbvFbvEbDgbDhbDibDjbyNbDkbDlbDlbDmbDnbDobDpaJibDqbDrbDsaJibDtbCAbDvbDwbDxbDybDzbDAbyWbDBbDCbCjbDDbwmbDEbDFbwmbDGbDHbDIbDJbDKbDLbDMbCpbDNbDObDPbDQbDRbCpbVLbVMbDUbVAbDWbDXbDXbDYbDZbEabEbbEcbEdbEebEfbEabEgbEhbCvbEibEjbEkbwwbwwbwwbwwbwwcngcjDbEnbzKbzMbCJbEobEpbEqbErbEsbEtbEubEvaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbEwbExbEwbEybEzbEAbEAbEAbEAbEAbEBbECbEDbzTbEEbdPbEFbEGbEHbEIbEJbtzbEKbELbEMbfmbtCbENbAbbEObEPbyEbvwbEQbERbESbBMbETbvwbEUbEVbEWbAhbEXbvCbEYbAjbFabFbbFcbyNbFdbFebFfbFgbDnbDobFhaJibxwaRqaRpbVjbFjbFkbFlbFmbFnbFobFpbFqbxCbxFbxFbFrbxFbwkbFsbFtbFubFvbFwbFxbDJbFybDLbFzbFAbFBbDObFCbFDbFEbFFbVlbDXbVybVAbFJbDXbDXbFKbFLbFMbFLbFLbFNbFObFPbFQbFRbFSbCvbFTbFUbFVbFWbFXbFYbFZbGabGbbGcbGdaafaafbCJbGebGfbGgbGhbGibGjbGkbCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnbGlbGmbGnbdPbdPbGobwNbwNbwNbGpbdPbdPbGqbGrbGsbdPbGtbGtbGtbGubGtbGvbGwbGxbGybGzbtCbvtbAbbGAbGBbtCbtGbtGbtGbtGbtGbGCbtGbtGbtGbtGbtGbtGbshbtGbtGbtGbtGbtGbtGbtGbtGaJiaJiaJiaJiaJiaJibxwaRqaRpbVjbGEbFkbDubGGbDTbGIbGJbGKbGLbGMbGNbCjbGObGPbGQbGRbGSbGTbGUbGVbGWbGXbGYbGZbHabHbbHcbHdbHebHfbCpbUSbUfbwwbwwbwwbwwbwwbHibwwbwwbwwbzAbHjbzAbzAbHkbBhbCubCvbFTbHlbHmbHnbHobHpbHqbGabGbbGcbHraaaaaabCJbHsbHtbCJbBybCJbCJbBybCJaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabHuaafaaaaaaaaaaaabGtbHvbHwbHxbHybGvbHzbHAbHBbHCbtCbvtbAbbAcbAabHDbHEbHFbHGbHHbHIbHJbHKbHLbHMbHLbHNbHObqybHQbHRbAabHSbAabHTbAabzZbHUbHVbHWbHXbHYbHZbxwaRqbDsaJlbDtbFHbDtbGHbGHbxCbIbbIcbIdbIebIfbIgbIhbIibIjbIkbwmbIlbImbInbDJchqbIobIpbIqbIrbFDbIsbItbIubCpbIvbIwbIxbIybUdbIAbIBbICbIDbUcbIFbIGbIHbIIbIJbzAbIKbCubCvbILbIMbINbIObIPbIQbIRbGabGbbISbEnbEnbEnbCJbCJbCJbCJaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGtbITbIUbIVbIWbIXbIYbIZbJabJbbtCbvtbJcbJdbJebJebJfbJgbJhbJibJjbJgbJfbJebJebJebJkbJlbqsbJnbJobJebJebJebJpbJgbJhbJqbJrbJsbJtbJubJtbJvbJwbvUaJlbJybJxbJCbGFbLabKZbDzbLdbFibDVbxFbJDbCFbDSbDEbJGbwkbJHbJIbJJbDJbJKbJLbJMbJNbJObFDbJPbItbJObCpbJQbJRbIxbJSbJTbJUbJVbJWbJXbJYbIFbJZbKabKbbKbbzAbKcbKdbKebKfbKgbKhbKibKjbKjbKkbGabGbbKlbEnbKmbKobKnbEnaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbKpbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabGtbITbIUbIVbIWbIXbIYbIZbJabJbbtCbvtbJcbJdbJebJebJfbJgbJhbJibJjbJgbJfbJebJebJebJkbJlbqsbJnbJobJebJebJebJpbJgbJhbJqbJrbJsbJtbJubJtbJvbJwbvUaJlbvLbJxbJCbGFbLabKZbDzbLdbFibDVbxFbJDbCFbDSbDEbJGbwkbJHbJIbJJbDJbJKbJLbJMbJNbJObFDbJPbItbJObCpbJQbJRbIxbJSbJTbJUbJVbJWbJXbJYbIFbJZbKabKbbKbbzAbKcbKdbKebKfbKgbKhbKibKjbKjbKkbGabGbbKlbEnbKmbKobKnbEnaafaafaafaafaafaafaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbKpbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabtnbtnbtnbtnbtnaaaaaaaaaaaaaaaaaaaaaaaabKvbKwbKxbKwbKyaaaaaaaaabGtbGtbKzbKAbIVbKAbKBbKCbHBbKDbKEbtCbKFbvtbKGbKHbAabKIbAabzZbHHbKJbAabKKbKLbKMbKNbKObAcbAabKPbKQbHLbKRbHLbHLbKSbKTbKUbKVbKWbKXbcLbKYaRpaRpaRpaJlbMsbGFbGFbFlbMwbMtbNYbMxbFIbLgbLhbLibLjbHgbDEbIkbIabIzbHhbDJbDJbLobLobLobCpbLpbLqbLrbLsbLtbCpbLubLvbIxbLwbFGbLybLzbLAbLBbLCbIFbLDbLEbKbbKbbzAbRsbLFbCvbwwbLGbLHbLIbLJbLKbLLbGabLMbLNbLObLObLObLPbGdaaaaaaaaaaaaaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafbLQbLRbLSbLRbKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbLWbLXbLYbLVbLZbMabMbbGtbMcbMdbMebMfbMgbMhbMibMjbMjbMkbtCbtCbtCbMlbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbMmbMnbMobtCbtCbtCbtCbtCbMpbtCaJlaJlaJlaJlbMqaJlaKSaMpbMraJlbMvbMubMubGFcIrbNXbDzcIsbxCbMybMzbMAbMBbwkbMCbMDbMEbMFbMGbMHbMIbMJbMKbMLbItbJObFDbFDbMMbJObCpbMNbMObMObMObMObMObMObMObMObMObMObMPbMQbMRbMRbzAbMSbMTbMUbwwbMVbMVbMVbMWbMXbMYbMVbMVbMVbMVbMVbMZbNabNbaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymbNdbLRbLRbNebKtbKtbLTbLTbNfbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbLWbLXbLYbLVbLZbMabMbbGtbMcbMdbMebMfbMgbMhbMibMjbMjbMkbtCbtCbtCbMlbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbtCbMmbMnbMobtCbtCbtCbtCbtCbMpbtCaJlaJlaJlaJlbMqaJlaKSaMpbMraJlbwbbMubMubGFbxhbxCbDzcIsbxCbMybMzbMAbMBbwkbMCbMDbMEbMFbMGbMHbMIbMJbMKbMLbItbJObFDbFDbMMbJObCpbMNbMObMObMObMObMObMObMObMObMObMObMPbMQbMRbMRbzAbMSbMTbMUbwwbMVbMVbMVbMWbMXbMYbMVbMVbMVbMVbMVbMZbNabNbaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymaymbNdbLRbLRbNebKtbKtbLTbLTbNfbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNgbNhbNgbKxbNibNjbNkbNlbNmbNnbKAbNobNpbGvbNqbNrbNsbNtbGvbNubNvbNwbNxaaaaaaaaaaaabNybNzbNAbNBbNDbNCbNEbNFbNGbNHbNIbNFbNJbNKbNLbNMbNNbNObNPbNQbNRbNSbNTbNUbNUbNUbNUbDtbDtbPBbSnbQVbDtbxCbNZbOabObbMzbOcbOdbOebOfbOgbOhbOibOjbOkbOlbOmbOnbMKbOobFDbFDbOpbJObJObOobCpbMNbMObOqbOrbOsbOtbOubOvbOwbOxbMObOybOzbOAbOAbzAbOBbOCbCvbzIbODbOEbOFbOGbOHbOIbOJbOKbOLbOMbMVbEnbONbEnbOObOObOObOObOOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabOPbKtbNdbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbNgbNgbNgbOQbORbKAbOSbOTbOUbKAbKAbOVbOWbGvbGvbGvbGvbGvbGvbOXbOYbOZbPaaaabPbbPcbPcbPdbPebPfbPgbPhbPfbPibNFbPjbPkbPlbNFbPmbPnbPobPpbPqbPrbPsbPtbPtbNSbPubPvbPwbPxbPybDtbUebLbbGFbGFbPAcIkbDzbPCbxCbPDbPEbPFbPGbwkbPHbPIbwkbPJbPKbPLbPMbPNbMKbCpbCpbCpbCpbCpbCpbCpbCpbPObMObPPbQYbPRbOsbOsbOsbOsbPSbMObPTbLEbPUbPUbzAbBhbPVbPWbPXbPYbPYbPYbPYbPZbQabQabQbbQcbQdbMVbQebQfbQgbOObQhcdbbQjbQkaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbQlbQmbQmbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNhbNhbNhbKxbQnbQobQpbQqbQrbKAbKAbQsbQtbQubQvbQvbQvbQvbQvbQvbQwbQxbQyaaabQzbQAbQBbQCbQDbPfbQEbQGbQFbQHbNFbQIbQJbQKbNFbQLbQMbQNbQObQPbQQbQRbPtbQSbPxbQTbNUbPxbPxbQUbNVcIlbGFbGFbGFcIncImbQXbLebRCbQZbRabRbbRcbRGbDEbIkbSpbPJbPLbPLbPMbRfbMKbRgbRhbRibRjbRkbRlbRmbRnbPObMObOsbOsbRobOsbOsbOsbOsbRpbMObRqbLEbRrbRrbzAbRsbRtbRubRvbRwbRxbRybRybRzbRAbRybRybRybRBbRebRDbREbRFbRdbRHbRIbRJbRKaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaabLVbRMbRNbRObLVbRPbMabMbbGtbGtbRQbRQbRQbGtbGtbNxbRRbRRbRSbRSbRSbRSbNwbQyaaabRTbRUbRVbRWbRXbRYbRZbSabSbbSbbScbSdbSebSfbNFbPtbPtbPtbPtbPtbSgbPtbPtbShbSibSjbNUbPxbSkbSlbDtcIobLbbPzbSmcIqcIpbSobJAbJBbSqbSrbSsbStbJzbFsbSvbIEbSxbSybSzbSAbSBbMKbSCbSDbSEbRjbSFbSGbSHbRnbPObMObMObMObRobOsbOsbOsbMObMObMObSIbSJbRrbRrbzAbSKbSLbCvbzIbSMbSNbSObSPbSQbSRbSSbQabSTbSUbMVbSVbQfbSWbOObSXbSYbSZbTaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbTcbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabLVbNgbNgbNgbOQbORbKAbOSbOTbOUbKAbKAbOVbOWbGvbGvbGvbGvbGvbGvbOXbOYbOZbPaaaabPbbPcbPcbPdbPebPfbPgbPhbPfbPibNFbPjbPkbPlbNFbPmbPnbPobPpbPqbPrbPsbPtbPtbNSbPubPvbPwbPxbPybDtbUebLbbPzbGFbCWcIkbDzbPCbxCbPDbPEbPFbPGbwkbPHbPIbwkbPJbPKbPLbPMbPNbMKbCpbCpbCpbCpbCpbCpbCpbCpbPObMObPPbQYbPRbOsbOsbOsbOsbPSbMObPTbLEbPUbPUbzAbBhbPVbPWbPXbPYbPYbPYbPYbPZbQabQabQbbQcbQdbMVbQebQfbQgbOObQhcdbbQjbQkaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbQlbQmbQmbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabKxbNhbNhbNhbKxbQnbQobQpbQqbQrbKAbKAbQsbQtbQubQvbQvbQvbQvbQvbQvbQwbQxbQyaaabQzbQAbQBbQCbQDbPfbQEbQGbQFbQHbNFbQIbQJbQKbNFbQLbQMbQNbQObQPbQQbQRbPtbQSbPxbQTbNUbPxbPxbQUbNVcIlbGFbJybGFcIncImbQXbLebRCbQZbRabRbbRcbRGbDEbIkbSpbPJbPLbPLbPMbRfbMKbRgbRhbMvbRjbRkbRlbNXbRnbPObMObOsbOsbRobOsbOsbOsbOsbRpbMObRqbLEbRrbRrbzAbRsbRtbRubRvbRwbRxbRybRybRzbRAbRybRybRybRBbRebRDbREbRFbRdbRHbRIbRJbRKaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLbwLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaabLVbRMbRNbRObLVbRPbMabMbbGtbGtbRQbRQbRQbGtbGtbNxbRRbRRbRSbRSbRSbRSbNwbQyaaabRTbRUbRVbRWbRXbRYbRZbSabSbbSbbScbSdbSebSfbNFbPtbPtbPtbPtbPtbSgbPtbPtbShbSibSjbNUbPxbSkbSlbDtcIobLbbJybSmcIqcIpbSobJAbJBbSqbSrbSsbStbJzbFsbSvbIEbSxbSybSzbSAbSBbMKbSCbSDbSEbRjbSFbSGbSHbRnbPObMObMObMObRobOsbOsbOsbMObMObMObSIbSJbRrbRrbzAbSKbSLbCvbzIbSMbSNbSObSPbSQbSRbSSbQabSTbSUbMVbSVbQfbSWbOObSXbSYbSZbTaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbTcbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabTdbKwbTebKwbTfbTgaafaaaaaabGtbThbTibTjbGtaaabNxbTkbTlbTmbTnbTnbTnbTobQyaaabQzbTpbTqbTrbTsbPfbTtbTvbTubTwbNFcdabTybTzbTAbTBbTBbTBbTCbTCbTDbTEbULbPxbPxbTFbNUbNUbNUbNUbDtbDtbLfbLkbLcbDtbTJbTKbTLbJFbJEbTJbTObLlbLmbTRbTSbTJbMKbMKbMKbMKbMKbMKbTTbTUbTVbRjbTWbTXbTYbRnbPObMObTZbQWbPQbLxbLnbNWbNcbTZbUgbUhbUibIIbIJbzAbIKbSLbUjbwwbMVbMVbMVbMVbMVbUkbMVbUlbQabUmbMVbUnbUobUnbOObUpbUqbUrbOOaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbUsbUsbUsbUsbUsbUsbUtbLTbUubUsbTcbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUvbNxbNxbNxbNxbRSbUwbNwbUxaaabUybPcbPcbUzbUAbPfbPfbUBbPfbUCbNFbUDbXubWibNFaLqaLqaLqaLqaLqaLqaLqaLqbUHbUIbUJbUKbUKbUMbNUbDtbUNbUObUPbUQbURbwabUTbUUbUVbUWbUXbUTbUYbUZbVabVbbVcbVdbVebVfbVgbVhbVibwbbVkbwbbRjboObVmboObRnbPObMObVnbWhbVpbVqbVrbVsbVtbVubUgbzAbVvbzAbzAbVwbCxbSLbCxbVxaafbnxbVzbrBbVBbVCbVBbVDbVEbVFbMVbVGbVHbVIbOObVJbVKbVKbwhaaLaaLaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibLRbLRbLRbLRbLRbLRbLRbVNbLUbLTbLTbLTbLTbVObLUbKuaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVPbVQbVQbVRbVSbNxbVTbRSbVUbNxaaaaaaaaaaaabNybVVbVWbVXbVZbVYbPfbNFbWabWbbNIbNFaLqbXybXAbXzbXwbXvbXxaLqcaqcaqcaqcaqcaqbTFbWjbWkbWlbWmbWnbWobWpbxgbWrbWsbWtbWubWtbWvbWtbWwbWxbWybWzbWAbWBbWAbWCbWDbWEbWFbWGbWHbWIbWJbWKbWLbWMbxVbMObxWbzmbzlbWSbWTbWUbWSbWSbWVbWWbWXbWYbWZbCxbCxbSLbCxbFTaafbnxbXabXbbXcbXdbXebXfbXgbXhbMVbXibVHbXjbOObOObOObOObOOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbQmbQmbQmbQmbQmbQmbXkbLTbQlbQmbXlbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbUvbNxbNxbNxbNxbRSbUwbNwbUxaaabUybPcbPcbUzbUAbPfbPfbUBbPfbUCbNFbUDbXubWibNFaLqaLqaLqaLqaLqaLqaLqaLqbUHbUIbUJbUKbUKbUMbNUbDtbUNbPAbRibUQbURbwabUTbUUbUVbUWbUXbUTbUYbUZbVabVbbVcbVdbVebVfbVgbVhbVibRmbVkbTMbRjbTNbVmbTNbRnbPObMObVnbWhbVpbVqbVrbVsbVtbVubUgbzAbVvbzAbzAbVwbCxbSLbCxbVxaafbnxbVzbrBbVBbVCbVBbVDbVEbVFbMVbVGbVHbVIbOObVJbVKbVKbwhaaLaaLaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabwibLRbLRbLRbLRbLRbLRbLRbVNbLUbLTbLTbLTbLTbVObLUbKuaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVPbVQbVQbVRbVSbNxbVTbRSbVUbNxaaaaaaaaaaaabNybVVbVWbVXbVZbVYbPfbNFbWabWbbNIbNFaLqbXybXAbXzbXwbXvbXxaLqcaqcaqcaqcaqcaqbTFbWjbWkbWlbUObUPbWobWpbxgbWrbWsbWtbWubWtbWvbWtbWwbWxbWybWzbWAbWBbWAbWCbWDbWEbWFbWGbWHbWIbWJbWKbWLbWMbxVbMObxWbzmbzlbWSbWTbWUbWSbWSbWVbWWbWXbWYbWZbCxbCxbSLbCxbFTaafbnxbXabXbbXcbXdbXebXfbXgbXhbMVbXibVHbXjbOObOObOObOObOOaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbQmbQmbQmbQmbQmbQmbXkbLTbQlbQmbXlbLTbLTbLTbLTbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXmbXnbXobXpbRSbXqbXrbRSbXsbNxaaKaaaaaaaaabNybNybNybNybNybNybNybNFbUDbUEbXtbNFaLqbcVaPgaQqaQqaPgaPfaLqbcmaRCaRCaQKcaqbXBbDtbDtbXCbXDbXEbXFbXGblRbXIbXJbXKbXLbXMbXNbXObXPbXQbXRbXSbXTbXUbznbzpbzobAPbzqbARbAQbATbASbAVbAUbYfbYgbIwbYhbVobCqbWObWNbWPbYmbYnbYobYpbYqbYrbYsbYtbYrbYubYvbILaafbnxbXablSbVBbYxbVBbALbYzbYAbMVbXjbVHbYBbYCbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKtbLTbLTbLTbLTbLTbLTbTbbLTbXlbLTbLTbLTbLTbLTbKtbKtaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYDbVQbVQbVRbYEbYFbYGbNxbYHbNxbYIbYJbYKbYIbYIbYLbYMbYNbYObYPbWfbWgbTxbQibUGbUFbWcaPgbWebWdboobnSbxubqMbDebxUbJmbHPcaqbZhbNSbZibZjbZkbZlbZlbZmbnEbZobZpbTJbTJbZqbZrbTJbTJbZsbnCbnybVibZvbWQbZxbZybZzbZybZAbnDbZCbnDbZAbWRbYfbMNbIwbZEbXWbXVbElbZIbZJbZKbMObMObwwbwwbwwbwwbwwboIbnFbofbwwbMVbMVbMVbMVbMVbUkbMVbMVbMVbMVbMVbZObZPbZQbZRbUnaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabYDbVQbVQbVRbYEbYFbYGbNxbYHbNxbYIbYJbYKbYIbYIbYLbYMbYNbYObYPbWfbWgbTxbQibUGbUFbWcaPgbWebWdboobnSbxubqMbDebxUbJmbHPcaqbZhbNSbZibZjbZkbZlbZlbZmbnEbZobZpbTJbTJbZqbZrbTJbTJbZsbWmbWnbVibZvbWQbZxbZybZzbZybZAcbQbZCcbQbZAbWRbYfbMNbIwbZEbXWbXVbElbZIbZJbZKbMObMObwwbwwbwwbwwbwwboIbnFbofbwwbMVbMVbMVbMVbMVbUkbMVbMVbMVbMVbMVbZObZPbZQbZRbUnaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaabKtbKtbRLbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaambZSaamaamaamaamaamaaaaaaaaaaaaaaaaaaaafaafaaaccBcbmcbmcbmccAcbmcbmcbkcblbYIbZYbZZbYIcbpcabcaccadcaecafcbncbocbCcbBcbAcbzcbyaPgbWecbqcbEbnScbDaLqcaqcaqcaqcaqcaqcarbNSbDtcascatcaucavcawcaxcaycazbTJcaAcaBcaCcaDcaEcaFcaGcaHcaIbZxbWQbEmbZycaKcaLbZAcaMcaNcaObZAbXXbYfbPObIwbXYbYabXZbXYbXYbIwbIwbIwcaRcaScaTcaUcaVbwwbwwcaWbwwbwwcaXcaYcaZcbabXjcbbbXjbXjcbccbdcbecbfcbgcbhbUnbUnbUnaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbKsbKtbUubUsbUsbLTbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafccZccYbYyccXccWbYUccRccSccTbYIcbrcbsbYIbYIcbtcbucbvcbwcbxccUccVbTxbQibUGccFccDaPgaPgccEccPaPgccQaLqcbFcbGcaqcbHcaqbTFcbIcbIcbIcbIcbIcbIcbIbTJcbJbTPbTJcbLcbMcbNcbOcaEcbPcbQcbRcaIbZxbWQbZxbZycbScbTbZAcbUcbVcbWbZAbXXbYfbYbbYdbYcbYiccCbYjbYcchBbYkbYlcktbZDbZwbZFcktccrbZGbZHccqccrccscctcctcctcctccucctcctcctcctcctccvccwccxccycczbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaaaaaabOPbKtbNdbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbYebYebYybYRbYQbYUbYVbYSbYTbYIccGccHccIccJccKccLccMccNccObYWbYXbZbbZabYZbYYbZfbZebZdbZcbZVbZUbZTbZgcdccddaJEcdfcaqbTFcbIcdgcdhcdicdjcdkcdlcdmcdncdocdpcdqcdrcdscdtcaEcducdvcdwcaIbZxbWQbZxbZycdxcdybZAcdzcdAcdBbZAcaPbYfbYfcaQbYccbYcbXcbZbYcchBccacjfcdLcdLbyFbBucdLcdOcdPcdQcdRcdOcdSbBpbyebydcdScdScdScdSbAebyebydcdScdSbXjcdXcdYcdZceacebcecbxTbycbycbycbycbycbycbycbycbycbycbycbycbycbycbycbyccefcegcegcehbKtbKtbLTbLTceibLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafccZccYbYyccXccWbYUccRccSccTbYIcbrcbsbYIbYIcbtcbucbvcbwcbxccUccVbTxbQibUGccFccDaPgaPgccEccPaPgccQaLqcbFcbGcaqcbHcaqbTFcbIcbIcbIcbIcbIcbIcbIbTJcbJbTPbTJcbLcbMcbNcbOcaEcbPcdBcbRcaIbZxbWQbZxbZycbScbTbZAcbUcbVcbWbZAbXXbYfbYbbYdbYcbYiccCbYjbYcchBbYkbYlcktbZDbZwbZFcktccrbZGbZHccqccrccscctcctcctcctccucctcctcctcctcctccvccwccxccycczbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaaaaaabOPbKtbNdbKtbKtbLTbLTbLTbLTbLTbLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbYebYebYybYRbYQbYUbYVbYSbYTbYIccGccHccIccJccKccLccMccNccObYWbYXbZbbZabYZbYYbZfbZebZdbZcbZVbZUbZTbZgcdccddaJEcdfcaqbTFcbIcdgcdhcdicdjcdkcdlcdmcdncdocdpcdqcdrcdscdtcaEcducdvcdwcaIbZxbWQbZxbZycdxcdybZAcdzcdAceSbZAcaPbYfbYfcaQbYccbYcbXcbZbYcchBccacjfcdLcdLbyFbBucdLcdOcdPcdQcdRcdOcdSbBpbyebydcdScdScdScdSbAebyebydcdScdSbXjcdXcdYcdZceacebcecbxTbycbycbycbycbycbycbycbycbycbycbycbycbycbycbycbyccefcegcegcehbKtbKtbLTbLTceibLTbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcejcejcejcejcejcejcamcanbYIbYIbYIbYIbYIbYJcaocapcapcapcbicbjbTxbQibUGcaabWccagcaicahcakcajcalaLqcezaJFboqaJFcaqbTFcbIceDceEceEceEceFceGbTJceHceIbTJcbLcbNceJcbOcaEceKceLceMcaIbZxbWQceNbZyceOcePbZAbZAbZAbZAbZAccbceRbYfcaQbYcccdcccbYcbYcchBccecjfcdLceZcfacfbcfccdOcfdcfecffcdOcfgcfhcfhcfhcfibZXcfkcflcfmcfncfocfpcdScfqcfrcfsbUnbUnbUnbUnaaaaafaaaaaaaaaaahaahaahaafaaaaaaaafaaaaaaaafaafaafcftbZWcfvbNebKsbKtbKtbLTbLUbLTbKtbKtaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcejcfwcfxcfycfzcfAcejcDncDmcDjcDgcDlcDkcCUcCUcCVcCLcCLcCKcCMccVbTxbQibUGcCJcbycCGcCHcCIcCDcCEcCFaLqaJFaJFcaqceBcaqbTFcbIcfVcfWcfWcfWcfXcbIcfYcfZcgacfYcgbcgccgdcgecaEcgfceLcggcaIcghccfcgjbZycgkcglbZycgmbLvbVicgnccgcchbYfccjcciccicckcclcclcclcclccmcdLcgxcgycgycgzcgActsctyctscgDcgEcgFcgGcgGcgHcgIcgIcgJcgKcgLcgLcgMcdScgNcgOcgPcgNaaaaaaaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafcgQbKqbKqbKrbKsbKsbKtbKtbKtbKtbKuaafaafaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaafaafaafcfIcfIcfIcfIcfIcfIcfIcfIcfIcfIcfIcfIcfIaaaaaacgScgTcgTcgTcgUcgVcejcCxcCwcCvcCucCtcCscCrcCpcBUcBTcBScBRcBQcBPcCAcCBcCycCzaLqaLqaLqaLqaLqaLqaLqaLqbEZbGDcaqbDfcaqbTFcbIcbIctpctqctrcbIcbIchrchschtcfYcaEcaEcaEcaEcaEcaIchuchvcaIchwccnchwbZychychzbZychAchBbVichCbVichDbYfccobYfbYfccpcdCcdCcdCcdDbYfcdLchIchJchJchKchLchMchNchOchPchQchRchSchTchUchVchWcgIcgIcgIchXchYcdSchZciacCCcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacfIcDIcEwcDIcfIcDKcEucDKcfIcDMcEvcDMcfIaaaaaaciicgTcgTcgUcgUcijcejcEqcEpcDAcErcEtcEscElcEkcEncEmcEmcEocEmccVbTxcEfbUGcEgcEhcEicEccEjcEccEccEdcEecEeciAciAciAciAbTFciGciHciIciIciJciKciLciMciXciOciPciQciRciSciSciTciUcaIcaIcaIciVcdEckqbZybZybZybZychBchBbViciYbViciZbYfccobYfaaaaaaaaaaaaaaaaaaaaacdLcjgcjhcjhcExcjjcjkcjlcjmcjncjocjpcjqcgIcgIcjrcjscgIcjtcgIchXcjucdScjvcjwcjxcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacfIcDIcDJcDIcfIcDKcDLcDKcfIcDMcEbcDMcfIaaaaaaciicgTcgUcgUcgUcjBcjCcDwcDvcDAcDzcDycDxcDrcDqcDpcDocDucDtcDsccVbTxcDFcCycDEcDGcDHcDCcDCcDCcDDcDBcDCcDCceCcdeceAciAbTFciGckaciIckbckcckdcubckfckgckhctQckjckkcklciSckmciUcknckockpclicdFcdHcdGcdIcdIcdJcdIcdKbVibVibVibVibYfccobYfaaaaaaaaaaaaaaaaaaaaacdLckCckDckDckDckEcdOckFcdOckGckHckIckJckJckKckLckLckMckJckJckNckOcdSckPckQckRcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacfIcFwcFvcFucfIcFtcFrcFscfIcFqcFlcFpcfIaaaaafciiclbcgTcgUcgUcgUcejcFScFIcDAcDAcFHcDAcDAcDAcDAcFVcEmcFTcFUccVcFAcFBcFCcFDcFxcFycFzcFzcFzcFGcFdcFdcFEciAcFFcgqclwclxciGclyciIclzclAclBclCclDclEclFclGclHclIclJciSclKciUclLclMclNclOclPclQclNclRclSclTbYfceQcdIcdIcdIcdIcdIceSbYfaaaaaaaaaaaaaaaaaaaaacdLcmacmbcmccmdcdOcmecmfcmgcdScmhcmicmicmicmjcmkcmlcmmcmicmicmicmncdScmocmpcmqcmraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafcfIcEycsWcEzcfIcsVcsWcEAcfIcsVcsWcEAcfIaaaaafcmzcgTcgTcgUcgUcmAcejcEPcEOcENcEMcEGcEEcEScEScEUcETcEScERcEQccVcEZcFacEXcEYcEhcEVcEVcEWcFdcFecFccFbcFbciAcibceVcfUcqgciGcnbciIcnccndcFjciGcnfciNcIjcfYcFfcnicnjciScnkciUclLclMclNcnlcnmcnlclNaaaaaaaaabYfbYfbYfcnnclSclSclTbYfbYfaaaaaaaaaaaacdOcdOcdOcdOcdOcdOcdOcdOcdOcnocnpcnqcdScdScnrcnscntcdScdScdScdScnucnscntcdScdScnvcnwcnvaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacfIcDIcEwcDIcfIcDKcEucDKcfIcDMcEvcDMcfIaaaaaaciicgTcgTcgUcgUcijcejcEqcEpcDAcErcEtcEscElcEkcEncEmcEmcEocEmccVbTxcEfbUGcEgcEhcEicEccEjcEccfUcEdcEecEeciAciAciAciAbTFciGciHciIciIciJciKciLciMciXciOciPciQciRciSciSciTciUcaIcaIcaIciVcdEckqbZybZybZybZychBchBbViciYbViciZbYfccobYfaaaaaaaaaaaaaaaaaaaaacdLcjgcjhcjhcExcjjcjkcjlcjmcjncjocjpcjqcgIcgIcjrcjscgIcjtcgIchXcjucdScjvcjwcjxcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacfIcDIcDJcDIcfIcDKcDLcDKcfIcDMcEbcDMcfIaaaaaaciicgTcgUcgUcgUcjBcjCcDwcDvcDAcDzcDycDxcDrcDqcDpcDocDucDtcDsccVbTxcDFcCycDEcDGcDHcDCcDCcDCcDDcDBcFccIrceCcdeceAciAbTFciGckaciIckbckcckdcubckfckgckhctQckjckkcklciSckmciUcknckockpclicdFcdHcdGcdIcdIcdJcdIcdKbVibVibVibVibYfccobYfaaaaaaaaaaaaaaaaaaaaacdLckCckDckDckDckEcdOckFcdOckGckHckIckJckJckKckLckLckMckJckJckNckOcdSckPckQckRcgNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaaaaaacfIcFwcFvcFucfIcFtcFrcFscfIcFqcFlcFpcfIaaaaafciiclbcgTcgUcgUcgUcejcFScFIcDAcDAcFHcDAcDAcDAcDAcFVcEmcFTcFUccVcFAcFBcFCcFDcFxcFycFzcFzcFzcFGcFdcFdcFEciAcFFcgqclwclxciGclyciIclzclAclBclCclDclEclFclGclHclIclJciSclKciUclLclMclNclOclPclQclNclRclSclTbYfceQcdIcdIcdIcdIcdIcItbYfaaaaaaaaaaaaaaaaaaaaacdLcmacmbcmccmdcdOcmecmfcmgcdScmhcmicmicmicmjcmkcmlcmmcmicmicmicmncdScmocmpcmqcmraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafaafcfIcEycsWcEzcfIcsVcsWcEAcfIcsVcsWcEAcfIaaaaafcmzcgTcgTcgUcgUcmAcejcEPcEOcENcEMcEGcEEcEScEScEUcETcEScERcEQccVcEZcFacEXcEYcEhcEVcEVcEWcFdcFecIucFbcFbciAcibceVcIvcqgciGcnbciIcnccndcFjciGcnfciNcIjcfYcFfcnicnjciScnkciUclLclMclNcnlcnmcnlclNaaaaaaaaabYfbYfbYfcnnclSclSclTbYfbYfaaaaaaaaaaaacdOcdOcdOcdOcdOcdOcdOcdOcdOcnocnpcnqcdScdScnrcnscntcdScdScdScdScnucnscntcdScdScnvcnwcnvaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabZSaafaafaafaaaaafcnxaafcnxaafcKBaafcKAaafcKBaafcKAaafaafaaacejcnAcnBcgUcgUcnCcnDcGPcGOcqPcGTcGUcxpcxpcGVcxpcxocGXcGWcxocGYcpbcGJcGKcGLcmRcmRcmRcmRcyKcGMcGNcGNcGNcgscgscgscgscnSciGcnTcnUcnccnVcnWciGcnfciNcnXciUcnYcnZcnjcoacobciUclLclMclNcoccodcoeclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaacdOcofcogcohcwlcojcokcolcomconcoocopcoqcwkaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaafcoscotcosaafaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamaaaaaaaafcGvcGxcGwcGycGwcGxcGzcGycGAcGBcGzcGCcGDcGEcGIcqPcqPcqPcqPcqPcqPcqPcqPcFXcFWcGbcGacFZcFYcGecGdcGccxocGicGhcGfcxocmQcGncGmcmRcGqcGrcGocGpcmMcGtcmJcGscGscGucwscwscmJbTFciGciGcpccpdciGciGciGcpeciNcpfciUciUciUcpgcphciUciUclLcpiclNcvmcvncvmclNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaafcdOcplcpmcplcvlcpocppcpqcomcomcprcomcdOcdOaaaaaaaaaaafaafaaaaacaaaaaaaaaaaaaafaaacvtaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaIaaaaaaaaaaafcoxcvjcvicvhcuBcvjcvBcvzcvAcvxcvycvvcvwcvucnzcvrcvscvpcvqcvkcvocwmcvLcwpcwocvKcuycuAcuwcvHcvGcvJcvIcvDcvCcvFcvEcmQcuncwucmRcmMcmMcmMcmMcmMcwtcmJcwqcwqcwqcwscwscmJbTFcrYciGcqhcqicqjcqkciGcqlciNcqmciUcqncqocqpcqqciUcqrclLcpiclNcqscqtcquclNaaaaaaaaaaaaaaaaaacqvcqwcqxcqycqvaafaaaaaaaaaaaacdOcplcplcplcoicqAcqBcqCcqDcqEcqFcqGcqHcdOaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafaaacmZaaaaafaafaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From cd5a2fc52efbd9308fc632f15b2ce07f6c403471 Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 10 Feb 2015 10:16:58 +0100 Subject: [PATCH 16/32] Bonus: Makes the tinted windows respect power failures. --- code/game/objects/structures/window.dm | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 6b7e5bd457d..c7ae1382509 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -484,10 +484,12 @@ animate(src, color="#222222", time=5) SetOpacity(1) + + /obj/machinery/button/windowtint name = "window tint control" icon = 'icons/obj/power.dmi' - icon_state = "light1" + icon_state = "light0" desc = "A remote control switch for polarized windows." var/range = 7 @@ -495,13 +497,24 @@ if(..()) return 1 + toggle_tint() + +/obj/machinery/button/windowtint/proc/toggle_tint() use_power(5) active = !active - icon_state = "light[active]" + update_icon() for(var/obj/structure/window/reinforced/polarized/W in range(src,range)) if (W.id == src.id || !W.id) - spawn( 0 ) + spawn(0) W.toggle() - return + return + +/obj/machinery/button/windowtint/power_change() + ..() + if(active && !powered(power_channel)) + toggle_tint() + +/obj/machinery/button/windowtint/update_icon() + icon_state = "light[active]" From 93a479099ab0474881b4e9f092dd6288bf44f48e Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 10 Feb 2015 10:33:33 +0100 Subject: [PATCH 17/32] Air alarm deconstruction fix. Air alarms can again be deconstructed, at the price of lost convenience. --- code/datums/wires/alarm.dm | 2 +- code/game/machinery/alarm.dm | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/code/datums/wires/alarm.dm b/code/datums/wires/alarm.dm index e8d68d7ffe2..6ebc9372655 100644 --- a/code/datums/wires/alarm.dm +++ b/code/datums/wires/alarm.dm @@ -11,7 +11,7 @@ var/const/AALARM_WIRE_AALARM = 16 /datum/wires/alarm/CanUse(var/mob/living/L) var/obj/machinery/alarm/A = holder - if(A.wiresexposed) + if(A.wiresexposed && A.buildstage == 2) return 1 return 0 diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index 13dd8c75e69..b6622e75a4d 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -915,8 +915,13 @@ table tr:first-child th:first-child { border: none;} update_icon() return - if (wiresexposed && ((istype(W, /obj/item/device/multitool) || istype(W, /obj/item/weapon/wirecutters)))) - return attack_hand(user) + if (wiresexposed && istype(W, /obj/item/weapon/wirecutters)) + user.visible_message("[user] has cut the wires inside \the [src]!", "You have cut the wires inside \the [src].") + playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) + new/obj/item/stack/cable_coil(get_turf(src), 5) + buildstage = 1 + update_icon() + return if (istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))// trying to unlock the interface with an ID card if(stat & (NOPOWER|BROKEN)) @@ -1303,7 +1308,7 @@ FIRE ALARM /obj/machinery/firealarm/proc/delayed_reset() var/area/A = get_area(src) if (!A) return - + src = null spawn(600) A.firereset() From 3c6b2b190413bfe9016e5dbd2f54c95fa594354d Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Tue, 10 Feb 2015 10:43:16 +0100 Subject: [PATCH 18/32] Adds a broken icon for the atmospheric alarm computer. Fixes #8066. --- icons/obj/computer.dmi | Bin 73537 -> 73009 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index d14558c0c42027bc9e2ec06710a2e17ad4da0b5d..2bb7d3998301f6d47452a9e4fd65a85bb9eeb09c 100644 GIT binary patch literal 73009 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⋘Lh?8iKn2+gM6hKB(yf_a@y^Q>Z!)MBCZU8q>3 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 A!~g&Q literal 73537 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 From 6d3e6c22460ef5805a9f8806703d28b602acd664 Mon Sep 17 00:00:00 2001 From: D Anzorge Date: Tue, 3 Feb 2015 09:06:11 -0500 Subject: [PATCH 19/32] Change ewallets to work like ID cards Instead of having to insert ewallet before making purchase, ewallets can now be swiped in place of ID card --- code/game/machinery/vending.dm | 47 ++++++++++------------------------ 1 file changed, 14 insertions(+), 33 deletions(-) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 7d7ee3113df..205caf275f3 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -59,8 +59,6 @@ var/datum/wires/vending/wires = null var/check_accounts = 0 // 1 = requires PIN and checks accounts. 0 = You slide an ID, it vends, SPACE COMMUNISM! - var/obj/item/weapon/spacecash/ewallet/ewallet - /obj/machinery/vending/New() ..() @@ -174,12 +172,17 @@ else if(istype(W, /obj/item/weapon/card) && currently_vending) var/obj/item/weapon/card/I = W scan_card(I) - else if (istype(W, /obj/item/weapon/spacecash/ewallet)) - user.drop_item() - W.loc = src - ewallet = W - user << "\blue You insert the [W] into the [src]" - + else if (istype(W, /obj/item/weapon/spacecash/ewallet) && currently_vending) + var/obj/item/weapon/spacecash/ewallet/I = W + if(I.worth >= currently_vending.price) + I.worth -= currently_vending.price + visible_message("[usr] swipes a card through [src].") + + src.vend(src.currently_vending, usr) + currently_vending = null + else + usr << "\icon[src]Your chargecard does not have enough money!" + else if(istype(W, /obj/item/weapon/wrench)) if(do_after(user, 20)) @@ -307,7 +310,7 @@ if(src.currently_vending) var/dat = "

[vendorname]


" //display the name, and added a horizontal rule - dat += "You have selected [currently_vending.product_name].
Please swipe your ID to pay for the article.

" + dat += "Product selected: [currently_vending.product_name]
Charge: [currently_vending.price]

Please swipe a card to pay for the item.

" dat += "Cancel" user << browse(dat, "window=vending") onclose(user, "") @@ -319,9 +322,6 @@ if (premium.len > 0) dat += "Coin slot: [coin ? coin : "No coin inserted"] (Remove)
" - if (ewallet) - dat += "Charge card's credits: [ewallet ? ewallet.worth : "No charge card inserted"] (Remove)

" - if (src.product_records.len == 0) dat += "No product loaded!" else @@ -378,16 +378,6 @@ usr << "\blue You remove the [coin] from the [src]" coin = null - if(href_list["remove_ewallet"] && !istype(usr,/mob/living/silicon)) - if (!ewallet) - usr << "There is no charge card in this machine." - return - ewallet.loc = src.loc - if(!usr.get_active_hand()) - usr.put_in_hands(ewallet) - usr << "\blue You remove the [ewallet] from the [src]" - ewallet = null - if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) usr.set_machine(src) if ((href_list["vend"]) && (src.vend_ready) && (!currently_vending)) @@ -417,17 +407,8 @@ if(R.price == null) src.vend(R, usr) else - if (ewallet) - if (R.price <= ewallet.worth) - ewallet.worth -= R.price - src.vend(R, usr) - else - usr << "\red The ewallet doesn't have enough money to pay for that." - src.currently_vending = R - src.updateUsrDialog() - else - src.currently_vending = R - src.updateUsrDialog() + src.currently_vending = R + src.updateUsrDialog() return else if (href_list["cancel_buying"]) From 1acce5dc592fb4c61a5ff60d6430d4b1d89f1604 Mon Sep 17 00:00:00 2001 From: D Anzorge Date: Tue, 3 Feb 2015 11:20:46 -0500 Subject: [PATCH 20/32] Add cash purchases to vending machines --- code/game/machinery/vending.dm | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 205caf275f3..7698d2414c0 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -182,7 +182,34 @@ currently_vending = null else usr << "\icon[src]Your chargecard does not have enough money!" - + + // we shouldn't hit spacewallets by now since they were handled above, so this is cash only + else if (istype(W, /obj/item/weapon/spacecash) && currently_vending) + var/obj/item/weapon/spacecash/C = W + if(C.worth >= currently_vending.price) + if(istype(C, /obj/item/weapon/spacecash/bundle)) + visible_message("[usr] inserts some cash into [src].") + C.worth -= currently_vending.price + if(!C.worth) + usr.drop_from_inventory(W) + del(W) + else + W.update_icon() + else + // Non-bundles are whole bills. We eat the whole cash item and spit out change + visible_message("[usr] inserts a bill into [src].") + var/left = C.worth - currently_vending.price + + usr.drop_from_inventory(W) + del(W) + if(left) + spawn_money(left, src.loc, user) + + src.vend(src.currently_vending, usr) + currently_vending = null + else + usr << "\icon[src]That is not enough money to cover the price!" + else if(istype(W, /obj/item/weapon/wrench)) if(do_after(user, 20)) @@ -310,7 +337,7 @@ if(src.currently_vending) var/dat = "
[vendorname]


" //display the name, and added a horizontal rule - dat += "Product selected: [currently_vending.product_name]
Charge: [currently_vending.price]

Please swipe a card to pay for the item.
" + dat += "Product selected: [currently_vending.product_name]
Charge: [currently_vending.price]

Please swipe a card or insert cash to pay for the item.
" dat += "Cancel" user << browse(dat, "window=vending") onclose(user, "") From 119005d515aba84c40735de085960e541d5ab8a1 Mon Sep 17 00:00:00 2001 From: D Anzorge Date: Wed, 4 Feb 2015 19:26:47 -0500 Subject: [PATCH 21/32] Refactor and make vendors record transactions Payment code is now more modular and less redundant. Vending machines now record all transactions, including cash transactions. --- code/game/machinery/vending.dm | 249 ++++++++++++++++++++------------- 1 file changed, 148 insertions(+), 101 deletions(-) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 7698d2414c0..5a8df08c8ae 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -147,6 +147,29 @@ return /obj/machinery/vending/attackby(obj/item/weapon/W as obj, mob/user as mob) + if (currently_vending) + var/paid = 0 + var/handled = 0 + if(istype(W, /obj/item/weapon/card/id)) + var/obj/item/weapon/card/id/C = W + paid = pay_with_card(C) + handled = 1 + else if (istype(W, /obj/item/weapon/spacecash/ewallet)) + var/obj/item/weapon/spacecash/ewallet/C = W + paid = pay_with_ewallet(C) + handled = 1 + else if (istype(W, /obj/item/weapon/spacecash)) + var/obj/item/weapon/spacecash/C = W + paid = pay_with_cash(C, user) + handled = 1 + + if(paid) + src.vend(currently_vending, usr) + currently_vending = null + return + else if(handled) + return // don't smack that machine with your 2 thalers + if (istype(W, /obj/item/weapon/card/emag)) src.emagged = 1 user << "You short out the product lock on [src]" @@ -169,49 +192,7 @@ coin = W user << "\blue You insert the [W] into the [src]" return - else if(istype(W, /obj/item/weapon/card) && currently_vending) - var/obj/item/weapon/card/I = W - scan_card(I) - else if (istype(W, /obj/item/weapon/spacecash/ewallet) && currently_vending) - var/obj/item/weapon/spacecash/ewallet/I = W - if(I.worth >= currently_vending.price) - I.worth -= currently_vending.price - visible_message("[usr] swipes a card through [src].") - - src.vend(src.currently_vending, usr) - currently_vending = null - else - usr << "\icon[src]Your chargecard does not have enough money!" - - // we shouldn't hit spacewallets by now since they were handled above, so this is cash only - else if (istype(W, /obj/item/weapon/spacecash) && currently_vending) - var/obj/item/weapon/spacecash/C = W - if(C.worth >= currently_vending.price) - if(istype(C, /obj/item/weapon/spacecash/bundle)) - visible_message("[usr] inserts some cash into [src].") - C.worth -= currently_vending.price - if(!C.worth) - usr.drop_from_inventory(W) - del(W) - else - W.update_icon() - else - // Non-bundles are whole bills. We eat the whole cash item and spit out change - visible_message("[usr] inserts a bill into [src].") - var/left = C.worth - currently_vending.price - - usr.drop_from_inventory(W) - del(W) - if(left) - spawn_money(left, src.loc, user) - - src.vend(src.currently_vending, usr) - currently_vending = null - else - usr << "\icon[src]That is not enough money to cover the price!" - else if(istype(W, /obj/item/weapon/wrench)) - if(do_after(user, 20)) if(!src) return playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) @@ -234,67 +215,133 @@ else ..() -/obj/machinery/vending/proc/scan_card(var/obj/item/weapon/card/I) - if(!currently_vending) return - if (istype(I, /obj/item/weapon/card/id)) - var/obj/item/weapon/card/id/C = I - visible_message("[usr] swipes a card through [src].") - var/datum/money_account/CH = get_account(C.associated_account_number) - if (CH) // Only proceed if card contains proper account number. - if(!CH.suspended) - if(CH.security_level != 0) //If card requires pin authentication (ie seclevel 1 or 2) - if(vendor_account) - var/attempt_pin = input("Enter pin code", "Vendor transaction") as num - var/datum/money_account/D = attempt_account_access(C.associated_account_number, attempt_pin, 2) - transfer_and_vend(D) - else - usr << "\icon[src]Unable to access account. Check security settings and try again." - else - //Just Vend it. - transfer_and_vend(CH) - else - usr << "\icon[src]Connected account has been suspended." +/** + * Receive payment with cashmoney. + * + * usr is the mob who gets the change. + */ +/obj/machinery/vending/proc/pay_with_cash(var/obj/item/weapon/spacecash/cashmoney, mob/user) + if(currently_vending.price > cashmoney.worth) + usr << "\icon[src] That is not enough money." + return 0 + + if(istype(cashmoney, /obj/item/weapon/spacecash/bundle)) + // Bundles can just have money subtracted, and will work + + visible_message("[usr] inserts some cash into [src].") + var/obj/item/weapon/spacecash/bundle/cashmoney_bundle = cashmoney + cashmoney_bundle.worth -= currently_vending.price + + if(cashmoney_bundle.worth <= 0) + usr.drop_from_inventory(cashmoney_bundle) + del(cashmoney_bundle) else - usr << "\icon[src]Error: Unable to access your account. Please contact technical support if problem persists." - -/obj/machinery/vending/proc/transfer_and_vend(var/datum/money_account/acc) - if(acc) - var/transaction_amount = currently_vending.price - if(transaction_amount <= acc.money) - - //transfer the money - acc.money -= transaction_amount - vendor_account.money += transaction_amount - - //create entries in the two account transaction logs - var/datum/transaction/T = new() - T.target_name = "[vendor_account.owner_name] (via [src.name])" - T.purpose = "Purchase of [currently_vending.product_name]" - if(transaction_amount > 0) - T.amount = "([transaction_amount])" - else - T.amount = "[transaction_amount]" - T.source_terminal = src.name - T.date = current_date_string - T.time = worldtime2text() - acc.transaction_log.Add(T) - // - T = new() - T.target_name = acc.owner_name - T.purpose = "Purchase of [currently_vending.product_name]" - T.amount = "[transaction_amount]" - T.source_terminal = src.name - T.date = current_date_string - T.time = worldtime2text() - vendor_account.transaction_log.Add(T) - - // Vend the item - src.vend(src.currently_vending, usr) - currently_vending = null - else - usr << "\icon[src]You don't have that much money!" + cashmoney_bundle.update_icon() else - usr << "\icon[src]Error: Unable to access your account. Please contact technical support if problem persists." + // Bills (banknotes) cannot really have worth different than face value, + // so we have to eat the bill and spit out change in a bundle + // This is really dirty, but there's no superclass for all bills, so we + // just assume that all spacecash that's not something else is a bill + + visible_message("[usr] inserts a bill into [src].") + var/left = cashmoney.worth - currently_vending.price + usr.drop_from_inventory(cashmoney) + del(cashmoney) + + if(left) + spawn_money(left, src.loc, user) + + // Vending machines have no idea who paid with cash + credit_purchase("(cash)") + return 1 + +/** + * Scan a chargecard and deduct payment from it. + * + * Takes payment for whatever is the currently_vending item. Returns 1 if + * successful, 0 if failed. + */ +/obj/machinery/vending/proc/pay_with_ewallet(var/obj/item/weapon/spacecash/ewallet/wallet) + visible_message("[usr] swipes a card through [src].") + if(currently_vending.price > wallet.worth) + usr << "\icon[src] Insufficient funds on chargecard." + return 0 + else + wallet.worth -= currently_vending.price + credit_purchase("[wallet.owner_name] (chargecard)") + return 1 + +/** + * Scan a card and attempt to transfer payment from associated account. + * + * Takes payment for whatever is the currently_vending item. Returns 1 if + * successful, 0 if failed + */ +/obj/machinery/vending/proc/pay_with_card(var/obj/item/weapon/card/id/I) + visible_message("[usr] swipes a card through [src].") + var/datum/money_account/customer_account = get_account(I.associated_account_number) + if (!customer_account) + usr << "\icon[src] Error: Unable to access account. Please contact technical support if problem persists." + return 0 + + if(customer_account.suspended) + usr << "\icon[src] Unable to access account: account suspended." + return 0 + + // Have the customer punch in the PIN before checking if there's enough money. Prevents people from figuring out acct is + // empty at high security levels + if(customer_account.security_level != 0) //If card requires pin authentication (ie seclevel 1 or 2) + var/attempt_pin = input("Enter pin code", "Vendor transaction") as num + customer_account = attempt_account_access(I.associated_account_number, attempt_pin, 2) + + if(!customer_account) + usr << "\icon[src] Unable to access account: incorrect credentials." + return 0 + + if(currently_vending.price > customer_account.money) + usr << "\icon[src] Insufficient funds in account." + return 0 + else + // Okay to move the money at this point + + // debit money from the purchaser's account + customer_account.money -= currently_vending.price + + // create entry in the purchaser's account log + var/datum/transaction/T = new() + T.target_name = "[vendor_account.owner_name] (via [src.name])" + T.purpose = "Purchase of [currently_vending.product_name]" + if(currently_vending.price > 0) + T.amount = "([currently_vending.price])" + else + T.amount = "[currently_vending.price]" + T.source_terminal = src.name + T.date = current_date_string + T.time = worldtime2text() + customer_account.transaction_log.Add(T) + + // Give the vendor the money. We use the account owner name, which means + // that purchases made with stolen/borrowed card will look like the card + // owner made them + credit_purchase(customer_account.owner_name) + return 1 + +/** + * Add money for current purchase to the vendor account. + * + * Called after the money has already been taken from the customer. + */ +/obj/machinery/vending/proc/credit_purchase(var/target as text) + vendor_account.money += currently_vending.price + + var/datum/transaction/T = new() + T.target_name = target + T.purpose = "Purchase of [currently_vending.product_name]" + T.amount = "[currently_vending.price]" + T.source_terminal = src.name + T.date = current_date_string + T.time = worldtime2text() + vendor_account.transaction_log.Add(T) /obj/machinery/vending/attack_ai(mob/user as mob) return attack_hand(user) From b826e5bb77d57de444a2d0fbe3531dd08d1832a0 Mon Sep 17 00:00:00 2001 From: D Anzorge Date: Sat, 7 Feb 2015 09:55:43 -0500 Subject: [PATCH 22/32] Rewrite and refactor vending.dm Remove some redundant procs and /obj/machinery/vending members. Rework the way product lists and advert lists are stored within /obj/machinery/vending. /obj/machinery/vending now uses a simpler way of storing the product list. The old variables, `products`, `contraband`, etc., are still used for initialization of the new list, but are not used beyond that. This commit removes colors from vending lists in anticipation of introducing NanoUI. --- code/datums/wires/vending.dm | 8 +- code/game/machinery/vending.dm | 278 ++++++++++++++++----------------- 2 files changed, 141 insertions(+), 145 deletions(-) diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm index 91a95b47a74..67ca2162513 100644 --- a/code/datums/wires/vending.dm +++ b/code/datums/wires/vending.dm @@ -1,3 +1,5 @@ +#define CAT_HIDDEN 2 // Also in code/game/machinery/vending.dm + /datum/wires/vending holder_type = /obj/machinery/vending wire_count = 4 @@ -27,7 +29,7 @@ var/const/VENDING_WIRE_IDSCAN = 8 . += ..() . += "
The orange light is [V.seconds_electrified ? "off" : "on"].
" . += "The red light is [V.shoot_inventory ? "off" : "blinking"].
" - . += "The green light is [V.extended_inventory ? "on" : "off"].
" + . += "The green light is [(V.categories & CAT_HIDDEN) ? "on" : "off"].
" . += "The [V.scan_id ? "purple" : "yellow"] light is on.
" /datum/wires/vending/UpdatePulsed(var/index) @@ -36,7 +38,7 @@ var/const/VENDING_WIRE_IDSCAN = 8 if(VENDING_WIRE_THROW) V.shoot_inventory = !V.shoot_inventory if(VENDING_WIRE_CONTRABAND) - V.extended_inventory = !V.extended_inventory + V.categories ^= CAT_HIDDEN if(VENDING_WIRE_ELECTRIFY) V.seconds_electrified = 30 if(VENDING_WIRE_IDSCAN) @@ -48,7 +50,7 @@ var/const/VENDING_WIRE_IDSCAN = 8 if(VENDING_WIRE_THROW) V.shoot_inventory = !mended if(VENDING_WIRE_CONTRABAND) - V.extended_inventory = 0 + V.categories &= ~CAT_HIDDEN if(VENDING_WIRE_ELECTRIFY) if(mended) V.seconds_electrified = 0 diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 5a8df08c8ae..09608deb5b3 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1,17 +1,38 @@ -#define CAT_NORMAL 0 -#define CAT_HIDDEN 1 -#define CAT_COIN 2 +#define CAT_NORMAL 1 +#define CAT_HIDDEN 2 // also used in corresponding wires/vending.dm +#define CAT_COIN 4 +/** + * Datum used to hold information about a product in a vending machine + */ /datum/data/vending_product - var/product_name = "generic" + var/product_name = "generic" // Display name for the product var/product_path = null - var/amount = 0 - var/price = 0 - var/display_color = "blue" - var/category = CAT_NORMAL - + var/amount = 0 // Amount held in the vending machine + var/price = 0 // Price to buy one + var/display_color = null // Display color for vending machine listing + var/category = CAT_NORMAL // CAT_HIDDEN for contraband, CAT_COIN for premium +/datum/data/vending_product/New(var/path, var/name = null, var/amount = 1, var/price = 0, var/color = null, var/category = CAT_NORMAL) + ..() + + src.product_path = path + + if(!name) + var/atom/tmp = new path + src.product_name = initial(tmp.name) + del(tmp) + else + src.product_name = name + + src.amount = amount + src.price = price + src.display_color = color + src.category = category +/** + * A vending machine + */ /obj/machinery/vending name = "Vendomat" desc = "A generic vending machine." @@ -21,66 +42,105 @@ anchored = 1 density = 1 + var/icon_vend //Icon_state when vending + var/icon_deny //Icon_state when denying access + + // Power use_power = 1 idle_power_usage = 10 var/vend_power_usage = 150 //actuators and stuff + // Vending-related var/active = 1 //No sales pitches if off! var/vend_ready = 1 //Are we ready to vend?? Is it time?? var/vend_delay = 10 //How long does it take to vend? - var/datum/data/vending_product/currently_vending = null // A /datum/data/vending_product instance of what we're paying for right now. - - // To be filled out at compile time + var/categories = CAT_NORMAL // Bitmask of cats we're currently showing + var/datum/data/vending_product/currently_vending = null // What we're requesting payment for right now + + /* + Variables used to initialize the product list + These are used for initialization only, and so are optional if + product_records is specified + */ var/list/products = list() // For each, use the following pattern: var/list/contraband = list() // list(/type/path = amount,/type/path2 = amount2) var/list/premium = list() // No specified amount = only one in stock var/list/prices = list() // Prices for each item, list(/type/path = price), items not in the list don't have a price. - var/product_slogans = "" //String of slogans separated by semicolons, optional - var/product_ads = "" //String of small ad messages in the vending screen - random chance + // List of vending_product items available. var/list/product_records = list() - var/list/hidden_records = list() - var/list/coin_records = list() + + + // Variables used to initialize advertising + var/product_slogans = "" //String of slogans spoken out loud, separated by semicolons + var/product_ads = "" //String of small ad messages in the vending screen + + var/list/ads_list = list() + + // Stuff relating vocalizations var/list/slogan_list = list() - var/list/small_ads = list() // small ad messages in the vending screen - random chance of popping up whenever you open it + var/shut_up = 1 //Stop spouting those godawful pitches! var/vend_reply //Thank you for shopping! var/last_reply = 0 var/last_slogan = 0 //When did we last pitch? var/slogan_delay = 6000 //How long until we can pitch again? - var/icon_vend //Icon_state when vending! - var/icon_deny //Icon_state when vending! - //var/emagged = 0 //Ignores if somebody doesn't have card access to that machine. + + // Things that can go wrong + emagged = 0 //Ignores if somebody doesn't have card access to that machine. var/seconds_electrified = 0 //Shock customers like an airlock. var/shoot_inventory = 0 //Fire items at customers! We're broken! - var/shut_up = 1 //Stop spouting those godawful pitches! - var/extended_inventory = 0 //can we access the hidden inventory? + var/scan_id = 1 var/obj/item/weapon/coin/coin var/datum/wires/vending/wires = null - var/check_accounts = 0 // 1 = requires PIN and checks accounts. 0 = You slide an ID, it vends, SPACE COMMUNISM! - /obj/machinery/vending/New() ..() wires = new(src) spawn(4) - src.slogan_list = text2list(src.product_slogans, ";") + if(src.product_slogans) + src.slogan_list += text2list(src.product_slogans, ";") - // So not all machines speak at the exact same time. - // The first time this machine says something will be at slogantime + this random value, - // so if slogantime is 10 minutes, it will say it at somewhere between 10 and 20 minutes after the machine is crated. - src.last_slogan = world.time + rand(0, slogan_delay) + // So not all machines speak at the exact same time. + // The first time this machine says something will be at slogantime + this random value, + // so if slogantime is 10 minutes, it will say it at somewhere between 10 and 20 minutes after the machine is crated. + src.last_slogan = world.time + rand(0, slogan_delay) - src.build_inventory(products) - //Add hidden inventory - src.build_inventory(contraband, 1) - src.build_inventory(premium, 0, 1) + if(src.product_ads) + src.ads_list += text2list(src.product_ads, ";") + + src.build_inventory() power_change() return return +/** + * Build src.produdct_records from the products lists + * + * src.products, src.contraband, src.premium, and src.prices allow specifying + * products that the vending machine is to carry without manually populating + * src.product_records. + */ +/obj/machinery/vending/proc/build_inventory() + var/list/all_products = list( + list(src.products, CAT_NORMAL), + list(src.contraband, CAT_HIDDEN), + list(src.premium, CAT_COIN)) + + for(var/current_list in all_products) + var/category = current_list[2] + + for(var/entry in current_list[1]) + var/datum/data/vending_product/product = new/datum/data/vending_product(entry) + + product.price = (entry in src.prices) ? src.prices[entry] : 0 + product.amount = (current_list[1][entry]) ? current_list[1][entry] : 1 + product.category = category + + src.product_records.Add(product) + /obj/machinery/vending/Del() del(wires) // qdel wires = null @@ -116,36 +176,6 @@ return -/obj/machinery/vending/proc/build_inventory(var/list/productlist,hidden=0,req_coin=0) - - for(var/typepath in productlist) - var/amount = productlist[typepath] - var/price = prices[typepath] - if(isnull(amount)) amount = 1 - - var/datum/data/vending_product/R = new /datum/data/vending_product() - - R.product_path = typepath - R.amount = amount - R.price = price - R.display_color = pick("red","blue","green") - - if(hidden) - R.category=CAT_HIDDEN - hidden_records += R - else if(req_coin) - R.category=CAT_COIN - coin_records += R - else - R.category=CAT_NORMAL - product_records += R - - var/atom/temp = typepath - R.product_name = initial(temp.name) - -// world << "Added: [R.product_name]] - [R.amount] - [R.product_path]" - return - /obj/machinery/vending/attackby(obj/item/weapon/W as obj, mob/user as mob) if (currently_vending) var/paid = 0 @@ -207,7 +237,7 @@ else if(src.panel_open) - for(var/datum/data/vending_product/R in product_records) + for(var/datum/data/vending_product/R in product_records) if(istype(W, R.product_path)) stock(R, user) del(W) @@ -346,31 +376,6 @@ /obj/machinery/vending/attack_ai(mob/user as mob) return attack_hand(user) -/obj/machinery/vending/proc/GetProductIndex(var/datum/data/vending_product/P) - var/list/plist - switch(P.category) - if(CAT_NORMAL) - plist=product_records - if(CAT_HIDDEN) - plist=hidden_records - if(CAT_COIN) - plist=coin_records - else - warning("UNKNOWN CATEGORY [P.category] IN TYPE [P.product_path] INSIDE [type]!") - return plist.Find(P) - -/obj/machinery/vending/proc/GetProductByID(var/pid, var/category) - switch(category) - if(CAT_NORMAL) - return product_records[pid] - if(CAT_HIDDEN) - return hidden_records[pid] - if(CAT_COIN) - return coin_records[pid] - else - warning("UNKNOWN PRODUCT: PID: [pid], CAT: [category] INSIDE [type]!") - return null - /obj/machinery/vending/attack_hand(mob/user as mob) if(stat & (BROKEN|NOPOWER)) return @@ -393,28 +398,24 @@ var/dat = "
[vendorname]


" //display the name, and added a horizontal rule dat += "Select an item:

" //the rest is just general spacing and bolding - if (premium.len > 0) - dat += "Coin slot: [coin ? coin : "No coin inserted"] (Remove)
" - if (src.product_records.len == 0) dat += "No product loaded!" else - var/list/display_records = list() - display_records += src.product_records - if(src.extended_inventory) - display_records += src.hidden_records - if(src.coin) - display_records += src.coin_records - - for (var/datum/data/vending_product/R in display_records) - dat += "[R.product_name]:" - dat += " [R.amount] " - if(R.price) - dat += " (Price: [R.price])" - if (R.amount > 0) - var/idx=GetProductIndex(R) - dat += " (Vend)" + for(var/idx = 1 to src.product_records.len) + var/datum/data/vending_product/product = src.product_records[idx] + if(!(product.category & src.categories)) + continue + + if(product.display_color) + dat += "[product.product_name]:" + dat += " [product.amount] " + else + dat += "[product.product_name]: [product.amount]" + if(product.price) + dat += " (Price: [product.price])" + if (product.amount > 0) + dat += " (Vend)" else dat += " SOLD OUT" dat += "
" @@ -424,7 +425,7 @@ if(panel_open) dat += wires() - if(product_slogans != "") + if(slogan_list.len > 0) dat += "The speaker switch is [shut_up ? "off" : "on"]. Toggle" user << browse(dat, "window=vending") @@ -471,14 +472,10 @@ flick(icon_deny,src) return - var/idx=text2num(href_list["vend"]) - var/cat=text2num(href_list["cat"]) + var/key = text2num(href_list["vend"]) + var/datum/data/vending_product/R = product_records[key] - var/datum/data/vending_product/R = GetProductByID(idx,cat) - if (!R || !istype(R) || !R.product_path || R.amount <= 0) - return - - if(R.price == null) + if(R.price <= 0) src.vend(R, usr) else src.currently_vending = R @@ -507,7 +504,7 @@ return src.vend_ready = 0 //One thing at a time!! - if (R in coin_records) + if (R.category & CAT_COIN) if(!coin) user << "\blue You need to insert a coin to get this item." return @@ -848,35 +845,32 @@ contraband = list(/obj/item/seeds/amanitamycelium = 2,/obj/item/seeds/glowshroom = 2,/obj/item/seeds/libertymycelium = 2,/obj/item/seeds/mtearseed = 2, /obj/item/seeds/nettleseed = 2,/obj/item/seeds/reishimycelium = 2,/obj/item/seeds/reishimycelium = 2,/obj/item/seeds/shandseed = 2,) premium = list(/obj/item/toy/waterflower = 1) + +/** + * Populate hydroseeds product_records + * + * This needs to be customized to fetch the actual names of the seeds, otherwise + * the machine would simply list "packet of seeds" times 20 + */ +/obj/machinery/vending/hydroseeds/build_inventory() + var/list/all_products = list( + list(src.products, CAT_NORMAL), + list(src.contraband, CAT_HIDDEN), + list(src.premium, CAT_COIN)) -/obj/machinery/vending/hydroseeds/build_inventory(var/list/productlist,hidden=0,req_coin=0) + for(var/current_list in all_products) + var/category = current_list[2] - for(var/typepath in productlist) - var/amount = productlist[typepath] - var/price = prices[typepath] - if(isnull(amount)) amount = 1 + for(var/entry in current_list[1]) + var/obj/item/seeds/S = new entry(src) + var/name = S.name + var/datum/data/vending_product/product = new/datum/data/vending_product(entry, name) - var/datum/data/vending_product/R = new /datum/data/vending_product() - - R.product_path = typepath - R.amount = amount - R.price = price - R.display_color = pick("red","blue","green") - - if(hidden) - R.category=CAT_HIDDEN - hidden_records += R - else if(req_coin) - R.category=CAT_COIN - coin_records += R - else - R.category=CAT_NORMAL - product_records += R - - var/obj/item/seeds/S = new typepath(src) - R.product_name = S.name - del(S) - return + product.price = (entry in src.prices) ? src.prices[entry] : 0 + product.amount = (current_list[1][entry]) ? current_list[1][entry] : 1 + product.category = category + + src.product_records.Add(product) /obj/machinery/vending/magivend name = "MagiVend" From 9dffc8f922233da6d74acc0c0f0c95446eb4b82e Mon Sep 17 00:00:00 2001 From: D Anzorge Date: Sat, 7 Feb 2015 12:06:58 -0500 Subject: [PATCH 23/32] Add NanoUI to vending machines Error messages are now displayed in the NanoUI interface, instead of going to the text log. Wire UI now consistent with other wire-enabled wire devices that use NanoUI. --- code/datums/wires/vending.dm | 5 - code/game/machinery/vending.dm | 156 +++++++++++++++------------- nano/templates/vending_machine.tmpl | 56 ++++++++++ 3 files changed, 141 insertions(+), 76 deletions(-) create mode 100644 nano/templates/vending_machine.tmpl diff --git a/code/datums/wires/vending.dm b/code/datums/wires/vending.dm index 67ca2162513..7f9c4ed10a7 100644 --- a/code/datums/wires/vending.dm +++ b/code/datums/wires/vending.dm @@ -19,11 +19,6 @@ var/const/VENDING_WIRE_IDSCAN = 8 return 1 return 0 -/datum/wires/vending/Interact(var/mob/living/user) - if(CanUse(user)) - var/obj/machinery/vending/V = holder - V.attack_hand(user) - /datum/wires/vending/GetInteractWindow() var/obj/machinery/vending/V = holder . += ..() diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 09608deb5b3..282aa9b28cc 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -56,6 +56,8 @@ var/vend_delay = 10 //How long does it take to vend? var/categories = CAT_NORMAL // Bitmask of cats we're currently showing var/datum/data/vending_product/currently_vending = null // What we're requesting payment for right now + var/status_message = "" // Status screen messages like "insufficient funds", displayed in NanoUI + var/status_error = 0 // Set to 1 if status_message is an error /* Variables used to initialize the product list @@ -195,9 +197,9 @@ if(paid) src.vend(currently_vending, usr) - currently_vending = null return else if(handled) + nanomanager.update_uis(src) return // don't smack that machine with your 2 thalers if (istype(W, /obj/item/weapon/card/emag)) @@ -210,7 +212,8 @@ src.overlays.Cut() if(src.panel_open) src.overlays += image(src.icon, "[initial(icon_state)]-panel") - src.updateUsrDialog() + + nanomanager.update_uis(src) // Speaker switch is on the main UI, not wires UI return else if(istype(W, /obj/item/device/multitool)||istype(W, /obj/item/weapon/wirecutters)) if(src.panel_open) @@ -220,7 +223,9 @@ user.drop_item() W.loc = src coin = W + categories |= CAT_COIN user << "\blue You insert the [W] into the [src]" + nanomanager.update_uis(src) return else if(istype(W, /obj/item/weapon/wrench)) if(do_after(user, 20)) @@ -237,7 +242,7 @@ else if(src.panel_open) - for(var/datum/data/vending_product/R in product_records) + for(var/datum/data/vending_product/R in product_records) if(istype(W, R.product_path)) stock(R, user) del(W) @@ -252,7 +257,10 @@ */ /obj/machinery/vending/proc/pay_with_cash(var/obj/item/weapon/spacecash/cashmoney, mob/user) if(currently_vending.price > cashmoney.worth) - usr << "\icon[src] That is not enough money." + + // This is not a status display message, since it's something the character + // themselves is meant to see BEFORE putting the money in + usr << "\icon[cashmoney] That is not enough money." return 0 if(istype(cashmoney, /obj/item/weapon/spacecash/bundle)) @@ -294,7 +302,8 @@ /obj/machinery/vending/proc/pay_with_ewallet(var/obj/item/weapon/spacecash/ewallet/wallet) visible_message("[usr] swipes a card through [src].") if(currently_vending.price > wallet.worth) - usr << "\icon[src] Insufficient funds on chargecard." + src.status_message = "Insufficient funds on chargecard." + src.status_error = 1 return 0 else wallet.worth -= currently_vending.price @@ -311,11 +320,13 @@ visible_message("[usr] swipes a card through [src].") var/datum/money_account/customer_account = get_account(I.associated_account_number) if (!customer_account) - usr << "\icon[src] Error: Unable to access account. Please contact technical support if problem persists." + src.status_message = "Error: Unable to access account. Please contact technical support if problem persists." + src.status_error = 1 return 0 if(customer_account.suspended) - usr << "\icon[src] Unable to access account: account suspended." + src.status_message = "Unable to access account: account suspended." + src.status_error = 1 return 0 // Have the customer punch in the PIN before checking if there's enough money. Prevents people from figuring out acct is @@ -325,11 +336,13 @@ customer_account = attempt_account_access(I.associated_account_number, attempt_pin, 2) if(!customer_account) - usr << "\icon[src] Unable to access account: incorrect credentials." + src.status_message = "Unable to access account: incorrect credentials." + src.status_error = 1 return 0 if(currently_vending.price > customer_account.money) - usr << "\icon[src] Insufficient funds in account." + src.status_message = "Insufficient funds in account." + src.status_error = 1 return 0 else // Okay to move the money at this point @@ -379,62 +392,63 @@ /obj/machinery/vending/attack_hand(mob/user as mob) if(stat & (BROKEN|NOPOWER)) return - user.set_machine(src) if(src.seconds_electrified != 0) if(src.shock(user, 100)) return - var/vendorname = (src.name) //import the machine's name + wires.Interact(user) + ui_interact(user) - if(src.currently_vending) - var/dat = "
[vendorname]


" //display the name, and added a horizontal rule - dat += "Product selected: [currently_vending.product_name]
Charge: [currently_vending.price]

Please swipe a card or insert cash to pay for the item.
" - dat += "Cancel" - user << browse(dat, "window=vending") - onclose(user, "") - return - - var/dat = "
[vendorname]


" //display the name, and added a horizontal rule - dat += "Select an item:

" //the rest is just general spacing and bolding - - if (src.product_records.len == 0) - dat += "No product loaded!" +/** + * Display the NanoUI window for the vending machine. + * + * See NanoUI documentation for details. + */ +/obj/machinery/vending/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + user.set_machine(src) + + var/list/data = list() + if(currently_vending) + data["mode"] = 1 + data["product"] = currently_vending.product_name + data["price"] = currently_vending.price + data["message_err"] = 0 + data["message"] = src.status_message + data["message_err"] = src.status_error else + data["mode"] = 0 + var/list/listed_products = list() - for(var/idx = 1 to src.product_records.len) - var/datum/data/vending_product/product = src.product_records[idx] - if(!(product.category & src.categories)) + for(var/key = 1 to src.product_records.len) + var/datum/data/vending_product/I = src.product_records[key] + + if(!(I.category & src.categories)) continue + + listed_products.Add(list(list( + "key" = key, + "name" = I.product_name, + "price" = I.price, + "color" = I.display_color, + "amount" = I.amount))) - if(product.display_color) - dat += "[product.product_name]:" - dat += " [product.amount] " - else - dat += "[product.product_name]: [product.amount]" - if(product.price) - dat += " (Price: [product.price])" - if (product.amount > 0) - dat += " (Vend)" - else - dat += " SOLD OUT" - dat += "
" - - dat += "
" - - if(panel_open) - dat += wires() - - if(slogan_list.len > 0) - dat += "The speaker switch is [shut_up ? "off" : "on"]. Toggle" - - user << browse(dat, "window=vending") - onclose(user, "") - return - -// returns the wire panel text -/obj/machinery/vending/proc/wires() - return wires.GetInteractWindow() + data["products"] = listed_products + + if(src.coin) + data["coin"] = src.coin.name + + if(src.panel_open) + data["panel"] = 1 + data["speaker"] = src.shut_up ? 0 : 1 + else + data["panel"] = 0 + + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + if (!ui) + ui = new(user, src, ui_key, "vending_machine.tmpl", src.name, 440, 600) + ui.set_initial_data(data) + ui.open() /obj/machinery/vending/Topic(href, href_list) if(stat & (BROKEN|NOPOWER)) @@ -452,9 +466,9 @@ usr.put_in_hands(coin) usr << "\blue You remove the [coin] from the [src]" coin = null + categories &= ~CAT_COIN if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf)))) - usr.set_machine(src) if ((href_list["vend"]) && (src.vend_ready) && (!currently_vending)) if(istype(usr,/mob/living/silicon)) @@ -479,23 +493,17 @@ src.vend(R, usr) else src.currently_vending = R - src.updateUsrDialog() - return + src.status_message = "Please swipe a card or insert cash to pay for the item." + src.status_error = 0 - else if (href_list["cancel_buying"]) + else if (href_list["cancelpurchase"]) src.currently_vending = null - src.updateUsrDialog() - return else if ((href_list["togglevoice"]) && (src.panel_open)) src.shut_up = !src.shut_up src.add_fingerprint(usr) - src.updateUsrDialog() - else - usr << browse(null, "window=vending") - return - return + nanomanager.update_uis(src) /obj/machinery/vending/proc/vend(datum/data/vending_product/R, mob/user) if((!allowed(usr)) && !emagged && scan_id) //For SECURE VENDING MACHINES YEAH @@ -503,7 +511,10 @@ flick(src.icon_deny,src) return src.vend_ready = 0 //One thing at a time!! - + src.status_message = "Vending..." + src.status_error = 0 + nanomanager.update_uis(src) + if (R.category & CAT_COIN) if(!coin) user << "\blue You need to insert a coin to get this item." @@ -514,8 +525,10 @@ else user << "\blue You weren't able to pull the coin out fast enough, the machine ate it, string and all." del(coin) + categories &= ~CAT_COIN else del(coin) + categories &= ~CAT_COIN R.amount-- @@ -529,17 +542,18 @@ flick(src.icon_vend,src) spawn(src.vend_delay) new R.product_path(get_turf(src)) + src.status_message = "" + src.status_error = 0 src.vend_ready = 1 - return - - src.updateUsrDialog() + currently_vending = null + nanomanager.update_uis(src) /obj/machinery/vending/proc/stock(var/datum/data/vending_product/R, var/mob/user) if(src.panel_open) user << "\blue You stock the [src] with \a [R.product_name]" R.amount++ - src.updateUsrDialog() + nanomanager.update_uis(src) /obj/machinery/vending/process() if(stat & (BROKEN|NOPOWER)) diff --git a/nano/templates/vending_machine.tmpl b/nano/templates/vending_machine.tmpl new file mode 100644 index 00000000000..93d5c1007c9 --- /dev/null +++ b/nano/templates/vending_machine.tmpl @@ -0,0 +1,56 @@ + + +{{if data.mode == 0}} +

Items available

+
+ {{for data.products}} +
+
+ {{if value.price > 0}} + {{:helper.link('Buy (' + value.price + ')', 'cart', { "vend" : value.key }, value.amount > 0 ? null : 'disabled')}} + {{else}} + {{:helper.link('Vend', 'circle-arrow-s', { "vend" : value.key }, value.amount > 0 ? null : 'disabled')}} + {{/if}} +
+
+ {{if value.color}}{{:value.name}} + {{else}}{{:value.name}} + {{/if}} + ({{:value.amount ? value.amount : "NONE LEFT"}}) +
+
+ {{empty}} + No items available! + {{/for}} +
+{{if data.coin}} +

Coin

+
+
Coin deposited:
+
{{:helper.link(data.coin, 'eject', {'remove_coin' : 1})}}
+
+{{/if}} +{{else data.mode == 1}} +

Item selected

+
+
+
Item selected:
{{:data.product}}
+
Charge:
{{:data.price}}
+
+
+ {{if data.message_err}} {{/if}} {{:data.message}} +
+
+ {{:helper.link('Cancel', 'arrowreturn-1-w', {'cancelpurchase' : 1})}} +
+
+{{/if}} +{{if data.panel}} +

Maintenance panel

+
+
Speaker
{{:helper.link(data.speaker ? 'Enabled' : 'Disabled', 'gear', {'togglevoice' : 1})}}
+
+{{/if}} \ No newline at end of file From cee2d2502a68cf5711cfbcc52239bb422f7028fb Mon Sep 17 00:00:00 2001 From: D Anzorge Date: Mon, 9 Feb 2015 08:43:57 -0500 Subject: [PATCH 24/32] Make vending machines stop selling things if vendor account is suspended --- code/game/machinery/vending.dm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 282aa9b28cc..482a36e0d48 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -179,7 +179,7 @@ return /obj/machinery/vending/attackby(obj/item/weapon/W as obj, mob/user as mob) - if (currently_vending) + if (currently_vending && vendor_account && !vendor_account.suspended) var/paid = 0 var/handled = 0 if(istype(W, /obj/item/weapon/card/id)) @@ -493,8 +493,12 @@ src.vend(R, usr) else src.currently_vending = R - src.status_message = "Please swipe a card or insert cash to pay for the item." - src.status_error = 0 + if(!vendor_account || vendor_account.suspended) + src.status_message = "This machine is currently unable to process payments due to problems with the associated account." + src.status_error = 1 + else + src.status_message = "Please swipe a card or insert cash to pay for the item." + src.status_error = 0 else if (href_list["cancelpurchase"]) src.currently_vending = null @@ -611,7 +615,7 @@ new dump_path(src.loc) R.amount-- break - + stat |= BROKEN src.icon_state = "[initial(icon_state)]-broken" return From 12e17e666f3b74eb3b3114abc270c1f156ab14de Mon Sep 17 00:00:00 2001 From: PsiOmega Date: Wed, 11 Feb 2015 19:53:08 +0100 Subject: [PATCH 25/32] Minor casing fix. I couldn't unsee the lowercase t in sentences beginning with "\the" instead of "\The". I'm sorry.. --- code/game/machinery/jukebox.dm | 4 ++-- code/modules/recycling/disposal.dm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/jukebox.dm b/code/game/machinery/jukebox.dm index 4301d344950..2a6755015b2 100644 --- a/code/game/machinery/jukebox.dm +++ b/code/game/machinery/jukebox.dm @@ -70,7 +70,7 @@ datum/track/New(var/title_name, var/audio) return if(stat & (NOPOWER|BROKEN)) - usr << "\the [src] doesn't appear to function." + usr << "\The [src] doesn't appear to function." return if(href_list["change_track"]) @@ -109,7 +109,7 @@ datum/track/New(var/title_name, var/audio) /obj/machinery/media/jukebox/interact(mob/user) if(stat & (NOPOWER|BROKEN)) - usr << "\the [src] doesn't appear to function." + usr << "\The [src] doesn't appear to function." return ui_interact(user) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 0df50cc6fe7..34dbe0998f4 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -462,10 +462,10 @@ if(prob(75)) I.loc = src for(var/mob/M in viewers(src)) - M.show_message("\the [I] lands in \the [src].", 3) + M.show_message("\The [I] lands in \the [src].", 3) else for(var/mob/M in viewers(src)) - M.show_message("\the [I] bounces off of \the [src]'s rim!", 3) + M.show_message("\The [I] bounces off of \the [src]'s rim!", 3) return 0 else return ..(mover, target, height, air_group) From 01b8873b9d6110fa1b61e3513f8c1078169f9de7 Mon Sep 17 00:00:00 2001 From: Atlantiscze Date: Thu, 12 Feb 2015 01:05:16 +0100 Subject: [PATCH 26/32] Fixes PACMANs not working --- code/modules/power/port_gen.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 8e63131cdb4..5d94c2cdfa8 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -15,7 +15,7 @@ var/power_output = 1 /obj/machinery/power/port_gen/proc/IsBroken() - return (crit_fail || (stat & BROKEN|EMPED)) + return (crit_fail || (stat & (BROKEN|EMPED))) /obj/machinery/power/port_gen/proc/HasFuel() //Placeholder for fuel check. return 1 From 7572ec427a7b2256b286f6b6f34e53448b7a026a Mon Sep 17 00:00:00 2001 From: D Anzorge Date: Wed, 11 Feb 2015 20:02:23 -0500 Subject: [PATCH 27/32] Add an extra check to vending's Topic() Topic() now checks if it really can vend items with current category config, in case the request was malformed/rewritten --- code/game/machinery/vending.dm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 482a36e0d48..f88b7895ae2 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -488,7 +488,11 @@ var/key = text2num(href_list["vend"]) var/datum/data/vending_product/R = product_records[key] - + + // This should not happen unless the request from NanoUI was bad + if(!(R.category & src.categories)) + return + if(R.price <= 0) src.vend(R, usr) else From 82cab6635b4551a3b14f9c253e13340cd4b64981 Mon Sep 17 00:00:00 2001 From: D Anzorge Date: Wed, 11 Feb 2015 20:05:04 -0500 Subject: [PATCH 28/32] Add notes on vending changes to changelog --- html/changelog.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/html/changelog.html b/html/changelog.html index 3a214316b34..3092f99714a 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,6 +56,14 @@ should be listed in the changelog upon commit though. Thanks. --> +
+

12 February 2015

+

Daranz updated:

+
    +
  • Vending machines now use NanoUI and accept cash. The vendor account can now be suspended to disable all sales in all machines on station.
  • +
+
+

4 February 2015

RavingManiac updated:

From 28f3bf739d551cab04d8db4a1bddfc8cc0e29ced Mon Sep 17 00:00:00 2001 From: mwerezak Date: Wed, 11 Feb 2015 23:06:29 -0500 Subject: [PATCH 29/32] Fixes randomized seed nutrient_consumption Centers the range of possible values evenly between small amount and heavy supply. --- code/modules/hydroponics/seed_datums.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/hydroponics/seed_datums.dm b/code/modules/hydroponics/seed_datums.dm index 33e6f47c574..6fbfa3743a5 100644 --- a/code/modules/hydroponics/seed_datums.dm +++ b/code/modules/hydroponics/seed_datums.dm @@ -255,7 +255,7 @@ proc/populate_seed_list() if(prob(90)) requires_nutrients = 1 - nutrient_consumption = rand(100)*0.1 + nutrient_consumption = rand(25)/100 else requires_nutrients = 0 From b7e3a14e0d23122e8eee9576cc04c4ced1d2fca7 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Wed, 11 Feb 2015 23:27:36 -0500 Subject: [PATCH 30/32] Fixes machines being usable after a power failure Fixes machines not gaining the NOPOWER flag after a power failure because they were turned off and had use_power set to 0. Fixes machines not gaining the NOPOWER flag after being moved into an area with no power. Both bugs allowed power using machines to be used in areas with no power. --- code/controllers/master_controller.dm | 1 + code/modules/power/power.dm | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/code/controllers/master_controller.dm b/code/controllers/master_controller.dm index 1e972dd46d2..8f2fc481fae 100644 --- a/code/controllers/master_controller.dm +++ b/code/controllers/master_controller.dm @@ -288,6 +288,7 @@ datum/controller/game_controller/proc/process_machines_process() last_thing_processed = Machine.type if(Machine.process() != PROCESS_KILL) if(Machine) + Machine.power_change() if(Machine.use_power) Machine.auto_use_power() continue diff --git a/code/modules/power/power.dm b/code/modules/power/power.dm index 366cd9351d4..7cfcc532468 100644 --- a/code/modules/power/power.dm +++ b/code/modules/power/power.dm @@ -63,8 +63,10 @@ if(!src.loc) return 0 - if(!use_power) - return 1 + //Don't do this. It allows machines that set use_power to 0 when off (many machines) to + //be turned on again and used after a power failure because they never gain the NOPOWER flag. + //if(!use_power) + // return 1 var/area/A = src.loc.loc // make sure it's in an area if(!A || !isarea(A) || !A.master) From 4c4411259a8f1883b6d0d17ba2277fcf11f96643 Mon Sep 17 00:00:00 2001 From: Atlantiscze Date: Thu, 12 Feb 2015 06:09:42 +0100 Subject: [PATCH 31/32] PACMAN Generator NanoUI - Gives PACMAN type generators NanoUI, instead of the old UI - Example screenshot: http://i.imgur.com/QhQEw1c.png (Red usually means it's bad. In this case, generator is operating at 10 power level, but maximal safe level is 4 (it's varedited to these values, normally it would be only 5/5). Overheats also give warnings (warning shown on screenshot is last warning which occurs approximately 20 seconds before explosion). Fuel is measured in cm3. For simplicity, 1 sheet = 1000cm3 --- code/modules/power/port_gen.dm | 111 ++++++++++++++++++++------------ nano/templates/pacman.tmpl | 113 +++++++++++++++++++++++++++++++++ 2 files changed, 185 insertions(+), 39 deletions(-) create mode 100644 nano/templates/pacman.tmpl diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 5d94c2cdfa8..1ba2af49329 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -68,7 +68,7 @@ if(3) if(prob(10)) stat &= BROKEN duration = 300 - + stat |= EMPED if(duration) spawn(duration) @@ -84,12 +84,12 @@ //A power generator that runs on solid plasma sheets. /obj/machinery/power/port_gen/pacman name = "\improper P.A.C.M.A.N.-type Portable Generator" - desc = "A power generator that runs on solid plasma sheets. Rated for 80 kW max safe output." - - var/sheet_name = "solid plasma sheet" + desc = "A power generator that runs on solid phoron sheets. Rated for 80 kW max safe output." + + var/sheet_name = "Phoron Sheets" var/sheet_path = /obj/item/stack/sheet/mineral/phoron - var/board_path = "/obj/item/weapon/circuitboard/pacman" - + var/board_path = "/obj/item/weapon/circuitboard/pacman" + /* These values were chosen so that the generator can run safely up to 80 kW A full 50 phoron sheet stack should last 20 minutes at power_output = 4 @@ -98,15 +98,16 @@ */ power_gen = 20000 //Watts output per power_output level var/max_power_output = 5 //The maximum power setting without emagging. + var/max_safe_output = 4 // For UI use, maximal output that won't cause overheat. var/time_per_sheet = 96 //fuel efficiency - how long 1 sheet lasts at power level 1 var/max_sheets = 100 //max capacity of the hopper var/max_temperature = 300 //max temperature before overheating increases var/temperature_gain = 50 //how much the temperature increases per power output level, in degrees per level - + var/sheets = 0 //How many sheets of material are loaded in the generator var/sheet_left = 0 //How much is left of the current sheet - var/temperature = 0 //The current temperature - var/overheating = 0 //if this gets high enough the generator explodes + var/temperature = 0 //The current temperature + var/overheating = 0 //if this gets high enough the generator explodes /obj/machinery/power/port_gen/pacman/initialize() ..() @@ -122,8 +123,6 @@ component_parts += new /obj/item/stack/cable_coil(src) component_parts += new /obj/item/weapon/stock_parts/capacitor(src) component_parts += new board_path(src) - var/obj/sheet = new sheet_path(null) - sheet_name = sheet.name RefreshParts() /obj/machinery/power/port_gen/pacman/Del() @@ -137,20 +136,20 @@ max_sheets = SP.rating * SP.rating * 50 else if(istype(SP, /obj/item/weapon/stock_parts/micro_laser) || istype(SP, /obj/item/weapon/stock_parts/capacitor)) temp_rating += SP.rating - + var/temp_reliability = 0 var/part_count = 0 for(var/obj/item/weapon/CP in component_parts) temp_reliability += CP.reliability part_count++ - + reliability = min(round(temp_reliability / part_count), 100) power_gen = round(initial(power_gen) * (max(2, temp_rating) / 2)) /obj/machinery/power/port_gen/pacman/examine(mob/user) ..(user) user << "\The [src] appears to be producing [power_gen*power_output] W." - user << "There are [sheets] [sheet_name]\s left in the hopper." + user << "There [sheets == 1 ? "is" : "are"] [sheets] sheet[sheets == 1 ? "" : "s"] left in the hopper." if(IsBroken()) user << "\The [src] seems to have broken down." if(overheating) user << "\The [src] is overheating!" @@ -179,7 +178,7 @@ //how much material are we using this iteration? var/needed_sheets = power_output / time_per_sheet - + //HasFuel() should guarantee us that there is enough fuel left, so no need to check that //the only thing we need to worry about is if we are going to rollover to the next sheet if (needed_sheets > sheet_left) @@ -192,7 +191,7 @@ //This should probably depend on the external temperature somehow, but whatever. var/lower_limit = 56 + power_output * temperature_gain var/upper_limit = 76 + power_output * temperature_gain - + /* Hot or cold environments can affect the equilibrium temperature The lower the pressure the less effect it has. I guess it cools using a radiator or something when in vacuum. @@ -205,16 +204,16 @@ var/ambient = environment.temperature - T20C lower_limit += ambient*ratio upper_limit += ambient*ratio - + var/average = (upper_limit + lower_limit)/2 - + //calculate the temperature increase var/bias = 0 if (temperature < lower_limit) bias = min(round((average - temperature)/TEMPERATURE_DIVISOR, 1), TEMPERATURE_CHANGE_MAX) else if (temperature > upper_limit) bias = max(round((temperature - average)/TEMPERATURE_DIVISOR, 1), -TEMPERATURE_CHANGE_MAX) - + temperature += rand(-7 + bias, 7 + bias) if (temperature > max_temperature) @@ -229,13 +228,16 @@ var/ratio = min(environment.return_pressure()/ONE_ATMOSPHERE, 1) var/ambient = environment.temperature - T20C cooling_temperature += ambient*ratio - + if (temperature > cooling_temperature) var/temp_loss = (temperature - cooling_temperature)/TEMPERATURE_DIVISOR temp_loss = between(2, round(temp_loss, 1), TEMPERATURE_CHANGE_MAX) temperature = max(temperature - temp_loss, cooling_temperature) src.updateDialog() + if(overheating) + overheating-- + /obj/machinery/power/port_gen/pacman/proc/overheat() overheating++ if (overheating > 60) @@ -249,7 +251,7 @@ var/datum/gas_mixture/environment = loc.return_air() if (environment) environment.adjust_gas_temp("phoron", phoron/10, temperature + T0C) - + sheets = 0 sheet_left = 0 ..() @@ -261,7 +263,7 @@ if(amount < 1) user << "\blue The [src.name] is full!" return - user << "\blue You add [amount] [addstack.singular_name]\s to the [src.name]." + user << "\blue You add [amount] sheet[amount == 1 ? "" : "s"] to the [src.name]." sheets += amount addstack.use(amount) updateUsrDialog() @@ -305,11 +307,46 @@ ..() if (!anchored) return - interact(user) + ui_interact(user) /obj/machinery/power/port_gen/pacman/attack_ai(mob/user as mob) - interact(user) + ui_interact(user) +/obj/machinery/power/port_gen/pacman/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + if(IsBroken()) + return + + var/data[0] + data["active"] = active + if(istype(user, /mob/living/silicon/ai)) + data["is_ai"] = 1 + else if(istype(user, /mob/living/silicon/robot) && !Adjacent(user)) + data["is_ai"] = 1 + else + data["is_ai"] = 0 + data["output_set"] = power_output + data["output_max"] = max_power_output + data["output_safe"] = max_safe_output + data["output_watts"] = power_output * power_gen + data["temperature_current"] = src.temperature + data["temperature_max"] = src.max_temperature + data["temperature_overheat"] = overheating + // 1 sheet = 1000cm3? + data["fuel_stored"] = round((sheets * 1000) + (sheet_left * 1000)) + data["fuel_capacity"] = round(max_sheets * 1000, 0.1) + data["fuel_usage"] = active ? round((power_output / time_per_sheet) * 1000) : 0 + data["fuel_type"] = sheet_name + + + + ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open) + if (!ui) + ui = new(user, src, ui_key, "pacman.tmpl", src.name, 500, 560) + ui.open() + ui.set_auto_update(1) + + +/* /obj/machinery/power/port_gen/pacman/interact(mob/user) if (get_dist(src, user) > 1 ) if (!istype(user, /mob/living/silicon/ai)) @@ -329,12 +366,13 @@ dat += text("Current stack: [stack_percent]%
") dat += text("Power output: - [power_gen * power_output] Watts+
") dat += text("Power current: [(powernet == null ? "Unconnected" : "[avail()]")]
") - + var/tempstr = "Temperature: [temperature]°C
" dat += (overheating)? "[tempstr]" : tempstr dat += "
Close" user << browse("[dat]", "window=port_gen") onclose(user, "port_gen") +*/ /obj/machinery/power/port_gen/pacman/Topic(href, href_list) if(..()) @@ -346,33 +384,26 @@ if(!active && HasFuel() && !IsBroken()) active = 1 icon_state = "portgen1" - src.updateUsrDialog() if(href_list["action"] == "disable") if (active) active = 0 icon_state = "portgen0" - src.updateUsrDialog() if(href_list["action"] == "eject") if(!active) DropFuel() - src.updateUsrDialog() if(href_list["action"] == "lower_power") if (power_output > 1) power_output-- - src.updateUsrDialog() if (href_list["action"] == "higher_power") if (power_output < max_power_output || (emagged && power_output < round(max_power_output*2.5))) power_output++ - src.updateUsrDialog() - if (href_list["action"] == "close") - usr << browse(null, "window=port_gen") - usr.unset_machine() /obj/machinery/power/port_gen/pacman/super name = "S.U.P.E.R.P.A.C.M.A.N.-type Portable Generator" desc = "A power generator that utilizes uranium sheets as fuel. Can run for much longer than the standard PACMAN type generators. Rated for 80 kW max safe output." icon_state = "portgen1" sheet_path = /obj/item/stack/sheet/mineral/uranium + sheet_name = "Uranium Sheets" time_per_sheet = 576 //same power output, but a 50 sheet stack will last 2 hours at max safe power board_path = "/obj/item/weapon/circuitboard/pacman/super" @@ -390,26 +421,28 @@ //should really fall with the square of the distance, but that makes the rads value drop too fast //I dunno, maybe physics works different when you live in 2D -- SM radiation also works like this, apparently L.apply_effect(max(20, round(rads/get_dist(L,src))), IRRADIATE) - + explosion(src.loc, 3, 3, 5, 3) - del(src) + del(src) /obj/machinery/power/port_gen/pacman/mrs name = "M.R.S.P.A.C.M.A.N.-type Portable Generator" desc = "An advanced power generator that runs on tritium. Rated for 200 kW maximum safe output!" icon_state = "portgen2" - sheet_path = /obj/item/stack/sheet/mineral/tritium - + sheet_path = /obj/item/stack/sheet/mineral/tritium + sheet_name = "Tritium Fuel Sheets" + //I don't think tritium has any other use, so we might as well make this rewarding for players //max safe power output (power level = 8) is 200 kW and lasts for 1 hour - 3 or 4 of these could power the station power_gen = 25000 //watts max_power_output = 10 + max_safe_output = 8 time_per_sheet = 576 max_temperature = 800 temperature_gain = 90 board_path = "/obj/item/weapon/circuitboard/pacman/mrs" - + /obj/machinery/power/port_gen/pacman/mrs/explode() //no special effects, but the explosion is pretty big (same as a supermatter shard). explosion(src.loc, 3, 6, 12, 16, 1) - del(src) + del(src) diff --git a/nano/templates/pacman.tmpl b/nano/templates/pacman.tmpl new file mode 100644 index 00000000000..386358c9cc6 --- /dev/null +++ b/nano/templates/pacman.tmpl @@ -0,0 +1,113 @@ +

Status

+
+
+ Generator Status: +
+
+ {{if data.active}} + Online + {{else}} + Offline + {{/if}} +
+
+ Generator Control: +
+
+ {{if data.active}} + {{:helper.link('STOP', 'power', {'action' : "disable"})}} + {{else}} + {{:helper.link('START', 'power', {'action' : "enable"})}} + {{/if}} +
+
+

Fuel

+
+
+ Fuel Type: +
+
+ {{:data.fuel_type}} +
+
+ Fuel Level: +
+
+ {{if data.fuel_stored >= 5000}} + {{:helper.displayBar(data.fuel_stored, 0, data.fuel_capacity, 'good')}} +
{{:data.fuel_stored}}/{{:data.fuel_capacity}} cm3 + {{else data.fuel_stored >= 1000}} + {{:helper.displayBar(data.fuel_stored, 0, data.fuel_capacity, 'average')}} +
{{:data.fuel_stored}}/{{:data.fuel_capacity}} cm3 + {{else}} + {{:helper.displayBar(data.fuel_stored, 0, data.fuel_capacity, 'bad')}} +
{{:data.fuel_stored}}/{{:data.fuel_capacity}} cm3 + {{/if}} +
+
+ Fuel Usage: +
+
+ {{:data.fuel_usage}} cm3/s +
+ {{if !data.is_ai}} +
+ Control: +
+
+ {{:helper.link('EJECT FUEL', 'arrowupthick-1-s', {'action' : "eject"}, data.active ? 'disabled' : null)}} +
+ {{/if}} +
+

Output

+
+
+ Power setting: +
+
+ {{if data.output_set > data.output_safe}} + {{:data.output_set}} / {{:data.output_max}} ({{:data.output_watts}} W) + {{else}} + {{:data.output_set}} / {{:data.output_max}} ({{:data.output_watts}} W) + {{/if}} +
+
+ Control: +
+
+ {{:helper.link('+', null, {'action' : "higher_power"})}} + {{:helper.link('-', null, {'action' : "lower_power"})}} +
+
+

Temperature

+
+
+ Temperature: +
+
+ {{if data.temperature_current < (data.temperature_max * 0.8)}} + {{:helper.displayBar(data.temperature_current, 0, (data.temperature_max * 1.5), 'good')}} +
{{:data.temperature_current}} C + {{else data.temperature_current < data.temperature_max}} + {{:helper.displayBar(data.temperature_current, 0, (data.temperature_max * 1.5), 'average')}} +
{{:data.temperature_current}} C + {{else}} + {{:helper.displayBar(data.temperature_current, 0, (data.temperature_max * 1.5), 'bad')}} +
{{:data.temperature_current}} C + {{/if}} +
+
+ Generator Status: +
+
+ {{if data.temperature_overheat > 50}} + DANGER: CRITICAL OVERHEAT! Deactivate generator immediately! + {{else data.temperature_overheat > 20}} + WARNING: Overheating! + {{else data.temperature_overheat > 1}} + Temperature High + {{else}} + Optimal + {{/if}} +
+
\ No newline at end of file From 5b5e16916f91dc8cf19b365c88fe1840dad1ddc2 Mon Sep 17 00:00:00 2001 From: mwerezak Date: Thu, 12 Feb 2015 01:55:12 -0500 Subject: [PATCH 32/32] Replaces text expressions with macros --- code/modules/clothing/spacesuits/rig/modules/utility.dm | 4 ++-- code/modules/hydroponics/hydro_tools.dm | 2 +- code/modules/power/port_gen.dm | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/clothing/spacesuits/rig/modules/utility.dm b/code/modules/clothing/spacesuits/rig/modules/utility.dm index 619faa0a7e1..3d909d02c18 100644 --- a/code/modules/clothing/spacesuits/rig/modules/utility.dm +++ b/code/modules/clothing/spacesuits/rig/modules/utility.dm @@ -197,8 +197,8 @@ target_mob = H if(target_mob != H) - H << "You inject [target_mob] with [chems_to_use] unit[chems_to_use == 1 ? "" : "s"] of [charge.display_name]." - target_mob << "You feel a rushing in your veins as [chems_to_use] unit[chems_to_use == 1 ? "" : "s"] of [charge.display_name] [chems_to_use == 1 ? "is" : "are"] injected." + H << "You inject [target_mob] with [chems_to_use] unit\s of [charge.display_name]." + target_mob << "You feel a rushing in your veins as [chems_to_use] unit\s of [charge.display_name] [chems_to_use == 1 ? "is" : "are"] injected." target_mob.reagents.add_reagent(charge.display_name, chems_to_use) charge.charges -= chems_to_use diff --git a/code/modules/hydroponics/hydro_tools.dm b/code/modules/hydroponics/hydro_tools.dm index 2d9261d97d1..611f67902cd 100644 --- a/code/modules/hydroponics/hydro_tools.dm +++ b/code/modules/hydroponics/hydro_tools.dm @@ -112,7 +112,7 @@ else if(grown_seed.heat_tolerance < 10) dat += "
It is very sensitive to temperature shifts." - dat += "
It thrives in a light level of [grown_seed.ideal_light] lumen[grown_seed.ideal_light == 1 ? "" : "s"]." + dat += "
It thrives in a light level of [grown_seed.ideal_light] lumen\s." if(grown_seed.light_tolerance > 10) dat += "
It is well adapted to a range of light levels." diff --git a/code/modules/power/port_gen.dm b/code/modules/power/port_gen.dm index 1ba2af49329..4828280e631 100644 --- a/code/modules/power/port_gen.dm +++ b/code/modules/power/port_gen.dm @@ -149,7 +149,7 @@ /obj/machinery/power/port_gen/pacman/examine(mob/user) ..(user) user << "\The [src] appears to be producing [power_gen*power_output] W." - user << "There [sheets == 1 ? "is" : "are"] [sheets] sheet[sheets == 1 ? "" : "s"] left in the hopper." + user << "There [sheets == 1 ? "is" : "are"] [sheets] sheet\s left in the hopper." if(IsBroken()) user << "\The [src] seems to have broken down." if(overheating) user << "\The [src] is overheating!" @@ -263,7 +263,7 @@ if(amount < 1) user << "\blue The [src.name] is full!" return - user << "\blue You add [amount] sheet[amount == 1 ? "" : "s"] to the [src.name]." + user << "\blue You add [amount] sheet\s to the [src.name]." sheets += amount addstack.use(amount) updateUsrDialog()