diff --git a/.travis.yml b/.travis.yml
index 27dae76378e..af2cfc45cc9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,7 +8,7 @@ git:
env:
global:
- BYOND_MAJOR="510"
- - BYOND_MINOR="1336"
+ - BYOND_MINOR="1346"
matrix:
- DM_MAPFILE="cyberiad"
- DM_MAPFILE="metastation"
diff --git a/README.md b/README.md
index ff8ab8f6d80..6f8195ab8ea 100644
--- a/README.md
+++ b/README.md
@@ -120,8 +120,11 @@ including addons and modifications you have made.
See [this](https://www.gnu.org/licenses/why-affero-gpl.html) for more information.
-Any files located in the `Paradise/icons/goonstation` and `Paradise/sound/goonstation`
-folders, and any of their subdirectories, are licensed under the
+Any files located in the
+`Paradise/goon`,
+`Paradise/icons/goonstation`, or
+`Paradise/sound/goonstation`
+directories, or any subdirectories of mentioned directories are licensed under the
Creative Commons 3.0 BY-NC-SA license
(https://creativecommons.org/licenses/by-nc-sa/3.0)
diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
index b50efa38848..dffbfccbf5a 100644
--- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm
@@ -111,9 +111,9 @@
"acg" = (/turf/simulated/wall/r_wall,/area/security/prison)
"ach" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/security/prison)
"aci" = (/obj/machinery/seed_extractor,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
-"acj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/flora/kirbyplants{icon_state = "applebush"; layer = 4.1; tag = "icon-applebush"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
+"acj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "applebush"; layer = 4.1; tag = "icon-applebush"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"ack" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/security/prison)
-"acl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/flora/kirbyplants{layer = 4.1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
+"acl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/twohanded/required/kirbyplants{layer = 4.1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"acm" = (/obj/machinery/biogenerator,/obj/machinery/light/small{dir = 4},/obj/machinery/camera{c_tag = "Prison Hydroponics"; network = list("SS13","Prison")},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"acn" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/security/prison)
"aco" = (/obj/machinery/portable_atmospherics/hydroponics/soil,/obj/item/seeds/ambrosiavulgarisseed,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
@@ -150,7 +150,7 @@
"acT" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{tag = "icon-warndark (NORTHEAST)"; icon_state = "warndark"; dir = 5},/area/prison/solitary{name = "Prisoner Education Chamber"})
"acU" = (/obj/item/weapon/soap/nanotrasen,/obj/item/weapon/bikehorn/rubberducky,/obj/machinery/shower{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison)
"acV" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/security/prison)
-"acW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/flora/kirbyplants{tag = "icon-plant-13"; icon_state = "plant-13"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
+"acW" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-13"; icon_state = "plant-13"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"acX" = (/obj/structure/table,/obj/item/weapon/folder,/obj/item/weapon/paper/hydroponics,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/weapon/pen,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"acY" = (/obj/structure/table,/obj/machinery/computer/library/public,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
"acZ" = (/obj/machinery/computer/arcade,/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prison)
@@ -404,7 +404,7 @@
"ahN" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/sign/pods{pixel_y = 30},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison)
"ahO" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/flasher_button{id = "insaneflash"; pixel_y = 26},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison)
"ahP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/security/prison)
-"ahQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/flora/kirbyplants{icon_state = "plant-16"; layer = 4.1; tag = "icon-plant-16"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'WARNING: Criminally Insane Inmates', describing the possible hazards of those contained within."; name = "WARNING: Criminally Insane Inmates"; pixel_y = 32},/turf/simulated/floor/plasteel,/area/security/prison)
+"ahQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-16"; layer = 4.1; tag = "icon-plant-16"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'WARNING: Criminally Insane Inmates', describing the possible hazards of those contained within."; name = "WARNING: Criminally Insane Inmates"; pixel_y = 32},/turf/simulated/floor/plasteel,/area/security/prison)
"ahR" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/security/prison)
"ahS" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/light/small{dir = 1},/obj/item/weapon/storage/secure/safe{name = "armory safe A"; pixel_x = 6; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden)
"ahT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden)
@@ -435,7 +435,7 @@
"ais" = (/obj/item/weapon/storage/toolbox/syndicate,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"ait" = (/obj/item/weapon/skeleton/r_arm,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"aiu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{name = "Solar Maintenance"; req_access = null; req_access_txt = "10; 13"},/turf/simulated/floor/plating,/area/maintenance/auxsolarport)
-"aiv" = (/obj/structure/flora/kirbyplants{icon_state = "applebush"; layer = 4.1; tag = "icon-applebush"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/security/prison)
+"aiv" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "applebush"; layer = 4.1; tag = "icon-applebush"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/security/prison)
"aiw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison)
"aix" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison)
"aiy" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/security/prison)
@@ -455,7 +455,7 @@
"aiM" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/security/prison)
"aiN" = (/obj/machinery/flasher/portable,/obj/machinery/flasher/portable,/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 29},/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden)
"aiO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden)
-"aiP" = (/obj/structure/rack,/obj/item/weapon/gun/energy/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/advtaser,/obj/item/weapon/gun/energy/advtaser{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/security/warden)
+"aiP" = (/obj/structure/rack,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun/advtaser,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = 3; pixel_y = -3},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{tag = "icon-vault (NORTH)"; icon_state = "vault"; dir = 1},/area/security/warden)
"aiQ" = (/obj/machinery/syndicatebomb/training,/turf/simulated/floor/plasteel{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/security/warden)
"aiR" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/laser,/obj/item/weapon/gun/energy/laser{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{tag = "icon-vault (EAST)"; icon_state = "vault"; dir = 4},/area/security/warden)
"aiS" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/warden)
@@ -583,7 +583,7 @@
"alk" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness{name = "\improper Recreation Area"})
"all" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l"; icon_state = "propulsion_l"},/turf/space,/area/shuttle/vox)
"alm" = (/obj/structure/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/suit/space/vox/pressure,/obj/item/clothing/head/helmet/space/vox/pressure,/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
-"aln" = (/obj/structure/rack,/obj/item/weapon/gun/launcher/spikethrower,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
+"aln" = (/obj/structure/rack,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"alo" = (/obj/machinery/door/poddoor{id_tag = "trash"; name = "disposal bay door"},/turf/simulated/floor/plating,/area/maintenance/disposal)
"alp" = (/obj/machinery/mass_driver{dir = 8; id_tag = "trash"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/disposal)
"alq" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "garbage"; name = "disposal coveyor"},/turf/simulated/floor/plating,/area/maintenance/disposal)
@@ -1326,7 +1326,7 @@
"azz" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
"azA" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/starboard)
"azB" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/maintenance/starboard)
-"azC" = (/obj/structure/flora/kirbyplants,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
+"azC" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
"azD" = (/obj/structure/spacepoddoor,/obj/machinery/door/poddoor/multi_tile/three_tile_ver{id_tag = "mechpodbay"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engine/mechanic_workshop)
"azE" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
"azF" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/maintenance/starboard)
@@ -1648,7 +1648,7 @@
"aFJ" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11},/turf/simulated/floor/plasteel,/area/crew_quarters/sleep)
"aFK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/sign/pods{pixel_x = 30; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "neutralcorner"},/area/crew_quarters/sleep)
"aFL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/starboard)
-"aFM" = (/obj/effect/decal/cleanable/cobweb,/obj/structure/flora/kirbyplants{icon_state = "plant-20"; layer = 4.1; pixel_y = 3; tag = "icon-plant-20"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering)
+"aFM" = (/obj/effect/decal/cleanable/cobweb,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-20"; layer = 4.1; pixel_y = 3; tag = "icon-plant-20"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering)
"aFN" = (/obj/item/clothing/head/helmet/space/rig/engineering,/obj/item/clothing/suit/space/rig/engineering,/obj/item/clothing/mask/breath,/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering)
"aFO" = (/obj/structure/dispenser,/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering)
"aFP" = (/obj/machinery/camera{c_tag = "Engineering - Storage"; dir = 2; network = list("SS13")},/obj/item/clothing/mask/breath,/obj/item/clothing/suit/space/rig/engineering,/obj/item/clothing/head/helmet/space/rig/engineering,/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering)
@@ -1679,7 +1679,7 @@
"aGo" = (/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 6},/area/security/nuke_storage)
"aGp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "vault"},/area/security/nuke_storage)
"aGq" = (/obj/machinery/camera/motion{c_tag = "Vault"; dir = 1; network = list("MiniSat")},/obj/machinery/light,/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 10},/area/security/nuke_storage)
-"aGr" = (/obj/structure/safe,/obj/item/weapon/storage/secure/briefcase{contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen)},/obj/item/weapon/storage/backpack/duffel{contents = newlist(/obj/item/clothing/under/lawyer,/obj/item/clothing/accessory/waistcoat,/obj/item/clothing/shoes/laceup,/obj/item/clothing/gloves/color/black,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/fedora); desc = "A large dufflebag for holding extra things. There is a NanoTrasen logo on the back."; icon_state = "duffle-syndieammo"; item_state = "duffle-syndieammo"},/obj/item/weapon/card/id/silver{access = list(12); assignment = "Reaper"; name = "Thirteen's ID Card (Reaper)"; registered_name = "Thirteen"},/obj/item/weapon/lazarus_injector,/obj/item/weapon/gun/energy/advtaser,/obj/item/weapon/gun/projectile/revolver/russian,/obj/item/ammo_box/a357,/obj/item/clothing/accessory/stethoscope,/obj/item/weapon/book{desc = "An undeniably handy book."; icon_state = "bookknock"; name = "A Simpleton's Guide to Safe-cracking with Stethoscopes"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 4},/area/security/nuke_storage)
+"aGr" = (/obj/structure/safe,/obj/item/weapon/storage/secure/briefcase{contents = newlist(/obj/item/clothing/suit/armor/vest,/obj/item/weapon/gun/projectile/automatic/pistol,/obj/item/weapon/suppressor,/obj/item/clothing/mask/balaclava,/obj/item/bodybag,/obj/item/weapon/soap/nanotrasen)},/obj/item/weapon/storage/backpack/duffel{contents = newlist(/obj/item/clothing/under/lawyer,/obj/item/clothing/accessory/waistcoat,/obj/item/clothing/shoes/laceup,/obj/item/clothing/gloves/color/black,/obj/item/clothing/glasses/sunglasses,/obj/item/clothing/head/fedora); desc = "A large dufflebag for holding extra things. There is a NanoTrasen logo on the back."; icon_state = "duffle-syndieammo"; item_state = "duffle-syndieammo"},/obj/item/weapon/card/id/silver{access = list(12); assignment = "Reaper"; name = "Thirteen's ID Card (Reaper)"; registered_name = "Thirteen"},/obj/item/weapon/lazarus_injector,/obj/item/weapon/gun/energy/gun/advtaser,/obj/item/weapon/gun/projectile/revolver/russian,/obj/item/ammo_box/a357,/obj/item/clothing/accessory/stethoscope,/obj/item/weapon/book{desc = "An undeniably handy book."; icon_state = "bookknock"; name = "A Simpleton's Guide to Safe-cracking with Stethoscopes"},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 4},/area/security/nuke_storage)
"aGs" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/simulated/shuttle/plating,/area/shuttle/siberia)
"aGt" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_security{name = "Labor Camp Shuttle Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/hallway/primary/fore)
"aGu" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id_tag = "Secure Gate"; name = "brig shutters"},/turf/simulated/floor/plating,/area/security/brig)
@@ -1955,9 +1955,9 @@
"aLE" = (/obj/structure/table,/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plasteel,/area/construction)
"aLF" = (/obj/structure/closet/toolcloset,/obj/machinery/light_construct{dir = 1},/turf/simulated/floor/plasteel,/area/construction)
"aLG" = (/obj/structure/closet/toolcloset,/turf/simulated/floor/plasteel,/area/construction)
-"aLH" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/supply)
+"aLH" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/supply)
"aLI" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/supply)
-"aLJ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/supply)
+"aLJ" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/shuttle/supply)
"aLK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/spawner/window{useFull = 1; tag = "fullWin"},/turf/simulated/floor/plating,/area/quartermaster/miningdock{name = "\improper Mining Office"})
"aLL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/mining{name = "Mining Office"; req_access_txt = "48"},/turf/simulated/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"})
"aLM" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/quartermaster/storage)
@@ -2058,7 +2058,7 @@
"aND" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/requests_console{department = "Law office"; pixel_x = 0; pixel_y = 32},/obj/machinery/newscaster{pixel_x = -31; pixel_y = 0},/turf/simulated/floor/wood,/area/lawoffice)
"aNE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5; level = 1},/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/fpmaint2{name = "Port Maintenance"})
"aNF" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/storage/briefcase{pixel_x = -3; pixel_y = 2},/obj/item/weapon/storage/secure/briefcase{pixel_x = 2; pixel_y = -2},/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/wood,/area/lawoffice)
-"aNG" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "Law Office APC"; pixel_y = 24},/obj/structure/flora/kirbyplants{icon_state = "plant-21"; layer = 4.1; tag = "icon-plant-21"},/turf/simulated/floor/wood,/area/lawoffice)
+"aNG" = (/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/obj/machinery/power/apc{dir = 1; name = "Law Office APC"; pixel_y = 24},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1; tag = "icon-plant-21"},/turf/simulated/floor/wood,/area/lawoffice)
"aNH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/wood,/area/lawoffice)
"aNI" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/fore)
"aNJ" = (/obj/structure/toilet{pixel_y = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/newscaster{pixel_x = 0; pixel_y = -32},/obj/effect/landmark{name = "blobstart"},/obj/machinery/door_control{id = "Toilet1"; name = "Lock Control"; normaldoorcontrol = 1; pixel_x = -25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/locker/locker_toilet{name = "\improper Restrooms"})
@@ -2191,7 +2191,7 @@
"aQg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload)
"aQh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/porta_turret,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai_upload)
"aQi" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/flasher{pixel_x = 0; pixel_y = 24; id = "AI"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai_upload)
-"aQj" = (/obj/structure/sign/kiddieplaque{pixel_y = 32},/obj/structure/table,/obj/machinery/camera/motion{c_tag = "AI Upload Chamber - Fore"; network = list("SS13","RD","AIUpload")},/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai_upload)
+"aQj" = (/obj/structure/sign/kiddieplaque{pixel_y = 32},/obj/structure/table,/obj/machinery/camera/motion{c_tag = "AI Upload Chamber - Fore"; network = list("SS13","RD","AIUpload")},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai_upload)
"aQk" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai_upload)
"aQl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/porta_turret,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai_upload)
"aQm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload)
@@ -2475,7 +2475,7 @@
"aVE" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/courtroom)
"aVF" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/courtroom)
"aVG" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/courtroom)
-"aVH" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/flora/kirbyplants{icon_state = "plant-03"; layer = 4.1; tag = "icon-plant-03"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/locker)
+"aVH" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-03"; layer = 4.1; tag = "icon-plant-03"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/locker)
"aVI" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/locker)
"aVJ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/locker)
"aVK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "neutralcorner"},/area/crew_quarters/locker)
@@ -2665,10 +2665,10 @@
"aZm" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 5; health = 120; icon_state = "twindow"; reinf = 0},/turf/simulated/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"})
"aZn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/airlock/engineering{name = "Arrivals Expansion Area"; req_access_txt = "32"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"})
"aZo" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"})
-"aZp" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/supply)
+"aZp" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/supply)
"aZq" = (/turf/simulated/shuttle/wall{icon_state = "swall15"; dir = 2},/area/shuttle/supply)
"aZr" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/shuttle/plating,/area/shuttle/supply)
-"aZs" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/supply)
+"aZs" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/shuttle/supply)
"aZt" = (/turf/simulated/wall,/area/quartermaster/storage)
"aZu" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Cargo Bay - Port"; dir = 4; network = list("SS13")},/obj/machinery/conveyor{dir = 2; id = "QMLoad"; movedir = 2},/turf/simulated/floor/plating,/area/quartermaster/storage)
"aZv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/quartermaster/storage)
@@ -2728,7 +2728,7 @@
"bax" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating/airless,/area/engine/engineering)
"bay" = (/obj/machinery/camera/emp_proof{c_tag = "Aft Arm - Far"; dir = 8; network = list("Singulo")},/turf/simulated/floor/plating/airless,/area/engine/engineering)
"baz" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/turf/simulated/floor/plating,/area/hallway/secondary/entry)
-"baA" = (/obj/structure/flora/kirbyplants{icon_state = "plant-13"; layer = 4.1; tag = "icon-plant-13"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
+"baA" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-13"; layer = 4.1; tag = "icon-plant-13"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"baB" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"baC" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"baD" = (/obj/structure/stool/bed/chair,/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
@@ -2766,7 +2766,7 @@
"bbj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload_foyer)
"bbk" = (/obj/machinery/door/airlock/highsecurity{name = "Secure Network Access"; req_access_txt = "19"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/turret_protected/ai_upload_foyer)
"bbl" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/turret_protected/ai_upload_foyer)
-"bbm" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/flora/kirbyplants{icon_state = "applebush"; layer = 4.1; tag = "icon-applebush"},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 9},/area/hallway/primary/central)
+"bbm" = (/obj/machinery/alarm{pixel_y = 23},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "applebush"; layer = 4.1; tag = "icon-applebush"},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 9},/area/hallway/primary/central)
"bbn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/central)
"bbo" = (/obj/structure/sign/double/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/central)
"bbp" = (/obj/structure/sign/double/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = 32},/obj/machinery/camera{c_tag = "Central Primary Hallway - Fore"; dir = 2; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 1},/area/hallway/primary/central)
@@ -2776,7 +2776,7 @@
"bbt" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel{icon_state = "redcorner"; dir = 4},/area/hallway/primary/central)
"bbu" = (/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 21},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/central)
"bbv" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 1},/area/hallway/primary/central)
-"bbw" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/flora/kirbyplants{icon_state = "plant-16"; layer = 4.1; tag = "icon-plant-16"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "neutral"},/area/hallway/primary/central)
+"bbw" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-16"; layer = 4.1; tag = "icon-plant-16"},/turf/simulated/floor/plasteel{dir = 5; icon_state = "neutral"},/area/hallway/primary/central)
"bbx" = (/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/centcom{name = "Courtroom"; opacity = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/courtroom)
"bby" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Crew Quarters Access"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"bbz" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Crew Quarters Access"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
@@ -2904,7 +2904,7 @@
"bdR" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/entry{name = "Arrivals"})
"bdS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bdT" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
-"bdU" = (/obj/structure/flora/kirbyplants{icon_state = "plant-05"; layer = 4.1; tag = "icon-plant-05"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
+"bdU" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-05"; layer = 4.1; tag = "icon-plant-05"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bdV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bdW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = 1},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (NORTH)"; icon_state = "warningcorner"; dir = 1},/area/hallway/secondary/entry{name = "Arrivals"})
"bdX" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"})
@@ -3059,7 +3059,7 @@
"bgQ" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai)
"bgR" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/wall/r_wall,/area/turret_protected/ai)
"bgS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
-"bgT" = (/obj/structure/table,/obj/structure/flora/kirbyplants{icon_state = "plant-09"; name = "Photosynthetic Potted plant"; pixel_y = 10; tag = "icon-plant-09"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai)
+"bgT" = (/obj/structure/table,/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-09"; name = "Photosynthetic Potted plant"; pixel_y = 10; tag = "icon-plant-09"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai)
"bgU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space)
"bgV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bgW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"})
@@ -3131,12 +3131,12 @@
"bik" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/ai_slipper{icon_state = "motion0"},/obj/machinery/door/window{dir = 8; icon_state = "left"; name = "Tertiary AI Core Access"; pixel_x = 0; req_access_txt = "16"},/turf/simulated/floor/bluegrid,/area/turret_protected/ai)
"bil" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/ai)
"bim" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "MiniSat Exterior Starboard-Fore"; dir = 4; network = list("MiniSat")},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"})
-"bin" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/shuttle/arrival/station)
+"bin" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/arrival/station)
"bio" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/shuttle/arrival/station)
"bip" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
"biq" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
"bir" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/shuttle/arrival/station)
-"bis" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/shuttle/arrival/station)
+"bis" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/shuttle/arrival/station)
"bit" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"})
"biu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/security/checkpoint2{name = "Customs"})
"biv" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11},/obj/structure/table/reinforced,/obj/item/weapon/book/manual/security_space_law{pixel_x = -3; pixel_y = 5},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/security/checkpoint2{name = "Customs"})
@@ -3600,7 +3600,7 @@
"brl" = (/obj/machinery/power/port_gen/pacman,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 31},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"})
"brm" = (/obj/machinery/computer/security/telescreen{dir = 2; name = "MiniSat Camera Monitor"; network = list("MiniSat","tcomm"); pixel_x = 0; pixel_y = 29},/obj/machinery/computer/station_alert,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"})
"brn" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 1; name = "Auxiliary MiniSat Distribution Port"},/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/ai_status_display{pixel_x = 0; pixel_y = 31},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"})
-"bro" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/shuttle/arrival/station)
+"bro" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/arrival/station)
"brp" = (/obj/structure/closet/emcloset,/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
"brq" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
"brr" = (/obj/structure/sign/double/map/left{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-left-MS"; pixel_y = -32},/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
@@ -3699,7 +3699,7 @@
"btg" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"})
"bth" = (/obj/machinery/door/airlock/shuttle{name = "Arrivals Shuttle Airlock"},/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
"bti" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"; dir = 2},/area/shuttle/arrival/station)
-"btj" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/shuttle/arrival/station)
+"btj" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/shuttle/arrival/station)
"btk" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = 1},/obj/machinery/camera{c_tag = "Arrivals - Station Entrance"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"btl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/hallway/secondary/entry{name = "Arrivals"})
"btm" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry{name = "Arrivals"})
@@ -4026,10 +4026,10 @@
"bzv" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bzw" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bzx" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
-"bzy" = (/obj/structure/flora/kirbyplants{icon_state = "plant-18"; layer = 4.1; tag = "icon-plant-18"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
+"bzy" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-18"; layer = 4.1; tag = "icon-plant-18"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bzz" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bzA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = 1},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry{name = "Arrivals"})
-"bzB" = (/obj/structure/flora/kirbyplants{icon_state = "plant-10"; layer = 4.1; tag = "icon-plant-10"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/primary/port)
+"bzB" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-10"; layer = 4.1; tag = "icon-plant-10"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/primary/port)
"bzC" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/primary/port)
"bzD" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/camera{c_tag = "Port Primary Hallway - Port"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/hallway/primary/port)
"bzE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 8},/area/hallway/primary/port)
@@ -4121,7 +4121,7 @@
"bBm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/rack,/obj/item/weapon/crowbar/red,/obj/item/weapon/wrench,/obj/item/clothing/head/welding,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"})
"bBn" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3; pixel_y = -3},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"})
"bBo" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 8},/area/turret_protected/tcomeast{name = "\improper MiniSat East Wing"})
-"bBp" = (/obj/structure/flora/kirbyplants{icon_state = "plant-20"; layer = 4.1; tag = "icon-plant-20"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
+"bBp" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-20"; layer = 4.1; tag = "icon-plant-20"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bBq" = (/obj/structure/stool/bed/chair,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bBr" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bBs" = (/turf/simulated/floor/plasteel{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/entry{name = "Arrivals"})
@@ -4441,7 +4441,7 @@
"bHu" = (/obj/structure/stool/bed/chair/comfy/black,/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor/wood,/area/library)
"bHv" = (/obj/machinery/vending/coffee,/obj/machinery/newscaster{pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/simulated/floor/wood,/area/library)
"bHw" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/wood,/area/library)
-"bHx" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-22"; icon_state = "plant-22"},/turf/simulated/floor/wood,/area/library)
+"bHx" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-22"; icon_state = "plant-22"},/turf/simulated/floor/wood,/area/library)
"bHy" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/bridge/meeting_room{name = "\improper Command Hallway"})
"bHz" = (/obj/machinery/door/poddoor/shutters/preopen{id_tag = "hopqueue"; name = "HoP Queue Shutters"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "loadingarea"; tag = "loading"},/area/bridge/meeting_room{name = "\improper Command Hallway"})
"bHA" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/bridge/meeting_room{name = "\improper Command Hallway"})
@@ -4496,7 +4496,7 @@
"bIx" = (/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos)
"bIy" = (/obj/machinery/microwave{pixel_x = 0; pixel_y = 4},/obj/structure/table/woodentable,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"})
"bIz" = (/obj/machinery/light/small,/obj/item/weapon/storage/box/donkpockets,/obj/structure/table/woodentable,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"})
-"bIA" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-21"; icon_state = "plant-21"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"})
+"bIA" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-21"; icon_state = "plant-21"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"})
"bIB" = (/obj/structure/filingcabinet{pixel_x = 3},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"})
"bIC" = (/obj/machinery/light/small,/obj/item/weapon/folder,/obj/item/weapon/folder,/obj/machinery/camera{c_tag = "Telecoms - Control Room"; dir = 1; network = list("SS13","tcomm")},/obj/structure/table/woodentable,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"})
"bID" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Telecoms Admin"; departmentType = 5; name = "Telecoms RC"; pixel_x = 0; pixel_y = -30},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 6},/obj/structure/table/woodentable,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/tcommsat/computer{name = "\improper Telecoms Control Room"})
@@ -4814,12 +4814,12 @@
"bOD" = (/obj/item/stack/sheet/rglass{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/device/flashlight,/obj/structure/closet/crate,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/teleporter{name = "\improper Teleporter Room"})
"bOE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/teleporter{name = "\improper Teleporter Room"})
"bOF" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/closet/crate,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/teleporter{name = "\improper Teleporter Room"})
-"bOG" = (/obj/machinery/light{dir = 1},/obj/structure/flora/kirbyplants,/turf/simulated/floor/wood,/area/blueshield)
+"bOG" = (/obj/machinery/light{dir = 1},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/wood,/area/blueshield)
"bOH" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/blueshield)
"bOI" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/wood,/area/blueshield)
"bOJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/wood,/area/blueshield)
"bOK" = (/obj/machinery/light{dir = 1},/obj/machinery/power/apc{dir = 4; name = "Blueshield Office APC"; pixel_x = 24; pixel_y = -3},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/blueshield)
-"bOL" = (/obj/machinery/light{dir = 1},/obj/structure/flora/kirbyplants,/turf/simulated/floor/wood,/area/ntrep)
+"bOL" = (/obj/machinery/light{dir = 1},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/wood,/area/ntrep)
"bOM" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/ntrep)
"bON" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/wood,/area/ntrep)
"bOO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/wood,/area/ntrep)
@@ -4958,7 +4958,7 @@
"bRr" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/telecomms/processor/preset_four,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server)
"bRs" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/telecomms/bus/preset_four,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server)
"bRt" = (/obj/machinery/blackbox_recorder,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcommsat/server)
-"bRu" = (/obj/structure/flora/kirbyplants{icon_state = "plant-06"; level = 4.1; tag = "icon-plant-06"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
+"bRu" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-06"; level = 4.1; tag = "icon-plant-06"},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bRv" = (/obj/structure/stool/bed/chair,/obj/effect/landmark/start{name = "Civilian"},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bRw" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
"bRx" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/entry{name = "Arrivals"})
@@ -5054,7 +5054,7 @@
"bTj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
"bTk" = (/obj/machinery/light_switch{name = "light switch "; dir = 2; pixel_x = 0; pixel_y = -22},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
"bTl" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/item/weapon/book/manual/security_space_law,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
-"bTm" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/sign/double/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = -32},/obj/structure/flora/kirbyplants{icon_state = "plant-03"; layer = 4.1; tag = "icon-plant-03"},/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 6},/area/hallway/secondary/entry{name = "Arrivals"})
+"bTm" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/sign/double/map/right{desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; icon_state = "map-right-MS"; pixel_y = -32},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-03"; layer = 4.1; tag = "icon-plant-03"},/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 6},/area/hallway/secondary/entry{name = "Arrivals"})
"bTn" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor/wood,/area/security/vacantoffice)
"bTo" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/turf/simulated/floor/wood,/area/security/vacantoffice)
"bTp" = (/obj/structure/mirror{pixel_x = -28},/obj/item/weapon/lipstick/black,/obj/item/weapon/lipstick/jade{pixel_x = 2; pixel_y = 2},/obj/item/weapon/lipstick/purple{pixel_x = -2; pixel_y = -2},/obj/structure/table,/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"})
@@ -5609,7 +5609,7 @@
"cdS" = (/obj/item/weapon/storage/box/lights/mixed,/turf/simulated/floor/plating{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/maintenance/fpmaint2{name = "Port Maintenance"})
"cdT" = (/turf/simulated/wall,/area/medical/medbay2{name = "Medbay Storage"})
"cdU" = (/turf/simulated/wall,/area/security/checkpoint/medical)
-"cdV" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/flora/kirbyplants{icon_state = "applebush"; layer = 4.1; tag = "icon-applebush"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central)
+"cdV" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "applebush"; layer = 4.1; tag = "icon-applebush"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central)
"cdW" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central)
"cdX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central)
"cdY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central)
@@ -5622,7 +5622,7 @@
"cef" = (/obj/machinery/camera{c_tag = "Central Primary Hallway - Aft-Starboard"; dir = 1; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/central)
"ceg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/central)
"ceh" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/central)
-"cei" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/flora/kirbyplants{icon_state = "plant-10"; layer = 4.1; tag = "icon-plant-10"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/central)
+"cei" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-10"; layer = 4.1; tag = "icon-plant-10"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "purplecorner"},/area/hallway/primary/central)
"cej" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/disposal,/obj/machinery/newscaster{pixel_y = -29},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/hallway/primary/central)
"cek" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;7;35;8;47"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = 1},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
"cel" = (/obj/effect/spawner/window{useFull = 1; tag = "fullWin"},/turf/simulated/floor/plating,/area/hallway/primary/central)
@@ -5971,7 +5971,7 @@
"ckQ" = (/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"},/area/medical/medbay{name = "Medbay Central"})
"ckR" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"},/area/medical/medbay{name = "Medbay Central"})
"ckS" = (/obj/effect/landmark/start{name = "Paramedic"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"},/area/medical/medbay{name = "Medbay Central"})
-"ckT" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-11"; icon_state = "plant-11"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"},/area/medical/medbay{name = "Medbay Central"})
+"ckT" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-11"; icon_state = "plant-11"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteyellow"},/area/medical/medbay{name = "Medbay Central"})
"ckU" = (/obj/effect/spawner/window{useFull = 1; tag = "fullWin"},/turf/simulated/floor/plating,/area/medical/medbay{name = "Medbay Central"})
"ckV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/hallway/primary/aft)
"ckW" = (/obj/machinery/autolathe{icon_state = "autolathe"; name = "public autolathe"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"})
@@ -5980,7 +5980,7 @@
"ckZ" = (/obj/structure/table,/obj/item/weapon/stock_parts/cell/potato,/obj/machinery/light,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"})
"cla" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"})
"clb" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-j2"; dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"})
-"clc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -30},/obj/structure/flora/kirbyplants{layer = 4.1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"})
+"clc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -30},/obj/item/weapon/twohanded/required/kirbyplants{layer = 4.1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"})
"cld" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"})
"cle" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"})
"clf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/checkpoint/science{name = "Security Post - Research Division"})
@@ -6016,7 +6016,7 @@
"clJ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/door/airlock/external{req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
"clK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/maintenance/aft{name = "Aft Maintenance"})
"clL" = (/obj/item/trash/pistachios,/obj/structure/closet,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
-"clM" = (/obj/structure/flora/kirbyplants{tag = "icon-plant-25"; icon_state = "plant-25"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
+"clM" = (/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-25"; icon_state = "plant-25"},/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
"clN" = (/obj/item/weapon/storage/box,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
"clO" = (/obj/structure/closet/crate,/obj/item/weapon/reagent_containers/dropper,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
"clP" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
@@ -6468,7 +6468,7 @@
"cut" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "Station Intercom (General)"; pixel_y = 20},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"})
"cuu" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurple"},/area/medical/research{name = "Research Division"})
"cuv" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"})
-"cuw" = (/obj/structure/flora/kirbyplants{icon_state = "plant-10"; layer = 4.1; tag = "icon-plant-10"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"})
+"cuw" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-10"; layer = 4.1; tag = "icon-plant-10"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"})
"cux" = (/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitepurplecorner"},/area/toxins/explab)
"cuy" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab)
"cuz" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/white,/obj/item/weapon/folder/white,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/explab)
@@ -6904,7 +6904,7 @@
"cCN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera{c_tag = "Research Division Hallway - Mech Bay"; dir = 4; network = list("SS13","RD")},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
"cCO" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"})
"cCP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"})
-"cCQ" = (/obj/machinery/power/apc{dir = 2; name = "RD Office APC"; pixel_x = 0; pixel_y = -27},/obj/structure/cable/yellow,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/structure/flora/kirbyplants/dead,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
+"cCQ" = (/obj/machinery/power/apc{dir = 2; name = "RD Office APC"; pixel_x = 0; pixel_y = -27},/obj/structure/cable/yellow,/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants/dead,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
"cCR" = (/obj/machinery/hologram/holopad,/obj/machinery/light,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
"cCS" = (/obj/structure/table,/obj/item/weapon/retractor,/obj/machinery/light{dir = 4},/obj/structure/window/reinforced/polarized{tag = "icon-rwindow (NORTH)"; icon_state = "rwindow"; dir = 1},/obj/item/weapon/hemostat,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/surgery)
"cCT" = (/obj/structure/closet/secure_closet/RD,/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/crew_quarters/hor)
@@ -7380,7 +7380,7 @@
"cLV" = (/obj/structure/sign/securearea{pixel_x = 0; pixel_y = 32},/obj/machinery/shower{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/medical/virology)
"cLW" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/iv_drip{density = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/medbay3{name = "Medbay Aft"})
"cLX" = (/obj/machinery/light/small{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = 1},/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitegreen"},/area/medical/medbay3{name = "Medbay Aft"})
-"cLY" = (/obj/structure/flora/kirbyplants{icon_state = "plant-21"; layer = 4.1; pixel_x = -3; pixel_y = 3; tag = "icon-plant-21"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreencorner"},/area/medical/medbay3{name = "Medbay Aft"})
+"cLY" = (/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-21"; layer = 4.1; pixel_x = -3; pixel_y = 3; tag = "icon-plant-21"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreencorner"},/area/medical/medbay3{name = "Medbay Aft"})
"cLZ" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"})
"cMa" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay3{name = "Medbay Aft"})
"cMb" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/surgery)
@@ -7703,14 +7703,14 @@
"cSg" = (/obj/machinery/door/morgue{name = "Relic Closet"; req_access_txt = "22"},/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/office)
"cSh" = (/obj/structure/table/woodentable,/obj/item/weapon/spellbook/oneuse/smoke{name = "mysterious old book of "},/obj/item/weapon/reagent_containers/food/drinks/bottle/holywater{name = "flask of holy water"; pixel_x = -2; pixel_y = 2},/obj/item/weapon/nullrod{pixel_x = 4},/obj/item/organ/internal/heart,/obj/item/device/soulstone,/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/chapel/office)
"cSi" = (/obj/machinery/door/airlock/maintenance{name = "Chapel Maintenance Access "; req_access_txt = "0"; req_one_access_txt = "12;27"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
-"cSj" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Departure Lounge - Port Fore"; dir = 4; network = list("SS13")},/obj/structure/flora/kirbyplants{icon_state = "plant-24"; layer = 4.1; tag = "icon-plant-24"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
+"cSj" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/camera{c_tag = "Departure Lounge - Port Fore"; dir = 4; network = list("SS13")},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-24"; layer = 4.1; tag = "icon-plant-24"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cSk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cSl" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 2},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cSm" = (/turf/simulated/floor/plasteel{icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cSn" = (/turf/simulated/floor/plasteel{icon_state = "warningcorner"; dir = 1},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cSo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cSp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
-"cSq" = (/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Departure Lounge - Starboard Fore"; dir = 8; network = list("SS13")},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/flora/kirbyplants{icon_state = "plant-14"; layer = 4.1; tag = "icon-plant-14"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
+"cSq" = (/obj/machinery/light{dir = 4},/obj/machinery/camera{c_tag = "Departure Lounge - Starboard Fore"; dir = 8; network = list("SS13")},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-14"; layer = 4.1; tag = "icon-plant-14"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cSr" = (/obj/machinery/power/apc{cell_type = 5000; dir = 2; name = "Aft Maintenance APC"; pixel_y = -24},/obj/structure/cable/yellow,/turf/simulated/floor/plating{icon_state = "warnplate"},/area/maintenance/aft{name = "Aft Maintenance"})
"cSs" = (/obj/machinery/door/poddoor/preopen{id_tag = "xeno_blastdoor"; name = "biohazard containment door"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/medical/research{name = "Research Division"})
"cSt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/door/poddoor/preopen{id_tag = "xeno_blastdoor"; name = "biohazard containment door"},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/medical/research{name = "Research Division"})
@@ -7900,14 +7900,14 @@
"cVV" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "chapel"},/area/chapel/main)
"cVW" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main)
"cVX" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main)
-"cVY" = (/obj/machinery/camera{c_tag = "Departure Lounge - Port Aft"; dir = 4; network = list("SS13")},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/flora/kirbyplants{icon_state = "plant-04"; layer = 4.1; tag = "icon-plant-04"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
+"cVY" = (/obj/machinery/camera{c_tag = "Departure Lounge - Port Aft"; dir = 4; network = list("SS13")},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-04"; layer = 4.1; tag = "icon-plant-04"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cVZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cWa" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cWb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (WEST)"; icon_state = "warningcorner"; dir = 8},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cWc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/item/device/radio/beacon,/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{id_tag = "escape_dock_north_airlock"; master_tag = "escape_dock"; pixel_y = 30; req_one_access_txt = "13"; tag_airpump = "escape_dock_north_pump"; tag_chamber_sensor = "escape_dock_north_sensor"; tag_exterior_door = "escape_dock_north_outer"; tag_interior_door = "escape_dock_north_inner"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cWd" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-warningcorner (EAST)"; icon_state = "warningcorner"; dir = 4},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cWe" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=9.5-Escape2"; location = "9-Escape"},/mob/living/simple_animal/bot/secbot{auto_patrol = 1; health = 35; maxHealth = 35; name = "Inspector Johnson"},/turf/simulated/floor/plasteel,/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
-"cWf" = (/obj/machinery/camera{c_tag = "Departure Lounge - Starboard Aft"; dir = 8; network = list("SS13")},/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/structure/flora/kirbyplants{icon_state = "plant-16"; layer = 4.1; tag = "icon-plant-16"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
+"cWf" = (/obj/machinery/camera{c_tag = "Departure Lounge - Starboard Aft"; dir = 8; network = list("SS13")},/obj/machinery/light{dir = 4},/obj/item/device/radio/intercom{frequency = 1459; name = "Station Intercom (General)"; pixel_x = 29},/obj/item/weapon/twohanded/required/kirbyplants{icon_state = "plant-16"; layer = 4.1; tag = "icon-plant-16"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/hallway/secondary/exit{name = "\improper Departure Lounge"})
"cWg" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -26; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 9; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/toxins/xenobiology{name = "\improper Secure Lab"})
"cWh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/toxins/xenobiology{name = "\improper Secure Lab"})
"cWi" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTHEAST)"; icon_state = "warnwhite"; dir = 5},/area/toxins/xenobiology{name = "\improper Secure Lab"})
@@ -8330,7 +8330,7 @@
"dej" = (/obj/structure/closet/secure_closet/psychiatrist,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/wood,/area/medical/psych)
"dek" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/carpet,/area/medical/psych)
"del" = (/obj/structure/stool/bed/chair/comfy/beige,/obj/machinery/door_control{id = "psychoffice"; name = "Privacy Shutters Control"; pixel_x = -25; pixel_y = 0},/turf/simulated/floor/carpet,/area/medical/psych)
-"dem" = (/obj/machinery/power/apc{dir = 4; name = "Psychiatrist APC"; pixel_x = 25},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/structure/flora/kirbyplants{tag = "icon-plant-25"; icon_state = "plant-25"},/turf/simulated/floor/carpet,/area/medical/psych)
+"dem" = (/obj/machinery/power/apc{dir = 4; name = "Psychiatrist APC"; pixel_x = 25},/obj/structure/cable/yellow{d2 = 8; icon_state = "0-8"},/obj/item/weapon/twohanded/required/kirbyplants{tag = "icon-plant-25"; icon_state = "plant-25"},/turf/simulated/floor/carpet,/area/medical/psych)
"den" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal,/turf/simulated/floor/plating,/area/maintenance/aft{name = "Aft Maintenance"})
"deo" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/carpet,/area/medical/psych)
"dep" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green,/turf/simulated/floor/carpet,/area/medical/psych)
diff --git a/_maps/map_files/MetaStation/z2.dmm b/_maps/map_files/MetaStation/z2.dmm
index 288ac0f9044..90fdad55ab1 100644
--- a/_maps/map_files/MetaStation/z2.dmm
+++ b/_maps/map_files/MetaStation/z2.dmm
@@ -401,7 +401,7 @@
"hK" = (/turf/unsimulated/floor/grass,/area/centcom/control)
"hL" = (/turf/unsimulated/floor{icon_state = "greencorner"; dir = 8},/area/centcom/control)
"hM" = (/turf/unsimulated/floor{icon_state = "greencorner"},/area/centcom/control)
-"hN" = (/obj/structure/flora/kirbyplants,/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/evac)
+"hN" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/unsimulated/floor{icon_state = "green"; dir = 9},/area/centcom/evac)
"hO" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
"hP" = (/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
"hQ" = (/obj/structure/rack,/turf/unsimulated/floor{dir = 1; icon_state = "green"},/area/centcom/evac)
@@ -518,7 +518,7 @@
"lv" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 8},/area/tdome/tdomeobserve)
"lw" = (/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/tdome/tdomeobserve)
"lx" = (/turf/unsimulated/floor{icon_state = "neutral"; dir = 4},/area/tdome/tdomeobserve)
-"ly" = (/obj/structure/flora/kirbyplants,/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/centcom/evac)
+"ly" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/unsimulated/floor{icon_state = "red"; dir = 10},/area/centcom/evac)
"lz" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
"lA" = (/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
"lB" = (/obj/structure/rack,/obj/item/toy/katana,/turf/unsimulated/floor{icon_state = "red"; dir = 2},/area/centcom/evac)
diff --git a/_maps/map_files/RandomZLevels/beach.dmm b/_maps/map_files/RandomZLevels/beach.dmm
index 0a5cd703fc0..04512b660bf 100644
--- a/_maps/map_files/RandomZLevels/beach.dmm
+++ b/_maps/map_files/RandomZLevels/beach.dmm
@@ -19,7 +19,7 @@
"as" = (/obj/structure/boulder,/turf/unsimulated/beach/water/deep/sand_floor,/area/awaymission/undersea)
"at" = (/obj/item/flag/cult,/turf/unsimulated/beach/water/deep/wood_floor,/area/awaymission/undersea)
"au" = (/obj/structure/mineral_door/sandstone,/obj/structure/barricade/wooden,/turf/unsimulated/beach/water/deep/wood_floor,/area/awaymission/undersea)
-"av" = (/obj/item/weapon/crossbowframe,/turf/unsimulated/beach/water/deep/sand_floor,/area/awaymission/undersea)
+"av" = (/turf/unsimulated/beach/water/deep/sand_floor,/area/awaymission/undersea)
"aw" = (/obj/item/toy/eight_ball/conch,/turf/unsimulated/beach/water/deep/wood_floor,/area/awaymission/undersea)
"ax" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/beach/water/deep/wood_floor,/area/awaymission/undersea)
"ay" = (/obj/structure/closet/cabinet,/turf/unsimulated/beach/water/deep/wood_floor,/area/awaymission/undersea)
diff --git a/_maps/map_files/RandomZLevels/blackmarketpackers.dmm b/_maps/map_files/RandomZLevels/blackmarketpackers.dmm
index e68167fea13..5003686f08a 100644
--- a/_maps/map_files/RandomZLevels/blackmarketpackers.dmm
+++ b/_maps/map_files/RandomZLevels/blackmarketpackers.dmm
@@ -20,7 +20,7 @@
"at" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship/Fore)
"au" = (/obj/machinery/light/small,/turf/simulated/floor/engine,/area/awaymission/BMPship/Fore)
"av" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"},/area/awaymission/BMPship/Fore)
-"aw" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/awaymission/BMPship/Aft)
+"aw" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/awaymission/BMPship/Fore)
"ax" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission/BMPship/Aft)
"ay" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"},/area/awaymission/BMPship/Aft)
"az" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"},/area/awaymission/BMPship/Aft)
@@ -28,7 +28,7 @@
"aB" = (/obj/machinery/door/airlock/silver{locked = 1},/turf/simulated/floor/plating{tag = "icon-panelscorched"; icon_state = "panelscorched"},/area/awaymission/BMPship/Aft)
"aC" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall4"},/area/awaymission/BMPship/Aft)
"aD" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/awaymission/BMPship/Aft)
-"aE" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/awaymission/BMPship/Aft)
+"aE" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/awaymission/BMPship/Aft)
"aF" = (/turf/simulated/shuttle/wall,/area/awaymission/BMPship/Aft)
"aG" = (/obj/structure/stool/bed/roller,/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
"aH" = (/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
@@ -116,7 +116,7 @@
"cl" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission/BMPship/Midship)
"cm" = (/turf/simulated/shuttle/wall{tag = "icon-swall13"; icon_state = "swall13"},/area/awaymission/BMPship/Midship)
"cn" = (/turf/simulated/shuttle/wall{tag = "icon-swall15"; icon_state = "swall15"},/area/awaymission/BMPship/Aft)
-"co" = (/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "packerMed"},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
+"co" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/awaymission/BMPship/Aft)
"cp" = (/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "packerMed"},/turf/simulated/floor/plating/airless,/area/awaymission/BMPship/Aft)
"cq" = (/obj/structure/largecrate,/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/awaymission/BMPship/Aft)
"cr" = (/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft)
@@ -128,7 +128,7 @@
"cx" = (/obj/machinery/door_control{id = "packerCargo"; pixel_y = -24},/obj/machinery/light/small,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft)
"cy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/awaymission/BMPship/Aft)
"cz" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/awaymission/BMPship/Aft)
-"cA" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/awaymission/BMPship/Fore)
+"cA" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/awaymission/BMPship/Fore)
"cB" = (/turf/simulated/floor/plasteel{tag = "icon-carpet"; icon_state = "carpet"},/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/awaymission/BMPship/Fore)
"cC" = (/turf/simulated/floor/plasteel{tag = "icon-carpet"; icon_state = "carpet"},/area/awaymission/BMPship/Fore)
"cD" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc/noalarm{dir = 1; locked = 0; pixel_y = 24; req_access = ""},/turf/simulated/floor/plasteel{tag = "icon-carpet"; icon_state = "carpet"},/area/awaymission/BMPship/Fore)
@@ -277,7 +277,7 @@
"fq" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/shuttle/plating,/area/awaymission/BMPship/Aft)
"fr" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility/full,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/awaymission/BMPship/Aft)
"fs" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/awaymission/BMPship/Aft)
-"ft" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/awaymission/BMPship/Aft)
+"ft" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/awaymission/BMPship/Aft)
"fu" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel{tag = "icon-carpet15-7 (EAST)"; icon_state = "carpet15-7"; dir = 4},/area/awaymission/BMPship/Fore)
"fv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{tag = "icon-carpet15-13 (EAST)"; icon_state = "carpet15-13"; dir = 4},/area/awaymission/BMPship/Fore)
"fw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{tag = "icon-carpet15-7 (EAST)"; icon_state = "carpet15-7"; dir = 4},/area/awaymission/BMPship/Fore)
@@ -317,7 +317,7 @@
"ge" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/awaymission/BMPship/Aft)
"gf" = (/obj/structure/mopbucket,/turf/simulated/shuttle/plating,/area/awaymission/BMPship/Aft)
"gg" = (/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/kitchen/knife,/turf/simulated/shuttle/plating,/area/awaymission/BMPship/Aft)
-"gh" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/awaymission/BMPship/Fore)
+"gh" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/awaymission/BMPship/Fore)
"gi" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plasteel{tag = "icon-carpetside"; icon_state = "carpetside"},/area/awaymission/BMPship/Fore)
"gj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plasteel{tag = "icon-carpetside"; icon_state = "carpetside"},/area/awaymission/BMPship/Fore)
"gk" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/awaymission/BMPship/Midship)
@@ -334,7 +334,7 @@
"gv" = (/obj/item/stack/cable_coil,/turf/simulated/floor/plating,/area/awaymission/BMPship/Aft)
"gw" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/awaymission/BMPship/Aft)
"gx" = (/obj/item/stack/sheet/mineral/uranium{amount = 50},/turf/simulated/floor/engine,/area/awaymission/BMPship/Aft)
-"gy" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/space)
+"gy" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/space)
"gz" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/awaymission/BMPship/Fore)
"gA" = (/obj/structure/lattice,/turf/space,/area/awaymission/BMPship/Fore)
"gB" = (/turf/simulated/floor/plating/airless{tag = "icon-platingdmg3"; icon_state = "platingdmg3"},/area/awaymission/BMPship/Fore)
@@ -449,7 +449,7 @@
"iG" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship/Fore)
"iH" = (/obj/item/weapon/storage/box/matches,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/turf/simulated/floor/plating,/area/awaymission/BMPship/Fore)
"iI" = (/obj/item/weapon/contraband/poster,/turf/simulated/floor/plating,/area/awaymission/BMPship/Fore)
-"iJ" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/awaymission/BMPship/Fore)
+"iJ" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/awaymission/BMPship/Fore)
"iK" = (/turf/simulated/floor/plating,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/awaymission/BMPship/Fore)
"iL" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/grille,/turf/simulated/floor/engine,/area/awaymission/BMPship/Fore)
"iM" = (/turf/simulated/mineral/random/high_chance_clown,/area/awaymission)
@@ -503,25 +503,25 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafagagahagaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajakalamanaoaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapalalaqararaoaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaaaaaaaaaaaaaaaaaaaaaaaatakauamarararavaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasawaxaxaxaxaxaxaxaxaxayaxaxaxazaAaBaCazazaxaDaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaasaFaGaHaIaJaKaLaMaNaOaPaQaRaSaTaUaVaVaVaVaVaVaWaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafagagahagawaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajakalamanaoawaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapalalaqararaoawaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaaaaaaaaaaaaaaaaaaaaaaaatakauamarararavawaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaEaxaxaxaxaxaxaxaxaxayaxaxaxazaAaBaCazazaxaDcoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaasaFaGaHaIaJaKaLaMaNaOaPaQaRaSaTaUaVaVaVaVaVaVaWcoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafagagahagagagagagagagaiaaaaaaaaaaaaasaXaYaHaHaZaHaHaHbaaHaHbbbcbdbdbebdbdbfbgbhbdbibjaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacababacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabkblbmbnbobpbqbpbqbpbrbsaaaaaaaaaaasbtaYaHbuaHaHaHaGaHbvaNaNbwbxbybdbzbdbdbAbBbCbDbdbjaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEbFbGbnbHararararararbIaaaaaaasawaFaHbuaYaHbuaHaHaHaZaHaHaHbJbcbKbdbdbdbdbLbMbNbdbdbOaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPbQbFbnarbRbRbSbRbRbTbUaaaaaaawbVbtbuaHbWbXaHaHaHbYbZbWbYbZaPbccacbcccccdccccccccbyceaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfcgchcicjckclclclclclcmclclclcmcnaxaxaxaxaAcococpaCaxaxaxaxbVcqcrcsctcrcrcucvcwcxcyczaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAcBcCcCcDcCcEcFcGcHcIcJcKcIcLcGcMcNcOcPcQcRcMcMcMcMcScTcUcScVcWaxaxaxaxaxaxaxaxayaAcXaCcnaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAcBcYcZcYdacCcEcMdbcHdcdcdcdccLcMcMdddedededfcMcMcMcMdgdgcMdgcMdhdididjdkdldmdldnaPdodpdqdrazaxayaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAcBcCdsdtdsdudvcEcMcMcHdcdwdcdccLcMcMdxdydzdAdBcMcMcMcMcMcMcMcMcMaPdjdCdjbJdDdEdFdGaPdHdpdododIdJcWazaxaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabEbFbGbnbHararararararbIaaaaaaasaEaFaHbuaYaHbuaHaHaHaZaHaHaHbJbcbKbdbdbdbdbLbMbNbdbdbOaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabPbQbFbnarbRbRbSbRbRbTbUaaaaaaaEbVbtbuaHbWbXaHaHaHbYbZbWbYbZaPbccacbcccccdccccccccbyceaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfcgchcicjckclclclclclcmclclclcmcnaxaxaxaxaAcpcpcpaCaxaxaxaxbVcqcrcsctcrcrcucvcwcxcyczaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAcBcCcCcDcCcEcFcGcHcIcJcKcIcLcGcMcNcOcPcQcRcMcMcMcMcScTcUcScVcWaxaxaxaxaxaxaxaxayaAcXaCcncoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAcBcYcZcYdacCcEcMdbcHdcdcdcdccLcMcMdddedededfcMcMcMcMdgdgcMdgcMdhdididjdkdldmdldnaPdodpdqdrazaxaycoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAcBcCdsdtdsdudvcEcMcMcHdcdwdcdccLcMcMdxdydzdAdBcMcMcMcMcMcMcMcMcMaPdjdCdjbJdDdEdFdGaPdHdpdododIdJcWazaxcoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAcBcCcCdKdLdMdNdOcEcMcMdPdQdQdRdQdScMcMdTcMdUdVdVdVdVdVdVdVdVdVdWcMdhdjdXdjdraxaxaxaxbVdHdYdZeaebecbbedeeefaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaciegegegeheiejekelddemeneoeoeoeoeoeodWcMddcMepcMeqerererererererepcMaPdjesdjdjdjdjdjetaPeuevbdewbdexeyezeeefaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeAeBeCegcYcZcYcZeDeEeoeFererererereGeHcMeIcMepeJeKeLeKeKeKeKeMeNeOePbbdjeseQeReReSdjdjaPeTeUbdeVeWeXbJezeeefaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeYeZfaegfbdtdsdtfcdTcMcMerfdfefdfffgepfhepcMepcMfierererererererepfjfkflfmfnfofpfqdjdjaPfreUbdewbdfscWayaxftaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeYeZfaegcYfufvfwfxddcMcMerfdfdfgfffgfyeofzeofAcMcMcMcMcMfBcMcMcMepcMfCdjesfDfofofEdjdjaPfFevfoewbdfGcWazaxaEaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeYeZfaegcYfufvfwfxddcMcMerfdfdfgfffgfyeofzeofAcMcMcMcMcMfBcMcMcMepcMfCdjesfDfofofEdjdjaPfFevfoewbdfGcWazaxcoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafHfIfJegdsfKdsdtcCfLcMcMerfMfdfgfNfgepcMfOcMepcMcMfPcMcMcMcMcMcMfQdVfRfSfTfDfUfofEdjdjaPfFevfofVeWfWbbfXeeefaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabUegegegegfYegfZgadTemcMerfdfggbffgcepcMdTcMepcMeqerererererererepgdgeflfmfngffoggdjetaPeuevfobdbddJeyezeeefaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaghahagaggigjagagaggkcMcMerfgfgfgglfgepgmddcMepgngogpgqgqgqgqeMeNeOgrbJdjesgsgtgtgudjdjaPdHeUbdgvbdgwbJgxeeefaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -584,3 +584,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
+
diff --git a/_maps/map_files/RandomZLevels/centcomAway.dmm b/_maps/map_files/RandomZLevels/centcomAway.dmm
index fe4583e5be0..11cab2ce739 100644
--- a/_maps/map_files/RandomZLevels/centcomAway.dmm
+++ b/_maps/map_files/RandomZLevels/centcomAway.dmm
@@ -442,7 +442,7 @@
"iz" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/turf/simulated/floor/wood,/area/awaymission/centcomAway/courtroom)
"iA" = (/obj/structure/sign/vacuum,/turf/simulated/wall/r_wall,/area/awaymission/centcomAway/hangar)
"iB" = (/obj/machinery/door/airlock/external,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/hangar)
-"iC" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/awaymission/centcomAway/general)
+"iC" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/awaymission/centcomAway/general)
"iD" = (/obj/machinery/door/airlock/centcom,/turf/simulated/floor/plasteel{icon_state = "floor"},/area/awaymission/centcomAway/general)
"iE" = (/obj/machinery/door/airlock/centcom{name = "Centcom Security"; opacity = 1; req_access_txt = "101"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/centcomAway/general)
"iF" = (/obj/structure/closet/secure_closet/injection,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/centcomAway/courtroom)
diff --git a/_maps/map_files/RandomZLevels/moonoutpost19.dmm b/_maps/map_files/RandomZLevels/moonoutpost19.dmm
index 71c30499550..57218ff1ad2 100644
--- a/_maps/map_files/RandomZLevels/moonoutpost19.dmm
+++ b/_maps/map_files/RandomZLevels/moonoutpost19.dmm
@@ -483,7 +483,7 @@
"jo" = (/obj/effect/decal/cleanable/flour,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"jp" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/table,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{tag = "icon-cafeteria (NORTHEAST)"; icon_state = "cafeteria"; dir = 5},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"jq" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/effect/decal/cleanable/blood/oil{color = "black"},/turf/simulated/floor/plating{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "MO19 Research"})
-"jr" = (/obj/structure/flora/kirbyplants{desc = "A plastic potted plant."; layer = 4.1; pixel_y = 3},/turf/simulated/floor/plasteel{burnt = 1; dir = 8; heat_capacity = 1e+006; icon_state = "floorscorched1"; tag = "icon-floorscorched1 (WEST)"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
+"jr" = (/obj/item/weapon/twohanded/required/kirbyplants{desc = "A plastic potted plant."; layer = 4.1; pixel_y = 3},/turf/simulated/floor/plasteel{burnt = 1; dir = 8; heat_capacity = 1e+006; icon_state = "floorscorched1"; tag = "icon-floorscorched1 (WEST)"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"js" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"jt" = (/obj/structure/stool/bed/chair,/obj/effect/decal/cleanable/generic,/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"ju" = (/obj/structure/table,/obj/item/weapon/newspaper,/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
@@ -728,7 +728,7 @@
"nZ" = (/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/generic,/turf/simulated/floor/plasteel{carbon_dioxide = 48.7; dir = 2; heat_capacity = 1e+006; icon_state = "neutralcorner"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"oa" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{carbon_dioxide = 48.7; heat_capacity = 1e+006; icon_plating = "asteroidplating"; icon_state = "asteroidplating"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0})
"ob" = (/obj/structure/stool/bed/chair/comfy/black,/turf/simulated/floor/plating{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
-"oc" = (/obj/structure/flora/kirbyplants{desc = "A plastic potted plant."; layer = 4.1; pixel_y = 3},/turf/simulated/floor/plasteel{carbon_dioxide = 48.7; heat_capacity = 1e+006; icon_state = "neutral"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
+"oc" = (/obj/item/weapon/twohanded/required/kirbyplants{desc = "A plastic potted plant."; layer = 4.1; pixel_y = 3},/turf/simulated/floor/plasteel{carbon_dioxide = 48.7; heat_capacity = 1e+006; icon_state = "neutral"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a1{has_gravity = 1; name = "MO19 Arrivals"})
"od" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plating{carbon_dioxide = 48.7; heat_capacity = 1e+006; icon_plating = "asteroidplating"; icon_state = "asteroidplating"; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0})
"oe" = (/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating/airless/asteroid{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0})
"of" = (/obj/item/trash/candy,/turf/simulated/floor/plating/airless/asteroid{carbon_dioxide = 48.7; heat_capacity = 1e+006; nitrogen = 13.2; oxygen = 32.4; temperature = 251},/area/awaycontent/a3{always_unpowered = 1; ambientsounds = list('sound/ambience/ambimine.ogg'); has_gravity = 1; name = "Khonsu 19"; power_environ = 0; power_equip = 0; power_light = 0; poweralm = 0})
diff --git a/_maps/map_files/RandomZLevels/spacebattle.dmm b/_maps/map_files/RandomZLevels/spacebattle.dmm
index 9f278c80c36..0baeb1bcaf4 100644
--- a/_maps/map_files/RandomZLevels/spacebattle.dmm
+++ b/_maps/map_files/RandomZLevels/spacebattle.dmm
@@ -91,11 +91,11 @@
"bM" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/awaymission/spacebattle/cruiser)
"bN" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/cruiser)
"bO" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/cruiser)
-"bP" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/awaymission/spacebattle/cruiser)
+"bP" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/awaymission/spacebattle/cruiser)
"bQ" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/awaymission/spacebattle/cruiser)
"bR" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"},/area/awaymission/spacebattle/cruiser)
"bS" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission/spacebattle/cruiser)
-"bT" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/awaymission/spacebattle/cruiser)
+"bT" = (/turf/space,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2; tag = "icon-swall_f10"},/area/awaymission/spacebattle/cruiser)
"bU" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l (EAST)"; icon_state = "burst_l"; dir = 4},/turf/space,/area/awaymission/spacebattle/cruiser)
"bV" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-engine"; icon_state = "engine"},/area/awaymission/spacebattle/cruiser)
"bW" = (/obj/machinery/computer/telecomms/monitor,/turf/simulated/floor/plasteel,/area/awaymission/spacebattle/cruiser)
@@ -170,7 +170,7 @@
"dn" = (/turf/simulated/floor/plasteel{tag = "icon-damaged4"; icon_state = "damaged4"},/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/awaymission/spacebattle/cruiser)
"do" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "spacebattlepod2"; name = "Front Hull Door"; opacity = 1; tag = "icon-pdoor0"},/turf/simulated/shuttle/plating,/area/awaymission/spacebattle/cruiser)
"dp" = (/turf/simulated/floor/plasteel{tag = "icon-damaged1"; icon_state = "damaged1"},/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/awaymission/spacebattle/cruiser)
-"dq" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/awaymission/spacebattle/cruiser)
+"dq" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/awaymission/spacebattle/cruiser)
"dr" = (/obj/effect/decal/cleanable/blood,/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission/spacebattle/cruiser)
"ds" = (/turf/simulated/shuttle/wall{tag = "icon-swall15"; icon_state = "swall15"},/area/awaymission/spacebattle/cruiser)
"dt" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"},/area/awaymission/spacebattle/cruiser)
@@ -266,7 +266,7 @@
"ff" = (/obj/machinery/door/poddoor{id_tag = "spacebattlestorage"; name = "Secure Storage"},/turf/simulated/floor/plasteel,/area/awaymission/spacebattle/cruiser)
"fg" = (/mob/living/simple_animal/hostile/syndicate/ranged,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/awaymission/spacebattle/cruiser)
"fh" = (/obj/machinery/computer/security/telescreen,/turf/simulated/shuttle/wall,/area/awaymission/spacebattle/cruiser)
-"fi" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/awaymission/spacebattle/cruiser)
+"fi" = (/turf/space,/area/awaymission/spacebattle/cruiser)
"fj" = (/obj/machinery/door/airlock/external,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/awaymission/spacebattle/syndicate4)
"fk" = (/obj/structure/closet/crate,/obj/item/clothing/glasses/material,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser)
"fl" = (/obj/structure/closet/crate,/obj/item/weapon/light/tube,/obj/item/weapon/light/tube,/obj/item/weapon/light/tube,/turf/simulated/floor/plating,/area/awaymission/spacebattle/cruiser)
@@ -407,7 +407,7 @@
"hQ" = (/obj/machinery/shower{tag = "icon-shower (WEST)"; icon_state = "shower"; dir = 8},/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission/spacebattle/cruiser)
"hR" = (/obj/structure/toilet,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission/spacebattle/cruiser)
"hS" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/fire,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/spacebattle/cruiser)
-"hT" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"},/area/awaymission/spacebattle/cruiser)
+"hT" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/awaymission/spacebattle/cruiser)
"hU" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission/spacebattle/cruiser)
"hV" = (/turf/simulated/shuttle/wall{tag = "icon-swall1"; icon_state = "swall1"},/area/awaymission/spacebattle/cruiser)
"hW" = (/obj/item/weapon/storage/firstaid/regular,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/spacebattle/cruiser)
@@ -615,13 +615,13 @@ abababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababbUbVcdbZbZbZdedededfdfdgdgdhdhdhdididicbhOhPhQcbhRcbhRcbhRcbhRcbhRcbbZbZcbgFgFgFgFgFgFgFhScbbZbZcObSbSbSbSbSeGbSbSbSbScabSbSbSbSeGbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSeHcacacphTabababababababababababababababababababababababababdqdtbZbZbZbZbZbZbZbZbZbZbZbZcGcWcWababababababababababababababababababababababababababababhphehfhfhfhfhfhfhfgXgMabababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababccbVcdbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZcbhPhPhPcbhUhVhUhVhUhVhUhVhUcbbZbZcbgFhvgFgFgFgFhWhXcbbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZcYbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZcbabababababababababababababababababababababababababababcbbZbZbZbZbZbZbZbZbZbZcYbZcVcWdbababababababababababababababababababababababababababababhphehfhfhfhfhfhfhfhghhabababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababccbVcdbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZcbhYhPhZcbhPhPhPhPhPhPiahPhPcabZchcbgFgFgFgFgFibgRgFcbbZcYbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZcbabababababababababababababababababababababababababababcbbZbZbZbZbZbZbZbZbZbZbZbZdacWcWababababababababababababababababababababababababababababhphehfhfhfhfhfhfhfhghqabababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababccbVcsbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZcbhPhPhPgDichPhPhPhPhPidhPhPcabZbZcbieifgFieifgFieifcbbZbZcrbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbShTabababababababababababababababababababababababababababdqbSbSbSbSbSbSbSbSbSbSbSbSbSbSfiababababababababababababababababababababababababababababiggXgXgXgXgXgXgXgXgXhzabababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababccbVcsbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZcbhPhPhPgDichPhPhPhPhPidhPhPcabZbZcbieifgFieifgFieifcbbZbZcrbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbSbShTabababababababababababababababababababababababababababdqbSbSbSbSbSbSbSbSbSbSbSbSbSbShTababababababababababababababababababababababababababababiggXgXgXgXgXgXgXgXgXhzabababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababccbVcsbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZcbhYhPhQhVhPhPhPhPhPhPiahPihcbbZbZcbgFgFgFgFgFgFgFgFcbbZbZcGcHcHcHcHcHcHcGababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababgLhzababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababccbVcsbZbZbZbZbZbZbZcobZbZbZbZbZbZbZbZcbhPhPhPhUhPhPhPhPhPhPhPhPihcbbZbZcbiiijikiiijikiiijcbbZbZcGcHcHcHcHcHcHcGababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababccbVcdbZbZbZbZbZbZbZbZbZilbZimcKcJbZcmcpbQbQbQbQbQbQbQbQbQbQbQbQbQeHbZbZcObSbSbSbSbSbSbSbSeHbZbZcpbQbQbQbQbQbQfiababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababccbVcdbZbZbZbZbZbZbZbZbZilbZimcKcJbZcmcpbQbQbQbQbQbQbQbQbQbQbQbQbQeHbZbZcObSbSbSbSbSbSbSbSeHbZbZcpbQbQbQbQbQbQhTababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababccbVcdbZbZbZbZbZbZbZbZbZbZbZbZbZcKincKcabZbZbZbZimbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZcbabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababiobVbWipbZbZbZbZbZbZimbZbZbZcIcIcKcmcKcabZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZchbZbZbZbZbZbZbZbZbZbZbZcbabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
-ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdqbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQeGbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbSbSbSbSbSbSbSbSbSbSbSfiabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
+ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababdqbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQeGbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbQbSbSbSbSbSbSbSbSbSbSbShTabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab
@@ -730,3 +730,4 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
+
diff --git a/_maps/map_files/RandomZLevels/spacehotel.dmm b/_maps/map_files/RandomZLevels/spacehotel.dmm
index ce1e5a290e9..e168c1ccb19 100644
--- a/_maps/map_files/RandomZLevels/spacehotel.dmm
+++ b/_maps/map_files/RandomZLevels/spacehotel.dmm
@@ -145,6 +145,7 @@
"cO" = (/obj/machinery/door_control{id = "Room103"; name = "Room103 Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet{icon_state = "carpetnoconnect"},/area/awaymission)
"cP" = (/turf/simulated/floor/plasteel,/area/awaymission)
"cQ" = (/mob/living/simple_animal/hostile/retaliate/goat,/turf/simulated/floor/plasteel,/area/awaymission)
+"cR" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/awaymission)
"cS" = (/obj/structure/stool/bed/nest,/turf/simulated/floor/carpet,/area/awaymission)
"cT" = (/obj/structure/stool/bed/alien,/obj/item/xenos_claw,/turf/simulated/floor/carpet,/area/awaymission)
"cU" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/yellow,/turf/simulated/floor/carpet,/area/awaymission)
@@ -174,7 +175,9 @@
"ds" = (/obj/machinery/door/window/southright,/obj/effect/decal/cleanable/blood/old,/turf/simulated/floor/carpet,/area/awaymission)
"dt" = (/obj/machinery/vending/dinnerware,/turf/simulated/floor/plasteel,/area/awaymission)
"du" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/structure/alien/weeds,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission)
+"dv" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/awaymission)
"dw" = (/obj/machinery/door/window/eastleft,/obj/structure/alien/weeds,/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/awaymission)
+"dx" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/awaymission)
"dy" = (/obj/machinery/light,/turf/simulated/floor/plasteel,/area/awaymission)
"dz" = (/obj/machinery/processor,/turf/simulated/floor/plasteel,/area/awaymission)
"dA" = (/obj/machinery/chem_master/condimaster,/turf/simulated/floor/plasteel,/area/awaymission)
@@ -239,12 +242,11 @@
"eH" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 8},/area/space)
"eI" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 4},/area/space)
"eJ" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/simulated/floor/plating,/area/awaymission)
-"eK" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/awaymission)
+"eK" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/awaymission)
"eL" = (/obj/effect/decal/cleanable/blood/old,/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/awaymission)
"eM" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/space)
"eN" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/awaymission)
"eO" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/plating,/area/awaymission)
-"eP" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/awaymission)
"eQ" = (/obj/effect/decal/cleanable/blood/old,/turf/simulated/shuttle/wall{icon_state = "swallc4"; dir = 2},/area/awaymission)
"eR" = (/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor,/area/awaymission)
"eS" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor,/area/awaymission)
@@ -254,11 +256,9 @@
"eW" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/old,/turf/simulated/shuttle/floor,/area/awaymission)
"eX" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor,/area/awaymission)
"eY" = (/obj/structure/window/reinforced{dir = 4},/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/old,/turf/simulated/shuttle/floor,/area/awaymission)
-"eZ" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/awaymission)
"fa" = (/turf/simulated/shuttle/wall{icon_state = "swallc1"; dir = 2},/area/awaymission)
"fb" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor,/area/awaymission)
"fc" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/decal/cleanable/blood/old,/turf/simulated/shuttle/floor,/area/awaymission)
-"fd" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/awaymission)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacadacacacacacacacacacacacabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -316,9 +316,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboaHaHaHaHbpaHbpaHexaHeEaoabaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaboaHaHaHaHaHaHaHbqexeFexaoabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeGeHeHeIaoeJaoeJaoaoaoaoaoabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabeJaoeJababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeKeLeMeHeIeNeOeNeOeNeMeHeIeNePaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeKbReQeReSeSeSbDbDbDbDbDeSeSeSeTeUeVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacReLeMeHeIeNeOeNeOeNeMeHeIeNdvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacRbReQeReSeSeSbDbDbDbDbDeSeSeSeTeUeVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabReWeXbDbDbDbDbDeSeSeSbDbDbDbDeYeUeVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZbRfabDeSeWeSbDbDeRbDbDfbfceSeTeUeVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZeNeMeHeIeNeLeLeLeNeMeHeIeNfdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadxbRfabDeSeWeSbDbDeRbDbDfbfceSeTeUeVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadxeNeMeHeIeNeLeLeLeNeMeHeIeNeKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
+
diff --git a/_maps/map_files/RandomZLevels/stationCollision.dmm b/_maps/map_files/RandomZLevels/stationCollision.dmm
index 4934529dbf1..bf7e67bcd2d 100644
--- a/_maps/map_files/RandomZLevels/stationCollision.dmm
+++ b/_maps/map_files/RandomZLevels/stationCollision.dmm
@@ -295,7 +295,7 @@
"fI" = (/turf/simulated/wall/cult,/area/awaymission/midblock)
"fJ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/midblock)
"fK" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/midblock)
-"fL" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/awaymission/arrivalblock)
+"fL" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/awaymission/arrivalblock)
"fM" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/awaymission/arrivalblock)
"fN" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/awaymission/arrivalblock)
"fO" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/awaymission/arrivalblock)
@@ -383,6 +383,7 @@
"hs" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"ht" = (/obj/structure/stool/bed/chair{dir = 1},/obj/effect/decal/remains/human,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/awaymission/arrivalblock)
"hu" = (/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
+"hv" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/awaymission/arrivalblock)
"hw" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"hx" = (/obj/machinery/door/window/southleft{name = "Windoor"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/awaymission/arrivalblock)
"hy" = (/obj/item/ammo_casing/c10mm{pixel_x = 2; pixel_y = 5},/obj/item/ammo_casing/c10mm{pixel_x = -4; pixel_y = -5},/obj/item/ammo_casing/c10mm,/turf/simulated/floor/plasteel/airless,/area/awaymission/midblock)
@@ -404,6 +405,7 @@
"hO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel,/area/awaymission/midblock)
"hP" = (/obj/effect/decal/remains/human,/obj/item/weapon/kitchen/knife/butcher,/obj/item/weapon/kitchen/knife,/obj/item/clothing/head/chefhat,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel,/area/awaymission/midblock)
"hQ" = (/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel,/area/awaymission/midblock)
+"hR" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/awaymission/arrivalblock)
"hS" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/awaymission/midblock)
"hT" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/midblock)
"hU" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/midblock)
@@ -541,7 +543,6 @@
"kz" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l"; icon_state = "propulsion_l"},/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l"; icon_state = "burst_l"},/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l"; icon_state = "propulsion_l"},/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating,/area/awaymission/arrivalblock)
"kA" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (NORTH)"; icon_state = "propulsion_l"; dir = 1},/obj/structure/window/reinforced,/turf/space,/area/awaymission/arrivalblock)
"kB" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (NORTH)"; icon_state = "propulsion_r"; dir = 1},/obj/structure/window/reinforced,/turf/space,/area/awaymission/arrivalblock)
-"kC" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/awaymission/arrivalblock)
"kD" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"kE" = (/obj/machinery/vending/hydroseeds,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"kF" = (/obj/structure/sink/kitchen{pixel_y = 32},/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
@@ -580,10 +581,8 @@
"lm" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/southblock)
"ln" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/southblock)
"lo" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/southblock)
-"lp" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/awaymission/arrivalblock)
"lq" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/awaymission/arrivalblock)
"lr" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/awaymission/arrivalblock)
-"ls" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/awaymission/arrivalblock)
"lt" = (/obj/structure/closet/crate/hydroponics,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"lu" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
"lv" = (/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/splatter,/turf/simulated/floor/plasteel,/area/awaymission/arrivalblock)
@@ -680,12 +679,13 @@ aafZgbgbgbgbgbfZhEiDilgzgzgzgzgzgzjogzgzgzjpjpiYiYjqiYiYiYiYjriYiYiYjsjtjujujuju
aafZgcgcgbgcgcfZhVhuhqjyjzjAiljBhujChuhuhuhuhuiYjDjEjFiYjGjHjHjIjJiYjKjEjujLjMjNjOjPjujQjQjRjRjSjQjTaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aafZgbgbgbgbgbfZjUjViDhqhWhujWjyhujXhuhuhuhuhuiYjYjZkaiYkbkckdkekfiYjKkgjujLkhkikjjPjujQjQjQjQjQkkjTaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aafZklklklklklfZgzkmknkokmkngzgzgzgzgzjpgzgzgziYiYiYiYiYiYiYkpiYjriYjKjEjukqkrksktkujukvjQkwjQjQjQjTaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aagakxkykykykzgaaafLkAgRkBkCaagzkDkEkFhukGjzhuiYkfjHkfiYkHjHjHkIkfiYjKjEjukJkKkLkKkMjujQkkjQkNjQjQjTaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aagakxkykykykzgaaafLkAgRkBfQaagzkDkEkFhukGjzhuiYkfjHkfiYkHjHjHkIkfiYjKjEjukJkKkLkKkMjujQkkjQkNjQjQjTaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaafZkOkPkQfZaagzhuhujzhuhujzhuiYkRjKkSiYkRjKjKjKkTiYjKjEjukUkVkWkVkXjujQjQjSjQjQkkjTaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaafZkOgbkQfZaagzhujzhujzhuhuhuiYkfkdkfkpkRjKkYkZlaiYjKjEjulbkVkWkVlcjukkjQjQldkwjQjTaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaafZkOgckQfZaagzlehulfhulghuhuiYiYiYiYiYlhjKlijKljiYjKjEjulkkVkWkVlljujujujujulmlnloaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaalplqlrlqlsaagzlthuluhulvjzhuiYlwlxlyiYkRjKlijKlziYjKlAjujujulBjujujulClDlEjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaahvlqlrlqhRaagzlthuluhulvjzhuiYlwlxlyiYkRjKlijKlziYjKlAjujujulBjujujulClDlEjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaagzltlFlGlHhuhuhuiYlIkfkfkpkRjKlJjKlKiYlLlMlNlOlOlPlOlQlRlSlTlUjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaagzgzgzgzgzgzgzgziYlVlWlXiYkfkdlYlZmaiYjKjKjKmbmbmbmbmcjulCmdmejuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYiYjujujujujuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
+
diff --git a/_maps/map_files/RandomZLevels/undergroundoutpost45.dmm b/_maps/map_files/RandomZLevels/undergroundoutpost45.dmm
index 9bae9a8215c..04d8818ad02 100644
--- a/_maps/map_files/RandomZLevels/undergroundoutpost45.dmm
+++ b/_maps/map_files/RandomZLevels/undergroundoutpost45.dmm
@@ -169,7 +169,7 @@
"dm" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
"dn" = (/obj/machinery/firealarm{dir = 2; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
"do" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
-"dp" = (/obj/structure/flora/kirbyplants{layer = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 2; heat_capacity = 1e+006; icon_state = "greencorner"; tag = "icon-greencorner"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
+"dp" = (/obj/item/weapon/twohanded/required/kirbyplants{layer = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 2; heat_capacity = 1e+006; icon_state = "greencorner"; tag = "icon-greencorner"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
"dq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
"dr" = (/obj/machinery/vending/hydronutrients,/turf/simulated/floor/plasteel{dir = 1; heat_capacity = 1e+006; icon_state = "vault"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
"ds" = (/obj/machinery/vending/hydroseeds{slogan_delay = 700},/turf/simulated/floor/plasteel{dir = 1; heat_capacity = 1e+006; icon_state = "vault"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
@@ -304,7 +304,7 @@
"fR" = (/obj/structure/table/woodentable,/obj/machinery/newscaster{pixel_x = 0; pixel_y = -28},/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
"fS" = (/obj/machinery/light/small,/obj/machinery/alarm/monitor{dir = 1; frequency = 1439; locked = 0; pixel_y = -23; req_access = null},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/dresser,/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
"fT" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
-"fU" = (/obj/structure/flora/kirbyplants{layer = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
+"fU" = (/obj/item/weapon/twohanded/required/kirbyplants{layer = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
"fV" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/machinery/camera{c_tag = "Central Hallway"; dir = 1; network = list("UO45")},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
"fW" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -28},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
"fX" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "dark"},/area/awaycontent/a1{has_gravity = 1; name = "UO45 Central Hall"})
@@ -526,7 +526,7 @@
"kf" = (/obj/machinery/suit_storage_unit/engine,/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "vault"},/area/awaycontent/a6{has_gravity = 1; name = "UO45 Gateway"})
"kg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a6{has_gravity = 1; name = "UO45 Gateway"})
"kh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a6{has_gravity = 1; name = "UO45 Gateway"})
-"ki" = (/obj/structure/flora/kirbyplants{layer = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
+"ki" = (/obj/item/weapon/twohanded/required/kirbyplants{layer = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "white"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"kj" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{tag = "icon-whitepurplecorner (EAST)"; icon_state = "whitepurplecorner"; dir = 4; heat_capacity = 1e+006},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"kk" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 1; heat_capacity = 1e+006; icon_state = "whitepurple"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"kl" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 1; heat_capacity = 1e+006; icon_state = "whitepurplecorner"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
@@ -665,7 +665,7 @@
"mO" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"mP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"mQ" = (/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
-"mR" = (/obj/effect/decal/cleanable/dirt,/obj/structure/flora/kirbyplants{layer = 5},/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
+"mR" = (/obj/effect/decal/cleanable/dirt,/obj/item/weapon/twohanded/required/kirbyplants{layer = 5},/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"mS" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/item/weapon/pen,/obj/machinery/newscaster{pixel_x = -30},/turf/simulated/floor/plasteel{dir = 9; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"mT" = (/obj/structure/table,/obj/item/weapon/book/manual/security_space_law,/turf/simulated/floor/plasteel{dir = 1; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"mU" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 4},/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
@@ -790,7 +790,7 @@
"pj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door_control{desc = "A remote control-switch whichs locks the research division down in the event of a biohazard leak or contamination."; id = "UO45_biohazard"; name = "Biohazard Door Control"; pixel_x = 0; pixel_y = -24; req_access_txt = "201"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"pk" = (/obj/structure/closet/secure_closet{icon_broken = "secbroken"; icon_closed = "sec"; icon_locked = "sec1"; icon_off = "secoff"; icon_opened = "secopen"; icon_state = "sec1"; locked = 1; name = "security officer's locker"; req_access_txt = "201"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/restraints/handcuffs,/obj/item/device/flash,/obj/item/weapon/reagent_containers/spray/pepper,/turf/simulated/floor/plasteel{dir = 6; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
"pl" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating{broken = 1; heat_capacity = 1e+006; icon_state = "platingdmg3"; tag = "icon-platingdmg3"},/area/awaycontent/a5{has_gravity = 1; name = "UO45 Research"})
-"pm" = (/obj/structure/flora/kirbyplants{layer = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 10; heat_capacity = 1e+006; icon_state = "neutral"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"})
+"pm" = (/obj/item/weapon/twohanded/required/kirbyplants{layer = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 10; heat_capacity = 1e+006; icon_state = "neutral"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"})
"pn" = (/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "neutralcorner"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"})
"po" = (/obj/machinery/light/small{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 4; heat_capacity = 1e+006; icon_state = "neutral"},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"})
"pp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock{id_tag = "awaydorm4"; name = "Dorm 4"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a2{has_gravity = 1; name = "UO45 Crew Quarters"})
@@ -893,7 +893,7 @@
"ri" = (/obj/machinery/light/small{dir = 8},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{burnt = 1; dir = 8; heat_capacity = 1e+006; icon_state = "floorscorched1"; tag = "icon-floorscorched1 (WEST)"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
"rj" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
"rk" = (/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
-"rl" = (/obj/structure/flora/kirbyplants{layer = 5},/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "yellow"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
+"rl" = (/obj/item/weapon/twohanded/required/kirbyplants{layer = 5},/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "yellow"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
"rm" = (/obj/machinery/firealarm{dir = 2; pixel_x = 0; pixel_y = 24},/obj/structure/dispenser{pixel_x = -1},/turf/simulated/floor/plasteel{dir = 9; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
"rn" = (/obj/machinery/light/small{dir = 1},/obj/structure/table,/obj/item/weapon/tank/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/weapon/tank/emergency_oxygen{pixel_x = -8; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/item/clothing/mask/breath{pixel_x = 4; pixel_y = 0},/obj/machinery/newscaster{pixel_y = 32},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 1; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
"ro" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/table,/obj/item/weapon/storage/box,/obj/item/weapon/storage/box,/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 30},/turf/simulated/floor/plasteel{dir = 5; heat_capacity = 1e+006; icon_state = "red"},/area/awaycontent/a3{has_gravity = 1; name = "UO45 Engineering"})
@@ -1149,7 +1149,7 @@
"we" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/turf/simulated/floor/carpet{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"})
"wf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"})
"wg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{burnt = 1; dir = 8; heat_capacity = 1e+006; icon_state = "floorscorched1"; tag = "icon-floorscorched1 (WEST)"},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"})
-"wh" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/flora/kirbyplants{layer = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"})
+"wh" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/weapon/twohanded/required/kirbyplants{layer = 5},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"})
"wi" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{dir = 8; heat_capacity = 1e+006; icon_state = "floorgrime"; tag = "icon-floorgrime (WEST)"},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"})
"wj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; tag = "icon-manifold-r-f (EAST)"},/turf/simulated/floor/plasteel{heat_capacity = 1e+006},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"})
"wk" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating/airless/asteroid{carbon_dioxide = 173.4; heat_capacity = 1e+006; name = "Cave Floor"; nitrogen = 135.1; oxygen = 0; temperature = 363.9; toxins = 229.8},/area/awaycontent/a4{has_gravity = 1; name = "UO45 Mining"})
diff --git a/_maps/map_files/RandomZLevels/wildwest.dmm b/_maps/map_files/RandomZLevels/wildwest.dmm
index 4cc4825b777..c716ee68a6c 100644
--- a/_maps/map_files/RandomZLevels/wildwest.dmm
+++ b/_maps/map_files/RandomZLevels/wildwest.dmm
@@ -311,6 +311,8 @@
"fY" = (/obj/machinery/washing_machine,/turf/simulated/floor/wood,/area/awaymission/wwmines)
"fZ" = (/obj/effect/decal/cleanable/blood/gibs/body{tag = "icon-gibup1"; icon_state = "gibup1"},/obj/structure/stool/bed/chair/wood/normal,/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/awaymission/wwmines)
"ga" = (/obj/item/weapon/hatchet,/turf/simulated/floor/wood,/area/awaymission/wwmines)
+"gb" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/awaymission/wwrefine)
+"gc" = (/turf/space,/turf/simulated/shuttle/wall{dir = 3; icon_state = "swall_f10"; layer = 2; tag = "icon-swall_f10"},/area/awaymission/wwrefine)
"gd" = (/obj/effect/landmark/corpse/syndicatecommando{mobname = "Syndicate Commando"},/turf/simulated/floor/grass,/area/awaymission/wwgov)
"ge" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{tag = "icon-fwindow (NORTH)"; icon_state = "fwindow"; dir = 1},/obj/structure/grille,/obj/structure/window/reinforced{tag = "icon-fwindow (WEST)"; icon_state = "fwindow"; dir = 8},/turf/simulated/floor/plasteel,/area/awaymission/wwrefine)
"gf" = (/obj/structure/window/reinforced{tag = "icon-fwindow (WEST)"; icon_state = "fwindow"; dir = 8},/obj/structure/window/reinforced{tag = "icon-fwindow (NORTH)"; icon_state = "fwindow"; dir = 1},/obj/structure/grille,/turf/simulated/floor/plasteel,/area/awaymission/wwrefine)
@@ -321,19 +323,17 @@
"gk" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/turf/simulated/floor/grass,/area/awaymission/wwgov)
"gl" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{tag = "icon-fwindow (EAST)"; icon_state = "fwindow"; dir = 4},/obj/structure/window/reinforced{tag = "icon-fwindow (WEST)"; icon_state = "fwindow"; dir = 8},/obj/structure/grille,/turf/simulated/floor/plasteel,/area/awaymission/wwrefine)
"gm" = (/obj/effect/decal/cleanable/blood,/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/turf/simulated/mineral,/area/awaymission/wwmines)
-"gn" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"},/area/awaymission/wwrefine)
+"gn" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/awaymission/wwrefine)
"go" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"},/area/awaymission/wwrefine)
"gp" = (/turf/simulated/shuttle/wall{tag = "icon-swall8"; icon_state = "swall8"},/area/awaymission/wwrefine)
"gq" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle{tag = "icon-floor2"; icon_state = "floor2"},/area/awaymission/wwrefine)
"gr" = (/turf/simulated/shuttle/wall{tag = "icon-swall4"; icon_state = "swall4"},/area/awaymission/wwrefine)
-"gs" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"},/area/awaymission/wwrefine)
+"gs" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/awaymission/wwrefine)
"gt" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"},/area/awaymission/wwrefine)
"gu" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle{tag = "icon-floor2"; icon_state = "floor2"},/area/awaymission/wwrefine)
"gv" = (/turf/simulated/shuttle{tag = "icon-floor2"; icon_state = "floor2"},/area/awaymission/wwrefine)
-"gw" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"},/area/awaymission/wwrefine)
"gx" = (/turf/simulated/shuttle/wall{tag = "icon-swallc1"; icon_state = "swallc1"},/area/awaymission/wwrefine)
"gy" = (/turf/simulated/shuttle/wall{tag = "icon-swallc2"; icon_state = "swallc2"},/area/awaymission/wwrefine)
-"gz" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"},/area/awaymission/wwrefine)
"gA" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/plating/ironsand{tag = "icon-ironsand1"; icon_state = "ironsand1"},/area/awaymission/wwmines)
"gB" = (/obj/structure/table/reinforced,/obj/item/clothing/suit/space/syndicate/black/orange,/obj/item/clothing/head/helmet/space/syndicate/black/orange,/obj/item/clothing/mask/gas/syndicate,/obj/item/weapon/tank/oxygen,/turf/simulated/shuttle{tag = "icon-floor2"; icon_state = "floor2"},/area/awaymission/wwrefine)
"gC" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{tag = "icon-fwindow"; icon_state = "fwindow"},/turf/simulated/shuttle{tag = "icon-floor2"; icon_state = "floor2"},/area/awaymission/wwrefine)
@@ -626,15 +626,15 @@ aaaaaaaaaaaaaaaaaaaaaaaabTfAftftftftftftftftftftftftgdftftftftftftftftftfBbQaaaa
aaaaaaaaaaaaaaaaaaaaaaaabTfAftftftftftftftftftftftftftftftftftftftftftftfBbQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZekeZaaaaaaaaaaaGaGaGaGaNaLaLaRaRaRaRaRaRaRaRaRaRaLaLaLaLaLaLaRaRaRaRaRfUaLaLaRaRaRaRaRaRfcbsbsaRaRaRaRaRaRaRaRheaRaRheaRaRaRaRaRaRaRaRaRaRaLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaabTfAftftftftftftftfSftftftftftftftftftftftftftftfBbQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZekeZaaaaaaaaaGaGaGaGaGaNaLaRaRaRaRaRaRaRaRaRaRaRaRaRaRfUaLaLaLaRaRaReaaRaRaLaRaReaaRaLaLaLaLaLaLaLaLaRaRaLaLaLaLaLaRaRaLaLaRaRaLaRaRaRaRaLaLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaGaGaGaGaGaGaGaGaaaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaabTgigjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgkbQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagleRglaaaaaaaaaGaGaGaGaNaNaLaLaLaLaLaLaRaRaRaRaRaRaRaRaRaRaLaLaLaLaLaRaRaRaRgmaRaWaRaRfUaNaNaNaNaNaNaLaLaLaLaNaNaNaLaLaLaLaLaLaLaLaRaLaLaLaLaLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaGaGaGaGaGaGaGaGaGaGaGaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaadUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagngogpgqgrgogsaaaaaaaGaGaGaNaNaNaLaLaLaLaLaLfUaLaLaRaRaRaRaRaRaRaRaLaLaLaLaRaRaWeaaRaRaRaRaLaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaNaNaNaNaLaLaLaGaGaGaNaNaNaNaNaNaNaNaNaNaNaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaadUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUdUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagbgogpgqgrgogcaaaaaaaGaGaGaNaNaNaLaLaLaLaLaLfUaLaLaRaRaRaRaRaRaRaRaLaLaLaLaRaRaWeaaRaRaRaRaLaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaNaNaNaNaLaLaLaGaGaGaNaNaNaNaNaNaNaNaNaNaNaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagtgugugvgugugtaaaaaaaGaGaGaNaNaLaLaRaRaRaRaLaLaNaLaLaRaRaRaRaRaRaRaRaLaNaLaLaRaRaReaaRgmaLaLaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaaaGaGaGaaaaaaaaaGaGaGaGaGaGaGaGaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagtgugugvgugugtaaaaaaaaaGaGaGaLaLaRaRaRaRaRaRaLaLaNaLaLaLaRaRaRaRaRaRaLaLaLaLaLaRaWaRaRaLaGaaaaaaaaaGaGaGaGaGaaaGaaaaaaaGaGaGaGaaaGaGaGaGaGaGaGaaaaaaaGaGaGaGaGaGaGaGaGaGaGaGaaaaaaaGaaaaaaaaaaaaaaaaaGaGaGaGaGaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagtgugugvgugugtaaaaaaaaaGaGaGaLaRaRaRaRaRaRaRaRaLaLaLaNaLaLaRaRaRaRaRaRaRaRaLaLaLgmaRaRaLaGaaaaaaaaaaaGaGaGaaaaaaaaaaaaaaaGaGaaaaaaaGaGaGaaaaaaaaaaaaaGaGaGaGaGaaaaaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGaaaGaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwgxgvgvgvgygzaaaaaaaGaGaGaLaLaRaRaRaRaRaRaRaRaRaRaLaLaLaLaLaRaRaRaRaRaRaRaRaRaLaLaRaRaLaGaaaaaaaaaaaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagngxgvgvgvgygsaaaaaaaGaGaGaLaLaRaRaRaRaRaRaRaRaRaRaLaLaLaLaLaRaRaRaRaRaRaRaRaRaLaLaRaRaLaGaaaaaaaaaaaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagtgvgvgvgtaaaaaaaaaGaGaGaLaRaRaRaRaRaRaRaRaRaRaRaLfUaRaRaLaLaLaLaLaLfUaLaRaRaLaLaLaLaLaGaaaaaaaaaaaaaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagtgvgugvgtaaaaaaaaaGaGaGaLaRaRaRaRaRaRaRgAgAaRaRaRaLaRaRaRaLaLaLaLaLaLaLaLaRaRaLaNaNaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagtgBgBgBgtaaaaaaaaaGaGaGaLaRaLaLaRaRaRaRgAgAaRaRaRaRaRaRaRaRaRaRaRaRaRaLaLaRaRfUaLaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagwgogCgogzaaaaaaaaaGaGaGaLaLaLaRaRaRaRaRgAgAaRaRaRaRaRgDaRaRaRaRaRaRaRaRaRaRaRaRaLaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagngogCgogsaaaaaaaaaGaGaGaLaLaLaRaRaRaRaRgAgAaRaRaRaRaRgDaRaRaRaRaRaRaRaRaRaRaRaRaLaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGaGaNaNaNaLaLaLaLaLaLaLaLaLaLfUaLaLaLaRaRaRaRaRaRaRaRaRaRaRaRaLaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGaGaGaGaGaGaGaGaGaNaNaNaNaNaGaGaGaGaGaLaLaLaLaLfUaLaLaLaLaLaLaLaLaNaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index 16a7687f9a1..1467548e94e 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -140,7 +140,7 @@
"acJ" = (/obj/machinery/computer/secure_data,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos)
"acK" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/red,/obj/item/weapon/folder/red,/obj/item/weapon/cartridge/detective,/obj/item/device/megaphone,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos)
"acL" = (/obj/machinery/photocopier,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos)
-"acM" = (/obj/structure/flora/kirbyplants,/obj/machinery/newscaster/security_unit{pixel_y = 33},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos)
+"acM" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/newscaster/security_unit{pixel_y = 33},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos)
"acN" = (/obj/machinery/light/small,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/closet/secure_closet/injection,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"})
"acO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"})
"acP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/stool/bed,/turf/simulated/floor/plasteel{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/execution{name = "\improper Prisoner Transfer Center"})
@@ -225,7 +225,7 @@
"aeq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/security/interrogationobs)
"aer" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/camera{c_tag = "Brig Prison Hallway"; dir = 4; network = list("Prison","SS13")},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/permabrig)
"aes" = (/obj/structure/lattice,/obj/machinery/camera{c_tag = "Brig Secure Armory Exterior South"; dir = 8; network = list("SS13")},/turf/space,/area/security/permabrig)
-"aet" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/weapon/gun/energy/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/advtaser{pixel_x = 0; pixel_y = 0},/obj/item/weapon/gun/energy/advtaser{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/securearmoury)
+"aet" = (/obj/structure/rack,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = -3; pixel_y = 3},/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = 0; pixel_y = 0},/obj/item/weapon/gun/energy/gun/advtaser{pixel_x = 3; pixel_y = -3},/turf/simulated/floor/plasteel{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/securearmoury)
"aeu" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/warning_stripes/southeast,/obj/vehicle/secway,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/securearmoury)
"aev" = (/obj/structure/rack,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot,/obj/item/weapon/shield/riot,/turf/simulated/floor/plasteel{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/securearmoury)
"aew" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/carpet,/area/security/hos)
@@ -384,7 +384,7 @@
"aht" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/plasteel{icon_state = "red"},/area/security/securehallway)
"ahu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 6},/area/security/securehallway)
"ahv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/security/podbay)
-"ahw" = (/obj/structure/flora/kirbyplants,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
+"ahw" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
"ahx" = (/obj/structure/table/reinforced,/obj/item/device/flashlight,/obj/item/device/radio{pixel_y = 6},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
"ahy" = (/obj/machinery/light,/obj/structure/table/reinforced,/obj/item/weapon/folder/red,/obj/item/weapon/pen,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/item/device/radio/intercom/department/security{pixel_x = 0; pixel_y = -28},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
"ahz" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/security_space_law,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
@@ -796,7 +796,7 @@
"app" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/pod_1)
"apq" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "security_airlock"; name = "exterior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "13"},/turf/simulated/floor/plating/airless,/area/space)
"apr" = (/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/engine/vacuum,/area/escapepodbay)
-"aps" = (/turf/space,/area/shuttle/syndicate_elite/station)
+"aps" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite)
"apt" = (/obj/machinery/door/airlock/shuttle{id_tag = "s_docking_airlock"; name = "Labor Shuttle Airlock"; req_access_txt = "2"},/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 5; id = "laborcamp"; name = "labor camp shuttle"; rebuildable = 1; width = 9},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 5; id = "laborcamp_home"; name = "fore bay 1"; width = 9},/turf/simulated/shuttle/floor,/area/shuttle/siberia)
"apu" = (/obj/machinery/light,/turf/simulated/floor/plating,/area/security/prisonershuttle)
"apv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/security/prisonershuttle)
@@ -882,9 +882,9 @@
"aqX" = (/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/unary/portables_connector{layer = 2},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"aqY" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "security_airlock"; pixel_x = -25; req_access_txt = "13"; tag_airpump = "security_pump"; tag_chamber_sensor = "security_sensor"; tag_exterior_door = "security_outer"; tag_interior_door = "security_inner"},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"aqZ" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
-"ara" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/shuttle/abandoned)
+"ara" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/abandoned)
"arb" = (/turf/simulated/shuttle/wall{tag = "icon-swall14"; icon_state = "swall14"; dir = 2},/area/shuttle/abandoned)
-"arc" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/shuttle/abandoned)
+"arc" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/shuttle/abandoned)
"ard" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/abandoned)
"are" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/turf/simulated/shuttle/wall/interior{tag = "icon-swall_f9"; icon_state = "swall_f9"},/area/shuttle/abandoned)
"arf" = (/obj/machinery/sleeper{dir = 8},/obj/machinery/light{dir = 1},/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/abandoned)
@@ -1283,7 +1283,7 @@
"ayI" = (/turf/simulated/floor/plating{icon_state = "panelscorched"},/area/maintenance/fsmaint2)
"ayJ" = (/turf/simulated/wall/rust,/area/maintenance/fsmaint2)
"ayK" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
-"ayL" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plating,/area/maintenance/auxsolarport)
+"ayL" = (/obj/structure/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"ayM" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/auxsolarport)
"ayN" = (/obj/machinery/power/terminal,/obj/machinery/light/small{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/auxsolarport)
"ayO" = (/obj/structure/stool/bed,/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/fpmaint2)
@@ -1316,7 +1316,7 @@
"azp" = (/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/wood,/area/crew_quarters/mrchangs)
"azq" = (/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (NORTH)"; icon_state = "wooden_chair_wings"; dir = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/mrchangs)
"azr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/civilian/barber)
-"azs" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard)
+"azs" = (/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/auxsolarport)
"azt" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard)
"azu" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/terminal,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard)
"azv" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
@@ -1638,7 +1638,7 @@
"aFz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/wall,/area/crew_quarters/sleep)
"aFA" = (/obj/machinery/light{dir = 8},/obj/item/device/radio/intercom{frequency = 1459; name = "station intercom (General)"; pixel_x = -28},/obj/effect/landmark{name = "JoinLateCryo"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/crew_quarters/sleep)
"aFB" = (/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutral"},/area/crew_quarters/fitness)
-"aFC" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
+"aFC" = (/obj/structure/stool,/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard)
"aFD" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/landmark/start{name = "Civilian"},/obj/machinery/door/window/westright{dir = 1; name = "Boxing Ring"},/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aFE" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/wood,/area/crew_quarters/fitness)
"aFF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/fitness)
@@ -1759,7 +1759,7 @@
"aHQ" = (/obj/structure/table/woodentable,/obj/machinery/media/receiver/boombox,/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
"aHR" = (/obj/structure/table/woodentable,/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
"aHS" = (/obj/structure/table/woodentable,/obj/item/toy/cards/deck,/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
-"aHT" = (/obj/structure/disposalpipe/segment,/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
+"aHT" = (/obj/structure/stool,/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
"aHU" = (/obj/structure/table,/obj/item/weapon/paper/holodeck,/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
"aHV" = (/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aHW" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
@@ -1877,8 +1877,8 @@
"aKe" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/wall,/area/crew_quarters/sleep)
"aKf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutral"},/area/crew_quarters/fitness)
"aKg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
-"aKh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
-"aKi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
+"aKh" = (/obj/structure/disposalpipe/segment,/obj/structure/stool,/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
+"aKi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/stool,/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
"aKj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
"aKk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
"aKl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
@@ -2033,13 +2033,13 @@
"aNe" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "maint1"; name = "Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aNf" = (/turf/simulated/floor/plasteel{icon_state = "dark"},/area/maintenance/fsmaint2)
"aNg" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/maintenance/fsmaint2)
-"aNh" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/shuttle/arrival/station)
+"aNh" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/shuttle/abandoned)
"aNi" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/arrival/station)
"aNj" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
"aNk" = (/obj/structure/window/full/shuttle{icon_state = "window4"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
"aNl" = (/obj/structure/window/full/shuttle{icon_state = "window8"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
"aNm" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/arrival/station)
-"aNn" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/shuttle/arrival/station)
+"aNn" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/abandoned)
"aNo" = (/obj/machinery/camera{c_tag = "Arrivals East"; dir = 8; network = list("SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 4; icon_state = "arrival"},/area/hallway/secondary/entry)
"aNp" = (/obj/structure/closet/secure_closet/security,/obj/machinery/light{dir = 1},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 9},/area/security/checkpoint2)
"aNq" = (/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 1},/area/security/checkpoint2)
@@ -2304,7 +2304,7 @@
"aSp" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/electrical,/turf/simulated/floor/plasteel,/area/storage/primary)
"aSq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/plasteel,/area/storage/primary)
"aSr" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/plasteel,/area/storage/primary)
-"aSs" = (/obj/structure/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor/plasteel,/area/storage/primary)
+"aSs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/stool,/turf/simulated/floor/plasteel,/area/crew_quarters/fitness)
"aSt" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/storage/primary)
"aSu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plasteel,/area/storage/primary)
"aSv" = (/obj/structure/table,/obj/item/weapon/weldingtool,/obj/item/weapon/crowbar,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/turf/simulated/floor/plasteel,/area/storage/primary)
@@ -2416,7 +2416,7 @@
"aUx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/camera{c_tag = "EVA Southeast"; dir = 1; network = list("SS13")},/turf/simulated/floor/plasteel,/area/ai_monitored/storage/eva)
"aUy" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/ai_monitored/storage/eva)
"aUz" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/ai_monitored/storage/eva)
-"aUA" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/hallway/primary/central/north)
+"aUA" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/hallway/primary/central/north)
"aUB" = (/obj/machinery/light{dir = 1},/obj/machinery/camera{c_tag = "Central Hallway North"; dir = 2; network = list("SS13")},/obj/machinery/alarm{pixel_y = 23},/obj/item/flag/nt,/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/hallway/primary/central/north)
"aUC" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/central/north)
"aUD" = (/turf/simulated/floor/plasteel,/area/hallway/primary/central/north)
@@ -2466,7 +2466,7 @@
"aVv" = (/obj/structure/closet/coffin,/obj/machinery/door/window/eastleft{dir = 8; name = "Coffin Storage"; req_access_txt = "22"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/office)
"aVw" = (/obj/item/weapon/storage/bible,/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/chapel/main)
"aVx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/turf/simulated/floor/plasteel,/area/escapepodbay)
-"aVy" = (/turf/simulated/shuttle/wall{icon_state = "swall_s5"; dir = 2},/area/shuttle/arrival/station)
+"aVy" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/trade/sol)
"aVz" = (/turf/simulated/shuttle/wall{icon_state = "swall13"; dir = 2},/area/shuttle/arrival/station)
"aVA" = (/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
"aVB" = (/obj/item/device/radio/intercom{name = "station intercom (General)"; pixel_y = -28},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
@@ -2553,7 +2553,7 @@
"aXe" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/engine,/area/escapepodbay)
"aXf" = (/obj/machinery/light,/turf/simulated/floor/engine,/area/escapepodbay)
"aXg" = (/obj/structure/spacepoddoor{luminosity = 3},/obj/machinery/door/poddoor/multi_tile/four_tile_ver{id_tag = "escapepodbay"; layer = 3.1; req_one_access_txt = "13"},/turf/simulated/floor/engine,/area/escapepodbay)
-"aXh" = (/turf/simulated/shuttle/wall{icon_state = "swall_s9"; dir = 2},/area/shuttle/arrival/station)
+"aXh" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/trade/sol)
"aXi" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/hallway/secondary/entry)
"aXj" = (/obj/structure/stool/bed/chair/comfy/beige,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/entry)
"aXk" = (/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/hallway/secondary/entry)
@@ -2695,9 +2695,9 @@
"aZQ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/central/ne)
"aZR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/hallway/primary/central/ne)
"aZS" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=EVA2"; location = "Dorm"},/turf/simulated/floor/plasteel,/area/hallway/primary/central/ne)
-"aZT" = (/obj/machinery/camera{c_tag = "Bar East"; network = list("SS13")},/obj/machinery/newscaster{pixel_y = 32},/obj/structure/flora/kirbyplants,/turf/simulated/floor/wood,/area/crew_quarters/bar)
+"aZT" = (/obj/machinery/camera{c_tag = "Bar East"; network = list("SS13")},/obj/machinery/newscaster{pixel_y = 32},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"aZU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/crew_quarters/bar)
-"aZV" = (/obj/structure/stool{pixel_y = 8},/obj/effect/landmark/start{name = "Bartender"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/crew_quarters/bar)
+"aZV" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor/plasteel,/area/storage/primary)
"aZW" = (/obj/machinery/door/window{dir = 4; name = "Bar Door"; req_access_txt = "25"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/crew_quarters/bar)
"aZX" = (/turf/simulated/floor/carpet,/area/crew_quarters/bar)
"aZY" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/obj/structure/table/woodentable,/obj/item/ashtray/bronze{pixel_x = -1; pixel_y = 1},/turf/simulated/floor/carpet,/area/crew_quarters/bar)
@@ -2844,10 +2844,10 @@
"bcJ" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "bridge blast"; name = "Bridge Blast Doors"; opacity = 0},/obj/effect/spawner/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/bridge)
"bcK" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/hallway/primary/central/ne)
"bcL" = (/turf/simulated/floor/plasteel{tag = "icon-stage_stairs"; icon_state = "stage_stairs"},/area/hallway/primary/central/ne)
-"bcM" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -32},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar)
-"bcN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar)
-"bcO" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar)
-"bcP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar)
+"bcM" = (/obj/structure/stool,/obj/effect/landmark/start{name = "Bartender"},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/crew_quarters/bar)
+"bcN" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/stool,/turf/simulated/floor/wood,/area/crew_quarters/bar)
+"bcO" = (/obj/machinery/computer/security/telescreen/entertainment{pixel_x = -32},/obj/structure/stool,/turf/simulated/floor/wood,/area/crew_quarters/bar)
+"bcP" = (/obj/structure/stool,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bcQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bcR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bcS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/structure/table,/obj/item/weapon/kitchen/knife,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/kitchen)
@@ -3007,7 +3007,7 @@
"bfQ" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellowcorner"},/area/bridge)
"bfR" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel,/area/bridge)
"bfS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowcorner"},/area/bridge)
-"bfT" = (/obj/structure/table/reinforced,/obj/item/device/aicard,/obj/item/device/multitool,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/bridge)
+"bfT" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/bookcase,/obj/item/weapon/book/manual/sop_engineering,/obj/item/weapon/book/manual/sop_medical,/obj/item/weapon/book/manual/sop_science,/obj/item/weapon/book/manual/sop_security,/obj/item/weapon/book/manual/sop_service,/obj/item/weapon/book/manual/sop_supply,/obj/item/weapon/book/manual/sop_general,/obj/item/weapon/book/manual/sop_legal,/obj/item/weapon/book/manual/sop_command,/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
"bfU" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/door_control{id = "bridge blast"; name = "Bridge Blast Door Control"; pixel_x = 28; pixel_y = -2; req_access_txt = "19"},/obj/machinery/keycard_auth{pixel_x = 29; pixel_y = 8},/turf/simulated/floor/plasteel,/area/bridge)
"bfV" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/bridge)
"bfW" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "greencorner"},/area/bridge)
@@ -3057,7 +3057,7 @@
"bgO" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/security/vacantoffice)
"bgP" = (/obj/effect/decal/cleanable/generic,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/port)
"bgQ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/closet/wardrobe/white,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
-"bgR" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
+"bgR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/stool,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bgS" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"bgT" = (/obj/structure/table,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"bgU" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
@@ -3432,7 +3432,7 @@
"bnZ" = (/obj/structure/stool/bed/chair/comfy/black{dir = 4},/turf/simulated/floor/wood,/area/library)
"boa" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp/green{pixel_x = 1; pixel_y = 5},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/wood,/area/library)
"bob" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/obj/machinery/light/small,/turf/simulated/floor/wood,/area/library)
-"boc" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/flora/kirbyplants,/turf/simulated/floor/wood,/area/library)
+"boc" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/wood,/area/library)
"bod" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
"boe" = (/turf/simulated/floor/carpet{icon_state = "carpetsymbol"},/area/chapel/main)
"bof" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
@@ -3461,7 +3461,7 @@
"boC" = (/obj/machinery/conveyor{dir = 1; id = "packageSort1"},/turf/simulated/floor/plating,/area/quartermaster/office)
"boD" = (/obj/structure/stool,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/quartermaster/office)
"boE" = (/obj/machinery/atmospherics/unary/vent_pump/on,/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/quartermaster/office)
-"boF" = (/obj/machinery/conveyor_switch/oneway{id = "packageSort2"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/quartermaster/office)
+"boF" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/wall,/area/storage/tools)
"boG" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/west)
"boH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/central/west)
"boI" = (/turf/simulated/floor/plasteel{icon_state = "bluecorner"},/area/hallway/primary/central/west)
@@ -3485,13 +3485,13 @@
"bpa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"bpb" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/carpet,/area/crew_quarters/captain)
"bpc" = (/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Captain's Office APC"; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/wood,/area/crew_quarters/captain)
-"bpd" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/flora/kirbyplants,/turf/simulated/floor/wood,/area/crew_quarters/captain)
+"bpd" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"bpe" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/hallway/primary/central/ne)
"bpf" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/hallway/primary/central/ne)
"bpg" = (/obj/structure/sign/directions/evac{dir = 4},/obj/structure/sign/directions/medical{dir = 4; pixel_y = 7},/obj/structure/sign/directions/science{dir = 4},/turf/simulated/wall,/area/crew_quarters/bar)
"bph" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass{name = "Diner"},/turf/simulated/floor/plasteel,/area/crew_quarters/bar)
"bpi" = (/obj/structure/sign/barsign,/turf/simulated/wall,/area/crew_quarters/bar)
-"bpj" = (/obj/machinery/atm{pixel_x = 32; pixel_y = 0},/obj/structure/flora/kirbyplants,/turf/simulated/floor/wood,/area/crew_quarters/bar)
+"bpj" = (/obj/machinery/atm{pixel_x = 32; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/wood,/area/crew_quarters/bar)
"bpk" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard/west)
"bpl" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard/west)
"bpm" = (/obj/machinery/camera{c_tag = "Starboard Primary Hallway 2"; dir = 2; network = list("SS13")},/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard/west)
@@ -3517,7 +3517,7 @@
"bpG" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/quartermaster/office)
"bpH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/quartermaster/office)
"bpI" = (/turf/simulated/floor/plasteel,/area/quartermaster/office)
-"bpJ" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard/west)
+"bpJ" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitecorner"},/area/hallway/primary/starboard/west)
"bpK" = (/obj/structure/table,/obj/machinery/requests_console{department = "Cargo Bay"; name = "Cargo Requests Console"; departmentType = 2; pixel_y = 30},/obj/item/stack/tape_roll,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 1},/area/quartermaster/office)
"bpL" = (/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/stack/packageWrap,/obj/item/weapon/rcs,/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 5},/area/quartermaster/office)
"bpM" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/west)
@@ -3656,7 +3656,7 @@
"bsp" = (/obj/machinery/camera{c_tag = "Cargo Delivery Office"; dir = 4; network = list("SS13")},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/telepad_cargo,/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/quartermaster/office)
"bsq" = (/obj/structure/filingcabinet/filingcabinet,/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 4},/area/quartermaster/office)
"bsr" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plasteel{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/west)
-"bss" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/bookcase,/obj/item/weapon/book/manual/sop_engineering,/obj/item/weapon/book/manual/sop_medical,/obj/item/weapon/book/manual/sop_science,/obj/item/weapon/book/manual/sop_security,/obj/item/weapon/book/manual/sop_service,/obj/item/weapon/book/manual/sop_supply,/obj/item/weapon/book/manual/sop_general,/obj/item/weapon/book/manual/sop_legal,/turf/simulated/floor/plasteel{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/lawoffice)
+"bss" = (/obj/structure/table/reinforced,/obj/item/weapon/book/manual/sop_command,/obj/item/device/aicard,/obj/item/device/multitool,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/bridge)
"bst" = (/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/bridge/meeting_room)
"bsu" = (/obj/item/weapon/folder/blue,/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/bridge/meeting_room)
"bsv" = (/obj/machinery/vending/coffee,/turf/simulated/floor/wood,/area/bridge/meeting_room)
@@ -3755,7 +3755,7 @@
"buk" = (/turf/simulated/wall/r_wall,/area/medical/morgue)
"bul" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/ward)
"bum" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/hallway/primary/starboard/east)
-"bun" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/east)
+"bun" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel,/area/hallway/primary/starboard/east)
"buo" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/starboard/east)
"bup" = (/turf/simulated/wall/r_wall,/area/assembly/robotics)
"buq" = (/turf/simulated/floor/plasteel{dir = 10; icon_state = "purple"},/area/hallway/primary/starboard/east)
@@ -3790,7 +3790,7 @@
"buT" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/quartermaster/storage)
"buU" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/quartermaster/storage)
"buV" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall,/area/quartermaster/office)
-"buW" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/quartermaster/office)
+"buW" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/quartermaster/office)
"buX" = (/obj/structure/stool/bed/chair{dir = 4},/obj/effect/landmark/start{name = "Cargo Technician"},/turf/simulated/floor/plasteel,/area/quartermaster/office)
"buY" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 4},/area/quartermaster/office)
"buZ" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "Mailing Room"; req_access_txt = "50"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/quartermaster/office)
@@ -3830,7 +3830,7 @@
"bvH" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/reception)
"bvI" = (/obj/machinery/camera{c_tag = "Medbay Lobby East"; network = list("SS13")},/obj/structure/stool,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/reception)
"bvJ" = (/obj/structure/stool,/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/reception)
-"bvK" = (/obj/machinery/newscaster{pixel_x = 30},/obj/machinery/alarm{pixel_y = 26},/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/reception)
+"bvK" = (/obj/machinery/newscaster{pixel_x = 30},/obj/machinery/alarm{pixel_y = 26},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/reception)
"bvL" = (/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/bodyscanner,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room)
"bvM" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/obj/machinery/body_scanconsole,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room)
"bvN" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/camera{c_tag = "Medbay Examination Room"; network = list("SS13")},/obj/structure/stool,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room)
@@ -4760,7 +4760,7 @@
"bNB" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/hallway/primary/central/sw)
"bNC" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id_tag = "hopqueue"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "loadingarea"; tag = "loading"},/area/hallway/primary/central/sw)
"bND" = (/obj/structure/filingcabinet/chestdrawer,/obj/item/device/radio/intercom{dir = 8; name = "station intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 10},/area/crew_quarters/heads)
-"bNE" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel Requests Console"; pixel_y = -30},/obj/machinery/camera{c_tag = "Head of Personnel's Office"; dir = 1; network = list("SS13")},/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel,/area/crew_quarters/heads)
+"bNE" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Head of Personnel's Desk"; departmentType = 5; name = "Head of Personnel Requests Console"; pixel_y = -30},/obj/machinery/camera{c_tag = "Head of Personnel's Office"; dir = 1; network = list("SS13")},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel,/area/crew_quarters/heads)
"bNF" = (/obj/structure/table,/obj/machinery/photocopier/faxmachine{department = "Head of Personnel's Office"},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel,/area/crew_quarters/heads)
"bNG" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/crew_quarters/heads)
"bNH" = (/obj/machinery/blackbox_recorder,/turf/simulated/floor/bluegrid,/area/server)
@@ -4839,7 +4839,7 @@
"bPc" = (/turf/simulated/wall,/area/hallway/primary/central/sw)
"bPd" = (/obj/machinery/door/airlock/command{name = "Head of Personnel"; req_access = null; req_access_txt = "57"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/crew_quarters/heads)
"bPe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/server)
-"bPf" = (/obj/machinery/door/airlock/external{aiControlDisabled = 1; hackProof = 1; id_tag = "emergency_home"; name = "Escape Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/exit)
+"bPf" = (/obj/machinery/door/airlock/external{aiControlDisabled = 0; hackProof = 1; id_tag = "emergency_home"; name = "Escape Airlock"},/turf/simulated/floor/plating,/area/hallway/secondary/exit)
"bPg" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/engine/gravitygenerator)
"bPh" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/engineering{name = "Gravity Generator"; req_access_txt = "0"; req_one_access_txt = "10;30"},/turf/simulated/floor/plasteel{tag = "icon-vault"; icon_state = "vault"},/area/engine/gravitygenerator)
"bPi" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel,/area/hallway/primary/central/se)
@@ -5037,7 +5037,7 @@
"bSS" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/storage)
"bST" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/toxins/storage)
"bSU" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
-"bSV" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/wrapsortjunction{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"})
+"bSV" = (/obj/machinery/conveyor_switch/oneway{id = "packageSort2"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/quartermaster/office)
"bSW" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
"bSX" = (/obj/machinery/door/airlock/glass_command{name = "Research Director"; req_access_txt = "30"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"bSY" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
@@ -5094,7 +5094,7 @@
"bTX" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "cmooffice"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cmo)
"bTY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay2)
"bTZ" = (/obj/item/device/radio/intercom{frequency = 1459; name = "station intercom (General)"; pixel_x = 28},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2)
-"bUa" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/medical/cryo)
+"bUa" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/cryo)
"bUb" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/wall,/area/medical/genetics)
"bUc" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/wall,/area/medical/genetics)
"bUd" = (/obj/machinery/computer/scan_consolenew,/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{tag = "icon-whitepurple (WEST)"; icon_state = "whitepurple"; dir = 8},/area/medical/genetics)
@@ -5114,7 +5114,7 @@
"bUr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"})
"bUs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"})
"bUt" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/crew_quarters/hor)
-"bUu" = (/obj/machinery/power/apc{dir = 8; name = "RD Office APC"; pixel_x = -25},/obj/structure/cable,/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
+"bUu" = (/obj/machinery/power/apc{dir = 8; name = "RD Office APC"; pixel_x = -25},/obj/structure/cable,/obj/machinery/light_switch{pixel_y = -23},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"bUv" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/photocopier/faxmachine{department = "Research Director's Office"},/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"bUw" = (/obj/item/weapon/cartridge/signal/toxins,/obj/item/weapon/cartridge/signal/toxins{pixel_x = -4; pixel_y = 2},/obj/item/weapon/cartridge/signal/toxins{pixel_x = 4; pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera{c_tag = "Research Director's Office"; dir = 1; network = list("Research","SS13")},/obj/item/clothing/glasses/welding/superior,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
"bUx" = (/obj/structure/closet/secure_closet/RD,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor)
@@ -5222,12 +5222,12 @@
"bWv" = (/obj/structure/table,/obj/item/weapon/coin/silver,/turf/simulated/floor/plasteel,/area/quartermaster/qm)
"bWw" = (/obj/structure/table,/obj/item/weapon/cartridge/quartermaster{pixel_x = 6; pixel_y = 5},/obj/item/weapon/cartridge/quartermaster,/obj/item/weapon/cartridge/quartermaster{pixel_x = -4; pixel_y = 7},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel,/area/quartermaster/qm)
"bWx" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/apmaint)
-"bWy" = (/obj/machinery/light{dir = 1},/obj/structure/flora/kirbyplants,/turf/simulated/floor/wood,/area/blueshield)
+"bWy" = (/obj/machinery/light{dir = 1},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/wood,/area/blueshield)
"bWz" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/blueshield)
"bWA" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/wood,/area/blueshield)
"bWB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/wood,/area/blueshield)
"bWC" = (/obj/machinery/light{dir = 1},/obj/machinery/power/apc{dir = 4; name = "Blueshield Office APC"; pixel_x = 24; pixel_y = -3},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/blueshield)
-"bWD" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/hop,/obj/item/device/eftpos,/obj/item/weapon/book/manual/sop_service,/obj/item/weapon/book/manual/sop_supply,/turf/simulated/floor/plasteel,/area/crew_quarters/heads)
+"bWD" = (/obj/structure/table,/obj/item/weapon/book/manual/sop_general,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/floor/wood,/area/bridge/meeting_room)
"bWE" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/wood,/area/ntrep)
"bWF" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/wood,/area/ntrep)
"bWG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/wood,/area/ntrep)
@@ -5544,7 +5544,7 @@
"ccF" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/apmaint)
"ccG" = (/obj/machinery/keycard_auth{pixel_x = -24; pixel_y = 0},/obj/machinery/door/window{dir = 1; name = "Desk Door"; req_access_txt = "67"},/turf/simulated/floor/wood,/area/blueshield)
"ccH" = (/obj/structure/table/woodentable,/obj/item/ashtray/glass{pixel_x = -4; pixel_y = -4},/obj/item/weapon/lighter/zippo/blue{pixel_x = 7; pixel_y = 4},/turf/simulated/floor/plasteel{icon_state = "bcarpet05"},/area/blueshield)
-"ccI" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/obj/item/weapon/folder/blue{pixel_x = 4; pixel_y = 6},/obj/item/weapon/paper/blueshield,/turf/simulated/floor/plasteel{icon_state = "bcarpet05"},/area/blueshield)
+"ccI" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/obj/item/weapon/coin/plasma,/obj/item/weapon/book/manual/sop_general,/obj/item/weapon/book/manual/sop_command,/obj/item/device/megaphone,/turf/simulated/floor/wood,/area/crew_quarters/captain)
"ccJ" = (/obj/structure/sign/poster/legit{pixel_x = 32},/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/blueshield)
"ccK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/wall,/area/ntrep)
"ccL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/ntrep)
@@ -5582,7 +5582,7 @@
"cdr" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/medical/medbreak)
"cds" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/medical/medbreak)
"cdt" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/wall,/area/medical/medbreak)
-"cdu" = (/obj/structure/flora/kirbyplants,/obj/machinery/door_control{id = "psychoffice"; name = "Privacy Shutters Control"; pixel_x = -25; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/wood,/area/medical/psych)
+"cdu" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/door_control{id = "psychoffice"; name = "Privacy Shutters Control"; pixel_x = -25; pixel_y = 0},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/wood,/area/medical/psych)
"cdv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/wood,/area/medical/psych)
"cdw" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/turf/simulated/floor/wood,/area/medical/psych)
"cdx" = (/obj/structure/disposalpipe/trunk,/obj/machinery/disposal,/turf/simulated/floor/wood,/area/medical/psych)
@@ -6531,7 +6531,7 @@
"cvE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "solar_xeno_pump"; tag_exterior_door = "solar_xeno_outer"; frequency = 1379; id_tag = "solar_xeno_airlock"; tag_interior_door = "solar_xeno_inner"; pixel_x = 25; req_access_txt = "13"; tag_chamber_sensor = "solar_xeno_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "solar_xeno_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "solar_xeno_pump"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar)
"cvF" = (/obj/structure/rack{dir = 1},/obj/item/weapon/extinguisher,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/toolbox/electrical,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/device/radio{pixel_y = 6},/turf/simulated/floor/plasteel,/area/engine/mechanic_workshop)
"cvG" = (/turf/simulated/floor/plasteel,/area/engine/mechanic_workshop)
-"cvH" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/mechanic_workshop)
+"cvH" = (/obj/structure/window/reinforced{dir = 8},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/mechanic_workshop)
"cvI" = (/obj/structure/table/woodentable,/obj/structure/disposalpipe/segment,/obj/item/weapon/book/manual/sop_general,/turf/simulated/floor/wood,/area/library)
"cvJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/aft)
"cvK" = (/turf/simulated/wall,/area/assembly/assembly_line)
@@ -6783,9 +6783,9 @@
"cAw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/wall,/area/engine/break_room)
"cAx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/item/device/radio/intercom{dir = 1; name = "station intercom (General)"; pixel_y = 25},/turf/simulated/floor/plasteel,/area/engine/break_room)
"cAy" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/break_room)
-"cAz" = (/obj/machinery/power/apc{dir = 4; name = "Centcomm Rep APC"; pixel_x = 24; pixel_y = -3},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/flora/kirbyplants,/turf/simulated/floor/wood,/area/ntrep)
+"cAz" = (/obj/machinery/power/apc{dir = 4; name = "Centcomm Rep APC"; pixel_x = 24; pixel_y = -3},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/wood,/area/ntrep)
"cAA" = (/obj/effect/landmark/start{name = "Station Engineer"},/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/simulated/floor/plasteel,/area/engine/break_room)
-"cAB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel,/area/engine/break_room)
+"cAB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel,/area/engine/break_room)
"cAC" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/turf/simulated/wall/r_wall,/area/atmos/control)
"cAD" = (/obj/machinery/door/airlock/atmos{name = "Atmospherics"; req_access_txt = "24"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/atmos/control)
"cAE" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/wall/r_wall,/area/atmos/control)
@@ -6828,7 +6828,7 @@
"cBp" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft)
"cBq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft)
"cBr" = (/obj/machinery/light,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft)
-"cBs" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft)
+"cBs" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft)
"cBt" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/engine/break_room)
"cBu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/light,/obj/structure/table,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/weapon/storage/toolbox/mechanical,/obj/item/device/t_scanner,/turf/simulated/floor/plasteel,/area/engine/break_room)
"cBv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/break_room)
@@ -6855,8 +6855,8 @@
"cBQ" = (/obj/machinery/light/small{dir = 1},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"cBR" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
"cBS" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
-"cBT" = (/obj/structure/flora/kirbyplants,/obj/effect/decal/warning_stripes/southeastcorner,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 10},/area/medical/patients_rooms)
-"cBU" = (/obj/structure/flora/kirbyplants,/obj/effect/decal/warning_stripes/southwestcorner,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 6},/area/medical/patients_rooms)
+"cBT" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/effect/decal/warning_stripes/southeastcorner,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 10},/area/medical/patients_rooms)
+"cBU" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/effect/decal/warning_stripes/southwestcorner,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 6},/area/medical/patients_rooms)
"cBV" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
"cBW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/medical/virology)
"cBX" = (/obj/structure/stool/bed,/turf/simulated/floor/plasteel{tag = "icon-whitegreen (NORTHWEST)"; icon_state = "whitegreen"; dir = 9},/area/medical/virology)
@@ -6962,11 +6962,11 @@
"cDT" = (/turf/simulated/floor/engine{name = "vacuum floor"; nitrogen = 0.01; oxygen = 0.01},/area/atmos)
"cDU" = (/mob/living/carbon/human/monkey,/turf/simulated/floor/plasteel{tag = "icon-whitegreen (EAST)"; icon_state = "whitegreen"; dir = 4},/area/medical/virology)
"cDV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/medical/virology)
-"cDW" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{tag = "icon-whitegreen (SOUTHWEST)"; icon_state = "whitegreen"; dir = 10},/area/medical/virology)
+"cDW" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{tag = "icon-whitegreen (SOUTHWEST)"; icon_state = "whitegreen"; dir = 10},/area/medical/virology)
"cDX" = (/obj/structure/stool/bed/chair/office/light{dir = 4},/obj/effect/landmark/start{name = "Virologist"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
"cDY" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/mob/living/carbon/human/monkey,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitegreencorner"},/area/medical/virology)
"cDZ" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor/plating,/area/medical/virology)
-"cEa" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{tag = "icon-whitegreen (SOUTHEAST)"; icon_state = "whitegreen"; dir = 6},/area/medical/virology)
+"cEa" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{tag = "icon-whitegreen (SOUTHEAST)"; icon_state = "whitegreen"; dir = 6},/area/medical/virology)
"cEb" = (/mob/living/carbon/human/monkey,/turf/simulated/floor/plasteel{dir = 5; icon_state = "whitegreencorner"},/area/medical/virology)
"cEc" = (/obj/machinery/light_switch{pixel_x = -4; pixel_y = 24},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/machinery/embedded_controller/radio/airlock/access_controller{id_tag = "viro_lab_airlock_control"; name = "Virology Lab Access Console"; pixel_x = 6; pixel_y = 24; req_one_access_txt = "39"; tag_exterior_door = "viro_lab_airlock_exterior"; tag_interior_door = "viro_lab_airlock_interior"},/obj/effect/decal/warning_stripes/northeastcorner,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitegreencorner"},/area/medical/virology)
"cEd" = (/obj/structure/rack{dir = 1},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/asmaint2)
@@ -7209,7 +7209,7 @@
"cIG" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/empty,/obj/item/weapon/reagent_containers/blood/AMinus,/obj/item/weapon/reagent_containers/blood/APlus,/obj/item/weapon/reagent_containers/blood/BMinus,/obj/item/weapon/reagent_containers/blood/BPlus,/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/OPlus,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/item/weapon/reagent_containers/blood/random,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4; level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
"cIH" = (/obj/machinery/alarm{pixel_y = 25},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
"cII" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/item/device/radio/intercom{dir = 8; name = "station intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/medical/virology)
-"cIJ" = (/obj/structure/flora/kirbyplants,/obj/item/device/radio/intercom{dir = 8; name = "station intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
+"cIJ" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/item/device/radio/intercom{dir = 8; name = "station intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/virology)
"cIK" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1},/turf/simulated/floor/plating/airless,/area/toxins/test_chamber)
"cIL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/binary/valve/digital{color = ""; dir = 4; name = "Gas Mix Outlet Valve"},/turf/simulated/floor/plasteel,/area/atmos/distribution)
"cIM" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/machinery/atmospherics/pipe/manifold/visible/yellow,/turf/simulated/floor/plasteel{dir = 5; icon_state = "green"},/area/atmos/distribution)
@@ -7452,7 +7452,7 @@
"cNp" = (/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/storage/secure)
"cNq" = (/obj/machinery/floodlight,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure)
"cNr" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/rig/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/rig/engineering,/obj/machinery/alarm{pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/storage/secure)
-"cNs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/civilian/barber)
+"cNs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/civilian/barber)
"cNt" = (/obj/machinery/portable_atmospherics/canister/toxins,/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/storage/secure)
"cNu" = (/obj/machinery/camera{c_tag = "Engineering West"; dir = 4; network = list("SS13")},/obj/structure/dispenser,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/engine/engineering)
"cNv" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/plasteel,/area/engine/engineering)
@@ -8191,7 +8191,7 @@
"dbA" = (/turf/simulated/wall,/area/medical/patient_b)
"dbB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel{dir = 4; icon_state = "bluecorner"},/area/medical/patients_rooms)
"dbC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/medical/patients_rooms)
-"dbD" = (/obj/structure/flora/kirbyplants,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/medical/patients_rooms)
+"dbD" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/alarm{pixel_y = 23},/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/medical/patients_rooms)
"dbE" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/medical/patients_rooms)
"dbF" = (/turf/simulated/wall/r_wall,/area/medical/patient_c)
"dbG" = (/obj/structure/stool/bed,/obj/machinery/alarm{pixel_y = 23},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitered"},/area/medical/patient_c)
@@ -8216,7 +8216,7 @@
"dbZ" = (/obj/machinery/iv_drip,/obj/machinery/light,/obj/item/device/radio/intercom{dir = 8; name = "station intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel{dir = 10; icon_state = "whitered"},/area/medical/patient_c)
"dca" = (/obj/structure/table/glass,/obj/machinery/computer/med_data/laptop,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/obj/machinery/door_control{id = "medprivacyc"; name = "Privacy Shutters"; pixel_y = -30},/turf/simulated/floor/plasteel{dir = 6; icon_state = "whitered"},/area/medical/patient_c)
"dcb" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "bluecorner"},/area/medical/patients_rooms)
-"dcc" = (/obj/machinery/light,/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{dir = 10; icon_state = "blue"},/area/medical/patients_rooms)
+"dcc" = (/obj/machinery/light,/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{dir = 10; icon_state = "blue"},/area/medical/patients_rooms)
"dcd" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1},/turf/simulated/floor/plating/airless,/area/maintenance/turbine)
"dce" = (/obj/machinery/light_switch{pixel_x = -24; pixel_y = 4},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/medical/patients_rooms)
"dcf" = (/obj/machinery/power/apc{dir = 4; cell_type = 15000; name = "east bump"; pixel_x = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "blue"},/area/medical/patients_rooms)
@@ -8337,8 +8337,8 @@
"deq" = (/obj/structure/table,/obj/item/stack/cable_coil,/obj/item/weapon/crowbar/red,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"der" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/shuttle/escape)
"des" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/shuttle/supply)
-"det" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/shuttle/supply)
-"deu" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/shuttle/supply)
+"det" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/arrival/station)
+"deu" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/shuttle/arrival/station)
"dev" = (/turf/simulated/shuttle/floor,/area/shuttle/supply)
"dew" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/supply)
"dex" = (/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/supply)
@@ -8358,9 +8358,9 @@
"deL" = (/turf/simulated/shuttle/floor,/turf/simulated/shuttle/wall/interior{tag = "icon-swall_f6"; icon_state = "swall_f6"},/area/shuttle/supply)
"deM" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/shuttle/supply)
"deN" = (/turf/simulated/shuttle/wall{tag = "icon-swall15"; icon_state = "swall15"; dir = 2},/area/shuttle/supply)
-"deO" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/shuttle/supply)
+"deO" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/arrival/station)
"deP" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/shuttle/supply)
-"deQ" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/shuttle/supply)
+"deQ" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/shuttle/arrival/station)
"deR" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_l"; icon_state = "burst_l"},/turf/space,/area/shuttle/supply)
"deS" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/shuttle/supply)
"deT" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-burst_r"; icon_state = "burst_r"},/turf/space,/area/shuttle/supply)
@@ -8408,8 +8408,8 @@
"dfJ" = (/obj/machinery/door/unpowered/shuttle,/obj/docking_port/mobile{dir = 8; dwidth = 10; height = 35; id = "whiteship"; name = "NT Medical Ship"; roundstart_move = "whiteship_away"; width = 21},/obj/docking_port/stationary{dir = 8; dwidth = 10; height = 35; id = "whiteship_home"; name = "north of SS13"; width = 21},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/abandoned)
"dfK" = (/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/abandoned)
"dfL" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/abandoned)
-"dfM" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/shuttle/abandoned)
-"dfN" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/shuttle/abandoned)
+"dfM" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f6"; icon_state = "swall_f6"; dir = 2},/area/shuttle/supply)
+"dfN" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/shuttle/supply)
"dfO" = (/obj/structure/window/full/shuttle{icon_state = "15"},/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/abandoned)
"dfP" = (/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/light{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/abandoned)
"dfQ" = (/obj/item/weapon/shard,/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/abandoned)
@@ -8498,7 +8498,7 @@
"dhv" = (/obj/structure/rack,/obj/item/weapon/pneumatic_cannon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/harpoon,/obj/item/weapon/tank/nitrogen,/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"dhw" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l"; icon_state = "propulsion_l"},/turf/space,/area/shuttle/vox)
"dhx" = (/obj/structure/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/suit/space/vox/pressure,/obj/item/clothing/head/helmet/space/vox/pressure,/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
-"dhy" = (/obj/structure/rack,/obj/item/weapon/gun/launcher/spikethrower,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
+"dhy" = (/obj/structure/rack,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"dhz" = (/obj/structure/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/suit/space/vox/stealth,/obj/item/clothing/head/helmet/space/vox/stealth,/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"dhA" = (/obj/structure/grille,/obj/structure/shuttle/window{tag = "icon-window5_end (NORTH)"; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; dir = 1},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox)
"dhB" = (/obj/structure/grille,/obj/structure/shuttle/window{tag = "icon-window5_end"; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; dir = 2},/turf/simulated/shuttle/plating/vox,/area/shuttle/vox)
@@ -8520,7 +8520,7 @@
"dhR" = (/obj/structure/closet/syndicate/suits,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"dhS" = (/obj/effect/landmark{name = "Syndicate-Uplink"; tag = ""},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"dhT" = (/obj/structure/table,/obj/item/device/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
-"dhU" = (/obj/structure/stool{pixel_y = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
+"dhU" = (/obj/structure/stool,/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"dhV" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/syndicate)
"dhW" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "synd_outer"; locked = 0; name = "Ship External Access"; req_access = null; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "smindicate"; name = "Outer Airlock"; opacity = 0},/obj/machinery/door_control{id = "smindicate"; name = "External Door Control"; pixel_x = -26; pixel_y = -2; req_access_txt = "150"},/obj/docking_port/mobile{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate"; name = "syndicate infiltrator"; roundstart_move = "syndicate_away"; width = 18},/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_nw"; name = "northwest of station"; width = 18},/turf/simulated/shuttle/plating,/area/shuttle/syndicate)
"dhX" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
@@ -8565,6 +8565,7 @@
"diK" = (/obj/structure/table,/obj/item/weapon/gun/syringe,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"diL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"diM" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
+"diN" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/stamp/hop,/obj/item/device/eftpos,/obj/item/weapon/book/manual/sop_service,/obj/item/weapon/book/manual/sop_supply,/obj/item/weapon/book/manual/sop_command,/turf/simulated/floor/plasteel,/area/crew_quarters/heads)
"diO" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2; pixel_z = 0},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"diP" = (/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"diQ" = (/obj/machinery/telecomms/allinone{intercept = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
@@ -8734,13 +8735,67 @@
"dlY" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/weapon/book/manual/sop_engineering,/turf/simulated/floor/plasteel,/area/engine/break_room)
"dlZ" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/storage/box/monkeycubes,/obj/item/weapon/book/manual/sop_science,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/xenobiology)
"dma" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/folder/yellow,/obj/item/weapon/stamp/ce,/obj/item/weapon/book/manual/sop_engineering,/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office)
-"dmb" = (/obj/item/weapon/storage/fancy/donut_box,/obj/structure/table,/obj/item/weapon/book/manual/sop_general,/turf/simulated/floor/wood,/area/bridge/meeting_room)
-"dmc" = (/obj/structure/table/woodentable,/obj/item/weapon/book/manual/security_space_law,/obj/item/weapon/coin/plasma,/obj/item/device/megaphone,/obj/item/weapon/book/manual/sop_general,/turf/simulated/floor/wood,/area/crew_quarters/captain)
-"dmd" = (/obj/machinery/light{dir = 1},/obj/structure/bookcase,/obj/item/weapon/book/manual/sop_engineering,/obj/item/weapon/book/manual/sop_medical,/obj/item/weapon/book/manual/sop_science,/obj/item/weapon/book/manual/sop_security,/obj/item/weapon/book/manual/sop_service,/obj/item/weapon/book/manual/sop_supply,/obj/item/weapon/book/manual/sop_general,/obj/item/weapon/book/manual/sop_legal,/turf/simulated/floor/wood,/area/ntrep)
+"dmb" = (/obj/machinery/light{dir = 1},/obj/structure/bookcase,/obj/item/weapon/book/manual/sop_engineering,/obj/item/weapon/book/manual/sop_medical,/obj/item/weapon/book/manual/sop_science,/obj/item/weapon/book/manual/sop_security,/obj/item/weapon/book/manual/sop_service,/obj/item/weapon/book/manual/sop_supply,/obj/item/weapon/book/manual/sop_general,/obj/item/weapon/book/manual/sop_legal,/obj/item/weapon/book/manual/sop_command,/turf/simulated/floor/wood,/area/ntrep)
+"dmc" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/obj/item/weapon/pen/blue,/obj/item/weapon/folder/blue{pixel_x = 4; pixel_y = 6},/obj/item/weapon/paper/blueshield,/obj/item/weapon/book/manual/sop_command,/turf/simulated/floor/plasteel{icon_state = "bcarpet05"},/area/blueshield)
+"dmd" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/trade/sol)
"dme" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/mechanic_workshop)
"dmf" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_engineering{name = "Mechanic Workshop"; req_access_txt = "70"; req_one_access_txt = "0"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/mechanic_workshop)
"dmg" = (/obj/item/device/radio/intercom{pixel_y = -30},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light/small,/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (WEST)"; icon_state = "wooden_chair_wings"; dir = 8},/turf/simulated/floor/wood,/area/crew_quarters/bar)
"dmh" = (/obj/machinery/camera{c_tag = "Bar South"; dir = 1; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/gameboard,/turf/simulated/floor/wood,/area/crew_quarters/bar)
+"dmi" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f5"; icon_state = "swall_f5"; dir = 2},/area/shuttle/supply)
+"dmj" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/trade/sol)
+"dmk" = (/obj/machinery/door/airlock/external{frequency = 1450; icon_state = "door_locked"; id_tag = "trade_sol_outer"; locked = 1; name = "External Access"; req_access = null; req_access_txt = "160"},/turf/simulated/shuttle/plating,/area/shuttle/trade/sol)
+"dml" = (/obj/structure/window/full/shuttle,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/trade/sol)
+"dmm" = (/obj/structure/grille,/obj/structure/shuttle/window,/turf/simulated/shuttle/plating,/area/shuttle/trade/sol)
+"dmn" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/shuttle/trade/sol)
+"dmo" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/shuttle/trade/sol)
+"dmp" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"; dir = 4},/turf/space,/area/shuttle/trade/sol)
+"dmq" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/trade/sol)
+"dmr" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1450; id_tag = "trade_sol_pump"; req_access_txt = "160"; req_one_access_txt = "0"},/obj/machinery/airlock_sensor{frequency = 1450; id_tag = "trade_sol_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1450; id_tag = "trade_sol"; pixel_x = 25; req_access_txt = "160"; tag_airpump = "trade_sol_pump"; tag_chamber_sensor = "trade_sol_sensor"; tag_exterior_door = "trade_sol_outer"; tag_interior_door = "trade_sol_inner"},/turf/simulated/shuttle/plating,/area/shuttle/trade/sol)
+"dms" = (/obj/structure/closet/crate,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
+"dmt" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 8},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
+"dmu" = (/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/computer/shuttle/trade/sol,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
+"dmv" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
+"dmw" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/trade/sol)
+"dmx" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/space,/area/shuttle/trade/sol)
+"dmy" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"},/area/shuttle/trade/sol)
+"dmz" = (/obj/machinery/door/airlock/external{frequency = 1450; icon_state = "door_locked"; id_tag = "trade_sol_inner"; locked = 1; name = "External Access"; req_access = null; req_access_txt = "160"},/turf/simulated/shuttle/plating,/area/shuttle/trade/sol)
+"dmA" = (/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
+"dmB" = (/obj/machinery/door/airlock/shuttle{id_tag = "s_docking_airlock"; req_access_txt = "160"},/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 11; id = "trade_sol"; name = "sol trade shuttle"; roundstart_move = "trade_sol_base"; width = 5},/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 11; id = "trade_sol_offstation"; lock_shuttle_doors = 1; name = "northwest of Cyberiad"; width = 5},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
+"dmC" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"; dir = 4},/turf/space,/area/shuttle/trade/sol)
+"dmD" = (/obj/machinery/light/spot,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
+"dmE" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1450; master_tag = "trade_sol"; name = "interior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "160"},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
+"dmF" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/light/spot,/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
+"dmG" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/trade/sol)
+"dmH" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/shuttle/supply)
+"dmI" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/trade/sol)
+"dmJ" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 11; id = "trade_dock"; name = "port bay 4 at Cyberiad"; width = 5},/turf/space,/area/space)
+"dmK" = (/obj/machinery/door/airlock/external{id_tag = "trade_dock"},/turf/simulated/floor/plating,/area/hallway/secondary/entry)
+"dmL" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (NORTH)"; icon_state = "propulsion"; dir = 1},/turf/space,/area/shuttle/syndicate_elite)
+"dmM" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (NORTH)"; icon_state = "propulsion_r"; dir = 1},/turf/space,/area/shuttle/syndicate_elite)
+"dmN" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite)
+"dmO" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (NORTH)"; icon_state = "propulsion_l"; dir = 1},/turf/space,/area/shuttle/syndicate_elite)
+"dmP" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "wall3"},/area/shuttle/syndicate_elite)
+"dmQ" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite)
+"dmR" = (/obj/effect/landmark{name = "Syndicate-Commando-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
+"dmS" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
+"dmT" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
+"dmU" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
+"dmV" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
+"dmW" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "syndicate_elite"; name = "Side Hull Door"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
+"dmX" = (/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
+"dmY" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "syndicate_elite"; name = "Side Hull Door"; opacity = 0; req_access_txt = "150"},/obj/docking_port/mobile{dir = 8; dwidth = 3; height = 5; id = "sst"; name = "SST shuttle"; roundstart_move = "sst_away"; width = 11},/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "sst_home"; name = "northwest of station"; width = 11},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
+"dmZ" = (/obj/machinery/computer/pod{id_tags = list("syndicate_elite"); name = "Hull Door Control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
+"dna" = (/obj/machinery/computer/shuttle/sst,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
+"dnb" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite)
+"dnc" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{icon_state = "pdoor1"; id_tag = "syndicate_elite"; name = "Front Hull Door"; opacity = 1},/turf/simulated/shuttle/plating,/area/shuttle/syndicate_elite)
+"dnd" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/syndicate_elite)
+"dne" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite)
+"dnf" = (/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite)
+"dng" = (/obj/structure/disposalpipe/sortjunction{dir = 4; icon_state = "pipe-j2s"; sortType = 0},/turf/simulated/wall,/area/quartermaster/office)
+"dnh" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/quartermaster/office)
+"dni" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{dir = 8; icon_state = "brown"},/area/quartermaster/office)
+"dnj" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/sortjunction{dir = 1; icon_state = "pipe-j1s"; sortType = 13},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"})
(1,1,1) = {"
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
@@ -8774,15 +8829,15 @@ bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbi
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdfvdfydfaardardarddfzardarddfhdfAdfBdftdfhardarddfCardardardardargcUKaaecUKareardardarddfDardardardargasRbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdfvdfFdfEardardarddfrardarddfhardardarddfhardarddfGardardardardarddfHdfIdfHardardardardardardardardarddfJbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdfvdfidfiardardarddfzardarddfhdfKdfwarddfhardarddfCardardardarddfscUKaaecUKdeWardardardardardarddfLdfsasRbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdfvardardardardarddfhardardargaaeaaedfrareardarddfhdfxardarddfscUKdfMbikdfNasOaaeaaeaaeaaeaaeaaeaaeasOdfMbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdfOardardardarddfPdeYdeWardardardardardardardarddfharddfsarbasOdfMbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdfhdfRdfQdfSarddfscUKasOaaeaaearbdeWardardardarddeYaaecUKdfMdfobikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdfvardardardardarddfhardardargaaeaaedfrareardarddfhdfxardarddfscUKaNhbikaNnasOaaeaaeaaeaaeaaeaaeaaeasOaNhbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdfOardardardarddfPdeYdeWardardardardardardardarddfharddfsarbasOaNhbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdfhdfRdfQdfSarddfscUKasOaaeaaearbdeWardardardarddeYaaecUKaNhdfobikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdeYdeWdfadfTdfscUKaredfVdfUdfWargasRardarddfkdfXdfldeZdfYaaeasPbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdfNasOaaedfZasOareardardardardarddfhardarddfsarbasRdffdgadeVdeUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgbardardardardardardarddgcdfKdfscUKdfMdfNdgedgddeVdeUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgfarddggardardardardarddeYarbcUKdfMbikbikdfNdgedeVdeUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaagaafaajaaiaaiaaiaakaafaaJbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdfNaaearbdeWarddghdgidfscUKasOdfMbikbikbikbikdfNarbdfnbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFlbmOcaVbZycaXcaWccwccwbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdfNasOaaeaaeaaeasOdfMbikbikbikbikbikbikbikdfNdfMbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaNnasOaaedfZasOareardardardardarddfhardarddfsarbasRdffdgadeVdeUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgbardardardardardardarddgcdfKdfscUKaNhaNndgedgddeVdeUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgfarddggardardardardarddeYarbcUKaNhbikbikaNndgedeVdeUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaagaafaajaaiaaiaaiaakaafaaJbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaNnaaearbdeWarddghdgidfscUKasOaNhbikbikbikbikaNnarbdfnbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFlbmOcaVbZycaXcaWccwccwbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaNnasOaaeaaeaaeasOaNhbikbikbikbikbikbikbikaNnaNhbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFlccxcaVcaVccycaVcaVcczbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFlcyacSKcaVcaVcTOcaVcTWbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcVGaafaafaafddwaafaafaafdelbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
@@ -8790,13 +8845,13 @@ bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbi
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFldhNcaVdhObFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdhPaafaafaafaafbFldhNcaVdhOdhQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikaalaalaalaalaalaalaalaamaanaaoaapaalaalaalaalbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFldhRcaVcaVdhSbFldhNcaVdhObFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaalaaqaaraasaataauaaybnHbnIaavaayaazaaAaaBaalbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFldhRcaVdhUdhTbFldhNcaVdhObFlaafdhWdhVdhXbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaalaaCaaDaaEaaFaayaayaawaaGaaHaayaazaazaaIaalbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFldhRcaVayLdhTbFldhNcaVdhObFlaafdhWdhVdhXbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaalaaCaaDaaEaaFaayaayaawaaGaaHaayaazaazaaIaalbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFldhYcaVcaVdhZbFldiacaVcczdicdibdibdibbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaalaaqaayaaKaaLaaMaayaaNaaOaavaaPaataataalaalbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFldhRcaVcaVcaVdidcaVcaVdiedigdifdifdihbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdiibikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaalaataataataaQaaRaaSaawaaGaaHaaxaaTaaUaaVaalbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFldhRcaVcaVcaVdijcaVcaVcaVaVUdikdikdimbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaalaaWaaXaaYaaZabaabbabcabdabeabfabgabhabhaalbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdhPaafaafaafaafaafaafdincaVcaVaafaafaafaafaafaafdhXbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaalabiabjabkablabmabnaboabpabqabraatabsabtaalbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdiobikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFldipdipdiqdisdirbFlditcaVcaVbFldiudiwdivdiydixbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikaalabuaalabvabwabxabxaalaalabyaaoaalaalabzaalbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFlcaVcaVcaVdhUcaVdizcaVcaVcaVdiAcaVdhUcaVdhUdiBbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaalabBaatabCabDabEabFbikbikbikbikbikaalabGaalbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikabAcQScJadgjbikbikbikabAbikbikbikdgjbikbikbikabAdiCdgldgjbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFlcaVcaVcaVayLcaVdizcaVcaVcaVdiAcaVayLcaVayLdiBbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaalabBaatabCabDabEabFbikbikbikbikbikaalabGaalbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikabAcQScJadgjbikbikbikabAbikbikbikdgjbikbikbikabAdiCdgldgjbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFldiDdiEcaVcaVcaVdiFcaVcaVcaVdiGcaVcaVcaVcaVdiHbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaalabBaatabCabHaalbikbikbikbikbikbikaalaalaalbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgmdgodgndgmbikbikabAdgmdgpdgrdgqdgmdgjbikbikdgmdgsdgtdgmbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFldiIdiEcaVdiKdiJbFldiLdiMdiLbFlaWldiOcaVcaVcaVbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikaalaalaalaalabuaatabIabJaalaalaalaalbikbikbikabKabLabLabKbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgmdgvdgudgmbikabAdgwdgydgxdgAdgzdgydgwdgjbikdgmdgBdgCdgmbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbFlcaVcaVdiPbFlaafbFlcaVdiRdiQbFlaafbFlcaVcaVcaVbFlbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaalabMabNabOabPabQabRabSabTabUabVaalbikbikbikbikabKabLabWabKbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdgmdgEdgDdgFbikdgHdgGdgydgydgIdgydgydgGdgJbikdgLdgKdgMdgmbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
@@ -8817,83 +8872,83 @@ bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbi
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaeAafyafAafyaeAafyafAafyaeAbikagSahCahDahEahFahGahHahIahJahKahLahMahNagvahOahRahQairahSahTahUahVahWahXahYahZahUaiaaibaicaidahYahZahUahUahAadaadaadaadaadaaieaieaieahAbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikagQaabaabaabahBaabaabaabagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacGacGafxacGacGbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaeAafyafyafAaeAafyafyafAaeAbikagSaifaigaihagSaiiaijaikailaimainaioaipagvaiqaisahhamuaitaiuahUaivaiwaixaiyaizaiAaiBaiCaiDaiEaiFaiGbOIaiHahAaieaieaieaieaieaieaieaieahAbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikagQbikbikbikaiIbikbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacGbikaabbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaeAafAafyaiJaeAafAafyaiKaeAbikagSaiLaiMaiNagSaiOaiOaiOaiOaiPaiQaiRaiSagvaiTaiUaiVaiWaiXaiYahUaiZajaajbajcajdajeajfajgaiDaiEajhaiGajhajiahAaieaieaieaieaieaieaieaieahAagQagQajjaabagQagQagQagQagQagQagQagQagQagQagQagQagQagQaabaabajkajlajmaabaabagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikafxaabajnaabafxbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikaeAajoajpajqajrajoajpajqajsajtajuajuajuajuajuajuajuajuajvajwajxajyajzajAajBajCajDajEajFajGahUajHajIajJajKajdajeajKajgajLaiEaiCaiCajMajNajOaieaieaieaieaieaieaieaieahAaabaabaabaabaabaabbikaabbikaabaabaabaabaabaabaabaabbikbikbikajkajPajmbikbikagQbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacGacGacGafxafxaabaabbikajQbikaabaabafxafxacGacGacGbikbikbikbikbikbikbikbikbikbikbikbikaeAajRajSajTafyajUajVajWakcajtajYajZakaakbaknakdakdajuakeakfakgakhakiajBakjakkaklakmalJajFakoakpamwakqajKakraksaktakuakvakwakxakxakzaiCakAaieaieaieaieaieaieaieaieahAaabakBakCakCakCakDakCakCakCakCakDakCakCakCakCakEaabbikbikbikajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacGbikbikaabbikaabbikbikajQbikbikaabbikaabbikbikacGbikbikbikbikbikbikbikbikbikbikbikbikaeAakFafyakGakHakIakJakKakLajtakMakNakOakOakPakQakRajuakSakTakUakVakiakWakXakYakZalaalbalcaldaleaAEalfalgalhalialjalkallalmaiCaiCaiCalnajOaieaieaieaieaieaieaieaieahAaabaloaabaabaabaloaabbikbikaabaloaabaabbikbikaloaabbikaabaabajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacGaabalpalpalpalpalpbikalqbikalpalpalpalpalpaabacGbikbikbikbikbikbikbikbikbikbikbikbikaeAalralsakGafyaltakJalualvajtalwalxalyalzakQakQakRajualAalBalCalDalEajBalFalGaklalHalIajFajXalKalLalLalMajdalNalOalPalQaiCaiFaiGaiCalRahAahAahAahAahAahAahAahAahAahAaabaloaabbikajkajlajmbikbikajkajlajmbikbikajkajlajmaabaabbikajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacGbikalSalTalTalTalTalUalValWalXalXalXalXalYbikacGbikbikbikamaalZaowanxambbikbikbikamcaeAaeAaeAamdamdameamfamgamdajuamhamiamjamkamlammamnajuamoampamqakVamrajGamsamtaXNamvaYjajGamxamyamzamAamBamCamDamEamFamGaiCajhamHamIamJahAamKamKamKamKamKbikbikbikbikaabaloaabbikajkajPajmbikbikajkajPajmbikbikajkajPajmbikbikbikajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaVydmddmkdmjdmldmddmddmmdmddmddmnbikbikbikbikbikbikbikbikbikafxaabajnaabafxbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikaeAajoajpajqajrajoajpajqajsajtajuajuajuajuajuajuajuajuajvajwajxajyajzajAajBajCajDajEajFajGahUajHajIajJajKajdajeajKajgajLaiEaiCaiCajMajNajOaieaieaieaieaieaieaieaieahAaabaabaabaabaabaabbikaabbikaabaabaabaabaabaabaabaabbikbikbikajkajPajmbikbikagQbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmpdmodmrdmqdmtdmsdmsdmsdmvdmudmwbikbikbikacGacGacGafxafxaabaabbikajQbikaabaabafxafxacGacGacGbikbikbikbikbikbikbikbikbikbikbikbikaeAajRajSajTafyajUajVajWakcajtajYajZakaakbaknakdakdajuakeakfakgakhakiajBakjakkaklakmalJajFakoakpamwakqajKakraksaktakuakvakwakxakxakzaiCakAaieaieaieaieaieaieaieaieahAaabakBakCakCakCakDakCakCakCakCakDakCakCakCakCakEaabbikbikbikajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmxdmodmzdmydmsdmAdmAdmAdmAdmAdmBbikbikbikacGbikbikaabbikaabbikbikajQbikbikaabbikaabbikbikacGbikbikbikbikbikbikbikbikbikbikbikbikaeAakFafyakGakHakIakJakKakLajtakMakNakOakOakPakQakRajuakSakTakUakVakiakWakXakYakZalaalbalcaldaleaAEalfalgalhalialjalkallalmaiCaiCaiCalnajOaieaieaieaieaieaieaieaieahAaabaloaabaabaabaloaabbikbikaabaloaabaabbikbikaloaabbikaabaabajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmCdmodmEdmDdmAdmAdmAdmAdmGdmFdmwbikbikbikacGaabalpalpalpalpalpbikalqbikalpalpalpalpalpaabacGbikbikbikbikbikbikbikbikbikbikbikbikaeAalralsakGafyaltakJalualvajtalwalxalyalzakQakQakRajualAalBalCalDalEajBalFalGaklalHalIajFajXalKalLalLalMajdalNalOalPalQaiCaiFaiGaiCalRahAahAahAahAahAahAahAahAahAahAaabaloaabbikajkajlajmbikbikajkajlajmbikbikajkajlajmaabaabbikajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaXhdmddmddmddmldmddmddmmdmddmddmIbikbikbikacGbikalSalTalTalTalTalUalValWalXalXalXalXalYbikacGbikbikbikamaalZaowanxambbikbikbikamcaeAaeAaeAamdamdameamfamgamdajuamhamiamjamkamlammamnajuamoampamqakVamrajGamsamtaXNamvaYjajGamxamyamzamAamBamCamDamEamFamGaiCajhamHamIamJahAamKamKamKamKamKbikbikbikbikaabaloaabbikajkajPajmbikbikajkajPajmbikbikajkajPajmbikbikbikajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacGaabamLamLamLamLamLbikamMbikamLamLamLamLamLaabacGbikbikbikamOamNamQamPamOamRamSamSamTamUamVamWamXamYamZanaanbancajuajuandaneajuajuajuajuajuanfanganhanianfajGajBajCanjajEajFajGankanlanmannahUahUahUahUannanoanpanmahUahAayjahAanrantansansanubikbikbikbikbikaloaabbikajkajPajmbikbikajkajPajmbikbikajkajPajmbikbikbikajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacGbikbikbikaabbikbikbikanvbikbikbikaabbikbikbikaabbikbikbikaEEanwanzanyanBanAanDanCanAanGanGanHanIanJanKanLanManNanOanPanQanRanSanTanSanSanUanVanWanXanYanSanZaoaaobaocaodaoeaofaogaohanSaoiaojaokaolaomaonaooaopaoqaoraosaplaotaovaEHaouaoyaoxbikbikbikbikbikaloaabbikajkajPajmbikbikajkajPajmbikbikajkajPajmbikbikbikajkajPajmbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikacGaabalpalpalpalpalpbikamMbikalpalpalpalpalpaabacGbikbikbikamOanEaoAanFamOamRamSamSamSaoBaoHaoIaoJaoKaoLaoMaoNaoOaoPaoQaoRaoSaoTaoUaoVaoWaoXaoYaoWaoZapaaoTapbapcapdaoTaoTapdaoXapcapeaoTaoTapbapcaoVapfapgaphapiapjapkaplapmapnaovaozansansapobikaacapqaacbikaloaabbikajkajPajmbikbikajkajPajmbikbikajkajPajmbikaabaabajkajPajmaabaabagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapsapsapsapsapsbikbikbikbikbikbikajjbikalSalTalTalTalTalUalValWalXalXalXalXalYbikacGbikbikbikamOaoCaoCaoDamObikbikbikapwapwapxapyapzapAapAapAapBapBapBapBapCapDapEapEapEapFapGapHapFapEapEapEapIapJapKapLapMapKapNapJapOapOapOapPapQapOapRapSapTapUapVapWapXapmapnapYapYamKapZapZapZamKaqaamKaabaloaabbikajkajPajmbikbikajkajPajmbikbikajkajPajmaabaabbikaabaiIaabbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapsapsapsapsapsbikbikbikbikbikbikacGaqbamLamLamLamLamLbikamMbikamLamLamLamLamLaabacGbikbikbikaEEaoEaoCaoFamOamRamSamSamSaqgaqhaqiaqjaqkaqlaqmapBaqnaqoaqpaqqaqraqsaqtaquaqvaqwaqxaqyaqzaqAaqsaqBaqCaqDaqEaqFaqGaqHaqCapOaqIaqJaqKaqLapOaqMaqNaqOaqPaqQaqRapXapmaqSaqTaqUaqVaqWaqWaqXamKaqYamKaabaloaabbikajkajPajmbikbikajkajPajmbikbikajkajPajmbikbikbikaabaloaabbikbikaqZbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapsapsapsapsapsbikbikbikbikbikbikacGbikbikbikaabbikbikbikanvbikbikbikaabbikbikbikacGbikbikbikamOaoGaoCaoCaptanAapuanCanAapvanLarharianGanGarjapBarkarlarmarnaroarparqarrarsartaruarvarrarwarxaryarzarAarBarCarDarEarFarGarHarIarJarKapOarLarMarMarNarMarOapXapmaovaovaovaovarPaovarQarRarSamKakBarTakEbikbikaiIaabaabaabaabaiIaabaabaabaabaiIaabaabaabaabarUarVakEaabbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapsapsapsapsapsbikbikbikbikbikbikacGaabalpalpalpalpalpbikamMbikalpalpalpalpalpaabacGbikbikbikamOaqcaqcaqcamOamRamSamSamSarXarYaoMarZasaanGasbapBascasdaseasfasgashasiasjaskaslasmasnasoaspashasqarFasrassastasrarEasuapOarGaswasxasyapOaszasAarMarNarMasBapXasCasDasEasFasEasGasHamKamKapnamKaloasIasJakCakCarTakCakCakCakCarTakCakCakCakCarTakCakCakCasKasLasIaloaabbikagQaabbikbikbikbikbikbikbikbikbikbikaabbikaabbikasMasMasNasNasNasNasNasNasMasMaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapsapsapsapsapsbikbikbikbikbikbikacGbikalSalTalTalTalTalUalValWalXalXalXalXalYbikacGbikbikbikaqeaqdaqdaqdaqfbikbikbikapwapwapwapwapwasSanGasTasUapBatRapBasVasWapEapEatSapEasXasYapEatSapEasZataatbatcatdateatfatgathapOatiatjatkatlatmatnatoatpatqarMatrapXatsattatuatvatwatxatyatzatAatBamKatCarTatDaabaabbikaabbikbikbikbikbikbikbikbikaabaabaabaabaabatEatFatDaabaabaabaabaabbikbikbikbikbikbikbikbikbikaabbikaabasMasMatGatHatIatJatKatLatMatIasMasMbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapsapsapsapsapsbikbikbikbikbikbikaabatNamLamLamLamLamLbikamMbikamLamLamLamLamLaabacGbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapwatOanGasTasUatPatUatTauyatVaqsatQauJauEavxauTavEavBatWaqsatXatYatZauaaubaubaucaudapOaueaufaugauhapOauiaujaukarNarMaulapXatsarPattattattaumaovaunauoaupamKbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabbikaabaabaabaabauqaabaabbikbikaabaabaabbikbikbikbikbikbikbikbikasMasMasMasMauratJausatJausautatJatJatJauuasMbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapsapsapsapsapsbikbikbikbikbikbikacGbikbikaabbikaabbikbikauvbikbikaabbikaabbikbikacGbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikapwauwanGauxasUarkavJauzauAauBauCauDdlLauFauGauHauIdlMauKauLauMauNauNauOauNauNauPauQauRauSdlNapOauUapOauVauWauXauYauZavaapXatsavbavcavcavcavdaveavfavgavhamKbikbikbikbikbikaahbikbikbikbikbikbikbikaabaabbikbikbikaabaabaabaviaabaabbikbikaabbikaabaabbikbikbikbikbikbikbikasMavjavkavlavmavnavoavpatJatJavqavratJavsasMbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapsapsapsapsapsbikbikbikbikbikbikacGacGacGaabaabaabaabavtavuavtaabaabaabaabacGacGacGbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapwavvanGavwasUdlPdlQavyavzavAashdlRdlSashavCavDashdlTdlUashavFavGavHavGavGavHavGavIapOatidlVapOavKapOavLavMavNavOavPavQavRavSavTavUavUavUavVavWavXavYavYavYbikbikbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikaabaabavZawaavZaabaabbikaabbikbikaabaabbikbikbikbikbikbikasMawbawcawdaweawfawgatJatJatJawhawiatJawjasMbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapsapsapsapsapsbikaahbikbikbikbikaabbikaabbikbikaabbikavtawkawlbikbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikawmawmawmawmawmawmapwapwawnapwasUasUasUawoawpawqawrawrawsawrawsawrawrawtasZasZasvawvawwawuawvawwawuawyawzawzawzawzawzapOawAawBawCawCawDawCawEawFavUawGawHawIavVawJawKawLawMavWbikbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikbikaabbikavZawNavZbikaabbikaabbikbikbikaabaabbikbikbikbikbikasMawOawPavlawQawRawSawTatJawUawVawWawXasMawYaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapsapsapsapsapsbikbikbikbikbikbikaabbikaabbikbikaabavtavtawZaxaavtbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikawmaxbaxcaxdaxeaxfaxgaxhaxiaxhaxjaxhaxhaxkaxlaxlaxlaxlaxlaxmaxnaxoaxlaxlaxlaxlaxpaxlaxlaxlaxlaxqaxraxsaxtaxuaxvaxwaxxapWaxyaxzaxAaxBaxCaxDaxEaxFavUaxGaxHaxIavVaxKaxLaxJaAZavWbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikbikbikaabavZavZaxMavZavZaabbikaabbikbikbikbikaabaabbikbikbikbikasMaxNaxOavlasMavlavlaxPaxQasMasMasMasMasMasMaabaabbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapsapsapsbikbikbikbikbikbikaabaabbikaabbikbikaabaxRaxSaxTaxUaxRaxVaxVbikbikaabbikbikbikbikbikbikbikbikbikbikawmaxWaxXaxYaxZayaaybaycaydayeayfaxqaxqaygaxqaxqaxqaxqaxqayhaxqaxqaxqaxqaxqaxqayiaxqaxqaxqaxqaSWaxqaykaxqaylaxqaymaynapWayoaypayqayraysaytaxEayuavUayvaywayxayyayzayAayBawMavWbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikbikbikbikaabayCayDayEayFayCaabbikaabbikbikaabbikbikaabaabbikbikayGasMavlasMavlayHayIayHayJayHayHayHayKayGbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikaxVaxVaxVaxVaxVaabaabaxRayLayMayNaxRayOaxVbikbikaabbikbikbikbikbikbikbikbikbikbikawmayPayQayRaySayTawmayUayVayWayXayYayZazaazbazcayXayXayXazdayXayXayXayXayXayXazeazfazgazgazgazhaziazjaziazkazlazmaznapWazoazoazoazoazoazoaxEaxFavUazpaxHazqavVcscazraxJcvYavWbikbikbikbikbikbikbikbikaabaabbikbikbikbikbikbikbikbikaabayCazsaztazuayCaabbikaabbikbikaabbikbikayGazvayGazvayGayKayHayHayHayHayHayHayHayHayHazwazxayGbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapsdmMdmLdmOdmNbikbikbikbikbikbikajjbikalSalTalTalTalTalUalValWalXalXalXalXalYbikacGbikbikbikamOaoCaoCaoDamObikbikbikapwapwapxapyapzapAapAapAapBapBapBapBapCapDapEapEapEapFapGapHapFapEapEapEapIapJapKapLapMapKapNapJapOapOapOapPapQapOapRapSapTapUapVapWapXapmapnapYapYamKapZapZapZamKaqaamKaabaloaabbikajkajPajmbikbikajkajPajmbikbikajkajPajmaabaabbikaabaiIaabbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmPdmQdmQdmQdmPbikbikbikbikbikbikacGaqbamLamLamLamLamLbikamMbikamLamLamLamLamLaabacGbikbikbikaEEaoEaoCaoFamOamRamSamSamSaqgaqhaqiaqjaqkaqlaqmapBaqnaqoaqpaqqaqraqsaqtaquaqvaqwaqxaqyaqzaqAaqsaqBaqCaqDaqEaqFaqGaqHaqCapOaqIaqJaqKaqLapOaqMaqNaqOaqPaqQaqRapXapmaqSaqTaqUaqVaqWaqWaqXamKaqYamKaabaloaabbikajkajPajmbikbikajkajPajmbikbikajkajPajmbikbikbikaabaloaabbikbikaqZbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmPdmRdmRdmRdmPbikbikbikbikbikbikacGbikbikbikaabbikbikbikanvbikbikbikaabbikbikbikacGbikbikbikamOaoGaoCaoCaptanAapuanCanAapvanLarharianGanGarjapBarkarlarmarnaroarparqarrarsartaruarvarrarwarxaryarzarAarBarCarDarEarFarGarHarIarJarKapOarLarMarMarNarMarOapXapmaovaovaovaovarPaovarQarRarSamKakBarTakEbikbikaiIaabaabaabaabaiIaabaabaabaabaiIaabaabaabaabarUarVakEaabbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmPdmTdmSdmUdmPbikbikbikbikbikbikacGaabalpalpalpalpalpbikamMbikalpalpalpalpalpaabacGbikbikbikamOaqcaqcaqcamOamRamSamSamSarXarYaoMarZasaanGasbapBascasdaseasfasgashasiasjaskaslasmasnasoaspashasqarFasrassastasrarEasuapOarGaswasxasyapOaszasAarMarNarMasBapXasCasDasEasFasEasGasHamKamKapnamKaloasIasJakCakCarTakCakCakCakCarTakCakCakCakCarTakCakCakCasKasLasIaloaabbikagQaabbikbikbikbikbikbikbikbikbikbikaabbikaabbikasMasMasNasNasNasNasNasNasMasMaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmPdmVdmSdmUdmPbikbikbikbikbikbikacGbikalSalTalTalTalTalUalValWalXalXalXalXalYbikacGbikbikbikaqeaqdaqdaqdaqfbikbikbikapwapwapwapwapwasSanGasTasUapBatRapBasVasWapEapEatSapEasXasYapEatSapEasZataatbatcatdateatfatgathapOatiatjatkatlatmatnatoatpatqarMatrapXatsattatuatvatwatxatyatzatAatBamKatCarTatDaabaabbikaabbikbikbikbikbikbikbikbikaabaabaabaabaabatEatFatDaabaabaabaabaabbikbikbikbikbikbikbikbikbikaabbikaabasMasMatGatHatIatJatKatLatMatIasMasMbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmPdmVdmSdmUdmPbikbikbikbikbikbikaabatNamLamLamLamLamLbikamMbikamLamLamLamLamLaabacGbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapwatOanGasTasUatPatUatTauyatVaqsatQauJauEavxauTavEavBatWaqsatXatYatZauaaubaubaucaudapOaueaufaugauhapOauiaujaukarNarMaulapXatsarPattattattaumaovaunauoaupamKbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabbikaabaabaabaabauqaabaabbikbikaabaabaabbikbikbikbikbikbikbikbikasMasMasMasMauratJausatJausautatJatJatJauuasMbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmPdmSdmSdmSdmWbikbikbikbikbikbikacGbikbikaabbikaabbikbikauvbikbikaabbikaabbikbikacGbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikapwauwanGauxasUarkavJauzauAauBauCauDdlLauFauGauHauIdlMauKauLauMauNauNauOauNauNauPauQauRauSdlNapOauUapOauVauWauXauYauZavaapXatsavbavcavcavcavdaveavfavgavhamKbikbikbikbikbikaahbikbikbikbikbikbikbikaabaabbikbikbikaabaabaabaviaabaabbikbikaabbikaabaabbikbikbikbikbikbikbikasMavjavkavlavmavnavoavpatJatJavqavratJavsasMbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmPdmXdmSdmSdmYbikbikbikbikbikbikacGacGacGaabaabaabaabavtavuavtaabaabaabaabacGacGacGbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikapwavvanGavwasUdlPdlQavyavzavAashdlRdlSashavCavDashdlTdlUashavFavGavHavGavGavHavGavIapOatidlVapOavKapOavLavMavNavOavPavQavRavSavTavUavUavUavVavWavXavYavYavYbikbikbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikaabaabavZawaavZaabaabbikaabbikbikaabaabbikbikbikbikbikbikasMawbawcawdaweawfawgatJatJatJawhawiatJawjasMbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmPdmZdmSdnadmPbikaahbikbikbikbikaabbikaabbikbikaabbikavtawkawlbikbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikawmawmawmawmawmawmapwapwawnapwasUasUasUawoawpawqawrawrawsawrawsawrawrawtasZasZasvawvawwawuawvawwawuawyawzawzawzawzawzapOawAawBawCawCawDawCawEawFavUawGawHawIavVawJawKawLawMavWbikbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikbikaabbikavZawNavZbikaabbikaabbikbikbikaabaabbikbikbikbikbikasMawOawPavlawQawRawSawTatJawUawVawWawXasMawYaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdnbdnddncdnddnebikbikbikbikbikbikaabbikaabbikbikaabavtavtawZaxaavtbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikawmaxbaxcaxdaxeaxfaxgaxhaxiaxhaxjaxhaxhaxkaxlaxlaxlaxlaxlaxmaxnaxoaxlaxlaxlaxlaxpaxlaxlaxlaxlaxqaxraxsaxtaxuaxvaxwaxxapWaxyaxzaxAaxBaxCaxDaxEaxFavUaxGaxHaxIavVaxKaxLaxJaAZavWbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikbikbikaabavZavZaxMavZavZaabbikaabbikbikbikbikaabaabbikbikbikbikasMaxNaxOavlasMavlavlaxPaxQasMasMasMasMasMasMaabaabbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdnbdnfdnebikbikbikbikbikbikaabaabbikaabbikbikaabaxRaxSaxTaxUaxRaxVaxVbikbikaabbikbikbikbikbikbikbikbikbikbikawmaxWaxXaxYaxZayaaybaycaydayeayfaxqaxqaygaxqaxqaxqaxqaxqayhaxqaxqaxqaxqaxqaxqayiaxqaxqaxqaxqaSWaxqaykaxqaylaxqaymaynapWayoaypayqayraysaytaxEayuavUayvaywayxayyayzayAayBawMavWbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikbikbikbikaabayCayDayEayFayCaabbikaabbikbikaabbikbikaabaabbikbikayGasMavlasMavlayHayIayHayJayHayHayHayKayGbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikaxVaxVaxVaxVaxVaabaabaxRazsayMayNaxRayOaxVbikbikaabbikbikbikbikbikbikbikbikbikbikawmayPayQayRaySayTawmayUayVayWayXayYayZazaazbazcayXayXayXazdayXayXayXayXayXayXazeazfazgazgazgazhaziazjaziazkazlazmaznapWazoazoazoazoazoazoaxEaxFavUazpaxHazqavVcscazraxJcvYavWbikbikbikbikbikbikbikbikaabaabbikbikbikbikbikbikbikbikaabayCaFCaztazuayCaabbikaabbikbikaabbikbikayGazvayGazvayGayKayHayHayHayHayHayHayHayHayHazwazxayGbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikazyazzazybikbikbikaxVaxVaxVaxVazAazBazCaxVbikbikaxRazDazEazFazGazHaxVbikbikaabbikbikbikbikbikbikbikbikbikbikawmawmawmawmawmawmawmazIazIazJazKazKazLazMazNazOazPazPazOazQazOazRazRazRazRazRazRazSazRazRazTazUazVazWazIazXazIazYazIazIaqVazZaovaovaovaovaAaaxFavUaAbaxHaAcavVaAdayAayBawMavWbikbikbikbikbikbikbikbikaabaabbikbikbikbikazyaAeazybikaabayCaAfaAgaAhayCaAiaAiaAiaAiaAiazvazvazvayGaAjayHazwazxayJayHayJayJayJayGaAkayGayGayGayGayGbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikaAlaAmaAlbikbikaabaxVaAnaAoaApazHaAqazHaxVaAlaAlaxRaxRaAraAsazGazHaxVaxVaAlaAlaAlaxVaxVbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikazJaAtaAuaAvazMaAwazOaAxaAyaAzaAAaABaACaADbssaAFaAGaAHaAIaAJaAKaALaxqaxraAMaANaAOaAPaAQaAPaAPaAPaARaAPaAPaAPaAPaASaATaAUaAVaAWaAXaAYcNsaBaaUadcuavWaabaBbaBcaBcaBcaBcaBcaBdaabaabbikbikbikbikazvaBeazvbikaAiayCayCaBfaBgayCaBhayHayHayHayJaBiayHaBjayGayHayHayHaBkayJayHayGaBlaBmayGayHaBnayGbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikaAlaAmaAlbikbikaabaxVaAnaAoaApazHaAqazHaxVaAlaAlaxRaxRaAraAsazGazHaxVaxVaAlaAlaAlaxVaxVbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikazJaAtaAuaAvazMaAwazOaAxaAyaAzaAAaABaACaADbfTaAFaAGaAHaAIaAJaAKaALaxqaxraAMaANaAOaAPaAQaAPaAPaAPaARaAPaAPaAPaAPaASaATaAUaAVaAWaAXaAYcNsaBaaUadcuavWaabaBbaBcaBcaBcaBcaBcaBdaabaabbikbikbikbikazvaBeazvbikaAiayCayCaBfaBgayCaBhayHayHayHayJaBiayHaBjayGayHayHayHaBkayJayHayGaBlaBmayGayHaBnayGbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikappaBpaBobikaBqaBsaBraabaabaAlazHaAlbikbikaabaxVaBuaBvaBwaBxaByaBzaxVaBAazHaBBaBCaBDaBEaBEaBEaBEaBEaBEaBEaBEaBFaxVbikaBGbikbikbikbikbikbikbikbikbikbikbikbikbikbikaBHaBIaBJaBKazMaAwazOaBLafvaBNaAAaABaBOaBPaBPaBPaBPaBPaAIbjlaAKaxlaxqaxrazIaBQaBRaBSaBTaBSaBSaBUaBVaBWaBWaBWaBWaBWaBWaBXaBYaBZaCaaCbaCcaCdaCeavWavWaCfaCgaChaChaChaChaChaCgaCfaabbikbikbikbikazvaCiaCjbikaAiaCkaClaCmaCnayHayHayHayJayHayJaCoayHayHayGayHaCpaCqaCoaAkayHayGaCraCsayGayHaCtayGbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaCuaBtaCvaBtaCuaCwaCxaCwaCuaabaAlaCzaCAbikbikaxVaxVaxVaxVaxVaCBaCCaCDaCEaCFaCGaCGaCHaCIaCIaCJaCKaxVazHaxVaxVaxVaCLaxVbikaabbikbikbikbikbikbikaabaabaabaabaabaabaabaabaCMaCNaCOaBKazMaAwazOaCPaCQaCRaAAaCSaCTaBPaCUaBPaCVaCVaAIaBPaAKaxlaxqaCWazIaCXaBRaCYaCZaDaaDbaDcaDdaDeaDfaDgaDhaDiaDjaDkaDlaDmaDnaDoaDpaDqaDraDsaDtaCfaCgaChaChaChaChaChaCgaCfaabaabaabaabazvazvaDuaDvazvaAiaDwayHaDxayHayKayHayGayGaDyayGayGaDzayJayJaCoaDAaDBayHayGayHaDCaDCaDCaDCaDCaDCaDCaDCaDCaDDaDDaDDaDDaacaDDaDDaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaDEaBtaCyaBtaDEaCwaDFaCwaDEaxVaAlaDHaDIaAlaAlaxVazHazHazHazHazHazHazHaCBaCLaxVaxVaxVaxVaxVaDJaxVaxVazHaDKaxVaDLaCLaxVaxVaxVbikbikbikbikbikaDMaDMaDMaDMaDMaDMaDMaDMaabaCMaDNaDOaDPaDQaDRaDSaDTaDUaDVaDWaABaDXaBPaDYaDZaEaaEbaEcaEdaAKaxlaxqaxrazIatsaEeaEfaCZaDaaDbaEgaEhaEhaEhaEhaEhaEhaEhaEhaEhaEhaEiaEjaEkaElaEmaEnaEoaEpaCgaChaChaChaChaChaCgaCfaCfaCfbikbikazvayHaEqaEraBhaEsaDAaCoaDxayHaEtayIaEuaAkayHayHayHayHaEvayHayHaDAaEwayHaDzayHaDCaExaEyaEzaDCaEAaEBaECaDCaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaDEaDGcUCaEDaDEaEFddzaEGaEJaEKazHaELaEMaENaDKaEOazHaxVaxVaxVaxVaxVaxVaxVaCLaxVaEPaEQaERaxVaESaETaEUazHaEOaxVaENaEVaBEaBFaEWbikbikbikbikbikaEXaEYaEZaFaaFbaFcaFdaDMaabaCMaFeaFfaFgaCMaFhazOaFiaFjaFkaFlaABaFnaBPaFoaFpaFqaFraFsaFtaFuaFvaydaFwaFxaFyaFzaFAaCZaDaaDbaFBaEhaFCaFCaFCaEhaEhaFDaFEaFEaFFaEiaFGaFHaFIaFIaFJaFKaFLaFMaChaChaChaChaChaFNaFOaFPaFQbikbikazvayHayHaFRayHaEsaFSayHaFTaFUaFUaFUaFUaFVaFUaFWayHayHayHayHayHayHayHayHayJayIaDCaFXaFYaFYaDCaFZaGaaGbaDCbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaDEaGcaGdaGeaDEaGcaGdaGeaEJaBzazHaGfazHazHazHazHazHaxVaGgaGhaGiaGjaGkaxVaCLaxVaEQaGlaEPaGmaGnaGoaxVaGpaxVaxVaxVaxVaGpaCLaEWbikazyazyazyazyaGqaEYaGraGsaGtaGuaGvaGwaDMaCMaBHaGxaGxaGxaGyaGzaGAaGzaGzaGzaGBaGCaGDaGEaGFaGFaGFaGFaGGaGHaGIaxqaGJazIatsaGKaGLaCZaDaaDbaEgaFCaGMaGMaGNaFCaEhaGOaGPaGPaGQaGRaFGaGSaGTaGUaGVaEhaGWaFQaChaChaChaChaChaFQaGXaGYaFQaabaabayGayHayHayJayJaEsaGZaGZaAiaAiaAiaEsaEsaEsayGaHaaHbayGayJayJayGayJayJayGayGaHcaHdaHeaHfaHgaHhaHiaFXaHjaDCbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaCuaDEaEIaHlaCuaDEaEIaHlaCuaxVaCBaxVaxVaxVaxVaxVazHaxVazHaHnaHoazHazHaxVaCLaxVaHpaabaHpaxVaBvaGoaxVaHqaHraxVaENaBzaxVaAwaDMaDMaHsaHsaHsaHsaHsaHsaHsaHsaHsaGvaGvaGwaHtaHuaHvaHwaHxaHyaHzaHAaHBaHBaHBaHBaHCaHDaHEaHFaHGaHBaHBaHHaHHaHIaHJaHKaHLaHMaHNaGKaHOaHPaHPaDbaEgaFCaHQaHRaHSaFCaEhaGOaGPaGPaGQaHTaFGaGSaGUaGUaGVaEhaGWaFQaChaChaChaChaChaFQaHUaGYaFQbikbikayGaHVayHayHaHWayJaHXazwaHYaHZayKayGaFSayKayGaIaayHayGaIbayHayGaIcaIdaIeaFUaIfaFUaIgaIhaIiaIjaIkaIlaImaDCaDDaDDaacaacaDDaDDaDDaDDaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaInaIoaIoaIoaIqaIoaIoaIoaIsaItaIuaIuaIuaIuaIvaxVazHaxVaIwaIxaIyazHaIzaGpaCLaxVaxVaxVaxVaxVaxVaGpaxVazHaIyaCBazHazHaGvaIAaIBaICaIDaIDaIDaIDaIEaIDaIDaIFaIGaICaIHaIIaIIaIIaIIaIIaIIaIIaIJaIKaIKaIKaIKaILaIMaIKaINaIKaIOaILaIKaIKaIKaIKaIPaIQaIRaISaITaFzaIUaIVaHPaIWaEgaFCaIXaIYbvsaFCaEhaIZaJaaJaaJbaEiaFGaJcaJdaJdaJeaEhaJfaJgaChaChaChaChaChaJhaJiaJjaFQbikbikayGayHayHayHayHayHayHaIeaFUaFUaFUaFUaFUaFUaFUaCmayHayHayHayHaDzayHayHaDxayHaJkaJlaJmaJnaJoaFYaFYaFYaJpaDCaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaInaJqaJraJsaJtaJuaJvaJwaJxaJvaJyaJzaJvaJvaJAaxVazHaxVaJBazHazHaJCaJDaxVaEVaBFazHazHazHazHazHazHaGpaJEazHaxVaEKaEKaDMaJFaDMaJGaJHaJIaJIaJIaJJaJIaJIaJIaJKaJGaJLaJMaJMaJMaJMaJMaJMaJMaGvaIKaJNaJOaJPaJQaJRawxaJTaJUaJVaJWaJXaJOaJYaIKaJZaxqaKaazIaKbaGKaKcaKdaKdaKeaKfaKgaKhaKiaKiaKjaKkaKlaKjaKkaKkaKmaKnaKoaEhaEhaKpaEhaKqaKraChaChaChaChaChaKraCfaCfaCfayGayGayGayKayJayJaAkayGayGaDxayJayGaKsayJayGaAkayGaDxaHVayJayGaAkayGayHaHVaDxayHaKtaDCaKuaIhaKvaKwaKxaIhaKyaDCaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaDEaDGcUCaEDaDEaEFddzaEGaEJaEKazHaELaEMaENaDKaEOazHaxVaxVaxVaxVaxVaxVaxVaCLaxVaEPaEQaERaxVaESaETaEUazHaEOaxVaENaEVaBEaBFaEWbikbikbikbikbikaEXaEYaEZaFaaFbaFcaFdaDMaabaCMaFeaFfaFgaCMaFhazOaFiaFjaFkaFlaABaFnaBPaFoaFpaFqaFraFsaFtaFuaFvaydaFwaFxaFyaFzaFAaCZaDaaDbaFBaEhaHTaHTaHTaEhaEhaFDaFEaFEaFFaEiaFGaFHaFIaFIaFJaFKaFLaFMaChaChaChaChaChaFNaFOaFPaFQbikbikazvayHayHaFRayHaEsaFSayHaFTaFUaFUaFUaFUaFVaFUaFWayHayHayHayHayHayHayHayHayJayIaDCaFXaFYaFYaDCaFZaGaaGbaDCbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaDEaGcaGdaGeaDEaGcaGdaGeaEJaBzazHaGfazHazHazHazHazHaxVaGgaGhaGiaGjaGkaxVaCLaxVaEQaGlaEPaGmaGnaGoaxVaGpaxVaxVaxVaxVaGpaCLaEWbikazyazyazyazyaGqaEYaGraGsaGtaGuaGvaGwaDMaCMaBHaGxaGxaGxaGyaGzaGAaGzaGzaGzaGBaGCaGDaGEaGFaGFaGFaGFaGGaGHaGIaxqaGJazIatsaGKaGLaCZaDaaDbaEgaHTaGMaGMaGNaHTaEhaGOaGPaGPaGQaGRaFGaGSaGTaGUaGVaEhaGWaFQaChaChaChaChaChaFQaGXaGYaFQaabaabayGayHayHayJayJaEsaGZaGZaAiaAiaAiaEsaEsaEsayGaHaaHbayGayJayJayGayJayJayGayGaHcaHdaHeaHfaHgaHhaHiaFXaHjaDCbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbjNaInaCuaDEaEIaHlaCuaDEaEIaHlaCuaxVaCBaxVaxVaxVaxVaxVazHaxVazHaHnaHoazHazHaxVaCLaxVaHpaabaHpaxVaBvaGoaxVaHqaHraxVaENaBzaxVaAwaDMaDMaHsaHsaHsaHsaHsaHsaHsaHsaHsaGvaGvaGwaHtaHuaHvaHwaHxaHyaHzaHAaHBaHBaHBaHBaHCaHDaHEaHFaHGaHBaHBaHHaHHaHIaHJaHKaHLaHMaHNaGKaHOaHPaHPaDbaEgaHTaHQaHRaHSaHTaEhaGOaGPaGPaGQaKhaFGaGSaGUaGUaGVaEhaGWaFQaChaChaChaChaChaFQaHUaGYaFQbikbikayGaHVayHayHaHWayJaHXazwaHYaHZayKayGaFSayKayGaIaayHayGaIbayHayGaIcaIdaIeaFUaIfaFUaIgaIhaIiaIjaIkaIlaImaDCaDDaDDaacaacaDDaDDaDDaDDaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdmJdmKaGddmKaIoaIoaIoaIqaIoaIoaIoaIsaItaIuaIuaIuaIuaIvaxVazHaxVaIwaIxaIyazHaIzaGpaCLaxVaxVaxVaxVaxVaxVaGpaxVazHaIyaCBazHazHaGvaIAaIBaICaIDaIDaIDaIDaIEaIDaIDaIFaIGaICaIHaIIaIIaIIaIIaIIaIIaIIaIJaIKaIKaIKaIKaILaIMaIKaINaIKaIOaILaIKaIKaIKaIKaIPaIQaIRaISaITaFzaIUaIVaHPaIWaEgaHTaIXaIYbvsaHTaEhaIZaJaaJaaJbaEiaFGaJcaJdaJdaJeaEhaJfaJgaChaChaChaChaChaJhaJiaJjaFQbikbikayGayHayHayHayHayHayHaIeaFUaFUaFUaFUaFUaFUaFUaCmayHayHayHayHaDzayHayHaDxayHaJkaJlaJmaJnaJoaFYaFYaFYaJpaDCaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaInaInaKzaJqaJraJsaJtaJuaJvaJwaJxaJvaJyaJzaJvaJvaJAaxVazHaxVaJBazHazHaJCaJDaxVaEVaBFazHazHazHazHazHazHaGpaJEazHaxVaEKaEKaDMaJFaDMaJGaJHaJIaJIaJIaJJaJIaJIaJIaJKaJGaJLaJMaJMaJMaJMaJMaJMaJMaGvaIKaJNaJOaJPaJQaJRawxaJTaJUaJVaJWaJXaJOaJYaIKaJZaxqaKaazIaKbaGKaKcaKdaKdaKeaKfaKgaSsaKiaKiaKjaKkaKlaKjaKkaKkaKmaKnaKoaEhaEhaKpaEhaKqaKraChaChaChaChaChaKraCfaCfaCfayGayGayGayKayJayJaAkayGayGaDxayJayGaKsayJayGaAkayGaDxaHVayJayGaAkayGayHaHVaDxayHaKtaDCaKuaIhaKvaKwaKxaIhaKyaDCaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabaDEaKzaKAaKzaKBaJraJraKCaKzaKAaKzaKDaKEaKFaKGaxVazHaGpaGpaxVaxVaxVaKHaKHaKHazNaKHaKHaKHaKHaKHaGvaDMaDMaDMaDMaDMaDMaDMaJFaKIaJGbikaabbikaabbikaabbikaabbikaJGaJLaJMaKJaKKaKLaKMaKNaJMaGvaIKaKOaKOaKPaKQaKRaKSaKTaKSaKUaKVaKWaKOaKOaIKaJZaxqaKXazIaKbaGKaGLaCZaDaaDbaEgaKYaKZaLaaLbaLcaLcaLdaLeaLcaLeaLfaLgaLhaLiaLjaLkaLlaCfaKraChaChaChaChaChaKrayGaCtayHaLmaLnayJayGayJaCtayHayGaCtaDxayGaLoayHayGaLpayHayJaLqaLrayGaLsayHayJaAkaAkaDxaAkaLtaDCaLuaIhaLvaLwaLvaIhaLxaDCaabaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaLyaCuaLzaGdaKzaLAaLBaLCaLDaKzaGdaLEaInaCuaLFaLGaxVazHazHazHazHazHazHaKHaLHaLIaLJaLKaLLaLMaLHaKHaLNaLOaIDaIDaIDaIDaIDaIDaLPaLQaJGaabaLRaLRaLRaLRaLRaLRaLRaabaJGaJLaJMaLSaLTaLUaLVaLSaJMaGvaIKaIKaIKaIKaLWaLXaJOaLYaJOaLXaLZaIKaIKaIKaIKaJZaxqaMaazIaKbaGKaFAaCZaDaaDbaFBaMbaMcaMcaMcaMcaMcaMcaMcaMdaMcaMeaMeaMeaMeaMeaMfayGaCfaKraChaChaChaChaChaKrayGayGayHaMgaLnayJaMhayGayHayHayGayHaDxayJayHayHayGayHayHayJaDxayIayGayHayHayJaMiayHaDxayHaMjaMkaMkaDCaDCaDCaDCaDCaDCaDCaDDaDDaDDaDDaDDaabbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaInaKAaKzaKzaKzaKzaKzaKzaKAaInaMlaCuaMmaMnaMoaMoaMoaMoaMoaMoaMpaKHaLHaMqaLJaMraMqaMqaLHaKHaMsaMtaMuaMuaMuaMuaMuaMuaMuaMuaMvbikaLRaMwaMxaMyaMzaMAaLRbikaJGaJLaJMaMBaMCaMDaMEaLSaJMaGvaIKaMFaMFaKPaMGaMHaKSaKTaKSaMHaMIaMJaKOaKOaIKaJZaxqaKaazIaMKaBRaMLaCZaDaaDbaEgaMbaMcaMMaMNaMOaMOaMcaMPaMQaMRaMeaMSaMTaMUaMeaMVayGbikaMWaMXaMXaMXaMXaMXaMYbikayGayHaMZaNaayJayJayGayGayJayJaNbaNcayJayGazxayGayGayJayJaNdaNeayGayGayGaHYaMiayHaDxayHaMjazwayKaFSayGaNfaNgaNfayGayGayGaabaabaabaabaabaabaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaNhaNiaNjaNiaNiaNkaNlaNiaNiaNjaNmaNnaCuaKBaNoaMoaNpaNqaNraNsaNtaNuaKHaLHaMqaLJaNvaMqaMqaLHaKHaNwaNxaNyaNzaNAaNBaNCaNDaNEaNFaMvaabaLRaNGaNHaNIaNJaNKaLRaabaJGaJLaJMaNLaNMaNNaNOaNPaJMaGvaIKaJNaJOaNQaNRaLXaJOaNSaJOaLXaNTaNUaJOaJYaIKaJZaxqaNVazIaKbaEeaEfaCZaDaaDbaNWaNXaMcaNYaMQaMQaMQaNZaOaaObaOcaMeaOdaOeaOfaOgaOhazxbikbikbikbikbikbikbikbikbikayGaOiaOjaOkaOlaOmayGaEtayHaHVaDxayHayGbikayGayHayHayHayHaDxaOnaOoaOpaOpaOpaOpaOqaOraOsaOtaOuaOvaOuaOwaOxaOxaOyaOzaOAaOBbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaNhaNmaNiaODaOEaOFaOGaOHaOIaOJaOKaOLaOMaONaOOaKzaKBaOPaMoaOQaORaOSaOTaOSaOUaKHaOVaMqaOWaOXaOYaOXaOZaPaaPbaPcaPdaPdaPdaPdaPdaPdaPeaPfaMvbikaLRaPgaNHaPhaNJaPiaLRbikaJGaJLaJMaPjaPkaPlaPmaPnaJMaGvaIKaPoaPoaKPaPpaMHaKSaPqaKSaMHaPraKWaPsaPsaIKaPtazUaPuazIaKbaEeaPvaPvaPvaPvaPwaPxaPyaPzaPAaPBaPBaPBaPCaPBaPDaPEaPFaPGaPHaPEaPIaPJazxayGayGayGayGayGayGayGayGayGayGayGayGaBMayGayGayGayGayHaDxaOiazvaabazvayHaPLaPMaPNaPOaPPaPQaPRaPRaPRaPRaPSaPTaPUaPVaPWaPXaPWaPYaPWaPWaPZaQabpqaQbaQcaQdaQeaQeaQeaQeaQeaQeaQeaQeaQeabLadbbikbikbikbikbikbikbikaaabdBaQfbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdetaNiaNjaNiaNiaNkaNlaNiaNiaNjaNmdeuaCuaKBaNoaMoaNpaNqaNraNsaNtaNuaKHaLHaMqaLJaNvaMqaMqaLHaKHaNwaNxaNyaNzaNAaNBaNCaNDaNEaNFaMvaabaLRaNGaNHaNIaNJaNKaLRaabaJGaJLaJMaNLaNMaNNaNOaNPaJMaGvaIKaJNaJOaNQaNRaLXaJOaNSaJOaLXaNTaNUaJOaJYaIKaJZaxqaNVazIaKbaEeaEfaCZaDaaDbaNWaNXaMcaNYaMQaMQaMQaNZaOaaObaOcaMeaOdaOeaOfaOgaOhazxbikbikbikbikbikbikbikbikbikayGaOiaOjaOkaOlaOmayGaEtayHaHVaDxayHayGbikayGayHayHayHayHaDxaOnaOoaOpaOpaOpaOpaOqaOraOsaOtaOuaOvaOuaOwaOxaOxaOyaOzaOAaOBbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdetaNmaNiaODaOEaOFaOGaOHaOIaOJaOKaOLaOMaONaOOaKzaKBaOPaMoaOQaORaOSaOTaOSaOUaKHaOVaMqaOWaOXaOYaOXaOZaPaaPbaPcaPdaPdaPdaPdaPdaPdaPeaPfaMvbikaLRaPgaNHaPhaNJaPiaLRbikaJGaJLaJMaPjaPkaPlaPmaPnaJMaGvaIKaPoaPoaKPaPpaMHaKSaPqaKSaMHaPraKWaPsaPsaIKaPtazUaPuazIaKbaEeaPvaPvaPvaPvaPwaPxaPyaPzaPAaPBaPBaPBaPCaPBaPDaPEaPFaPGaPHaPEaPIaPJazxayGayGayGayGayGayGayGayGayGayGayGayGaBMayGayGayGayGayHaDxaOiazvaabazvayHaPLaPMaPNaPOaPPaPQaPRaPRaPRaPRaPSaPTaPUaPVaPWaPXaPWaPYaPWaPWaPZaQabpqaQbaQcaQdaQeaQeaQeaQeaQeaQeaQeaQeaQeabLadbbikbikbikbikbikbikbikaaabdBaQfbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaONaQgaQhaQiaOMaQjaOFaQjaOFaQjaOFaQjaOMaQkaQlaKzaKBaQmaMoaQnaQoaQpaQqaQraQsaKHaQtaMqaQuaQvaQwaQxaQyaKHaQzaPdaPdaPdaPdaPdaPdaPdaPeaQAaMvaabaLRaQBaQCaQDaQEaQFaLRaabaJGaJLaJMaQGaQHaQIaQJaQKaJMaGvaIKaIKaIKaIKaQLaLXaJOaLYaJOaLXaQMaIKaIKaIKaIKaQNaQOaQPazIaMKaQQaQRaQRaQRaQSaQTaQUaQVaQWaQXaQVaQYaQZaRaaQVaRbaRcaRdaReaRfaMeaRgaRhaRiaRjaRjaRhaRkaRlaRlaRlaRlaRlaRmaRnaRlaRoaRpaRqaRraRsaRvaRuaTkaRwaRxaRwaRyaRzayHayGaRAaRBaRCaRDaREaRFaRGaRHaRIaRJaRIaRKaRLaRMaRNaROaRPaOCbbVaTCaRTaRUaQdaRVaRWaRXaRYaRZaSaaSbaScaSdaprbikbikbikbikbikbikbikaaabfmbifbieaQfbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaSfaOFaOFaNjaOMaQjaOFaQjaSgaQjaOFaQjaOMaQkaQlaKzaKBaShaMoaMoaSiaSjaSkaSjaMoaKHaKHaKHaKHaSlaSmaSnaSoaKHaSpaSqaSraPdaPdaSsaPdaStaSuaSvaMvbikaLRaLRaSwaSxaSwaLRaLRbikaJGaJLaJMaSyaSzaSAaQJaSBaJMaGvaIKaJNaJOaSCaNRaLXaJOaLYaJOaLXaNTaSDaIKaIKaIKaSEaSFaSGaSHaSIaSJamKamKaSKaSLaSMaSNaMcaSOaMQaMcaSPaMcaSQaMcaSRaSSaSTaSUaSVaTeaSXaSYaSZaTaaTbaTcaTdaTbaTbaUjaTbaSYaTfaSYaOvaTgaSYaThaTiaTjaTmaTlaToaTnaTqaTpaWIaTraOuaTsaTtaTuaTvaTwaTxaTyaTzaRHaTAaTBaRIcLhaTDaTEaTFaROaTGaRQaRRaRSaTHaTIaQdaTJaTKaTKaTLaScaScaScaScaSdaprbikbikbikbikbikbikaaabfmbigbijbihbieaQfbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaSfaOFaOFaNjaOMaQjaOFaQjaSgaQjaOFaQjaOMaQkaQlaKzaKBaShaMoaMoaSiaSjaSkaSjaMoaKHaKHaKHaKHaSlaSmaSnaSoaKHaSpaSqaSraPdaPdaZVaPdaStaSuaSvaMvbikaLRaLRaSwaSxaSwaLRaLRbikaJGaJLaJMaSyaSzaSAaQJaSBaJMaGvaIKaJNaJOaSCaNRaLXaJOaLYaJOaLXaNTaSDaIKaIKaIKaSEaSFaSGaSHaSIaSJamKamKaSKaSLaSMaSNaMcaSOaMQaMcaSPaMcaSQaMcaSRaSSaSTaSUaSVaTeaSXaSYaSZaTaaTbaTcaTdaTbaTbaUjaTbaSYaTfaSYaOvaTgaSYaThaTiaTjaTmaTlaToaTnaTqaTpaWIaTraOuaTsaTtaTuaTvaTwaTxaTyaTzaRHaTAaTBaRIcLhaTDaTEaTFaROaTGaRQaRRaRSaTHaTIaQdaTJaTKaTKaTLaScaScaScaScaSdaprbikbikbikbikbikbikaaabfmbigbijbihbieaQfbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaONaTMaTNaQiaOMaQjaOFaQjaOFaQjaOFaQjaOMaQkaQlaKzaKBaTOaTPaTQaTRaTSaTSaJraTTaTUaTVaTWaTXaTYaTZaMqcoCaKHaUbaUcaUdaUeaUfaUgaUhaUiaUZaUkaMvbikaabbikaUlaUmaUlbikaabbikaJGaJLaJMaUnaUoaUpaUqaUraJMaGvaIKaUsaUtaKPaUuaUvaKSaUwaKSaUxaUyaUzaIKaUAaUBaUCaUDaUEaUFaUGaUHbikbikaSKaUIaUJaUKaMcaULaUMaMQaMQaUNaMQaMQaMQaUOaMeaUPaMeaUQaURaMeaUSaMeaUTaUUaUVaUWaUXaUYaUTbwNaVaaVbaVcaVbaVbaVbaVbaVdaWLaVbaVeaVfaWFaWBaVbaVhayHaRDaViaTvaVjaVkaVlaVmaVnaVoaVpaVqaRIaVraVsaVtaVuaVvaTGaRQaRRaRSaRTaVwaQdaVxaTKaTKaTLaScaScaScaScaSdaprbikbikbikbikbikbikbdBblqbjMbmKbjMbqQbdBbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaVyaVzaNiaODaOMaOFaVAaVBaOFaOFaVCaVAaOMaONaVDaKzaKBaVEaVFaVGaVHaVGaVGaVGaVGaVGaVIaJraKHaVJaVKaVJaKHaKHaVLaVMaVLaMuaMuaMuaMuaVLaVNaVOaMvaVPaVQaVQaVRaVSaVRaVQaVQaVTaJGaVVaJMaVWaJMaVXaVYaVZaJMaWaaIKaIKaIKaIKaWbaWcaWdaWeaWdaWcaWbaIKaIKaWfaUDaUDaUDaUDaWgaWhaWiaWjaWkaSKbKgaUJaWmaMcaMcaMcaMcaMcaMcaMcaMeaMeaUOaWnaWoaWpaWqaWraWsaWuaWtaUTaWvaWwaWxaWyaWzaUTaWAaWGaWCaWDaWCaWEaWHaYDaWNaYFaWJaWKaYGaWMaYEaVbaWOaRtaWPaWQaWRaVjbtTcvIaVmaWTaRIaWUaWVaWWaWXaWYaTFaTFaRIaRIaRQaRRaRSaTHaWZaQdaXaaXbaXcaXdaXeaXfaScaScaXgaprbikbikbikbikbikaaabfmbqRbmKbmKbmKbqSbieaQfbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaVyaNiaNjaNiaNiaNkaNlaNiaNiaNjaVzaXhaCuaXiaVEaInaXjaXjaXkaXjaXlaDEaXmaXnaJraXoaXpaXqaXqaXraXsaXqaXtaXqaXqaXqaXuaXqaXqaXvaXwaXxaXyaXzaXAaXyaXBaXyaXyaXyaXyaXCaXDaXEaXqaXqaXFaXGaXHaXIaXJaXKaXLaXMaXRaXPaXPaXPaXPaXPaXPaXPaXQaXWaXXaXSaXTaXUaXVaXYaZHaXZaUDaUDaYaaYbaYcaYbaYcaYdaYeaYfaYgaYhaYiaMeaYkbBvaYmaYlaYnaYnaYoaYpaYqaYraUTaYsaYtaYuaYuaYvaUTaYwaYxaYyaYzaYAaYAaYBaYCaYHbbFbalbbHbbGbbJaVgaVbaVhaKsaRDaYIaYJaYJaYKaYLaYJaYMaRIaYNaYOaRIaYPaYQaTFaYRaRIaYSaYTaYUaRSaQbaQbaQdaYVaQeaYWaYXaQeaQeaQeaQeaQeabLadbbikbikbikbikbqUbqTbqVbmKbmKbrUbthbmKbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaInaYYaKzaKzaKzaKzaKzaKzaYYaInaMlaCuaYZaZaaInaZbaZcaZdaZdaZeaDEaZfaXnaZgaZhaXpaZiaZjaZkaZlaZlaZmaZnaZnaZnaZoaZpaZpaZqaZraZsaZlaZlaZtaZpaZvaZwaZxaZxaZyaZzaZAaZuaZuaZuaZBaXGaXHaXIaXJaXJaXJaXJaZCaXJaXJaXJaXJaXJaXJaZDaZEaZNaZFaZGaZJaZIaZLaZKaZMaZNaZNaZNaZOaZPaZPaZPaZQaYiaYiaYiaZRaZSaYiaMebbsaZUaYnaYnaZVaYnaZWaZXaYqaZYaUTaZZbaababbacbadaUTbaebafbagbahbaibajaVbaVbbbKbbLaVbaVbbakbbMbakaVbaVhayHaRDbamaTvaTvaTvbanaTvbaoaRIaRIaRIaRIaRIaRIaRIbapaRIaRSaRSaRRaRSbaqbaraQbbasbatbaubavbawbaxbaybazbaAbikbikbikbikaaabtibtjbtibtibtibtkbtibtlbtibtjbtiaQfbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdeOaVzaNiaODaOMaOFaVAaVBaOFaOFaVCaVAaOMaONaVDaKzaKBaVEaVFaVGaVHaVGaVGaVGaVGaVGaVIaJraKHaVJaVKaVJaKHaKHaVLaVMaVLaMuaMuaMuaMuaVLaVNaVOaMvaVPaVQaVQaVRaVSaVRaVQaVQaVTaJGaVVaJMaVWaJMaVXaVYaVZaJMaWaaIKaIKaIKaIKaWbaWcaWdaWeaWdaWcaWbaIKaIKaWfaUDaUDaUDaUDaWgaWhaWiaWjaWkaSKbKgaUJaWmaMcaMcaMcaMcaMcaMcaMcaMeaMeaUOaWnaWoaWpaWqaWraWsaWuaWtaUTaWvaWwaWxaWyaWzaUTaWAaWGaWCaWDaWCaWEaWHaYDaWNaYFaWJaWKaYGaWMaYEaVbaWOaRtaWPaWQaWRaVjbtTcvIaVmaWTaRIaWUaWVaWWaWXaWYaTFaTFaRIaRIaRQaRRaRSaTHaWZaQdaXaaXbaXcaXdaXeaXfaScaScaXgaprbikbikbikbikbikaaabfmbqRbmKbmKbmKbqSbieaQfbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdeOaNiaNjaNiaNiaNkaNlaNiaNiaNjaVzdeQaCuaXiaVEaInaXjaXjaXkaXjaXlaDEaXmaXnaJraXoaXpaXqaXqaXraXsaXqaXtaXqaXqaXqaXuaXqaXqaXvaXwaXxaXyaXzaXAaXyaXBaXyaXyaXyaXyaXCaXDaXEaXqaXqaXFaXGaXHaXIaXJaXKaXLaXMaXRaXPaXPaXPaXPaXPaXPaXPaXQaXWaXXaXSaXTaXUaXVaXYaZHaXZaUDaUDaYaaYbaYcaYbaYcaYdaYeaYfaYgaYhaYiaMeaYkbBvaYmaYlaYnaYnaYoaYpaYqaYraUTaYsaYtaYuaYuaYvaUTaYwaYxaYyaYzaYAaYAaYBaYCaYHbbFbalbbHbbGbbJaVgaVbaVhaKsaRDaYIaYJaYJaYKaYLaYJaYMaRIaYNaYOaRIaYPaYQaTFaYRaRIaYSaYTaYUaRSaQbaQbaQdaYVaQeaYWaYXaQeaQeaQeaQeaQeabLadbbikbikbikbikbqUbqTbqVbmKbmKbrUbthbmKbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaInaYYaKzaKzaKzaKzaKzaKzaYYaInaMlaCuaYZaZaaInaZbaZcaZdaZdaZeaDEaZfaXnaZgaZhaXpaZiaZjaZkaZlaZlaZmaZnaZnaZnaZoaZpaZpaZqaZraZsaZlaZlaZtaZpaZvaZwaZxaZxaZyaZzaZAaZuaZuaZuaZBaXGaXHaXIaXJaXJaXJaXJaZCaXJaXJaXJaXJaXJaXJaZDaZEaZNaZFaZGaZJaZIaZLaZKaZMaZNaZNaZNaZOaZPaZPaZPaZQaYiaYiaYiaZRaZSaYiaMebbsaZUaYnaYnbcMaYnaZWaZXaYqaZYaUTaZZbaababbacbadaUTbaebafbagbahbaibajaVbaVbbbKbbLaVbaVbbakbbMbakaVbaVhayHaRDbamaTvaTvaTvbanaTvbaoaRIaRIaRIaRIaRIaRIaRIbapaRIaRSaRSaRRaRSbaqbaraQbbasbatbaubavbawbaxbaybazbaAbikbikbikbikaaabtibtjbtibtibtibtkbtibtlbtibtjbtiaQfbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabaLyaCuaInaGdaKzbaBbaCbaDbaEaKzaGdaInaInaCubaFaVEaInbaGbaHaZdaZdaZeaDEbaIaXnaJraZhaXpaXqbaJbaKbaLbaLbaMbaNbaObaLbaPbaLbaQbaLbaRbaSbaLbaLbaWbaLbaLbaUbaVbaLbaWbaXbaYbaZaXqaXqbbabbbbbcbbdbbebbfbbebbgbbhbbgbbgbbgbbgbbgbbgbbibbjbbkbbkbbkbbkbblbbkbbmbbnbbkbbkbbobbpbbqbbqbbqbbqbbqbbqbbqbbraYiaYiaMebcTbbtbbubbvbbvbbwbbxaZXaYqbbyaUTaUTaUTaUTaUTbbzaUTbbAbbBbbCbbDaWCbbEaVbbdfbdcbdgbbIbkZbjrcSNcIgaVbaVhaHYaRDbbNbbOaTvbbPbbQaTvbbRbbRaRDbbSbbTbbUaQbdilbbWbbXaRSaRSbbYbbZaQbbcaaQbbcbbatbccbcdbcebatbatbcfbaAbikbikbikbikbqUbtmbwlbutbwmbtmbmKbutbwmbtmbwlbutbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabaDEaInaYYaKzaKBaJraJraKCaKzaYYaKzbcgbchbcibcjaInbckbckaXkbckaXlaDEbclaXnaJraDEbcmbcmbcnbcobcobcobcobcobcobcpbcqbcobcobcobcobcobcobcrbcsbctbctbcubctbcvbcwbcxbcvbcvbcybczbcAbcmbcBbcBbcCbcCbcCbcDbcDbcDbcDbcDbcDbcDbcDbcEbcFbcFbcGbcFbcHbcHbcHbcHbcIbcJbcHbcEbcKbcKbcKbcKbcKbcKbcKbcKbcLbcLbcLaMebcMbcNbcObcObcObcObcPbcQbcRbmwbcUaZTbcVbcWbcXbcYaUTaUTbcZbdabdbbdabdaaVbcYtbdddcnbdebdebdecZrcZqaVbbdhbdiaRDbdjaTvbbPbbPbbQbbPaTvbdkaRDbdlbdmbdnaQbaRSbdobdpbdqbdqbdrbdsbdtbdubdvbdwbdxbdybdzbavbatbatbdAbaAbikbikbikbikbqUbwnbmKbutbBQbtmbmKbutbBQbtmbmKbFmbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabaDEaInaYYaKzaKBaJraJraKCaKzaYYaKzbcgbchbcibcjaInbckbckaXkbckaXlaDEbclaXnaJraDEbcmbcmbcnbcobcobcobcobcobcobcpbcqbcobcobcobcobcobcobcrbcsbctbctbcubctbcvbcwbcxbcvbcvbcybczbcAbcmbcBbcBbcCbcCbcCbcDbcDbcDbcDbcDbcDbcDbcDbcEbcFbcFbcGbcFbcHbcHbcHbcHbcIbcJbcHbcEbcKbcKbcKbcKbcKbcKbcKbcKbcLbcLbcLaMebcObcNbcPbcPbcPbcPbgRbcQbcRbmwbcUaZTbcVbcWbcXbcYaUTaUTbcZbdabdbbdabdaaVbcYtbdddcnbdebdebdecZrcZqaVbbdhbdiaRDbdjaTvbbPbbPbbQbbPaTvbdkaRDbdlbdmbdnaQbaRSbdobdpbdqbdqbdrbdsbdtbdubdvbdwbdxbdybdzbavbatbatbdAbaAbikbikbikbikbqUbwnbmKbutbBQbtmbmKbutbBQbtmbmKbFmbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbdCbdDaJrbdEbdFbdGbdHbdIbdJbdHbdKbdLbdHbdHbdMbdNbdObdPbdQbdQbdQbdRbdQbdSbdTaDEbdUbdVbdWbcobdXbdYbdZbeabebbecbedbeebefbegbehbeibcobejbekbctbelbembenbcvbeobepbeqbcvberbesbetberberberbeuaXJaXObcDbikbikbikbikbikbikbikbcEbevbewbexbeybezbeAbeBbeCbeDbeEbeFbcEbikbikbikbikbikbikbikbcKbeGaYibeHaMebeIbcNbmwbmwbmwbmwbmwbeJbeKbmwbmwbmwbnMbeMbeMbeNbeObePbeQbeRbeSbeTbeUaVbbeVbeWdlHbeYbeYbeXbeZbfaaVbaVhayHaRDbfbbfcaTvbbPbbQaTvbfdbfdaRDaRDbfeaRDaQbbffbbWbbZbfgbfgbfhbbZaQbaQbaQbbfibatbfjbfjbfkbfjbatbflbaAaabbikbikaabbdBbtmbmKbutbBQbtmbmKbutbBQbtmbmKbutbdBbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbdCbfnbfobfnbfnbfnbfnbfnbfnbfobfnbfnbfpaJrbfqbfrbfsaJrbftaJrbfubfvbfwbfxbfyaDEbdVbdVbfzbcobfAbecbecbecbecbecbedbfBbecbecbecbfCbcobejbfDbctbfEbfFbfGbcvbfHbfIbfJbcvbfKbfLbfMbfNbfObesbeuaXJaXObcDbikbikbikbikbcEbcEbcEbcEbfPbfQbfRbfSbfTbfUbfVbfWbfXbfYbfZbcEbcEbcEbcEbikbikbikbikbcKbeGaYibgabgbbgcbgdbgebgfbgcbggbghbgibgjbgkbglbmwbeLbgmbeMbgnbgobeMbgpbgqbgrbgsbeMbgtbgubgvdlHbeYbeYbeXbgwbgxaVbaVhaKsaRDbdjaTvbbPbbPbbQbbPaTvaTvbgybgzaTvbgAaQbbgBbgCbgDbfgbfgbgEbgDbgFaQbbgGbgHbatbgIbgIbgJbgIbatbdAbaAbgKbaAbaAbaAbqUbtmbmKbutbGVbtmbmKbutbGVbtmbmKbutbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaCuaCuaInaInaInaInaInaInaInaInaInaCuaDEbgLbgMbgNbgNbgNbgNbgNbgNbgObgNbgNbgNaDEbdVbejbgPbcobgQbecbecbgRbgSbgTbgUbgRbecbecbecbgVbcobejbekbctbgWbgXbgYbcvbgZbhabhbbcvbhcbhdbhebhfbhgbesbhhbhiaXObcDbcDbhjbcEbcEbcEbhkbhlbhmbhnbhobhobhpbhqbhobhrbhobhsbhtbhubhvbhwbhxbcEbcEbcEbhjbcKbcKbeGaYiaYiaMebhybhzbgkbhAbmwbhBbhCbmwbhDbhEbglbmwbnMbeMbeMbhFbcSbhHbhIbhJbhKbhLbeMbhMbgubhNdlHbeYbeYbhObhPbhQaVbaVhayHaRDbhRbhSbhTbbPbbQbhUaTvaTvbhVaTvbhWbhXaQbbhYbhZbiabfgbfgbibbiabicaQbbidbgHbatbatbatbavbatbatbKnbIzbPfbNjbiibPfddJbmKbmKbmKbmKbmKbmKbmKbmKbmKbmKbutbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikblsbltbltblubltbltbltblvbltbltbmPaabaInaLAaJtbilbgNbimbinbiobipbiqbirbisbitbgNbiubivbiwbixbcobiybecbecbgRbgTbizbiAbgRbecbecbiBbiCbcobejbekbctbctbiDbctbcvbiEbiFbiGbcvbiHbhfbiIbhfbiJbesbeubiKaXOaXPaXPbiLbiMbiNbcEbiObfRbiPbhobhobiQbiRbiSakybiSbiUbiVbiWbiXbiYbiZbjabcEbjbbiMbjcbjdbjebeGaYiaYibjfbmwbjgbmwbmwbmwbjhbjibmwbhDbjjbglbmwbeLbeMbeMbjkbBDbjmbjnbjobjpbhLbjqaVbdlJdlIdlKbeYbeYbeXbhPbjsaVbbjtbjuaRDbjvaRDaRDbjwbbQbjxbjyaTvbjzbjAaWSbjBbdvbjCbjDbjEbjFbjFbjGbjHbjIbdvbjJbjKbatbjLbatbavbatbatddAbaAbaAbaAbaAbgKbqUddBbmKbutbwmbtmbmKbutbwmbtmbmKddCbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbdCbfnbfobfnbfnbfnbfnbfnbfnbfobfnbfnbfpaJrbfqbfrbfsaJrbftaJrbfubfvbfwbfxbfyaDEbdVbdVbfzbcobfAbecbecbecbecbecbedbfBbecbecbecbfCbcobejbfDbctbfEbfFbfGbcvbfHbfIbfJbcvbfKbfLbfMbfNbfObesbeuaXJaXObcDbikbikbikbikbcEbcEbcEbcEbfPbfQbfRbfSbssbfUbfVbfWbfXbfYbfZbcEbcEbcEbcEbikbikbikbikbcKbeGaYibgabgbbgcbgdbgebgfbgcbggbghbgibgjbgkbglbmwbeLbgmbeMbgnbgobeMbgpbgqbgrbgsbeMbgtbgubgvdlHbeYbeYbeXbgwbgxaVbaVhaKsaRDbdjaTvbbPbbPbbQbbPaTvaTvbgybgzaTvbgAaQbbgBbgCbgDbfgbfgbgEbgDbgFaQbbgGbgHbatbgIbgIbgJbgIbatbdAbaAbgKbaAbaAbaAbqUbtmbmKbutbGVbtmbmKbutbGVbtmbmKbutbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaCuaCuaInaInaInaInaInaInaInaInaInaCuaDEbgLbgMbgNbgNbgNbgNbgNbgNbgObgNbgNbgNaDEbdVbejbgPbcobgQbecbecdhUbgSbgTbgUdhUbecbecbecbgVbcobejbekbctbgWbgXbgYbcvbgZbhabhbbcvbhcbhdbhebhfbhgbesbhhbhiaXObcDbcDbhjbcEbcEbcEbhkbhlbhmbhnbhobhobhpbhqbhobhrbhobhsbhtbhubhvbhwbhxbcEbcEbcEbhjbcKbcKbeGaYiaYiaMebhybhzbgkbhAbmwbhBbhCbmwbhDbhEbglbmwbnMbeMbeMbhFbcSbhHbhIbhJbhKbhLbeMbhMbgubhNdlHbeYbeYbhObhPbhQaVbaVhayHaRDbhRbhSbhTbbPbbQbhUaTvaTvbhVaTvbhWbhXaQbbhYbhZbiabfgbfgbibbiabicaQbbidbgHbatbatbatbavbatbatbKnbIzbPfbNjbiibPfddJbmKbmKbmKbmKbmKbmKbmKbmKbmKbmKbutbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikblsbltbltblubltbltbltblvbltbltbmPaabaInaLAaJtbilbgNbimbinbiobipbiqbirbisbitbgNbiubivbiwbixbcobiybecbecdhUbgTbizbiAdhUbecbecbiBbiCbcobejbekbctbctbiDbctbcvbiEbiFbiGbcvbiHbhfbiIbhfbiJbesbeubiKaXOaXPaXPbiLbiMbiNbcEbiObfRbiPbhobhobiQbiRbiSakybiSbiUbiVbiWbiXbiYbiZbjabcEbjbbiMbjcbjdbjebeGaYiaYibjfbmwbjgbmwbmwbmwbjhbjibmwbhDbjjbglbmwbeLbeMbeMbjkbBDbjmbjnbjobjpbhLbjqaVbdlJdlIdlKbeYbeYbeXbhPbjsaVbbjtbjuaRDbjvaRDaRDbjwbbQbjxbjyaTvbjzbjAaWSbjBbdvbjCbjDbjEbjFbjFbjGbjHbjIbdvbjJbjKbatbjLbatbavbatbatddAbaAbaAbaAbaAbgKbqUddBbmKbutbwmbtmbmKbutbwmbtmbmKddCbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikblsbohbptbojbpwbpwbqWbpwbpwbpwbqWblubjNaInaKzaKBbfqbgNbimbjObjPbimbjQbjRbjSbjTbgNbjUaFmbjWbcsbcobjXbjYbjZbkabkbbkcbkdbkebkebkebkfbkgbcobejbivbkhbkibkjbkkbcvbcvbcvbcvbcvbklbkmbknbkobkpbesbeubiKaXJaXJaXJbkqbkrbksbktbkubkvbhobkwbkxbkybkzbkAbkBbkCbkDbkEbkFbkGbkubkHbkIbkJbkKbkMbkLbkObkObkPaYibkQaMebmwbkRbkSbglbmwbkTbkUbmwbkVbkWbglbmwbnMbeMbeMbeMbeNbeMbkXbeMbjpbhLbkYaVbdlObhNbeXbeYbeYbeXbhPblaaVbblbblcbldbleblfblgblhblibljbljbljbljbljbljblkbllblmbfgbfgbfgbfgbfgbfgblnbloblpbgHbatbatbatbavbatbatddDbgKblrblrblrbaAbwmbtmbmKbutbBQbtmbmKbutbBQbtmbmKbutbwmbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbqYbqXbqXbqXbqXbqXbqXbqXbqXbqXbqXbqZbraaGdbraaJrbfqbgNblwbimblxblxblxblybimblzbgNblAblBbjWblCblCblCblCblDblCblEbecblFblGblHblHblIblJbcoblKblLblMblNblOblPblQblRblSblRblTblTblTblTblTblUberbeublVblWblXblYblZbmabmbbmcbmdbkBbmebmfbmgbmgbmgbmgbmhbmgbmibmjbmkbmlbmebmmbmnbcEbmobmpbmqbkNbmsbmtaYiaYibjfbmwbnCbmwbmwbmwaRebmwbmwbmvbmvbmwbmwbmxbeMbeMbmybmzbeMbeMbeMbmAbmBbmCaVbbgxbhNbeXbeXbeXbeXbhPbmDaVbbmEbmFbmFbmGbmFbmHbbPbbPbbPbbPbmIbbPbbPbbPbmJblobfgbfgbfgbfgbfgbfgbfgblnbloblpbgHbatbfjbfjbfkbfjbatddEbaAbmLbmMbmNbaAbBQbtmbmKbutbBQbtmbmKbutbBQbtmbmKbutbBQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbrcbrbbrebrdbrfbrfbrgbrfbrfbrfbrgbluaInaInaKzbrVbcjbmQbimbmRblxblxblxblybmRbimbgNbmSbmTbjWblCbmUbmVbmWbmXblCbmYbmZbnabcobnbbncbndbnebcobejbnfbngbngbnhbngbngbngbngbnibnjbnjbnjbnkbnjbnlbnmbnnbnobnpbnqbnqbnqbnqbnqbnqbnrbnsbnrbmgbmgbntbnubnvbnwbnxbnybntbnzbmgbnAbnBbnAbnAbnAbnAbnAbnAbnAbmtaYiaYiaMebnEbnDcakbnGbmwbnFbmwbnJdmhdmgbmwbpjaUTbnKbnLaUTaUTczObnNddybnNaUTaUTaVbbnObnPbnQbnQbnQbnQbnPbnRaVbbnSbmFbmFbmGbnTaRDbnUbnVbnWbnXbnYbnZboabobbocaQbbodaRSboebfgbfgboeaRSbofaQbbogbgHbatbgIbgIbgJbgIbatddDbgKblrblrblrbaAbGVbtmbmKbutbGVbtmbmKbutbGVbtmbmKbutbGVbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbrcbltbltblubltbltbltblvbltbltbtnaabaInboibdFbokbgNbjObjObjObimbolbombonboobgNbopboqbjWblCborblCbosbotblCboubovbowbcobnbbncbndbiCbcobejbnfbngboxboybozboAboBbngboCboDboEboFbnmbnmbnmbnmboGboHboIbnqboJboKboLboMboNboOboPboQbmgboRbnvboSboTboUboTboSbnvboVbmgboWboXboYboZbpabpbbpcbpdbnAbpebpfbpfbpgaMeaMeaMeaMebphbjfbphbpiaMeaURaMeaMeaUTaUTaUTaUTbplbpkbpkbpkbpkbpmbpJaVbbakbpnbakbpobpobakbpnbakaVbbnSbmFbmFbppbnTaRDaRDaRDaRDaRDbjvaRDaRDaRDaRDaQbbpqaQcaQcaQcaQcaQcaQcaQbaQbbprbpsbatbatbatbavbatbatddAbaAbaAbaAbaAbgKbqUddFbmKbmKbmKbmKbmKbmKbmKbmKbmKddGbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaLyaCuaKzaKzaKzaDEaDEaDEaDEaDEaDEbtobpubgNbgNbgNbgNbgNbgNbpvbgNbgNbgNbejbejbpxblCbpybpzbosbpAblCdlEbpCbpBbcobnbbncbndbecbcobejbnfbngbpDbpEbpFboAbpFbngboCbpGbpHbpIbmubpKbpLbnmbpMbpNboIbpObpPbpQbpRbpSbpSbpRbpTbpUbmgbpVbnvbnvbpWbpXboTboSbnvbpYbmkbpZbqabqbbqcbqdbqebqbbqfbnAbqgbqhbqibqjbqkbqlbqmbqnbqnbqnbqnbqnbqnbqobqpbqqbqnbqnbqsbqnbqnbqnbqnbqnbqnbqnbqndcZbqubqvbqvbqvbqvbqvbqvbqwbqlbqxbqybqyaHkbqAbqBbqAbqCbqAbqDbqEbqFbqAbqGbqHbqIbqJbqKbqKbqKbqKbqKbqKbqKbqLbqMbqNbqNbqNbqNbqObqNbqPbKnddHbPfddIbiibPfdlbbmKbmKbmKbmKddKbmKddKbmKbmKbmKddGbdBbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbtpbtqbtqbtqbtqbwpbwpbtqbtqbxZbikaabaInaLAaJtbzPbzObzRbzQbzQbzQbzQbzSbzUbzTbcsbdVbBFbrhblCblCblCbribotblCbcobcobcobcobnbbrjbrkbrlbcobrmbrnbngbrobrpboAbpFbrqbngboCbrrbpHbpIbpIbrsbrtbnmbrubpNboIbpObrvbrwbrxbrybrzbrAbpTbrBbmgbrCbpWbnvbrDbrEbrDbnvbpWbrFbnzbrGbqbbqbbqcbrHbqebqbbrIbnAbrJbqibqibqjbqkbqlbqnbqnbqnbqnbqnbqnbqnbrKbqnbqnbqnbqnbqnbqnbrLbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrNbrObrPbqKbqKbrQbmFbmFbmFbmFbmFbmGbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbrRbmFbrSbrTbatbatbatbatbatbatbatddLbaAbgKbaAbaAbaAbqUddMddOddNbdBddPbdBddPbdBddQddMddObqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbBGbDCbBHdjhbDDdjidjidjkdjjbtqbxZbjNaInaInaKBbrWbrXbrYbrXbrXbrXbrXbrZbsabsbbcsbcsbscbsdblCbmUbsebsfbpAblCbsgbshbsgbcobcobcobcobsibcobsjbskbngbslbsmbpFbsnbsobngboCbnmbspbpIbpIbpIbsqbnmbsrbpNboIbpOdmbbrwbrxbstbsubrAbpTbsvbmgbswbsxbnvbsybszbsAboSbsBbsCbsDbsEbsFbsGbsHbsIbsJbqbbsKbnAbsLbsMbqibqjbqkbqlbqnbsNbqnbqnbqnbqnbsObsPbsPbsPbsPbsQbqnbqnbqnbqnbsRbqnbsNbsSbqnbsTbsUbsVbqnbsWbsXbsXbsYbsZbtabtbbmFbmFbmFbmFbmFbmFbmFbtcbtdbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbtebtfbtfbtgddSddRddUddTddTddTddTddVddWbaAaabbikbikaabbqUddXddZddYdeabqUbikbqUdecdebdecdecbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbBGbDCdjldjidjidjidjidjidjidjideHdjnaGddjnaJrbtrbrXbtsbttbtubtvbtwbrZbtxbtybtzbtzbtAbtBblCblCblCbosbtCborbcsbcsbcsbcsbtDbejbejbskbejbsjbskbngbtEbtFbtGbtHboAbngbtIbnmbtJbpIbpIbpIbtKbtLbtMbpNbtNbnqbtObtPbpRbpRbpRbpRbpTbtQbmgbtRbtSbmgbmgbmgbmgbmgbmgbmgbnzbnAbqrbtUbtVbtWbtXbtYbtZbnAbvubuabuabucbucbucbucbucbucbucbudbudbuebufbugbugbufbuebudbudbuhbuhbuhbuhbuhbuhbuibuibujbuibuibuibuibuibukafkbumbunbmFbmFbuobuobupbupbupbupbupbuqbtfbtfbtebtfbmFbtfbtfbtfbtfburbusbusbusbusdedbuubuubuubuubuubuubuubuubuubikbikbikbikbdBddYddYddYdeebqUbikbqUdefdebdebdegbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbBGbDCdjodjpdjpdjidjpdjpdjpbtqdjqaInaInaInaKBbuvbrXbuwbuxbuxbuxbuybrZbejbuzbuAbuBbuCbuDblCbmUbuEbosbuFborbuGbuHbuIbuJbuKbuLbuLbuMbuLbuNbuObngbuPbuQbuRbuSbuTbuUbuVbnmbuWbpIbpIbuXbuYbuZbtMbpNbvabnqbvbbvcbvdbvebvfbvgbvhbnqbnqbvibvjbvkbvlbvmbvlbvnbvjbikbvobnAbvpbvqbvrdmcbtXbqbbvtbnAbxebvwbxfbucbzcbvybvzbvAbvBbvCbvDbvEbvFbvGbvHbvHbvGbvIbvJbvKbuhbvLbvMbvNbvObuhbvPbvQbvRbvSbvTbvUbvUbvVbukafNbvXbvYbvZbvYbwabwabupbwbbwcbwdbupbwebwfbwebupbwgbtfburbusbwhbwibwhbusbwjbwkbusdeicngbxXbwobikbikbikbikbikbikbikbikbikbikbqUddXddZddYdejbqUbikbqUdekdekdekdekbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbqYbqXbqXbqXbqXbqXbqXbqXbqXbqXbqXbqZbraaGdbraaJrbfqbgNblwbimblxblxblxblybimblzbgNblAblBbjWblCblCblCblCblDblCblEbecblFblGblHblHblIblJbcoblKblLblMblNblOblPblQblRblSblRblTblTblTblTblTboFblUbeublVblWblXblYblZbmabmbbmcbmdbkBbmebmfbmgbmgbmgbmgbmhbmgbmibmjbmkbmlbmebmmbmnbcEbmobmpbmqbkNbmsbmtaYiaYibjfbmwbnCbmwbmwbmwaRebmwbmwbmvbmvbmwbmwbmxbeMbeMbmybmzbeMbeMbeMbmAbmBbmCaVbbgxbhNbeXbeXbeXbeXbhPbmDaVbbmEbmFbmFbmGbmFbmHbbPbbPbbPbbPbmIbbPbbPbbPbmJblobfgbfgbfgbfgbfgbfgbfgblnbloblpbgHbatbfjbfjbfkbfjbatddEbaAbmLbmMbmNbaAbBQbtmbmKbutbBQbtmbmKbutbBQbtmbmKbutbBQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbrcbrbbrebrdbrfbrfbrgbrfbrfbrfbrgbluaInaInaKzbrVbcjbmQbimbmRblxblxblxblybmRbimbgNbmSbmTbjWblCbmUbmVbmWbmXblCbmYbmZbnabcobnbbncbndbnebcobejbnfbngbngbnhbngbngbngbngbnibnjbnjbnjbnkbnjbnlbuWbnnbnobnpbnqbnqbnqbnqbnqbnqbnrbnsbnrbmgbmgbntbnubnvbnwbnxbnybntbnzbmgbnAbnBbnAbnAbnAbnAbnAbnAbnAbmtaYiaYiaMebnEbnDcakbnGbmwbnFbmwbnJdmhdmgbmwbpjaUTbnKbnLaUTaUTczObnNddybnNaUTaUTaVbbnObnPbnQbnQbnQbnQbnPbnRaVbbnSbmFbmFbmGbnTaRDbnUbnVbnWbnXbnYbnZboabobbocaQbbodaRSboebfgbfgboeaRSbofaQbbogbgHbatbgIbgIbgJbgIbatddDbgKblrblrblrbaAbGVbtmbmKbutbGVbtmbmKbutbGVbtmbmKbutbGVbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbrcbltbltblubltbltbltblvbltbltbtnaabaInboibdFbokbgNbjObjObjObimbolbombonboobgNbopboqbjWblCborblCbosbotblCboubovbowbcobnbbncbndbiCbcobejbnfbngboxboybozboAboBbngboCboDboEbSVbyzbyzbyzbuVboGboHboIbnqboJboKboLboMboNboOboPboQbmgboRbnvboSboTboUboTboSbnvboVbmgboWboXboYboZbpabpbbpcbpdbnAbpebpfbpfbpgaMeaMeaMeaMebphbjfbphbpiaMeaURaMeaMeaUTaUTaUTaUTbplbpkbpkbpkbpkbpmbpJaVbbakbpnbakbpobpobakbpnbakaVbbnSbmFbmFbppbnTaRDaRDaRDaRDaRDbjvaRDaRDaRDaRDaQbbpqaQcaQcaQcaQcaQcaQcaQbaQbbprbpsbatbatbatbavbatbatddAbaAbaAbaAbaAbgKbqUddFbmKbmKbmKbmKbmKbmKbmKbmKbmKddGbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaLyaCuaKzaKzaKzaDEaDEaDEaDEaDEaDEbtobpubgNbgNbgNbgNbgNbgNbpvbgNbgNbgNbejbejbpxblCbpybpzbosbpAblCdlEbpCbpBbcobnbbncbndbecbcobejbnfbngbpDbpEbpFboAbpFbngboCbpGbpHbAibmubpKbpLbnmbpMbpNboIbpObpPbpQbpRbpSbpSbpRbpTbpUbmgbpVbnvbnvbpWbpXboTboSbnvbpYbmkbpZbqabqbbqcbqdbqebqbbqfbnAbqgbqhbqibqjbqkbqlbqmbqnbqnbqnbqnbqnbqnbqobqpbqqbqnbqnbqsbqnbqnbqnbqnbqnbqnbqnbqndcZbqubqvbqvbqvbqvbqvbqvbqwbqlbqxbqybqyaHkbqAbqBbqAbqCbqAbqDbqEbqFbqAbqGbqHbqIbqJbqKbqKbqKbqKbqKbqKbqKbqLbqMbqNbqNbqNbqNbqObqNbqPbKnddHbPfddIbiibPfdlbbmKbmKbmKbmKddKbmKddKbmKbmKbmKddGbdBbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbtpbtqbtqbtqbtqbwpbwpbtqbtqbxZbikaabaInaLAaJtbzPbzObzRbzQbzQbzQbzQbzSbzUbzTbcsbdVbBFbrhblCblCblCbribotblCbcobcobcobcobnbbrjbrkbrlbcobrmbrnbngbrobrpboAbpFbrqbngboCbrrbpHbAibpIbrsbrtbnmbrubpNboIbpObrvbrwbrxbrybrzbrAbpTbrBbmgbrCbpWbnvbrDbrEbrDbnvbpWbrFbnzbrGbqbbqbbqcbrHbqebqbbrIbnAbrJbqibqibqjbqkbqlbqnbqnbqnbqnbqnbqnbqnbrKbqnbqnbqnbqnbqnbqnbrLbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrMbrNbrObrPbqKbqKbrQbmFbmFbmFbmFbmFbmGbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbrRbmFbrSbrTbatbatbatbatbatbatbatddLbaAbgKbaAbaAbaAbqUddMddOddNbdBddPbdBddPbdBddQddMddObqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbBGbDCbBHdjhbDDdjidjidjkdjjbtqbxZbjNaInaInaKBbrWbrXbrYbrXbrXbrXbrXbrZbsabsbbcsbcsbscbsdblCbmUbsebsfbpAblCbsgbshbsgbcobcobcobcobsibcobsjbskbngbslbsmbpFbsnbsobngboCbnmbspbAibpIbpIbsqbnmbsrbpNboIbpObWDbrwbrxbstbsubrAbpTbsvbmgbswbsxbnvbsybszbsAboSbsBbsCbsDbsEbsFbsGbsHbsIbsJbqbbsKbnAbsLbsMbqibqjbqkbqlbqnbsNbqnbqnbqnbqnbsObsPbsPbsPbsPbsQbqnbqnbqnbqnbsRbqnbsNbsSbqnbsTbsUbsVbqnbsWbsXbsXbsYbsZbtabtbbmFbmFbmFbmFbmFbmFbmFbtcbtdbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbmFbtebtfbtfbtgddSddRddUddTddTddTddTddVddWbaAaabbikbikaabbqUddXddZddYdeabqUbikbqUdecdebdecdecbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbBGbDCdjldjidjidjidjidjidjidjideHdjnaGddjnaJrbtrbrXbtsbttbtubtvbtwbrZbtxbtybtzbtzbtAbtBblCblCblCbosbtCborbcsbcsbcsbcsbtDbejbejbskbejbsjbskbngbtEbtFbtGbtHboAbngbtIbnmbtJbAibpIbpIbtKbtLbtMbpNbtNbnqbtObtPbpRbpRbpRbpRbpTbtQbmgbtRbtSbmgbmgbmgbmgbmgbmgbmgbnzbnAbqrbtUbtVbtWbtXbtYbtZbnAbvubuabuabucbucbucbucbucbucbucbudbudbuebufbugbugbufbuebudbudbuhbuhbuhbuhbuhbuhbuibuibujbuibuibuibuibuibukafkbumbunbmFbmFbuobuobupbupbupbupbupbuqbtfbtfbtebtfbmFbtfbtfbtfbtfburbusbusbusbusdedbuubuubuubuubuubuubuubuubuubikbikbikbikbdBddYddYddYdeebqUbikbqUdefdebdebdegbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbBGbDCdjodjpdjpdjidjpdjpdjpbtqdjqaInaInaInaKBbuvbrXbuwbuxbuxbuxbuybrZbejbuzbuAbuBbuCbuDblCbmUbuEbosbuFborbuGbuHbuIbuJbuKbuLbuLbuMbuLbuNbuObngbuPbuQbuRbuSbuTbuUdngbyzdnidnhbpIbuXbuYbuZbtMbpNbvabnqbvbbvcbvdbvebvfbvgbvhbnqbnqbvibvjbvkbvlbvmbvlbvnbvjbikbvobnAbvpbvqbvrccIbtXbqbbvtbnAbxebvwbxfbucbzcbvybvzbvAbvBbvCbvDbvEbvFbvGbvHbvHbvGbvIbvJbvKbuhbvLbvMbvNbvObuhbvPbvQbvRbvSbvTbvUbvUbvVbukafNbvXbvYbvZbvYbwabwabupbwbbwcbwdbupbwebwfbwebupbwgbtfburbusbwhbwibwhbusbwjbwkbusdeicngbxXbwobikbikbikbikbikbikbikbikbikbikbqUddXddZddYdejbqUbikbqUdekdekdekdekbqUbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjrbtqbtqbtqbtqbtqbtqbtqbtqdjqbikbikaInbwqbdFbwrbrXbwsbrXbwtbuxbwubwvbrZbwwbwxbwybwzbuDblCblCblCblCblCblCbwAbwBbwCbwDbwEbngbngbngbngbngbngbngbwFbngbngbngbwGbngbwHbwIbwJbpIbpIbpIbwKbtLbwLbpNbwMbnqbIDbvcbnrbnrbnrbnqbwObnqbwPbwQbwRbwSbwTbwUbwVbwWbwXbwYbwZbnAbxabqbbxbbxcbtXbxdbqbbnAbzbbxgbANbucbxhbxibxjbxkbxlbxmbxnbvHbvHbvHbvHbvHbvHbvHbvHbxobxpbxqbxrbxsbxtbuhbxubxvbxwbxxbxybxzbxvbxAbukbDdbvXbxCbxDbxEbxFbxFbxGbxHbxIbxJbxKbxLbxMbxNbupbxObxPbxQbusbxRbxSbxTbLSbxUbxVbusbxWbxXbxYbwobikbikbikbikbikbikbikbikbikbikbDybtldemdemdemdenbikdeodepdepdepbtlbDzbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaLyaCuaKzaKzaInaInaInaInaInaInaInaKBaJrbyabrXbybbycbydbyebyebyfbygbyhbyibyibyjbykbtzbtzbtzbtzbtzbtzbylbymbymbynbyobngbypbyqbyrbysbytbyubyvbywbngbyxbyybyzbuVbtLbwJbpIbpIbyAbnmbnmbyBbyCbyDbyEbyFbyGbyHbyIbyJbyKbyLbyMbyNbyObwXbyPbyQbyPbyQbyRbwXbwYbySbyTbyUbyVbyWbyXbyYbyZbzabyTbAObvwbvwbucbzebzdcSCbzfbzgbucbxnbvHbvHbvHbvHbvHbvHbvHbzhbzibzjbzkbzlbxqbzmbuhbznbzobzpbxxbxAbxzbzqbzrbukbIbbztbzubzvbzvbzwbzxbzybzzbzAbzAbzAbzBbzAbzCbzDbzEbzFbzGbzHbzIbzJbzKbzKbzKbzLbusbzMbxXbzNbwobikbikbikbikbikbikbikbikbikbikbikbDyderderderbDzbikbDyderderderbDzbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaIndjtdjsdjuaIoaIoaIobdFaJraJrbrXbzVbrXbzWbzXbzYbzZbrXbcsbAabAabAbbAcbAbbAbbAbbAcbAbbcsbcsbngbngbngbAdbngbAebAebAebAebAebAebyvbAfbAgbAhbAibAjbAkbAlbAmbAnbAobApbAqbArbAsbAtbAubAvbAwbAwbAxbAybAzbAAbABbACbADbAEbvjbAFbwVbAGbwTbAHbvjbikbAIbAJbAKbALbAJbAJbAJbAJbAMbnAbCBbvwbCCbAPbAQbARbASbATbAUbucbAVbAWbAXbAYbAZbBabBbbBcbvHbBdbuhbBebzlbBfbBgbuhbBhbBibxwbxxbxAbxzbxvbxAbukbDdbvXbBjbBkbBlbBmbBnbBobBpbBqbBrbBsbBtbBubKpbupbBwbBxbBybusbBzbBAbBBbxUbBCbKwbusbzMbxXbBEbwobikbikbikbikaabaabaabaabaabaabaabaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaIndjwdjvdjuaJqaJqbBIbBJaJqbBKbrXbBLbycbBMbBNbBObBPbrXbikaabaabdetdesdesdesdesdesdeubikbikbBRbBSbBTbBUbBVbAebAebAebAebAebAebBWbBXbBYbBZbCabCbbCcbCdbnmbnmbCebCfbnmbnmbCgbChbCibCjbCkbClbClbCmbClbCnbCobCpbCqbAEbvjbCrbvlbvlbvlbCsbvjbikbAIbAJbCtbCubCvbCwbCxbCybCzbCAbEsbvwbEtbucbvxbCDbCEbCFbCGbCHbCIbCJbCKbCLbCMbCNbCObCPbCQbCRbCSbCTbzlbCUbCVbuhbCWbCXbCYbCZbDabDbbDcbvVbukbIcbDebDfbDgbDgbDhbDibDjbDkbDlbDmbDnbDobDpbDqbupbDrbBxbDsbusbDtbDubDvbxUbxUbDwbusbxWbxXbDxbwobikbikbikbikaabbDAbFfbDBbFfbDBbFfbFgaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaIndjwdjvdjuaJqaJqbBIbBJaJqbBKbrXbBLbycbBMbBNbBObBPbrXbikaabaabdfMdesdesdesdesdesdfNbikbikbBRbBSbBTbBUbBVbAebAebAebAebAebAebBWbBXbBYbBZbCabCbbCcbCdbnmbnmbCebCfbnmbnmbCgbChbCibCjbCkbClbClbCmbClbCnbCobCpbCqbAEbvjbCrbvlbvlbvlbCsbvjbikbAIbAJbCtbCubCvbCwbCxbCybCzbCAbEsbvwbEtbucbvxbCDbCEbCFbCGbCHbCIbCJbCKbCLbCMbCNbCObCPbCQbCRbCSbCTbzlbCUbCVbuhbCWbCXbCYbCZbDabDbbDcbvVbukbIcbDebDfbDgbDgbDhbDibDjbDkbDlbDmbDnbDobDpbDqbupbDrbBxbDsbusbDtbDubDvbxUbxUbDwbusbxWbxXbDxbwobikbikbikbikaabbDAbFfbDBbFfbDBbFfbFgaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaIndjudjubDEaInaInaLyaCubDFbDGbrXbDHbycbycbycbrXbrXbrXbikbikbikdewdevdevdexdevdevdewbikbikbBRbDIbAebDJbDKbDKbDKbDKbDKbDLbDMbDKbDNbDObDPbDQbDRbDSbDTbnmbDUbpIbDVbDWbtLbDXbDYbDZbCjbCjbCpbEabEbbEcbEdbEebCpbvibAEbvjbEfbEgbEhbqtbEjbvjbikbEkbAJbElbEmbEnbEobEpbEobEqbErbFWbvwbHBbucbEubEubEvbEwbExbEybEzbEAbEBbECbEDbEDbEEbEFbEGbEHbuhbCTbEIaJSbuhbuhbuibEKbELbEMbuibukbukbukbENbIdbvXbEPbBkbBlbEQbDgbDjbERbESbESbETbxJbEUbEVbEWbEXbxPbEYbusbEZbFabxUbFbbFcbFdbusbzMbFebwobwobikbikbikbikaabbFhbFjbFibGSbFkbGTbFhaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjxdjydjydjydjydjAdjzdjydjydjydjydjBbikbikbikbikbikbikbikbikbikbikbikbikbikdewdevdevdevdevdevdewbFnbBRbBRbFobFpbFqbFrbFrbFrbFpbAebyvbAfbAebAebAgbFsbFtbFubFvbFwbFxbFybpIbpIbFzbtLbDXbDYbFAbFBbFCbFDbFEbFFbFGbFHbFIbCpbFJbFKbwRbFLbFMbFNbFObFPbwXbwYbFQbAJbFRbFSbFTbEobFUbEobFVbErbJebvwbKObucbFYbFZbGabGbbGcbGdbGebGfbGgbGgbGhbGibGgbGgbGjbGkbGlbGmbGnbGobGpbGqbGrbGsbGtbGubGvbGwbKhbIebKjbKibvXbGBbGCbGDbGEbGFbxGbGGbESbESbGHbGIbEUbGJbupbGKbGKbGLbusbGMbGNbGObGPbxUbGQbusbzMbGRbwobikbikbikbikbikaabbGUbIybFibFkbFibKkbDBaabbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjxdjCdjEdjDdjGdjFdjIdjHdjFdjJdjLdjKdjydjydjBbikbikbikbikbikbikbikbikbikbikbikdewdevdevdevdevdevbGWbmrbNkbmrbGXbGYbGZbGYbGYbGYbGYbHabyvbAfbHbbngbngbHcbpIbAibFvbHdbtLbHebHfbHfbHgbHhbHibHjbHkbHlbHmbHnbHobHpbHqbHrbHsbCpbCqbAEbvjbEibHubHvbHwbHxbvjbikbEkbHybHzbHybHybHybHybHybHAbHybKPbvwbKObucbHCbHDbHDbHEbHFbEybHGbHHbHIbHJbHKbHLbHMbHIbHNbHObHPbHQbHRbHSbHTbHTbHUbHVbHWbHXbHYbLibLCbLBbNdbNcbNebIfbIfbIgbIhbIibxGbIjbxJbxJbIkbIlbEUbImbInbIobIpbIqbIrbIsbItbIubIvbIubusbusbIwbEXbGxbLDbLDbLDbLDbLDbGxbFhbFkbFibFkbFkbGTbFhaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjxdjydjHdjHdjHdjMdjFdjNdjNdjFdjOdjHdjHdjQdjPdjydjBbikbikbikbikbikbikbikbikbikbikdewdevdevdevdevdevbLFbKmbIAbKmbIBbAebFqbFrbFrbFrbAebAebyvbAfbICbKobngbIEbpIbAibFvbIFbtLbIGbpIbrsbpIbIHbDXbvvbIIbHlbHmbIJbIKbILbIMbINbIObIPbIQbIRbISbISbITbIUbIVbvjbvjbikbEkbHybIWbIXbIYbIZbJabJbbJcbJdbMhbvwbKObCHbJfbJgbJhbJibJjbEybJkbJlbJmbJnbJobJpbJqbJrbJsbJtbJubJvbJwbJxbJybJzbJAbJBbJCbJDbJEbGwchEbIecnfcjubvYbJIbJJbJKbJLbJLbxGbJMbJNbJObxGbJPbEUbJQbxGbJRbJSbJTbJUbJVbJWbJXbJYbJZbKabKbbKcbKdbKebKfbKfbIxbJFbJHbGzbKlbFfbDBbNhbDBbFfbLEaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjxdjydjSdjRdjUdjTdjVdjFdjWdjHdjXdjHdjHdjHdjHdjHdjMdjFbikbikbikbikbikbikbikbikbikbikdewdeCdevdevdevcOfdewbFnbBRbBRdezbAebFqbAebAebAebAebAebyvbAfbICbLwbngbLQbpIbKqbKrbpIbKsbpHbpIbpIbKtbtLbDXbvvbIIbHlbHmbCpbKubKvbqzbKxbKybKzbKAbKBbKCbKDbwXbKEbKFbwXbwYbwYbKGbHybKHbKIbKJbKKbKLbKLbKMbKNbMibvwbMjbucbEybKQbEubKRbKSbEybJkbKTbKUbKVbKWbKXbKYbKUbJkbKZbLabLbcchbLbbLcbLbbLdbLdbLebLfbLgbLhbLhcpLbLgbLgbLhbLhbLjbLkbLjbLjbxGbxGbxGbxGbxGbLlbLmbBobxGbLnbLobLpbLqbLqbLrbLsbLtbLubLvbLIbLxbLybLzbLAbLAbEObGAbHZbGxbGzbGzbGzbIabGxbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjZdjYdjHdjHdkadkadkadjFdjHdjHdjFdkbdkddkcdkfdkedkgdjFbikbikbikbikbikbikbikbikbikbikdewdevdevdevdevdevbWobKmbIAbKmbFobLGbLHbAebAebAebLGbAebyvbAfbICbNrbngbLJbpIbAibFvbpIbnmbLKbpIbpIbLLbtLbDXbvvbLMbHlbLNbCpbLObLPbWDbLRcobbKzbLTbLUbLVbLWbLXbLYbLZbMabikbikbikbHybMbbMcbMdbMdbMebMfbMgbHybNSbNRbKObNTbMkbMlbMmbMnbMobMpbMqbJlbMrbMsbMtbMubMvbMrbJkbKZbMwbMxbMybMzbMAbMBbLdbMCbMDbMEbLgbMFbMGbMHbMIbMJbMKbMLbKabMMbLqbLqbMNbMObLqbMPbMQbMRbMSbMTbLqbMUbiTbMWbMXbMYbMZbNabNbbNabNabNabIwbEXbGxbLDbLDbGxcnccndcnebOQbOSbUHbYdbGzbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjZdjYdjHdjHdkadkadkadjFdjHdjHdjFdkbdkddkcdkfdkedkgdjFbikbikbikbikbikbikbikbikbikbikdewdevdevdevdevdevbWobKmbIAbKmbFobLGbLHbAebAebAebLGbAebyvbAfbICbNrbngbLJbpIbAibFvbpIbnmbLKbpIbpIbLLbtLbDXbvvbLMbHlbLNbCpbLObLPdiNbLRcobbKzbLTbLUbLVbLWbLXbLYbLZbMabikbikbikbHybMbbMcbMdbMdbMebMfbMgbHybNSbNRbKObNTbMkbMlbMmbMnbMobMpbMqbJlbMrbMsbMtbMubMvbMrbJkbKZbMwbMxbMybMzbMAbMBbLdbMCbMDbMEbLgbMFbMGbMHbMIbMJbMKbMLbKabMMbLqbLqbMNbMObLqbMPbMQbMRbMSbMTbLqbMUbiTbMWbMXbMYbMZbNabNbbNabNabNabIwbEXbGxbLDbLDbGxcnccndcnebOQbOSbUHbYdbGzbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdkhdjYdjHdjHdjHdjHdjHdkidjHdjHdjFdjydjydjydjydjydjydkjbikbikbikbikbikbikbikbikbikbikdewdevdevdevdevdevdeEdeDdeGdeDbNlbNmbNnbNnbNnbNnbNnbNobNpbNqbICbWSbngbNsbNtbNubNvbNwbNxbNybNybNybNzbNzbNAbvvbNBbNCbHmbCpbNDbNEbNFbKvbNGbKzbNHbNIbNJbNKbNLbFNbNMbMabikbikbikbHybNNbNObNPbNQbMebMfbMgbHybPibNUbQObPjbNVbNWbNXbNYbNZbOabObbOcbKUbKUbOdbOebKUbKUbJkbKZbOfbOgbOhbOibOjbOkbLdbOlbOmbOnbOobOpbOqbOrbOrbOsbOtbOubOvbOwbJVbJVbOxbJVbOybJVbOzbJVbOAbOBbOBbOCbODbOEbOFbOGbOHcsjbOJbOKbOLbNabOMcxHbikbikbikbGxbORbJFbOPbOQbGzbOObNibGxbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdkkdjydkmdkldkodkndjHdjFdjHdjHdjFdjHdkqdkpdkrbikbikbikbikbikbikbikbikbikbikbikbikbikdewdevdevdevdevdevdewbFnbBRbBRbngbngbBRbBRbBRbBRbBRbngbngbBRbBRbBRbngbOVbOVbOVbOWbOVbNzbOXbOYbOZbPabNzbDXbvvbPbbPcbPcbCpbCpbCpbCpbCpbPdbKzbISbIRbPebNKbPgbPhbMabMabvjbvjbvjbHybHzbHybHybHybHybHybHybHybQPbvwbQQbPkbPlbPmbPnbPlbPlbPobPpbPqbPrbPsbPtbPubPvbPwbMqbPxbPybPzbPAbPBbPCbPDbPEbPFbPGbPHbPIbPJbPKbPLbMHbPMbLhbLhbPNbPObPNbPPbPQbPPbPPbPPbPRbPSbPTbPTbPUbPVbPWbPXbOFbPYbPZbQabQbbQcbQdbNabOMcxHbikbikbikbGxbNfbNgbGxbGzbGxbGxbGzbGxbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjydjydjydjydjydjydjFdjOdjHdksdjHdkudktdkvbikbikbikbikbikbikbikbikbikbikbikbikbikdeJdeIdevdeKdevdeLdeMbikbikbikbikbikbikbikbikbikbikbQgaabbikbikbikbikbOVbQhbQibQjbQkbNzbQlbQmbQnbQobNzbDXbvvbQpbQqbQrbQsbQtbQubQvbQwbQxbQybQzbQAbQBbQCbQDbQEbQFbQGbQHbQIbQJbQKbQLbQMbQRbuabQSbvwbShbSgbSibvwbSjbPlbQTbQUbQVbQWbQXbJkbQYbQZbRabRbbRcbRdbRebRfbRgbRhbRibLbbRjbOibRkbRlbRmbRnbRobRpbLgbRqbMHbMHbMHbRrbLhbPNbRsbRtbRubRvbRwbRxbRybPPbRzbRAbRBbPTbPTbRCbPWbRDbREbWHbRGbRHbRIbRJbRKbNabRLbwobikbikbikbGxbGxbGxbGxbikbikaabbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjxdjydkxdkwdkydkxdkzdjFdjHdjHdjFdjHdkBdkAdkCbikbikbikbikbikbikbikbikbikbikbikbikbikdeOdeNdePdePdePdeNdeQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbOVbRMbRNbRObRPbNybRQbRRbRSbRTbNzbDXbRUbRVbvvbvvbFXbRWbubbQNbQMbRXbRYbRXbRZbSabSabSbbScbSdbSabSabSebSabSfbSabQMbQRbuabSlbSkbTJbTIbTLbTKbvwbPlbSmbQUbSnbSobSpbJkbSqbSrbSsbStbSubSvbSwbSxbJkbSybSzbLbbSAbSBbSBbSCbSDbSEbSFbSGbLgbSHbSIbMHbSJbSKbLhbPNbSLbSMbSNbSObSPbSQbSRbPPbSSbRAbSTbSTbPTbSUbSVbSWbSXbSYbSZbTabTbbTcbTdbNabOMbwobTebikbikbikbikbikbikbikbikaabbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjxdjydkxdkwdkydkxdkzdjFdjHdjHdjFdjHdkBdkAdkCbikbikbikbikbikbikbikbikbikbikbikbikbikdmideNdePdePdePdeNdmHbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbOVbRMbRNbRObRPbNybRQbRRbRSbRTbNzbDXbRUbRVbvvbvvbFXbRWbubbQNbQMbRXbRYbRXbRZbSabSabSbbScbSdbSabSabSebSabSfbSabQMbQRbuabSlbSkbTJbTIbTLbTKbvwbPlbSmbQUbSnbSobSpbJkbSqbSrbSsbStbSubSvbSwbSxbJkbSybSzbLbbSAbSBbSBbSCbSDbSEbSFbSGbLgbSHbSIbMHbSJbSKbLhbPNbSLbSMbSNbSObSPbSQbSRbPPbSSbRAbSTbSTbPTbSUdnjbSWbSXbSYbSZbTabTbbTcbTdbNabOMbwobTebikbikbikbikbikbikbikbikaabbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjZdjYdkDdkDdkDdkDdkDdkEdjHdjHdjFdjydjydjydjydjydjydjBbikbikbikbikbikbikbikbikbikbikbikdeRdeSdeSdeSdeTbikbikbikbikbikbikbikbikbOUbOTbQebOTbQfbikbikbikbOVbOVbTjbTkbRObTlbNybTmbQnbTnbTobNzbDXbTpbTqbTrbTsbTtbTubTvbTwbTxbTybTzbTAbTBbTCbTCbTDbTEbTEbTEbTEbTEbTEbTFbTGbTHbTNbTMbTPbTOdlidjmdlkdljdllbPlbTQbQUbQVbTRbSpbJkbSqbSrbTSbTTbTUbTVbTWbTXbJsbTYbTZbLbbLbbUabUabLbbSDbLdbUbbUcbLgbUdbUebUfbUgbUhbLhbPNbUibUjbUkbUlbUmbUnbUobPPbUpbRAbSTbSTbPTbUqbUrbUsbUtbUubUvbUwbUxbUybUzbNabOMbUAbUBbUAbUCbUDbUCbUCbUCbikbikbikbikaabaabaabaabbikbikbikbikbikbikbikbikbikbikbikbikaabaabaabaabaabbikbikbikbikaabaabaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdkhdjYdkDdkDdkDdkFdkGdjFdjHdjHdjFdjHdjHdjHdkHdjHdkIdjFbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbTgbTfbTibThbTgbUIbUIbUIbOVbUJbUKbULbUMbUNbUObUPbUQbUQbURbNzbUSbUTbUUbUVbUVbUWbUXbUYbUVbUZbUZbVabVbbONbUZbUZbVdbQMbQMbVebVfbVfbVfbVgbVhbVfbVfbVibVjbVkbVkbVlbVkbVmbVnbVkbVobVpbVqbPlbVrbVsbSqbVtbVubVvbVwbVxbVybVubJkbSybVzbVAbVBbVCbVDbVEbVFbVGbVHbVIbVJbVKbVLbVMbVNbVObLhbPNbPNbVPbVQbVRbVSbVRbVTbPPbVUbVVbVWbVWbPTbVXbVYbVZbNabNabNabNabNabNabNabNabOMbUAbWabWbbWcbWdbWdbWebUCbikbikbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikaabbWfbWfbWfbWfbWgbWgbWhbWhbWhbWhbWiaabaabbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdkkdjydkKdkJdkDdkLdkMdjFdjHdjHdkNdjHdjHdjHdkOdjHdkPdjFbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbQebUEbUFbUEbQebUIbWmbWlbOVbWnbWpbWqbWrbWsbNzbWtbWubWvbWwbNzbUTbUTbWxbUVbWybWzbWAbWBbWCbUZdmdbWEbWFbWGcAzbUZbWIbWJbWKbVfbWLbWMbWObWNbWPbWQbWRceLbWTbWUbWVbWWbWXbWYbWZbXabXbbXcbXdbXebXfbXgbXhbSrbXibXjbXkbXlbXmbXnbJsbXobXpbXqbXrbVDbXsbXsbXtbXubLgbXvbXwbXxbXybXzbXAbXBbLhbXCbXDbXEbXFbXEbXEbXGbXHbXIbXJbXKbXLbXMbPTbXNbXObPXbEXbxXbXPbXQbXRbXRbXQbXRbXSbUAbXTbXUbWcbWdbXWbXVbUCbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbWfbXXbXYbXXbWgbWhbWhbXZbYabXZbWhbWhaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdkkdjydkKdkJdkDdkLdkMdjFdjHdjHdkNdjHdjHdjHdkOdjHdkPdjFbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbQebUEbUFbUEbQebUIbWmbWlbOVbWnbWpbWqbWrbWsbNzbWtbWubWvbWwbNzbUTbUTbWxbUVbWybWzbWAbWBbWCbUZdmbbWEbWFbWGcAzbUZbWIbWJbWKbVfbWLbWMbWObWNbWPbWQbWRceLbWTbWUbWVbWWbWXbWYbWZbXabXbbXcbXdbXebXfbXgbXhbSrbXibXjbXkbXlbXmbXnbJsbXobXpbXqbXrbVDbXsbXsbXtbXubLgbXvbXwbXxbXybXzbXAbXBbLhbXCbXDbXEbXFbXEbXEbXGbXHbXIbXJbXKbXLbXMbPTbXNbXObPXbEXbxXbXPbXQbXRbXRbXQbXRbXSbUAbXTbXUbWcbWdbXWbXVbUCbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbWfbXXbXYbXXbWgbWhbWhbXZbYabXZbWhbWhaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdkkdjydkQdkDdkDdkRdjFdjHdjHdjFdkSdjHdjHdkUdkTdjydkjbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbTgbUGbUEbUEdeycOWbTkbTkdeAbZAbTkbWqbYhbYibNzbNzbNzbNzbNzbNzbYjbUTbYkbYlbYmbYnbYnbYnbYobUZbYpbYqbYqbYqbYrbYsbYtbYubYvbYwbYxbYybYzbYAbYBbYCbVfbVibYDbVkbYEbYFbYGbYHbYIbVkbSmbQVbSnbSobYJbYKbYLbYMbYNbYObYPbYQbYRbVubYSbYTbYUbYVbYWbYXbYYbYZbZabZbbLgbLgbLgbLgbLgbZcbZdbZebLhbZfbXEbXEbZgbZhbXEbZibZjbZkbZlbRAbZmbZmbPTbPVbZnbPXbEXbUAbZobUAbUAbUAbUAbUAbUAbUAbZpbZqbUCbZrbZtbZsbUCaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacaacbZubXXbXXbZvbWhbWhbXZbXZbZwbXZbXZbWhbWhaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdkkdjydkWdkVdkXdjFdjHdkYdjFdkZdladjHdjydjydkjbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbQebUFbUFbUFbQebUIbYfbYebZzbZAbTkbZBbZCbZDbZEbZFbZFbZFbZGbUTbUTbUTbWxbUVbZHbYnbZIbYnbZJbUZbYpbYqbZKbYqbZLbUZbZMbZNbZObVfbZPbZQbZRbZSbZTbZUbZVbZWbZXbZYbZZcaacabcaccadbVkbTQbQVbQVcaebYJbYKcafcagcahbXjcaicajcElcalcamcancaocapcaqcarcIfcasbXscatbVAcaucavcawcaxcaycazcaAbZjbZfcaBbXEbXEbXEcaCcaDbZjbZkcaEbRAbZmbZmbPTcaFcaGbPXbEXcaHcaIcaJbUAcaKcaLcaMcaNcaOcaPcaQbUCcaRcaScaTbUCbUAbUAbUAbUAbUAbUAbUAbUAbikbikbikbikbikaabbikbikbikbikbikbikbikcaUbWhbZubWhbWhbXZbXZbXZbXZbXZbXZbXZbWhbWhaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdkkdjydjydjydjydjydjydjydjydjydjydkjbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbTgbWjbYbbWkbTgbUIbUIbUIbOVcaYcaZcaZcaZbOVbOVbUTcbacbacbbcbcbUTcbdcbebUVbZHbYnbYnbYncbfbUZbYpbYqbYqcbgcbhcbicbjcbkcblbVfbVfbVfbVfbVfcbmbVfbVfcbncbobVkbVkcbpbVkbVnbVkbVkbPlcbqcbqbPlccicbrcbscbtcbucbvcbwcbxcbycbzcbAcbBcaocapcbCcbDcbEcbFcbGcbHbVAcbIcbJcbKcbLcbMcbNcbOcbPcbQcbPcbRcbRcbRcbPcbScbPcbPcbTcbUbZmbZmbPTcbVbZnbPXcbWcbXcbYcbZccaccbccccccccdcceccfccgcckccjcdqcclcfeccmccnccoccpccqccrccscctaabaabaabaabaabaabaabaabbikbikbikbikbikbWgbWhccuccvccvbXZbXZbXZbXZbXZbXZbXZbXZbWhbWhaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
-bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbYcbOTbYgbOTbZxbikaabbikbOVbOVbUIbUIbUIbOVbikbUTccAccBccCccDbZFccEccFbUVccGccHccIbYnccJccKccLccMccNccOccPbUZccQccRccSccTccUccUccUccUccVccWccXccYccYccZccZcdacdbcdcbVibPlcddcdecdfcdgcdhbYKcdicbtcdjcdkcdlcdmbSwcdncdocdpcffcdrcdrcdscdrcdrcdrcdtbVAcducdvcdwcdxcdycdzcdAcbPcdBcdCcdDcdEcdFcdCcdGcdHcdCcdIcdJbRBbPTbPTcdKcdLcdMcdNcdOcdPcdQcdRcdScdTcdUcdVcdWcdXcdYcdZceacebceaceccebcebcebcedceecefcegcehaabbikbikbikbikaabbikbikbikbikbikbikbikbWhbWhceibXZbXZbXZbXZbXZbXZbXZbXZbXZbXZbXZbWhbWhaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
+bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbYcbOTbYgbOTbZxbikaabbikbOVbOVbUIbUIbUIbOVbikbUTccAccBccCccDbZFccEccFbUVccGccHdmcbYnccJccKccLccMccNccOccPbUZccQccRccSccTccUccUccUccUccVccWccXccYccYccZccZcdacdbcdcbVibPlcddcdecdfcdgcdhbYKcdicbtcdjcdkcdlcdmbSwcdncdocdpcffcdrcdrcdscdrcdrcdrcdtbVAcducdvcdwcdxcdycdzcdAcbPcdBcdCcdDcdEcdFcdCcdGcdHcdCcdIcdJbRBbPTbPTcdKcdLcdMcdNcdOcdPcdQcdRcdScdTcdUcdVcdWcdXcdYcdZceacebceaceccebcebcebcedceecefcegcehaabbikbikbikbikaabbikbikbikbikbikbikbikbWhbWhceibXZbXZbXZbXZbXZbXZbXZbXZbXZbXZbXZbWhbWhaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabcejbUTbUTbUTcekbUTbUTcelbUVcemcenceocepceqcercescetceucevcewccKcexceycezceAceBceBceBceBceCceDceEceFceGceFceHceIceJceKchvceMceNceOcePceQceRceSceTceUceVceWceXceYceZcfacfbcfccfgbMmbMmcfichOcgHceYchVcfjcfjcfkcfjcflcfmcfncfocbPcfpcfqcfrcfscfrcftcfucfvcdCbPTcfwbPTbPTcfxcfybZnbBxbEXbUAcfzbUAbUAcfAcfBcfCcfDcfEcebcfFcfGcfHcdUcfHcdUcfIcdUcdUbUAcfJcfKcfLcfMaabaabaabaabaabaabaabaabbikbikbikbikbikbWhbXZbXZbXZbXZbXZbXZcfNbXZcfObXZbXZbXZbXZbXZbWhbWhaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcejcfPbVccqsbUTcfSbUVcfTcfUcfVbZHcfWcfXcfYbYpcfZcgacgbcfXcgccgdcgecgfcgfcggcghcgicgjcgkcglcgmbGycgnbVicgobGybGycgpcgqcgrcgscgtceQcgucgvcgwcgxcgycgzbMVcgBcgCcgzcgzcgDcgEcgEcgEcgEcgEcgGcgFciOcgJcgJcgKcgLcgMcgNcgOcgPcbPcgQcgRcgScgTcgScgUcgVcfrcgWcgXcgYbBxcgZbBxcfybZnbBxbEXchachbchcbUAbUAbUAbUAbUAchdcdUchechfcfIcdUchgcdUbZpcdUchhbUAchichjchkbUAaabbikbikbikbikaabbikbikbikbikbikbikbikbWhchlchlchlchlchlchlchmbXZchnchlcfObXZbXZbXZbXZbWhaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcejchocfQchpbUTcfSchrchrchrchrchrchrbUZbUZbUZbUZbUZbUZbUZchschtchucWpchwchxchychychzchAcglbGybGychBchCchDbGybGybGycqOchFchGceOchHchIchJcgEchKchLchMbSqchLchNcfdcfdcfdcjncjlcjlcjlcjlckacgIbSqclPchPchQchRchSchTchUclQcbPchWchXcfrchYcfrchZciacibciccidciecifbBxcigcfybZncihbEXbFeciicijcikbwobxXbxXbUAcilcimcinciocipciqcirciscitciucivbUAciwciycixcizbikbikbikbikaahbikbikbikbikbikbikbikbikciAbXXbXXbXXbXXbXXbXXbXXciBciCbXZbXZbXZbXZciDbYabWhaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik
diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm
index 46b1662d8d6..a5d0cd3f66f 100644
--- a/_maps/map_files/cyberiad/z2.dmm
+++ b/_maps/map_files/cyberiad/z2.dmm
@@ -18,11 +18,11 @@
"ar" = (/obj/docking_port/stationary/transit{dir = 4; dwidth = 1; height = 4; id = "pod3_transit"; name = "pod 3 in transit"; width = 3},/turf/space/transit/east{dir = 8},/area/space)
"as" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 10; height = 35; id = "whiteship_transit"; name = "whiteship in transit"; width = 21},/turf/space/transit/horizontal{dir = 4},/area/space)
"at" = (/turf/unsimulated/wall,/area/vox_station)
-"au" = (/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/vox_station)
+"au" = (/turf/unsimulated/floor/vox,/area/vox_station)
"av" = (/obj/docking_port/stationary/transit{dir = 4; dwidth = 1; height = 4; id = "pod4_transit"; name = "pod 4 in transit"; width = 3},/turf/space/transit/east{dir = 8},/area/space)
"aw" = (/obj/docking_port/stationary/transit{dir = 1; dwidth = 1; height = 4; id = "pod1_transit"; name = "pod 1 in transit"; width = 3},/turf/space/transit,/area/space)
"ax" = (/obj/docking_port/stationary/transit{dir = 1; dwidth = 1; height = 4; id = "pod2_transit"; name = "pod 2 in transit"; width = 3},/turf/space/transit,/area/space)
-"ay" = (/obj/vox/win_button,/turf/unsimulated/floor{tag = "icon-light_on"; icon_state = "light_on"},/area/vox_station)
+"ay" = (/obj/vox/win_button,/turf/unsimulated/floor/vox{icon_state = "light_on"},/area/vox_station)
"az" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod1_away"; name = "recovery ship bay 1"; width = 3},/turf/space,/area/space)
"aA" = (/obj/docking_port/stationary{dir = 1; dwidth = 1; height = 4; id = "pod2_away"; name = "recovery ship bay 2"; width = 3},/turf/space,/area/space)
"aB" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/plating,/area/centcom/evac)
@@ -32,11 +32,11 @@
"aF" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area/vox_station)
"aG" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (WEST)"; icon_state = "fakewindows2"; dir = 8},/area/vox_station)
"aH" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/vox_station)
-"aI" = (/obj/machinery/door/airlock/centcom,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/vox_station)
-"aJ" = (/obj/structure/girder/displaced,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/vox_station)
-"aK" = (/obj/structure/closet/crate,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/vox_station)
+"aI" = (/obj/machinery/door/airlock/centcom,/turf/unsimulated/floor/vox,/area/vox_station)
+"aJ" = (/obj/structure/girder/displaced,/turf/unsimulated/floor/vox,/area/vox_station)
+"aK" = (/obj/structure/closet/crate,/turf/unsimulated/floor/vox,/area/vox_station)
"aL" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"aM" = (/obj/structure/stool/bed/chair/comfy/red,/obj/effect/landmark{name = "voxstart"},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/vox_station)
+"aM" = (/obj/structure/stool/bed/chair/comfy/red,/obj/effect/landmark{name = "voxstart"},/turf/unsimulated/floor/vox,/area/vox_station)
"aN" = (/turf/space,/area/space)
"aO" = (/turf/unsimulated/wall{tag = "icon-iron6"; icon_state = "iron6"},/area/space)
"aP" = (/obj/structure/window/reinforced,/turf/unsimulated/wall{tag = "icon-iron12"; icon_state = "iron12"},/area/space)
@@ -57,11 +57,11 @@
"be" = (/obj/machinery/computer/shuttle/ert,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/specops)
"bf" = (/obj/machinery/door/airlock/external{id_tag = "specops_away"; name = "Shuttle Hatch"; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/specops)
"bg" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 11; id = "specops_away"; name = "centcom bay 3"; width = 5},/turf/space,/area/space)
-"bh" = (/obj/structure/kitchenspike,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/vox_station)
-"bi" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/vox_station)
-"bj" = (/obj/item/weapon/stool,/obj/effect/landmark{name = "voxstart"},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/vox_station)
-"bk" = (/obj/machinery/door/airlock/centcom{opacity = 1},/turf/unsimulated/floor,/area/vox_station)
-"bl" = (/turf/unsimulated/floor,/area/vox_station)
+"bh" = (/obj/structure/kitchenspike,/turf/unsimulated/floor/vox,/area/vox_station)
+"bi" = (/obj/structure/table/woodentable,/turf/unsimulated/floor/vox,/area/vox_station)
+"bj" = (/obj/item/weapon/stool,/obj/effect/landmark{name = "voxstart"},/turf/unsimulated/floor/vox,/area/vox_station)
+"bk" = (/obj/machinery/door/airlock/centcom{opacity = 1},/turf/unsimulated/floor/vox,/area/vox_station)
+"bl" = (/turf/unsimulated/floor/plating/vox,/area/vox_station)
"bm" = (/obj/docking_port/stationary/transit{dir = 2; dwidth = 2; height = 18; id = "skipjack_transit"; name = "skipjack in transit"; width = 19},/turf/space/transit,/area/space)
"bn" = (/obj/docking_port/stationary{dir = 2; dwidth = 2; height = 18; id = "skipjack_away"; name = "vox bay 1"; width = 19},/turf/space,/area/space)
"bo" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 3; height = 5; id = "mining_transit"; name = "mining in transit"; width = 7},/turf/space/transit,/area/space)
@@ -309,12 +309,12 @@
"fW" = (/obj/structure/holowindow,/turf/simulated/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"fX" = (/turf/space,/turf/unsimulated/wall{dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/centcom/control)
"fY" = (/obj/structure/urinal{pixel_y = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
-"fZ" = (/obj/item/weapon/mop,/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"fZ" = (/obj/item/device/radio/intercom/syndicate{pixel_x = 0; pixel_y = 25},/obj/item/weapon/twohanded/required/kirbyplants,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"ga" = (/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
"gb" = (/obj/structure/table,/obj/machinery/kitchen_machine/microwave/upgraded,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/ninja/holding)
"gc" = (/obj/structure/table,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/ninja/holding)
"gd" = (/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
-"ge" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
+"ge" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
"gf" = (/obj/item/device/camera,/turf/unsimulated/beach/sand,/area/ninja/holding)
"gg" = (/obj/structure/toilet{dir = 8},/obj/structure/window/reinforced/tinted{dir = 1},/obj/machinery/door/window{dir = 8; name = "Tactical Toilet"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
"gh" = (/obj/machinery/light{dir = 1; on = 1},/turf/simulated/floor/plating/airless,/area/syndicate_mothership)
@@ -343,8 +343,8 @@
"gE" = (/obj/structure/table,/obj/item/weapon/lighter/zippo,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/ninja/holding)
"gF" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/ninja/holding)
"gG" = (/obj/structure/table,/obj/item/weapon/dice/d20,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/ninja/holding)
-"gH" = (/obj/structure/stool{pixel_y = 8},/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand,/area/ninja/holding)
-"gI" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/beach/sand,/area/ninja/holding)
+"gH" = (/obj/structure/stool,/obj/item/clothing/head/bandana{pixel_y = -10},/obj/item/clothing/glasses/sunglasses,/turf/unsimulated/beach/sand,/area/ninja/holding)
+"gI" = (/obj/structure/stool,/turf/unsimulated/beach/sand,/area/ninja/holding)
"gJ" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/source_basketball)
"gK" = (/obj/item/weapon/beach_ball/holoball,/turf/simulated/floor/holofloor,/area/holodeck/source_basketball)
"gL" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/source_basketball)
@@ -364,7 +364,7 @@
"gZ" = (/obj/structure/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet13-0 (EAST)"; icon_state = "carpet13-0"; dir = 4},/area/holodeck/source_meetinghall)
"ha" = (/obj/structure/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet9-0 (EAST)"; icon_state = "carpet9-0"; dir = 4},/area/holodeck/source_meetinghall)
"hb" = (/turf/simulated/floor/beach/coastline,/area/holodeck/source_beach)
-"hc" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/computer/security/telescreen{name = "Entertainment monitor"; desc = "Damn, they better have /tg/thechannel on these things."; icon_state = "entertainment"; pixel_y = -30},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
+"hc" = (/obj/structure/stool,/obj/machinery/computer/security/telescreen{name = "Entertainment monitor"; desc = "Damn, they better have /tg/thechannel on these things."; icon_state = "entertainment"; pixel_y = -30},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
"hd" = (/obj/machinery/vending/snack,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
"he" = (/turf/unsimulated/beach/coastline,/area/ninja/holding)
"hf" = (/obj/item/clothing/head/collectable/paper,/turf/unsimulated/beach/coastline,/area/ninja/holding)
@@ -381,7 +381,7 @@
"hq" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_boxingcourt)
"hr" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
"hs" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
-"ht" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/light/spot,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
+"ht" = (/obj/structure/stool,/obj/machinery/light/spot,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
"hu" = (/obj/machinery/vending/cola,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
"hv" = (/turf/unsimulated/beach/water,/area/ninja/holding)
"hw" = (/obj/machinery/light/spot,/turf/unsimulated/beach/water,/area/ninja/holding)
@@ -440,11 +440,11 @@
"ix" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station)
"iy" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station)
"iz" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station)
-"iA" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership)
-"iB" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (NORTH)"; icon_state = "propulsion_r"; dir = 1},/turf/space,/area/shuttle/syndicate_elite/mothership)
-"iC" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (NORTH)"; icon_state = "propulsion"; dir = 1},/turf/space,/area/shuttle/syndicate_elite/mothership)
-"iD" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (NORTH)"; icon_state = "propulsion_l"; dir = 1},/turf/space,/area/shuttle/syndicate_elite/mothership)
-"iE" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership)
+"iA" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 3; height = 5; id = "sst_transit"; name = "sst in transit"; width = 11},/turf/space/transit,/area/space)
+"iB" = (/obj/machinery/door/airlock/external{id_tag = "sst_away"; req_access_txt = "150"},/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership/elite_squad)
+"iC" = (/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "sst_away"; name = "syndicate docking bay"; width = 11},/turf/space,/area/space)
+"iD" = (/obj/item/weapon/gun/projectile/automatic/pistol/m1911,/obj/item/ammo_box/magazine/m45,/obj/item/ammo_box/magazine/m45,/obj/item/ammo_box/magazine/m45,/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/head/helmet/space/deathsquad/beret,/obj/item/clothing/shoes/combat,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/gloves/combat,/obj/item/clothing/suit/space/deathsquad/officer,/obj/item/clothing/under/rank/centcom/captain,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/emergency_oxygen/double,/obj/item/device/radio/headset/ert{pixel_x = 6; pixel_y = -6},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/specops)
+"iE" = (/turf/space,/turf/unsimulated/wall{dir = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/space)
"iF" = (/obj/machinery/door/airlock/centcom{aiControlDisabled = 1; name = "Assault Pod"; opacity = 1; req_one_access_txt = "150"},/turf/simulated/floor/plating,/area/shuttle/assault_pod)
"iG" = (/obj/effect/decal/warning_stripes/southwest,/turf/simulated/floor/plating/airless,/area/syndicate_mothership)
"iH" = (/turf/space,/obj/machinery/gun_turret/assault_pod,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/assault_pod)
@@ -456,8 +456,8 @@
"iN" = (/obj/structure/table/woodentable,/obj/item/trash/tray,/obj/item/weapon/paper/spells,/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/wizard_station)
"iO" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/wizard_station)
"iP" = (/obj/structure/table/woodentable,/obj/effect/landmark{name = "Teleport-Scroll"},/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/wizard_station)
-"iQ" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "wall3"},/area/shuttle/syndicate_elite/mothership)
-"iR" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership)
+"iQ" = (/turf/space,/turf/unsimulated/wall{dir = 2; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/space)
+"iR" = (/obj/structure/rack,/obj/item/device/radio/headset/heads/captain{pixel_x = 3; pixel_y = -3},/obj/item/device/radio/headset/syndicate,/obj/item/device/radio/headset/heads/ntrep{pixel_x = -3; pixel_y = 3},/obj/item/device/radio/headset/ert{pixel_x = 6; pixel_y = -6},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"iS" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/assault_pod)
"iT" = (/obj/effect/decal/warning_stripes/west,/turf/simulated/floor/plating/airless,/area/syndicate_mothership)
"iU" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/light/small,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/assault_pod)
@@ -471,7 +471,7 @@
"jc" = (/turf/simulated/floor/plasteel,/area/tdome/arena)
"jd" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"je" = (/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
-"jf" = (/obj/effect/landmark{name = "Syndicate-Commando-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
+"jf" = (/obj/structure/rack,/obj/item/weapon/storage/belt/utility/full/multitool{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/belt/military,/obj/item/weapon/storage/belt/military/assault{pixel_x = 3; pixel_y = -3},/obj/item/weapon/storage/belt/champion/wrestling,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"jg" = (/mob/living/silicon/decoy{icon_state = "ai-malf"; name = "GLaDOS"},/turf/unsimulated/floor{icon_state = "whiteshiny"},/area/syndicate_mothership/control)
"jh" = (/obj/structure/window/reinforced{dir = 4},/obj/item/device/radio/intercom/syndicate,/turf/unsimulated/floor{icon_state = "circuit"},/area/syndicate_mothership)
"ji" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/light/small{tag = "icon-bulb1 (WEST)"; icon_state = "bulb1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/assault_pod)
@@ -498,9 +498,9 @@
"jD" = (/obj/structure/table/woodentable,/obj/item/weapon/dice/d20,/obj/item/weapon/dice,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"jE" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/twohanded/staff/broom,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
"jF" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/twohanded/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
-"jG" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
-"jH" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
-"jI" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
+"jG" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/holding{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/backpack/satchel,/obj/item/weapon/storage/backpack/holding{pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
+"jH" = (/obj/structure/rack,/obj/item/weapon/implanter/adrenalin{pixel_x = 12; pixel_y = -12},/obj/item/weapon/implanter/emp{pixel_x = 9; pixel_y = -9},/obj/item/weapon/implanter/explosive{pixel_x = 6; pixel_y = -6},/obj/item/weapon/implanter/explosive_macro{pixel_x = 3; pixel_y = -3},/obj/item/weapon/implanter/freedom,/obj/item/weapon/implanter/krav_maga{pixel_x = -9; pixel_y = 9},/obj/item/weapon/implanter/loyalty{pixel_x = -6; pixel_y = 6},/obj/item/weapon/implanter/storage{pixel_x = -3; pixel_y = 3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
+"jI" = (/turf/space,/area/adminconstruction)
"jJ" = (/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plating/airless,/area/syndicate_mothership)
"jK" = (/obj/effect/decal/warning_stripes/north,/obj/machinery/light,/turf/simulated/floor/plating/airless,/area/syndicate_mothership)
"jL" = (/obj/docking_port/stationary/transit{dwidth = 3; height = 7; id = "steel_rain_transit"; name = "steel_rain in transit"; width = 7},/turf/space/transit/horizontal,/area/space)
@@ -525,7 +525,7 @@
"ke" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/weapon/twohanded/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
"kf" = (/obj/machinery/light/spot,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
"kg" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/weapon/twohanded/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
-"kh" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
+"kh" = (/obj/structure/rack,/obj/item/weapon/gun/energy/lasercannon,/obj/item/weapon/gun/energy/lasercannon{pixel_x = 6; pixel_y = -6},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"ki" = (/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/space,/area/syndicate_mothership/elite_squad)
"kj" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "wall3"},/area/syndicate_mothership/elite_squad)
"kk" = (/obj/machinery/computer/pod{id_tags = list("syndicate_elite"); name = "Hull Door Control"; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
@@ -575,9 +575,9 @@
"lc" = (/obj/structure/table/reinforced,/obj/structure/kitchenspike,/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
"ld" = (/obj/structure/table/reinforced,/obj/structure/kitchenspike,/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
"le" = (/obj/effect/decal/cleanable/cobweb2,/obj/structure/showcase,/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
-"lf" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "syndicate_elite"; name = "Side Hull Door"; opacity = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
+"lf" = (/obj/structure/rack,/obj/item/weapon/gun/energy/laser/instakill/blue{pixel_x = 3; pixel_y = -3},/obj/item/weapon/gun/energy/laser/instakill/red{pixel_x = -3; pixel_y = 3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"lg" = (/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership/elite_squad)
-"lh" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership/elite_squad)
+"lh" = (/obj/machinery/computer/card/centcom,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"li" = (/turf/unsimulated/wall/abductor{icon_state = "alien7"},/area/abductor_ship)
"lj" = (/obj/structure/stool/bed/abductor,/turf/unsimulated/floor/abductor,/area/abductor_ship)
"lk" = (/obj/structure/table/abductor,/obj/item/weapon/surgicaldrill/alien,/obj/item/weapon/circular_saw/alien,/turf/unsimulated/floor/abductor,/area/abductor_ship)
@@ -591,8 +591,8 @@
"ls" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station)
"lt" = (/mob/living/carbon/human/monkey,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
"lu" = (/turf/unsimulated/floor{icon_state = "chapel"},/area/wizard_station)
-"lv" = (/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
-"lw" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "syndicate_elite"; name = "Side Hull Door"; opacity = 0; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
+"lv" = (/obj/structure/stool/bed/chair/comfy/black{dir = 1},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
+"lw" = (/obj/structure/stool/bed/chair/comfy/black{dir = 8},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"lx" = (/obj/machinery/door/airlock/glass_security{name = "Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{id_tag = "syndicate_elite_mech_room"; name = "Mech Room Door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
"ly" = (/turf/unsimulated/wall/abductor,/area/abductor_ship)
"lz" = (/turf/unsimulated/wall/abductor{icon_state = "alien4"},/area/abductor_ship)
@@ -605,8 +605,8 @@
"lG" = (/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/wizard_station)
"lH" = (/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
"lI" = (/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
-"lJ" = (/obj/machinery/computer/pod{id_tags = list("syndicate_elite"); name = "Hull Door Control"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
-"lK" = (/obj/machinery/computer/syndicate_elite_shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite/mothership)
+"lJ" = (/obj/structure/stool/bed/chair/comfy/black,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
+"lK" = (/obj/structure/rack,/obj/item/weapon/storage/box/syndie_kit/hardsuit,/obj/item/weapon/storage/box/syndie_kit/elite_hardsuit{pixel_x = -6; pixel_y = 6},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"lL" = (/obj/machinery/abductor/experiment{team = 2},/turf/unsimulated/floor/abductor,/area/abductor_ship)
"lM" = (/obj/machinery/abductor/pad{team = 2},/turf/unsimulated/floor/abductor,/area/abductor_ship)
"lN" = (/obj/machinery/abductor/console{team = 2},/turf/unsimulated/floor/abductor,/area/abductor_ship)
@@ -627,32 +627,79 @@
"mc" = (/obj/item/trash/chips,/obj/machinery/light/spot,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"md" = (/obj/machinery/computer/mech_bay_power_console,/obj/structure/cable,/turf/simulated/floor/plasteel,/area/shuttle/gamma/space)
"me" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{dir = 8; icon_state = "chapel"},/area/wizard_station)
-"mg" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership)
-"mh" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/syndicate_elite/mothership)
-"mi" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{icon_state = "pdoor1"; id_tag = "syndicate_elite"; name = "Front Hull Door"; opacity = 1},/turf/simulated/shuttle/plating,/area/shuttle/syndicate_elite/mothership)
-"mj" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite/mothership)
-"ms" = (/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite/mothership)
+"mf" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mg" = (/obj/item/weapon/mop,/obj/structure/mirror{pixel_x = 28},/obj/item/weapon/twohanded/required/kirbyplants,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
+"mh" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mi" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "Mission Launch Control"; pixel_x = -26; pixel_y = -2; req_access_txt = "151"},/obj/item/weapon/twohanded/required/kirbyplants,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"mk" = (/obj/structure/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/obj/effect/decal/warning_stripes/east,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
+"ml" = (/obj/structure/stool,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/syndicate_mothership)
+"mm" = (/obj/structure/stool,/obj/structure/sign/poster/legit{pixel_y = 32},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/centcom/control)
+"mn" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/centcom/control)
+"mo" = (/obj/structure/stool,/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/control)
+"mp" = (/obj/structure/stool,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/control)
+"mq" = (/obj/structure/stool,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/evac)
+"mr" = (/turf/unsimulated/wall,/area/trader_station/sol)
"mt" = (/turf/space,/area/syndicate_mothership/elite_squad)
"mu" = (/obj/effect/landmark{name = "Syndicate-Commando"; tag = "Commando"},/obj/machinery/light/spot,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership/elite_squad)
"mv" = (/obj/machinery/light/spot,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
+"mw" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/trader_station/sol)
+"mx" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area/trader_station/sol)
+"my" = (/obj/machinery/computer/shuttle/trade/sol,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mz" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mA" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mB" = (/turf/unsimulated/floor{dir = 8; icon_state = "browncorner"},/area/trader_station/sol)
+"mC" = (/obj/machinery/door/airlock/external{id_tag = "trade_sol_base"; name = "Docking Port"},/turf/unsimulated/floor/plating,/area/trader_station/sol)
+"mD" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 11; id = "trade_sol_base"; name = "docking bay 2 at Jupiter Station"; width = 5},/turf/space,/area/space)
+"mE" = (/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mF" = (/turf/unsimulated/floor{dir = 8; icon_state = "brown"},/area/trader_station/sol)
+"mG" = (/turf/unsimulated/floor{dir = 1; icon_state = "browncorner"},/area/trader_station/sol)
+"mH" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/trader_station/sol)
+"mI" = (/obj/machinery/light{dir = 1; in_use = 1},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mJ" = (/obj/structure/stool/bed/chair/comfy/brown,/obj/effect/landmark{name = "traderstart_sol"},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mK" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/trader_station/sol)
+"mL" = (/obj/structure/dispenser,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mM" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mN" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/trade_sol_rare,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mO" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/trade_sol_common,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mP" = (/obj/structure/table/woodentable,/obj/item/weapon/dice/d20,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mQ" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 4},/obj/effect/landmark{name = "traderstart_sol"},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mR" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mS" = (/obj/structure/rack,/obj/item/weapon/storage/box/syndie_kit/space,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mT" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/obj/effect/landmark{name = "traderstart_sol"},/obj/machinery/light{dir = 4},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mU" = (/turf/unsimulated/wall/fakeglass{dir = 0; icon_state = "fakewindows"; tag = "icon-fakewindows (EAST)"},/area/trader_station/sol)
+"mV" = (/obj/machinery/light,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mW" = (/obj/machinery/door/airlock{name = "Toilet"; req_access_txt = "0"},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mX" = (/obj/machinery/light{dir = 8},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"mY" = (/obj/structure/urinal{pixel_y = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/trader_station/sol)
+"mZ" = (/obj/item/weapon/mop,/obj/structure/mirror{pixel_x = 28},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/trader_station/sol)
+"na" = (/obj/structure/mopbucket,/obj/machinery/light{dir = 1},/obj/item/weapon/soap,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/trader_station/sol)
+"nb" = (/turf/unsimulated/floor{icon_state = "browncorner"},/area/trader_station/sol)
+"nc" = (/turf/unsimulated/floor{icon_state = "brown"},/area/trader_station/sol)
+"nd" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/trader_station/sol)
+"ne" = (/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/trader_station/sol)
+"nf" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/trader_station/sol)
+"ng" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (WEST)"; icon_state = "fakewindows2"; dir = 8},/area/trader_station/sol)
+"nh" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (NORTHEAST)"; icon_state = "fakewindows"; dir = 5},/area/trader_station/sol)
+"ni" = (/turf/unsimulated/wall{desc = "It opens and closes."; icon = 'icons/obj/doors/Doormining.dmi'; icon_state = "door_closed"; name = "Docking Bay 2"},/area/trader_station/sol)
"nj" = (/turf/unsimulated/wall,/area/syndicate_mothership)
+"nk" = (/obj/structure/toilet{dir = 8},/obj/structure/window/reinforced/tinted{dir = 1},/obj/machinery/door/window{dir = 8; name = "Toilet"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/trader_station/sol)
+"nl" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (NORTH)"; icon_state = "fakewindows2"; dir = 1},/area/trader_station/sol)
+"nm" = (/obj/machinery/light{dir = 4},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
+"nn" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 2; height = 11; id = "trade_sol_transit"; name = "trade_sol in transit"; turf_type = /turf/space/transit/horizontal; width = 5},/turf/space/transit/horizontal,/area/space)
"oB" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area/syndicate_mothership)
"oC" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/syndicate_mothership)
"oH" = (/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
"oI" = (/obj/machinery/washing_machine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
"oJ" = (/obj/structure/table,/obj/item/weapon/storage/fancy/crayons,/obj/item/weapon/storage/fancy/crayons,/obj/machinery/light{dir = 1; on = 1},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
"oO" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"oP" = (/obj/item/device/radio/intercom/syndicate{pixel_x = 0; pixel_y = 25},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"oQ" = (/obj/machinery/vending/syndisnack,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"oR" = (/obj/machinery/vending/syndicigs,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"pa" = (/obj/structure/noticeboard{pixel_x = -32},/obj/item/weapon/paper/syndimemo,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"pb" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"pc" = (/mob/living/simple_animal/pet/fox/Syndifox,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"pd" = (/obj/effect/decal/warning_stripes/southeastcorner,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"pe" = (/obj/effect/decal/warning_stripes/south,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"pl" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"pm" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/cans/beer{pixel_x = -2; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
-"po" = (/obj/structure/stool{pixel_y = 8},/obj/effect/landmark{name = "Syndicate-Spawn"},/obj/effect/decal/warning_stripes/east,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"pp" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{icon_state = "floor4"},/area/syndicate_mothership)
"pu" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (NORTHWEST)"; icon_state = "fakewindows"; dir = 9},/area/syndicate_mothership)
"pv" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (WEST)"; icon_state = "fakewindows2"; dir = 8},/area/syndicate_mothership)
@@ -663,7 +710,6 @@
"pA" = (/obj/machinery/light,/turf/unsimulated/floor{icon_state = "floor"},/area/syndicate_mothership)
"pC" = (/obj/machinery/door/poddoor{id_tag = "nukeop_ready"; name = "Shuttle Dock Door"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"pF" = (/turf/unsimulated/wall/fakeglass,/area/syndicate_mothership)
-"pH" = (/obj/machinery/door_control{id = "nukeop_ready"; name = "Mission Launch Control"; pixel_x = -26; pixel_y = -2; req_access_txt = "151"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"pR" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/box/drinkingglasses,/obj/item/weapon/reagent_containers/food/drinks/bottle/rum,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"pS" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"pT" = (/obj/structure/table/woodentable,/obj/item/device/syndicatedetonator,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
@@ -688,7 +734,6 @@
"qL" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/syndicate_mothership)
"qM" = (/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/syndicate_mothership)
"qX" = (/turf/unsimulated/wall/fakeglass{dir = 8; icon_state = "fakewindows3"; tag = "icon-fakewindows (WEST)"},/area/syndicate_mothership)
-"qY" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/syndicate_mothership)
"re" = (/obj/structure/closet/syndicate/personal,/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/syndicate_mothership)
"rf" = (/obj/structure/table,/obj/item/weapon/gun/energy/ionrifle,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/syndicate_mothership)
"rE" = (/turf/unsimulated/wall,/area/start)
@@ -727,10 +772,8 @@
"sx" = (/obj/machinery/door/airlock/centcom{name = "Living Quarters"; opacity = 1; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/centcom/control)
"sy" = (/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/control)
"sz" = (/obj/machinery/atm{pixel_y = 24},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/centcom/control)
-"sA" = (/obj/structure/stool{pixel_y = 8},/obj/structure/sign/poster/legit{pixel_y = 32},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/centcom/control)
"sB" = (/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 2; pixel_y = 6},/obj/structure/table,/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/control)
"sC" = (/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/structure/table,/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/control)
-"sD" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/centcom/control)
"sE" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/centcom/control)
"sF" = (/obj/structure/closet/secure_closet/bar{req_access = null; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/control)
"sG" = (/obj/structure/reagent_dispensers/beerkeg,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/control)
@@ -742,7 +785,6 @@
"sM" = (/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/structure/table,/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/control)
"sN" = (/obj/structure/table,/obj/machinery/juicer{pixel_y = 6},/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/control)
"sO" = (/obj/structure/piano,/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/control)
-"sP" = (/obj/structure/stool{pixel_y = 8},/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/unsimulated/floor{tag = "icon-redyellowfull"; icon_state = "redyellowfull"},/area/centcom/control)
"sQ" = (/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/control)
"sR" = (/obj/structure/closet/secure_closet/freezer/meat{req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/control)
"sS" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/control)
@@ -751,7 +793,6 @@
"sV" = (/obj/structure/table,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/control)
"sW" = (/obj/machinery/door/airlock/centcom{name = "Freezer"; opacity = 1; req_access_txt = "102"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/control)
"sX" = (/turf/unsimulated/wall,/area/centcom/specops)
-"sY" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/control)
"sZ" = (/obj/structure/table,/obj/machinery/processor{pixel_x = 0; pixel_y = 10},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/centcom/control)
"ta" = (/obj/machinery/mech_bay_recharge_port/upgraded,/turf/unsimulated/floor{icon_state = "bot"},/area/centcom/specops)
"tb" = (/obj/machinery/camera{c_tag = "CentComm Special Ops. Assault Armor North"; dir = 2; network = list("ERT","CentComm")},/obj/mecha/combat/marauder/seraph/loaded,/turf/unsimulated/floor{icon_state = "delivery"; dir = 6},/area/centcom/specops)
@@ -907,7 +948,6 @@
"wc" = (/turf/unsimulated/floor{tag = "icon-warning (NORTHWEST)"; icon_state = "warning"; dir = 9},/area/centcom/specops)
"wd" = (/turf/unsimulated/floor{dir = 5; icon_state = "warning"},/area/centcom/specops)
"we" = (/turf/space,/area/centcom/specops)
-"wf" = (/obj/item/weapon/gun/projectile/automatic/pistol/m2411,/obj/item/ammo_box/magazine/m45,/obj/item/ammo_box/magazine/m45,/obj/item/ammo_box/magazine/m45,/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/clothing/head/helmet/space/deathsquad/beret,/obj/item/clothing/shoes/combat,/obj/item/clothing/under/syndicate/combat,/obj/item/clothing/gloves/combat,/obj/item/clothing/suit/space/deathsquad/officer,/obj/item/clothing/under/rank/centcom/captain,/obj/item/weapon/storage/box/handcuffs,/obj/item/weapon/storage/box/flashbangs,/obj/item/clothing/mask/gas,/obj/item/weapon/tank/emergency_oxygen/double,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/specops)
"wg" = (/obj/machinery/telecomms/relay/preset/centcom,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/specops)
"wh" = (/obj/machinery/recharge_station/upgraded,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/specops)
"wi" = (/turf/unsimulated/wall{icon = 'icons/obj/library.dmi'; icon_state = "book-5"; name = "bookcase (Tactics)"},/area/centcom/specops)
@@ -1005,7 +1045,6 @@
"zd" = (/obj/machinery/vending/boozeomat,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/evac)
"ze" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/evac)
"zf" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/evac)
-"zg" = (/obj/structure/stool{pixel_y = 8},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/centcom/evac)
"zh" = (/obj/machinery/computer/card,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
"zi" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
"zj" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
@@ -1109,7 +1148,6 @@
"Ex" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/reagent_containers/glass/beaker/bluespace,/obj/item/weapon/reagent_containers/glass/beaker/bluespace,/obj/item/weapon/reagent_containers/glass/beaker/bluespace,/obj/item/weapon/reagent_containers/glass/beaker/bluespace,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/admin)
"Ey" = (/obj/structure/table,/obj/machinery/reagentgrinder,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/admin)
"Ez" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/random_drug_bottle,/obj/item/weapon/reagent_containers/glass/bottle/adminordrazine,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/admin)
-"EA" = (/turf/space,/turf/unsimulated/wall{dir = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/adminconstruction)
"EB" = (/obj/machinery/door/airlock/external,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "ADMINLOCKDOWN"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"EC" = (/obj/machinery/door/airlock/hatch{name = "External Airlock"; req_access_txt = "0"},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"ED" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/turf/unsimulated/wall{desc = "This window appears to be reinforced, it looks nearly impossible to break."; dir = 8; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; name = "window"; opacity = 0; tag = "icon-window5_end (WEST)"},/area/admin)
@@ -1136,12 +1174,12 @@
"EY" = (/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/turf/unsimulated/wall{dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5"; name = "window"; opacity = 0; tag = "icon-window5 (EAST)"},/area/admin)
"EZ" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/turf/unsimulated/wall{dir = 2; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5"; name = "window"; opacity = 0; tag = "icon-window5"},/area/admin)
"Fa" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "ADMINCHEMLOCKDOWN"; name = "Security Doors"; opacity = 0},/obj/machinery/door/airlock/hatch{name = "Chem Lab"; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/admin)
-"Fb" = (/obj/structure/rack,/obj/item/ammo_box/magazine/m762,/obj/item/ammo_box/magazine/m762,/obj/item/ammo_box/magazine/m762,/obj/item/ammo_box/magazine/m762,/obj/item/weapon/gun/projectile/automatic/l6_saw,/obj/item/weapon/gun/projectile/automatic/l6_saw{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
+"Fb" = (/obj/structure/rack,/obj/item/ammo_box/magazine/mm556x45,/obj/item/ammo_box/magazine/mm556x45,/obj/item/ammo_box/magazine/mm556x45,/obj/item/ammo_box/magazine/mm556x45,/obj/item/weapon/gun/projectile/automatic/l6_saw,/obj/item/weapon/gun/projectile/automatic/l6_saw{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"Fc" = (/obj/structure/rack,/obj/item/weapon/gun/projectile/automatic/proto,/obj/item/weapon/gun/projectile/automatic/proto{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"Fd" = (/obj/structure/rack,/obj/item/ammo_box/magazine/m556,/obj/item/ammo_box/magazine/m556,/obj/item/ammo_box/magazine/m556,/obj/item/ammo_box/magazine/m556,/obj/item/ammo_box/magazine/m556,/obj/item/ammo_box/magazine/m556,/obj/item/ammo_box/a40mm,/obj/item/ammo_box/a40mm,/obj/item/ammo_box/a40mm,/obj/item/ammo_box/a40mm,/obj/item/weapon/gun/projectile/automatic/m90,/obj/item/weapon/gun/projectile/automatic/m90{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"Fe" = (/obj/structure/mirror{dir = 4; pixel_x = 0; pixel_y = -32},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"Ff" = (/obj/machinery/optable,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/admin)
-"Fh" = (/obj/structure/table,/obj/item/weapon/gun/energy/pulse_rifle/pistol,/obj/machinery/door_control{desc = "A remote control switch to lock down the admin lab."; icon_state = "doorctrl0"; id = "ADMINCHEMLOCKDOWN"; name = "Lockdown"; pixel_y = 24; req_access_txt = "0"},/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/admin)
+"Fh" = (/obj/structure/table,/obj/item/weapon/gun/energy/pulse/pistol,/obj/machinery/door_control{desc = "A remote control switch to lock down the admin lab."; icon_state = "doorctrl0"; id = "ADMINCHEMLOCKDOWN"; name = "Lockdown"; pixel_y = 24; req_access_txt = "0"},/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/admin)
"Fi" = (/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/admin)
"Fj" = (/obj/machinery/computer/secure_data,/obj/item/weapon/paper/sop,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/admin)
"Fk" = (/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/turf/unsimulated/wall{dir = 8; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/admin)
@@ -1163,7 +1201,7 @@
"FA" = (/obj/structure/table,/obj/structure/window/reinforced,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/admin)
"FB" = (/obj/structure/table,/obj/machinery/door/window/southleft{name = "security checkpoint"; req_access_txt = "0"},/turf/unsimulated/floor{dir = 2; icon_state = "carpetside"},/area/admin)
"FC" = (/obj/structure/table,/obj/structure/window/reinforced,/obj/machinery/recharger,/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/admin)
-"FD" = (/obj/machinery/recharger/wallcharger{pixel_x = 30},/obj/structure/rack,/obj/item/weapon/gun/energy/pulse_rifle/pistol/m1911,/obj/item/weapon/gun/energy/pulse_rifle/pistol/m1911{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
+"FD" = (/obj/machinery/recharger/wallcharger{pixel_x = 30},/obj/structure/rack,/obj/item/weapon/gun/energy/pulse/pistol/m1911,/obj/item/weapon/gun/energy/pulse/pistol/m1911{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"FE" = (/obj/structure/table,/obj/item/weapon/tank/oxygen/yellow,/obj/random/bomb_supply,/obj/item/clothing/under/rebeloutfit,/obj/item/clothing/suit/poncho/ponchoshame,/obj/item/clothing/head/sombrero/shamebrero,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"FF" = (/obj/machinery/door/airlock/hatch{name = "Tool Storage"; req_access_txt = "0"},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"FG" = (/obj/structure/table,/obj/item/weapon/FixOVein,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/admin)
@@ -1174,8 +1212,8 @@
"FL" = (/turf/simulated/wall/r_wall,/area/adminconstruction)
"FM" = (/obj/structure/rack,/obj/item/weapon/gun/energy/meteorgun,/obj/item/weapon/gun/energy/meteorgun{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"FN" = (/obj/structure/rack,/obj/item/weapon/twohanded/knighthammer{pixel_x = -3; pixel_y = 3},/obj/item/weapon/twohanded/mjollnir,/obj/item/weapon/twohanded/singularityhammer{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
-"FO" = (/obj/structure/rack,/obj/item/weapon/gun/energy/crossbow,/obj/item/weapon/gun/energy/crossbow{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
-"FP" = (/obj/machinery/recharger/wallcharger{pixel_x = 30},/obj/structure/rack,/obj/item/weapon/gun/energy/pulse_rifle,/obj/item/weapon/gun/energy/pulse_rifle{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
+"FO" = (/obj/structure/rack,/obj/item/weapon/gun/energy/kinetic_accelerator/crossbow,/obj/item/weapon/gun/energy/kinetic_accelerator/crossbow{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
+"FP" = (/obj/machinery/recharger/wallcharger{pixel_x = 30},/obj/structure/rack,/obj/item/weapon/gun/energy/pulse,/obj/item/weapon/gun/energy/pulse{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"FQ" = (/obj/structure/table,/obj/random/tool,/obj/item/clothing/gloves/color/yellow,/obj/item/weapon/pinpointer/advpinpointer,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"FR" = (/obj/structure/table,/obj/item/weapon/grenade/syndieminibomb{pixel_x = 4; pixel_y = 2; pixel_z = 0},/obj/item/weapon/grenade/syndieminibomb{pixel_x = -1},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"FS" = (/obj/structure/table,/obj/machinery/recharger{pixel_y = 0},/obj/item/toy/cards/deck/syndicate/black,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
@@ -1199,7 +1237,6 @@
"Gk" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/turf/unsimulated/wall{dir = 2; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5"; name = "window"; opacity = 0; tag = "icon-window5"},/area/admin)
"Gl" = (/obj/structure/stool/bed/chair/comfy/black,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/admin)
"Gm" = (/obj/machinery/computer/card,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
-"Gn" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"Go" = (/obj/machinery/door/airlock/glass{name = "Computer Hub"; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "ADMINLOCKDOWN"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"Gp" = (/obj/effect/landmark{name = "aroomwarp"; tag = ""},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"Gq" = (/obj/machinery/door/airlock/hatch{desc = "For all your shady business needs"; name = "Gambling Den"; req_access_txt = "0"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/admin)
@@ -1208,12 +1245,10 @@
"Gt" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/devilskiss,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/admin)
"Gu" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/turf/unsimulated/wall{desc = "This window appears to be reinforced, it looks nearly impossible to break."; dir = 8; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; name = "window"; opacity = 0; tag = "icon-window5_end (WEST)"},/area/admin)
"Gv" = (/obj/machinery/computer/artillerycontrol{luminosity = 255},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
-"Gw" = (/obj/structure/stool/bed/chair{dir = 8},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"Gx" = (/obj/item/weapon/stool,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/admin)
"Gy" = (/obj/structure/table/woodentable,/obj/item/weapon/lighter/zippo/engraved,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/admin)
"Gz" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/turf/unsimulated/wall{desc = "This window appears to be reinforced, it looks nearly impossible to break."; dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; name = "window"; opacity = 0; tag = "icon-window5 (EAST)"},/area/admin)
"GA" = (/obj/machinery/computer/communications,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
-"GB" = (/obj/structure/stool/bed/chair,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"GC" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/turf/unsimulated/wall{dir = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/admin)
"GD" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/turf/unsimulated/wall{dir = 8; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/admin)
"GE" = (/obj/machinery/computer/message_monitor,/obj/item/weapon/paper/monitorkey,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
@@ -1342,68 +1377,68 @@ ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaN
ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdkdjdjdjdlbsbqbEbqbqbFbsbGbHbGbHbGbsbIbIbIbIbIbsbxbJbxbJbxbsbybybybybybsbzbKbzbKbzbsbLbMbMbMbNbD
ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdkdjdjdjdlbsbqbObqbqbqbsbPbQbPbQbPbsbIbIbIbIbIbsbxbxbxbxbxbsbybybybybybsbzbzbzbzbzbsbLbMbMbMbNbD
ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdkdjdjdjdlbsbqbqbRbSbqbsbTbTbTbTbTbsbUbUbUbUbVbsbxbxbxbxbxbsbybybybybybsbzbzbzbzbzbsbLbMbMbMbNbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdndmdmdmdrbscabqbqbqbqbscbcccdcccebscfcgchcicfbsbxbxbJbxbxbsbybybybybybsbzbzbzbzbzbsbLbMbMbMbNbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcocococococococococococococococoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdxdvdvdvdybsbqcabqbqctbscucccdcccvbscfcwcxcycfbsbxbxbJbxbxbsbybybybybybsbzbzbzbzbzbsczbMbMbMcAbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcRcScTcocScUcocScVcocWcXcocScUcoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdzdjdjdjdAbsbqbEcabqbRbsbTbTbTbTbTbsdbcwcxcydbbsbxbxbxbxbxbsbybybybybybsbzbzbzbzbzbsczbMbMbMcAbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcododpcodocXcododqcodocUcodocTcoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdzdjdjdjdAbsbqbqbqcabqbsdsdtdsdtdsbsducwcxcydubsbxbxbxbxbxbsbybybybybybsbzbzbzbzbzbsczbMbMbMcAbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapaparapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcocococococococococococococococoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdzdjdjdjdAbsbqdGbqbqcabsbGbHbGbHbGbsducwcxcydubsbxbJbxbJbxbsbybybybybybsbzbKbzbKbzbsczbMbMbMcAbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcocSdpcodKcTcocScTcodLcUcocScXcoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdCdBdBdBdDbsbRbqdNbqbEbsbtbubtbubtbsdOdPdQdRdObsbxbxbxbxbxbsbybybybybybsbzbzbzbzbzbsdSdTdTdTdUbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcodocTcodocUcodocUcodoedcodoeecoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNhyhzhzhzhzhzbZejejejejejbZejejejejejbZejejejejejbZekekekekekbZekekekekekbZekekekekekbZekekekekekel
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcocococococococococococococococoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeneoepeneobseqeqeqeqeqbserererererbseseseteueubsevevevevevbsewexexexeybsezeAeAeAeBbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckbockckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbseqeDeqeqeqbsereEeFeGerbseHeHeIeJeJbseveKeveLevbseMeNeNeNeObsePeQeQeQeRbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapavapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpepeneoepenbseqeqeqeXeqbsereYeYeYerbseHeZeZeZeJbsevevevevevbseMeNeNeNeObsePeQeQeQeRbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfffffffffffgfgfhfififjfgfgfgfgfgfgfgfgfgfkfgfgfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeneoepeneobseqeqeqeqeqbserererererbseHeIeIeIeJbsevevevevevbseMeNeNeNeObsePeQeQeQeRbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNftfufvfwfffgfxfyfzfAfAfBfCfDdJdMfGfHfIfHfHfJfKfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbseqeqeqfMeqbserfNfOfPerbsfQfRfRfRfSbsevfTevevevbsfUfVfVfVfWbsePeQeQeQeRbD
-ckckckckckckckclckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfffffffufufufffggbfyfyfyfyfygcgdgdgdgefHfHfHgffHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpepeneoepenbseqgkeqeqeqbserglgmgnerbsgogpgpgpgqbsevevevgrevbsgsgtgtgtgubsgveQeQeQgwbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNgygzgAfufufufffggBfygCgDgEgFgGgdgdgdgdfHfHgHfHgIfIfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeneoepeneobseqeqeqeqeDbserglgmgnerbsgJeIgKeIgLbsevevevevevbsgMeNeNeNgNbsgveQeQeQgwbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckcmckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNgOgPgQfufufufffggRgdgegegegegegdgdgdgdfHfHfHgSfHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbsgTeqeqeqeqbserglgmgnerbsgJgUgUgUgLbsgVgVgVgVgVbsgMeNeNeNgNbsgveQeQeQgwbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfffffffffffffffggWgdgdgdgdgdgdgdgdgdgdgXfHfHfHfHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpepeneoepenbseqfMeqgkeqbsergYgZhaerbsgJgJeIgLgLbshbhbhbhbhbbsgMeNeNeNgNbsgveQeQeQgwbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfggWgdgdgdgdgdhcgdgdhcgdhdhehehehfhefgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeneoepeneobseqeqeqeqgTbserererererbshhhhhihjhjbshkhkhkhkhkbshlhmhmhmhnbshohphphphqbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfghrgdgdgdgdgehshtgehsgehuhvhvhvhwhvfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNhyhzhzhzhzhzhAhzhzhzhzhzhAhzhzhzhzhzhAhzhzhzhzhzhAhzhzhzhzhzhAhzhzhzhzhzhAhzhzhzhzhzhB
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfgfghChDhDhCfgfgfgfgfgfgfgfgfgfgfgfgfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfghEhFhFhFfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZaPaPaPaPaPbZaPaPaPaPaPbZaPaPaPaPaPbZ
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfghFhFhFhFfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbphHhIhJhKhLbshMhNhOhPhQbshRhShThUhVbD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfgfgfgfgfgfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbphWhWhXhWhWbshYhZhZhZhYbsiaiaiaiaiabD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbphWhWhWhWhWbshYhZhZhZhYbsiaiaiaiaiabD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpibichWicibbshYidhZidhYbsieifiaigiebD
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZhzhzhzhzhzbZhzhzhzhzhzbZhzhzhzhzhzbZ
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihihihihihihihihihihihihaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatatatatataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdndmdmdmdrbscabqbqbqbqbscbcccdcccebscfcgchcicfbsbxbxbJbxbxbsbybybybybybsbzbzbzbzbzbsbLbMbMbMbNbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNcocococococococococococococococoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdxdvdvdvdybsbqcabqbqctbscucccdcccvbscfcwcxcycfbsbxbxbJbxbxbsbybybybybybsbzbzbzbzbzbsczbMbMbMcAbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNcRcScTcocScUcocScVcocWcXcocScUcoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdzdjdjdjdAbsbqbEcabqbRbsbTbTbTbTbTbsdbcwcxcydbbsbxbxbxbxbxbsbybybybybybsbzbzbzbzbzbsczbMbMbMcAbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNcododpcodocXcododqcodocUcodocTcoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdzdjdjdjdAbsbqbqbqcabqbsdsdtdsdtdsbsducwcxcydubsbxbxbxbxbxbsbybybybybybsbzbzbzbzbzbsczbMbMbMcAbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapaparapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNcocococococococococococococococoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdzdjdjdjdAbsbqdGbqbqcabsbGbHbGbHbGbsducwcxcydubsbxbJbxbJbxbsbybybybybybsbzbKbzbKbzbsczbMbMbMcAbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNcocSdpcodKcTcocScTcodLcUcocScXcoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpdCdBdBdBdDbsbRbqdNbqbEbsbtbubtbubtbsdOdPdQdRdObsbxbxbxbxbxbsbybybybybybsbzbzbzbzbzbsdSdTdTdTdUbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNcodocTcodocUcodocUcodoedcodoeecoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNhyhzhzhzhzhzbZejejejejejbZejejejejejbZejejejejejbZekekekekekbZekekekekekbZekekekekekbZekekekekekel
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNcocococococococococococococococoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeneoepeneobseqeqeqeqeqbserererererbseseseteueubsevevevevevbsewexexexeybsezeAeAeAeBbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckbockckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbseqeDeqeqeqbsereEeFeGerbseHeHeIeJeJbseveKeveLevbseMeNeNeNeObsePeQeQeQeRbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapavapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpepeneoepenbseqeqeqeXeqbsereYeYeYerbseHeZeZeZeJbsevevevevevbseMeNeNeNeObsePeQeQeQeRbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNfffffffffffgfgfhfififjfgfgfgfgfgfgfgfgfgfkfgfgfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeneoepeneobseqeqeqeqeqbserererererbseHeIeIeIeJbsevevevevevbseMeNeNeNeObsePeQeQeQeRbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNftfufvfwfffgfxfyfzfAfAfBfCfDdJdMfGfHfIfHfHfJfKfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbseqeqeqfMeqbserfNfOfPerbsfQfRfRfRfSbsevfTevevevbsfUfVfVfVfWbsePeQeQeQeRbD
+ckckckckckckckclckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNfffffffufufufffggbfyfyfyfyfygcgdgdgdgefHfHfHgffHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpepeneoepenbseqgkeqeqeqbserglgmgnerbsgogpgpgpgqbsevevevgrevbsgsgtgtgtgubsgveQeQeQgwbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNgygzgAfufufufffggBfygCgDgEgFgGgdgdgdgdfHfHgHfHgIfIfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeneoepeneobseqeqeqeqeDbserglgmgnerbsgJeIgKeIgLbsevevevevevbsgMeNeNeNgNbsgveQeQeQgwbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckcmckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNgOgPgQfufufufffggRgdgegegegegegdgdgdgdfHfHfHgSfHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeoepeneoepbsgTeqeqeqeqbserglgmgnerbsgJgUgUgUgLbsgVgVgVgVgVbsgMeNeNeNgNbsgveQeQeQgwbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckiAckckckckckckckckckaNaNaNaNaNfffffffffffffffggWgdgdgdgdgdgdgdgdgdgdgXfHfHfHfHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpepeneoepenbseqfMeqgkeqbsergYgZhaerbsgJgJeIgLgLbshbhbhbhbhbbsgMeNeNeNgNbsgveQeQeQgwbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNfggWgdgdgdgdgdhcgdgdhcgdhdhehehehfhefgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpeneoepeneobseqeqeqeqgTbserererererbshhhhhihjhjbshkhkhkhkhkbshlhmhmhmhnbshohphphphqbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNfghrgdgdgdgdgehshtgehsgehuhvhvhvhwhvfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNhyhzhzhzhzhzhAhzhzhzhzhzhAhzhzhzhzhzhAhzhzhzhzhzhAhzhzhzhzhzhAhzhzhzhzhzhAhzhzhzhzhzhB
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNfgfghChDhDhCfgfgfgfgfgfgfgfgfgfgfgfgfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNfghEhFhFhFfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZaPaPaPaPaPbZaPaPaPaPaPbZaPaPaPaPaPbZ
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNfghFhFhFhFfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbphHhIhJhKhLbshMhNhOhPhQbshRhShThUhVbD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNfgfgfgfgfgfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbphWhWhXhWhWbshYhZhZhZhYbsiaiaiaiaiabD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbphWhWhWhWhWbshYhZhZhZhYbsiaiaiaiaiabD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpibichWicibbshYidhZidhYbsieifiaigiebD
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZhzhzhzhzhzbZhzhzhzhzhzbZhzhzhzhzhzbZ
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNihihihihihihihihihihihihaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatatatatataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihiiijikiliminihioipiqihaNaNirisisisisisitaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatauauauataNaNaNaNaNaNaNaNaNaNaNbZbZbZbZbZbZbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZbZbZbZbZbZbZaNaNaNaNaN
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihikikikikikikikixiyizihaNaNisiAiBiCiDiEitaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatauayauataNaNaNaNaNaNaNaNaNaNaNbZdEdEdEdEdEbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZdFdFdFdFdFbZaNaNaNaNaN
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihiLiLikikikiMihiNiOiPihaNaNisiQiRiRiRiQititititaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatauauauataNaNaNaNaNaNaNaNaNbZbZbZiZiZiZiZiZjajbjcjcjcjcjcjcjcjcjcjcjcjcjcjbjaiZiZiZiZiZbZbZbZaNaNaN
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihikikikikjdjdihihjeihihaNaNisiQjfjfjfiQitjgjhitaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatatatatataFaGaGaGaGaGaGaGaHatataIatataNaNaNaNaNaNaNaNaNbZjljmbZbZbZbZbZjnjojpjpjpjpjpjpjpjpjpjpjpjpjpjqjnbZbZbZbZbZjmjrbZaNaNaN
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihjAjAikjBjCjDihjEjejFihaNaNisiQjGjHjIiQititititititititititititaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataJaJaJaKauauauauauauauauaKaKaKauaJataNaNaNaNaNaNaNaNaNbZjljmbZbZbZbZbZjnjojpjpjpjpjpjpjpjpjpjpjpjpjpjqjnbZbZbZbZbZjmjrbZaNaNaN
-ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihkbikikjBkckdihkekfkgihaNaNisiQkhjHjIiQkikjkkklkmknkjkokpkqkrksaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataKauauauauauauauaMauauauauauauauaJataNaNaNaNaNaNaNaNaNbZjljmbZbZbZbZbZjnjojpjpjpjpjpkBkCkBjpjpjpjpjpjqjnbZbZbZbZbZjmjrbZaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihkJikikikikihihihihihihaNaNisiQkhjHjIiQkKkjknknkLknkjknkrkrkrksaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatbhauauauauauaubibibiauauauauauauaJataNaNaNaNaNaNaNaNaNbZjljmbZbZbZbZbZjnjojpjpjpjpjpkBkTkBjpjpjpjpjpjqjnbZbZbZbZbZjmjrbZaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihkWkXkYkZiklalblcldleihaNaNisiQjHjHjHlflglhknknkLknkjkokpkrkrksaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatbhauauauauaubjbibibibjauauauauauaKataNaNaNaNaNaNaNaNaNbZjljmbZbZbZbZbZjnjojpjpjpjpjpjpjpjpjpjpjpjpjpjqjnbZbZbZbZbZjmjrbZaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihlolplqikikiklrlsltluihaNaNisiQlvjHjHlwlglhknknknknlxknkrkrkrksaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatbhauauauauauaubjbjbjauauauauauauauataNaNaNaNaNaNaNaNaNbZbZbZlBlBlBlBlBlClDjpjpjpjpjpjplEjpjpjpjpjpjplDlClBlBlBlBlBbZbZbZaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihlGlplqikikiklHlIlHlIihaNaNisiQlJjHlKiQkKkjknknkLknkjkokpkrkrksaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatauauauauauauauauauauauauauauauauauataNaNaNaNaNaNaNaNaNaNaNbZlWlWlWlWlWbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZlXlXlXlXlXbZaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihlomambkJmcladclumeddihaNaNismgmhmimhmjkikjknknkLknkjknkrkrkrksaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatauauaKaJaJaKauauauauauauauauauauauataNaNaNaNaNaNaNaNaNaNaNbZbZbZbZbZbZbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZbZbZbZbZbZbZaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihihihihihihihihihihihihaNaNisaNmgmsmjaNmtkjknknmuknkjkokpmvkrksaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatatbkatatatatatatatatatatatatatbkatataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNititititititititititititititititititaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatblblataNaNaNaNaNaNaNaNaNaNaNatblblataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckbmckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatblblataNaNaNaNaNaNaNaNaNaNaNatblblataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckaackckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatatblblatatatatatatatatatatatatatblblatataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckaEckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababacababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbnaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababacabababababababababababababababababababababababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababadababababababababababababaeababacabafababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckawckckckckckaxckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababababababababafabafababababafabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababababababacababadababacafabadabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababagagagagagagagababababahababacabahabababacabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaiaNaNaNaNaNaNaNaiacabababababajagagakagakababafabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalabababacamnjnjoBoCnjnjanagagagnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalabababaonjnjoHoIoIoJnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalababadaonjaLoOoOoOoOoPoQoRnjfYjMfZnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaiaNaNaNaNaNaNaNaiababababaSnjpaoOpbpbpcoOpdpepWpXpXganjnjnjnjnjnjnjnjnjnjnjnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababaNaNaNaNaNaTagagababaUamnjplpbpmjNpboOpoppnjpXggnjnjghgjgigxgxhggxgxhxhGnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababaNaNaNaNaNpupvpvpvpvpvoCnjoOpbpwpxpboOpoppnjnjnjnjnjgjgiiuiwiviFiviHiGhxnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaiaNaNaNaNaNaNaNaNaNpypzpApzpzpzpzpCoOJboOoOoOoOpoppnjnjnjnjnjgjiIiwiviJiSiKiviHiTnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNpFaVoBpvpvpvoCnjpHpbpbpboOoOpoppoBpvpvpvpvpvpviviJiSiUiSiKiviTnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihikikikikikikikixiyizihaNaNisaNaNaNaNaNitaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatauayauataNaNaNaNaNaNaNaNaNaNaNbZdEdEdEdEdEbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZdFdFdFdFdFbZaNaNaNaNaN
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihiLiLikikikiMihiNiOiPihaNaNisaNaNaNaNaNititititaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatauauauataNaNaNaNaNaNaNaNaNbZbZbZiZiZiZiZiZjajbjcjcjcjcjcjcjcjcjcjcjcjcjcjbjaiZiZiZiZiZbZbZbZaNaNaN
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihikikikikjdjdihihjeihihaNaNisaNaNaNaNaNitjgjhitaNaNaNaNaNaNaNaNaNaNmrmrmrmrmrmrmrmrmrmrmrmrmrmxmwatatatatataFaGaGaGaGaGaGaGaHatataIatataNaNaNaNaNaNaNaNaNbZjljmbZbZbZbZbZjnjojpjpjpjpjpjpjpjpjpjpjpjpjpjqjnbZbZbZbZbZjmjrbZaNaNaN
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihjAjAikjBjCjDihjEjejFihaNaNisaNaNaNaNaNititititititititititititaNaNmraNaNaNaNaNaNaNaNaNaNaNmrmzmyataJaJaJaKauauauauauauauauaKaKaKauaJataNaNaNaNaNaNaNaNaNbZjljmbZbZbZbZbZjnjojpjpjpjpjpjpjpjpjpjpjpjpjpjqjnbZbZbZbZbZjmjrbZaNaNaN
+ckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihkbikikjBkckdihkekfkgihaNaNisaNaNaNaNaNkikjkkklkmknkjkokpkqkrksaNaNmraNaNaNaNaNaNaNaNaNaNaNmrmBmAataKauauauauauauauaMauauauauauauauaJataNaNaNaNaNaNaNaNaNbZjljmbZbZbZbZbZjnjojpjpjpjpjpkBkCkBjpjpjpjpjpjqjnbZbZbZbZbZjmjrbZaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihkJikikikikihihihihihihaNaNisaNaNaNaNaNkKkjknknkLknkjknkrkrkrksaNaNmraNaNaNaNaNaNaNaNaNaNmDmCmFmEatbhauauauauauaubibibiauauauauauauaJataNaNaNaNaNaNaNaNaNbZjljmbZbZbZbZbZjnjojpjpjpjpjpkBkTkBjpjpjpjpjpjqjnbZbZbZbZbZjmjrbZaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihkWkXkYkZiklalblcldleihaNaNisaNaNaNaNaNlgiBknknkLknkjkokpkrkrksaNaNmraNaNaNaNaNaNaNaNaNaNaNmrmGmEatbhauauauauaubjbibibibjauauauauauaKataNaNaNaNaNaNaNaNaNbZjljmbZbZbZbZbZjnjojpjpjpjpjpjpjpjpjpjpjpjpjpjqjnbZbZbZbZbZjmjrbZaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihlolplqikikiklrlsltluihaNaNisaNaNaNaNiClgiBknknknknlxknkrkrkrksaNaNmraNaNaNaNaNaNaNaNaNaNaNmrmEmEatbhauauauauauaubjbjbjauauauauauauauataNaNaNaNaNaNaNaNaNbZbZbZlBlBlBlBlBlClDjpjpjpjpjpjplEjpjpjpjpjpjplDlClBlBlBlBlBbZbZbZaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihlGlplqikikiklHlIlHlIihaNaNisaNaNaNaNaNkKkjknknkLknkjkokpkrkrksaNaNmrmrmrmrmrmrmrmrmrmrmrmrmrmEmEatauauauauauauauauauauauauauauauauauataNaNaNaNaNaNaNaNaNaNaNbZlWlWlWlWlWbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZlXlXlXlXlXbZaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihlomambkJmcladclumeddihaNaNisaNaNaNaNaNkikjknknkLknkjknkrkrkrksaNaNaNaNaNaNmHmEmEmEmImEmEmEmEmEmJatauauaKaJaJaKauauauauauauauauauauauataNaNaNaNaNaNaNaNaNaNaNbZbZbZbZbZbZbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZbZbZbZbZbZbZaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihihihihihihihihihihihihaNaNisaNaNaNaNaNmtkjknknmuknkjkokpmvkrksaNaNaNaNaNaNmKmEmLmNmMmOmOmMmEmQmPatatbkatatatatatatatatatatatatatbkatataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNititititititititititititititititititaNaNaNaNaNaNmKmEmEmEmEmEmEmEmEmQmRatblblataNaNaNaNaNaNaNaNaNaNaNatblblataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckbmckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmKmEmMmOmOmOmSmMmEmEmTatblblataNaNaNaNaNaNaNaNaNaNaNatblblataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckaackckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNmUmVmEmEmEmEmEmEmEmEatatblblatatatatatatatatatatatatatblblatataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckaEckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababacababababababababababababababababababnjaNaNaNaNaNmrmrmrmWmrmXmOmOmMmEmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbnaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababacabababababababababababababababababababababababababnjaNaNaNaNaNmrmYnamZmrmEmEmEmEnbncataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababadababababababababababababaeababacabafababnjaNaNaNaNaNmrndndnemrnfngngngnhniataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckawckckckckckaxckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababababababababafabafababababafabababnjaNaNaNaNaNmrndnkmrmraNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababababababacababadababacafabadabababnjaNaNaNaNaNmrmrmrmrmraNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababagagagagagagagababababahababacabahabababacabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaiaNaNaNaNaNaNaNaiacabababababajagagakagakababafabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNnlnmataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalabababacamnjnjoBoCnjnjanagagagnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalabababaonjnjoHoIoIoJnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaNaNaNaNaNaNaNaNaNalababadaonjaLoOoOoOoOfZoQoRnjfYjMmgnjaNaNaNaNaNaNaNaNaNaNaNaNnlmEataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababaiaNaNaNaNaNaNaNaiababababaSnjpaoOmfmfpcoOpdpepWpXpXganjnjnjnjnjnjnjnjnjnjnjnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababaNaNaNaNaNaTagagababaUamnjplmfpmjNmfoOmkppnjpXggnjnjghgjgigxgxhggxgxhxhGnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababaNaNaNaNaNpupvpvpvpvpvoCnjmhmfpwpxmfoOmkppnjnjnjnjnjgjgiiuiwiviFiviHiGhxnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaiaNaNaNaNaNaNaNaNaNpypzpApzpzpzpzpCoOJboOoOoOoOmkppnjnjnjnjnjgjiIiwiviJiSiKiviHiTnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNpFaVoBpvpvpvoCnjmimfmfmfmhoOmkppoBpvpvpvpvpvpviviJiSiUiSiKiviTnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNaNaWaNaiababaXnjpRpSpTpSjOoOpUpViWiViViXiViViWiFiSiYjjjiiSiFiTnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjaYabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaZabaonjqfqgqhqiqjoOoOoOoBpvpvpvpvpvpviviJiSjkiSiSiviTnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNaNaNaNaNalabaonjnjppqtqrqunjqwoOnjnjnjnjnjgjiIjsiviJiSiKivjtiTnjaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaNaNaNaNaNaNaNaNaNaNaNaNaNaNanabababnjnjnjnjnjnjqDqDqEqFqGqHnjgjjvjujsivjwivjtjxjynjaNaNaNatatatatatatatatatatatatatatatatatatatatataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaiaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaiabababbababbaXnjqLqMqMqMqMqMnjjzgjjvjJjJjKjJjJjyjznjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababacababaoqXqMqMqMqMqMqYnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababacababaoqXqMqMqMqMqMmlnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababadbcakamnjrerererererfnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalababaonjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbdabababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
@@ -1459,12 +1494,12 @@ aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsqsqsqsqsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsqsrssstsqsqsqsqsusvsvsvsqsqsqsqsqsqsqsqsqsqsqsqsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsqswsssssxsyszsAsBsCsDsEsEsysysqsFsGsHsIsqsJsKsLsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsqsqsqsqsqsysEsDsMsNsDsEsEsOsPsqsQsQsQsQsqsRsSsTsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsqswsssssxsyszmmsBsCmnsEsEsysysqsFsGsHsIsqsJsKsLsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsqsqsqsqsqsysEmnsMsNmnsEsEsOmosqsQsQsQsQsqsRsSsTsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsvsEsEsEsEsEsEsEsEsysysqsQsUsVsVsqsqsWsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsqaNaNaNsvsEsEsEsEsEsEsEsEsEsEsusQsYsYsQsQsQsQsZsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatbtctdtdtesqsqsqsqsqsEsEsDsMsCsDsEsEsEsEsEsQsQsQsQtfsQsQtgsqsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititititjtktitititjtltmtntdtdtdsqsrssstsqtosEsDsMtpsDsEsEsEsEsutqsQsQsQtrsQsQtssqsqsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsqaNaNaNsvsEsEsEsEsEsEsEsEsEsEsusQmpmpsQsQsQsQsZsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatbtctdtdtesqsqsqsqsqsEsEmnsMsCmnsEsEsEsEsEsQsQsQsQtfsQsQtgsqsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititititjtktitititjtltmtntdtdtdsqsrssstsqtosEmnsMtpmnsEsEsEsEsutqsQsQsQtrsQsQtssqsqsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatttutdtdtdsqswsssssxsEsEsEsEsEsEsEsEsEsEsqsusususususususqsqdWdXsqsqsqsqsqsqsqsqsqsqsqsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititititvtktitititvtwtmtntdtdtdsqsqsqsqsqsqsqtxsqsqsqsqsEsEtysqtztztztztztztzsudZdYebeasuecegefeieheCemeTeSeVeUeWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatttutdtdtAsqtBtCtDsqtEtFtFtFtFtGsqsEsEtHsqtztztztztztztzsufbfatLfcsufdflfefnfmfpfofrfqfEfsfFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
@@ -1482,7 +1517,7 @@ aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXvkvkvkvxujujujvyvyujujujvzvdvAvBvCbesXvEtTuEtRtRvFtRtRtZsqsqsusususususqsqtQtRtZsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXvGvHsXvIvJujujujujvLujsXvdvMvNvOvPsXvQtRtRtRtZsutQtRtStTtTtTtTtTtTtTtTtTuEtRtZsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXbfbfsXsXsXvSvTvUvVvdsXvWtRtRtRvXsutQtRtRtRtRtRtRtRtRtRtRtRtRtRtZsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwbwcwdwbwesXwfwgwhwiwjsXwkudududwlsuwmudududududuetRucudududududwnsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwbwcwdwbwesXiDwgwhwiwjsXwkudududwlsuwmudududududuetRucudududududwnsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwrwswtwrwesXsXsXsXsXsXsXsqsqsqsqsqsqsqsqsqsqsqsqsqwusqsqsqsqsqsqsqsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwCwDwEwFwGwCwHwIwJwKwLwMwNwOwPwKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwCwCwCwIwIwIwIwIwIwKxcxdxexdxfwKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
@@ -1496,9 +1531,9 @@ aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbW
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNxdxmxXxYwNxXxYxfyGytyGwNwNwNyHxzxzxzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyiyvyvyKyLyMyNyMyOyMyNyMyPyKyvyvyiaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwKxyyQyQyQyRwNxfypxdwKyqwNwNwNwKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNySyFyvyTyMyNyNyNyNyNyNyNyMyTyvywyUaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwKwKwKwKxdxdwKwKxmwNxfxdxLwKwNwNwNwNwKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNySylyoyWyXyYyZyNzazbyNzcykylyUaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwKzdzezfzgzezewKxmwNxfypxdwKyqwNwNwNwKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyizhzizjzkyNzazbyNyyyiaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwKzlzezmzgzezeznxmwNxfyGytyGwNwNwNygxzxzxzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyizqzrzryZyNzazbyNyMyiaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwKztzezuzgzezewKxyyQzvwKwKwKyqwNwNyrcnytcnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyizxzrzrzyyNyMyMyNyNaBaCaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwKzdzezfmqzezewKxmwNxfypxdwKyqwNwNwNwKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyizhzizjzkyNzazbyNyyyiaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwKzlzezmmqzezeznxmwNxfyGytyGwNwNwNygxzxzxzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyizqzrzryZyNzazbyNyMyiaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwKztzezumqzezewKxyyQzvwKwKwKyqwNwNyrcnytcnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyizxzrzrzyyNyMyMyNyNaBaCaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwKztzezezezezewKwKzBwKwKxLwKwNwNwNyHxzxzxzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNykylylylyoyNzazbyNzHyiaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcjcjcjcjcjcjcjcjcjcjcjcjcjcjcjytytytwKxLwKxZxZxZxZwKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNyizOzOzPzQyNzazbyNzRyiaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcjcpcpcpcpcpcpcpcpcpcpcpcpcpcqytytytwKxLwKxzxzxzxzwKaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNzVzWzWzWzXyNzazbyNyMyiaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
@@ -1536,34 +1571,34 @@ aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbW
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtaNaNaNaNaNDuaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDvDtDwDxDyDyDyDzDwDuDvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDADBDCDDDEDFDGDHDADuaNaNaNaNaNaNDuaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIDJDKDKDKDKDKDLDADwDMDwDMDwDMDwDwDuaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNDODKDPcQDRDKDSDADTDKDUDKDVDWDXDYDADuaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNDZDKEaEbEcDKEdDADKDKDKDKDKDKDKEeDIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfEgEhDKDKDKEhEiDAEjDKEkDKElDWDXDYEfaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDADwDwDKDKDKDwDwDADKDKDKDKDKDKDKEmDAEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDuaNDADwDwDMEoDMDwDwDwDwDwDMEpDMDwDwDwEnaNDtDwEqErErEsDwDuaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDADwDwEtDKDKDKDKDKDKDKDKDKDKDKDKEuDAEnaNDtDwEvEwExEyEwEzDwEAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEBDKECDKDKDKDKDKDKDKDKDKDKDKDKDKDKDAaNaNaNEDEEEFEwEwEwEGEDaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDADwDwDwDwDwDMEHDMDwDwDwDwDwEIDKDKDAaNaNaNEJEKEwEwEwEwELEJaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEnaNEMDAENEOEPDKDKEQERESETEuDADKDKDAaNaNDtDAEUEwEVEWEwEXDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWjLbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEYDKDKDKDKDKDKDKDKDKDKEYDKDKDADwEZDwDwDwFaDwDwFaDwDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAFbFcFdDKDKDKFeFeFeDKEHDKDKDAFfEwEwdfDADKDAFhFiFjDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEYDKDKDKDKDKFkDwDwDwDwDADKDKDAEwEwFlFmDADKDAFnFoFpDIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAFqFrFsDKFtDAFuFvFwFxDADKDKDAFyEwEwFzDADKDAFAFBFCDNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEYDKDKDKDKFDDAFEFvFvFvFFDKDKDAFGEwEwFHDADKDKDKDKDKEfaNaNaNaNDtDwFIFJFKDwDuaNaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAFMFNFODKFPDAFQFvFRFSDADKDKDAFTFUEwEwFVDKDKDKDKDKDAaNaNaNDtDwFWFXFXFXFYDwDuaNaNaNaNaNaN
-aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDwDwDwDwDwDwDwDwDwDwDwGaDKDKGbDwDwDwDwDwDwDwDwGcDwDADuaNDtDwFWFXFXFXFXFXFYDADuaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDAGdGeGfGgGhGiGjGbDAGaDKDKDKDKDKDKGbDwDwDwDwDwGaDKGbDwDwGkDwFWFXFXFXGlFXFXFXFYDAaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIGmDKDKGnDKDKDKDKDKGoDKDKGpGpGpGpDKDKDKDKDKDKDKDKDKDKGqFXFXFXFXFXFXGrGsGtFXFXFXGuaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNGvGwDKDKDKDKDKDKDKGoDKDKGpGpGpGpDKDKDKDKDKDKDKDKDKDKGqFXFXFXFXFXGxGyGrGrGxFXFXGzaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfGADKDKGBDKDKDKDKDKGoDKDKGpGpGpGpDKDKDKDKDKDKDKDKDKFkDwDwGkDwGCFXFXGxGxGxFXFXGDDAaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDAGEGFGGGHGIGJGKFkDAEIDKDKDKDKDKDKFkDwDwEIDKFkDwDwDwDAEnaNEMDwGCFXFXFXFXFXGDDAEnaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDwDwDwDwDwDwDwDwDwDwDwEIDKDKFkDwDwDwDwDwGLDwDwDwDADAaNaNaNEMDwGCFXFXFXGDDwEnaNaNaNaNaNaN
-aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMaNaNaNaNaNaNaNaNaNDvDAGMGMDAaNDAFvGNFvFvFvGNFvDADAaNaNaNaNEMDwFIFJFKDwEnaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDvDtDwDxDyDyDyDzDwiEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDADBDCDDDEDFDGDHDADvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIDJDKDKDKDKDKDLDADuaNaNaNaNaNaNDvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNDODKDPcQDRDKDSDADwDMDwDMDwDMDwDwDuaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNDZDKDKDKDKDKEdDADTDKDUDKDVDWDXDYDADvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfEgDKEaEbEcDKEiDADKDKDKDKDKDKDKEeDIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNiQDAiRDKDKDKDKDKjfDAEjDKEkDKElDWDXDYEfaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAjGEhDKDKDKEhjHDADKDKDKDKDKDKDKEmDADvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDuaNDADwDwDMEoDMDwDwDwDwDwDMEpDMDwDwDwEnaNDtDwEqErErEsDwDuaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDADwDwEtDKDKDKDKDKDKDKDKDKDKDKDKEuDAEnaNDvDwEvEwExEyEwEzDwjIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEBDKECDKDKDKDKDKDKDKDKDKDKDKDKDKDKDAaNaNaNEDEEEFEwEwEwEGEDaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWnnbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDADwDwDwDwDwDMEHDMDwDwDwDwDwEIDKDKDAaNaNaNEJEKEwEwEwEwELEJaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEnaNEMDAENEOEPDKDKEQERESETEuDADKDKDAiEaNDtDAEUEwEVEWEwEXDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWjLbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEYDKDKDKDKDKDKDKDKDKDKEYDKDKDADwEZDwDwDwFaDwDwFaDwDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAFbFcFdDKDKDKFeFeFeDKEHDKDKDAFfEwEwdfDADKDAFhFiFjDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEYDKDKDKDKkhFkDwDwDwDwDADKDKDAEwEwFlFmDADKDAFnFoFpDIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAFqFrFsDKFtDAFuFvFwFxDADKDKDAFyEwEwFzDADKDAFAFBFCDNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEYlfDKDKDKFDDAFEFvFvFvFFDKDKDAFGEwEwFHDADKDKDKDKDKEfaNaNaNaNDtDwFIFJFKDwDuaNaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAFMFNFODKFPDAFQFvFRFSDADKDKDAFTFUEwEwFVDKDKDKDKDKDAaNaNaNDtDwFWFXFXFXFYDwDuaNaNaNaNaNaN
+aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDwDwDwDwDwDwDwDwDwDwDwDwGaDKDKGbDwDwDwDwDwDwDwDwGcDwDADuaNDtDwFWFXFXFXFXFXFYDADuaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDAGaGdGeGfGgGhGiGjGbDAGaDKDKDKDKDKDKGbDwDwDwDwDwGaDKGbDwDwGkDwFWFXFXFXGlFXFXFXFYDAaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIGmlhDKDKlvDKDKDKDKDKGoDKDKGpGpGpGpDKDKDKDKDKDKDKDKDKDKGqFXFXFXFXFXFXGrGsGtFXFXFXGuaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNDKlwDKDKDKDKDKDKDKDKGoDKDKGpGpGpGpDKDKDKDKDKDKDKDKDKDKGqFXFXFXFXFXGxGyGrGrGxFXFXGzaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfGAGvDKDKlJDKDKDKDKDKGoDKDKGpGpGpGpDKDKDKDKDKDKDKDKDKFkDwDwGkDwGCFXFXGxGxGxFXFXGDDAaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDAEIGEGFGGGHGIGJGKFkDAEIDKDKDKDKDKDKFkDwDwEIDKFkDwDwDwDAEnaNEMDwGCFXFXFXFXFXGDDAEnaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDwDwDwDwDwDwDwDwDwDwDwDwEIDKDKFkDwDwDwDwDwGLDwDwDwDADAaNaNaNEMDwGCFXFXFXGDDwEnaNaNaNaNaNaN
+aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDvDAGMGMDAaNDAFvGNFvFvFvGNFvDADAaNaNaNaNEMDwFIFJFKDwEnaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDwDwDwDwGaDKDKDAaNDAGOFvFvGPFvFvGQDADAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIDKDKDKDKDKDKDKDAaNDAGRGPFvFvFvGPGSDADAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfDKDKDKDKDKDKDKDAaNDAGTFvFvGPFvFvGUDADAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
@@ -1580,7 +1615,7 @@ aNaNaNaNaNaNHjdHdHdHdHdHHjIdIeIeIeIeIeIeIeIeIeIeIeIeIeIfHjdIdIdIdIdIHjaNaNaNaNaN
aNaNaNaNHjHjHjIhIhIhIhIhjajbjcjcjcjcjcjcjcjcjcjcjcjcjcjbjaIhIhIhIhIhHjHjHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjUjWlLlNlMkajZaNjUjWlOlQlPkajZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfDKDKDKDKDKDKFkDAEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNHjIiIjIkIkIkIkIkIlImjcjcjcjcjcjcjcjcjcjcjcjcjcInIlIoIoIoIoIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkwlRkxkxkxkAkzaNkwlSkxkxkxkAkzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDwDwDMIqDMDwDwEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNHjIiIjIkIrIkIrIkIlImjcjcjcjcjcjcjcjcjcjcjcjcjcInIlIoIsIoIsIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkEkGlTkIlUkNkMaNkEkGlVkIlYkNkMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAItDKDKDKIuDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
-aNaNaNaNHjIiIjIkIkIvIkIkIlImjcjcjcjcjcIwIxIwjcjcjcjcjcInIlIoIoIyIoIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkQkRkxkxkxkAkSaNkQkRkxkxkxkAkSaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIDKDKDKDKDKDIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+aNaNaNaNHjIiIjIkIkIvIkIkIlImjcjcjcjcjcIwIxIwjcjcjcjcjcInIlIoIoIyIoIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkQkRkxkxkxkAkSaNkQkRkxkxkxkAkSaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIDKDKDKDKlKDIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNHjIiIjIkIrIkIrIkIlImjcjcjcjcjcIwIzIwjcjcjcjcjcInIlIoIsIoIsIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkUlikVlkljlmllaNkUlikVlkljlmllaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNIADKDKDKIBDNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNHjIiIjIkIkIkIkIkIlImjcjcjcjcjcjcjcjcjcjcjcjcjcInIlIoIoIoIoIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNlylnlAlzlFaNaNaNlylnlAlzlFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfICDKDKDKIDEfaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNHjHjHjIEIEIEIEIEjajbjcjcjcjcjcjcjcjcjcjcjcjcjcjbjaIEIEIEIEIEHjHjHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDwIFIGIHIIIJDwEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
diff --git a/_maps/map_files/cyberiad/z4.dmm b/_maps/map_files/cyberiad/z4.dmm
index e0701e70cb1..b980f8a7098 100644
--- a/_maps/map_files/cyberiad/z4.dmm
+++ b/_maps/map_files/cyberiad/z4.dmm
@@ -140,7 +140,7 @@
"cJ" = (/obj/machinery/recharge_station,/turf/simulated/floor/plating/airless,/area/constructionsite/ai)
"cK" = (/obj/structure/table,/obj/item/weapon/lighter/random,/obj/item/weapon/reagent_containers/food/snacks/icecreamsandwich,/obj/item/clothing/head/chefhat,/obj/item/weapon/storage/box/donkpockets,/obj/structure/sign/fire{pixel_y = 32},/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/engiestation)
"cL" = (/obj/structure/table,/obj/machinery/kitchen_machine/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/engiestation)
-"cM" = (/obj/structure/flora/kirbyplants,/obj/machinery/light{dir = 1},/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/engiestation)
+"cM" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/light{dir = 1},/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/engiestation)
"cN" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/structure/sign/singulo{pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/engiestation)
"cO" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/meatballsoup,/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/engiestation)
"cP" = (/obj/machinery/pipedispenser/disposal,/turf/simulated/floor/plasteel,/area/engiestation)
@@ -186,7 +186,7 @@
"dD" = (/obj/machinery/vending/cola,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 10},/area/engiestation)
"dE" = (/obj/machinery/light,/obj/item/device/radio/intercom{dir = 1; name = "station intercom (General)"; pixel_y = -28},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/engiestation)
"dF" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/engiestation)
-"dG" = (/obj/machinery/light_switch{pixel_y = -28},/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/engiestation)
+"dG" = (/obj/machinery/light_switch{pixel_y = -28},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/engiestation)
"dH" = (/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 6},/area/engiestation)
"dI" = (/obj/machinery/door/airlock/glass{name = "Kitchen"},/turf/simulated/floor/plasteel,/area/engiestation)
"dJ" = (/obj/machinery/door/airlock/glass{name = "Cabin"},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/engiestation)
@@ -196,14 +196,14 @@
"dN" = (/obj/machinery/door/airlock{name = "Restroom"; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engiestation)
"dO" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engiestation)
"dP" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel,/area/engiestation)
-"dQ" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{icon_state = "wood"},/area/engiestation)
+"dQ" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{icon_state = "wood"},/area/engiestation)
"dR" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/orange,/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/engiestation)
"dS" = (/obj/structure/table,/obj/item/toy/minimeteor,/obj/item/toy/carpplushie,/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/engiestation)
"dT" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/engiestation)
"dU" = (/obj/structure/toilet{dir = 4},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engiestation)
"dV" = (/obj/machinery/light_switch{pixel_x = 0; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engiestation)
"dW" = (/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engiestation)
-"dX" = (/obj/structure/flora/kirbyplants,/obj/machinery/light{dir = 1; in_use = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engiestation)
+"dX" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/light{dir = 1; in_use = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/engiestation)
"dY" = (/obj/structure/closet/firecloset,/obj/machinery/light{dir = 8},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engiestation)
"dZ" = (/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/wall,/area/constructionsite/hallway/aft)
"ea" = (/obj/machinery/door/airlock/highsecurity{icon_state = "door_closed"; locked = 0; name = "AI Upload Access"; req_access_txt = "16"},/turf/simulated/floor/plating/airless,/area/constructionsite/hallway/aft)
diff --git a/_maps/map_files/cyberiad/z5.dmm b/_maps/map_files/cyberiad/z5.dmm
index 8d593d21011..d84a5dfbf24 100644
--- a/_maps/map_files/cyberiad/z5.dmm
+++ b/_maps/map_files/cyberiad/z5.dmm
@@ -697,7 +697,7 @@
"nv" = (/obj/machinery/mineral/unloading_machine{input_dir = 1; output_dir = 2},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/research_outpost/tempstorage)
"nw" = (/obj/structure/closet/firecloset,/turf/simulated/floor/plasteel,/area/research_outpost/gearstore)
"nx" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plasteel,/area/research_outpost/gearstore)
-"ny" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel,/area/research_outpost/gearstore)
+"ny" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel,/area/research_outpost/gearstore)
"nz" = (/obj/machinery/light_switch{pixel_x = 27},/obj/structure/stool/bed/chair/sofa/left{dir = 8},/turf/simulated/floor/plasteel,/area/research_outpost/gearstore)
"nA" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/research_outpost/maint)
"nB" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plating,/area/research_outpost/maint)
@@ -1385,7 +1385,7 @@
"AH" = (/obj/machinery/hologram/holopad,/obj/machinery/firealarm{pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters{name = "Mining Station Break Room"})
"AI" = (/obj/machinery/power/apc{dir = 1; name = "Mining Station Break Room APC"; pixel_x = 1; pixel_y = 25},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters{name = "Mining Station Break Room"})
"AJ" = (/obj/machinery/alarm{pixel_y = 25},/obj/structure/closet/crate/bin{name = "Garbage bin"},/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters{name = "Mining Station Break Room"})
-"AK" = (/obj/structure/flora/kirbyplants,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters{name = "Mining Station Break Room"})
+"AK" = (/obj/item/weapon/twohanded/required/kirbyplants,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters{name = "Mining Station Break Room"})
"AL" = (/obj/machinery/door/firedoor,/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/mine/living_quarters{name = "Mining Station Break Room"})
"AM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/mine/lobby)
"AN" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/mine/lobby)
diff --git a/_maps/map_files/cyberiad/z6.dmm b/_maps/map_files/cyberiad/z6.dmm
index 104c590cccc..84dd4bfbd99 100644
--- a/_maps/map_files/cyberiad/z6.dmm
+++ b/_maps/map_files/cyberiad/z6.dmm
@@ -127,7 +127,7 @@
"cw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/wall,/area/derelict/bridge/access)
"cx" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
"cy" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/solar/derelict_starboard)
-"cz" = (/turf/simulated/shuttle/wall{icon_state = "swall_s6"; dir = 2},/area/space)
+"cz" = (/turf/space,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swall_f6"; tag = "icon-swall_f6"},/area/space)
"cA" = (/turf/simulated/floor/plating,/area/derelict/bridge/access)
"cB" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge/access)
"cC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/derelict/bridge/access)
@@ -648,7 +648,7 @@
"mx" = (/obj/structure/table,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot)
"my" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/engine,/area/syndicate_depot)
"mz" = (/turf/simulated/floor/engine,/area/syndicate_depot)
-"mA" = (/obj/structure/closet/crate{name = "munitions crate"},/obj/item/weapon/storage/box/donkpockets,/obj/item/ammo_box/magazine/m762,/obj/item/weapon/gun/projectile/automatic/m90,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot)
+"mA" = (/obj/structure/closet/crate{name = "munitions crate"},/obj/item/weapon/storage/box/donkpockets,/obj/item/ammo_box/magazine/mm556x45,/obj/item/weapon/gun/projectile/automatic/m90,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot)
"mB" = (/obj/machinery/door/window{base_state = "right"; dir = 8; icon_state = "right"; name = "Telepad"; req_access_txt = "0"},/turf/simulated/floor/engine,/area/syndicate_depot)
"mC" = (/obj/machinery/telepad,/turf/simulated/floor/engine,/area/syndicate_depot)
"mD" = (/obj/structure/closet/crate{name = "munitions crate"},/obj/item/ammo_box/magazine/m12g/dragon,/obj/item/ammo_box/magazine/m12g/dragon,/obj/item/weapon/storage/fancy/cigarettes/cigpack_syndicate,/obj/item/weapon/storage/firstaid/tactical,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/syndicate_depot)
@@ -657,10 +657,10 @@
"mG" = (/turf/simulated/mineral,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/syndicate_depot)
"mH" = (/turf/simulated/mineral,/area/space)
"mI" = (/turf/simulated/floor/plating/airless/asteroid,/area/space)
-"mJ" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s6"; icon_state = "swall_s6"; dir = 2},/area/space)
+"mJ" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/space)
"mK" = (/turf/simulated/shuttle/wall{tag = "icon-swall12"; icon_state = "swall12"; dir = 2},/area/space)
"mL" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/floor/plasteel/airless,/area/space)
-"mM" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s10"; icon_state = "swall_s10"; dir = 2},/area/space)
+"mM" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/space)
"mN" = (/turf/simulated/floor/plating/airless/asteroid,/turf/simulated/shuttle/wall{tag = "icon-swall_f9"; icon_state = "swall_f9"; dir = 2},/area/space)
"mO" = (/obj/effect/landmark/corpse/clown,/turf/simulated/floor/plasteel/airless,/area/space)
"mP" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space)
@@ -682,10 +682,7 @@
"nf" = (/obj/item/weapon/pickaxe,/turf/simulated/floor/plasteel/airless,/area/space)
"ng" = (/obj/structure/closet/crate,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/obj/item/weapon/ore/bananium,/turf/simulated/floor/plasteel/airless,/area/space)
"nh" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (WEST)"; icon_state = "propulsion_l"; dir = 8},/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (WEST)"; icon_state = "propulsion_l"; dir = 8},/turf/space,/area/space)
-"ni" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s5"; icon_state = "swall_s5"; dir = 2},/area/space)
-"nj" = (/turf/simulated/shuttle/wall{tag = "icon-swall_s9"; icon_state = "swall_s9"; dir = 2},/area/space)
"nk" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/space)
-"nl" = (/turf/simulated/shuttle/wall{icon_state = "swall_s10"; dir = 2},/area/space)
"nm" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless,/area/space)
"nn" = (/obj/item/weapon/broken_bottle,/turf/simulated/floor/plasteel/airless,/area/space)
"no" = (/turf/simulated/shuttle/wall{tag = "icon-swall11"; icon_state = "swall11"; dir = 2},/area/space)
@@ -905,20 +902,20 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacvcvcvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacznknknknlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacznknknkmJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamLnnnmncmLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamJnonpaznpnqmMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHaaaaaaaamInrnomTnsnsnqnjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacznonpaznpnqmJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHaaaaaaaamInrnomTnsnsnqmMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHaaaamHmHmHmHmHntnvnumHmHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmImImHmHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmHmHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmImIaaaamJmKmKmLmLmKmKmKmKmMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmImJmKmNmImOazazmPmPmQazmRmSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmImIaaaaczmKmKmLmLmKmKmKmKmJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmIczmKmNmImOazazmPmPmQazmRmSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmTazazazazazmUazmRmVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmHmHmWmXmYazmZmUazmUazmUmRmVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmHnaaznbazncazmOazazazmUmRmVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmHndmKneaznfazazngmPmPazmRnhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmHmHmHnimKmKmLmLmKmKmKmKnjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmHmHmHndmKmKmLmLmKmKmKmKmMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHmHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHaamHmHmHmHmHmImImHmHmHmHmHmHmHmHmHmHmHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamHmHmHmHmImImImHmHmHmHmHmHmHmHmHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index bf620aad6e3..ca293307099 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -53,3 +53,11 @@
#define AI_ON 1
#define AI_IDLE 2
#define AI_OFF 3
+
+//Gun Stuff
+ #define SAWN_INTACT 0
+ #define SAWN_OFF 1
+
+ #define WEAPON_LIGHT 0
+ #define WEAPON_MEDIUM 1
+ #define WEAPON_HEAVY 2
diff --git a/code/__DEFINES/error_handler.dm b/code/__DEFINES/error_handler.dm
new file mode 100644
index 00000000000..0c98f4a9b9f
--- /dev/null
+++ b/code/__DEFINES/error_handler.dm
@@ -0,0 +1,9 @@
+// Settings for the error handler and error viewer
+
+#define ERROR_COOLDOWN 600 // The "cooldown" time for each occurrence of a unique error
+#define ERROR_LIMIT 9 // How many occurrences before the next will silence them
+#define ERROR_MAX_COOLDOWN (ERROR_COOLDOWN * ERROR_LIMIT)
+#define ERROR_SILENCE_TIME 6000 // How long a unique error will be silenced for
+
+// How long to wait between messaging admins about occurrences of a unique error
+#define ERROR_MSG_DELAY 50
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index f57e096e0ec..915cb8816e8 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -62,11 +62,12 @@
#define HAS_TAIL 16
#define TAIL_OVERLAPPED 32
#define HAS_SKIN_TONE 64
-#define HAS_SKIN_COLOR 128
-#define HAS_MARKINGS 256
-#define TAIL_WAGGING 512
-#define NO_EYES 1024
-#define HAS_FUR 2048
+#define HAS_ICON_SKIN_TONE 128
+#define HAS_SKIN_COLOR 256
+#define HAS_MARKINGS 512
+#define TAIL_WAGGING 1024
+#define NO_EYES 2048
+#define HAS_FUR 4096
//Species Diet Flags
#define DIET_CARN 1
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 14161a5775f..1937ac3be85 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -1 +1,3 @@
-#define ismovableatom(A) istype(A, /atom/movable)
\ No newline at end of file
+#define isatom(A) istype(A, /atom)
+#define ismovableatom(A) istype(A, /atom/movable)
+#define isclient(A) istype(A, /client)
\ No newline at end of file
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index c6f2b947f4f..40e3edfcfb0 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -259,3 +259,7 @@
0.3, 0.3, 0.3, 0,\
0.3, 0.3, 0.3, 0,\
0, 0, 0, 1)
+//Gun trigger guards
+#define TRIGGER_GUARD_ALLOW_ALL -1
+#define TRIGGER_GUARD_NONE 0
+#define TRIGGER_GUARD_NORMAL 1
diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm
index 96ae9ea6281..12722c0a2bb 100644
--- a/code/__DEFINES/role_preferences.dm
+++ b/code/__DEFINES/role_preferences.dm
@@ -27,6 +27,7 @@
#define ROLE_HOG_GOD "hand of god: god" // We're prolly gonna port this one day or another
#define ROLE_HOG_CULTIST "hand of god: cultist"
#define ROLE_RAIDER "vox raider"
+#define ROLE_TRADER "trader"
#define ROLE_VAMPIRE "vampire"
#define ROLE_MUTINEER "mutineer"
// Role tags for EVERYONE!
@@ -71,4 +72,5 @@ var/global/list/special_roles = list(
ROLE_REVENANT,
ROLE_GUARDIAN,
ROLE_MORPH,
+ ROLE_TRADER,
)
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index 36bb824e642..a8c548bdd7a 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -46,6 +46,14 @@
if(S.flags & IS_WHITELISTED)
whitelisted_species += S.name
+ paths = subtypesof(/datum/emote)
+ for(var/T in paths)
+ var/datum/emote/E = new T
+ if(istype(T, /datum/emote/custom))
+ continue
+ emotes += E
+
+
init_subtypes(/datum/table_recipe, table_recipes)
return 1
diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm
index 4c2517d9617..6376ebb4215 100644
--- a/code/__HELPERS/icons.dm
+++ b/code/__HELPERS/icons.dm
@@ -167,7 +167,7 @@ mob
Output_Icon()
set name = "2. Output Icon"
- to_chat(src, "Icon is: \icon[getFlatIcon(src)]")
+ to_chat(src, "Icon is: [bicon(getFlatIcon(src))]")
Label_Icon()
set name = "3. Label Icon"
diff --git a/code/__HELPERS/logging.dm b/code/__HELPERS/logging.dm
index 09830792201..5d2427603c7 100644
--- a/code/__HELPERS/logging.dm
+++ b/code/__HELPERS/logging.dm
@@ -91,4 +91,23 @@
*/
/proc/log_startup_progress(var/message)
to_chat(world, "[message]")
- log_to_dd(message)
\ No newline at end of file
+ log_to_dd(message)
+
+// Helper procs for building detailed log lines
+
+/proc/datum_info_line(var/datum/d)
+ if(!istype(d))
+ return
+ if(!istype(d, /mob))
+ return "[d] ([d.type])"
+ var/mob/m = d
+ return "[m] ([m.ckey]) ([m.type])"
+
+/proc/atom_loc_line(var/atom/a)
+ if(!istype(a))
+ return
+ var/turf/t = get_turf(a)
+ if(istype(t))
+ return "[a.loc] ([t.x],[t.y],[t.z]) ([a.loc.type])"
+ else if(a.loc)
+ return "[a.loc] (0,0,0) ([a.loc.type])"
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 3d1648fa77a..9657f867b5a 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -100,27 +100,42 @@ proc/random_name(gender, species = "Human")
else
return current_species.get_random_name(gender)
-proc/random_skin_tone()
- switch(pick(60;"caucasian", 15;"afroamerican", 10;"african", 10;"latino", 5;"albino"))
- if("caucasian") . = -10
- if("afroamerican") . = -115
- if("african") . = -165
- if("latino") . = -55
- if("albino") . = 34
- else . = rand(-185,34)
- return min(max( .+rand(-25, 25), -185),34)
+proc/random_skin_tone(species = "Human")
+ if(species == "Human" || species == "Drask")
+ switch(pick(60;"caucasian", 15;"afroamerican", 10;"african", 10;"latino", 5;"albino"))
+ if("caucasian") . = -10
+ if("afroamerican") . = -115
+ if("african") . = -165
+ if("latino") . = -55
+ if("albino") . = 34
+ else . = rand(-185, 34)
+ return min(max(. + rand(-25, 25), -185), 34)
+ else if(species == "Vox")
+ . = rand(1, 6)
+ return .
-proc/skintone2racedescription(tone)
- switch (tone)
- if(30 to INFINITY) return "albino"
- if(20 to 30) return "pale"
- if(5 to 15) return "light skinned"
- if(-10 to 5) return "white"
- if(-25 to -10) return "tan"
- if(-45 to -25) return "darker skinned"
- if(-65 to -45) return "brown"
- if(-INFINITY to -65) return "black"
- else return "unknown"
+proc/skintone2racedescription(tone, species = "Human")
+ if(species == "Human")
+ switch (tone)
+ if(30 to INFINITY) return "albino"
+ if(20 to 30) return "pale"
+ if(5 to 15) return "light skinned"
+ if(-10 to 5) return "white"
+ if(-25 to -10) return "tan"
+ if(-45 to -25) return "darker skinned"
+ if(-65 to -45) return "brown"
+ if(-INFINITY to -65) return "black"
+ else return "unknown"
+ else if(species == "Vox")
+ switch(tone)
+ if(2) return "dark green"
+ if(3) return "brown"
+ if(4) return "gray"
+ if(5) return "emerald"
+ if(6) return "azure"
+ else return "green"
+ else
+ return "unknown"
proc/age2agedescription(age)
switch(age)
diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm
index be0b6bbf245..0ac3da3a10a 100644
--- a/code/__HELPERS/names.dm
+++ b/code/__HELPERS/names.dm
@@ -239,7 +239,7 @@ var/syndicate_code_response//Code response for traitors.
set name = "Generate Code Phrase"
set category = "Debug"
- to_chat(world, "\red Code Phrase is: \black [generate_code_phrase()]")
+ to_chat(world, "Code Phrase is: [generate_code_phrase()]")
return
diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index 59784a357e0..0aa9589c510 100644
--- a/code/__HELPERS/text.dm
+++ b/code/__HELPERS/text.dm
@@ -371,4 +371,22 @@ proc/checkhtml(var/t)
//If you have a problem with sanitize() in chat, when quotes and >, < are displayed as html entites -
//this is a problem of double-encode(when & becomes &), use sanitize() with encode=0, but not the sanitizeSafe()!
/proc/sanitizeSafe(var/input, var/max_length = MAX_MESSAGE_LEN, var/encode = 1, var/trim = 1, var/extra = 1)
- return sanitize(replace_characters(input, list(">"=" ","<"=" ", "\""="'")), max_length, encode, trim, extra)
\ No newline at end of file
+ return sanitize(replace_characters(input, list(">"=" ","<"=" ", "\""="'")), max_length, encode, trim, extra)
+
+
+//Replaces \red \blue \green \b etc with span classes for to_chat
+/proc/replace_text_macro(match, code, rest)
+ var/regex/text_macro = new("(\\xFF.)(.*)$")
+ switch(code)
+ if("\red")
+ return "[text_macro.Replace(rest, /proc/replace_text_macro)]"
+ if("\blue", "\green")
+ return "[text_macro.Replace(rest, /proc/replace_text_macro)]"
+ if("\b")
+ return "[text_macro.Replace(rest, /proc/replace_text_macro)]"
+ else
+ return text_macro.Replace(rest, /proc/replace_text_macro)
+
+/proc/macro2html(text)
+ var/static/regex/text_macro = new("(\\xFF.)(.*)$")
+ return text_macro.Replace(text, /proc/replace_text_macro)
\ No newline at end of file
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index ff4ee54b2e9..5ef6646e8cc 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -248,7 +248,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
var/pressure = air_contents.return_pressure()
var/total_moles = air_contents.total_moles()
- to_chat(user, "Results of analysis of \icon[icon] [target].")
+ to_chat(user, "Results of analysis of [bicon(icon)] [target].")
if(total_moles>0)
var/o2_concentration = air_contents.oxygen/total_moles
var/n2_concentration = air_contents.nitrogen/total_moles
@@ -1733,10 +1733,6 @@ var/global/list/g_fancy_list_of_types = null
matches[key] = value
return matches
-// Use this to send to a client's chat, no exceptions (except this proc itself).
-/proc/to_chat(var/thing, var/output)
- thing << output
-
//Key thing that stops lag. Cornerstone of performance in ss13, Just sitting here, in unsorted.dm.
/proc/stoplag()
. = 1
diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm
index b6dc1c58b8f..e1e8b818356 100644
--- a/code/_globalvars/lists/mobs.dm
+++ b/code/_globalvars/lists/mobs.dm
@@ -4,6 +4,7 @@ var/global/list/all_languages[0]
var/global/list/language_keys[0] // Table of say codes for all languages
var/global/list/all_superheroes[0]
var/global/list/all_nations[0]
+var/global/list/emotes[0]
var/global/list/whitelisted_species = list()
var/list/clients = list() //list of all clients
diff --git a/code/_onclick/_defines.dm b/code/_onclick/_defines.dm
index 3c76c35e807..a02a1f43590 100644
--- a/code/_onclick/_defines.dm
+++ b/code/_onclick/_defines.dm
@@ -1 +1,3 @@
-#define CLICKCATCHER_PLANE -99
\ No newline at end of file
+#define CLICKCATCHER_PLANE -99
+
+#define HUD_PLANE 90
\ No newline at end of file
diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm
index b44ba964628..db5a0bbcd0f 100644
--- a/code/_onclick/ai.dm
+++ b/code/_onclick/ai.dm
@@ -45,7 +45,7 @@
if(modifiers["middle"])
MiddleClickOn(A)
if(controlled_mech) //Are we piloting a mech? Placed here so the modifiers are not overridden.
- controlled_mech.click_action(A, src) //Override AI normal click behavior.
+ controlled_mech.click_action(A, src, params) //Override AI normal click behavior.
return
if(modifiers["shift"])
ShiftClickOn(A)
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index d135e62ae69..fa1d696a067 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -74,7 +74,7 @@
if(!locate(/turf) in list(A,A.loc)) // Prevents inventory from being drilled
return
var/obj/mecha/M = loc
- return M.click_action(A,src)
+ return M.click_action(A, src, params)
if(restrained())
changeNext_move(CLICK_CD_HANDCUFFED) //Doing shit in cuffs shall be vey slow
@@ -167,9 +167,8 @@
animals lunging, etc.
*/
/mob/proc/RangedAttack(var/atom/A, var/params)
- if(ishuman(src) && (istype(src:gloves, /obj/item/clothing/gloves/color/yellow/power)) && a_intent == I_HARM)
- PowerGlove(A)
- if(!mutations.len) return
+ if(!mutations.len)
+ return
if((LASER in mutations) && a_intent == I_HARM)
LaserEyes(A) // moved into a proc below
return
@@ -319,61 +318,8 @@
LE.current = T
LE.yo = U.y - T.y
LE.xo = U.x - T.x
- spawn(1)
- LE.process()
+ LE.fire()
-/mob/proc/PowerGlove(atom/A)
- return
-
-/mob/living/carbon/human/PowerGlove(atom/A)
- var/obj/item/clothing/gloves/color/yellow/power/G = src:gloves
- var/time = 100
- var/turf/T = get_turf(src)
- var/turf/U = get_turf(A)
- var/obj/structure/cable/cable = locate() in T
- if(!cable || !istype(cable))
- to_chat(src, "There is no cable here to power the gloves.")
- return
- if(world.time < G.next_shock)
- to_chat(src, "[G] aren't ready to shock again!")
- return
- src.visible_message("[name] fires an arc of electricity!", \
- "You fire an arc of electricity!", \
- "You hear the loud crackle of electricity!")
- var/datum/powernet/PN = cable.get_powernet()
- var/available = 0
- var/obj/item/projectile/beam/lightning/L = new /obj/item/projectile/beam/lightning/(get_turf(src))
- if(PN)
- available = PN.avail
- L.damage = PN.get_electrocute_damage()
- if(available >= 5000000)
- L.damage = 205
- if(L.damage >= 200)
- time = 200
- else if(L.damage >= 100)
- time = 150
- var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
- s.set_up(5, 1, src)
- s.start()
- if(L.damage <= 0)
- qdel(L)
- if(L)
- playsound(get_turf(src), 'sound/effects/eleczap.ogg', 75, 1)
- L.tang = L.adjustAngle(get_angle(U,T))
- L.icon = midicon
- L.icon_state = "[L.tang]"
- L.firer = usr
- L.def_zone = get_organ_target()
- L.original = src
- L.current = U
- L.starting = U
- L.yo = U.y - T.y
- L.xo = U.x - T.x
- spawn( 1 )
- L.process()
-
- next_move = world.time + 12
- G.next_shock = world.time + time
// Simple helper to face what you clicked on, in case it should be needed in more than one place
/mob/proc/face_atom(var/atom/A)
@@ -419,4 +365,4 @@
else
var/turf/T = screen_loc2turf(modifiers["screen-loc"], get_turf(usr))
T.Click(location, control, params)
- return 1
\ No newline at end of file
+ return 1
diff --git a/code/_onclick/click_override.dm b/code/_onclick/click_override.dm
index 092398ee174..d37b7368b8f 100644
--- a/code/_onclick/click_override.dm
+++ b/code/_onclick/click_override.dm
@@ -40,4 +40,29 @@
newObject.loc = get_turf(A)
to_chat(user, "You release the power you had stored up, summoning \a [newObject.name]! ")
usr.loc.visible_message("[user] waves \his hand and summons \a [newObject.name]")
- ..()
\ No newline at end of file
+ ..()
+
+/datum/middleClickOverride/power_gloves
+ var/last_shocked = 0
+ var/shock_delay = 120
+
+/datum/middleClickOverride/power_gloves/onClick(var/atom/A, var/mob/living/user)
+ if(user.incapacitated())
+ return
+ if(world.time < last_shocked + shock_delay)
+ to_chat(user, "The gloves are still recharging.")
+ return
+ if(!isliving(A))
+ to_chat(user, "Shocking an inanimate object would be pointless.")
+ return
+ var/mob/living/L = A
+ var/turf/T = get_turf(user)
+ var/obj/structure/cable/C = locate() in T
+ if(!C || !istype(C))
+ to_chat(user, "There is no cable here to power the gloves.")
+ return
+ user.visible_message("[user.name] fires an arc of electricity at [L]!", "You fire an arc of electricity at [L]!", "You hear the loud crackle of electricity!")
+ var/datum/powernet/PN = C.get_powernet()
+ user.Beam(L,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5)
+ electrocute_mob(L, PN, user)
+ last_shocked = world.time
diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm
index 02c5bfc2ac3..e49e99ad6b7 100644
--- a/code/_onclick/hud/hud.dm
+++ b/code/_onclick/hud/hud.dm
@@ -186,4 +186,3 @@
to_chat(usr, "Switched HUD mode. Press F12 to toggle.")
else
to_chat(usr, "This mob type does not use a HUD.")
-
diff --git a/code/_onclick/hud/robot.dm b/code/_onclick/hud/robot.dm
index 7aa9839d663..861209033af 100644
--- a/code/_onclick/hud/robot.dm
+++ b/code/_onclick/hud/robot.dm
@@ -209,6 +209,7 @@
else
A.screen_loc = "CENTER+[x]:16,SOUTH+[y]:7"
A.layer = 20
+ A.plane = HUD_PLANE
x++
if(x == 4)
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 1f0e6205200..58fb139ce33 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -10,9 +10,11 @@
name = ""
icon = 'icons/mob/screen_gen.dmi'
layer = 20
+ plane = HUD_PLANE
unacidable = 1
var/obj/master = null //A reference to the object in the slot. Grabs or items, generally.
var/datum/hud/hud = null
+ appearance_flags = NO_CLIENT_COLOR
/obj/screen/Destroy()
master = null
diff --git a/code/_onclick/oldcode.dm b/code/_onclick/oldcode.dm
index b3f2c1dde05..89b1131a6f0 100644
--- a/code/_onclick/oldcode.dm
+++ b/code/_onclick/oldcode.dm
@@ -369,8 +369,7 @@
A.current = T
A.yo = U.y - T.y
A.xo = U.x - T.x
- spawn( 1 )
- A.process()
+ A.fire()
usr.next_move = world.time + 6
return
diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm
index ee953edac3f..50b6716c977 100644
--- a/code/_onclick/telekinesis.dm
+++ b/code/_onclick/telekinesis.dm
@@ -69,6 +69,7 @@ var/const/tk_maxrange = 15
//item_state = null
w_class = 10.0
layer = 20
+ plane = HUD_PLANE
var/last_throw = 0
var/atom/movable/focus = null
diff --git a/code/controllers/ProcessScheduler/core/process.dm b/code/controllers/ProcessScheduler/core/process.dm
index 27ba2479ae5..620dafca4ec 100644
--- a/code/controllers/ProcessScheduler/core/process.dm
+++ b/code/controllers/ProcessScheduler/core/process.dm
@@ -326,6 +326,11 @@
stat("[name]", "T#[getTicks()] | AR [averageRunTime] | LR [lastRunTime] | HR [highestRunTime] | D [cpu_defer_count]")
/datum/controller/process/proc/catchException(var/exception/e, var/thrower)
+ if(istype(e)) // Real runtimes go to the real error handler
+ // There are two newlines here, because handling desc sucks
+ e.desc = " Caught by process: [name]\n\n" + e.desc
+ world.Error(e, e_src = thrower)
+ return
var/etext = "[e]"
var/eid = "[e]" // Exception ID, for tracking repeated exceptions
var/ptext = "" // "processing..." text, for what was being processed (if known)
diff --git a/code/datums/Emote_system/emote.dm b/code/datums/Emote_system/emote.dm
new file mode 100644
index 00000000000..4f130fbf330
--- /dev/null
+++ b/code/datums/Emote_system/emote.dm
@@ -0,0 +1,587 @@
+/*******************************************************************************************************
+ Emotes
+Remember, only 1 instance of each emote is made, and used by all mobs that can access it. As such, the
+ONLY place you can safely set object variables during runtime is in New(). Otherwise override the emote.
+The only exception to this is custom emotes, which are created as needed and only last until they are finished
+VampyrBytes
+
+*******************************************************************************************************/
+#define EMOTE_COOLDOWN 20 //Time in deciseconds that the cooldown lasts
+#define HEARING_RANGE 7
+#define INVALID -1 //Using -1 as I can't see how a negative number could be a valid input
+
+/datum/emote
+ var/name = ""
+ var/desc = ""
+ var/list/commands[0] // list of commands that trigger the emote.
+ var/text = ""
+ var/selfText = "" // the version of text that you should see - eg, if text is screams, you want scream here, as You screams is bad grammer
+ var/startText = "" // if you need to put something in before [user]
+ var/selfStart = 1 // whether the start text is used in what you see
+
+ var/audible = 0
+ var/mimeText = ""
+ var/mimeSelf = "" //self version of mimeText
+ var/sound // sound file
+ var/vol = 50
+ var/muzzleAffected = 0 // whether being muzzled affects this emote
+ var/muzzledNoise = "" // if the emote is audible and you're muzzled, this is what type of noise you make (eg weak, loud).
+ var/cooldown = 0 // How long the cooldown should be on this emote. Defaults to EMOTE_COOLDOWN if not set and the emote plays a sound
+
+ var/restrained = 0 // 1 if being restrained prevents this emote
+
+ var/canTarget = 0 // 1 if the emote accepts a target
+ var/targetMob = 0 // 0 if target can be any atom, 1 if it has to be a mob,
+ var/mustTarget = 0 // 1 if the emote needs a target to work (won't get None as an option)
+ var/targetText = "at" // what goes inbetween user and target
+ var/takesNumber = 0 // 1 if the emote uses a number parameter
+
+ var/emoteSpanClass = "notice"
+ var/userSpanClass = "em"
+ var/baseLevel = 1
+ var/allowParent = 0 // 1 if you want the parent available as well as this one
+
+
+/datum/emote/New()
+ var/pathString = "[type]"
+ var/count = 0
+ for(var/i in 1 to lentext(pathString))
+ var/char = copytext(pathString, i, i+1)
+ if(char == "/")
+ count++
+ if(count == 4)
+ baseLevel = 0
+ break
+
+ if(sound && !cooldown)
+ cooldown = EMOTE_COOLDOWN
+
+ if(targetText)
+ if(!findtextEx(targetText, " ", lentext(targetText)))
+ targetText += " "
+
+/datum/emote/proc/doEmote(var/mob/user, var/command = "")
+ if(!istype(user))
+ return
+ if(cooldown)
+ if(handle_emote_CD(user))
+ return
+
+ var/message = ""
+ var/list/params[0]
+
+ params = getParams(user)
+
+ for(var/p in params)
+ if(params[p] == INVALID)
+ return
+
+ if(text)
+ message = createMessage(user, params)
+
+ if(message)
+ message = addExtras(user, params, message)
+ . = processMessage(user, params, message)
+
+ if(!doMime(user) && (!muzzleAffected || !isMuzzled(user)))
+ if(playSound(user, params))
+ . = 2
+
+ doAction(user, params)
+
+ for(var/obj/item/weapon/implant/I in user)
+ if(I.implanted)
+ I.trigger(command, user)
+
+ return
+
+// for things that the emote does that aren't text or sound based
+/datum/emote/proc/doAction(var/mob/user, var/list/params)
+ return
+
+/datum/emote/proc/getParams(var/mob/user)
+ var/list/params[0]
+
+ if(takesNumber)
+ user.set_typing_indicator(1)
+ user.hud_typing = 1
+ params["num"] = getNumber(user)
+ user.hud_typing = 0
+ user.set_typing_indicator(0)
+
+ if(canTarget)
+ user.set_typing_indicator(1)
+ user.hud_typing = 1
+ params["target"] = getTarget(user)
+ user.hud_typing = 0
+ user.set_typing_indicator(0)
+ return params
+
+// return INVALID from either of these getters if you've tested the input and it's failed
+/datum/emote/proc/getNumber(var/mob/user)
+ var/number = input("How many?", "Enter number") as null|num
+ return number
+
+/datum/emote/proc/getTarget(var/mob/user)
+ if(user.sdisabilities & BLIND || user.blinded || user.paralysis)
+ return
+ var/list/targets = list()
+ if(!mustTarget)
+ targets += "None"
+ var/target
+ if(targetMob)
+ target = getMobTarget(user, targets)
+ else
+ target = getAtomTarget(user, targets)
+ if(!target)
+ return INVALID
+ if(target == "None")
+ return
+ return target
+
+/datum/emote/proc/getMobTarget(var/mob/user, var/list/targets)
+ for(var/mob/M in view(getLoc(user)))
+ targets += M
+ var/mob/target = input("Select target", "Target Mob") as null|anything in targets
+ return target
+
+
+/datum/emote/proc/getAtomTarget(var/mob/user, var/list/targets)
+ for(var/A in oview(getLoc(user)))
+ if(ismob(A) || isobj(A) || isturf(A))
+ targets += A
+ var/atom/target = input("Select target", "Target") as null|anything in targets
+ return target
+
+// returns the reason the user can't currently do the emote
+/datum/emote/proc/prevented(var/mob/user)
+ if(user.stat == DEAD)
+ return "you are dead"
+ if(user.stat == UNCONSCIOUS)
+ return "you are unconscious"
+ if(restrained && user.restrained())
+ return "you are restrained"
+ if(isbrain(user))
+ var/mob/living/carbon/brain/brain = user
+ if(!(brain.container && istype(brain.container, /obj/item/device/mmi)))
+ return "you need to be in an mmi to do this"
+
+// return 1 if this emote can be used by this type of user
+/datum/emote/proc/available(var/mob/user)
+ return
+
+/datum/emote/proc/createMessage(var/mob/user, var/list/params)
+ if(!text)
+ return
+ var/message = ""
+
+ if(doMime(user))
+ message = mimeMessage(user, params)
+ if(message)
+ return message
+
+ if(muzzleAffected && isMuzzled(user))
+ message = muzzleMessage(user, params)
+ return message
+
+ if(checkForParams(params))
+ message = paramMessage(user, params)
+ return message
+
+ message = standardMessage(user, params)
+
+ return message
+
+/datum/emote/proc/isMuzzled(var/mob/user)
+ if(user.sdisabilities & MUTE || user.is_muzzled())
+ return 1
+ if(!isliving(user))
+ return
+ var/mob/living/L = user
+ if(L.silent)
+ return 1
+
+/datum/emote/proc/checkForParams(var/list/params)
+ for(var/p in params)
+ if(p == "target")
+ continue
+ return 1
+
+/datum/emote/proc/addExtras(var/mob/user, var/list/params, var/message = "")
+ if(!message)
+ return
+ if(startText)
+ message = "[startText] [message]"
+ message = addPunc(message)
+ message = "[message]"
+ return message
+
+/datum/emote/proc/addPunc(var/message = "")
+ var/regex/endingPunc = new("\[\\.!\\?\"]$")
+ if(!endingPunc.Find(message))
+ message += "."
+ return message
+
+/datum/emote/proc/standardMessage(var/mob/user, var/list/params)
+ var/message = "\The [user] [text]"
+ if("target" in params)
+ message = addTarget(user, params, message)
+ return message
+
+/datum/emote/proc/mimeMessage(var/mob/user, var/list/params)
+ if(!mimeText)
+ return
+ if(checkForParams(params))
+ return paramMimeMessage(user, params)
+ var/message = "\The [user] [mimeText]"
+ if(message && "target" in params)
+ message = addTarget(user, params, message)
+ return message
+
+/datum/emote/proc/muzzleMessage(var/mob/user, var/list/params)
+ var/message = "\The [user] makes a "
+ if(muzzledNoise)
+ message += "[muzzledNoise] "
+ message += "noise"
+ return message
+
+// if the emote takes a non target parameter, set up and return the with parameter version in here
+/datum/emote/proc/paramMessage(var/mob/user, var/list/params)
+ return
+
+// as above, but for mimes when there is mimeText
+/datum/emote/proc/paramMimeMessage(var/mob/user, var/list/params)
+ return
+
+/datum/emote/proc/addTarget(var/mob/user, var/list/params, var/message = "")
+ if(!canTarget)
+ return message
+ if(!params["target"])
+ return message
+ if(params["target"] == user)
+ message += " [targetText][getHimself(user)]"
+ return message
+ message += " [targetText]\the [params["target"]]"
+ return message
+
+
+// What you should see when you perform the emote
+/datum/emote/proc/createSelfMessage(var/mob/user, var/list/params, var/message = "")
+ if(!selfText)
+ return message
+
+ message = replacetext(message, text, selfText)
+ message = changeTextMacros(user, message)
+
+ if(mimeSelf)
+ message = replacetext(message, mimeText, mimeSelf)
+
+ if(startText && !selfStart)
+ var/start = findtextEx(message, startText)
+ var/end = start + lentext(startText) + 1
+ message = copytext(message, 1, start) + copytext(message, end, lentext(message) + 1)
+
+ message = replaceMobWithYou(user, message, user)
+
+ return message
+
+/datum/emote/proc/replaceMobWithYou(var/mob/M, var/message = "", var/mob/user) // user passed in in case an override needs to do something different if M != user (see johnny) VB
+
+ message = replacetext(message, "\The [M]", "You")
+ message = replacetext(message, "\the [M]", "you")
+
+ return message
+
+/datum/emote/proc/processMessage(var/mob/user, var/list/params, var/message = "")
+ var/visualOrAudible = audible + 1
+ if(doMime(user))
+ visualOrAudible = 1
+
+ log_emote("[user.name]/[user.key] : [message]")
+ sendToDead(user, message)
+ for(var/mob/M in getRecipients(getLoc(user, message), visualOrAudible))
+ var/msg = ""
+
+ if(M==user)
+ msg = createSelfMessage(user, params, message)
+ if(msg)
+ outputMessage(M, msg, user)
+ continue
+
+ if(M.stat == UNCONSCIOUS || (M.sleeping && M.stat != DEAD))
+ if(!visualOrAudible == 2)
+ continue
+ msg = "... You can almost hear someone talking ..."
+ outputMessage(M, msg, user)
+ continue
+
+ if(M.sdisabilities & DEAF || M.ear_deaf)
+ if(M.sdisabilities & BLIND || M.blinded || M.paralysis)
+ continue
+ if(!(M in getRecipients(user, 1)) || M.see_invisible < user.invisibility)
+ continue
+
+ msg = createDeafMessage(user, params, message)
+ if(!msg && visualOrAudible == 2)
+ continue
+ if(msg)
+ outputMessage(M, msg, user)
+ continue
+
+ if(M.sdisabilities & BLIND || M.blinded || M.paralysis || (M.see_invisible < user.invisibility && visualOrAudible == 2))
+ if(!(M in getRecipients(user, 2)))
+ continue
+
+ msg = createBlindMessage(user, params, message)
+ if(!msg && visualOrAudible == 1)
+ continue
+ if(msg)
+ outputMessage(M, msg, user)
+ continue
+
+ if(M.see_invisible < user.invisibility && visualOrAudible == 1)
+ continue
+
+ msg = message
+ outputMessage(M, msg, user)
+
+ if(visualOrAudible == 2)
+ handleListeningObjects(user, message)
+
+ return visualOrAudible
+
+/datum/emote/proc/outputMessage(var/mob/M, var/msg = "", var/mob/user)
+ msg = replaceMobWithYou(M, msg, user)
+ to_chat(M, msg)
+
+/datum/emote/proc/getLoc(var/mob/user, var/message = "")
+ var/loc = checkForHolopad(user, message)
+ if(loc)
+ return loc
+ return user
+
+/datum/emote/proc/checkForHolopad(var/mob/user, var/message = "")
+ if(!isAI(user))
+ return
+ var/mob/living/silicon/ai/AI = user
+ var/obj/machinery/hologram/holopad/T = AI.holo
+ if(!(T && T.hologram && T.master == AI))
+ return
+ if(message)
+ to_chat(AI, "Holopad action relayed, [message]")
+ return T
+
+/datum/emote/proc/handleListeningObjects(var/mob/user, var/message = "")
+ // based on say code
+ var/omsg = replacetext(message, "[user] ", "")
+ var/list/listening_obj = new
+ for(var/atom/movable/A in view(HEARING_RANGE, user))
+ if(istype(A, /mob))
+ var/mob/M = A
+ for(var/obj/O in M.contents)
+ listening_obj |= O
+ else if(istype(A, /obj))
+ var/obj/O = A
+ listening_obj |= O
+ for(var/obj/O in listening_obj)
+ O.hear_message(user, omsg)
+
+/datum/emote/proc/getRecipients(var/location, var/visualOrAudible)
+ if(visualOrAudible == 1)
+ return viewers(location)
+ return get_mobs_in_view(HEARING_RANGE, location)
+
+// set up different messages for blind people here. Empty will mean no message for
+//non-audible emotes and the standard message for audible ones
+/datum/emote/proc/createBlindMessage(var/mob/user, var/list/params, var/message)
+ if(audible && selfText)
+ message = "You hear someone [selfText]"
+ message = addExtras(message)
+ return message
+
+// set up different messages for deaf people here. Empty will mean no message for
+// audible emotes and standard for non-audible ones
+/datum/emote/proc/createDeafMessage(var/mob/user, var/list/params, var/message)
+ message = mimeMessage(user, params)
+ message = addExtras(message)
+ return message
+
+/datum/emote/proc/sendToDead(var/mob/user, var/message = "", var/ghostEmote)
+ for(var/mob/M in dead_mob_list)
+ if(!M.client || istype(M, /mob/new_player))
+ continue //skip monkeys, leavers and new players
+ if(M.stat == DEAD)
+ if(ghostEmote && ((M.client.prefs.toggles & CHAT_GHOSTSIGHT) || (M in viewers(user))))
+ M.show_message(message)
+ else if((M.client.prefs.toggles & CHAT_GHOSTSIGHT) && !(M in viewers(user)))
+ M.show_message(message)
+
+/datum/emote/proc/playSound(var/mob/user, var/list/params)
+ if(!sound)
+ return
+ playsound(user, sound, vol)
+ return 1
+
+/datum/emote/proc/doMime(var/mob/user)
+ if(mimeText && user.mind && user.mind.miming)
+ return 1
+
+//Emote Cooldown System (it's so simple!)
+/datum/emote/proc/handle_emote_CD(var/mob/user)
+ if(user.emote_cd == 2) return 1 // Cooldown emotes were disabled by an admin, prevent use
+ if(user.emote_cd == 1) return 1 // Already on CD, prevent use
+
+ user.emote_cd = 1 // Starting cooldown
+
+ spawn(cooldown)
+ if(user.emote_cd == 2) return 1 // Don't reset if cooldown emotes were disabled by an admin during the cooldown
+ user.emote_cd = 0 // Cooldown complete, ready for more!
+
+ return 0 // Proceed with emote
+//--FalseIncarnate
+
+/datum/emote/proc/changeTextMacros(var/mob/user, var/message = "")
+ message = swapHisToYour(user, message)
+ message = swapHimselfToYourself(user, message)
+ return message
+
+/datum/emote/proc/getHis(var/mob/user)
+ var/his = "[user]\his"
+ his = copytext(his, lentext("[user]") + 1)
+ return his
+
+/datum/emote/proc/swapHisToYour(var/mob/user, var/message = "")
+ var/his = getHis(user)
+ message = replacetext(message, " [his] ", " your ")
+ return message
+
+/datum/emote/proc/getHimself(var/mob/user)
+ var/himself = "[user]\himself"
+ himself = copytext(himself, lentext("[user]") + 1)
+ return himself
+
+/datum/emote/proc/swapHimselfToYourself(var/mob/user, var/message)
+ var/himself = getHimself(user)
+ message = replacetext(message, "[himself]", "yourself")
+ return message
+
+/******************************************************************************************
+ Emote Verbs
+******************************************************************************************/
+
+/datum/emote/proc/addVerbs(var/mob/user)
+ if(!istype(user))
+ return
+ new /obj/emoteVerb(user, src, commands)
+
+// Dummy object to allow access to the verb, needed as verbs require a valid loc for setting the src
+/obj/emoteVerb
+ var/datum/emote/emote
+ var/mob/owner
+
+/obj/emoteVerb/New(var/mob/user, var/datum/emote/toAccess)
+ if(!(istype(user)))
+ return
+ if(!(istype(toAccess)))
+ return
+ if(!toAccess.commands)
+ return
+ owner = user
+ emote = toAccess
+ name = "[emote]"
+ loc = user
+ user.verbs += new/obj/emoteVerb/proc/runEmote(src, emote.commands[1], emote.desc)
+
+/obj/emoteVerb/proc/runEmote()
+ set src = usr.contents
+ set category = "Emotes"
+ return usr.emoteHandler.runEmote(emote.commands[1])
+
+/obj/emoteVerb/Destroy()
+ owner.verbs -= new/obj/emoteVerb/proc/runEmote(src, emote.commands[1])
+ ..()
+
+/obj/emoteVerb/custom
+
+obj/emoteVerb/custom/New(var/mob/user)
+ if(!(istype(user)))
+ return
+ owner = user
+ name = "custom"
+ user.verbs += new/obj/emoteVerb/proc/runEmote(src, "custom", "Make your own emote")
+
+/obj/emoteVerb/custom/runEmote()
+ set src = usr.contents
+ set category = "Emotes"
+ return usr.emoteHandler.runEmote("me")
+
+
+
+/**************************************************************************************************************************
+ Custom Emotes
+As these are made as needed, they aren't searched for the appropriate one. As such, you need to specify conditions for which
+one is used in /datum/emote_handler/customEmote().
+
+***************************************************************************************************************************/
+
+/datum/emote/custom
+ name = "Custom emote"
+ baseLevel = 0
+
+/datum/emote/custom/New(var/mob/user, var/message = "", var/isAudible)
+ if(!message)
+ message = getMessage(user)
+ text = message
+ audible = isAudible
+
+/datum/emote/custom/proc/getMessage(var/mob/user)
+// user.set_typing_indicator(1)
+// user.hud_typing = 1
+ var/input = copytext(input(user,"What do you want to emote?", "Custom emote") as text|null,1,MAX_MESSAGE_LEN)
+// user.hud_typing = 0
+// user.set_typing_indicator(0)
+ input = trim_strip_html_properly(input)
+ return input
+
+/datum/emote/custom/available(var/mob/user)
+ return 1
+
+/datum/emote/custom/prevented(var/mob/user)
+ if(!user.use_me)
+ return "you are prevented from using custom emotes"
+
+// Yeah, no
+/datum/emote/custom/createSelfMessage(var/mob/user, var/list/params, var/message = "")
+ return
+
+/datum/emote/custom/replaceMobWithYou(var/mob/M, var/message = "", var/mob/user)
+ return message
+
+/datum/emote/custom/ghost
+ name = "Ghost emote"
+ startText = "DEAD: "
+ emoteSpanClass = "game deadsay"
+
+/datum/emote/custom/ghost/prevented(var/mob/user)
+ . = ..()
+ if(.)
+ return
+ if(user.client.prefs.muted & MUTE_DEADCHAT)
+ return "you are muted from deadchat"
+ if(!(user.client.prefs.toggles & CHAT_DEAD))
+ return "you have deadchat muted"
+ if(!user.client.holder)
+ if(!config.dsay_allowed)
+ return "deadchat is globally muted"
+
+/datum/emote/custom/ghost/getMessage(var/mob/user)
+ var/input = copytext(input(user,"What do you want to emote?", "Custom emote") as text|null,1,MAX_MESSAGE_LEN)
+ input = trim_strip_html_properly(input)
+ return input
+
+/datum/emote/custom/ghost/processMessage(var/mob/user, var/list/params, var/message = "")
+ if(!message)
+ return
+ log_emote("Ghost/[user.key] : [message]")
+ sendToDead(user, message, ghostEmote = 1)
+
diff --git a/code/datums/Emote_system/emote_handler.dm b/code/datums/Emote_system/emote_handler.dm
new file mode 100644
index 00000000000..be962a72dc7
--- /dev/null
+++ b/code/datums/Emote_system/emote_handler.dm
@@ -0,0 +1,90 @@
+/datum/emoteHandler
+ var/mob/owner
+ var/list/commands
+
+/datum/emoteHandler/New(var/mob/user)
+ owner = user
+ setupCommands()
+
+/datum/emoteHandler/proc/setupCommands(var/reset = 0)
+ spawn(0) // needed so at mob creation species is set before emotes are allocated
+ if(reset)
+ deleteEmoteVerbs()
+ commands = new/list()
+ for(var/e in emotes)
+ var/datum/emote/emote = e
+ if(emote.baseLevel || emote.allowParent)
+ var/datum/emote/found = searchTree(emote)
+ if(found)
+ for(var/command in found.commands)
+ commands[lowertext(command)] = found
+ found.addVerbs(owner)
+
+/datum/emoteHandler/proc/deleteEmoteVerbs()
+ for(var/obj/emoteVerb/E in owner.contents)
+ qdel(E)
+
+/datum/emoteHandler/proc/runEmote(var/command = "", var/message = "", var/audible = 0) // message and audible only used in custom emotes
+ if(!command)
+ return 0
+ if(command == "help")
+ showCommands()
+ return 1
+
+ var/datum/emote/emote
+
+ if(copytext(command, 1, 3) == "me" && !message && lentext(command) >= 4)
+ message = copytext(command, 4)
+ command = "me"
+
+ if(command == "me")
+ emote = customEmote(message, audible)
+ if(!emote)
+ return 0
+
+ if(!commands[command] && !(command == "me"))
+ to_chat(owner, "Unknown emote, please check *help for emotes available to your character")
+ return 0
+
+ if(!emote)
+ emote = commands[command]
+
+ if(!emote.available(owner)) // something's changed, remake the commands list, then try again to see if they've got a different version
+ setupCommands()
+ return runEmote(command, message, audible)
+
+ var/prevented = emote.prevented(owner)
+ if(prevented)
+ to_chat(owner, "You can't do that because [prevented]!")
+ return 0
+ return emote.doEmote(owner, command)
+
+/datum/emoteHandler/proc/showCommands()
+ var/emoteList = "Available emotes are "
+ var/commandAdded = 0
+ for(var/c in commands)
+ if(commandAdded)
+ emoteList += ", "
+ emoteList += c
+ commandAdded = 1
+
+ to_chat(owner, emoteList)
+
+// recursive search of subtypes - starts checking at the lowest level and breaks out if it finds one that can be done
+/datum/emoteHandler/proc/searchTree(var/datum/emote/emote)
+ var/list/subtypes = subtypesof(emote.type)
+ var/datum/emote/found
+ for(var/t in subtypes)
+ var/datum/emote/em = new t
+ if(em.allowParent)
+ continue
+ found = searchTree(em)
+ if(found)
+ return (found)
+ if(emote.available(owner))
+ return emote
+
+/datum/emoteHandler/proc/customEmote(var/custom, var/audible)
+ if(isobserver(owner))
+ return new /datum/emote/custom/ghost(owner, custom, audible)
+ return new /datum/emote/custom(owner, custom, audible)
diff --git a/code/datums/Emote_system/emotes.dm b/code/datums/Emote_system/emotes.dm
new file mode 100644
index 00000000000..fd17fcc3953
--- /dev/null
+++ b/code/datums/Emote_system/emotes.dm
@@ -0,0 +1,1735 @@
+
+/datum/emote/airguitar
+ name = "airguitar"
+ desc = "Makes the mob play an air guitar"
+ commands = list("airguitar")
+ text = "is strumming the air and headbanging like a safari chimp"
+ selfText = "are strumming the air and headbanging like a safari chimp"
+ restrained = 1
+
+/datum/emote/airguitar/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+ if(isrobot(user))
+ return 1
+
+/datum/emote/alarm
+ name = "alarm"
+ desc = "makes the mob sound an alarm"
+ commands = list("alarm")
+ text = "sounds an alarm"
+ selfText = "sound an alarm"
+ audible = 1
+
+/datum/emote/alarm/available(var/mob/user)
+ if(isbrain(user))
+ return 1
+
+/datum/emote/alarm/createBlindMessage(var/mob/user, var/params, var/messaage)
+ return "You hear an alarm"
+
+/datum/emote/alert
+ name = "alert"
+ desc = "Makes the mob sound an alert"
+ commands = list("alert")
+ text = "lets out a distressed noise"
+ selfText = "let out a distressed noise"
+ audible = 1
+
+/datum/emote/alert/available(var/mob/user)
+ if(isbrain(user))
+ return 1
+
+/datum/emote/beep
+ name = "beep"
+ desc = "makes the mob let out a beep"
+ commands = list("beep")
+ text = "beeps"
+ selfText = "beep"
+ audible = 1
+
+/datum/emote/beep/available(var/mob/user)
+ if(isbrain(user))
+ return 1
+
+/datum/emote/beep/targetted
+ sound = 'sound/machines/twobeep.ogg'
+ cooldown = 50
+ canTarget = 1
+ targetMob = 1
+
+/datum/emote/beep/targetted/available(var/mob/user)
+ if(user.is_mechanical())
+ return 1
+
+/datum/emote/blink
+ name = "blink"
+ desc = "Makes the mob blink"
+ commands = list("blink", "blinks")
+ text = "blinks"
+ selfText = "blink"
+
+/datum/emote/blink/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+ if(isbrain(user))
+ return 1
+
+/datum/emote/blink/rapid
+ name = "rapid blink"
+ desc = "Makes the mob blink rapidly"
+ commands = list("blink_r", "blinks_r")
+ allowParent = 1
+
+/datum/emote/blink/rapid/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/blink/rapid/standardMessage(var/mob/user)
+ var/message = ..()
+ message += " rapidly"
+ return message
+
+/datum/emote/blush
+ name = "blush"
+ desc = "Makes the mob blush"
+ commands = list("blush", "blushes")
+ text = "blushes"
+ selfText = "blush"
+
+/datum/emote/blush/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/boop
+ name = "boop"
+ desc = "Makes the mob boop"
+ commands = list("boop", "boops")
+ text = "boops"
+ selfText = "boop"
+
+/datum/emote/boop/available(var/mob/user)
+ if(isbrain(user))
+ return 1
+
+/datum/emote/bounce
+ name = "bounce"
+ desc = "Makes the mob bounce"
+ commands = list("bounce", "bounces")
+ text = "bounces in place"
+ selfText = "bounce in place"
+
+/datum/emote/bounce/available(var/mob/user)
+ if(isslime(user))
+ return 1
+
+/datum/emote/bow
+ name = "bow"
+ desc = "Makes the mob bow"
+ commands = list("bow", "bows")
+ text = "bows"
+ selfText = "bow"
+ canTarget = 1
+ targetMob = 1
+ targetText = "to"
+
+/datum/emote/bow/available(var/mob/user)
+ if(isrobot(user))
+ return 1
+ if(ishuman(user))
+ return 1
+
+/datum/emote/bow/prevented(var/mob/user)
+ . = ..()
+ if(!. && user.buckled)
+ return "you are buckled to something"
+
+/datum/emote/burp
+ name = "burp"
+ desc = "Makes the mob burp"
+ commands = list("burp", "burps")
+ text = "burps"
+ selfText = "burp"
+ audible = 1
+ mimeText = "opens their mouth rather obnoxiously"
+ mimeSelf = "open your mouth rather obnoxiously"
+ muzzleAffected = 1
+ muzzledNoise = "peculiar"
+
+/datum/emote/burp/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+ if(islarva(user) || isalienadult(user))
+ return 1
+
+/datum/emote/buzz
+ name = "buzz"
+ desc = "Makes the mob buzz"
+ commands = list("buzz", "buzzes", "buzzs")
+ text = "buzzes"
+ selfText = "buzz"
+ audible = 1
+ sound = 'sound/machines/buzz-sigh.ogg'
+ canTarget = 1
+ targetMob = 1
+
+/datum/emote/buzz/available(var/mob/user)
+ if(user.is_mechanical())
+ return 1
+
+/datum/emote/buzz/buzz2
+ name = "buzz 2"
+ desc = "makes the mob buzz in an irritated way"
+ commands = list("buzz2")
+ text = "makes an irritated buzzing sound"
+ selfText = "make an irritated buzzing sound"
+ sound = "sound/machines/buzz-two.ogg"
+ allowParent = 1
+
+/datum/emote/chirp
+ name = "chirp"
+ desc = "Makes the mob chirp"
+ commands = list("chirp", "chirps")
+ text = "chirps"
+ selfText = "chirp"
+ audible = 1
+ sound = 'sound/misc/nymphchirp.ogg'
+ vol = 40
+ cooldown = 50
+
+/datum/emote/chirp/available(var/mob/user)
+ if(istype(user, /mob/living/simple_animal/diona))
+ return 1
+
+/datum/emote/choke
+ name = "choke"
+ desc = "Makes the mob choke"
+ commands = list("choke", "chokes")
+ text = "chokes"
+ selfText = "choke"
+ audible = 1
+ mimeText = "clutches"
+ mimeSelf = "clutch"
+ muzzleAffected = 1
+ muzzledNoise = "strong"
+
+/datum/emote/choke/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+ if(islarva(user) || isalienadult(user))
+ return 1
+
+// This has to be done here not mimeText because \his will throw a compile error
+// instead of a runtime if there's not a valid target in the string *frown VB
+/datum/emote/choke/mimeMessage(var/mob/user, var/list/params)
+ var/message = "[user] [mimeText] \his throat desperately"
+ return message
+
+/datum/emote/chuckle
+ name = "chuckle"
+ desc = "chuckle"
+ commands = list("chuckle", "chuckles")
+ text = "chuckles"
+ selfText = "chuckle"
+ audible = 1
+ mimeText = "appears to chuckle"
+ mimeSelf = "appear to chuckle"
+ muzzleAffected = 1
+
+/datum/emote/chuckle/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/clap
+ name = "clap"
+ desc = "clap"
+ commands = list("clap", "claps")
+ text = "claps"
+ selfText = "clap"
+ audible = 1
+ mimeText = "claps silently"
+ restrained = 1
+
+/datum/emote/clap/available(var/mob/user)
+ if(isrobot(user))
+ return 1
+ if(ishuman(user))
+ return 1
+
+/datum/emote/collapse
+ name = "collapse"
+ desc = "Makes the mob collapse"
+ commands = list("collapse", "collapses")
+ text = "collapses"
+ selfText = "collapse"
+ audible = 1
+ mimeText = "collapses without a sound"
+
+/datum/emote/collapse/available(var/mob/user)
+ if(islarva(user))
+ return 1
+ if(ishuman(user))
+ return 1
+
+/datum/emote/collapse/doAction(var/mob/user, var/list/params)
+ user.Paralyse(2)
+
+/datum/emote/cough
+ name = "cough"
+ desc = "Makes the mob cough"
+ commands = list("cough", "coughs")
+ text = "coughs"
+ selfText = "cough"
+ audible = 1
+ mimeText = "appears to cough"
+ mimeSelf = "appear to cough"
+ muzzleAffected = 1
+ muzzledNoise = "strong"
+
+/datum/emote/cough/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/cry
+ name = "cry"
+ desc = "Makes the mob cry"
+ commands = list("cry", "cries")
+ text = "cries"
+ selfText = "cry"
+ audible = 1
+ mimeText = "cries silently"
+ muzzleAffected = 1
+ muzzledNoise = "weak"
+
+/datum/emote/cry/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/dance
+ name = "dance"
+ desc = "makes the mob dance around happily"
+ commands = list("dance", "dances")
+ text = "dances around happily"
+ selfText = "dance around happily"
+ restrained = 1
+
+/datum/emote/dance/available(var/mob/user)
+ if(islarva(user))
+ return 1
+
+/datum/emote/dap
+ name = "dap"
+ desc = "Makes the mob give daps"
+ commands = list("dap", "daps")
+ text = "gives daps"
+ selfText = "give daps"
+ restrained = 1
+ canTarget = 1
+ targetMob = 1
+ targetText = "to"
+
+/datum/emote/dap/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/dap/addTarget(var/mob/user, var/list/params, var/message = "")
+ if(!params["target"] || params["target"] == user)
+ message = "[user] sadly can't find anybody to give daps to, and daps \himself. Shameful"
+ return message
+ return ..()
+
+/datum/emote/deathgasp
+ name = "deathgasp"
+ desc = "Makes the mob let out it's final gasp"
+ commands = list("deathgasp", "deathgasps")
+ audible = 1
+
+/datum/emote/deathgasp/alien
+ text = "lets out a waning guttural screech, green blood bubbling from its maw..."
+ selfText = "let out a waning guttural screech, green blood bubbling from your maw..."
+
+/datum/emote/deathgasp/alien/available(var/mob/user)
+ if(isalienadult(user))
+ return 1
+
+// sorry, no selftext for humans as we'd have to add a var to species for it and that's yuk - VB
+/datum/emote/deathgasp/human
+ text = "dummytext"
+
+/datum/emote/deathgasp/human/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/deathgasp/human/standardMessage(var/mob/user, var/list/params)
+ var/mob/living/carbon/human/U = user
+ var/message = "\The [user] [U.species.death_message]"
+ return message
+
+/datum/emote/deathgasp/human/createSelfMessage(var/mob/user, var/list/params, var/message)
+ return message
+
+/datum/emote/deathgasp/human/replaceMobWithYou(var/mob/user, var/message)
+ return message
+
+/datum/emote/deathgasp/robot
+ text = "shudders violently for a moment, then becomes motionless, its eyes slowly darkening"
+ selfText = "shudder violently for a moment, then become motionless, your eyes slowly darkening"
+ audible = 0
+
+/datum/emote/deathgasp/robot/available(var/mob/user)
+ if(isrobot(user))
+ return 1
+
+/datum/emote/drone
+ name = "drone"
+ desc = "Makes the mob drone and rumble"
+ commands = list("drone", "drones", "rumble", "rumbles", "hum", "hums")
+ text = "rumbles"
+ selfText = "rumble"
+ audible = 1
+ sound = 'sound/voice/DraskTalk.ogg'
+ canTarget = 1
+ targetMob = 1
+
+/datum/emote/drone/available(var/mob/user)
+ if(user.get_species() == "Drask")
+ return 1
+
+/datum/emote/drone/addTarget(var/mob/user, var/list/params, var/message)
+ if(!params["target"])
+ return message
+ message = replacetext(message, "rumbles", "drones")
+ return ..()
+
+/datum/emote/drone/createSelfMessage(var/mob/user, var/list/params, var/message)
+ message = ..()
+ message = replacetext(message, "drones", "drone")
+ return message
+
+/datum/emote/drool
+ name = "drool"
+ desc = "Makes the mob drool"
+ commands = list("drool", "drools")
+ text = "drools"
+ selfText = "drool"
+
+/datum/emote/drool/available(var/mob/user)
+ if(isalienadult(user) || islarva(user))
+ return 1
+ if(ishuman(user))
+ return 1
+
+/datum/emote/eyebrow
+ name = "eyebrow"
+ desc = "Makes the mob raise an eyebrow"
+ commands = list("eyebrow")
+ text = "raises an eyebrow"
+ selfText = "raise an eyebrow"
+
+/datum/emote/eyebrow/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/faint
+ name = "faint"
+ desc = "makes the mob faint"
+ commands = list("faint", "faints")
+ text = "faints"
+ selfText = "faint"
+
+/datum/emote/faint/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/faint/doAction(var/mob/user, var/list/params)
+ if(!user.sleeping)
+ user.sleeping += 1
+
+/datum/emote/fart
+ name = "fart"
+ desc = "makes the mob fart"
+ commands = list("fart", "farts")
+ text = "farts"
+ selfText = "fart"
+ cooldown = 50
+ audible = 1
+
+/datum/emote/fart/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/fart/standardMessage(var/mob/user)
+ var/message
+
+ if(TOXIC_FARTS in user.mutations)
+ message = "\The [user] unleashes a [pick("horrible","terrible","foul","disgusting","awful")] fart"
+ return message
+ message = "\The [user] [pick("passes wind","farts")]"
+ return message
+
+/datum/emote/fart/createSelfMessage(var/mob/user, var/list/params, var/message)
+ message = ..()
+ message = replacetext(message, "unleashes", "unleash")
+ message = replacetext(message, "passes", "pass")
+ return message
+
+/datum/emote/fart/doAction(var/mob/user)
+ if(TOXIC_FARTS in user.mutations)
+ for(var/mob/M in range(get_turf(user),2))
+ if(M.internal != null && M.wear_mask && (M.wear_mask.flags & AIRTIGHT))
+ continue
+ if(M == user)
+ continue
+ M.reagents.add_reagent("jenkem", 1)
+
+ if(locate(/obj/item/weapon/storage/bible) in get_turf(user))
+ to_chat(viewers(user), "[user] farted on the Bible!")
+ to_chat(viewers(user), "A mysterious force smites [user]!")
+ var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
+ s.set_up(3, 1, user)
+ s.start()
+ user.gib()
+
+/datum/emote/flap
+ name = "flap"
+ desc = "Makes the mob flap their wings"
+ commands = list("flap", "flaps")
+ text = "flaps"
+ selfText = "flap"
+ restrained = 1
+ audible = 1
+
+/datum/emote/flap/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+ if(isrobot(user))
+ return 1
+
+/datum/emote/flap/standardMessage(var/mob/user, var/list/params)
+ var/message = "\The [user] [text] \his wings"
+ return message
+
+/datum/emote/flap/angry
+ name = "angry flap"
+ desc = "makes the mob flap their wings angrily"
+ commands = list("a_flap", "a_flaps")
+ allowParent = 1
+
+/datum/emote/flap/angry/standardMessage(var/mob/user)
+ var/message = ..()
+ message += " angrily"
+ return message
+
+/datum/emote/flash
+ name = "flash"
+ desc = "Makes the lights on the mob flash quickly"
+ commands = list("flash", "flashes")
+ text = "flash quickly"
+ selfText = "flash quickly"
+ startText = "The lights on"
+
+/datum/emote/flash/available(var/mob/user)
+ if(isbrain(user))
+ return 1
+
+/datum/emote/flip
+ name = "flip"
+ desc = "Makes the mob flip, possibly in the direction of someone"
+ commands = list("flip", "flips")
+ text = "flips"
+ selfText = "flip"
+ canTarget = 1
+ targetMob = 1
+ targetText = "in"
+
+/datum/emote/flip/available(var/mob/user)
+ if(isrobot(user))
+ return 1
+
+/datum/emote/flip/prevented(var/mob/user)
+ . = ..()
+ if(!. && user.buckled)
+ return "you are buckled to something"
+
+/datum/emote/flip/createMessage(var/mob/user, var/list/params)
+ var/message = ""
+ if(user.lying || user.weakened)
+ message = "\The [user] flops and flails around on the floor"
+ else
+ message = ..()
+ return message
+
+/datum/emote/flip/addTarget(var/mob/user, var/list/params, var/message)
+ message = ..()
+ if(params["target"])
+ message += "'s general direction"
+ return message
+
+/datum/emote/flip/createSelfMessage(var/mob/user, var/list/params, var/message)
+ message = ..()
+ message = replacetext(message, "flops", "flop")
+ message = replacetext(message, "flails", "flail")
+ return message
+
+/datum/emote/flip/doAction(var/mob/user, var/list/params, var/message)
+ if(user.lying || user.weakened)
+ return
+ user.SpinAnimation(5,1)
+
+/datum/emote/flip/flipOver
+ desc = "Makes the mob flip, possibly in the direction of, or even over someone"
+
+/datum/emote/flip/flipOver/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/flip/flipOver/createMessage(var/mob/user, var/params)
+ var/message = ""
+ var/obj/item/weapon/grab/G = user.get_active_hand()
+ if(istype(G) && G.affecting && !G.affecting.buckled)
+ params["target"] = G.affecting
+ message = "\The [user] [text] over [params["target"]]!"
+ return message
+ return ..()
+
+/datum/emote/flip/flipOver/doAction(var/mob/user, var/params, var/message)
+ var/obj/item/weapon/grab/G = user.get_active_hand()
+ if(istype(G) && (G.affecting == params["target"]) && !G.affecting.buckled)
+ var/turf/oldloc = user.loc
+ var/turf/newloc = G.affecting.loc
+ if(isturf(oldloc) && isturf(newloc))
+ user.SpinAnimation(5,1)
+ user.forceMove(newloc)
+ G.affecting.forceMove(oldloc)
+ return
+ ..()
+
+/datum/emote/frown
+ name = "frown"
+ desc = "Makes the mob frown"
+ commands = list("frown", "frowns")
+ text = "frowns"
+ selfText = "frown"
+
+/datum/emote/frown/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/gasp
+ name = "gasp"
+ desc = "Makes the mob gasp"
+ commands = list("gasp", "gasps")
+ text = "gasps"
+ selfText = "gasp"
+ audible = 1
+ mimeText = "appears to be gasping"
+ mimeSelf = "appear to be gasping"
+ muzzleAffected = 1
+ muzzledNoise = "weak"
+
+/datum/emote/gasp/available(var/mob/user)
+ if(isalienadult(user) || islarva(user))
+ return 1
+ if(ishuman(user))
+ return 1
+
+/datum/emote/giggle
+ name = "giggle"
+ desc = "Makes the mob giggle"
+ commands = list("giggle", "giggles")
+ text = "giggles"
+ selfText = "giggle"
+ audible = 1
+ mimeText = "giggles silently"
+ muzzleAffected = 1
+
+/datum/emote/giggle/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/glare
+ name = "glare"
+ desc = "Makes the mob glare"
+ commands = list("glare", "glares")
+ text = "glares"
+ selfText = "glare"
+ canTarget = 1
+ targetMob = 1
+
+/datum/emote/glare/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+ if(isrobot(user))
+ return 1
+
+/datum/emote/gnarl
+ name = "gnarl"
+ desc = "Makes the mob gnarl and show its teeth"
+ commands = list("gnarl", "gnarls")
+ text = "gnarls and shows its teeth"
+ selfText = "gnarl and show your teeth"
+ audible = 1
+ muzzleAffected = 1
+
+/datum/emote/gnarl/available(var/mob/user)
+ if(islarva(user))
+ return 1
+
+/datum/emote/grin
+ name = "grin"
+ desc = "Makes the mob grin"
+ commands = list("grin", "grins")
+ text = "grins"
+ selfText = "grin"
+
+/datum/emote/grin/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/groan
+ name = "groan"
+ desc = "Makes the mob groan"
+ commands = list("groan", "groans")
+ text = "groans"
+ selfText = "groan"
+ audible = 1
+ mimeText = "appears to groan"
+ mimeSelf = "appear to groan"
+ muzzleAffected = 1
+
+/datum/emote/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/grumble
+ name = "grumble"
+ desc = "Makes the mob grumble"
+ commands = list("grumble", "grumbles")
+ text = "grumbles"
+ selfText = "grumble"
+ audible = 1
+ mimeText = "grumbles"
+ muzzleAffected = 1
+
+/datum/emote/grumble/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/halt
+ name = "halt"
+ desc = "Makes the mob sound a halt warning. Only available with a security module"
+ commands = list("halt")
+ text = "'s speakers skreech, \"Halt! Security!\""
+ selfText = " speakers skreech, \"Halt! Security!\""
+ audible = 1
+ sound = 'sound/voice/halt.ogg'
+
+/datum/emote/halt/available(var/mob/user)
+ if(isrobot(user))
+ return 1
+
+/datum/emote/halt/prevented(var/mob/user)
+ . = ..()
+ if(.)
+ return
+ var/mob/living/silicon/robot/U = user
+ if(!(istype(U.module, /obj/item/weapon/robot_module/security)))
+ return "you are not security"
+
+/datum/emote/handshake
+ name = "handshake"
+ desc = "Makes the mob shake hands with a target"
+ commands = list("handshake")
+ text = "shakes hands"
+ selfText = "shake hands"
+ canTarget = 1
+ targetMob = 1
+ mustTarget = 1
+ targetText = "with"
+ restrained = 1
+
+/datum/emote/handshake/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/handshake/prevented(var/mob/user)
+ . = ..()
+ if(!. && user.r_hand)
+ return "you need your right hand free"
+
+/datum/emote/handshake/addTarget(var/mob/user, var/list/params, var/message)
+ var/mob/target = params["target"]
+ if(target.r_hand)
+ message = "\The [user] holds out his hand to [params["target"]]"
+ return message
+ return ..()
+
+/datum/emote/hiss
+ name = "hiss"
+ desc = "Makes the mob hiss"
+ commands = list("hiss", "hisses")
+ text = "hisses"
+ selfText = "hiss"
+ audible = 1
+
+/datum/emote/hiss/available(var/mob/user)
+ if(isalienadult(user) || islarva(user))
+ return 1
+
+/datum/emote/hug
+ name = "hug"
+ desc = "Makes the mob hug a target or themselves"
+ commands = list("hug", "hugs")
+ text = "hugs"
+ selfText = "hug"
+ canTarget = 1
+ targetMob = 1
+ targetText = ""
+
+/datum/emote/hug/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/hug/getTarget(var/mob/user)
+ var/mob/target = ..()
+ if(target)
+ return target
+ return user
+
+/datum/emote/jiggle
+ name = "jiggle"
+ desc = "Makes the mob jiggle"
+ commands = list("jiggle", "jiggles")
+ text = "jiggles"
+ selfText = "jiggle"
+
+/datum/emote/jiggle/available(var/mob/user)
+ if(isslime(user))
+ return 1
+
+/datum/emote/johnny
+ name = "johnny"
+ desc = "Yeah, just try it"
+ commands = list("johnny")
+ text = "takes a drag from a cigarette and blows their name out in smoke"
+ selfText = "take a drag from a cigarette and blow their name out in smoke"
+ audible = 1
+ mimeText = "takes a drag from a cigarette and blows"
+ mimeSelf = "take a drag from a cigarette and blow"
+ canTarget = 1
+ targetMob = 1
+ mustTarget = 1
+ targetText = ""
+
+/datum/emote/johnny/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/johnny/getTarget(var/mob/user)
+ var/mob/target = ..()
+ if(target != user)
+ return target
+ to_chat(user, "You need a target that isn't yourself")
+ return INVALID
+
+/datum/emote/johnny/createMessage(var/mob/user, var/params)
+ if(doMime(user))
+ return ..()
+ var/message = "\The [user] says \"[params["target"]], please. They had a family.\" [user] [text]"
+ return message
+
+/datum/emote/johnny/createSelfMessage(var/mob/user, var/list/params, var/message = "")
+ message = ..()
+ message = replacetext(message, "says", "say")
+ return message
+
+/datum/emote/johnny/createDeafMessage(var/mob/user, vap/list/params, var/message)
+ message = "\The [user] says something, then [text]"
+ return message
+
+/datum/emote/johnny/replaceMobWithYou(var/mob/M, var/message, var/mob/user)
+ if(user && M != user)
+ return message
+ return ..()
+
+/datum/emote/johnny/createBlindMessage(var/mob/user, var/list/params, var/message)
+ message = "You hear someone say \"[params["target"]], please, They had a family\""
+ return message
+
+/datum/emote/jump
+ name = "jump"
+ desc = "Makes the mob jump"
+ commands = list("jump", "jumps")
+ text = "jumps"
+ selfText = "jump"
+
+/datum/emote/jump/available(var/mob/user)
+ if(islarva(user) || isalienadult(user))
+ return 1
+ if(issmall(user))
+ return 1
+
+/datum/emote/laugh
+ name = "laugh"
+ desc = "Makes the mob laugh"
+ commands = list("laugh", "laughs")
+ text = "laughs"
+ selfText = "laugh"
+ audible = 1
+ mimeText = "acts out a laugh"
+ mimeSelf = "act out a laugh"
+ muzzleAffected = 1
+
+/datum/emote/laugh/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/law
+ name = "law"
+ desc = "Makes the mob prove it is the law"
+ commands = list("law")
+ text = "shows its legal authorization barcode"
+ selfText = "show your legal authorization barcode"
+ audible = 1
+ sound = 'sound/voice/biamthelaw.ogg'
+
+/datum/emote/law/available(var/mob/user)
+ if(isrobot(user))
+ return 1
+
+/datum/emote/law/prevented(var/mob/user)
+ . = ..()
+ if(.)
+ return
+ var/mob/living/silicon/robot/U = user
+ if(!(istype(U.module, /obj/item/weapon/robot_module/security)))
+ return "You are not THE LAW, pal"
+
+/datum/emote/light
+ name = "light"
+ desc = "makes the mob light up"
+ commands = list("light", "lights")
+ text = "lights up for a bit, then stops"
+ selfText = "light up for a bit, then stop"
+
+/datum/emote/light/available(var/mob/user)
+ if(isslime(user))
+ return 1
+
+/datum/emote/look
+ name = "look"
+ desc = "Makes the mob look"
+ commands = list("look", "looks")
+ text = "looks"
+ selfText = "look"
+ canTarget = 1
+ targetMob = 1
+
+/datum/emote/look/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+ if(isrobot(user))
+ return 1
+
+/datum/emote/look/addTarget(var/mob/user, var/list/params, var/message)
+ if(!params["target"])
+ message += " around"
+ return message
+ return ..()
+
+/datum/emote/moan
+ name = "moan"
+ desc = "Makes the mob moan"
+ commands = list("moan", "moans")
+ text = "moans"
+ selfText = "moan"
+ audible = 1
+
+/datum/emote/moan/available(var/mob/user)
+ if(isslime(user))
+ return 1
+ if(islarva(user))
+ return 1
+
+/datum/emote/mumble
+ name = "mumble"
+ desc = "Makes the mob mumble"
+ commands = list("mumble", "mumbles")
+ text = "mumbles"
+ selfText = "mumble"
+ audible = 1
+ mimeText = "mumbles"
+
+/datum/emote/mumble/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/no
+ name = "no"
+ desc = "Makes the mob let out a negative blip"
+ commands = list("no")
+ text = "emits a negative blip"
+ selfText = "emit a negative blip"
+ audible = 1
+ sound = 'sound/machines/synth_no.ogg'
+
+/datum/emote/no/New()
+ ..()
+ commands += "no"
+
+/datum/emote/no/available(var/mob/user)
+ if(user.is_mechanical())
+ return 1
+
+/datum/emote/nod
+ name = "nod"
+ desc = "Makes the mob nod"
+ commands = list("nod", "nods")
+ text = "nods"
+ selfText = "nod"
+
+/datum/emote/nod/available(var/mob/user)
+ if(islarva(user))
+ return 1
+ if(isrobot(user))
+ return 1
+ if(ishuman(user))
+ return 1
+
+/datum/emote/notice
+ name = "notice"
+ desc = "Makes the mob play a loud tone"
+ commands = list("notice")
+ text = "plays a loud tone"
+ selfText = "play a loud tone"
+ audible = 1
+
+/datum/emote/notice/available(var/mob/user)
+ if(isbrain(user))
+ return 1
+
+/datum/emote/pale
+ name = "pale"
+ desc = "Makes the mob go pale"
+ commands = list("pale", "pales")
+ text = "goes pale for a second"
+ selfText = "go pale for a second"
+
+/datum/emote/pale/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/ping
+ name = "ping"
+ desc = "Makes the mob ping"
+ commands = list("ping", "pings")
+ text = "pings"
+ selfText = "ping"
+ audible = 1
+ sound = 'sound/machines/ping.ogg'
+ canTarget = 1
+ targetMob = 1
+
+/datum/emote/ping/available(var/mob/user)
+ if(user.is_mechanical())
+ return 1
+
+/datum/emote/point
+ name = "point"
+ desc = "Makes the mob point"
+ commands = list("point", "points")
+ text = "points"
+ selfText = "point"
+ canTarget = 1
+
+/datum/emote/point/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/point/createMessage(var/mob/user, var/list/params)
+ if(params["target"])
+ return
+ return ..()
+
+/datum/emote/point/doAction(var/mob/user, var/list/params)
+ if(!params["target"])
+ return
+ user.pointed(params["target"])
+
+/datum/emote/quiver
+ name = "quiver"
+ desc = "Makes the mob quiver"
+ commands = list("quiver", "quivers")
+ text = "quivers"
+ selfText = "quiver"
+
+/datum/emote/quiver/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/raise
+ name = "raise"
+ desc = "Makes the mob raise a hand"
+ commands = list("raise", "raises")
+ text = "raises a hand"
+ selfText = "raise a hand"
+ restrained = 1
+
+/datum/emote/raise/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/roar
+ name = "roar"
+ desc = "Makes the mob roar"
+ commands = list("roar", "roars")
+ text = "roars"
+ selfText = "roar"
+ audible = 1
+ muzzleAffected = 1
+ muzzledNoise = "loud"
+
+/datum/emote/roar/available(var/mob/user)
+ if(isalienadult(user))
+ return 1
+
+/datum/emote/roll
+ name = "roll"
+ desc = "Makes the mob roll"
+ commands = list("roll", "rolls")
+ text = "rolls"
+ selfText = "roll"
+
+/datum/emote/roll/available(var/mob/user)
+ if(islarva(user))
+ return 1
+ if(issmall(user))
+ return 1
+
+/datum/emote/salute
+ name = "salute"
+ desc = "Makes the mob salute"
+ commands = list("salute", "salutes")
+ text = "salutes"
+ selfText = "salute"
+ canTarget = 1
+ targetMob = 1
+ targetText = "to"
+
+/datum/emote/salute/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+ if(isrobot(user))
+ return 1
+
+/datum/emote/salute/prevented(var/mob/user)
+ . = ..()
+ if(!. && user.buckled)
+ return "you are buckled to something"
+
+/datum/emote/salute/getMobTarget(var/mob/user, var/list/targets)
+ var/mob/target = ..()
+ if(target != user)
+ return target
+
+/datum/emote/scratch
+ name = "scratch"
+ desc = "Makes the mob scratch"
+ commands = list("scratch", "scratches")
+ text = "scratches"
+ selfText = "scratch"
+ restrained = 1
+
+/datum/emote/scratch/available(var/mob/user)
+ if(islarva(user) || isalienadult(user))
+ return 1
+ if(issmall(user))
+ return 1
+
+/datum/emote/scream
+ name = "scream"
+ desc = "makes the mob scream"
+ commands = list("scream", "screams")
+ text = "screams!"
+ selfText = "scream!"
+ audible = 1
+ mimeText = "acts out a scream"
+ muzzledNoise = "very loud"
+ cooldown = 50
+ vol = 80
+
+/datum/emote/scream/createMessage(var/mob/user, var/list/params)
+ var/mob/living/carbon/human/H = user
+
+ if(istype(H))
+ return "\The [user] [H.species.scream_verb]!"
+ else
+ return ..()
+
+/datum/emote/scream/replaceMobWithYou(var/mob/M, var/message = "", var/mob/user)
+ var/mob/living/carbon/human/H = user
+
+ if(istype(H) && (H.species.scream_verb != "screams"))
+ return message
+ return ..()
+
+/datum/emote/scream/machine
+ name = "machine scream"
+ sound = 'sound/goonstation/voice/robot_scream.ogg'
+
+/datum/emote/scream/machine/available(var/mob/user)
+ if(user.is_mechanical())
+ return 1
+
+/datum/emote/scream/human
+ name = "human scream"
+
+/datum/emote/scream/human/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/scream/human/playSound(var/mob/user)
+ var/mob/living/carbon/human/H = user
+
+ if(H.gender == FEMALE)
+ playsound(H, "[H.species.female_scream_sound]", vol, 1, 0, pitch = H.get_age_pitch())
+ else
+ playsound(H, "[H.species.male_scream_sound]", vol, 1, 0, pitch = H.get_age_pitch())
+ return 1
+
+/datum/emote/scretch
+ name = "scretch"
+ desc = "makes the mob scretch" //whatever that is!
+ commands = list("scretch", "scretches")
+ text = "scretches"
+ selfText = "scretch"
+ audible = 1
+ muzzleAffected = 1
+
+/datum/emote/scretch/available(var/mob/user)
+ if(isalienadult(user) || islarva(user))
+ return 1
+
+/datum/emote/shake
+ name = "shake"
+ desc = "Makes the mob shake its head"
+ commands = list("shake", "shakes")
+ text = "shakes"
+ selfText = "shake"
+
+/datum/emote/shake/available(var/mob/user)
+ if(islarva(user))
+ return 1
+ if(ishuman(user))
+ return 1
+
+/datum/emote/shake/standardMessage(var/mob/user)
+ var/message = ..()
+ message += " [getHis(user)] head"
+ return message
+
+/datum/emote/shiver
+ name = "shiver"
+ desc = "Makes the mob shiver"
+ commands = list("shiver", "shivers")
+ text = "shivers"
+ selfText = "shiver"
+ audible = 1
+ mimeText = "shivers"
+
+/datum/emote/shiver/available(var/mob/user)
+ if(isalienadult(user) || islarva(user))
+ return 1
+ if(isslime(user))
+ return 1
+ if(ishuman(user))
+ return 1
+
+/datum/emote/shiver/createBlindMessage(var/mob/user, var/list/params, var/message)
+ message = "you hear someone's teeth chattering together"
+
+/datum/emote/shrug
+ name = "shrug"
+ desc = "Makes the mob shrug"
+ commands = list("shrug", "shrugs")
+ text = "shrugs"
+ selfText = "shrug"
+
+/datum/emote/shrug/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/sigh
+ name = "sigh"
+ desc = "Makes the mob sigh"
+ commands = list("sigh", "sighs")
+ text = "sighs"
+ selfText = "sigh"
+ audible = 1
+ mimeText = "sighs"
+ muzzleAffected = 1
+ muzzledNoise = "weak"
+
+/datum/emote/sigh/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/sign
+ name = "sign"
+ desc = "Makes the mob sign a number"
+ commands = list("sign", "signs")
+ text = "signs"
+ selfText = "sign"
+ restrained = 1
+ takesNumber = 1
+
+/datum/emote/sign/available(var/mob/user)
+ if(isalienadult(user) || islarva(user))
+ return 1
+
+/datum/emote/sign/getNumber(var/mob/user)
+ var/number = ..()
+ if(number == null)
+ to_chat(user, "You need a number to sign")
+ return INVALID
+ return number
+
+/datum/emote/sign/paramMessage(var/mob/user, var/list/params)
+ var/message = "\The [user] [text] [params["num"]]"
+ return message
+
+/datum/emote/sign/fingers
+ desc = "Makes the mob raise a number of fingers"
+ text = "raises"
+ selfText = "raise"
+
+/datum/emote/sign/fingers/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/sign/fingers/getNumber(var/mob/user)
+ var/number = ..()
+ if(number == INVALID)
+ return INVALID
+ var/fingersAvailable = 0
+ if(!user.r_hand)
+ fingersAvailable += 5
+ if(!user.l_hand)
+ fingersAvailable += 5
+ if(fingersAvailable < number)
+ to_chat(user, "You don't have enough fingers free")
+ return INVALID
+ return number
+
+/datum/emote/sign/fingers/paramMessage(var/mob/user, var/list/params)
+ var/message = "\The [user] [text] [params["num"]] finger\s" // no, we can't just add " finger\s" to the parent version because the text macro won't work then :( VB
+ return message
+
+/datum/emote/slap
+ name = "slap"
+ desc = "makes the mob slap someone"
+ commands = list("slap", "slaps")
+ text = "slaps"
+ selfText = "slap"
+ audible = 1
+ sound = 'sound/effects/snap.ogg'
+ canTarget = 1
+ targetMob = 1
+ targetText = ""
+
+/datum/emote/slap/New()
+ ..()
+ cooldown = 0
+
+/datum/emote/slap/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/slap/getMobTarget(var/mob/user, var/list/targets)
+ for(var/mob/M in view(getLoc(user), 1))
+ targets += M
+ var/mob/target = input("Select target", "Target Mob") as null|anything in targets
+ if(target == "None")
+ target = user
+ return target
+
+/datum/emote/slap/createBlindMessage(var/mob/user, var/list/params, var/message)
+ message = ..()
+ message = replacetext(message, "someone", "a")
+ return message
+
+/datum/emote/slap/doAction(var/mob/user, var/list/params)
+ if(user == params["target"])
+ var/mob/living/U = user
+ U.adjustFireLoss(4)
+
+/datum/emote/smile
+ name = "smile"
+ desc = "Makes the mob smile"
+ commands = list("smile", "smiles")
+ text = "smiles"
+ selfText = "smile"
+
+/datum/emote/smile/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/snap
+ name = "snap"
+ desc = "Makes the mob snap it's fingers"
+ commands = list("snap", "snaps")
+ text = "snaps"
+ selfText = "snap"
+ audible = 1
+ sound = 'sound/effects/fingersnap.ogg'
+
+/datum/emote/snap/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/snap/prevented(var/mob/user)
+ . = ..()
+ if(.)
+ return
+ var/mob/living/carbon/human/H = user
+ var/obj/item/organ/external/L = H.get_organ("l_hand")
+ var/obj/item/organ/external/R = H.get_organ("r_hand")
+ var/left_hand_good = 0
+ var/right_hand_good = 0
+ if(L && (!(L.status & ORGAN_DESTROYED)) && (!(L.status & ORGAN_SPLINTED)) && (!(L.status & ORGAN_BROKEN)))
+ left_hand_good = 1
+ if(R && (!(R.status & ORGAN_DESTROYED)) && (!(R.status & ORGAN_SPLINTED)) && (!(R.status & ORGAN_BROKEN)))
+ right_hand_good = 1
+
+ if(!left_hand_good && !right_hand_good)
+ return "You need at least one hand in good working order to snap your fingers"
+
+/datum/emote/snap/standardMessage(var/mob/user, var/list/params)
+ var/message = ..()
+ message += " [getHis(user)] fingers"
+ params["prob"] = prob(5)
+ if(!params["prob"])
+ return message
+ message += " right off!"
+ return message
+
+/datum/emote/snap/playSound(var/mob/user, var/list/params)
+ if(params["prob"])
+ playsound(user.loc, 'sound/effects/snap.ogg', 50, 1)
+ return 1
+ return ..()
+
+/datum/emote/snap/createBlindMessage(var/mob/user, var/list/params, var/message)
+ message = ..()
+ message += " their fingers"
+ return message
+
+/datum/emote/snap/createDeafMessage(var/mob/user, var/list/params, var/message)
+ return message
+
+/datum/emote/sneeze
+ name = "sneeze"
+ desc = "Makes the mob sneeze"
+ commands = list("sneeze", "sneezes")
+ text = "sneezes"
+ selfText = "sneeze"
+ audible = 1
+ mimeText = "sneeze"
+ muzzleAffected = 1
+ muzzledNoise = "strange"
+
+/datum/emote/sneeze/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/sniff
+ name = "sniff"
+ desc = "Makes the mob sniff"
+ commands = list("sniff", "sniffs")
+ text = "sniffs"
+ selfText = "sniff"
+ audible = 1
+ mimeText = "sniffs"
+
+/datum/emote/sniff/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/snore
+ name = "snore"
+ desc = "Makes the mob snore"
+ commands = list("snore", "snores")
+ text = "snores"
+ selfText = "snore"
+ audible = 1
+ mimeText = "sleeps soundly"
+ mimeSelf = "sleep soundly"
+ muzzleAffected = 1
+
+/datum/emote/snore/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/squish
+ name = "squish"
+ desc = "Makes the mob squish"
+ commands = list("squish", "squishes")
+ text = "squishes"
+ selfText = "squish"
+ audible = 1
+ sound = 'sound/effects/slime_squish.ogg'
+ canTarget = 1
+ targetMob = 1
+
+/datum/emote/squish/available(var/mob/user)
+ if(isslime(user))
+ return 1
+ if(ishuman(user))
+ var/mob/living/carbon/human/H = user
+ if(H.species.name == "Slime People") //Only Slime People can squish
+ return 1
+ for(var/obj/item/organ/external/L in H.organs) // if your limbs are squishy you can squish too!
+ if(L.dna.species =="Slime People")
+ return 1
+
+/datum/emote/stare
+ name = "stare"
+ desc = "Makes the mob stare"
+ commands = list("stare", "stares")
+ text = "stares"
+ selfText = "stare"
+ canTarget = 1
+ targetMob = 1
+
+/datum/emote/stare/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+ if(isrobot(user))
+ return 1
+
+/datum/emote/sulk
+ name = "sulk"
+ desc = "Makes the mob sulk"
+ commands = list("sulk", "sulks")
+ text = "sulks down sadly"
+ selfText = "sulk down sadly"
+
+/datum/emote/sulk/available(var/mob/user)
+ if(islarva(user))
+ return 1
+
+/datum/emote/sway
+ name = "sway"
+ desc = "Makes the mob sway"
+ commands = list("sway", "sways")
+ text = "sways around dizzily"
+ selfText = "sway around dizzily"
+
+/datum/emote/sway/available(var/mob/user)
+ if(islarva(user))
+ return 1
+ if(isslime(user))
+ return 1
+
+/datum/emote/tail
+ name = "tail"
+ desc = "Makes the mob wave it's tail"
+ commands = list("tail")
+ text = "waves it's tail"
+ selfText = "wave your tail"
+
+/datum/emote/tail/available(var/mob/user)
+ if(islarva(user) || isalienadult(user))
+ return 1
+ if(issmall(user))
+ return 1
+
+/datum/emote/tail/wag
+ name = "wag"
+ desc = "Makes the mob start wagging its tail"
+ commands = list("wag", "wags")
+ text = "starts"
+ selfText = "start"
+
+/datum/emote/tail/wag/available(var/mob/user)
+ if(issmall(user))
+ return
+ if(ishuman(user))
+ return 1
+
+/datum/emote/tail/wag/prevented(var/mob/user)
+ . = ..()
+ if(.)
+ return
+ var/mob/living/carbon/human/H = user
+ if(H.species.bodyflags & TAIL_WAGGING)
+ if(H.wear_suit && (H.wear_suit.flags_inv & HIDETAIL || istype(H.wear_suit, /obj/item/clothing/suit/space)))
+ return "your clothing is stopping you wag your tail"
+ return
+ if(!H.body_accessory)
+ return "you have no tail to wag!"
+ if(!H.body_accessory.try_restrictions())
+ return "your clothing is stopping you wag your tail"
+
+/datum/emote/tail/wag/standardMessage(var/mob/user, var/list/params)
+ var/message = ..()
+ message += " wagging [getHis(user)] tail"
+ return message
+
+/datum/emote/tail/wag/doAction(var/mob/user, var/list/params)
+ var/mob/living/carbon/human/H = user
+ H.start_tail_wagging(1)
+
+/datum/emote/tail/wag/stop
+ name = "swag"
+ desc = "Makes the mob stop wagging its tail"
+ commands = list("swag", "swags")
+ text = "stops"
+ selfText = "stop"
+ allowParent = 1
+
+// seemingly no way to tell if a mob is wagging it's tail! VB
+/datum/emote/tail/wag/stop/prevented(var/mob/user)
+ . = ..()
+ if(.)
+ return
+ var/mob/living/carbon/human/H = user
+ if(!(H.species.bodyflags & TAIL_WAGGING) && !H.body_accessory)
+ return "you can't stop wagging a tail you don't have!"
+
+/datum/emote/tail/wag/stop/doAction(var/mob/user, var/list/params)
+ var/mob/living/carbon/human/H = user
+ H.stop_tail_wagging(1)
+
+/datum/emote/tremble
+ name = "tremble"
+ desc = "Makes the mob tremble"
+ commands = list("tremble", "trembles")
+ text = "trembles"
+ selfText = "tremble"
+
+/datum/emote/tremble/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/twitch_s
+ name = "twitch_s"
+ desc = "Makes the mob twitch"
+ commands = list("twitch_s", "twitches_s")
+ text = "twitches"
+ selfText = "twitch"
+
+/datum/emote/twitch_s/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+ if(isrobot(user))
+ return 1
+
+/datum/emote/twitch_s/twitch
+ name = "twitch"
+ desc = "Makes the mob twitch violently"
+ commands = list("twitch", "twitches")
+ allowParent = 1
+
+/datum/emote/twitch_s/twitch/available(var/mob/user)
+ if(isslime(user))
+ return 1
+ if(islarva(user))
+ return 1
+ return ..()
+
+/datum/emote/twitch_s/twitch/standardMessage(var/mob/user, var/list/params)
+ var/message = ..()
+ message += " violently"
+ return message
+
+/datum/emote/vibrate
+ name = "vibrate"
+ desc = "Makes the mob vibrate"
+ commands = list("vibrate", "vibrates")
+ text = "vibrates"
+ selfText = "vibrate"
+
+/datum/emote/vibrate/available(var/mob/user)
+ if(isslime(user))
+ return 1
+
+/datum/emote/wave
+ name = "wave"
+ desc = "Makes the mob wave"
+ commands = list ("wave", "waves")
+ text = "waves"
+ selfText = "wave"
+
+/datum/emote/wave/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/whimper
+ name = "whimper"
+ desc = "Makes the mob whimper"
+ commands = list("whimper", "whimpers")
+ text = "whimpers"
+ selfText = "whimper"
+ audible = 1
+ mimeText = "appears hurt"
+ mimeSelf = "appear hurt"
+ muzzleAffected = 1
+
+/datum/emote/whimper/available(var/mob/user)
+ if(islarva(user) || isalienadult(user))
+ return 1
+ if(ishuman(user))
+ return 1
+
+/datum/emote/whistle
+ name = "whistle"
+ desc = "Makes the mob whistle"
+ commands = list("whistle", "whistles")
+ text = "whistles"
+ selfText = "whistle"
+ audible = 1
+
+/datum/emote/whistle/available(var/mob/user)
+ if(isbrain(user))
+ return 1
+
+/datum/emote/wink
+ name = "wink"
+ desc = "Makes the mob wink"
+ commands = list("wink", "winks")
+ text = "winks"
+ selfText = "wink"
+
+/datum/emote/wink/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/yawn
+ name = "yawn"
+ desc = "makes the mob yawn"
+ commands = list("yawn", "yawns")
+ text = "yawns"
+ selfText = "yawn"
+ audible = 1
+ mimeText = "yawns"
+ muzzleAffected = 1
+
+/datum/emote/yawn/available(var/mob/user)
+ if(ishuman(user))
+ return 1
+
+/datum/emote/yes
+ name = "yes"
+ desc = "Makes the mob let out an affirmative beep"
+ commands = list("yes")
+ text = "lets out an affirmative beep"
+ selfText = "let out an affirmative beep"
+ audible = 1
+ sound = 'sound/machines/synth_yes.ogg'
+ canTarget = 1
+ targetMob = 1
+
+/datum/emote/yes/available(var/mob/user)
+ if(user.is_mechanical())
+ return 1
\ No newline at end of file
diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm
index 062b8441a30..3cb965964b3 100644
--- a/code/datums/diseases/transformation.dm
+++ b/code/datums/diseases/transformation.dm
@@ -54,6 +54,7 @@
qdel(W)
continue
W.layer = initial(W.layer)
+ W.plane = initial(W.plane)
W.loc = affected_mob.loc
W.dropped(affected_mob)
var/mob/living/new_mob = new new_form(affected_mob.loc)
diff --git a/code/datums/helper_datums/map_template.dm b/code/datums/helper_datums/map_template.dm
index 382e96d2075..05998a708b0 100644
--- a/code/datums/helper_datums/map_template.dm
+++ b/code/datums/helper_datums/map_template.dm
@@ -62,10 +62,10 @@
/proc/preloadTemplates(path = "_maps/map_files/templates/") //see master controller setup
- var/list/filelist = flist(path)
- for(var/map in filelist)
- var/datum/map_template/T = new(path = "[path][map]", rename = "[map]")
- map_templates[T.name] = T
+ for(var/map in flist(path))
+ if(cmptext(copytext(map, length(map) - 3), ".dmm"))
+ var/datum/map_template/T = new(path = "[path][map]", rename = "[map]")
+ map_templates[T.name] = T
if(!config.disable_space_ruins) // so we don't unnecessarily clutter start-up
preloadRuinTemplates()
diff --git a/code/datums/spells/dumbfire.dm b/code/datums/spells/dumbfire.dm
index c1eb4889a93..7b5c77b7d21 100644
--- a/code/datums/spells/dumbfire.dm
+++ b/code/datums/spells/dumbfire.dm
@@ -79,8 +79,11 @@
qdel(trail)
current_loc = projectile.loc
+ var/matrix/M = new
+ M.Turn(dir2angle(projectile.dir))
+ projectile.transform = M
sleep(proj_step_delay)
if(projectile)
- qdel(projectile)
\ No newline at end of file
+ qdel(projectile)
diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm
index 247d481f1be..be25ea14f1f 100644
--- a/code/datums/supplypacks.dm
+++ b/code/datums/supplypacks.dm
@@ -234,9 +234,9 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/datum/supply_packs/security/taser
name = "Stun Guns Crate"
- contains = list(/obj/item/weapon/gun/energy/advtaser,
- /obj/item/weapon/gun/energy/advtaser,
- /obj/item/weapon/gun/energy/advtaser)
+ contains = list(/obj/item/weapon/gun/energy/gun/advtaser,
+ /obj/item/weapon/gun/energy/gun/advtaser,
+ /obj/item/weapon/gun/energy/gun/advtaser)
cost = 15
containername = "stun gun crate"
diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 08c418778a3..ad13d541d96 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -101,9 +101,9 @@ var/list/uplink_items = list()
if(istype(I,/obj/item/weapon/storage/box/) && I.contents.len>0)
for(var/atom/o in I)
- U.purchase_log += "\icon[o]"
+ U.purchase_log += "[bicon(o)]"
else
- U.purchase_log += "\icon[I]"
+ U.purchase_log += "[bicon(I)]"
//U.interact(user)
return 1
@@ -341,7 +341,7 @@ var/list/uplink_items = list()
reference = "SPI"
desc = "A small, easily concealable handgun that uses 10mm auto rounds in 8-round magazines and is compatible with suppressors."
item = /obj/item/weapon/gun/projectile/automatic/pistol
- cost = 9
+ cost = 4
/datum/uplink_item/dangerous/revolver
name = "Syndicate .357 Revolver"
@@ -410,6 +410,13 @@ var/list/uplink_items = list()
item = /obj/item/weapon/twohanded/chainsaw
cost = 13
+/datum/uplink_item/dangerous/batterer
+ name = "Mind Batterer"
+ desc = "A device that has a chance of knocking down people around you for a long amount of time. 50% chance per person. The user is unaffected. Has 5 charges."
+ reference = "BTR"
+ item = /obj/item/device/batterer
+ cost = 5
+
/datum/uplink_item/dangerous/manhacks
name = "Viscerator Delivery Grenade"
desc = "A unique grenade that deploys a swarm of viscerators upon activation, which will chase down and shred any non-operatives in the area."
@@ -605,10 +612,10 @@ var/list/uplink_items = list()
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/machinegun
- name = "Box Magazine - 7.62x51mm"
- desc = "A 50-round magazine of 7.62x51mm ammunition for use in the L6 SAW machine gun. By the time you need to use this, you'll already be on a pile of corpses."
+ name = "Box Magazine - 5.56x45mm"
+ desc = "A 50-round magazine of 5.56x45mm ammunition for use in the L6 SAW machine gun. By the time you need to use this, you'll already be on a pile of corpses."
reference = "762"
- item = /obj/item/ammo_box/magazine/m762
+ item = /obj/item/ammo_box/magazine/mm556x45
cost = 12
gamemodes = list(/datum/game_mode/nuclear)
surplus = 0
@@ -686,7 +693,7 @@ var/list/uplink_items = list()
desc = "Fitted for use on any small caliber weapon with a threaded barrel, this suppressor will silence the shots of the weapon for increased stealth and superior ambushing capability."
reference = "US"
item = /obj/item/weapon/suppressor
- cost = 3
+ cost = 1
surplus = 10
/datum/uplink_item/stealthy_weapons/pizza_bomb
@@ -1016,7 +1023,7 @@ var/list/uplink_items = list()
/datum/uplink_item/implants/uplink
name = "Uplink Implant"
- desc = "An implant injected into the body, and later activated using a bodily gesture to open an uplink with 5 telecrystals. The ability for an agent to open an uplink after their possessions have been stripped from them makes this implant excellent for escaping confinement."
+ desc = "An implant injected into the body, and later activated using a bodily gesture to open an uplink with 10 telecrystals. The ability for an agent to open an uplink after their possessions have been stripped from them makes this implant excellent for escaping confinement."
reference = "UI"
item = /obj/item/weapon/implanter/uplink
cost = 14
@@ -1213,7 +1220,7 @@ var/list/uplink_items = list()
bought_items += I.item
remaining_TC -= I.cost
- U.purchase_log += "\icon[C]"
+ U.purchase_log += "[bicon(C)]"
for(var/item in bought_items)
new item(C)
- U.purchase_log += "\icon[item]"
+ U.purchase_log += "[bicon(item)]"
diff --git a/code/datums/wires/camera.dm b/code/datums/wires/camera.dm
index d52b410b3dd..f6ffd2ed427 100644
--- a/code/datums/wires/camera.dm
+++ b/code/datums/wires/camera.dm
@@ -66,7 +66,7 @@ var/const/CAMERA_WIRE_NOTHING2 = 32
C.light_disabled = !C.light_disabled
if(CAMERA_WIRE_ALARM)
- C.visible_message("\icon[C] *beep*", "\icon[C] *beep*")
+ C.visible_message("[bicon(C)] *beep*", "[bicon(C)] *beep*")
return
/datum/wires/camera/proc/CanDeconstruct()
diff --git a/code/datums/wires/mulebot.dm b/code/datums/wires/mulebot.dm
index 30d767eef21..7b59479720d 100644
--- a/code/datums/wires/mulebot.dm
+++ b/code/datums/wires/mulebot.dm
@@ -28,15 +28,15 @@ var/const/WIRE_BEACON_RX = 256 // beacon ping recv
/datum/wires/mulebot/UpdatePulsed(var/index)
switch(index)
if(WIRE_POWER1, WIRE_POWER2)
- holder.visible_message("\blue \icon[holder] The charge light flickers.")
+ holder.visible_message("\blue [bicon(holder)] The charge light flickers.")
if(WIRE_AVOIDANCE)
- holder.visible_message("\blue \icon[holder] The external warning lights flash briefly.")
+ holder.visible_message("\blue [bicon(holder)] The external warning lights flash briefly.")
if(WIRE_LOADCHECK)
- holder.visible_message("\blue \icon[holder] The load platform clunks.")
+ holder.visible_message("\blue [bicon(holder)] The load platform clunks.")
if(WIRE_MOTOR1, WIRE_MOTOR2)
- holder.visible_message("\blue \icon[holder] The drive motor whines briefly.")
+ holder.visible_message("\blue [bicon(holder)] The drive motor whines briefly.")
else
- holder.visible_message("\blue \icon[holder] You hear a radio crackle.")
+ holder.visible_message("\blue [bicon(holder)] You hear a radio crackle.")
// HELPER PROCS
diff --git a/code/datums/wires/particle_accelerator.dm b/code/datums/wires/particle_accelerator.dm
index 948ac9dda6c..53a166a79e7 100644
--- a/code/datums/wires/particle_accelerator.dm
+++ b/code/datums/wires/particle_accelerator.dm
@@ -28,7 +28,7 @@ var/const/PARTICLE_LIMIT_POWER_WIRE = 8 // Determines how strong the PA can be.
C.interface_control = !C.interface_control
if(PARTICLE_LIMIT_POWER_WIRE)
- C.visible_message("\icon[C][C] makes a large whirring noise.")
+ C.visible_message("[bicon(C)][C] makes a large whirring noise.")
/datum/wires/particle_acc/control_box/UpdateCut(var/index, var/mended)
var/obj/machinery/particle_accelerator/control_box/C = holder
diff --git a/code/datums/wires/syndicatebomb.dm b/code/datums/wires/syndicatebomb.dm
index af084ee00f9..6feaf9221ed 100644
--- a/code/datums/wires/syndicatebomb.dm
+++ b/code/datums/wires/syndicatebomb.dm
@@ -21,17 +21,17 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
switch(index)
if(WIRE_BOOM)
if (P.active)
- P.loc.visible_message("\icon[holder] An alarm sounds! It's go-")
+ P.loc.visible_message("[bicon(holder)] An alarm sounds! It's go-")
P.timer = 0
if(WIRE_UNBOLT)
- P.loc.visible_message("\icon[holder] The bolts spin in place for a moment.")
+ P.loc.visible_message("[bicon(holder)] The bolts spin in place for a moment.")
if(WIRE_DELAY)
playsound(P.loc, 'sound/machines/chime.ogg', 30, 1)
- P.loc.visible_message("\icon[holder] The bomb chirps.")
+ P.loc.visible_message("[bicon(holder)] The bomb chirps.")
P.timer += 10
if(WIRE_PROCEED)
playsound(P.loc, 'sound/machines/buzz-sigh.ogg', 30, 1)
- P.loc.visible_message("\icon[holder] The bomb buzzes ominously!")
+ P.loc.visible_message("[bicon(holder)] The bomb buzzes ominously!")
if (P.timer >= 61) //Long fuse bombs can suddenly become more dangerous if you tinker with them
P.timer = 60
if (P.timer >= 21)
@@ -41,11 +41,11 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
if(WIRE_ACTIVATE)
if(!P.active && !P.defused)
playsound(P.loc, 'sound/machines/click.ogg', 30, 1)
- P.loc.visible_message("\icon[holder] You hear the bomb start ticking!")
+ P.loc.visible_message("[bicon(holder)] You hear the bomb start ticking!")
P.active = 1
P.icon_state = "[initial(P.icon_state)]-active[P.open_panel ? "-wires" : ""]"
else
- P.loc.visible_message("\icon[holder] The bomb seems to hesitate for a moment.")
+ P.loc.visible_message("[bicon(holder)] The bomb seems to hesitate for a moment.")
P.timer += 5
/datum/wires/syndicatebomb/UpdateCut(var/index, var/mended)
@@ -54,7 +54,7 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
if(WIRE_EXPLODE)
if(!mended)
if(P.active)
- P.loc.visible_message("\icon[holder] An alarm sounds! It's go-")
+ P.loc.visible_message("[bicon(holder)] An alarm sounds! It's go-")
P.timer = 0
else
P.defused = 1
@@ -63,15 +63,15 @@ var/const/WIRE_ACTIVATE = 16 // Will start a bombs timer if pulsed, will hint if
if(WIRE_UNBOLT)
if (!mended && P.anchored)
playsound(P.loc, 'sound/effects/stealthoff.ogg', 30, 1)
- P.loc.visible_message("\icon[holder] The bolts lift out of the ground!")
+ P.loc.visible_message("[bicon(holder)] The bolts lift out of the ground!")
P.anchored = 0
if(WIRE_PROCEED)
if(!mended && P.active)
- P.loc.visible_message("\icon[holder] An alarm sounds! It's go-")
+ P.loc.visible_message("[bicon(holder)] An alarm sounds! It's go-")
P.timer = 0
if(WIRE_ACTIVATE)
if (!mended && P.active)
- P.loc.visible_message("\icon[holder] The timer stops! The bomb has been defused!")
+ P.loc.visible_message("[bicon(holder)] The timer stops! The bomb has been defused!")
P.icon_state = "[initial(P.icon_state)]-inactive[P.open_panel ? "-wires" : ""]"
P.active = 0
P.defused = 1
\ No newline at end of file
diff --git a/code/game/area/Space Station 13 areas.dm b/code/game/area/Space Station 13 areas.dm
index 1706763b824..3ac3feb3bef 100644
--- a/code/game/area/Space Station 13 areas.dm
+++ b/code/game/area/Space Station 13 areas.dm
@@ -295,6 +295,10 @@ var/list/ghostteleportlocs = list()
name = "\improper Special Ops Shuttle"
icon_state = "shuttlered2"
+/area/shuttle/syndicate_elite
+ name = "\improper Syndicate Elite Shuttle"
+ icon_state = "shuttlered"
+
/area/shuttle/syndicate_elite/mothership
name = "\improper Syndicate Elite Shuttle"
icon_state = "shuttlered"
@@ -438,6 +442,14 @@ var/list/ghostteleportlocs = list()
name = "Syndicate Infiltrator"
icon_state = "shuttle"
+/area/shuttle/trade
+ name = "Trade Shuttle"
+ icon_state = "shuttle"
+ requires_power = 0
+
+/area/shuttle/trade/sol
+ name = "Sol Freighter"
+
/area/airtunnel1/ // referenced in airtunnel.dm:759
/area/dummy/ // Referenced in engine.dm:261
@@ -675,6 +687,14 @@ var/list/ghostteleportlocs = list()
icon_state = "southeast"
requires_power = 0
+/area/trader_station
+ name = "Trade Base"
+ icon_state = "yellow"
+ requires_power = 0
+
+/area/trader_station/sol
+ name = "Jupiter Station 6"
+
/area/vox_station/mining
name = "\improper Nearby Mining Asteroid"
icon_state = "north"
diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm
index 6071a804aa8..9ac351e6c2f 100644
--- a/code/game/asteroid.dm
+++ b/code/game/asteroid.dm
@@ -123,7 +123,7 @@ var/global/max_secret_rooms = 6
theme = "plantlab"
treasureitems = list(/obj/item/weapon/gun/energy/floragun=1,/obj/item/seeds/ambrosiadeusseed=2,/obj/item/seeds/bluespacetomatoseed=2,/obj/item/seeds/bluetomatoseed=2,
/obj/item/seeds/coffeerseed=2, /obj/item/seeds/stobaccoseed=2)
- fluffitems = list(/obj/structure/flora/kirbyplants=1,/obj/structure/table/reinforced=2,/obj/machinery/portable_atmospherics/hydroponics=1,
+ fluffitems = list(/obj/item/weapon/twohanded/required/kirbyplants=1,/obj/structure/table/reinforced=2,/obj/machinery/portable_atmospherics/hydroponics=1,
/obj/effect/glowshroom/single=2,/obj/item/weapon/reagent_containers/syringe/charcoal=2,
/obj/item/weapon/reagent_containers/glass/bottle/diethylamine=3,/obj/item/weapon/reagent_containers/glass/bottle/ammonia=3)
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index d13ce8b0bfa..557de91356a 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -187,7 +187,7 @@
else
f_name += "oil-stained [name][infix]."
- to_chat(user, "\icon[src] That's [f_name] [suffix]")
+ to_chat(user, "[bicon(src)] That's [f_name] [suffix]")
to_chat(user, desc)
if(reagents && is_open_container()) //is_open_container() isn't really the right proc for this, but w/e
diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm
index 92c894cba10..b169deeee10 100644
--- a/code/game/atoms_movable.dm
+++ b/code/game/atoms_movable.dm
@@ -331,4 +331,4 @@
/atom/movable/CanPass(atom/movable/mover, turf/target, height=1.5)
if(buckled_mob == mover)
return 1
- return ..()
\ No newline at end of file
+ return ..()
diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm
index b308d996de9..936e5ac0001 100644
--- a/code/game/data_huds.dm
+++ b/code/game/data_huds.dm
@@ -70,20 +70,40 @@
switch(health)
if(100 to INFINITY)
return "health100"
- if(70 to 100)
- return "health80"
- if(50 to 70)
- return "health60"
- if(30 to 50)
- return "health40"
- if(18 to 30)
- return "health25"
- if(5 to 18)
- return "health10"
- if(1 to 5)
+ if(93 to 100)
+ return "health93"
+ if(86 to 93)
+ return "health86"
+ if(78 to 86)
+ return "health78"
+ if(71 to 78)
+ return "health71"
+ if(64 to 71)
+ return "health64"
+ if(56 to 64)
+ return "health56"
+ if(49 to 56)
+ return "health49"
+ if(42 to 49)
+ return "health42"
+ if(35 to 42)
+ return "health35"
+ if(28 to 35)
+ return "health28"
+ if(21 to 28)
+ return "health21"
+ if(14 to 21)
+ return "health14"
+ if(7 to 14)
+ return "health7"
+ if(1 to 7)
return "health1"
- if(-99 to 0)
+ if(-50 to 1)
return "health0"
+ if(-85 to -50)
+ return "health-50"
+ if(-99 to -85)
+ return "health-85"
else
return "health-100"
return "0"
diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm
index 3a6d5066ab3..c50c04860cf 100644
--- a/code/game/dna/genes/goon_powers.dm
+++ b/code/game/dna/genes/goon_powers.dm
@@ -410,13 +410,16 @@
"You hear the flexing of powerful muscles and suddenly a crash as a body hits the floor.")
return 0
var/prevLayer = usr.layer
+ var/prevFlying = usr.flying
usr.layer = 9
+ usr.flying = 1
for(var/i=0, i<10, i++)
step(usr, usr.dir)
if(i < 5) usr.pixel_y += 8
else usr.pixel_y -= 8
sleep(1)
+ usr.flying = prevFlying
if (FAT in usr.mutations && prob(66))
usr.visible_message("\red [usr.name] crashes due to their heavy weight!")
diff --git a/code/game/dna/genes/vg_powers.dm b/code/game/dna/genes/vg_powers.dm
index 13f334c010b..08784b71a61 100644
--- a/code/game/dna/genes/vg_powers.dm
+++ b/code/game/dna/genes/vg_powers.dm
@@ -116,11 +116,24 @@
//Skin tone.
if(M.species.bodyflags & HAS_SKIN_TONE)
- var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation", "[M.s_tone]") as null|text
- if (!new_tone)
+ var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation", M.s_tone) as null|text
+ if(!new_tone)
new_tone = 35
M.s_tone = 35 - max(min(round(text2num(new_tone)), 220), 1)
+ if(M.species.bodyflags & HAS_ICON_SKIN_TONE)
+ var/prompt = "Please select skin tone: 1-[M.species.icon_skin_tones.len] ("
+ for(var/i = 1; i <= M.species.icon_skin_tones.len; i++)
+ prompt += "[i] = [M.species.icon_skin_tones[i]]"
+ if(i != M.species.icon_skin_tones.len)
+ prompt += ", "
+ prompt += ")"
+
+ var/new_tone = input(prompt, "Character Generation", M.s_tone) as null|text
+ if(!new_tone)
+ new_tone = 0
+ M.s_tone = max(min(round(text2num(new_tone)), M.species.icon_skin_tones.len), 1)
+
//Skin colour.
if(M.species.bodyflags & HAS_SKIN_COLOR)
var/new_body_colour = input("Please select body colour.", "Character Generation", rgb(M.r_skin, M.g_skin, M.b_skin)) as null|color
diff --git a/code/game/gamemodes/autotraitor/autotraitor.dm b/code/game/gamemodes/autotraitor/autotraitor.dm
index a41dcb8d583..4f785ca99aa 100644
--- a/code/game/gamemodes/autotraitor/autotraitor.dm
+++ b/code/game/gamemodes/autotraitor/autotraitor.dm
@@ -133,7 +133,7 @@
equip_traitor(newtraitor)
traitors += newtraitor.mind
- to_chat(newtraitor, "\red ATTENTION: \black It is time to pay your debt to the Syndicate...")
+ to_chat(newtraitor, "ATTENTION: It is time to pay your debt to the Syndicate...")
to_chat(newtraitor, "You are now a traitor.")
newtraitor.mind.special_role = "traitor"
var/datum/atom_hud/antag/tatorhud = huds[ANTAG_HUD_TRAITOR]
diff --git a/code/game/gamemodes/blob/overmind.dm b/code/game/gamemodes/blob/overmind.dm
index 1238adebcf5..069edaa6ecf 100644
--- a/code/game/gamemodes/blob/overmind.dm
+++ b/code/game/gamemodes/blob/overmind.dm
@@ -103,9 +103,6 @@
if(isovermind(M) || isobserver(M))
M.show_message(rendered, 2)
-/mob/camera/blob/emote(var/act,var/m_type=1,var/message = null)
- return
-
/mob/camera/blob/blob_act()
return
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index a16d120bb4d..448a4a9179d 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -334,7 +334,7 @@
//Reports player logouts//
//////////////////////////
proc/display_roundstart_logout_report()
- var/msg = "\blue Roundstart logout report\n\n"
+ var/msg = "Roundstart logout report\n\n"
for(var/mob/living/L in mob_list)
if(L.ckey)
diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm
index 83d21e8cfad..a4c4656391c 100644
--- a/code/game/gamemodes/gameticker.dm
+++ b/code/game/gamemodes/gameticker.dm
@@ -253,6 +253,7 @@ var/round_start_time = 0
cinematic.icon = 'icons/effects/station_explosion.dmi'
cinematic.icon_state = "station_intact"
cinematic.layer = 20
+ cinematic.plane = HUD_PLANE
cinematic.mouse_opacity = 0
cinematic.screen_loc = "1,0"
diff --git a/code/game/gamemodes/heist/heist.dm b/code/game/gamemodes/heist/heist.dm
index 952b43d5f37..6079a3c1a2e 100644
--- a/code/game/gamemodes/heist/heist.dm
+++ b/code/game/gamemodes/heist/heist.dm
@@ -84,7 +84,6 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
/datum/game_mode/proc/create_vox(var/datum/mind/newraider)
-
var/sounds = rand(2,8)
var/i = 0
var/newname = ""
@@ -97,10 +96,12 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
var/obj/item/organ/external/head/head_organ = vox.get_organ("head")
vox.real_name = capitalize(newname)
+ vox.dna.real_name = vox.real_name
vox.name = vox.real_name
newraider.name = vox.name
vox.age = rand(12,20)
vox.set_species("Vox")
+ vox.s_tone = rand(1, 6)
vox.languages = list() // Removing language from chargen.
vox.flavor_text = ""
vox.add_language("Vox-pidgin")
@@ -108,6 +109,16 @@ var/global/list/obj/cortical_stacks = list() //Stacks for 'leave nobody behind'
vox.add_language("Tradeband")
head_organ.h_style = "Short Vox Quills"
head_organ.f_style = "Shaved"
+ vox.change_hair_color(97, 79, 25) //Same as the species default colour.
+ vox.change_eye_color(rand(1, 255), rand(1, 255), rand(1, 255))
+ vox.underwear = "Nude"
+ vox.undershirt = "Nude"
+ vox.socks = "Nude"
+
+ // Do the initial caching of the player's body icons.
+ vox.force_update_limbs()
+ vox.update_dna()
+ vox.update_eyes()
for(var/obj/item/organ/external/limb in vox.organs)
limb.status &= ~(ORGAN_DESTROYED | ORGAN_ROBOT)
diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm
index 803a7ba0d80..3c8b96935ec 100644
--- a/code/game/gamemodes/malfunction/Malf_Modules.dm
+++ b/code/game/gamemodes/malfunction/Malf_Modules.dm
@@ -72,7 +72,7 @@ rcd light flash thingy on matter drain
if(T.z in config.station_levels)
// Increase health by 37.5% of original max, decrease delays between shots to 66%
turret.health += initial(turret.health) * 3 / 8
- turret.eprojectile = /obj/item/projectile/beam/heavylaser //Once you see it, you will know what it means to FEAR.
+ turret.eprojectile = /obj/item/projectile/beam/laser/heavylaser //Once you see it, you will know what it means to FEAR.
turret.eshot_sound = 'sound/weapons/lasercannonfire.ogg'
to_chat(src, "Turrets upgraded.")
/datum/AI_Module/large/destroy_rcd
diff --git a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
index 01260b84a34..930ec3df35d 100644
--- a/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
+++ b/code/game/gamemodes/miniantags/abduction/abduction_gear.dm
@@ -308,14 +308,7 @@
icon_state = "alienpistol"
item_state = "alienpistol"
origin_tech = "combat=5;materials=4;powerstorage=3;abductor=3"
-
-/obj/item/weapon/gun/energy/decloner/alien/special_check(user)
- if(istype(user, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = user
- if(H.get_species() != "Abductor")
- to_chat(user, "UNAUTHORIZED -- UNAUTHORIZED")
- return 0
- return 1
+ restricted_species = list("Abductor")
/obj/item/weapon/paper/abductor
name = "Dissection Guide"
@@ -631,4 +624,4 @@ Congratulations! You are now trained for xenobiology research!"}
icon_state = "abductor"
icon_closed = "abductor"
icon_opened = "abductoropen"
- material_drop = /obj/item/stack/sheet/mineral/abductor
\ No newline at end of file
+ material_drop = /obj/item/stack/sheet/mineral/abductor
diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm
index 1a0d7770a1a..91c2bddb74c 100644
--- a/code/game/gamemodes/miniantags/borer/borer.dm
+++ b/code/game/gamemodes/miniantags/borer/borer.dm
@@ -33,10 +33,7 @@
return 0
return B.host.say_understands(other, speaking)
-/mob/living/captive_brain/emote(var/message)
- return
-
-/mob/living/captive_brain/resist_borer()
+/mob/living/captive_brain/resist()
var/mob/living/simple_animal/borer/B = loc
to_chat(src, "You begin doggedly resisting the parasite's control (this will take approximately sixty seconds).")
diff --git a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
index d836511fc42..f0e0dc1a883 100644
--- a/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
+++ b/code/game/gamemodes/miniantags/revenant/revenant_abilities.dm
@@ -238,7 +238,8 @@
action_icon_state = "defile"
var/stamdamage= 25
var/toxdamage = 5
- var/confusion = 50
+ var/confusion = 20
+ var/maxconfusion = 30
/obj/effect/proc_holder/spell/aoe_turf/revenant/defile/cast(list/targets, mob/living/simple_animal/revenant/user = usr)
if(attempt_cast(user))
@@ -251,7 +252,7 @@
to_chat(human, "You suddenly feel [pick("sick and tired", "tired and confused", "nauseated", "dizzy")].")
human.adjustStaminaLoss(stamdamage)
human.adjustToxLoss(toxdamage)
- human.confused += confusion
+ human.confused = min(human.confused+confusion, maxconfusion)
new/obj/effect/overlay/temp/revenant(human.loc)
if(!istype(T, /turf/simulated/shuttle) && !istype(T, /turf/simulated/wall/rust) && !istype(T, /turf/simulated/wall/r_wall) && istype(T, /turf/simulated/wall) && prob(15))
new/obj/effect/overlay/temp/revenant(T)
@@ -281,7 +282,7 @@
name = "Malfunction"
desc = "Corrupts and damages nearby machines and mechanical objects."
charge_max = 200
- range = 4
+ range = 2
cast_amount = 45
unlock_amount = 150
action_icon_state = "malfunction"
diff --git a/code/game/gamemodes/newobjective.dm b/code/game/gamemodes/newobjective.dm
index aae6d31261a..72fa2b8dbbe 100644
--- a/code/game/gamemodes/newobjective.dm
+++ b/code/game/gamemodes/newobjective.dm
@@ -651,32 +651,7 @@ datum
return 10
else
return 20
-
-
- RCD
- steal_target = /obj/item/weapon/rcd
- explanation_text = "Steal a rapid construction device."
- weight = 20
-
- get_points(var/job)
- switch(GetRank(job))
- if(0)
- return 75
- if(1)
- return 60
- if(2)
- return 50
- if(3)
- return 30
- if(4)
- return 20
-
- get_weight(var/job)
- if(GetRank(job) == 4)
- return 10
- else
- return 20
-
+
/*burger
steal_target = /obj/item/weapon/reagent_containers/food/snacks/human/burger
diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm
index 25b3727ec3a..19d725f8677 100644
--- a/code/game/gamemodes/objective.dm
+++ b/code/game/gamemodes/objective.dm
@@ -247,10 +247,11 @@ var/list/potential_theft_objectives=subtypesof(/datum/theft_objective) \
return 1
return 0
+/datum/objective/protect/mindslave //subytpe for mindslave implants
/datum/objective/hijack
martyr_compatible = 0 //Technically you won't get both anyway.
- explanation_text = "Hijack the shuttle to ensure no loyalist Nanotrasen crew escape alive."
+ explanation_text = "Hijack the shuttle by escaping on it with no loyalist NanoTrasen crew on board and alive. Syndicate agents, other enemies of NanoTrasen, cyborgs, and pets may be allowed to escape alive."
check_completion()
if(!owner.current || owner.current.stat)
@@ -310,7 +311,7 @@ var/list/potential_theft_objectives=subtypesof(/datum/theft_objective) \
return 0
/datum/objective/block
- explanation_text = "Do not allow any organic lifeforms to escape on the shuttle alive."
+ explanation_text = "Do not allow any lifeforms, be it organic or synthetic to escape on the shuttle alive. AIs, Cyborgs, and pAIs are not considered alive."
martyr_compatible = 1
check_completion()
@@ -667,7 +668,7 @@ var/list/potential_theft_objectives=subtypesof(/datum/theft_objective) \
if(5)
target = /obj/item/weapon/gun
target_amount = 6
- loot = "six guns"
+ loot = "six guns. Tasers and other non-lethal guns are acceptable"
if(6)
target = /obj/item/weapon/gun/energy
target_amount = 4
@@ -796,12 +797,52 @@ var/list/potential_theft_objectives=subtypesof(/datum/theft_objective) \
return 1
return 0
-#define MAX_VOX_KILLS 10 //Number of kills during the round before the Inviolate is broken.
- //Would be nice to use vox-specific kills but is currently not feasible.
-var/global/vox_kills = 0 //Used to check the Inviolate.
-
/datum/objective/heist/inviolate_death
explanation_text = "Follow the Inviolate. Minimise death and loss of resources."
- check_completion()
- if(vox_kills > MAX_VOX_KILLS) return 0
- return 1
\ No newline at end of file
+ completed = 1
+
+// Traders
+
+/datum/objective/trade // Yes, I know there's no check_completion. The objectives exist only to tell the traders what to get.
+/datum/objective/trade/proc/choose_target(var/station)
+ return
+
+/datum/objective/trade/stock // Stock or spare parts.
+ var/target_rating = 1
+/datum/objective/trade/stock/choose_target(var/station)
+ var/itemname
+ switch(rand(1,8))
+ if(1)
+ target = /obj/item/weapon/stock_parts/cell
+ target_amount = 10
+ target_rating = 3
+ itemname = "ten high-capacity power cells"
+ if(2)
+ target = /obj/item/weapon/stock_parts/manipulator
+ target_amount = 20
+ itemname = "twenty micro manipulators"
+ if(3)
+ target = /obj/item/weapon/stock_parts/matter_bin
+ target_amount = 20
+ itemname = "twenty matter bins"
+ if(4)
+ target = /obj/item/weapon/stock_parts/micro_laser
+ target_amount = 15
+ itemname = "fifteen micro-lasers"
+ if(5)
+ target = /obj/item/weapon/stock_parts/capacitor
+ target_amount = 15
+ itemname = "fifteen capacitors"
+ if(6)
+ target = /obj/item/weapon/stock_parts/subspace/filter
+ target_amount = 4
+ itemname = "four hyperwave filters"
+ if(7)
+ target = /obj/item/solar_assembly
+ target_amount = 10
+ itemname = "ten solar panel assemblies"
+ if(8)
+ target = /obj/item/device/flash
+ target_amount = 6
+ itemname = "six flashes"
+ explanation_text = "We are running low on spare parts. Trade for [itemname]."
\ No newline at end of file
diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm
index 4d061d37eca..e4f7bc15657 100644
--- a/code/game/gamemodes/sandbox/h_sandbox.dm
+++ b/code/game/gamemodes/sandbox/h_sandbox.dm
@@ -64,27 +64,35 @@ datum/hSB
if(P.wear_suit)
P.wear_suit.loc = P.loc
P.wear_suit.layer = initial(P.wear_suit.layer)
+ P.wear_suit.plane = initial(P.wear_suit.plane)
P.wear_suit = null
P.wear_suit = new/obj/item/clothing/suit/space(P)
P.wear_suit.layer = 20
+ P.wear_suit.plane = HUD_PLANE
if(P.head)
P.head.loc = P.loc
P.head.layer = initial(P.head.layer)
+ P.head.plane = initial(P.head.plane)
P.head = null
P.head = new/obj/item/clothing/head/helmet/space(P)
P.head.layer = 20
+ P.head.plane = HUD_PLANE
if(P.wear_mask)
P.wear_mask.loc = P.loc
P.wear_mask.layer = initial(P.wear_mask.layer)
+ P.wear_mask.plane = initial(P.wear_mask.plane)
P.wear_mask = null
P.wear_mask = new/obj/item/clothing/mask/gas(P)
P.wear_mask.layer = 20
+ P.wear_mask.plane = HUD_PLANE
if(P.back)
P.back.loc = P.loc
P.back.layer = initial(P.back.layer)
+ P.back.plane = initial(P.back.plane)
P.back = null
P.back = new/obj/item/weapon/tank/jetpack(P)
P.back.layer = 20
+ P.back.plane = HUD_PLANE
P.internal = P.back
if("hsbmetal")
var/obj/item/stack/sheet/hsb = new/obj/item/stack/sheet/metal
diff --git a/code/game/gamemodes/steal_items.dm b/code/game/gamemodes/steal_items.dm
index fd648b05c7d..d81b50c1922 100644
--- a/code/game/gamemodes/steal_items.dm
+++ b/code/game/gamemodes/steal_items.dm
@@ -35,7 +35,7 @@
/datum/theft_objective/hoslaser
name = "the head of security's recreated antique laser gun"
- typepath = /obj/item/weapon/gun/energy/hos
+ typepath = /obj/item/weapon/gun/energy/gun/hos
protected_jobs = list("Head Of Security")
/datum/theft_objective/hand_tele
@@ -43,11 +43,6 @@
typepath = /obj/item/weapon/hand_tele
protected_jobs = list("Captain", "Research Director")
-/datum/theft_objective/rcd
- name = "a rapid-construction-device"
- typepath = /obj/item/weapon/rcd
- protected_jobs = list("Chief Engineer", "Quartermaster", "Cargo Technician", "Research Director", "Scientist", "Roboticist")
-
/datum/theft_objective/jetpack
name = "a jetpack"
typepath = /obj/item/weapon/tank/jetpack
@@ -124,6 +119,11 @@ datum/theft_objective/ai/check_special_completion(var/obj/item/device/aicard/C)
typepath = /obj/item/clothing/suit/armor/laserproof
protected_jobs = list("Head of Security", "Warden")
+/datum/theft_objective/krav
+ name = "the warden's krav maga martial arts gloves"
+ typepath = /obj/item/clothing/gloves/color/black/krav_maga/sec
+ protected_jobs = list("Head Of Security", "Warden")
+
/datum/theft_objective/number
var/min=0
var/max=0
@@ -244,4 +244,4 @@ datum/theft_objective/ai/check_special_completion(var/obj/item/device/aicard/C)
typepath = /obj/item/stack/sheet/mineral/uranium
min=10
max=30
- step=5
\ No newline at end of file
+ step=5
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index 97f2d301472..76a47e82749 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -366,10 +366,11 @@
traitor_mind.special_role = null
traitor_mind.som = null
slaved.leave_serv_hud(traitor_mind)
+ for(var/datum/objective/protect/mindslave/MS in traitor_mind.objectives)
+ traitor_mind.objectives -= MS
update_traitor_icons_removed(traitor_mind)
-// to_chat(world, "Removed [traitor_mind.current.name] from traitor shit")
- to_chat(traitor_mind.current, "\red The fog clouding your mind clears. You remember nothing from the moment you were implanted until now.(You don't remember who implanted you)")
+ to_chat(traitor_mind.current, "You are no longer a mindslave; you have complete and free control of your own faculties, once more!")
/datum/game_mode/proc/assign_exchange_role(var/datum/mind/owner)
//set faction
diff --git a/code/game/gamemodes/vampire/traitor_vamp.dm b/code/game/gamemodes/vampire/traitor_vamp.dm
index 9d4cb42b545..a5f2613dccc 100644
--- a/code/game/gamemodes/vampire/traitor_vamp.dm
+++ b/code/game/gamemodes/vampire/traitor_vamp.dm
@@ -2,12 +2,12 @@
name = "traitor+vampire"
config_tag = "traitorvamp"
traitors_possible = 3 //hard limit on traitors if scaling is turned off
+ protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Blueshield", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate", "Chaplain", "Brig Physician", "Internal Affairs Agent")
restricted_jobs = list("AI", "Cyborg")
required_players = 10
required_enemies = 1 // how many of each type are required
recommended_enemies = 3
var/protected_species_vampire = list("Machine")
- var/special_job_protection = list("Chaplain") //this must exist or else Chaplain can role for Vampire. That said, we don't want to rule out him getting traitor, either
/datum/game_mode/traitor/vampire/announce()
to_chat(world, "The current game mode is - Traitor+Vampire!")
@@ -23,8 +23,6 @@
for(var/mob/new_player/player in player_list)
if((player.mind in possible_vampires) && (player.client.prefs.species in protected_species_vampire))
possible_vampires -= player.mind
- if((player.mind in possible_vampires) && (player.mind.assigned_role in special_job_protection))
- possible_vampires -= player.mind
if(possible_vampires.len > 0)
var/datum/mind/vampire = pick(possible_vampires)
diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm
index 79d644b2132..90e49e64155 100644
--- a/code/game/gamemodes/vampire/vampire.dm
+++ b/code/game/gamemodes/vampire/vampire.dm
@@ -174,7 +174,7 @@
/datum/game_mode/proc/greet_vampire(var/datum/mind/vampire, var/you_are=1)
var/dat
if (you_are)
- dat = "\red You are a Vampire! \black"
+ dat = "You are a Vampire!
"
dat += {"To bite someone, target the head and use harm intent with an empty hand. Drink blood to gain new powers.
You are weak to holy things and starlight. Don't go into space and avoid the Chaplain, the chapel and especially Holy Water."}
to_chat(vampire.current, dat)
@@ -351,8 +351,7 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha
vampire_mind.som = null
slaved.leave_serv_hud(vampire_mind)
update_vampire_icons_removed(vampire_mind)
-// to_chat(world, "Removed [vampire_mind.current.name] from vampire shit")
- to_chat(vampire_mind.current, "\red The fog clouding your mind clears. You remember nothing from the moment you were enthralled until now.")
+ vampire_mind.current.visible_message("[vampire_mind.current] looks as though a burden has been lifted!", "The dark fog in your mind clears as you regain control of your own faculties, you are no longer a vampire thrall!")
if(vampire_mind.current.hud_used)
vampire_mind.current.hud_used.remove_vampire_hud()
diff --git a/code/game/gamemodes/vampire/vampire_powers.dm b/code/game/gamemodes/vampire/vampire_powers.dm
index bc7ba9276f5..8e04d98504b 100644
--- a/code/game/gamemodes/vampire/vampire_powers.dm
+++ b/code/game/gamemodes/vampire/vampire_powers.dm
@@ -267,6 +267,10 @@
W.destroy()
playsound(usr.loc, 'sound/effects/creepyshriek.ogg', 100, 1)
+
+/proc/isvampirethrall(mob/living/M as mob)
+ return istype(M) && M.mind && ticker && ticker.mode && (M.mind in ticker.mode.vampire_enthralled)
+
/obj/effect/proc_holder/spell/vampire/targetted/enthrall
name = "Enthrall (300)"
desc = "You use a large portion of your power to sway those loyal to none to be loyal to you only."
diff --git a/code/game/gamemodes/wizard/raginmages.dm b/code/game/gamemodes/wizard/raginmages.dm
index 32feaede2e1..645f3576edd 100644
--- a/code/game/gamemodes/wizard/raginmages.dm
+++ b/code/game/gamemodes/wizard/raginmages.dm
@@ -14,7 +14,7 @@
/datum/game_mode/wizard/raginmages/announce()
to_chat(world, "The current game mode is - Ragin' Mages!")
- to_chat(world, "The \red Space Wizard Federation\black is pissed, help defeat all the space wizards!")
+ to_chat(world, "The Space Wizard Federation is pissed, help defeat all the space wizards!")
/datum/game_mode/wizard/raginmages/greet_wizard(var/datum/mind/wizard, var/you_are=1)
diff --git a/code/game/gamemodes/wizard/rightandwrong.dm b/code/game/gamemodes/wizard/rightandwrong.dm
index eb1e8bce930..f2c10d7fc10 100644
--- a/code/game/gamemodes/wizard/rightandwrong.dm
+++ b/code/game/gamemodes/wizard/rightandwrong.dm
@@ -20,7 +20,7 @@
if(!summon_type)
switch (randomizeguns)
if("taser")
- new /obj/item/weapon/gun/energy/advtaser(get_turf(H))
+ new /obj/item/weapon/gun/energy/gun/advtaser(get_turf(H))
if("egun")
new /obj/item/weapon/gun/energy/gun(get_turf(H))
if("laser")
@@ -34,7 +34,7 @@
if("gyrojet")
new /obj/item/weapon/gun/projectile/automatic/gyropistol(get_turf(H))
if("pulse")
- new /obj/item/weapon/gun/energy/pulse_rifle(get_turf(H))
+ new /obj/item/weapon/gun/energy/pulse(get_turf(H))
if("suppressed")
new /obj/item/weapon/gun/projectile/automatic/pistol(get_turf(H))
new /obj/item/weapon/suppressor(get_turf(H))
@@ -71,7 +71,7 @@
if("turret")
new /obj/item/weapon/gun/energy/gun/turret(get_turf(H))
if("pulsecarbine")
- new /obj/item/weapon/gun/energy/pulse_rifle/carbine(get_turf(H))
+ new /obj/item/weapon/gun/energy/pulse/carbine(get_turf(H))
if("decloner")
new /obj/item/weapon/gun/energy/decloner(get_turf(H))
if("mindflayer")
diff --git a/code/game/gamemodes/wizard/soulstone.dm b/code/game/gamemodes/wizard/soulstone.dm
index 08e6117e9bd..39f59cc654e 100644
--- a/code/game/gamemodes/wizard/soulstone.dm
+++ b/code/game/gamemodes/wizard/soulstone.dm
@@ -108,16 +108,16 @@
var/mob/living/carbon/human/T = target
var/obj/item/device/soulstone/C = src
if(C.imprinted != "empty")
- to_chat(U, "\red Capture failed!: \black The soul stone has already been imprinted with [C.imprinted]'s mind!")
+ to_chat(U, "Capture failed!: The soul stone has already been imprinted with [C.imprinted]'s mind!")
else
if (T.stat == 0)
- to_chat(U, "\red Capture failed!: \black Kill or maim the victim first!")
+ to_chat(U, "Capture failed!: Kill or maim the victim first!")
else
if(T.client == null)
- to_chat(U, "\red Capture failed!: \black The soul has already fled it's mortal frame.")
+ to_chat(U, "Capture failed!: The soul has already fled it's mortal frame.")
else
if(C.contents.len)
- to_chat(U, "\red Capture failed!: \black The soul stone is full! Use or free an existing soul to make room.")
+ to_chat(U, "Capture failed!: The soul stone is full! Use or free an existing soul to make room.")
else
for(var/obj/item/W in T)
T.unEquip(W)
@@ -142,7 +142,7 @@
C.icon_state = "soulstone2"
C.name = "Soul Stone: [S.real_name]"
to_chat(S, "Your soul has been captured! You are now bound to [U.name]'s will, help them suceed in their goals at all costs.")
- to_chat(U, "\blue Capture successful!: \black [T.real_name]'s soul has been ripped from their body and stored within the soul stone.")
+ to_chat(U, "Capture successful!: [T.real_name]'s soul has been ripped from their body and stored within the soul stone.")
to_chat(U, "The soulstone has been imprinted with [S.real_name]'s mind, it will no longer react to other souls.")
C.imprinted = "[S.name]"
qdel(T)
@@ -150,13 +150,13 @@
var/mob/living/simple_animal/shade/T = target
var/obj/item/device/soulstone/C = src
if (T.stat == DEAD)
- to_chat(U, "\red Capture failed!: \black The shade has already been banished!")
+ to_chat(U, "Capture failed!: The shade has already been banished!")
else
if(C.contents.len)
- to_chat(U, "\red Capture failed!: \black The soul stone is full! Use or free an existing soul to make room.")
+ to_chat(U, "Capture failed!: The soul stone is full! Use or free an existing soul to make room.")
else
if(T.name != C.imprinted)
- to_chat(U, "\red Capture failed!: \black The soul stone has already been imprinted with [C.imprinted]'s mind!")
+ to_chat(U, "Capture failed!: The soul stone has already been imprinted with [C.imprinted]'s mind!")
else
T.loc = C //put shade in stone
T.status_flags |= GODMODE
@@ -165,7 +165,7 @@
T.faction |= "\ref[U]"
C.icon_state = "soulstone2"
to_chat(T, "Your soul has been recaptured by the soul stone, its arcane energies are reknitting your ethereal form")
- to_chat(U, "\blue Capture successful!: \black [T.name]'s has been recaptured and stored within the soul stone.")
+ to_chat(U, "Capture successful!: [T.name]'s has been recaptured and stored within the soul stone.")
if("CONSTRUCT")
var/obj/structure/constructshell/T = target
var/obj/item/device/soulstone/C = src
@@ -221,7 +221,7 @@
Z.cancel_camera()
qdel(C)
else
- to_chat(U, "\red Creation failed!: \black The soul stone is empty! Go kill someone!")
+ to_chat(U, "Creation failed!: The soul stone is empty! Go kill someone!")
return
/proc/makeNewConstruct(var/mob/living/simple_animal/construct/ctype, var/mob/target, var/mob/stoner = null, cultoverride = 0)
diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm
index 8467da489a5..8d3d7cc4278 100644
--- a/code/game/gamemodes/wizard/spellbook.dm
+++ b/code/game/gamemodes/wizard/spellbook.dm
@@ -490,14 +490,14 @@
else
to_chat(user, "You feed the contract back into the spellbook, refunding your points.")
- uses++
+ uses+=2
qdel(O)
if(istype(O, /obj/item/weapon/antag_spawner/slaughter_demon))
to_chat(user, "On second thought, maybe summoning a demon is a bad idea. You refund your points.")
- uses++
+ uses+=2
for(var/datum/spellbook_entry/item/bloodbottle/BB in entries)
if(!isnull(BB.limit))
BB.limit++
diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm
index 9caa009f2e6..6aa56d91c70 100644
--- a/code/game/gamemodes/wizard/wizard.dm
+++ b/code/game/gamemodes/wizard/wizard.dm
@@ -14,7 +14,7 @@
/datum/game_mode/wizard/announce()
to_chat(world, "The current game mode is - Wizard!")
- to_chat(world, "There is a \red SPACE WIZARD\black on the station. You can't let him achieve his objective!")
+ to_chat(world, "There is a SPACE WIZARD on the station. You can't let him achieve his objective!")
/datum/game_mode/wizard/can_start()//This could be better, will likely have to recode it later
diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm
index c7435a29df9..c1ab67a3f03 100644
--- a/code/game/jobs/access.dm
+++ b/code/game/jobs/access.dm
@@ -98,6 +98,10 @@
/var/const/access_syndicate_leader = 151//Nuke Op Leader Access
/var/const/access_vox = 152//Vox Access
+//Trade Stations
+
+var/const/access_trade_sol = 160
+
//MONEY
/var/const/access_crate_cash = 200
diff --git a/code/game/jobs/job/engineering.dm b/code/game/jobs/job/engineering.dm
index 7427ad57d23..1c736d89609 100644
--- a/code/game/jobs/job/engineering.dm
+++ b/code/game/jobs/job/engineering.dm
@@ -63,7 +63,7 @@
if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back)
if(4) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
H.equip_or_collect(new /obj/item/clothing/under/rank/engineer(H), slot_w_uniform)
- H.equip_or_collect(new /obj/item/clothing/shoes/orange(H), slot_shoes)
+ H.equip_or_collect(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
H.equip_or_collect(new /obj/item/weapon/storage/belt/utility/full(H), slot_belt)
H.equip_or_collect(new /obj/item/clothing/head/hardhat(H), slot_head)
H.equip_or_collect(new /obj/item/device/t_scanner(H), slot_r_store)
@@ -98,7 +98,7 @@
if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
if(4) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
H.equip_or_collect(new /obj/item/clothing/under/rank/atmospheric_technician(H), slot_w_uniform)
- H.equip_or_collect(new /obj/item/clothing/shoes/black(H), slot_shoes)
+ H.equip_or_collect(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
H.equip_or_collect(new /obj/item/device/pda/atmos(H), slot_wear_pda)
H.equip_or_collect(new /obj/item/weapon/storage/belt/utility/atmostech/(H), slot_belt)
if(H.backbag == 1)
@@ -128,7 +128,7 @@
if(3) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel_eng(H), slot_back)
if(4) H.equip_or_collect(new /obj/item/weapon/storage/backpack/satchel(H), slot_back)
H.equip_or_collect(new /obj/item/clothing/under/rank/mechanic(H), slot_w_uniform)
- H.equip_or_collect(new /obj/item/clothing/shoes/orange(H), slot_shoes)
+ H.equip_or_collect(new /obj/item/clothing/shoes/workboots(H), slot_shoes)
H.equip_or_collect(new /obj/item/weapon/storage/belt/utility/full(H), slot_belt)
H.equip_or_collect(new /obj/item/clothing/head/hardhat(H), slot_head)
H.equip_or_collect(new /obj/item/device/t_scanner(H), slot_r_store)
diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm
index 3b13ceb6b64..31c82b2a203 100644
--- a/code/game/jobs/job/security.dm
+++ b/code/game/jobs/job/security.dm
@@ -77,7 +77,7 @@
H.equip_or_collect(new /obj/item/clothing/glasses/hud/security/sunglasses(H), slot_glasses)
// H.equip_or_collect(new /obj/item/clothing/mask/gas(H), slot_wear_mask) //Grab one from the armory you donk
H.equip_or_collect(new /obj/item/device/flash(H), slot_l_store)
- H.equip_or_collect(new /obj/item/weapon/gun/energy/advtaser(H), slot_s_store)
+ H.equip_or_collect(new /obj/item/weapon/gun/energy/gun/advtaser(H), slot_s_store)
if(H.backbag == 1)
H.equip_or_collect(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
H.equip_or_collect(new /obj/item/weapon/restraints/handcuffs(H), slot_l_hand)
@@ -175,7 +175,7 @@
H.equip_to_slot_or_del(new /obj/item/clothing/head/helmet(H), slot_head)
H.equip_or_collect(new /obj/item/device/pda/security(H), slot_wear_pda)
H.equip_or_collect(new /obj/item/clothing/gloves/color/black(H), slot_gloves)
- H.equip_or_collect(new /obj/item/weapon/gun/energy/advtaser(H), slot_s_store)
+ H.equip_or_collect(new /obj/item/weapon/gun/energy/gun/advtaser(H), slot_s_store)
H.equip_or_collect(new /obj/item/device/flash(H), slot_l_store)
if(H.backbag == 1)
H.equip_or_collect(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
@@ -249,7 +249,7 @@
H.equip_or_collect(new /obj/item/clothing/shoes/jackboots(H), slot_shoes)
H.equip_or_collect(new /obj/item/device/pda/security(H), slot_wear_pda)
H.equip_or_collect(new /obj/item/clothing/gloves/color/black(H), slot_gloves)
- H.equip_or_collect(new /obj/item/weapon/gun/energy/advtaser(H), slot_s_store)
+ H.equip_or_collect(new /obj/item/weapon/gun/energy/gun/advtaser(H), slot_s_store)
H.equip_or_collect(new /obj/item/device/flash(H), slot_l_store)
if(H.backbag == 1)
H.equip_or_collect(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
diff --git a/code/game/jobs/job/supervisor.dm b/code/game/jobs/job/supervisor.dm
index 2475df770b3..d0281c4b7c1 100644
--- a/code/game/jobs/job/supervisor.dm
+++ b/code/game/jobs/job/supervisor.dm
@@ -174,10 +174,10 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
if(H.backbag == 1)
H.equip_or_collect(new /obj/item/weapon/storage/box/deathimp(H), slot_r_hand)
- H.equip_or_collect(new /obj/item/weapon/gun/energy/blueshield(H), slot_l_hand)
+ H.equip_or_collect(new /obj/item/weapon/gun/energy/gun/blueshield(H), slot_l_hand)
else
H.equip_or_collect(new /obj/item/weapon/storage/box/deathimp(H.back), slot_in_backpack)
- H.equip_or_collect(new /obj/item/weapon/gun/energy/blueshield(H.back), slot_in_backpack)
+ H.equip_or_collect(new /obj/item/weapon/gun/energy/gun/blueshield(H.back), slot_in_backpack)
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H)
L.imp_in = H
L.implanted = 1
@@ -263,4 +263,4 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 1)
L.imp_in = H
L.implanted = 1
H.sec_hud_set_implants()
- return 1
\ No newline at end of file
+ return 1
diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm
index 210edd98c98..12f01822cde 100644
--- a/code/game/jobs/job/support.dm
+++ b/code/game/jobs/job/support.dm
@@ -244,6 +244,10 @@
H.equip_or_collect(new /obj/item/toy/crayon/rainbow(H), slot_in_backpack)
H.equip_or_collect(new /obj/item/weapon/storage/fancy/crayons(H), slot_in_backpack)
H.equip_or_collect(new /obj/item/weapon/reagent_containers/spray/waterflower(H), slot_in_backpack)
+ if(H.get_species() == "Machine")
+ var/obj/item/organ/internal/cyberimp/brain/clown_voice/implant
+ implant = new
+ implant.insert(H)
H.mutations.Add(CLUMSY)
H.dna.SetSEState(COMICBLOCK,1,1)
genemutcheck(H,COMICBLOCK,null,MUTCHK_FORCED)
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index 31ad9f145ee..5b796d5770d 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -520,15 +520,17 @@
/obj/machinery/sleeper/proc/go_out()
if(filtering)
toggle_filter()
- if(!src.occupant)
+ if(!occupant)
return
- if(src.occupant.client)
- src.occupant.client.eye = src.occupant.client.mob
- src.occupant.client.perspective = MOB_PERSPECTIVE
- src.occupant.forceMove(src.loc)
- src.occupant = null
+ if(occupant.client)
+ occupant.client.eye = occupant.client.mob
+ occupant.client.perspective = MOB_PERSPECTIVE
+ occupant.forceMove(loc)
+ occupant = null
icon_state = "sleeper-open"
- return
+ // eject trash the occupant dropped
+ for(var/atom/movable/A in contents - component_parts - list(beaker))
+ A.forceMove(loc)
/obj/machinery/sleeper/proc/inject_chemical(mob/living/user as mob, chemical, amount)
if (!(chemical in injection_chems))
diff --git a/code/game/machinery/adv_med.dm b/code/game/machinery/adv_med.dm
index 897e3ee51c8..67f348a605b 100644
--- a/code/game/machinery/adv_med.dm
+++ b/code/game/machinery/adv_med.dm
@@ -157,15 +157,17 @@
add_fingerprint(usr)
/obj/machinery/bodyscanner/proc/go_out()
- if ((!( src.occupant ) || src.locked))
+ if(!occupant || locked)
return
- if (src.occupant.client)
- src.occupant.client.eye = src.occupant.client.mob
- src.occupant.client.perspective = MOB_PERSPECTIVE
- src.occupant.loc = src.loc
- src.occupant = null
- src.icon_state = "body_scanner_0"
- return
+ if(occupant.client)
+ occupant.client.eye = occupant.client.mob
+ occupant.client.perspective = MOB_PERSPECTIVE
+ occupant.forceMove(loc)
+ occupant = null
+ icon_state = "body_scanner_0"
+ // eject trash the occupant dropped
+ for(var/atom/movable/A in contents - component_parts)
+ A.forceMove(loc)
/obj/machinery/bodyscanner/ex_act(severity)
switch(severity)
diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm
index 9021a1a2127..bb278c1e399 100644
--- a/code/game/machinery/autolathe.dm
+++ b/code/game/machinery/autolathe.dm
@@ -382,7 +382,7 @@
being_built = new /list()
return 0
if(!can_build(D,multiplier))
- visible_message("\icon[src] \The [src] beeps, \"Not enough resources. Queue processing terminated.\"")
+ visible_message("[bicon(src)] \The [src] beeps, \"Not enough resources. Queue processing terminated.\"")
queue = list()
being_built = new /list()
return 0
@@ -392,7 +392,7 @@
D = listgetindex(listgetindex(queue, 1),1)
multiplier = listgetindex(listgetindex(queue,1),2)
being_built = new /list()
- //visible_message("\icon[src] \The [src] beeps, \"Queue processing finished successfully.\"")
+ //visible_message("[bicon(src)] \The [src] beeps, \"Queue processing finished successfully.\"")
/obj/machinery/autolathe/proc/main_win(mob/user)
var/dat = ""
diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm
index 873e08030a7..9aa7cfe2c7b 100644
--- a/code/game/machinery/camera/camera.dm
+++ b/code/game/machinery/camera/camera.dm
@@ -151,6 +151,9 @@
qdel(src)
return
else if(istype(W, /obj/item/device/analyzer) && panel_open) //XRay
+ if(!user.unEquip(W))
+ to_chat(user, "[W] is stuck!")
+ return
if(!isXRay())
upgradeXRay()
qdel(W)
@@ -158,14 +161,19 @@
else
to_chat(user, "[msg2]")
- else if(istype(W, /obj/item/stack/sheet/mineral/plasma) && panel_open)
+ else if(istype(W, /obj/item/stack/sheet/mineral/plasma) && panel_open)
+ if(!user.unEquip(W))
+ to_chat(user, "[W] is stuck!")
+ return
if(!isEmpProof())
upgradeEmpProof()
to_chat(user, "[msg]")
qdel(W)
else
to_chat(user, "[msg2]")
- else if(istype(W, /obj/item/device/assembly/prox_sensor) && panel_open)
+ else if(istype(W, /obj/item/device/assembly/prox_sensor) && panel_open)
+ if(!user.unEquip(W))
+ return
if(!isMotion())
upgradeMotion()
to_chat(user, "[msg]")
diff --git a/code/game/machinery/camera/camera_assembly.dm b/code/game/machinery/camera/camera_assembly.dm
index 5b77c8f00fc..5b7d035d461 100644
--- a/code/game/machinery/camera/camera_assembly.dm
+++ b/code/game/machinery/camera/camera_assembly.dm
@@ -20,10 +20,9 @@
4 = Screwdriver panel closed and is fully built (you cannot attach upgrades)
*/
-/obj/item/weapon/camera_assembly/attackby(obj/item/W as obj, mob/living/user as mob, params)
+/obj/item/weapon/camera_assembly/attackby(obj/item/W, mob/living/user, params)
switch(state)
-
if(0)
// State 0
if(iswrench(W) && isturf(src.loc))
@@ -116,7 +115,6 @@
return
else if(iswirecutter(W))
-
new/obj/item/stack/cable_coil(get_turf(src), 2)
playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1)
to_chat(user, "You cut the wires from the circuits.")
@@ -125,9 +123,12 @@
// Upgrades!
if(is_type_in_list(W, possible_upgrades) && !is_type_in_list(W, upgrades)) // Is a possible upgrade and isn't in the camera already.
+ if(!user.unEquip(W))
+ to_chat(user, "[W] is stuck!")
+ return
to_chat(user, "You attach \the [W] into the assembly inner circuits.")
upgrades += W
- user.drop_item(W)
+ user.drop_item()
W.loc = src
return
diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm
index 1f8bbc44587..1a7fffcc6ea 100644
--- a/code/game/machinery/cloning.dm
+++ b/code/game/machinery/cloning.dm
@@ -4,6 +4,7 @@
//Potential replacement for genetics revives or something I dunno (?)
#define CLONE_BIOMASS 150
+#define BIOMASS_MEAT_AMOUNT 50
/obj/machinery/clonepod
anchored = 1
@@ -292,6 +293,13 @@
//Grow clones to maturity then kick them out. FREELOADERS
/obj/machinery/clonepod/process()
+ var/show_message = 0
+ for(var/obj/item/weapon/reagent_containers/food/snacks/meat/meat in range(1, src))
+ qdel(meat)
+ biomass += BIOMASS_MEAT_AMOUNT
+ show_message = 1
+ if(show_message)
+ visible_message("\The [src] sucks in and processes the nearby biomass.")
if(stat & NOPOWER) //Autoeject if power is lost
if (occupant)
@@ -373,7 +381,7 @@
//Removing cloning pod biomass
else if (istype(W, /obj/item/weapon/reagent_containers/food/snacks/meat))
to_chat(user, "\blue \The [src] processes \the [W].")
- biomass += 50
+ biomass += BIOMASS_MEAT_AMOUNT
user.drop_item()
qdel(W)
return
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 90b415c99bf..73779c170e0 100644
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -273,6 +273,17 @@
src.emagged = 0
setMenuState(usr,COMM_SCREEN_MAIN)
+ if("AcceptDocking")
+ to_chat(usr, "Docking request accepted!")
+ trade_dock_timelimit = world.time + 1200
+ trade_dockrequest_timelimit = 0
+ command_announcement.Announce("Docking request for trading ship approved, please dock at port bay 4.", "Docking Request")
+ if("DenyDocking")
+ to_chat(usr, "Docking requeset denied!")
+ trade_dock_timelimit = 0
+ trade_dockrequest_timelimit = 0
+ command_announcement.Announce("Docking request for trading ship denied.", "Docking request")
+
nanomanager.update_uis(src)
return 1
@@ -358,6 +369,11 @@
data["shuttle"] = shuttle
+ if(trade_dockrequest_timelimit > world.time)
+ data["dock_request"] = 1
+ else
+ data["dock_request"] = 0
+
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data)
if (!ui)
diff --git a/code/game/machinery/computer/honkputer.dm b/code/game/machinery/computer/honkputer.dm
index 8ccd36fc780..03e66710fd7 100644
--- a/code/game/machinery/computer/honkputer.dm
+++ b/code/game/machinery/computer/honkputer.dm
@@ -21,7 +21,7 @@
if(..())
return 1
if (!(src.z in config.station_levels))
- to_chat(usr, "\red Unable to establish a connection: \black You're too far away from the station!")
+ to_chat(usr, "Unable to establish a connection: You're too far away from the station!")
return
usr.set_machine(src)
@@ -69,7 +69,7 @@
if(..())
return
if (src.z > 6)
- to_chat(user, "\red Unable to establish a connection: \black You're too far away from the station!")
+ to_chat(user, "Unable to establish a connection: You're too far away from the station!")
return
user.set_machine(src)
diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm
index c84690cfa64..2f7cfad49b9 100644
--- a/code/game/machinery/computer/law.dm
+++ b/code/game/machinery/computer/law.dm
@@ -30,7 +30,7 @@
attackby(obj/item/weapon/O as obj, mob/user as mob, params)
if (user.z > 6)
- to_chat(user, "\red Unable to establish a connection: \black You're too far away from the station!")
+ to_chat(user, "Unable to establish a connection: You're too far away from the station!")
return
if(istype(O, /obj/item/weapon/aiModule))
var/datum/game_mode/nations/mode = get_nations_mode()
diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm
index 2a074a9880b..6f285930ab7 100644
--- a/code/game/machinery/computer/security.dm
+++ b/code/game/machinery/computer/security.dm
@@ -42,7 +42,7 @@
if(..())
return
if (src.z > 6)
- to_chat(user, "\red Unable to establish a connection: \black You're too far away from the station!")
+ to_chat(user, "Unable to establish a connection: You're too far away from the station!")
return
var/dat
diff --git a/code/game/machinery/computer/skills.dm b/code/game/machinery/computer/skills.dm
index d2f44de6011..ddcfeed9a74 100644
--- a/code/game/machinery/computer/skills.dm
+++ b/code/game/machinery/computer/skills.dm
@@ -41,7 +41,7 @@
if(..())
return
if (src.z > 6)
- to_chat(user, "\red Unable to establish a connection: \black You're too far away from the station!")
+ to_chat(user, "Unable to establish a connection: You're too far away from the station!")
return
var/dat
diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm
index 6a1f0721253..e469f389ff3 100644
--- a/code/game/machinery/cryo.dm
+++ b/code/game/machinery/cryo.dm
@@ -411,9 +411,9 @@
air_update_turf()
/obj/machinery/atmospherics/unary/cryo_cell/proc/go_out()
- if(!( occupant ))
+ if(!occupant)
return
- if (occupant.client)
+ if(occupant.client)
occupant.client.eye = occupant.client.mob
occupant.client.perspective = MOB_PERSPECTIVE
occupant.forceMove(get_step(loc, SOUTH)) //this doesn't account for walls or anything, but i don't forsee that being a problem.
@@ -421,7 +421,10 @@
occupant.bodytemperature = 261
occupant = null
update_icon()
- return
+ // eject trash the occupant dropped
+ for(var/atom/movable/A in contents - component_parts - list(beaker))
+ A.forceMove(get_step(loc, SOUTH))
+
/obj/machinery/atmospherics/unary/cryo_cell/proc/put_mob(mob/living/carbon/M as mob)
if (!istype(M))
to_chat(usr, "\red The cryo cell cannot handle such a lifeform!")
diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index 68ff1bf64c1..f7de2dd6b5f 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -28,17 +28,6 @@
var/storage_name = "Cryogenic Oversight Control"
var/allow_items = 1
-/obj/machinery/computer/cryopod/robot
- name = "robotic storage console"
- desc = "An interface between crew and the robotic storage systems"
- icon = 'icons/obj/robot_storage.dmi'
- icon_state = "console"
- circuit = /obj/item/weapon/circuitboard/robotstoragecontrol
-
- storage_type = "cyborgs"
- storage_name = "Robotic Storage Control"
- allow_items = 0
-
/obj/machinery/computer/cryopod/attack_ai()
src.attack_hand()
@@ -146,7 +135,6 @@
//Decorative structures to go alongside cryopods.
/obj/structure/cryofeed
-
name = "cryogenic feed"
desc = "A bewildering tangle of machinery and pipes."
icon = 'icons/obj/Cryogenic2.dmi'
@@ -218,23 +206,6 @@
orient_right = 1
icon_state = "body_scanner_0-r"
-/obj/machinery/cryopod/robot
- name = "robotic storage unit"
- desc = "A storage unit for robots."
- icon = 'icons/obj/robot_storage.dmi'
- icon_state = "pod_0"
- base_icon_state = "pod_0"
- occupied_icon_state = "pod_1"
- on_store_message = "has entered robotic storage."
- on_store_name = "Robotic Storage Oversight"
- on_enter_occupant_message = "The storage unit broadcasts a sleep signal to you. Your systems start to shut down, and you enter low-power mode."
- allow_occupant_types = list(/mob/living/silicon/robot)
- disallow_occupant_types = list(/mob/living/silicon/robot/drone)
-
-/obj/machinery/cryopod/robot/right
- orient_right = 1
- icon_state = "pod_0-r"
-
/obj/machinery/cryopod/New()
announce = new /obj/item/device/radio/intercom(src)
@@ -296,22 +267,6 @@
despawn_occupant()
-// This function can not be undone; do not call this unless you are sure
-// Also make sure there is a valid control computer
-/obj/machinery/cryopod/robot/despawn_occupant()
- var/mob/living/silicon/robot/R = occupant
- if(!istype(R)) return ..()
-
- R.contents -= R.mmi
- qdel(R.mmi)
- for(var/obj/item/I in R.module) // the tools the borg has; metal, glass, guns etc
- for(var/obj/item/O in I) // the things inside the tools, if anything; mainly for janiborg trash bags
- O.loc = R
- qdel(I)
- qdel(R.module)
-
- return ..()
-
// This function can not be undone; do not call this unless you are sure
// Also make sure there is a valid control computer
/obj/machinery/cryopod/proc/despawn_occupant()
@@ -406,11 +361,6 @@
else
icon_state = base_icon_state
- //TODO: Check objectives/mode, update new targets if this mob is the target, spawn new antags?
-
- //This should guarantee that ghosts don't spawn.
- occupant.ckey = null
-
//Make an announcement and log the person entering storage.
control_computer.frozen_crew += "[occupant.real_name]"
@@ -682,7 +632,6 @@
return
/obj/machinery/cryopod/proc/go_out()
-
if(!occupant)
return
@@ -704,3 +653,45 @@
//Attacks/effects.
/obj/machinery/cryopod/blob_act()
return //Sorta gamey, but we don't really want these to be destroyed.
+
+/obj/machinery/computer/cryopod/robot
+ name = "robotic storage console"
+ desc = "An interface between crew and the robotic storage systems"
+ icon = 'icons/obj/robot_storage.dmi'
+ icon_state = "console"
+ circuit = /obj/item/weapon/circuitboard/robotstoragecontrol
+
+ storage_type = "cyborgs"
+ storage_name = "Robotic Storage Control"
+ allow_items = 0
+
+/obj/machinery/cryopod/robot
+ name = "robotic storage unit"
+ desc = "A storage unit for robots."
+ icon = 'icons/obj/robot_storage.dmi'
+ icon_state = "pod_0"
+ base_icon_state = "pod_0"
+ occupied_icon_state = "pod_1"
+ on_store_message = "has entered robotic storage."
+ on_store_name = "Robotic Storage Oversight"
+ on_enter_occupant_message = "The storage unit broadcasts a sleep signal to you. Your systems start to shut down, and you enter low-power mode."
+ allow_occupant_types = list(/mob/living/silicon/robot)
+ disallow_occupant_types = list(/mob/living/silicon/robot/drone)
+
+/obj/machinery/cryopod/robot/right
+ orient_right = 1
+ icon_state = "pod_0-r"
+
+/obj/machinery/cryopod/robot/despawn_occupant()
+ var/mob/living/silicon/robot/R = occupant
+ if(!istype(R)) return ..()
+
+ R.contents -= R.mmi
+ qdel(R.mmi)
+ for(var/obj/item/I in R.module) // the tools the borg has; metal, glass, guns etc
+ for(var/obj/item/O in I) // the things inside the tools, if anything; mainly for janiborg trash bags
+ O.loc = R
+ qdel(I)
+ qdel(R.module)
+
+ return ..()
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index c8e16257858..ba0006f16de 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -100,9 +100,9 @@ var/const/HOLOPAD_MODE = 0
create_holo(user)//Create one.
src.visible_message("A holographic image of [user] flicks to life right before your eyes!")
else
- to_chat(user, "\red ERROR: \black Image feed in progress.")
+ to_chat(user, "ERROR: Image feed in progress.")
else
- to_chat(user, "\red ERROR: \black Unable to project hologram.")
+ to_chat(user, "ERROR: Unable to project hologram.")
return
/*This is the proc for special two-way communication between AI and holopad/people talking near holopad.
@@ -123,7 +123,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/
rendered = "Holopad received, [name_used] [verb], \"[text]\""
master.show_message(rendered, 2)
return
-
+
/obj/machinery/hologram/holopad/hear_message(mob/living/M, text)
if(M&&hologram&&master)//Master is mostly a safety in case lag hits or something.
var/name_used = M.GetVoice()
diff --git a/code/game/machinery/kitchen/icecream_vat.dm b/code/game/machinery/kitchen/icecream_vat.dm
index a5e1cc1eafb..07dfeb6f29c 100644
--- a/code/game/machinery/kitchen/icecream_vat.dm
+++ b/code/game/machinery/kitchen/icecream_vat.dm
@@ -97,7 +97,7 @@ var/list/ingredients_source = list(
if(ingredients[ICECREAM_VANILLA] > 0)
var/flavour_name = get_icecream_flavour_string(dispense_flavour)
if(dispense_flavour < 11 && ingredients[dispense_flavour] > 0)
- src.visible_message("\icon[src] [user] scoops delicious [flavour_name] flavoured icecream into [I].")
+ src.visible_message("[bicon(src)] [user] scoops delicious [flavour_name] flavoured icecream into [I].")
ingredients[dispense_flavour] -= 1
ingredients[ICECREAM_VANILLA] -= 1
diff --git a/code/game/machinery/kitchen/processor.dm b/code/game/machinery/kitchen/processor.dm
index 57e1aecf514..881c0536803 100644
--- a/code/game/machinery/kitchen/processor.dm
+++ b/code/game/machinery/kitchen/processor.dm
@@ -29,6 +29,28 @@
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
rating_speed = M.rating
+/obj/machinery/processor/process()
+ ..()
+ // The irony
+ // To be clear, if it's grinding, then it can't suck them up
+ if(processing)
+ return
+ var/mob/living/carbon/slime/picked_slime
+ for(var/mob/living/carbon/slime/slime in range(1, src))
+ if(slime.loc == src)
+ continue
+ if(slime.stat)
+ picked_slime = slime
+ break
+ if(!picked_slime)
+ return
+ var/datum/food_processor_process/P = select_recipe(picked_slime)
+ if (!P)
+ return
+
+ visible_message("[picked_slime] is sucked into \the [src].")
+ picked_slime.forceMove(src)
+
//RECIPE DATUMS
/datum/food_processor_process
var/input
diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm
index 5ad3ba4a048..f19e37f051a 100644
--- a/code/game/machinery/machinery.dm
+++ b/code/game/machinery/machinery.dm
@@ -420,7 +420,7 @@ Class Procs:
/obj/machinery/proc/state(var/msg)
for(var/mob/O in hearers(src, null))
- O.show_message("\icon[src] [msg]", 2)
+ O.show_message("[bicon(src)] [msg]", 2)
/obj/machinery/proc/ping(text=null)
if (!text)
@@ -465,7 +465,7 @@ Class Procs:
/obj/machinery/proc/display_parts(mob/user)
to_chat(user, "Following parts detected in the machine:")
for(var/obj/item/C in component_parts)
- to_chat(user, "\icon[C] [C.name]")
+ to_chat(user, "[bicon(C)] [C.name]")
/obj/machinery/examine(mob/user)
..(user)
diff --git a/code/game/machinery/overview.dm b/code/game/machinery/overview.dm
index 2b56b71fc43..734bb09f60b 100644
--- a/code/game/machinery/overview.dm
+++ b/code/game/machinery/overview.dm
@@ -151,7 +151,7 @@
var/icon/I2 = imap[2+(ix + icx*iy)*2]
-// to_chat(world, "icon: \icon[I]")
+// to_chat(world, "icon: [bicon(I)]")
I.DrawBox(colour, rx, ry, rx+1, ry+1)
@@ -168,7 +168,7 @@
H.screen_loc = "[5 + i%icx],[6+ round(i/icx)]"
-// to_chat(world, "\icon[I] at [H.screen_loc]")
+// to_chat(world, "[bicon(I)] at [H.screen_loc]")
H.name = (i==0)?"maprefresh":"map"
@@ -184,6 +184,7 @@
qdel(J)
H.icon = HI
H.layer = 25
+ H.plane = HUD_PLANE
usr.mapobjs += H
#else
@@ -284,7 +285,7 @@
var/icon/I = imap[1+(ix + icx*iy)]
-// to_chat(world, "icon: \icon[I]")
+// to_chat(world, "icon: [bicon(I)]")
I.DrawBox(colour, rx, ry, rx, ry)
@@ -299,7 +300,7 @@
H.screen_loc = "[5 + i%icx],[6+ round(i/icx)]"
-// to_chat(world, "\icon[I] at [H.screen_loc]")
+// to_chat(world, "[bicon(I)] at [H.screen_loc]")
H.name = (i==0)?"maprefresh":"map"
@@ -308,6 +309,7 @@
H.icon = I
qdel(I)
H.layer = 25
+ H.plane = HUD_PLANE
usr.mapobjs += H
#endif
diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm
index eab12bb22d5..fb1ef8c8740 100644
--- a/code/game/machinery/portable_turret.dm
+++ b/code/game/machinery/portable_turret.dm
@@ -99,13 +99,12 @@
one_access = 0
/obj/machinery/porta_turret/proc/setup()
- var/obj/item/weapon/gun/energy/E = installation //All energy-based weapons are applicable
- if(istext(installation)) E = text2path(installation)
- //var/obj/item/ammo_casing/shottype = E.projectile_type
+ var/obj/item/weapon/gun/energy/E= new installation //All energy-based weapons are applicable
+ var/obj/item/ammo_casing/shottype = E.ammo_type[1]
- projectile = initial(E.projectile_type)
+ projectile = shottype.projectile_type
eprojectile = projectile
- shot_sound = initial(E.fire_sound)
+ shot_sound = shottype.fire_sound
eshot_sound = shot_sound
weapon_setup(installation)
@@ -561,9 +560,6 @@ var/list/turret_icons
if(get_dist(src, L) > 7) //if it's too far away, why bother?
return TURRET_NOT_TARGET
- if(!check_trajectory(L, src)) //check if we have true line of sight
- return TURRET_NOT_TARGET
-
if(emagged) // If emagged not even the dead get a rest
return L.stat ? TURRET_SECONDARY_TARGET : TURRET_PRIORITY_TARGET
@@ -670,6 +666,8 @@ var/list/turret_icons
return
/obj/machinery/porta_turret/proc/shootAt(var/mob/living/target)
+ if(!raised) //the turret has to be raised in order to fire - makes sense, right?
+ return
//any emagged turrets will shoot extremely fast! This not only is deadly, but drains a lot power!
if(!emagged) //if it hasn't been emagged, it has to obey a cooldown rate
if(last_fired || !raised) //prevents rapid-fire shooting, unless it's been emagged
@@ -684,10 +682,6 @@ var/list/turret_icons
if(!istype(T) || !istype(U))
return
- if(!raised) //the turret has to be raised in order to fire - makes sense, right?
- return
-
-
update_icon()
var/obj/item/projectile/A
if(emagged || lethal)
@@ -698,18 +692,17 @@ var/list/turret_icons
if(projectile)
A = new projectile(loc)
playsound(loc, shot_sound, 75, 1)
- A.original = target
// Lethal/emagged turrets use twice the power due to higher energy beams
// Emagged turrets again use twice as much power due to higher firing rates
use_power(reqpower * (2 * (emagged || lethal)) * (2 * emagged))
- //Shooting Code:
+ A.original = target
A.current = T
A.yo = U.y - T.y
A.xo = U.x - T.x
- spawn(1)
- A.process()
+ A.fire()
+ return A
/datum/turret_checks
var/enabled
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 92bca16c5b7..a1559c4fb3a 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -203,7 +203,8 @@
if(istype(O,/obj/item/weapon/gun/energy/disabler/cyborg))
var/obj/item/weapon/gun/energy/disabler/cyborg/D = O
if(D.power_supply.charge < D.power_supply.maxcharge)
- D.power_supply.give(D.charge_cost)
+ var/obj/item/ammo_casing/energy/E = D.ammo_type[D.select]
+ D.power_supply.give(E.e_cost)
D.update_icon()
else
D.charge_tick = 0
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index 9bcf3de53a8..2db551b67fa 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -129,7 +129,7 @@ var/const/SAFETY_COOLDOWN = 100
return
if(sound)
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
+ playsound(src.loc, 'sound/machines/recycler.ogg', 100, 0)
var/material_amount = materials.get_item_material_amount(I)
if(!material_amount)
qdel(I)
@@ -155,7 +155,7 @@ var/const/SAFETY_COOLDOWN = 100
L.loc = src.loc
if(issilicon(L))
- playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
+ playsound(src.loc, 'sound/machines/recycler.ogg', 100, 0)
else
playsound(src.loc, 'sound/effects/splat.ogg', 50, 1)
@@ -219,4 +219,4 @@ var/const/SAFETY_COOLDOWN = 100
/obj/item/weapon/paper/recycler
name = "paper - 'garbage duty instructions'"
- info = "New Assignment
You have been assigned to collect garbage from trash bins, located around the station. The crewmembers will put their trash into it and you will collect the said trash.
There is a recycling machine near your closet, inside maintenance; use it to recycle the trash for a small chance to get useful minerals. Then deliver these minerals to cargo or engineering. You are our last hope for a clean station, do not screw this up!"
\ No newline at end of file
+ info = "New Assignment
You have been assigned to collect garbage from trash bins, located around the station. The crewmembers will put their trash into it and you will collect the said trash.
There is a recycling machine near your closet, inside maintenance; use it to recycle the trash for a small chance to get useful minerals. Then deliver these minerals to cargo or engineering. You are our last hope for a clean station, do not screw this up!"
diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm
index bfd4939dc3b..11079d06606 100644
--- a/code/game/machinery/requests_console.dm
+++ b/code/game/machinery/requests_console.dm
@@ -180,7 +180,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
screen = RCS_SENTPASS
message_log += "Message sent to [recipient]
[message]"
else
- audible_message(text("\icon[src] *The Requests Console beeps: 'NOTICE: No server detected!'"),,4)
+ audible_message(text("[bicon(src)] *The Requests Console beeps: 'NOTICE: No server detected!'"),,4)
//Handle screen switching
if(href_list["setScreen"])
diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm
index 323937075ad..f402551c842 100644
--- a/code/game/machinery/shieldgen.dm
+++ b/code/game/machinery/shieldgen.dm
@@ -215,14 +215,14 @@
return
if (src.active)
- user.visible_message("\blue \icon[src] [user] deactivated the shield generator.", \
- "\blue \icon[src] You deactivate the shield generator.", \
+ user.visible_message("\blue [bicon(src)] [user] deactivated the shield generator.", \
+ "\blue [bicon(src)] You deactivate the shield generator.", \
"You hear heavy droning fade out.")
src.shields_down()
else
if(anchored)
- user.visible_message("\blue \icon[src] [user] activated the shield generator.", \
- "\blue \icon[src] You activate the shield generator.", \
+ user.visible_message("\blue [bicon(src)] [user] activated the shield generator.", \
+ "\blue [bicon(src)] You activate the shield generator.", \
"You hear heavy droning.")
src.shields_up()
else
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index fe443662616..a2b6417c9f7 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -10,7 +10,7 @@
unacidable = 1
var/datum/wires/syndicatebomb/wires = null
- var/timer = 60
+ var/timer = 120
var/open_panel = 0 //are the wires exposed?
var/active = 0 //is the bomb counting down?
var/defused = 0 //is the bomb capable of exploding?
@@ -19,12 +19,12 @@
/obj/machinery/syndicatebomb/process()
if(active && !defused && (timer > 0)) //Tick Tock
- var/volume = (timer <= 10 ? 40 : 10) // Tick louder when the bomb is closer to being detonated.
+ var/volume = (timer <= 20 ? 40 : 10) // Tick louder when the bomb is closer to being detonated.
playsound(loc, beepsound, volume, 0)
- timer--
+ timer = max(timer - 2,0) // 2 seconds per process()
if(active && !defused && (timer <= 0)) //Boom
active = 0
- timer = 60
+ timer = 120
update_icon()
if(payload in src)
payload.detonate()
@@ -123,17 +123,17 @@
/obj/machinery/syndicatebomb/proc/settings(var/mob/user)
var/newtime = input(user, "Please set the timer.", "Timer", "[timer]") as num
- newtime = Clamp(newtime, 60, 60000)
+ newtime = Clamp(newtime, 120, 60000)
if(in_range(src, user) && isliving(user)) //No running off and setting bombs from across the station
timer = newtime
- src.loc.visible_message("\icon[src] timer set for [timer] seconds.")
+ src.loc.visible_message("[bicon(src)] timer set for [timer] seconds.")
if(alert(user,"Would you like to start the countdown now?",,"Yes","No") == "Yes" && in_range(src, user) && isliving(user))
if(defused || active)
if(defused)
- src.loc.visible_message("\icon[src] Device error: User intervention required.")
+ src.loc.visible_message("[bicon(src)] Device error: User intervention required.")
return
else
- src.loc.visible_message("\icon[src] [timer] seconds until detonation, please clear the area.")
+ src.loc.visible_message("[bicon(src)] [timer] seconds until detonation, please clear the area.")
playsound(loc, 'sound/machines/click.ogg', 30, 1)
active = 1
update_icon()
@@ -223,7 +223,7 @@
var/obj/machinery/syndicatebomb/holder = src.loc
if(istype(holder))
attempts++
- holder.loc.visible_message("\icon[holder] Alert: Bomb has detonated. Your score is now [defusals] for [attempts]. Resetting wires...")
+ holder.loc.visible_message("[bicon(holder)] Alert: Bomb has detonated. Your score is now [defusals] for [attempts]. Resetting wires...")
reset()
else
qdel(src)
@@ -233,7 +233,7 @@
if(istype(holder))
attempts++
defusals++
- holder.loc.visible_message("\icon[holder] Alert: Bomb has been defused. Your score is now [defusals] for [attempts]! Resetting wires in 5 seconds...")
+ holder.loc.visible_message("[bicon(holder)] Alert: Bomb has been defused. Your score is now [defusals] for [attempts]! Resetting wires in 5 seconds...")
sleep(50) //Just in case someone is trying to remove the bomb core this gives them a little window to crowbar it out
if(istype(holder))
reset()
diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm
index 5d6aa95b56f..661744502ed 100644
--- a/code/game/machinery/telecomms/broadcaster.dm
+++ b/code/game/machinery/telecomms/broadcaster.dm
@@ -333,7 +333,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
var/part_b_extra = ""
if(data == 3) // intercepted radio message
part_b_extra = " (Intercepted)"
- var/part_a = "\icon[radio]\[[freq_text]\][part_b_extra] " // goes in the actual output
+ var/part_a = "[bicon(radio)]\[[freq_text]\][part_b_extra] " // goes in the actual output
// --- Some more pre-message formatting ---
var/part_b = " " // Tweaked for security headsets -- TLE
@@ -528,7 +528,7 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
// Create a radio headset for the sole purpose of using its icon
var/obj/item/device/radio/headset/radio = new
- var/part_b = " \icon[radio]\[[freq_text]\][part_b_extra] " // Tweaked for security headsets -- TLE
+ var/part_b = " [bicon(radio)]\[[freq_text]\][part_b_extra] " // Tweaked for security headsets -- TLE
var/part_blackbox_b = " \[[freq_text]\] "
var/part_c = ""
diff --git a/code/game/machinery/telecomms/telecomunications.dm b/code/game/machinery/telecomms/telecomunications.dm
index 9d9481aba04..290e3352ea8 100644
--- a/code/game/machinery/telecomms/telecomunications.dm
+++ b/code/game/machinery/telecomms/telecomunications.dm
@@ -387,7 +387,7 @@ var/global/list/obj/machinery/telecomms/telecomms_list = list()
src.receive_information(signal, src)
// Try sending it!
- var/list/try_send = list("/obj/machinery/telecomms/server", "/obj/machinery/telecomms/hub", "/obj/machinery/telecomms/broadcaster", "/obj/machinery/telecomms/bus")
+ var/list/try_send = list("/obj/machinery/telecomms/server", "/obj/machinery/telecomms/hub", "/obj/machinery/telecomms/broadcaster")
var/i = 0
for(var/send in try_send)
if(i)
diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm
index 82060d47bc2..f0b6ce34ef7 100644
--- a/code/game/machinery/turrets.dm
+++ b/code/game/machinery/turrets.dm
@@ -227,15 +227,15 @@
if(1)
A = new /obj/item/projectile/beam(loc)
if(2)
- A = new /obj/item/projectile/beam/heavylaser(loc)
+ A = new /obj/item/projectile/beam/laser/heavylaser(loc)
if(3)
A = new /obj/item/projectile/beam/pulse(loc)
if(4)
A = new /obj/item/projectile/magic/change(loc)
if(5)
- A = new /obj/item/projectile/lasertag/blue(loc)
+ A = new /obj/item/projectile/beam/lasertag/bluetag(loc)
if(6)
- A = new /obj/item/projectile/lasertag/red(loc)
+ A = new /obj/item/projectile/beam/lasertag/redtag(loc)
A.original = target
use_power(500)
else
@@ -248,8 +248,7 @@
A.current = T
A.yo = U.y - T.y
A.xo = U.x - T.x
- spawn( 0 )
- A.process()
+ A.fire()
return
diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm
index 29880e519ec..5d9533470d6 100644
--- a/code/game/machinery/vending.dm
+++ b/code/game/machinery/vending.dm
@@ -296,7 +296,7 @@
if(currently_vending.price > cashmoney.get_total())
// This is not a status display message, since it's something the character
// themselves is meant to see BEFORE putting the money in
- to_chat(usr, "\icon[cashmoney] That is not enough money.")
+ to_chat(usr, "[bicon(cashmoney)] That is not enough money.")
return 0
// Bills (banknotes) cannot really have worth different than face value,
@@ -849,7 +849,7 @@
product_ads = "Float like an astronaut, sting like a bullet!;Express your second amendment today!;Guns don't kill people, but you can!;Who needs responsibilities when you have guns?"
vend_reply = "Remember the name: Liberation Station!"
products = list(/obj/item/weapon/gun/projectile/automatic/pistol/deagle/gold = 2,/obj/item/weapon/gun/projectile/automatic/pistol/deagle/camo = 2,
- /obj/item/weapon/gun/projectile/automatic/pistol/m2411 = 2,/obj/item/weapon/gun/projectile/automatic/proto = 2,
+ /obj/item/weapon/gun/projectile/automatic/pistol/m1911 = 2,/obj/item/weapon/gun/projectile/automatic/proto = 2,
/obj/item/weapon/gun/projectile/shotgun/automatic/combat = 2,/obj/item/weapon/gun/projectile/automatic/gyropistol = 1,
/obj/item/weapon/gun/projectile/shotgun = 2,/obj/item/weapon/gun/projectile/automatic/ar = 2)
premium = list(/obj/item/ammo_box/magazine/smgm9mm = 2,/obj/item/ammo_box/magazine/m50 = 4,/obj/item/ammo_box/magazine/m45 = 2,/obj/item/ammo_box/magazine/m75 = 2)
@@ -1114,7 +1114,7 @@
icon_state = "engi"
icon_deny = "engi-deny"
req_access_txt = "11"
- products = list(/obj/item/clothing/under/rank/chief_engineer = 4,/obj/item/clothing/under/rank/engineer = 4,/obj/item/clothing/shoes/orange = 4,/obj/item/clothing/head/hardhat = 4,
+ products = list(/obj/item/clothing/under/rank/chief_engineer = 4,/obj/item/clothing/under/rank/engineer = 4,/obj/item/clothing/shoes/workboots = 4,/obj/item/clothing/head/hardhat = 4,
/obj/item/weapon/storage/belt/utility = 4,/obj/item/clothing/glasses/meson = 4,/obj/item/clothing/gloves/color/yellow = 4, /obj/item/weapon/screwdriver = 12,
/obj/item/weapon/crowbar = 12,/obj/item/weapon/wirecutters = 12,/obj/item/device/multitool = 12,/obj/item/weapon/wrench = 12,/obj/item/device/t_scanner = 12,
/obj/item/stack/cable_coil/heavyduty = 8, /obj/item/weapon/stock_parts/cell = 8, /obj/item/weapon/weldingtool = 8,/obj/item/clothing/head/welding = 8,
@@ -1152,7 +1152,7 @@
icon_state = "sustenance"
products = list(/obj/item/weapon/reagent_containers/food/snacks/tofu = 24,
/obj/item/weapon/reagent_containers/food/drinks/ice = 12,
- /obj/item/weapon/reagent_containers/food/snacks/candy_corn = 6)
+ /obj/item/weapon/reagent_containers/food/snacks/candy/candy_corn = 6)
contraband = list(/obj/item/weapon/kitchen/knife = 6)
/obj/machinery/vending/hatdispenser
diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm
index 1967f1e6645..b7aeaed66cc 100644
--- a/code/game/mecha/equipment/mecha_equipment.dm
+++ b/code/game/mecha/equipment/mecha_equipment.dm
@@ -133,7 +133,7 @@
/obj/item/mecha_parts/mecha_equipment/proc/occupant_message(message)
if(chassis)
- chassis.occupant_message("\icon[src] [message]")
+ chassis.occupant_message("[bicon(src)] [message]")
return
/obj/item/mecha_parts/mecha_equipment/proc/log_message(message)
diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm
index f79c43068ee..05b3dac0e63 100644
--- a/code/game/mecha/equipment/tools/medical_tools.dm
+++ b/code/game/mecha/equipment/tools/medical_tools.dm
@@ -384,7 +384,7 @@
/obj/item/mecha_parts/mecha_equipment/tool/syringe_gun
name = "Syringe Gun"
desc = "Exosuit-mounted chem synthesizer with syringe gun. Reagents inside are held in stasis, so no reactions will occur. (Can be attached to: Medical Exosuits)"
- icon = 'icons/obj/gun.dmi'
+ icon = 'icons/obj/guns/projectile.dmi'
icon_state = "syringegun"
item_state = "syringegun"
lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi'
@@ -666,4 +666,4 @@
for(var/reagent in S.processed_reagents)
S.reagents.add_reagent(reagent,amount)
S.chassis.use_power(energy_drain)
- return 1
\ No newline at end of file
+ return 1
diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm
index d95cbaff799..ae5595d69e5 100644
--- a/code/game/mecha/equipment/weapons/weapons.dm
+++ b/code/game/mecha/equipment/weapons/weapons.dm
@@ -5,6 +5,10 @@
var/projectile
var/fire_sound
var/size=0
+ var/projectiles_per_shot = 1
+ var/variance = 0
+ var/randomspread = 0 //use random spread for machineguns, instead of shotgun scatter
+ var/projectile_delay = 0
/obj/item/mecha_parts/mecha_equipment/weapon/can_attach(var/obj/mecha/combat/M as obj)
if(..())
@@ -16,32 +20,51 @@
return 1
return 0
+/obj/item/mecha_parts/mecha_equipment/weapon/proc/get_shot_amount()
+ return projectiles_per_shot
-/obj/item/mecha_parts/mecha_equipment/weapon/energy
- name = "General Energy Weapon"
- size = 2
- action(target)
- if(!action_checks(target)) return
- var/turf/curloc = chassis.loc
- var/atom/targloc = get_turf(target)
- if (!targloc || !istype(targloc, /turf) || !curloc)
- return
- if (targloc == curloc)
- return
- set_ready_state(0)
- playsound(chassis, fire_sound, 50, 1)
+/obj/item/mecha_parts/mecha_equipment/weapon/action(target, params)
+ if(!action_checks(target))
+ return 0
+
+ var/turf/curloc = get_turf(chassis)
+ var/turf/targloc = get_turf(target)
+ if (!targloc || !istype(targloc) || !curloc)
+ return 0
+ if (targloc == curloc)
+ return 0
+
+ set_ready_state(0)
+ for(var/i=1 to get_shot_amount())
var/obj/item/projectile/A = new projectile(curloc)
A.firer = chassis.occupant
A.original = target
A.current = curloc
- A.yo = targloc.y - curloc.y
- A.xo = targloc.x - curloc.x
- chassis.use_power(energy_drain)
- A.process()
- chassis.log_message("Fired from [src.name], targeting [target].")
- do_after_cooldown()
- return
+ var/spread = 0
+ if(variance)
+ if(randomspread)
+ spread = round((rand() - 0.5) * variance)
+ else
+ spread = round((i / projectiles_per_shot - 0.5) * variance)
+ A.preparePixelProjectile(target, targloc, chassis.occupant, params, spread)
+
+ chassis.use_power(energy_drain)
+ A.fire()
+ playsound(chassis, fire_sound, 50, 1)
+
+ sleep(max(0, projectile_delay))
+ set_ready_state(0)
+ log_message("Fired from [name], targeting [target].")
+ var/turf/T = get_turf(src)
+ msg_admin_attack("[key_name_admin(chassis.occupant)] fired a [src] in ([T.x], [T.y], [T.z] - JMP)")
+ log_game("[key_name(chassis.occupant)] fired a [src] in [T.x], [T.y], [T.z]")
+ do_after_cooldown()
+ return
+
+/obj/item/mecha_parts/mecha_equipment/weapon/energy
+ name = "General Energy Weapon"
+ size = 2
/obj/item/mecha_parts/mecha_equipment/weapon/energy/laser
equip_cooldown = 8
@@ -56,7 +79,7 @@
name = "CH-LC \"Solaris\" Laser Cannon"
icon_state = "mecha_laser"
energy_drain = 40
- projectile = /obj/item/projectile/beam/heavylaser
+ projectile = /obj/item/projectile/beam/laser/heavylaser
fire_sound = 'sound/weapons/lasercannonfire.ogg'
/obj/item/mecha_parts/mecha_equipment/weapon/energy/ion
@@ -82,25 +105,25 @@
icon_state = "pulse1_bl"
var/life = 20
- Bump(atom/A)
- A.bullet_act(src, def_zone)
- src.life -= 10
- if(ismob(A))
- var/mob/M = A
- if(istype(firer, /mob))
- M.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src]"
- firer.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src]"
- log_attack("[firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src]")
- if(!iscarbon(firer))
- M.LAssailant = null
- else
- M.LAssailant = firer
+/obj/item/projectile/beam/pulse/heavy/Bump(atom/A)
+ A.bullet_act(src, def_zone)
+ life -= 10
+ if(ismob(A))
+ var/mob/M = A
+ if(istype(firer, /mob))
+ M.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src]"
+ firer.attack_log += "\[[time_stamp()]\] [firer]/[firer.ckey] shot [M]/[M.ckey] with a [src]"
+ log_attack("[firer] ([firer.ckey]) shot [M] ([M.ckey]) with a [src]")
+ if(!iscarbon(firer))
+ M.LAssailant = null
else
- M.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [M]/[M.ckey] with a [src]"
- log_attack("UNKNOWN shot [M] ([M.ckey]) with a [src]")
- if(life <= 0)
- qdel(src)
- return
+ M.LAssailant = firer
+ else
+ M.attack_log += "\[[time_stamp()]\] UNKNOWN SUBJECT (No longer exists) shot [M]/[M.ckey] with a [src]"
+ log_attack("UNKNOWN shot [M] ([M.ckey]) with a [src]")
+ if(life <= 0)
+ qdel(src)
+ return
/obj/item/mecha_parts/mecha_equipment/weapon/energy/taser
@@ -119,89 +142,89 @@
equip_cooldown = 150
range = MELEE|RANGED
- can_attach(obj/mecha/combat/honker/M as obj)
- if(..())
- if(istype(M))
- return 1
+/obj/item/mecha_parts/mecha_equipment/weapon/honker/can_attach(obj/mecha/combat/honker/M as obj)
+ if(..())
+ if(istype(M))
+ return 1
+ return 0
+
+/obj/item/mecha_parts/mecha_equipment/weapon/honker/action(target, params)
+ if(!chassis)
+ return 0
+ if(energy_drain && chassis.get_charge() < energy_drain)
+ return 0
+ if(!equip_ready)
return 0
- action(target)
- if(!chassis)
- return 0
- if(energy_drain && chassis.get_charge() < energy_drain)
- return 0
- if(!equip_ready)
- return 0
+ playsound(chassis, 'sound/items/AirHorn.ogg', 100, 1)
+ chassis.occupant_message("HONK")
+ for(var/mob/living/carbon/M in ohearers(6, chassis))
+ if(istype(M, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = M
+ if(istype(H.l_ear, /obj/item/clothing/ears/earmuffs) || istype(H.r_ear, /obj/item/clothing/ears/earmuffs))
+ continue
+ to_chat(M, "HONK")
+ M.sleeping = 0
+ M.stuttering = 20
+ M.ear_deaf = 30
+ M.Weaken(3)
+ if(prob(30))
+ M.Stun(10)
+ M.Paralyse(4)
+ else
+ M.Jitter(500)
+ ///else the mousetraps are useless
+ if(istype(M, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = M
+ if(isobj(H.shoes))
+ var/thingy = H.shoes
+ H.unEquip(H.shoes)
+ walk_away(thingy,chassis,15,2)
+ spawn(20)
+ if(thingy)
+ walk(thingy,0)
+ for(var/obj/mecha/combat/recitence/R in oview(6, chassis))
+ R.occupant_message("\The [R] has protected you from [chassis]'s HONK at the cost of some power.")
+ R.use_power(R.get_charge() / 4)
- playsound(chassis, 'sound/items/AirHorn.ogg', 100, 1)
- chassis.occupant_message("HONK")
- for(var/mob/living/carbon/M in ohearers(6, chassis))
- if(istype(M, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = M
- if(istype(H.l_ear, /obj/item/clothing/ears/earmuffs) || istype(H.r_ear, /obj/item/clothing/ears/earmuffs))
- continue
- to_chat(M, "HONK")
- M.sleeping = 0
- M.stuttering = 20
- M.ear_deaf = 30
- M.Weaken(3)
- if(prob(30))
- M.Stun(10)
- M.Paralyse(4)
- else
- M.Jitter(500)
- ///else the mousetraps are useless
- if(istype(M, /mob/living/carbon/human))
- var/mob/living/carbon/human/H = M
- if(isobj(H.shoes))
- var/thingy = H.shoes
- H.unEquip(H.shoes)
- walk_away(thingy,chassis,15,2)
- spawn(20)
- if(thingy)
- walk(thingy,0)
- for(var/obj/mecha/combat/recitence/R in oview(6, chassis))
- R.occupant_message("\The [R] has protected you from [chassis]'s HONK at the cost of some power.")
- R.use_power(R.get_charge() / 4)
-
- chassis.use_power(energy_drain)
- log_message("Honked from [src.name]. HONK!")
- var/turf/T = get_turf(src)
- msg_admin_attack("[key_name_admin(chassis.occupant)] used a Mecha Honker in ([T.x], [T.y], [T.z] - JMP)")
- log_game("[key_name(chassis.occupant)] used a Mecha Honker in [T.x], [T.y], [T.z]")
- do_after_cooldown()
- return
+ chassis.use_power(energy_drain)
+ log_message("Honked from [name]. HONK!")
+ var/turf/T = get_turf(src)
+ msg_admin_attack("[key_name_admin(chassis.occupant)] used a Mecha Honker in ([T.x], [T.y], [T.z] - JMP)")
+ log_game("[key_name(chassis.occupant)] used a Mecha Honker in [T.x], [T.y], [T.z]")
+ do_after_cooldown()
+ return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic
name = "General Ballisic Weapon"
var/projectiles
var/projectile_energy_cost
size = 2
- action_checks(atom/target)
- if(..())
- if(projectiles > 0)
- return 1
- return 0
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/action_checks(atom/target)
+ if(..())
+ if(projectiles > 0)
+ return 1
+ return 0
- get_equip_info()
- return "[..()]\[[src.projectiles]\][(src.projectiles < initial(src.projectiles))?" - Rearm":null]"
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/get_equip_info()
+ return "[..()]\[[projectiles]\][(projectiles < initial(projectiles))?" - Rearm":null]"
- proc/rearm()
- if(projectiles < initial(projectiles))
- var/projectiles_to_add = initial(projectiles) - projectiles
- while(chassis.get_charge() >= projectile_energy_cost && projectiles_to_add)
- projectiles++
- projectiles_to_add--
- chassis.use_power(projectile_energy_cost)
- send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",src.get_equip_info())
- log_message("Rearmed [src.name].")
- return
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/proc/rearm()
+ if(projectiles < initial(projectiles))
+ var/projectiles_to_add = initial(projectiles) - projectiles
+ while(chassis.get_charge() >= projectile_energy_cost && projectiles_to_add)
+ projectiles++
+ projectiles_to_add--
+ chassis.use_power(projectile_energy_cost)
+ send_byjax(chassis.occupant,"exosuit.browser","\ref[src]",get_equip_info())
+ log_message("Rearmed [name].")
+ return
- Topic(href, href_list)
- ..()
- if (href_list["rearm"])
- src.rearm()
- return
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/Topic(href, href_list)
+ ..()
+ if (href_list["rearm"])
+ rearm()
+ return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine
name = "FNX-66 Carbine"
@@ -211,41 +234,6 @@
fire_sound = 'sound/weapons/Gunshot.ogg'
projectiles = 24
projectile_energy_cost = 15
- var/projectiles_per_shot = 1
- var/deviation = 0.0
-
- action(atom/target)
- if(!action_checks(target)) return
- var/turf/targloc = get_turf(target)
- var/target_x = targloc.x
- var/target_y = targloc.y
- var/target_z = targloc.z
- targloc = null
- spawn for(var/i=1 to min(projectiles, projectiles_per_shot))
- if(!chassis) break
- var/turf/curloc = get_turf(chassis)
- targloc = locate(target_x+GaussRandRound(deviation,1),target_y+GaussRandRound(deviation,1),target_z)
- if (!targloc || !curloc)
- continue
- if (targloc == curloc)
- continue
-
- playsound(chassis, fire_sound, 50, 1)
- var/obj/item/projectile/A = new projectile(curloc)
- src.projectiles--
- A.original = target
- A.current = curloc
- A.yo = targloc.y - curloc.y
- A.xo = targloc.x - curloc.x
- A.process()
- sleep(2)
- set_ready_state(0)
- log_message("Fired from [src.name], targeting [target].")
- var/turf/T = get_turf(src)
- msg_admin_attack("[key_name_admin(chassis.occupant)] fired a [src] in ([T.x], [T.y], [T.z] - JMP)")
- log_game("[key_name(chassis.occupant)] fired a [src] in [T.x], [T.y], [T.z]")
- do_after_cooldown()
- return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine/silenced
name = "\improper S.H.H. \"Quietus\" Carbine"
@@ -270,36 +258,8 @@
fire_sound = 'sound/weapons/Gunshot.ogg'
projectiles = 40
projectile_energy_cost = 25
- var/projectiles_per_shot = 4
- var/deviation = 0.7
-
- action(atom/target)
- if(!action_checks(target)) return
- var/turf/curloc = get_turf(chassis)
- var/turf/targloc = get_turf(target)
- if(!curloc || !targloc) return
- var/target_x = targloc.x
- var/target_y = targloc.y
- var/target_z = targloc.z
- targloc = null
- for(var/i=1 to min(projectiles, projectiles_per_shot))
- targloc = locate(target_x+GaussRandRound(deviation,1),target_y+GaussRandRound(deviation,1),target_z)
- if(!targloc || targloc == curloc)
- break
- playsound(chassis, fire_sound, 80, 1)
- var/obj/item/projectile/A = new projectile(curloc)
- src.projectiles--
- A.original = target
- A.current = curloc
- A.yo = targloc.y - curloc.y
- A.xo = targloc.x - curloc.x
- set_ready_state(0)
- A.process()
- log_message("Fired from [src.name], targeting [target].")
- do_after_cooldown()
- return
-
-
+ projectiles_per_shot = 4
+ variance = 25
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg
name = "Ultra AC 2"
@@ -309,38 +269,9 @@
fire_sound = 'sound/weapons/Gunshot.ogg'
projectiles = 300
projectile_energy_cost = 20
- var/projectiles_per_shot = 3
- var/deviation = 0.3
-
- action(atom/target)
- if(!action_checks(target)) return
- var/turf/targloc = get_turf(target)
- var/target_x = targloc.x
- var/target_y = targloc.y
- var/target_z = targloc.z
- targloc = null
- spawn for(var/i=1 to min(projectiles, projectiles_per_shot))
- if(!chassis) break
- var/turf/curloc = get_turf(chassis)
- targloc = locate(target_x+GaussRandRound(deviation,1),target_y+GaussRandRound(deviation,1),target_z)
- if (!targloc || !curloc)
- continue
- if (targloc == curloc)
- continue
-
- playsound(chassis, fire_sound, 50, 1)
- var/obj/item/projectile/A = new projectile(curloc)
- src.projectiles--
- A.original = target
- A.current = curloc
- A.yo = targloc.y - curloc.y
- A.xo = targloc.x - curloc.x
- A.process()
- sleep(2)
- set_ready_state(0)
- log_message("Fired from [src.name], targeting [target].")
- do_after_cooldown()
- return
+ projectiles_per_shot = 3
+ variance = 6
+ projectile_delay = 2
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack
name = "SRM-8 Missile Rack"
@@ -353,20 +284,21 @@
var/missile_speed = 2
var/missile_range = 30
- action(target)
- if(!action_checks(target)) return
- set_ready_state(0)
- var/obj/item/missile/M = new projectile(chassis.loc)
- M.primed = 1
- playsound(chassis, fire_sound, 50, 1)
- M.throw_at(target, missile_range, missile_speed, chassis)
- projectiles--
- log_message("Fired from [src.name], targeting [target].")
- var/turf/T = get_turf(src)
- msg_admin_attack("[key_name_admin(chassis.occupant)] fired a [src] in ([T.x], [T.y], [T.z] - JMP)")
- log_game("[key_name(chassis.occupant)] fired a [src] in [T.x], [T.y], [T.z]")
- do_after_cooldown()
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/action(target, params)
+ if(!action_checks(target))
return
+ set_ready_state(0)
+ var/obj/item/missile/M = new projectile(chassis.loc)
+ M.primed = 1
+ playsound(chassis, fire_sound, 50, 1)
+ M.throw_at(target, missile_range, missile_speed, chassis)
+ projectiles--
+ log_message("Fired from [name], targeting [target].")
+ var/turf/T = get_turf(src)
+ msg_admin_attack("[key_name_admin(chassis.occupant)] fired a [src] in ([T.x], [T.y], [T.z] - JMP)")
+ log_game("[key_name(chassis.occupant)] fired a [src] in [T.x], [T.y], [T.z]")
+ do_after_cooldown()
+ return
/obj/item/missile
@@ -375,13 +307,13 @@
var/primed = null
throwforce = 15
- throw_impact(atom/hit_atom)
- if(primed)
- explosion(hit_atom, 0, 0, 2, 4, 0)
- qdel(src)
- else
- ..()
- return
+/obj/item/missile/throw_impact(atom/hit_atom)
+ if(primed)
+ explosion(hit_atom, 0, 0, 2, 4, 0)
+ qdel(src)
+ else
+ ..()
+ return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang
name = "SGL-6 Grenade Launcher"
@@ -394,18 +326,19 @@
equip_cooldown = 60
var/det_time = 20
size=1
- action(target)
- if(!action_checks(target)) return
- set_ready_state(0)
- var/obj/item/weapon/grenade/flashbang/F = new projectile(chassis.loc)
- playsound(chassis, fire_sound, 50, 1)
- F.throw_at(target, missile_range, missile_speed, chassis)
- projectiles--
- log_message("Fired from [src.name], targeting [target].")
- spawn(det_time)
- F.prime()
- do_after_cooldown()
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/action(target, params)
+ if(!action_checks(target))
return
+ set_ready_state(0)
+ var/obj/item/weapon/grenade/flashbang/F = new projectile(chassis.loc)
+ playsound(chassis, fire_sound, 50, 1)
+ F.throw_at(target, missile_range, missile_speed, chassis)
+ projectiles--
+ log_message("Fired from [name], targeting [target].")
+ spawn(det_time)
+ F.prime()
+ do_after_cooldown()
+ return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang//Because I am a heartless bastard -Sieve
name = "SOB-3 Grenade Launcher"
@@ -417,7 +350,7 @@
size=1
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang/limited/get_equip_info()//Limited version of the clusterbang launcher that can't reload
- return "* [chassis.selected==src?"":""][src.name][chassis.selected==src?"":""]\[[src.projectiles]\]"
+ return "* [chassis.selected==src?"":""][name][chassis.selected==src?"":""]\[[projectiles]\]"
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang/clusterbang/limited/rearm()
return//Extra bit of security
@@ -432,22 +365,23 @@
projectile_energy_cost = 100
equip_cooldown = 20
- can_attach(obj/mecha/combat/honker/M as obj)
- if(..())
- if(istype(M))
- return 1
- return 0
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/banana_mortar/can_attach(obj/mecha/combat/honker/M as obj)
+ if(..())
+ if(istype(M))
+ return 1
+ return 0
- action(target)
- if(!action_checks(target)) return
- set_ready_state(0)
- var/obj/item/weapon/bananapeel/B = new projectile(chassis.loc)
- playsound(chassis, fire_sound, 60, 1)
- B.throw_at(target, missile_range, missile_speed, chassis)
- projectiles--
- log_message("Bananed from [src.name], targeting [target]. HONK!")
- do_after_cooldown()
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/banana_mortar/action(target, params)
+ if(!action_checks(target))
return
+ set_ready_state(0)
+ var/obj/item/weapon/bananapeel/B = new projectile(chassis.loc)
+ playsound(chassis, fire_sound, 60, 1)
+ B.throw_at(target, missile_range, missile_speed, chassis)
+ projectiles--
+ log_message("Bananed from [name], targeting [target]. HONK!")
+ do_after_cooldown()
+ return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/mousetrap_mortar
@@ -460,23 +394,24 @@
projectile_energy_cost = 100
equip_cooldown = 10
- can_attach(obj/mecha/combat/honker/M as obj)
- if(..())
- if(istype(M))
- return 1
- return 0
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/mousetrap_mortar/can_attach(obj/mecha/combat/honker/M as obj)
+ if(..())
+ if(istype(M))
+ return 1
+ return 0
- action(target)
- if(!action_checks(target)) return
- set_ready_state(0)
- var/obj/item/device/assembly/mousetrap/M = new projectile(chassis.loc)
- M.secured = 1
- playsound(chassis, fire_sound, 60, 1)
- M.throw_at(target, missile_range, missile_speed, chassis)
- projectiles--
- log_message("Launched a mouse-trap from [src.name], targeting [target]. HONK!")
- do_after_cooldown()
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/mousetrap_mortar/action(target, params)
+ if(!action_checks(target))
return
+ set_ready_state(0)
+ var/obj/item/device/assembly/mousetrap/M = new projectile(chassis.loc)
+ M.secured = 1
+ playsound(chassis, fire_sound, 60, 1)
+ M.throw_at(target, missile_range, missile_speed, chassis)
+ projectiles--
+ log_message("Launched a mouse-trap from [name], targeting [target]. HONK!")
+ do_after_cooldown()
+ return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bolas
name = "PCMK-6 Bolas Launcher"
@@ -489,23 +424,24 @@
projectile_energy_cost = 50
equip_cooldown = 10
- can_attach(obj/mecha/combat/gygax/M as obj)
- if(..())
- if(istype(M))
- return 1
- return 0
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bolas/can_attach(obj/mecha/combat/gygax/M as obj)
+ if(..())
+ if(istype(M))
+ return 1
+ return 0
- action(target)
- if(!action_checks(target)) return
- set_ready_state(0)
- var/obj/item/weapon/legcuffs/bolas/M = new projectile(chassis.loc)
- playsound(chassis, fire_sound, 50, 1)
- M.thrown_from = src
- M.throw_at(target, missile_range, missile_speed)
- projectiles--
- log_message("Fired from [src.name], targeting [target].")
- do_after_cooldown()
+/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/bolas/action(target, params)
+ if(!action_checks(target))
return
+ set_ready_state(0)
+ var/obj/item/weapon/legcuffs/bolas/M = new projectile(chassis.loc)
+ playsound(chassis, fire_sound, 50, 1)
+ M.thrown_from = src
+ M.throw_at(target, missile_range, missile_speed)
+ projectiles--
+ log_message("Fired from [name], targeting [target].")
+ do_after_cooldown()
+ return
/obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma
equip_cooldown = 20
diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index a88d1c49bad..d0bf82e4a92 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -153,7 +153,7 @@
I.loc = get_step(src,SOUTH)
I.materials[MAT_METAL] = get_resource_cost_w_coeff(D,MAT_METAL)
I.materials[MAT_GLASS] = get_resource_cost_w_coeff(D,MAT_GLASS)
- visible_message("\icon[src] \The [src] beeps, \"\The [I] is complete.\"")
+ visible_message("[bicon(src)] \The [src] beeps, \"\The [I] is complete.\"")
being_built = null
updateUsrDialog()
@@ -196,14 +196,14 @@
if(stat&(NOPOWER|BROKEN))
return 0
if(!check_resources(D))
- visible_message("\icon[src] \The [src] beeps, \"Not enough resources. Queue processing stopped.\"")
+ visible_message("[bicon(src)] \The [src] beeps, \"Not enough resources. Queue processing stopped.\"")
temp = {"Not enough resources to build next part.
Try again | Return"}
return 0
remove_from_queue(1)
build_part(D)
D = listgetindex(queue, 1)
- visible_message("\icon[src] \The [src] beeps, \"Queue processing finished successfully.\"")
+ visible_message("[bicon(src)] \The [src] beeps, \"Queue processing finished successfully.\"")
/obj/machinery/mecha_part_fabricator/proc/list_queue()
var/output = "Queue contains:"
@@ -240,7 +240,7 @@
temp += "Return"
updateUsrDialog()
- visible_message("\icon[src] \The [src] beeps, \"Successfully synchronized with R&D server.\"")
+ visible_message("[bicon(src)] \The [src] beeps, \"Successfully synchronized with R&D server.\"")
return
temp = "Unable to connect to local R&D Database.
Please check your connections and try again.
Return"
@@ -271,7 +271,7 @@
user.set_machine(src)
var/turf/exit = get_step(src,SOUTH)
if(exit.density)
- visible_message("\icon[src] \The [src] beeps, \"Error! Part outlet is obstructed.\"")
+ visible_message("[bicon(src)] \The [src] beeps, \"Error! Part outlet is obstructed.\"")
return
if(temp)
left_part = temp
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index ceeca47f72e..70bcd0a0fd6 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -181,7 +181,7 @@
if(equipment && equipment.len)
to_chat(user, "It's equipped with:")
for(var/obj/item/mecha_parts/mecha_equipment/ME in equipment)
- to_chat(user, "\icon[ME] [ME]")
+ to_chat(user, "[bicon(ME)] [ME]")
return
@@ -219,7 +219,7 @@
// return ..()
*/
-/obj/mecha/proc/click_action(atom/target,mob/user)
+/obj/mecha/proc/click_action(atom/target, mob/user, params)
if(!src.occupant || src.occupant != user ) return
if(user.stat || !user.canmove)
return
@@ -239,9 +239,9 @@
return
if(!target.Adjacent(src))
if(selected && selected.is_ranged())
- selected.action(target)
+ selected.action(target, params)
else if(selected && selected.is_melee())
- selected.action(target)
+ selected.action(target, params)
else
if(internal_damage&MECHA_INT_CONTROL_LOST)
target = safepick(oview(1,src))
@@ -1643,7 +1643,7 @@
/obj/mecha/proc/occupant_message(message as text)
if(message)
if(src.occupant && src.occupant.client)
- to_chat(src.occupant, "\icon[src] [message]")
+ to_chat(src.occupant, "[bicon(src)] [message]")
return
/obj/mecha/proc/log_message(message as text,red=null)
@@ -1991,4 +1991,4 @@
/obj/mecha/speech_bubble(var/bubble_state = "",var/bubble_loc = src, var/list/bubble_recipients = list())
- flick_overlay(image('icons/mob/talk.dmi', bubble_loc, bubble_state,MOB_LAYER+1), bubble_recipients, 30)
\ No newline at end of file
+ flick_overlay(image('icons/mob/talk.dmi', bubble_loc, bubble_state,MOB_LAYER+1), bubble_recipients, 30)
diff --git a/code/game/objects/effects/biomass_rift.dm b/code/game/objects/effects/biomass_rift.dm
index 247f485b570..5b4cf9970a5 100644
--- a/code/game/objects/effects/biomass_rift.dm
+++ b/code/game/objects/effects/biomass_rift.dm
@@ -6,6 +6,7 @@
density = 0
anchored = 1
layer = 20 //DEBUG
+ plane = HUD_PLANE //DEBUG
var/health = 10
var/stage = 1
var/obj/effect/rift/originalRift = null //the originating rift of that biomass
diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm
index 9445b5aa626..6bcfb253454 100644
--- a/code/game/objects/effects/decals/misc.dm
+++ b/code/game/objects/effects/decals/misc.dm
@@ -12,6 +12,7 @@
density = 0
anchored = 1
layer = 50
+ plane = HUD_PLANE
/obj/effect/decal/chempuff
name = "chemicals"
diff --git a/code/game/objects/effects/mines.dm b/code/game/objects/effects/mines.dm
index 6e54e69cf92..c9cb0c62eab 100644
--- a/code/game/objects/effects/mines.dm
+++ b/code/game/objects/effects/mines.dm
@@ -21,7 +21,7 @@
if(istype(M, /mob/living/carbon/human))
for(var/mob/O in viewers(world.view, src.loc))
- to_chat(O, "[M] triggered the \icon[src] [src]")
+ to_chat(O, "[M] triggered the [bicon(src)] [src]")
triggered = 1
call(src,triggerproc)(M)
diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm
index bc697657b98..a635d2fdad9 100644
--- a/code/game/objects/effects/misc.dm
+++ b/code/game/objects/effects/misc.dm
@@ -31,6 +31,7 @@
icon_state = "blank"
anchored = 1
layer = 99
+ plane = HUD_PLANE
mouse_opacity = 0
unacidable = 1//Just to be sure.
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index d18d51936fc..56f38507a42 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -125,5 +125,43 @@
loot = list(
/obj/structure/closet/crate/secure/loot = 20,
- "" = 80
+ "" = 80,
+ )
+
+/obj/effect/spawner/lootdrop/trade_sol_rare
+ name = "trader rare item spawner"
+ lootdoubles = 0
+ color = "#00FFFF"
+
+ loot = list(
+ /obj/item/weapon/card/emag_broken = 2,
+ /obj/item/weapon/defibrillator/compact/loaded = 2,
+ /obj/item/weapon/gun/energy/laser/retro = 2,
+ /obj/item/weapon/rcd/combat = 1,
+ /obj/item/weapon/rcd = 2,
+ )
+
+/obj/effect/spawner/lootdrop/trade_sol_common
+ name = "trader common item spawner"
+ lootdoubles = 0
+ color = "#00FFFF"
+
+ loot = list(
+ /obj/item/weapon/tank/anesthetic = 2,
+ /obj/item/weapon/weldingtool/hugetank = 2,
+ /obj/item/weapon/pickaxe/diamond = 1,
+ /obj/item/device/spacepod_equipment/weaponry/mining_laser = 1,
+ /obj/item/device/paicard = 2,
+ /obj/item/weapon/gun/projectile/automatic/pistol = 2,
+ /obj/item/device/megaphone = 2,
+ /obj/item/weapon/stock_parts/capacitor = 1,
+ /obj/item/weapon/stock_parts/cell/high = 1,
+ /obj/item/weapon/stock_parts/manipulator = 1,
+ /obj/item/weapon/stock_parts/matter_bin = 1,
+ /obj/item/weapon/stock_parts/micro_laser = 1,
+ /obj/item/weapon/stock_parts/scanning_module = 1,
+ /obj/item/weapon/spacecash/c200 = 1,
+ /obj/item/weapon/airlock_electronics = 1,
+ /obj/item/weapon/gun/energy/kinetic_accelerator/super = 1,
+ /obj/item/pizzabox = 3,
)
diff --git a/code/game/objects/items/devices/autopsy.dm b/code/game/objects/items/devices/autopsy.dm
index 25e4d12614d..be4009b0ed9 100644
--- a/code/game/objects/items/devices/autopsy.dm
+++ b/code/game/objects/items/devices/autopsy.dm
@@ -165,10 +165,12 @@
P.loc = usr
usr.r_hand = P
P.layer = 20
+ P.plane = HUD_PLANE
else if(!usr.l_hand)
P.loc = usr
usr.l_hand = P
P.layer = 20
+ P.plane = HUD_PLANE
if(istype(usr,/mob/living/carbon/human))
usr:update_inv_l_hand()
diff --git a/code/game/objects/items/devices/pizza_bomb.dm b/code/game/objects/items/devices/pizza_bomb.dm
index 984c98730f4..836da188bba 100644
--- a/code/game/objects/items/devices/pizza_bomb.dm
+++ b/code/game/objects/items/devices/pizza_bomb.dm
@@ -40,7 +40,7 @@
name = "pizza bomb"
desc = "OH GOD THAT'S NOT A PIZZA"
icon_state = "pizzabox_bomb"
- audible_message("\icon[src] *beep* *beep*")
+ audible_message("[bicon(src)] *beep* *beep*")
to_chat(user, "That's no pizza! That's a bomb!")
message_admins("[key_name_admin(usr)] has triggered a pizza bomb armed by [armer] at (JMP).")
log_game("[key_name(usr)] has triggered a pizza bomb armed by [armer] ([loc.x],[loc.y],[loc.z]).")
@@ -50,9 +50,9 @@
/obj/item/device/pizza_bomb/proc/go_boom()
if(disarmed)
- visible_message("\icon[src] Sparks briefly jump out of the [correct_wire] wire on \the [src], but it's disarmed!")
+ visible_message("[bicon(src)] Sparks briefly jump out of the [correct_wire] wire on \the [src], but it's disarmed!")
return
- src.audible_message("\icon[src] [src] beeps, \"Enjoy the pizza!\"")
+ src.audible_message("[bicon(src)] [src] beeps, \"Enjoy the pizza!\"")
src.visible_message("\The [src] violently explodes!")
explosion(src.loc,1,2,4,flame_range = 2) //Identical to a minibomb
qdel(src)
@@ -67,7 +67,7 @@
user.visible_message("[user] cuts the [chosen_wire] wire!", "You cut the [chosen_wire] wire!")
sleep(5)
if(chosen_wire == correct_wire)
- src.audible_message("\icon[src] \The [src] suddenly stops beeping and seems lifeless.")
+ src.audible_message("[bicon(src)] \The [src] suddenly stops beeping and seems lifeless.")
to_chat(user, "You did it!")
icon_state = "pizzabox_bomb_[correct_wire]"
name = "pizza bomb"
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index 2a1bc41970b..f05b179e62a 100644
--- a/code/game/objects/items/devices/traitordevices.dm
+++ b/code/game/objects/items/devices/traitordevices.dm
@@ -27,35 +27,34 @@ effective or pretty fucking useless.
origin_tech = "magnets=3;combat=3;syndicate=3"
var/times_used = 0 //Number of times it's been used.
- var/max_uses = 2
+ var/max_uses = 5
-
-/obj/item/device/batterer/attack_self(mob/living/carbon/user as mob, flag = 0, emp = 0)
- if(!user) return
+/obj/item/device/batterer/examine(mob/user)
+ ..(user)
if(times_used >= max_uses)
- to_chat(user, "\red The mind batterer has been burnt out!")
+ to_chat(user, "[src] is out of charge.")
+ if(times_used < max_uses)
+ to_chat(user, "[src] has [max_uses-times_used] charges left.")
+
+/obj/item/device/batterer/attack_self(mob/living/carbon/user, flag = 0, emp = 0)
+ if(!user)
+ return
+ if(times_used >= max_uses)
+ to_chat(user, "The mind batterer has been burnt out!")
return
- user.attack_log += text("\[[time_stamp()]\] Used [src] to knock down people in the area.")
- for(var/mob/living/carbon/human/M in orange(10, user))
- spawn()
- if(prob(50))
+ for(var/mob/living/carbon/human/M in oview(7, user))
+ if(prob(50))
+ M.Weaken(rand(4,7))
+ add_logs(M, user, "stunned", src)
+ to_chat(M, "You feel a tremendous, paralyzing wave flood your mind.")
+ else
+ to_chat(M, "You feel a sudden, electric jolt travel through your head.")
- M.Weaken(rand(10,20))
- if(prob(25))
- M.Stun(rand(5,10))
- to_chat(M, "\red You feel a tremendous, paralyzing wave flood your mind.")
- if(!iscarbon(user))
- M.LAssailant = null
- else
- M.LAssailant = user
- else
- to_chat(M, "\red You feel a sudden, electric jolt travel through your head.")
-
- playsound(src.loc, 'sound/misc/interference.ogg', 50, 1)
- to_chat(user, "\blue You trigger [src].")
- times_used += 1
+ playsound(loc, 'sound/misc/interference.ogg', 50, 1)
+ times_used++
+ to_chat(user, "You trigger [src]. It has [max_uses-times_used] charges left.")
if(times_used >= max_uses)
icon_state = "battererburnt"
diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm
index 9e4d83592b0..5b4afe8095c 100644
--- a/code/game/objects/items/devices/transfer_valve.dm
+++ b/code/game/objects/items/devices/transfer_valve.dm
@@ -9,6 +9,7 @@
var/mob/attacher = null
var/valve_open = 0
var/toggle = 1
+ origin_tech = "materials=1;engineering=1"
/obj/item/device/transfer_valve/proc/process_activation(var/obj/item/device/D)
@@ -187,7 +188,7 @@
attacher_name = "[key_name_admin(attacher)]"
var/mob/mob = get_mob_by_key(src.fingerprintslast)
-
+
bombers += "Bomb valve opened at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name(mob)]"
message_admins("Bomb valve opened at [A.name] (JMP) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name_admin(mob)]")
log_game("Bomb valve opened at [A.name] ([bombturf.x],[bombturf.y],[bombturf.z]) with [attached_device ? attached_device : "no device"], attached by [attacher_name]. Last touched by: [key_name(mob)]")
diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm
index 9b02799e496..575680f28ac 100644
--- a/code/game/objects/items/latexballoon.dm
+++ b/code/game/objects/items/latexballoon.dm
@@ -1,38 +1,45 @@
/obj/item/latexballon
- name = "Latex glove"
+ name = "latex glove"
desc = "" //todo
icon_state = "latexballon"
item_state = "lgloves"
force = 0
throwforce = 0
- w_class = 1.0
+ w_class = 1
throw_speed = 1
- throw_range = 15
+ throw_range = 7
var/state
var/datum/gas_mixture/air_contents = null
-/obj/item/latexballon/proc/blow(obj/item/weapon/tank/tank)
- if (icon_state == "latexballon_bursted")
+/obj/item/latexballon/proc/blow(obj/item/weapon/tank/tank, mob/user)
+ if(icon_state == "latexballon_bursted")
return
- src.air_contents = tank.remove_air_volume(3)
icon_state = "latexballon_blow"
item_state = "latexballon"
+ user.update_inv_r_hand()
+ user.update_inv_l_hand()
+ to_chat(user, "You blow up [src] with [tank].")
+ air_contents = tank.remove_air_volume(3)
/obj/item/latexballon/proc/burst()
- if (!air_contents)
+ if(!air_contents || icon_state != "latexballon_blow")
return
playsound(src, 'sound/weapons/Gunshot.ogg', 100, 1)
icon_state = "latexballon_bursted"
item_state = "lgloves"
+ if(isliving(loc))
+ var/mob/living/user = loc
+ user.update_inv_r_hand()
+ user.update_inv_l_hand()
loc.assume_air(air_contents)
/obj/item/latexballon/ex_act(severity)
burst()
switch(severity)
- if (1)
+ if(1)
qdel(src)
- if (2)
- if (prob(50))
+ if(2)
+ if(prob(50))
qdel(src)
/obj/item/latexballon/bullet_act()
@@ -43,6 +50,10 @@
burst()
return
-/obj/item/latexballon/attackby(obj/item/W as obj, mob/user as mob, params)
- if (can_puncture(W))
+/obj/item/latexballon/attackby(obj/item/W, mob/user, params)
+ if(istype(W, /obj/item/weapon/tank))
+ var/obj/item/weapon/tank/T = W
+ blow(T, user)
+ return
+ if(is_sharp(W) || is_hot(W) || can_puncture(W))
burst()
\ No newline at end of file
diff --git a/code/game/objects/items/policetape.dm b/code/game/objects/items/policetape.dm
index 9b1f27dea1b..ad46a511641 100644
--- a/code/game/objects/items/policetape.dm
+++ b/code/game/objects/items/policetape.dm
@@ -147,17 +147,14 @@ var/list/tape_roll_applications = list()
tape_roll_applications[F] |= direction
return
-/obj/item/tape/Bumped(M as mob)
- if(src.allowed(M))
- var/turf/T = get_turf(src)
- M:loc = T
-
/obj/item/tape/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(!density) return 1
if(air_group || (height==0)) return 1
if ((mover.pass_flags & PASSTABLE || istype(mover, /obj/effect/meteor) || mover.throwing == 1) )
return 1
+ else if(ismob(mover) && allowed(mover))
+ return 1
else
return 0
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index bfb90de8cac..512baa30703 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -125,13 +125,13 @@
to_chat(usr, "This robot has had its disabler removed!")
return 0
- if(T.recharge_time <= 2)
+ if(T.charge_delay <= 2)
to_chat(R, "Maximum cooling achieved for this hardpoint!")
to_chat(usr, "There's no room for another cooling unit!")
return 0
else
- T.recharge_time = max(2 , T.recharge_time - 4)
+ T.charge_delay = max(2 , T.charge_delay - 4)
return 1
@@ -214,4 +214,4 @@
return 0
R.emagged = 1
- return 1
\ No newline at end of file
+ return 1
diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm
index c71f2e14182..fd3f5505f4f 100644
--- a/code/game/objects/items/shooting_range.dm
+++ b/code/game/objects/items/shooting_range.dm
@@ -114,7 +114,7 @@
bmark.pixel_x--
bmark.pixel_y--
- if(Proj.damage >= 20 || istype(Proj, /obj/item/projectile/practice))
+ if(Proj.damage >= 20 || istype(Proj, /obj/item/projectile/beam/practice))
bmark.icon_state = "scorch"
bmark.dir = pick(NORTH,SOUTH,EAST,WEST) // random scorch design
@@ -178,4 +178,4 @@
b2y1 = pixel_y + pick(1,1,1,1,2,2,3,3,4)
b2y2 = pixel_y - pick(1,1,1,1,2,2,3,3,4)
- Target.bulletholes.Add(src)
\ No newline at end of file
+ Target.bulletholes.Add(src)
diff --git a/code/game/objects/items/stacks/rods.dm b/code/game/objects/items/stacks/rods.dm
index e41457f0c38..efba4f62a77 100644
--- a/code/game/objects/items/stacks/rods.dm
+++ b/code/game/objects/items/stacks/rods.dm
@@ -80,7 +80,7 @@
return
to_chat(usr, "\blue Assembling grille...")
- if (!do_after(usr, 10, target = src))
+ if (!do_after(usr, 10, target = user))
return
var /obj/structure/grille/F = new /obj/structure/grille/ ( usr.loc )
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 3fe6dc7102f..50dc5c3b467 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -140,7 +140,6 @@ var/global/list/datum/stack_recipe/wood_recipes = list ( \
new/datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("bookcase", /obj/structure/bookcase, 5, time = 50, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("rifle stock", /obj/item/weaponcrafting/stock, 10, time = 40), \
- new/datum/stack_recipe("crossbow frame", /obj/item/weapon/crossbowframe, 5, time = 25, one_per_turf = 0, on_floor = 0), \
new/datum/stack_recipe("wooden door", /obj/structure/mineral_door/wood, 10, time = 20, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("coffin", /obj/structure/closet/coffin, 5, time = 15, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("easel", /obj/structure/easel, 3, one_per_turf = 1, on_floor = 1), \
diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm
index 2aa35527fea..bd799640122 100644
--- a/code/game/objects/items/stacks/stack.dm
+++ b/code/game/objects/items/stacks/stack.dm
@@ -130,7 +130,7 @@
return
if (R.time)
to_chat(usr, "\blue Building [R.title] ...")
- if (!do_after(usr, R.time, target = src))
+ if (!do_after(usr, R.time, target = usr))
return
if (src.amount < R.req_amount*multiplier)
return
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 25ade73eb38..6907ea08671 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -1130,7 +1130,7 @@ obj/item/toy/cards/deck/syndicate/black
var/message = generate_ion_law()
to_chat(user, "You press the button on [src].")
playsound(user, 'sound/machines/click.ogg', 20, 1)
- visible_message("\icon[src] [message]")
+ visible_message("[bicon(src)] [message]")
cooldown = 1
spawn(30) cooldown = 0
return
@@ -1149,7 +1149,7 @@ obj/item/toy/cards/deck/syndicate/black
var/message = pick("You won't get away this time, Griffin!", "Stop right there, criminal!", "Hoot! Hoot!", "I am the night!")
to_chat(user, "You pull the string on the [src].")
playsound(user, 'sound/misc/hoot.ogg', 25, 1)
- visible_message("\icon[src] [message]")
+ visible_message("[bicon(src)] [message]")
cooldown = 1
spawn(30) cooldown = 0
return
@@ -1168,7 +1168,7 @@ obj/item/toy/cards/deck/syndicate/black
var/message = pick("You can't stop me, Owl!", "My plan is flawless! The vault is mine!", "Caaaawwww!", "You will never catch me!")
to_chat(user, "You pull the string on the [src].")
playsound(user, 'sound/misc/caw.ogg', 25, 1)
- visible_message("\icon[src] [message]")
+ visible_message("[bicon(src)] [message]")
cooldown = 1
spawn(30) cooldown = 0
return
@@ -1274,12 +1274,12 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/toy/minigibber/attackby(var/obj/O, var/mob/user, params)
if(istype(O,/obj/item/toy/character) && O.loc == user)
- to_chat(user, "You start feeding \the [O] \icon[O] into \the [src]'s mini-input.")
+ to_chat(user, "You start feeding \the [O] [bicon(O)] into \the [src]'s mini-input.")
if(do_after(user,10, target = src))
if(O.loc != user)
to_chat(user, "\The [O] is too far away to feed into \the [src]!")
else
- to_chat(user, "You feed \the [O] \icon[O] into \the [src]!")
+ to_chat(user, "You feed \the [O] [bicon(O)] into \the [src]!")
user.unEquip(O)
O.forceMove(src)
stored_minature = O
@@ -1305,7 +1305,7 @@ obj/item/toy/cards/deck/syndicate/black
user.visible_message("[user] pulls back the string on [src].")
icon_state = "[initial(icon_state)]_used"
sleep(5)
- audible_message("\icon[src] Hiss!")
+ audible_message("[bicon(src)] Hiss!")
var/list/possible_sounds = list('sound/voice/hiss1.ogg', 'sound/voice/hiss2.ogg', 'sound/voice/hiss3.ogg', 'sound/voice/hiss4.ogg')
playsound(get_turf(src), pick(possible_sounds), 50, 1)
spawn(45)
@@ -1318,7 +1318,7 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/toy/russian_revolver
name = "russian revolver"
desc = "for fun and games!"
- icon = 'icons/obj/gun.dmi'
+ icon = 'icons/obj/guns/projectile.dmi'
icon_state = "detective_gold"
item_state = "gun"
lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi'
@@ -1431,7 +1431,7 @@ obj/item/toy/cards/deck/syndicate/black
/obj/item/toy/figure/attack_self(mob/user as mob)
if(cooldown < world.time)
cooldown = (world.time + 30) //3 second cooldown
- user.visible_message("\icon[src] The [src] says \"[toysay]\".")
+ user.visible_message("[bicon(src)] The [src] says \"[toysay]\".")
playsound(user, 'sound/machines/click.ogg', 20, 1)
/obj/item/toy/figure/cmo
@@ -1632,7 +1632,7 @@ obj/item/toy/cards/deck/syndicate/black
if(!cooldown)
var/answer = pick(possible_answers)
user.visible_message("[user] focuses on their question and [use_action]...")
- user.visible_message("\icon[src] The [src] says \"[answer]\"")
+ user.visible_message("[bicon(src)] The [src] says \"[answer]\"")
spawn(30)
cooldown = 0
return
diff --git a/code/game/objects/items/weapons/AI_modules.dm b/code/game/objects/items/weapons/AI_modules.dm
index 1ed57a6b5fd..9c231fbb4a3 100755
--- a/code/game/objects/items/weapons/AI_modules.dm
+++ b/code/game/objects/items/weapons/AI_modules.dm
@@ -397,4 +397,4 @@ AI MODULES
laws[1] = generate_ion_law()
to_chat(user, "You press the button on [src].")
playsound(user, 'sound/machines/click.ogg', 20, 1)
- src.loc.visible_message("\icon[src] [laws[1]]")
\ No newline at end of file
+ src.loc.visible_message("[bicon(src)] [laws[1]]")
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm
index 5d85ea20e2b..d5bbdf24a90 100644
--- a/code/game/objects/items/weapons/RCD.dm
+++ b/code/game/objects/items/weapons/RCD.dm
@@ -26,232 +26,315 @@ RCD
var/working = 0
var/mode = 1
var/canRwall = 0
+ var/menu = 1
+ var/door_type = /obj/machinery/door/airlock
+ req_access = list(access_engine)
+ var/list/door_accesses = list()
+ var/list/door_accesses_list = list()
+ var/one_access
+ var/locked = 1
+ var/static/list/allowed_door_types = list(/obj/machinery/door/airlock = "Standard",
+ /obj/machinery/door/airlock/command = "Command", /obj/machinery/door/airlock/security = "Security",
+ /obj/machinery/door/airlock/engineering = "Engineering", /obj/machinery/door/airlock/medical = "Medical",
+ /obj/machinery/door/airlock/maintenance = "Maintenance", /obj/machinery/door/airlock/external = "External",
+ /obj/machinery/door/airlock/glass = "Standard (Glass)", /obj/machinery/door/airlock/freezer = "Freezer",
+ /obj/machinery/door/airlock/glass_command = "Command (Glass)", /obj/machinery/door/airlock/glass_engineering = "Engineering (Glass)",
+ /obj/machinery/door/airlock/glass_security = "Security (Glass)", /obj/machinery/door/airlock/glass_medical = "Medical (Glass)",
+ /obj/machinery/door/airlock/mining = "Mining", /obj/machinery/door/airlock/atmos = "Atmospherics",
+ /obj/machinery/door/airlock/research = "Research", /obj/machinery/door/airlock/glass_research = "Research (Glass)",
+ /obj/machinery/door/airlock/glass_mining = "Mining (Glass)", /obj/machinery/door/airlock/glass_atmos = "Atmospherics (Glass)")
- New()
+/obj/item/weapon/rcd/New()
+ desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
+ spark_system = new /datum/effect/system/spark_spread
+ spark_system.set_up(5, 0, src)
+ spark_system.attach(src)
+ rcd_list += src
+ door_accesses_list = list()
+ for(var/access in get_all_accesses())
+ door_accesses_list[++door_accesses_list.len] = list("name" = get_access_desc(access), "id" = access, "enabled" = (access in door_accesses))
+ return
+
+/obj/item/weapon/rcd/Destroy()
+ qdel(spark_system)
+ spark_system = null
+ rcd_list -= src
+ return ..()
+
+/obj/item/weapon/rcd/attackby(obj/item/weapon/W, mob/user, params)
+ ..()
+ if(istype(W, /obj/item/weapon/rcd_ammo))
+ var/obj/item/weapon/rcd_ammo/R = W
+ if((matter + R.ammoamt) > max_matter)
+ to_chat(user, "The RCD cant hold any more matter-units.")
+ return
+ matter += R.ammoamt
+ user.drop_item()
+ qdel(W)
+ playsound(loc, 'sound/machines/click.ogg', 50, 1)
+ to_chat(user, "The RCD now holds [matter]/[max_matter] matter-units.")
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
- src.spark_system = new /datum/effect/system/spark_spread
- spark_system.set_up(5, 0, src)
- spark_system.attach(src)
- rcd_list += src
+ nanomanager.update_uis(src)
return
- Destroy()
- qdel(spark_system)
- spark_system = null
- rcd_list -= src
- return ..()
- attackby(obj/item/weapon/W, mob/user, params)
- ..()
- if(istype(W, /obj/item/weapon/rcd_ammo))
- var/obj/item/weapon/rcd_ammo/R = W
- if((matter + R.ammoamt) > max_matter)
- to_chat(user, "The RCD cant hold any more matter-units.")
- return
- matter += R.ammoamt
- user.drop_item()
- qdel(W)
- playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
- to_chat(user, "The RCD now holds [matter]/[max_matter] matter-units.")
- desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
+/obj/item/weapon/rcd/attack_self(mob/user)
+ //Change the mode
+ ui_interact(user)
+
+/obj/item/weapon/rcd/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = inventory_state)
+ var/list/data = list()
+ data["mode"] = mode
+ data["door_type"] = door_type
+ data["menu"] = menu
+ data["matter"] = matter
+ data["max_matter"] = max_matter
+ data["one_access"] = one_access
+ data["locked"] = locked
+
+ if(menu == 2)
+ var/list/door_types_list = list()
+ for(var/type in allowed_door_types)
+ door_types_list[++door_types_list.len] = list("name" = allowed_door_types[type], "type" = type)
+ data["allowed_door_types"] = door_types_list
+
+ data["door_accesses"] = door_accesses_list
+
+ ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
+ if (!ui)
+ ui = new(user, src, ui_key, "rcd.tmpl", "[name]", 400, 400, state = state)
+ ui.set_initial_data(data)
+ ui.open()
+ ui.set_auto_update(1)
+
+/obj/item/weapon/rcd/Topic(href, href_list, nowindow, state)
+ if(..())
+ return 1
+
+ if(prob(20))
+ spark_system.start()
+
+ if(href_list["mode"])
+ mode = text2num(href_list["mode"])
+ . = 1
+
+ if(href_list["door_type"])
+ var/new_door_type = text2path(href_list["door_type"])
+ if(!(new_door_type in allowed_door_types))
+ message_admins("RCD HREF exploit attempted by [key_name(usr, usr.client)]!")
return
+ door_type = new_door_type
+ . = 1
+
+ if(href_list["menu"])
+ menu = text2num(href_list["menu"])
+ . = 1
+
+ if (href_list["login"])
+ if(istype(usr,/mob/living/silicon))
+ locked = 0
+ else
+ var/obj/item/I = usr.get_active_hand()
+ if (istype(I, /obj/item/device/pda))
+ var/obj/item/device/pda/pda = I
+ I = pda.id
+ var/obj/item/weapon/card/id/ID = I
+ if (istype(ID) && ID && check_access(ID))
+ locked = 0
+ . = 1
+
+ if (href_list["logout"])
+ locked = 1
+ . = 1
+
+ if(href_list["toggle_one_access"] && !locked)
+ one_access = !one_access
+ . = 1
+
+ if(href_list["toggle_access"] && !locked)
+ var/href_access = text2num(href_list["toggle_access"])
+ if(href_access in door_accesses)
+ door_accesses -= href_access
+ else
+ door_accesses += href_access
+ door_accesses_list = list()
+ for(var/access in get_all_accesses())
+ door_accesses_list[++door_accesses_list.len] = list("name" = get_access_desc(access), "id" = access, "enabled" = (access in door_accesses))
+ . = 1
+
+/obj/item/weapon/rcd/proc/activate()
+ playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1)
- attack_self(mob/user)
- //Change the mode
- playsound(src.loc, 'sound/effects/pop.ogg', 50, 0)
- switch(mode)
- if(1)
- mode = 2
- to_chat(user, "Changed mode to 'Airlock'")
- if(prob(20))
- src.spark_system.start()
- return
- if(2)
- mode = 3
- to_chat(user, "Changed mode to 'Deconstruct'")
- if(prob(20))
- src.spark_system.start()
- return
- if(3)
- mode = 4
- to_chat(user, "Changed mode to 'Windows'")
- if(prob(20))
- src.spark_system.start()
- return
- if(4)
- mode = 1
- to_chat(user, "Changed mode to 'Floor & Walls'")
- if(prob(20))
- src.spark_system.start()
- return
+/obj/item/weapon/rcd/afterattack(atom/A, mob/user, proximity)
+ if(!proximity) return
+ if(istype(A,/area/shuttle)||istype(A,/turf/space/transit))
+ return 0
+ if(!(istype(A, /turf) || istype(A, /obj/machinery/door/airlock) || istype(A, /obj/structure/grille) || istype(A, /obj/structure/window)))
+ return 0
- proc/activate()
- playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
+ switch(mode)
+ if(1)
+ if(istype(A, /turf/space))
+ if(useResource(1, user))
+ to_chat(user, "Building Floor...")
+ activate()
+ var/turf/AT = A
+ AT.ChangeTurf(/turf/simulated/floor/plating)
+ return 1
+ return 0
+ if(istype(A, /turf/simulated/floor))
+ if(checkResource(3, user))
+ to_chat(user, "Building Wall ...")
+ playsound(loc, 'sound/machines/click.ogg', 50, 1)
+ if(do_after(user, 20, target = A))
+ if(!useResource(3, user)) return 0
+ activate()
+ var/turf/AT = A
+ AT.ChangeTurf(/turf/simulated/wall)
+ return 1
+ return 0
- afterattack(atom/A, mob/user, proximity)
- if(!proximity) return
- if(istype(A,/area/shuttle)||istype(A,/turf/space/transit))
- return 0
- if(!(istype(A, /turf) || istype(A, /obj/machinery/door/airlock) || istype(A, /obj/structure/grille) || istype(A, /obj/structure/window)))
- return 0
+ if(2)
+ if(istype(A, /turf/simulated/floor))
+ if(checkResource(10, user))
+ to_chat(user, "Building Airlock...")
+ playsound(loc, 'sound/machines/click.ogg', 50, 1)
+ if(do_after(user, 50, target = A))
+ if(!useResource(10, user)) return 0
+ activate()
+ var/obj/machinery/door/airlock/T = new door_type(A)
+ T.autoclose = 1
+ if(one_access)
+ T.req_one_access = door_accesses
+ else
+ T.req_access = door_accesses
+ return 1
+ return 0
+ return 0
- switch(mode)
- if(1)
- if(istype(A, /turf/space))
- if(useResource(1, user))
- to_chat(user, "Building Floor...")
+ if(3)
+ if(istype(A, /turf/simulated/wall))
+ if(istype(A, /turf/simulated/wall/r_wall) && !canRwall)
+ return 0
+ if(checkResource(5, user))
+ to_chat(user, "Deconstructing Wall...")
+ playsound(loc, 'sound/machines/click.ogg', 50, 1)
+ if(do_after(user, 40, target = A))
+ if(!useResource(5, user)) return 0
activate()
var/turf/AT = A
AT.ChangeTurf(/turf/simulated/floor/plating)
return 1
- return 0
+ return 0
- if(istype(A, /turf/simulated/floor))
- if(checkResource(3, user))
- to_chat(user, "Building Wall ...")
- playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
- if(do_after(user, 20, target = A))
- if(!useResource(3, user)) return 0
- activate()
- var/turf/AT = A
- AT.ChangeTurf(/turf/simulated/wall)
- return 1
- return 0
+ if(istype(A, /turf/simulated/floor))
+ if(checkResource(5, user))
+ to_chat(user, "Deconstructing Floor...")
+ playsound(loc, 'sound/machines/click.ogg', 50, 1)
+ if(do_after(user, 50, target = A))
+ if(!useResource(5, user)) return 0
+ activate()
+ var/turf/AT = A
+ AT.ChangeTurf(/turf/space)
+ return 1
+ return 0
- if(2)
- if(istype(A, /turf/simulated/floor))
- if(checkResource(10, user))
- to_chat(user, "Building Airlock...")
- playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
- if(do_after(user, 50, target = A))
- if(!useResource(10, user)) return 0
- activate()
- var/obj/machinery/door/airlock/T = new /obj/machinery/door/airlock( A )
- T.autoclose = 1
- return 1
- return 0
- return 0
-
- if(3)
- if(istype(A, /turf/simulated/wall))
- if(istype(A, /turf/simulated/wall/r_wall) && !canRwall)
- return 0
- if(checkResource(5, user))
- to_chat(user, "Deconstructing Wall...")
- playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
- if(do_after(user, 40, target = A))
- if(!useResource(5, user)) return 0
- activate()
- var/turf/AT = A
- AT.ChangeTurf(/turf/simulated/floor/plating)
- return 1
- return 0
-
- if(istype(A, /turf/simulated/floor))
- if(checkResource(5, user))
- to_chat(user, "Deconstructing Floor...")
- playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
- if(do_after(user, 50, target = A))
- if(!useResource(5, user)) return 0
- activate()
- var/turf/AT = A
- AT.ChangeTurf(/turf/space)
- return 1
- return 0
-
- if(istype(A, /obj/machinery/door/airlock))
- if(checkResource(20, user))
- to_chat(user, "Deconstructing Airlock...")
- playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
- if(do_after(user, 50, target = A))
- if(!useResource(20, user)) return 0
- activate()
- qdel(A)
- return 1
- return 0
+ if(istype(A, /obj/machinery/door/airlock))
+ if(checkResource(20, user))
+ to_chat(user, "Deconstructing Airlock...")
+ playsound(loc, 'sound/machines/click.ogg', 50, 1)
+ if(do_after(user, 50, target = A))
+ if(!useResource(20, user)) return 0
+ activate()
+ qdel(A)
+ return 1
+ return 0
- if(istype(A, /obj/structure/window)) // You mean the grille of course, do you?
- A = locate(/obj/structure/grille) in A.loc
-
- if(istype(A, /obj/structure/grille))
- if(!checkResource(2, user))
- return 0
- to_chat(user, "Deconstructing window...")
- playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
- if(!do_after(user, 20, target = A))
- return 0
- if(locate(/obj/structure/window/full/shuttle) in A.contents)
- return 0 // Let's not give shuttle-griefers an easy time.
- if(!useResource(2, user))
- return 0
- activate()
- var/turf/T1 = get_turf(A)
- qdel(A)
- A = null
- for(var/obj/structure/window/W in T1.contents)
- W.disassembled = 1
- W.density = 0
- qdel(W)
- for(var/cdir in cardinal)
- var/turf/T2 = get_step(T1, cdir)
- if(locate(/obj/structure/window/full/shuttle) in T2.contents)
- continue // Shuttle windows? Nah. We don't need extra windows there.
- if(!(locate(/obj/structure/grille) in T2.contents))
- continue
- for(var/obj/structure/window/W in T2.contents)
+ if(istype(A, /obj/structure/window)) // You mean the grille of course, do you?
+ A = locate(/obj/structure/grille) in A.loc
+
+ if(istype(A, /obj/structure/grille))
+ if(!checkResource(2, user))
+ return 0
+ to_chat(user, "Deconstructing window...")
+ playsound(loc, 'sound/machines/click.ogg', 50, 1)
+ if(!do_after(user, 20, target = A))
+ return 0
+ if(locate(/obj/structure/window/full/shuttle) in A.contents)
+ return 0 // Let's not give shuttle-griefers an easy time.
+ if(!useResource(2, user))
+ return 0
+ activate()
+ var/turf/T1 = get_turf(A)
+ qdel(A)
+ A = null
+ for(var/obj/structure/window/W in T1.contents)
+ W.disassembled = 1
+ W.density = 0
+ qdel(W)
+ for(var/cdir in cardinal)
+ var/turf/T2 = get_step(T1, cdir)
+ if(locate(/obj/structure/window/full/shuttle) in T2.contents)
+ continue // Shuttle windows? Nah. We don't need extra windows there.
+ if(!(locate(/obj/structure/grille) in T2.contents))
+ continue
+ for(var/obj/structure/window/W in T2.contents)
+ if(W.dir == turn(cdir, 180))
+ W.disassembled = 1
+ W.density = 0
+ qdel(W)
+ var/obj/structure/window/reinforced/W = new(T2)
+ W.dir = turn(cdir, 180)
+ return 1
+ return 0
+ if(4)
+ if(istype(A, /turf/simulated/floor))
+ if(locate(/obj/structure/grille) in contents)
+ return 0 // We already have window
+ if(!checkResource(2, user))
+ return 0
+ to_chat(user, "Constructing window...")
+ playsound(loc, 'sound/machines/click.ogg', 50, 1)
+ if(!do_after(user, 20, target = A))
+ return 0
+ if(locate(/obj/structure/grille) in A.contents)
+ return 0 // We already have window
+ if(!useResource(2, user))
+ return 0
+ activate()
+ new /obj/structure/grille(A)
+ for(var/obj/structure/window/W in contents)
+ W.disassembled = 1 // Prevent that annoying glass breaking sound
+ W.density = 0
+ qdel(W)
+ for(var/cdir in cardinal)
+ var/turf/T = get_step(A, cdir)
+ if(locate(/obj/structure/grille) in T.contents)
+ for(var/obj/structure/window/W in T.contents)
if(W.dir == turn(cdir, 180))
W.disassembled = 1
W.density = 0
qdel(W)
- var/obj/structure/window/reinforced/W = new(T2)
- W.dir = turn(cdir, 180)
- return 1
- return 0
- if(4)
- if(istype(A, /turf/simulated/floor))
- if(locate(/obj/structure/grille) in contents)
- return 0 // We already have window
- if(!checkResource(2, user))
- return 0
- to_chat(user, "Constructing window...")
- playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
- if(!do_after(user, 20, target = A))
- return 0
- if(locate(/obj/structure/grille) in A.contents)
- return 0 // We already have window
- if(!useResource(2, user))
- return 0
- activate()
- new /obj/structure/grille(A)
- for(var/obj/structure/window/W in contents)
- W.disassembled = 1 // Prevent that annoying glass breaking sound
- W.density = 0
- qdel(W)
- for(var/cdir in cardinal)
- var/turf/T = get_step(A, cdir)
- if(locate(/obj/structure/grille) in T.contents)
- for(var/obj/structure/window/W in T.contents)
- if(W.dir == turn(cdir, 180))
- W.disassembled = 1
- W.density = 0
- qdel(W)
- else // Build a window!
- var/obj/structure/window/reinforced/W = new(A)
- W.dir = cdir
- var/turf/AT = A
- AT.ChangeTurf(/turf/simulated/floor/plating) // Platings go under windows.
- return 1
- else
- to_chat(user, "ERROR: RCD in MODE: [mode] attempted use by [user]. Send this text #coderbus or an admin.")
- return 0
+ else // Build a window!
+ var/obj/structure/window/reinforced/W = new(A)
+ W.dir = cdir
+ var/turf/AT = A
+ AT.ChangeTurf(/turf/simulated/floor/plating) // Platings go under windows.
+ return 1
+ else
+ to_chat(user, "ERROR: RCD in MODE: [mode] attempted use by [user]. Send this text #coderbus or an admin.")
+ return 0
+
+ nanomanager.update_uis(src)
/obj/item/weapon/rcd/proc/useResource(var/amount, var/mob/user)
if(matter < amount)
return 0
matter -= amount
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
+ nanomanager.update_uis(src)
return 1
/obj/item/weapon/rcd/proc/checkResource(var/amount, var/mob/user)
diff --git a/code/game/objects/items/weapons/bee_briefcase.dm b/code/game/objects/items/weapons/bee_briefcase.dm
index 5c3e9afff5d..665ad549bd2 100644
--- a/code/game/objects/items/weapons/bee_briefcase.dm
+++ b/code/game/objects/items/weapons/bee_briefcase.dm
@@ -2,6 +2,7 @@
/obj/item/weapon/bee_briefcase
name = "briefcase"
desc = "This briefcase has easy-release clasps and smells vaguely of honey and blood..."
+ description_antag = "A briefcase filled with deadly bees, you should inject this with a syringe of your own blood before opening it."
icon = 'icons/obj/storage.dmi'
icon_state = "briefcase"
item_state = "briefcase"
@@ -27,7 +28,6 @@
/obj/item/weapon/bee_briefcase/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/weapon/reagent_containers/syringe))
-
var/obj/item/weapon/reagent_containers/syringe/S = I
if(!bees_left)
to_chat(user, "The briefcase is empty, so there is no point in injecting something into it.")
@@ -46,7 +46,6 @@
to_chat(user, "The buzzing inside the briefcase swells momentarily, then returns to normal. Guess it was too cramped...")
S.reagents.clear_reagents()
S.update_icon()
-
else if(istype(I, /obj/item/weapon/plantspray))
var/obj/item/weapon/plantspray/PS = I
user.drop_item(PS)
diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 79c6466235b..97f66ec6a72 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -150,8 +150,8 @@
return
/obj/item/weapon/card/id/attack_self(mob/user as mob)
- user.visible_message("[user] shows you: \icon[src] [src.name]. The assignment on the card: [src.assignment]",\
- "You flash your ID card: \icon[src] [src.name]. The assignment on the card: [src.assignment]")
+ user.visible_message("[user] shows you: [bicon(src)] [src.name]. The assignment on the card: [src.assignment]",\
+ "You flash your ID card: [bicon(src)] [src.name]. The assignment on the card: [src.assignment]")
if(mining_points)
to_chat(user, "There's [mining_points] mining equipment redemption points loaded onto this card.")
src.add_fingerprint(user)
diff --git a/code/game/objects/items/weapons/cash.dm b/code/game/objects/items/weapons/cash.dm
index 6a1d6c0c360..ab6ff1fac8e 100644
--- a/code/game/objects/items/weapons/cash.dm
+++ b/code/game/objects/items/weapons/cash.dm
@@ -37,9 +37,9 @@ var/global/list/moneytypes=list(
/obj/item/weapon/spacecash/examine(mob/user)
if(amount>1)
- to_chat(user, "\icon[src] This is a stack of [amount] [src]s.")
+ to_chat(user, "[bicon(src)] This is a stack of [amount] [src]s.")
else
- to_chat(user, "\icon[src] This is \a [src]s.")
+ to_chat(user, "[bicon(src)] This is \a [src]s.")
to_chat(user, "It's worth [worth*amount] credits.")
/obj/item/weapon/spacecash/update_icon()
diff --git a/code/game/objects/items/weapons/chrono_eraser.dm b/code/game/objects/items/weapons/chrono_eraser.dm
index e0ac96c4feb..b0a1c45622d 100644
--- a/code/game/objects/items/weapons/chrono_eraser.dm
+++ b/code/game/objects/items/weapons/chrono_eraser.dm
@@ -41,12 +41,11 @@
icon = 'icons/obj/chronos.dmi'
icon_state = "chronogun"
item_state = "chronogun"
- w_class = 3.0
- projectile_type = "/obj/item/projectile/energy/chrono_beam"
- fire_sound = 'sound/weapons/Laser.ogg'
- charge_cost = 0
- fire_delay = 50
+ w_class = 3
flags = NODROP
+ ammo_type = list(/obj/item/ammo_casing/energy/chrono_beam)
+ can_charge = 0
+ fire_delay = 50
var/obj/item/weapon/chrono_eraser/TED = null
var/obj/effect/chrono_field/field = null
var/turf/startpos = null
@@ -60,12 +59,13 @@
qdel(src)
/obj/item/weapon/gun/energy/chrono_gun/dropped()
+ ..()
qdel(src)
/obj/item/weapon/gun/energy/chrono_gun/update_icon()
return
-/obj/item/weapon/gun/energy/chrono_gun/Fire()
+/obj/item/weapon/gun/energy/chrono_gun/process_fire()
if(field)
field_disconnect(field)
..()
@@ -125,18 +125,23 @@
nodamage = 1
var/obj/item/weapon/gun/energy/chrono_gun/gun = null
-/obj/item/projectile/energy/chrono_beam/process()
+/obj/item/projectile/energy/chrono_beam/fire()
gun = firer.get_active_hand()
if(istype(gun))
return ..()
else
return 0
-/obj/item/projectile/energy/chrono_beam/on_hit(var/atom/target)
+/obj/item/projectile/energy/chrono_beam/on_hit(atom/target)
if(target && gun && isliving(target))
var/obj/effect/chrono_field/F = new(target.loc, target, gun)
gun.field_connect(F)
+/obj/item/ammo_casing/energy/chrono_beam
+ name = "eradication beam"
+ projectile_type = /obj/item/projectile/energy/chrono_beam
+ icon_state = "chronobolt"
+ e_cost = 0
/obj/effect/chrono_field
name = "eradication field"
@@ -256,4 +261,4 @@
#undef CHRONO_BEAM_RANGE
-#undef CHRONO_FRAME_COUNT
\ No newline at end of file
+#undef CHRONO_FRAME_COUNT
diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm
index 73eda279b3d..3e8e5f13c2a 100644
--- a/code/game/objects/items/weapons/defib.dm
+++ b/code/game/objects/items/weapons/defib.dm
@@ -331,6 +331,8 @@
H.updatehealth() //forces health update before next life tick
playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1)
H.emote("gasp")
+ if(!H.heart_attack && (prob(10) || defib.combat)) // Your heart explodes.
+ H.heart_attack = 1
add_logs(M, user, "stunned", object="defibrillator")
defib.deductcharge(revivecost)
cooldown = 1
@@ -354,8 +356,8 @@
qdel(ghost)
ghost = null
var/tplus = world.time - H.timeofdeath
- var/tlimit = 6000 //past this much time the patient is unrecoverable (in deciseconds)
- var/tloss = 3000 //brain damage starts setting in on the patient after some time left rotting
+ var/tlimit = 1800 //past this much time the patient is unrecoverable (in deciseconds)
+ var/tloss = 600 //brain damage starts setting in on the patient after some time left rotting
var/total_burn = 0
var/total_brute = 0
if(do_after(user, 20, target = M)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total
@@ -368,8 +370,26 @@
update_icon()
return
if(H.heart_attack)
- H.heart_attack = 0
- if(H.stat == 2)
+ if(!H.get_int_organ(/obj/item/organ/internal/heart) && !H.get_int_organ(/obj/item/organ/internal/brain/slime)) //prevents defibing someone still alive suffering from a heart attack attack if they lack a heart
+ user.visible_message("[defib] buzzes: Resuscitation failed - Failed to pick up any heart electrical activity.")
+ playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0)
+ busy = 0
+ update_icon()
+ return
+ else
+ H.heart_attack = 0
+ user.visible_message("[defib] pings: Cardiac arrhythmia corrected.")
+ M.visible_message("[M]'s body convulses a bit.")
+ playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1)
+ playsound(get_turf(src), "bodyfall", 50, 1)
+ playsound(get_turf(src), 'sound/machines/defib_success.ogg', 50, 0)
+ defib.deductcharge(revivecost)
+ busy = 0
+ cooldown = 1
+ update_icon()
+ defib.cooldowncheck(user)
+ return
+ if(H.stat == DEAD)
var/health = H.health
M.visible_message("[M]'s body convulses a bit.")
playsound(get_turf(src), "bodyfall", 50, 1)
@@ -377,7 +397,7 @@
for(var/obj/item/organ/external/O in H.organs)
total_brute += O.brute_dam
total_burn += O.burn_dam
- if(total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations))
+ if(total_burn <= 180 && total_brute <= 180 && !H.suiciding && !ghost && tplus < tlimit && !(NOCLONE in H.mutations) && (H.get_int_organ(/obj/item/organ/internal/heart) || H.get_int_organ(/obj/item/organ/internal/brain/slime)))
tobehealed = min(health + threshold, 0) // It's HILARIOUS without this min statement, let me tell you
tobehealed -= 5 //They get 5 of each type of damage healed so excessive combined damage will not immediately kill them after they get revived
H.adjustOxyLoss(tobehealed)
@@ -452,6 +472,8 @@
H.adjustStaminaLoss(50)
H.Weaken(5)
H.updatehealth() //forces health update before next life tick
+ if(!H.heart_attack && prob(10)) // Your heart explodes.
+ H.heart_attack = 1
playsound(get_turf(src), 'sound/machines/defib_zap.ogg', 50, 1, -1)
H.emote("gasp")
add_logs(M, user, "stunned", object="defibrillator")
@@ -481,8 +503,8 @@
qdel(ghost)
ghost = null
var/tplus = world.time - H.timeofdeath
- var/tlimit = 6000 //past this much time the patient is unrecoverable (in deciseconds)
- var/tloss = 3000 //brain damage starts setting in on the patient after some time left rotting
+ var/tlimit = 1800 //past this much time the patient is unrecoverable (in deciseconds)
+ var/tloss = 600 //brain damage starts setting in on the patient after some time left rotting
var/total_burn = 0
var/total_brute = 0
if(do_after(user, 20, target = M)) //placed on chest and short delay to shock for dramatic effect, revive time is 5sec total
diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm
index 0cd8f88dd99..92928a967e3 100644
--- a/code/game/objects/items/weapons/extinguisher.dm
+++ b/code/game/objects/items/weapons/extinguisher.dm
@@ -37,7 +37,7 @@
/obj/item/weapon/extinguisher/examine(mob/user)
if(..(user, 0))
- to_chat(usr, "\icon[src] [src.name] contains:")
+ to_chat(usr, "[bicon(src)] [src.name] contains:")
if(reagents && reagents.reagent_list.len)
for(var/datum/reagent/R in reagents.reagent_list)
to_chat(user, "\blue [R.volume] units of [R.name]")
diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm
index ed2f0fb33e8..b56e103233e 100644
--- a/code/game/objects/items/weapons/holy_weapons.dm
+++ b/code/game/objects/items/weapons/holy_weapons.dm
@@ -134,6 +134,13 @@
item_state = "katana"
slot_flags = SLOT_BELT | SLOT_BACK
+/obj/item/weapon/nullrod/claymore/multiverse
+ name = "extradimensional blade"
+ desc = "Once the harbringer of a interdimensional war, now a dormant souvenir. Still sharp though."
+ icon_state = "multiverse"
+ item_state = "multiverse"
+ slot_flags = SLOT_BELT
+
/obj/item/weapon/nullrod/claymore/saber
name = "light energy sword"
hitsound = 'sound/weapons/blade1.ogg'
@@ -148,6 +155,12 @@
item_state = "swordred"
desc = "Woefully ineffective when used on steep terrain."
+/obj/item/weapon/nullrod/claymore/saber/pirate
+ name = "nautical energy sword"
+ icon_state = "cutlass1"
+ item_state = "cutlass1"
+ desc = "Convincing HR that your religion involved piracy was no mean feat."
+
/obj/item/weapon/nullrod/sord
name = "\improper UNREAL SORD"
desc = "This thing is so unspeakably HOLY you are having a hard time even holding it."
@@ -179,6 +192,49 @@
desc = "Bad references are the DNA of the soul."
attack_verb = list("chopped", "sliced", "cut", "zandatsu'd")
+/obj/item/weapon/nullrod/scythe/talking
+ icon_state = "talking_sword"
+ item_state = "talking_sword"
+ name = "possessed blade"
+ desc = "When the station falls into chaos, it's nice to have a friend by your side."
+ attack_verb = list("chopped", "sliced", "cut")
+ hitsound = 'sound/weapons/bladeslice.ogg'
+ var/possessed = FALSE
+
+/obj/item/weapon/nullrod/scythe/talking/attack_self(mob/living/user)
+ if(possessed)
+ return
+
+ to_chat(user, "You attempt to wake the spirit of the blade...")
+
+ possessed = TRUE
+
+ var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as the spirit of [user.real_name]'s blade?", ROLE_PAI, 0, 100)
+ var/mob/dead/observer/theghost = null
+
+ if(candidates.len)
+ theghost = pick(candidates)
+ var/mob/living/simple_animal/shade/S = new(src)
+ S.real_name = name
+ S.name = name
+ S.ckey = theghost.ckey
+ var/input = stripped_input(S,"What are you named?", ,"", MAX_NAME_LEN)
+
+ if(src && input)
+ name = input
+ S.real_name = input
+ S.name = input
+ else
+ to_chat(user, "The blade is dormant. Maybe you can try again later.")
+ possessed = FALSE
+
+/obj/item/weapon/nullrod/scythe/talking/Destroy()
+ for(var/mob/living/simple_animal/shade/S in contents)
+ to_chat(S, "You were destroyed!")
+ S.ghostize()
+ qdel(S)
+ return ..()
+
/obj/item/weapon/nullrod/hammmer
icon_state = "hammeron"
item_state = "hammeron"
@@ -326,3 +382,75 @@
hitsound = 'sound/weapons/bladeslice.ogg'
sharp = 1
edge = 1
+
+/obj/item/weapon/nullrod/rosary
+ icon_state = "rosary"
+ item_state = null
+ name = "prayer beads"
+ desc = "A set of prayer beads used by many of the more traditional religions in space.
Vampires and other unholy abominations have learned to fear these."
+ force = 0
+ throwforce = 0
+ var/praying = 0
+
+/obj/item/weapon/nullrod/rosary/New()
+ ..()
+ processing_objects.Add(src)
+
+
+/obj/item/weapon/nullrod/rosary/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
+ if(!istype(M))
+ return ..()
+
+ if(!user.mind || user.mind.assigned_role != "Chaplain")
+ to_chat(user, "You are not close enough with [ticker.Bible_deity_name] to use [src].")
+ return
+
+ if(praying)
+ to_chat(user, "You are already using [src].")
+
+ user.visible_message("[user] kneels[M == user ? null : " next to [M]"] and begins to utter a prayer to [ticker.Bible_deity_name].", \
+ "You kneel[M == user ? null : " next to [M]"] and begin a prayer to [ticker.Bible_deity_name].")
+
+ praying = 1
+ if(do_after(user, 150, target = M))
+ if(istype(M, /mob/living/carbon/human)) // This probably should not work on vulps. They're unholy abominations.
+ var/mob/living/carbon/human/target = M
+
+ if(target.mind)
+ if(iscultist(target))
+ ticker.mode.remove_cultist(target.mind) // This proc will handle message generation.
+ praying = 0
+ return
+
+ if(target.mind.vampire && !target.mind.vampire.get_ability(/datum/vampire_passive/full)) // Getting a full prayer off on a vampire will interrupt their powers for a large duration.
+ target.mind.vampire.nullified = max(120, target.mind.vampire.nullified + 120)
+ to_chat(target, "[user]'s prayer to [ticker.Bible_deity_name] has interfered with your power!")
+ praying = 0
+ return
+
+ if(prob(25))
+ to_chat(target, "[user]'s prayer to [ticker.Bible_deity_name] has eased your pain!")
+ target.adjustToxLoss(-5)
+ target.adjustOxyLoss(-5)
+ target.adjustBruteLoss(-5)
+ target.adjustFireLoss(-5)
+
+ praying = 0
+
+ else
+ to_chat(user, "Your prayer to [ticker.Bible_deity_name] was interrupted.")
+ praying = 0
+
+/obj/item/weapon/nullrod/rosary/process()
+ if(istype(loc, /mob/living/carbon/human))
+ var/mob/living/carbon/human/holder = loc
+
+ if(src == holder.l_hand || src == holder.r_hand) // Holding this in your hand will
+ for(var/mob/living/carbon/human/M in range(5))
+ if(M.mind.vampire && !M.mind.vampire.get_ability(/datum/vampire_passive/full))
+ M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2)
+ if(prob(10))
+ to_chat(M, "Being in the presence of [holder]'s [src] is interfering with your powers!")
+
+
+
diff --git a/code/game/objects/items/weapons/implants/implant_traitor.dm b/code/game/objects/items/weapons/implants/implant_traitor.dm
index 547206da29c..78e63ddfae4 100644
--- a/code/game/objects/items/weapons/implants/implant_traitor.dm
+++ b/code/game/objects/items/weapons/implants/implant_traitor.dm
@@ -56,11 +56,11 @@
ticker.mode.traitors += H.mind
H.mind.special_role = "traitor"
to_chat(H, "You're now completely loyal to [user.name]! You now must lay down your life to protect them and assist in their goals at any cost.")
- var/datum/objective/protect/p = new
- p.owner = H.mind
- p.target = user:mind
- p.explanation_text = "Obey every order from and protect [user:real_name], the [user:mind:assigned_role=="MODE" ? (user:mind:special_role) : (user:mind:assigned_role)]."
- H.mind.objectives += p
+ var/datum/objective/protect/mindslave/MS = new
+ MS.owner = H.mind
+ MS.target = user:mind
+ MS.explanation_text = "Obey every order from and protect [user:real_name], the [user:mind:assigned_role=="MODE" ? (user:mind:special_role) : (user:mind:assigned_role)]."
+ H.mind.objectives += MS
for(var/datum/objective/objective in H.mind.objectives)
to_chat(H, "Objective #1: [objective.explanation_text]")
@@ -71,10 +71,16 @@
var/datum/mindslaves/slaved = user.mind.som
H.mind.som = slaved
slaved.serv += H
- slaved.add_serv_hud(user.mind,"syndicate")//handles master servent icons
- slaved.add_serv_hud(H.mind,"mindslave")
+ slaved.add_serv_hud(user.mind, "master") //handles master servent icons
+ slaved.add_serv_hud(H.mind, "mindslave")
log_admin("[ckey(user.key)] has mind-slaved [ckey(H.key)].")
activated = 1
return 1
- return 0
\ No newline at end of file
+ return 0
+
+/obj/item/weapon/implant/traitor/removed(mob/target)
+ if(..())
+ ticker.mode.remove_traitor_mind(target.mind)
+ return 1
+ return 0
\ No newline at end of file
diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm
index 3a371b8191e..b580a024b91 100644
--- a/code/game/objects/items/weapons/manuals.dm
+++ b/code/game/objects/items/weapons/manuals.dm
@@ -1815,18 +1815,6 @@
-
-
- - Atmospheric Technicians are permitted to completely repipe the Atmospherics Piping Setup, provided they do not pump harmful gases into anywhere except the Turbine;
- - Atmospheric Technicians are not permitted to create volatile mixes using Plasma and Oxygen, nor are they permitted to create any potentially harmful mixes with Carbon Dioxide and/or Nitrous Oxide. An exception is made when working with the Turbine;
- - Atmospheric Technicians are permitted to cool Plasma and store it for later use in Radiation Collectors. Likewise, they are permitted to cool Nitrogen or Carbon Dioxide and store it for use as coolant for the Supermatter Engine;
- - Atmospheric Technicians are not permitted to take the axe out of its case unless there is an immediate and urgent threat to their life or urgent access to crisis locations is necessary. The axe must be returned to the case afterwards, and the case locked;
- - Atmospheric Technicians are not permitted to tamper with the default values on Air Alarms. They are, however, permitted to create small, acclimatized rooms for species that require special atmospheric conditions (such as Plasmamen and Vox), provided they receive express permission from the Chief Engineer;
- - Atmospheric Technicians must periodically check on the Central Alarms Computer, in periods of, at most, thirty (30) minutes;
- - Atmospheric Technicians must respond promptly to piping and station breaches. Failure to report within fifteen (15) minutes will be considered a breach of Standard Operating Procedure, unless there are no spare Atmospheric Technicians to report, or an Engineer has arrived on scene first. All Hazard Zones must be cordoned off with Engineering Tape, for the sake of everyone else
-
-
-
- Shaft Miners are not permitted to bring Gibtonite aboard the station;
@@ -2412,7 +2400,104 @@
- Demotion of Chief Engineer and reparation of Engine if no threat manifests.
-
+
+