diff --git a/_maps/map_files/RandomZLevels/terrorspiders.dmm b/_maps/map_files/RandomZLevels/terrorspiders.dmm index 1ee03e8a89d..0e8c0728ae2 100644 --- a/_maps/map_files/RandomZLevels/terrorspiders.dmm +++ b/_maps/map_files/RandomZLevels/terrorspiders.dmm @@ -1328,7 +1328,6 @@ "zB" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "271"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/awaymission/UO71/queen) "zC" = (/obj/structure/spider/cocoon{icon_state = "cocoon_large1"},/obj/structure/spider/terrorweb,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/awaymission/UO71/queen) "zD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating{burnt = 1; icon_state = "panelscorched"; tag = "icon-panelscorched"},/area/awaymission/UO71/science) -"zE" = (/obj/machinery/door/airlock/external{name = "Mining External Airlock"; req_access_txt = "271"},/turf/simulated/wall/rust,/area/awaymission/UO71/queen) "zF" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/awaymission/UO71/queen) "zG" = (/obj/machinery/door/poddoor{id_tag = "UO71_Caves"; name = "Caves Lockdown Door"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/awaymission/UO71/queen) "zH" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 7; tag = "icon-manifold-r-f (WEST)"},/turf/simulated/wall,/area/awaymission/UO71/science) @@ -1471,12 +1470,12 @@ aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababab aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababuWzruWuWuWababababababababababuWuWuWabzgzdzhzqagzAzhzgzgzgzgzdzgabuWuWuWuWuWuWabababababuWababababuWzruWabzruWuWuWuWabababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababuWababababababababababababababababababababababababababuWuWuWuWababababababababababababuWuWuWzyzdzyzzzBzyzyzyzyzgzgzdzguWuWabababuWuWuWabababuWuWuWuWuWuWuWuWuWabuWuWuWuWuWabababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababuWuWabababababababababababababababababababababababababuWuWuWababababababababababababababuWuWzyzdzyzzagzFzCzAzyzyzyzdzguWabababababuWababababuWabababuWuWuWabuWuWuWuWuWuWuWabababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaababababababababababababababababababababuWuWabababababababababababababababababababababababuWuWzrabababababababababababababababuWuWzEagzGzqaiagagzAzAzyzyzdzguWababuWabuWuWabababababababuWuWuWababababuWuWuWuWuWuWababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaababababababababababababababababababababuWuWabababababababababababababababababababababababuWuWzrabababababababababababababababuWuWzBagzGzqaiagagzAzAzyzyzdzguWababuWabuWuWabababababababuWuWuWababababuWuWuWuWuWuWababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababuWuWuWababababababababababababababababababababuWuWuWabababababababababababababababababuWzyzdzyzIaeahagzAzJzyzyzdzguWababuWabuWabababababababuWuWuWababababababuWuWuWuWzrababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababuWuWuWababababababababuWuWuWuWuWabababababuWuWuWabababababababababababababababababababzyzdzyzKzAagagaizAzyzyzdzyuWababuWuWuWababuWababababuWuWabababababababuWuWuWuWuWababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababuWuWababababababuWuWuWuWuWuWuWuWabababuWuWzrabababababababababababababababababababzyzdzyzMzAzAagagagagzyzdzyuWababuWuWabababuWababababuWuWabababababababzruWuWuWuWababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababuWuWuWuWuWuWuWuWababababababuWuWuWabuWuWababababababababababababababababababababzyzdzyzMzAzCagagagagzyzdzyuWabababababababuWuWababuWuWababababababababuWuWuWuWuWababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaabababababababababababababababababababababababababababuWuWuWabababababababababababuWuWuWuWababababababababababababababababababababzyzdzyzMzAzAagagagagzGagzEuWuWuWabababababuWuWababuWuWabababababababababuWuWuWabababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaabababababababababababababababababababababababababababuWuWuWabababababababababababuWuWuWuWababababababababababababababababababababzyzdzyzMzAzAagagagagzGagzBuWuWuWabababababuWuWababuWuWabababababababababuWuWuWabababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababuWuWuWabababababababababababababababuWuWababababababababababababababababababababzyzdzgzMzAagagaizAzgzyzdzyuWuWuWuWuWuWababuWuWababuWuWabababababuWuWuWuWuWuWababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababuWuWababababababababababababababababababuWababababababababababababababababababababzyzdzgzKzAagagagzAzgzgzdzyabuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWabababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababuWuWuWuWababababababababababababuWzruWababababuWuWuWabababababababababuWababababababababzyzdzgzKaiagagagzAzAzgzdzyabuWuWuWuWuWuWuWuWuWuWababababababababababuWuWuWabababababababababababaaaaaaaaaaaaaa @@ -1484,9 +1483,9 @@ aaaaaaaaaaaaaaabababababababababababababababababababababuWababababababababababab aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababzruWuWuWuWuWuWuWababababababuWuWuWababababuWababuWabababababzyzdzyzqagzAzgagzCagzgzdzyabababuWuWuWuWuWuWuWabababuWuWuWuWabababuWabuWuWabababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWuWuWuWababababababuWababababuWababuWuWababababzyzdzyzqagagzgagzAzAzgzdzyababuWuWuWuWababuWuWabababuWabababababuWuWuWuWababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWzruWuWuWuWabababuWuWuWababababuWababuWuWabababuWzyzdzyzqzCzgzgzgzAzAzgzdzyababuWuWababababuWuWuWababuWababababuWuWuWuWabababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababuWuWzruWuWuWabuWuWuWzruWuWuWuWuWababababababuWababuWuWabuWuWuWzEagzGzqzAzgzgzgzgzAzgzdzyabuWuWuWuWuWabababuWuWababuWuWabababuWuWuWuWabababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababuWuWzruWuWuWabuWuWuWzruWuWuWuWuWababababababuWababuWuWabuWuWuWzBagzGzqzAzgzgzgzgzAzgzdzyabuWuWuWuWuWabababuWuWababuWuWabababuWuWuWuWabababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWzyzdzyzqzAagzgzgagagzyzdzyuWuWuWababuWuWababuWuWuWababuWababuWuWuWuWuWabababababababababababababaaaaaaaaaaaaaa -aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWababababzyzdzgzqagzAzgagzAaizGagzEuWuWababababuWabababuWuWababuWuWabuWuWuWuWuWabababababababababababababaaaaaaaaaaaaaa +aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWababababzyzdzgzqagzAzgagzAaizGagzBuWuWababababuWabababuWuWababuWuWabuWuWuWuWuWabababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWuWabababzyzdzgzqagaizFagagagzyzdzyabuWababuWabuWuWababuWuWabababuWuWuWuWuWuWuWabababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWabababuWuWuWuWabababzyzdzgafaeahagaiagagzyzdzyabuWuWuWuWababuWababuWuWuWababuWuWuWuWuWuWababababababababababababababaaaaaaaaaaaaaa aaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababababababababababababababababuWuWuWuWuWuWabababababuWuWuWababzyzdzgzMagagagagagzgzyzdzyabababababababuWabababuWuWabuWuWuWabuWuWuWababababababababababababababaaaaaaaaaaaaaa diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 8b7290b31c3..13f8aae57fb 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -512,7 +512,7 @@ "ajR" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_y = 3},/turf/simulated/floor/plasteel,/area/security/main) "ajS" = (/obj/structure/stool/bed/chair,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/effect/landmark/start{name = "Detective"},/turf/simulated/floor/plasteel,/area/security/main) "ajT" = (/obj/structure/stool/bed/chair,/obj/machinery/light{dir = 1; on = 1},/obj/effect/landmark/start{name = "Brig Physician"},/turf/simulated/floor/plasteel,/area/security/main) -"ajU" = (/obj/effect/decal/warning_stripes/northwest,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) +"ajU" = (/obj/effect/decal/warning_stripes/northwest,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) "ajV" = (/turf/simulated/floor/carpet,/area/security/hos) "ajW" = (/obj/machinery/door/poddoor{id_tag = "Execution Vent"; name = "Execution Vent Shutter"},/obj/structure/grille{layer = 2.69},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/security/execution{name = "\improper Prisoner Transfer Center"}) "ajX" = (/obj/structure/rack,/obj/item/weapon/tank/oxygen,/obj/item/clothing/suit/space/hardsuit/security,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/security,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/item/clothing/shoes/magboots,/obj/item/weapon/tank/jetpack/oxygen,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plasteel,/area/security/podbay) @@ -558,7 +558,7 @@ "akL" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen/multi,/obj/machinery/light{dir = 1; on = 1},/obj/item/device/radio/intercom/department/security{pixel_x = 0; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "akM" = (/obj/structure/table/woodentable,/obj/machinery/recharger{pixel_y = 4},/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "akN" = (/obj/item/weapon/twohanded/required/kirbyplants,/obj/machinery/newscaster{pixel_y = 30},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) -"akO" = (/obj/structure/stool/bed/chair/e_chair{dir = 4},/obj/machinery/light/small{dir = 8},/obj/effect/landmark{name = "revenantspawn"},/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1443; icon_state = "on"; id = "air_in"; on = 1},/obj/effect/decal/warning_stripes/west,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plasteel{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) +"akO" = (/obj/structure/stool/bed/chair/e_chair{dir = 4},/obj/effect/landmark{name = "revenantspawn"},/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1443; icon_state = "on"; id = "air_in"; on = 1},/obj/effect/decal/warning_stripes/west,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plasteel{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) "akP" = (/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) "akQ" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id_tag = "Execution Shutter"; name = "Execution Decency Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/security/execution{name = "\improper Prisoner Transfer Center"}) "akR" = (/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) @@ -606,7 +606,7 @@ "alH" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/hos) "alI" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/security/podbay) "alJ" = (/obj/structure/grille,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/security/podbay) -"alK" = (/obj/machinery/camera{c_tag = "Prison Execution Chamber"; dir = 4; network = list("Prison","SS13")},/obj/effect/decal/warning_stripes/southwest,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_CO2 = 0; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) +"alK" = (/obj/machinery/camera{c_tag = "Prison Execution Chamber"; dir = 1; network = list("Prison","SS13")},/obj/effect/decal/warning_stripes/southwest,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1; scrub_CO2 = 0; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) "alL" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/door/poddoor/shutters{density = 0; dir = 4; icon_state = "shutter0"; id_tag = "Execution Shutter"; name = "Execution Decency Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/security/execution{name = "\improper Prisoner Transfer Center"}) "alM" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/atmospherics/pipe/simple/visible{dir = 5},/obj/effect/decal/warning_stripes/southeast,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) "alN" = (/obj/machinery/alarm{dir = 1; pixel_y = -24},/obj/machinery/light/small,/obj/machinery/atmospherics/binary/pump{dir = 8; on = 1},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/execution{name = "\improper Prisoner Transfer Center"}) @@ -1338,12 +1338,12 @@ "azL" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "azM" = (/obj/machinery/atmospherics/binary/pump{dir = 8; on = 1},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "azN" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air{filled = 0.1},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"azO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1450; master_tag = "bar_maint"; name = "interior access button"; pixel_x = 25; pixel_y = -25; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"azO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1450; master_tag = "dorms_maint"; name = "interior access button"; pixel_x = 25; pixel_y = -25; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "azP" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"azQ" = (/obj/machinery/airlock_sensor{frequency = 1450; id_tag = "bar_sensor"; pixel_x = 0; pixel_y = 25},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1450; id_tag = "bar_maint"; pixel_x = 0; pixel_y = -25; req_access_txt = "13"; tag_airpump = "bar_pump"; tag_chamber_sensor = "bar_sensor"; tag_exterior_door = "bar_maint_outer"; tag_interior_door = "bar_maint_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1450; id_tag = "bar_pump"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"azR" = (/obj/machinery/door/airlock/external{frequency = 1450; icon_state = "door_locked"; id_tag = "bar_maint_inner"; locked = 1; name = "External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"azS" = (/turf/space,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1450; master_tag = "bar_maint"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "13"},/turf/simulated/floor/plating/airless/catwalk,/area/space) -"azT" = (/obj/machinery/door/airlock/external{frequency = 1450; icon_state = "door_locked"; id_tag = "bar_maint_outer"; locked = 1; name = "External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"azQ" = (/obj/machinery/airlock_sensor{frequency = 1450; id_tag = "dorms_sensor"; pixel_x = 0; pixel_y = 25},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1450; id_tag = "dorms_maint"; pixel_x = 0; pixel_y = -25; req_access_txt = "13"; tag_airpump = "dorms_pump"; tag_chamber_sensor = "dorms_sensor"; tag_exterior_door = "dorms_maint_outer"; tag_interior_door = "dorms_maint_inner"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1450; id_tag = "dorms_pump"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"azR" = (/obj/machinery/door/airlock/external{frequency = 1450; icon_state = "door_locked"; id_tag = "dorms_maint_inner"; locked = 1; name = "External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"azS" = (/turf/space,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1450; master_tag = "dorms_maint"; name = "exterior access button"; pixel_x = -25; pixel_y = -25; req_access_txt = "13"},/turf/simulated/floor/plating/airless/catwalk,/area/space) +"azT" = (/obj/machinery/door/airlock/external{frequency = 1450; icon_state = "door_locked"; id_tag = "dorms_maint_outer"; locked = 1; name = "External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/fsmaint) "azU" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"},/turf/simulated/wall,/area/solar/auxstarboard) "azV" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/security/prisonershuttle) "azW" = (/obj/machinery/door/window/brigdoor/southleft{req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/unary/vent_pump{dir = 2; layer = 2.4; on = 1},/turf/simulated/floor/plasteel,/area/security/courtroomdandp) @@ -1602,7 +1602,7 @@ "aEP" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/interrogation) "aEQ" = (/obj/structure/table/reinforced,/obj/structure/mirror{pixel_x = 28},/obj/item/weapon/razor,/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/civilian/barber) "aER" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "solar_chapel_sensor"; pixel_x = 25; pixel_y = 12},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "solar_chapel_pump"},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "solar_chapel_airlock"; pixel_x = 25; req_access_txt = "13"; tag_airpump = "solar_chapel_pump"; tag_chamber_sensor = "solar_chapel_sensor"; tag_exterior_door = "solar_chapel_outer"; tag_interior_door = "solar_chapel_inner"},/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) -"aES" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitecorner"},/area/maintenance/abandonedbar) +"aES" = (/obj/structure/stool,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whitecorner"},/area/maintenance/abandonedbar) "aET" = (/obj/structure/table/woodentable,/obj/item/weapon/lipstick/random,/obj/structure/sign/poster/contraband/random{pixel_x = -32},/turf/simulated/floor/plating,/area/maintenance/abandonedbar) "aEU" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating{dir = 10; icon_regular_floor = "escape"},/area/maintenance/abandonedbar) "aEV" = (/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel{dir = 6; icon_state = "escape"},/area/maintenance/abandonedbar) @@ -1662,7 +1662,7 @@ "aFX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/bananium{name = "Clown's Office"; req_access_txt = "46"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/wood,/area/clownoffice) "aFY" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 4},/obj/machinery/computer/security/telescreen/entertainment{pixel_x = 32},/turf/simulated/floor/plasteel{dir = 2; icon_state = "barber"},/area/civilian/barber) "aFZ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_chapel_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/auxsolarstarboard) -"aGa" = (/obj/item/weapon/stool,/turf/simulated/floor/plating{dir = 10; icon_regular_floor = "purplecorner"},/area/maintenance/abandonedbar) +"aGa" = (/turf/simulated/floor/plating{dir = 10; icon_regular_floor = "purplecorner"},/area/maintenance/abandonedbar) "aGb" = (/obj/structure/table/woodentable,/obj/structure/mirror{pixel_x = -28},/obj/item/weapon/storage/pill_bottle/random_drug_bottle,/turf/simulated/floor/plasteel{dir = 10; icon_state = "purple"},/area/maintenance/abandonedbar) "aGc" = (/obj/structure/mineral_door/wood{name = "Abandoned Bar"},/turf/simulated/floor/wood{broken = 1; icon_state = "wood-broken"},/area/maintenance/abandonedbar) "aGd" = (/obj/effect/decal/cleanable/fungus,/turf/simulated/wall/rust,/area/maintenance/abandonedbar) @@ -2782,8 +2782,8 @@ "bbz" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/hallway/primary/central/north) "bbA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/wood,/area/crew_quarters/bar) "bbB" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/structure/sign/securearea{desc = "Under the painting a plaque reads: 'While the meat grinder may not have spared you, fear not. Not one part of you has gone to waste... You were delicious.'"; icon_state = "monkey_painting"; name = "Mr. Deempisi portrait"; pixel_x = -28; pixel_y = 4},/obj/structure/reagent_dispensers/beerkeg,/turf/simulated/floor/wood,/area/crew_quarters/bar) -"bbC" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/fsmaint) -"bbD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/maintenance/fsmaint) +"bbC" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/fsmaint) +"bbD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/hallway/primary/central/north) "bbE" = (/turf/simulated/wall/r_wall,/area/hallway/primary/central/ne) "bbF" = (/turf/simulated/wall,/area/hallway/primary/central/ne) "bbG" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/machinery/navbeacon{codes_txt = "delivery"; dir = 8; location = "Bar"},/obj/structure/plasticflaps{opacity = 1},/obj/effect/decal/warning_stripes/yellow/hollow,/turf/simulated/floor/plasteel,/area/maintenance/fsmaint2) @@ -2882,7 +2882,7 @@ "bdv" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/central/north) "bdw" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/item/flag/nt,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/hallway/primary/central/north) "bdx" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "bluecorner"},/area/hallway/primary/central/north) -"bdy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/hallway/primary/central/north) +"bdy" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/hallway/primary/central/north) "bdz" = (/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) "bdA" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 4},/area/hallway/primary/central/ne) "bdB" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutral"},/area/hallway/primary/central/ne) @@ -2965,7 +2965,7 @@ "bfa" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/fpmaint) "bfb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/central/north) "bfc" = (/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel,/area/hallway/primary/port) -"bfd" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/hallway/primary/central/north) +"bfd" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/central/north) "bfe" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/gateway) "bff" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "bfg" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/ai_monitored/storage/eva) @@ -3063,8 +3063,8 @@ "bgU" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/hallway/primary/central/north) "bgV" = (/obj/item/device/radio/intercom{broadcasting = 0; listening = 1; name = "station intercom (General)"; pixel_y = 25},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{dir = 1; icon_state = "bluecorner"},/area/hallway/primary/central/nw) "bgW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "L11"},/area/hallway/primary/central/north) -"bgX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel,/area/hallway/primary/central/north) -"bgY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{desc = ""; icon_state = "L13"; name = "floor"},/area/hallway/primary/central/north) +"bgX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5; level = 1},/turf/simulated/floor/plasteel{desc = ""; icon_state = "L13"; name = "floor"},/area/hallway/primary/central/north) +"bgY" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor/plasteel,/area/engine/break_room) "bgZ" = (/turf/simulated/floor/plasteel{icon_state = "neutralcorner"; dir = 4},/area/hallway/primary/central/ne) "bha" = (/turf/simulated/floor/plasteel{icon_state = "L1"},/area/hallway/primary/central/north) "bhb" = (/turf/simulated/floor/plasteel{icon_state = "L3"},/area/hallway/primary/central/north) @@ -4466,7 +4466,10 @@ "bHT" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/cell_charger,/obj/item/weapon/gun/syringe,/obj/item/weapon/screwdriver,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay3) "bHU" = (/obj/structure/morgue,/obj/effect/landmark{name = "revenantspawn"},/turf/simulated/floor/plasteel,/area/medical/morgue) "bHV" = (/obj/machinery/cell_charger,/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 7; pixel_y = 1},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/obj/machinery/camera{c_tag = "Medbay Cryogenics"; network = list("SS13")},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/table/glass,/obj/item/weapon/screwdriver,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/cryo) +"bHW" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/engine/break_room) "bHX" = (/turf/simulated/floor/plasteel,/area/assembly/chargebay) +"bHY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/equipmentstorage) +"bHZ" = (/obj/machinery/vending/tool,/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) "bIa" = (/turf/simulated/wall,/area/assembly/robotics) "bIb" = (/obj/structure/morgue{tag = "icon-morgue1 (WEST)"; icon_state = "morgue1"; dir = 8},/obj/effect/landmark{name = "revenantspawn"},/turf/simulated/floor/plasteel,/area/medical/morgue) "bIc" = (/obj/structure/stool/bed/chair/office/light{dir = 1},/obj/effect/landmark/start{name = "Roboticist"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) @@ -4557,8 +4560,16 @@ "bJJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "bJK" = (/obj/item/weapon/hand_labeler,/obj/item/weapon/reagent_containers/spray/cleaner{desc = "Someone has crossed out the 'Space' from Space Cleaner and written in Chemistry. Scrawled on the back is, 'Okay, whoever filled this with polytrinic acid, it was only funny the first time. It was hard enough replacing the CMO's first cat!'"; name = "Chemistry Cleaner"},/obj/item/device/radio/intercom{frequency = 1459; name = "station intercom (General)"; pixel_x = 28},/obj/structure/table/glass,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/chemistry) "bJL" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/reception) +"bJM" = (/obj/structure/grille,/obj/structure/window/full/shuttle,/turf/simulated/floor/plating,/area/shuttle/constructionsite) +"bJN" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plating,/area/turret_protected/aisat_interior) +"bJO" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/power/apc{cell_type = 25000; dir = 1; name = "Engineering Engine Super APC"; pixel_x = 0; pixel_y = 24; shock_proof = 1},/obj/structure/cable/yellow{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bJP" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Examination Room"; req_access_txt = "5"; req_one_access_txt = "0"},/turf/simulated/floor/plasteel{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/exam_room) +"bJQ" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/hardsuit/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/engineering,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/power/apc{dir = 1; name = "north bump Engineering"; pixel_x = 0; pixel_y = 24; shock_proof = 1},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) +"bJR" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/hardsuit/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/engineering,/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) +"bJS" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/hardsuit/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/engineering,/obj/machinery/light{dir = 1},/obj/machinery/alarm{pixel_x = 0; pixel_y = 24},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) "bJT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) +"bJU" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable/yellow{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"bJV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bJW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 12},/turf/simulated/floor/plating,/area/maintenance/genetics) "bJX" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "bJY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/assembly/robotics) @@ -4643,10 +4654,14 @@ "bLz" = (/obj/structure/table,/obj/item/device/flashlight/lamp,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/medical/reception) "bLA" = (/obj/structure/table,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/medical/reception) "bLB" = (/obj/structure/table,/obj/machinery/door/window/northright{name = "Medbay Lobby"; req_access_txt = "5"},/obj/item/device/radio/intercom/department/medbay,/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/medical/reception) +"bLC" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) "bLD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/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/reception) "bLE" = (/turf/simulated/floor/mech_bay_recharge_floor,/area/assembly/chargebay) "bLF" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/weapon/reagent_containers/syringe/antiviral,/obj/structure/closet/secure_closet/medical_wall{name = "Pill Cabinet"; pixel_y = -32},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/item/weapon/reagent_containers/syringe/charcoal,/obj/item/weapon/reagent_containers/syringe/insulin,/obj/item/weapon/reagent_containers/glass/bottle/morphine,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine,/obj/item/weapon/reagent_containers/syringe,/obj/item/stack/medical/bruise_pack/advanced,/obj/item/stack/medical/ointment/advanced,/obj/item/weapon/reagent_containers/food/pill/patch/styptic,/obj/item/weapon/reagent_containers/food/pill/patch/styptic,/obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf,/obj/item/weapon/reagent_containers/food/pill/patch/silver_sulf,/obj/item/weapon/storage/pill_bottle/painkillers,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/exam_room) +"bLG" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/engine/hardsuitstorage) +"bLH" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) "bLI" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/assembly/robotics) +"bLJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) "bLK" = (/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plasteel,/area/assembly/robotics) "bLL" = (/obj/machinery/mecha_part_fabricator,/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plasteel,/area/assembly/robotics) "bLM" = (/obj/machinery/mecha_part_fabricator,/obj/effect/decal/warning_stripes/northeast,/turf/simulated/floor/plasteel,/area/assembly/robotics) @@ -4733,9 +4748,17 @@ "bNp" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (SOUTHEAST)"; icon_state = "whiteblue"; dir = 6},/area/medical/reception) "bNq" = (/turf/simulated/floor/plasteel{tag = "icon-whiteblue"; icon_state = "whiteblue"},/area/medical/reception) "bNr" = (/obj/structure/sign/redcross{desc = "The Star of Life, a symbol of Medical Aid."; icon_state = "lifestar"; name = "Medbay"},/turf/simulated/wall,/area/medical/exam_room) +"bNs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/spawner/window/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"bNt" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) +"bNu" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"bNv" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/clothing/shoes/magboots/advance,/obj/item/clothing/suit/space/hardsuit/elite,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/elite,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"bNw" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Chief Engineer"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"bNx" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"bNy" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 0; d2 = 8; icon_state = "0-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/engine/chiefs_office) "bNz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/assembly/chargebay) "bNA" = (/obj/machinery/light_switch{name = "light switch "; dir = 2; pixel_x = 0; pixel_y = -22},/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/medical/morgue) "bNB" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/assembly/chargebay) +"bNC" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/computer/station_alert/all,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "bND" = (/obj/machinery/hologram/holopad,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/assembly/chargebay) "bNE" = (/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/assembly/robotics) "bNF" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/cable_coil,/obj/item/device/flash,/obj/item/device/flash,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/assembly/robotics) @@ -4754,8 +4777,12 @@ "bNS" = (/obj/machinery/light{dir = 8},/obj/machinery/computer/rdconsole/core,/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/toxins/lab) "bNT" = (/obj/machinery/r_n_d/circuit_imprinter{pixel_x = 3; pixel_y = 5},/obj/item/weapon/reagent_containers/glass/beaker/sulphuric,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/toxins/lab) "bNU" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/camera{c_tag = "Research Research and Development Lab"; dir = 8; network = list("Research","SS13")},/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/capacitor,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/micro_laser,/obj/item/weapon/stock_parts/micro_laser,/obj/structure/table/glass,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) +"bNV" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bNW" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"bNX" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/engine/chiefs_office) "bNY" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/quartermaster/office) +"bNZ" = (/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"bOa" = (/obj/machinery/power/apc{dir = 4; name = "east bump Engineering"; pixel_x = 24; shock_proof = 1},/obj/structure/cable/yellow{d1 = 0; d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "bOb" = (/obj/effect/spawner/window/reinforced,/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 = 0},/turf/simulated/floor/plating,/area/hallway/secondary/entry) "bOc" = (/turf/simulated/shuttle/floor,/area/shuttle/supply) "bOd" = (/obj/machinery/door/poddoor{id_tag = "trash"; name = "disposal bay door"; protected = 0},/obj/structure/fans/tiny,/turf/simulated/floor/plating,/area/maintenance/disposal) @@ -4815,6 +4842,10 @@ "bPf" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/decal/warning_stripes/yellow/partial{dir = 1},/obj/effect/decal/warning_stripes/arrow{dir = 1},/turf/simulated/floor/plasteel,/area/medical/reception) "bPg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/medical/morgue) "bPh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/decal/warning_stripes/yellow/partial{dir = 1},/obj/effect/decal/warning_stripes/arrow{dir = 1},/turf/simulated/floor/plasteel,/area/medical/reception) +"bPi" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"bPj" = (/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/engine/chiefs_office) +"bPk" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/chiefs_office) +"bPl" = (/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 0; d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/engine/chiefs_office) "bPm" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/genetics) "bPn" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plasteel,/area/assembly/robotics) "bPo" = (/turf/simulated/floor/plasteel,/area/assembly/robotics) @@ -4831,9 +4862,15 @@ "bPz" = (/obj/machinery/newscaster{pixel_x = -27; pixel_y = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "bPA" = (/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bPB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) +"bPC" = (/obj/structure/table,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/stock_parts/cell/high,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bPD" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/computer/monitor{name = "Engine Power Monitoring Computer"},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bPE" = (/obj/machinery/power/port_gen/pacman,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bPF" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{amount = 30},/obj/item/device/pipe_painter,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bPG" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bPH" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "bPI" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration) "bPJ" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/console_screen,/obj/item/weapon/stock_parts/matter_bin,/obj/item/weapon/stock_parts/matter_bin,/obj/structure/table/glass,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) +"bPK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bPL" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/administration) "bPM" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Hatch"; req_access_txt = "106"},/obj/docking_port/mobile{dir = 2; dwidth = 8; height = 15; id = "admin"; name = "administration shuttle"; roundstart_move = "admin_away"; width = 18},/obj/docking_port/stationary{dir = 2; dwidth = 8; height = 15; id = "admin_home"; name = "port bay 1"; width = 18},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bPN" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Hatch"; req_access_txt = "106"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) @@ -4849,6 +4886,7 @@ "bPX" = (/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/quartermaster/office) "bPY" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/landmark/start{name = "Civilian"},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bPZ" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "browncorner"},/area/quartermaster/office) +"bQa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bQb" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/hallway/primary/central/sw) "bQc" = (/obj/structure/disposalpipe/junction{dir = 1; icon_state = "pipe-j2"; tag = "icon-pipe-j2"},/turf/simulated/floor/plasteel,/area/quartermaster/office) "bQd" = (/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/quartermaster/office) @@ -4890,13 +4928,20 @@ "bQN" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyerStar"; name = "Medbay Entrance Starboard"; req_access_txt = "5"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/medical/medbay2) "bQO" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyerStar"; name = "Medbay Entrance Starboard"; req_access_txt = "5"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/medical/medbay2) "bQP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/wall,/area/medical/medbay2) +"bQQ" = (/obj/machinery/light_switch{pixel_x = -27},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bQR" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable/yellow{d1 = 0; d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/engine/engineering) "bQS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/closet/walllocker/emerglocker/north,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bQT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"bQU" = (/obj/machinery/power/smes/engineering,/obj/structure/cable/yellow{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bQV" = (/turf/simulated/wall,/area/medical/medbay2) +"bQW" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bQX" = (/turf/simulated/floor/plating,/area/maintenance/genetics) +"bQY" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/power/terminal{dir = 8},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bQZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/hologram/holopad,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bRa" = (/obj/structure/extinguisher_cabinet{pixel_x = -27},/obj/machinery/light{dir = 8},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "bRb" = (/turf/simulated/floor/bluegrid,/area/assembly/chargebay) "bRc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor/bluegrid,/area/assembly/chargebay) +"bRd" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bRe" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plating,/area/maintenance/genetics) "bRf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/genetics) "bRg" = (/obj/machinery/light/small{dir = 1},/obj/structure/disposalpipe/sortjunction{dir = 2; icon_state = "pipe-j2s"; sortType = 14},/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/genetics) @@ -4910,6 +4955,9 @@ "bRo" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/camera{c_tag = "Research Hallway Entrance"; dir = 2; network = list("Research","SS13")},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/medical/research{name = "Research Division"}) "bRp" = (/obj/machinery/door_control{id = "rdlab2"; name = "Research and Development Lab Shutters Control"; pixel_x = -24; pixel_y = -24; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) "bRq" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = 0},/obj/item/stack/tape_roll,/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) +"bRr" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/hardsuit/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/engineering,/obj/machinery/power/apc{dir = 1; name = "north bump Engineering"; pixel_x = 0; pixel_y = 24; shock_proof = 1},/obj/structure/cable/yellow{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/storage/secure) +"bRs" = (/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/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bRt" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/secure) "bRu" = (/obj/machinery/vending/boozeomat,/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration) "bRv" = (/obj/structure/table/reinforced,/obj/machinery/chem_dispenser/beer,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bRw" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/box/drinkingglasses,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) @@ -4962,6 +5010,7 @@ "bSr" = (/obj/structure/closet/secure_closet/chemical,/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/chemistry) "bSs" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/medical/medbay2) "bSt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101.325; on = 1; pressure_checks = 1},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyerPort"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; pixel_y = 6; range = 3; req_access_txt = null},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay2) +"bSu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/secure) "bSv" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/medical/medbay3) "bSw" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay3) "bSx" = (/obj/structure/closet/secure_closet/medical3,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay3) @@ -4969,8 +5018,10 @@ "bSz" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bSA" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door_control{desc = "A remote control switch for the medbay foyer."; id = "MedbayFoyerStar"; name = "Medbay Doors Control"; normaldoorcontrol = 1; pixel_x = -26; range = 6},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/medical/medbay2) "bSB" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) +"bSC" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/secure) "bSD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/medical/medbay2) "bSE" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay2) +"bSF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bSG" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay2) "bSH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/sortjunction{dir = 8; icon_state = "pipe-j2s"; sortType = 23},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay2) "bSI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay2) @@ -4998,7 +5049,10 @@ "bTe" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/toxins/lab) "bTf" = (/obj/effect/landmark{name = "lightsout"},/obj/machinery/door/firedoor,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/medical/research{name = "Research Division"}) "bTg" = (/obj/structure/table/reinforced,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "rdlab2"; name = "Research and Development Lab Shutters"; opacity = 0},/obj/machinery/door/window/eastright{base_state = "left"; dir = 1; icon_state = "left"; name = "Research and Development Desk"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) +"bTh" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{id_tag = "Secure Storage"; name = "Secure Storage Blast Doors"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/storage/secure) +"bTi" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bTj" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/glass_research{name = "Research and Development"; req_access_txt = "47"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/toxins/lab) +"bTk" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bTl" = (/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bTm" = (/obj/structure/table,/obj/item/pod_parts/core,/obj/item/weapon/circuitboard/mecha/pod,/obj/item/clothing/glasses/welding{pixel_y = 12},/obj/item/device/gps,/turf/simulated/floor/plasteel,/area/engine/mechanic_workshop) "bTn" = (/obj/machinery/door/poddoor/preopen{id_tag = "adminshuttleblast"; name = "Blast Doors"; req_access_txt = "101"},/obj/machinery/door/airlock/centcom{id_tag = "adminshuttle"; name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) @@ -5081,12 +5135,27 @@ "bUM" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bUN" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bUO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/noticeboard{pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bUP" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bUQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/engineering) +"bUR" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/engineering) +"bUS" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/camera{c_tag = "Engineering Particle Accelerator"; dir = 2; pixel_x = 23; network = list("Singularity","SS13")},/obj/machinery/light{dir = 1},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/engineering) +"bUT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bUU" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/medical/research{name = "Research Division"}) +"bUV" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bUW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bUX" = (/obj/effect/decal/warning_stripes/east,/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bUY" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/engine/engineering) +"bUZ" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering) +"bVa" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bVb" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/engine/engineering) +"bVc" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bVd" = (/obj/effect/decal/warning_stripes/west,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bVe" = (/obj/machinery/kitchen_machine/microwave/upgraded,/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bVf" = (/obj/machinery/door/window/northright{name = "bar"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bVg" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bVh" = (/obj/item/ashtray/glass,/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bVi" = (/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/obj/item/weapon/lighter/zippo{pixel_x = 5},/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) +"bVj" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bVk" = (/obj/machinery/door_control{id = "adminshuttleblast"; name = "blast door control"; pixel_x = -30; req_access_txt = "106"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bVl" = (/obj/machinery/door/airlock/centcom{id_tag = "adminshuttle"; name = "Workshop"; opacity = 1; req_access_txt = "105"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bVm" = (/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/supply) @@ -5124,6 +5193,7 @@ "bVS" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_medical{id_tag = "MedbayFoyer"; name = "Medical Supplies"; req_access_txt = "5"},/turf/simulated/floor/plasteel{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/chemistry) "bVT" = (/turf/simulated/wall,/area/medical/medbay3) "bVU" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) +"bVV" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bVW" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay3) "bVX" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/item/roller,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/medbay3) "bVY" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers,/obj/item/weapon/storage/box/syringes{pixel_x = 4; pixel_y = 4},/obj/item/weapon/storage/box/syringes,/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay3) @@ -5147,7 +5217,19 @@ "bWq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bWr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bWs" = (/obj/machinery/camera{c_tag = "Research Hallway North"; dir = 1; network = list("Research","SS13")},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bWt" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bWu" = (/obj/machinery/hologram/holopad,/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "bWv" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bWw" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"bWx" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_west_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) +"bWy" = (/obj/item/clothing/glasses/meson,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) +"bWz" = (/obj/machinery/door_control{id = "Singularity"; name = "Singularity Blast Doors"; pixel_x = 25; pixel_y = 0; req_access_txt = "10"},/obj/effect/decal/warning_stripes/northeastcorner,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) +"bWA" = (/obj/structure/stool,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) +"bWB" = (/obj/machinery/door_control{id = "Singularity"; name = "Singularity Blast Doors"; pixel_x = -25; pixel_y = 0; req_access_txt = "10"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/engine/engineering) +"bWC" = (/obj/machinery/particle_accelerator/control_box,/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/engine/engineering) +"bWD" = (/obj/machinery/door_control{id = "Singularity"; name = "Singularity Blast Doors"; pixel_x = -25; pixel_y = 0; req_access_txt = "10"},/obj/effect/decal/warning_stripes/northwestcorner,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) +"bWE" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) +"bWF" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_east_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/engine/engineering) "bWG" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/obj/structure/window/plasmareinforced{color = "#FF0000"; dir = 4},/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/administration) "bWH" = (/obj/structure/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bWI" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) @@ -5203,6 +5285,7 @@ "bXG" = (/obj/structure/closet/secure_closet/medical1,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/cryo) "bXH" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor/plasteel,/area/medical/cryo) "bXI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (EAST)"; icon_state = "whiteblue"; dir = 4},/area/medical/medbay2) +"bXJ" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_west_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) "bXK" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor/plasteel,/area/medical/cryo) "bXL" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/genetics_cloning) "bXM" = (/obj/machinery/camera{c_tag = "Medbay Cloning"; network = list("SS13")},/obj/structure/closet/wardrobe/medic_white,/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/genetics_cloning) @@ -5229,7 +5312,15 @@ "bYh" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/crew_quarters/hor) "bYi" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/crew_quarters/hor) "bYj" = (/turf/simulated/wall/r_wall,/area/crew_quarters/hor) +"bYk" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) "bYl" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/crew_quarters/hor) +"bYm" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"bYn" = (/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/crowbar,/obj/machinery/light_switch{pixel_x = -27},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/engine/engineering) +"bYo" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_east_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"bYp" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"bYq" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/engine/engineering) +"bYr" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/item/weapon/tank/plasma,/obj/structure/cable/yellow,/turf/simulated/floor/plating,/area/engine/engineering) +"bYs" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/engine/engineering) "bYt" = (/obj/machinery/door/airlock/glass,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "bYu" = (/obj/structure/shuttle/engine/propulsion{dir = 8; icon_state = "propulsion_r"; tag = "icon-propulsion_r (EAST)"},/turf/space,/area/shuttle/administration) "bYv" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/administration) @@ -5313,14 +5404,20 @@ "bZV" = (/obj/machinery/computer/aifixer,/obj/machinery/requests_console{announcementConsole = 1; department = "Research Director's Desk"; departmentType = 7; name = "Research Director Requests Console"; pixel_x = -2; pixel_y = 30},/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) "bZW" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/crew_quarters/hor) "bZX" = (/obj/machinery/computer/security/telescreen{desc = "Used for watching the RD's goons from the safety of his office."; name = "Research Monitor"; network = list("Research","Research Outpost","RD"); pixel_x = 0; pixel_y = 2},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table/glass,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) +"bZY" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) "bZZ" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"caa" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "engineering_west_pump"; tag_exterior_door = "engineering_west_outer"; frequency = 1379; id_tag = "engineering_west_airlock"; tag_interior_door = "engineering_west_inner"; pixel_x = 25; req_access_txt = "10;13"; tag_chamber_sensor = "engineering_west_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_west_sensor"; pixel_x = 25; pixel_y = 12},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"cab" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/engine/engineering) "cac" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint2) +"cad" = (/obj/item/weapon/wirecutters,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) "cae" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/administration) "caf" = (/obj/machinery/vending/snack,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "cag" = (/obj/machinery/vending/cola,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "cah" = (/obj/machinery/vending/coffee,/obj/machinery/light/spot,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "cai" = (/obj/machinery/vending/cigarette,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) +"caj" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) "cak" = (/obj/machinery/computer/communications,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) +"cal" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "engineering_east_pump"; tag_exterior_door = "engineering_east_outer"; frequency = 1379; id_tag = "engineering_east_airlock"; tag_interior_door = "engineering_east_inner"; pixel_x = -25; req_access_txt = "10;13"; tag_chamber_sensor = "engineering_east_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_east_sensor"; pixel_x = -25; pixel_y = 12},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) "cam" = (/turf/simulated/wall,/area/quartermaster/miningdock) "can" = (/obj/structure/table/reinforced,/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "cao" = (/obj/structure/filingcabinet,/turf/simulated/floor/plasteel,/area/quartermaster/qm) @@ -5367,6 +5464,7 @@ "cbd" = (/turf/simulated/wall/r_wall,/area/toxins/server_coldroom) "cbe" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/toxins/server_coldroom) "cbf" = (/turf/simulated/wall/r_wall,/area/toxins/server) +"cbg" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_west_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) "cbh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/toxins/storage) "cbi" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "Server Room"; req_access = null; req_access_txt = "30"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/toxins/server) "cbj" = (/turf/simulated/wall/r_wall,/area/toxins/storage) @@ -5379,7 +5477,10 @@ "cbq" = (/obj/machinery/computer/robotics,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) "cbr" = (/obj/structure/stool/bed/chair/office/light{dir = 8},/obj/effect/landmark/start{name = "Research Director"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) "cbs" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/crew_quarters/hor) +"cbt" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) "cbu" = (/obj/structure/lamarr,/turf/simulated/floor/plasteel{dir = 4; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/crew_quarters/hor) +"cbv" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_east_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) +"cbw" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) "cbx" = (/obj/structure/stool/bed/chair/comfy/black{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "cby" = (/obj/machinery/computer/shuttle/admin,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) "cbz" = (/obj/machinery/door/airlock/centcom{id_tag = "adminshuttle"; name = "Bridge"; opacity = 1; req_access_txt = "106"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) @@ -5470,6 +5571,7 @@ "cdg" = (/obj/machinery/computer/mecha,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) "cdh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) "cdi" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTH)"},/area/crew_quarters/hor) +"cdj" = (/obj/item/weapon/extinguisher,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_west_airlock"; name = "exterior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "10;13"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cdk" = (/obj/item/device/radio/intercom{frequency = 1459; name = "station intercom (General)"; pixel_x = 28},/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warnwhite"; tag = "icon-warnwhite (NORTHEAST)"},/area/crew_quarters/hor) "cdl" = (/obj/machinery/dna_scannernew/upgraded,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration) "cdm" = (/obj/machinery/computer/cloning,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration) @@ -5553,6 +5655,8 @@ "ceM" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) "ceN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) "ceO" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) +"ceP" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/space) +"ceQ" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/space) "ceR" = (/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/shuttle/administration) "ceS" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/crew_quarters/hor) "ceT" = (/obj/machinery/door/airlock/centcom{id_tag = "adminshuttle"; name = "Medbay"; opacity = 1; req_access_txt = "103"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/administration) @@ -5677,6 +5781,7 @@ "chi" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/asmaint) "chj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "paramedic"; name = "Paramedic Garage"},/turf/simulated/floor/plasteel,/area/medical/paramedic) "chk" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/medical/paramedic) +"chl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/space) "chm" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "acutesep"; name = "Acute Separation Privacy Shutters"; opacity = 0},/turf/simulated/floor/plasteel{tag = "icon-whitebluefull"; icon_state = "whitebluefull"},/area/medical/sleeper) "chn" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "acutesep"; name = "Acute Separation Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/sleeper) "cho" = (/obj/structure/sign/greencross,/turf/simulated/wall,/area/medical/sleeper) @@ -5694,6 +5799,7 @@ "chA" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/light{dir = 1; on = 1},/obj/machinery/door_control{id = "staffroom"; name = "Staff Room Privacy Shutters Control"; pixel_x = -25; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "chB" = (/obj/machinery/camera{c_tag = "Medbay Break Room"; network = list("SS13")},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/machinery/washing_machine,/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "chC" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) +"chD" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/space) "chE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/medical/genetics) "chF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/table/woodentable,/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/turf/simulated/floor/plasteel{dir = 2; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/medical/medbreak) "chG" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor/plasteel{tag = "icon-whitepurple (NORTHWEST)"; icon_state = "whitepurple"; dir = 9},/area/medical/genetics) @@ -5797,6 +5903,7 @@ "cjA" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/genetics) "cjB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/genetics) "cjC" = (/obj/machinery/light,/obj/machinery/camera{c_tag = "Research Genetics South"; dir = 1; network = list("Research","SS13")},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/genetics) +"cjD" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) "cjE" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitepurple"},/area/medical/genetics) "cjF" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24; shock_proof = 0},/turf/simulated/floor/engine,/area/toxins/explab_chamber) "cjG" = (/turf/simulated/floor/engine,/area/toxins/explab_chamber) @@ -5945,6 +6052,7 @@ "cmt" = (/obj/structure/stool/bed/chair/office/dark{dir = 1},/obj/effect/landmark/start{name = "Chief Medical Officer"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/cmo) "cmu" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/disposalpipe/segment,/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) "cmv" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/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) +"cmw" = (/obj/item/weapon/wrench,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_east_airlock"; name = "exterior access button"; pixel_x = -20; pixel_y = 20; req_access_txt = "10;13"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cmx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{tag = "icon-whitebluecorner (WEST)"; icon_state = "whitebluecorner"; dir = 8},/area/medical/medbay2) "cmy" = (/obj/machinery/photocopier,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10},/area/medical/medbay2) "cmz" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 8; icon_state = "shutter0"; id_tag = "staffroom"; name = "Staff Room Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/medical/medbreak) @@ -6013,6 +6121,7 @@ "cnK" = (/obj/machinery/light,/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/turf/simulated/floor/plasteel{dir = 10; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) "cnL" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/disposalpipe/segment,/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) "cnM" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) +"cnN" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) "cnO" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/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) "cnP" = (/obj/machinery/computer/crew,/obj/machinery/light,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 6; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/medical/cmo) "cnQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/medical/medbay2) @@ -7477,8 +7586,8 @@ "cPT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/atmos) "cPU" = (/obj/machinery/portable_atmospherics/canister/sleeping_agent,/obj/effect/decal/warning_stripes/yellow/hollow,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) "cPV" = (/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) -"cPW" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/plasteel,/area/engine/break_room) -"cPX" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = 1; pixel_y = 9},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor/plasteel,/area/engine/break_room) +"cPW" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/space) +"cPX" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) "cPY" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/vending/cigarette,/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor/plasteel,/area/engine/break_room) "cPZ" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/atmos/distribution) "cQa" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellowcorner"},/turf/simulated/floor/plasteel{tag = "icon-siding8 (NORTH)"; icon_state = "siding8"; dir = 1},/area/atmos) @@ -7521,7 +7630,7 @@ "cQL" = (/obj/machinery/light{dir = 8},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/decal/warning_stripes/blue/hollow,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) "cQM" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/decal/warning_stripes/blue/hollow,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) "cQN" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/equipmentstorage) -"cQO" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/engine/equipmentstorage) +"cQO" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/obj/structure/cable/yellow{d1 = 0; d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cQP" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/atmos) "cQQ" = (/obj/machinery/pipedispenser/disposal,/turf/simulated/floor/plasteel,/area/atmos) "cQR" = (/obj/machinery/atmospherics/binary/volume_pump/on{name = "Waste In"},/turf/simulated/floor/plasteel,/area/atmos/distribution) @@ -7587,11 +7696,11 @@ "cRZ" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/atmos) "cSa" = (/obj/machinery/camera{c_tag = "Engineering Equipment North"; network = list("SS13")},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/vending/engivend,/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) "cSb" = (/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/decal/warning_stripes/red/hollow,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) -"cSc" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) +"cSc" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) "cSd" = (/turf/simulated/floor/plasteel,/area/atmos) "cSe" = (/obj/structure/closet/wardrobe/atmospherics_yellow,/turf/simulated/floor/plasteel,/area/atmos) "cSf" = (/obj/machinery/atmospherics/pipe/manifold/visible/purple{dir = 8},/turf/simulated/floor/plasteel,/area/atmos/distribution) -"cSg" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/machinery/vending/tool,/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) +"cSg" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cSh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) "cSi" = (/obj/machinery/atmospherics/pipe/manifold/visible/yellow{level = 2},/turf/simulated/floor/plasteel,/area/atmos/distribution) "cSj" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/portable_atmospherics/canister/nitrogen,/obj/effect/decal/warning_stripes/red/hollow,/obj/machinery/camera{c_tag = "Atmospherics North-West"; dir = 4; network = list("SS13")},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/atmos) @@ -7700,12 +7809,12 @@ "cUi" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/engine/hardsuitstorage) "cUj" = (/obj/machinery/requests_console{department = "Engineering"; departmentType = 3; name = "Engineering Requests Console"; pixel_y = 30},/obj/structure/table,/obj/item/weapon/book/manual/engineering_guide,/obj/item/weapon/book/manual/engineering_particle_accelerator{pixel_y = 6},/obj/item/weapon/book/manual/engineering_singularity_safety,/obj/machinery/camera{c_tag = "Engineering North-West"; network = list("SS13")},/turf/simulated/floor/plasteel,/area/engine/engineering) "cUk" = (/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/obj/structure/table,/obj/item/weapon/book/manual/engineering_hacking{pixel_x = 3; pixel_y = 3},/obj/item/weapon/book/manual/engineering_construction,/obj/item/weapon/book/manual/supermatter_engine,/turf/simulated/floor/plasteel,/area/engine/engineering) -"cUl" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 1},/obj/machinery/power/apc{cell_type = 25000; dir = 1; name = "Engineering Engine Super APC"; pixel_x = 0; pixel_y = 24; shock_proof = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) +"cUl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/space) "cUm" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/light{dir = 1},/obj/item/weapon/cartridge/engineering{pixel_x = 3},/obj/item/weapon/cartridge/engineering{pixel_x = -3; pixel_y = 2},/obj/item/weapon/cartridge/engineering{pixel_x = 4; pixel_y = 5},/turf/simulated/floor/plasteel,/area/engine/engineering) -"cUn" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/hardsuit/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/engineering,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 1; name = "north bump Engineering"; pixel_x = 0; pixel_y = 24; shock_proof = 1},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) -"cUo" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/hardsuit/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/engineering,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/item/device/radio/intercom{broadcasting = 0; name = "station intercom (General)"; pixel_y = 25},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) -"cUp" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/hardsuit/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/engineering,/obj/machinery/light{dir = 1},/obj/machinery/alarm{pixel_x = 0; pixel_y = 24},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) -"cUq" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/engine/chiefs_office) +"cUn" = (/obj/machinery/power/tesla_coil{anchored = 1},/obj/structure/cable/yellow{d1 = 0; d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/space) +"cUo" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/space) +"cUp" = (/obj/machinery/power/tesla_coil{anchored = 1},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/airless,/area/space) +"cUq" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) "cUr" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/hardsuit/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/engineering,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) "cUs" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 7; name = "Chief Engineer Requests Console"; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/photocopier,/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cUt" = (/obj/structure/closet/secure_closet/engineering_personal,/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) @@ -7756,20 +7865,20 @@ "cVm" = (/obj/machinery/camera{c_tag = "Aft Port Solar Control"; dir = 1; network = list("SS13")},/obj/structure/cable,/obj/machinery/power/apc{dir = 2; name = "south bump Engineering"; pixel_y = -24; shock_proof = 1},/turf/simulated/floor/plating,/area/maintenance/portsolar) "cVn" = (/obj/structure/closet/wardrobe/black,/obj/machinery/camera{c_tag = "Aft Port Solar Access"; dir = 1; network = list("SS13")},/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/maintenance/aft) "cVo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/maintenance/aft) -"cVp" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) -"cVq" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) -"cVr" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/hardsuitstorage) -"cVs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) -"cVt" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) -"cVu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/engine/chiefs_office) -"cVv" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) -"cVw" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cVp" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cVq" = (/obj/machinery/light{dir = 8},/obj/structure/grille,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cVr" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/grille,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cVs" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity West"; dir = 4; network = list("Singularity","SS13")},/obj/structure/cable/yellow{d1 = 0; d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cVt" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity East"; dir = 8; network = list("Singularity","SS13")},/obj/structure/cable/yellow{d2 = 4; icon_state = "0-4"},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cVu" = (/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cVv" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cVw" = (/obj/machinery/power/tesla_coil{anchored = 1},/obj/structure/cable/yellow{d1 = 0; d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plating/airless,/area/space) "cVx" = (/obj/structure/table,/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/stack/cable_coil,/obj/item/stack/cable_coil,/obj/item/stack/tape_roll,/obj/item/stack/tape_roll,/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) -"cVy" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/clothing/shoes/magboots/advance,/obj/item/clothing/suit/space/hardsuit/elite,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/elite,/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cVz" = (/obj/structure/stool/bed/chair/office/light,/obj/effect/landmark/start{name = "Chief Engineer"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cVA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cVB" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/engine/chiefs_office) -"cVC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/obj/machinery/computer/station_alert/all,/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cVy" = (/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cVz" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cVA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/space) +"cVB" = (/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/plating/airless,/area/space) +"cVC" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/space) "cVD" = (/obj/structure/table,/obj/item/device/radio{pixel_y = 6},/obj/item/device/radio{pixel_x = 6; pixel_y = 4},/obj/item/device/radio{pixel_x = -6; pixel_y = 4},/obj/item/device/radio,/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) "cVE" = (/turf/simulated/wall,/area/atmos/distribution) "cVF" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/item/stack/rods{amount = 50},/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) @@ -7814,15 +7923,16 @@ "cWs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) "cWt" = (/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) "cWu" = (/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) -"cWv" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/chiefs_office) +"cWv" = (/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cWw" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor/plating,/area/toxins/xenobiology) "cWx" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/port) "cWy" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "cWz" = (/obj/item/device/radio/intercom{name = "station intercom (General)"; pixel_x = -28; pixel_y = 0},/obj/machinery/computer/monitor{name = "Grid Power Monitoring Computer"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) -"cWA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/engine/engineering) +"cWA" = (/obj/structure/cable/yellow{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cWB" = (/obj/structure/closet/secure_closet/engineering_welding,/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) "cWC" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cWD" = (/obj/structure/closet/secure_closet/engineering_chief{req_access_txt = "0"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) +"cWE" = (/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cWF" = (/obj/structure/table/reinforced,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/photocopier/faxmachine{department = "Chief Engineer's Office"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cWH" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) "cWI" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/weapon/storage/toolbox/mechanical{pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/item/weapon/storage/belt/utility,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) @@ -7876,8 +7986,6 @@ "cXE" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Storage"; req_access_txt = "11"; req_one_access_txt = null},/turf/simulated/floor/plasteel,/area/engine/hardsuitstorage) "cXF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cXG" = (/obj/machinery/camera{c_tag = "Engineering Chief Engineer's Office"; dir = 4; network = list("SS13")},/obj/item/device/radio/intercom{name = "station intercom (General)"; pixel_x = -28; pixel_y = 0},/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cXH" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/stool/bed/chair{dir = 1},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) -"cXI" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/apc{dir = 4; name = "east bump Engineering"; pixel_x = 24; shock_proof = 1},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) "cXJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall/r_wall,/area/atmos) "cXL" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) "cXM" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/table,/obj/item/device/t_scanner,/obj/item/device/radio/headset/headset_eng,/obj/item/device/multitool{pixel_x = 5},/turf/simulated/floor/plasteel,/area/engine/equipmentstorage) @@ -7929,12 +8037,8 @@ "cYH" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/engine/engineering) "cYI" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "cYJ" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/engine/engineering) -"cYK" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) "cYL" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/engine/chiefs_office) "cYM" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) -"cYN" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) -"cYO" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_command{name = "Chief Engineer"; req_access_txt = "56"},/turf/simulated/floor/plasteel,/area/engine/chiefs_office) -"cYP" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/engine/chiefs_office) "cYQ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "10"; req_one_access_txt = null},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) "cYR" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/wall/r_wall,/area/engine/engineering) "cYS" = (/obj/structure/table,/obj/item/device/t_scanner,/obj/item/device/multitool{pixel_x = 5},/obj/item/device/radio/headset/headset_eng,/obj/item/weapon/cartridge/atmos,/obj/item/weapon/cartridge/atmos,/obj/item/device/t_scanner,/turf/simulated/floor/plasteel,/area/atmos) @@ -7973,14 +8077,7 @@ "cZA" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/obj/structure/cable,/turf/simulated/floor/plating,/area/toxins/xenobiology) "cZB" = (/obj/machinery/door/window/southright{name = "Containment Pen"; req_access_txt = "55"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "xenobio6"; name = "Containment Blast Doors"; opacity = 0},/turf/simulated/floor/engine,/area/toxins/xenobiology) "cZC" = (/obj/effect/decal/cleanable/dirt,/obj/item/device/radio/intercom{dir = 1; name = "station intercom (General)"; pixel_y = -28},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) -"cZD" = (/obj/structure/table,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/glasses/welding,/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/clothing/ears/earmuffs{pixel_x = -5; pixel_y = 6},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/item/weapon/stock_parts/cell/high,/turf/simulated/floor/plasteel,/area/engine/engineering) -"cZE" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/computer/monitor{name = "Engine Power Monitoring Computer"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) "cZF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) -"cZG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/power/port_gen/pacman,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) -"cZH" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{amount = 30},/obj/item/device/pipe_painter,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) -"cZI" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) -"cZJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plasteel,/area/engine/engineering) -"cZK" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) "cZL" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/sign/poster/official/random{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/engine/engineering) "cZM" = (/turf/simulated/wall,/area/engine/engineering) "cZN" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) @@ -7989,14 +8086,12 @@ "cZQ" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "yellow"},/area/engine/engineering) "cZR" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) "cZS" = (/turf/simulated/wall/r_wall,/area/atmos) -"cZT" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/light_switch{pixel_x = -27},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel,/area/engine/engineering) "cZU" = (/obj/machinery/atmospherics/pipe/manifold/visible/purple{dir = 8},/turf/simulated/floor/plasteel,/area/atmos) "cZV" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes/engineering,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/engine/engineering) "cZW" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 4},/obj/machinery/atmospherics/binary/valve,/turf/simulated/floor/plasteel,/area/atmos) "cZX" = (/obj/machinery/atmospherics/pipe/simple/visible{dir = 9},/turf/simulated/floor/plasteel,/area/atmos) "cZY" = (/obj/machinery/atmospherics/binary/valve,/turf/simulated/floor/plasteel,/area/atmos) "cZZ" = (/obj/machinery/atmospherics/pipe/simple/visible/yellow{level = 2},/obj/machinery/atmospherics/unary/portables_connector{dir = 4},/turf/simulated/floor/plasteel,/area/atmos) -"daa" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/engine/engineering) "dab" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/wall/r_wall,/area/engine/engineering) "dac" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "dad" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible{dir = 10},/turf/space,/area/space) @@ -8021,12 +8116,8 @@ "daw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) "dax" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/effect/decal/cleanable/generic,/obj/machinery/camera{c_tag = "Engineering Shuttle Access"; dir = 8; network = list("SS13")},/turf/simulated/floor/plating,/area/maintenance/engi_shuttle) "day" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plasteel,/area/engine/engineering) -"daz" = (/obj/machinery/power/smes/engineering,/obj/structure/cable{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plasteel,/area/engine/engineering) "daA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/warning_stripes/south,/turf/simulated/floor/plasteel,/area/engine/engineering) "daB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/effect/decal/warning_stripes/southwestcorner,/turf/simulated/floor/plasteel,/area/engine/engineering) -"daC" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) -"daD" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plasteel,/area/engine/engineering) -"daE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "daF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor/plasteel,/area/engine/engineering) "daG" = (/turf/simulated/floor/plating,/area/engine/engineering) "daH" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plating,/area/engine/engineering) @@ -8038,7 +8129,6 @@ "daN" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 4},/turf/simulated/floor/plasteel,/area/atmos) "daO" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel,/area/atmos) "daP" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/turf/simulated/floor/plasteel,/area/atmos) -"daQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) "daR" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/obj/machinery/door/airlock/glass_engineering{name = "Engine Room"; req_access_txt = "10"; req_one_access_txt = null},/turf/simulated/floor/plasteel,/area/engine/engineering) "daS" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/smes/engineering,/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/engine/engineering) "daT" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/hardsuit/atmos,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/atmos,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel,/area/atmos) @@ -8068,10 +8158,8 @@ "dbr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/engine/engineering) "dbs" = (/obj/structure/closet/secure_closet/engineering_electrical,/turf/simulated/floor/plasteel,/area/engine/engineering) "dbt" = (/obj/machinery/light/small{dir = 8},/obj/machinery/camera{c_tag = "Engineering Secure Storage North"; dir = 4; network = list("SS13")},/obj/machinery/floodlight,/turf/simulated/floor/plating,/area/storage/secure) -"dbu" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/hardsuit/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/engineering,/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "north bump Engineering"; pixel_x = 0; pixel_y = 24; shock_proof = 1},/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"; tag = "icon-warnplate (NORTH)"},/area/storage/secure) "dbv" = (/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) "dbw" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/obj/item/clothing/suit/space/hardsuit/engineering,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/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) -"dbx" = (/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) "dby" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Singularity"; layer = 2.8; name = "Singularity Shutters"; opacity = 0},/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/engine/engineering) "dbz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/engine/engineering) "dbA" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/engine/engineering) @@ -8100,26 +8188,15 @@ "dbY" = (/obj/structure/disposalpipe/segment,/obj/structure/table/glass,/obj/machinery/computer/med_data/laptop,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitegreen"; tag = "icon-whitehall (WEST)"},/area/medical/virology) "dbZ" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "dca" = (/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "sit_scimaint"; name = "Cyberiad Science Maint"; width = 11},/turf/space,/area/space) -"dcb" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/secure) "dcc" = (/obj/machinery/floodlight,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) -"dcd" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/secure) -"dce" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/storage/secure) -"dcf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) -"dcg" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{id_tag = "Secure Storage"; name = "Secure Storage Blast Doors"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/storage/secure) "dch" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/engine/engineering) -"dci" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/engine/engineering) -"dcj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/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/plasteel,/area/engine/engineering) -"dck" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/engine/engineering) "dcl" = (/obj/structure/closet/radiation,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/effect/decal/warning_stripes/southeastcorner,/turf/simulated/floor/plasteel,/area/engine/engineering) "dcm" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) "dcn" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/wall/r_wall,/area/engine/engineering) "dco" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/engine/engineering) -"dcp" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/engineering) -"dcq" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/engineering) "dcr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plasteel{dir = 5; icon_state = "warning"},/area/engine/engineering) "dcs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/decal/cleanable/fungus,/turf/simulated/wall/r_wall,/area/engine/engineering) "dct" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plasteel,/area/atmos) -"dcu" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/camera{c_tag = "Engineering Particle Accelerator"; dir = 2; pixel_x = 23; network = list("Singularity","SS13")},/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/engineering) "dcv" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/turf/simulated/floor/plasteel,/area/atmos) "dcw" = (/obj/structure/closet/radiation,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/machinery/light/small{dir = 8},/obj/effect/decal/warning_stripes/southwestcorner,/turf/simulated/floor/plasteel{dir = 9; icon_state = "yellow"},/area/engine/engineering) "dcx" = (/obj/machinery/camera{c_tag = "Engineering SMES"; dir = 8; network = list("SS13"); pixel_x = 0; pixel_y = 0},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/engine/engineering) @@ -8149,25 +8226,9 @@ "dcV" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "dcW" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{id_tag = "Secure Storage"; name = "Secure Storage Blast Doors"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plating,/area/storage/secure) "dcX" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) -"dcY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) -"dcZ" = (/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/engine/engineering) -"dda" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) "ddb" = (/obj/structure/particle_accelerator/end_cap,/turf/simulated/floor/plating,/area/engine/engineering) -"ddc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plasteel,/area/engine/engineering) -"ddd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) -"dde" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/engine/engineering) -"ddf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engine/engineering) -"ddg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) -"ddh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/engine/engineering) -"ddi" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) -"ddj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/effect/decal/warning_stripes/west,/turf/simulated/floor/plasteel,/area/engine/engineering) -"ddk" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) -"ddl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor/plasteel,/area/engine/engineering) "ddm" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor/plasteel,/area/atmos) -"ddn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/engine/engineering) -"ddo" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plasteel,/area/engine/engineering) "ddp" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/engine/engineering) -"ddq" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel,/area/engine/engineering) "ddr" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Engineering"; name = "Engineering Security Doors"; opacity = 0},/obj/machinery/door/airlock/external{name = "Engineering Escape Pod"; req_access = null; req_access_txt = "10"},/turf/simulated/floor/plating,/area/engine/engineering) "dds" = (/obj/machinery/portable_atmospherics/pump,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/atmos) "ddt" = (/obj/machinery/atmospherics/binary/pump{dir = 0; name = "Port to Filter"; on = 0},/turf/simulated/floor/plasteel,/area/atmos) @@ -8193,23 +8254,13 @@ "ddN" = (/obj/machinery/light_switch{pixel_x = 27},/obj/structure/reagent_dispensers/watertank,/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/storage/secure) "ddO" = (/obj/machinery/atmospherics/unary/portables_connector,/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) "ddP" = (/obj/machinery/light,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) -"ddQ" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_west_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) -"ddR" = (/obj/machinery/particle_accelerator/control_box,/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) "ddS" = (/obj/structure/particle_accelerator/fuel_chamber,/turf/simulated/floor/plating,/area/engine/engineering) -"ddT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/clothing/glasses/meson,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) "ddU" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) -"ddV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door_control{id = "Singularity"; name = "Singularity Blast Doors"; pixel_x = 25; pixel_y = 0; req_access_txt = "10"},/obj/effect/decal/warning_stripes/northeastcorner,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) -"ddW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/stool,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) -"ddX" = (/obj/machinery/door_control{id = "Singularity"; name = "Singularity Blast Doors"; pixel_x = -25; pixel_y = 0; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/engine/engineering) "ddY" = (/obj/machinery/door_control{id = "Singularity"; name = "Singularity Blast Doors"; pixel_x = 25; pixel_y = 0; req_access_txt = "10"},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/engine/engineering) "ddZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) "dea" = (/obj/machinery/space_heater,/turf/simulated/floor/plasteel,/area/atmos) -"deb" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door_control{id = "Singularity"; name = "Singularity Blast Doors"; pixel_x = -25; pixel_y = 0; req_access_txt = "10"},/obj/effect/decal/warning_stripes/northwestcorner,/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) "dec" = (/obj/machinery/atmospherics/pipe/manifold/visible,/turf/simulated/floor/plasteel,/area/atmos) -"ded" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) -"dee" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) "def" = (/obj/machinery/atmospherics/unary/portables_connector,/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/engine/engineering) -"deg" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1379; master_tag = "engineering_east_airlock"; name = "interior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "warning"},/area/engine/engineering) "deh" = (/obj/machinery/space_heater,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel,/area/atmos) "dei" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 8; icon_state = "freezer_0"; tag = ""},/turf/simulated/floor/plasteel,/area/atmos) "dej" = (/obj/machinery/atmospherics/pipe/simple/visible/green{level = 2},/obj/machinery/atmospherics/binary/pump{dir = 8; name = "CO2 to Pure"; on = 0},/turf/simulated/floor/plasteel,/area/atmos) @@ -8232,17 +8283,12 @@ "deA" = (/obj/structure/stool,/turf/simulated/floor/plasteel,/area/engine/engineering) "deB" = (/obj/structure/particle_accelerator/power_box,/turf/simulated/floor/plating,/area/engine/engineering) "deC" = (/obj/item/weapon/screwdriver,/turf/simulated/floor/plasteel,/area/engine/engineering) -"deD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_west_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/engineering) -"deE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering) "deF" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering) -"deG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plating,/area/engine/engineering) "deH" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/floor/plasteel,/area/atmos) "deI" = (/obj/machinery/atmospherics/pipe/manifold/visible/purple,/turf/simulated/floor/plasteel,/area/atmos) "deJ" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/floor/plasteel,/area/atmos) "deK" = (/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 9},/turf/simulated/floor/plasteel,/area/atmos) -"deL" = (/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/crowbar,/obj/machinery/light_switch{pixel_x = -27},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/engine/engineering) "deM" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/engine/engineering) -"deN" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_east_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "deO" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 6},/obj/machinery/power/apc{dir = 8; name = "west bump Engineering"; pixel_x = -24; shock_proof = 1},/turf/simulated/floor/plasteel,/area/atmos) "deP" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 4},/turf/simulated/floor/plasteel,/area/atmos) "deQ" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 6; initialize_directions = 6; level = 2},/turf/simulated/floor/plasteel,/area/atmos) @@ -8265,9 +8311,6 @@ "dfi" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/obj/effect/decal/cleanable/cobweb,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "dfj" = (/obj/machinery/door/airlock/maintenance,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/asmaint) "dfk" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/engine/engineering) -"dfl" = (/obj/structure/cable,/obj/machinery/power/rad_collector{anchored = 1},/turf/simulated/floor/plating,/area/engine/engineering) -"dfm" = (/obj/structure/cable,/obj/machinery/power/rad_collector{anchored = 1},/obj/item/weapon/tank/plasma,/turf/simulated/floor/plating,/area/engine/engineering) -"dfn" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) "dfo" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/engine/engineering) "dfp" = (/obj/machinery/pipedispenser,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "dfq" = (/obj/structure/particle_accelerator/particle_emitter/left,/turf/simulated/floor/plating,/area/engine/engineering) @@ -8280,10 +8323,7 @@ "dfx" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/device/t_scanner,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/turf/simulated/floor/plasteel,/area/atmos) "dfy" = (/obj/structure/stool,/turf/simulated/floor/plasteel,/area/atmos) "dfz" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/turf/simulated/wall/r_wall,/area/engine/engineering) -"dfA" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32},/turf/simulated/floor/plating,/area/engine/engineering) "dfB" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{level = 2},/turf/simulated/floor/plasteel,/area/atmos) -"dfC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "warning"},/area/engine/engineering) -"dfD" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "dfE" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/door/airlock/external{name = "Engineering Escape Pod"; req_access = null; req_access_txt = "24"},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = -32},/turf/simulated/floor/plating,/area/atmos) "dfF" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; level = 2},/turf/simulated/floor/plasteel,/area/atmos) "dfG" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; level = 2},/obj/machinery/meter,/turf/simulated/floor/plasteel,/area/atmos) @@ -8308,10 +8348,6 @@ "dfZ" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Hatch"; req_access_txt = "0"; req_one_access_txt = "10;24"},/obj/docking_port/mobile{dir = 2; dwidth = 3; height = 5; id = "engineering"; name = "engineering shuttle"; rebuildable = 1; roundstart_move = "engineering_away"; width = 7},/obj/docking_port/stationary{dir = 2; dwidth = 3; height = 5; id = "engineering_home"; name = "engineering dock"; width = 7},/turf/simulated/floor/plating,/area/shuttle/constructionsite) "dga" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f10"; dir = 2},/area/shuttle/constructionsite) "dgb" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) -"dgc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "engineering_west_pump"; tag_exterior_door = "engineering_west_outer"; frequency = 1379; id_tag = "engineering_west_airlock"; tag_interior_door = "engineering_west_inner"; pixel_x = 25; req_access_txt = "10;13"; tag_chamber_sensor = "engineering_west_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_west_sensor"; pixel_x = 25; pixel_y = 12},/turf/simulated/floor/plating,/area/engine/engineering) -"dgd" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel{dir = 10; icon_state = "warning"},/area/engine/engineering) -"dge" = (/obj/item/weapon/wirecutters,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) -"dgf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plasteel{dir = 2; icon_state = "warning"},/area/engine/engineering) "dgg" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{level = 2},/turf/simulated/floor/plasteel,/area/atmos) "dgh" = (/obj/machinery/atmospherics/unary/portables_connector,/turf/simulated/floor/plasteel,/area/atmos) "dgi" = (/turf/simulated/floor/plasteel{dir = 6; icon_state = "warning"},/area/engine/engineering) @@ -8322,7 +8358,6 @@ "dgn" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/maintenance/asmaint) "dgo" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/maintenance/asmaint) "dgp" = (/obj/structure/closet/l3closet,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"dgq" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "engineering_east_pump"; tag_exterior_door = "engineering_east_outer"; frequency = 1379; id_tag = "engineering_east_airlock"; tag_interior_door = "engineering_east_inner"; pixel_x = -25; req_access_txt = "10;13"; tag_chamber_sensor = "engineering_east_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_east_sensor"; pixel_x = -25; pixel_y = 12},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "dgr" = (/obj/machinery/camera{c_tag = "Atmospherics South-West"; dir = 4; network = list("SS13")},/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/simulated/floor/plasteel,/area/atmos) "dgs" = (/obj/structure/table,/obj/item/device/radio{pixel_x = -6; pixel_y = 4},/obj/item/device/radio{pixel_x = 6; pixel_y = 4},/obj/item/device/radio,/turf/simulated/floor/plasteel,/area/atmos) "dgt" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8; initialize_directions = 11; level = 2},/obj/machinery/meter,/turf/simulated/floor/plasteel,/area/atmos) @@ -8340,10 +8375,7 @@ "dgF" = (/turf/simulated/shuttle/wall{icon_state = "swall1"; dir = 2},/area/shuttle/constructionsite) "dgG" = (/obj/machinery/shieldgen,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "dgH" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/solar_control,/obj/item/weapon/tracker_electronics,/obj/item/weapon/paper/solar,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) -"dgI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_west_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/engineering) "dgJ" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating/airless,/area/space) -"dgK" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) -"dgL" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_east_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "dgM" = (/obj/item/device/radio/intercom{dir = 8; name = "station intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 5},/turf/simulated/floor/plasteel,/area/atmos) "dgN" = (/obj/machinery/atmospherics/trinary/filter{density = 0; dir = 4; filter_type = 2; name = "Gas filter (N2 tank)"; on = 1},/turf/simulated/floor/plasteel,/area/atmos) "dgO" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 4; level = 2},/obj/machinery/atmospherics/pipe/simple/visible/yellow{level = 2},/turf/simulated/floor/plasteel,/area/atmos) @@ -8362,7 +8394,6 @@ "dhb" = (/turf/simulated/floor/plating{icon_state = "platingdmg3"},/area/maintenance/asmaint2) "dhc" = (/obj/structure/lattice,/obj/structure/lattice,/turf/space,/area/space) "dhd" = (/obj/machinery/computer/shuttle/engineering,/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/constructionsite) -"dhe" = (/obj/structure/grille,/obj/structure/window/full/shuttle,/turf/space,/area/shuttle/constructionsite) "dhf" = (/obj/structure/closet/radiation,/turf/simulated/floor/plating,/area/storage/secure) "dhg" = (/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk6"; icon_state = "catwalk6"},/area/space) "dhh" = (/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk12"; icon_state = "catwalk12"},/area/space) @@ -8371,18 +8402,10 @@ "dhk" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/toy/minimeteor,/obj/item/weapon/poster/random_contraband,/turf/simulated/floor/plating,/area/maintenance/asmaint) "dhl" = (/obj/machinery/the_singularitygen{anchored = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "dhm" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) -"dhn" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) "dho" = (/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity North-West"; dir = 2; network = list("Singularity","SS13"); pixel_x = 20; pixel_y = 0},/obj/machinery/power/grounding_rod{anchored = 1},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dhp" = (/obj/item/weapon/extinguisher,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_west_airlock"; name = "exterior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "10;13"},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dhq" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/space) -"dhr" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) "dhs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) -"dht" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) -"dhu" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) "dhv" = (/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity North-East"; dir = 2; network = list("Singularity","SS13")},/obj/machinery/power/grounding_rod{anchored = 1},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dhw" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) "dhx" = (/obj/machinery/light,/obj/machinery/atmospherics/binary/volume_pump/on{name = "Space Loop In"},/turf/simulated/floor/plasteel,/area/atmos) -"dhy" = (/obj/item/weapon/wrench,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_east_airlock"; name = "exterior access button"; pixel_x = -20; pixel_y = 20; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) "dhz" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/structure/closet/firecloset,/obj/machinery/requests_console{department = "Atmospherics"; departmentType = 3; name = "Atmospherics Requests Console"; pixel_x = -30},/turf/simulated/floor/plasteel,/area/atmos) "dhA" = (/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "n2_in"; name = "Nitrogen Supply Control"; output_tag = "n2_out"; sensors = list("n2_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/visible/green{level = 2},/turf/simulated/floor/plasteel{icon_state = "red"},/area/atmos) "dhB" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 10},/area/atmos) @@ -8417,8 +8440,6 @@ "die" = (/obj/machinery/door/airlock/maintenance,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "dif" = (/turf/simulated/shuttle/wall{tag = "icon-swall2"; icon_state = "swall2"; dir = 2},/area/shuttle/constructionsite) "dig" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) -"dih" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dii" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/space) "dij" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 9},/turf/simulated/floor/plating,/area/atmos) "dik" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "atmos"; name = "Atmos Blast Door"; opacity = 0},/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 6},/turf/simulated/floor/plating,/area/atmos) "dil" = (/obj/machinery/atmospherics/pipe/manifold4w/visible,/obj/machinery/meter,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/turbine) @@ -8475,14 +8496,10 @@ "djk" = (/obj/machinery/atmospherics/unary/portables_connector,/obj/machinery/portable_atmospherics/canister,/obj/structure/sign/nosmoking_2{pixel_x = 32},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/turbine) "djl" = (/obj/structure/table,/obj/item/weapon/cartridge/medical,/turf/simulated/floor/plating,/area/maintenance/asmaint) "djm" = (/obj/structure/closet/firecloset,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"djn" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) "djo" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"djp" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "djq" = (/obj/machinery/field/generator{anchored = 1; state = 2},/turf/simulated/floor/plating/airless,/area/space) "djr" = (/obj/structure/closet/emcloset,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "djs" = (/obj/machinery/power/emitter,/turf/simulated/floor/plating,/area/storage/secure) -"djt" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dju" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless,/area/engine/engineering) "djv" = (/obj/item/device/multitool,/turf/simulated/floor/plating/airless,/area/engine/engineering) "djw" = (/obj/machinery/atmospherics/pipe/manifold/visible{dir = 4; initialize_directions = 11; level = 2},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/turbine) "djx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/turbine) @@ -8495,17 +8512,12 @@ "djE" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/space,/area/space) "djF" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/oxygen,/obj/structure/sign/nosmoking_2{pixel_x = -32},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/turbine) "djG" = (/obj/machinery/atmospherics/binary/valve,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/turbine) -"djH" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"djI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) "djJ" = (/obj/machinery/atmospherics/binary/pump{dir = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/turbine) "djK" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/maintenance/turbine) -"djL" = (/obj/machinery/power/tesla_coil{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/space) "djM" = (/obj/item/weapon/shard,/turf/simulated/floor/plating,/area/maintenance/asmaint) "djN" = (/obj/structure/disposalpipe/segment,/obj/item/weapon/cigbutt/roach,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"djO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) "djP" = (/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "djQ" = (/turf/simulated/wall/r_wall,/area/maintenance/starboardsolar) -"djR" = (/obj/machinery/power/tesla_coil{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless,/area/space) "djS" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/grille,/obj/machinery/meter{frequency = 1443; id = "mair_in_meter"; name = "Mixed Air Tank In"},/turf/simulated/wall/r_wall,/area/atmos) "djT" = (/obj/structure/lattice,/obj/structure/lattice,/obj/structure/lattice,/turf/space,/area/space) "djU" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/grille,/obj/machinery/meter{frequency = 1443; id = "mair_out_meter"; name = "Mixed Air Tank Out"},/turf/simulated/wall/r_wall,/area/atmos) @@ -8517,10 +8529,6 @@ "dka" = (/obj/machinery/door/airlock/engineering{name = "Aft Starboard Solar Access"; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "dkb" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/maintenance/starboardsolar) "dkc" = (/obj/machinery/power/emitter,/obj/machinery/camera{c_tag = "Engineering Secure Storage South"; dir = 4; network = list("SS13")},/turf/simulated/floor/plating,/area/storage/secure) -"dkd" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dke" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dkf" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dkg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) "dkh" = (/obj/machinery/air_sensor{frequency = 1441; id_tag = "n2_sensor"},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "dki" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 1; frequency = 1441; icon_state = "on"; id = "n2_in"; on = 1},/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "dkj" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/turbine) @@ -8582,8 +8590,6 @@ "dlq" = (/obj/machinery/power/terminal{icon_state = "term"; dir = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) "dlr" = (/obj/structure/disposalpipe/junction{icon_state = "pipe-y"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/maintenance/asmaint) "dls" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint) -"dlt" = (/obj/machinery/light{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dlu" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) "dlv" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "dlw" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) "dlx" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) @@ -8648,10 +8654,6 @@ "dmE" = (/obj/machinery/door/poddoor{id_tag = "auxiliaryturbinevent"; name = "Auxiliary Turbine Vent"},/turf/simulated/floor/engine/insulated,/area/maintenance/turbine) "dmF" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/visible/purple,/turf/space,/area/space) "dmG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "solar_xeno_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/maintenance/starboardsolar) -"dmH" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dmI" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity West"; dir = 4; network = list("Singularity","SS13")},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dmJ" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dmK" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity East"; dir = 8; network = list("Singularity","SS13")},/turf/simulated/floor/plating/airless,/area/engine/engineering) "dmL" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/access_button/airlock_interior{master_tag = "atmospherics_south"; pixel_x = 22; pixel_y = 10},/turf/simulated/floor/plating,/area/engine/engineering) "dmM" = (/obj/effect/decal/warning_stripes/northeast,/obj/structure/table/glass,/obj/item/weapon/wirerod,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "dmN" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless,/area/space) @@ -8659,9 +8661,6 @@ "dmP" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/engine/engineering) "dmQ" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/engine/engineering) "dmR" = (/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "solar_xeno_airlock"; name = "exterior access button"; pixel_x = 25; pixel_y = 25; req_access_txt = "13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/starboard) -"dmS" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dmT" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dmU" = (/obj/structure/grille,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) "dmV" = (/obj/effect/spawner/window/reinforced,/obj/structure/transit_tube,/turf/simulated/floor/plating,/area/engine/engineering) "dmW" = (/obj/structure/transit_tube,/turf/space,/area/space) "dmX" = (/obj/structure/transit_tube{icon_state = "E-W-Pass"},/obj/structure/lattice,/turf/space,/area/space) @@ -8669,13 +8668,10 @@ "dmZ" = (/obj/structure/transit_tube,/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/turret_protected/aisat_interior) "dna" = (/obj/structure/transit_tube,/turf/simulated/floor/plating,/area/turret_protected/aisat_interior) "dnb" = (/obj/structure/transit_tube/station,/obj/structure/transit_tube_pod{dir = 4},/turf/simulated/floor/plating,/area/turret_protected/aisat_interior) -"dnc" = (/obj/machinery/power/tesla_coil{anchored = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating/airless,/area/space) "dnd" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1},/turf/simulated/floor/plating/airless,/area/space) "dne" = (/obj/structure/cable,/obj/machinery/power/turbine,/turf/simulated/floor/engine/insulated,/area/maintenance/turbine) "dnf" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating/airless/catwalk,/area/space) "dng" = (/obj/machinery/atmospherics/unary/outlet_injector/on{dir = 1},/turf/simulated/floor/plating/airless,/area/maintenance/asmaint) -"dnh" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dni" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) "dnj" = (/obj/machinery/camera{c_tag = "Mini Satellite Access"; dir = 4; network = list("SS13","MiniSat")},/obj/structure/closet/emcloset,/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/engine/engineering) "dnk" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/transit_tube{dir = 4; icon_state = "Block"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engine/engineering) "dnl" = (/obj/item/device/radio/intercom{dir = 1; name = "station intercom (General)"; pixel_y = 25},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/engine/engineering) @@ -8686,13 +8682,8 @@ "dnq" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1450; master_tag = "sci_maint"; name = "interior access button"; pixel_x = -28; pixel_y = -5; req_access_txt = "13"},/obj/effect/decal/warning_stripes/west,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "dnr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/starboard) "dns" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = 0; pixel_y = 0},/turf/simulated/wall/r_wall,/area/engine/engineering) -"dnt" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dnu" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) "dnv" = (/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plating,/area/turret_protected/aisat_interior) -"dnw" = (/obj/machinery/atmospherics/unary/vent_pump{on = 0},/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plating,/area/turret_protected/aisat_interior) "dnx" = (/obj/structure/sign/fire,/turf/simulated/wall/r_wall/coated,/area/maintenance/turbine) -"dny" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) -"dnz" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) "dnA" = (/obj/machinery/light_switch{name = "light switch "; dir = 2; pixel_x = 0; pixel_y = -22},/turf/simulated/floor/plasteel{dir = 10; icon_state = "blue"},/area/engine/engineering) "dnB" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "MiniSat Access"; req_access_txt = "75"},/turf/simulated/floor/plasteel,/area/engine/engineering) "dnC" = (/turf/simulated/floor/plasteel{dir = 0; icon_state = "blue"},/area/engine/engineering) @@ -8705,11 +8696,8 @@ "dnJ" = (/obj/machinery/door/airlock/external{frequency = 1450; icon_state = "door_locked"; id_tag = "sci_inner"; locked = 1; name = "External Access"; req_access = null; req_access_txt = "13"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "dnK" = (/obj/machinery/atmospherics/unary/portables_connector{dir = 4},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/engine/engineering) "dnL" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/starboard) -"dnM" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"dnN" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) "dnP" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = -32},/obj/machinery/light/small{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating,/area/maintenance/asmaint2) "dnQ" = (/turf/simulated/floor/plating/airless,/obj/structure/cable,/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/starboard) -"dnR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) "dnS" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor/plating,/area/engine/engineering) "dnT" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 4; level = 2},/turf/simulated/floor/plating,/area/turret_protected/aisat_interior) "dnU" = (/turf/space,/obj/machinery/atmospherics/pipe/simple/visible/yellow{dir = 6; level = 2},/turf/simulated/floor/plating/airless/catwalk,/area/space) @@ -9054,10 +9042,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVVaVSaVXaVSaVSaVYaVZaVSaVSaVXaWaaVWaLdaToaWbaVcaWdaWcaWfaWeaWhaWgaTuaUuaVeaUqaWjaVeaVeaUuaTuaWkaWlaWiaWnaWmaWoaWqaWraWpaWtaVjaabaUEaWuaWsaWwaWvaWxaUEaabaSuaSzaSAaWzaWAaWyaWCaWBaSAaPiaRwaSBaSCaWEaWDaULaSCaWFaSCaULaWGaSLaSCaSMaRwaSNaFFaWJaEjaMFaLPaISaOhaLNaLPaOiaWHaUQaWKaVEaVEaVEaWLaOlaOkaOmaUSaWQaWPaOxaOtaPgaHPaaaaaaaaaaaaaaaaaaaaaaaaaaaaGXaWVaWUaWXaWWaWYaGXaNhaGYaQIaMkaGYaGXaaaaGXaGYaGYaGYaGYaMkaXbaXaaWZaWZaWZaWZaXcaXeaXdaXhaXiaXfaXiaXgaVTaVTaVUaXkaXjaXlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaVVaWaaVSaXmaXraXsaXtaXuaXvaXwaXxaXyaXzaXpaXnaSdaToaXqaVcaXBaXAaXFaXGaXFaXCaTuaXIaVeaXDaXHaXEaXHaXJaXLaXKaXMaXQaXQaXQaXQaXQaXQaXNaXSaVjaaaaUEaXOaWsaXPaWvaXRaUEaaaaSuaSzaSAaXTaXXaXVaXUaYaaSAaPiaRwaXWaXWaTCaXYaVuaTDaXZaTDaVuaYbaTIaTzaTzaRwaYcaIraYhaEjaMFaLPaLPaLPaLPaLPaPlaPkaPnaPmaPoaUQaUQaUQaUQaUQaUQaUSaPpaZVaPqaUSaOgaYwaHPaGXaGXaGXaGXaGXaGXaGXaGXaGXaGXaGXaGXaYnaGXaGXaGXaGXaGYaMkaWVaHNaabaHNaGYaYsaYvaYuaYyaYxaYzaYEaYEaYEaYEaYFaYGaYAaYIaYJaYKaYJaYBaYJaYJaYCaXoaYOaYPaYQaYRaYSaYSaYSaYSaYSaYSaYSaYSaYSafXajcaaaaaaaaaaaaaaaaaaaaaaYDaYUaYHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXpaYMaYLaYNaXzaYZaXsaYZaXsaYZaXsaYZaXzaYVaYTaSdaToaYWaVcaYYaYXaZfaZaaZhaZbaTuaZjaUraZcaZlaZmaZnaZdaTuaZeaZgaXQaXQaXQaXQaXQaXQaXNaZraVjaabaUEaZkaZiaZpaZoaZqaUEaabaSuaSzaSAaZsaZyaZtaZAaZuaSAaPiaRwaUJaUJaUJaZvaULaSCaUIaSCaULaZwaUJaUJaUJaRwaZxaZFaZGaEjaPtaPsaPsaPsaPsaPuaPxaPvaUQaPyaPzaUQaQmaQfaQnaUQaQoaUSaZDaZVaZEaUSaQpaZKaQqaZNaZNaZKaZXaZWaZWaZWaZWaZWaZZaZYaZWbaabacbabbaebadbagbafbaibahbajbahbalbakaGYaGXbarbambanbaubavbaobaxbaybazbapbazbaBbasbaqbatbaFbaAbawbaIbaCbaEbaDaYPbaMbaNbaObaGbaQbaRbaHbaTbaUbaVaaaaaaaaaaaaaaaaaaaaaaYDbaWbaXbaYaYHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaZaXsaXsaVXaXzaYZaXsaYZbbaaYZaXsaYZaXzaYVaYTaSdaTobaJaVcaVcbaKaUtbaLaUtaVcaTuaTuaTuaTubaSbaPbbhbbbaTubbjbbcbblaXQaXQbbmaXQbbebbdbbpaVjaaaaUEaUEbbqbbfbbqaUEaUEaaaaSuaSzaSAbbibbgbbkaZAbbnaSAaPiaRwaSBaSCbboaWDaULaSCaUIaSCaULaWGbbxaRwaRwaRwbbrbbzbbtbbsbbCbbDatGatGbbEbbFbbvbbuaUQbbwaVEaUQbbJaUQbbKaUQbbLaQrbbBbbAbbHbbGbbUbbIaQtbbNbbQbbPbbRbbQbbQbbSbbQbbIbbTbbIaXfbbUbbIbbVbbXbbWbbZbbYbcbbcabcdbccbcfbceaXibcmbcgbcobcpbchbcibcsbcjbaybcubckbazbcwbcxbclbczbaFbcAbcBbcCbcDbcnbcFaYPbcqbcHbcHbcIbaTbaTbaTbaTbaUbaVaaaaaaaaaaaaaaaaaaaYDbaWbcJbcKbcLbaYaYHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXpbcrbcNaYNaXzaYZaXsaYZaXsaYZaXsaYZaXzaYVaYTaSdaTobcvbctbcEbcybcSbcSaSfbcGbcMbcVbcWbcXbcPbcOaVebcQaTubdbbcRbddbdebcTbdgbdhbdibcUbdkaVjaaaaabaaabcYbcZbcYaaaaabaaaaSuaSzaSAbdcbdabdjbdfbdraSAaPiaRwbdmbdlaTCbdnbdoaTDbdpaTDbdsbdqbdzaRwbdubdtbdvbdDbdxbdwbdybdHaaaaaabbEbdIbdBbdAaUQbdCbdEaVEaVEbdNaVEaVEaVEbdOaUSbdFaUSbdQaUSaUSaQuaUSbdTbdUbdKbdJbdMbdLbdTbdPbeabebbecbebbebbebbebbdSbeebebbefbdVbdWbeibebbdXaGYbaubekbcpbelbembenbeobepbeqberbdYbazbetbeubevbewbdZbcAbcBbcCbcDbaEbedaYPbegbcHbcHbcIbaTbaTbaTbaTbaUbaVaaaaaaaaaaaaaaaaaaaYUbeAbeBbeCbeBbeDaYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabehbejaVSaXmaXzaXsbeGbesaXsaXsbexbeGaXzaXpbeyaSdaTobeEbezbeMbeFbeMbeMbeMbeMbeMbeHaSfaTubePbeQbePaTuaTubeRbeIbeRaViaViaViaVibeRbeJbeUaVjbeLbeKbeKbeNbeObeNbeKbeKbeSaSubfaaSAbeTaSAbeWbeVbfeaSAbffaRwaRwaRwaRwbfgbfhbeXbeYbeXbfhbfgaRwaRwbeZbdDbdDbdDbdDbfbbfdbfnbfobfpbbEbfqbdBbfiaUQaUQaUQaUQaUQaUQaUQaUSaUSbdObfsbftbfkbfjaQvbflaSQbfrbdTbfAbfvbfCbfwbfEbdTbfxbfybfHbfzbfHbfJbfKbfMbfBbfFbfDbfIbfGbfNbfLbebbfObfQbfPbfSbfRbelbfYbfZbeobfTbazbfVbfUbfXbfWbgfbczbczbazbazbcBbcCbcDbcnbggaYPbgabgibgbbgkbgcbgmbaTbaTbgdbaVaaaaaaaaaaaaaaaaYDbaWbgobeCbeCbeCbgpbaYaYHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabehaVSaVXaVSaVSaVYaVZaVSaVSaVXbejbgeaLdbghbeEaSdbgsbgsbgtbgsbgjaMsbgvbglaSfbgnbfcbgzbgzbgqbgrbgzbgubgzbgzbgzbgDbgzbgzbgwbgFbgAbgCbgBbgEbgCbgHbgCbgCbgCbgCbgIbgMbgJbgzbgzbgKbfcbgQbgxbgSbgLbgObgNbgTbgPbgPbgPbgPbgPbgPbgPbgVbgUbhabhbbhcbhdbhebgWbgYbgXbdDbdDbhfbgZbhgbgZbhgbhhbhjbhibhkbhpbhqaUSbhrbhlbhtbhmbhvbhvaWMbhxaWNbhzbdTbhobhubhsbhsbhwbdTbhAbhCbhBbhEbhDbhDbhFbhHbhGbfMbhIbhJbhPbhQbhRbebbdXaTgbaubhKbhTbhTbhUbhVbhTbhLbazbhXbhNbazbhObhSbczbhWbazbhZbhYbiabcDaYPaYPaYPbibbigbihbiibigbigbigbigaYSafXajcaaaaaaaaaaaabicbikbilbeCbeCbimbinbeCbicaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaZaXsaXsaVXaXzaYZaXsaYZbbaaYZaXsaYZaXzaYVaYTaSdaTobaJaVcaVcbaKaUtbaLaUtaVcaTuaTuaTuaTubaSbaPbbhbbbaTubbjbbcbblaXQaXQbbmaXQbbebbdbbpaVjaaaaUEaUEbbqbbfbbqaUEaUEaaaaSuaSzaSAbbibbgbbkaZAbbnaSAaPiaRwaSBaSCbboaWDaULaSCaUIaSCaULaWGbbxaRwaRwaRwbbrbbzbbtbbsbbCatGatGatGbbEbbFbbvbbuaUQbbwaVEaUQbbJaUQbbKaUQbbLaQrbbBbbAbbHbbGbbUbbIaQtbbNbbQbbPbbRbbQbbQbbSbbQbbIbbTbbIaXfbbUbbIbbVbbXbbWbbZbbYbcbbcabcdbccbcfbceaXibcmbcgbcobcpbchbcibcsbcjbaybcubckbazbcwbcxbclbczbaFbcAbcBbcCbcDbcnbcFaYPbcqbcHbcHbcIbaTbaTbaTbaTbaUbaVaaaaaaaaaaaaaaaaaaaYDbaWbcJbcKbcLbaYaYHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXpbcrbcNaYNaXzaYZaXsaYZaXsaYZaXsaYZaXzaYVaYTaSdaTobcvbctbcEbcybcSbcSaSfbcGbcMbcVbcWbcXbcPbcOaVebcQaTubdbbcRbddbdebcTbdgbdhbdibcUbdkaVjaaaaabaaabcYbcZbcYaaaaabaaaaSuaSzaSAbdcbdabdjbdfbdraSAaPiaRwbdmbdlaTCbdnbdoaTDbdpaTDbdsbdqbdzaRwbdubdtbdvbdDbdxbdwbbDbdHaaaaaabbEbdIbdBbdAaUQbdCbdEaVEaVEbdNaVEaVEaVEbdOaUSbdFaUSbdQaUSaUSaQuaUSbdTbdUbdKbdJbdMbdLbdTbdPbeabebbecbebbebbebbebbdSbeebebbefbdVbdWbeibebbdXaGYbaubekbcpbelbembenbeobepbeqberbdYbazbetbeubevbewbdZbcAbcBbcCbcDbaEbedaYPbegbcHbcHbcIbaTbaTbaTbaTbaUbaVaaaaaaaaaaaaaaaaaaaYUbeAbeBbeCbeBbeDaYUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabehbejaVSaXmaXzaXsbeGbesaXsaXsbexbeGaXzaXpbeyaSdaTobeEbezbeMbeFbeMbeMbeMbeMbeMbeHaSfaTubePbeQbePaTuaTubeRbeIbeRaViaViaViaVibeRbeJbeUaVjbeLbeKbeKbeNbeObeNbeKbeKbeSaSubfaaSAbeTaSAbeWbeVbfeaSAbffaRwaRwaRwaRwbfgbfhbeXbeYbeXbfhbfgaRwaRwbeZbdDbdDbdDbdDbfbbdybfnbfobfpbbEbfqbdBbfiaUQaUQaUQaUQaUQaUQaUQaUSaUSbdObfsbftbfkbfjaQvbflaSQbfrbdTbfAbfvbfCbfwbfEbdTbfxbfybfHbfzbfHbfJbfKbfMbfBbfFbfDbfIbfGbfNbfLbebbfObfQbfPbfSbfRbelbfYbfZbeobfTbazbfVbfUbfXbfWbgfbczbczbazbazbcBbcCbcDbcnbggaYPbgabgibgbbgkbgcbgmbaTbaTbgdbaVaaaaaaaaaaaaaaaaYDbaWbgobeCbeCbeCbgpbaYaYHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabehaVSaVXaVSaVSaVYaVZaVSaVSaVXbejbgeaLdbghbeEaSdbgsbgsbgtbgsbgjaMsbgvbglaSfbgnbfcbgzbgzbgqbgrbgzbgubgzbgzbgzbgDbgzbgzbgwbgFbgAbgCbgBbgEbgCbgHbgCbgCbgCbgCbgIbgMbgJbgzbgzbgKbfcbgQbgxbgSbgLbgObgNbgTbgPbgPbgPbgPbgPbgPbgPbgVbgUbhabhbbhcbhdbhebgWbgXbfdbdDbdDbhfbgZbhgbgZbhgbhhbhjbhibhkbhpbhqaUSbhrbhlbhtbhmbhvbhvaWMbhxaWNbhzbdTbhobhubhsbhsbhwbdTbhAbhCbhBbhEbhDbhDbhFbhHbhGbfMbhIbhJbhPbhQbhRbebbdXaTgbaubhKbhTbhTbhUbhVbhTbhLbazbhXbhNbazbhObhSbczbhWbazbhZbhYbiabcDaYPaYPaYPbibbigbihbiibigbigbigbigaYSafXajcaaaaaaaaaaaabicbikbilbeCbeCbimbinbeCbicaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSdbgyaSdaSdaSdaSdaSdaSdbgyaSdaUZaLdbidbieaSdbirbisbitbitbiuaMsbivbglbifbgGbfcbijbipbiobiqbiqbixbiwbiwbiwbizbiybiybiAbiCbiBbiqbiqbiDbiybiFbiEbiGbiGbiIbiHbiKbiJbiJbiJbiLbfcbgQbgxbgSbgSbgSbgSbiMbgSbgSbgSbgSbgSbgSbiNbiUbiVbiWbiXbiObiZbiQbiPbiRbiVbiVbiVbjdbjebjebjebiSbhqbhqbhqbiYbiTbhqaUSbjabjjbhvbhvbjkbhvaWTbjmaWNbjcbdTbjobjfbjqbjhbjgbdTbjtbjibjvbjwbjxbjybebbebbjzbebbebbebbjBbjlbjBbebbdXaGYbaubjDbcpbcpbcpbjEbcpbjFbazbazbazbazbazbazbazbjnbazbcDbcDbcCbcDbjpbjIaYPbjrbjNbjLblwbgRbjubjsbjAbjRaaaaaaaaaaaaaYDbjCbjGbjCbjCbjCbjHbjCbjJbjCbjGbjCaYHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabbjQaLdaSdaOQaSdbjTbjSbjVbjUaSdaOQaSdaSdaLdbjWbeEaSdbjXbkcbitbitbiuaMsbkdbglaSfbgGbfcbgzbjZbjYbkgbkgbkabkibkbbkgbkebkgbkfbkgbkhbjPbkgbkgbkgbkgbkgbkjbkkbkgbklbkrbknbkmbgzbgzbkpbkobksbkqbkubktbkubkvbkwbkvbkvbkvbkvbkvbkvbkybkAbkzbkzbkzbkzbkBbkzbkCbkDbkzbkzbkEbkGbkFbkFbkFbkFbkFbkFbkFbkHbhqbhqaUSbkMbkNbkObkPbkPbkIaYdbjmaWNbkKbdTbdTbdTbdTbdTbkLbdTbkQbkRbkWbkSbfHbkYbebbhMbkTbkUblcbkVbleblfblgbebbdXaQLbaublhblibcpbljblkbcpbllbllbaubkXblabkZaYPbldblnblmbcDbcDblpbloaYPblqaYPblrdsfbjLblxblsbltbjKblzbjRaaaaaaaaaaaabicbmXblubmYbmYblDbeCblCblDblAblvblCbicaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaMsaSdbgyaSdaToaSfaSfaTpaSdbgyaSdblyblEblBblFaSdblIblIbgtblIbgjaMsblJbglaSfaMsblKblKblGblMblMblMblMblMblMbkxblHblMblMblMblMblMblMblPblQblRblRblLblRblTblNblVblTblTblWblXblOblKblZblZblSblSblSbmbbmbbmbbmbbmbbmbbmbbmbbmcblUblUblYblUbmabmabmabmabmebmdbmabmcbmibmibmibmibmibmibmibmibmfbmfbmfaUSbmkbmlbmmbmmbmmbmmbmnbmoaYebmqbmrbmgbmjbmhbmtbmsbdTbdTbmubmybmzbmybmybebbmAbmvbmwbmwbmwbmwbmBbmxbebbmCbmHbaubmIbcpbljbljblkbljbcpbmDbaubmEbmGbmFaYPbcDbmJbmObmPbmPbmKbmRbmLbmTbmUbmMbmWboObmNbjMbjKbjKblzbjRbjRbjRbjRbjRbicbBTbDzbDzbDzbmQbeCblCbnbblAbeCbncbicaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9114,40 +9102,40 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaabaabcLicLicMqcLicLicMrcMvcEYcEYcEYcEYcEYcEYcEYcEYcLicLwcKfcMtcMxcMwcMycMycMycMycMCcMzcMDcLGcMAcLGcLGcMBcLGcMEcMGcMFcMHcLNcnycMLcHQcMPcLOcMIcMJcMKcLOcMQcMRcMNcMOcMScMUcMTcMWcMVcMXcMXcMZcMYcNecNbcNfcNacrecrecNgcsLcNccBPcBPcBPcBPcBPaaaaaaaaaaaacNdcNicNkcNjcHdcNhchfchfcBYcBPcBPcBPcBPcBPaaaaaacBRcJKcJKcJKcNmcNlcNocNncNqcNpcNscNrcxNcNtcNycNxcBRaaaaaacLbcNzcLecNucLecNvcLbbGGbGGcFccMsbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNwaaaalwaaacNFcNEcNMaaacNFcNEcNMaaacNFcNEcNMaaaaaacLicNAcNBcNCcLicNDcNNcLmcLmcLmcLmcLmcLmcLmcLmcLmcNRcKfcNGcLGcMBcNHcLGcLGcLGcNIcLGcNGcNGcLGcLGcLGcLGcNJcNKcMGcNLcHDcNScyEcHQcHQcNTcLOcNOcNPcNQcLOcNUcHVcNVcNZcNWcObcOacNXcsLcNYcpscNYcsLcOdcOccOecOecOecOecOgcOfcOfcOfcOfcOfcOhcBPaaaaaaaaaaaacNdcNicNkcOicOjcsLcxMchfcBYcsLcsLcsLcsKcBPaaaaaacBRcxNcxNcxNcxNcOkcEHcOlcOncOmcOpcOocxNcOqcOtcOrcBRaaaaaacLbcOvcOucOscLecODcLbcOCbGGcFcbGHaabaabaabaabaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaacNFcOFcNMaaacNFcOFcNMaaacNFcOFcNMaaaayicLicNBcNBcNBcLicLicOwcOxcLicLicOxcOxcLicLicOxcOxcLwcKfcNGcOycLGcOzcOAcOBcOBcMAcLGcNGcOGcLGcLGcLGcLGcOHcOEcOJcOIclXcOKcOMcOLcOYcORcLOcNOcOZcONcLOcOOcHVcGKcOPcGHcPbcPacOScOTcOUcOVcOWcOTcOXcOTcOTcOTcBPcBPcBPcBPcBPcBPcBPcBPcPdcBPaaaaaaaaaaaacNdcPecPgcPfcHdcsKcPcchfcPicPhcPhcPkcsLcBPaaaaaacBRcKPcKQcKRcPmcPlcNocPncPjcPocPqcPpcPscPrcPpcPtcBRaaaaaacLbcLbcPycPAcPzcLbcLbbGHbGGcPBcuQcuQcuQbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaayiaabcNFcOFcNMaaacNFcOFcNMaabcNFcOFcNMaaaaabcLicMrcPucNDcLiaaaaabaaaaaaaaaaaaaaaaabaaaaaacOxcLwcKbcPvcLGcPwcPxcPCcPEcPDcPEcPFcPEcPGcPHcLCcPIcNGcNGcNKcPLcPJcPNcPMcPPcPKcPVcPScPWcPOcPXcPQcPRcPYcPTcPUcPUcQacQccQbcQdcPZcQfcQecQhcQgcQjcQicQocQmcQpcQpcQpcQpcQpcQpcQqcBPcPdcQkcQkcQkcQkcQkcQkcQlcQucQlcQncQkcQkcQkcQkcQkcQkcBYcsLcBPaaaaaacBRcJKcKZcJKcQxcMjcEHcQzcQAcQrcQscEHcEHcQtcEHcQBcBRaaaaabaabcLbcLbcQvcLbcLbaaabGHbGGcFccuQcQwcQCbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaacNFcOFcNMaabcNFcOFcNMaaacNFcOFcNMaabaaacLicLicOxcLicLiaaaaabaabaaaaabaaaaabaabaaaaaacQycQDcKbcQFcQGcQGcQHcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcJZcQIcJZcQEcJZcFacQKcQJcQOcQNcQNcQNcQUcQScPTcQLcQMcQVcQWcQPcQQcPZcQRcQXcQTcQYcRbcRacRdcRcaabcQZcQZcQZcQZcQZcRecBPcRicRhcRkcRjcRfcRgcQkcRlcRncRmcQkcRocRqcRpcRscRrcQkcBYcsLcBPaaaaaacBRcJKcJKcJKcRDcRwcNocRHcRIcRtcRucRvcRvcRJcEHcRxcBRaabaabaaaaaaaaacRyaaaaaaaaabGHbGGcFccuQbGGbGGbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvayiaaacNFcOFcNMaabcNFcOFcNMaaacNFcOFcNMaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcRzcRAcRAcRAcRAcQycRBcLwcRCcRKcREcREcRFcRGcRMcRLcRLcRLcRLcRNcRPcROcRQcRQcRScRScRQcRTcRVcRUcRRcRRcRYcRWcSccSacSgcRXcRXcShcRZcSjcSbcSkcSdcQPcSecPZcSfcSlcSmcSicSpcSocSrcSqcQpcSncSucSscSwcQZcRecBQcPdcQkcSycSxcStcSzcSvcSCcSFcSDcQkcSIcSAcSBcSAcSMcQkcBYcsLcBPcBPaaacBRcxNcxNcxNcxNcSNcEHcQzcSEcSOcQscEHcSGcSHcSHcSPcSJcSKaabaaaaaaaaaaaaaaaaaaaaabGHbGGcPBbGGbGGcSLbGHaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaayiaabcNFcOFcNMaaacNFcOFcNMaabcNFcOFcNMaaaaabcLicMrcPucNDcLiaaaaabaaaaaaaaaaaaaaaaabaaaaaacOxcLwcKbcPvcLGcPwcPxcPCcPEcPDcPEcPFcPEcPGcPHcLCcPIcNGcNGcNKcPLcPJcPNcPMcPPcPKcPVcPSbgYcPObHWcPQcPRcPYcPTcPUcPUcQacQccQbcQdcPZcQfcQecQhcQgcQjcQicQocQmcQpcQpcQpcQpcQpcQpcQqcBPcPdcQkcQkcQkcQkcQkcQkcQlcQucQlcQncQkcQkcQkcQkcQkcQkcBYcsLcBPaaaaaacBRcJKcKZcJKcQxcMjcEHcQzcQAcQrcQscEHcEHcQtcEHcQBcBRaaaaabaabcLbcLbcQvcLbcLbaaabGHbGGcFccuQcQwcQCbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaacNFcOFcNMaabcNFcOFcNMaaacNFcOFcNMaabaaacLicLicOxcLicLiaaaaabaabaaaaabaaaaabaabaaaaaacQycQDcKbcQFcQGcQGcQHcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcKbcJZcQIcJZcQEcJZcFacQKcQJbHYcQNcQNcQNcQUcQScPTcQLcQMcQVcQWcQPcQQcPZcQRcQXcQTcQYcRbcRacRdcRcaabcQZcQZcQZcQZcQZcRecBPcRicRhcRkcRjcRfcRgcQkcRlcRncRmcQkcRocRqcRpcRscRrcQkcBYcsLcBPaaaaaacBRcJKcJKcJKcRDcRwcNocRHcRIcRtcRucRvcRvcRJcEHcRxcBRaabaabaaaaaaaaacRyaaaaaaaaabGHbGGcFccuQbGGbGGbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvayiaaacNFcOFcNMaabcNFcOFcNMaaacNFcOFcNMaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcRzcRAcRAcRAcRAcQycRBcLwcRCcRKcREcREcRFcRGcRMcRLcRLcRLcRLcRNcRPcROcRQcRQcRScRScRQcRTcRVcRUcRRcRRcRYcRWcTecSabHZcRXcRXcShcRZcSjcSbcSkcSdcQPcSecPZcSfcSlcSmcSicSpcSocSrcSqcQpcSncSucSscSwcQZcRecBQcPdcQkcSycSxcStcSzcSvcSCcSFcSDcQkcSIcSAcSBcSAcSMcQkcBYcsLcBPcBPaaacBRcxNcxNcxNcxNcSNcEHcQzcSEcSOcQscEHcSGcSHcSHcSPcSJcSKaabaaaaaaaaaaaaaaaaaaaaabGHbGGcPBbGGbGGcSLbGHaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaabaaaaabaabcSQaabaabaabcSQaabaaaaabcSQaabaaaaaaaaaaaaaaaaaaaaaaaaaaacRzcRzcRzcSRcTacSTcRAcTbcTccNRcRCcRCcSScTdcKbcKbcMvcSUcSUcSUcSUcSVcSWcSXcSWcSWcSWcRRcRRcSYcSZcTfcTicTgcRXcTjcTecRXcRXcRXcRXcTkcPTcTlcThcQVcSdcQPcSdcPZcSfcSlcTncTmcTqcTpcTucTraabcTocTvcSwcTwcQZcRecBQcRicRhcTxcTscSAcTtcQkcTycTAcTzcQkcTCcTDcSAcTFcTEcQkcBYcsLcTBcBPaaacBRcKPcKQcKRcTJcPlcNocTKcTNcTMcTGcTGcTHcTIcTPcTOcBRaabaabaabaaaaaaaaaaaaaaaaaabGHcTLcFcbGHbGHbGHbGHbGHaabaabaabcTQcTQcTQcTQcTQcTQaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabcTRcTScTScTUcTTcTVcTVcTVcTTcTVcTVcTVcTTcTVcTVcTVcTWcTScTScTScTScTScTXcTZcTYcUbcUacUecUdcUgcUfcNBcLwcUccRCcKbcKbcKbcUhcMvcSUcUkcUjcUmcUlcUicUncUpcUocUrcUqcUucUscUxcUwcUycUqcUtcUzcTecUvcRXcRXcRXcUAcPTcUCcUCcSdcUEcUDcUGcUFcUIcUHcUKcUJcUPcUNcUScSqcUVcSncUWcSwcSwcQZcRecBQcPdcQkcULcUMcVacQncQkcUOcVbcQncQkcUQcURcVccUTcUTcQkcBYcsLcUUcBPaaacBRcJKcMgcJKcVecMjcEHcVfcUXcUYcEHcUZcVgcxNcxNcxNcBRaaaaaaaabaabaaaaaaaaaaaaaaabGHcJQcFcbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaabaaaaabaabcVkaabaaaaabcVkaabaaaaabcVkaabaaaaaaaaaaaaaaaaaaaaaaaaaaacRzcRzcRzcVlcVdcVmcRAcVncNBcNNcTccTccTccTccVocTccUfcSUcVhcVicVjcVpcVrcVqcVtcVscVvcVucVycVwcVAcVzcVCcVBcUtcTjcTecVxcVDcRXcRXcVFcPTcVGcVHcSdcVIcQPcVJcVEcVLcVKcVOcVMcVQcVPcVQcVRaabcQZcQZcQZcQZcQZcRecBPcPdcQkcVScVNcVUcVTcVWcVVcVYcVXcWbcWacWccSAcWecWdcQkcBYcsLcVZcBPaaacBRcJKcJKcJKcWicWhcWpcWjcWqcWfcEHcEHcEHcEHcWgcWrcWwaaaaaaaaaaabaabaaaaaaaaaaaabGHbGHcFcbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwaabcNFcWxcNMaaacNFcWxcNMaaacNFcWxcNMaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabcRzcRAcRAcRAcRAcWkcWlcWmcNBcWncNBcNBcMvcWocNBcSUcWzcWycVjcWAcUicWscWtcWucWucWvcWDcWCcWFaYtaZBcWvcWBcWHcWJcWIcWLcWKcWPcWMcWScWQcUGcWTcWUcWNcWOcWVcWWcWRcWYcWXcXbcXacXdcXccQpcSncXecWZcWZcQZcRecBPcPdcQkcQkcQkcQkcQkcXgcXfcXicXhcXncXkcXpcXocXqcXjcQkcBYcXrcXlcXlcXlcXmcXmcXmcXmcXmcXscXvcXtcXzcXxcNocXAcNocXAcNocXBcWwaaaaaaaaaaaaaabaabaaaaaaaaaaaabGHcFcbGHaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNFcWxcNMaabcNFcWxcNMaaacNFcWxcNMaaaaaaaaaaaaaabaaaaaaaaaaaaaabaabaabaaaaaaaabaabcXucXucXucXucXucXucXucXCcXucXucSUcXwcXDcVjcWAcUicXycUicUicXEcRRcXGcXFcUwcXHcXIcRRcXLcRXcTecXMcXOcXNcWPcXPcXJaZCcXRcXQcXVcXScXRcXWcXYcXXcYacSdcXTcXUcYccYbaabcTocYfaZTcXZcQZcRecBQcYhcYgcYgcYgcYlcQkcYmcUMcYecYncURcYocUTcUTcURcYpcQkcBYcYichfcsLcYjcYkcBPaaaaaacBRcYqcYscYrcYvcYqcYscYwcYxcYqcYscYycBRaabaabaabaabaabaabaabaabaabaabbGHcFcbGHbGHbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabcNFcWxcNMaaacNFcWxcNMaaacNFcWxcNMaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaabcXucYtcYtcYucYAcYBcYBcYDcYCcYCcYEcYGcYFcVjcWAcVjcYHcVjcVjcVjcRRcYLcYKcYOcYNcYPcYIcYJcYQcYRcYMcYMcYMcYXcYUcYZaZHcZacYScVIcQPcYTcZbcYVcYWcZccSdcXTcZdcZgcZecZhcSncZicWZcWZcQZcRecBQcPdchfchfchfckKcQkcZkcZjcZfcZlcURcZmcZncUTcZpcZocQkcBYcYichfcsLcJGcsLcBPaaaaaacBRcZqcZscZrcxNcZtcZycZvcxNcZzcZBcZAcBRaabaabaaaaaaaaaaaaaaaaaaaaaaaabGHcFcbGGbGGbGHaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabcNFcWxcNMaaacNFcWxcNMaabcNFcWxcNMaabaabaabaabaaaaabaaaaaaaabaabaaaaaaaaaaabaaaaaacXucYtcYtcYucZucZucZucZCcZwcZxcSUcZEcZDcZHcZGcZJcZIcZKcZFcZFcZLcZOcZNcVjcVjcVjcZPcZRcZQcZMcZTdaacZVdacdabcSUcZScZSdafcVIcQPcZUdagcZWcZXcZYcSdcZZdahdajdaidadcQZcQZcQZcQZcQZcRecBQcPddaecsLcsLckKcQkdakcSAcSAdaldandamdaqcUTdatdascQkcBYcYicMfcsLcuccTBcBPaaaaaacBRcMkcJKcJKcxNcMkcJKcJKcxNcMkcJKcJKcBRaaaaabaabaaaaaaaaaaaaaaacuQcuQbGHdaucuQbGGbGHbGHbGHcTQcTQaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamhaabcNFdavcNMaaacNFdavcNMaaacNFdavcNMaabalvaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabcXudaodapcZucZucZudaxdardardardardardardardazdaDdaCdaEdawdawdawdaFdaydaJdaAdaBdawdaydaKdaRdaQdaadaSdacdabdaGdaHdaIdaTdaUdaLdaMdaNcZcdaOdaPdaVdaYdaWdaZcXcdbacSndbcdbbdbbcQZcRecBPcPdchfcBNdaXckKcQkdbdcSAdbkdbecURdbmdbncUTdbpdbocQkcBYcYichfcsLchfchfcBPaabaabcBRdbfcKZcJKcxNdbfcKZcJKcxNdbfcKZcJKcBRaaaaaaaabaabaaaaaaaaaaaacuQdbgbGGcFccuQdbhcuQdbibGHaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaalvaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabcXudbjcZucZucZucZucZudardbtdbldbudbwdbvdardbxdbqdbrcXDcVjcVjdbsdbBdbydbEdbCdbGdbFdbzcSUdbAdaQdaadbHdacdbJcSUdbDcZSdbKdbLcSddaMdaNdbNcSddaPdaVcXTcXUdbOcYbdbIcTodbSaZUdbWcQZcRecBPcPdchfdbMdbMckKcQkcQkdbXdbYcQkdbPcQkcQkcQkcQkcQkcQkcBYcYichfcsLcsLdbZcBPaaaaaacBRdbRcJKcJKcxNdbRcJKcJKcxNdbRcJKcJKcBRaaaaaaaaaaabaabaaaaaadcacuQbGGbGGcFccuQbGGbGGbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwamhalvalvalvalvalwalvalvalwdbTaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXudbUcZwcZucZucZudbVdardbldccdcbdcedcddcgdcfdcjdcidckcVjdcmdcldchdcodcqdcpdcudcrdcndcwdbrcXDdcydcxcZMdczcSUdcscZSdctdcLcSddaMdaNcZccSddcvdaVcXTdcOdcRcZedcScSndcTdbbdbbcQZcRecBQcPddcAcuccABckKdcBcQkcQkdcCcQkdcDdcEdcFchfdcGdcHcsLcBYcYichfcsLdcIcTBcBPaaaaaacBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRaaaaaaaaaaaaaabaabaaaaaabGHbGHbGHcFccuQdcJdcKbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcXucXucXudcUdcMdcMdcMdardcNdcVdcPdcPdcQdcWdawdcYdcXddadcZdddddcddfddeddgddbddiddhddfddjddlddkddoddnddqddpddrdbDcZSddmddscSddaMcSdddtcSddaPdaVcXTcXUddxcYbdbIcQZcQZcQZcQZcQZcRecBQddycYlcuccTBddAddzddzddzddCchfdduddvddwchfddDcYgcYgddEddHcMfcsLcsLcBPcBPaaaaaaddFaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaabaaabGHcJQddBddKcuQddJddIbGGbZZaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddLcXucZucZucZudcMaabaabdarddGddMdcPdcPddNdarddOddQddPddUddTddWddVcSUddXddRddScVjddYcSUdebdeededddUddUdegdefcSUddZcZSdeadehcSddaMcSdcZUdagdecdeidaYdejdekcXcdelcSndendemdemcQZcRecBQdepdeochfchfcPdchfchfcsLdeqchfchfdetchfchfdewdevdeydexdercBPcBPcBPcBPaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaabaabbGHdbgcAScaccuQcuQcuQbGGbGHaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcXucZucZucZudcMaabaaadardesddMdcPdcPdezdardeudeDcSUdeFdeEdeEdeGcSUdeLdeAdeBdeCdeMcSUdeEdeEdeEdeFcSUdeNdeucSUdbDcZSdeOdePdeHdeIdeJdeKdeQdeRcXbdeUcXUdeVcYbdbIcTodeXbbydeYcQZcRecBPcBPcPdcprdeScPddeTchfcsLdfadeZdffdfbddzddzdfgcYichfdfjcBPcBPaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaabGHbGHbGHbGHbGHdfhcaccuQdfidfcbGGbGHaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXucXudcMdcUdfdaaaaaadardfedfpdcPdcPdfudardfwdfAdfzdfkdfldfmdfndfodfCdfqdfrdfsddpdfodfldfldfldftdfzdfDdfvcSUdbDdfEdaMdfxdfydeQdfFdfGdfBdfIdfHdfKdfJdfNcZedcScSndfOdemdemcQZcRecBPcsLdfQdfTdfRdfgcsKchfcsLcsLcsLcYidfLcsLcXrdfMddHcuQcFcbGHaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaabGHbGGbGGbGGcJQdfSdfUcuQdfPbGGbGGbGHaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfXdfYdfYdfZdfYdfYdgadardfVdcVdcPdcPdgbdardaGdgccSUcSUdfodfodfodfodgddgfdgeddUdgidfodfodfodfocSUcSUdgqdglcSUdbDcZSdgrdgsdfydggdghcSdcSddgtcXWdggcXUdgjcYbdbIcQZcQZcQZcQZcQZcRecBPcTBcsLdgkdgCcsLdgmchfchfdgnchfdgocpscJGdgpchfchfcuQcFcbGHaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaabGHbGHcuQdgAdgycJQdfScacbGGbGGbGGdgBbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgDdgudgvdgwdgvdgxdgFdardgzdgGcMMdcPdgHdarcSUdgIcSUdgJafOdgEdfodfodfodfodgKdfodfodfodfodgEafOdgJcSUdgLcSUcSUdbDcZSdgMdeHdgNdgPdgOdgRdgQdgPdgQdgPdgVdeQdgWdbIdhgdhhdhhdhhdhhdhidgSdgTdgTdgUdhjdgTdgTdgTdhkdgXdgYdgodgZchfdgochfdhacuQcFcbGHbZZbZZbZZbGHbZZbZZbZZbZZbGHbZZbZZbZZbZZbGHbGHbGHbGHbGHbGHbGHbGHbGHbGHcMsbGHcJQcuQdhbbGGcQwdfScaccuQcuQdbhcuQbGHaabdhcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgDdgudgvdgwdgwdhddhedardhfdhldcPdcPdhmdardhndhpdhoafOdhqdhrdhrdhrdhrdhrdhtdhrdhrdhrdhrdhrdhuafOdhvdhydhwcSUdhsdaIdhzdhBdhAdhCdhxdhEdhDdhFcSddhHdhGdhJdhIdbIdhKaaaaabaabaaadhMdhLdhOdhNdhTdhSdhVdhUdgTdhYcsLcsLdhPcpsdhQcYicsLcsLcEGdhZdiadiadiadiadiadiadiadiadiadiadiadiadiadiadiediadiadiadiaczLcuQbPAcAUbGGdiccMscuQcuQcuQdbhcuQdfScaccuQdidbGGbGGbGHaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgDdgudgvdhWdgvdhXdifdardfVdcVdcPdcPdigdardihdibdibaaadiiafOafOafOafOafOafOafOafOafOafOafOdiiaaadibdibdihcSUdaGcZSdhIdikdijdipdioditdhIdipdhIcYbdhIcYbdhIdbIdhKaaaalwalwdiudhLdivdiwdildimdindiydixdgTcsLcsLchfdgodiqchfcYicXrdfMdhRdizdiAdiAdiAdiAdiAdiAdiCdiBdiAdiAdiAdiAdiAdiAdiEdiDdiGdiFdiJdiIdiLdiLdiLdiLdiNdiMdiOdiLdiLdiLdiLdiQcjYcuQdfcbGGdiHbGHaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiSdfYdfYdfYdfYdfYdiTdardiKdjgdcPdcPdjjdardjndjpdiPaabdiiafOdjqaaaaaaaaaaaadjqaaaaaadjqafOdiiaaadiRdjudjtcSUdaGcSUaabdiUaabdiVdiWdiXdiYdiZdiYdjadiYdjadjbdjcdhKaaaalwaabdjddgSdjedjfdjwdjhdjidjxdjkdgTdjlcsLcsLcYidjmchfcYicYidjzbGHbGHbZZbZZbZZbZZbGHbZZbZZbZZbZZbGHbZZbZZbZZbZZbGHdjobGGcuQcTLbGGcuQcuQbZZbZZcxScuQdjAbGGdjAcuQdjCcacdjrbGHbGHbGHbGHbGHaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadardjsdjgdcPdcPdjDdardjHdibdjvaaadjIdjLaaaaaaaaaaaaaaadjyaaaaaaaaadjRdjOaaadibdibdjHcSUdaGcSUcQZdjBcTodjBcQZdjBcTodjBcQZdjScTodjUcQZaabdhKaaaalwaabdjEdgSdjFdjfdjGdjVdjidjWdjJdjKdirdjYdjMcYicpscsLdjNdgochfcBPaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaabGHdjXcLhcuQdjPbGGcuQaaaaaaaaaaaacuQbGGbGGdbgdjQdjQdkadkbdjQaaaaabaabaabaabdjTaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadardkcdcVdcPdcPdigdardkddkedibaaadiiafOaaaaaaaabaabaabaabaabaaaaaaafOdiiaaadibdkgdkfcSUdjZcSUcQZdkidkhdkkcQZdkqdkpdkscQZdkwdkudkxcQZaabdhKaaaalwaaadjEdkjdkydkldkmdkndkodkEdkDdgTdkrdgochfdgodkGchfdktdgocBNcBPcBQcBQcBQaHQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaabGHdkFcuQcuQcQCbGGcuQcuQbZZbZZcuQcuQbGGdkvcLhdjQdkIdkHdkMdjQaaaaaaaabaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOdardardardardardardarcSUdihdibaaadiiafOdjqaabaabdkzdkAdkBaabdkCaaaafOdiiaaadibdihcSUcSUdaGcSUcQZdkObbMdkOcQZdkTbbOdkTcQZdkVbdGdkVcQZaabdhKaaaalwaaadjddgSdkJdkKdkLcOQdkWdkYdkXdgTdkPdkQdkZdkSdlacsLcYicYidlbdlddlccsLdlhaHQaaaaabaaabZZbZZbZZbGHbGHbGHbGHbGHbGHdlicJQcuQdljbGGbGGcuQbGGbGGbGGbGGdhbbGGdfPdjQdlodlkdlqdjQaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabafOaabafOafOaabaabaabalwalwcSUcSUdltdibaaadjIdjLaaaaaaaabdledlfdlgaabaaaaaadjRdjOaaadibdlucSUcSUdaGcSUcQZdkOdlvdkOcQZdkTdlwdkTcQZdkVdlxdkVcQZaabdhKaaaalwaaadjddgSdgSdgSdlldlmdlndlydlndlmdkPdlpcsLdlAdlrdfMddHcYidlscBPcBQcBQcBQdlKaabaabaaabZZdlBdlCcuQbGGdlDdlJdbgcuQdlPbGGcuQdlzbGGbGGdlLbGGbGHbGHbGHbZZbZZbGHdjQdlSdlRdlUdjQaabaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaabaaaaaaaabaabalwcSUcSUdihdibaaadiiafOaaadlEaabdlFdlGdlHaabaabdjqafOdiiaaadibdihcSUcSUdaGcSUcQZcQZcQZcQZcQZcQZcQZcQZcQZcQZcQZcQZcQZaabdhKaaaayiaaadjdaaaaaaaaadlIdlmdlVdlXdlWdlmcsLdlMcsLcsLdlNdlOcXrdmcdlQcBPaaaaaaaaaaaaaaaaabaaabZZdlZdmbdlLbGGdgybGGbGGdlLdjobGGcuQcuQcuQcuQcuQbGGbGHaabaaaaaaaaaaabdlTdlTdmddlTdlTaabaabdhcaabaabdjTaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabcSUdkgdkfdibaaadiiafOaaaaaaaabaabaabaabaabaaaaaaafOdiiaaadibdkddkecSUdmecSUcSUcSUcSUdmfdhhdhhdhhdhhdhhdhhdhhdhhdhhdhhdmgaabaabaabdjEaaaaaaaaadlYdlmdlndmhdlndlmdmadmidfMdfMdmldmrdmmcBPcBPcBPaaaaaaaaaaaaaaaaabaaabZZdlBdmncuQdbgbGGbGGdmpcuQdmqbGGbGGbGGbGGbGGbGGbGGbGHaabaaaaaaaaaaabaaadlTdmsdlTaaaaabaaaaabaaaaaaaabaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaabcSUdjHdibdmjaaadjIdjLaaaaaaaaaaabaaaaaaaaaaaaaaadjRdjOaaadibdibdjHcSUdmkdmwdmvdaGdmxdmgaabaabaabaabaabaabaabdmoaabaabaabaabaabaabdjEaabaabaabdlYdlmdmydmAdmzdmEaabdmacBPcBQdmtcBQcBPcBPaaaaabaaaaaaaaaaaaaaaaabaabbZZbZZbZZbGHbGHbGHbGGcuQbGHdmubGHbGHdbgbPAcLhbKlcMsbGHaabaaaaaaaaaaabaaadlTdmGdlTaaaaabaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcSUdmHdmIdiPaabdiiafOdjqaaaaaadjqaaaaaaaaaaaadjqafOdiiaaadiRdmKdmJcSUdmLcSUcSUcSUcSUcSUcSUaaaaaaaabaaaaaaaaadmoaaaaaadmBdmBdmBdmBdmCaaaaaaaabdlYdmDdlmdmOdlmdlmaaaaabaaaaaadmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaabGHdmbdmMbGHdmNaabbGHbGHbZZbZZcMsbGHaaaaabaaaaaaaaaaabaaaaaadmRaaaaaaaabaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSUdmSdmUdmTaaadiiafOafOdncafOafOdncafOafOdncafOafOdiiaaadnhdmUdnicSUdmPdmQdnjdnldnkdnmdmVdmWdmWdmXdmWdmWdmWdmYdmWdmWdmZdnadnbdnodmCaaaaaaaabdndaHQdlmdnedlmdnfaabaabaaaaaadngaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaabpaaaaaabGHdnqdnnbGHdnpaabaaaaabaaaaaaaabaaaaaaaabaaaaaaaaaaabaaaaaadnraaaaaaaabaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnscSUcSUdntaaadnudhrdhrdnydhrdhrdnydhrdhrdnydhrdhrdnzaaadntcSUcSUcSUdmPdnBdnAdnEdnCdnHdfoaaaaaaaabaaaaaaaaadmodmBdmBdmBbfmdnwdnvdmCaaaaaaaabaabaHQdnxdnIdnxaHQaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaabZZdnJbZZbZZaabdhcaaaaabaaaaaaaabaaaamWamWalwayiaabaabaabaabdnLaabaabaabaabdhcamhamWamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcSUcYXdnMdmTaabaabaabaabaaaaaaaaaaaaaaaaabaabaabaabdnhdnNcYXcSUcSUdnDcSUcSUcSUcSUdfocSUaabaabaabaabaabaabbhnbfubjbbhybkJdnGdnFdmCaaaaaaaaaaabaHQaaaaaaaaaaHQaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaabZZdnPbZZaaaaaaaaaaaaaabaaaaaaaabaaaamWaaaaaaaabaaaaabaaaaaadnQaaaaaaaabaaaaabaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaacSUcSUdnMdnRdnRdnRdnRdnRdnRdnRdnRdnRdnRdnRdnRdnRdnNcSUcSUcSUdnKdnScSUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnUdnTdnWdnVdobdoadofdoeaaaaaaaaaaabaHQaHQaHQaHQaHQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaabZZdogbZZaaaaaaaaaaaaaabaaaaaaaabaaaamWaaadohdohdohdohdohaabdoiaabdohdohdohdohdohaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabcTRcTScTScTUcTTcTVcTVcTVcTTcTVcTVcTVcTTcTVcTVcTVcTWcTScTScTScTScTScTXcTZcTYcUbcUacUecUdcUgcUfcNBcLwcUccRCcKbcKbcKbcUhcMvcSUcUkcUjcUmbJOcUibJQbJSbJRcUrbJUcUucUscUxcUwcUybJUcUtcUzcTecUvcRXcRXcRXcUAcPTcUCcUCcSdcUEcUDcUGcUFcUIcUHcUKcUJcUPcUNcUScSqcUVcSncUWcSwcSwcQZcRecBQcPdcQkcULcUMcVacQncQkcUOcVbcQncQkcUQcURcVccUTcUTcQkcBYcsLcUUcBPaaacBRcJKcMgcJKcVecMjcEHcVfcUXcUYcEHcUZcVgcxNcxNcxNcBRaaaaaaaabaabaaaaaaaaaaaaaaabGHcJQcFcbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwaaaaabaaaaabaabcVkaabaaaaabcVkaabaaaaabcVkaabaaaaaaaaaaaaaaaaaaaaaaaaaaacRzcRzcRzcVlcVdcVmcRAcVncNBcNNcTccTccTccTccVocTccUfcSUcVhcVicVjbJVbLGbLCbLJbLHbNtbNsbNvbNubNxbNwbNCbNycUtcTjcTecVxcVDcRXcRXcVFcPTcVGcVHcSdcVIcQPcVJcVEcVLcVKcVOcVMcVQcVPcVQcVRaabcQZcQZcQZcQZcQZcRecBPcPdcQkcVScVNcVUcVTcVWcVVcVYcVXcWbcWacWccSAcWecWdcQkcBYcsLcVZcBPaaacBRcJKcJKcJKcWicWhcWpcWjcWqcWfcEHcEHcEHcEHcWgcWrcWwaaaaaaaaaaabaabaaaaaaaaaaaabGHbGHcFcbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwaabcNFcWxcNMaaacNFcWxcNMaaacNFcWxcNMaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabcRzcRAcRAcRAcRAcWkcWlcWmcNBcWncNBcNBcMvcWocNBcSUcWzcWycVjbNVcUicWscWtcWucWubNXcWDcWCcWFaYtaZBbNXcWBcWHcWJcWIcWLcWKcWPcWMcWScWQcUGcWTcWUcWNcWOcWVcWWcWRcWYcWXcXbcXacXdcXccQpcSncXecWZcWZcQZcRecBPcPdcQkcQkcQkcQkcQkcXgcXfcXicXhcXncXkcXpcXocXqcXjcQkcBYcXrcXlcXlcXlcXmcXmcXmcXmcXmcXscXvcXtcXzcXxcNocXAcNocXAcNocXBcWwaaaaaaaaaaaaaabaabaaaaaaaaaaaabGHcFcbGHaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacNFcWxcNMaabcNFcWxcNMaaacNFcWxcNMaaaaaaaaaaaaaabaaaaaaaaaaaaaabaabaabaaaaaaaabaabcXucXucXucXucXucXucXucXCcXucXucSUcXwcXDcVjbNVcUicXycUicUicXEcRRcXGcXFcUwbNZbOacRRcXLcRXcTecXMcXOcXNcWPcXPcXJaZCcXRcXQcXVcXScXRcXWcXYcXXcYacSdcXTcXUcYccYbaabcTocYfaZTcXZcQZcRecBQcYhcYgcYgcYgcYlcQkcYmcUMcYecYncURcYocUTcUTcURcYpcQkcBYcYichfcsLcYjcYkcBPaaaaaacBRcYqcYscYrcYvcYqcYscYwcYxcYqcYscYycBRaabaabaabaabaabaabaabaabaabaabbGHcFcbGHbGHbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacYzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabcNFcWxcNMaaacNFcWxcNMaaacNFcWxcNMaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaabaabaabcXucYtcYtcYucYAcYBcYBcYDcYCcYCcYEcYGcYFcVjbNVcVjcYHcVjcVjcVjcRRcYLbPibPkbPjbPlcYIcYJcYQcYRcYMcYMcYMcYXcYUcYZaZHcZacYScVIcQPcYTcZbcYVcYWcZccSdcXTcZdcZgcZecZhcSncZicWZcWZcQZcRecBQcPdchfchfchfckKcQkcZkcZjcZfcZlcURcZmcZncUTcZpcZocQkcBYcYichfcsLcJGcsLcBPaaaaaacBRcZqcZscZrcxNcZtcZycZvcxNcZzcZBcZAcBRaabaabaaaaaaaaaaaaaaaaaaaaaaaabGHcFcbGGbGGbGHaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaabcNFcWxcNMaaacNFcWxcNMaabcNFcWxcNMaabaabaabaabaaaaabaaaaaaaabaabaaaaaaaaaaabaaaaaacXucYtcYtcYucZucZucZucZCcZwcZxcSUbPDbPCbPFbPEbPKbPGbQacZFcZFcZLcZOcZNcVjcVjcVjcZPcZRcZQcZMbQQbQRcZVdacdabcSUcZScZSdafcVIcQPcZUdagcZWcZXcZYcSdcZZdahdajdaidadcQZcQZcQZcQZcQZcRecBQcPddaecsLcsLckKcQkdakcSAcSAdaldandamdaqcUTdatdascQkcBYcYicMfcsLcuccTBcBPaaaaaacBRcMkcJKcJKcxNcMkcJKcJKcxNcMkcJKcJKcBRaaaaabaabaaaaaaaaaaaaaaacuQcuQbGHdaucuQbGGbGHbGHbGHcTQcTQaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamhaabcNFdavcNMaaacNFdavcNMaaacNFdavcNMaabalvaabaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaabcXudaodapcZucZucZudaxdardardardardardardarbQUbQYbQWbQZdawdawdawdaFdaydaJdaAdaBdawdaydaKdaRbRdbQRdaSdacdabdaGdaHdaIdaTdaUdaLdaMdaNcZcdaOdaPdaVdaYdaWdaZcXcdbacSndbcdbbdbbcQZcRecBPcPdchfcBNdaXckKcQkdbdcSAdbkdbecURdbmdbncUTdbpdbocQkcBYcYichfcsLchfchfcBPaabaabcBRdbfcKZcJKcxNdbfcKZcJKcxNdbfcKZcJKcBRaaaaaaaabaabaaaaaaaaaaaacuQdbgbGGcFccuQdbhcuQdbibGHaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalvaaaaabaaaaaaaaaaabaabaabaaaaaaaabaabaaaalvaabaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaabcXudbjcZucZucZucZucZudardbtdblbRrdbwdbvdarbRsdbqdbrbNVcVjcVjdbsdbBdbydbEdbCdbGdbFdbzcSUdbAbRdbQRdbHdacdbJcSUdbDcZSdbKdbLcSddaMdaNdbNcSddaPdaVcXTcXUdbOcYbdbIcTodbSaZUdbWcQZcRecBPcPdchfdbMdbMckKcQkcQkdbXdbYcQkdbPcQkcQkcQkcQkcQkcQkcBYcYichfcsLcsLdbZcBPaaaaaacBRdbRcJKcJKcxNdbRcJKcJKcxNdbRcJKcJKcBRaaaaaaaaaaabaabaaaaaadcacuQbGGbGGcFccuQbGGbGGbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalwalwalvalwalwamhalvalvalvalvalwalvalvalwdbTaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXudbUcZwcZucZucZudbVdardbldccbRtbSCbSubThbSFbTkbTibUPcVjdcmdcldchdcobURbUQbUSdcrdcndcwdbrbNVdcydcxcZMdczcSUdcscZSdctdcLcSddaMdaNcZccSddcvdaVcXTdcOdcRcZedcScSndcTdbbdbbcQZcRecBQcPddcAcuccABckKdcBcQkcQkdcCcQkdcDdcEdcFchfdcGdcHcsLcBYcYichfcsLdcIcTBcBPaaaaaacBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRcBRaaaaaaaaaaaaaabaabaaaaaabGHbGHbGHcFccuQdcJdcKbGGbZZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcXucXucXudcUdcMdcMdcMdardcNdcVdcPdcPdcQdcWdawbUTdcXbUWbUVbUVbUXbUZbUYbVaddbbVcbVbbUZbVdbVVbVjbWubWtbWwddpddrdbDcZSddmddscSddaMcSdddtcSddaPdaVcXTcXUddxcYbdbIcQZcQZcQZcQZcQZcRecBQddycYlcuccTBddAddzddzddzddCchfdduddvddwchfddDcYgcYgddEddHcMfcsLcsLcBPcBPaaaaaaddFaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaabaaabGHcJQddBddKcuQddJddIbGGbZZaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddLcXucZucZucZudcMaabaabdarddGddMdcPdcPddNdarddObWxddPddUbWybWAbWzcSUbWBbWCddScVjddYcSUbWDbWEbWEddUddUbWFdefcSUddZcZSdeadehcSddaMcSdcZUdagdecdeidaYdejdekcXcdelcSndendemdemcQZcRecBQdepdeochfchfcPdchfchfcsLdeqchfchfdetchfchfdewdevdeydexdercBPcBPcBPcBPaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaabaabbGHdbgcAScaccuQcuQcuQbGGbGHaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcXucZucZucZudcMaabaaadardesddMdcPdcPdezdardeubXJcSUdeFbYkbYkbYmcSUbYndeAdeBdeCdeMcSUbYkbYkbYkdeFcSUbYodeucSUdbDcZSdeOdePdeHdeIdeJdeKdeQdeRcXbdeUcXUdeVcYbdbIcTodeXbbydeYcQZcRecBPcBPcPdcprdeScPddeTchfcsLdfadeZdffdfbddzddzdfgcYichfdfjcBPcBPaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaabGHbGHbGHbGHbGHdfhcaccuQdfidfcbGGbGHaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacXucXudcMdcUdfdaaaaaadardfedfpdcPdcPdfudardfwbYpdfzdfkbYqbYrbYqdfobYsdfqdfrdfsddpdfobYqbYqbYqdftdfzbZYdfvcSUdbDdfEdaMdfxdfydeQdfFdfGdfBdfIdfHdfKdfJdfNcZedcScSndfOdemdemcQZcRecBPcsLdfQdfTdfRdfgcsKchfcsLcsLcsLcYidfLcsLcXrdfMddHcuQcFcbGHaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaabGHbGGbGGbGGcJQdfSdfUcuQdfPbGGbGGbGHaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadfXdfYdfYdfZdfYdfYdgadardfVdcVdcPdcPdgbdardaGcaacSUcSUdfodfodfodfocabcajcadddUdgidfodfodfodfocSUcSUcaldglcSUdbDcZSdgrdgsdfydggdghcSdcSddgtcXWdggcXUdgjcYbdbIcQZcQZcQZcQZcQZcRecBPcTBcsLdgkdgCcsLdgmchfchfdgnchfdgocpscJGdgpchfchfcuQcFcbGHaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaabaaaaaaaaaaaabGHbGHcuQdgAdgycJQdfScacbGGbGGbGGdgBbGHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgDdgudgvdgwdgvdgxdgFdardgzdgGcMMdcPdgHdarcSUcbgcSUdgJafOdgEdfodfodfodfocbtdfodfodfodfodgEafOdgJcSUcbvcSUcSUdbDcZSdgMdeHdgNdgPdgOdgRdgQdgPdgQdgPdgVdeQdgWdbIdhgdhhdhhdhhdhhdhidgSdgTdgTdgUdhjdgTdgTdgTdhkdgXdgYdgodgZchfdgochfdhacuQcFcbGHbZZbZZbZZbGHbZZbZZbZZbZZbGHbZZbZZbZZbZZbGHbGHbGHbGHbGHbGHbGHbGHbGHbGHcMsbGHcJQcuQdhbbGGcQwdfScaccuQcuQdbhcuQbGHaabdhcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgDdgudgvdgwdgwdhdbJMdardhfdhldcPdcPdhmdarcbwcdjdhoafOcePceQceQceQceQceQchlceQceQceQceQceQchDafOdhvcmwcjDcSUdhsdaIdhzdhBdhAdhCdhxdhEdhDdhFcSddhHdhGdhJdhIdbIdhKaaaaabaabaaadhMdhLdhOdhNdhTdhSdhVdhUdgTdhYcsLcsLdhPcpsdhQcYicsLcsLcEGdhZdiadiadiadiadiadiadiadiadiadiadiadiadiadiadiediadiadiadiaczLcuQbPAcAUbGGdiccMscuQcuQcuQdbhcuQdfScaccuQdidbGGbGGbGHaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgDdgudgvdhWdgvdhXdifdardfVdcVdcPdcPdigdarcnNdibdibaaacPWafOafOafOafOafOafOafOafOafOafOafOcPWaaadibdibcnNcSUdaGcZSdhIdikdijdipdioditdhIdipdhIcYbdhIcYbdhIdbIdhKaaaalwalwdiudhLdivdiwdildimdindiydixdgTcsLcsLchfdgodiqchfcYicXrdfMdhRdizdiAdiAdiAdiAdiAdiAdiCdiBdiAdiAdiAdiAdiAdiAdiEdiDdiGdiFdiJdiIdiLdiLdiLdiLdiNdiMdiOdiLdiLdiLdiLdiQcjYcuQdfcbGGdiHbGHaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadiSdfYdfYdfYdfYdfYdiTdardiKdjgdcPdcPdjjdarcPXcQOdiPaabcPWafOdjqaaaaaaaaaaaadjqaaaaaadjqafOcPWaabdiRcSgcSccSUdaGcSUaabdiUaabdiVdiWdiXdiYdiZdiYdjadiYdjadjbdjcdhKaaaalwaabdjddgSdjedjfdjwdjhdjidjxdjkdgTdjlcsLcsLcYidjmchfcYicYidjzbGHbGHbZZbZZbZZbZZbGHbZZbZZbZZbZZbGHbZZbZZbZZbZZbGHdjobGGcuQcTLbGGcuQcuQbZZbZZcxScuQdjAbGGdjAcuQdjCcacdjrbGHbGHbGHbGHbGHaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadardjsdjgdcPdcPdjDdarcnNdibdjvaaacUlcUnaaaaaaaaaaaaaaadjyaaaaaaaaacUpcUoaaadibdibcnNcSUdaGcSUcQZdjBcTodjBcQZdjBcTodjBcQZdjScTodjUcQZaabdhKaaaalwaabdjEdgSdjFdjfdjGdjVdjidjWdjJdjKdirdjYdjMcYicpscsLdjNdgochfcBPaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaabGHdjXcLhcuQdjPbGGcuQaaaaaaaaaaaacuQbGGbGGdbgdjQdjQdkadkbdjQaaaaabaabaabaabdjTaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadardkcdcVdcPdcPdigdarcUqcjDdibaaacPWafOaaaaaaaabaabaabaabaabaaaaaaafOcPWaaadibcbwcVpcSUdjZcSUcQZdkidkhdkkcQZdkqdkpdkscQZdkwdkudkxcQZaabdhKaaaalwaaadjEdkjdkydkldkmdkndkodkEdkDdgTdkrdgochfdgodkGchfdktdgocBNcBPcBQcBQcBQaHQaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaabGHdkFcuQcuQcQCbGGcuQcuQbZZbZZcuQcuQbGGdkvcLhdjQdkIdkHdkMdjQaaaaaaaabaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafOdardardardardardardarcSUcnNdibaaacPWafOdjqaabaabdkzdkAdkBaabdkCaaaafOcPWaaadibcnNcSUcSUdaGcSUcQZdkObbMdkOcQZdkTbbOdkTcQZdkVbdGdkVcQZaabdhKaaaalwaaadjddgSdkJdkKdkLcOQdkWdkYdkXdgTdkPdkQdkZdkSdlacsLcYicYidlbdlddlccsLdlhaHQaaaaabaaabZZbZZbZZbGHbGHbGHbGHbGHbGHdlicJQcuQdljbGGbGGcuQbGGbGGbGGbGGdhbbGGdfPdjQdlodlkdlqdjQaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabafOaabafOafOaabaabaabalwalwcSUcSUcVqdibaaacUlcUnaaaaaaaabdledlfdlgaabaaaaaacUpcUoaaadibcVrcSUcSUdaGcSUcQZdkOdlvdkOcQZdkTdlwdkTcQZdkVdlxdkVcQZaabdhKaaaalwaaadjddgSdgSdgSdlldlmdlndlydlndlmdkPdlpcsLdlAdlrdfMddHcYidlscBPcBQcBQcBQdlKaabaabaaabZZdlBdlCcuQbGGdlDdlJdbgcuQdlPbGGcuQdlzbGGbGGdlLbGGbGHbGHbGHbZZbZZbGHdjQdlSdlRdlUdjQaabaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaabaaaaaaaabaabalwcSUcSUcnNdibaaacPWafOaaadlEaabdlFdlGdlHaabaabdjqafOcPWaaadibcnNcSUcSUdaGcSUcQZcQZcQZcQZcQZcQZcQZcQZcQZcQZcQZcQZcQZaabdhKaaaayiaaadjdaaaaaaaaadlIdlmdlVdlXdlWdlmcsLdlMcsLcsLdlNdlOcXrdmcdlQcBPaaaaaaaaaaaaaaaaabaaabZZdlZdmbdlLbGGdgybGGbGGdlLdjobGGcuQcuQcuQcuQcuQbGGbGHaabaaaaaaaaaaabdlTdlTdmddlTdlTaabaabdhcaabaabdjTaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabcSUcbwcVpdibaaacPWafOaaaaaaaabaabaabaabaabaaaaaaafOcPWaaadibcUqcjDcSUdmecSUcSUcSUcSUdmfdhhdhhdhhdhhdhhdhhdhhdhhdhhdhhdmgaabaabaabdjEaaaaaaaaadlYdlmdlndmhdlndlmdmadmidfMdfMdmldmrdmmcBPcBPcBPaaaaaaaaaaaaaaaaabaaabZZdlBdmncuQdbgbGGbGGdmpcuQdmqbGGbGGbGGbGGbGGbGGbGGbGHaabaaaaaaaaaaabaaadlTdmsdlTaaaaabaaaaabaaaaaaaabaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaabcSUcnNdibdmjaaacUlcUnaaaaaaaaaaabaaaaaaaaaaaaaaacUpcUoaaadibdibcnNcSUdmkdmwdmvdaGdmxdmgaabaabaabaabaabaabaabdmoaabaabaabaabaabaabdjEaabaabaabdlYdlmdmydmAdmzdmEaabdmacBPcBQdmtcBQcBPcBPaaaaabaaaaaaaaaaaaaaaaabaabbZZbZZbZZbGHbGHbGHbGGcuQbGHdmubGHbGHdbgbPAcLhbKlcMsbGHaabaaaaaaaaaaabaaadlTdmGdlTaaaaabaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcSUcPXcVsdiPaabcPWafOdjqaaaaaadjqaaaaaaaaaaaadjqafOcPWaabdiRcVtcSccSUdmLcSUcSUcSUcSUcSUcSUaaaaaaaabaaaaaaaaadmoaaaaaadmBdmBdmBdmBdmCaaaaaaaabdlYdmDdlmdmOdlmdlmaaaaabaaaaaadmFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaabGHdmbdmMbGHdmNaabbGHbGHbZZbZZcMsbGHaaaaabaaaaaaaaaaabaaaaaadmRaaaaaaaabaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSUcUqcVvcVuaaacPWafOafOcVwafOafOcVwafOafOcVwafOafOcPWaaacVycVvcVpcSUdmPdmQdnjdnldnkdnmdmVdmWdmWdmXdmWdmWdmWdmYdmWdmWdmZdnadnbdnodmCaaaaaaaabdndaHQdlmdnedlmdnfaabaabaaaaaadngaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaabpaaaaaabGHdnqdnnbGHdnpaabaaaaabaaaaaaaabaaaaaaaabaaaaaaaaaaabaaaaaadnraaaaaaaabaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnscSUcSUcVzaaacVAceQceQcVBceQceQcVBceQceQcVBceQceQcVCaaacVzcSUcSUcSUdmPdnBdnAdnEdnCdnHdfoaaaaaaaabaaaaaaaaadmodmBdmBdmBbfmbJNdnvdmCaaaaaaaabaabaHQdnxdnIdnxaHQaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaaaaaaaaabZZdnJbZZbZZaabdhcaaaaabaaaaaaaabaaaamWamWalwayiaabaabaabaabdnLaabaabaabaabdhcamhamWamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcSUcYXcWvcVuaabaabaabaabaaaaaaaaaaaaaaaaabaabaabaabcVycWAcYXcSUcSUdnDcSUcSUcSUcSUdfocSUaabaabaabaabaabaabbhnbfubjbbhybkJdnGdnFdmCaaaaaaaaaaabaHQaaaaaaaaaaHQaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaabZZdnPbZZaaaaaaaaaaaaaabaaaaaaaabaaaamWaaaaaaaabaaaaabaaaaaadnQaaaaaaaabaaaaabaaaaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaacSUcSUcWvcWEcWEcWEcWEcWEcWEcWEcWEcWEcWEcWEcWEcWEcWAcSUcSUcSUdnKdnScSUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnUdnTdnWdnVdobdoadofdoeaaaaaaaaaaabaHQaHQaHQaHQaHQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaabZZdogbZZaaaaaaaaaaaaaabaaaaaaaabaaaamWaaadohdohdohdohdohaabdoiaabdohdohdohdohdohaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSUcSUcSUcSUcSUcSUcSUcSUcSUcSUcSUcSUcSUcSUcSUcSUcSUaaacSUcSUdnXcSUcSUcSUcSUaaaaaaaaaaaaaaaaaaaaaaaadnYdnZdnZdnZdnZdojdokdocdoddolaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaabZZdombZZaaaaaaaaaaaaaaaaaaaaaaabaaaamWaabdondoodoodoodoodoqdopdosdordordordordotaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSUdaGdaGdovdoudoudowaaaaaaaaaaaaaaaaaaaaaaaadjdaaadnZdnZdoydoxdoAdnZdnZdnZdnZdnZaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdoBdoEdoEaaaaaaaaaaaaaaaaaaaaaaabaaaamWaabdoGdoGdoGdoGdoGaaadoiaaadoGdoGdoGdoGdoGaabamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacSUdjZdaGdoLdoIdoMdozaaaaaaaaaaaaaaaaaaaaaaaadjdaaadnZdoNdoOdoCdoDdoQdoSdoRdoHdnZaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabaaaamWaaaaabaaaaabaabaabaaadoiaaaaabaaaaabaaaaabaaaamWaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/shuttles/emergency_mil.dmm b/_maps/map_files/shuttles/emergency_mil.dmm new file mode 100644 index 00000000000..3bd1fa6a2d7 --- /dev/null +++ b/_maps/map_files/shuttles/emergency_mil.dmm @@ -0,0 +1,105 @@ +"aa" = (/turf/space,/area/space) +"ab" = (/obj/machinery/light/spot,/turf/space,/area/shuttle/escape) +"ac" = (/turf/space,/area/shuttle/escape) +"ad" = (/obj/machinery/porta_turret{check_access = 0; check_arrest = 0; check_weapons = 1; lethal = 1; name = "shuttle turret"},/turf/simulated/floor/plating/airless,/area/shuttle/escape) +"ae" = (/turf/space,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swallc2"},/area/shuttle/escape) +"af" = (/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape) +"ag" = (/obj/structure/grille,/obj/structure/window/full/shuttle,/turf/simulated/floor/plating,/area/shuttle/escape) +"ah" = (/turf/space,/turf/simulated/shuttle/wall{dir = 2; icon_state = "swallc1"},/area/shuttle/escape) +"ai" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f6"; dir = 2},/area/shuttle/escape) +"aj" = (/turf/simulated/shuttle/wall{icon_state = "swallc4"},/area/shuttle/escape) +"ak" = (/obj/machinery/computer/communications,/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape) +"al" = (/obj/machinery/computer/crew,/turf/simulated/shuttle/floor,/area/shuttle/escape) +"am" = (/obj/structure/table,/turf/simulated/shuttle/floor,/area/shuttle/escape) +"an" = (/obj/machinery/computer/security{network = list("SS13","Telecomms","Research Outpost","Mining Outpost")},/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape) +"ao" = (/obj/machinery/computer/emergency_shuttle,/turf/simulated/shuttle/floor,/area/shuttle/escape) +"ap" = (/turf/simulated/shuttle/wall{icon_state = "swallc3"},/area/shuttle/escape) +"aq" = (/turf/space,/turf/simulated/shuttle/wall{tag = "icon-swall_f10"; icon_state = "swall_f10"; dir = 2},/area/shuttle/escape) +"ar" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/escape) +"as" = (/obj/machinery/computer/station_alert,/turf/simulated/shuttle/floor,/area/shuttle/escape) +"at" = (/turf/simulated/shuttle/floor,/area/shuttle/escape) +"au" = (/obj/structure/stool/bed/chair/comfy/brown{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape) +"av" = (/obj/structure/stool/bed/chair/comfy/teal{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape) +"aw" = (/obj/structure/stool/bed/chair/comfy/red{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape) +"ax" = (/obj/structure/stool/bed/chair/comfy/blue{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape) +"ay" = (/obj/machinery/computer/robotics,/turf/simulated/shuttle/floor,/area/shuttle/escape) +"az" = (/obj/structure/stool/bed/chair/comfy/beige{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape) +"aA" = (/obj/structure/stool/bed/chair/comfy/purp{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/escape) +"aB" = (/turf/simulated/shuttle/wall{tag = "icon-swall7"; icon_state = "swall7"; dir = 2},/area/shuttle/escape) +"aC" = (/turf/simulated/shuttle/wall{icon_state = "swall14"; dir = 2},/area/shuttle/escape) +"aD" = (/obj/machinery/door/airlock/glass_command{name = "Escape Shuttle Cockpit"; req_access_txt = "19"},/turf/simulated/shuttle/floor,/area/shuttle/escape) +"aE" = (/turf/simulated/shuttle/wall{icon_state = "swall11"; dir = 2},/area/shuttle/escape) +"aF" = (/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/shuttle/escape) +"aG" = (/obj/machinery/status_display{pixel_y = 30},/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/structure/stool/bed/chair,/turf/simulated/shuttle/floor4,/area/shuttle/escape) +"aH" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "16"},/turf/simulated/floor/plating,/area/shuttle/escape) +"aI" = (/turf/simulated/floor/plating,/area/shuttle/escape) +"aJ" = (/obj/machinery/atmospherics/unary/cryo_cell,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTHWEST)"; icon_state = "whiteblue"; dir = 9},/area/shuttle/escape) +"aK" = (/obj/machinery/atmospherics/unary/portables_connector,/obj/machinery/portable_atmospherics/canister/oxygen{name = "Canister: \[O2] (CRYO)"},/obj/item/weapon/wrench,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/shuttle/escape) +"aL" = (/obj/machinery/status_display{pixel_y = 30},/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTH)"; icon_state = "whiteblue"; dir = 1},/area/shuttle/escape) +"aM" = (/obj/machinery/sleeper,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (NORTHEAST)"; icon_state = "whiteblue"; dir = 5},/area/shuttle/escape) +"aN" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = -28},/turf/simulated/shuttle/floor4,/area/shuttle/escape) +"aO" = (/turf/simulated/shuttle/floor4,/area/shuttle/escape) +"aP" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "8"},/turf/simulated/floor/plating,/area/shuttle/escape) +"aQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/shuttle/escape) +"aR" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"aS" = (/turf/simulated/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"aT" = (/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0; req_access_txt = "0"},/obj/machinery/sleeper,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/shuttle/escape) +"aU" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (WEST)"; icon_state = "whiteblue"; dir = 8},/area/shuttle/escape) +"aV" = (/obj/item/device/radio/intercom{dir = 4; name = "station intercom (General)"; pixel_x = 28},/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{dir = 4; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/shuttle/escape) +"aW" = (/obj/machinery/door/airlock/shuttle{aiControlDisabled = 1; hackProof = 1; id_tag = "s_docking_airlock"; name = "Shuttle Hatch"},/turf/simulated/floor/plating,/area/shuttle/escape) +"aX" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor4,/area/shuttle/escape) +"aY" = (/obj/machinery/atmospherics/unary/cold_sink/freezer{dir = 1},/turf/simulated/floor/plasteel{tag = "icon-whiteblue (SOUTHWEST)"; icon_state = "whiteblue"; dir = 10},/area/shuttle/escape) +"aZ" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/o2{layer = 2.8; pixel_x = 4; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 6},/obj/item/weapon/storage/firstaid/regular{pixel_x = -2; pixel_y = 4},/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/reagent_containers/glass/beaker/cryoxadone{pixel_x = 0; pixel_y = 0},/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/shuttle/escape) +"ba" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/shuttle/escape) +"bb" = (/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/obj/structure/stool/bed/roller,/turf/simulated/floor/plasteel{tag = "icon-whiteblue (SOUTHEAST)"; icon_state = "whiteblue"; dir = 6},/area/shuttle/escape) +"bc" = (/obj/machinery/door/airlock/glass_security{name = "Escape Shuttle Cell"; req_access_txt = "2"},/turf/simulated/floor/plating,/area/shuttle/escape) +"bd" = (/obj/structure/noticeboard,/turf/simulated/shuttle/wall{icon_state = "swall12"; dir = 2},/area/shuttle/escape) +"be" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "15"},/turf/simulated/floor/plating,/area/shuttle/escape) +"bf" = (/obj/machinery/door/airlock/glass_command{name = "Escape Shuttle Cockpit"; req_access_txt = "19"},/turf/simulated/floor/plating,/area/shuttle/escape) +"bg" = (/obj/machinery/door/airlock/glass_medical{id_tag = "ShuttleMedbay"; name = "Shuttle Medbay"; req_access_txt = "5"},/turf/simulated/floor/plating,/area/shuttle/escape) +"bh" = (/obj/docking_port/mobile/emergency{dir = 4; dwidth = 11; height = 13; timid = 1; width = 24},/obj/machinery/door/airlock/shuttle{aiControlDisabled = 1; hackProof = 1; id_tag = "s_docking_airlock"; name = "Shuttle Hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape) +"bi" = (/obj/structure/closet/walllocker/emerglocker{pixel_x = 28},/turf/simulated/floor/plating,/area/shuttle/escape) +"bj" = (/obj/item/device/radio/intercom{dir = 8; name = "station intercom (General)"; pixel_x = -28},/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plating,/area/shuttle/escape) +"bk" = (/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plating,/area/shuttle/escape) +"bl" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plating,/area/shuttle/escape) +"bm" = (/obj/structure/stool/bed/chair{dir = 8},/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/simulated/floor/plating,/area/shuttle/escape) +"bn" = (/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor/plating,/area/shuttle/escape) +"bo" = (/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/obj/structure/stool/bed/chair{dir = 8},/turf/simulated/floor/plating,/area/shuttle/escape) +"bp" = (/obj/machinery/door/airlock/shuttle{aiControlDisabled = 1; hackProof = 1; id_tag = "s_docking_airlock"; name = "Shuttle Hatch"},/turf/simulated/shuttle/floor,/area/shuttle/escape) +"bq" = (/obj/machinery/door/airlock/shuttle{aiControlDisabled = 1; hackProof = 1; id_tag = "s_docking_airlock"; name = "Shuttle Hatch"},/turf/simulated/shuttle/floor{icon_state = "floor2"},/area/shuttle/escape) +"br" = (/mob/living/simple_animal/bot/secbot,/turf/simulated/floor/plating,/area/shuttle/escape) +"bs" = (/obj/machinery/recharge_station,/turf/simulated/floor/plating,/area/shuttle/escape) +"bt" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape) +"bu" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/simulated/floor/plating/airless,/area/shuttle/escape) +"bv" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/escape) +"bw" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "swall_f9"; dir = 2},/area/shuttle/escape) +"bx" = (/obj/structure/shuttle/engine/propulsion,/turf/space,/area/shuttle/escape) +"by" = (/turf/simulated/floor/plating/airless,/area/shuttle/escape) +"bz" = (/obj/machinery/porta_turret{check_access = 0; check_arrest = 0; check_weapons = 1; lethal = 1; name = "shuttle turret"},/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/escape) + +(1,1,1) = {" +aaaaaaaaabacacacabaaaaaaaa +aaabadaeafafagafafahadabaa +aiafafajakalamanaoapafafaq +arasatatauavatawaxatatayar +arazatatatatatatatatataAar +aBafafafafaCaDaCafafafafaE +araFaGaFaFaHaIaHaJaKaLaMar +araNaOaOaOaPaIaPaQaRaSaTar +araOaOaOaOaPaIaPaUaSaSaVar +aWaOaOaXaXaPaIaPaYaZbabbag +aBafbcafbdbebfbeafafbgafaE +bhaIaIaIaIaIaIaIaIaIaIbiar +arbjaIbkblaIaIaIbkblaIbmar +arblaIbkblaIaIaIbkblaIbkar +arblaIbkblaIaIaIbkblaIbkar +arblaIbkblaIaIaIbkblaIbkar +arbnaIbkblaIaIaIbkblaIboar +bpaIaIaIaIaIaIaIaIaIaIbiar +agaIaIbkblaIaIaIbkblaIaIag +bqaIaIbkblaIaIaIbkblaIbrar +arblaIbkblaIbsaIbkblaIbkar +arbnaIbkblaIbsaIbkblaIboar +btaCbubuaCafafafaCbvbvaCbw +aabtbxbxajbybzbyapbxbxbwaa +"} diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index 222bc388f0a..aba6e6baea9 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -13,7 +13,12 @@ #define DISABILITY_FLAG_BLIND 16 #define DISABILITY_FLAG_MUTE 32 #define DISABILITY_FLAG_COLOURBLIND 64 - +#define DISABILITY_FLAG_TOURETTES 512 +#define DISABILITY_FLAG_NERVOUS 1024 +#define DISABILITY_FLAG_SWEDISH 2048 +#define DISABILITY_FLAG_SCRAMBLED 4096 // incoherent speech +#define DISABILITY_FLAG_LISP 8192 +#define DISABILITY_FLAG_DIZZY 16384 /////////////////////////////////////// // MUTATIONS /////////////////////////////////////// diff --git a/code/_globalvars/genetics.dm b/code/_globalvars/genetics.dm index 6109d103a8e..7c22e69f355 100644 --- a/code/_globalvars/genetics.dm +++ b/code/_globalvars/genetics.dm @@ -66,4 +66,4 @@ var/LOUDBLOCK = 0 var/DIZZYBLOCK = 0 var/list/reg_dna = list( ) //this appears to be a list of UE == real_name correlations -var/list/global_mutations = list() // list of hidden mutation things \ No newline at end of file +var/list/global_mutations = list() // list of hidden mutation things diff --git a/code/_globalvars/lists/reagents.dm b/code/_globalvars/lists/reagents.dm index fcd4dacdc2b..a4aa4b93c4f 100644 --- a/code/_globalvars/lists/reagents.dm +++ b/code/_globalvars/lists/reagents.dm @@ -44,7 +44,7 @@ var/list/drinks = list("beer2","hot_coco","orangejuice","tomatojuice","limejuice "vodkatonic","ginfizz","bahama_mama","singulo","sbiten","devilskiss","red_mead", "mead","iced_beer","grog","aloe","andalusia","alliescocktail","soy_latte", "cafe_latte","acidspit","amasec","neurotoxin","hippiesdelight","bananahonk", - "silencer","changelingsting","irishcarbomb","syndicatebomb","erikasurprise","driestmartini") + "silencer","changelingsting","irishcarbomb","syndicatebomb","erikasurprise","driestmartini", "flamingmoe") //Random chem blacklist var/global/list/blocked_chems = list("polonium", "initropidril", "concentrated_initro", diff --git a/code/datums/action.dm b/code/datums/action.dm index 499570be291..e12bd371a6d 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -209,6 +209,19 @@ button.name = name ..() +/datum/action/item_action/synthswitch + name = "Change Synthesizer Instrument" + desc = "Change the type of instrument your synthesizer is playing as." + +/datum/action/item_action/synthswitch/Trigger() + if(istype(target, /obj/item/device/instrument/piano_synth)) + var/obj/item/device/instrument/piano_synth/synth = target + var/chosen = input("Choose the type of instrument you want to use", "Instrument Selection", "piano") as null|anything in synth.insTypes + if(!synth.insTypes[chosen]) + return + return synth.changeInstrument(chosen) + return ..() + /datum/action/item_action/vortex_recall name = "Vortex Recall" desc = "Recall yourself, and anyone nearby, to an attuned hierophant rune at any time.
If no such rune exists, will produce a rune at your location." @@ -337,6 +350,18 @@ var/image/img = image(button_icon, current_button, "scan_mode") current_button.overlays += img +/datum/action/item_action/instrument + name = "Use Instrument" + desc = "Use the instrument specified" + +/datum/action/item_action/instrument/Trigger() + if(istype(target, /obj/item/device/instrument)) + var/obj/item/device/instrument/I = target + I.interact(usr) + return + return ..() + + /datum/action/item_action/remove_badge name = "Remove Holobadge" diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm index 3d0f877a3aa..d20255bc57c 100644 --- a/code/datums/shuttles.dm +++ b/code/datums/shuttles.dm @@ -45,6 +45,13 @@ description = "Features include: areas for each department, and a small bar." admin_notes = "Designed to reduce chaos. Each dept requires dept access." +/datum/map_template/shuttle/emergency/military + suffix = "mil" + name = "emergency shuttle (military)" + description = "Troop transport with point defense turrets." + admin_notes = "Designed to ensure a safe evacuation during xeno outbreaks." + + /datum/map_template/shuttle/emergency/clown suffix = "clown" name = "Snappop(tm)!" diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 739844051f6..15d78f37276 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -949,7 +949,8 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine contains = list(/obj/item/pizzabox/margherita, /obj/item/pizzabox/mushroom, /obj/item/pizzabox/meat, - /obj/item/pizzabox/vegetable) + /obj/item/pizzabox/vegetable, + /obj/item/pizzabox/hawaiian) cost = 60 containername = "Pizza crate" @@ -1248,7 +1249,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /datum/supply_packs/misc/watertank name = "Water Tank Crate" contains = list(/obj/structure/reagent_dispensers/watertank) - cost = 6 + cost = 8 containertype = /obj/structure/largecrate containername = "water tank crate" @@ -1513,6 +1514,22 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine containername = "foam force pistols crate" contraband = 1 +/datum/supply_packs/misc/bigband + name = "Big band instrument collection" + contains = list(/obj/item/device/instrument/violin, + /obj/item/device/instrument/guitar, + /obj/item/device/instrument/eguitar, + /obj/item/device/instrument/glockenspiel, + /obj/item/device/instrument/accordion, + /obj/item/device/instrument/saxophone, + /obj/item/device/instrument/trombone, + /obj/item/device/instrument/recorder, + /obj/item/device/instrument/harmonica, + /obj/item/device/instrument/xylophone, + /obj/structure/piano) + cost = 50 + containername = "Big band musical instruments collection" + /datum/supply_packs/misc/randomised/contraband num_contained = 5 contains = list(/obj/item/weapon/storage/pill_bottle/random_drug_bottle, @@ -1646,6 +1663,26 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine ) containername = "shield control board crate" +///////////// Bathroom Fixtures + +/datum/supply_packs/misc/toilet + name = "Lavatory Crate" + cost = 10 + contains = list( + /obj/item/weapon/bathroom_parts, + /obj/item/weapon/bathroom_parts/urinal + ) + containername = "lavatory crate" + +/datum/supply_packs/misc/hygiene + name = "Hygiene Station Crate" + cost = 10 + contains = list( + /obj/item/weapon/bathroom_parts/sink, + /obj/item/mounted/shower + ) + containername = "hygiene station crate" + ////////////////////////////////////////////////////////////////////////////// //////////////////////////// Vending ///////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 61eec85e9cc..1ce51657e85 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -359,3 +359,14 @@ dense_object_backup = AM break . = dense_object_backup + +/atom/movable/proc/transfer_prints_to(atom/movable/target = null, overwrite = FALSE) + if(!target) + return + if(overwrite) + target.fingerprints = fingerprints + target.fingerprintshidden = fingerprintshidden + else + target.fingerprints += fingerprints + target.fingerprintshidden += fingerprintshidden + target.fingerprintslast = fingerprintslast diff --git a/code/game/gamemodes/changeling/powers/fakedeath.dm b/code/game/gamemodes/changeling/powers/fakedeath.dm index dc7454ff7eb..7cd29c55021 100644 --- a/code/game/gamemodes/changeling/powers/fakedeath.dm +++ b/code/game/gamemodes/changeling/powers/fakedeath.dm @@ -13,13 +13,13 @@ to_chat(user, "We begin our stasis, preparing energy to arise once more.") - user.status_flags |= FAKEDEATH //play dead - user.update_canmove() - if(user.stat != DEAD) user.emote("deathgasp") user.timeofdeath = world.time + user.status_flags |= FAKEDEATH //play dead + user.update_canmove() + spawn(800) if(user && user.mind && user.mind.changeling && user.mind.changeling.purchasedpowers) to_chat(user, "We are ready to regenerate.") diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index abc8aa8952f..39099fb7d44 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -41,16 +41,13 @@ force = 15 throwforce = 25 embed_chance = 75 - var/cooldown = 0 -/obj/item/weapon/melee/cultblade/dagger/afterattack(atom/target, mob/living/carbon/human/user) +/obj/item/weapon/melee/cultblade/dagger/attack(atom/target, mob/living/carbon/human/user) ..() if(ishuman(target)) var/mob/living/carbon/human/H = target - if(!(cooldown > world.time) && ((H.stat != DEAD) && !(NO_BLOOD in H.species.species_traits))) - user.visible_message("The runes on the blade absorb the blood of [H]!") - H.bleed(5000) - cooldown = world.time + 2400 + if((H.stat != DEAD) && !(NO_BLOOD in H.species.species_traits)) + H.bleed(50) /obj/item/weapon/restraints/legcuffs/bola/cult name = "runed bola" diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index 60b9fcb2c85..10f6b92f517 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -65,6 +65,23 @@ else return ..() +/obj/structure/cult/functional/proc/updatehealth() + if(health <= 0) + destroy_structure() + +/obj/structure/cult/functional/proc/take_damage(damage, damage_type = BRUTE) + if(damage_type == BRUTE || damage_type == BURN) + health -= damage + updatehealth() + +/obj/structure/cult/functional/attackby(obj/item/I, mob/living/user) + ..() + take_damage(I.force, I.damtype) + playsound(loc, I.hitsound, 80, 1) + +/obj/structure/cult/functional/bullet_act(var/obj/item/projectile/P) + take_damage(P.damage, P.damage_type) + /obj/structure/cult/functional/attack_hand(mob/living/user) if(!iscultist(user)) to_chat(user, "[heathen_message]") @@ -142,6 +159,8 @@ C.apply_damage(30, BURN, "head") //30 fire damage because it's FUCKING LAVA head.disfigure("burn") //Your face is unrecognizable because it's FUCKING LAVA return 1 + else + ..() var/list/blacklisted_pylon_turfs = typecacheof(list( /turf/simulated/floor/engine/cult, diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index c6e64c4665c..892a5e7a204 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -636,17 +636,17 @@ var/list/teleport_runes = list() log_game("Raise Dead rune failed - no catalyst corpse") return mob_to_sacrifice = input(user, "Choose a corpse to sacrifice.", "Corpse to Sacrifice") as null|anything in potential_sacrifice_mobs - if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated() || !mob_to_revive || !mob_to_sacrifice || rune_in_use) + if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated() || !mob_to_sacrifice || rune_in_use) return for(var/mob/living/M in T.contents) if(M.stat == DEAD) potential_revive_mobs.Add(M) if(!potential_revive_mobs.len) to_chat(user, "There is no eligible revival target on the rune!") - log_game("Raise Dead rune failed - no corpse to revived") + log_game("Raise Dead rune failed - no corpse to revive") return mob_to_revive = input(user, "Choose a corpse to revive.", "Corpse to Revive") as null|anything in potential_revive_mobs - if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated() || rune_in_use) + if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated() || rune_in_use || !mob_to_revive) return if(!in_range(mob_to_sacrifice,src)) to_chat(user, "The sacrificial target has been moved!") diff --git a/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm b/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm index 4f7ad2ade9a..64b77d3b374 100644 --- a/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm +++ b/code/game/gamemodes/miniantags/abduction/abduction_surgery.dm @@ -11,7 +11,7 @@ var/obj/item/organ/external/affected = H.get_organ(target_zone) if(!affected) return 0 - if(affected.status & ORGAN_ROBOT) //Maybe add in a machine version, later? + if(affected.status & ORGAN_ROBOT) return 0 var/mob/living/carbon/human/H = user // You must either: Be of the abductor species, or contain an abductor implant @@ -64,3 +64,31 @@ var/obj/item/organ/internal/heart/gland/gland = tool gland.insert(target, 2) return 1 + +//IPC Gland Surgery// + +/datum/surgery/organ_extraction/synth + name = "experimental robotic dissection" + steps = list(/datum/surgery_step/robotics/external/unscrew_hatch,/datum/surgery_step/robotics/external/open_hatch,/datum/surgery_step/internal/extract_organ/synth,/datum/surgery_step/internal/gland_insert,/datum/surgery_step/robotics/external/close_hatch) + possible_locs = list("chest") + requires_organic_bodypart = 0 + +/datum/surgery/organ_extraction/synth/can_start(mob/user, mob/living/carbon/target, target_zone, obj/item/tool,datum/surgery/surgery) + if(!ishuman(user)) + return FALSE + if(ishuman(target)) + var/mob/living/carbon/human/H = target + var/obj/item/organ/external/affected = H.get_organ(target_zone) + if(!affected) + return FALSE + if(!(affected.status & ORGAN_ROBOT)) + return FALSE + var/mob/living/carbon/human/H = user + // You must either: Be of the abductor species, or contain an abductor implant + if((H.get_species() == "Abductor" || (locate(/obj/item/weapon/implant/abductor) in H))) + return TRUE + return FALSE + +/datum/surgery_step/internal/extract_organ/synth + name = "remove cell" + organ_types = list(/obj/item/organ/internal/cell) \ No newline at end of file diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 5e25103aeb8..d7fa1b4c9f2 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -40,6 +40,10 @@ if(be_swarmer == "No") return + if(jobban_isbanned(user, "Syndicate")) + to_chat(user, "You are banned from antagonists!") + return + if(crit_fail)//in case it depowers while ghost is looking at yes/no to_chat(user, "This swarmer shell is completely depowered. You cannot activate it.") return diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index 7a85467667e..6e085df1a5c 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -155,7 +155,8 @@ var/bomb_set ..() /obj/machinery/nuclearbomb/attack_ghost(mob/user as mob) - attack_hand(user) + if(extended) + attack_hand(user) /obj/machinery/nuclearbomb/attack_hand(mob/user as mob) if(extended) diff --git a/code/game/jobs/job/support.dm b/code/game/jobs/job/support.dm index 6b8a35ce582..573f8e72c94 100644 --- a/code/game/jobs/job/support.dm +++ b/code/game/jobs/job/support.dm @@ -215,17 +215,18 @@ uniform = /obj/item/clothing/under/rank/clown shoes = /obj/item/clothing/shoes/clown_shoes mask = /obj/item/clothing/mask/gas/clown_hat + l_pocket = /obj/item/weapon/bikehorn l_ear = /obj/item/device/radio/headset/headset_service id = /obj/item/weapon/card/id/clown pda = /obj/item/device/pda/clown backpack_contents = list( /obj/item/weapon/reagent_containers/food/snacks/grown/banana = 1, - /obj/item/weapon/bikehorn = 1, /obj/item/weapon/stamp/clown = 1, /obj/item/toy/crayon/rainbow = 1, /obj/item/weapon/storage/fancy/crayons = 1, /obj/item/weapon/reagent_containers/spray/waterflower = 1, - /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofbanana = 1 + /obj/item/weapon/reagent_containers/food/drinks/bottle/bottleofbanana = 1, + /obj/item/device/instrument/bikehorn = 1 ) backpack = /obj/item/weapon/storage/backpack/clown diff --git a/code/game/machinery/computer/HolodeckControl.dm b/code/game/machinery/computer/HolodeckControl.dm index 72dcbb7deb6..c5c34e9da02 100644 --- a/code/game/machinery/computer/HolodeckControl.dm +++ b/code/game/machinery/computer/HolodeckControl.dm @@ -436,8 +436,10 @@ item_state = "claymorered" /obj/item/weapon/holo/esword - desc = "May the force be within you. Sorta" + name = "Holographic Energy Sword" + desc = "This looks like a real energy sword!" icon_state = "sword0" + hitsound = "swing_hit" force = 3.0 throw_speed = 1 throw_range = 5 @@ -466,12 +468,14 @@ if(active) force = 30 icon_state = "sword[item_color]" + hitsound = "sound/weapons/blade1.ogg" w_class = WEIGHT_CLASS_BULKY playsound(user, 'sound/weapons/saberon.ogg', 50, 1) to_chat(user, "[src] is now active.") else force = 3 icon_state = "sword0" + hitsound = "swing_hit" w_class = WEIGHT_CLASS_SMALL playsound(user, 'sound/weapons/saberoff.ogg', 50, 1) to_chat(user, "[src] can now be concealed.") diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 0478141abe3..d3cbc93d4f0 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -101,7 +101,7 @@ visible_message("The console beeps happily as it disgorges \the [I].") - I.loc = get_turf(src) + I.forceMove(get_turf(src)) frozen_items -= I else if(href_list["allitems"]) @@ -117,7 +117,7 @@ visible_message("The console beeps happily as it disgorges the desired objects.") for(var/obj/item/I in frozen_items) - I.loc = get_turf(src) + I.forceMove(get_turf(src)) frozen_items -= I updateUsrDialog() @@ -281,7 +281,7 @@ //Drop all items into the pod. for(var/obj/item/W in occupant) occupant.unEquip(W) - W.loc = src + W.forceMove(src) if(W.contents.len) //Make sure we catch anything not handled by qdel() on the items. var/preserve = null @@ -294,7 +294,7 @@ for(var/obj/item/O in W.contents) if(istype(O,/obj/item/weapon/tank)) //Stop eating pockets, you fuck! continue - O.loc = src + O.forceMove(src) for(var/obj/machinery/computer/cloning/cloner in machines) for(var/datum/dna2/record/R in cloner.records) @@ -326,7 +326,7 @@ control_computer.frozen_items += W W.loc = null else - W.loc = loc + W.forceMove(loc) // Skip past any cult sacrifice objective using this person if(GAMEMODE_IS_CULT && is_sacrifice_target(occupant.mind)) @@ -463,9 +463,7 @@ to_chat(user, "\The [src] is in use.") return - M.forceMove(src) - - time_till_despawn = initial(time_till_despawn) / willing + take_occupant(M, willing) else //because why the fuck would you keep going if the mob isn't in the pod to_chat(user, "You stop putting [M] into the cryopod.") @@ -479,23 +477,7 @@ to_chat(M, "[on_enter_occupant_message]") to_chat(M, "If you ghost, log out or close your client now, your character will shortly be permanently removed from the round.") - occupant = M - name = "[name] ([occupant.name])" - time_entered = world.time - - if(findtext("[M.key]","@",1,2)) - var/FT = replacetext(M.key, "@", "") - for(var/mob/dead/observer/Gh in respawnable_list) //this may not be foolproof but it seemed like a better option than 'in world' - if(Gh.key == FT) - if(Gh.client && Gh.client.holder) //just in case someone has a byond name with @ at the start, which I don't think is even possible but whatever - to_chat(Gh, "Warning: Your body has entered cryostorage.") - - // Book keeping! - log_admin("[key_name(M)] has entered a stasis pod.") - message_admins("[key_name_admin(M)] has entered a stasis pod. (JMP)") - - //Despawning occurs when process() is called with an occupant without a client. - add_fingerprint(M) + take_occupant(M, willing) /obj/machinery/cryopod/MouseDrop_T(atom/movable/O as mob|obj, mob/user as mob) @@ -560,38 +542,36 @@ if(occupant) to_chat(user, "\The [src] is in use.") return - L.forceMove(src) - time_till_despawn = initial(time_till_despawn) / willing + take_occupant(L, willing) else to_chat(user, "You stop [L == user ? "climbing into the cryo pod." : "putting [L] into the cryo pod."]") - return - if(orient_right) - icon_state = "[occupied_icon_state]-r" - else - icon_state = occupied_icon_state +/obj/machinery/cryopod/proc/take_occupant(var/mob/living/carbon/E, var/willing_factor = 1) + if(occupant) + return + if(!E) + return + E.forceMove(src) + time_till_despawn = initial(time_till_despawn) / willing_factor + if(orient_right) + icon_state = "[occupied_icon_state]-r" + else + icon_state = occupied_icon_state + to_chat(E, "[on_enter_occupant_message]") + to_chat(E, "If you ghost, log out or close your client now, your character will shortly be permanently removed from the round.") + occupant = E + name = "[name] ([occupant.name])" + time_entered = world.time + if(findtext("[E.key]","@",1,2)) + var/FT = replacetext(E.key, "@", "") + for(var/mob/dead/observer/Gh in respawnable_list) //this may not be foolproof but it seemed like a better option than 'in world' + if(Gh.key == FT) + if(Gh.client && Gh.client.holder) //just in case someone has a byond name with @ at the start, which I don't think is even possible but whatever + to_chat(Gh, "Warning: Your body has entered cryostorage.") + log_admin("[key_name(E)] entered a stasis pod.") + message_admins("[key_name_admin(E)] entered a stasis pod. (JMP)") + add_fingerprint(E) - to_chat(L, "[on_enter_occupant_message]") - to_chat(L, "If you ghost, log out or close your client now, your character will shortly be permanently removed from the round.") - occupant = L - name = "[name] ([occupant.name])" - time_entered = world.time - - if(findtext("[L.key]","@",1,2)) - var/FT = replacetext(L.key, "@", "") - for(var/mob/dead/observer/Gh in respawnable_list) //this may not be foolproof but it seemed like a better option than 'in world' - if(Gh.key == FT) - if(Gh.client && Gh.client.holder) //just in case someone has a byond name with @ at the start, which I don't think is even possible but whatever - to_chat(Gh, "Warning: Your body has entered cryostorage.") - - // Book keeping! - log_admin("[key_name_admin(L)] has entered a stasis pod. (JMP)") - message_admins("[key_name_admin(L)] has entered a stasis pod.") - - //Despawning occurs when process() is called with an occupant without a client. - add_fingerprint(L) - - return /obj/machinery/cryopod/verb/eject() set name = "Eject Pod" @@ -733,3 +713,18 @@ qdel(R.module) return ..() + +/proc/cryo_ssd(var/mob/living/carbon/person_to_cryo) + if(istype(person_to_cryo.loc, /obj/machinery/cryopod)) + return 0 + var/list/free_cryopods = list() + for(var/obj/machinery/cryopod/P in machines) + if(!P.occupant && istype(get_area(P), /area/crew_quarters/sleep)) + free_cryopods += P + var/obj/machinery/cryopod/target_cryopod = null + if(free_cryopods.len) + target_cryopod = safepick(free_cryopods) + if(target_cryopod.check_occupant_allowed(person_to_cryo)) + target_cryopod.take_occupant(person_to_cryo, 1) + return 1 + return 0 \ No newline at end of file diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index c3e105a7fee..4f68c721c1c 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -76,8 +76,13 @@ var/mob/living/M = AM if(world.time - M.last_bumped <= 10) return //Can bump-open one airlock per second. This is to prevent shock spam. M.last_bumped = world.time - if(!M.restrained() && M.mob_size > MOB_SIZE_SMALL) - bumpopen(M) + if(!M.restrained()) + if(M.mob_size > MOB_SIZE_SMALL) + bumpopen(M) + else if(ispet(M)) + var/mob/living/simple_animal/A = AM + if(A.collar) + bumpopen(M) return if(istype(AM, /obj/mecha)) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index caf6840ebc7..5b1211a7394 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -977,7 +977,7 @@ /obj/item/seeds/cabbage = 3, /obj/item/seeds/carrot = 3, /obj/item/seeds/cherry = 3, /obj/item/seeds/chanter = 3, /obj/item/seeds/chili = 3, /obj/item/seeds/cocoapod = 3, /obj/item/seeds/coffee = 3, /obj/item/seeds/comfrey =3, /obj/item/seeds/corn = 3, /obj/item/seeds/nymph =3, /obj/item/seeds/eggplant = 3, /obj/item/seeds/grape = 3, /obj/item/seeds/grass = 3, /obj/item/seeds/lemon = 3, - /obj/item/seeds/lime = 3, /obj/item/seeds/onion = 3, /obj/item/seeds/orange = 3, /obj/item/seeds/peanuts = 3, /obj/item/seeds/potato = 3, /obj/item/seeds/poppy = 3, + /obj/item/seeds/lime = 3, /obj/item/seeds/onion = 3, /obj/item/seeds/orange = 3, /obj/item/seeds/peanuts = 3, /obj/item/seeds/pineapple = 3, /obj/item/seeds/potato = 3, /obj/item/seeds/poppy = 3, /obj/item/seeds/pumpkin = 3, /obj/item/seeds/replicapod = 3, /obj/item/seeds/wheat/rice = 3, /obj/item/seeds/soya = 3, /obj/item/seeds/sunflower = 3, /obj/item/seeds/tea = 3, /obj/item/seeds/tobacco = 3, /obj/item/seeds/tomato = 3, /obj/item/seeds/tower = 3, /obj/item/seeds/watermelon = 3, /obj/item/seeds/wheat = 3, /obj/item/seeds/whitebeet = 3) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index a1a68ff5cf7..d40baf16877 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -202,7 +202,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d to_chat(user, msg) -/obj/item/attack_hand(mob/user as mob) +/obj/item/attack_hand(mob/user as mob, pickupfireoverride = FALSE) if(!user) return 0 if(hasorgans(user)) var/mob/living/carbon/human/H = user @@ -216,7 +216,7 @@ var/global/image/fire_overlay = image("icon" = 'icons/goonstation/effects/fire.d to_chat(user, "You try to move your [temp.name], but cannot!") return 0 - if(burn_state == ON_FIRE) + if(burn_state == ON_FIRE && !pickupfireoverride) var/mob/living/carbon/human/H = user if(istype(H)) if(H.gloves && (H.gloves.max_heat_protection_temperature > 360)) diff --git a/code/game/objects/items/devices/instruments.dm b/code/game/objects/items/devices/instruments.dm index 3643b197d4c..450dad3d869 100644 --- a/code/game/objects/items/devices/instruments.dm +++ b/code/game/objects/items/devices/instruments.dm @@ -2,14 +2,15 @@ /obj/item/device/instrument name = "generic instrument" icon = 'icons/obj/musician.dmi' + lefthand_file = 'icons/mob/inhands/equipment/instruments_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/instruments_righthand.dmi' burn_state = FLAMMABLE var/datum/song/handheld/song var/instrumentId = "generic" - var/instrumentExt = "ogg" + var/instrumentExt = "mid" /obj/item/device/instrument/New() - song = new(instrumentId, src) - song.instrumentExt = instrumentExt + song = new(instrumentId, src, instrumentExt) ..() /obj/item/device/instrument/Destroy() @@ -44,6 +45,7 @@ desc = "A wooden musical instrument with four strings and a bow. \"The devil went down to space, he was looking for an assistant to grief.\"" icon_state = "violin" item_state = "violin" + instrumentExt = "ogg" force = 10 hitsound = "swing_hit" instrumentId = "violin" @@ -55,11 +57,26 @@ item_state = "golden_violin" burn_state = LAVA_PROOF +/obj/item/device/instrument/piano_synth + name = "synthesizer" + desc = "An advanced electronic synthesizer that can be used as various instruments." + icon_state = "synth" + item_state = "synth" + instrumentId = "piano" + instrumentExt = "ogg" + var/static/list/insTypes = list("accordion" = "mid", "glockenspiel" = "mid", "guitar" = "ogg", "eguitar" = "ogg", "harmonica" = "mid", "piano" = "ogg", "recorder" = "mid", "saxophone" = "mid", "trombone" = "mid", "violin" = "ogg", "xylophone" = "mid") + actions_types = list(/datum/action/item_action/synthswitch) + +/obj/item/device/instrument/piano_synth/proc/changeInstrument(name = "piano") + song.instrumentDir = name + song.instrumentExt = insTypes[name] + /obj/item/device/instrument/guitar name = "guitar" desc = "It's made of wood and has bronze strings." icon_state = "guitar" item_state = "guitar" + instrumentExt = "ogg" force = 10 attack_verb = list("played metal on", "serenaded", "crashed", "smashed") hitsound = 'sound/effects/guitarsmash.ogg' @@ -70,11 +87,79 @@ desc = "Makes all your shredding needs possible." icon_state = "eguitar" item_state = "eguitar" + instrumentExt = "ogg" force = 12 attack_verb = list("played metal on", "shredded", "crashed", "smashed") hitsound = 'sound/weapons/stringsmash.ogg' instrumentId = "eguitar" +/obj/item/device/instrument/glockenspiel + name = "glockenspiel" + desc = "Smooth metal bars perfect for any marching band." + icon_state = "glockenspiel" + item_state = "glockenspiel" + instrumentId = "glockenspiel" + +/obj/item/device/instrument/accordion + name = "accordion" + desc = "Pun-Pun not included." + icon_state = "accordion" + item_state = "accordion" + instrumentId = "accordion" + +/obj/item/device/instrument/saxophone + name = "saxophone" + desc = "This soothing sound will be sure to leave your audience in tears." + icon_state = "saxophone" + item_state = "saxophone" + instrumentId = "saxophone" + +/obj/item/device/instrument/trombone + name = "trombone" + desc = "How can any pool table ever hope to compete?" + icon_state = "trombone" + item_state = "trombone" + instrumentId = "trombone" + +/obj/item/device/instrument/recorder + name = "recorder" + desc = "Just like in school, playing ability and all." + icon_state = "recorder" + item_state = "recorder" + instrumentId = "recorder" + +/obj/item/device/instrument/harmonica + name = "harmonica" + desc = "For when you get a bad case of the space blues." + icon_state = "harmonica" + item_state = "harmonica" + instrumentId = "harmonica" + force = 5 + w_class = WEIGHT_CLASS_SMALL + +/obj/item/device/instrument/xylophone + name = "xylophone" + desc = "a percussion instrument with a bright tone." + icon_state = "xylophone" + item_state = "xylophone" + instrumentId = "xylophone" + +/obj/item/device/instrument/bikehorn + name = "gilded bike horn" + desc = "An exquisitely decorated bike horn, capable of honking in a variety of notes." + icon_state = "bike_horn" + item_state = "bike_horn" + lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items_righthand.dmi' + attack_verb = list("beautifully honks") + instrumentId = "bikehorn" + instrumentExt = "ogg" + w_class = WEIGHT_CLASS_TINY + force = 0 + throw_speed = 3 + throw_range = 7 + hitsound = 'sound/items/bikehorn.ogg' + /datum/crafting_recipe/violin name = "Violin" result = /obj/item/device/instrument/violin diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 88aa19bfef8..dfec1d1ba09 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -363,7 +363,7 @@ REAGENT SCANNER return /obj/item/device/mass_spectrometer - desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample." + desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample. Inject sample with syringe." name = "mass-spectrometer" icon_state = "spectrometer" item_state = "analyzer" @@ -377,7 +377,7 @@ REAGENT SCANNER origin_tech = "magnets=2;biotech=1;plasmatech=2" var/details = 0 var/datatoprint = "" - var/scanning = 1 + var/scanning = TRUE actions_types = list(/datum/action/item_action/print_report) /obj/item/device/mass_spectrometer/New() @@ -400,8 +400,8 @@ REAGENT SCANNER var/list/blood_traces = list() for(var/datum/reagent/R in reagents.reagent_list) if(R.id != "blood") - reagents.clear_reagents() to_chat(user, "The sample was contaminated! Please insert another sample.") + reagents.clear_reagents() return else blood_traces = params2list(R.data["trace_chem"]) @@ -412,7 +412,9 @@ REAGENT SCANNER dat += "[R] ([blood_traces[R]] units) " else dat += "[R] " - to_chat(user, "[dat]") + to_chat(user, "Analysis completed. Chemicals found: [dat]") + scanning = FALSE + datatoprint = dat reagents.clear_reagents() return @@ -424,6 +426,7 @@ REAGENT SCANNER /obj/item/device/mass_spectrometer/proc/print_report() if(!scanning) + scanning = TRUE usr.visible_message("[src] rattles and prints out a sheet of paper.") playsound(loc, 'sound/goonstation/machines/printer_thermal.ogg', 50, 1) sleep(50) @@ -437,7 +440,6 @@ REAGENT SCANNER M.put_in_hands(P) to_chat(M, "Report printed. Log cleared.") datatoprint = "" - scanning = 1 else to_chat(usr, "[src] has no logs or is already in use.") diff --git a/code/game/objects/items/mountable_frames/apc_frame.dm b/code/game/objects/items/mountable_frames/apc_frame.dm index 11542cdd94c..fbdab5584f1 100644 --- a/code/game/objects/items/mountable_frames/apc_frame.dm +++ b/code/game/objects/items/mountable_frames/apc_frame.dm @@ -10,11 +10,11 @@ var/turf/turf_loc = get_turf(user) var/area/area_loc = turf_loc.loc if(area_loc.get_apc()) - to_chat(user, "This area already has an APC.") + to_chat(user, "This area already has an APC.") return //only one APC per area for(var/obj/machinery/power/terminal/T in turf_loc) if(T.master) - to_chat(user, "There is another network terminal here.") + to_chat(user, "There is another network terminal here.") return else var/obj/item/stack/cable_coil/C = new /obj/item/stack/cable_coil(turf_loc) diff --git a/code/game/objects/items/mountable_frames/frames.dm b/code/game/objects/items/mountable_frames/frames.dm index 0bc5a8f9be6..2bcbea8cbee 100644 --- a/code/game/objects/items/mountable_frames/frames.dm +++ b/code/game/objects/items/mountable_frames/frames.dm @@ -20,11 +20,11 @@ var/turf/turf_loc = get_turf(user) if(src.mount_reqs.Find("simfloor") && !istype(turf_loc, /turf/simulated/floor)) - to_chat(user, "[src] cannot be placed on this spot.") + to_chat(user, "[src] cannot be placed on this spot.") return if(src.mount_reqs.Find("nospace")) var/area/my_area = turf_loc.loc if(!istype(my_area) || (my_area.requires_power == 0 || istype(my_area,/area/space))) - to_chat(user, "[src] cannot be placed in this area.") + to_chat(user, "[src] cannot be placed in this area.") return return 1 diff --git a/code/game/objects/items/mountable_frames/mountables.dm b/code/game/objects/items/mountable_frames/mountables.dm index 1b720712fa9..7120f8c880d 100644 --- a/code/game/objects/items/mountable_frames/mountables.dm +++ b/code/game/objects/items/mountable_frames/mountables.dm @@ -21,11 +21,11 @@ if(proximity_flag != 1) //if we aren't next to the wall return if(!( get_dir(on_wall,user) in cardinal)) - to_chat(user, "You need to be standing next to a wall to place \the [src].") + to_chat(user, "You need to be standing next to a wall to place \the [src].") return if(gotwallitem(get_turf(user), get_dir(on_wall,user))) - to_chat(user, "There's already an item on this wall!") + to_chat(user, "There's already an item on this wall!") return return 1 diff --git a/code/game/objects/items/weapons/bee_briefcase.dm b/code/game/objects/items/weapons/bee_briefcase.dm index 229a025a18f..098fdc00549 100644 --- a/code/game/objects/items/weapons/bee_briefcase.dm +++ b/code/game/objects/items/weapons/bee_briefcase.dm @@ -62,14 +62,7 @@ else if(world.time >= next_sound) //This cooldown doesn't prevent us from releasing bees, just stops the sound next_sound = world.time + 90 - //Play sound through the station intercomms, so everyone knows the doom you have wrought. - for(var/O in global_intercoms) - var/obj/item/device/radio/intercom/I = O - if(!is_station_level(I.z)) //Only broadcast to the station intercoms - continue - if(!I.on) //Only broadcast to active intercoms (powered, switched on) - continue - playsound(I, sound_file, 35) + playsound(loc, sound_file, 35) //Release up to 5 bees per use. Without using strange reagent, that means two uses. WITH strange reagent, you can get more if you don't release the last bee for(var/bee = min(5, bees_left), bee > 0, bee--) diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm index 968aac67272..64b7dfcdf76 100644 --- a/code/game/objects/items/weapons/holy_weapons.dm +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -568,7 +568,8 @@ if(!target.mind) //no mind means no conversion, but also means no faith lost. to_chat(missionary, "You halt the conversion as you realize [target] is mindless! Best to save your faith for someone more worthwhile.") return - if(do_after(missionary, 40)) //4 seconds to temporarily convert, roughly 1 second faster than a vampire's enthrall ability + to_chat(target, "Your mind seems foggy. For a moment, all you can think about is serving the greater good... the greater good...") + if(do_after(missionary, 80)) //8 seconds to temporarily convert, roughly 3 seconds slower than a vamp's enthrall, but its a ranged thing if(faith < 100) //to stop people from trying to exploit the do_after system to multi-convert, we check again if you have enough faith when it completes to_chat(missionary, "You don't have enough faith to complete the conversion on [target]!") return @@ -589,14 +590,9 @@ faith -= 25 //same faith cost as losing sight of them mid-conversion, but did you just find someone who can lead you to a fellow traitor? return if(ismindshielded(target)) - if(prob(20)) //loyalty implants typically overpower this, but you CAN get lucky and convert still (20% chance of success) - faith -= 125 //yes, this puts it negative. it's gonna take longer to recharge if you manage to convert a one of these people to balance the new power you gained through them - to_chat(missionary, "Through sheer willpower, you overcome their closed mind and rally [target] to your cause! You may need a bit longer than usual before your faith is fully recharged, and they won't remain loyal to you for long ...") - convert_duration = 3000 //5 min, because the loyalty implant will attempt to counteract the subversion - else //80% chance to fail - faith -= 75 - to_chat(missionary, "Your faith is strong, but their mind remains closed to your ideals. Your resolve helps you retain a bit of faith though.") - return + faith -= 75 + to_chat(missionary, "Your faith is strong, but their mind remains closed to your ideals. Your resolve helps you retain a bit of faith though.") + return else if(target.mind.assigned_role == "Psychiatrist" || target.mind.assigned_role == "Librarian") //fancy book lernin helps counter religion (day 0 job love, what madness!) if(prob(35)) //35% chance to fail to_chat(missionary, "This one is well trained in matters of the mind... They will not be swayed as easily as you thought...") diff --git a/code/game/objects/items/weapons/paint.dm b/code/game/objects/items/weapons/paint.dm index dc5c4d048b5..03eef999c59 100644 --- a/code/game/objects/items/weapons/paint.dm +++ b/code/game/objects/items/weapons/paint.dm @@ -18,6 +18,8 @@ /obj/item/weapon/reagent_containers/glass/paint/afterattack(turf/simulated/target, mob/user, proximity) if(!proximity) return + if(!is_open_container()) + return if(istype(target) && reagents.total_volume >= 5) user.visible_message("[target] has been splashed with something by [user]!") spawn(5) diff --git a/code/game/objects/structures/crates_lockers/walllocker.dm b/code/game/objects/structures/crates_lockers/walllocker.dm index 25a41a8dde7..ec736d4b04a 100644 --- a/code/game/objects/structures/crates_lockers/walllocker.dm +++ b/code/game/objects/structures/crates_lockers/walllocker.dm @@ -17,6 +17,10 @@ //spawns endless (3 sets) amounts of breathmask, emergency oxy tank and crowbar +/obj/structure/closet/walllocker/CtrlClick() + if(ishuman(usr) && Adjacent(usr)) + verb_toggleopen() + /obj/structure/closet/walllocker/emerglocker name = "emergency locker" desc = "A wall mounted locker with emergency supplies" diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 83220bb6a33..4dcccb2145d 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -9,8 +9,22 @@ var/shattered = 0 var/list/ui_users = list() -/obj/structure/mirror/attack_hand(mob/user as mob) - if(shattered) return +/obj/structure/mirror/New(turf/T, newdir = SOUTH, building = FALSE) + ..() + if(building) + switch(newdir) + if(NORTH) + pixel_y = -32 + if(SOUTH) + pixel_y = 32 + if(EAST) + pixel_x = -32 + if(WEST) + pixel_x = 32 + +/obj/structure/mirror/attack_hand(mob/user) + if(shattered) + return if(ishuman(user)) var/datum/nano_module/appearance_changer/AC = ui_users[user] @@ -22,14 +36,15 @@ AC.ui_interact(user) /obj/structure/mirror/proc/shatter() - if(shattered) return + if(shattered) + return shattered = 1 icon_state = "mirror_broke" playsound(src, "shatter", 70, 1) desc = "Oh no, seven years of bad luck!" -/obj/structure/mirror/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/mirror/bullet_act(obj/item/projectile/Proj) if(prob(Proj.damage * 2)) if(!shattered) shatter() @@ -38,7 +53,19 @@ ..() -/obj/structure/mirror/attackby(obj/item/I as obj, mob/living/user as mob, params) +/obj/structure/mirror/attackby(obj/item/I, mob/living/user, params) + if(isscrewdriver(I)) + user.visible_message("[user] begins to unfasten [src].", "You begin to unfasten [src].") + if(do_after(user, 30 * I.toolspeed, target = src)) + if(shattered) + user.visible_message("[user] drops the broken shards to the floor.", "You drop the broken shards on the floor.") + new /obj/item/weapon/shard(get_turf(user)) + else + user.visible_message("[user] carefully places [src] on the floor.", "You carefully place [src] on the floor.") + new /obj/item/mounted/mirror(get_turf(user)) + qdel(src) + return + user.do_attack_animation(src) if(shattered) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) @@ -52,8 +79,9 @@ playsound(src.loc, 'sound/effects/Glasshit.ogg', 70, 1) -/obj/structure/mirror/attack_alien(mob/living/user as mob) - if(islarva(user)) return +/obj/structure/mirror/attack_alien(mob/living/user) + if(islarva(user)) + return user.do_attack_animation(src) if(shattered) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) @@ -62,10 +90,12 @@ shatter() -/obj/structure/mirror/attack_animal(mob/living/user as mob) - if(!isanimal(user)) return +/obj/structure/mirror/attack_animal(mob/living/user) + if(!isanimal(user)) + return var/mob/living/simple_animal/M = user - if(M.melee_damage_upper <= 0) return + if(M.melee_damage_upper <= 0) + return M.do_attack_animation(src) if(shattered) playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) @@ -74,7 +104,7 @@ shatter() -/obj/structure/mirror/attack_slime(mob/living/user as mob) +/obj/structure/mirror/attack_slime(mob/living/user) var/mob/living/carbon/slime/S = user if(!S.is_adult) return @@ -83,4 +113,16 @@ playsound(src.loc, 'sound/effects/hit_on_shattered_glass.ogg', 70, 1) return user.visible_message("[user] smashes [src]!") - shatter() \ No newline at end of file + shatter() + + +/obj/item/mounted/mirror + name = "mirror" + desc = "Some reflective glass ready to be hung on a wall. Don't break it!" + icon = 'icons/obj/watercloset.dmi' + icon_state = "mirror" + +/obj/item/mounted/mirror/do_build(turf/on_wall, mob/user) + var/obj/structure/mirror/M = new /obj/structure/mirror(get_turf(user), get_dir(on_wall, user), 1) + transfer_prints_to(M, TRUE) + qdel(src) \ No newline at end of file diff --git a/code/game/objects/structures/musician.dm b/code/game/objects/structures/musician.dm index ca7c18c2e4e..1677b776c15 100644 --- a/code/game/objects/structures/musician.dm +++ b/code/game/objects/structures/musician.dm @@ -14,10 +14,11 @@ var/instrumentExt = "ogg" // the file extension var/obj/instrumentObj = null // the associated obj playing the sound -/datum/song/New(dir, obj) +/datum/song/New(dir, obj, ext = "ogg") tempo = sanitize_tempo(tempo) instrumentDir = dir instrumentObj = obj + instrumentExt = ext /datum/song/Destroy() instrumentObj = null @@ -50,7 +51,7 @@ return // now generate name - var/soundfile = "sound/[instrumentDir]/[ascii2text(note+64)][acc][oct].[instrumentExt]" + var/soundfile = "sound/instruments/[instrumentDir]/[ascii2text(note+64)][acc][oct].[instrumentExt]" soundfile = file(soundfile) // make sure the note exists if(!fexists(soundfile)) @@ -58,7 +59,8 @@ // and play var/turf/source = get_turf(instrumentObj) var/sound/music_played = sound(soundfile) - for(var/mob/M in hearers(15, source)) + for(var/A in hearers(15, source)) + var/mob/M = A if(!M.client || !(M.client.prefs.sound & SOUND_INSTRUMENTS)) continue M.playsound_local(source, null, 100, falloff = 5, S = music_played) @@ -147,6 +149,7 @@ lines = new() tempo = sanitize_tempo(5) // default 120 BPM name = "" + nanomanager.update_uis(src) else if(href_list["import"]) playing = 0 @@ -156,11 +159,11 @@ if(!in_range(instrumentObj, usr)) return - if(lentext(t) >= 3072) + if(lentext(t) >= 12000) var/cont = input(usr, "Your message is too long! Would you like to continue editing it?", "", "yes") in list("yes", "no") if(cont == "no") break - while(lentext(t) > 3072) + while(lentext(t) > 12000) //split into lines spawn() @@ -172,19 +175,21 @@ lines.Cut(1,2) else tempo = sanitize_tempo(5) // default 120 BPM - if(lines.len > 50) + if(lines.len > 200) to_chat(usr, "Too many lines!") - lines.Cut(51) + lines.Cut(201) var/linenum = 1 for(var/l in lines) - if(lentext(l) > 50) + if(lentext(l) > 200) to_chat(usr, "Line [linenum] too long!") lines.Remove(l) else linenum++ + nanomanager.update_uis(src) else if(href_list["help"]) help = !help + nanomanager.update_uis(src) if(href_list["repeat"]) //Changing this from a toggle to a number of repeats to avoid infinite loops. if(playing) @@ -194,9 +199,11 @@ repeat = 0 if(repeat > max_repeat) repeat = max_repeat + nanomanager.update_uis(src) else if(href_list["tempo"]) tempo = sanitize_tempo(tempo + text2num(href_list["tempo"]) * world.tick_lag) + nanomanager.update_uis(src) else if(href_list["play"]) if(playing) @@ -204,6 +211,7 @@ playing = 1 spawn() playsong(usr) + nanomanager.update_uis(src) else if(href_list["insertline"]) var/num = round(text2num(href_list["insertline"])) @@ -213,32 +221,36 @@ var/newline = html_encode(input("Enter your line: ", instrumentObj.name) as text|null) if(!newline || !in_range(instrumentObj, usr)) return - if(lines.len > 50) + if(lines.len > 200) return - if(lentext(newline) > 50) - newline = copytext(newline, 1, 50) + if(lentext(newline) > 200) + newline = copytext(newline, 1, 200) lines.Insert(num, newline) + nanomanager.update_uis(src) else if(href_list["deleteline"]) var/num = round(text2num(href_list["deleteline"])) if(num > lines.len || num < 1) return lines.Cut(num, num + 1) + nanomanager.update_uis(src) else if(href_list["modifyline"]) var/num = round(text2num(href_list["modifyline"])) var/content = html_encode(input("Enter your line: ", instrumentObj.name, lines[num]) as text|null) if(!content || !in_range(instrumentObj, usr)) return - if(lentext(content) > 50) - content = copytext(content, 1, 50) + if(lentext(content) > 200) + content = copytext(content, 1, 200) if(num > lines.len || num < 1) return lines[num] = content + nanomanager.update_uis(src) else if(href_list["stop"]) playing = 0 + nanomanager.update_uis(src) /datum/song/proc/sanitize_tempo(new_tempo) new_tempo = abs(new_tempo) diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index d3cc48d46bf..b8e176ba12a 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -47,12 +47,61 @@ open = !open update_icon() - /obj/structure/toilet/update_icon() icon_state = "toilet[open][cistern]" - + if(!anchored) + pixel_x = 0 + pixel_y = 0 + layer = OBJ_LAYER + else + if(dir == SOUTH) + pixel_x = 0 + pixel_y = 8 + if(dir == NORTH) + pixel_x = 0 + pixel_y = -8 + layer = FLY_LAYER /obj/structure/toilet/attackby(obj/item/I, mob/living/user, params) + if(iswrench(I)) + var/choices = list() + if(cistern) + choices += "Stash" + if(anchored) + choices += "Disconnect" + else + choices += "Connect" + choices += "Rotate" + + var/response = input(user, "What do you want to do?", "[src]") as null|anything in choices + if(!Adjacent(user) || !response) //moved away or cancelled + return + switch(response) + if("Stash") + stash_goods(I, user) + if("Disconnect") + user.visible_message("[user] starts disconnecting [src].", "You begin disconnecting [src]...") + if(do_after(user, 40 * I.toolspeed, target = src)) + if(!loc || !anchored) + return + user.visible_message("[user] disconnects [src]!", "You disconnect [src]!") + anchored = 0 + update_icon() + if("Connect") + user.visible_message("[user] starts connecting [src].", "You begin connecting [src]...") + if(do_after(user, 40 * I.toolspeed, target = src)) + if(!loc || anchored) + return + user.visible_message("[user] connects [src]!", "You connect [src]!") + anchored = 1 + update_icon() + if("Rotate") + var/list/dir_choices = list("North" = NORTH, "East" = EAST, "South" = SOUTH, "West" = WEST) + var/selected = input(user,"Select a direction for the connector.", "Connector Direction") in dir_choices + dir = dir_choices[selected] + update_icon() //is this necessary? probably not + return + if(istype(I, /obj/item/weapon/crowbar)) to_chat(user, "You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]...") playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, 1) @@ -68,7 +117,7 @@ var/obj/item/weapon/reagent_containers/RG = I if(RG.is_open_container()) if(RG.reagents.total_volume >= RG.volume) - to_chat(user, "\The [RG] is full.") + to_chat(user, "[RG] is full.") else RG.reagents.add_reagent("toiletwater", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this)) to_chat(user, "You fill [RG] from [src]. Gross.") @@ -106,20 +155,25 @@ to_chat(user, "You need a tighter grip!") if(cistern) - if(I.w_class > WEIGHT_CLASS_NORMAL) - to_chat(user, "[I] does not fit!") - return - if(w_items + I.w_class > WEIGHT_CLASS_HUGE) - to_chat(user, "The cistern is full!") - return - if(!user.drop_item()) - to_chat(user, "\The [I] is stuck to your hand, you cannot put it in the cistern!") - return - I.loc = src - w_items += I.w_class - to_chat(user, "You carefully place [I] into the cistern.") + stash_goods(I, user) return +/obj/structure/toilet/proc/stash_goods(obj/item/I, mob/user) + if(!I) + return + if(I.w_class > WEIGHT_CLASS_NORMAL) + to_chat(user, "[I] does not fit!") + return + if(w_items + I.w_class > WEIGHT_CLASS_HUGE) + to_chat(user, "The cistern is full!") + return + if(!user.drop_item()) + to_chat(user, "[I] is stuck to your hand, you cannot put it in the cistern!") + return + I.loc = src + w_items += I.w_class + to_chat(user, "You carefully place [I] into the cistern.") + /obj/structure/toilet/secret var/secret_type = null @@ -131,6 +185,7 @@ w_items += secret.w_class + /obj/structure/urinal name = "urinal" desc = "The HU-452, an experimental urinal." @@ -141,6 +196,27 @@ /obj/structure/urinal/attackby(obj/item/I, mob/user, params) + if(iswrench(I)) + if(anchored) + user.visible_message("[user] begins disconnecting [src]...", "You begin to disconnect [src]...") + if(do_after(user, 40 * I.toolspeed, target = src)) + if(!loc || !anchored) + return + user.visible_message("[user] disconnects [src]!", "You disconnect [src]!") + anchored = 0 + pixel_x = 0 + pixel_y = 0 + else + user.visible_message("[user] begins connecting [src]...", "You begin to connect [src]...") + if(do_after(user, 40 * I.toolspeed, target = src)) + if(!loc || anchored) + return + user.visible_message("[user] connects [src]!", "You connect [src]!") + anchored = 1 + pixel_x = 0 + pixel_y = 32 + return + if(istype(I, /obj/item/weapon/grab)) var/obj/item/weapon/grab/G = I if(!G.confirm()) @@ -159,6 +235,7 @@ to_chat(user, "You need a tighter grip!") + /obj/machinery/shower name = "shower" desc = "The HS-451. Installed in the 2550s by the Nanotrasen Hygiene Division." @@ -173,6 +250,24 @@ var/watertemp = "normal" //freezing, normal, or boiling var/mobpresent = 0 //true if there is a mob on the shower's loc, this is to ease process() +/obj/machinery/shower/New(turf/T, newdir = SOUTH, building = FALSE) + ..() + dir = newdir + if(building) + pixel_x = 0 + pixel_y = 0 + switch(newdir) + if(SOUTH) + pixel_y = 16 + if(NORTH) + pixel_y = -5 + layer = FLY_LAYER + +/obj/machinery/shower/Destroy() + if(mymist) + QDEL_NULL(mymist) + return ..() + //add heat controls? when emagged, you can freeze to death in it? /obj/effect/mist @@ -198,9 +293,9 @@ /obj/machinery/shower/attackby(obj/item/I as obj, mob/user as mob, params) if(I.type == /obj/item/device/analyzer) to_chat(user, "The water temperature seems to be [watertemp].") - if(istype(I, /obj/item/weapon/wrench)) + if(iswrench(I)) to_chat(user, "You begin to adjust the temperature valve with the [I].") - if(do_after(user, 50, target = src)) + if(do_after(user, 50 * I.toolspeed, target = src)) switch(watertemp) if("normal") watertemp = "freezing" @@ -209,33 +304,57 @@ if("boiling") watertemp = "normal" user.visible_message("[user] adjusts the shower with the [I].", "You adjust the shower with the [I].") + update_icon() //letsa update whenever we change the temperature, since the mist might need to change + if(iswelder(I)) + if(on) + to_chat(user, "Turn [src] off before you attempt to cut it loose.") + return + var/obj/item/weapon/weldingtool/WT = I + if(WT.isOn()) + user.visible_message("[user] begins to cut [src] loose.", "You begin to cut [src] loose.") + if(do_after(user, 40 * WT.toolspeed, target = src)) + if(!src || !WT.remove_fuel(0, user)) + return + if(on) //in case someone turned it back on while you were working, make sure we shut that all down + on = 0 + if(mymist) + qdel(mymist) + ismist = 0 + user.visible_message("[user] cuts [src] loose!", "You cut [src] loose!") + var/obj/item/mounted/shower/S = new /obj/item/mounted/shower(get_turf(user)) + transfer_prints_to(S, TRUE) + qdel(src) + else + to_chat(user, "[WT] must be on for this task.") if(on) I.water_act(100, convertHeat(), src) -/obj/machinery/shower/update_icon() //this is terribly unreadable, but basically it makes the shower mist up +/obj/machinery/shower/update_icon() //this makes the shower mist up or clear mist (depending on water temperature) overlays.Cut() //once it's been on for a while, in addition to handling the water overlay. - if(mymist) - qdel(mymist) - if(on) overlays += image('icons/obj/watercloset.dmi', src, "water", MOB_LAYER + 1, dir) + var/mist_time = 50 //5 seconds at normal temperature to build up mist if(watertemp == "freezing") + mist_time = 70 //7 seconds on freezing temperature to disperse existing mist + if(watertemp == "boiling") + mist_time = 20 //2 seconds on boiling temperature to build up mist + addtimer(src, "update_mist", mist_time) + else + addtimer(src, "update_mist", 250) //25 seconds for mist to disperse after being turned off + +/obj/machinery/shower/proc/update_mist() + if(on) + if(watertemp == "freezing") + if(mymist) + qdel(mymist) + ismist = 0 return - if(!ismist) - spawn(50) - if(src && on) - ismist = 1 - mymist = new /obj/effect/mist(loc) - else - ismist = 1 - mymist = new /obj/effect/mist(loc) - else if(ismist) ismist = 1 mymist = new /obj/effect/mist(loc) - spawn(250) - if(src && !on) - qdel(mymist) - ismist = 0 + else + if(mymist) + qdel(mymist) + ismist = 0 /obj/machinery/shower/Crossed(atom/movable/O) ..() @@ -351,13 +470,16 @@ qdel(E) /obj/machinery/shower/process() - if(!on || !mobpresent) return + if(!on || !mobpresent) + return for(var/mob/living/carbon/C in loc) + if(prob(33)) + wash(C) //re-applies water and re-cleans mob while they remain under the shower, 33% chance per process to avoid message spam/quick death check_heat(C) /obj/machinery/shower/proc/check_heat(mob/M as mob) - M.water_act(100, convertHeat(), src) //convenience - if(!on || watertemp == "normal") return + if(!on || watertemp == "normal") + return if(iscarbon(M)) var/mob/living/carbon/C = M @@ -390,6 +512,8 @@ desc = "A sink used for washing one's hands and face." anchored = 1 var/busy = 0 //Something's being washed at the moment + var/can_move = 1 //if the sink can be disconnected and moved + var/can_rotate = 1 //if the sink can be rotated to face alternate directions /obj/structure/sink/attack_hand(mob/user as mob) if(!user || !istype(user)) @@ -398,7 +522,9 @@ return if(!Adjacent(user)) return - + if(!anchored) + to_chat(user, "[src] isn't connected, wrench it into position first!") + return if(ishuman(user)) var/mob/living/carbon/human/H = user var/obj/item/organ/external/temp = H.bodyparts_by_name["r_hand"] @@ -415,7 +541,7 @@ var/washing_face = 0 if(selected_area in list("head", "mouth", "eyes")) washing_face = 1 - user.visible_message("[user] start washing their [washing_face ? "face" : "hands"]...", \ + user.visible_message("[user] starts washing their [washing_face ? "face" : "hands"]...", \ "You start washing your [washing_face ? "face" : "hands"]...") busy = 1 @@ -446,6 +572,57 @@ if(!(istype(O))) return + if(iswrench(O)) + var/obj/item/weapon/wrench/W = O + + var/choices = list() + if(anchored) + choices += "Wash" + if(can_move) + choices += "Disconnect" + else + choices += "Connect" + if(can_rotate) + choices += "Rotate" + + var/response = input(user, "What do you want to do?", "[src]") as null|anything in choices + if(!Adjacent(user) || !response) //moved away or cancelled + return + switch(response) + if("Wash") + busy = 1 + var/wateract = 0 + wateract = (W.wash(user, src)) + busy = 0 + if(wateract) + W.water_act(20,310.15,src) + if("Disconnect") + user.visible_message("[user] starts disconnecting [src].", "You begin disconnecting [src]...") + if(do_after(user, 40 * O.toolspeed, target = src)) + if(!loc || !anchored) + return + user.visible_message("[user] disconnects [src]!", "You disconnect [src]!") + anchored = 0 + update_icon() + if("Connect") + user.visible_message("[user] starts connecting [src].", "You begin connecting [src]...") + if(do_after(user, 40 * O.toolspeed, target = src)) + if(!loc || anchored) + return + user.visible_message("[user] connects [src]!", "You connect [src]!") + anchored = 1 + update_icon() + if("Rotate") + var/list/dir_choices = list("North" = NORTH, "East" = EAST, "South" = SOUTH, "West" = WEST) + var/selected = input(user, "Select a direction for the connector.", "Connector Direction") in dir_choices + dir = dir_choices[selected] + update_icon() //is this necessary? probably not + return + + if(!anchored) + to_chat(user, "[src] isn't connected, wrench it into position first!") + return + busy = 1 var/wateract = 0 wateract = (O.wash(user, src)) @@ -453,14 +630,42 @@ if(wateract) O.water_act(20,310.15,src) +/obj/structure/sink/update_icon() + ..() + layer = OBJ_LAYER + if(!anchored) + pixel_x = 0 + pixel_y = 0 + else + //the following code will probably want to be updated in the future to be less reliant on hardcoded offsets based on the can_move/can_rotate values + if(!can_move) //puddles + return + if(!can_rotate) //kitchen sinks + pixel_x = 0 + pixel_y = 28 + return + else //normal sinks + if(dir == NORTH || dir == SOUTH) + pixel_x = 0 + pixel_y = (dir == NORTH) ? -5 : 30 + if(dir == NORTH) + layer = FLY_LAYER + else + pixel_x = (dir == EAST) ? 12 : -12 + pixel_y = 0 + + /obj/structure/sink/kitchen name = "kitchen sink" icon_state = "sink_alt" + can_rotate = 0 /obj/structure/sink/puddle //splishy splashy ^_^ name = "puddle" icon_state = "puddle" + can_move = 0 + can_rotate = 0 /obj/structure/sink/puddle/attack_hand(mob/M as mob) icon_state = "puddle-splash" @@ -471,3 +676,77 @@ icon_state = "puddle-splash" ..() icon_state = "puddle" + + +////////////////////////////////// +// Bathroom Fixture Items // +////////////////////////////////// + + +/obj/item/mounted/shower + name = "shower fixture" + desc = "A self-adhering shower fixture. Simply stick to a wall, no plumber needed!" + icon = 'icons/obj/watercloset.dmi' + icon_state = "shower" + item_state = "buildpipe" + +/obj/item/mounted/shower/try_build(turf/on_wall, mob/user, proximity_flag) + //overriding this because we don't care about other items on the wall, but still need to do adjacent checks + if(!on_wall || !user) + return + if(proximity_flag != 1) //if we aren't next to the wall + return + if(!(get_dir(on_wall, user) in cardinal)) + to_chat(user, "You need to be standing next to a wall to place \the [src].") + return + return 1 + +/obj/item/mounted/shower/do_build(turf/on_wall, mob/user) + var/obj/machinery/shower/S = new /obj/machinery/shower(get_turf(user), get_dir(on_wall, user), 1) + transfer_prints_to(S, TRUE) + qdel(src) + + +/obj/item/weapon/bathroom_parts + name = "toilet in a box" + desc = "An entire toilet in a box, straight from Space Sweden. It has an unpronounceable name." + icon = 'icons/obj/storage.dmi' + icon_state = "largebox" + w_class = WEIGHT_CLASS_BULKY + var/result = /obj/structure/toilet + var/result_name = "toilet" + +/obj/item/weapon/bathroom_parts/urinal + name = "urinal in a box" + result = /obj/structure/urinal + result_name = "urinal" + +/obj/item/weapon/bathroom_parts/sink + name = "sink in a box" + result = /obj/structure/sink + result_name = "sink" + +/obj/item/weapon/bathroom_parts/New() + ..() + desc = "An entire [result_name] in a box, straight from Space Sweden. It has an [pick("unpronounceable", "overly accented", "entirely gibberish", "oddly normal-sounding")] name." + +/obj/item/weapon/bathroom_parts/attack_self(mob/user) + var/turf/T = get_turf(user) + if(!T) + to_chat(user, "You can't build that here!") + return + if(result in T.contents) + to_chat(user, "There's already \an [result_name] here.") + return + user.visible_message("[user] begins assembling a new [result_name].", "You begin assembling a new [result_name].") + if(do_after(user, 30, target = user)) + user.visible_message("[user] finishes building a new [result_name]!", "You finish building a new [result_name]!") + var/obj/structure/S = new result(T) + S.anchored = 0 + S.dir = user.dir + S.update_icon() + user.unEquip(src, 1) + qdel(src) + if(prob(50)) + new /obj/item/stack/sheet/cardboard(T) + diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index a5e4190d6ea..83de35ea82c 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -157,6 +157,7 @@ return if(!use_preloader && path == type) // Don't no-op if the map loader requires it to be reconstructed return src + set_light(0) var/old_opacity = opacity var/old_dynamic_lighting = dynamic_lighting var/old_affecting_lights = affecting_lights diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 4ddab9ccf2c..d05cc25a476 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1,4 +1,3 @@ - var/global/BSACooldown = 0 var/global/nologevent = 0 @@ -103,9 +102,14 @@ var/global/nologevent = 0 Narrate to | Subtle message "} + if(check_rights(R_EVENT, 0)) body += {" | Bless | Smite"} + if(isLivingSSD(M)) + if(!istype(M.loc, /obj/machinery/cryopod)) + body += {" | Cryo "} + if(M.client) if(!istype(M, /mob/new_player)) body += "

" diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 4c9194d1225..004cf77a990 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -79,6 +79,7 @@ var/list/admin_verbs_admin = list( /client/proc/reset_all_tcs, /*resets all telecomms scripts*/ /client/proc/toggle_mentor_chat, /client/proc/toggle_advanced_interaction, /*toggle admin ability to interact with not only machines, but also atoms such as buttons and doors*/ + /client/proc/list_ssds, ) var/list/admin_verbs_ban = list( /client/proc/unban_panel, @@ -346,10 +347,12 @@ var/list/admin_verbs_snpc = list( if(mob.invisibility == INVISIBILITY_OBSERVER) mob.invisibility = initial(mob.invisibility) to_chat(mob, "Invisimin off. Invisibility reset.") + mob.add_to_all_human_data_huds() //TODO: Make some kind of indication for the badmin that they are currently invisible else mob.invisibility = INVISIBILITY_OBSERVER to_chat(mob, "Invisimin on. You are now as invisible as a ghost.") + mob.remove_from_all_data_huds() /client/proc/player_panel() set name = "Player Panel" diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 862e223e264..a0d06ba346f 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1950,6 +1950,20 @@ if(logmsg) log_admin("[key_name(owner)] answered [key_name(M)]'s prayer with a smiting: [logmsg]") message_admins("[key_name_admin(owner)] answered [key_name_admin(M)]'s prayer with a smiting: [logmsg]") + else if(href_list["cryossd"]) + if(!check_rights(R_ADMIN)) + return + var/mob/living/carbon/human/H = locateUID(href_list["cryossd"]) + if(!istype(H)) + to_chat(usr, "This can only be used on instances of type /mob/living/carbon/human") + return + if(!isLivingSSD(H)) + to_chat(usr, "This can only be used on living, SSD players.") + return + var/success = cryo_ssd(H) + if(success) + log_admin("[key_name(usr)] sent [H.job] [H] to cryo.") + message_admins("[key_name_admin(usr)] sent [H.job] [H] to cryo.") else if(href_list["FaxReplyTemplate"]) if(!check_rights(R_ADMIN)) return diff --git a/code/modules/admin/verbs/pray.dm b/code/modules/admin/verbs/pray.dm index 4560c7affa9..8651d26f016 100644 --- a/code/modules/admin/verbs/pray.dm +++ b/code/modules/admin/verbs/pray.dm @@ -13,7 +13,22 @@ return var/image/cross = image('icons/obj/storage.dmi',"bible") - msg = "[bicon(cross)] PRAY: [key_name(src, 1)] (?) (PP) (VV) (SM) ([admin_jump_link(src)]) (CA) (SC) (BLESS) (SMITE): [msg]" + var/font_color = "purple" + var/prayer_type = "PRAYER" + var/deity + if(usr.job == "Chaplain") + if(ticker && ticker.Bible_deity_name) + deity = ticker.Bible_deity_name + cross = image('icons/obj/storage.dmi',"kingyellow") + font_color = "blue" + prayer_type = "CHAPLAIN PRAYER" + else if(iscultist(usr)) + cross = image('icons/obj/storage.dmi',"tome") + font_color = "red" + prayer_type = "CULTIST PRAYER" + deity = ticker.mode.cultdat.entity_name + + msg = "[bicon(cross)][prayer_type][deity ? " (to [deity])" : ""]:[key_name(src, 1)] (?) (PP) (VV) (SM) ([admin_jump_link(src)]) (CA) (SC) (BLESS) (SMITE): [msg]" for(var/client/X in admins) if(check_rights(R_EVENT,0,X.mob)) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index a989bac5772..83a006ac69f 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -882,6 +882,48 @@ Traitors and the like can also be revived with the previous role mostly intact. message_admins("[key_name_admin(usr)] blanked all telecomms scripts.") feedback_add_details("admin_verb","RAT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/client/proc/list_ssds() + set category = "Admin" + set name = "List SSDs" + set desc = "Lists SSD players" + + if(!check_rights(R_ADMIN)) + return + + var/msg = "SSD Report" + msg += "SSD Players:
" + msg += "" + var/mins_ssd + var/job_string + var/key_string + var/role_string + for(var/mob/living/carbon/human/H in living_mob_list) + if(!isLivingSSD(H)) + continue + mins_ssd = round((world.time - H.last_logout) / 600) + if(H.job) + job_string = H.job + else + job_string = "-" + key_string = H.key + if(job_string in command_positions) + job_string = "" + job_string + "" + role_string = "-" + if(H.mind) + if(H.mind.special_role) + role_string = "[H.mind.special_role]" + if(!H.key && H.mind.key) + key_string = H.mind.key + msg += "" + msg += "" + if(istype(H.loc, /obj/machinery/cryopod)) + msg += "" + else + msg += "" + msg += "" + msg += "
KeyReal NameJobMins SSDSpecial RoleAreaPPNCryo
[key_string][H.real_name][job_string][mins_ssd][role_string][get_area(H)]PPIn CryoCryo
" + src << browse(msg, "window=Player_ssd_check") + /client/proc/toggle_ert_calling() set category = "Event" set name = "Toggle ERT" diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index 7b48da8a9c8..a0a445f59be 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -819,13 +819,19 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts var/HTML = "" HTML += "
" - HTML += ShowDisabilityState(user,DISABILITY_FLAG_NEARSIGHTED,"Needs Glasses") + HTML += ShowDisabilityState(user,DISABILITY_FLAG_NEARSIGHTED,"Needs glasses") HTML += ShowDisabilityState(user,DISABILITY_FLAG_FAT,"Obese") HTML += ShowDisabilityState(user,DISABILITY_FLAG_EPILEPTIC,"Seizures") HTML += ShowDisabilityState(user,DISABILITY_FLAG_DEAF,"Deaf") HTML += ShowDisabilityState(user,DISABILITY_FLAG_BLIND,"Blind") HTML += ShowDisabilityState(user,DISABILITY_FLAG_COLOURBLIND,"Colourblind") HTML += ShowDisabilityState(user,DISABILITY_FLAG_MUTE,"Mute") + HTML += ShowDisabilityState(user,DISABILITY_FLAG_TOURETTES,"Tourettes syndrome") // this will / can not be abused. It also SEVERELY stuns. It's just for fun. + HTML += ShowDisabilityState(user,DISABILITY_FLAG_NERVOUS,"Stutter") + HTML += ShowDisabilityState(user,DISABILITY_FLAG_SWEDISH,"Swedish accent") + HTML += ShowDisabilityState(user,DISABILITY_FLAG_LISP,"Lisp") + HTML += ShowDisabilityState(user,DISABILITY_FLAG_DIZZY,"Dizziness") + HTML += ShowDisabilityState(user,DISABILITY_FLAG_SCRAMBLED,"Can't speak properly") HTML += {" @@ -2174,6 +2180,27 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts if(disabilities & DISABILITY_FLAG_MUTE) character.dna.SetSEState(MUTEBLOCK,1,1) + if(disabilities & DISABILITY_FLAG_TOURETTES) + character.dna.SetSEState(TWITCHBLOCK,1,1) + + if(disabilities & DISABILITY_FLAG_NERVOUS) + character.dna.SetSEState(NERVOUSBLOCK,1,1) + + if(disabilities & DISABILITY_FLAG_SWEDISH) + character.dna.SetSEState(SWEDEBLOCK,1,1) + + if(disabilities & DISABILITY_FLAG_SCRAMBLED) + character.dna.SetSEState(SCRAMBLEBLOCK,1,1) + + if(disabilities & DISABILITY_FLAG_LISP) + character.dna.SetSEState(LISPBLOCK,1,1) + + if(disabilities & DISABILITY_FLAG_DIZZY) + character.dna.SetSEState(DIZZYBLOCK,1,1) + + if(disabilities & DISABILITY_FLAG_SCRAMBLED) + character.dna.SetSEState(SCRAMBLEBLOCK,1,1) + S.handle_dna(character) if(character.dna.dirtySE) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 5483ca65072..43962a1d5fd 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -321,7 +321,7 @@ /obj/item/clothing/head/helmet/space/hardsuit/syndi/attack_self(mob/user) on = !on if(on) - to_chat(user, "You switch your helmet to travel mode. It will allow you to stand in zero pressure environments, at the cost of speed and armor.") + to_chat(user, "You switch your helmet to travel mode. It will allow you to stand in zero pressure environments, at the cost of speed.") name = initial(name) desc = initial(desc) set_light(brightness_on) @@ -365,7 +365,7 @@ /obj/item/clothing/suit/space/hardsuit/syndi/attack_self(mob/user) on = !on if(on) - to_chat(user, "You switch your hardsuit to travel mode. It will allow you to stand in zero pressure environments, at the cost of speed and armor.") + to_chat(user, "You switch your hardsuit to travel mode. It will allow you to stand in zero pressure environments, at the cost of speed.") name = "blood-red hardsuit" desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in travel mode. Property of Gorlex Marauders." slowdown = 1 diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 4539fa6de79..ee4592f971e 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -276,7 +276,39 @@ to_chat(target, "You comb your tail with the [src].") used = 1 -/obj/item/device/fluff/desolate_baton_kit //DesolateG: Michael steampunk_witch +/obj/item/device/fluff/desolate_coat_kit //DesolateG: Michael Smith + name = "armored jacket conversion kit" + desc = "Flaps of dark fabric, probably used to somehow modify some sort of an armored garment. Won't help with protection, though." + icon_state = "modkit" + w_class = WEIGHT_CLASS_SMALL + +/obj/item/device/fluff/desolate_coat_kit/afterattack(atom/target, mob/user, proximity) + if(!proximity || !ishuman(user) || user.incapacitated()) + return + + if(!istype(target, /obj/item/clothing/suit/armor/hos)) + to_chat(user, "You can't modify [target]!") + return + + to_chat(user, "You modify the appearance of [target].") + var/obj/item/clothing/suit/armor/jacket = target + jacket.icon_state = "desolate_coat_open" + jacket.icon = 'icons/obj/custom_items.dmi' + jacket.ignore_suitadjust = 0 + jacket.suit_adjusted = 1 + var/has_action = FALSE + for(var/datum/action/A in jacket.actions) + if(istype(A, /datum/action/item_action/openclose)) + has_action = TRUE + if(!has_action) + new /datum/action/item_action/openclose(jacket)//this actually works + jacket.adjust_flavour = "unbutton" + jacket.species_fit = null + jacket.sprite_sheets = null + user.update_inv_wear_suit() + qdel(src) + +/obj/item/device/fluff/desolate_baton_kit //DesolateG: Michael Smith name = "stun baton converstion kit" desc = "Some sci-fi looking parts for a stun baton." icon = 'icons/obj/custom_items.dmi' @@ -647,6 +679,43 @@ species_fit = null sprite_sheets = null +/obj/item/clothing/suit/jacket/miljacket/patch // sniper_fairy : P.A.T.C.H. + name = "custom purple military jacket" + desc = "A canvas jacket styled after classical American military garb. Feels sturdy, yet comfortable. This one has a medical patch on it." + icon = 'icons/obj/custom_items.dmi' + icon_state = "shazjacket_purple_open" + ignore_suitadjust = 0 + suit_adjusted = 1 + actions_types = list(/datum/action/item_action/openclose) + adjust_flavour = "unbutton" + +/obj/item/clothing/suit/jacket/miljacket/patch/attack_self(mob/user) + var/list/options = list() + options["purple"] = "shazjacket_purple" + options["yellow"] = "shazjacket_yellow" + options["blue"] = "shazjacket_blue" + options["brown"] = "shazjacket_brown" + options["orange"] = "shazjacket_orange" + options["grey"] = "shazjacket_grey" + options["black"] ="shazjacket_black" + options["red"] ="shazjacket_red" + options["navy"] ="shazjacket_navy" + options["white"] ="shazjacket_white" + + var/choice = input(user, "What color do you wish your jacket to be?", "Change color") as null|anything in options + + if(choice && !user.stat && in_range(user, src)) + if(suit_adjusted) + icon_state = "[options[choice]]_open" + else + icon_state = options[choice] + to_chat(user, "You turn your coat inside out and now it's [choice]!") + name = "custom [choice] military jacket" + user.update_inv_wear_suit() + return 1 + + . = ..() + /obj/item/clothing/suit/fluff/dusty_jacket //ComputerlessCitizen: Screech name = "Dusty Jacket" desc = "A worn leather jacket. Some burn holes have been patched." @@ -730,6 +799,17 @@ /obj/item/clothing/head/hood/fluff/linda //Epic_Charger: Linda Clark icon_state = "greenhood" +/obj/item/clothing/suit/hooded/hoodie/hylo //Hylocereus: Sam Aria + name = "worn assymetrical hoodie" + desc = "A soft, cozy longline hoodie. It looks old and worn, but well cared for. There's no label, but a series of dates and names is penned on a scrap of fabric sewn on the inside of the left side of the chest - 'Sam Aria' is scrawled atop them all, next to the words 'Please Remember'." + icon = 'icons/obj/custom_items.dmi' + icon_state = "sam_hoodie" + hoodtype = /obj/item/clothing/head/hood/hylo + +/obj/item/clothing/head/hood/hylo + icon = 'icons/obj/custom_items.dmi' + icon_state = "sam_hood" + /obj/item/clothing/suit/hooded/fluff/bone //Doru7: Jack Bone name = "skeleton suit" desc = "A spooky full-body suit! This one doesn't glow in the dark." @@ -1085,3 +1165,13 @@ item_state = "fethasnecklace" item_color = "fethasnecklace" slot_flags = SLOT_MASK | SLOT_TIE + +/obj/item/weapon/bedsheet/fluff/hugosheet //HugoLuman: Dan Martinez + name = "Cosmic space blankie" + desc = "Made from the dreams of space children everywhere." + icon = 'icons/obj/custom_items.dmi' + lefthand_file = 'icons/mob/inhands/fluff_lefthand.dmi' + righthand_file = 'icons/mob/inhands/fluff_righthand.dmi' + icon_state = "sheetcosmos" + item_state = "sheetcosmos" + item_color = "sheetcosmos" diff --git a/code/modules/food_and_drinks/drinks/drinks/shotglass.dm b/code/modules/food_and_drinks/drinks/drinks/shotglass.dm index 42781cd1e57..42ecff1e0b5 100644 --- a/code/modules/food_and_drinks/drinks/drinks/shotglass.dm +++ b/code/modules/food_and_drinks/drinks/drinks/shotglass.dm @@ -5,10 +5,16 @@ amount_per_transfer_from_this = 15 volume = 15 materials = list(MAT_GLASS=100) + var/light_intensity = 2 + light_color = LIGHT_COLOR_LIGHTBLUE /obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/on_reagent_change() - overlays.Cut() + if(!isShotFlammable() && burn_state == ON_FIRE) + extinguish() + update_icon() +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/update_icon() + overlays.Cut() if(reagents.total_volume) var/image/filling = image('icons/obj/reagentfillings.dmi', src, "[icon_state]1") @@ -20,9 +26,77 @@ filling.icon_state = "[icon_state]5" if(80 to INFINITY) filling.icon_state = "[icon_state]12" - filling.icon += mix_color_from_reagents(reagents.reagent_list) overlays += filling name = "shot glass of " + reagents.get_master_reagent_name() //No matter what, the glass will tell you the reagent's name. Might be too abusable in the future. + if(burn_state == ON_FIRE) + overlays += "shotglass_fire" + name = "flaming [name]" else name = "shot glass" + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/proc/clumsilyDrink(mob/living/carbon/human/user) //Clowns beware + if(burn_state != ON_FIRE) + return + user.visible_message("[user] pours [src] all over themself!", "You pour [src] all over yourself!", "You hear a 'whoompf' and a sizzle.") + extinguish(TRUE) + reagents.reaction(user, TOUCH) + reagents.clear_reagents() + user.IgniteMob() + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/proc/isShotFlammable() + var/datum/reagent/R = reagents.get_master_reagent() + if(istype(R, /datum/reagent/consumable/ethanol)) + var/datum/reagent/consumable/ethanol/A = R + if(A.volume >= 5 && A.alcohol_perc >= 0.35) //Only an approximation to if something's flammable but it will do + return TRUE + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/fire_act(global_overlay = FALSE) + if(!isShotFlammable() || burn_state == ON_FIRE) //You can't light a shot that's not flammable! + return + ..() + set_light(light_intensity, null, light_color) + visible_message("[src] begins to burn with a blue hue!") + update_icon() + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/extinguish(silent = FALSE) + ..() + set_light(0) + if(!silent) + visible_message("The dancing flame on [src] dies out.") + update_icon() + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/burn() //Let's override fire deleting the reagents inside the shot + return + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/attack(mob/living/carbon/human/user) + if((CLUMSY in user.mutations) && prob(50) && burn_state == ON_FIRE) + clumsilyDrink(user) + else + ..() + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/attackby(obj/item/W) + ..() + if(is_hot(W)) + fire_act() + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/attack_hand(mob/user, pickupfireoverride = TRUE) + ..() + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/attack_self(mob/living/carbon/human/user) + ..() + if(burn_state != ON_FIRE) + return + if((CLUMSY in user.mutations) && prob(50)) + clumsilyDrink(user) + else + user.visible_message("[user] places their hand over [src] to put it out!", "You use your hand to extinguish [src]!") + extinguish() + +/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass/MouseDrop(mob/living/carbon/human/user) + if(!ishuman(user)) + return + if((CLUMSY in user.mutations) && prob(50) && burn_state == ON_FIRE) + clumsilyDrink(user) + else + ..() diff --git a/code/modules/food_and_drinks/food/snacks.dm b/code/modules/food_and_drinks/food/snacks.dm index d22d4eb2c93..394bce27908 100644 --- a/code/modules/food_and_drinks/food/snacks.dm +++ b/code/modules/food_and_drinks/food/snacks.dm @@ -1914,6 +1914,12 @@ icon_state = "watermelonslice" filling_color = "#FF3867" +/obj/item/weapon/reagent_containers/food/snacks/pineappleslice + name = "Pineapple Slices" + desc = "Rings of pineapple." + icon_state = "pineappleslice" + filling_color = "#e5b437" + /obj/item/weapon/reagent_containers/food/snacks/sliceable/applecake name = "Apple Cake" desc = "A cake centered with Apple." @@ -2037,6 +2043,20 @@ icon_state = "vegetablepizzaslice" filling_color = "#BAA14C" +/obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/hawaiianpizza + name = "Hawaiian Pizza" + desc = "Love it or hate it, this pizza divides opinions. Complete with juicy pineapple." + icon_state = "hawaiianpizza" //NEEDED + slice_path = /obj/item/weapon/reagent_containers/food/snacks/hawaiianpizzaslice + slices_num = 6 + list_reagents = list("protein" = 15, "tomatojuice" = 6, "plantmatter" = 20, "pineapplejuice" = 6, "vitamin" = 5) + +/obj/item/weapon/reagent_containers/food/snacks/hawaiianpizzaslice + name = "Hawaiian pizza slice" + desc = "A slice of polarising pizza." + icon_state = "hawaiianpizzaslice" + filling_color = "#e5b437" + /obj/item/pizzabox name = "pizza box" desc = "A box suited for pizzas." @@ -2210,6 +2230,10 @@ pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/meatpizza(src) boxtag = "Meatlover's Supreme" +/obj/item/pizzabox/hawaiian/New() + pizza = new /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/hawaiianpizza(src) + boxtag = "Hawaiian Feast" + ////////////////////////////////FOOD ADDITIONS//////////////////////////////////////////// /obj/item/weapon/reagent_containers/food/snacks/wrap diff --git a/code/modules/food_and_drinks/kitchen_machinery/juicer.dm b/code/modules/food_and_drinks/kitchen_machinery/juicer.dm index edf714d0f21..e3a22e29b2b 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/juicer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/juicer.dm @@ -27,6 +27,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/berries = "berryjuice", /obj/item/weapon/reagent_containers/food/snacks/grown/pumpkin = "pumpkinjuice", /obj/item/weapon/reagent_containers/food/snacks/grown/blumpkin = "blumpkinjuice", + /obj/item/weapon/reagent_containers/food/snacks/grown/pineapple = "pineapplejuice" ) /obj/machinery/juicer/New() @@ -182,3 +183,4 @@ new/obj/item/weapon/reagent_containers/food/snacks/grown/berries(src) new/obj/item/weapon/reagent_containers/food/snacks/grown/banana(src) new/obj/item/weapon/reagent_containers/food/snacks/grown/grapes(src) + new/obj/item/weapon/reagent_containers/food/snacks/grown/pineapple(src) diff --git a/code/modules/food_and_drinks/recipes/recipes_oven.dm b/code/modules/food_and_drinks/recipes/recipes_oven.dm index 473641c4cc8..a1b684d9343 100644 --- a/code/modules/food_and_drinks/recipes/recipes_oven.dm +++ b/code/modules/food_and_drinks/recipes/recipes_oven.dm @@ -253,6 +253,17 @@ ) result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/vegetablepizza +/datum/recipe/oven/hawaiianpizza + items = list( + /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, + /obj/item/weapon/reagent_containers/food/snacks/grown/tomato, + /obj/item/weapon/reagent_containers/food/snacks/cheesewedge, + /obj/item/weapon/reagent_containers/food/snacks/pineappleslice, + /obj/item/weapon/reagent_containers/food/snacks/pineappleslice, + /obj/item/weapon/reagent_containers/food/snacks/meat, + ) + result = /obj/item/weapon/reagent_containers/food/snacks/sliceable/pizza/hawaiianpizza + /datum/recipe/oven/amanita_pie items = list( /obj/item/weapon/reagent_containers/food/snacks/sliceable/flatdough, diff --git a/code/modules/hydroponics/grown/pineapple.dm b/code/modules/hydroponics/grown/pineapple.dm new file mode 100644 index 00000000000..ed8009ac079 --- /dev/null +++ b/code/modules/hydroponics/grown/pineapple.dm @@ -0,0 +1,27 @@ +/obj/item/seeds/pineapple + name = "pack of pineapple seeds" + desc = "These seeds grow into pineapple plants." + icon_state = "seed-pineapple" //NEEDED + species = "pineapple" + plantname = "Pineapple Plant" + product = /obj/item/weapon/reagent_containers/food/snacks/grown/pineapple + maturation = 6 + lifespan = 55 + endurance = 35 + growthstages = 4 + growing_icon = 'icons/obj/hydroponics/growing_fruits.dmi' + icon_grow = "pineapple-grow" //NEEDED + icon_dead = "pineapple-dead" //NEEDED + genes = list(/datum/plant_gene/trait/repeated_harvest) + reagents_add = list("water" = 0.1, "vitamin" = 0.03, "sugar" = 0.02, "plantmatter" = 0.2) + +/obj/item/weapon/reagent_containers/food/snacks/grown/pineapple + seed = /obj/item/seeds/pineapple + name = "pineapple" + desc = "A soft sweet interior surrounded by a spiky skin." + slice_path = /obj/item/weapon/reagent_containers/food/snacks/pineappleslice + slices_num = 4 + icon_state = "pineapple" + filling_color = "#e5b437" + w_class = WEIGHT_CLASS_NORMAL + bitesize_mod = 3 \ No newline at end of file diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index a1e7e775e23..fbf14349a53 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -61,6 +61,11 @@ SetCollectBehavior() +/mob/living/simple_animal/hostile/mining_drone/emp_act(severity) + adjustHealth(100 / severity) + to_chat(src, "NOTICE: EMP detected, systems damaged!") + visible_message("[src] crackles and buzzes violently!") + /mob/living/simple_animal/hostile/mining_drone/sentience_act() AIStatus = AI_OFF check_friendly_fire = 0 diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 7083b04ee35..80bd78b05df 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -1,6 +1,6 @@ /mob/living/carbon/human/emote(var/act,var/m_type=1,var/message = null,var/force) - if(stat == DEAD) + if((stat == DEAD) || (status_flags & FAKEDEATH)) return // No screaming bodies var/param = null @@ -324,8 +324,14 @@ G.affecting.forceMove(oldloc) message = "[src] flips over [G.affecting]!" else - message = "[src] does a flip!" - SpinAnimation(5,1) + if(prob(5)) + message = "[src] attempts a flip and crashes to the floor!" + SpinAnimation(5,1) + sleep(3) + Weaken(2) + else + message = "[src] does a flip!" + SpinAnimation(5,1) if("aflap", "aflaps") if(!restrained()) diff --git a/code/modules/mob/living/logout.dm b/code/modules/mob/living/logout.dm index 6235aecf2c4..910a72aeca3 100644 --- a/code/modules/mob/living/logout.dm +++ b/code/modules/mob/living/logout.dm @@ -9,3 +9,4 @@ if(mind.active) Sleeping(2) player_logged = 1 + last_logout = world.time diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 4d5ea6b983d..e72b484e1e1 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -133,6 +133,7 @@ /obj/item/weapon/robot_module/medical/New() ..() modules += new /obj/item/device/healthanalyzer/advanced(src) + modules += new /obj/item/device/robotanalyzer(src) modules += new /obj/item/device/reagent_scanner/adv(src) modules += new /obj/item/weapon/borg_defib(src) modules += new /obj/item/roller_holder(src) @@ -255,9 +256,7 @@ modules += new /obj/item/weapon/reagent_containers/food/condiment/enzyme(src) modules += new /obj/item/weapon/pen(src) modules += new /obj/item/weapon/razor(src) - modules += new /obj/item/device/instrument/violin(src) - modules += new /obj/item/device/instrument/guitar(src) - modules += new /obj/item/device/instrument/eguitar(src) + modules += new /obj/item/device/instrument/piano_synth(src) var/obj/item/weapon/rsf/M = new /obj/item/weapon/rsf(src) M.matter = 30 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index e275d855328..5031ec9c061 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -188,6 +188,8 @@ var/last_movement = -100 // Last world.time the mob actually moved of its own accord. + var/last_logout = 0 + var/resize = 1 //Badminnery resize var/datum/vision_override/vision_type = null //Vision override datum. diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 19c72238c3a..c043af9817f 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -65,14 +65,6 @@ return /mob/new_player/Stat() - ..() - if((!ticker) || ticker.current_state == GAME_STATE_PREGAME) - statpanel("Lobby") // First tab during pre-game. - - statpanel("Status") - if(client.statpanel == "Status" && ticker) - if(ticker.current_state != GAME_STATE_PREGAME) - stat(null, "Station Time: [worldtime2text()]") statpanel("Lobby") if(client.statpanel=="Lobby" && ticker) if(ticker.hide_mode) @@ -101,6 +93,14 @@ if(player.ready) totalPlayersReady++ + ..() + + statpanel("Status") + if(client.statpanel == "Status" && ticker) + if(ticker.current_state != GAME_STATE_PREGAME) + stat(null, "Station Time: [worldtime2text()]") + + /mob/new_player/Topic(href, href_list[]) if(!client) return 0 diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 3991bc4bf60..121f47a9e9e 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -279,9 +279,9 @@ addtofield(text2num(id), t) // He wants to edit a field, let him. else info += t // Oh, he wants to edit to the end of the file, let him. - updateinfolinks() populatefields() + updateinfolinks() i.on_write(src,usr) diff --git a/code/modules/projectiles/ammunition/magazines.dm b/code/modules/projectiles/ammunition/magazines.dm index e16ce690c45..2b736f8b1a4 100644 --- a/code/modules/projectiles/ammunition/magazines.dm +++ b/code/modules/projectiles/ammunition/magazines.dm @@ -420,6 +420,31 @@ /obj/item/ammo_box/magazine/toy/pistol/riot ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot +/obj/item/ammo_box/magazine/toy/enforcer + name = "Enforcer Foam magazine" + icon_state = "enforcer" + max_ammo = 8 + multiple_sprites = 1 + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot + +/obj/item/ammo_box/magazine/toy/enforcer/update_icon() + ..() + overlays.Cut() + + var/ammo = ammo_count() + if(ammo && is_riot()) + overlays += image('icons/obj/ammo.dmi', icon_state = "enforcer-rd") + else if(ammo) + overlays += image('icons/obj/ammo.dmi', icon_state = "enforcer-bd") + +/obj/item/ammo_box/magazine/toy/enforcer/proc/is_riot()//if the topmost bullet is a riot dart + var/ammo = ammo_count() + if(!ammo) + return 0 + if(istype(contents[contents.len], /obj/item/ammo_casing/caseless/foam_dart/riot)) + return 1 + return 0 + /obj/item/ammo_box/magazine/toy/smgm45 name = "donksoft SMG magazine" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot diff --git a/code/modules/projectiles/guns/projectile/pistol.dm b/code/modules/projectiles/guns/projectile/pistol.dm index 3876e067f70..58fd2c0eba8 100644 --- a/code/modules/projectiles/guns/projectile/pistol.dm +++ b/code/modules/projectiles/guns/projectile/pistol.dm @@ -32,6 +32,46 @@ magazine = new /obj/item/ammo_box/magazine/m10mm/empty(src) ..() +/obj/item/weapon/gun/projectile/automatic/pistol/enforcer + name = "Enforcer .45" + desc = "A pistol of modern design." + icon_state = "enforcer_grey" + force = 10 + mag_type = /obj/item/ammo_box/magazine/m45/enforcer45 + can_suppress = TRUE + unique_reskin = TRUE + can_flashlight = TRUE + +/obj/item/weapon/gun/projectile/automatic/pistol/enforcer/update_icon() + ..() + if(current_skin) + icon_state = "[current_skin][chambered ? "" : "-e"]" + else + icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" + overlays.Cut() + if(suppressed) + overlays += image(icon = icon, icon_state = "enforcer_supp", pixel_x = 4) + if(gun_light) + var/iconF = "Enforcer_light" + if(gun_light.on) + iconF = "Enforcer_light-on" + overlays += image(icon = icon, icon_state = iconF, pixel_x = 0) + +/obj/item/weapon/gun/projectile/automatic/pistol/enforcer/ui_action_click() + toggle_gunlight() + +/obj/item/weapon/gun/projectile/automatic/pistol/enforcer/New() + ..() + options["Grey slide"] = "enforcer_grey" + options["Red slide"] = "enforcer_red" + options["Green slide"] = "enforcer_green" + options["Tan slide"] = "enforcer_tan" + options["Black slide"] = "enforcer_black" + options["Green Handle"] = "enforcer_greengrip" + options["Tan Handle"] = "enforcer_tangrip" + options["Red Handle"] = "enforcer_redgrip" + options["Cancel"] = null + /obj/item/weapon/gun/projectile/automatic/pistol/deagle name = "desert eagle" desc = "A robust .50 AE handgun." @@ -40,14 +80,6 @@ mag_type = /obj/item/ammo_box/magazine/m50 can_suppress = 0 -/obj/item/weapon/gun/projectile/automatic/pistol/enforcer45 - name = "Enforcer .45" - desc = "A pistol of modern design." - icon_state = "enforcer" - force = 10 - mag_type = /obj/item/ammo_box/magazine/m45/enforcer45 - can_suppress = 0 - /obj/item/weapon/gun/projectile/automatic/pistol/deagle/update_icon() ..() icon_state = "[initial(icon_state)][magazine ? "" : "-e"]" diff --git a/code/modules/projectiles/guns/projectile/toy.dm b/code/modules/projectiles/guns/projectile/toy.dm index 8a191f06b97..893844678ee 100644 --- a/code/modules/projectiles/guns/projectile/toy.dm +++ b/code/modules/projectiles/guns/projectile/toy.dm @@ -41,6 +41,25 @@ magazine = new /obj/item/ammo_box/magazine/toy/pistol/riot(src) ..() +/obj/item/weapon/gun/projectile/automatic/toy/pistol/enforcer + name = "Enforcer trainer" + desc = "A foam version of the Enforcer meant to be used for training new caddets who can't be trusted with rubber bullets." + icon_state = "enforcer" + mag_type = /obj/item/ammo_box/magazine/toy/enforcer + can_flashlight = TRUE + +/obj/item/weapon/gun/projectile/automatic/toy/pistol/enforcer/update_icon() + ..() + overlays.Cut() + if(gun_light) + var/iconF = "Enforcer_light" + if(gun_light.on) + iconF = "Enforcer_light-on" + overlays += image(icon = 'icons/obj/guns/projectile.dmi', icon_state = iconF, pixel_x = 0) + +/obj/item/weapon/gun/projectile/automatic/toy/pistol/enforcer/ui_action_click() + toggle_gunlight() + /obj/item/weapon/gun/projectile/shotgun/toy name = "foam force shotgun" desc = "A toy shotgun with wood furniture and a four-shell capacity underneath. Ages 8 and up." diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 839ce9c0a8d..c83a626486a 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -75,6 +75,7 @@ /obj/item/weapon/reagent_containers/food/snacks/grown/apple = list("applejuice" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/grapes = list("grapejuice" = 0), /obj/item/weapon/reagent_containers/food/snacks/grown/grapes/green = list("grapejuice" = 0), + /obj/item/weapon/reagent_containers/food/snacks/grown/pineapple = list("pineapplejuice" = 0) ) var/list/dried_items = list( diff --git a/code/modules/reagents/chemistry/reagents/alcohol.dm b/code/modules/reagents/chemistry/reagents/alcohol.dm index 2ba73d2a127..63c8275afea 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol.dm @@ -424,6 +424,18 @@ drink_desc = "Does... does this mean that Arthur and Ford are on the station? Oh joy." taste_message = "the number fourty two" +/datum/reagent/consumable/ethanol/flaming_homer + name = "Flaming Moe" + id = "flamingmoe" + description = "This appears to be a mixture of various alcohols blended with prescription medicine. It is lightly toasted..." + reagent_state = LIQUID + color = "#58447f" //rgb: 88, 66, 127 + alcohol_perc = 0.5 + drink_icon = "flamingmoeglass" + drink_name = "Flaming Moe" + drink_desc = "Happiness is just a Flaming Moe away!" + taste_message = "caramelised booze and sweet, salty medicine" + /datum/reagent/consumable/ethanol/brave_bull name = "Brave Bull" id = "bravebull" diff --git a/code/modules/reagents/chemistry/reagents/drinks.dm b/code/modules/reagents/chemistry/reagents/drinks.dm index 9a524aa377a..cf73e0a5087 100644 --- a/code/modules/reagents/chemistry/reagents/drinks.dm +++ b/code/modules/reagents/chemistry/reagents/drinks.dm @@ -23,6 +23,16 @@ drink_desc = "Are you sure this is tomato juice?" taste_message = "tomato juice" +/datum/reagent/consumable/drink/pineapplejuice + name = "Pineapple Juice" + id = "pineapplejuice" + description = "Pineapples juiced into a liquid. Sweet and sugary." + color = "#e5b437" + drink_icon = "glass_orange" + drink_name = "Glass of pineapple juice" + drink_desc = "A bright drink, sweet and sugary." + taste_message = "pineapple juice" + /datum/reagent/consumable/drink/tomatojuice/on_mob_life(mob/living/M) if(M.getFireLoss() && prob(20)) M.adjustFireLoss(-1) diff --git a/code/modules/reagents/chemistry/recipes/drinks.dm b/code/modules/reagents/chemistry/recipes/drinks.dm index b8d31e55e1c..c348db060ff 100644 --- a/code/modules/reagents/chemistry/recipes/drinks.dm +++ b/code/modules/reagents/chemistry/recipes/drinks.dm @@ -224,6 +224,16 @@ result_amount = 5 mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' +/datum/chemical_reaction/flaming_homer + name = "Flaming Moe" + id = "flamingmoe" + result = "flamingmoe" + required_reagents = list("vodka" = 1, "gin" = 1, "cognac" = 1, "tequila" = 1, "salglu_solution" = 1) //Close enough + min_temp = 374 //Fire makes it good! + result_amount = 5 + mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' + mix_message = "The concoction bursts into flame!" + /datum/chemical_reaction/brave_bull name = "Brave Bull" id = "bravebull" diff --git a/code/modules/reagents/chemistry/recipes/food.dm b/code/modules/reagents/chemistry/recipes/food.dm index 02453d44e31..44047f70049 100644 --- a/code/modules/reagents/chemistry/recipes/food.dm +++ b/code/modules/reagents/chemistry/recipes/food.dm @@ -197,4 +197,24 @@ required_reagents = list("beff" = 1, "saltpetre" = 1, "synthflesh" = 1) result_amount = 2 mix_message = "The beff and the synthflesh combine to form a smoky red log." - mix_sound = 'sound/effects/blobattack.ogg' \ No newline at end of file + mix_sound = 'sound/effects/blobattack.ogg' + +/datum/chemical_reaction/enzyme + name = "Universal enzyme" + id = "enzyme" + result = "enzyme" + required_reagents = list("vomit" = 1, "sugar" = 1) + result_amount = 2 + min_temp = 750 + mix_message = "The mixture emits a horrible smell as you heat up the contents. Luckily, enzymes don't stink." + mix_sound = 'sound/goonstation/misc/fuse.ogg' + +/datum/chemical_reaction/enzyme + name = "Universal enzyme" + id = "enzyme" + result = "enzyme" + required_reagents = list("green_vomit" = 1, "sugar" = 1) + result_amount = 2 + min_temp = 750 + mix_message = "The mixture emits a horrible smell as you heat up the contents. Luckily, enzymes don't stink." + mix_sound = 'sound/goonstation/misc/fuse.ogg' diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 6a97d71ed68..7b090fc4f77 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -1276,6 +1276,7 @@ anchored = 1 var/active = 0 var/turf/target // this will be where the output objects are 'thrown' to. + var/obj/structure/disposalpipe/trunk/linkedtrunk var/mode = 0 New() @@ -1285,9 +1286,9 @@ target = get_ranged_target_turf(src, dir, 10) - var/obj/structure/disposalpipe/trunk/trunk = locate() in src.loc - if(trunk) - trunk.linked = src // link the pipe trunk to self + linkedtrunk = locate() in src.loc + if(linkedtrunk) + linkedtrunk.linked = src // expel the contents of the holder object, then delete it // called when the holder exits the outlet @@ -1346,7 +1347,10 @@ to_chat(user, "You need more welding fuel to complete this task.") return - +/obj/structure/disposaloutlet/Destroy() + if(linkedtrunk) + linkedtrunk.linked = null + return ..() // called when movable is expelled from a disposal pipe or outlet // by default does nothing, override for special behaviour diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index 99d4fa8fe22..111e43dce32 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -855,4 +855,13 @@ build_type = AUTOLATHE materials = list(MAT_GLASS = 750, MAT_METAL = 250) build_path = /obj/item/weapon/circuitboard/vendor - category = list("initial", "Electronics") \ No newline at end of file + category = list("initial", "Electronics") + +/datum/design/mirror + name = "mirror" + desc = "A mountable mirror." + id = "mirror" + build_type = AUTOLATHE + materials = list(MAT_GLASS = 2500) //1.25 glass sheets, broken mirrors will return a shard (1 sheet) + build_path = /obj/item/mounted/mirror + category = list("initial", "Miscellaneous") \ No newline at end of file diff --git a/code/modules/store/items.dm b/code/modules/store/items.dm index c80d3c33a94..11b4f169253 100644 --- a/code/modules/store/items.dm +++ b/code/modules/store/items.dm @@ -93,6 +93,12 @@ typepath = /obj/item/toy/katana cost = 500 +/datum/storeitem/piano_synth + name = "piano synthesizer" + desc = "An advanced electronic synthesizer that can be used as various instruments." + typepath = /obj/item/device/instrument/piano_synth + cost = 1000 + /datum/storeitem/violin name = "space violin" desc = "A wooden musical instrument with four strings and a bow. \"The devil went down to space, he was looking for an assistant to grief.\"" diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index f5b96ca6bd0..cae6a3b1a8b 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -426,6 +426,8 @@ Note that amputating the affected organ does in fact remove the infection from t fracture() /obj/item/organ/external/proc/check_for_internal_bleeding(damage) + if(NO_BLOOD in owner.species.species_traits) + return var/local_damage = brute_dam + damage if(damage > 15 && local_damage > 30 && prob(damage) && !(status & ORGAN_ROBOT)) internal_bleeding = TRUE diff --git a/html/changelog.html b/html/changelog.html index 53bf8a03a7f..a96ba9290cb 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -56,12 +56,105 @@ -->
+

05 September 2017

+

Kyep updated:

+
    +
  • Adds alternative military shuttle, NT Navy troop transport.
  • +
+ +

04 September 2017

+

Kyep updated:

+
    +
  • Admins under the effects of 'invisimin' no longer show up on sec huds, medical huds, etc.
  • +
+ +

03 September 2017

+

Birdtalon updated:

+
    +
  • Flip emote has a small chance of a failure and 100% chance of embarrassing yourself.
  • +
+

Citinited updated:

+
    +
  • You can now deconstruct the indestructible stool in the old bar's back room.
  • +
  • Security and bar maintenance airlocks are now decoupled.
  • +
  • The air vent at the fore of AI satellite now starts turned on.
  • +
  • Engineering equipment now only has one air vent, not three.
  • +
  • Added a missing bit of plating underneath the engineering shuttle's window.
  • +
  • Added a missing scrubbers pipe in Central Primary.
  • +
  • The camera and light fixture in the prisoner transfer centre are now wall-mounted instead of being attached to the blast doors.
  • +
  • Adds the Flaming Moe cocktail.
  • +
  • Shot glasses can now be set alight using something hot.
  • +
+ +

02 September 2017

+

Landerlow updated:

+
    +
  • Adds a recipe to create enzymes to cook with.
  • +
+ +

01 September 2017

+

Birdtalon updated:

+
    +
  • Fixed small bug with wall lockers not respecting distance.
  • +
+ +

28 August 2017

+

Birdtalon updated:

+
    +
  • Replaces civilian door remote in the Head of Personnel locker with a brand new remote with additional access to better suit the Head of Personnel's responsibilities.
  • +
  • Nanotrasen Mining Bots are no longer safe from EMPs.
  • +
  • Syndicate bee-case sound now only plays locally when opened.
  • +
  • You can open wall lockers with control click.
  • +
+

Birdtalon & Hylocereus updated:

+
    +
  • Adds pineapples which can be grown in hydroponics, juiced or sliced and made into hawaiian pizza.
  • +
  • Adds hawaiian pizza to the pizza crate.
  • +
+

Fethas updated:

+
    +
  • The cultist dagger has had its special removed, it still cuases small bleed and retains its embed chance.
  • +
  • Prayers now dsiplay the diety set by chaplains (if any) to admins in prayers, or eldergod if a cultist. Prayers are purple for normies, Red for cultist and blue for chaplains
  • +
+

Fox McCloud updated:

+
    +
  • IPCs can now be dissected by adbudctors
  • +
+

Fox Mccloud updated:

+
    +
  • Adds an accordian, glockenspiel, harmonica, recorder, saxaphone, trombone, xylophone, bikehorn, and piano synthesizer
  • +
  • pick up a big band supply pack of instruments at cargo for 50 supply points
  • +
+

Jovaniph updated:

+
    +
  • Holodeck Energy Swords sound was change to simulate being attacked by a real energy sword.
  • +
+

Landerlow updated:

+
    +
  • Adds six additional roundstart disabilities to choose from
  • +
+

matt81093 updated:

+
    +
  • robot analyzer to medical module cyborgs for IPC diagnosing
  • +
+ +

24 August 2017

+

Birdtalon updated:

+
    +
  • Cultist structures can now be destroyed using melee and or projectiles
  • +
+

Fox McCloud updated:

+
    +
  • Fixes Diona, Plasmamen, and other races having internal bleeding
  • +
+

16 August 2017

Citinited updated:

  • Adds the plasmaman flag; credit to Shadeykins for the original sprite! Buy it at the merch store and show your superiority over other, less flammable, species!
  • All flags should now have in-hand sprites.
  • Burning a flag while it is in your hand will now update your mob's sprite.
  • +
  • Fixes another issue with disposals sending things to nullspace.

Fethas updated:

    @@ -70,6 +163,16 @@
  • Swarmers can now consume swarmer shells for a refund.
  • swarmer lights are cyan.
+

Fox McCloud updated:

+
    +
  • Cluwning is far more difficult to remove
  • +
  • Cluwne mask cannot be melted with acid
  • +
  • Cluwne suit has no sensors
  • +
+

Kyep updated:

+
    +
  • Admins now have a 'List SSDs' verb to list SSD players, and the ability to move them to cryo.
  • +

15 August 2017

Birdtalon updated:

diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 59a0615137b..df392575fe4 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -5402,8 +5402,80 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. species! - rscadd: All flags should now have in-hand sprites. - tweak: Burning a flag while it is in your hand will now update your mob's sprite. + - bugfix: Fixes another issue with disposals sending things to nullspace. Fethas: - tweak: Swarmers can now deconstruct simply by clicking, ctrl click to teleport. - tweak: you can now deactivate depowered swarmers with a screwdriver. - tweak: Swarmers can now consume swarmer shells for a refund. - tweak: swarmer lights are cyan. + Fox McCloud: + - tweak: Cluwning is far more difficult to remove + - tweak: Cluwne mask cannot be melted with acid + - tweak: Cluwne suit has no sensors + Kyep: + - rscadd: Admins now have a 'List SSDs' verb to list SSD players, and the ability + to move them to cryo. +2017-08-24: + Birdtalon: + - rscadd: Cultist structures can now be destroyed using melee and or projectiles + Fox McCloud: + - bugfix: Fixes Diona, Plasmamen, and other races having internal bleeding +2017-08-28: + Birdtalon: + - tweak: Replaces civilian door remote in the Head of Personnel locker with a brand + new remote with additional access to better suit the Head of Personnel's responsibilities. + - tweak: Nanotrasen Mining Bots are no longer safe from EMPs. + - tweak: Syndicate bee-case sound now only plays locally when opened. + - rscadd: You can open wall lockers with control click. + Birdtalon & Hylocereus: + - rscadd: Adds pineapples which can be grown in hydroponics, juiced or sliced and + made into hawaiian pizza. + - tweak: Adds hawaiian pizza to the pizza crate. + Fethas: + - tweak: The cultist dagger has had its special removed, it still cuases small bleed + and retains its embed chance. + - tweak: Prayers now dsiplay the diety set by chaplains (if any) to admins in prayers, + or eldergod if a cultist. Prayers are purple for normies, Red for cultist and + blue for chaplains + Fox McCloud: + - rscadd: IPCs can now be dissected by adbudctors + Fox Mccloud: + - rscadd: Adds an accordian, glockenspiel, harmonica, recorder, saxaphone, trombone, + xylophone, bikehorn, and piano synthesizer + - rscadd: pick up a big band supply pack of instruments at cargo for 50 supply points + Jovaniph: + - tweak: Holodeck Energy Swords sound was change to simulate being attacked by a + real energy sword. + Landerlow: + - rscadd: Adds six additional roundstart disabilities to choose from + matt81093: + - rscadd: robot analyzer to medical module cyborgs for IPC diagnosing +2017-09-01: + Birdtalon: + - bugfix: Fixed small bug with wall lockers not respecting distance. +2017-09-02: + Landerlow: + - rscadd: Adds a recipe to create enzymes to cook with. +2017-09-03: + Birdtalon: + - tweak: Flip emote has a small chance of a failure and 100% chance of embarrassing + yourself. + Citinited: + - bugfix: You can now deconstruct the indestructible stool in the old bar's back + room. + - bugfix: Security and bar maintenance airlocks are now decoupled. + - tweak: The air vent at the fore of AI satellite now starts turned on. + - tweak: Engineering equipment now only has one air vent, not three. + - bugfix: Added a missing bit of plating underneath the engineering shuttle's window. + - bugfix: Added a missing scrubbers pipe in Central Primary. + - tweak: The camera and light fixture in the prisoner transfer centre are now wall-mounted + instead of being attached to the blast doors. + - rscadd: Adds the Flaming Moe cocktail. + - rscadd: Shot glasses can now be set alight using something hot. +2017-09-04: + Kyep: + - bugfix: Admins under the effects of 'invisimin' no longer show up on sec huds, + medical huds, etc. +2017-09-05: + Kyep: + - rscadd: Adds alternative military shuttle, NT Navy troop transport. diff --git a/html/changelogs/AutoChangeLog-pr-7763.yml b/html/changelogs/AutoChangeLog-pr-7763.yml deleted file mode 100644 index d916f2b3e04..00000000000 --- a/html/changelogs/AutoChangeLog-pr-7763.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "Fox McCloud" -delete-after: True -changes: - - tweak: "Cluwning is far more difficult to remove" - - tweak: "Cluwne mask cannot be melted with acid" - - tweak: "Cluwne suit has no sensors" diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index 8214e814f7f..1cf943490d8 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index e2971a7c39c..f78b0cdd72e 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/inhands/equipment/instruments_lefthand.dmi b/icons/mob/inhands/equipment/instruments_lefthand.dmi new file mode 100644 index 00000000000..197cd61c6c4 Binary files /dev/null and b/icons/mob/inhands/equipment/instruments_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/instruments_righthand.dmi b/icons/mob/inhands/equipment/instruments_righthand.dmi new file mode 100644 index 00000000000..bcda1b18b7f Binary files /dev/null and b/icons/mob/inhands/equipment/instruments_righthand.dmi differ diff --git a/icons/mob/inhands/fluff_lefthand.dmi b/icons/mob/inhands/fluff_lefthand.dmi index 417ca1bb107..a98e287404b 100644 Binary files a/icons/mob/inhands/fluff_lefthand.dmi and b/icons/mob/inhands/fluff_lefthand.dmi differ diff --git a/icons/mob/inhands/fluff_righthand.dmi b/icons/mob/inhands/fluff_righthand.dmi index 6d4f3a2c76b..25fa1186a69 100644 Binary files a/icons/mob/inhands/fluff_righthand.dmi and b/icons/mob/inhands/fluff_righthand.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index d525b6dc4b8..c398a552667 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index e6e8230f25e..21e2e6c881b 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 89e3eb94136..dea74b81df1 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index 57807bee181..2561b88e6be 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/custom_items.dmi b/icons/obj/custom_items.dmi index e12b268a8f2..cda504411b4 100644 Binary files a/icons/obj/custom_items.dmi and b/icons/obj/custom_items.dmi differ diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 4008e17b3cf..8c75c1bc317 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index 2fe44fcddd1..3395b112947 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index fdc23ad6da8..2f50b165b1a 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/guns/toy.dmi b/icons/obj/guns/toy.dmi index c832bb3670a..a0f2a539c54 100644 Binary files a/icons/obj/guns/toy.dmi and b/icons/obj/guns/toy.dmi differ diff --git a/icons/obj/hydroponics/growing_fruits.dmi b/icons/obj/hydroponics/growing_fruits.dmi index ac8adc5a069..8259c77f570 100644 Binary files a/icons/obj/hydroponics/growing_fruits.dmi and b/icons/obj/hydroponics/growing_fruits.dmi differ diff --git a/icons/obj/hydroponics/harvest.dmi b/icons/obj/hydroponics/harvest.dmi index bd596597624..53033eb8f48 100644 Binary files a/icons/obj/hydroponics/harvest.dmi and b/icons/obj/hydroponics/harvest.dmi differ diff --git a/icons/obj/hydroponics/seeds.dmi b/icons/obj/hydroponics/seeds.dmi index a84ed3dd730..a2415a71a8a 100644 Binary files a/icons/obj/hydroponics/seeds.dmi and b/icons/obj/hydroponics/seeds.dmi differ diff --git a/icons/obj/musician.dmi b/icons/obj/musician.dmi index c57114abf63..21078c58969 100644 Binary files a/icons/obj/musician.dmi and b/icons/obj/musician.dmi differ diff --git a/icons/obj/watercloset.dmi b/icons/obj/watercloset.dmi index 61ea7ad3aac..4b00c72866f 100644 Binary files a/icons/obj/watercloset.dmi and b/icons/obj/watercloset.dmi differ diff --git a/paradise.dme b/paradise.dme index 34d3370e9e8..1625f852953 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1402,6 +1402,7 @@ #include "code\modules\hydroponics\grown\nymph.dm" #include "code\modules\hydroponics\grown\onion.dm" #include "code\modules\hydroponics\grown\peanut.dm" +#include "code\modules\hydroponics\grown\pineapple.dm" #include "code\modules\hydroponics\grown\potato.dm" #include "code\modules\hydroponics\grown\pumpkin.dm" #include "code\modules\hydroponics\grown\random.dm" diff --git a/sound/instruments/accordion/Ab2.mid b/sound/instruments/accordion/Ab2.mid new file mode 100644 index 00000000000..0be99493a6c Binary files /dev/null and b/sound/instruments/accordion/Ab2.mid differ diff --git a/sound/instruments/accordion/Ab3.mid b/sound/instruments/accordion/Ab3.mid new file mode 100644 index 00000000000..df3fbb658b2 Binary files /dev/null and b/sound/instruments/accordion/Ab3.mid differ diff --git a/sound/instruments/accordion/Ab4.mid b/sound/instruments/accordion/Ab4.mid new file mode 100644 index 00000000000..81cc7dd887c Binary files /dev/null and b/sound/instruments/accordion/Ab4.mid differ diff --git a/sound/instruments/accordion/Ab5.mid b/sound/instruments/accordion/Ab5.mid new file mode 100644 index 00000000000..8a6f9b63a4c Binary files /dev/null and b/sound/instruments/accordion/Ab5.mid differ diff --git a/sound/instruments/accordion/Ab6.mid b/sound/instruments/accordion/Ab6.mid new file mode 100644 index 00000000000..c636071299e Binary files /dev/null and b/sound/instruments/accordion/Ab6.mid differ diff --git a/sound/instruments/accordion/An2.mid b/sound/instruments/accordion/An2.mid new file mode 100644 index 00000000000..fcae8a3be76 Binary files /dev/null and b/sound/instruments/accordion/An2.mid differ diff --git a/sound/instruments/accordion/An3.mid b/sound/instruments/accordion/An3.mid new file mode 100644 index 00000000000..0eaea1a1fd7 Binary files /dev/null and b/sound/instruments/accordion/An3.mid differ diff --git a/sound/instruments/accordion/An4.mid b/sound/instruments/accordion/An4.mid new file mode 100644 index 00000000000..2ae28df7a3a Binary files /dev/null and b/sound/instruments/accordion/An4.mid differ diff --git a/sound/instruments/accordion/An5.mid b/sound/instruments/accordion/An5.mid new file mode 100644 index 00000000000..c955b7f2d93 Binary files /dev/null and b/sound/instruments/accordion/An5.mid differ diff --git a/sound/instruments/accordion/An6.mid b/sound/instruments/accordion/An6.mid new file mode 100644 index 00000000000..76c44f3bb37 Binary files /dev/null and b/sound/instruments/accordion/An6.mid differ diff --git a/sound/instruments/accordion/Bb2.mid b/sound/instruments/accordion/Bb2.mid new file mode 100644 index 00000000000..8af7ec2a6c5 Binary files /dev/null and b/sound/instruments/accordion/Bb2.mid differ diff --git a/sound/instruments/accordion/Bb3.mid b/sound/instruments/accordion/Bb3.mid new file mode 100644 index 00000000000..2fdaae5d9de Binary files /dev/null and b/sound/instruments/accordion/Bb3.mid differ diff --git a/sound/instruments/accordion/Bb4.mid b/sound/instruments/accordion/Bb4.mid new file mode 100644 index 00000000000..b360ccbc9b7 Binary files /dev/null and b/sound/instruments/accordion/Bb4.mid differ diff --git a/sound/instruments/accordion/Bb5.mid b/sound/instruments/accordion/Bb5.mid new file mode 100644 index 00000000000..d1ed0340d5f Binary files /dev/null and b/sound/instruments/accordion/Bb5.mid differ diff --git a/sound/instruments/accordion/Bb6.mid b/sound/instruments/accordion/Bb6.mid new file mode 100644 index 00000000000..45973b3eef2 Binary files /dev/null and b/sound/instruments/accordion/Bb6.mid differ diff --git a/sound/instruments/accordion/Bn2.mid b/sound/instruments/accordion/Bn2.mid new file mode 100644 index 00000000000..b2dec87c97a Binary files /dev/null and b/sound/instruments/accordion/Bn2.mid differ diff --git a/sound/instruments/accordion/Bn3.mid b/sound/instruments/accordion/Bn3.mid new file mode 100644 index 00000000000..19aa78aded9 Binary files /dev/null and b/sound/instruments/accordion/Bn3.mid differ diff --git a/sound/instruments/accordion/Bn4.mid b/sound/instruments/accordion/Bn4.mid new file mode 100644 index 00000000000..1caba6169c5 Binary files /dev/null and b/sound/instruments/accordion/Bn4.mid differ diff --git a/sound/instruments/accordion/Bn5.mid b/sound/instruments/accordion/Bn5.mid new file mode 100644 index 00000000000..4a41cbbd746 Binary files /dev/null and b/sound/instruments/accordion/Bn5.mid differ diff --git a/sound/instruments/accordion/Bn6.mid b/sound/instruments/accordion/Bn6.mid new file mode 100644 index 00000000000..7d267c4b5ab Binary files /dev/null and b/sound/instruments/accordion/Bn6.mid differ diff --git a/sound/instruments/accordion/Cn2.mid b/sound/instruments/accordion/Cn2.mid new file mode 100644 index 00000000000..dfc8a56b9b0 Binary files /dev/null and b/sound/instruments/accordion/Cn2.mid differ diff --git a/sound/instruments/accordion/Cn3.mid b/sound/instruments/accordion/Cn3.mid new file mode 100644 index 00000000000..494b4114e2f Binary files /dev/null and b/sound/instruments/accordion/Cn3.mid differ diff --git a/sound/instruments/accordion/Cn4.mid b/sound/instruments/accordion/Cn4.mid new file mode 100644 index 00000000000..2ac47a442dc Binary files /dev/null and b/sound/instruments/accordion/Cn4.mid differ diff --git a/sound/instruments/accordion/Cn5.mid b/sound/instruments/accordion/Cn5.mid new file mode 100644 index 00000000000..636502e6295 Binary files /dev/null and b/sound/instruments/accordion/Cn5.mid differ diff --git a/sound/instruments/accordion/Cn6.mid b/sound/instruments/accordion/Cn6.mid new file mode 100644 index 00000000000..57a674e7beb Binary files /dev/null and b/sound/instruments/accordion/Cn6.mid differ diff --git a/sound/instruments/accordion/Db2.mid b/sound/instruments/accordion/Db2.mid new file mode 100644 index 00000000000..602e4523eea Binary files /dev/null and b/sound/instruments/accordion/Db2.mid differ diff --git a/sound/instruments/accordion/Db3.mid b/sound/instruments/accordion/Db3.mid new file mode 100644 index 00000000000..4c32f61c8d0 Binary files /dev/null and b/sound/instruments/accordion/Db3.mid differ diff --git a/sound/instruments/accordion/Db4.mid b/sound/instruments/accordion/Db4.mid new file mode 100644 index 00000000000..99439056170 Binary files /dev/null and b/sound/instruments/accordion/Db4.mid differ diff --git a/sound/instruments/accordion/Db5.mid b/sound/instruments/accordion/Db5.mid new file mode 100644 index 00000000000..b4db898b292 Binary files /dev/null and b/sound/instruments/accordion/Db5.mid differ diff --git a/sound/instruments/accordion/Db6.mid b/sound/instruments/accordion/Db6.mid new file mode 100644 index 00000000000..b0cb648759c Binary files /dev/null and b/sound/instruments/accordion/Db6.mid differ diff --git a/sound/instruments/accordion/Dn2.mid b/sound/instruments/accordion/Dn2.mid new file mode 100644 index 00000000000..a6c30398b12 Binary files /dev/null and b/sound/instruments/accordion/Dn2.mid differ diff --git a/sound/instruments/accordion/Dn3.mid b/sound/instruments/accordion/Dn3.mid new file mode 100644 index 00000000000..b64354f8109 Binary files /dev/null and b/sound/instruments/accordion/Dn3.mid differ diff --git a/sound/instruments/accordion/Dn4.mid b/sound/instruments/accordion/Dn4.mid new file mode 100644 index 00000000000..670b2ec4d35 Binary files /dev/null and b/sound/instruments/accordion/Dn4.mid differ diff --git a/sound/instruments/accordion/Dn5.mid b/sound/instruments/accordion/Dn5.mid new file mode 100644 index 00000000000..aea9116fb80 Binary files /dev/null and b/sound/instruments/accordion/Dn5.mid differ diff --git a/sound/instruments/accordion/Dn6.mid b/sound/instruments/accordion/Dn6.mid new file mode 100644 index 00000000000..84c9e9359ca Binary files /dev/null and b/sound/instruments/accordion/Dn6.mid differ diff --git a/sound/instruments/accordion/Eb2.mid b/sound/instruments/accordion/Eb2.mid new file mode 100644 index 00000000000..9d274b6baf4 Binary files /dev/null and b/sound/instruments/accordion/Eb2.mid differ diff --git a/sound/instruments/accordion/Eb3.mid b/sound/instruments/accordion/Eb3.mid new file mode 100644 index 00000000000..9a32aee1238 Binary files /dev/null and b/sound/instruments/accordion/Eb3.mid differ diff --git a/sound/instruments/accordion/Eb4.mid b/sound/instruments/accordion/Eb4.mid new file mode 100644 index 00000000000..257ed5e9048 Binary files /dev/null and b/sound/instruments/accordion/Eb4.mid differ diff --git a/sound/instruments/accordion/Eb5.mid b/sound/instruments/accordion/Eb5.mid new file mode 100644 index 00000000000..de3edcd18cc Binary files /dev/null and b/sound/instruments/accordion/Eb5.mid differ diff --git a/sound/instruments/accordion/Eb6.mid b/sound/instruments/accordion/Eb6.mid new file mode 100644 index 00000000000..a43a976ffc8 Binary files /dev/null and b/sound/instruments/accordion/Eb6.mid differ diff --git a/sound/instruments/accordion/En2.mid b/sound/instruments/accordion/En2.mid new file mode 100644 index 00000000000..1ebe0e081d8 Binary files /dev/null and b/sound/instruments/accordion/En2.mid differ diff --git a/sound/instruments/accordion/En3.mid b/sound/instruments/accordion/En3.mid new file mode 100644 index 00000000000..b24ef90118f Binary files /dev/null and b/sound/instruments/accordion/En3.mid differ diff --git a/sound/instruments/accordion/En4.mid b/sound/instruments/accordion/En4.mid new file mode 100644 index 00000000000..df0b16b1968 Binary files /dev/null and b/sound/instruments/accordion/En4.mid differ diff --git a/sound/instruments/accordion/En5.mid b/sound/instruments/accordion/En5.mid new file mode 100644 index 00000000000..760c5e1f514 Binary files /dev/null and b/sound/instruments/accordion/En5.mid differ diff --git a/sound/instruments/accordion/En6.mid b/sound/instruments/accordion/En6.mid new file mode 100644 index 00000000000..92639712044 Binary files /dev/null and b/sound/instruments/accordion/En6.mid differ diff --git a/sound/instruments/accordion/Fn2.mid b/sound/instruments/accordion/Fn2.mid new file mode 100644 index 00000000000..31eb932cb7d Binary files /dev/null and b/sound/instruments/accordion/Fn2.mid differ diff --git a/sound/instruments/accordion/Fn3.mid b/sound/instruments/accordion/Fn3.mid new file mode 100644 index 00000000000..c1c2a4a197d Binary files /dev/null and b/sound/instruments/accordion/Fn3.mid differ diff --git a/sound/instruments/accordion/Fn4.mid b/sound/instruments/accordion/Fn4.mid new file mode 100644 index 00000000000..701c5ea46c5 Binary files /dev/null and b/sound/instruments/accordion/Fn4.mid differ diff --git a/sound/instruments/accordion/Fn5.mid b/sound/instruments/accordion/Fn5.mid new file mode 100644 index 00000000000..49d44d3de84 Binary files /dev/null and b/sound/instruments/accordion/Fn5.mid differ diff --git a/sound/instruments/accordion/Fn6.mid b/sound/instruments/accordion/Fn6.mid new file mode 100644 index 00000000000..acb192950bd Binary files /dev/null and b/sound/instruments/accordion/Fn6.mid differ diff --git a/sound/instruments/accordion/Gb2.mid b/sound/instruments/accordion/Gb2.mid new file mode 100644 index 00000000000..4625e867af0 Binary files /dev/null and b/sound/instruments/accordion/Gb2.mid differ diff --git a/sound/instruments/accordion/Gb3.mid b/sound/instruments/accordion/Gb3.mid new file mode 100644 index 00000000000..3ce6d7ba923 Binary files /dev/null and b/sound/instruments/accordion/Gb3.mid differ diff --git a/sound/instruments/accordion/Gb4.mid b/sound/instruments/accordion/Gb4.mid new file mode 100644 index 00000000000..1106ebf9039 Binary files /dev/null and b/sound/instruments/accordion/Gb4.mid differ diff --git a/sound/instruments/accordion/Gb5.mid b/sound/instruments/accordion/Gb5.mid new file mode 100644 index 00000000000..9ff54c7af0f Binary files /dev/null and b/sound/instruments/accordion/Gb5.mid differ diff --git a/sound/instruments/accordion/Gb6.mid b/sound/instruments/accordion/Gb6.mid new file mode 100644 index 00000000000..05b05b9870f Binary files /dev/null and b/sound/instruments/accordion/Gb6.mid differ diff --git a/sound/instruments/accordion/Gn2.mid b/sound/instruments/accordion/Gn2.mid new file mode 100644 index 00000000000..def96a74d17 Binary files /dev/null and b/sound/instruments/accordion/Gn2.mid differ diff --git a/sound/instruments/accordion/Gn3.mid b/sound/instruments/accordion/Gn3.mid new file mode 100644 index 00000000000..4c88ab05076 Binary files /dev/null and b/sound/instruments/accordion/Gn3.mid differ diff --git a/sound/instruments/accordion/Gn4.mid b/sound/instruments/accordion/Gn4.mid new file mode 100644 index 00000000000..b76b5a22c63 Binary files /dev/null and b/sound/instruments/accordion/Gn4.mid differ diff --git a/sound/instruments/accordion/Gn5.mid b/sound/instruments/accordion/Gn5.mid new file mode 100644 index 00000000000..0fb395db34c Binary files /dev/null and b/sound/instruments/accordion/Gn5.mid differ diff --git a/sound/instruments/accordion/Gn6.mid b/sound/instruments/accordion/Gn6.mid new file mode 100644 index 00000000000..b6117319ad5 Binary files /dev/null and b/sound/instruments/accordion/Gn6.mid differ diff --git a/sound/instruments/bikehorn/Ab2.ogg b/sound/instruments/bikehorn/Ab2.ogg new file mode 100644 index 00000000000..cc33da35f45 Binary files /dev/null and b/sound/instruments/bikehorn/Ab2.ogg differ diff --git a/sound/instruments/bikehorn/Ab3.ogg b/sound/instruments/bikehorn/Ab3.ogg new file mode 100644 index 00000000000..b046ed2e74a Binary files /dev/null and b/sound/instruments/bikehorn/Ab3.ogg differ diff --git a/sound/instruments/bikehorn/Ab4.ogg b/sound/instruments/bikehorn/Ab4.ogg new file mode 100644 index 00000000000..ba50324d626 Binary files /dev/null and b/sound/instruments/bikehorn/Ab4.ogg differ diff --git a/sound/instruments/bikehorn/An2.ogg b/sound/instruments/bikehorn/An2.ogg new file mode 100644 index 00000000000..ddfbe21910b Binary files /dev/null and b/sound/instruments/bikehorn/An2.ogg differ diff --git a/sound/instruments/bikehorn/An3.ogg b/sound/instruments/bikehorn/An3.ogg new file mode 100644 index 00000000000..c69e59a8da0 Binary files /dev/null and b/sound/instruments/bikehorn/An3.ogg differ diff --git a/sound/instruments/bikehorn/An4.ogg b/sound/instruments/bikehorn/An4.ogg new file mode 100644 index 00000000000..5b42fe4ae8f Binary files /dev/null and b/sound/instruments/bikehorn/An4.ogg differ diff --git a/sound/instruments/bikehorn/Bb2.ogg b/sound/instruments/bikehorn/Bb2.ogg new file mode 100644 index 00000000000..4a909bdfc53 Binary files /dev/null and b/sound/instruments/bikehorn/Bb2.ogg differ diff --git a/sound/instruments/bikehorn/Bb3.ogg b/sound/instruments/bikehorn/Bb3.ogg new file mode 100644 index 00000000000..2055984a86c Binary files /dev/null and b/sound/instruments/bikehorn/Bb3.ogg differ diff --git a/sound/instruments/bikehorn/Bb4.ogg b/sound/instruments/bikehorn/Bb4.ogg new file mode 100644 index 00000000000..73003e040c1 Binary files /dev/null and b/sound/instruments/bikehorn/Bb4.ogg differ diff --git a/sound/instruments/bikehorn/Bn2.ogg b/sound/instruments/bikehorn/Bn2.ogg new file mode 100644 index 00000000000..17532a6a7c9 Binary files /dev/null and b/sound/instruments/bikehorn/Bn2.ogg differ diff --git a/sound/instruments/bikehorn/Bn3.ogg b/sound/instruments/bikehorn/Bn3.ogg new file mode 100644 index 00000000000..ff36b917093 Binary files /dev/null and b/sound/instruments/bikehorn/Bn3.ogg differ diff --git a/sound/instruments/bikehorn/Bn4.ogg b/sound/instruments/bikehorn/Bn4.ogg new file mode 100644 index 00000000000..6750a931552 Binary files /dev/null and b/sound/instruments/bikehorn/Bn4.ogg differ diff --git a/sound/instruments/bikehorn/Cn3.ogg b/sound/instruments/bikehorn/Cn3.ogg new file mode 100644 index 00000000000..f75ddaa83f2 Binary files /dev/null and b/sound/instruments/bikehorn/Cn3.ogg differ diff --git a/sound/instruments/bikehorn/Cn4.ogg b/sound/instruments/bikehorn/Cn4.ogg new file mode 100644 index 00000000000..e5889f04bce Binary files /dev/null and b/sound/instruments/bikehorn/Cn4.ogg differ diff --git a/sound/instruments/bikehorn/Cn5.ogg b/sound/instruments/bikehorn/Cn5.ogg new file mode 100644 index 00000000000..328a6edf10e Binary files /dev/null and b/sound/instruments/bikehorn/Cn5.ogg differ diff --git a/sound/instruments/bikehorn/Db3.ogg b/sound/instruments/bikehorn/Db3.ogg new file mode 100644 index 00000000000..3c3e8d10305 Binary files /dev/null and b/sound/instruments/bikehorn/Db3.ogg differ diff --git a/sound/instruments/bikehorn/Db4.ogg b/sound/instruments/bikehorn/Db4.ogg new file mode 100644 index 00000000000..35dd47df475 Binary files /dev/null and b/sound/instruments/bikehorn/Db4.ogg differ diff --git a/sound/instruments/bikehorn/Db5.ogg b/sound/instruments/bikehorn/Db5.ogg new file mode 100644 index 00000000000..54c10b54c54 Binary files /dev/null and b/sound/instruments/bikehorn/Db5.ogg differ diff --git a/sound/instruments/bikehorn/Dn3.ogg b/sound/instruments/bikehorn/Dn3.ogg new file mode 100644 index 00000000000..33a863c8426 Binary files /dev/null and b/sound/instruments/bikehorn/Dn3.ogg differ diff --git a/sound/instruments/bikehorn/Dn4.ogg b/sound/instruments/bikehorn/Dn4.ogg new file mode 100644 index 00000000000..bd4c353e625 Binary files /dev/null and b/sound/instruments/bikehorn/Dn4.ogg differ diff --git a/sound/instruments/bikehorn/Dn5.ogg b/sound/instruments/bikehorn/Dn5.ogg new file mode 100644 index 00000000000..11b355b11cf Binary files /dev/null and b/sound/instruments/bikehorn/Dn5.ogg differ diff --git a/sound/instruments/bikehorn/Eb3.ogg b/sound/instruments/bikehorn/Eb3.ogg new file mode 100644 index 00000000000..367cc5456dc Binary files /dev/null and b/sound/instruments/bikehorn/Eb3.ogg differ diff --git a/sound/instruments/bikehorn/Eb4.ogg b/sound/instruments/bikehorn/Eb4.ogg new file mode 100644 index 00000000000..d7344da37c9 Binary files /dev/null and b/sound/instruments/bikehorn/Eb4.ogg differ diff --git a/sound/instruments/bikehorn/Eb5.ogg b/sound/instruments/bikehorn/Eb5.ogg new file mode 100644 index 00000000000..c94b994d199 Binary files /dev/null and b/sound/instruments/bikehorn/Eb5.ogg differ diff --git a/sound/instruments/bikehorn/En2.ogg b/sound/instruments/bikehorn/En2.ogg new file mode 100644 index 00000000000..6c2e4de57dd Binary files /dev/null and b/sound/instruments/bikehorn/En2.ogg differ diff --git a/sound/instruments/bikehorn/En3.ogg b/sound/instruments/bikehorn/En3.ogg new file mode 100644 index 00000000000..37b96d48518 Binary files /dev/null and b/sound/instruments/bikehorn/En3.ogg differ diff --git a/sound/instruments/bikehorn/En4.ogg b/sound/instruments/bikehorn/En4.ogg new file mode 100644 index 00000000000..2a23deabf57 Binary files /dev/null and b/sound/instruments/bikehorn/En4.ogg differ diff --git a/sound/instruments/bikehorn/Fn2.ogg b/sound/instruments/bikehorn/Fn2.ogg new file mode 100644 index 00000000000..3ddbcb90339 Binary files /dev/null and b/sound/instruments/bikehorn/Fn2.ogg differ diff --git a/sound/instruments/bikehorn/Fn3.ogg b/sound/instruments/bikehorn/Fn3.ogg new file mode 100644 index 00000000000..47f8625ea9b Binary files /dev/null and b/sound/instruments/bikehorn/Fn3.ogg differ diff --git a/sound/instruments/bikehorn/Fn4.ogg b/sound/instruments/bikehorn/Fn4.ogg new file mode 100644 index 00000000000..ee330535668 Binary files /dev/null and b/sound/instruments/bikehorn/Fn4.ogg differ diff --git a/sound/instruments/bikehorn/Gb2.ogg b/sound/instruments/bikehorn/Gb2.ogg new file mode 100644 index 00000000000..e78f9430104 Binary files /dev/null and b/sound/instruments/bikehorn/Gb2.ogg differ diff --git a/sound/instruments/bikehorn/Gb3.ogg b/sound/instruments/bikehorn/Gb3.ogg new file mode 100644 index 00000000000..be59509ee92 Binary files /dev/null and b/sound/instruments/bikehorn/Gb3.ogg differ diff --git a/sound/instruments/bikehorn/Gb4.ogg b/sound/instruments/bikehorn/Gb4.ogg new file mode 100644 index 00000000000..fac913aaff4 Binary files /dev/null and b/sound/instruments/bikehorn/Gb4.ogg differ diff --git a/sound/instruments/bikehorn/Gn2.ogg b/sound/instruments/bikehorn/Gn2.ogg new file mode 100644 index 00000000000..80997735440 Binary files /dev/null and b/sound/instruments/bikehorn/Gn2.ogg differ diff --git a/sound/instruments/bikehorn/Gn3.ogg b/sound/instruments/bikehorn/Gn3.ogg new file mode 100644 index 00000000000..1966dfd0e86 Binary files /dev/null and b/sound/instruments/bikehorn/Gn3.ogg differ diff --git a/sound/instruments/bikehorn/Gn4.ogg b/sound/instruments/bikehorn/Gn4.ogg new file mode 100644 index 00000000000..86f81bc1cbb Binary files /dev/null and b/sound/instruments/bikehorn/Gn4.ogg differ diff --git a/sound/eguitar/ab4.ogg b/sound/instruments/eguitar/ab4.ogg similarity index 100% rename from sound/eguitar/ab4.ogg rename to sound/instruments/eguitar/ab4.ogg diff --git a/sound/eguitar/ab5.ogg b/sound/instruments/eguitar/ab5.ogg similarity index 100% rename from sound/eguitar/ab5.ogg rename to sound/instruments/eguitar/ab5.ogg diff --git a/sound/eguitar/ab6.ogg b/sound/instruments/eguitar/ab6.ogg similarity index 100% rename from sound/eguitar/ab6.ogg rename to sound/instruments/eguitar/ab6.ogg diff --git a/sound/eguitar/an4.ogg b/sound/instruments/eguitar/an4.ogg similarity index 100% rename from sound/eguitar/an4.ogg rename to sound/instruments/eguitar/an4.ogg diff --git a/sound/eguitar/an5.ogg b/sound/instruments/eguitar/an5.ogg similarity index 100% rename from sound/eguitar/an5.ogg rename to sound/instruments/eguitar/an5.ogg diff --git a/sound/eguitar/an6.ogg b/sound/instruments/eguitar/an6.ogg similarity index 100% rename from sound/eguitar/an6.ogg rename to sound/instruments/eguitar/an6.ogg diff --git a/sound/eguitar/bb4.ogg b/sound/instruments/eguitar/bb4.ogg similarity index 100% rename from sound/eguitar/bb4.ogg rename to sound/instruments/eguitar/bb4.ogg diff --git a/sound/eguitar/bb5.ogg b/sound/instruments/eguitar/bb5.ogg similarity index 100% rename from sound/eguitar/bb5.ogg rename to sound/instruments/eguitar/bb5.ogg diff --git a/sound/eguitar/bb6.ogg b/sound/instruments/eguitar/bb6.ogg similarity index 100% rename from sound/eguitar/bb6.ogg rename to sound/instruments/eguitar/bb6.ogg diff --git a/sound/eguitar/bn4.ogg b/sound/instruments/eguitar/bn4.ogg similarity index 100% rename from sound/eguitar/bn4.ogg rename to sound/instruments/eguitar/bn4.ogg diff --git a/sound/eguitar/bn5.ogg b/sound/instruments/eguitar/bn5.ogg similarity index 100% rename from sound/eguitar/bn5.ogg rename to sound/instruments/eguitar/bn5.ogg diff --git a/sound/eguitar/bn6.ogg b/sound/instruments/eguitar/bn6.ogg similarity index 100% rename from sound/eguitar/bn6.ogg rename to sound/instruments/eguitar/bn6.ogg diff --git a/sound/eguitar/cn4.ogg b/sound/instruments/eguitar/cn4.ogg similarity index 100% rename from sound/eguitar/cn4.ogg rename to sound/instruments/eguitar/cn4.ogg diff --git a/sound/eguitar/cn5.ogg b/sound/instruments/eguitar/cn5.ogg similarity index 100% rename from sound/eguitar/cn5.ogg rename to sound/instruments/eguitar/cn5.ogg diff --git a/sound/eguitar/cn6.ogg b/sound/instruments/eguitar/cn6.ogg similarity index 100% rename from sound/eguitar/cn6.ogg rename to sound/instruments/eguitar/cn6.ogg diff --git a/sound/eguitar/cn7.ogg b/sound/instruments/eguitar/cn7.ogg similarity index 100% rename from sound/eguitar/cn7.ogg rename to sound/instruments/eguitar/cn7.ogg diff --git a/sound/eguitar/db4.ogg b/sound/instruments/eguitar/db4.ogg similarity index 100% rename from sound/eguitar/db4.ogg rename to sound/instruments/eguitar/db4.ogg diff --git a/sound/eguitar/db5.ogg b/sound/instruments/eguitar/db5.ogg similarity index 100% rename from sound/eguitar/db5.ogg rename to sound/instruments/eguitar/db5.ogg diff --git a/sound/eguitar/db6.ogg b/sound/instruments/eguitar/db6.ogg similarity index 100% rename from sound/eguitar/db6.ogg rename to sound/instruments/eguitar/db6.ogg diff --git a/sound/eguitar/dn4.ogg b/sound/instruments/eguitar/dn4.ogg similarity index 100% rename from sound/eguitar/dn4.ogg rename to sound/instruments/eguitar/dn4.ogg diff --git a/sound/eguitar/dn5.ogg b/sound/instruments/eguitar/dn5.ogg similarity index 100% rename from sound/eguitar/dn5.ogg rename to sound/instruments/eguitar/dn5.ogg diff --git a/sound/eguitar/dn6.ogg b/sound/instruments/eguitar/dn6.ogg similarity index 100% rename from sound/eguitar/dn6.ogg rename to sound/instruments/eguitar/dn6.ogg diff --git a/sound/eguitar/eb4.ogg b/sound/instruments/eguitar/eb4.ogg similarity index 100% rename from sound/eguitar/eb4.ogg rename to sound/instruments/eguitar/eb4.ogg diff --git a/sound/eguitar/eb5.ogg b/sound/instruments/eguitar/eb5.ogg similarity index 100% rename from sound/eguitar/eb5.ogg rename to sound/instruments/eguitar/eb5.ogg diff --git a/sound/eguitar/eb6.ogg b/sound/instruments/eguitar/eb6.ogg similarity index 100% rename from sound/eguitar/eb6.ogg rename to sound/instruments/eguitar/eb6.ogg diff --git a/sound/eguitar/en4.ogg b/sound/instruments/eguitar/en4.ogg similarity index 100% rename from sound/eguitar/en4.ogg rename to sound/instruments/eguitar/en4.ogg diff --git a/sound/eguitar/en5.ogg b/sound/instruments/eguitar/en5.ogg similarity index 100% rename from sound/eguitar/en5.ogg rename to sound/instruments/eguitar/en5.ogg diff --git a/sound/eguitar/en6.ogg b/sound/instruments/eguitar/en6.ogg similarity index 100% rename from sound/eguitar/en6.ogg rename to sound/instruments/eguitar/en6.ogg diff --git a/sound/eguitar/fn4.ogg b/sound/instruments/eguitar/fn4.ogg similarity index 100% rename from sound/eguitar/fn4.ogg rename to sound/instruments/eguitar/fn4.ogg diff --git a/sound/eguitar/fn5.ogg b/sound/instruments/eguitar/fn5.ogg similarity index 100% rename from sound/eguitar/fn5.ogg rename to sound/instruments/eguitar/fn5.ogg diff --git a/sound/eguitar/fn6.ogg b/sound/instruments/eguitar/fn6.ogg similarity index 100% rename from sound/eguitar/fn6.ogg rename to sound/instruments/eguitar/fn6.ogg diff --git a/sound/eguitar/gb4.ogg b/sound/instruments/eguitar/gb4.ogg similarity index 100% rename from sound/eguitar/gb4.ogg rename to sound/instruments/eguitar/gb4.ogg diff --git a/sound/eguitar/gb5.ogg b/sound/instruments/eguitar/gb5.ogg similarity index 100% rename from sound/eguitar/gb5.ogg rename to sound/instruments/eguitar/gb5.ogg diff --git a/sound/eguitar/gb6.ogg b/sound/instruments/eguitar/gb6.ogg similarity index 100% rename from sound/eguitar/gb6.ogg rename to sound/instruments/eguitar/gb6.ogg diff --git a/sound/eguitar/gn4.ogg b/sound/instruments/eguitar/gn4.ogg similarity index 100% rename from sound/eguitar/gn4.ogg rename to sound/instruments/eguitar/gn4.ogg diff --git a/sound/eguitar/gn5.ogg b/sound/instruments/eguitar/gn5.ogg similarity index 100% rename from sound/eguitar/gn5.ogg rename to sound/instruments/eguitar/gn5.ogg diff --git a/sound/eguitar/gn6.ogg b/sound/instruments/eguitar/gn6.ogg similarity index 100% rename from sound/eguitar/gn6.ogg rename to sound/instruments/eguitar/gn6.ogg diff --git a/sound/instruments/glockenspiel/Ab2.mid b/sound/instruments/glockenspiel/Ab2.mid new file mode 100644 index 00000000000..5686905944d Binary files /dev/null and b/sound/instruments/glockenspiel/Ab2.mid differ diff --git a/sound/instruments/glockenspiel/Ab3.mid b/sound/instruments/glockenspiel/Ab3.mid new file mode 100644 index 00000000000..284a1fff4e3 Binary files /dev/null and b/sound/instruments/glockenspiel/Ab3.mid differ diff --git a/sound/instruments/glockenspiel/Ab4.mid b/sound/instruments/glockenspiel/Ab4.mid new file mode 100644 index 00000000000..fa423da6d5b Binary files /dev/null and b/sound/instruments/glockenspiel/Ab4.mid differ diff --git a/sound/instruments/glockenspiel/Ab5.mid b/sound/instruments/glockenspiel/Ab5.mid new file mode 100644 index 00000000000..4f49969b557 Binary files /dev/null and b/sound/instruments/glockenspiel/Ab5.mid differ diff --git a/sound/instruments/glockenspiel/Ab6.mid b/sound/instruments/glockenspiel/Ab6.mid new file mode 100644 index 00000000000..a9900e304d4 Binary files /dev/null and b/sound/instruments/glockenspiel/Ab6.mid differ diff --git a/sound/instruments/glockenspiel/Ab7.mid b/sound/instruments/glockenspiel/Ab7.mid new file mode 100644 index 00000000000..46a3712bc08 Binary files /dev/null and b/sound/instruments/glockenspiel/Ab7.mid differ diff --git a/sound/instruments/glockenspiel/An2.mid b/sound/instruments/glockenspiel/An2.mid new file mode 100644 index 00000000000..225c8d8e677 Binary files /dev/null and b/sound/instruments/glockenspiel/An2.mid differ diff --git a/sound/instruments/glockenspiel/An3.mid b/sound/instruments/glockenspiel/An3.mid new file mode 100644 index 00000000000..4517bccccf1 Binary files /dev/null and b/sound/instruments/glockenspiel/An3.mid differ diff --git a/sound/instruments/glockenspiel/An4.mid b/sound/instruments/glockenspiel/An4.mid new file mode 100644 index 00000000000..b0bfafe19d7 Binary files /dev/null and b/sound/instruments/glockenspiel/An4.mid differ diff --git a/sound/instruments/glockenspiel/An5.mid b/sound/instruments/glockenspiel/An5.mid new file mode 100644 index 00000000000..203f31ec8bf Binary files /dev/null and b/sound/instruments/glockenspiel/An5.mid differ diff --git a/sound/instruments/glockenspiel/An6.mid b/sound/instruments/glockenspiel/An6.mid new file mode 100644 index 00000000000..b3c81f947e2 Binary files /dev/null and b/sound/instruments/glockenspiel/An6.mid differ diff --git a/sound/instruments/glockenspiel/An7.mid b/sound/instruments/glockenspiel/An7.mid new file mode 100644 index 00000000000..5f5d1f2482e Binary files /dev/null and b/sound/instruments/glockenspiel/An7.mid differ diff --git a/sound/instruments/glockenspiel/Bb2.mid b/sound/instruments/glockenspiel/Bb2.mid new file mode 100644 index 00000000000..c847d75145b Binary files /dev/null and b/sound/instruments/glockenspiel/Bb2.mid differ diff --git a/sound/instruments/glockenspiel/Bb3.mid b/sound/instruments/glockenspiel/Bb3.mid new file mode 100644 index 00000000000..1bb96dd7b03 Binary files /dev/null and b/sound/instruments/glockenspiel/Bb3.mid differ diff --git a/sound/instruments/glockenspiel/Bb4.mid b/sound/instruments/glockenspiel/Bb4.mid new file mode 100644 index 00000000000..d96c70754d0 Binary files /dev/null and b/sound/instruments/glockenspiel/Bb4.mid differ diff --git a/sound/instruments/glockenspiel/Bb5.mid b/sound/instruments/glockenspiel/Bb5.mid new file mode 100644 index 00000000000..b8ca38884b8 Binary files /dev/null and b/sound/instruments/glockenspiel/Bb5.mid differ diff --git a/sound/instruments/glockenspiel/Bb6.mid b/sound/instruments/glockenspiel/Bb6.mid new file mode 100644 index 00000000000..b82b11dbf20 Binary files /dev/null and b/sound/instruments/glockenspiel/Bb6.mid differ diff --git a/sound/instruments/glockenspiel/Bb7.mid b/sound/instruments/glockenspiel/Bb7.mid new file mode 100644 index 00000000000..dfcf25c6e3f Binary files /dev/null and b/sound/instruments/glockenspiel/Bb7.mid differ diff --git a/sound/instruments/glockenspiel/Bn2.mid b/sound/instruments/glockenspiel/Bn2.mid new file mode 100644 index 00000000000..c34397b078a Binary files /dev/null and b/sound/instruments/glockenspiel/Bn2.mid differ diff --git a/sound/instruments/glockenspiel/Bn3.mid b/sound/instruments/glockenspiel/Bn3.mid new file mode 100644 index 00000000000..6572ba58a69 Binary files /dev/null and b/sound/instruments/glockenspiel/Bn3.mid differ diff --git a/sound/instruments/glockenspiel/Bn4.mid b/sound/instruments/glockenspiel/Bn4.mid new file mode 100644 index 00000000000..28059d9d39a Binary files /dev/null and b/sound/instruments/glockenspiel/Bn4.mid differ diff --git a/sound/instruments/glockenspiel/Bn5.mid b/sound/instruments/glockenspiel/Bn5.mid new file mode 100644 index 00000000000..acad7d78a4e Binary files /dev/null and b/sound/instruments/glockenspiel/Bn5.mid differ diff --git a/sound/instruments/glockenspiel/Bn6.mid b/sound/instruments/glockenspiel/Bn6.mid new file mode 100644 index 00000000000..28cecdb28e0 Binary files /dev/null and b/sound/instruments/glockenspiel/Bn6.mid differ diff --git a/sound/instruments/glockenspiel/Bn7.mid b/sound/instruments/glockenspiel/Bn7.mid new file mode 100644 index 00000000000..879cdf81a13 Binary files /dev/null and b/sound/instruments/glockenspiel/Bn7.mid differ diff --git a/sound/instruments/glockenspiel/Cn2.mid b/sound/instruments/glockenspiel/Cn2.mid new file mode 100644 index 00000000000..c25e5eb02fa Binary files /dev/null and b/sound/instruments/glockenspiel/Cn2.mid differ diff --git a/sound/instruments/glockenspiel/Cn3.mid b/sound/instruments/glockenspiel/Cn3.mid new file mode 100644 index 00000000000..2e9dc47abd1 Binary files /dev/null and b/sound/instruments/glockenspiel/Cn3.mid differ diff --git a/sound/instruments/glockenspiel/Cn4.mid b/sound/instruments/glockenspiel/Cn4.mid new file mode 100644 index 00000000000..6ebe22570d5 Binary files /dev/null and b/sound/instruments/glockenspiel/Cn4.mid differ diff --git a/sound/instruments/glockenspiel/Cn5.mid b/sound/instruments/glockenspiel/Cn5.mid new file mode 100644 index 00000000000..383cf88b989 Binary files /dev/null and b/sound/instruments/glockenspiel/Cn5.mid differ diff --git a/sound/instruments/glockenspiel/Cn6.mid b/sound/instruments/glockenspiel/Cn6.mid new file mode 100644 index 00000000000..919ba370850 Binary files /dev/null and b/sound/instruments/glockenspiel/Cn6.mid differ diff --git a/sound/instruments/glockenspiel/Cn7.mid b/sound/instruments/glockenspiel/Cn7.mid new file mode 100644 index 00000000000..6d02413f0ae Binary files /dev/null and b/sound/instruments/glockenspiel/Cn7.mid differ diff --git a/sound/instruments/glockenspiel/Db2.mid b/sound/instruments/glockenspiel/Db2.mid new file mode 100644 index 00000000000..e6c4c968b5c Binary files /dev/null and b/sound/instruments/glockenspiel/Db2.mid differ diff --git a/sound/instruments/glockenspiel/Db3.mid b/sound/instruments/glockenspiel/Db3.mid new file mode 100644 index 00000000000..d793ec8c5f1 Binary files /dev/null and b/sound/instruments/glockenspiel/Db3.mid differ diff --git a/sound/instruments/glockenspiel/Db4.mid b/sound/instruments/glockenspiel/Db4.mid new file mode 100644 index 00000000000..1c042478500 Binary files /dev/null and b/sound/instruments/glockenspiel/Db4.mid differ diff --git a/sound/instruments/glockenspiel/Db5.mid b/sound/instruments/glockenspiel/Db5.mid new file mode 100644 index 00000000000..bd0a7712876 Binary files /dev/null and b/sound/instruments/glockenspiel/Db5.mid differ diff --git a/sound/instruments/glockenspiel/Db6.mid b/sound/instruments/glockenspiel/Db6.mid new file mode 100644 index 00000000000..2c25f018b23 Binary files /dev/null and b/sound/instruments/glockenspiel/Db6.mid differ diff --git a/sound/instruments/glockenspiel/Db7.mid b/sound/instruments/glockenspiel/Db7.mid new file mode 100644 index 00000000000..e42abd2921a Binary files /dev/null and b/sound/instruments/glockenspiel/Db7.mid differ diff --git a/sound/instruments/glockenspiel/Dn2.mid b/sound/instruments/glockenspiel/Dn2.mid new file mode 100644 index 00000000000..8b82df85769 Binary files /dev/null and b/sound/instruments/glockenspiel/Dn2.mid differ diff --git a/sound/instruments/glockenspiel/Dn3.mid b/sound/instruments/glockenspiel/Dn3.mid new file mode 100644 index 00000000000..c367cdf2799 Binary files /dev/null and b/sound/instruments/glockenspiel/Dn3.mid differ diff --git a/sound/instruments/glockenspiel/Dn4.mid b/sound/instruments/glockenspiel/Dn4.mid new file mode 100644 index 00000000000..98af4007fe3 Binary files /dev/null and b/sound/instruments/glockenspiel/Dn4.mid differ diff --git a/sound/instruments/glockenspiel/Dn5.mid b/sound/instruments/glockenspiel/Dn5.mid new file mode 100644 index 00000000000..e51591d8879 Binary files /dev/null and b/sound/instruments/glockenspiel/Dn5.mid differ diff --git a/sound/instruments/glockenspiel/Dn6.mid b/sound/instruments/glockenspiel/Dn6.mid new file mode 100644 index 00000000000..7a3723915df Binary files /dev/null and b/sound/instruments/glockenspiel/Dn6.mid differ diff --git a/sound/instruments/glockenspiel/Dn7.mid b/sound/instruments/glockenspiel/Dn7.mid new file mode 100644 index 00000000000..5be8aa77e1f Binary files /dev/null and b/sound/instruments/glockenspiel/Dn7.mid differ diff --git a/sound/instruments/glockenspiel/Eb2.mid b/sound/instruments/glockenspiel/Eb2.mid new file mode 100644 index 00000000000..c50981843db Binary files /dev/null and b/sound/instruments/glockenspiel/Eb2.mid differ diff --git a/sound/instruments/glockenspiel/Eb3.mid b/sound/instruments/glockenspiel/Eb3.mid new file mode 100644 index 00000000000..36354cb7152 Binary files /dev/null and b/sound/instruments/glockenspiel/Eb3.mid differ diff --git a/sound/instruments/glockenspiel/Eb4.mid b/sound/instruments/glockenspiel/Eb4.mid new file mode 100644 index 00000000000..3d08fd703be Binary files /dev/null and b/sound/instruments/glockenspiel/Eb4.mid differ diff --git a/sound/instruments/glockenspiel/Eb5.mid b/sound/instruments/glockenspiel/Eb5.mid new file mode 100644 index 00000000000..25aebfc3274 Binary files /dev/null and b/sound/instruments/glockenspiel/Eb5.mid differ diff --git a/sound/instruments/glockenspiel/Eb6.mid b/sound/instruments/glockenspiel/Eb6.mid new file mode 100644 index 00000000000..62cc1ef0e7f Binary files /dev/null and b/sound/instruments/glockenspiel/Eb6.mid differ diff --git a/sound/instruments/glockenspiel/Eb7.mid b/sound/instruments/glockenspiel/Eb7.mid new file mode 100644 index 00000000000..b60cdad77b5 Binary files /dev/null and b/sound/instruments/glockenspiel/Eb7.mid differ diff --git a/sound/instruments/glockenspiel/En2.mid b/sound/instruments/glockenspiel/En2.mid new file mode 100644 index 00000000000..39758cd85f9 Binary files /dev/null and b/sound/instruments/glockenspiel/En2.mid differ diff --git a/sound/instruments/glockenspiel/En3.mid b/sound/instruments/glockenspiel/En3.mid new file mode 100644 index 00000000000..efc81900312 Binary files /dev/null and b/sound/instruments/glockenspiel/En3.mid differ diff --git a/sound/instruments/glockenspiel/En4.mid b/sound/instruments/glockenspiel/En4.mid new file mode 100644 index 00000000000..99cc66e8ee8 Binary files /dev/null and b/sound/instruments/glockenspiel/En4.mid differ diff --git a/sound/instruments/glockenspiel/En5.mid b/sound/instruments/glockenspiel/En5.mid new file mode 100644 index 00000000000..ad00fdf4193 Binary files /dev/null and b/sound/instruments/glockenspiel/En5.mid differ diff --git a/sound/instruments/glockenspiel/En6.mid b/sound/instruments/glockenspiel/En6.mid new file mode 100644 index 00000000000..f09ef0b2609 Binary files /dev/null and b/sound/instruments/glockenspiel/En6.mid differ diff --git a/sound/instruments/glockenspiel/En7.mid b/sound/instruments/glockenspiel/En7.mid new file mode 100644 index 00000000000..3bcb9da49ff Binary files /dev/null and b/sound/instruments/glockenspiel/En7.mid differ diff --git a/sound/instruments/glockenspiel/Fn2.mid b/sound/instruments/glockenspiel/Fn2.mid new file mode 100644 index 00000000000..f127d40a4ac Binary files /dev/null and b/sound/instruments/glockenspiel/Fn2.mid differ diff --git a/sound/instruments/glockenspiel/Fn3.mid b/sound/instruments/glockenspiel/Fn3.mid new file mode 100644 index 00000000000..2429099d112 Binary files /dev/null and b/sound/instruments/glockenspiel/Fn3.mid differ diff --git a/sound/instruments/glockenspiel/Fn4.mid b/sound/instruments/glockenspiel/Fn4.mid new file mode 100644 index 00000000000..be631cfb219 Binary files /dev/null and b/sound/instruments/glockenspiel/Fn4.mid differ diff --git a/sound/instruments/glockenspiel/Fn5.mid b/sound/instruments/glockenspiel/Fn5.mid new file mode 100644 index 00000000000..a9fa10ed92a Binary files /dev/null and b/sound/instruments/glockenspiel/Fn5.mid differ diff --git a/sound/instruments/glockenspiel/Fn6.mid b/sound/instruments/glockenspiel/Fn6.mid new file mode 100644 index 00000000000..e31280486c7 Binary files /dev/null and b/sound/instruments/glockenspiel/Fn6.mid differ diff --git a/sound/instruments/glockenspiel/Fn7.mid b/sound/instruments/glockenspiel/Fn7.mid new file mode 100644 index 00000000000..d58406a9eb1 Binary files /dev/null and b/sound/instruments/glockenspiel/Fn7.mid differ diff --git a/sound/instruments/glockenspiel/Gb2.mid b/sound/instruments/glockenspiel/Gb2.mid new file mode 100644 index 00000000000..a75712fdcd9 Binary files /dev/null and b/sound/instruments/glockenspiel/Gb2.mid differ diff --git a/sound/instruments/glockenspiel/Gb3.mid b/sound/instruments/glockenspiel/Gb3.mid new file mode 100644 index 00000000000..ce8eb61c040 Binary files /dev/null and b/sound/instruments/glockenspiel/Gb3.mid differ diff --git a/sound/instruments/glockenspiel/Gb4.mid b/sound/instruments/glockenspiel/Gb4.mid new file mode 100644 index 00000000000..d15ee2f97b2 Binary files /dev/null and b/sound/instruments/glockenspiel/Gb4.mid differ diff --git a/sound/instruments/glockenspiel/Gb5.mid b/sound/instruments/glockenspiel/Gb5.mid new file mode 100644 index 00000000000..393b6d76574 Binary files /dev/null and b/sound/instruments/glockenspiel/Gb5.mid differ diff --git a/sound/instruments/glockenspiel/Gb6.mid b/sound/instruments/glockenspiel/Gb6.mid new file mode 100644 index 00000000000..6b0e3aef091 Binary files /dev/null and b/sound/instruments/glockenspiel/Gb6.mid differ diff --git a/sound/instruments/glockenspiel/Gb7.mid b/sound/instruments/glockenspiel/Gb7.mid new file mode 100644 index 00000000000..318a1ea9caa Binary files /dev/null and b/sound/instruments/glockenspiel/Gb7.mid differ diff --git a/sound/instruments/glockenspiel/Gn2.mid b/sound/instruments/glockenspiel/Gn2.mid new file mode 100644 index 00000000000..39d22d66123 Binary files /dev/null and b/sound/instruments/glockenspiel/Gn2.mid differ diff --git a/sound/instruments/glockenspiel/Gn3.mid b/sound/instruments/glockenspiel/Gn3.mid new file mode 100644 index 00000000000..d9494886a1c Binary files /dev/null and b/sound/instruments/glockenspiel/Gn3.mid differ diff --git a/sound/instruments/glockenspiel/Gn4.mid b/sound/instruments/glockenspiel/Gn4.mid new file mode 100644 index 00000000000..00a2f114bac Binary files /dev/null and b/sound/instruments/glockenspiel/Gn4.mid differ diff --git a/sound/instruments/glockenspiel/Gn5.mid b/sound/instruments/glockenspiel/Gn5.mid new file mode 100644 index 00000000000..55205eae3fe Binary files /dev/null and b/sound/instruments/glockenspiel/Gn5.mid differ diff --git a/sound/instruments/glockenspiel/Gn6.mid b/sound/instruments/glockenspiel/Gn6.mid new file mode 100644 index 00000000000..1aebe5ec222 Binary files /dev/null and b/sound/instruments/glockenspiel/Gn6.mid differ diff --git a/sound/instruments/glockenspiel/Gn7.mid b/sound/instruments/glockenspiel/Gn7.mid new file mode 100644 index 00000000000..cd0a43ceac6 Binary files /dev/null and b/sound/instruments/glockenspiel/Gn7.mid differ diff --git a/sound/guitar/Ab3.ogg b/sound/instruments/guitar/Ab3.ogg similarity index 100% rename from sound/guitar/Ab3.ogg rename to sound/instruments/guitar/Ab3.ogg diff --git a/sound/guitar/Ab4.ogg b/sound/instruments/guitar/Ab4.ogg similarity index 100% rename from sound/guitar/Ab4.ogg rename to sound/instruments/guitar/Ab4.ogg diff --git a/sound/guitar/Ab5.ogg b/sound/instruments/guitar/Ab5.ogg similarity index 100% rename from sound/guitar/Ab5.ogg rename to sound/instruments/guitar/Ab5.ogg diff --git a/sound/guitar/Ab6.ogg b/sound/instruments/guitar/Ab6.ogg similarity index 100% rename from sound/guitar/Ab6.ogg rename to sound/instruments/guitar/Ab6.ogg diff --git a/sound/guitar/An3.ogg b/sound/instruments/guitar/An3.ogg similarity index 100% rename from sound/guitar/An3.ogg rename to sound/instruments/guitar/An3.ogg diff --git a/sound/guitar/An4.ogg b/sound/instruments/guitar/An4.ogg similarity index 100% rename from sound/guitar/An4.ogg rename to sound/instruments/guitar/An4.ogg diff --git a/sound/guitar/An5.ogg b/sound/instruments/guitar/An5.ogg similarity index 100% rename from sound/guitar/An5.ogg rename to sound/instruments/guitar/An5.ogg diff --git a/sound/guitar/An6.ogg b/sound/instruments/guitar/An6.ogg similarity index 100% rename from sound/guitar/An6.ogg rename to sound/instruments/guitar/An6.ogg diff --git a/sound/guitar/Bb3.ogg b/sound/instruments/guitar/Bb3.ogg similarity index 100% rename from sound/guitar/Bb3.ogg rename to sound/instruments/guitar/Bb3.ogg diff --git a/sound/guitar/Bb4.ogg b/sound/instruments/guitar/Bb4.ogg similarity index 100% rename from sound/guitar/Bb4.ogg rename to sound/instruments/guitar/Bb4.ogg diff --git a/sound/guitar/Bb5.ogg b/sound/instruments/guitar/Bb5.ogg similarity index 100% rename from sound/guitar/Bb5.ogg rename to sound/instruments/guitar/Bb5.ogg diff --git a/sound/guitar/Bb6.ogg b/sound/instruments/guitar/Bb6.ogg similarity index 100% rename from sound/guitar/Bb6.ogg rename to sound/instruments/guitar/Bb6.ogg diff --git a/sound/guitar/Bn3.ogg b/sound/instruments/guitar/Bn3.ogg similarity index 100% rename from sound/guitar/Bn3.ogg rename to sound/instruments/guitar/Bn3.ogg diff --git a/sound/guitar/Bn4.ogg b/sound/instruments/guitar/Bn4.ogg similarity index 100% rename from sound/guitar/Bn4.ogg rename to sound/instruments/guitar/Bn4.ogg diff --git a/sound/guitar/Bn5.ogg b/sound/instruments/guitar/Bn5.ogg similarity index 100% rename from sound/guitar/Bn5.ogg rename to sound/instruments/guitar/Bn5.ogg diff --git a/sound/guitar/Bn6.ogg b/sound/instruments/guitar/Bn6.ogg similarity index 100% rename from sound/guitar/Bn6.ogg rename to sound/instruments/guitar/Bn6.ogg diff --git a/sound/guitar/Cb4.ogg b/sound/instruments/guitar/Cb4.ogg similarity index 100% rename from sound/guitar/Cb4.ogg rename to sound/instruments/guitar/Cb4.ogg diff --git a/sound/guitar/Cb5.ogg b/sound/instruments/guitar/Cb5.ogg similarity index 100% rename from sound/guitar/Cb5.ogg rename to sound/instruments/guitar/Cb5.ogg diff --git a/sound/guitar/Cb6.ogg b/sound/instruments/guitar/Cb6.ogg similarity index 100% rename from sound/guitar/Cb6.ogg rename to sound/instruments/guitar/Cb6.ogg diff --git a/sound/guitar/Cb7.ogg b/sound/instruments/guitar/Cb7.ogg similarity index 100% rename from sound/guitar/Cb7.ogg rename to sound/instruments/guitar/Cb7.ogg diff --git a/sound/guitar/Cn4.ogg b/sound/instruments/guitar/Cn4.ogg similarity index 100% rename from sound/guitar/Cn4.ogg rename to sound/instruments/guitar/Cn4.ogg diff --git a/sound/guitar/Cn5.ogg b/sound/instruments/guitar/Cn5.ogg similarity index 100% rename from sound/guitar/Cn5.ogg rename to sound/instruments/guitar/Cn5.ogg diff --git a/sound/guitar/Cn6.ogg b/sound/instruments/guitar/Cn6.ogg similarity index 100% rename from sound/guitar/Cn6.ogg rename to sound/instruments/guitar/Cn6.ogg diff --git a/sound/guitar/Db4.ogg b/sound/instruments/guitar/Db4.ogg similarity index 100% rename from sound/guitar/Db4.ogg rename to sound/instruments/guitar/Db4.ogg diff --git a/sound/guitar/Db5.ogg b/sound/instruments/guitar/Db5.ogg similarity index 100% rename from sound/guitar/Db5.ogg rename to sound/instruments/guitar/Db5.ogg diff --git a/sound/guitar/Db6.ogg b/sound/instruments/guitar/Db6.ogg similarity index 100% rename from sound/guitar/Db6.ogg rename to sound/instruments/guitar/Db6.ogg diff --git a/sound/guitar/Dn4.ogg b/sound/instruments/guitar/Dn4.ogg similarity index 100% rename from sound/guitar/Dn4.ogg rename to sound/instruments/guitar/Dn4.ogg diff --git a/sound/guitar/Dn5.ogg b/sound/instruments/guitar/Dn5.ogg similarity index 100% rename from sound/guitar/Dn5.ogg rename to sound/instruments/guitar/Dn5.ogg diff --git a/sound/guitar/Dn6.ogg b/sound/instruments/guitar/Dn6.ogg similarity index 100% rename from sound/guitar/Dn6.ogg rename to sound/instruments/guitar/Dn6.ogg diff --git a/sound/guitar/Eb4.ogg b/sound/instruments/guitar/Eb4.ogg similarity index 100% rename from sound/guitar/Eb4.ogg rename to sound/instruments/guitar/Eb4.ogg diff --git a/sound/guitar/Eb5.ogg b/sound/instruments/guitar/Eb5.ogg similarity index 100% rename from sound/guitar/Eb5.ogg rename to sound/instruments/guitar/Eb5.ogg diff --git a/sound/guitar/Eb6.ogg b/sound/instruments/guitar/Eb6.ogg similarity index 100% rename from sound/guitar/Eb6.ogg rename to sound/instruments/guitar/Eb6.ogg diff --git a/sound/guitar/En3.ogg b/sound/instruments/guitar/En3.ogg similarity index 100% rename from sound/guitar/En3.ogg rename to sound/instruments/guitar/En3.ogg diff --git a/sound/guitar/En4.ogg b/sound/instruments/guitar/En4.ogg similarity index 100% rename from sound/guitar/En4.ogg rename to sound/instruments/guitar/En4.ogg diff --git a/sound/guitar/En5.ogg b/sound/instruments/guitar/En5.ogg similarity index 100% rename from sound/guitar/En5.ogg rename to sound/instruments/guitar/En5.ogg diff --git a/sound/guitar/En6.ogg b/sound/instruments/guitar/En6.ogg similarity index 100% rename from sound/guitar/En6.ogg rename to sound/instruments/guitar/En6.ogg diff --git a/sound/guitar/Fb3.ogg b/sound/instruments/guitar/Fb3.ogg similarity index 100% rename from sound/guitar/Fb3.ogg rename to sound/instruments/guitar/Fb3.ogg diff --git a/sound/guitar/Fb4.ogg b/sound/instruments/guitar/Fb4.ogg similarity index 100% rename from sound/guitar/Fb4.ogg rename to sound/instruments/guitar/Fb4.ogg diff --git a/sound/guitar/Fb5.ogg b/sound/instruments/guitar/Fb5.ogg similarity index 100% rename from sound/guitar/Fb5.ogg rename to sound/instruments/guitar/Fb5.ogg diff --git a/sound/guitar/Fb6.ogg b/sound/instruments/guitar/Fb6.ogg similarity index 100% rename from sound/guitar/Fb6.ogg rename to sound/instruments/guitar/Fb6.ogg diff --git a/sound/guitar/Fn3.ogg b/sound/instruments/guitar/Fn3.ogg similarity index 100% rename from sound/guitar/Fn3.ogg rename to sound/instruments/guitar/Fn3.ogg diff --git a/sound/guitar/Fn4.ogg b/sound/instruments/guitar/Fn4.ogg similarity index 100% rename from sound/guitar/Fn4.ogg rename to sound/instruments/guitar/Fn4.ogg diff --git a/sound/guitar/Fn5.ogg b/sound/instruments/guitar/Fn5.ogg similarity index 100% rename from sound/guitar/Fn5.ogg rename to sound/instruments/guitar/Fn5.ogg diff --git a/sound/guitar/Fn6.ogg b/sound/instruments/guitar/Fn6.ogg similarity index 100% rename from sound/guitar/Fn6.ogg rename to sound/instruments/guitar/Fn6.ogg diff --git a/sound/guitar/Gb3.ogg b/sound/instruments/guitar/Gb3.ogg similarity index 100% rename from sound/guitar/Gb3.ogg rename to sound/instruments/guitar/Gb3.ogg diff --git a/sound/guitar/Gb4.ogg b/sound/instruments/guitar/Gb4.ogg similarity index 100% rename from sound/guitar/Gb4.ogg rename to sound/instruments/guitar/Gb4.ogg diff --git a/sound/guitar/Gb5.ogg b/sound/instruments/guitar/Gb5.ogg similarity index 100% rename from sound/guitar/Gb5.ogg rename to sound/instruments/guitar/Gb5.ogg diff --git a/sound/guitar/Gb6.ogg b/sound/instruments/guitar/Gb6.ogg similarity index 100% rename from sound/guitar/Gb6.ogg rename to sound/instruments/guitar/Gb6.ogg diff --git a/sound/guitar/Gn3.ogg b/sound/instruments/guitar/Gn3.ogg similarity index 100% rename from sound/guitar/Gn3.ogg rename to sound/instruments/guitar/Gn3.ogg diff --git a/sound/guitar/Gn4.ogg b/sound/instruments/guitar/Gn4.ogg similarity index 100% rename from sound/guitar/Gn4.ogg rename to sound/instruments/guitar/Gn4.ogg diff --git a/sound/guitar/Gn5.ogg b/sound/instruments/guitar/Gn5.ogg similarity index 100% rename from sound/guitar/Gn5.ogg rename to sound/instruments/guitar/Gn5.ogg diff --git a/sound/guitar/Gn6.ogg b/sound/instruments/guitar/Gn6.ogg similarity index 100% rename from sound/guitar/Gn6.ogg rename to sound/instruments/guitar/Gn6.ogg diff --git a/sound/instruments/harmonica/Ab2.mid b/sound/instruments/harmonica/Ab2.mid new file mode 100644 index 00000000000..c4c3ddeecd0 Binary files /dev/null and b/sound/instruments/harmonica/Ab2.mid differ diff --git a/sound/instruments/harmonica/Ab3.mid b/sound/instruments/harmonica/Ab3.mid new file mode 100644 index 00000000000..ab6c88ed510 Binary files /dev/null and b/sound/instruments/harmonica/Ab3.mid differ diff --git a/sound/instruments/harmonica/Ab4.mid b/sound/instruments/harmonica/Ab4.mid new file mode 100644 index 00000000000..d511cdb4750 Binary files /dev/null and b/sound/instruments/harmonica/Ab4.mid differ diff --git a/sound/instruments/harmonica/Ab5.mid b/sound/instruments/harmonica/Ab5.mid new file mode 100644 index 00000000000..abab8dc3221 Binary files /dev/null and b/sound/instruments/harmonica/Ab5.mid differ diff --git a/sound/instruments/harmonica/Ab6.mid b/sound/instruments/harmonica/Ab6.mid new file mode 100644 index 00000000000..15ca0f0d8f7 Binary files /dev/null and b/sound/instruments/harmonica/Ab6.mid differ diff --git a/sound/instruments/harmonica/An2.mid b/sound/instruments/harmonica/An2.mid new file mode 100644 index 00000000000..62bb9299352 Binary files /dev/null and b/sound/instruments/harmonica/An2.mid differ diff --git a/sound/instruments/harmonica/An3.mid b/sound/instruments/harmonica/An3.mid new file mode 100644 index 00000000000..20ee9dddcc6 Binary files /dev/null and b/sound/instruments/harmonica/An3.mid differ diff --git a/sound/instruments/harmonica/An4.mid b/sound/instruments/harmonica/An4.mid new file mode 100644 index 00000000000..a791135fa81 Binary files /dev/null and b/sound/instruments/harmonica/An4.mid differ diff --git a/sound/instruments/harmonica/An5.mid b/sound/instruments/harmonica/An5.mid new file mode 100644 index 00000000000..b78f0793c8a Binary files /dev/null and b/sound/instruments/harmonica/An5.mid differ diff --git a/sound/instruments/harmonica/An6.mid b/sound/instruments/harmonica/An6.mid new file mode 100644 index 00000000000..e250b41e9f8 Binary files /dev/null and b/sound/instruments/harmonica/An6.mid differ diff --git a/sound/instruments/harmonica/Bb2.mid b/sound/instruments/harmonica/Bb2.mid new file mode 100644 index 00000000000..610e1f0f380 Binary files /dev/null and b/sound/instruments/harmonica/Bb2.mid differ diff --git a/sound/instruments/harmonica/Bb3.mid b/sound/instruments/harmonica/Bb3.mid new file mode 100644 index 00000000000..79f0966663d Binary files /dev/null and b/sound/instruments/harmonica/Bb3.mid differ diff --git a/sound/instruments/harmonica/Bb4.mid b/sound/instruments/harmonica/Bb4.mid new file mode 100644 index 00000000000..af1eb969c62 Binary files /dev/null and b/sound/instruments/harmonica/Bb4.mid differ diff --git a/sound/instruments/harmonica/Bb5.mid b/sound/instruments/harmonica/Bb5.mid new file mode 100644 index 00000000000..e816d9cbdd0 Binary files /dev/null and b/sound/instruments/harmonica/Bb5.mid differ diff --git a/sound/instruments/harmonica/Bb6.mid b/sound/instruments/harmonica/Bb6.mid new file mode 100644 index 00000000000..ad5b9d2f9e6 Binary files /dev/null and b/sound/instruments/harmonica/Bb6.mid differ diff --git a/sound/instruments/harmonica/Bn2.mid b/sound/instruments/harmonica/Bn2.mid new file mode 100644 index 00000000000..f03c0f95358 Binary files /dev/null and b/sound/instruments/harmonica/Bn2.mid differ diff --git a/sound/instruments/harmonica/Bn3.mid b/sound/instruments/harmonica/Bn3.mid new file mode 100644 index 00000000000..3d078bba8ed Binary files /dev/null and b/sound/instruments/harmonica/Bn3.mid differ diff --git a/sound/instruments/harmonica/Bn4.mid b/sound/instruments/harmonica/Bn4.mid new file mode 100644 index 00000000000..fff2f5e7b80 Binary files /dev/null and b/sound/instruments/harmonica/Bn4.mid differ diff --git a/sound/instruments/harmonica/Bn5.mid b/sound/instruments/harmonica/Bn5.mid new file mode 100644 index 00000000000..b3cf8fe0516 Binary files /dev/null and b/sound/instruments/harmonica/Bn5.mid differ diff --git a/sound/instruments/harmonica/Bn6.mid b/sound/instruments/harmonica/Bn6.mid new file mode 100644 index 00000000000..03b60c6a49a Binary files /dev/null and b/sound/instruments/harmonica/Bn6.mid differ diff --git a/sound/instruments/harmonica/Cn2.mid b/sound/instruments/harmonica/Cn2.mid new file mode 100644 index 00000000000..6501f021d29 Binary files /dev/null and b/sound/instruments/harmonica/Cn2.mid differ diff --git a/sound/instruments/harmonica/Cn3.mid b/sound/instruments/harmonica/Cn3.mid new file mode 100644 index 00000000000..462bc973ef7 Binary files /dev/null and b/sound/instruments/harmonica/Cn3.mid differ diff --git a/sound/instruments/harmonica/Cn4.mid b/sound/instruments/harmonica/Cn4.mid new file mode 100644 index 00000000000..1d4d9ad83b2 Binary files /dev/null and b/sound/instruments/harmonica/Cn4.mid differ diff --git a/sound/instruments/harmonica/Cn5.mid b/sound/instruments/harmonica/Cn5.mid new file mode 100644 index 00000000000..7f0698266e3 Binary files /dev/null and b/sound/instruments/harmonica/Cn5.mid differ diff --git a/sound/instruments/harmonica/Cn6.mid b/sound/instruments/harmonica/Cn6.mid new file mode 100644 index 00000000000..9edc25c6259 Binary files /dev/null and b/sound/instruments/harmonica/Cn6.mid differ diff --git a/sound/instruments/harmonica/Cn7.mid b/sound/instruments/harmonica/Cn7.mid new file mode 100644 index 00000000000..d670d4f07c7 Binary files /dev/null and b/sound/instruments/harmonica/Cn7.mid differ diff --git a/sound/instruments/harmonica/Db2.mid b/sound/instruments/harmonica/Db2.mid new file mode 100644 index 00000000000..dab89a2a1bf Binary files /dev/null and b/sound/instruments/harmonica/Db2.mid differ diff --git a/sound/instruments/harmonica/Db3.mid b/sound/instruments/harmonica/Db3.mid new file mode 100644 index 00000000000..06d826dfc75 Binary files /dev/null and b/sound/instruments/harmonica/Db3.mid differ diff --git a/sound/instruments/harmonica/Db4.mid b/sound/instruments/harmonica/Db4.mid new file mode 100644 index 00000000000..1e9f67c9ad3 Binary files /dev/null and b/sound/instruments/harmonica/Db4.mid differ diff --git a/sound/instruments/harmonica/Db5.mid b/sound/instruments/harmonica/Db5.mid new file mode 100644 index 00000000000..08346dd8389 Binary files /dev/null and b/sound/instruments/harmonica/Db5.mid differ diff --git a/sound/instruments/harmonica/Db6.mid b/sound/instruments/harmonica/Db6.mid new file mode 100644 index 00000000000..2269113e007 Binary files /dev/null and b/sound/instruments/harmonica/Db6.mid differ diff --git a/sound/instruments/harmonica/Dn2.mid b/sound/instruments/harmonica/Dn2.mid new file mode 100644 index 00000000000..652990ac1a4 Binary files /dev/null and b/sound/instruments/harmonica/Dn2.mid differ diff --git a/sound/instruments/harmonica/Dn3.mid b/sound/instruments/harmonica/Dn3.mid new file mode 100644 index 00000000000..e2e3a63d345 Binary files /dev/null and b/sound/instruments/harmonica/Dn3.mid differ diff --git a/sound/instruments/harmonica/Dn4.mid b/sound/instruments/harmonica/Dn4.mid new file mode 100644 index 00000000000..d9a23a5445f Binary files /dev/null and b/sound/instruments/harmonica/Dn4.mid differ diff --git a/sound/instruments/harmonica/Dn5.mid b/sound/instruments/harmonica/Dn5.mid new file mode 100644 index 00000000000..3ff298d3946 Binary files /dev/null and b/sound/instruments/harmonica/Dn5.mid differ diff --git a/sound/instruments/harmonica/Dn6.mid b/sound/instruments/harmonica/Dn6.mid new file mode 100644 index 00000000000..6aa4c5ef434 Binary files /dev/null and b/sound/instruments/harmonica/Dn6.mid differ diff --git a/sound/instruments/harmonica/Eb2.mid b/sound/instruments/harmonica/Eb2.mid new file mode 100644 index 00000000000..d1a8e3fbea2 Binary files /dev/null and b/sound/instruments/harmonica/Eb2.mid differ diff --git a/sound/instruments/harmonica/Eb3.mid b/sound/instruments/harmonica/Eb3.mid new file mode 100644 index 00000000000..c31c6ab6e9f Binary files /dev/null and b/sound/instruments/harmonica/Eb3.mid differ diff --git a/sound/instruments/harmonica/Eb4.mid b/sound/instruments/harmonica/Eb4.mid new file mode 100644 index 00000000000..eabad551599 Binary files /dev/null and b/sound/instruments/harmonica/Eb4.mid differ diff --git a/sound/instruments/harmonica/Eb5.mid b/sound/instruments/harmonica/Eb5.mid new file mode 100644 index 00000000000..8da3b86e483 Binary files /dev/null and b/sound/instruments/harmonica/Eb5.mid differ diff --git a/sound/instruments/harmonica/Eb6.mid b/sound/instruments/harmonica/Eb6.mid new file mode 100644 index 00000000000..db3d2b17b9e Binary files /dev/null and b/sound/instruments/harmonica/Eb6.mid differ diff --git a/sound/instruments/harmonica/En2.mid b/sound/instruments/harmonica/En2.mid new file mode 100644 index 00000000000..48ea2d8bcb9 Binary files /dev/null and b/sound/instruments/harmonica/En2.mid differ diff --git a/sound/instruments/harmonica/En3.mid b/sound/instruments/harmonica/En3.mid new file mode 100644 index 00000000000..d7d2492add0 Binary files /dev/null and b/sound/instruments/harmonica/En3.mid differ diff --git a/sound/instruments/harmonica/En4.mid b/sound/instruments/harmonica/En4.mid new file mode 100644 index 00000000000..b2731141e6e Binary files /dev/null and b/sound/instruments/harmonica/En4.mid differ diff --git a/sound/instruments/harmonica/En5.mid b/sound/instruments/harmonica/En5.mid new file mode 100644 index 00000000000..22026c14c4f Binary files /dev/null and b/sound/instruments/harmonica/En5.mid differ diff --git a/sound/instruments/harmonica/En6.mid b/sound/instruments/harmonica/En6.mid new file mode 100644 index 00000000000..6730a7c5287 Binary files /dev/null and b/sound/instruments/harmonica/En6.mid differ diff --git a/sound/instruments/harmonica/Fn2.mid b/sound/instruments/harmonica/Fn2.mid new file mode 100644 index 00000000000..833662178d0 Binary files /dev/null and b/sound/instruments/harmonica/Fn2.mid differ diff --git a/sound/instruments/harmonica/Fn3.mid b/sound/instruments/harmonica/Fn3.mid new file mode 100644 index 00000000000..7dc41a47c88 Binary files /dev/null and b/sound/instruments/harmonica/Fn3.mid differ diff --git a/sound/instruments/harmonica/Fn4.mid b/sound/instruments/harmonica/Fn4.mid new file mode 100644 index 00000000000..025583e38d3 Binary files /dev/null and b/sound/instruments/harmonica/Fn4.mid differ diff --git a/sound/instruments/harmonica/Fn5.mid b/sound/instruments/harmonica/Fn5.mid new file mode 100644 index 00000000000..710b458d85b Binary files /dev/null and b/sound/instruments/harmonica/Fn5.mid differ diff --git a/sound/instruments/harmonica/Fn6.mid b/sound/instruments/harmonica/Fn6.mid new file mode 100644 index 00000000000..44112e36595 Binary files /dev/null and b/sound/instruments/harmonica/Fn6.mid differ diff --git a/sound/instruments/harmonica/Gb2.mid b/sound/instruments/harmonica/Gb2.mid new file mode 100644 index 00000000000..8edd298ec13 Binary files /dev/null and b/sound/instruments/harmonica/Gb2.mid differ diff --git a/sound/instruments/harmonica/Gb3.mid b/sound/instruments/harmonica/Gb3.mid new file mode 100644 index 00000000000..438a939095a Binary files /dev/null and b/sound/instruments/harmonica/Gb3.mid differ diff --git a/sound/instruments/harmonica/Gb4.mid b/sound/instruments/harmonica/Gb4.mid new file mode 100644 index 00000000000..7844063205c Binary files /dev/null and b/sound/instruments/harmonica/Gb4.mid differ diff --git a/sound/instruments/harmonica/Gb5.mid b/sound/instruments/harmonica/Gb5.mid new file mode 100644 index 00000000000..4139bce10e0 Binary files /dev/null and b/sound/instruments/harmonica/Gb5.mid differ diff --git a/sound/instruments/harmonica/Gb6.mid b/sound/instruments/harmonica/Gb6.mid new file mode 100644 index 00000000000..e6b1a8fb897 Binary files /dev/null and b/sound/instruments/harmonica/Gb6.mid differ diff --git a/sound/instruments/harmonica/Gn2.mid b/sound/instruments/harmonica/Gn2.mid new file mode 100644 index 00000000000..d26e7c83af6 Binary files /dev/null and b/sound/instruments/harmonica/Gn2.mid differ diff --git a/sound/instruments/harmonica/Gn3.mid b/sound/instruments/harmonica/Gn3.mid new file mode 100644 index 00000000000..c741d556c9e Binary files /dev/null and b/sound/instruments/harmonica/Gn3.mid differ diff --git a/sound/instruments/harmonica/Gn4.mid b/sound/instruments/harmonica/Gn4.mid new file mode 100644 index 00000000000..c6e7a3c9bb2 Binary files /dev/null and b/sound/instruments/harmonica/Gn4.mid differ diff --git a/sound/instruments/harmonica/Gn5.mid b/sound/instruments/harmonica/Gn5.mid new file mode 100644 index 00000000000..a9608e9d210 Binary files /dev/null and b/sound/instruments/harmonica/Gn5.mid differ diff --git a/sound/instruments/harmonica/Gn6.mid b/sound/instruments/harmonica/Gn6.mid new file mode 100644 index 00000000000..98f6d32bfc5 Binary files /dev/null and b/sound/instruments/harmonica/Gn6.mid differ diff --git a/sound/piano/Ab1.ogg b/sound/instruments/piano/Ab1.ogg similarity index 100% rename from sound/piano/Ab1.ogg rename to sound/instruments/piano/Ab1.ogg diff --git a/sound/piano/Ab2.ogg b/sound/instruments/piano/Ab2.ogg similarity index 100% rename from sound/piano/Ab2.ogg rename to sound/instruments/piano/Ab2.ogg diff --git a/sound/piano/Ab3.ogg b/sound/instruments/piano/Ab3.ogg similarity index 100% rename from sound/piano/Ab3.ogg rename to sound/instruments/piano/Ab3.ogg diff --git a/sound/piano/Ab4.ogg b/sound/instruments/piano/Ab4.ogg similarity index 100% rename from sound/piano/Ab4.ogg rename to sound/instruments/piano/Ab4.ogg diff --git a/sound/piano/Ab5.ogg b/sound/instruments/piano/Ab5.ogg similarity index 100% rename from sound/piano/Ab5.ogg rename to sound/instruments/piano/Ab5.ogg diff --git a/sound/piano/Ab6.ogg b/sound/instruments/piano/Ab6.ogg similarity index 100% rename from sound/piano/Ab6.ogg rename to sound/instruments/piano/Ab6.ogg diff --git a/sound/piano/Ab7.ogg b/sound/instruments/piano/Ab7.ogg similarity index 100% rename from sound/piano/Ab7.ogg rename to sound/instruments/piano/Ab7.ogg diff --git a/sound/piano/Ab8.ogg b/sound/instruments/piano/Ab8.ogg similarity index 100% rename from sound/piano/Ab8.ogg rename to sound/instruments/piano/Ab8.ogg diff --git a/sound/piano/An1.ogg b/sound/instruments/piano/An1.ogg similarity index 100% rename from sound/piano/An1.ogg rename to sound/instruments/piano/An1.ogg diff --git a/sound/piano/An2.ogg b/sound/instruments/piano/An2.ogg similarity index 100% rename from sound/piano/An2.ogg rename to sound/instruments/piano/An2.ogg diff --git a/sound/piano/An3.ogg b/sound/instruments/piano/An3.ogg similarity index 100% rename from sound/piano/An3.ogg rename to sound/instruments/piano/An3.ogg diff --git a/sound/piano/An4.ogg b/sound/instruments/piano/An4.ogg similarity index 100% rename from sound/piano/An4.ogg rename to sound/instruments/piano/An4.ogg diff --git a/sound/piano/An5.ogg b/sound/instruments/piano/An5.ogg similarity index 100% rename from sound/piano/An5.ogg rename to sound/instruments/piano/An5.ogg diff --git a/sound/piano/An6.ogg b/sound/instruments/piano/An6.ogg similarity index 100% rename from sound/piano/An6.ogg rename to sound/instruments/piano/An6.ogg diff --git a/sound/piano/An7.ogg b/sound/instruments/piano/An7.ogg similarity index 100% rename from sound/piano/An7.ogg rename to sound/instruments/piano/An7.ogg diff --git a/sound/piano/An8.ogg b/sound/instruments/piano/An8.ogg similarity index 100% rename from sound/piano/An8.ogg rename to sound/instruments/piano/An8.ogg diff --git a/sound/piano/Bb1.ogg b/sound/instruments/piano/Bb1.ogg similarity index 100% rename from sound/piano/Bb1.ogg rename to sound/instruments/piano/Bb1.ogg diff --git a/sound/piano/Bb2.ogg b/sound/instruments/piano/Bb2.ogg similarity index 100% rename from sound/piano/Bb2.ogg rename to sound/instruments/piano/Bb2.ogg diff --git a/sound/piano/Bb3.ogg b/sound/instruments/piano/Bb3.ogg similarity index 100% rename from sound/piano/Bb3.ogg rename to sound/instruments/piano/Bb3.ogg diff --git a/sound/piano/Bb4.ogg b/sound/instruments/piano/Bb4.ogg similarity index 100% rename from sound/piano/Bb4.ogg rename to sound/instruments/piano/Bb4.ogg diff --git a/sound/piano/Bb5.ogg b/sound/instruments/piano/Bb5.ogg similarity index 100% rename from sound/piano/Bb5.ogg rename to sound/instruments/piano/Bb5.ogg diff --git a/sound/piano/Bb6.ogg b/sound/instruments/piano/Bb6.ogg similarity index 100% rename from sound/piano/Bb6.ogg rename to sound/instruments/piano/Bb6.ogg diff --git a/sound/piano/Bb7.ogg b/sound/instruments/piano/Bb7.ogg similarity index 100% rename from sound/piano/Bb7.ogg rename to sound/instruments/piano/Bb7.ogg diff --git a/sound/piano/Bb8.ogg b/sound/instruments/piano/Bb8.ogg similarity index 100% rename from sound/piano/Bb8.ogg rename to sound/instruments/piano/Bb8.ogg diff --git a/sound/piano/Bn1.ogg b/sound/instruments/piano/Bn1.ogg similarity index 100% rename from sound/piano/Bn1.ogg rename to sound/instruments/piano/Bn1.ogg diff --git a/sound/piano/Bn2.ogg b/sound/instruments/piano/Bn2.ogg similarity index 100% rename from sound/piano/Bn2.ogg rename to sound/instruments/piano/Bn2.ogg diff --git a/sound/piano/Bn3.ogg b/sound/instruments/piano/Bn3.ogg similarity index 100% rename from sound/piano/Bn3.ogg rename to sound/instruments/piano/Bn3.ogg diff --git a/sound/piano/Bn4.ogg b/sound/instruments/piano/Bn4.ogg similarity index 100% rename from sound/piano/Bn4.ogg rename to sound/instruments/piano/Bn4.ogg diff --git a/sound/piano/Bn5.ogg b/sound/instruments/piano/Bn5.ogg similarity index 100% rename from sound/piano/Bn5.ogg rename to sound/instruments/piano/Bn5.ogg diff --git a/sound/piano/Bn6.ogg b/sound/instruments/piano/Bn6.ogg similarity index 100% rename from sound/piano/Bn6.ogg rename to sound/instruments/piano/Bn6.ogg diff --git a/sound/piano/Bn7.ogg b/sound/instruments/piano/Bn7.ogg similarity index 100% rename from sound/piano/Bn7.ogg rename to sound/instruments/piano/Bn7.ogg diff --git a/sound/piano/Bn8.ogg b/sound/instruments/piano/Bn8.ogg similarity index 100% rename from sound/piano/Bn8.ogg rename to sound/instruments/piano/Bn8.ogg diff --git a/sound/piano/Cn1.ogg b/sound/instruments/piano/Cn1.ogg similarity index 100% rename from sound/piano/Cn1.ogg rename to sound/instruments/piano/Cn1.ogg diff --git a/sound/piano/Cn2.ogg b/sound/instruments/piano/Cn2.ogg similarity index 100% rename from sound/piano/Cn2.ogg rename to sound/instruments/piano/Cn2.ogg diff --git a/sound/piano/Cn3.ogg b/sound/instruments/piano/Cn3.ogg similarity index 100% rename from sound/piano/Cn3.ogg rename to sound/instruments/piano/Cn3.ogg diff --git a/sound/piano/Cn4.ogg b/sound/instruments/piano/Cn4.ogg similarity index 100% rename from sound/piano/Cn4.ogg rename to sound/instruments/piano/Cn4.ogg diff --git a/sound/piano/Cn5.ogg b/sound/instruments/piano/Cn5.ogg similarity index 100% rename from sound/piano/Cn5.ogg rename to sound/instruments/piano/Cn5.ogg diff --git a/sound/piano/Cn6.ogg b/sound/instruments/piano/Cn6.ogg similarity index 100% rename from sound/piano/Cn6.ogg rename to sound/instruments/piano/Cn6.ogg diff --git a/sound/piano/Cn7.ogg b/sound/instruments/piano/Cn7.ogg similarity index 100% rename from sound/piano/Cn7.ogg rename to sound/instruments/piano/Cn7.ogg diff --git a/sound/piano/Cn8.ogg b/sound/instruments/piano/Cn8.ogg similarity index 100% rename from sound/piano/Cn8.ogg rename to sound/instruments/piano/Cn8.ogg diff --git a/sound/piano/Cn9.ogg b/sound/instruments/piano/Cn9.ogg similarity index 100% rename from sound/piano/Cn9.ogg rename to sound/instruments/piano/Cn9.ogg diff --git a/sound/piano/Db1.ogg b/sound/instruments/piano/Db1.ogg similarity index 100% rename from sound/piano/Db1.ogg rename to sound/instruments/piano/Db1.ogg diff --git a/sound/piano/Db2.ogg b/sound/instruments/piano/Db2.ogg similarity index 100% rename from sound/piano/Db2.ogg rename to sound/instruments/piano/Db2.ogg diff --git a/sound/piano/Db3.ogg b/sound/instruments/piano/Db3.ogg similarity index 100% rename from sound/piano/Db3.ogg rename to sound/instruments/piano/Db3.ogg diff --git a/sound/piano/Db4.ogg b/sound/instruments/piano/Db4.ogg similarity index 100% rename from sound/piano/Db4.ogg rename to sound/instruments/piano/Db4.ogg diff --git a/sound/piano/Db5.ogg b/sound/instruments/piano/Db5.ogg similarity index 100% rename from sound/piano/Db5.ogg rename to sound/instruments/piano/Db5.ogg diff --git a/sound/piano/Db6.ogg b/sound/instruments/piano/Db6.ogg similarity index 100% rename from sound/piano/Db6.ogg rename to sound/instruments/piano/Db6.ogg diff --git a/sound/piano/Db7.ogg b/sound/instruments/piano/Db7.ogg similarity index 100% rename from sound/piano/Db7.ogg rename to sound/instruments/piano/Db7.ogg diff --git a/sound/piano/Db8.ogg b/sound/instruments/piano/Db8.ogg similarity index 100% rename from sound/piano/Db8.ogg rename to sound/instruments/piano/Db8.ogg diff --git a/sound/piano/Dn1.ogg b/sound/instruments/piano/Dn1.ogg similarity index 100% rename from sound/piano/Dn1.ogg rename to sound/instruments/piano/Dn1.ogg diff --git a/sound/piano/Dn2.ogg b/sound/instruments/piano/Dn2.ogg similarity index 100% rename from sound/piano/Dn2.ogg rename to sound/instruments/piano/Dn2.ogg diff --git a/sound/piano/Dn3.ogg b/sound/instruments/piano/Dn3.ogg similarity index 100% rename from sound/piano/Dn3.ogg rename to sound/instruments/piano/Dn3.ogg diff --git a/sound/piano/Dn4.ogg b/sound/instruments/piano/Dn4.ogg similarity index 100% rename from sound/piano/Dn4.ogg rename to sound/instruments/piano/Dn4.ogg diff --git a/sound/piano/Dn5.ogg b/sound/instruments/piano/Dn5.ogg similarity index 100% rename from sound/piano/Dn5.ogg rename to sound/instruments/piano/Dn5.ogg diff --git a/sound/piano/Dn6.ogg b/sound/instruments/piano/Dn6.ogg similarity index 100% rename from sound/piano/Dn6.ogg rename to sound/instruments/piano/Dn6.ogg diff --git a/sound/piano/Dn7.ogg b/sound/instruments/piano/Dn7.ogg similarity index 100% rename from sound/piano/Dn7.ogg rename to sound/instruments/piano/Dn7.ogg diff --git a/sound/piano/Dn8.ogg b/sound/instruments/piano/Dn8.ogg similarity index 100% rename from sound/piano/Dn8.ogg rename to sound/instruments/piano/Dn8.ogg diff --git a/sound/piano/Eb1.ogg b/sound/instruments/piano/Eb1.ogg similarity index 100% rename from sound/piano/Eb1.ogg rename to sound/instruments/piano/Eb1.ogg diff --git a/sound/piano/Eb2.ogg b/sound/instruments/piano/Eb2.ogg similarity index 100% rename from sound/piano/Eb2.ogg rename to sound/instruments/piano/Eb2.ogg diff --git a/sound/piano/Eb3.ogg b/sound/instruments/piano/Eb3.ogg similarity index 100% rename from sound/piano/Eb3.ogg rename to sound/instruments/piano/Eb3.ogg diff --git a/sound/piano/Eb4.ogg b/sound/instruments/piano/Eb4.ogg similarity index 100% rename from sound/piano/Eb4.ogg rename to sound/instruments/piano/Eb4.ogg diff --git a/sound/piano/Eb5.ogg b/sound/instruments/piano/Eb5.ogg similarity index 100% rename from sound/piano/Eb5.ogg rename to sound/instruments/piano/Eb5.ogg diff --git a/sound/piano/Eb6.ogg b/sound/instruments/piano/Eb6.ogg similarity index 100% rename from sound/piano/Eb6.ogg rename to sound/instruments/piano/Eb6.ogg diff --git a/sound/piano/Eb7.ogg b/sound/instruments/piano/Eb7.ogg similarity index 100% rename from sound/piano/Eb7.ogg rename to sound/instruments/piano/Eb7.ogg diff --git a/sound/piano/Eb8.ogg b/sound/instruments/piano/Eb8.ogg similarity index 100% rename from sound/piano/Eb8.ogg rename to sound/instruments/piano/Eb8.ogg diff --git a/sound/piano/En1.ogg b/sound/instruments/piano/En1.ogg similarity index 100% rename from sound/piano/En1.ogg rename to sound/instruments/piano/En1.ogg diff --git a/sound/piano/En2.ogg b/sound/instruments/piano/En2.ogg similarity index 100% rename from sound/piano/En2.ogg rename to sound/instruments/piano/En2.ogg diff --git a/sound/piano/En3.ogg b/sound/instruments/piano/En3.ogg similarity index 100% rename from sound/piano/En3.ogg rename to sound/instruments/piano/En3.ogg diff --git a/sound/piano/En4.ogg b/sound/instruments/piano/En4.ogg similarity index 100% rename from sound/piano/En4.ogg rename to sound/instruments/piano/En4.ogg diff --git a/sound/piano/En5.ogg b/sound/instruments/piano/En5.ogg similarity index 100% rename from sound/piano/En5.ogg rename to sound/instruments/piano/En5.ogg diff --git a/sound/piano/En6.ogg b/sound/instruments/piano/En6.ogg similarity index 100% rename from sound/piano/En6.ogg rename to sound/instruments/piano/En6.ogg diff --git a/sound/piano/En7.ogg b/sound/instruments/piano/En7.ogg similarity index 100% rename from sound/piano/En7.ogg rename to sound/instruments/piano/En7.ogg diff --git a/sound/piano/En8.ogg b/sound/instruments/piano/En8.ogg similarity index 100% rename from sound/piano/En8.ogg rename to sound/instruments/piano/En8.ogg diff --git a/sound/piano/Fn1.ogg b/sound/instruments/piano/Fn1.ogg similarity index 100% rename from sound/piano/Fn1.ogg rename to sound/instruments/piano/Fn1.ogg diff --git a/sound/piano/Fn2.ogg b/sound/instruments/piano/Fn2.ogg similarity index 100% rename from sound/piano/Fn2.ogg rename to sound/instruments/piano/Fn2.ogg diff --git a/sound/piano/Fn3.ogg b/sound/instruments/piano/Fn3.ogg similarity index 100% rename from sound/piano/Fn3.ogg rename to sound/instruments/piano/Fn3.ogg diff --git a/sound/piano/Fn4.ogg b/sound/instruments/piano/Fn4.ogg similarity index 100% rename from sound/piano/Fn4.ogg rename to sound/instruments/piano/Fn4.ogg diff --git a/sound/piano/Fn5.ogg b/sound/instruments/piano/Fn5.ogg similarity index 100% rename from sound/piano/Fn5.ogg rename to sound/instruments/piano/Fn5.ogg diff --git a/sound/piano/Fn6.ogg b/sound/instruments/piano/Fn6.ogg similarity index 100% rename from sound/piano/Fn6.ogg rename to sound/instruments/piano/Fn6.ogg diff --git a/sound/piano/Fn7.ogg b/sound/instruments/piano/Fn7.ogg similarity index 100% rename from sound/piano/Fn7.ogg rename to sound/instruments/piano/Fn7.ogg diff --git a/sound/piano/Fn8.ogg b/sound/instruments/piano/Fn8.ogg similarity index 100% rename from sound/piano/Fn8.ogg rename to sound/instruments/piano/Fn8.ogg diff --git a/sound/piano/Gb1.ogg b/sound/instruments/piano/Gb1.ogg similarity index 100% rename from sound/piano/Gb1.ogg rename to sound/instruments/piano/Gb1.ogg diff --git a/sound/piano/Gb2.ogg b/sound/instruments/piano/Gb2.ogg similarity index 100% rename from sound/piano/Gb2.ogg rename to sound/instruments/piano/Gb2.ogg diff --git a/sound/piano/Gb3.ogg b/sound/instruments/piano/Gb3.ogg similarity index 100% rename from sound/piano/Gb3.ogg rename to sound/instruments/piano/Gb3.ogg diff --git a/sound/piano/Gb4.ogg b/sound/instruments/piano/Gb4.ogg similarity index 100% rename from sound/piano/Gb4.ogg rename to sound/instruments/piano/Gb4.ogg diff --git a/sound/piano/Gb5.ogg b/sound/instruments/piano/Gb5.ogg similarity index 100% rename from sound/piano/Gb5.ogg rename to sound/instruments/piano/Gb5.ogg diff --git a/sound/piano/Gb6.ogg b/sound/instruments/piano/Gb6.ogg similarity index 100% rename from sound/piano/Gb6.ogg rename to sound/instruments/piano/Gb6.ogg diff --git a/sound/piano/Gb7.ogg b/sound/instruments/piano/Gb7.ogg similarity index 100% rename from sound/piano/Gb7.ogg rename to sound/instruments/piano/Gb7.ogg diff --git a/sound/piano/Gb8.ogg b/sound/instruments/piano/Gb8.ogg similarity index 100% rename from sound/piano/Gb8.ogg rename to sound/instruments/piano/Gb8.ogg diff --git a/sound/piano/Gn1.ogg b/sound/instruments/piano/Gn1.ogg similarity index 100% rename from sound/piano/Gn1.ogg rename to sound/instruments/piano/Gn1.ogg diff --git a/sound/piano/Gn2.ogg b/sound/instruments/piano/Gn2.ogg similarity index 100% rename from sound/piano/Gn2.ogg rename to sound/instruments/piano/Gn2.ogg diff --git a/sound/piano/Gn3.ogg b/sound/instruments/piano/Gn3.ogg similarity index 100% rename from sound/piano/Gn3.ogg rename to sound/instruments/piano/Gn3.ogg diff --git a/sound/piano/Gn4.ogg b/sound/instruments/piano/Gn4.ogg similarity index 100% rename from sound/piano/Gn4.ogg rename to sound/instruments/piano/Gn4.ogg diff --git a/sound/piano/Gn5.ogg b/sound/instruments/piano/Gn5.ogg similarity index 100% rename from sound/piano/Gn5.ogg rename to sound/instruments/piano/Gn5.ogg diff --git a/sound/piano/Gn6.ogg b/sound/instruments/piano/Gn6.ogg similarity index 100% rename from sound/piano/Gn6.ogg rename to sound/instruments/piano/Gn6.ogg diff --git a/sound/piano/Gn7.ogg b/sound/instruments/piano/Gn7.ogg similarity index 100% rename from sound/piano/Gn7.ogg rename to sound/instruments/piano/Gn7.ogg diff --git a/sound/piano/Gn8.ogg b/sound/instruments/piano/Gn8.ogg similarity index 100% rename from sound/piano/Gn8.ogg rename to sound/instruments/piano/Gn8.ogg diff --git a/sound/instruments/recorder/Ab2.mid b/sound/instruments/recorder/Ab2.mid new file mode 100644 index 00000000000..2fb39fa140b Binary files /dev/null and b/sound/instruments/recorder/Ab2.mid differ diff --git a/sound/instruments/recorder/Ab3.mid b/sound/instruments/recorder/Ab3.mid new file mode 100644 index 00000000000..7a04ef76019 Binary files /dev/null and b/sound/instruments/recorder/Ab3.mid differ diff --git a/sound/instruments/recorder/Ab4.mid b/sound/instruments/recorder/Ab4.mid new file mode 100644 index 00000000000..93e51322a02 Binary files /dev/null and b/sound/instruments/recorder/Ab4.mid differ diff --git a/sound/instruments/recorder/Ab5.mid b/sound/instruments/recorder/Ab5.mid new file mode 100644 index 00000000000..ad91ee6e0a3 Binary files /dev/null and b/sound/instruments/recorder/Ab5.mid differ diff --git a/sound/instruments/recorder/Ab6.mid b/sound/instruments/recorder/Ab6.mid new file mode 100644 index 00000000000..3376b0c0ee6 Binary files /dev/null and b/sound/instruments/recorder/Ab6.mid differ diff --git a/sound/instruments/recorder/An2.mid b/sound/instruments/recorder/An2.mid new file mode 100644 index 00000000000..d9e9c0e4c3c Binary files /dev/null and b/sound/instruments/recorder/An2.mid differ diff --git a/sound/instruments/recorder/An3.mid b/sound/instruments/recorder/An3.mid new file mode 100644 index 00000000000..91aa5c253c7 Binary files /dev/null and b/sound/instruments/recorder/An3.mid differ diff --git a/sound/instruments/recorder/An4.mid b/sound/instruments/recorder/An4.mid new file mode 100644 index 00000000000..bbfba81a4a7 Binary files /dev/null and b/sound/instruments/recorder/An4.mid differ diff --git a/sound/instruments/recorder/An5.mid b/sound/instruments/recorder/An5.mid new file mode 100644 index 00000000000..ab73190d684 Binary files /dev/null and b/sound/instruments/recorder/An5.mid differ diff --git a/sound/instruments/recorder/An6.mid b/sound/instruments/recorder/An6.mid new file mode 100644 index 00000000000..8417f2916ff Binary files /dev/null and b/sound/instruments/recorder/An6.mid differ diff --git a/sound/instruments/recorder/Bb2.mid b/sound/instruments/recorder/Bb2.mid new file mode 100644 index 00000000000..9ec20e3d2f3 Binary files /dev/null and b/sound/instruments/recorder/Bb2.mid differ diff --git a/sound/instruments/recorder/Bb3.mid b/sound/instruments/recorder/Bb3.mid new file mode 100644 index 00000000000..bd6fc036e99 Binary files /dev/null and b/sound/instruments/recorder/Bb3.mid differ diff --git a/sound/instruments/recorder/Bb4.mid b/sound/instruments/recorder/Bb4.mid new file mode 100644 index 00000000000..48f9db73fa0 Binary files /dev/null and b/sound/instruments/recorder/Bb4.mid differ diff --git a/sound/instruments/recorder/Bb5.mid b/sound/instruments/recorder/Bb5.mid new file mode 100644 index 00000000000..20ffe453eba Binary files /dev/null and b/sound/instruments/recorder/Bb5.mid differ diff --git a/sound/instruments/recorder/Bb6.mid b/sound/instruments/recorder/Bb6.mid new file mode 100644 index 00000000000..954c1c20793 Binary files /dev/null and b/sound/instruments/recorder/Bb6.mid differ diff --git a/sound/instruments/recorder/Bn2.mid b/sound/instruments/recorder/Bn2.mid new file mode 100644 index 00000000000..ca1e63c25b4 Binary files /dev/null and b/sound/instruments/recorder/Bn2.mid differ diff --git a/sound/instruments/recorder/Bn3.mid b/sound/instruments/recorder/Bn3.mid new file mode 100644 index 00000000000..11b0c2fe374 Binary files /dev/null and b/sound/instruments/recorder/Bn3.mid differ diff --git a/sound/instruments/recorder/Bn4.mid b/sound/instruments/recorder/Bn4.mid new file mode 100644 index 00000000000..5b11df50ffd Binary files /dev/null and b/sound/instruments/recorder/Bn4.mid differ diff --git a/sound/instruments/recorder/Bn5.mid b/sound/instruments/recorder/Bn5.mid new file mode 100644 index 00000000000..b353150df85 Binary files /dev/null and b/sound/instruments/recorder/Bn5.mid differ diff --git a/sound/instruments/recorder/Bn6.mid b/sound/instruments/recorder/Bn6.mid new file mode 100644 index 00000000000..cf69ce6d21d Binary files /dev/null and b/sound/instruments/recorder/Bn6.mid differ diff --git a/sound/instruments/recorder/Cn2.mid b/sound/instruments/recorder/Cn2.mid new file mode 100644 index 00000000000..858ec955afd Binary files /dev/null and b/sound/instruments/recorder/Cn2.mid differ diff --git a/sound/instruments/recorder/Cn3.mid b/sound/instruments/recorder/Cn3.mid new file mode 100644 index 00000000000..2c65b49f741 Binary files /dev/null and b/sound/instruments/recorder/Cn3.mid differ diff --git a/sound/instruments/recorder/Cn4.mid b/sound/instruments/recorder/Cn4.mid new file mode 100644 index 00000000000..9fc1fd5b5a8 Binary files /dev/null and b/sound/instruments/recorder/Cn4.mid differ diff --git a/sound/instruments/recorder/Cn5.mid b/sound/instruments/recorder/Cn5.mid new file mode 100644 index 00000000000..6a86a7e06f1 Binary files /dev/null and b/sound/instruments/recorder/Cn5.mid differ diff --git a/sound/instruments/recorder/Cn6.mid b/sound/instruments/recorder/Cn6.mid new file mode 100644 index 00000000000..43355e27c31 Binary files /dev/null and b/sound/instruments/recorder/Cn6.mid differ diff --git a/sound/instruments/recorder/Cn7.mid b/sound/instruments/recorder/Cn7.mid new file mode 100644 index 00000000000..ff5e08b0e5d Binary files /dev/null and b/sound/instruments/recorder/Cn7.mid differ diff --git a/sound/instruments/recorder/Db2.mid b/sound/instruments/recorder/Db2.mid new file mode 100644 index 00000000000..1ac1299e6dd Binary files /dev/null and b/sound/instruments/recorder/Db2.mid differ diff --git a/sound/instruments/recorder/Db3.mid b/sound/instruments/recorder/Db3.mid new file mode 100644 index 00000000000..7a45bdc91b8 Binary files /dev/null and b/sound/instruments/recorder/Db3.mid differ diff --git a/sound/instruments/recorder/Db4.mid b/sound/instruments/recorder/Db4.mid new file mode 100644 index 00000000000..6dca8557091 Binary files /dev/null and b/sound/instruments/recorder/Db4.mid differ diff --git a/sound/instruments/recorder/Db5.mid b/sound/instruments/recorder/Db5.mid new file mode 100644 index 00000000000..5d83733262a Binary files /dev/null and b/sound/instruments/recorder/Db5.mid differ diff --git a/sound/instruments/recorder/Db6.mid b/sound/instruments/recorder/Db6.mid new file mode 100644 index 00000000000..3f45f77bcd2 Binary files /dev/null and b/sound/instruments/recorder/Db6.mid differ diff --git a/sound/instruments/recorder/Db7.mid b/sound/instruments/recorder/Db7.mid new file mode 100644 index 00000000000..d326ab7bd1a Binary files /dev/null and b/sound/instruments/recorder/Db7.mid differ diff --git a/sound/instruments/recorder/Dn2.mid b/sound/instruments/recorder/Dn2.mid new file mode 100644 index 00000000000..8ddef0e0d04 Binary files /dev/null and b/sound/instruments/recorder/Dn2.mid differ diff --git a/sound/instruments/recorder/Dn3.mid b/sound/instruments/recorder/Dn3.mid new file mode 100644 index 00000000000..b11ff85aab5 Binary files /dev/null and b/sound/instruments/recorder/Dn3.mid differ diff --git a/sound/instruments/recorder/Dn4.mid b/sound/instruments/recorder/Dn4.mid new file mode 100644 index 00000000000..ae877932997 Binary files /dev/null and b/sound/instruments/recorder/Dn4.mid differ diff --git a/sound/instruments/recorder/Dn5.mid b/sound/instruments/recorder/Dn5.mid new file mode 100644 index 00000000000..440da3c7781 Binary files /dev/null and b/sound/instruments/recorder/Dn5.mid differ diff --git a/sound/instruments/recorder/Dn6.mid b/sound/instruments/recorder/Dn6.mid new file mode 100644 index 00000000000..d96623529fd Binary files /dev/null and b/sound/instruments/recorder/Dn6.mid differ diff --git a/sound/instruments/recorder/Eb2.mid b/sound/instruments/recorder/Eb2.mid new file mode 100644 index 00000000000..5e5b8385f96 Binary files /dev/null and b/sound/instruments/recorder/Eb2.mid differ diff --git a/sound/instruments/recorder/Eb3.mid b/sound/instruments/recorder/Eb3.mid new file mode 100644 index 00000000000..8a907f6ebfe Binary files /dev/null and b/sound/instruments/recorder/Eb3.mid differ diff --git a/sound/instruments/recorder/Eb4.mid b/sound/instruments/recorder/Eb4.mid new file mode 100644 index 00000000000..4cf1c0ed28c Binary files /dev/null and b/sound/instruments/recorder/Eb4.mid differ diff --git a/sound/instruments/recorder/Eb5.mid b/sound/instruments/recorder/Eb5.mid new file mode 100644 index 00000000000..ea7c8983d38 Binary files /dev/null and b/sound/instruments/recorder/Eb5.mid differ diff --git a/sound/instruments/recorder/Eb6.mid b/sound/instruments/recorder/Eb6.mid new file mode 100644 index 00000000000..0c477b65fdc Binary files /dev/null and b/sound/instruments/recorder/Eb6.mid differ diff --git a/sound/instruments/recorder/En2.mid b/sound/instruments/recorder/En2.mid new file mode 100644 index 00000000000..ff9a551a8e0 Binary files /dev/null and b/sound/instruments/recorder/En2.mid differ diff --git a/sound/instruments/recorder/En3.mid b/sound/instruments/recorder/En3.mid new file mode 100644 index 00000000000..fd192ab704f Binary files /dev/null and b/sound/instruments/recorder/En3.mid differ diff --git a/sound/instruments/recorder/En4.mid b/sound/instruments/recorder/En4.mid new file mode 100644 index 00000000000..77c01ec6471 Binary files /dev/null and b/sound/instruments/recorder/En4.mid differ diff --git a/sound/instruments/recorder/En5.mid b/sound/instruments/recorder/En5.mid new file mode 100644 index 00000000000..be74f3f0972 Binary files /dev/null and b/sound/instruments/recorder/En5.mid differ diff --git a/sound/instruments/recorder/En6.mid b/sound/instruments/recorder/En6.mid new file mode 100644 index 00000000000..95365e9a264 Binary files /dev/null and b/sound/instruments/recorder/En6.mid differ diff --git a/sound/instruments/recorder/Fn2.mid b/sound/instruments/recorder/Fn2.mid new file mode 100644 index 00000000000..3a2563ea2ce Binary files /dev/null and b/sound/instruments/recorder/Fn2.mid differ diff --git a/sound/instruments/recorder/Fn3.mid b/sound/instruments/recorder/Fn3.mid new file mode 100644 index 00000000000..3114cce6d81 Binary files /dev/null and b/sound/instruments/recorder/Fn3.mid differ diff --git a/sound/instruments/recorder/Fn4.mid b/sound/instruments/recorder/Fn4.mid new file mode 100644 index 00000000000..012754e474c Binary files /dev/null and b/sound/instruments/recorder/Fn4.mid differ diff --git a/sound/instruments/recorder/Fn5.mid b/sound/instruments/recorder/Fn5.mid new file mode 100644 index 00000000000..83a83cc62e9 Binary files /dev/null and b/sound/instruments/recorder/Fn5.mid differ diff --git a/sound/instruments/recorder/Fn6.mid b/sound/instruments/recorder/Fn6.mid new file mode 100644 index 00000000000..9e7fbf85280 Binary files /dev/null and b/sound/instruments/recorder/Fn6.mid differ diff --git a/sound/instruments/recorder/Gb2.mid b/sound/instruments/recorder/Gb2.mid new file mode 100644 index 00000000000..639ea8a2d00 Binary files /dev/null and b/sound/instruments/recorder/Gb2.mid differ diff --git a/sound/instruments/recorder/Gb3.mid b/sound/instruments/recorder/Gb3.mid new file mode 100644 index 00000000000..b5b10b4993a Binary files /dev/null and b/sound/instruments/recorder/Gb3.mid differ diff --git a/sound/instruments/recorder/Gb4.mid b/sound/instruments/recorder/Gb4.mid new file mode 100644 index 00000000000..4fdf67d9b99 Binary files /dev/null and b/sound/instruments/recorder/Gb4.mid differ diff --git a/sound/instruments/recorder/Gb5.mid b/sound/instruments/recorder/Gb5.mid new file mode 100644 index 00000000000..233260ecc17 Binary files /dev/null and b/sound/instruments/recorder/Gb5.mid differ diff --git a/sound/instruments/recorder/Gb6.mid b/sound/instruments/recorder/Gb6.mid new file mode 100644 index 00000000000..d594ae7c956 Binary files /dev/null and b/sound/instruments/recorder/Gb6.mid differ diff --git a/sound/instruments/recorder/Gn2.mid b/sound/instruments/recorder/Gn2.mid new file mode 100644 index 00000000000..2786935b6d2 Binary files /dev/null and b/sound/instruments/recorder/Gn2.mid differ diff --git a/sound/instruments/recorder/Gn3.mid b/sound/instruments/recorder/Gn3.mid new file mode 100644 index 00000000000..d1aae368ab4 Binary files /dev/null and b/sound/instruments/recorder/Gn3.mid differ diff --git a/sound/instruments/recorder/Gn4.mid b/sound/instruments/recorder/Gn4.mid new file mode 100644 index 00000000000..3308c871d48 Binary files /dev/null and b/sound/instruments/recorder/Gn4.mid differ diff --git a/sound/instruments/recorder/Gn5.mid b/sound/instruments/recorder/Gn5.mid new file mode 100644 index 00000000000..a46440992c8 Binary files /dev/null and b/sound/instruments/recorder/Gn5.mid differ diff --git a/sound/instruments/recorder/Gn6.mid b/sound/instruments/recorder/Gn6.mid new file mode 100644 index 00000000000..0f84be6cdc7 Binary files /dev/null and b/sound/instruments/recorder/Gn6.mid differ diff --git a/sound/instruments/saxophone/Ab2.mid b/sound/instruments/saxophone/Ab2.mid new file mode 100644 index 00000000000..3408aba1316 Binary files /dev/null and b/sound/instruments/saxophone/Ab2.mid differ diff --git a/sound/instruments/saxophone/Ab3.mid b/sound/instruments/saxophone/Ab3.mid new file mode 100644 index 00000000000..e469c51b65b Binary files /dev/null and b/sound/instruments/saxophone/Ab3.mid differ diff --git a/sound/instruments/saxophone/Ab4.mid b/sound/instruments/saxophone/Ab4.mid new file mode 100644 index 00000000000..6ee2a9e41be Binary files /dev/null and b/sound/instruments/saxophone/Ab4.mid differ diff --git a/sound/instruments/saxophone/Ab5.mid b/sound/instruments/saxophone/Ab5.mid new file mode 100644 index 00000000000..40b60e31715 Binary files /dev/null and b/sound/instruments/saxophone/Ab5.mid differ diff --git a/sound/instruments/saxophone/Ab6.mid b/sound/instruments/saxophone/Ab6.mid new file mode 100644 index 00000000000..d38a8a6c714 Binary files /dev/null and b/sound/instruments/saxophone/Ab6.mid differ diff --git a/sound/instruments/saxophone/An2.mid b/sound/instruments/saxophone/An2.mid new file mode 100644 index 00000000000..d481ec5a450 Binary files /dev/null and b/sound/instruments/saxophone/An2.mid differ diff --git a/sound/instruments/saxophone/An3.mid b/sound/instruments/saxophone/An3.mid new file mode 100644 index 00000000000..744579fb4b6 Binary files /dev/null and b/sound/instruments/saxophone/An3.mid differ diff --git a/sound/instruments/saxophone/An4.mid b/sound/instruments/saxophone/An4.mid new file mode 100644 index 00000000000..1885ad32228 Binary files /dev/null and b/sound/instruments/saxophone/An4.mid differ diff --git a/sound/instruments/saxophone/An5.mid b/sound/instruments/saxophone/An5.mid new file mode 100644 index 00000000000..23cf20713cf Binary files /dev/null and b/sound/instruments/saxophone/An5.mid differ diff --git a/sound/instruments/saxophone/An6.mid b/sound/instruments/saxophone/An6.mid new file mode 100644 index 00000000000..0c94d822557 Binary files /dev/null and b/sound/instruments/saxophone/An6.mid differ diff --git a/sound/instruments/saxophone/Bb2.mid b/sound/instruments/saxophone/Bb2.mid new file mode 100644 index 00000000000..d30855aaee1 Binary files /dev/null and b/sound/instruments/saxophone/Bb2.mid differ diff --git a/sound/instruments/saxophone/Bb3.mid b/sound/instruments/saxophone/Bb3.mid new file mode 100644 index 00000000000..2354e4c3e87 Binary files /dev/null and b/sound/instruments/saxophone/Bb3.mid differ diff --git a/sound/instruments/saxophone/Bb4.mid b/sound/instruments/saxophone/Bb4.mid new file mode 100644 index 00000000000..5ac9de9585d Binary files /dev/null and b/sound/instruments/saxophone/Bb4.mid differ diff --git a/sound/instruments/saxophone/Bb5.mid b/sound/instruments/saxophone/Bb5.mid new file mode 100644 index 00000000000..347560269eb Binary files /dev/null and b/sound/instruments/saxophone/Bb5.mid differ diff --git a/sound/instruments/saxophone/Bb6.mid b/sound/instruments/saxophone/Bb6.mid new file mode 100644 index 00000000000..335a8df26c3 Binary files /dev/null and b/sound/instruments/saxophone/Bb6.mid differ diff --git a/sound/instruments/saxophone/Bn2.mid b/sound/instruments/saxophone/Bn2.mid new file mode 100644 index 00000000000..9f215b5c7ce Binary files /dev/null and b/sound/instruments/saxophone/Bn2.mid differ diff --git a/sound/instruments/saxophone/Bn3.mid b/sound/instruments/saxophone/Bn3.mid new file mode 100644 index 00000000000..1d28aca7076 Binary files /dev/null and b/sound/instruments/saxophone/Bn3.mid differ diff --git a/sound/instruments/saxophone/Bn4.mid b/sound/instruments/saxophone/Bn4.mid new file mode 100644 index 00000000000..5c8bdf9775e Binary files /dev/null and b/sound/instruments/saxophone/Bn4.mid differ diff --git a/sound/instruments/saxophone/Bn5.mid b/sound/instruments/saxophone/Bn5.mid new file mode 100644 index 00000000000..e74f1f7415c Binary files /dev/null and b/sound/instruments/saxophone/Bn5.mid differ diff --git a/sound/instruments/saxophone/Bn6.mid b/sound/instruments/saxophone/Bn6.mid new file mode 100644 index 00000000000..59d6e12a145 Binary files /dev/null and b/sound/instruments/saxophone/Bn6.mid differ diff --git a/sound/instruments/saxophone/Cn2.mid b/sound/instruments/saxophone/Cn2.mid new file mode 100644 index 00000000000..7a816e603b8 Binary files /dev/null and b/sound/instruments/saxophone/Cn2.mid differ diff --git a/sound/instruments/saxophone/Cn3.mid b/sound/instruments/saxophone/Cn3.mid new file mode 100644 index 00000000000..1a575b087dc Binary files /dev/null and b/sound/instruments/saxophone/Cn3.mid differ diff --git a/sound/instruments/saxophone/Cn4.mid b/sound/instruments/saxophone/Cn4.mid new file mode 100644 index 00000000000..56377f1aed9 Binary files /dev/null and b/sound/instruments/saxophone/Cn4.mid differ diff --git a/sound/instruments/saxophone/Cn5.mid b/sound/instruments/saxophone/Cn5.mid new file mode 100644 index 00000000000..cc023521272 Binary files /dev/null and b/sound/instruments/saxophone/Cn5.mid differ diff --git a/sound/instruments/saxophone/Cn6.mid b/sound/instruments/saxophone/Cn6.mid new file mode 100644 index 00000000000..ed149684846 Binary files /dev/null and b/sound/instruments/saxophone/Cn6.mid differ diff --git a/sound/instruments/saxophone/Db2.mid b/sound/instruments/saxophone/Db2.mid new file mode 100644 index 00000000000..3ccbf59863c Binary files /dev/null and b/sound/instruments/saxophone/Db2.mid differ diff --git a/sound/instruments/saxophone/Db3.mid b/sound/instruments/saxophone/Db3.mid new file mode 100644 index 00000000000..0d10fa08d80 Binary files /dev/null and b/sound/instruments/saxophone/Db3.mid differ diff --git a/sound/instruments/saxophone/Db4.mid b/sound/instruments/saxophone/Db4.mid new file mode 100644 index 00000000000..2684d9bd02d Binary files /dev/null and b/sound/instruments/saxophone/Db4.mid differ diff --git a/sound/instruments/saxophone/Db5.mid b/sound/instruments/saxophone/Db5.mid new file mode 100644 index 00000000000..8380516db07 Binary files /dev/null and b/sound/instruments/saxophone/Db5.mid differ diff --git a/sound/instruments/saxophone/Db6.mid b/sound/instruments/saxophone/Db6.mid new file mode 100644 index 00000000000..29f95c9e0c8 Binary files /dev/null and b/sound/instruments/saxophone/Db6.mid differ diff --git a/sound/instruments/saxophone/Dn2.mid b/sound/instruments/saxophone/Dn2.mid new file mode 100644 index 00000000000..19cf21557b4 Binary files /dev/null and b/sound/instruments/saxophone/Dn2.mid differ diff --git a/sound/instruments/saxophone/Dn3.mid b/sound/instruments/saxophone/Dn3.mid new file mode 100644 index 00000000000..24077502dd0 Binary files /dev/null and b/sound/instruments/saxophone/Dn3.mid differ diff --git a/sound/instruments/saxophone/Dn4.mid b/sound/instruments/saxophone/Dn4.mid new file mode 100644 index 00000000000..5208e98b43f Binary files /dev/null and b/sound/instruments/saxophone/Dn4.mid differ diff --git a/sound/instruments/saxophone/Dn5.mid b/sound/instruments/saxophone/Dn5.mid new file mode 100644 index 00000000000..cb40d8ca9c2 Binary files /dev/null and b/sound/instruments/saxophone/Dn5.mid differ diff --git a/sound/instruments/saxophone/Dn6.mid b/sound/instruments/saxophone/Dn6.mid new file mode 100644 index 00000000000..f18bcbb6d7a Binary files /dev/null and b/sound/instruments/saxophone/Dn6.mid differ diff --git a/sound/instruments/saxophone/Eb2.mid b/sound/instruments/saxophone/Eb2.mid new file mode 100644 index 00000000000..967622de3f0 Binary files /dev/null and b/sound/instruments/saxophone/Eb2.mid differ diff --git a/sound/instruments/saxophone/Eb3.mid b/sound/instruments/saxophone/Eb3.mid new file mode 100644 index 00000000000..160ed39a06b Binary files /dev/null and b/sound/instruments/saxophone/Eb3.mid differ diff --git a/sound/instruments/saxophone/Eb4.mid b/sound/instruments/saxophone/Eb4.mid new file mode 100644 index 00000000000..f125b54a120 Binary files /dev/null and b/sound/instruments/saxophone/Eb4.mid differ diff --git a/sound/instruments/saxophone/Eb5.mid b/sound/instruments/saxophone/Eb5.mid new file mode 100644 index 00000000000..7cde98bb88f Binary files /dev/null and b/sound/instruments/saxophone/Eb5.mid differ diff --git a/sound/instruments/saxophone/Eb6.mid b/sound/instruments/saxophone/Eb6.mid new file mode 100644 index 00000000000..f1804b61657 Binary files /dev/null and b/sound/instruments/saxophone/Eb6.mid differ diff --git a/sound/instruments/saxophone/En2.mid b/sound/instruments/saxophone/En2.mid new file mode 100644 index 00000000000..5f8168a3cbd Binary files /dev/null and b/sound/instruments/saxophone/En2.mid differ diff --git a/sound/instruments/saxophone/En3.mid b/sound/instruments/saxophone/En3.mid new file mode 100644 index 00000000000..1762e61de97 Binary files /dev/null and b/sound/instruments/saxophone/En3.mid differ diff --git a/sound/instruments/saxophone/En4.mid b/sound/instruments/saxophone/En4.mid new file mode 100644 index 00000000000..0304e520a0f Binary files /dev/null and b/sound/instruments/saxophone/En4.mid differ diff --git a/sound/instruments/saxophone/En5.mid b/sound/instruments/saxophone/En5.mid new file mode 100644 index 00000000000..40d32ab74ac Binary files /dev/null and b/sound/instruments/saxophone/En5.mid differ diff --git a/sound/instruments/saxophone/En6.mid b/sound/instruments/saxophone/En6.mid new file mode 100644 index 00000000000..5bdd835c5c4 Binary files /dev/null and b/sound/instruments/saxophone/En6.mid differ diff --git a/sound/instruments/saxophone/Fn2.mid b/sound/instruments/saxophone/Fn2.mid new file mode 100644 index 00000000000..9260b884d8a Binary files /dev/null and b/sound/instruments/saxophone/Fn2.mid differ diff --git a/sound/instruments/saxophone/Fn3.mid b/sound/instruments/saxophone/Fn3.mid new file mode 100644 index 00000000000..fb22409dcc8 Binary files /dev/null and b/sound/instruments/saxophone/Fn3.mid differ diff --git a/sound/instruments/saxophone/Fn4.mid b/sound/instruments/saxophone/Fn4.mid new file mode 100644 index 00000000000..fb4ffd3a593 Binary files /dev/null and b/sound/instruments/saxophone/Fn4.mid differ diff --git a/sound/instruments/saxophone/Fn5.mid b/sound/instruments/saxophone/Fn5.mid new file mode 100644 index 00000000000..9b7241e59e3 Binary files /dev/null and b/sound/instruments/saxophone/Fn5.mid differ diff --git a/sound/instruments/saxophone/Fn6.mid b/sound/instruments/saxophone/Fn6.mid new file mode 100644 index 00000000000..c402032321a Binary files /dev/null and b/sound/instruments/saxophone/Fn6.mid differ diff --git a/sound/instruments/saxophone/Gb2.mid b/sound/instruments/saxophone/Gb2.mid new file mode 100644 index 00000000000..2a872b5dec5 Binary files /dev/null and b/sound/instruments/saxophone/Gb2.mid differ diff --git a/sound/instruments/saxophone/Gb3.mid b/sound/instruments/saxophone/Gb3.mid new file mode 100644 index 00000000000..5e5e5322826 Binary files /dev/null and b/sound/instruments/saxophone/Gb3.mid differ diff --git a/sound/instruments/saxophone/Gb4.mid b/sound/instruments/saxophone/Gb4.mid new file mode 100644 index 00000000000..758125de3e6 Binary files /dev/null and b/sound/instruments/saxophone/Gb4.mid differ diff --git a/sound/instruments/saxophone/Gb5.mid b/sound/instruments/saxophone/Gb5.mid new file mode 100644 index 00000000000..4afd8c65c90 Binary files /dev/null and b/sound/instruments/saxophone/Gb5.mid differ diff --git a/sound/instruments/saxophone/Gb6.mid b/sound/instruments/saxophone/Gb6.mid new file mode 100644 index 00000000000..a8f1d2107e4 Binary files /dev/null and b/sound/instruments/saxophone/Gb6.mid differ diff --git a/sound/instruments/saxophone/Gn2.mid b/sound/instruments/saxophone/Gn2.mid new file mode 100644 index 00000000000..750be55f685 Binary files /dev/null and b/sound/instruments/saxophone/Gn2.mid differ diff --git a/sound/instruments/saxophone/Gn4.mid b/sound/instruments/saxophone/Gn4.mid new file mode 100644 index 00000000000..2892048d15e Binary files /dev/null and b/sound/instruments/saxophone/Gn4.mid differ diff --git a/sound/instruments/saxophone/Gn5.mid b/sound/instruments/saxophone/Gn5.mid new file mode 100644 index 00000000000..8ef4ceffe0d Binary files /dev/null and b/sound/instruments/saxophone/Gn5.mid differ diff --git a/sound/instruments/saxophone/Gn6.mid b/sound/instruments/saxophone/Gn6.mid new file mode 100644 index 00000000000..26cbd145668 Binary files /dev/null and b/sound/instruments/saxophone/Gn6.mid differ diff --git a/sound/instruments/trombone/Ab2.mid b/sound/instruments/trombone/Ab2.mid new file mode 100644 index 00000000000..5802027e672 Binary files /dev/null and b/sound/instruments/trombone/Ab2.mid differ diff --git a/sound/instruments/trombone/Ab3.mid b/sound/instruments/trombone/Ab3.mid new file mode 100644 index 00000000000..9e6dc5559f2 Binary files /dev/null and b/sound/instruments/trombone/Ab3.mid differ diff --git a/sound/instruments/trombone/Ab4.mid b/sound/instruments/trombone/Ab4.mid new file mode 100644 index 00000000000..b5bcb5fc93d Binary files /dev/null and b/sound/instruments/trombone/Ab4.mid differ diff --git a/sound/instruments/trombone/Ab5.mid b/sound/instruments/trombone/Ab5.mid new file mode 100644 index 00000000000..e42b8f6f6f1 Binary files /dev/null and b/sound/instruments/trombone/Ab5.mid differ diff --git a/sound/instruments/trombone/Ab6.mid b/sound/instruments/trombone/Ab6.mid new file mode 100644 index 00000000000..40d6d6b7b92 Binary files /dev/null and b/sound/instruments/trombone/Ab6.mid differ diff --git a/sound/instruments/trombone/An2.mid b/sound/instruments/trombone/An2.mid new file mode 100644 index 00000000000..30523e3cc3d Binary files /dev/null and b/sound/instruments/trombone/An2.mid differ diff --git a/sound/instruments/trombone/An3.mid b/sound/instruments/trombone/An3.mid new file mode 100644 index 00000000000..05d4d28e2e4 Binary files /dev/null and b/sound/instruments/trombone/An3.mid differ diff --git a/sound/instruments/trombone/An4.mid b/sound/instruments/trombone/An4.mid new file mode 100644 index 00000000000..99d1a22bc72 Binary files /dev/null and b/sound/instruments/trombone/An4.mid differ diff --git a/sound/instruments/trombone/An5.mid b/sound/instruments/trombone/An5.mid new file mode 100644 index 00000000000..99978bf4bdc Binary files /dev/null and b/sound/instruments/trombone/An5.mid differ diff --git a/sound/instruments/trombone/An6.mid b/sound/instruments/trombone/An6.mid new file mode 100644 index 00000000000..11e6557fe82 Binary files /dev/null and b/sound/instruments/trombone/An6.mid differ diff --git a/sound/instruments/trombone/Bb2.mid b/sound/instruments/trombone/Bb2.mid new file mode 100644 index 00000000000..e1068d551c1 Binary files /dev/null and b/sound/instruments/trombone/Bb2.mid differ diff --git a/sound/instruments/trombone/Bb3.mid b/sound/instruments/trombone/Bb3.mid new file mode 100644 index 00000000000..ce9a57613f0 Binary files /dev/null and b/sound/instruments/trombone/Bb3.mid differ diff --git a/sound/instruments/trombone/Bb4.mid b/sound/instruments/trombone/Bb4.mid new file mode 100644 index 00000000000..5dfdf26ec5d Binary files /dev/null and b/sound/instruments/trombone/Bb4.mid differ diff --git a/sound/instruments/trombone/Bb5.mid b/sound/instruments/trombone/Bb5.mid new file mode 100644 index 00000000000..ea74dc444b9 Binary files /dev/null and b/sound/instruments/trombone/Bb5.mid differ diff --git a/sound/instruments/trombone/Bb6.mid b/sound/instruments/trombone/Bb6.mid new file mode 100644 index 00000000000..e30707df542 Binary files /dev/null and b/sound/instruments/trombone/Bb6.mid differ diff --git a/sound/instruments/trombone/Bn2.mid b/sound/instruments/trombone/Bn2.mid new file mode 100644 index 00000000000..7c89dff091c Binary files /dev/null and b/sound/instruments/trombone/Bn2.mid differ diff --git a/sound/instruments/trombone/Bn3.mid b/sound/instruments/trombone/Bn3.mid new file mode 100644 index 00000000000..df92f0e4e32 Binary files /dev/null and b/sound/instruments/trombone/Bn3.mid differ diff --git a/sound/instruments/trombone/Bn4.mid b/sound/instruments/trombone/Bn4.mid new file mode 100644 index 00000000000..c46cb4d6a78 Binary files /dev/null and b/sound/instruments/trombone/Bn4.mid differ diff --git a/sound/instruments/trombone/Bn5.mid b/sound/instruments/trombone/Bn5.mid new file mode 100644 index 00000000000..f09d981ac05 Binary files /dev/null and b/sound/instruments/trombone/Bn5.mid differ diff --git a/sound/instruments/trombone/Bn6.mid b/sound/instruments/trombone/Bn6.mid new file mode 100644 index 00000000000..c23f2435681 Binary files /dev/null and b/sound/instruments/trombone/Bn6.mid differ diff --git a/sound/instruments/trombone/Cn2.mid b/sound/instruments/trombone/Cn2.mid new file mode 100644 index 00000000000..3a24f39ff91 Binary files /dev/null and b/sound/instruments/trombone/Cn2.mid differ diff --git a/sound/instruments/trombone/Cn3.mid b/sound/instruments/trombone/Cn3.mid new file mode 100644 index 00000000000..d24dd658b66 Binary files /dev/null and b/sound/instruments/trombone/Cn3.mid differ diff --git a/sound/instruments/trombone/Cn4.mid b/sound/instruments/trombone/Cn4.mid new file mode 100644 index 00000000000..756ba0ab8d2 Binary files /dev/null and b/sound/instruments/trombone/Cn4.mid differ diff --git a/sound/instruments/trombone/Cn5.mid b/sound/instruments/trombone/Cn5.mid new file mode 100644 index 00000000000..3d5d0a3446d Binary files /dev/null and b/sound/instruments/trombone/Cn5.mid differ diff --git a/sound/instruments/trombone/Cn6.mid b/sound/instruments/trombone/Cn6.mid new file mode 100644 index 00000000000..605eec24ee1 Binary files /dev/null and b/sound/instruments/trombone/Cn6.mid differ diff --git a/sound/instruments/trombone/Db2.mid b/sound/instruments/trombone/Db2.mid new file mode 100644 index 00000000000..ef959df821c Binary files /dev/null and b/sound/instruments/trombone/Db2.mid differ diff --git a/sound/instruments/trombone/Db3.mid b/sound/instruments/trombone/Db3.mid new file mode 100644 index 00000000000..664d67be67d Binary files /dev/null and b/sound/instruments/trombone/Db3.mid differ diff --git a/sound/instruments/trombone/Db4.mid b/sound/instruments/trombone/Db4.mid new file mode 100644 index 00000000000..2b4e028f409 Binary files /dev/null and b/sound/instruments/trombone/Db4.mid differ diff --git a/sound/instruments/trombone/Db5.mid b/sound/instruments/trombone/Db5.mid new file mode 100644 index 00000000000..2748ba3cd4c Binary files /dev/null and b/sound/instruments/trombone/Db5.mid differ diff --git a/sound/instruments/trombone/Db6.mid b/sound/instruments/trombone/Db6.mid new file mode 100644 index 00000000000..d7737f180ac Binary files /dev/null and b/sound/instruments/trombone/Db6.mid differ diff --git a/sound/instruments/trombone/Dn2.mid b/sound/instruments/trombone/Dn2.mid new file mode 100644 index 00000000000..cddd3ce5bd8 Binary files /dev/null and b/sound/instruments/trombone/Dn2.mid differ diff --git a/sound/instruments/trombone/Dn3.mid b/sound/instruments/trombone/Dn3.mid new file mode 100644 index 00000000000..3555246d9d3 Binary files /dev/null and b/sound/instruments/trombone/Dn3.mid differ diff --git a/sound/instruments/trombone/Dn4.mid b/sound/instruments/trombone/Dn4.mid new file mode 100644 index 00000000000..51f80eb7f03 Binary files /dev/null and b/sound/instruments/trombone/Dn4.mid differ diff --git a/sound/instruments/trombone/Dn5.mid b/sound/instruments/trombone/Dn5.mid new file mode 100644 index 00000000000..d91a461b89a Binary files /dev/null and b/sound/instruments/trombone/Dn5.mid differ diff --git a/sound/instruments/trombone/Dn6.mid b/sound/instruments/trombone/Dn6.mid new file mode 100644 index 00000000000..d2dc6f0e217 Binary files /dev/null and b/sound/instruments/trombone/Dn6.mid differ diff --git a/sound/instruments/trombone/Eb2.mid b/sound/instruments/trombone/Eb2.mid new file mode 100644 index 00000000000..7658c914be6 Binary files /dev/null and b/sound/instruments/trombone/Eb2.mid differ diff --git a/sound/instruments/trombone/Eb3.mid b/sound/instruments/trombone/Eb3.mid new file mode 100644 index 00000000000..5d781dd543d Binary files /dev/null and b/sound/instruments/trombone/Eb3.mid differ diff --git a/sound/instruments/trombone/Eb4.mid b/sound/instruments/trombone/Eb4.mid new file mode 100644 index 00000000000..6ee879de04a Binary files /dev/null and b/sound/instruments/trombone/Eb4.mid differ diff --git a/sound/instruments/trombone/Eb5.mid b/sound/instruments/trombone/Eb5.mid new file mode 100644 index 00000000000..a2278114546 Binary files /dev/null and b/sound/instruments/trombone/Eb5.mid differ diff --git a/sound/instruments/trombone/Eb6.mid b/sound/instruments/trombone/Eb6.mid new file mode 100644 index 00000000000..a9ffc37b89b Binary files /dev/null and b/sound/instruments/trombone/Eb6.mid differ diff --git a/sound/instruments/trombone/En2.mid b/sound/instruments/trombone/En2.mid new file mode 100644 index 00000000000..f47e4460a12 Binary files /dev/null and b/sound/instruments/trombone/En2.mid differ diff --git a/sound/instruments/trombone/En3.mid b/sound/instruments/trombone/En3.mid new file mode 100644 index 00000000000..5f78d13af97 Binary files /dev/null and b/sound/instruments/trombone/En3.mid differ diff --git a/sound/instruments/trombone/En4.mid b/sound/instruments/trombone/En4.mid new file mode 100644 index 00000000000..687a503af0b Binary files /dev/null and b/sound/instruments/trombone/En4.mid differ diff --git a/sound/instruments/trombone/En5.mid b/sound/instruments/trombone/En5.mid new file mode 100644 index 00000000000..134bf651b60 Binary files /dev/null and b/sound/instruments/trombone/En5.mid differ diff --git a/sound/instruments/trombone/En6.mid b/sound/instruments/trombone/En6.mid new file mode 100644 index 00000000000..c852475e1b1 Binary files /dev/null and b/sound/instruments/trombone/En6.mid differ diff --git a/sound/instruments/trombone/Fn2.mid b/sound/instruments/trombone/Fn2.mid new file mode 100644 index 00000000000..f9bc985538c Binary files /dev/null and b/sound/instruments/trombone/Fn2.mid differ diff --git a/sound/instruments/trombone/Fn3.mid b/sound/instruments/trombone/Fn3.mid new file mode 100644 index 00000000000..cd5656da075 Binary files /dev/null and b/sound/instruments/trombone/Fn3.mid differ diff --git a/sound/instruments/trombone/Fn4.mid b/sound/instruments/trombone/Fn4.mid new file mode 100644 index 00000000000..c677ade9b17 Binary files /dev/null and b/sound/instruments/trombone/Fn4.mid differ diff --git a/sound/instruments/trombone/Fn5.mid b/sound/instruments/trombone/Fn5.mid new file mode 100644 index 00000000000..f610ce04c6f Binary files /dev/null and b/sound/instruments/trombone/Fn5.mid differ diff --git a/sound/instruments/trombone/Fn6.mid b/sound/instruments/trombone/Fn6.mid new file mode 100644 index 00000000000..07382533cab Binary files /dev/null and b/sound/instruments/trombone/Fn6.mid differ diff --git a/sound/instruments/trombone/Gb2.mid b/sound/instruments/trombone/Gb2.mid new file mode 100644 index 00000000000..d506f40642b Binary files /dev/null and b/sound/instruments/trombone/Gb2.mid differ diff --git a/sound/instruments/trombone/Gb3.mid b/sound/instruments/trombone/Gb3.mid new file mode 100644 index 00000000000..fe18266802c Binary files /dev/null and b/sound/instruments/trombone/Gb3.mid differ diff --git a/sound/instruments/trombone/Gb4.mid b/sound/instruments/trombone/Gb4.mid new file mode 100644 index 00000000000..7a22419215f Binary files /dev/null and b/sound/instruments/trombone/Gb4.mid differ diff --git a/sound/instruments/trombone/Gb5.mid b/sound/instruments/trombone/Gb5.mid new file mode 100644 index 00000000000..7733d574e84 Binary files /dev/null and b/sound/instruments/trombone/Gb5.mid differ diff --git a/sound/instruments/trombone/Gb6.mid b/sound/instruments/trombone/Gb6.mid new file mode 100644 index 00000000000..3a6e4893b4d Binary files /dev/null and b/sound/instruments/trombone/Gb6.mid differ diff --git a/sound/instruments/trombone/Gn2.mid b/sound/instruments/trombone/Gn2.mid new file mode 100644 index 00000000000..cdebb6bc0a3 Binary files /dev/null and b/sound/instruments/trombone/Gn2.mid differ diff --git a/sound/instruments/trombone/Gn3.mid b/sound/instruments/trombone/Gn3.mid new file mode 100644 index 00000000000..8c915effeb3 Binary files /dev/null and b/sound/instruments/trombone/Gn3.mid differ diff --git a/sound/instruments/trombone/Gn4.mid b/sound/instruments/trombone/Gn4.mid new file mode 100644 index 00000000000..1ddcaa30819 Binary files /dev/null and b/sound/instruments/trombone/Gn4.mid differ diff --git a/sound/instruments/trombone/Gn5.mid b/sound/instruments/trombone/Gn5.mid new file mode 100644 index 00000000000..ba787045f01 Binary files /dev/null and b/sound/instruments/trombone/Gn5.mid differ diff --git a/sound/instruments/trombone/Gn6.mid b/sound/instruments/trombone/Gn6.mid new file mode 100644 index 00000000000..b2e6f3f13d6 Binary files /dev/null and b/sound/instruments/trombone/Gn6.mid differ diff --git a/sound/violin/Ab3.ogg b/sound/instruments/violin/Ab3.ogg similarity index 100% rename from sound/violin/Ab3.ogg rename to sound/instruments/violin/Ab3.ogg diff --git a/sound/violin/Ab4.ogg b/sound/instruments/violin/Ab4.ogg similarity index 100% rename from sound/violin/Ab4.ogg rename to sound/instruments/violin/Ab4.ogg diff --git a/sound/violin/Ab5.ogg b/sound/instruments/violin/Ab5.ogg similarity index 100% rename from sound/violin/Ab5.ogg rename to sound/instruments/violin/Ab5.ogg diff --git a/sound/violin/Ab6.ogg b/sound/instruments/violin/Ab6.ogg similarity index 100% rename from sound/violin/Ab6.ogg rename to sound/instruments/violin/Ab6.ogg diff --git a/sound/violin/An3.ogg b/sound/instruments/violin/An3.ogg similarity index 100% rename from sound/violin/An3.ogg rename to sound/instruments/violin/An3.ogg diff --git a/sound/violin/An4.ogg b/sound/instruments/violin/An4.ogg similarity index 100% rename from sound/violin/An4.ogg rename to sound/instruments/violin/An4.ogg diff --git a/sound/violin/An5.ogg b/sound/instruments/violin/An5.ogg similarity index 100% rename from sound/violin/An5.ogg rename to sound/instruments/violin/An5.ogg diff --git a/sound/violin/An6.ogg b/sound/instruments/violin/An6.ogg similarity index 100% rename from sound/violin/An6.ogg rename to sound/instruments/violin/An6.ogg diff --git a/sound/violin/Bb3.ogg b/sound/instruments/violin/Bb3.ogg similarity index 100% rename from sound/violin/Bb3.ogg rename to sound/instruments/violin/Bb3.ogg diff --git a/sound/violin/Bb4.ogg b/sound/instruments/violin/Bb4.ogg similarity index 100% rename from sound/violin/Bb4.ogg rename to sound/instruments/violin/Bb4.ogg diff --git a/sound/violin/Bb5.ogg b/sound/instruments/violin/Bb5.ogg similarity index 100% rename from sound/violin/Bb5.ogg rename to sound/instruments/violin/Bb5.ogg diff --git a/sound/violin/Bb6.ogg b/sound/instruments/violin/Bb6.ogg similarity index 100% rename from sound/violin/Bb6.ogg rename to sound/instruments/violin/Bb6.ogg diff --git a/sound/violin/Bn3.ogg b/sound/instruments/violin/Bn3.ogg similarity index 100% rename from sound/violin/Bn3.ogg rename to sound/instruments/violin/Bn3.ogg diff --git a/sound/violin/Bn4.ogg b/sound/instruments/violin/Bn4.ogg similarity index 100% rename from sound/violin/Bn4.ogg rename to sound/instruments/violin/Bn4.ogg diff --git a/sound/violin/Bn5.ogg b/sound/instruments/violin/Bn5.ogg similarity index 100% rename from sound/violin/Bn5.ogg rename to sound/instruments/violin/Bn5.ogg diff --git a/sound/violin/Bn6.ogg b/sound/instruments/violin/Bn6.ogg similarity index 100% rename from sound/violin/Bn6.ogg rename to sound/instruments/violin/Bn6.ogg diff --git a/sound/violin/Cn4.ogg b/sound/instruments/violin/Cn4.ogg similarity index 100% rename from sound/violin/Cn4.ogg rename to sound/instruments/violin/Cn4.ogg diff --git a/sound/violin/Cn5.ogg b/sound/instruments/violin/Cn5.ogg similarity index 100% rename from sound/violin/Cn5.ogg rename to sound/instruments/violin/Cn5.ogg diff --git a/sound/violin/Cn6.ogg b/sound/instruments/violin/Cn6.ogg similarity index 100% rename from sound/violin/Cn6.ogg rename to sound/instruments/violin/Cn6.ogg diff --git a/sound/violin/Cn7.ogg b/sound/instruments/violin/Cn7.ogg similarity index 100% rename from sound/violin/Cn7.ogg rename to sound/instruments/violin/Cn7.ogg diff --git a/sound/violin/Db4.ogg b/sound/instruments/violin/Db4.ogg similarity index 100% rename from sound/violin/Db4.ogg rename to sound/instruments/violin/Db4.ogg diff --git a/sound/violin/Db5.ogg b/sound/instruments/violin/Db5.ogg similarity index 100% rename from sound/violin/Db5.ogg rename to sound/instruments/violin/Db5.ogg diff --git a/sound/violin/Db6.ogg b/sound/instruments/violin/Db6.ogg similarity index 100% rename from sound/violin/Db6.ogg rename to sound/instruments/violin/Db6.ogg diff --git a/sound/violin/Db7.ogg b/sound/instruments/violin/Db7.ogg similarity index 100% rename from sound/violin/Db7.ogg rename to sound/instruments/violin/Db7.ogg diff --git a/sound/violin/Dn4.ogg b/sound/instruments/violin/Dn4.ogg similarity index 100% rename from sound/violin/Dn4.ogg rename to sound/instruments/violin/Dn4.ogg diff --git a/sound/violin/Dn5.ogg b/sound/instruments/violin/Dn5.ogg similarity index 100% rename from sound/violin/Dn5.ogg rename to sound/instruments/violin/Dn5.ogg diff --git a/sound/violin/Dn6.ogg b/sound/instruments/violin/Dn6.ogg similarity index 100% rename from sound/violin/Dn6.ogg rename to sound/instruments/violin/Dn6.ogg diff --git a/sound/violin/Dn7.ogg b/sound/instruments/violin/Dn7.ogg similarity index 100% rename from sound/violin/Dn7.ogg rename to sound/instruments/violin/Dn7.ogg diff --git a/sound/violin/Eb4.ogg b/sound/instruments/violin/Eb4.ogg similarity index 100% rename from sound/violin/Eb4.ogg rename to sound/instruments/violin/Eb4.ogg diff --git a/sound/violin/Eb5.ogg b/sound/instruments/violin/Eb5.ogg similarity index 100% rename from sound/violin/Eb5.ogg rename to sound/instruments/violin/Eb5.ogg diff --git a/sound/violin/Eb6.ogg b/sound/instruments/violin/Eb6.ogg similarity index 100% rename from sound/violin/Eb6.ogg rename to sound/instruments/violin/Eb6.ogg diff --git a/sound/violin/En4.ogg b/sound/instruments/violin/En4.ogg similarity index 100% rename from sound/violin/En4.ogg rename to sound/instruments/violin/En4.ogg diff --git a/sound/violin/En5.ogg b/sound/instruments/violin/En5.ogg similarity index 100% rename from sound/violin/En5.ogg rename to sound/instruments/violin/En5.ogg diff --git a/sound/violin/En6.ogg b/sound/instruments/violin/En6.ogg similarity index 100% rename from sound/violin/En6.ogg rename to sound/instruments/violin/En6.ogg diff --git a/sound/violin/Fn4.ogg b/sound/instruments/violin/Fn4.ogg similarity index 100% rename from sound/violin/Fn4.ogg rename to sound/instruments/violin/Fn4.ogg diff --git a/sound/violin/Fn5.ogg b/sound/instruments/violin/Fn5.ogg similarity index 100% rename from sound/violin/Fn5.ogg rename to sound/instruments/violin/Fn5.ogg diff --git a/sound/violin/Fn6.ogg b/sound/instruments/violin/Fn6.ogg similarity index 100% rename from sound/violin/Fn6.ogg rename to sound/instruments/violin/Fn6.ogg diff --git a/sound/violin/Gb4.ogg b/sound/instruments/violin/Gb4.ogg similarity index 100% rename from sound/violin/Gb4.ogg rename to sound/instruments/violin/Gb4.ogg diff --git a/sound/violin/Gb5.ogg b/sound/instruments/violin/Gb5.ogg similarity index 100% rename from sound/violin/Gb5.ogg rename to sound/instruments/violin/Gb5.ogg diff --git a/sound/violin/Gb6.ogg b/sound/instruments/violin/Gb6.ogg similarity index 100% rename from sound/violin/Gb6.ogg rename to sound/instruments/violin/Gb6.ogg diff --git a/sound/violin/Gn3.ogg b/sound/instruments/violin/Gn3.ogg similarity index 100% rename from sound/violin/Gn3.ogg rename to sound/instruments/violin/Gn3.ogg diff --git a/sound/violin/Gn4.ogg b/sound/instruments/violin/Gn4.ogg similarity index 100% rename from sound/violin/Gn4.ogg rename to sound/instruments/violin/Gn4.ogg diff --git a/sound/violin/Gn5.ogg b/sound/instruments/violin/Gn5.ogg similarity index 100% rename from sound/violin/Gn5.ogg rename to sound/instruments/violin/Gn5.ogg diff --git a/sound/violin/Gn6.ogg b/sound/instruments/violin/Gn6.ogg similarity index 100% rename from sound/violin/Gn6.ogg rename to sound/instruments/violin/Gn6.ogg diff --git a/sound/instruments/xylophone/Ab2.mid b/sound/instruments/xylophone/Ab2.mid new file mode 100644 index 00000000000..f8d08b5995a Binary files /dev/null and b/sound/instruments/xylophone/Ab2.mid differ diff --git a/sound/instruments/xylophone/Ab3.mid b/sound/instruments/xylophone/Ab3.mid new file mode 100644 index 00000000000..f34de3dcd6b Binary files /dev/null and b/sound/instruments/xylophone/Ab3.mid differ diff --git a/sound/instruments/xylophone/Ab4.mid b/sound/instruments/xylophone/Ab4.mid new file mode 100644 index 00000000000..ecca495a6ae Binary files /dev/null and b/sound/instruments/xylophone/Ab4.mid differ diff --git a/sound/instruments/xylophone/Ab5.mid b/sound/instruments/xylophone/Ab5.mid new file mode 100644 index 00000000000..4d277c9e0c7 Binary files /dev/null and b/sound/instruments/xylophone/Ab5.mid differ diff --git a/sound/instruments/xylophone/Ab6.mid b/sound/instruments/xylophone/Ab6.mid new file mode 100644 index 00000000000..b13d6aacdd7 Binary files /dev/null and b/sound/instruments/xylophone/Ab6.mid differ diff --git a/sound/instruments/xylophone/An2.mid b/sound/instruments/xylophone/An2.mid new file mode 100644 index 00000000000..cf6be5cf199 Binary files /dev/null and b/sound/instruments/xylophone/An2.mid differ diff --git a/sound/instruments/xylophone/An3.mid b/sound/instruments/xylophone/An3.mid new file mode 100644 index 00000000000..196be155a63 Binary files /dev/null and b/sound/instruments/xylophone/An3.mid differ diff --git a/sound/instruments/xylophone/An4.mid b/sound/instruments/xylophone/An4.mid new file mode 100644 index 00000000000..f7236042a6a Binary files /dev/null and b/sound/instruments/xylophone/An4.mid differ diff --git a/sound/instruments/xylophone/An5.mid b/sound/instruments/xylophone/An5.mid new file mode 100644 index 00000000000..c44d8a43aa4 Binary files /dev/null and b/sound/instruments/xylophone/An5.mid differ diff --git a/sound/instruments/xylophone/An6.mid b/sound/instruments/xylophone/An6.mid new file mode 100644 index 00000000000..c94d839e673 Binary files /dev/null and b/sound/instruments/xylophone/An6.mid differ diff --git a/sound/instruments/xylophone/Bb2.mid b/sound/instruments/xylophone/Bb2.mid new file mode 100644 index 00000000000..ad96c63e5d1 Binary files /dev/null and b/sound/instruments/xylophone/Bb2.mid differ diff --git a/sound/instruments/xylophone/Bb3.mid b/sound/instruments/xylophone/Bb3.mid new file mode 100644 index 00000000000..96e4eabfd3f Binary files /dev/null and b/sound/instruments/xylophone/Bb3.mid differ diff --git a/sound/instruments/xylophone/Bb4.mid b/sound/instruments/xylophone/Bb4.mid new file mode 100644 index 00000000000..5a9b40b71dd Binary files /dev/null and b/sound/instruments/xylophone/Bb4.mid differ diff --git a/sound/instruments/xylophone/Bb5.mid b/sound/instruments/xylophone/Bb5.mid new file mode 100644 index 00000000000..74817b705a7 Binary files /dev/null and b/sound/instruments/xylophone/Bb5.mid differ diff --git a/sound/instruments/xylophone/Bb6.mid b/sound/instruments/xylophone/Bb6.mid new file mode 100644 index 00000000000..7a998a857b7 Binary files /dev/null and b/sound/instruments/xylophone/Bb6.mid differ diff --git a/sound/instruments/xylophone/Bn2.mid b/sound/instruments/xylophone/Bn2.mid new file mode 100644 index 00000000000..7bc2a1bb76d Binary files /dev/null and b/sound/instruments/xylophone/Bn2.mid differ diff --git a/sound/instruments/xylophone/Bn3.mid b/sound/instruments/xylophone/Bn3.mid new file mode 100644 index 00000000000..c7375e6577c Binary files /dev/null and b/sound/instruments/xylophone/Bn3.mid differ diff --git a/sound/instruments/xylophone/Bn4.mid b/sound/instruments/xylophone/Bn4.mid new file mode 100644 index 00000000000..dfdcc32f5f9 Binary files /dev/null and b/sound/instruments/xylophone/Bn4.mid differ diff --git a/sound/instruments/xylophone/Bn5.mid b/sound/instruments/xylophone/Bn5.mid new file mode 100644 index 00000000000..f51313d527f Binary files /dev/null and b/sound/instruments/xylophone/Bn5.mid differ diff --git a/sound/instruments/xylophone/Bn6.mid b/sound/instruments/xylophone/Bn6.mid new file mode 100644 index 00000000000..6dcbc8cd6a1 Binary files /dev/null and b/sound/instruments/xylophone/Bn6.mid differ diff --git a/sound/instruments/xylophone/Cn2.mid b/sound/instruments/xylophone/Cn2.mid new file mode 100644 index 00000000000..6ae074d342d Binary files /dev/null and b/sound/instruments/xylophone/Cn2.mid differ diff --git a/sound/instruments/xylophone/Cn3.mid b/sound/instruments/xylophone/Cn3.mid new file mode 100644 index 00000000000..bdc7d688ee4 Binary files /dev/null and b/sound/instruments/xylophone/Cn3.mid differ diff --git a/sound/instruments/xylophone/Cn4.mid b/sound/instruments/xylophone/Cn4.mid new file mode 100644 index 00000000000..956e93f460e Binary files /dev/null and b/sound/instruments/xylophone/Cn4.mid differ diff --git a/sound/instruments/xylophone/Cn5.mid b/sound/instruments/xylophone/Cn5.mid new file mode 100644 index 00000000000..b88f09ea41a Binary files /dev/null and b/sound/instruments/xylophone/Cn5.mid differ diff --git a/sound/instruments/xylophone/Cn6.mid b/sound/instruments/xylophone/Cn6.mid new file mode 100644 index 00000000000..fd1e01d0e5f Binary files /dev/null and b/sound/instruments/xylophone/Cn6.mid differ diff --git a/sound/instruments/xylophone/Db2.mid b/sound/instruments/xylophone/Db2.mid new file mode 100644 index 00000000000..d6c6250abf5 Binary files /dev/null and b/sound/instruments/xylophone/Db2.mid differ diff --git a/sound/instruments/xylophone/Db3.mid b/sound/instruments/xylophone/Db3.mid new file mode 100644 index 00000000000..22ad1728373 Binary files /dev/null and b/sound/instruments/xylophone/Db3.mid differ diff --git a/sound/instruments/xylophone/Db4.mid b/sound/instruments/xylophone/Db4.mid new file mode 100644 index 00000000000..19d2b5acd6a Binary files /dev/null and b/sound/instruments/xylophone/Db4.mid differ diff --git a/sound/instruments/xylophone/Db5.mid b/sound/instruments/xylophone/Db5.mid new file mode 100644 index 00000000000..bc747935ec7 Binary files /dev/null and b/sound/instruments/xylophone/Db5.mid differ diff --git a/sound/instruments/xylophone/Db6.mid b/sound/instruments/xylophone/Db6.mid new file mode 100644 index 00000000000..6b5e16cf66f Binary files /dev/null and b/sound/instruments/xylophone/Db6.mid differ diff --git a/sound/instruments/xylophone/Dn2.mid b/sound/instruments/xylophone/Dn2.mid new file mode 100644 index 00000000000..caf81563c16 Binary files /dev/null and b/sound/instruments/xylophone/Dn2.mid differ diff --git a/sound/instruments/xylophone/Dn3.mid b/sound/instruments/xylophone/Dn3.mid new file mode 100644 index 00000000000..b98e10291e8 Binary files /dev/null and b/sound/instruments/xylophone/Dn3.mid differ diff --git a/sound/instruments/xylophone/Dn4.mid b/sound/instruments/xylophone/Dn4.mid new file mode 100644 index 00000000000..cb1b295f359 Binary files /dev/null and b/sound/instruments/xylophone/Dn4.mid differ diff --git a/sound/instruments/xylophone/Dn5.mid b/sound/instruments/xylophone/Dn5.mid new file mode 100644 index 00000000000..53061570639 Binary files /dev/null and b/sound/instruments/xylophone/Dn5.mid differ diff --git a/sound/instruments/xylophone/Dn6.mid b/sound/instruments/xylophone/Dn6.mid new file mode 100644 index 00000000000..79459d4b156 Binary files /dev/null and b/sound/instruments/xylophone/Dn6.mid differ diff --git a/sound/instruments/xylophone/Eb2.mid b/sound/instruments/xylophone/Eb2.mid new file mode 100644 index 00000000000..efd033ea415 Binary files /dev/null and b/sound/instruments/xylophone/Eb2.mid differ diff --git a/sound/instruments/xylophone/Eb3.mid b/sound/instruments/xylophone/Eb3.mid new file mode 100644 index 00000000000..16cfc8f32be Binary files /dev/null and b/sound/instruments/xylophone/Eb3.mid differ diff --git a/sound/instruments/xylophone/Eb4.mid b/sound/instruments/xylophone/Eb4.mid new file mode 100644 index 00000000000..cc4333d5579 Binary files /dev/null and b/sound/instruments/xylophone/Eb4.mid differ diff --git a/sound/instruments/xylophone/Eb5.mid b/sound/instruments/xylophone/Eb5.mid new file mode 100644 index 00000000000..b25d5fded35 Binary files /dev/null and b/sound/instruments/xylophone/Eb5.mid differ diff --git a/sound/instruments/xylophone/Eb6.mid b/sound/instruments/xylophone/Eb6.mid new file mode 100644 index 00000000000..7418778e66a Binary files /dev/null and b/sound/instruments/xylophone/Eb6.mid differ diff --git a/sound/instruments/xylophone/En2.mid b/sound/instruments/xylophone/En2.mid new file mode 100644 index 00000000000..ee49b6d26d7 Binary files /dev/null and b/sound/instruments/xylophone/En2.mid differ diff --git a/sound/instruments/xylophone/En3.mid b/sound/instruments/xylophone/En3.mid new file mode 100644 index 00000000000..8cc2fc4514a Binary files /dev/null and b/sound/instruments/xylophone/En3.mid differ diff --git a/sound/instruments/xylophone/En4.mid b/sound/instruments/xylophone/En4.mid new file mode 100644 index 00000000000..12e688e309a Binary files /dev/null and b/sound/instruments/xylophone/En4.mid differ diff --git a/sound/instruments/xylophone/En5.mid b/sound/instruments/xylophone/En5.mid new file mode 100644 index 00000000000..1608556bb59 Binary files /dev/null and b/sound/instruments/xylophone/En5.mid differ diff --git a/sound/instruments/xylophone/En6.mid b/sound/instruments/xylophone/En6.mid new file mode 100644 index 00000000000..2b728aa02f6 Binary files /dev/null and b/sound/instruments/xylophone/En6.mid differ diff --git a/sound/instruments/xylophone/Fn2.mid b/sound/instruments/xylophone/Fn2.mid new file mode 100644 index 00000000000..2d329eafab0 Binary files /dev/null and b/sound/instruments/xylophone/Fn2.mid differ diff --git a/sound/instruments/xylophone/Fn3.mid b/sound/instruments/xylophone/Fn3.mid new file mode 100644 index 00000000000..262398bd647 Binary files /dev/null and b/sound/instruments/xylophone/Fn3.mid differ diff --git a/sound/instruments/xylophone/Fn4.mid b/sound/instruments/xylophone/Fn4.mid new file mode 100644 index 00000000000..d0103d46f0a Binary files /dev/null and b/sound/instruments/xylophone/Fn4.mid differ diff --git a/sound/instruments/xylophone/Fn5.mid b/sound/instruments/xylophone/Fn5.mid new file mode 100644 index 00000000000..2fb0d481d7e Binary files /dev/null and b/sound/instruments/xylophone/Fn5.mid differ diff --git a/sound/instruments/xylophone/Fn6.mid b/sound/instruments/xylophone/Fn6.mid new file mode 100644 index 00000000000..851cc387df7 Binary files /dev/null and b/sound/instruments/xylophone/Fn6.mid differ diff --git a/sound/instruments/xylophone/Gb2.mid b/sound/instruments/xylophone/Gb2.mid new file mode 100644 index 00000000000..1429339b866 Binary files /dev/null and b/sound/instruments/xylophone/Gb2.mid differ diff --git a/sound/instruments/xylophone/Gb3.mid b/sound/instruments/xylophone/Gb3.mid new file mode 100644 index 00000000000..2e7ffcc7317 Binary files /dev/null and b/sound/instruments/xylophone/Gb3.mid differ diff --git a/sound/instruments/xylophone/Gb4.mid b/sound/instruments/xylophone/Gb4.mid new file mode 100644 index 00000000000..dcb800e3af8 Binary files /dev/null and b/sound/instruments/xylophone/Gb4.mid differ diff --git a/sound/instruments/xylophone/Gb5.mid b/sound/instruments/xylophone/Gb5.mid new file mode 100644 index 00000000000..9bfd1db08e9 Binary files /dev/null and b/sound/instruments/xylophone/Gb5.mid differ diff --git a/sound/instruments/xylophone/Gb6.mid b/sound/instruments/xylophone/Gb6.mid new file mode 100644 index 00000000000..2329d70b8f0 Binary files /dev/null and b/sound/instruments/xylophone/Gb6.mid differ diff --git a/sound/instruments/xylophone/Gn2.mid b/sound/instruments/xylophone/Gn2.mid new file mode 100644 index 00000000000..67e8ff80b15 Binary files /dev/null and b/sound/instruments/xylophone/Gn2.mid differ diff --git a/sound/instruments/xylophone/Gn3.mid b/sound/instruments/xylophone/Gn3.mid new file mode 100644 index 00000000000..416b3603110 Binary files /dev/null and b/sound/instruments/xylophone/Gn3.mid differ diff --git a/sound/instruments/xylophone/Gn4.mid b/sound/instruments/xylophone/Gn4.mid new file mode 100644 index 00000000000..81c84e8ae96 Binary files /dev/null and b/sound/instruments/xylophone/Gn4.mid differ diff --git a/sound/instruments/xylophone/Gn5.mid b/sound/instruments/xylophone/Gn5.mid new file mode 100644 index 00000000000..34b94805a5e Binary files /dev/null and b/sound/instruments/xylophone/Gn5.mid differ diff --git a/sound/instruments/xylophone/Gn6.mid b/sound/instruments/xylophone/Gn6.mid new file mode 100644 index 00000000000..2ea9104e419 Binary files /dev/null and b/sound/instruments/xylophone/Gn6.mid differ