Merge pull request #1592 from Giacom/smartfridges

Chemistry and Virology Smart Fridges [MAP]
This commit is contained in:
Cheridan
2013-10-17 14:08:02 -07:00
3 changed files with 227 additions and 102 deletions
+197 -86
View File
@@ -1,7 +1,8 @@
/* SmartFridge. Much todo
*/
// -------------------------
// SmartFridge. Much todo
// -------------------------
/obj/machinery/smartfridge
name = "\improper SmartFridge"
name = "smartfridge"
icon = 'icons/obj/vending.dmi'
icon_state = "smartfridge"
layer = 2.9
@@ -15,49 +16,17 @@
var/icon_on = "smartfridge"
var/icon_off = "smartfridge-off"
var/item_quants = list()
var/ispowered = 1 //starts powered
var/isbroken = 0
/obj/machinery/smartfridge/proc/accept_check(var/obj/item/O as obj)
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown/) || istype(O,/obj/item/seeds/))
return 1
return 0
/obj/machinery/smartfridge/seeds
name = "\improper MegaSeed Servitor"
desc = "When you need seeds fast!"
icon = 'icons/obj/vending.dmi'
icon_state = "seeds"
icon_on = "seeds"
icon_off = "seeds-off"
/obj/machinery/smartfridge/seeds/accept_check(var/obj/item/O as obj)
if(istype(O,/obj/item/seeds/))
return 1
return 0
/obj/machinery/smartfridge/extract
name = "\improper Slime Extract Storage"
desc = "A refrigerated storage unit for slime extracts"
/obj/machinery/smartfridge/extract/accept_check(var/obj/item/O as obj)
if(istype(O,/obj/item/slime_extract))
return 1
return 0
/*
/obj/machinery/smartfridge/power_change()
if( powered() )
src.ispowered = 1
stat &= ~NOPOWER
if(!isbroken)
icon_state = icon_on
..()
update_icon()
*/
/obj/machinery/smartfridge/update_icon()
if(!stat)
icon_state = icon_on
else
spawn(rand(0, 15))
src.ispowered = 0
stat |= NOPOWER
if(!isbroken)
icon_state = icon_off
icon_state = icon_off
/*******************
@@ -65,51 +34,83 @@
********************/
/obj/machinery/smartfridge/attackby(var/obj/item/O as obj, var/mob/user as mob)
if(!src.ispowered)
user << "<span class='notice'>\The [src] is unpowered and useless.</span>"
return
if(stat)
return 0
if(contents.len >= max_n_of_items)
user << "<span class='notice'>\The [src] is full.</span>"
return 0
if(accept_check(O))
if(contents.len >= max_n_of_items)
user << "<span class='notice'>\The [src] is full.</span>"
return 1
else
user.before_take_item(O)
O.loc = src
if(item_quants[O.name])
item_quants[O.name]++
else
item_quants[O.name] = 1
user.visible_message("<span class='notice'>[user] has added \the [O] to \the [src].", \
"<span class='notice'>You add \the [O] to \the [src].")
else if(istype(O, /obj/item/weapon/storage/bag/plants))
var/obj/item/weapon/storage/bag/plants/P = O
var/plants_loaded = 0
for(var/obj/G in P.contents)
if(accept_check(G))
if(contents.len >= max_n_of_items)
user << "<span class='notice'>\The [src] is full.</span>"
return 1
else
P.remove_from_storage(G,src)
if(item_quants[G.name])
item_quants[G.name]++
else
item_quants[G.name] = 1
plants_loaded++
if(plants_loaded)
user.visible_message("<span class='notice'>[user] loads \the [src] with \the [P].</span>", \
"<span class='notice'>You load \the [src] with \the [P].</span>")
if(P.contents.len > 0)
user << "<span class='notice'>Some items are refused.</span>"
else
user << "<span class='notice'>\The [src] smartly refuses [O].</span>"
load(O)
user.visible_message("<span class='notice'>[user] has added \the [O] to \the [src].", "<span class='notice'>You add \the [O] to \the [src].")
updateUsrDialog()
return 1
var/loaded = 0
if(istype(O, /obj/item/weapon/storage/bag))
var/obj/item/weapon/storage/P = O
for(var/obj/G in P.contents)
if(contents.len >= max_n_of_items)
break
if(accept_check(G))
load(G)
loaded++
else if(istype(O, /obj/item/weapon/tray))
var/obj/item/weapon/tray/T = O
for(var/obj/item/snack in T)
if(contents.len >= max_n_of_items)
break
if(accept_check(snack))
T.carrying -= snack
load(snack)
loaded++
else
user << "<span class='notice'>\The [src] smartly refuses [O].</span>"
updateUsrDialog()
return 0
// this is a little backwards but it avoids duplication.
// this code follows storage items and trays only.
if(loaded)
if(contents.len >= max_n_of_items)
user.visible_message("<span class='notice'>[user] loads \the [src] with \the [O].</span>", \
"<span class='notice'>You fill \the [src] with \the [O].</span>")
else
user.visible_message("<span class='notice'>[user] loads \the [src] with \the [O].</span>", \
"<span class='notice'>You load \the [src] with \the [O].</span>")
if(O.contents.len > 0)
user << "<span class='notice'>Some items are refused.</span>"
else
user << "There is nothing in [O] to put in [src]."
return 0
updateUsrDialog()
return 1
/obj/machinery/smartfridge/proc/accept_check(var/obj/item/O as obj)
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/grown/) || istype(O,/obj/item/seeds/))
return 1
return 0
/obj/machinery/smartfridge/proc/load(var/obj/item/O as obj)
if(istype(O.loc,/mob))
var/mob/M = O.loc
M.before_take_item(O)
else if(istype(O.loc,/obj/item/weapon/storage))
var/obj/item/weapon/storage/S = O.loc
S.remove_from_storage(O,src)
O.loc = src
var/n = O.name
if(item_quants[n])
item_quants[n]++
else
item_quants[n] = 1
/obj/machinery/smartfridge/attack_paw(mob/user as mob)
return src.attack_hand(user)
@@ -126,7 +127,7 @@
********************/
/obj/machinery/smartfridge/interact(mob/user as mob)
if(!src.ispowered)
if(stat)
return
var/dat = "<TT><b>Select an item:</b><br>"
@@ -148,6 +149,17 @@
dat += "(<a href='byond://?src=\ref[src];vend=[O];amount=25'>x25</A>)"
if(N > 1)
dat += "(<a href='?src=\ref[src];vend=[O];amount=[N]'>All</A>)"
/*
if((findtext(O,"seeds") || findtext(O,"mycelium")) && N>1)
var/max_bags = round((N-1)/7)+1
dat += "(<a href='?src=\ref[src];bagvend=[O];amount=1'>1 Bag</A>)"
if(max_bags > 2) // at least 14
dat += "(<a href='?src=\ref[src];bagvend=[O];amount=2'>2 Bags</A>)"
if(max_bags > 5) // at least 35
dat += "(<a href='?src=\ref[src];bagvend=[O];amount=5'>5 Bags</A>)"
if(max_bags > 1)
dat += "(<a href='?src=\ref[src];bagvend=[O];amount=[max_bags]'>Bag All</A>)"
*/
dat += "<br>"
dat += "</TT>"
@@ -155,11 +167,39 @@
onclose(user, "smartfridge")
return
/obj/machinery/smartfridge/Topic(href, href_list)
/obj/machinery/smartfridge/Topic(var/href, var/list/href_list)
if(..())
return
usr.set_machine(src)
/*
if(href_list["bagvend"]) // bag seeds and dispense
var/N = href_list["bagvend"]
var/amount = text2num(href_list["amount"])
if(item_quants[N] <= 0) // Sanity check, there are probably ways to press the button when it shouldn't be possible.
return
item_quants[N] = max(item_quants[N] - amount*7, 0)
var/i = amount * 7
var/j = 0
var/obj/item/weapon/storage/bag/seeds/SB = new(loc)
for(var/obj/O in contents)
if(name_filter(O.name) == N)
O.loc = SB
i--
j++
if(i <= 0)
break
if(j >= 7)
j = 0
SB.update_icon()
SB = new(loc)
SB.update_icon()
src.updateUsrDialog()
return
*/
var/N = href_list["vend"]
var/amount = text2num(href_list["amount"])
@@ -178,3 +218,74 @@
src.updateUsrDialog()
return
// ----------------------------
// Bar drink smartfridge
// ----------------------------
/obj/machinery/smartfridge/drinks
name = "drink showcase"
desc = "A refrigerated storage unit for tasty tasty alcohol."
/obj/machinery/smartfridge/drinks/accept_check(var/obj/item/O as obj)
if(!istype(O,/obj/item/weapon/reagent_containers) || !O.reagents || !O.reagents.reagent_list.len)
return 0
if(istype(O,/obj/item/weapon/reagent_containers/glass) || istype(O,/obj/item/weapon/reagent_containers/food/drinks) || istype(O,/obj/item/weapon/reagent_containers/food/condiment))
return 1
// -------------------------------------
// Xenobiology Slime-Extract Smartfridge
// -------------------------------------
/obj/machinery/smartfridge/extract
name = "smart slime extract storage"
desc = "A refrigerated storage unit for slime extracts."
/obj/machinery/smartfridge/extract/accept_check(var/obj/item/O as obj)
if(istype(O,/obj/item/slime_extract))
return 1
return 0
// -----------------------------
// Chemistry Medical Smartfridge
// -----------------------------
/obj/machinery/smartfridge/chemistry
name = "smart chemical storage"
desc = "A refrigerated storage unit for medicine storage."
var/list/spawn_meds = list(/obj/item/weapon/reagent_containers/pill/inaprovaline = 12,/obj/item/weapon/reagent_containers/pill/antitox = 1,
/obj/item/weapon/reagent_containers/glass/bottle/inaprovaline = 1, /obj/item/weapon/reagent_containers/glass/bottle/antitoxin = 1)
/obj/machinery/smartfridge/chemistry/New()
..()
for(var/typekey in spawn_meds)
var/amount = spawn_meds[typekey]
if(isnull(amount)) amount = 1
while(amount)
var/obj/item/I = new typekey(src)
load(I)
amount--
/obj/machinery/smartfridge/chemistry/accept_check(var/obj/item/O as obj)
if(istype(O,/obj/item/weapon/storage/pill_bottle))
if(O.contents.len)
for(var/obj/item/I in O)
if(!accept_check(I))
return 0
return 1
return 0
if(!istype(O,/obj/item/weapon/reagent_containers))
return 0
if(istype(O,/obj/item/weapon/reagent_containers/pill)) // empty pill prank ok
return 1
if(!O.reagents || !O.reagents.reagent_list.len) // other empty containers not accepted
return 0
if(istype(O,/obj/item/weapon/reagent_containers/syringe) || istype(O,/obj/item/weapon/reagent_containers/glass/bottle) || istype(O,/obj/item/weapon/reagent_containers/glass/beaker) || istype(O,/obj/item/weapon/reagent_containers/spray))
return 1
return 0
// ----------------------------
// Virology Medical Smartfridge
// ----------------------------
/obj/machinery/smartfridge/chemistry/virology
name = "smart virus storage"
desc = "A refrigerated storage unit for volatile sample storage."
spawn_meds = list(/obj/item/weapon/reagent_containers/syringe/antiviral = 4, /obj/item/weapon/reagent_containers/glass/bottle/cold = 1, /obj/item/weapon/reagent_containers/glass/bottle/flu_virion = 1, /obj/item/weapon/reagent_containers/glass/bottle/mutagen = 1, /obj/item/weapon/reagent_containers/glass/bottle/synaptizine = 1)
@@ -87,6 +87,17 @@
..()
reagents.add_reagent("mutagen", 30)
/obj/item/weapon/reagent_containers/glass/bottle/synaptizine
name = "synaptizine bottle"
desc = "A small bottle of synaptizine."
icon = 'icons/obj/chemical.dmi'
icon_state = "bottle20"
New()
..()
reagents.add_reagent("synaptizine", 30)
/obj/item/weapon/reagent_containers/glass/bottle/ammonia
name = "ammonia bottle"
desc = "A small bottle."
+19 -16
View File
@@ -3322,11 +3322,11 @@
"blT" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/teleporter)
"blU" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "blue"; dir = 8},/area/hallway/primary/central)
"blV" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/medbay)
"blW" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/reagent_containers/spray/cleaner,/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/medical/medbay)
"blW" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "virology_airlock_exterior"; id_tag = "virology_airlock_control"; interior_door_tag = "virology_airlock_interior"; name = "Virology Access Console"; pixel_x = 8; pixel_y = 22},/obj/machinery/light_switch{pixel_x = -4; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"blX" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/medical/medbay)
"blY" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/medical/medbay)
"blZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 1; icon_state = "whiteyellow"},/area/medical/medbay)
"bma" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 1; icon_state = "whiteyellowcorner"},/area/medical/medbay)
"bma" = (/obj/structure/table,/obj/item/weapon/crowbar,/obj/item/clothing/tie/stethoscope,/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/sign/nosmoking_2{pixel_x = 0; pixel_y = 30},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/medical/medbay)
"bmb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/noticeboard{pixel_y = 32},/obj/machinery/camera{c_tag = "Medbay West"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bmc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
"bmd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/medbay)
@@ -4717,7 +4717,7 @@
"bMK" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bML" = (/obj/machinery/door/firedoor/border_only{dir = 4; name = "hazard door east"},/obj/machinery/door/airlock/medical{name = "Break Room"; req_access_txt = "39"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bMM" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bMN" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/machinery/embedded_controller/radio/access_controller{exterior_door_tag = "virology_airlock_exterior"; id_tag = "virology_airlock_control"; interior_door_tag = "virology_airlock_interior"; name = "Virology Access Console"; pixel_x = 8; pixel_y = 22},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bMN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 1; icon_state = "whiteyellowcorner"},/area/medical/medbay)
"bMO" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bMP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/firealarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bMQ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Virology APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera{c_tag = "Virology Module"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -4762,8 +4762,8 @@
"bND" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/pipe/simple{pipe_color = "cyan"; icon_state = "intact-c"},/obj/machinery/atmospherics/pipe/simple{pipe_color = "yellow"; dir = 4; icon_state = "intact-y"; level = 2},/turf/simulated/floor/plating,/area/atmos)
"bNE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 0; frequency = 1441; icon_state = "in"; id_tag = "n2o_out"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor/engine/n20,/area/atmos)
"bNF" = (/turf/simulated/floor/engine/n20,/area/atmos)
"bNG" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/wall,/area/medical/virology)
"bNH" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bNG" = (/obj/machinery/smartfridge/chemistry,/turf/simulated/wall,/area/medical/chemistry)
"bNH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/wall/r_wall,/area/medical/virology)
"bNI" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bNJ" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bNK" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -4829,8 +4829,8 @@
"bOS" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/engine/n20,/area/atmos)
"bOT" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bOU" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"bOV" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology)
"bOW" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bOV" = (/obj/machinery/smartfridge/chemistry/virology,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology)
"bOW" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{req_access_txt = "0"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bOX" = (/obj/machinery/computer/pandemic,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/medical/virology)
"bOY" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/virology)
"bOZ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/door/firedoor/border_only{dir = 1; name = "hazard door north"},/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Isolation A"; req_access_txt = "39"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -4876,7 +4876,7 @@
"bPN" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 8; frequency = 1441; icon_state = "on"; id = "n2o_in"; on = 1; pixel_y = 1},/turf/simulated/floor/engine/n20,/area/atmos)
"bPO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall,/area/maintenance/asmaint)
"bPP" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/wall,/area/maintenance/asmaint)
"bPQ" = (/obj/structure/table,/obj/item/clothing/gloves/latex,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = -32},/obj/item/device/healthanalyzer,/obj/item/clothing/glasses/hud/health,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology)
"bPQ" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "blue"; dir = 1; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall,/area/medical/virology)
"bPR" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/item/device/radio/headset/headset_med,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/medical/virology)
"bPS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/virology)
"bPT" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -4923,7 +4923,7 @@
"bQI" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/camera{c_tag = "Atmospherics West"; dir = 8; network = list("SS13")},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple{pipe_color = "red"; icon_state = "intact-r"; level = 2},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor,/area/atmos)
"bQJ" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/atmospherics/binary/pump{dir = 0; icon_state = "intact_off"; name = "Air to Port"; on = 0},/obj/machinery/light{dir = 8},/turf/simulated/floor,/area/atmos)
"bQK" = (/obj/machinery/light{dir = 4},/turf/simulated/floor,/area/atmos)
"bQL" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/flu_virion,/obj/item/weapon/reagent_containers/glass/bottle/cold{pixel_x = 3; pixel_y = 3},/obj/item/device/radio/intercom{pixel_x = -25},/obj/machinery/light{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology)
"bQL" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bQM" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Virologist"},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"bQN" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/pen/red,/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/medical/virology)
"bQO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
@@ -7553,12 +7553,15 @@
"cPm" = (/obj/machinery/mech_bay_recharge_port,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/airless{icon_state = "asteroidfloor"},/area/mine/west_outpost)
"cPn" = (/obj/structure/alien/resin,/turf/simulated/floor/airless{icon_state = "floorgrime"},/area/mine/abandoned)
"cPo" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
"cPp" = (/obj/structure/table,/obj/item/device/radio/intercom{pixel_x = -25},/obj/machinery/light{dir = 8},/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology)
"cPq" = (/obj/machinery/camera{c_tag = "Theatre Storage"},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/crew_quarters/theatre)
"cPr" = (/obj/structure/ore_box,/obj/machinery/light_construct/small{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)
"cPs" = (/obj/machinery/light_construct/small{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored)
"cPt" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical,/turf/simulated/floor,/area/mine/north_outpost)
"cPu" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor,/area/mine/north_outpost)
"cPv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/mine/north_outpost)
"cPw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/virology)
"cPx" = (/obj/structure/table,/obj/item/clothing/gloves/latex,/obj/machinery/requests_console{department = "Virology"; name = "Virology Requests Console"; pixel_x = -32},/obj/item/device/healthanalyzer,/obj/item/clothing/glasses/hud/health,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "whitegreen"},/area/medical/virology)
"cPA" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/mine/north_outpost)
"cPB" = (/obj/machinery/recharge_station,/turf/simulated/floor,/area/mine/north_outpost)
"cPC" = (/obj/structure/dispenser/oxygen,/turf/simulated/floor,/area/mine/north_outpost)
@@ -8104,8 +8107,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaXwbfWbeDbbBbfXaXwaaaaaaaaaaafaafbfYbfYbfYbfYbfYbfYbfYaaaaaabfZbgabgbbgcbgdbdkbdkbdkbdkbdkbdkbdkbdkbgebbOaVObgfbggbghbgibgjbgkbdpaTpaTpbglbgmbgnbhNbnZbbabbabnYbbabpqboabgqaafbgubgvbfgbgwbfgbgwbfgbgxbguaafbgybgzaYbbgAbgBbgCbgDbgEbgFbgGaCxbgHbgIbgJbgKbfqbgLbgMaZybgNbcnbfsbfubprbaXbgPaZEbgQbgRbgSaZEbgTbgUbgVbgWbgXbgYbgXbgZbhabajbhabhabhabagaZMbhcbcBbcBbfEbhdbhebhfbhgbhhbhhbhibhjbhkaZPbhlbfNbhmaZUbhnbhobhpbfSbexbhqaZUcNQcNOcNNcNOcNOcNOcNPaZWaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaXwbhsbhtbhuaZZaXwaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYaaaaaabhvbhwbdkbhxbhybhybhybhybhybhybhybhybhybhAbhBbhCbhDbhEbhFbhGbhHaXKbhIbhJbhKbhLbhMbmPbhNbhNbgqbmRbmQbmWaYVaZIbgqaaabhTbfhbfgbhVbhWbhVbfgbhXbhTaaabhYbhZaYbbiabibbicbibbidbiebgGaCxaCxaZybifbdObfqbigbihaZybiibijbikbilbimbaXbinbiobipbiqbiraZEaZFbisaZFaZFaZFbitbitbitbitbitbitbitbitbczaZMbfBbfCbfDbiubivbiwbixbiybiybiybhibcGbizaZPbiAbfNbiBaZUbiCbiDbiCbiEbexbiFaZUbmJbmJbmJbmJbmJbmJbvMaZWaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbiGbiHbiIbiJbdkbdkbdkbiKbiKbiKbiKbdkbdkbdkbdkbeKbiLaVObiMbiNbiObiPbiQaXKaVObiRbiSbjabiUbiVbiWbhSbiYbiZbhRbhQbhPbhObgOayEbjfbjgbjhbfgbhVbfgbjibjjbjkbjlbjmbjnbjobjpbibbjqbibbidbiebjraCxaCxaZybjsbdObfqbjtbjuaZybgrbcnbaXbjwbjxbjybjzbiibjAbjBbjCbjDbjEbjFbaXbjGbjHbjIbjJbjKbjLbjMbjNbjObjPbbjbbkbjQbjRbjSbjTbjUaZPbjVbiybiybjWbjXbcGbjYaZPbjZbkabkbaZUbkcbkdbkebkfbexbkgaZUcMBcNhcNhcNhcNhcNhbvMaZWaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbkhbkibkhbkjbkkbdkbdkbdkbdkbdkbdkbdkbdkbklaTjaTjbkmaVOaVObknbkobkpbkqaXKaVOaVObkrbgtbhMbktbkubkvbgobgsbgpbfbbfabfcbgqaaabkCbkCbkDbkEbkFbfgbkGbkCbkCaaabkHbkIbkIbkIbkIbkIbkIbkJbkKbkLbkMbkMaZyaZybkNbkObkPaZyaZybkQbcnbaXbaXbaXbaXbkRbaXbkTbkUbaXbaXbaXbkUbaXbaXbjHbkVbkWbkXbkYbkZblablbbitblcbldblebleblfaVCbcBaZPblibcGbcGbljblkbcGbllblmblnblnbloblpblpblqbbtblrbbtaZUaZUcMycNhbwEbzpbxUcNhbvMbeBaaaaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbltblubltblvbdkbdkbdkbiKbiKbiKbiKbdkbdkblwblxaTjblyaVOaVObknblzbhGbkqaXKbeZaVObkrbgtbazaCxaKVbkvbeYbeXbeWblIblIblAbgqaafaafbkCbkCblKblLblKbkCbkCaafaafbbQblMblNblOblPblQblRblSblTblUaCxaCxblVblWblXblYblZbmabmbbmcbmdbmcbmebmcbmcbmfbmcbmhbmgbmcbmcbmcbmibmjbmjbmkbkVbmlbkXbmmbmmbmnbmobitbczaZMbmpbmqbmrbmsbmsaZPbmtbmubmvblmbmwbcGbmxblmbmybmzbmAbmBbmCcMwcKobDUboObnGbyebxSbxRbwEbwFbxTcNhbvMbfVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbkhbkibkhbkjbkkbdkbdkbdkbdkbdkbdkbdkbdkbklaTjaTjbkmaVOaVObknbkobkpbkqaXKaVOaVObkrbgtbhMbktbkubkvbgobgsbgpbfbbfabfcbgqaaabkCbkCbkDbkEbkFbfgbkGbkCbkCaaabkHbkIbkIbkIbkIbkIbkIbkJbkKbkLbkMbkMaZyaZybkNbkObkPbNGaZybkQbcnbaXbaXbaXbaXbkRbaXbkTbkUbaXbaXbaXbkUbaXbaXbjHbkVbkWbkXbkYbkZblablbbitblcbldblebleblfaVCbcBaZPblibcGbcGbljblkbcGbllblmblnblnbloblpblpblqbbtblrbbtaZUaZUcMycNhbwEbzpbxUcNhbvMbeBaaaaafaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbltblubltblvbdkbdkbdkbiKbiKbiKbiKbdkbdkblwblxaTjblyaVOaVObknblzbhGbkqaXKbeZaVObkrbgtbazaCxaKVbkvbeYbeXbeWblIblIblAbgqaafaafbkCbkCblKblLblKbkCbkCaafaafbbQblMblNblOblPblQblRblSblTblUaCxaCxblVbmablXblYblZbMNbmbbmcbmdbmcbmebmcbmcbmfbmcbmhbmgbmcbmcbmcbmibmjbmjbmkbkVbmlbkXbmmbmmbmnbmobitbczaZMbmpbmqbmrbmsbmsaZPbmtbmubmvblmbmwbcGbmxblmbmybmzbmAbmBbmCcMwcKobDUboObnGbyebxSbxRbwEbwFbxTcNhbvMbfVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbmKbiHbmLbmMbdkbdkbdkbdkbdkbdkbdkbdkbdkblwbmNaTjbmOaWSaVObknaVObdBaVOaXKaVObiRbhKbmSbazaCxaKVbkvbgqbdAbdzbbSbbRbdybgqaaaaaaaafbkCbkCbmYbkCbkCaafaaaaaabbQbmZbnabnbbncbndbndbnebnfbngaCxaCxbnhbnibcnbkTbnjbnkbnlbnkbnmbnkbnnbnkbnobnpbjCbnqbaXbaXbaXbnrbnsbnsbntbnubnvbnwbkXbnxbnyblabmobitaZLaZMbnzbnzbnAbnzbnzaZPblmblmblmblmbnBbnCbbrblmbnDbnEbnFbnGbnGbnHbfNbfNbugbfNbrvbwDbwDbwEbwFbwEcNhbvMbfVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaabfYbfYbfYbfYbfYbfYbfYbltblubltbhwbnJbdkbdkbnKbnLbnMbnLbnLbnLbnObnPaYYbnQbnRbdsbnSbdsbnTbdtbnRbnUbnVbiSbmSbazaRXbnWbnXbgqbkBbkAblDblBblAbgqaaaaaaaafbodboebofbogbodaafaaaaaablFboibojbojbokbolbombonbkKbooaCxaCxbiibiibopbkTboqborbosbotboubovbowboxbosbotboyboybotbosaZDaZDbnsbkxbmmbkyboAbkVbkXboBboCboDboEbitboFboGboHboIboJbnGbnGboKbnGbnGboLboMboNbnGboObnGboPboQboRboSboTboUboVboVboVboVboVcAEcACcACcACcADcNqcPobfVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabfYbfYbfYbfYbfYbfYbfYboYboZboYbpabpbbpabpabpabpabpabpcaVLbdkblwbpeaTjbpfbpgbphbpibeLbpjbpkbplbpmbpjbpjbpnbazaDYbpobkvbgqbksbjvbkwbdzbkzbgqaaaaaaaafbodbptbpubpvbodaafaaaaaabbQbpwbpxbpybpzbolbombonbkKbpAaCxaCxbpBbpCbpDbkTbpEbpFbosbpGbpHbpIbpJbpKbpLbpMbpNbpNbpObosbaXbaXbnsbiXbmmbpQbpRbpSbpTbpUbpVbpVbpWbpXbpYbpZbqabqbbqcbqdbqebqdbqdbqfbqdbmDbqgbqdbqdbqdbqhbqibqjbqkcABcrpcrocMTcMPcMUbvEcrOcrNbwDbwDcqVcNhbbxbfVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -8126,11 +8129,11 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaabBHbzYbBHaaaaaaaaaaafbIcbJdbIebIebIebIebIgbJebJfbIcbJgbFYbJhbJibJjbJkbIsbJlbHxbJmbJnbJobIsbIsbIsbHobJpbIubJqbIsbJrbJsbJtbJubJvbJwbJxbJybJzbJAbJBbIBaafbJCbHzbHAbJDbIJbJEbIJbHAbJFbJGbJHbHAbIKbJIbIKbJJbIKbHEbwIbwJbJKbJKbJLbJMbJNbJObJPbJQbJRbJSbJTbJUbJVbwJbjZbjZbjZbjZbJWbwPbwPbwPbwPbJXbwPbwPbwPbwPbwPbJYbGYbmJbmJbmJbryaZWaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafaafbupbuqbEjbEhbEhbvRbvRbvRbvRbvRbvRbvRbvRbuqbuqaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaabBHbFPbBHaaaaafbJZbKabIcbKbbKcbKdbIebIebKebKfbIgbKgbKhbFYbKibKjbKkbKlbIsbIsbIsbKmbKnbIsbKobIsbKpbKqbIsbKrbKsbKtbKubKvbKwbKxbKybKzaafbKAbKBbJBbKCbIBaafbKDbHzbHAbKEbIJbJEbJIbKFbKGbJGbKHbHAbIJbKIbKJbKKbIJbHEbKLbKMbDRbDRbDRbDRbFsbKNbKObKPbFsbDRbDRbDRbDRbwJbKQbKRbKRbKRbKRbKRbKRbKRbKRbKSbKRbKRbKRbKRbKRbKTbKUbKVaZWaZWaZWaZWaaaaaaaafahDahDahDaaaaafaaaaaaaafaaaaaaaafaaaaaaaafaaaaaabypbuqbwRbuqbuqbvRbvRbvRbvRbvRbvRbvRbuqbuqaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaafaaaaaaaaabBHbzYbBHaaaaafbKWaRoaRmaRnbMnbIebIebIebIebIebLcbIcbLdbLebLfbLgbLhbLibJobIsbLjbLkbLlbLmbLnbLobLpbLqbLqbLrbLsbJrbLtbLubLvbLwbLxbLybLzbJybLAbJBbJBbIBaafbLBbHzbHAbLCbLDbLEbLFbHEbHAbLGbHAbHAbLHbLIbLJbLKbLLbLMbLNbLObLPbLQbLQbLRbLSbGEbLTbLUbLVbLWbxVbxVbxVbwJbLXaZWaZWaZWaZWaZWbmJaZWaZWaZWaZWaZWaZWbLYbLZbMabMbbMcbMdbMebMdbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMfbMgbMhbMhbMibuqbuqbvRbvRbMjbvRbvRbuqbuqaaaaafaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaabDdbzYbDdaaaaafbMkcambIcbMmbMnbIebIebMpbMqbMrbMsbIcbKhbFYbKibHhbKkbMtbMubIsbIsbMvbHjaWNbMxbMybMzbIsbIsbMAbMBbMCbMDbMEbMFbMGbMFbMHaafbIBbIBbIBbIBbIBaafbsCbHzbHAbMIbMJbMKbMLbMMbMNbMObMPbMQbMRbMSbMTbMUbMRbMVbMWbLObxVbxVbxVbMXbMYbGEbMZbGEbNabNbbxVbxVbxVbwJbLXaZWbNcbNdbNeaZWbmJaZWbNfbNgbNhbNiaZWbNjaZWbNkbNlbNhaZWaZWaZWaafaaaaaaaafahDahDahDaaaaafaaaaaaaafaaaaaaaafaaaaaaaafaafaafbNmbNnbvQbwSbupbuqbuqbvRbvSbvRbuqbuqaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNoaaaaafaafbNpbNpbNpbNpbNpbNpbNpbNpbwcbFPbwcbwcbwcbwccambIcbIcbNqbIcbIcbIcbIcbIcbIcbIcbNrbNsbKibNtbGbbHibHibNubNvbNubHjbIsbIsbIsbMzbNwbIzbIzbNxbNybNzbJsbNAbNBbNCbNDbJxbJybNEbNFbNFbIBaafbsCbHzbHAbHAbHAbLMbNGbNHbNIbNJbNKbNKbNLbNMbNKbMKbKIbNNbMWbLObxVbxVbxVbNObNPbLUbNQbGEbNRbNSbLQbLQbNTbwJbLXaZWbNUbNVbNWaZWbmJaZWbNXbNYbNZbOaaZWbObbOcbOcbOdbOebOcaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbOfbunbunbuobupbupbuqbuqbuqbuqburaaaaafaaaaafaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOgbOhbOibOjbOkbOjbOlbOmbOnbOobOpbOqbOrbNpbOsbOtbOubOubOubOubthbtgbtgbpdbohbocbnNbOwbOwbOwbOzbOAbFYbKibOBbOCbODbIzbIzbIzbOEbOFbIzbIzbOGbOHbOIbIsbOJbOKbOLbOMbIsbONbOObOPbKzaafbKAbOQbORbOSbIBaafbsCbOTbGvbGvbGvbOUbHAbOVbNMbOWbOXbOYbOZbLKbPabPbbPcbNNbMWbLObDRbDRbDRbDRbPdbPebMZbPfbPdbDRbDRbDRbDRbwJbLXaZWaZWbPgaZWaZWbmJaZWaZWaZWaZWbPhaZWbObbOcbPibPjbPkbOcaafaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaabPlbPlbPlbPlbPlbPmbPnbPobPpbPpbPobNpbMlbPrbPrbPrbPrbPrbPrbPrbPrbPsbPsbPtbPsbPsbPubyxbwcbPvbFYbKibOBbPwbPxbPybPzbLqbPAbPBbLqbLqbPCbPDbPEbPFbPGbPHbPIbPJbIsbONbPKbPLbPMbLzbJybPNbNFbNFbIBaafbPObPPbPPbPPbxDbHzbHAbPQbKKbIJbPRbPSbNIbPTbPSbPTbNIbNNbMWbLObLPbLQbLQbPUbLSbGEbLTbLUbPVbPWbxVbxVbxVbwJbLXbLYbPXbPXbPXbPXbPXbPXbPXbPXbPXbPYbPXbPZbOcbQabQbbQcbOcaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbQdbQebQfbQgbQfbQhbQibQjbQkbQlbtjbNpbMlbPrbQnbQobQpbQqbQrbQsbQnbQtbQubQvbtibPsbPsbyxbwcbQxbFYbKibQybQzbQAbQBbQCbQDbQEbQFbQEbQGbQHbQIbHibHibHibQJbIsbOLbIsbONbOObQKbKzaafbIBbIBbIBbIBbIBaafaafaafaafaafbsCbHzbHAbQLbKKbQMbQNbPSbIJbQObPSbQObQPbNNbMWbLObxVbQQbxVbQRbMYbGEbMZbGEbNabQSbxVbQQbxVbwJbLXbQTaZWbQUbQVaZWaZWaZWbQUbQWbQWbQVaZWaZWbOcbQXbQYbQZbOcaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaabDdbzYbDdaaaaafbMkcambIcbMmbMnbIebIebMpbMqbMrbMsbIcbKhbFYbKibHhbKkbMtbMubIsbIsbMvbHjaWNbMxbMybMzbIsbIsbMAbMBbMCbMDbMEbMFbMGbMFbMHaafbIBbIBbIBbIBbIBaafbsCbHzbHAbMIbMJbMKbMLbMMblWbMObMPbMQbMRbMSbMTbMUbMRbMVbMWbLObxVbxVbxVbMXbMYbGEbMZbGEbNabNbbxVbxVbxVbwJbLXaZWbNcbNdbNeaZWbmJaZWbNfbNgbNhbNiaZWbNjaZWbNkbNlbNhaZWaZWaZWaafaaaaaaaafahDahDahDaaaaafaaaaaaaafaaaaaaaafaaaaaaaafaafaafbNmbNnbvQbwSbupbuqbuqbvRbvSbvRbuqbuqaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNoaaaaafaafbNpbNpbNpbNpbNpbNpbNpbNpbwcbFPbwcbwcbwcbwccambIcbIcbNqbIcbIcbIcbIcbIcbIcbIcbNrbNsbKibNtbGbbHibHibNubNvbNubHjbIsbIsbIsbMzbNwbIzbIzbNxbNybNzbJsbNAbNBbNCbNDbJxbJybNEbNFbNFbIBaafbsCbHzbHAbHAbHAbLMbPQbQLbNIbNJbNKbNKbNLbNMbNKbMKbKIbNNbMWbLObxVbxVbxVbNObNPbLUbNQbGEbNRbNSbLQbLQbNTbwJbLXaZWbNUbNVbNWaZWbmJaZWbNXbNYbNZbOaaZWbObbOcbOcbOdbOebOcaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbOfbunbunbuobupbupbuqbuqbuqbuqburaaaaafaaaaafaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOgbOhbOibOjbOkbOjbOlbOmbOnbOobOpbOqbOrbNpbOsbOtbOubOubOubOubthbtgbtgbpdbohbocbnNbOwbOwbOwbOzbOAbFYbKibOBbOCbODbIzbIzbIzbOEbOFbIzbIzbOGbOHbOIbIsbOJbOKbOLbOMbIsbONbOObOPbKzaafbKAbOQbORbOSbIBaafbsCbOTbGvbGvbGvbOUbNHbOVbIJbOWbOXbOYbOZbLKbPabPbbPcbNNbMWbLObDRbDRbDRbDRbPdbPebMZbPfbPdbDRbDRbDRbDRbwJbLXaZWaZWbPgaZWaZWbmJaZWaZWaZWaZWbPhaZWbObbOcbPibPjbPkbOcaafaaaaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafaafaafaaaaaaaaaaaaaafaafaafaafaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaabPlbPlbPlbPlbPlbPmbPnbPobPpbPpbPobNpbMlbPrbPrbPrbPrbPrbPrbPrbPrbPsbPsbPtbPsbPsbPubyxbwcbPvbFYbKibOBbPwbPxbPybPzbLqbPAbPBbLqbLqbPCbPDbPEbPFbPGbPHbPIbPJbIsbONbPKbPLbPMbLzbJybPNbNFbNFbIBaafbPObPPbPPbPPbxDbHzbLMcPxbNMcPwbPRbPSbNIbPTbPSbPTbNIbNNbMWbLObLPbLQbLQbPUbLSbGEbLTbLUbPVbPWbxVbxVbxVbwJbLXbLYbPXbPXbPXbPXbPXbPXbPXbPXbPXbPYbPXbPZbOcbQabQbbQcbOcaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbQdbQebQfbQgbQfbQhbQibQjbQkbQlbtjbNpbMlbPrbQnbQobQpbQqbQrbQsbQnbQtbQubQvbtibPsbPsbyxbwcbQxbFYbKibQybQzbQAbQBbQCbQDbQEbQFbQEbQGbQHbQIbHibHibHibQJbIsbOLbIsbONbOObQKbKzaafbIBbIBbIBbIBbIBaafaafaafaafaafbsCbHzbHAcPpbKKbQMbQNbPSbIJbQObPSbQObQPbNNbMWbLObxVbQQbxVbQRbMYbGEbMZbGEbNabQSbxVbQQbxVbwJbLXbQTaZWbQUbQVaZWaZWaZWbQUbQWbQWbQVaZWaZWbOcbQXbQYbQZbOcaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafbQdbRabRbbRcbRdbPobRebPobRfbPobPobuAbMlbPrbQnbWobRkbQnbRlbRmbQnbRnbRobRpbUkbRrbPsbyxbwcbPvbFYbKibRsbRtbGgbRubRvbGgbRwbRxbRybGgbRzbMzazObHiccWbPJbIsbPHcdbbRDbREbRFbNDbJxbJybRGbRHbRIbIBaafaaaaaaaaaaaabJCbHzbHAbRJbQObRKbRLbRMbMIbRNbRMbRNbMIbNNbMWbLObxVbxVbxVbRObRPbLUbNQbGEbNRbRQbLQbLQbNTbwJbLXbQTaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaabRRbRSbRTbRUbRVaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbQdbRWbRXbRYbRXbRZbSabSbbScbSdbSebNpbSfbPrbSgbVBbShbQnbSibSgbSgbRnbSjbSkbtkbSmbSnbSobSpbSqbSrbSsbStbSubSvbSwbSxbSybSzbSAbSBbGgbIsbMzbRAbSCccWbSDbIsbPHcdbbONbOObSEbKzaafbKAbSFbSGbSHbIBaafaaaaaaaaaaaabKDbHzbHAbHAbSIbSJbHAbHAbHAbHAbHAbHAbHAbNNbMWbLObDRbDRbDRbDRbPdbSKbMZbSLbPdbDRbDRbDRbDRbwJbLXbSMaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaaaaafbSNbSObSNaafaaaaaaaafaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafbPlbPlbPlbPlbPlbNpbNpbNpbNpbNpbNpbNpbSPbPrbSgbSgbQnbQnbQnbSgbSQbSRbSSbSTbxwbSVbPsbyxbwcbSWbSXbSYbSZbTabTbbTcbTdbTebTfbTgbThbGgbTibTjbRAbHiccWbTkbIsbTlcdbbONbTmbTnbPMbLzbJybTobRHbRHbIBaafaaaaaaaaaaaabLBbHzbTpbHAbHAbTqbHAbTrbTsbTtbTpbTpbTpbTubMWbLObLPbLQbLQbTvbLSbGEbLTbLUbTwbTxbxVbxVbxVbwJbLXbTyaaaaaaaaaaaaaaaaafaafaaaaaaaaaaaaaaaaafbTzbRTbTzaafaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa