Merge branch 'master' into darkmode-sql

This commit is contained in:
AffectedArc07
2019-01-29 16:31:57 +00:00
committed by GitHub
446 changed files with 13999 additions and 6585 deletions
+1
View File
@@ -20,3 +20,4 @@ data/
*.db
stddef.dm
.atom-build.json
*.vscode/*
+86 -35
View File
@@ -124,9 +124,9 @@
"act" = (/obj/structure/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"acu" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"acv" = (/obj/machinery/porta_turret/syndicate,/turf/simulated/shuttle/wall{dir = 4; icon_state = "wall3"},/area/shuttle/syndicate)
"acw" = (/obj/docking_port/stationary{dir = 1; dwidth = 2; height = 11; id = "trade_dock"; name = "port bay 4 at Cyberiad"; width = 5},/turf/space,/area/space)
"acw" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (NORTH)"; icon_state = "propulsion_r"; dir = 1},/turf/space,/area/shuttle/syndicate_elite)
"acx" = (/obj/structure/closet/syndicate/suits,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"acy" = (/obj/effect/landmark{name = "Syndicate-Uplink"; tag = ""},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"acy" = (/obj/structure/closet/syndicate/nuclear,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"acz" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/administration)
"acA" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (NORTH)"; icon_state = "propulsion"; dir = 1},/turf/space,/area/shuttle/administration)
"acB" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/administration)
@@ -735,7 +735,7 @@
"aog" = (/obj/effect/decal/cleanable/cobweb2,/obj/machinery/newscaster{pixel_x = 32; pixel_y = 0},/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "red"},/area/maintenance/fsmaint)
"aoh" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/machinery/light/small{dir = 1},/obj/effect/decal/warning_stripes/yellow/hollow,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitehall"},/area/maintenance/fsmaint)
"aoi" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 2; icon_state = "whitehall"},/area/maintenance/fsmaint)
"aoj" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/maintenance/fsmaint)
"aoj" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite)
"aok" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l"; icon_state = "propulsion_l"},/turf/space,/area/shuttle/vox)
"aol" = (/obj/structure/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/suit/space/vox/pressure,/obj/item/clothing/head/helmet/space/vox/pressure,/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"aom" = (/obj/structure/rack,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
@@ -766,7 +766,7 @@
"aoL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor/plasteel{icon_state = "white"},/area/maintenance/fsmaint)
"aoM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 1},/obj/structure/barricade/wooden,/obj/machinery/door/airlock/maintenance,/turf/simulated/floor/plasteel{dir = 2; icon_state = "redfull"; tag = "icon-redfull (NORTHWEST)"},/area/maintenance/fsmaint)
"aoN" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 2; icon_state = "redfull"; tag = "icon-redfull (NORTHWEST)"},/area/maintenance/fsmaint)
"aoO" = (/obj/machinery/optable,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitehall"},/area/maintenance/fsmaint)
"aoO" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (NORTH)"; icon_state = "propulsion_l"; dir = 1},/turf/space,/area/shuttle/syndicate_elite)
"aoP" = (/obj/docking_port/stationary{dir = 2; dwidth = 2; height = 18; id = "skipjack_ne"; name = "northeast of SS13"; width = 19},/turf/space,/area/space)
"aoQ" = (/obj/structure/rack,/obj/item/clothing/accessory/storage/black_vest,/obj/item/clothing/suit/space/vox/stealth,/obj/item/clothing/head/helmet/space/vox/stealth,/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"aoR" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel{dir = 8; icon_state = "neutral"},/area/maintenance/fsmaint)
@@ -805,8 +805,8 @@
"apy" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/yellow/hollow,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitehall"},/area/maintenance/fsmaint)
"apz" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor/plasteel{dir = 1; icon_state = "red"},/area/maintenance/fsmaint)
"apA" = (/obj/structure/table,/obj/effect/decal/warning_stripes/yellow/hollow,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitehall"},/area/maintenance/fsmaint)
"apB" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitehall"},/area/maintenance/fsmaint)
"apC" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 1; icon_state = "redcorner"},/area/maintenance/fsmaint)
"apB" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (NORTH)"; icon_state = "propulsion"; dir = 1},/turf/space,/area/shuttle/syndicate_elite)
"apC" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite)
"apD" = (/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)
"apE" = (/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)
"apF" = (/obj/machinery/power/tracker,/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/maintenance/auxsolarport)
@@ -10759,6 +10759,57 @@
"dYU" = (/obj/structure/table/wood,/obj/item/storage/fancy/crayons,/obj/machinery/camera{c_tag = "Chaplain's Office"; dir = 1; network = list("SS13")},/obj/machinery/requests_console{department = "Chapel"; departmentType = 2; name = "Chapel Requests Console"; pixel_y = -30},/turf/simulated/floor/carpet,/area/chapel/office)
"dYV" = (/obj/structure/rack,/obj/machinery/newscaster{pixel_y = -32},/obj/item/storage/secure/briefcase,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/crew_quarters/chief)
"dYW" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/table/reinforced,/obj/item/folder/red,/obj/item/pen,/obj/effect/decal/warning_stripes/yellow,/obj/machinery/door/window/brigdoor{dir = 2; name = "Warden's Desk"; req_access_txt = "3"},/obj/machinery/door/window/brigdoor{dir = 1; name = "Warden's Desk"; req_access_txt = "3"},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redfull"; tag = "icon-redfull (NORTHWEST)"},/area/security/warden)
"dYX" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite)
"dYY" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "wall3"},/area/shuttle/syndicate_elite)
"dYZ" = (/obj/machinery/sleeper/syndie{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
"dZa" = (/obj/machinery/sleeper/syndie,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
"dZb" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
"dZc" = (/obj/structure/chair{dir = 4},/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
"dZd" = (/obj/structure/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
"dZe" = (/obj/structure/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
"dZf" = (/obj/docking_port/stationary{dir = 1; dwidth = 2; height = 11; id = "trade_dock"; name = "port bay 4 at Kerberos"; width = 5},/turf/space,/area/space)
"dZg" = (/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
"dZh" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
"dZi" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "syndicate_elite"; name = "Side Hull Door"; opacity = 0; req_access_txt = "150"},/obj/docking_port/mobile{dir = 4; dwidth = 7; height = 5; id = "sst"; name = "SST shuttle"; roundstart_move = "sst_away"; width = 11},/obj/docking_port/stationary{dir = 4; dwidth = 7; height = 5; id = "sst_home"; name = "Near Kerberos Arrivals"; width = 11},/obj/structure/fans/tiny,/turf/simulated/shuttle/plating,/area/shuttle/syndicate_elite)
"dZj" = (/obj/structure/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
"dZk" = (/obj/machinery/computer/shuttle/sst,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
"dZl" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/syndicate_elite)
"dZm" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite)
"dZn" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door_control{id = "syndicate_elite"; name = "Blast Doors"; pixel_x = -25; pixel_y = 0; range = 20; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "syndicate_elite"; name = "Front Hull Door"; opacity = 0; req_access_txt = "150"},/obj/structure/fans/tiny,/turf/simulated/shuttle/plating,/area/shuttle/syndicate_elite)
"dZo" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate_elite)
"dZp" = (/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_elite)
"dZq" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate_sit)
"dZr" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion (NORTH)"; icon_state = "propulsion"; dir = 1},/turf/space,/area/shuttle/syndicate_sit)
"dZs" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_r (NORTH)"; icon_state = "propulsion_r"; dir = 1},/turf/space,/area/shuttle/syndicate_sit)
"dZt" = (/turf/space,/turf/simulated/shuttle/wall{dir = 1; icon_state = "diagonalWall3"},/area/shuttle/syndicate_sit)
"dZu" = (/obj/structure/shuttle/engine/propulsion{tag = "icon-propulsion_l (NORTH)"; icon_state = "propulsion_l"; dir = 1},/turf/space,/area/shuttle/syndicate_sit)
"dZv" = (/turf/simulated/shuttle/wall{dir = 4; icon_state = "wall3"},/area/shuttle/syndicate_sit)
"dZw" = (/obj/structure/window/reinforced,/obj/structure/shuttle/engine/heater{tag = "icon-heater (NORTH)"; icon_state = "heater"; dir = 1},/turf/simulated/floor/plating/airless,/area/shuttle/syndicate_sit)
"dZx" = (/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
"dZy" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
"dZz" = (/obj/structure/window/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
"dZA" = (/obj/structure/chair{dir = 4},/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/obj/structure/window/reinforced,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
"dZB" = (/obj/machinery/door/window/brigdoor{dir = 2; name = "Cell Door"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
"dZC" = (/obj/structure/table,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
"dZD" = (/obj/structure/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
"dZE" = (/obj/structure/chair{dir = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
"dZF" = (/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/obj/structure/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
"dZG" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "syndicate_sit_1"; name = "Side Hull Door"; opacity = 0; req_access_txt = "150"},/obj/docking_port/mobile{dir = 8; dwidth = 3; height = 5; id = "sit"; name = "SIT shuttle"; roundstart_move = "sit_away"; width = 11},/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "sit_arrivals"; name = "Arrivals Maintenance"; width = 11},/obj/structure/fans/tiny,/obj/machinery/door_control{id = "syndicate_sit_1"; name = "Blast Doors"; pixel_x = 0; pixel_y = -23; range = 20; req_access_txt = "150"},/turf/simulated/shuttle/plating,/area/shuttle/syndicate_sit)
"dZH" = (/obj/structure/table,/obj/item/stack/sheet/metal,/obj/item/clothing/glasses/welding,/obj/item/weldingtool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
"dZI" = (/obj/structure/chair,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
"dZJ" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/syndicate_sit)
"dZK" = (/obj/machinery/computer/shuttle/sit,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
"dZL" = (/turf/space,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/shuttle/syndicate_sit)
"dZM" = (/obj/machinery/door/airlock/external{id_tag = "s_docking_airlock"; name = "Shuttle Airlock"; req_access_txt = "150"},/obj/machinery/door_control{id = "syndicate_sit_1"; name = "Blast Doors"; pixel_x = -25; pixel_y = 0; range = 20; req_access_txt = "150"},/obj/structure/fans/tiny,/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "syndicate_sit_1"; name = "Front Hull Door"; opacity = 0; req_access_txt = "150"},/turf/simulated/shuttle/plating,/area/shuttle/syndicate_sit)
"dZN" = (/turf/space,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/syndicate_sit)
"dZO" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "redcorner"},/area/maintenance/fsmaint)
"dZP" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 2; icon_state = "redfull"; tag = "icon-redfull (NORTHWEST)"},/area/maintenance/fsmaint)
"dZQ" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 8; icon_state = "whitehall"},/area/maintenance/fsmaint)
"dZR" = (/obj/machinery/optable,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/maintenance/fsmaint)
"dZS" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/dirt,/obj/structure/table,/turf/simulated/floor/plasteel{dir = 1; icon_state = "whitehall"},/area/maintenance/fsmaint)
"dZT" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/turf/simulated/floor/plasteel{dir = 1; icon_state = "redcorner"},/area/maintenance/fsmaint)
"dZU" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{dir = 2; icon_state = "redfull"; tag = "icon-redfull (NORTHWEST)"},/area/maintenance/fsmaint)
"dZV" = (/obj/docking_port/stationary{dir = 8; dwidth = 3; height = 5; id = "sit_engshuttle"; name = "Engineering Maintenance"; width = 11},/turf/space,/area/space)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10785,17 +10836,17 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaabjaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnaagaagaagaagaboaauaasaagaagaagaagaagaagaagaagaaEaagaaMaadaajabkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabpabqabrabsabsabsabtabqabuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabjabvabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaEabwabxabyaagaaMaaoaajaacaacaadaasaagaagaagaagaauaacaaoabkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzabAabBabCabDabEabFabFabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabjabiabiabjabiaaaabGaaaabiabiabjabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauaasaawabHaaMaaoaafabIabJabKaaiaalaagaagaaGabLaaHaavabMaacaakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzabNabBabBabOabBabBabPabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaabjaaaabjaaaabGaaaabjaaaabjaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablaajaacabQaajaafaagaagaagaagaagaaEaagaagaaMaadaalaaBabRaaqaaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzabSabTabBabBabUabBabVabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaabWabWabWabWabWaaaabGaaaabWabWabWabWabWaaaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXaagaagaagaagaagaagaagabYabgaaMaaoabkablabZacaaaqaaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbabqabqabqaccabqabqabqacdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabjaceacfacfacfacfacgachaciacjacjacjacjacjabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackaagaclaagaagaagaagaagaauaadaaoabkaaaaaaablabZaaqaaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacmabBacnabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaacoacoacoacoacoaaaacpaaaacoacoacoacoacoaaaabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablaacaadaasaagacqacraaMaaoaajabkaaaaaaaaaaaaablaadaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacsabBactabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaabjaaaaaaaaaacpaaaaaaaaaabjaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablaajaacaacaacaajabkaaaaaaaaaaaaaaaaaaaaaablabkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuabqabqabqabqabzacsabBactacvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaabWabWabWabWabWaaaaaaacpaaaaaaabWabWabWabWabWaaaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacxabBabBacyabzacsabBactabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczacAacAacBaaaaczacAacAacBaaaaaaaaaaaaaaaaaaacCacDacCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaabiabjaceacfacfacfacfacEacFacpacFacGacjacjacjacjacjabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacxabBacHacIabzacsabBactabzabqacJacKacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczacMacNacNacMacMacMacNacNacMacBaaaaaaaaaaaaaaaacCacOacCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaacoacoacoacoacoaaaaaaacpaaaaaaacoacoacoacoacoaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacPabBabBacQabzacRabBabPacSacTacTacTabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczacMacUacVacWacXacMacYacZacZadaacMacBaaaaaaaaaadbacCadcacCadbaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddadeadfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgadhadiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaaaaaaaaaaabjaaaaaaaaaacpaaaaaaaaaabjaaaaaaaaaaaaabjaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacxabBabBabBadjabBabBadkadladmadmadnabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczacMadoacWacWacWadpacMadqacZacZadracZadsacBaaaaaaacCafbadtaduacCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadwadxadwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyadzadyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaabWabWabWabWabWaaaacpaaaabWabWabWabWabWaaaabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacxabBabBabBadAabBabBabBadBadCadCadDabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMadEacWacWacWacWadFacMadGacZadHadIacZadJacMaaaabjadbadvafhadKadbabjaaaaaaaaaaaaaaaaaaaaaaaaaaaabjadNadwadOadwadNabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjadNadyadPadyadNabjaaaaaaabiabiabiaaaaaaaaaaaaaaaabiabjaceacfacfacfacfacgacpaciacjacjacjacjacjabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzabNabBabBabOabBabBabPabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaojacwapBaoOapCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaabjaaaabjaaaabGaaaabjaaaabjaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablaajaacabQaajaafaagaagaagaagaagaaEaagaagaaMaadaalaaBabRaaqaaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzabSabTabBabBabUabBabVabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadYYdYXdYXdYXdYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaabWabWabWabWabWaaaabGaaaabWabWabWabWabWaaaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabXaagaagaagaagaagaagaagabYabgaaMaaoabkablabZacaaaqaaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbabqabqabqaccabqabqabqacdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZdYYdYZdZbdZadYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabjaceacfacfacfacfacgachaciacjacjacjacjacjabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaackaagaclaagaagaagaagaagaauaadaaoabkaaaaaaablabZaaqaaraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacmabBacnabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadYYdZcdZbdZddYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaacoacoacoacoacoaaaacpaaaacoacoacoacoacoaaaabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablaacaadaasaagacqacraaMaaoaajabkaaaaaaaaaaaaablaadaaJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacsabBactabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadYYdZedZbdZddYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaaaaabjaaaaaaaaaacpaaaaaaaaaabjaaaaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablaajaacaacaacaajabkaaaaaaaaaaaaaaaaaaaaaablabkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuabqabqabqabqabzacsabBactacvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadZfaaaaaaaaaaaaaaadYYdZedZbdZddYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaabWabWabWabWabWaaaaaaacpaaaaaaabWabWabWabWabWaaaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacxabBabBacyabzacsabBactabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczacAacAacBaaaaczacAacAacBaaaaaaaaaaaaaaaaaaacCacDacCaaaaaaaaaaaadYYdZgdZbdZhdYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaabiabjaceacfacfacfacfacEacFacpacFacGacjacjacjacjacjabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacxabBacHacIabzacsabBactabzabqacJacKacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczacMacNacNacMacMacMacNacNacMacBaaaaaaaaaaaaaaaacCacOacCaaaaaaaaaaaadZidZbdZbdZjdYYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaacoacoacoacoacoaaaaaaacpaaaaaaacoacoacoacoacoaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacPabBabBacQabzacRabBabPacSacTacTacTabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczacMacUacVacWacXacMacYacZacZadaacMacBaaaaaaaaaadbacCadcacCadbaaaaaaaaadYYdZbdZbdZkdYYaaaaaaaaaaaaaddadeadfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadgadhadiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaaaaaaaaaaabjaaaaaaaaaacpaaaaaaaaaabjaaaaaaaaaaaaabjaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacxabBabBabBadjabBabBadkadladmadmadnabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczacMadoacWacWacWadpacMadqacZacZadracZadsacBaaaaaaacCafbadtaduacCaaaaaaaaadZmdZldZndZldZoaaaaaaaaaaaaadwadxadwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadyadzadyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiaaaabWabWabWabWabWaaaacpaaaabWabWabWabWabWaaaabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzacxabBabBabBadAabBabBabBadBadCadCadDabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMadEacWacWacWacWadFacMadGacZadHadIacZadJacMaaaabjadbadvafhadKadbabjaaaaaaaaadZmdZpdZoaaaaaaaaaabjadNadwadOadwadNabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjadNadyadPadyadNabjaaaaaaabiabiabiaaaaaaaaaaaaaaaabiabjaceacfacfacfacfacgacpaciacjacjacjacjacjabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacuabqabqabqabqabqabqadSabBabBabqabqabqabqabqabqacLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMadUacWadVacWacWacXacMadWacZadHadXacZadYacMabjabjacCadZaeaaebacCabjabjacFacFacFacFacFacFacFabjabjadbadLaedadMadbabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjadbadQaegadRadbabjabjabjabjabjabiaaaaaaaaaaaaabjabjaaaacoacoacoacoacoabjacpabjacoacoacoacoacoaaaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzaeiaeiaejaekaelabzaemabBabBabzaenaeoaepaeqaerabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMaesacWaetacWacWaeuacMacZacZadHaevaewaexacMabjaaaacCadZaeaaebacCaaaabjaaaaaaaaaabjaaaaaaaaaabjaaaadbaeyaezaeAadbabjabjacFacFacFacFacFacFacFacFacFabjabjadbaeyaezaeAadbadbadbadbaeBaeBaeCaeBaeCabjaaaabjabiaaaaaaaaaabjaaaaaaabjacpabjabjaaaabjaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabzabBabBabBacHabBaeDabBabBabBaeEabBacHabBacHaeFabzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMacMacMacMacMaeGacMacMacMaeHacMacMacMacMacMacCacCacCaeIaeJaeOadbaaaabjabjabjabjabjabjabjabjabjaaaadbacCaePacCadbaaaabjaaaaaaaaaaaaabjaaaaaaaaaaaaabjaaaadbacCaeKacCadbaeLaeMaeNaeBdtFdtGaeQaeCaeCaeCabjabjabjabjabjabjabjabjabjacpabjabiabiabiabiabjabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10809,22 +10860,22 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacMahNacZacZacMaaaaaaaaaacMahOacZahPacMaaaabjacCacCadZaeaagBacCacCabjaaaaehahQahRahSafLaaaacCacCacCaigahUaebacCacCacCagSahVahCahCahWahCahCahVagSacCacCacCaigahUagHagIahXahYahZaiaaibagIaheaheaheaheaheaheaheahkahMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahmacMaicaidacMaaaaaaaaaacMaieaewacMahuaaaaaaacCaikadZaeaagBaioacCaaaaaaaihaiiahRaijaihaaaabjacCaioaipaeaaebaioacCabjagFailahCaimainailahCaimagFabjacCaisaipaeaagHagIaitaiqairaiAaiBaiuaivaiwaixaheaheaheaheaiyaizaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahmacMacMahuaaaaaaaaaahmacMacMahuaaaaaaaaaacCaiEadZaeaagBaiFacCaaaaaaaihaiCahRaiDaihaaaabjacCaiHaipaeaaebaiIacCaaaagFailahCaimaiGailahCaimagFaaaacCaiKaiLaiJaiTaiuaiWaiMaiNaiNaiNaiOaiPaheaheaheaheaheagKagKagLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCafbadZaeaagBaiIacCaaaaaaaiQaiRahRaiSaiQaaaabjacCaiXaipaeaaebaiIacCaaaagFaiUahCaimaiGailahCaiVagFaaaacCajdaipaeaagHagIajeaiYaiNaiNaiNaiOaiPaheaheaheaheaheaheagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiZajaajaajaajaajbajbajaajaajcaaaabjacCajfadZaeaagBajyacCaaaaaaaihaiRahRaiSaihaaaabjacCajyaipaeaaebajyacCabjagFailahCaimaiGailahCaimagFabjacCajyaipaeaagHagIajCajgajhaiNaiNaiOaiPaheaheaheaheaheajiagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajjajkajlajmaaaaaaaaaajjaaaaaaaaaajmaaaaaaaaaajjajnajoajmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpajqajrajsajtajuajuajvajwajaajcacCacCacCadZajxajGacCacCabjaaaaihajzahRajAaihaaaacCacCacCaipajBajYacCacCacCagSahVahCajDajEajFahCahVagSacCacCacCaipajBakbajHajIajJajHajHahdahdajKaheaheajLajMajMajNagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOajPajQajOaaaaaaajjajOajRajSajTajOajmaaaaaaajOajUajVajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpajqajWajuajuajuajuajuajuajuajXakUafbakUadZajZagBacCabjabjaaaaihaiRahRaiSaihaaaahzafbahzaipaeaagHahAafbahAahBahCahDahDakaahDahDahCahEahFafbahFaipaeaahTakVakcakdakeakfakgakgakhaheaheakiaheaheakjagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOakkaklajOaaaajjakmaknakoakpakqaknakmajmaaaajOakraksajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpajqaktakuakuajuakuakuakuajaakvacCacCacCadZajZagBacCaaaabjaaaaiQaiRahRaiSaiQaaaacCacCacCaipaeaagHacCacCacCagSakwakxakyahCakyakzakAagSacCacCacCaipaeaagHakBakCakDakEakFakGaiwakHaixaheakiaheaheakIagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOakJakKakLaaaakMakNaknaknakOaknaknakNakPaaaakQakRakSajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakTajaajaajaajaajaajaajaajaakvaaaabjaaaacCagAajZagBacCabjabjaaaaihaiRahRaiSaihaaaabjaaaacCalsaeaaltacCaaaabjakWagEakXakYakZalaakXagEalbabjaaaacCalsaeaagHalcaldalealfalgalhalialjafAahealkallalmajKagKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakmalnakmaaaaaaaloakNaknalpalqaknaknakNalraaaaaaakmalnakmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjabjadbaggajZaluadbaaaabjaaaaihajzahRajAaihaaaabjabjadbalxaeaalyadbabjabjaaaaaaagSalvalwalvagSaaaaaaabjabjadbalGaeaalKakBakBalzakBalAagKagKagKagKagKagKagKagKagKagKabjaaaabjaaaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakmalnakmakmakmakmakmakmakmalBakmakmakmakmakmakmakmalnakmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaacCadZajZagBacCaaaabjaaaalCalDalEalDalFaaaabjaaaacCaipaeaagHacCaaaabjaaaaaaagFalHalHalHagFaaaaaaabjaaaacCaipaeaagHalIalJalXalLalMalNalOalPalQalRalSalTalQalIabjabjabjabjabjabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakMalnalUalUalUalUalUalUajOalVajOalUalUalUalUalUalUalnakPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaacCadZajZagBacCaaaalWabjabjacCalYacCabjabjabjaaaacCaipaeaagHacCaaaabjaaaaaaakWagFagFagFalbaaaaaaabjaaaacCaipaeaagHawYalZamaambamcamdameameamfamgameamgameamhacFabjaaaaaaaaaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamjamkamlammamnamoajOalBakmalBakmalBajOampamqamramsamkamtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaabjaaaadbamuamvamwadbaaaabjacCamxacCafbacCamyacCabjaaaadbamzamAamBadbaaaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaadbamzamAamBalIambamCamDamEamFamGamGamGamHamIamgamgamhacFabjaaaaaaaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaloamkaknaknaknamJajOaknaknaknaknaknajOaknaknamKaknamkalraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCacCadbamLamMangadbadbacCadbajyacCalYacCajfadbacCadbadbangamLamMamNadbacCadbacCacCacCacCacCacCacCadbacCadbamNangamLamMalIalIalIamOamPalNamQamRamSamTamSamUamValIabjabjabjabjabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOamWamXamYamZanaajOanbaknaknaknancajOandaknaneanfamWajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCanwanhanianjankanlanmanlannanlanlanlanlanoanlanlanoanpanqanlanranlanlanlannanoanmanlanlanlanlanoansanlanlanlantanuanjanvanzalIanxamPalIanyanAanCanBaoaanCalIalIalIalIalIalIabjabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOanDanDakmakmakmajOanEaknaknaknanFajOakmakmakmanDanDajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCajyanGanHanIanJanKanLanKanKanKanKanKanManJanKanKanNanKanOanKanPanKanKanKanQanRanSanTanUanTanTanRanVanKanKanKanWanXanYanZaoealIamOaobalNaocambaodaohaodaofaogalIaoxaoiaojalIabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakQaokaokakLaaaaaaajOaolaknaknaknaomajOaaaaaaakQaokaokakLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCacCadbadbadbahwadbaooaooaooaooaooaooaopahyaooaooaooaooaonaosaosaotaosaosaouaovaowaoyaozaoFaoAaovaoBaoCaoCaoDaoCaoCalIalIalIalIaoEaoGamFaoHaoIaoJaoKaoJaoIaoLaoMaphaoNaoOalIabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOaoQaknaknaknaomajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaabjaaaabjaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjalIaorapJaoSaooaoTaoUaoVaoWaoXaoYaoZapaapbapcaooaoqaosapeapfapgaosapiapuapjacCacCacCapkapuapvaoCaplapmapnaoCapoappapqaprapsaptalNapwambapxapyapzapAapWalIapYapBapCalIabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOapDapEalBapDapEajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabjapFabjabjaaaaaaaaaaaaaaaabjabjaaaaaaaaaaaaaaaabiabiabiabiabiabjabiabiabiabjabiabiabiabiabiabjabiabiaaaaaaabjabjapGapGapGapHapGapHapHapHapHapHapGapHapHabjalIaoRapIapKaooapLapMapNapOapOapPapQapRapSapTaooapUaosapVaqgapXaqiapZaovaqaaqbaqcaqdaqeaovaqfaquaqharMaqjaoCanxaqkaqlaqmaqnaqoalIaqpalIalIaqpalIalIalIalIalIalIalIalIabjabiabiaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOaqqaqraknaqsaqtajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCafbadZaeaagBaiIacCaaaaaaaiQaiRahRaiSaiQaaaabjacCaiXaipaeaaebaiIacCaaaagFaiUahCaimaiGailahCaiVagFaaaacCajdaipaeaagHagIajeaiYaiNaiNaiNaiOaiPaheaheaheaheaheaheagKdZqdZsdZrdZudZtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiZajaajaajaajaajbajbajaajaajcaaaabjacCajfadZaeaagBajyacCaaaaaaaihaiRahRaiSaihaaaabjacCajyaipaeaaebajyacCabjagFailahCaimaiGailahCaimagFabjacCajyaipaeaagHagIajCajgajhaiNaiNaiOaiPaheaheaheaheaheajiagKdZvdZwdZwdZwdZvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajjajkajlajmaaaaaaaaaajjaaaaaaaaaajmaaaaaaaaaajjajnajoajmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpajqajrajsajtajuajuajvajwajaajcacCacCacCadZajxajGacCacCabjaaaaihajzahRajAaihaaaacCacCacCaipajBajYacCacCacCagSahVahCajDajEajFahCahVagSacCacCacCaipajBakbajHajIajJajHajHahdahdajKaheaheajLajMajMajNagKdZvdZydZxdZydZvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOajPajQajOaaaaaaajjajOajRajSajTajOajmaaaaaaajOajUajVajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpajqajWajuajuajuajuajuajuajuajXakUafbakUadZajZagBacCabjabjaaaaihaiRahRaiSaihaaaahzafbahzaipaeaagHahAafbahAahBahCahDahDakaahDahDahCahEahFafbahFaipaeaahTakVakcakdakeakfakgakgakhaheaheakiaheaheakjagKdZvdZAdZzdZBdZvaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOakkaklajOaaaajjakmaknakoakpakqaknakmajmaaaajOakraksajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajpajqaktakuakuajuakuakuakuajaakvacCacCacCadZajZagBacCaaaabjaaaaiQaiRahRaiSaiQaaaacCacCacCaipaeaagHacCacCacCagSakwakxakyahCakyakzakAagSacCacCacCaipaeaagHakBakCakDakEakFakGaiwakHaixaheakiaheaheakIagKdZvdZCdZydZydZvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOakJakKakLaaaakMakNaknaknakOaknaknakNakPaaaakQakRakSajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakTajaajaajaajaajaajaajaajaakvaaaabjaaaacCagAajZagBacCabjabjaaaaihaiRahRaiSaihaaaabjaaaacCalsaeaaltacCaaaabjakWagEakXakYakZalaakXagEalbabjaaaacCalsaeaagHalcaldalealfalgalhalialjafAahealkallalmajKagKdZvdZDdZydZEdZvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakmalnakmaaaaaaaloakNaknalpalqaknaknakNalraaaaaaakmalnakmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjabjadbaggajZaluadbaaaabjaaaaihajzahRajAaihaaaabjabjadbalxaeaalyadbabjabjaaaaaaagSalvalwalvagSaaaaaaabjabjadbalGaeaalKakBakBalzakBalAagKagKagKagKagKagKagKagKagKagKdZvdZDdZydZEdZvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakmalnakmakmakmakmakmakmakmalBakmakmakmakmakmakmakmalnakmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaacCadZajZagBacCaaaabjaaaalCalDalEalDalFaaaabjaaaacCaipaeaagHacCaaaabjaaaaaaagFalHalHalHagFaaaaaaabjaaaacCaipaeaagHalIalJalXalLalMalNalOalPalQalRalSalTalQalIabjdZvdZFdZydZydZGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakMalnalUalUalUalUalUalUajOalVajOalUalUalUalUalUalUalnakPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaacCadZajZagBacCaaaalWabjabjacCalYacCabjabjabjaaaacCaipaeaagHacCaaaabjaaaaaaakWagFagFagFalbaaaaaaabjaaaacCaipaeaagHawYalZamaambamcamdameameamfamgameamgameamhacFdZvdZHdZydZIdZvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamjamkamlammamnamoajOalBakmalBakmalBajOampamqamramsamkamtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaabjaaaadbamuamvamwadbaaaabjacCamxacCafbacCamyacCabjaaaadbamzamAamBadbaaaabjaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaaaadbamzamAamBalIambamCamDamEamFamGamGamGamHamIamgamgamhacFdZJdZydZydZKdZJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaloamkaknaknaknamJajOaknaknaknaknaknajOaknaknamKaknamkalraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCacCadbamLamMangadbadbacCadbajyacCalYacCajfadbacCadbadbangamLamMamNadbacCadbacCacCacCacCacCacCacCadbacCadbamNangamLamMalIalIalIamOamPalNamQamRamSamTamSamUamValIabjdZLdZJdZMdZJdZNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOamWamXamYamZanaajOanbaknaknaknancajOandaknaneanfamWajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCanwanhanianjankanlanmanlannanlanlanlanlanoanlanlanoanpanqanlanranlanlanlannanoanmanlanlanlanlanoansanlanlanlantanuanjanvanzalIanxamPalIanyanAanCanBaoaanCalIalIalIalIalIalIalIabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOanDanDakmakmakmajOanEaknaknaknanFajOakmakmakmanDanDajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCajyanGanHanIanJanKanLanKanKanKanKanKanManJanKanKanNanKanOanKanPanKanKanKanQanRanSanTanUanTanTanRanVanKanKanKanWanXanYanZaoealIamOaobalNaocambaodaohaodaofaogalIaoxaoidZPdZOalIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakQaokaokakLaaaaaaajOaolaknaknaknaomajOaaaaaaakQaokaokakLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacCacCadbadbadbahwadbaooaooaooaooaooaooaopahyaooaooaooaooaonaosaosaotaosaosaouaovaowaoyaozaoFaoAaovaoBaoCaoCaoDaoCaoCalIalIalIalIaoEaoGamFaoHaoIaoJaoKaoJaoIaoLaoMaphaoNdZRdZQalIabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOaoQaknaknaknaomajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaabjaaaabjaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjalIaorapJaoSaooaoTaoUaoVaoWaoXaoYaoZapaapbapcaooaoqaosapeapfapgaosapiapuapjacCacCacCapkapuapvaoCaplapmapnaoCapoappapqaprapsaptalNapwambapxapyapzapAapWalIapYdZSdZUdZTalIabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOapDapEalBapDapEajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabjapFabjabjaaaaaaaaaaaaaaaabjabjaaaaaaaaaaaaaaaabiabiabiabiabiabjabiabiabiabjabiabiabiabiabiabjabiabiaaaaaaabjabjapGapGapGapHapGapHapHapHapHapHapGapHapHabjalIaoRapIapKaooapLapMapNapOapOapPapQapRapSapTaooapUaosapVaqgapXaqiapZaovaqaaqbaqcaqdaqeaovaqfaquaqharMaqjaoCanxaqkaqlaqmaqnaqoalIaqpalIalIaqpalIalIalIalIalIalIalIalIalIabiabiaaaabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOaqqaqraknaqsaqtajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabiabjabiabiabiabjasUabjabjabiabiabiabjabiabiaaaaaaaaaaaaaaaaaaabjabjabjaaaabjaaaabjaaaabjaaaabjaaaaaaabjabjabjabjaaaaaaaaaabjaaaapGaqvaqwaqxaqyaqzaqAaqBaqCaqzaqDaqEapHabjalIaqFarIaqHaooaqIaqJaqLaqKaqMaqNapQaqOaqPaqQaooapUaosaqRaqSaqTaotaqUaovaqVaqWaqWaqXaqYanRaqZaoDaraarbarcaoCardaobalIalIarearealIarfargarhariarjamQareabjabjabjabjabjabjabjabjabjabjabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajOarkarlaknarmarnajOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaaaaaaaabjaaaaaaabjasUabjaaaaaaaaaaaaaaaaaaabiabjaaaaaaaaaaaaaaaabiaaaabjabjabiabiabiabiabjabiabiabiabjabiabiabiabjabiabiabjabjabjapHaroarparqarrarsartaruarvarwarxaryapHabjalIalZarIarzaooarAarBarCaqKapMarDarEarFarGarGapdarHaosarJarKarLarQasAaovarOaqWarPaqWarOaovasWasXarRarSarTaoCamOarUalIarVarWarXarYarWarZalZasaameasbalIabjascascascasdascascasdasdasdacFabjacFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakQakmaseasfasgakmakLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjabjashashashashashabjasUabjashashashashashabjabjaaaaaaaaaaaaaaaaaaabiaaaabiaaaabjabjaaaabjaaaabjaaaabjaaaabjaaaabjabjabjabjabjabjaaaapHaqwasiasjaskaskaskaslasmasnarsasoapHabjalIasparNasqaooasraqMapMapMasraqNassaqNastasuaooasvaosaswasxasyaszasYasBasCasDaqWaqWasEaovasZasFasGarbasHaoCardamPalIasIasJasKambalZasLasMasNameasOamhacFascasPasQafOaqGaqGasRasSasTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakQakmakmakmakLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -10923,13 +10974,13 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabjabiabjcCxcXRcYbbYhcXTcdtcFRcXUcXVcXUcXWcXXcKecXYcXYcXZcYacHzdWkcYccFYcYdcYecYfcYgcEzcEzcEzcEzcEzcEzcEzcEzcEzdmqcEzcYicIMcIMcILcYicIMcIMcILcYicIMcIMcILcWTcWUcOXcWVcWWcXacKrcLWcMmcYocLZcTJcYpcTLcLZcXbcXccYjcYkcYlcTRcYmcYwcYxcYycYncYqcYrcVzcVAcKKcYCcVDcYDcYEdaxcYFcYGcXgcYHcYIcYJcYKcYLcSFcYMcJgcYNcYOcRocYPcYQcYRcYScYTcRncMqcRocUrcZpcZOcZQcZRcZScWdcYXcZUcZVcZWcZXcWdcZccZdcXJcZYdabdacdabdacdaRdaSdbrctucMLbqCcsicsicsjcsjcsjcsjcsjcsjcsjcsjcsjcsjcsiabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjabjabiabjcCxcCxcCxbYhbYhcJKbYhbYhbYhcCxcLzcLzcLzbYhbYhbYhbYhcwCcZkcZlcLzcLzcfncLPcXWczDczDcZmdHkcFUcKecZncFUcFUcZocEzcIMcKocIMdaDcIMcKncIMcILcIMcKocIMcIHdtodtHdhSdvNcKrcKrcKrcYscYtcYucZtcYvcYzcYAcZtcZtcYBcKIcZrcZxcTRcZscZzcZAcZBcWZddrcTRcTQcVAcKKcYCcXecXecZDdgodlWdoCdoEddVcXecKYcZHcZIcJgcKYcKYcZJcSHcRocMxcPOcZKcZLcMxcZMcZNcZPdbscUrdbtdbucXldbvcWdcWddbwdcDcUrcWdcWdcqCcZTdcFdcGdcHdcIddRdemdeodepdeqctudadcqJabjaaaabjaaaabjabjabjabjabjabjabjabjabjabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiaaaabjabjabjaaaabjabjabjabjabjabjaMWdaeaUpdbGdagdahdaiaOsdajdakdalddddanaOscfndaockbdapdaqdapdapckcdaqdaqdaqdardascEzcIMdoQcIMcILcIMdpPcIMcILcIMdpZcIMcIHcNDdaudaudavdawdqqdaydazdaAdaBcZucNLdaCdaydtSdaydaEdaFdaGcNLcZvdaIdaJdaKdaLcWZdaMcVzdaNcVAcKKdaOdaPdaQdbddcgdaTdaUdaVdaWdaXdaYdaZcPGcPGcPGcPGdbadbbdbcdcidbedbfdbgcPGdbhdbidbjdbkdcAdebdbedbedbedbldbedbmdbcdbedbndbodbpdbqcXJderdlBduydxMdAXdemdGVcXJdbxdbybngbngcqJcqJcqJabjaaaaaaabiabiaaaabiabiaaaabiabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabjabiabiabiabjabiabiabiabjabjdbzaUpdfQdbBdbCdbDdbEdfTdbEdfUdhCdbHdbIdbJcZtdbKcZtdbLcZtdbLcZtcZtdbMcZtcZtcEGdbNcEzcEzddiddiddiddiddiddiddiddiddiddiddidbOcMmcMldbPdbQcMmcMldbRdbSdbTcZycMicMhcMidbVcMidbWdbRdbXdbYdaHdcacWZcWZdcbcWZdccdbUdcecVAcKKcYCdcfdcldchdcsdcjcXgcXkdckddLdcmdcndcodcpdcodcodcqdcrdcnddMdcodctdcudcpdcodcodcndcvdcqdcwdcodcpdcodcxdcodcqdcydcpdczdecdcBdcCcXJdHXdJOdMudNZdObdMudSCcXJcqCcMLbngdcJdcKdcLcqJabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiabiabjabiabiabiabjaaaaaaaaaabjabjdbzaUpdfQdbBdbCdbDdbEdfTdbEdfUdhCdbHdbIdbJcZtdbKcZtdbLcZtdbLcZtcZtdbMcZtcZtcEGdbNcEzcEzddiddiddiddiddiddiddiddiddiddiddidbOcMmcMldbPdbQcMmcMldbRdbSdbTcZycMicMhcMidbVcMidbWdbRdbXdbYdaHdcacWZcWZdcbcWZdccdbUdcecVAcKKcYCdcfdcldchdcsdcjcXgcXkdckddLdcmdcndcodcpdcodcodcqdcrdcnddMdcodctdcudcpdcodcodcndcvdcqdcwdcodcpdcodcxdcodcqdcydcpdczdecdcBdcCcXJdHXdJOdMudNZdObdMudSCcXJcqCcMLbngdcJdcKdcLcqJabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaMWdcMdamdcNdcOdcPdcQdcRdcSdcTdcUdcVdcWdcXcZtdcYdcYdbZdcddcZcYAddcdkpddacZtcLAddfddgddhddiddbddoddpddqdxrdeKdeXdghdgiddscPnddtdduddvcPvcPvcPvddwddxddyddeddxddxddxddyddxddzddAddvddBddCddjddDddEddGddFddHcVzddJcVAcKKcYCddKcVDddZdfqddNddOddPddQdfwddSddTddUddUddUdlhddWddXddYdfrcNTcNTdeaddUddUdfEdfGdeddgAcNScNTdefcNTdegdXpdeedehdeicNTdejdekdelcXJdXSdXTdXUdbAdXYdXZdaSdYadetdmJdevdewdexdeybngabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbzdbzdbzdafdezaSPdeAdeBdeCdeDdeDdeDdeEdeFdcXdeGcZtddIdeHdeJdeIdeIdeIdeIdeLdeMcZtcIEdeNdeOdePddideQdeRdeSdeTdeUdeVdeWdeWdgjddscZxdeYdhXdfadfbcKrdfcdBDdfedffdffdfgdfhdfidfjdfkdflcMedfmdfndfodfodfpdfodfsdfodfodfodfodftdfBdgwdfvdgDdgDdgDdgDdgEdfxdfxdfxdfydfzdfzdfzdfydfAdgxdgydgzcKYcJgcKYcJgcKYcJgcKYcZPdgBdildfCdfDdfDdfDdfDdfDdwpdfFdxAdfDdfDcWadfHdfIdfIdfIdfIdfIdfIdfJdfJdfIcWacSWbngdfKdfKdfKbngabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbzaOsaUpaRmdkqaUpdfMdcXdcXdfNdfNaUpdfOdfPdcXdcXcZtdkwcAZdfSdeIcZwdkzdkAdfRdfXcZtcZtbYhdfYdfZddidgadgbdgcdgddgedgfdgcdggdgkddsdgldgmdeIdgndxEcKrdgpdgqdxPdffdgsdgtdhNdhOdhPdgudflcMfdgvdfndimdindiqdiqdirdiqdisditdfodgCcKKcSwdfvdgFdgGdgHdfvdgTdfydgIdgJdgKdgLdgMdgNdgOdfzdgPdgQdgRcJgdgSdgUdgVdiGdgScJgdgWdgXdgYdfDdgZdhadhbdfDdhcdhddhadhedhfdfDdhgdhhdhidhjdhkdhldhmdhndhodhpdfIdhqdmJdevdeudhsdhrbngabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMWdhuaRjdhvdfLdhwdfMdcXdnHdcXaUpaUpdfOdhxdcXaUpcZtdhycAZdovdpSdhBdkzdridfRdhJdhEcZtdhzdhGdhHdhAdjfdhKdhLdhMdhRdhTdhUdhQdhVdTedhWdhYdhZdibdhWdWjdicdiddiadfgdiedifdjpdjqdjrdigdihdiidijdikdivdjOdjPdiodipdjRdjSdjTdfodiudoZdiwdixdkYdiydizdjVdjWdfydiAdiBdiCdiCdiDdiEdiFdiHdiJdiIdlccZNcMpdiLdiKdkecMpcZNdldcXxdiMdfDdhadhadhadiNdhcdhcdhcdhcdiOdfDdiPcSWdfIdiQdiRdiSdiTdiSdiSdiUdfIcqCdiVbngboGdhtdiXcqJabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbzdhvduTduTdfLdiYdfMdfNaUpdiZdfNaUpdfOdjadcXaOscZtdjbdhDdpSdpSdeJdhFdhIdjgdjmdjmdjcdjddjjdjkdjldjndjodkxdjsdjtdjudjwdjxdjydjvdjzdjBdjCdjDdjzdjAdjEdjFdjJdjKdkLdjGdjHdjIdkQdkUdjLdjMdjNdfndmfdnxdnydjQdjQdjQdjSdnzdnBdnCdjUdledfvdkZdlfdmkdfvdmndfydjXdjYdjZdkadkbdkcdkddkidkfdkgdldcZNcMpdkkdkjdlkcMpcZNdldcVTdgYdfDdfFdkldfFdfCdfFdfFdfFdfFdfFdfDdiPdbydfIdkmdiSdiSdiSdiSdiTdkndfIdkodbybngdfKcqJcqJcqJabjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaMWdWwdYmdYmdfLdkrdfMdfNdksdfNdcXdcXdktdkudcXdkvcZtdYndYodkydhJdYpdkBdYqdYrdcYdmRcZtdhzcLAdbNddidkCdkDdkEdkFdkGdkGdkHdkFddidkIdkJdkKdlRdkKdkMdkIdkNdkOdkPdffdlVdkRdkSdkTdzSdffdkVdkWdkXdnFdoydnxdladladlbdladjSdnzdoRdoScKKcSwdnIdnJdpfdpgdfvdqtdfydlgdoFdlidljdlqdlldlmdfzdlndlodkhcJgdFEdlrdlsdmjdJEcJgcYKcXxdludlvdlwdlxdlydlzdlAdJMdbFdlDdlEdlzdlFdbydfIdlGdiSdiSdiRdiSdiSdlHdhicqCdbycqJabjaaaabjaaaabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadZVaMWdWwdYmdYmdfLdkrdfMdfNdksdfNdcXdcXdktdkudcXdkvcZtdYndYodkydhJdYpdkBdYqdYrdcYdmRcZtdhzcLAdbNddidkCdkDdkEdkFdkGdkGdkHdkFddidkIdkJdkKdlRdkKdkMdkIdkNdkOdkPdffdlVdkRdkSdkTdzSdffdkVdkWdkXdnFdoydnxdladladlbdladjSdnzdoRdoScKKcSwdnIdnJdpfdpgdfvdqtdfydlgdoFdlidljdlqdlldlmdfzdlndlodkhcJgdFEdlrdlsdmjdJEcJgcYKcXxdludlvdlwdlxdlydlzdlAdJMdbFdlDdlEdlzdlFdbydfIdlGdiSdiSdiRdiSdiSdlHdhicqCdbycqJabjaaaabjaaaabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbzaUpaRmaRmdYsdYtdfMaUpdcXaUpdcXdfNdlIdlJaUpdlKcZtcZtcIWdbMdlLcZtcZtcIWcIWcIWcZtcZtdbMdlMdbNddidlNdlOdlPdlPdlPdlOdlQdlPdlPdkIdlYdlSdlTdlUdlZdkIdmddlXdnidfidnkdmadmbdmcdnndffdfldmedjNdfndoTdnxdnydmgdmgdmgdjSdnzdoRdoScKKdmhdfvdfvdfvdfvdfvdqudmldmldmldmldmmdnMdmodmldmldmpdKVdmrdmsdmtdmudmudmudmtdmsdmvcVTdgYdfFdmwdmxdAgdfDdmzdmxdmAdmBdmCdfDdmDdmJdmEdmLdmGdmHdmIdiSdiSdomdmKdqUdaddfKbngcqJcqJcqJabjaaaaaaaaaaaZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbzdbzdbzdmMddddYudmNdmOdmOdmOdmOdmOdmPdmQdcXdlKcZtdmVcYAdmSdeJcYAdmTdmUdmWdmXdoxdmYcZtdmZdnaddidnbdncdnddnednfdlPdngdnhdlPdkIdnrdlSdnjdlUdoIdkIdnldkOdnmdffdoJdnodnpdnqdoKdnsdntdnudnvdnwdoUdoVdoWdnAdipdoXdjSdpbdpcdnDcKKdnEdmidqidnGdYbdYcdYddnKdnLdnNdoadnOdnPdnQdnRdnSdlndlodkhdnTdnUdnVdnWdnXdnYdnTdgWdnZdobdofdocdoddoedogdoldohdoidojdokdptdqWdondfIdoodiSdiTdiSdiSdiRdopdfIdoqdadbngdiWdmFdotcqJabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabjaMWdoudYvdYuaRmaSPaUpdYtaRmdYuaSPdowdcXdafdbMdpTdYwdYxdYxdeIdeIdeJdeIdeIdjedozdbLcLAdoAddidlPdoBdlPdlPdERdlPdlPdoDdlPdkIdIgdvedoGdoHdoOdkIdIhdkOdnidfidpQdoLdoMdoNdqcdffdfldoPdIidfndqjdqkdqodILdqodrDdrEdrFdfodoYdoZdpadrGdrHdpddpedYidYjdphdpidpjdpkdpldpmdpndpodppdpqdprdpsdpzdpudpvdpwdpxdpydqvdpAdpBdpCdfFdpDdpEdpFdfDdpGdpHdpIdpJdpKdfDdiPdbydfJdpLdiSdiSdiRdiRdpMdpNdfJdoqdsmdevdpOdordosbngabjabiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -31,7 +31,7 @@
"aaE" = (/turf/space,/turf/simulated/shuttle/wall{dir = 8; icon_state = "diagonalWall3"},/area/shuttle/syndicate)
"aaF" = (/obj/machinery/porta_turret/syndicate,/turf/simulated/shuttle/wall{dir = 4; icon_state = "wall3"},/area/shuttle/syndicate)
"aaG" = (/obj/structure/closet/syndicate/suits,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"aaH" = (/obj/effect/landmark{name = "Syndicate-Uplink"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"aaH" = (/obj/structure/closet/syndicate/nuclear,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"aaI" = (/obj/structure/chair/stool{pixel_y = 8},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"aaJ" = (/obj/structure/table,/obj/item/aicard,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"aaK" = (/obj/machinery/door/airlock/external{frequency = 1331; icon_state = "door_locked"; id_tag = "synd_outer"; locked = 0; name = "Ship External Access"; req_access = null; req_access_txt = "150"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "smindicate"; name = "Outer Airlock"; opacity = 0},/obj/machinery/door_control{id = "smindicate"; name = "External Door Control"; pixel_x = -26; pixel_y = -2; req_access_txt = "150"},/obj/docking_port/mobile{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate"; name = "syndicate infiltrator"; roundstart_move = "syndicate_away"; width = 18},/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_nw"; name = "northwest of station"; width = 18},/turf/simulated/shuttle/plating,/area/shuttle/syndicate)
@@ -8762,4 +8762,3 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
"}
File diff suppressed because it is too large Load Diff
@@ -521,7 +521,7 @@
"ka" = (/obj/structure/window/reinforced,/turf/simulated/floor/engine/vacuum,/area/ruin/space/ancientstation/atmo)
"kb" = (/obj/machinery/atmospherics/unary/tank/air{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
"kc" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
"kd" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/crowbar,/obj/item/flashlight/glowstick/random,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
"kd" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt,/obj/item/crowbar,/obj/item/flashlight/flare/glowstick/random,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
"ke" = (/obj/effect/decal/cleanable/dirt,/obj/effect/decal/cleanable/deadcockroach,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
"kf" = (/obj/effect/decal/cleanable/dirt,/obj/machinery/computer{desc = "A computer long since rendered non-functional due to lack of maintenance. Spitting out error messages."; name = "Broken Computer"},/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation/powered)
"kg" = (/obj/structure/closet/crate,/obj/effect/decal/cleanable/dirt,/obj/item/reagent_containers/spray/weedspray,/obj/item/reagent_containers/spray/pestspray,/obj/item/reagent_containers/spray/cleaner,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
@@ -531,7 +531,7 @@
"kk" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plating/airless,/area/ruin/space/ancientstation/atmo)
"kl" = (/turf/simulated/floor/plating/airless,/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless/catwalk,/area/template_noop)
"km" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/item/solar_assembly,/obj/item/stack/sheet/glass{amount = 30},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
"kn" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/item/crowbar,/obj/item/flashlight/glowstick/random,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
"kn" = (/obj/structure/table,/obj/machinery/light/small{dir = 8},/obj/effect/decal/cleanable/dirt,/obj/item/crowbar,/obj/item/flashlight/flare/glowstick/random,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
"ko" = (/obj/structure/table,/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/obj/item/paper/fluff/ruins/oldstation,/turf/simulated/floor/plasteel,/area/ruin/space/ancientstation)
"kp" = (/obj/structure/closet/crate/engineering/electrical,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/ruin/space/ancientstation)
"kq" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 8},/obj/item/paper/fluff/ruins/oldstation/protohealth,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel{icon_state = "white"},/area/ruin/space/ancientstation/proto)
@@ -1324,7 +1324,7 @@
"zz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/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)
"zM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/mineral/random/labormineral,/area/awaymission/UO71/queen)
"zO" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/light/small{dir = 4},/obj/item/borg/upgrade/vtec,/obj/item/stock_parts/cell/bluespace,/obj/item/paper/terrorspiders9,/turf/simulated/floor/plasteel{dir = 5; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaymission/UO71/loot)
"zO" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table,/obj/machinery/light/small{dir = 4},/obj/item/borg/upgrade/vtec,/obj/item/stock_parts/cell/bluespace,/obj/item/paper/researchnotes,/turf/simulated/floor/plasteel{dir = 5; icon_state = "cafeteria"; tag = "icon-cafeteria (NORTHEAST)"},/area/awaymission/UO71/loot)
"zP" = (/turf/simulated/wall,/area/awaymission/UO71/bridge)
"zQ" = (/obj/machinery/door/poddoor{id_tag = "UO71_Bridge"; name = "Bridge Lockdown Door"},/turf/simulated/floor/plasteel,/area/awaymission/UO71/bridge)
"zR" = (/obj/machinery/door/poddoor{id_tag = "UO71_Queen"; name = "Caves Lockdown Door"},/turf/simulated/floor/wood,/area/awaymission/UO71/queen)
File diff suppressed because it is too large Load Diff
+166 -180
View File
@@ -7,16 +7,16 @@
"ag" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership)
"ah" = (/turf/unsimulated/wall{tag = "icon-iron14"; icon_state = "iron14"},/area/space)
"ai" = (/obj/item/radio/intercom/syndicate{pixel_x = 32; pixel_y = 0},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"aj" = (/turf/unsimulated/wall{tag = "icon-iron10"; icon_state = "iron10"},/area/space)
"aj" = (/obj/structure/table/holotable,/turf/simulated/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/source_knightarena)
"ak" = (/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/wall{tag = "icon-iron3"; icon_state = "iron3"},/area/space)
"al" = (/obj/structure/table/holotable,/obj/item/clothing/suit/armor/riot/knight/red,/obj/item/clothing/head/helmet/riot/knight/red,/obj/item/holo/claymore/red,/turf/simulated/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/source_knightarena)
"am" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/turf/simulated/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/source_knightarena)
"al" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/unsimulated/wall{tag = "icon-iron3"; icon_state = "iron3"},/area/space)
"am" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/source_knightarena)
"an" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/wall{tag = "icon-iron3"; icon_state = "iron3"},/area/space)
"ao" = (/obj/structure/table/holotable,/turf/simulated/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/source_knightarena)
"ao" = (/obj/structure/holowindow{dir = 4},/turf/simulated/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/source_knightarena)
"ap" = (/turf/space/transit/east{dir = 8},/area/space)
"aq" = (/turf/space/transit/horizontal{dir = 4},/area/space)
"ar" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid"; icon_state = "asteroid"; dir = 2},/area/holodeck/source_desert)
"as" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid6"; icon_state = "asteroid6"; dir = 2},/area/holodeck/source_desert)
"as" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "blue"},/area/holodeck/source_knightarena)
"at" = (/turf/unsimulated/wall,/area/vox_station)
"au" = (/turf/unsimulated/floor/vox,/area/vox_station)
"av" = (/obj/effect/landmark/costume,/obj/structure/rack/holorack,/turf/simulated/floor/holofloor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/holodeck/source_theatre)
@@ -29,83 +29,83 @@
"aC" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/source_emptycourt)
"aD" = (/turf/simulated/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/source_emptycourt)
"aE" = (/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/wall{tag = "icon-iron3"; icon_state = "iron3"},/area/space)
"aF" = (/turf/simulated/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/source_emptycourt)
"aG" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_knightarena)
"aH" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/source_knightarena)
"aF" = (/obj/structure/holowindow{dir = 8},/turf/simulated/floor/holofloor{dir = 1; icon_state = "blue"},/area/holodeck/source_knightarena)
"aG" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/wall{tag = "icon-iron3"; icon_state = "iron3"},/area/space)
"aH" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/turf/simulated/floor/holofloor{dir = 5; icon_state = "blue"},/area/holodeck/source_knightarena)
"aI" = (/obj/machinery/door/airlock/centcom,/turf/unsimulated/floor/vox,/area/vox_station)
"aJ" = (/obj/structure/girder/displaced,/turf/unsimulated/floor/vox,/area/vox_station)
"aK" = (/obj/structure/closet/crate,/turf/unsimulated/floor/vox,/area/vox_station)
"aL" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor{tag = "icon-asteroid"; icon_state = "asteroid"; dir = 2},/area/holodeck/source_desert)
"aM" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid8 (EAST)"; icon_state = "asteroid8"; dir = 4},/area/holodeck/source_desert)
"aM" = (/obj/structure/table/holotable,/turf/simulated/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"aN" = (/turf/space,/area/space)
"aO" = (/turf/simulated/floor/holofloor{tag = "icon-cult"; icon_state = "cult"; dir = 2},/area/holodeck/source_theatre)
"aP" = (/obj/effect/landmark{name = "Holocarp Spawn"},/turf/simulated/floor/holofloor{icon_state = "engine"; name = "Holodeck Projector Floor"},/area/holodeck/source_wildlife)
"aQ" = (/obj/effect/landmark{name = "Atmospheric Test Start"},/turf/simulated/floor/holofloor{icon_state = "engine"; name = "Burn-Mix Floor"; nitrogen = 0; oxygen = 2500; temperature = 370; toxins = 5000},/area/holodeck/source_burntest)
"aR" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_emptycourt)
"aS" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/source_emptycourt)
"aT" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid2 (EAST)"; icon_state = "asteroid2"; dir = 4},/area/holodeck/source_desert)
"aU" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor{tag = "icon-wood_siding2 (EAST)"; icon_state = "wood_siding2"; dir = 4},/area/holodeck/source_picnicarea)
"aV" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor{tag = "icon-wood_siding2 (EAST)"; icon_state = "wood_siding2"; dir = 4},/area/holodeck/source_picnicarea)
"aW" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid11 (EAST)"; icon_state = "asteroid11"; dir = 4},/area/holodeck/source_desert)
"aS" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"aT" = (/obj/structure/holowindow{dir = 4},/turf/simulated/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"aU" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"aV" = (/obj/structure/holowindow{dir = 8},/turf/simulated/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"aW" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/turf/simulated/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"aX" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor{tag = "icon-asteroid"; icon_state = "asteroid"; dir = 2},/area/holodeck/source_desert)
"aY" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor{tag = "icon-asteroid"; icon_state = "asteroid"; dir = 2},/area/holodeck/source_picnicarea)
"aZ" = (/turf/simulated/floor/holofloor{tag = "icon-wood (EAST)"; icon_state = "wood"; dir = 4},/turf/simulated/floor/holofloor{tag = "icon-siding1"; icon_state = "siding1"; dir = 2},/area/holodeck/source_theatre)
"ba" = (/turf/simulated/floor/holofloor{tag = "icon-rampbottom"; icon_state = "rampbottom"; dir = 2},/area/holodeck/source_theatre)
"bb" = (/obj/structure/holowindow,/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_knightarena)
"bc" = (/obj/structure/holowindow,/turf/simulated/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/source_knightarena)
"aZ" = (/obj/structure/table/holotable,/obj/item/clothing/suit/armor/riot/knight/red,/obj/item/clothing/head/helmet/riot/knight/red,/obj/item/holo/claymore/red,/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_knightarena)
"ba" = (/obj/structure/holowindow{dir = 4},/turf/simulated/floor/holofloor,/area/holodeck/source_knightarena)
"bb" = (/obj/structure/holowindow{dir = 8},/turf/simulated/floor/holofloor,/area/holodeck/source_knightarena)
"bc" = (/obj/structure/table/holotable,/obj/item/clothing/suit/armor/riot/knight/blue,/obj/item/clothing/head/helmet/riot/knight/blue,/obj/item/holo/claymore/blue,/turf/simulated/floor/holofloor{dir = 4; icon_state = "blue"},/area/holodeck/source_knightarena)
"bd" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid7"; icon_state = "asteroid7"; dir = 2},/area/holodeck/source_desert)
"be" = (/obj/machinery/computer/shuttle/ert,/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/specops)
"bf" = (/obj/structure/chair/stool,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor{tag = "icon-asteroid"; icon_state = "asteroid"; dir = 2},/area/holodeck/source_picnicarea)
"bf" = (/turf/simulated/floor/holofloor{tag = "icon-carpet2-0 (EAST)"; icon_state = "carpet2-0"; dir = 4},/area/holodeck/source_meetinghall)
"bg" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/holofloor{tag = "icon-wood_siding5"; icon_state = "wood_siding5"; dir = 2},/area/holodeck/source_picnicarea)
"bh" = (/obj/structure/kitchenspike,/turf/unsimulated/floor/vox,/area/vox_station)
"bi" = (/obj/structure/table/wood,/turf/unsimulated/floor/vox,/area/vox_station)
"bj" = (/obj/structure/table/wood,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/holofloor{tag = "icon-asteroid"; icon_state = "asteroid"; dir = 2},/area/holodeck/source_picnicarea)
"bj" = (/turf/simulated/floor/beach/coastline{dir = 1},/area/holodeck/source_beach)
"bk" = (/obj/machinery/door/airlock/centcom{opacity = 1},/turf/unsimulated/floor/vox,/area/vox_station)
"bl" = (/turf/unsimulated/floor/plating/vox,/area/vox_station)
"bm" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/holofloor{tag = "icon-wood_siding9"; icon_state = "wood_siding9"; dir = 2},/area/holodeck/source_picnicarea)
"bn" = (/turf/simulated/floor/holofloor{tag = "icon-carpet6-2 (EAST)"; icon_state = "carpet6-2"; dir = 4},/area/holodeck/source_theatre)
"bo" = (/turf/simulated/floor/holofloor{tag = "icon-wood (EAST)"; icon_state = "wood"; dir = 4},/area/holodeck/source_theatre)
"bp" = (/turf/simulated/floor/holofloor{tag = "icon-carpet10-8 (EAST)"; icon_state = "carpet10-8"; dir = 4},/area/holodeck/source_theatre)
"bp" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/holo/esword/red,/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"bq" = (/turf/simulated/floor/holofloor{tag = "icon-carpet14-10 (EAST)"; icon_state = "carpet14-10"; dir = 4},/area/holodeck/source_theatre)
"br" = (/obj/structure/holowindow{dir = 1},/turf/simulated/floor/holofloor{dir = 8; icon_state = "blue"},/area/holodeck/source_knightarena)
"bs" = (/obj/structure/holowindow{dir = 1},/turf/simulated/floor/holofloor{dir = 4; icon_state = "blue"},/area/holodeck/source_knightarena)
"br" = (/obj/structure/holowindow{dir = 4},/turf/simulated/floor/holofloor,/area/holodeck/source_thunderdomecourt)
"bs" = (/obj/structure/holowindow{dir = 8},/turf/simulated/floor/holofloor,/area/holodeck/source_thunderdomecourt)
"bt" = (/obj/structure/flora/ausbushes/fullgrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
"bu" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
"bv" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid5"; icon_state = "asteroid5"; dir = 2},/area/holodeck/source_desert)
"bu" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/holo/esword/green,/turf/simulated/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"bv" = (/turf/simulated/floor/holofloor{tag = "icon-carpet1-0 (EAST)"; icon_state = "carpet1-0"; dir = 4},/area/holodeck/source_meetinghall)
"bw" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/holofloor{tag = "icon-wood_siding6"; icon_state = "wood_siding6"; dir = 2},/area/holodeck/source_picnicarea)
"bx" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/holofloor{tag = "icon-wood_siding10"; icon_state = "wood_siding10"; dir = 2},/area/holodeck/source_picnicarea)
"by" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet7-3 (EAST)"; icon_state = "carpet7-3"; dir = 4},/area/holodeck/source_theatre)
"bx" = (/obj/item/clothing/under/rainbow,/turf/simulated/floor/beach/sand,/area/holodeck/source_beach)
"by" = (/obj/effect/overlay/coconut,/turf/simulated/floor/beach/sand,/area/holodeck/source_beach)
"bz" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet11-12 (EAST)"; icon_state = "carpet11-12"; dir = 4},/area/holodeck/source_theatre)
"bA" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet15-15 (EAST)"; icon_state = "carpet15-15"; dir = 4},/area/holodeck/source_theatre)
"bB" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/source_emptycourt)
"bB" = (/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/beach/sand,/area/holodeck/source_beach)
"bC" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/source_emptycourt)
"bD" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "blue"},/area/holodeck/source_knightarena)
"bE" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "blue"},/area/holodeck/source_knightarena)
"bF" = (/turf/simulated/floor/holofloor{tag = "icon-carpet2-0 (EAST)"; icon_state = "carpet2-0"; dir = 4},/area/holodeck/source_theatre)
"bG" = (/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
"bD" = (/obj/effect/overlay/palmtree_l,/turf/simulated/floor/beach/sand,/area/holodeck/source_beach)
"bE" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/turf/simulated/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/source_knightarena)
"bF" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/source_knightarena)
"bG" = (/obj/structure/holowindow{dir = 4},/turf/simulated/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/source_knightarena)
"bH" = (/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor/grass,/area/holodeck/source_picnicarea)
"bI" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor{tag = "icon-wood_siding1"; icon_state = "wood_siding1"; dir = 2},/area/holodeck/source_picnicarea)
"bJ" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/ywflowers,/turf/simulated/floor/holofloor{tag = "icon-wood_siding1"; icon_state = "wood_siding1"; dir = 2},/area/holodeck/source_picnicarea)
"bK" = (/turf/simulated/floor/holofloor{tag = "icon-carpet3-0 (EAST)"; icon_state = "carpet3-0"; dir = 4},/area/holodeck/source_theatre)
"bI" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "blue"},/area/holodeck/source_knightarena)
"bJ" = (/obj/structure/holowindow{dir = 8},/turf/simulated/floor/holofloor{dir = 2; icon_state = "blue"},/area/holodeck/source_knightarena)
"bK" = (/obj/structure/table/holotable,/turf/simulated/floor/holofloor{dir = 6; icon_state = "blue"},/area/holodeck/source_knightarena)
"bL" = (/obj/docking_port/stationary/transit{dir = 4; dwidth = 1; height = 4; id = "pod3_transit"; name = "pod 3 in transit"; width = 3},/turf/space/transit/east{dir = 8},/area/space)
"bM" = (/turf/simulated/floor/holofloor,/area/holodeck/source_emptycourt)
"bN" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid1 (EAST)"; icon_state = "asteroid1"; dir = 4},/area/holodeck/source_desert)
"bO" = (/obj/structure/table/holotable,/obj/item/clothing/suit/armor/riot/knight/blue,/obj/item/clothing/head/helmet/riot/knight/blue,/obj/item/holo/claymore/blue,/turf/simulated/floor/holofloor{dir = 2; icon_state = "blue"},/area/holodeck/source_knightarena)
"bP" = (/obj/structure/table/holotable,/turf/simulated/floor/holofloor{dir = 10; icon_state = "blue"},/area/holodeck/source_knightarena)
"bQ" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/turf/simulated/floor/holofloor{dir = 6; icon_state = "blue"},/area/holodeck/source_knightarena)
"bR" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid3 (EAST)"; icon_state = "asteroid3"; dir = 4},/area/holodeck/source_desert)
"bS" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet5-1 (EAST)"; icon_state = "carpet5-1"; dir = 4},/area/holodeck/source_theatre)
"bT" = (/turf/simulated/floor/holofloor{tag = "icon-carpet1-0 (EAST)"; icon_state = "carpet1-0"; dir = 4},/area/holodeck/source_theatre)
"bN" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/turf/simulated/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"bO" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"bP" = (/obj/structure/holowindow{dir = 4},/turf/simulated/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"bQ" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"bR" = (/obj/structure/holowindow{dir = 8},/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"bS" = (/obj/structure/table/holotable,/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"bT" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced,/turf/unsimulated/wall{tag = "icon-iron12"; icon_state = "iron12"},/area/space)
"bU" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet9-4 (EAST)"; icon_state = "carpet9-4"; dir = 4},/area/holodeck/source_theatre)
"bV" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet13-5 (EAST)"; icon_state = "carpet13-5"; dir = 4},/area/holodeck/source_theatre)
"bW" = (/turf/space/transit/horizontal,/area/space)
"bX" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_emptycourt)
"bY" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_emptycourt)
"bY" = (/turf/unsimulated/wall{icon_state = "iron7"; tag = "icon-iron13"},/area/space)
"bZ" = (/turf/unsimulated/wall,/area/space)
"ca" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_emptycourt)
"cb" = (/turf/unsimulated/wall{tag = "icon-iron5"; icon_state = "iron5"},/area/space)
"cc" = (/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall{tag = "icon-iron12"; icon_state = "iron12"},/area/space)
"cd" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall{tag = "icon-iron12"; icon_state = "iron12"},/area/space)
"cd" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor{dir = 2; icon_state = "wood_siding4"; tag = "icon-wood_siding6"},/area/holodeck/source_picnicarea)
"ce" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/wall{tag = "icon-iron12"; icon_state = "iron12"},/area/space)
"cf" = (/turf/unsimulated/wall{tag = "icon-iron11"; icon_state = "iron11"},/area/space)
"cg" = (/turf/simulated/floor/holofloor{tag = "icon-17 (NORTHEAST)"; icon_state = "17"; dir = 5},/area/holodeck/source_space)
@@ -120,27 +120,27 @@
"cp" = (/turf/unsimulated/floor{name = "plating"},/area/centcom/ferry)
"cq" = (/turf/simulated/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/source_basketball)
"cr" = (/turf/unsimulated/floor{name = "plating"},/area/space)
"cs" = (/obj/structure/holohoop,/turf/simulated/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/source_basketball)
"ct" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/under/color/red,/obj/item/holo/esword/red,/turf/simulated/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"cu" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/turf/simulated/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"cv" = (/obj/structure/table/holotable,/turf/simulated/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"cs" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/holofloor{dir = 2; icon_state = "wood_siding10"; tag = "icon-wood_siding6"},/area/holodeck/source_picnicarea)
"ct" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/brflowers,/turf/simulated/floor/holofloor{dir = 2; icon_state = "wood_siding8"; tag = "icon-wood_siding6"},/area/holodeck/source_picnicarea)
"cu" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/unsimulated/wall{tag = "icon-iron3"; icon_state = "iron3"},/area/space)
"cv" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/source_emptycourt)
"cw" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/source_boxingcourt)
"cx" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/source_boxingcourt)
"cy" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/source_boxingcourt)
"cy" = (/turf/simulated/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/source_emptycourt)
"cz" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 3; height = 5; id = "mining_transit"; name = "mining in transit"; width = 7},/turf/space/transit,/area/space)
"cA" = (/obj/structure/flora/grass/both,/turf/simulated/floor/holofloor{tag = "icon-snow"; icon_state = "snow"},/area/holodeck/source_snowfield)
"cB" = (/turf/simulated/floor/holofloor{tag = "icon-carpet4-0 (EAST)"; icon_state = "carpet4-0"; dir = 4},/area/holodeck/source_meetinghall)
"cC" = (/turf/simulated/floor/holofloor{tag = "icon-carpet8-0 (EAST)"; icon_state = "carpet8-0"; dir = 4},/area/holodeck/source_meetinghall)
"cB" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-asteroid"; icon_state = "asteroid"; dir = 2},/area/holodeck/source_picnicarea)
"cC" = (/obj/effect/decal/cleanable/dirt,/obj/structure/table/wood,/turf/simulated/floor/holofloor{tag = "icon-asteroid"; icon_state = "asteroid"; dir = 2},/area/holodeck/source_picnicarea)
"cD" = (/turf/simulated/floor/holofloor{tag = "icon-carpetsymbol (SOUTHEAST)"; icon_state = "carpetsymbol"; dir = 6},/area/holodeck/source_meetinghall)
"cE" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_basketball)
"cF" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/source_basketball)
"cG" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"cG" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/source_emptycourt)
"cH" = (/obj/machinery/computer/shuttle/ferry,/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
"cI" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"cI" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/source_emptycourt)
"cJ" = (/turf/unsimulated/wall/fakeglass,/area/centcom/ferry)
"cK" = (/obj/machinery/computer/shuttle/admin,/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
"cL" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_boxingcourt)
"cM" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/source_boxingcourt)
"cM" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "rampbottom"; tag = "icon-rampbottom"},/area/holodeck/source_theatre)
"cN" = (/obj/docking_port/stationary/transit{dir = 4; dwidth = 1; height = 4; id = "pod4_transit"; name = "pod 4 in transit"; width = 3},/turf/space/transit/east{dir = 8},/area/space)
"cO" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor{tag = "icon-snow"; icon_state = "snow"},/area/holodeck/source_snowfield)
"cP" = (/obj/structure/table/wood,/turf/simulated/floor/holofloor{tag = "icon-grimy"; icon_state = "grimy"; dir = 2},/area/holodeck/source_meetinghall)
@@ -166,16 +166,16 @@
"dj" = (/turf/simulated/floor/holofloor,/area/holodeck/source_knightarena)
"dk" = (/obj/structure/flora/grass/green,/turf/simulated/floor/holofloor{tag = "icon-snow"; icon_state = "snow"},/area/holodeck/source_snowfield)
"dl" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet6-0 (EAST)"; icon_state = "carpet6-0"; dir = 4},/area/holodeck/source_meetinghall)
"dm" = (/obj/structure/holowindow,/turf/simulated/floor/holofloor,/area/holodeck/source_knightarena)
"dm" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "carpet12-0"; tag = "icon-carpet3-0 (EAST)"},/area/holodeck/source_theatre)
"dn" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet10-0 (EAST)"; icon_state = "carpet10-0"; dir = 4},/area/holodeck/source_meetinghall)
"do" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet14-0 (EAST)"; icon_state = "carpet14-0"; dir = 4},/area/holodeck/source_meetinghall)
"dp" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/source_basketball)
"dq" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/source_basketball)
"dr" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "red"},/area/holodeck/source_basketball)
"ds" = (/obj/structure/holowindow,/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"dt" = (/obj/structure/holowindow,/turf/simulated/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/source_thunderdomecourt)
"ds" = (/turf/simulated/floor/holofloor{tag = "icon-carpet4-0 (EAST)"; icon_state = "carpet4-0"; dir = 4},/area/holodeck/source_theatre)
"dt" = (/turf/simulated/floor/holofloor{tag = "icon-carpet8-0 (EAST)"; icon_state = "carpet8-0"; dir = 4},/area/holodeck/source_theatre)
"du" = (/obj/docking_port/stationary/transit{dir = 4; dwidth = 11; height = 13; id = "emergency_transit"; name = "emergency in transit"; width = 24},/turf/space/transit,/area/space)
"dv" = (/obj/structure/holowindow{dir = 1},/turf/simulated/floor/holofloor,/area/holodeck/source_knightarena)
"dv" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "green"},/area/holodeck/source_boxingcourt)
"dw" = (/obj/structure/table,/obj/machinery/kitchen_machine/microwave/upgraded,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/ninja/holding)
"dx" = (/obj/structure/table,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/ninja/holding)
"dy" = (/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
@@ -191,9 +191,9 @@
"dI" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/grenade/smokebomb,/obj/item/restraints/legcuffs/beartrap,/obj/item/sleeping_carp_scroll,/obj/item/twohanded/bostaff,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena)
"dJ" = (/turf/simulated/floor/holofloor{dir = 9; icon_state = "green"},/area/holodeck/source_basketball)
"dK" = (/turf/simulated/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/source_basketball)
"dL" = (/obj/structure/holowindow{dir = 1},/turf/simulated/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"dM" = (/obj/structure/holowindow{dir = 1},/turf/simulated/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"dN" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/source_boxingcourt)
"dL" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor{dir = 5; icon_state = "green"},/area/holodeck/source_boxingcourt)
"dM" = (/turf/simulated/floor/holofloor{tag = "icon-wood (EAST)"; icon_state = "wood"; dir = 4},/turf/simulated/floor/holofloor{dir = 2; icon_state = "siding8"; tag = "icon-siding1"},/area/holodeck/source_theatre)
"dN" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet14-10 (EAST)"; icon_state = "carpet14-10"; dir = 4},/area/holodeck/source_theatre)
"dO" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/source_boxingcourt)
"dP" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"; tag = "icon-fakewindows (WEST)"},/area/ninja/outpost)
"dQ" = (/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/unsimulated/floor{icon_state = "grimy"},/area/ninja/outpost)
@@ -206,8 +206,8 @@
"dX" = (/obj/docking_port/stationary/transit{dir = 4; dwidth = 7; height = 5; id = "sst_transit"; name = "sst in transit"; width = 11},/turf/space/transit,/area/space)
"dY" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/source_basketball)
"dZ" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/source_basketball)
"ea" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"eb" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"ea" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet10-8 (EAST)"; icon_state = "carpet10-8"; dir = 4},/area/holodeck/source_theatre)
"eb" = (/turf/simulated/floor/holofloor{tag = "icon-carpet15-15 (EAST)"; icon_state = "carpet15-15"; dir = 4},/area/holodeck/source_theatre)
"ec" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 5; height = 7; id = "supply_transit"; name = "supply in transit"; width = 12},/turf/space/transit,/area/space)
"ed" = (/obj/structure/rack,/obj/item/clothing/head/that{pixel_x = 4; pixel_y = 6},/obj/item/clothing/under/suit_jacket,/obj/item/clothing/suit/wcoat,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
"ee" = (/obj/structure/chair/stool/bar,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
@@ -216,29 +216,34 @@
"eh" = (/obj/structure/flora/tree/pine,/turf/unsimulated/floor/snow,/area/syndicate_mothership)
"ei" = (/turf/space,/area/centcom/control)
"ej" = (/obj/machinery/door/airlock/external{id_tag = "sit_away"; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"ek" = (/obj/structure/flora/grass/brown,/turf/simulated/floor/holofloor{tag = "icon-snow"; icon_state = "snow"},/area/holodeck/source_snowfield)
"ek" = (/turf/simulated/floor/holofloor{tag = "icon-carpet7-3 (EAST)"; icon_state = "carpet7-3"; dir = 4},/area/holodeck/source_theatre)
"el" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_basketball)
"em" = (/turf/simulated/floor/holofloor{icon_state = "sand"; name = "Soft sand"},/area/holodeck/source_beach)
"en" = (/obj/structure/chair/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"eo" = (/obj/structure/rack,/obj/item/storage/fancy/crayons,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
"ep" = (/obj/machinery/vending/coffee,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
"eq" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"er" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet5-0 (EAST)"; icon_state = "carpet5-0"; dir = 4},/area/holodeck/source_meetinghall)
"es" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet9-0 (EAST)"; icon_state = "carpet9-0"; dir = 4},/area/holodeck/source_meetinghall)
"et" = (/obj/structure/chair/stool,/turf/simulated/floor/holofloor{tag = "icon-carpet13-0 (EAST)"; icon_state = "carpet13-0"; dir = 4},/area/holodeck/source_meetinghall)
"eu" = (/obj/structure/chair/stool,/obj/machinery/computer/security/telescreen{name = "Entertainment monitor"; desc = "Damn, they better have /tg/thechannel on these things."; icon_state = "entertainment"; pixel_y = -30},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
"ev" = (/turf/simulated/floor/beach/sand,/area/holodeck/source_beach)
"ew" = (/obj/machinery/vending/snack,/obj/structure/window/reinforced{dir = 4},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
"ex" = (/obj/item/flag/syndi,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"ey" = (/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"ez" = (/obj/item/radio/intercom/syndicate{pixel_x = -28},/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"eA" = (/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership)
"eB" = (/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_basketball)
"eC" = (/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_basketball)
"eD" = (/obj/structure/holohoop{dir = 1},/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_basketball)
"eE" = (/obj/structure/table/holotable,/obj/item/clothing/head/helmet/thunderdome,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/under/color/green,/obj/item/holo/esword/green,/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"eF" = (/obj/structure/table/holotable,/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"eG" = (/obj/structure/table/holotable,/obj/machinery/readybutton{pixel_y = 0},/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_thunderdomecourt)
"eD" = (/obj/structure/holohoop{dir = 4},/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_basketball)
"eE" = (/obj/structure/holohoop{dir = 8},/turf/simulated/floor/holofloor{dir = 4; icon_state = "green"},/area/holodeck/source_basketball)
"eF" = (/turf/simulated/floor/holofloor{tag = "icon-carpet13-5 (EAST)"; icon_state = "carpet13-5"; dir = 4},/area/holodeck/source_theatre)
"eG" = (/turf/simulated/floor/holofloor{tag = "icon-carpet5-1 (EAST)"; icon_state = "carpet5-1"; dir = 4},/area/holodeck/source_theatre)
"eH" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "green"},/area/holodeck/source_boxingcourt)
"eI" = (/turf/simulated/floor/holofloor,/area/holodeck/source_basketball)
"eJ" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor{dir = 10; icon_state = "green"},/area/holodeck/source_boxingcourt)
"eJ" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor{dir = 10; icon_state = "red"},/area/holodeck/source_boxingcourt)
"eK" = (/obj/effect/overlay/palmtree_r,/turf/simulated/floor/beach/sand,/area/holodeck/source_beach)
"eL" = (/obj/effect/overlay/palmtree_l,/obj/effect/overlay/coconut,/turf/simulated/floor/beach/sand,/area/holodeck/source_beach)
"eL" = (/turf/simulated/floor/holofloor{dir = 2; icon_state = "red"},/area/holodeck/source_boxingcourt)
"eM" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove{icon_state = "boxinggreen"; item_state = "boxinggreen"},/turf/simulated/floor/holofloor{dir = 6; icon_state = "green"},/area/holodeck/source_boxingcourt)
"eN" = (/turf/simulated/floor/holofloor,/area/holodeck/source_thunderdomecourt)
"eO" = (/obj/machinery/vending/cigarette,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
@@ -253,24 +258,29 @@
"eX" = (/turf/unsimulated/wall{tag = "icon-iron9"; icon_state = "iron9"},/area/space)
"eY" = (/obj/effect/decal/warning_stripes/yellow,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding)
"eZ" = (/obj/machinery/door/airlock/external{id_tag = "sst_away"; req_access_txt = "150"},/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership)
"fa" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"fb" = (/obj/effect/landmark{name = "Holding Facility"},/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/unsimulated/floor{icon_state = "engine"},/area/ninja/holding)
"fc" = (/obj/docking_port/stationary{dir = 4; dwidth = 7; height = 5; id = "sst_away"; name = "Syndicate Base"; width = 11},/turf/unsimulated/floor{name = "plating"},/area/syndicate_mothership)
"fd" = (/obj/item/flag/syndi,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"fe" = (/obj/machinery/cryopod/right,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
"ff" = (/turf/unsimulated/wall,/area/ninja/outpost)
"fg" = (/turf/unsimulated/wall,/area/ninja/holding)
"fh" = (/obj/structure/sign/double/map/left{pixel_y = -32},/obj/machinery/light,/obj/structure/rack/skeletal_bar/left,/obj/item/reagent_containers/food/drinks/bottle/vodka,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"fi" = (/obj/machinery/computer/shuttle/syndicate/recall,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"fj" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fk" = (/obj/structure/bookcase{name = "Forbidden Knowledge"},/obj/effect/decal/cleanable/cobweb,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fl" = (/obj/machinery/cryopod,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
"fm" = (/turf/unsimulated/wall,/area/centcom/gamma)
"fn" = (/obj/machinery/computer/library/checkout,/obj/structure/table/wood,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fo" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fp" = (/obj/machinery/vending/snack,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fp" = (/obj/machinery/vending/snack/free,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fq" = (/obj/machinery/vending/magivend,/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fr" = (/obj/structure/closet{icon_closed = "cabinet_closed"; icon_opened = "cabinet_open"; icon_state = "cabinet_closed"},/obj/item/storage/backpack/satchel,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/wizard_station)
"fs" = (/obj/structure/bed,/obj/item/bedsheet/wiz,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/wizard_station)
"ft" = (/obj/structure/mirror{pixel_y = 28},/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station)
"ft" = (/obj/structure/mirror/magic{pixel_y = 28},/turf/unsimulated/floor{dir = 1; icon_state = "carpetside"},/area/wizard_station)
"fu" = (/turf/unsimulated/floor{icon_state = "dark"},/area/ninja/outpost)
"fv" = (/obj/structure/ninjatele{pixel_y = 25},/turf/unsimulated/floor{icon_state = "dark"},/area/ninja/outpost)
"fw" = (/obj/docking_port/stationary{dir = 8; dwidth = 4; height = 11; id = "trade_sol_base"; name = "docking bay 2 at Jupiter Station"; width = 9},/turf/space,/area/space)
"fx" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station)
"fy" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station)
"fz" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station)
@@ -285,6 +295,7 @@
"fI" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/ninja/holding)
"fJ" = (/obj/structure/chair,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fK" = (/obj/effect/overlay/palmtree_l,/turf/unsimulated/beach/sand,/area/ninja/holding)
"fL" = (/obj/machinery/computer/cryopod{density = 0; pixel_x = 0; pixel_y = 32},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"fM" = (/obj/machinery/door/poddoor{id_tag = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
"fN" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/tdome/arena_source)
"fO" = (/obj/machinery/door/poddoor{id_tag = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome/arena_source)
@@ -292,14 +303,17 @@
"fQ" = (/obj/structure/bookcase,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fR" = (/obj/structure/chair{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fS" = (/obj/structure/table/wood,/obj/item/dice/d20,/obj/item/dice,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fT" = (/obj/item/clothing/under/rainbow,/obj/item/clothing/glasses/sunglasses,/turf/simulated/floor/beach/sand,/area/holodeck/source_beach)
"fT" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/unsimulated/wall{tag = "icon-iron12"; icon_state = "iron12"},/area/space)
"fU" = (/obj/structure/table/wood,/obj/machinery/recharger{pixel_y = 0},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fV" = (/obj/structure/holowindow,/turf/simulated/floor/holofloor,/area/holodeck/source_thunderdomecourt)
"fV" = (/obj/machinery/power/apc{dir = 2; name = "Gamma Armory APC"; pixel_y = -24},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"fW" = (/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fX" = (/obj/structure/table/wood,/obj/item/stack/spacecash,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fY" = (/obj/structure/table/wood,/obj/item/reagent_containers/food/drinks/mugwort,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"fZ" = (/obj/machinery/cryopod/right,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"ga" = (/obj/machinery/light/spot{tag = "icon-tube1 (WEST)"; icon_state = "tube1"; dir = 8},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"gb" = (/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"gc" = (/obj/machinery/light,/obj/machinery/cryopod/right,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"gd" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/twohanded/staff,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/twohanded/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
"ge" = (/turf/unsimulated/floor/snow,/turf/simulated/shuttle/wall{icon_state = "diagonalWall3"},/area/syndicate_mothership)
"gf" = (/obj/item/camera,/turf/unsimulated/beach/sand,/area/ninja/holding)
"gg" = (/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
@@ -315,7 +329,6 @@
"gq" = (/obj/item/trash/raisins,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station)
"gr" = (/obj/item/beach_ball,/turf/simulated/floor/beach/sand,/area/holodeck/source_beach)
"gs" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (NORTHEAST)"; icon_state = "fakewindows"; dir = 5},/area/wizard_station)
"gt" = (/obj/structure/holowindow{dir = 1},/turf/simulated/floor/holofloor,/area/holodeck/source_thunderdomecourt)
"gu" = (/turf/unsimulated/wall/fakeglass{dir = 8; icon_state = "fakewindows3"; tag = "icon-fakewindows (WEST)"},/area/wizard_station)
"gv" = (/obj/structure/table/reinforced,/obj/structure/kitchenspike,/turf/unsimulated/floor{dir = 4; icon_state = "chapel"},/area/wizard_station)
"gw" = (/obj/structure/showcase,/turf/unsimulated/floor{dir = 1; icon_state = "chapel"},/area/wizard_station)
@@ -349,7 +362,6 @@
"gY" = (/obj/machinery/vending/syndicigs,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"gZ" = (/obj/docking_port/stationary/transit{dir = 2; dwidth = 2; height = 18; id = "skipjack_transit"; name = "skipjack in transit"; width = 19},/turf/space/transit,/area/space)
"ha" = (/obj/docking_port/stationary/transit{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_transit"; name = "syndicate in transit"; width = 18},/turf/space/transit,/area/space)
"hb" = (/turf/simulated/floor/beach/coastline,/area/holodeck/source_beach)
"hc" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 2; height = 5; id = "laborcamp_transit"; name = "labor in transit"; width = 9},/turf/space/transit,/area/space)
"hd" = (/obj/docking_port/stationary/transit{dir = 1; dwidth = 1; height = 4; id = "pod1_transit"; name = "pod 1 in transit"; width = 3},/turf/space/transit,/area/space)
"he" = (/turf/unsimulated/beach/coastline,/area/ninja/holding)
@@ -358,7 +370,6 @@
"hh" = (/obj/docking_port/stationary/transit{dir = 1; dwidth = 1; height = 4; id = "pod2_transit"; name = "pod 2 in transit"; width = 3},/turf/space/transit,/area/space)
"hi" = (/obj/docking_port/stationary{area_type = /area/syndicate_mothership; dir = 1; dwidth = 11; height = 18; id = "emergency_syndicate"; name = "404 Not Found"; turf_type = /turf/unsimulated/floor/snow; width = 29},/turf/unsimulated/floor/snow,/area/syndicate_mothership)
"hj" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (EAST)"; icon_state = "gravsnow_corner"; dir = 4},/area/syndicate_mothership)
"hk" = (/turf/simulated/floor/beach/water,/area/holodeck/source_beach)
"hl" = (/obj/machinery/door/airlock/external{id_tag = "syndicate_away"; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"hm" = (/turf/unsimulated/floor/snow,/turf/unsimulated/floor/snow{tag = "icon-gravsnow_corner (WEST)"; icon_state = "gravsnow_corner"; dir = 8},/area/syndicate_mothership)
"hn" = (/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
@@ -422,15 +433,15 @@
"it" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/syndicate_mothership)
"iu" = (/obj/effect/decal/warning_stripes/southeast,/turf/simulated/floor/plating/airless,/area/syndicate_mothership)
"iv" = (/turf/simulated/shuttle/wall{icon_state = "wall3"},/area/shuttle/assault_pod)
"iw" = (/obj/effect/decal/warning_stripes/south,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"ix" = (/obj/effect/decal/warning_stripes/southeastcorner,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"iw" = (/obj/structure/rack,/obj/item/clothing/suit/space/eva/plasmaman/wizard,/obj/item/clothing/head/helmet/space/eva/plasmaman/wizard,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath/vox,/obj/item/tank/plasma/plasmaman,/obj/item/tank/emergency_oxygen/vox,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
"ix" = (/obj/machinery/sleeper/syndie,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"iy" = (/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
"iz" = (/obj/machinery/door/airlock/centcom{name = "Restroom"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"iA" = (/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
"iB" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"iC" = (/obj/structure/table/wood,/obj/item/pizzabox,/obj/item/paicard/syndicate,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"iD" = (/obj/structure/table/wood,/obj/item/reagent_containers/food/drinks/cans/beer{pixel_x = -2; pixel_y = 5},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"iE" = (/obj/structure/chair/stool,/obj/effect/landmark{name = "Syndicate-Spawn"},/obj/effect/decal/warning_stripes/east,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"iE" = (/obj/structure/closet/syndicate/sst,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"iF" = (/obj/structure/toilet{dir = 8},/obj/structure/window/reinforced/tinted{dir = 1},/obj/machinery/door/window{dir = 8; name = "Tactical Toilet"; opacity = 1; req_access_txt = "150"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership)
"iG" = (/obj/effect/decal/warning_stripes/southwest,/turf/simulated/floor/plating/airless,/area/syndicate_mothership)
"iH" = (/turf/unsimulated/floor/snow,/obj/structure/flora/tree/pine{pixel_x = 1},/turf/unsimulated/floor/snow{icon_state = "gravsnow_corner"},/area/syndicate_mothership)
@@ -468,9 +479,9 @@
"jn" = (/obj/structure/table/wood,/obj/item/syndicatedetonator,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"jo" = (/obj/structure/table/wood,/obj/item/toy/nuke,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"jp" = (/turf/simulated/floor/plasteel,/area/tdome/arena_source)
"jq" = (/obj/effect/decal/warning_stripes/north,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"jq" = (/obj/machinery/light/spot{tag = "icon-tube1 (EAST)"; icon_state = "tube1"; dir = 4},/obj/structure/closet/syndicate/sst,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"jr" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/melee/energy/sword/saber/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome/arena_source)
"js" = (/obj/effect/decal/warning_stripes/northeastcorner,/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership)
"js" = (/obj/structure/table/reinforced,/obj/item/syndicatedetonator,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"jt" = (/obj/structure/chair{dir = 8},/obj/machinery/light/small{tag = "icon-bulb1 (EAST)"; icon_state = "bulb1"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/assault_pod)
"ju" = (/obj/effect/decal/warning_stripes/northeast,/turf/simulated/floor/plating/airless,/area/syndicate_mothership)
"jv" = (/obj/effect/decal/warning_stripes/northeastcorner,/turf/simulated/floor/plating/airless,/area/syndicate_mothership)
@@ -481,17 +492,14 @@
"jA" = (/obj/docking_port/stationary/transit{dir = 8; dwidth = 10; height = 35; id = "whiteship_transit"; name = "whiteship in transit"; width = 21},/turf/space/transit/horizontal{dir = 4},/area/space)
"jB" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'FOURTH WALL'."; name = "\improper FOURTH WALL"; pixel_x = -32},/turf/unsimulated/floor/snow,/area/syndicate_mothership)
"jC" = (/obj/machinery/door/poddoor/impassable{id_tag = "sit_tele"; name = "Teleporter"},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"jD" = (/obj/effect/landmark{name = "Syndicate-Spawn"},/obj/effect/decal/warning_stripes/south,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"jD" = (/obj/structure/table/reinforced,/obj/item/healthanalyzer,/obj/item/healthanalyzer{pixel_y = 5},/obj/item/healthupgrade{pixel_x = 6; pixel_y = 5},/obj/item/healthupgrade{pixel_x = 6},/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"jE" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/twohanded/staff/broom,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
"jF" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusblue,/obj/item/clothing/head/wizard/magus,/obj/item/twohanded/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
"jG" = (/obj/effect/decal/warning_stripes/southeastcorner,/obj/item/radio/intercom/syndicate{pixel_x = -28},/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"jH" = (/obj/effect/decal/warning_stripes/southwestcorner,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"jF" = (/obj/structure/table/reinforced,/obj/item/storage/toolbox/syndicate{pixel_x = 5},/obj/item/multitool{pixel_x = -7; pixel_y = -1},/obj/item/multitool,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"jG" = (/obj/machinery/light/spot,/obj/structure/table/reinforced,/obj/item/radio/beacon/syndicate/bomb{pixel_y = 8},/obj/item/radio/beacon/syndicate/bomb{pixel_y = 4},/obj/item/radio/beacon/syndicate/bomb,/turf/unsimulated/floor{icon_state = "dark"},/area/syndicate_mothership)
"jI" = (/turf/space,/area/adminconstruction)
"jJ" = (/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plating/airless,/area/syndicate_mothership)
"jK" = (/obj/effect/decal/warning_stripes/north,/obj/machinery/light,/turf/simulated/floor/plating/airless,/area/syndicate_mothership)
"jL" = (/obj/effect/decal/warning_stripes/south,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"jM" = (/obj/machinery/door/window{dir = 4; name = "Uplink Management Control"; req_access_txt = "151"},/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"jN" = (/obj/structure/sign/double/map/left{pixel_y = -32},/obj/effect/decal/warning_stripes/west,/obj/machinery/light,/obj/structure/rack/skeletal_bar/left,/obj/item/reagent_containers/food/drinks/bottle/vodka,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"jO" = (/obj/structure/sign/double/map/right{pixel_y = -32},/obj/structure/rack/skeletal_bar/right,/obj/item/reagent_containers/food/drinks/bottle/gin,/turf/unsimulated/floor{dir = 2; icon_state = "wood"},/area/syndicate_mothership)
"jP" = (/turf/unsimulated/wall/abductor{icon_state = "alien21"},/area/abductor_ship)
"jQ" = (/turf/unsimulated/wall/abductor{icon_state = "alien20"},/area/abductor_ship)
@@ -510,7 +518,6 @@
"kd" = (/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/gamma)
"ke" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/red,/obj/item/clothing/shoes/sandal,/obj/item/clothing/head/wizard/red,/obj/item/twohanded/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
"kf" = (/obj/machinery/light/spot,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
"kg" = (/obj/structure/rack,/obj/item/clothing/suit/wizrobe/magusred,/obj/item/clothing/head/wizard/magus,/obj/item/twohanded/staff,/turf/unsimulated/floor{icon_state = "grimy"},/area/wizard_station)
"kh" = (/turf/simulated/floor/pod,/turf/space,/obj/machinery/porta_turret/syndicate/pod,/turf/simulated/shuttle/wall{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/assault_pod)
"ki" = (/obj/docking_port/stationary/transit{dir = 2; dwidth = 3; height = 5; id = "engineering_transit"; name = "engineering in transit"; turf_type = /turf/space/transit/horizontal; width = 7},/turf/space/transit/horizontal,/area/space)
"kj" = (/turf/unsimulated/floor{dir = 2; icon_state = "stage_stairs"},/area/syndicate_mothership)
@@ -661,8 +668,6 @@
"mY" = (/obj/structure/flora/ausbushes/ywflowers,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control)
"mZ" = (/obj/structure/flora/ausbushes/stalkybush,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control)
"na" = (/obj/structure/flora/ausbushes/sparsegrass,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control)
"nb" = (/turf/unsimulated/floor{icon_state = "browncorner"},/area/trader_station/sol)
"nc" = (/turf/unsimulated/floor{icon_state = "brown"},/area/trader_station/sol)
"nd" = (/obj/structure/flora/ausbushes/lavendergrass,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control)
"ne" = (/obj/structure/flora/ausbushes/fullgrass,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/control)
"nf" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpet15-5"},/area/centcom/control)
@@ -763,25 +768,20 @@
"oW" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/gun/energy/gun/nuclear,/obj/item/gun/energy/gun/nuclear,/obj/item/gun/energy/gun/nuclear,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"oX" = (/obj/machinery/door/airlock/external{id_tag = "specops_away"; name = "Shuttle Hatch"; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
"oY" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile/emergency/backup{dwidth = 9; roundstart_move = null},/obj/docking_port/stationary{dir = 4; dwidth = 3; height = 8; id = "backup_away"; name = "Backup Shuttle Dock"; width = 8},/turf/unsimulated/floor{icon_state = "floor"},/area/shuttle/escape)
"oZ" = (/obj/structure/sign/securearea{pixel_x = -32; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"pa" = (/obj/structure/sign/securearea{pixel_x = 32; pixel_y = 0},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"pb" = (/obj/machinery/camera{c_tag = "CentComm Special Ops. Ready Room East"; dir = 8; network = list("ERT","CentComm")},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
"pc" = (/obj/effect/forcefield{desc = "You can't get in. Heh."; layer = 1; name = "Blocker"},/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "specopsoffice"; name = "Privacy Shutters"},/turf/unsimulated/wall/fakeglass{dir = 8; icon_state = "fakewindows3"; tag = "icon-fakewindows (WEST)"},/area/centcom/specops)
"pd" = (/obj/machinery/door/airlock/centcom{name = "Special Operations Command"; opacity = 1; req_access_txt = "114"},/obj/machinery/door/poddoor{id_tag = "specopsoffice"; name = "Super Privacy Shutters"},/turf/unsimulated/floor{icon_state = "vault"; dir = 8},/area/centcom/specops)
"pe" = (/obj/machinery/door/airlock/centcom{name = "Prison"; opacity = 1; req_access_txt = "104"},/obj/effect/decal/warning_stripes/yellow/hollow,/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops)
"pf" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"pg" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "16"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"ph" = (/obj/machinery/recharger/wallcharger{pixel_x = 32},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"pi" = (/obj/structure/grille,/obj/structure/window/full/shuttle{icon_state = "15"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"pj" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/flora/ausbushes,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/specops)
"pk" = (/obj/structure/closet/secure_closet/guncabinet,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/ammo_casing/rocket,/obj/item/gun/rocketlauncher,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"pl" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/flora/ausbushes/fernybush,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/specops)
"pm" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/flora/ausbushes/leafybush,/turf/unsimulated/floor{icon_state = "grass1"; name = "grass"},/area/centcom/specops)
"pn" = (/obj/machinery/door/airlock/shuttle,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"po" = (/obj/structure/table/reinforced,/obj/item/grenade/clusterbuster,/obj/item/grenade/chem_grenade/incendiary{name = "Incendiary Grenade"},/obj/item/kitchen/knife/combat,/obj/item/kitchen/knife/combat,/obj/item/kitchen/knife/combat,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"pp" = (/obj/machinery/computer/telecrystals/uplinker,/turf/unsimulated/floor{icon_state = "floor4"},/area/syndicate_mothership)
"pq" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/mech_bay_recharge_port/upgraded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"pr" = (/obj/machinery/power/apc{dir = 2; name = "Gamma Armory APC"; pixel_y = -24},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"ps" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/computer/mech_bay_power_console,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"pt" = (/obj/machinery/door/airlock/shuttle{req_access_txt = "0"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/gamma/space)
"pu" = (/obj/mecha/combat/durand/loaded{operation_req_access = list(1)},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/mech_bay_recharge_floor,/area/shuttle/gamma/space)
@@ -835,7 +835,6 @@
"qq" = (/turf/unsimulated/floor{icon_state = "green"; dir = 10},/area/centcom/control)
"qr" = (/turf/unsimulated/floor{icon_state = "green"; dir = 6},/area/centcom/control)
"qs" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/plasteel{icon_state = "white"},/area/centcom/evac)
"qt" = (/obj/machinery/computer/telecrystals/boss,/turf/unsimulated/floor{icon_state = "floor4"},/area/syndicate_mothership)
"qu" = (/obj/machinery/door/airlock/centcom{name = "Bathroom"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/centcom/specops)
"qv" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/turf/simulated/floor/plasteel{icon_state = "white"},/area/centcom/evac)
"qw" = (/obj/machinery/door/airlock/centcom{name = "General Access"; opacity = 1; req_access_txt = "101"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/control)
@@ -1262,7 +1261,6 @@
"yB" = (/obj/structure/table/wood,/obj/item/lighter/zippo/engraved,/obj/item/storage/fancy/cigarettes/dromedaryco,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/admin)
"yC" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/turf/unsimulated/wall{desc = "This window appears to be reinforced, it looks nearly impossible to break."; dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; name = "window"; opacity = 0; tag = "icon-window5 (EAST)"},/area/admin)
"yD" = (/obj/machinery/door/airlock/external{id_tag = "trade_sol_base"; name = "Docking Port"},/turf/unsimulated/floor/plating,/area/trader_station/sol)
"yE" = (/obj/docking_port/stationary{dir = 8; dwidth = 2; height = 11; id = "trade_sol_base"; name = "docking bay 2 at Jupiter Station"; width = 5},/turf/space,/area/space)
"yF" = (/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"yG" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/turf/unsimulated/floor{name = "plating"},/area/centcom/evac)
"yH" = (/obj/effect/decal/warning_stripes/northeastcorner,/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/evac)
@@ -1290,19 +1288,13 @@
"zd" = (/obj/machinery/door/airlock/hatch{desc = "Danger: May contain robustness"; name = "Dojo"; req_access_txt = "0"},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"ze" = (/obj/machinery/door/airlock/public/glass{name = "Shuttle Bay"; req_access_txt = "0"},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"zf" = (/obj/structure/showcase,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"zg" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 1},/area/trader_station/sol)
"zh" = (/obj/machinery/computer/card,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
"zi" = (/obj/machinery/light{dir = 1; in_use = 1},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"zj" = (/obj/structure/chair/comfy/brown,/obj/effect/landmark{name = "traderstart_sol"},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"zk" = (/obj/structure/table/reinforced,/obj/item/clipboard,/obj/item/stamp/granted,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
"zl" = (/obj/item/storage/toolbox/syndicate{desc = "A powerful relic many men worked long and hard to keep safe and away from the forces of evil."; force = 1e+008; name = "toolbox of robustness"},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/table/wood,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"zm" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/item/grenade/clusterbuster/smoke,/obj/structure/table/wood,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"zn" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows2"; dir = 1},/area/trader_station/sol)
"zo" = (/obj/structure/dispenser,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"zp" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"zq" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/trade_sol_rare,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"zr" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac)
"zs" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/trade_sol_common,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"zt" = (/obj/structure/table/wood,/obj/item/dice/d20,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"zu" = (/obj/structure/chair/comfy/brown{dir = 4},/obj/effect/landmark{name = "traderstart_sol"},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"zv" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/table/wood,/obj/item/sleeping_carp_scroll,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
@@ -1311,12 +1303,10 @@
"zy" = (/obj/structure/table/wood,/obj/item/paper_bin,/obj/item/pen,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"zz" = (/obj/structure/ninjatele{pixel_x = -28},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"zA" = (/obj/structure/ninjatele{pixel_x = 28},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"zB" = (/obj/structure/rack,/obj/item/storage/box/syndie_kit/space,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"zC" = (/obj/structure/chair/comfy/brown{dir = 1},/obj/effect/landmark{name = "traderstart_sol"},/obj/machinery/light{dir = 4},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"zD" = (/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/turf/unsimulated/wall{dir = 1; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/admin)
"zE" = (/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/turf/unsimulated/wall{dir = 8; icon = 'icons/turf/shuttle.dmi'; icon_state = "diagonalWall3"},/area/admin)
"zF" = (/turf/unsimulated/wall/fakeglass{dir = 0; icon_state = "fakewindows"; tag = "icon-fakewindows (EAST)"},/area/trader_station/sol)
"zG" = (/obj/machinery/light,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"zH" = (/obj/machinery/vending/cola,/turf/simulated/shuttle/floor,/area/centcom/evac)
"zI" = (/obj/effect/decal/cleanable/blood,/obj/structure/toilet{dir = 8},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"zJ" = (/obj/structure/bed,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
@@ -1351,15 +1341,12 @@
"Am" = (/obj/structure/mirror{pixel_x = 28},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/trader_station/sol)
"An" = (/turf/unsimulated/wall/fakeglass{icon_state = "fakewindows"; dir = 8},/area/trader_station/sol)
"Ao" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (WEST)"; icon_state = "fakewindows2"; dir = 8},/area/trader_station/sol)
"Ap" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (NORTHEAST)"; icon_state = "fakewindows"; dir = 5},/area/trader_station/sol)
"Aq" = (/turf/unsimulated/wall{desc = "It opens and closes."; icon = 'icons/obj/doors/airlocks/station/mining.dmi'; icon_state = "closed"; name = "Docking Bay 2"},/area/trader_station/sol)
"Ar" = (/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/turf/unsimulated/wall{dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5"; name = "window"; opacity = 0; tag = "icon-window5 (EAST)"},/area/admin)
"As" = (/obj/machinery/door/airlock/hatch{desc = "Uh oh. You'd better hope you aren't going in here!"; name = "Prisoner Treatment"},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"At" = (/obj/machinery/door/airlock/hatch{desc = "Uh oh. You'd better hope you aren't going in here!"; name = "Detainment"},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"Au" = (/turf/unsimulated/floor{icon_state = "engine"},/turf/unsimulated/wall{dir = 2; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5"; name = "window"; opacity = 0; tag = "icon-window5"},/area/admin)
"Av" = (/obj/structure/toilet{dir = 8},/obj/structure/window/reinforced/tinted{dir = 1},/obj/machinery/door/window{dir = 8; name = "Toilet"; opacity = 1; req_access_txt = "0"},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/trader_station/sol)
"Aw" = (/turf/unsimulated/wall,/area/centcom)
"Ax" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (NORTH)"; icon_state = "fakewindows2"; dir = 1},/area/trader_station/sol)
"Ay" = (/obj/structure/table/reinforced,/obj/item/melee/classic_baton/telescopic,/obj/item/paper/Court,/obj/item/pen,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"Az" = (/obj/structure/table/reinforced,/obj/item/storage/box/mousetraps,/obj/item/storage/box/trackimp,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"AA" = (/obj/structure/table/reinforced,/obj/item/scalpel,/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
@@ -1369,7 +1356,6 @@
"AE" = (/obj/machinery/door/window{dir = 1; name = "Cell A"; req_access_txt = "101"},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"AF" = (/obj/structure/window/reinforced{dir = 1; layer = 2.9},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"AG" = (/obj/structure/toilet{dir = 8},/turf/unsimulated/floor{tag = "icon-dark"; icon_state = "dark"},/area/admin)
"AH" = (/obj/machinery/light{dir = 4},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/trader_station/sol)
"AI" = (/obj/machinery/door/airlock/hatch{name = "Teleporter Access"; req_access_txt = "0"},/obj/machinery/door/poddoor{density = 0; icon_state = "open"; id_tag = "ADMINLOCKDOWN"; name = "Security Doors"; opacity = 0},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"AJ" = (/obj/structure/rack,/obj/item/tank/jetpack/oxygen,/obj/item/tank/jetpack/oxygen,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
"AK" = (/obj/structure/rack,/obj/item/clothing/suit/space,/obj/item/clothing/suit/space,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space,/obj/item/clothing/head/helmet/space,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin)
@@ -1534,29 +1520,29 @@
"XM" = (/obj/structure/bed/abductor,/turf/unsimulated/floor/abductor,/area/abductor_ship)
(1,1,1) = {"
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaaafafafafafahafafafafafahafafafafafahafafafafafahafafafafafahafafafafafahafafafafafahafafafafafaj
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakamalalalaoanararasararanbtbubtbubtanawavavavavanaxaxaxaxaxanazazazazazanaAaAaAaAaAanaDaCaCaCaFaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakaGdjdjdjaHanaraLararaManbGbHbGbHbGanaOaOaOaOaOanaxaPaxaPaxanazazazazazanaAaQaAaQaAanaRbMbMbMaSaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakaGdjdjdjaHanaraTarararanaUaVaUaVaUanaOaOaOaOaOanaxaxaxaxaxanazazazazazanaAaAaAaAaAanaRbMbMbMaSaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakaGdjdjdjaHanararaXaWaranaYaYaYaYaYanaZaZaZaZbaanaxaxaxaxaxanazazazazazanaAaAaAaAaAanaRbMbMbMaSaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakbbdmdmdmbcanbdararararanbgbfbjbfbmanbobnbqbpboanaxaxaPaxaxanazazazazazanaAaAaAaAaAanaRbMbMbMaSaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakbrdvdvdvbsanarbdararbvanbwbfbjbfbxanbobybAbzboanaxaxaPaxaxanazazazazazanaAaAaAaAaAanbBbMbMbMbCaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakbDdjdjdjbEanaraLbdaraXanaYaYaYaYaYanbFbybAbzbFanaxaxaxaxaxanazazazazazanaAaAaAaAaAanbBbMbMbMbCaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakbDdjdjdjbEanarararbdaranbIbJbIbJbIanbKbybAbzbKanaxaxaxaxaxanazazazazazanaAaAaAaAaAanbBbMbMbMbCaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapbLapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakbDdjdjdjbEanarbNararbdanbGbHbGbHbGanbKbybAbzbKanaxaPaxaPaxanazazazazazanaAaQaAaQaAanbBbMbMbMbCaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakbPbObObObQanaXarbRaraLanbtbubtbubtanbTbSbVbUbTanaxaxaxaxaxanazazazazazanaAaAaAaAaAanbYbXbXbXcaaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcbccccccccccbZcdcdcdcdcdbZcdcdcdcdcdbZcdcdcdcdcdbZcececececebZcececececebZcececececebZcecececececf
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakchcgcichcganclclclclclancmcmcmcmcmancncncscqcqanevevevevevancuctctctcvancxcwcwcwcyaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckczckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakcgcichcgcianclcAclclclancmcBcDcCcmancEcEeIcFcFaneveKeveLevancGeNeNeNcIancLeQeQeQcMaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapcNapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakcichcgcichanclclclcOclancmcPcPcPcmancEcQcQcQcFanevevevevevancGeNeNeNcIancLeQeQeQcMaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNfffffffffffgfgcScRcRcTfgfgfgfgfgfgfgfgfgcUfgfgfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakchcgcichcganclclclclclancmcmcmcmcmancEeIeIeIcFanevevevevevancGeNeNeNcIancLeQeQeQcMaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNcVfufvcWfffgcXcZcYdadadcdbdfdedhdgfHfIfHfHdifKfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakcgcichcgcianclclcldkclancmdldodncmandqdpdpdpdranevfTevevevandsfVfVfVdtancLeQeQeQcMaE
ckckckckckckckduckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNfffffffufufufffgdwcZcZcZcZcZdxdydydydzfHfHfHgffHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakcichcgcichancldAclclclancmdBdDdCcmandJdGdGdGdKanevevevgrevandLgtgtgtdMandNeQeQeQdOaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNdPdQgAfufufufffgdRcZdSdUdTdWdVdydydydyfHfHJCfHJDfIfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakchcgcichcganclclclclcAancmdBdDdCcmandYeIgKeIdZanevevevevevaneaeNeNeNebandNeQeQeQdOaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckecckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNgOgPgQfufufufffgeddyeeeeeeeeeedydydydyfHfHfHgSfHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakcgcichcgcianekclclclclancmdBdDdCcmandYeleleldZanemememememaneaeNeNeNebandNeQeQeQdOaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckgHckckdXckckckckckckckckckaNaNaNaNaNfffffffffffffffgeodydydydydydydydydydyepfHfHfHfHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakcichcgcichancldkcldAclancmeretescmandYdYeIdZdZanhbhbhbhbhbaneaeNeNeNebandNeQeQeQdOaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNfgeodydydydydyeudydyeudyewhehehehfhefgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakchcgcichcganclclclclekancmcmcmcmcmaneBeBeDeCeCanhkhkhkhkhkaneFeEeEeEeGaneJeHeHeHeMaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNfgeOdydydydydzePeRdzePdzeShvhvhvhwhvfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcbcccccccccceWcccccccccceWcccccccccceWcccccccccceWcccccccccceWcccccccccceWcccccccccceX
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaaafafafafafafafafafafahafafafafafafafafafafahafafafafafafafafafafahafafafafafafafafafafahafafafafafafafafafafcf
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalajamamamaoaFasasasaHaGclclclclclclclclclclaGcmcmcmcmcmcmcmcmcmcmaGememememememememememaGaMaSaSaSaTaVaUaUaUaWaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalaZdjdjdjbabbdjdjdjbcaGcAcldkcldAcAclcOclclaGcmbfcPcmdldodododncmaGbjbjbjbjbjbjbjbjbjbjaGbpeNeNeNbrbseNeNeNbuaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalaZdjdjdjbabbdjdjdjbcaGclclclclclclclclclclaGcmcDcPcmdBdDdDdDdCcmaGeveKevevevevevevgrevaGbpeNeNeNbrbseNeNeNbuaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalaZdjdjdjbabbdjdjdjbcaGcldAcAclclclclcldkclaGcmbvcPcmeretetetescmaGevevevbxbBbybDevevevaGbpeNeNeNbrbseNeNeNbuaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalbEbFbFbFbGbJbIbIbIbKaGclclclclclclcAclclclaGcmcmcmcmcmcmcmcmcmcmaGevevevevevevevevevevaGbNbObObObPbRbQbQbQbSaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbYbTbTbTbTbTcececececebZbTbTbTbTbTcececececebZbTbTbTbTbTcececececebZbTbTbTbTbTcececececebZbTbTbTbTbTcecececececf
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalbdararararbdararbdaraGbtbHcdaYcsbwaYctbHbtcuaxaxaxaxaxaxaxaxaxaxcuazazazazazazazazazazcuaDaCaCaCaCcvcvcvcvcyaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalarbdaLaraXararbdaLaraGbtbHcdaYcBcBaYctbHbtcuaxaPaxaxaxaxaxaxaPaxcuazazazazazazazazazazcuaRbMbMbMbMbMbMbMbMbCaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapbLapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalararbdarbdararbdararaGbtbHcdaYcCcCaYctbHbtcuaxaxaxaxaPaPaxaxaxaxcuazazazazazazazazazazcuaRbMbMbMbMbMbMbMbMbCaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalarbdarbdaraXararbdaraGbtbHcdaYcBcBaYctbHbtcuaxaPaxaxaxaxaxaxaPaxcuazazazazazazazazazazcuaRbMbMbMbMbMbMbMbMbCaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalbdaraLarbdararaXararaGbtbHcdaYbmbgaYctbHbtcuaxaxaxaxaxaxaxaxaxaxcuazazazazazazazazazazcucGcIcIcIcIbXbXbXbXcaaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbYbTbTbTbTbTcececececebZbTbTbTbTbTcececececebZbTbTbTbTbTcececececebZbTbTbTbTbTcececececebZbTbTbTbTbTcecececececf
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckczckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalchcgcichcgchcgcichcgcuavaOaOcMbobodsdmdmdtcucncQcQcQcqdJdGdGdGdKcuaAaAaAaAaAaAaAaAaAaAcucxcwcwcwcwdvdvdvdvdLaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapcNapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalcgcichcgcicgcichcgcicuavaOaOdMbnbqdNdNdNeacucncQcEeIcFdYeIdZdGdKcuaAaQaAaAaAaAaAaAaQaAcucLeQeQeQeQeQeQeQeQdOaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNfffffffffffgfgcScRcRcTfgfgfgfgfgfgfgfgfgcUfgfgfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalcichcgcichcichcgcichcuavaOaOdMekebbAbAbAbzcueDeIcEeIcFdYgKdZeIeEcuaAaAaAaAaAaAaAaAaAaAcucLeQeQeQeQeQeQeQeQdOaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNcVfufvcWfffgcXcZcYdadadcdbdfdedhdgfHfIfHfHdifKfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalchcgcichcgchcgcichcgcuavaOaOdMeGeFbVbVbVbUcudqdpcEeIcFdYeIdZeleCcuaAaQaAaAaAaAaAaAaQaAcucLeQeQeQeQeQeQeQeQdOaE
ckckckckckckckduckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNfffffffufufufffgdwcZcZcZcZcZdxdydydydzfHfHfHgffHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNalcgcichcgcicgcichcgcicuawaOaOdMbobodsdmdmdtcudqdpdpdpdreBeleleleCcuaAaAaAaAaAaAaAaAaAaAcueJeLeLeLeLeHeHeHeHeMaE
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNdPdQgAfufufufffgdRcZdSdUdTdWdVdydydydyfHfHJCfHJDfIfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcbfTfTfTfTfTcccccccccceWfTfTfTfTfTcccccccccceWfTfTfTfTfTcccccccccceWfTfTfTfTfTcccccccccceWfTfTfTfTfTcccccccccceX
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckecckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNgOgPgQfufufufffgeddyeeeeeeeeeedydydydyfHfHfHgSfHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckgHckckdXckckckckckckckckckaNaNaNaNaNfffffffffffffffgeodydydydydydydydydydyepfHfHfHfHfHfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNfgeodydydydydyeudydyeudyewhehehehfhefgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNfgeOdydydydydzePeRdzePdzeShvhvhvhwhvfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNapapapapapapapapapapapapapapapapapapapapapapapapaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNfgfghCeYeYhCfgfgfgfgfgfgfgfgfgfgfgfgfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNfgfbhFhFhFfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZafafafafafbZafafafafafbZafafafafafbZ
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNfghFhFhFhFfgaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNakhHKchJKdhLanKeKfhYKgKhanhRhShThUhVaE
@@ -1569,8 +1555,8 @@ ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckck
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihfofofofofofofofxfzfyihaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZdEdEdEdEdEbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZbZdFdFdFdFdFbZaNaNaNaNaN
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihfAfAfofofofBihfCfEfDihaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZbZbZfGfGfGfGfGjajbjcjcjcjcjcjcjcjcjcjcjcjcjcjbjafGfGfGfGfGbZbZbZaNaNaN
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihfofofofofJfJihihjeihihaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZjlfMbZbZbZbZbZfOfNjpjpjpjpjpjpjpjpjpjpjpjpjpfPfObZbZbZbZbZfMjrbZaNaNaN
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihfQfQfofRfUfSihjEjejFihaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZjlfMbZbZbZbZbZfOfNjpjpjpjpjpjpjpjpjpjpjpjpjpfPfObZbZbZbZbZfMjrbZaNaNaN
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihfWfofofRfYfXihkekfkgihaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZjlfMbZbZbZbZbZfOfNjpjpjpjpjpkBgkkBjpjpjpjpjpfPfObZbZbZbZbZfMjrbZaNaNaN
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihfQfQfofRfUfSihjEjegdihaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZjlfMbZbZbZbZbZfOfNjpjpjpjpjpjpjpjpjpjpjpjpjpfPfObZbZbZbZbZfMjrbZaNaNaN
ckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihfWfofofRfYfXihkekfiwihaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZjlfMbZbZbZbZbZfOfNjpjpjpjpjpkBgkkBjpjpjpjpjpfPfObZbZbZbZbZfMjrbZaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihglfofofofoihihihihihihaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZjlfMbZbZbZbZbZfOfNjpjpjpjpjpkBgnkBjpjpjpjpjpfPfObZbZbZbZbZfMjrbZaNaNaN
aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihgpgogsgqfogugwgvgzgyihaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZjlfMbZbZbZbZbZfOfNjpjpjpjpjpjpjpjpjpjpjpjpjpfPfObZbZbZbZbZfMjrbZaNaNaN
aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNihgDgCgEfofofogFlsgGluihaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZbZbZgJgJgJgJgJlClDjpjpjpjpjpjplEjpjpjpjpjpjplDlCgJgJgJgJgJbZbZbZaNaNaN
@@ -1594,17 +1580,17 @@ aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckck
aNckckckckckckckckckckckckckckckckckckckckckckckckckaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababgeitititititghkrkrnjnWeTBOnjkrkrgmitititititgBacehabnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababababababababababababababababababababababhMkrkrmvkrkrkrkrjCCakrCbkkkrkrkrkrmvkrkrhMababababnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjnjnjhAnjnjnjnjnjnjnBnxnBnjnjnjnjnjnjhAnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjknkpkrkKhOnjnFnIggkrkrkrggnMnLnjknkpkrkpknnjnvnSnPnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjkTkrkrkrkroAozkrkrkrkrkrkrkrozzNkrkrkrkrkrnjkrkrkrnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababeUmtkrkrkrkrAXkrkrkrBoBgBpkrkrkrnxkrkrBxkrkrnjkrnSnPnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababiRmtkrnqnqgboABrkrkrBuBtBvkrkrkrzNgaBxBwBxgbnjgakrkrnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababhrmtkrnqobainjByBzmvkrkrkrmvBBBAnjnrBxBwBxkrnjkrnSnPnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjntkrkrkrlgnjnjnjnjnjnxnjnjnjnjnjkrBxBwBxkrBCkrkrkrnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjmtkrkrkrkrBDggBSnjzLkrzLnjBEggBFkrkrBxkrkrnjkrBGnPnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababhiababababababababababababababababababnjAYkrkrkrAZnjkrBZnjkrkrkrnjBHgbnjBakrkrkrgbnjgakrkrnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababhjnjhlnjhlnjhmabhjnjhlnjhlnjhmababababababacabnjBdkrkrkrBenjBTBUnjgakrgbnjBIkrnjBdkrkrkrkrnjkrBGnPnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababhjhohnhohnhohmabhjhohnhohnhohmabacababababababnjgYkrkrkrBhnjBVBWnjkrkrkrnjBJkrnjgYkrkrkrkrnjkrkrkrnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWhpbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababaeabhqhrhnhrhnhrhsaghqhrhnhrhnhrhtagagababaeabababnjgImvkrmvBmnjBXBYnjkrkrkrnjBKkrnjgImvkrmvkrnjBLBGnPnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjknkpkrkKhOnjnFnIggkrkrkrggnMnLnjzLggkrggixnjnvnSnPnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjkTkrkrkrkroAozkrkrkrkrkrkrkrozzNkrkrkrkrixnjkrkrkrnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababeUmtkrkrkrkrAXkrkrkrBoBgBpkrkrkrnxkrkrkrkriEnjkrnSnPnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababiRmtkrnqnqgboABrkrkrBuBtBvkrkrkrzNgakrkrkrjqnjgakrkrnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababhrmtkrnqobainjByBzmvkrkrkrmvBBBAnjnrBxBwBxiEnjkrnSnPnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjntkrkrkrlgnjnjnjnjnjnxnjnjnjnjnjkrBxjsBxkrBCkrkrkrnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababababababababababababababnjmtkrkrkrkrBDggBSnjzLkrzLnjBEggBFkrBxBwBxiEnjkrBGnPnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababhiababababababababababababababababababnjAYkrkrkrAZnjkrBZnjkrkrkrnjBHgbnjBakrkrkrjqnjgakrkrnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababhjnjhlnjhlnjhmabhjnjhlnjhlnjhmababababababacabnjBdkrkrkrBenjBTBUnjgakrgbnjBIkrnjBdkrkrkriEnjkrBGnPnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckckaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababhjhohnhohnhohmabhjhohnhohnhohmabacababababababnjgYkrkrkrBhnjBVBWnjkrkrkrnjBJkrnjgYkrkrkrjDnjkrkrkrnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWhpbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababaeabhqhrhnhrhnhrhsaghqhrhnhrhnhrhtagagababaeabababnjgImvkrmvBmnjBXBYnjkrkrkrnjBKkrnjgImvkrjGjFnjBLBGnPnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabaeababacaeababhjnjnjhlnjhlnjhuhzhynjhlnjhlnjnjnjnjnjnjnjnjnjnjnjnjnjBMnjnjnjnjnjnjkrkrkrnjnjnjnjnjnjBNnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababaeababababachjnjhBhnhnhnhBhnhnhnhBhnhnhnhBhnhnhnhnhnhnhnhnhnCckrkrkrkrkrggkrkrkrkrkrkrkrkrkrggkrkrkrkrkrkrkrkrkrnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababaeabababhjnjhnhnhnhnhnhnhnhnhnhnhnhnhnhnhnhnhnhnhnhnhnhnCckrkrkrkrkrkrkrkrkrkrkrkrkrkrkrkrkrkrkrkrkrkrkrkrkrnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
@@ -1614,14 +1600,14 @@ rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaq
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjacaeababababababababababababaeabababachqnjnjhMnjBnnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababhjnjnjhQiehXhnnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababababaeabadhjnjiihnhnhnhnijiliknjimioinnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabacababababababababababababababababhPnjiqhniririshnixiwiziyiyiAnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErHrErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababipagagagagiHhqnjiBiriDiCirhniEppnjiyiFnjnjiJgjgigxgxhggxgxhxhGnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababaeababababababababiKhzhzhzhzhzhynjiLiriNiMirhniEppnjnjnjnjnjgjgiiuiOiviPiviQiGhxnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjacabababababababababababiRpzpApzpzpzpziUhniYhnhnhnhniEppnjnjnjnjnjgjiIiOivKXiSKYiviQiTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababpFiZjdhzhzhzhynjjgjfjfjfiLhniEppjdhzhzhzhzhzhzivKXiSKRiSKYiviTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababCdabababababnjjmjkjnjkjohnjsjqiWiViViXiViViWiPiSjtjjjwiSiPiTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqjAaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjjBabababababababababababababababacababnjjGjDjLjHjMhnhnhnjdhzhzhzhzhzhzivKXiSKWiSiSiviTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjaeababababababababababababababababababnjnjppqtjNjOnjkbhnnjnjnjnjnjgjiIkcivKXiSKYivkhiTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabacababababababababababababababababhPnjiqhnenenishnhnhniziyiyiAnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErHrErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababipagagagagiHhqnjiBeniDiCenhnhneqnjiyiFnjnjiJgjgigxgxhggxgxhxhGnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababaeababababababababiKhzhzhzhzhzhynjiLiriNiMirhnhniLnjnjnjnjnjgjgiiuiOiviPiviQiGhxnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjacabababababababababababiRpzpApzpzpzpziUhniYhnhnhnhnhnexnjnjnjnjnjgjiIiOivKXiSKYiviQiTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababpFiZjdhzhzhzhynjjgjfjfjfiLhnhnhnjdhzhzhzhzhzhzivKXiSKRiSKYiviTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababCdabababababnjjmjkjnjkjohnhnhniWiViViXiViViWiPiSjtjjjwiSiPiTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqjAaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjjBabababababababababababababababacababnjezeyfaeyjMhnhnhnjdhzhzhzhzhzhzivKXiSKWiSiSiviTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rErErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjaeababababababababababababababababababnjnjfdfifhjOnjkbhnnjnjnjnjnjgjiIkcivKXiSKYivkhiTnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
rKrErErErErErErErErErErErErErEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWkibWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjababababababababababababababababababababnjnjnjnjnjnjkjkjBQqFqGklnjgjjvjukcivkmivkhjxjynjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababababababababababhIhIkohKnjkskqkqkqkqkqnjjzgjjvjJjJjKjJjJjyjznjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNnjabababababababababababababababababababababacababhjhMkqkqkqkqkqkCnjnjnjnjnjnjnjnjnjnjnjnjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
@@ -1671,10 +1657,10 @@ aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmsXnRnQsXsXsXsXnTsXsXsXsXsXsXsXsXsXfeujflsqnCtRucudududududududududnUtRnHsqaNaNodnVnVnVnVnVnVnVoeaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcQrVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmofohohohohoifmokojomoloroqojosfmufujujuhotugujujsXououououovouumowfeujflsqnCtRnHsususususususususunCtRnHsqaNaNoxogQEQIQIQIQIQJoxaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoyoBoJoWoCoyfmoDfFkdkdkdkdfFoEmdujujujujujujujujoFoGoGoGoGoGoGRfsXfeujflsqnCtRnHsuutTiuvuwuxuyuzsunCtRnHsqaNaNoxogogogogogogogoxaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpgpfpfpfphoyfmoHkdkdkdkdkdkdoImdujujujujujujujujsXoLoKoKoKoKoKoMsXsXoNsXsqnGtRnEsuuFtRuGRDtRtRtRsunGtRnHsqsqsqoxogogogogogogogoxaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpipfpkpopfptoOoPoToToToToToToQoOujujujSaSaujujujoRVCVCVCVCVCVCVCoSVCVCVCoUtRtRtRoVtRtRtRtRtRtRtRoVtRtRnHoXtRoXoYogogogogogogogoxaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoyoZpfpfpaoyfmfmfmfmfmfmfmfmfmfmujujuOuPuQuRujpbsXsXpcpdpcsXsXpesXplpjpmsqnUtRucsutRtRtRtRtRtRtRsunUtRnHsqsqsqoxogogogogogogogoxaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpnprpqpupsoyfmaNsXTeujujujujujpvujTfrzooonvaTgujpwvdvdvdvdvesXVCsXsXsXsXsqnCtRnHsuvfTiTlTlTlTmvisunCtRnHsqaNaNoxogogogogogogogoxaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoypfpfpfphoyfmoHkdkdkdkdkdkdoImdujujujujujujujujsXoLoKoKoKoKoKoMsXsXoNsXsqnGtRnEsuuFtRuGRDtRtRtRsunGtRnHsqsqsqoxogogogogogogogoxaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoypfpkpopfptoOoPoToToToToToToQoOujujujSaSaujujujoRVCVCVCVCVCVCVCoSVCVCVCoUtRtRtRoVtRtRtRtRtRtRtRoVtRtRnHoXtRoXoYogogogogogogogoxaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpnpfpfpfpaoyfmfmfmfmfmfmfmfmfmfmujujuOuPuQuRujpbsXsXpcpdpcsXsXpesXplpjpmsqnUtRucsutRtRtRtRtRtRtRsunUtRnHsqsqsqoxogogogogogogogoxaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmoyfVpqpupsoyfmaNsXTeujujujujujpvujTfrzooonvaTgujpwvdvdvdvdvesXVCsXsXsXsXsqnCtRnHsuvfTiTlTlTlTmvisunCtRnHsqaNaNoxogogogogogogogoxaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmpxohohohohpyfmaNsXrAujsXuWuWsXsXujujvauRpBuRujujpCvdpDpGpEvdsXVCsXpHnDpIsqnCtRnHsqsqvsvtvuvvvwsqsqnCtRnHsqaNaNoxogogogopogogogoxaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNfmfmfmfmfmfmfmfmaNsXrBujsXpJpJpKpLujujujUfUfujujujpMvdpNpPpObesXVCsqpRtRtRpStRtRnHsqsqsusususususqsqnCtRnHsqaNaNpTnVnVnVnVnVnVnVpUaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXpJpJpJsXpVpWujujujujvLujsXvdpXpZpYUHsXVCsqqatRnHsunCtRnEnDnDnDnDnDnDnDnDnDnGtRnHsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNVzVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVcVzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
@@ -1754,28 +1740,28 @@ aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbW
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatauauauataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwFxouTuTuTxpuExqxhxhxhxruTuTuExsvYvYxtuEuTuTuTuTuTvqaNaNaNaNuruAxvxuxwuAusaNaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatauayauataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuExxxAxyuTxBuExCxhxDxEuEuTuTuExFxGvYvYxHuTuTuTuTuTuEaNaNaNuruAxIxJxJxJxKuAusaNaNaNaNaNaN
aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatauauauataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuruAuAuAuAuAuAuAuAuAuAuAuAxMuTuTxNuAuAuAuAuAuAuAuAxOuAuEusaNuruAxIxJxJxJxJxJxKuEusaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmrmrmrmrmrmrmrmrmrmrmrmrmrxQxPatatatatatxRxSxSxSxSxSxSxSxTatataIatataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuruExMxVxUxXxWyaxYybxNuExMuTuTuTuTuTuTxNuAuAuAuAuAxMuTxNuAuAycuAxIxJxJxJydxJxJxJxKuEaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmraNaNaNaNaNaNaNaNaNaNaNmryhyeataJaJaJaKauauauauauauauauaKaKaKauaJataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuSyjyiuTuTykuTuTuTuTuTyluTuTymymymymuTuTuTuTuTuTuTuTuTuTynxJxJxJxJxJxJypyoysxJxJxJyuaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmraNaNaNaNaNaNaNaNaNaNaNmryxywataKauauauauauauauKqauauauauauauauaJataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuXuTyzuTuTuTuTuTuTuTuTyluTuTymymymymuTuTuTuTuTuTuTuTuTuTynxJxJxJxJxJyAyBypypyAxJxJyCaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmraNaNaNaNaNaNaNaNaNaNyEyDyIyFatbhauauauauauaubibibiauauauauauauaJataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNvqyJuTuTuTyKuTuTuTuTuTyluTuTymymymymuTuTuTuTuTuTuTuTuTwUuAuAycuAyLxJxJyAyAyAxJxJyNuEaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmraNaNaNaNaNaNaNaNaNaNaNmryOyFatbhauauauauauKvbibibiKvauauauauauaKataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwquEwmyRyPyUySzayVzbwUuEwmuTuTuTuTuTuTwUuAuAwmuTwUuAuAuAuEvPaNwquAyLxJxJxJxJxJyNuEvPaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmraNaNaNaNaNaNaNaNaNaNaNmryFyFatbhauauauauauauKvKvKvauauauauauauauataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwquAuAuAuAuAuAuAuAuAuAuAuAwmuTuTwUuAuAuAuAuAzduAuAuAuEuEaNaNaNwquAyLxJxJxJyNuAvPaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmrmrmrmrmrmrmrmrmrmrmrmrmryFyFatauauauauauauauauauauauauauauauauauataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDvuEzezeuEaNuExhzfxhxhxhzfxhuEuEaNaNaNaNwquAxvxuxwuAvPaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNzgyFyFyFziyFyFyFyFyFzjatauauaKaJaJaKauauauauauauauauauauauataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuruAuAuAuAxMuTuTuEaNuEzlxhxhGPxhxhzmuEuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNznyFzozqzpzszszpyFzuztatatbkatatatatatatatatatatatatatbkatataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuSuTuTuTuTuTuTuTuEaNuEzvGPxhxhxhGPzwuEuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNznyFyFyFyFyFyFyFyFzuzyatblblataNaNaNaNaNaNaNaNaNaNaNatblblataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNvquTuTuTuTuTuTuTuEaNuEzzxhxhGPxhxhzAuEuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNznyFzpzszszszBzpyFyFzCatblblataNaNaNaNaNaNaNaNaNaNaNatblblataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuruAuAusaNwquuuBuBuCwmuTuTuEaNuEzDxhxhxhxhxhzEuEvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjQjPjSjRjTaNaNaNjQjPjSjRjTaNaNaNaNaNaNaNaNzFzGyFyFyFyFyFyFyFyFatatblblatatatatatatatatatatatatatblblatataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuraNaNuruEzJzIzKusaNaNaNaNaNuSuTuTuEaNwquAnZHbzMHboauAvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjUjWjVjYjXkajZaNjUjWktkvkukajZaNaNaNaNaNaNmrmrmrzPmrzSzszszpyFyFataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNzTaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuruAuAuAuAuEzYzUuEuAuAuAuAusaNvquTuTuEaNaNwquAHgHhHiuAvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkwkykxkxkxkAkzaNkwkDkxkxkxkAkzaNaNaNaNaNaNmrzZAbAamryFyFyFyFnbncataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuruEAcAeAduEAfxhxhAguEAiAhAjAguAxMuTuTuEaNaNaNAkHuHvHwAkaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkEkGkFkIkHkNkMaNkEkGkOkIkPkNkMaNaNaNaNaNaNmrAlAlAmmrAnAoAoAoApAqataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNArxhxhxhAsxhxhxhxhAtxhxhxhxhAtuTuTuTuEaNaNwquAuAAuuAuAvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkQkRkxkxkxkAkSaNkQkRkxkxkxkAkSaNaNaNaNaNaNmrAlAvmrmraNaNaNaNAxyFataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwquEAyAAAzuEzDxhxhzEuEACABADzEuAwmuTuTuEaNaNaNwqaNaNaNvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkUlikVXLXMlmllaNkUlikVlkXMlmllaNaNaNaNaNaNmrmrmrmrmraNaNaNaNAxyFataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwquAuAuAuAzKAFAEuEuAuAuAuAvPaNuSuTuTuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNlylnlAlzlFaNaNaNlylnlAlzlFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNAxyFataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwqaNaNwquEzJAGuEvPaNaNaNaNaNvquTuTuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNAxAHataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwquAuAvPaNuruuuBuBuCxMuTuTuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjQjPjSjRjTaNaNaNjQjPjSjRjTaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNAxyFataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuSuTuTuTuTuTuTuTuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjUjWlLlNlMkajZaNjUjWlOlQlPkajZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNAxyFataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNvquTuTuTuTuTuTwUuEvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkwlRkxkxkxkAkzaNkwlSkxkxkxkAkzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNAxyFataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwquAuAvhAIvhuAuAvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNatatatatatxRxSxSxSxSxSxSxSxTatataIatataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuruExMxVxUxXxWyaxYybxNuExMuTuTuTuTuTuTxNuAuAuAuAuAxMuTxNuAuAycuAxIxJxJxJydxJxJxJxKuEaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataJaJaJaKauauauauauauauauaKaKaKauaJataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuSyjyiuTuTykuTuTuTuTuTyluTuTymymymymuTuTuTuTuTuTuTuTuTuTynxJxJxJxJxJxJypyoysxJxJxJyuaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataKauauauauauauauKqauauauauauauauaJataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuXuTyzuTuTuTuTuTuTuTuTyluTuTymymymymuTuTuTuTuTuTuTuTuTuTynxJxJxJxJxJyAyBypypyAxJxJyCaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmrmrmrmrmrmrmrmrmrmrmrmrmraNaNatbhauauauauauaubibibiauauauauauauaJataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNvqyJuTuTuTyKuTuTuTuTuTyluTuTymymymymuTuTuTuTuTuTuTuTuTwUuAuAycuAyLxJxJyAyAyAxJxJyNuEaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmraNaNaNaNaNaNaNaNaNaNaNmraNaNatbhauauauauauKvbibibiKvauauauauauaKataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwquEwmyRyPyUySzayVzbwUuEwmuTuTuTuTuTuTwUuAuAwmuTwUuAuAuAuEvPaNwquAyLxJxJxJxJxJyNuEvPaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmraNaNaNaNaNaNaNaNaNaNaNmrxQxPatbhauauauauauauKvKvKvauauauauauauauataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwquAuAuAuAuAuAuAuAuAuAuAuAwmuTuTwUuAuAuAuAuAzduAuAuAuEuEaNaNaNwquAyLxJxJxJyNuAvPaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmraNaNaNaNaNaNaNaNaNaNaNmryhyeatauauauauauauauauauauauauauauauauauataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDvuEzezeuEaNuExhzfxhxhxhzfxhuEuEaNaNaNaNwquAxvxuxwuAvPaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmraNaNaNaNaNaNaNaNaNaNaNmryxywatauauaKaJaJaKauauauauauauauauauauauataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuruAuAuAuAxMuTuTuEaNuEzlxhxhGPxhxhzmuEuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmraNaNaNaNaNaNaNaNaNaNfwyDyIyFatatbkatatatatatatatatatatatatatbkatataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuSuTuTuTuTuTuTuTuEaNuEzvGPxhxhxhGPzwuEuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmraNaNaNaNaNaNaNaNaNaNaNmryOyFatblblataNaNaNaNaNaNaNaNaNaNaNatblblataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNvquTuTuTuTuTuTuTuEaNuEzzxhxhGPxhxhzAuEuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmraNaNaNaNaNaNaNaNaNaNaNmryFyFatblblataNaNaNaNaNaNaNaNaNaNaNatblblataNaNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuruAuAusaNwquuuBuBuCwmuTuTuEaNuEzDxhxhxhxhxhzEuEvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjQjPjSjRjTaNaNaNjQjPjSjRjTaNaNaNaNmraNaNaNaNaNaNaNaNaNaNaNmryFmratblblatatatatatatatatatatatatatblblatataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuraNaNuruEzJzIzKusaNaNaNaNaNuSuTuTuEaNwquAnZHbzMHboauAvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjUjWjVjYjXkajZaNjUjWktkvkukajZaNaNaNmraNaNaNaNaNaNaNaNaNaNaNmryFmraNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNzTaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuruAuAuAuAuEzYzUuEuAuAuAuAusaNvquTuTuEaNaNwquAHgHhHiuAvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkwkykxkxkxkAkzaNkwkDkxkxkxkAkzaNaNaNmrmrmrmrmrmrmrmrmrmrmrmrmryFmraNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuruEAcAeAduEAfxhxhAguEAiAhAjAguAxMuTuTuEaNaNaNAkHuHvHwAkaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkEkGkFkIkHkNkMaNkEkGkOkIkPkNkMaNaNaNaNaNaNaNznfZfLyFyFyFyFyFyFyFmraNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNArxhxhxhAsxhxhxhxhAtxhxhxhxhAtuTuTuTuEaNaNwquAuAAuuAuAvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkQkRkxkxkxkAkSaNkQkRkxkxkxkAkSaNaNaNaNaNaNaNznfZyFyFyFyFyFzjyFyFmraNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwquEAyAAAzuEzDxhxhzEuEACABADzEuAwmuTuTuEaNaNaNwqaNaNaNvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkUlikVXLXMlmllaNkUlikVlkXMlmllaNaNaNaNaNaNaNzFgcyFyFyFyFzuztyFyFataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwquAuAuAuAzKAFAEuEuAuAuAuAvPaNuSuTuTuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNlylnlAlzlFaNaNaNlylnlAlzlFaNaNaNaNaNaNaNmrmrmrzPmrzSyFzuzyyFyFataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwqaNaNwquEzJAGuEvPaNaNaNaNaNvquTuTuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNmrzZAbAamryFyFyFzCyFyFataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwquAuAvPaNuruuuBuBuCxMuTuTuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjQjPjSjRjTaNaNaNjQjPjSjRjTaNaNaNaNaNaNaNmrAlAlAmmrAnAoAoAoAoAoataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuSuTuTuTuTuTuTuTuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjUjWlLlNlMkajZaNjUjWlOlQlPkajZaNaNaNaNaNaNmrAlAvmrmraNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNvquTuTuTuTuTuTwUuEvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkwlRkxkxkxkAkzaNkwlSkxkxkxkAkzaNaNaNaNaNaNmrmrmrmrmraNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNwquAuAvhAIvhuAuAvPaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkEkGlTkIlUkNkMaNkEkGlVkIlYkNkMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuEAJuTuTuTAKuEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkQkRkxkxkxkAkSaNkQkRkxkxkxkAkSaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuSuTuTuTuTALuSaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkUlikVXLXMlmllaNkUlikVXLXMlmllaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNataNaNaNaNaNaNaNaNaNaNaNaNaNFLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLxLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNuXAOuTuTuTAPuXaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN
+25 -26
View File
@@ -162,7 +162,7 @@
"df" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engiestation)
"dg" = (/obj/machinery/light{dir = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/solar_control/autostart{name = "Engineering Outpost Solar Control"},/turf/simulated/floor/plasteel{dir = 8; icon_state = "vault"; tag = "icon-vault (WEST)"},/area/engiestation)
"dh" = (/obj/structure/table,/obj/item/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/multitool,/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engiestation)
"di" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/engiestation)
"di" = (/obj/machinery/suit_storage_unit/engine,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/engiestation)
"dj" = (/turf/simulated/floor/plasteel,/area/engiestation)
"dk" = (/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/obj/structure/closet/crate/internals,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engiestation)
"dl" = (/obj/machinery/driver_button{id_tag = "constructiondriver0"; name = "Construction Driver #0"; pixel_x = 25},/obj/structure/engineeringcart,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engiestation)
@@ -175,7 +175,7 @@
"ds" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/engiestation/solars)
"dt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engiestation)
"du" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plating,/area/engiestation)
"dv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/obj/effect/decal/warning_stripes/south,/area/engiestation)
"dv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/effect/decal/warning_stripes/south,/turf/simulated/floor/plating,/area/engiestation)
"dw" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating,/area/engiestation)
"dx" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engiestation)
"dy" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk4"; icon_state = "catwalk4"},/area/engiestation/solars)
@@ -183,18 +183,18 @@
"dA" = (/turf/simulated/floor/plating/airless,/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/airless/catwalk{tag = "icon-catwalk12"; icon_state = "catwalk12"},/area/engiestation/solars)
"dB" = (/turf/simulated/floor/plating/airless,/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk11"; icon_state = "catwalk11"},/area/engiestation/solars)
"dC" = (/obj/machinery/recharge_station,/turf/simulated/floor/plasteel{icon_state = "delivery"},/area/engiestation)
"dD" = (/obj/machinery/mass_driver{dir = 4; id_tag = "constructiondriver0"; name = "construction driver #0"},/obj/machinery/door/window{dir = 8; name = "Construction Driver"; req_access_txt = "10"},/turf/simulated/floor/plating,/obj/effect/decal/warning_stripes/west,/area/engiestation)
"dE" = (/turf/simulated/floor/plasteel,/obj/effect/decal/warning_stripes/east,/area/engiestation)
"dF" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/obj/effect/decal/warning_stripes/east,/area/engiestation)
"dG" = (/obj/machinery/door/poddoor{id_tag = "constructiondriver0"; name = "Construction Driver Door"; protected = 0},/turf/simulated/floor/plating,/area/engiestation)
"dD" = (/obj/machinery/mass_driver{dir = 4; id_tag = "constructiondriver0"; name = "construction driver #0"},/obj/machinery/door/window{dir = 8; name = "Construction Driver"; req_access_txt = "10"},/obj/effect/decal/warning_stripes/west,/turf/simulated/floor/plating,/area/engiestation)
"dE" = (/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plasteel,/area/engiestation)
"dF" = (/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/effect/decal/warning_stripes/east,/turf/simulated/floor/plating,/area/engiestation)
"dG" = (/obj/machinery/door/poddoor{id_tag = "constructiondriver0"; name = "Construction Driver Door"; protected = 0},/obj/structure/fans/tiny,/turf/simulated/floor/plating,/area/engiestation)
"dH" = (/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/constructionsite/ai)
"dI" = (/obj/machinery/alarm/monitor{locked = 0; pixel_y = 32},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/constructionsite/ai)
"dJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/constructionsite/ai)
"dK" = (/obj/machinery/power/solar,/obj/structure/cable,/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/engiestation/solars)
"dL" = (/turf/simulated/floor/plating,/obj/effect/decal/warning_stripes/east,/area/engiestation)
"dL" = (/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plating,/area/engiestation)
"dM" = (/obj/structure/cable{d2 = 2; icon_state = "0-2"; pixel_y = 0},/obj/machinery/power/smes/engineering{input_attempt = 1; input_level = 50000; inputting = 1; output_level = 15000},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engiestation)
"dN" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable,/turf/simulated/floor/plating,/obj/effect/decal/warning_stripes/west,/area/engiestation)
"dO" = (/obj/structure/rack,/obj/item/clothing/suit/space/hardsuit/engineering,/obj/item/clothing/head/helmet/space/hardsuit/engineering,/turf/simulated/floor/plasteel,/area/engiestation)
"dN" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable,/obj/effect/decal/warning_stripes/west,/turf/simulated/floor/plating,/area/engiestation)
"dO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plating,/area/engiestation)
"dP" = (/obj/machinery/driver_button{id_tag = "constructiondriver1"; name = "Construction Driver #1"; pixel_x = 25},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/engiestation)
"dQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/constructionsite/ai)
"dR" = (/obj/machinery/atmospherics/unary/vent_pump/on{dir = 8},/turf/simulated/floor/plating/airless,/area/constructionsite/ai)
@@ -203,15 +203,15 @@
"dU" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk8"; icon_state = "catwalk8"},/area/engiestation/solars)
"dV" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engiestation)
"dW" = (/turf/simulated/floor/plating,/area/engiestation)
"dX" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/obj/effect/decal/warning_stripes/north,/area/engiestation)
"dX" = (/obj/machinery/mass_driver{dir = 4; id_tag = "constructiondriver1"; name = "construction driver #1"},/obj/machinery/door/window{dir = 8; name = "Construction Driver"; req_access_txt = "10"},/obj/effect/decal/warning_stripes/west,/turf/simulated/floor/plating,/area/engiestation)
"dY" = (/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plating,/area/engiestation)
"dZ" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engiestation)
"ea" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk4"; icon_state = "catwalk4"},/area/engiestation/solars)
"eb" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk12"; icon_state = "catwalk12"},/area/engiestation/solars)
"ec" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk12"; icon_state = "catwalk12"},/area/engiestation/solars)
"ed" = (/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/sheet/wood{amount = 30},/obj/item/stack/sheet/wood{amount = 30},/obj/item/stack/sheet/wood{amount = 30},/obj/structure/table,/obj/item/flashlight/flare,/obj/item/flashlight/flare,/obj/item/flashlight/flare,/turf/simulated/floor/plasteel,/area/engiestation)
"ee" = (/obj/machinery/mass_driver{dir = 4; id_tag = "constructiondriver1"; name = "construction driver #1"},/obj/machinery/door/window{dir = 8; name = "Construction Driver"; req_access_txt = "10"},/turf/simulated/floor/plating,/obj/effect/decal/warning_stripes/west,/area/engiestation)
"ef" = (/obj/machinery/door/poddoor{id_tag = "constructiondriver1"; name = "Construction Driver Door"; protected = 0},/turf/simulated/floor/plating,/area/engiestation)
"ee" = (/obj/machinery/mass_driver{dir = 4; id_tag = "constructiondriver2"; name = "construction driver #2"},/obj/machinery/door/window{dir = 8; name = "Construction Driver"; req_access_txt = "10"},/obj/effect/decal/warning_stripes/west,/turf/simulated/floor/plating,/area/engiestation)
"ef" = (/obj/machinery/door/poddoor{id_tag = "constructiondriver1"; name = "Construction Driver Door"; protected = 0},/obj/structure/fans/tiny,/turf/simulated/floor/plating,/area/engiestation)
"eg" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating/airless,/area/constructionsite/ai)
"eh" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/constructionsite/ai)
"ei" = (/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel/airless{tag = "icon-gcircuit"; icon_state = "gcircuit"},/area/constructionsite/ai)
@@ -227,8 +227,8 @@
"es" = (/turf/simulated/floor/plating/airless,/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk9"; icon_state = "catwalk9"},/area/space)
"et" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "10;24"},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/engiestation)
"eu" = (/obj/machinery/vending/engivend,/turf/simulated/floor/plasteel{icon_state = "bot"; dir = 1},/area/engiestation)
"ev" = (/obj/machinery/mass_driver{dir = 4; id_tag = "constructiondriver2"; name = "construction driver #2"},/obj/machinery/door/window{dir = 8; name = "Construction Driver"; req_access_txt = "10"},/turf/simulated/floor/plating,/obj/effect/decal/warning_stripes/west,/area/engiestation)
"ew" = (/obj/machinery/door/poddoor{id_tag = "constructiondriver2"; name = "Construction Driver Door"; protected = 0},/turf/simulated/floor/plating,/area/engiestation)
"ev" = (/obj/machinery/space_heater,/obj/effect/decal/cleanable/dirt,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plasteel,/area/engiestation)
"ew" = (/obj/machinery/door/poddoor{id_tag = "constructiondriver2"; name = "Construction Driver Door"; protected = 0},/obj/structure/fans/tiny,/turf/simulated/floor/plating,/area/engiestation)
"ex" = (/obj/machinery/recharge_station,/turf/simulated/floor/plating/airless,/area/constructionsite/ai)
"ey" = (/obj/structure/table,/obj/item/lighter/random,/obj/item/reagent_containers/food/snacks/icecreamsandwich,/obj/item/clothing/head/chefhat,/obj/item/storage/box/donkpockets,/obj/structure/sign/fire{pixel_y = 32},/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/engiestation)
"ez" = (/obj/structure/table,/obj/machinery/kitchen_machine/microwave{pixel_x = -3; pixel_y = 6},/obj/machinery/newscaster{pixel_y = 32},/turf/simulated/floor/plasteel{dir = 1; icon_state = "blue"},/area/engiestation)
@@ -237,7 +237,7 @@
"eC" = (/obj/structure/table,/obj/item/reagent_containers/food/snacks/meatballsoup,/turf/simulated/floor/plasteel{dir = 5; icon_state = "blue"},/area/engiestation)
"eD" = (/obj/machinery/pipedispenser/disposal,/turf/simulated/floor/plasteel,/area/engiestation)
"eE" = (/obj/machinery/pipedispenser,/obj/machinery/light{dir = 1},/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/area/engiestation)
"eF" = (/obj/machinery/space_heater,/obj/effect/decal/cleanable/dirt,/turf/simulated/floor/plasteel,/obj/effect/decal/warning_stripes/east,/area/engiestation)
"eF" = (/obj/machinery/floodlight,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plasteel,/area/engiestation)
"eG" = (/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/engiestation)
"eH" = (/obj/machinery/door/airlock/engineering/glass{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "10;24"},/turf/simulated/floor/plasteel,/area/engiestation)
"eI" = (/obj/machinery/light{dir = 1; on = 1},/turf/simulated/floor/plasteel,/area/engiestation)
@@ -247,22 +247,21 @@
"eM" = (/obj/structure/chair/office/dark{dir = 4},/turf/simulated/floor/plasteel,/area/engiestation)
"eN" = (/obj/structure/table,/obj/item/reagent_containers/food/snacks/meatsteak,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/engiestation)
"eO" = (/obj/machinery/floodlight,/turf/simulated/floor/plasteel,/area/engiestation)
"eP" = (/obj/machinery/floodlight,/turf/simulated/floor/plasteel,/obj/effect/decal/warning_stripes/east,/area/engiestation)
"eP" = (/obj/machinery/portable_atmospherics/scrubber,/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plasteel,/area/engiestation)
"eQ" = (/obj/machinery/vending/wallmed1{layer = 3.3; name = "Emergency NanoMed"; pixel_x = 28; pixel_y = 0; req_access_txt = "0"},/turf/simulated/floor/plasteel,/area/engiestation)
"eR" = (/obj/machinery/light,/turf/simulated/floor/plasteel,/area/engiestation)
"eS" = (/obj/machinery/door/airlock/external,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/engiestation)
"eT" = (/obj/machinery/vending/coffee,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/engiestation)
"eU" = (/obj/structure/table,/obj/item/reagent_containers/food/drinks/coffee,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/engiestation)
"eV" = (/obj/machinery/portable_atmospherics/pump,/turf/simulated/floor/plasteel,/area/engiestation)
"eW" = (/obj/machinery/portable_atmospherics/scrubber,/turf/simulated/floor/plasteel,/obj/effect/decal/warning_stripes/east,/area/engiestation)
"eW" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/decal/warning_stripes/south,/turf/simulated/floor/plasteel,/area/engiestation)
"eX" = (/obj/structure/bedsheetbin,/obj/structure/table,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 28},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/engiestation)
"eY" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/simulated/floor/plasteel{icon_state = "wood"},/area/engiestation)
"eZ" = (/obj/structure/bed,/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/obj/item/bedsheet/orange,/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/engiestation)
"fa" = (/obj/structure/table,/obj/item/flashlight/lamp,/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/engiestation)
"fb" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 8},/area/engiestation)
"fc" = (/turf/simulated/floor/plasteel{icon_state = "blue"; dir = 4},/area/engiestation)
"fd" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plasteel,/obj/effect/decal/warning_stripes/south,/area/engiestation)
"fe" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel,/obj/effect/decal/warning_stripes/southeast,/area/engiestation)
"fd" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/decal/warning_stripes/southeast,/turf/simulated/floor/plasteel,/area/engiestation)
"ff" = (/obj/machinery/washing_machine,/turf/simulated/floor/plasteel{icon_state = "wood"},/area/engiestation)
"fg" = (/turf/simulated/floor/plasteel{icon_state = "wood"},/area/engiestation)
"fh" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "carpet"},/area/engiestation)
@@ -709,14 +708,14 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcrab
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcPcocococMcWcXcYcWcYcXcWcPcocococQcZdadbdadadcabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaNadadajadajajadadajadadajajajacaSaSagbUbTbVbVcebVbXbXbXcDcDcUcUcUcDcJcKcJcDcUcUcUcDcDbVbXbVbVcebVbVbTbUahbaakaeakaeabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcsddddddddcXdedfdgdfdhcXddddddddcscZdidjdkdlcCcCcCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababajadadajajajajajajajajajajajajajacaSaSacbTbTbVbTbTcfbXbXbXcDcUcUcUcDcDlFdmdncDcDcUcUcUcDbVbVbXchbTbTbVbTbTaeakbaaeakaeabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadodpdqdqdrdsdtdudvdwdxdsdydzdzdAdBcZdCdjdjdEdDdFdGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabajajajajajajajajajajajajajajajajajajacajacaSaSlmbVbVbVlEbVbVbXbXcDcDcUcUcDcDdHdIdJdHdHcDcDcUcUcDcDbVbXbVbVlEbVbVbVlpakakakakaeabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsdKdKdKdKcWdfdLdMdNdfcWdKdKdKdKcscZdOdjdjdPdadacCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbCabababababacacacacacadajadajadajadajadajacacacacacacacacacacacacacbfaSbTbWbTbTbTbVbVbVbVcDcDcDcDcDcJdHcJdQdRdHcJcDcDcDcDcDbVbVbXbVbTbTbTbWbTakbjaeaeaeaeaeaebkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdodSdTdTdUdsdVdWdXdYdZdseaebebecdBcZeddjdjdEeedFefaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajadajajajajajajajajajajajajajajajajajajajajajajajajajlmaSaSaUbVbVbVbVbVbXbVbVcDcJegcJdnehdHcJcKcJdHeilFcJegcJcDbVbVbXbVbVbVbVbXaWakbalpakakakakakakakakakakakakakakafafbkafbkafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsdKdKdKdKcWdfdLdMdNdfcWdKdKdKdKcscZdidjdjdPdadacCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbCabababababacacacacacadajadajadajadajadajacacacacacacacacacacacacacbfaSbTbWbTbTbTbVbVbVbVcDcDcDcDcDcJdHcJdQdRdHcJcDcDcDcDcDbVbVbXbVbTbTbTbWbTakbjaeaeaeaeaeaebkbkbkbkbkbkbkbkbkbkbkbkbkbkbkbkafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdodSdTdTdUdsdVdWdOdYdZdseaebebecdBcZeddjdjdEdXdFefaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajadajajajajajajajajajajajajajajajajajajajajajajajajajlmaSaSaUbVbVbVbVbVbXbVbVcDcJegcJdnehdHcJcKcJdHeilFcJegcJcDbVbVbXbVbVbVbVbXaWakbalpakakakakakakakakakakakakakakafafbkafbkafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababclcMdKdKdKdKcXejekelcRcScXdKdKdKdKemcZendjdjeodadacCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababajajajajajadadajajadajadajadajadajadajadajadajajajajajajajajajlmaSaSaUbVbVbVbVbXbVbVbVepeqeqeqepcJcJcJcKcJcJcJereqeqeqerbVbVbXbXbXbXbXbXaWakaklpakakakakakakakakakakakbkakbkakbkakakakbkakafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabclescCdadadadadadadadadaetdadadadadadadaeudjdjdEevdFewaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadajajajajajajajadajadajajajajajajajajadajajajajajajajajlmaSaSaUbXbXbXbXbXbXbXbXcDcJcJcJlFdHdHcJcKcJdHdHdnexexexcDbVbVbXbVbVbVbVbVaWbabalpakakakakakakakakakakakakakakakakakakbkafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcrabcFeyezeAeBeCcFeDeEeFdjeGeHeIdjdjeIeHeJeKdjdjcCcCcCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacadadadadadacacacacacacacacacacacacacacacacacacacacacacacacbfaSbTbWbTbTbTbUbVbUbVcDcDcDcDcDcJdHcJdJcJdHcJcDcDcDcDcDbVbVbXbVbTbTbTbWbTakbBaeaeaeaeaeaeaeaebkbkbkbkbkbkbkbkbkbkbkbkbkbkafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrabcFeLdjdjeMeNcFeOeOePdjeQdadadadadacCcCcCeRdEeSdFeSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababacadajaSaSlmbVbVbVlEbVbVbVbVcDcDcUcUcDcDdHdHdJdHdHcDcDcUcUcDcDbVbVbVbVlEbVbVbVlpbabaakakaebkbkbkbkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrabcFeTdjdjeMeUcFeVeVeWdjdjcFeXeYeZfacFabdcdccCcCcCcCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaababacadacaSaSacbTbTbVbTbTcfbUbVbUcDcUcUcUcDcDdndmlFcDcDcUcUcUcDbVbVbXchbTbTbVbTbTaebabaaeakaeabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrabcFfbdjdjdjfccFfdfdfedjdjcFfffgfhfhcFabaaaafiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaababacadacaSaSagbUbTbVbVcebVbVbVbVcDcDcUcUcUcDcJcKcJcDcUcUcUcDcDbVbVbXbVcebVbVbTbUahbabaaeakaeabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabclescCdadadadadadadadadaetdadadadadadadaeudjdjdEeedFewaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadadadadajajajajajajajadajadajajajajajajajajadajajajajajajajajlmaSaSaUbXbXbXbXbXbXbXbXcDcJcJcJlFdHdHcJcKcJdHdHdnexexexcDbVbVbXbVbVbVbVbVaWbabalpakakakakakakakakakakakakakakakakakakbkafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcrabcFeyezeAeBeCcFeDeEevdjeGeHeIdjdjeIeHeJeKdjdjcCcCcCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacadadadadadacacacacacacacacacacacacacacacacacacacacacacacacbfaSbTbWbTbTbTbUbVbUbVcDcDcDcDcDcJdHcJdJcJdHcJcDcDcDcDcDbVbVbXbVbTbTbTbWbTakbBaeaeaeaeaeaeaeaebkbkbkbkbkbkbkbkbkbkbkbkbkbkafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrabcFeLdjdjeMeNcFeOeOeFdjeQdadadadadacCcCcCeRdEeSdFeSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababababababababababababababababababababababababacadajaSaSlmbVbVbVlEbVbVbVbVcDcDcUcUcDcDdHdHdJdHdHcDcDcUcUcDcDbVbVbVbVlEbVbVbVlpbabaakakaebkbkbkbkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrabcFeTdjdjeMeUcFeVeVePdjdjcFeXeYeZfacFabdcdccCcCcCcCaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaababacadacaSaSacbTbTbVbTbTcfbUbVbUcDcUcUcUcDcDdndmlFcDcDcUcUcUcDbVbVbXchbTbTbVbTbTaebabaaeakaeabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrabcFfbdjdjdjfccFeWeWfddjdjcFfffgfhfhcFabaaaafiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaababacadacaSaSagbUbTbVbVcebVbVbVbVcDcDcUcUcUcDcJcKcJcDcUcUcUcDcDbVbVbXbVcebVbVbTbUahbabaaeakaeabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrabcFfjfkflfmfnfoeKdjdjdjdjfpfgfgfgfqcFabaaaacraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababacadacaSaSagbUbTbVbVcebVbUbVbUbVcDcDcUcUcDcVcKcJcDcUcUcDcDbVbVbVbVbVcebVbVbTbUahakbaaeakaeabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrabcCcCfrfsdaftdadafudjdjfvcFfwfgfxfycFabaaaacraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaababacadacaSajagbUbTbVbVbTbTbVbVbVbVbVcDcDcDcDfzfAcJcDcDcDcDcJbXbXbXbVbTbTbVbVbTbUahakakaeakaeabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacraaaaabfBfCfDfEfFdafGdjdjdjcFfwfgfhfhcFababaacraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaababacadacaSajagbUbTbVbVbVbWbUbVbUbVbUbVbXbTcDcDfHcDcDcDbXbVbXbXbXbVbVbWbVbVbVbTbUahbaakaeakaeabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
File diff suppressed because it is too large Load Diff
+12 -13
View File
@@ -450,6 +450,8 @@
"iH" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp/security)
"iI" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp/security)
"iJ" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall,/area/mine/west_outpost)
"iK" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/light/small{dir = 1},/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
"iL" = (/obj/machinery/light/small{dir = 1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
"iM" = (/obj/machinery/conveyor_switch{id = "mining_west"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
"iN" = (/obj/machinery/door/airlock/public/glass{name = "Crew Area"; req_access_txt = "48"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
"iO" = (/obj/machinery/light_switch{pixel_y = -25},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9},/turf/simulated/floor/bluegrid,/area/mine/maintenance)
@@ -459,6 +461,7 @@
"iS" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/laborcamp/security)
"iT" = (/obj/structure/disposalpipe/segment,/obj/structure/sign/deathsposal,/turf/simulated/wall,/area/mine/living_quarters)
"iU" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/mine/laborcamp/security)
"iV" = (/obj/machinery/camera{c_tag = "Mining Outpost EVA"; dir = 4; network = list("Mining Outpost")},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
"iW" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Labor Camp APC"; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; initialize_directions = 10},/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=5-Central"; location = "4-Maint"},/turf/simulated/floor/plating,/area/mine/laborcamp)
"iX" = (/obj/structure/closet/emcloset,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1379; id_tag = "mining_east_pump"},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plasteel,/area/mine/eva)
"iY" = (/turf/simulated/wall,/area/mine/west_outpost)
@@ -468,6 +471,7 @@
"jc" = (/obj/structure/chair{dir = 1},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
"jd" = (/obj/machinery/vending/snack,/turf/simulated/floor/plasteel{icon_state = "bar"},/area/mine/living_quarters)
"je" = (/obj/machinery/light/small{dir = 4},/obj/machinery/door_control{id = "miningdorm3"; name = "Door Bolt Control"; normaldoorcontrol = 1; pixel_x = 25; pixel_y = 0; req_access_txt = "0"; specialfunctions = 4},/turf/simulated/floor/carpet,/area/mine/living_quarters)
"jf" = (/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
"jg" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
"jh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/camera{c_tag = "West Outpost"; dir = 1; network = list("MINE")},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
"ji" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
@@ -503,6 +507,7 @@
"jM" = (/obj/structure/table,/obj/item/shovel,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
"jN" = (/turf/simulated/floor/plasteel,/area/mine/west_outpost)
"jO" = (/obj/structure/table,/obj/item/storage/box/donkpockets,/turf/simulated/floor/plasteel,/area/mine/west_outpost)
"jP" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/suit_storage_unit/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
"jQ" = (/obj/machinery/door/airlock/maintenance{name = "Mining Station Maintenance"; req_access_txt = "54"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating,/area/mine/west_outpost)
"jR" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/west_outpost)
"jS" = (/obj/machinery/conveyor{backwards = 2; dir = 2; forwards = 1; id = "mining_west"},/obj/structure/plasticflaps/mining,/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plasteel,/area/mine/west_outpost)
@@ -518,7 +523,7 @@
"kc" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
"kd" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
"ke" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/eva)
"kf" = (/obj/structure/rack,/obj/item/clothing/suit/space/hardsuit/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/mining,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/machinery/alarm{dir = 4; pixel_x = -23; pixel_y = 0},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel,/area/mine/eva)
"kf" = (/obj/machinery/power/apc{dir = 2; name = "Mining EVA APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable,/obj/structure/table,/obj/item/gps/mining,/obj/item/gps/mining,/obj/item/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -3},/turf/simulated/floor/plasteel,/area/mine/eva)
"kg" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/eva)
"kh" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidwarning"; dir = 5},/area/space)
"ki" = (/obj/machinery/light,/turf/simulated/floor/plating/airless/asteroid,/area/mine/dangerous/explored)
@@ -559,11 +564,9 @@
"kR" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "mining_east_outer"; locked = 1; name = "Mining External Access"; req_access = null; req_access_txt = null},/turf/simulated/floor/plating,/area/mine/eva)
"kS" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/mine/eva)
"kT" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
"kU" = (/obj/structure/rack,/obj/item/clothing/suit/space/hardsuit/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/mining,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plasteel,/area/mine/eva)
"kV" = (/obj/structure/rack,/obj/machinery/light/small{dir = 1},/obj/machinery/status_display{layer = 4; pixel_x = 0; pixel_y = 32},/obj/item/clothing/suit/space/hardsuit/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
"kU" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel,/area/mine/production{name = "Mining Station Mech Bay"})
"kW" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/structure/rack,/obj/item/pickaxe,/turf/simulated/floor/plasteel,/area/mine/living_quarters)
"kX" = (/turf/simulated/wall/r_wall,/area/mine/podbay)
"kY" = (/obj/machinery/camera{c_tag = "Mining Outpost EVA"; dir = 4; network = list("Mining Outpost")},/obj/machinery/light_switch{pixel_x = -23; pixel_y = 0},/obj/structure/rack,/obj/item/clothing/suit/space/hardsuit/mining,/obj/item/clothing/mask/breath,/obj/item/clothing/head/helmet/space/hardsuit/mining,/turf/simulated/floor/plasteel,/area/mine/eva)
"kZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0},/obj/machinery/door/airlock/mining/glass{name = "Mining Station Bridge"; req_access_txt = "48"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4; level = 1},/turf/simulated/floor/plasteel,/area/mine/living_quarters)
"la" = (/obj/effect/decal/warning_stripes/northwest,/turf/simulated/floor/plasteel,/area/mine/lobby)
"lb" = (/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plasteel,/area/mine/eva)
@@ -583,7 +586,6 @@
"lp" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/machinery/door/window/northleft{dir = 2; name = "Pneumatic Tube Access"},/turf/simulated/floor/plasteel,/area/mine/lobby)
"lq" = (/obj/structure/disposalpipe/trunk{dir = 4},/obj/machinery/disposal/deliveryChute{dir = 8},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/mine/west_outpost)
"lr" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/mine/production)
"ls" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/obj/item/gps/mining{gpstag = "MINE2"},/obj/item/gps/mining{gpstag = "MINE1"},/obj/item/gps/mining,/obj/item/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -3},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plasteel,/area/mine/eva)
"lt" = (/obj/structure/sink{pixel_y = 30},/obj/machinery/light/small,/obj/structure/mirror{pixel_y = -32},/turf/simulated/floor/plasteel{icon_state = "showroomfloor"},/area/mine/living_quarters)
"lu" = (/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating,/area/mine/eva)
"lv" = (/obj/machinery/hologram/holopad,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plasteel,/area/mine/eva)
@@ -632,12 +634,10 @@
"mm" = (/obj/effect/decal/warning_stripes/southwest,/turf/simulated/floor/plasteel,/area/mine/lobby)
"mn" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/lattice,/turf/space,/area/mine/lobby)
"mo" = (/turf/simulated/floor/plasteel{icon_state = "loadingarea"},/area/mine/production)
"mp" = (/obj/machinery/power/apc{dir = 2; name = "Mining EVA APC"; pixel_x = 1; pixel_y = -23},/obj/structure/cable,/turf/simulated/floor/plasteel,/area/mine/eva)
"mq" = (/obj/machinery/light/small,/obj/structure/dispenser/oxygen,/turf/simulated/floor/plasteel,/area/mine/eva)
"mr" = (/obj/machinery/mineral/equipment_vendor,/turf/simulated/floor/plasteel,/area/mine/eva)
"ms" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plating,/area/mine/west_outpost)
"mt" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plating/airless/asteroid,/area/mine/living_quarters)
"mu" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/floor/plasteel{icon_state = "bot"},/area/mine/eva)
"mv" = (/obj/effect/decal/warning_stripes/northeast,/turf/simulated/floor/plasteel{icon_state = "white"},/area/mine/living_quarters)
"mw" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "mining_east_pump"; tag_exterior_door = "mining_east_outer"; frequency = 1379; id_tag = "mining_east_airlock"; tag_interior_door = "mining_east_inner"; pixel_x = 0; pixel_y = -25; req_access_txt = null; tag_chamber_sensor = "mining_east_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "mining_east_pump"},/turf/simulated/floor/plasteel,/area/mine/eva)
"mx" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidwarning"; dir = 6},/area/space)
@@ -703,7 +703,6 @@
"nF" = (/obj/item/radio/beacon,/turf/simulated/floor/plasteel,/area/mine/lobby)
"nG" = (/obj/machinery/computer/shuttle/mining,/turf/simulated/floor/plasteel,/area/mine/lobby)
"nH" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/structure/disposalpipe/segment,/obj/machinery/light{dir = 4},/turf/simulated/floor/plasteel,/area/mine/lobby)
"nI" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plasteel,/area/mine/production{name = "Mining Station Mech Bay"})
"nJ" = (/turf/simulated/wall,/area/mine/living_quarters{name = "Mining Station Break Room"})
"nK" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/wall,/area/mine/living_quarters{name = "Mining Station Break Room"})
"nL" = (/obj/machinery/door/airlock/external{id_tag = "mining_away"; name = "Mining Dock Airlock"; req_access_txt = "48"},/turf/simulated/floor/plating,/area/mine/lobby)
@@ -972,16 +971,16 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababaeaeaeaeae
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababaeaeaeaeaeaeaeaeaeaeaeaeaeababbwbwbwbwbwbwbVbVbVbVbVbVbVbVhthxhwbVbVbVbwababababaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeabababababbwbwbwbwbwbwbwabababababababaeaeaeaeaeaeaeaeaeaeididiTididididididjVhqbVbVbVbVbVbVbVbVbVbVbVaaaaaaaaaaaaaabwbwbwbwbwbwbwbwkXpepdpdpdpcpbkwkvbVbVbVbVbVbVbVbVbVbwbwbwbwbwgXgXgXgXgXgXgXgXgXbwbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababababaeaeaeaeaeaeaeaeaeaeaeaeabbwbwbVbViYiYiYiYiYiYhyhyhyhyiYiYiYiYhzbVbVbwababababaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeababababbwbwbVbVbVbVbVbwbwbwbwbwabababababababaeaeaeaeidididhAjbhEjdidihjeidjXidididhqhqhqidbVbVbVbVbVbVaaaaaaaaaaaaaabwbwbwbwbwbVbVkXpdpdpdpdpgpfkvkubVbVbVbVbVbVbVbVbVbwbwbwbwbwgXgXgXgXgXgXgXgXbwbwbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababaeaeaeaeaeaeaeababbwbVbVbViYjkhHhGhyhLhNhMhShQhydkdlhVdPbVbVbwbwbwbwababababababaeaeaeaeaeaeaeaeaeaeaeaeaeaeabababababbwbwbVbVbVbVbVbVbVbVbVbVbwbwbwbwbwabababababaeaeidjwhXjxjzjxhYidiogWhZjVidjBjCjDjDjDhqbVbVbVbVbVbVbVaaaaaaaaaaaaaabwbwbwbVbVbVkXkXphpkpjkykykSkSjLjLbVbVbVbVbVbVbVbVbwbwbwbwbwgXgXgXgXgXgXgXbwbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababaeaeaeaeaeaeababbwbVbVbViYjMjNjOhyifdudtdtdvdDdwdSdQdUbVbVbVbVbVbwbwbwabababababababaeaeaeaeaeaeaeaeaeaeaeabababbwbwbwbVbVbVbVbVbVbVbVbVbVbVbVbVbVbVbwbwabababababaeidiljxjWimjYjZididididjVidjBkakakakbhqbVbVbVbVbVbVbVaaaaaaaaaaaaaabVbVbVbVbVbVbVkXplpnpmkykfkUkUkVjLbVkibVbVbVbVbVbVbwbwbwbwbwgXgXgXgXgXgXgXbwbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaababababababababaeaeaeababbwbVbVbViYiqjNjNirjNdVjNjNishydZiehydKbVbVbVbVbVbVbVbwbwbwbwabababababaeaeaeaeaeaeaeaeababababbwbwbVbVbVbVbVbVbVbVbVbVgldPbVbVbVbVbVbVbwbwbwbwababaeidkojxivjxkrjxktkbiwiykFidkWkaiBkakGhqbVbVbVbVbVbVaaaaaaaaaaaaaaaaaaaabVbVbVbVbVkXkXpokXkykYlbkelcjLjLjLjLllllbVbVbVbVbwbwbwbwgXgXgXgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababbwbwbVbViYkIjNkJijigitkMjNiMiYiYiYiYiYgldPbVbVbVbVbVbVbVbVbwbwbwabababaeaeaeaeaeaeaeaeabababbwbwbVbVgngcgcgcgcgcgcgcgcgrgsgcgcgcgcfgbVbVbVbVbwbwababidididididididhqkHiNhqkHidididididkKididhqhqbVbVaaaaaaaaaaaaaaaaaaaaaaaaaabVbVlmlmkLpplplulslvkglwiclyiXickhllbVbVbVbVcLbwbwbwbwbwgXgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababaeaeaeaeaeaeababbwbVbVbViYjMjNjOhyifdudtdtdvdDdwdSdQdUbVbVbVbVbVbwbwbwabababababababaeaeaeaeaeaeaeaeaeaeaeabababbwbwbwbVbVbVbVbVbVbVbVbVbVbVbVbVbVbVbwbwabababababaeidiljxjWimjYjZididididjVidjBkakakakbhqbVbVbVbVbVbVbVaaaaaaaaaaaaaabVbVbVbVbVbVbVkXplpnpmkyiKkgkgiLjLbVkibVbVbVbVbVbVbwbwbwbwbwgXgXgXgXgXgXgXbwbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababaaababababababababaeaeaeababbwbVbVbViYiqjNjNirjNdVjNjNishydZiehydKbVbVbVbVbVbVbVbwbwbwbwabababababaeaeaeaeaeaeaeaeababababbwbwbVbVbVbVbVbVbVbVbVbVgldPbVbVbVbVbVbVbwbwbwbwababaeidkojxivjxkrjxktkbiwiykFidkWkaiBkakGhqbVbVbVbVbVbVaaaaaaaaaaaaaaaaaaaabVbVbVbVbVkXkXpokXkyiVlbkejfjLjLjLjLllllbVbVbVbVbwbwbwbwgXgXgXgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababbwbwbVbViYkIjNkJijigitkMjNiMiYiYiYiYiYgldPbVbVbVbVbVbVbVbVbwbwbwabababaeaeaeaeaeaeaeaeabababbwbwbVbVgngcgcgcgcgcgcgcgcgrgsgcgcgcgcfgbVbVbVbVbwbwababidididididididhqkHiNhqkHidididididkKididhqhqbVbVaaaaaaaaaaaaaaaaaaaaaaaaaabVbVlmlmkLpplplujPlvkglwiclyiXickhllbVbVbVbVcLbwbwbwbwbwgXgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababbwbVbViYlfjNjchyiujhjgjNjijljjjmlqjngrgsgcgcgcgcgcfgbVbVbVbVbwbwbwababaeaeaeaeaeaeabababbwbwbVbVgngpgngcgcgcgcgcgcgcgrgsgcgcgcfgffgcfgbVbVbVbwabababababidjoltjpkakGjqkbkGktjrjskakbkGkakakzhqhqhqjtlClClClClClClBlBlBlBlBlBlmlmlmlalDpqlMlPlOlSkjkxkkkPldkRkQllbVbVbVbVcLbwbwbwbwbwgXgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababbwbVbViYiYiYiYiYiJlRjQiYiYjSjRjRjRjRgrgsgcgcgcgcfgffgcgcfgbVbVbVbwbwabababaeaeababababbwbwbVbVgngpgngpbVbVbVbVbVbVbVdJdKbVbVbVffgcfgenbVbVbVbVbwbwbwbwabididididjTkGjUkOkOiykckdkdkTkTkdkdlxkZlAkZlhlhlhlhlhlhlhlUlUlUlUlUlUlZmalZlEmapsmcicmpmrmqmuicmwlLicmxllbVbVbVbVbVbwbwbwbwbwgXgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababbwbVbViYiYiYiYiYiJlRjQiYiYjSjRjRjRjRgrgsgcgcgcgcfgffgcgcfgbVbVbVbwbwabababaeaeababababbwbwbVbVgngpgngpbVbVbVbVbVbVbVdJdKbVbVbVffgcfgenbVbVbVbVbwbwbwbwabididididjTkGjUkOkOiykckdkdkTkTkdkdlxkZlAkZlhlhlhlhlhlhlhlUlUlUlUlUlUlZmalZlEmapsmcickfmrmqlcicmwlLicmxllbVbVbVbVbVbwbwbwbwbwgXgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababbwbwbVbVbVbVbViYkAmskBkCiYkEkDhrbVbVdJdKbVbVbVbVffgcgcfgenbVbVbVbVbwbwbwababababababbwbwbVbVgngpgngpbVbVbVbVbwbVbVbVbVbVbVbVbVbVbVenenbVbVbVbVbVbVbVbwbwbwbwbwidkalkljlnlnljlzlJlIlnlnlKljmbhqhqhqmgmgmgmgmgmgmgmnmnmnmnmnmnlmlmlmmmlDmzmymGmGmHmGmGmGmGmGmGllllbVbVbVbVbVcLbwbwbwbwbwgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababbwbwbVbVbVbViYmSlemUlgiYbVbVbVbVbVbVbVbVbVbVbVbVbVbVenfffgbVbVbVbVbVbwbwbwbwbwbwbwbwbVbVgngpgngpbVbVbwbwbwbwbwbwbwbVbVbVbVbVbVbVenenbVgldPbVbVbVbVbVbVbwbwididhqlQhqididmXlilTidididlWhqidhqbVbVbVaaaaaaaaajaaajaaaaaaaaaaajaalmlmlDmzmhmGmKmMmLmOmNmPmGmRmQbVbVbVbVbVbVbVbwbwbwbwbwgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababbwbwbVbVbViYiYiYiYiYiYbVbVbwbwbwbwbwbwbwbwbwbVbVbVfffgffgcgcgcfgbVbVbVbVbVbVbVbVbVbVbVengngpbVbVbwbwabababababbwbVbVbVbVbVbVbVenffgcgrgsgcgcgcgcfgbVbVbwidmVmTmYmWidnplGlFlXlHidlYmfmeidbVbVbVbVbVbVaaaaajaaajajajajajajajajajnamZmAnbnendndnfngngninhnknjbVbVbVbVbVbVbVbwbwbwbwbwgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababbwbVbVbVbVbVbVbVbVbVbVbVbwabababababababbwbwbVbVbVffgcgcgcfgfffgbVgldPbVbVgngcgcgcgcgpenbVbVbwbwababababababbwbwbVbVbVbVbVbVffgcgcgrgsgcgcgcfgenbVbVbVidnlmvnonnidnMnNnNlVnPidnmnynwidbVbVbVbVbVbVajajajajajaaaaaaaaaaajaaaananqmBmhntnsnunsngngninhnknjbVbVbVbVbVbVbwbwbwbwgXgXgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababbwbVbVbVbVbVbVbVbVbVbwbwbwabababaeaeabababbwbwbwbVbVbVbVbVfffgffgcgrgsgcgcgpgngcgcgcgcgpbVbwbwababababababababbwbwbwbVbVbVbVbVbVbVdJdKbVbVbVenenbVbVbVkNidididididmimkmjmlnPididnzhqkNbVbVbVbVbVbVaaaaajaaajaaaaaaaaaaajaalmlmnvmCmEmGnxnInAmOmNmPmGnCnBbVbVbVbVbVbVbwbwbwbwgXgXgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababbwbVbVbVbVbVbVbVbVbVbwbwbwabababaeaeabababbwbwbwbVbVbVbVbVfffgffgcgrgsgcgcgpgngcgcgcgcgpbVbwbwababababababababbwbwbwbVbVbVbVbVbVbVdJdKbVbVbVenenbVbVbVkNidididididmimkmjmlnPididnzhqkNbVbVbVbVbVbVaaaaajaaajaaaaaaaaaaajaalmlmnvmCmEmGnxkUnAmOmNmPmGnCnBbVbVbVbVbVbVbwbwbwbwgXgXgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababbwbwbwbwbVbVbVbVbwbwbwababaeaeaeaeaeaeaeabababbwbwbwbVbVbVbVffgcgcgrgsgcgcgcgpbVbVbVbVbVbVbwababababababaeaeabababbwbwbwbwbVbVbVbVbVbVbVbVbVenffgcfgbVbVbVbVbVbVkNidididididkNnkouobmtbVbVbVbVbVaaaaaaajaaajaaaaaaaaaanDlmnEnGnFmDnHnanJnKnJnJnJnJnJnJbVbVbVbVbVbVbwbwbwbwbwgXgXgXgXgXgXbwbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababababababbwbwbwbwbwbwababababaeaeaeaeaeaeaeaeababababbwbwbwbwbVbVbVbVdJdKbVbVbVbVbVbVbwbwbwbwbwababababababaeaeaeabababababbwbwbwbwbwbwbwbwbVbVffgcfgfffgbVbVbVbVbVbVbVdJdLdLdLdLdLdLdKbVbVbVbVbVbVajajajajajajaaaaaaaaoznLlDnOlDlDmDnQnanRnTnSnVnUnXnWnYbVbVbVbVbVbVbwbwbwbwgXgXgXgXgXgXgXbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababababababaeaeaeaeaeaeaeaeaeaeaeaeabababababbwbwbVbVbVbVbVbVbVbVbVbwbwbwabababababababaeaeaeaeaeaeaeabababababababababababbwbwbVbVbVfffgfffgmJbVbVbVbVbVbVbVbVbVbVbVbVbVbVbVbVbVbVbVbVaaaaaaaaajaaaaaaaaaalmlmlmmmlDmFoaodocofoeohogoioinYbVbVbVbVbVbVbwbwbwbwgXgXgXgXgXgXgXbwbwbwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+1
View File
@@ -31,6 +31,7 @@
#define FLOOR_BOT 4 // Floorbots
#define CLEAN_BOT 8 // Cleanbots
#define MED_BOT 16 // Medibots
#define HONK_BOT 32 // Honkbots
//Sentience types
#define SENTIENCE_ORGANIC 1
+58
View File
@@ -0,0 +1,58 @@
#define CONTRACT_POWER "Power"
#define CONTRACT_WEALTH "Wealth"
#define CONTRACT_PRESTIGE "Prestige"
#define CONTRACT_MAGIC "Magic"
#define CONTRACT_REVIVE "Revive"
#define CONTRACT_KNOWLEDGE "Knowledge"
#define CONTRACT_UNWILLING "Unwilling"
#define CONTRACT_FRIENDSHIP "Friendship"
// FIXME: Implement these
#define CONTRACT_ETALENT "Engineering Talent"
#define CONTRACT_CTALENT "Chemistry Talent"
#define CONTRACT_RETURNDEAD "Return Dead"
#define CONTRACT_AUGMENT "Cybernetic Augmentations"
#define CONTRACT_CANDY "Endless Candy"
#define CONTRACT_ECHANCE "An Extra Chance"
#define CONTRACT_ATECH "Advanced Technology"
#define CONTRACT_DEVILSMACHINE "Devil's Machinery"
#define CONTRACT_YOUTH "Eternal Youth"
#define CONTRACT_FOOD "Food"
#define CONTRACT_SPACE "Space Gear"
#define CONTRACT_CALAMITY "Calamity"
#define BANE_SALT "salt"
#define BANE_LIGHT "light"
#define BANE_IRON "iron"
#define BANE_WHITECLOTHES "whiteclothes"
#define BANE_SILVER "silver"
#define BANE_HARVEST "harvest"
#define BANE_TOOLBOX "toolbox"
#define OBLIGATION_FOOD "food"
#define OBLIGATION_FIDDLE "fiddle"
#define OBLIGATION_DANCEOFF "danceoff"
#define OBLIGATION_GREET "greet"
#define OBLIGATION_PRESENCEKNOWN "presenceknown"
#define OBLIGATION_SAYNAME "sayname"
#define OBLIGATION_ANNOUNCEKILL "announcekill"
#define OBLIGATION_ANSWERTONAME "answername"
#define BAN_HURTWOMAN "hurtwoman"
#define BAN_HURTMAN "hurtman"
#define BAN_CHAPEL "chapel"
#define BAN_HURTPRIEST "hurtpriest"
#define BAN_AVOIDWATER "avoidwater"
#define BAN_STRIKEUNCONCIOUS "strikeunconcious"
#define BAN_HURTLIZARD "hurtlizard"
#define BAN_HURTANIMAL "hurtanimal"
#define BANISH_WATER "water"
#define BANISH_COFFIN "coffin"
#define BANISH_FORMALDYHIDE "embalm"
#define BANISH_RUNES "runes"
#define BANISH_CANDLES "candles"
#define BANISH_DESTRUCTION "destruction"
#define BANISH_FUNERAL_GARB "funeral"
#define LORE 1
#define LAW 2
+1
View File
@@ -3,6 +3,7 @@
#define TARGET_INVALID_NOT_HUMAN 2
#define TARGET_INVALID_DEAD 3
#define TARGET_INVALID_NOCKEY 4
#define TARGET_INVALID_UNREACHABLE 5
//gamemode istype helpers
#define GAMEMODE_IS_BLOB (ticker && istype(ticker.mode, /datum/game_mode/blob))
+7 -2
View File
@@ -13,12 +13,14 @@
#define DISABILITY_FLAG_BLIND 16
#define DISABILITY_FLAG_MUTE 32
#define DISABILITY_FLAG_COLOURBLIND 64
#define DISABILITY_FLAG_WINGDINGS 128
#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
///////////////////////////////////////
@@ -33,10 +35,12 @@
#define HUSK 7
#define NOCLONE 8
// Extra powers:
#define LASER 9 // harm intent - click anywhere to shoot lasers from eyes
//species mutation
#define WINGDINGS 10 // Ayy lmao
//2spooky
#define SKELETON 29
#define PLANT 30
@@ -143,4 +147,5 @@
#define NOCRITDAMAGE 15
#define RESISTHOT 16
#define RESISTCOLD 17
#define NO_EXAMINE 18
#define NO_EXAMINE 18
#define CAN_WINGDINGS 19
+2 -1
View File
@@ -56,8 +56,9 @@
#define ANTAG_HUD_VAMPIRE 17
#define ANTAG_HUD_ABDUCTOR 18
#define DATA_HUD_ABDUCTOR 19
#define ANTAG_HUD_DEVIL 20
// Notification action types
#define NOTIFY_JUMP "jump"
#define NOTIFY_ATTACK "attack"
#define NOTIFY_FOLLOW "orbit"
#define NOTIFY_FOLLOW "orbit"
+1
View File
@@ -143,6 +143,7 @@
#define STATUS_UPDATE_NONE 0
#define STATUS_UPDATE_ALL (~0)
#define INVISIBILITY_ABSTRACT 101
#define UNHEALING_EAR_DAMAGE 100
//Human sub-species
+12 -2
View File
@@ -6,8 +6,9 @@
#define SOUND_HEARTBEAT 32
#define SOUND_BUZZ 64
#define SOUND_INSTRUMENTS 128
#define SOUND_MENTORHELP 256
#define SOUND_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|SOUND_HEARTBEAT|SOUND_BUZZ|SOUND_INSTRUMENTS)
#define SOUND_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|SOUND_HEARTBEAT|SOUND_BUZZ|SOUND_INSTRUMENTS|SOUND_MENTORHELP)
#define CHAT_OOC 1
#define CHAT_DEAD 2
@@ -41,4 +42,13 @@
#define EXP_TYPE_CREW "Crew"
#define EXP_TYPE_SPECIAL "Special"
#define EXP_TYPE_GHOST "Ghost"
#define EXP_TYPE_EXEMPT "Exempt"
#define EXP_TYPE_EXEMPT "Exempt"
#define EXP_TYPE_COMMAND "Command"
#define EXP_TYPE_ENGINEERING "Engineering"
#define EXP_TYPE_MEDICAL "Medical"
#define EXP_TYPE_SCIENCE "Science"
#define EXP_TYPE_SUPPLY "Supply"
#define EXP_TYPE_SECURITY "Security"
#define EXP_TYPE_SILICON "Silicon"
#define EXP_TYPE_SERVICE "Service"
#define EXP_TYPE_WHITELIST "Whitelist"
+2
View File
@@ -26,6 +26,7 @@
#define ROLE_REVENANT "revenant"
#define ROLE_HOG_GOD "hand of god: god" // We're prolly gonna port this one day or another
#define ROLE_HOG_CULTIST "hand of god: cultist"
#define ROLE_DEVIL "devil"
#define ROLE_RAIDER "vox raider"
#define ROLE_TRADER "trader"
#define ROLE_VAMPIRE "vampire"
@@ -73,4 +74,5 @@ var/global/list/special_roles = list(
ROLE_MORPH,
ROLE_TRADER,
ROLE_GSPIDER,
ROLE_DEVIL = /datum/game_mode/devil/devil_agents,
)
+8
View File
@@ -0,0 +1,8 @@
#define BSA_SIZE_FRONT 4
#define BSA_SIZE_BACK 6
#define VAULT_SPACEIMMUNE "Space Immunity"
#define VAULT_XRAY "X-Ray Vision"
#define VAULT_TELEKINESIS "Telekinesis"
#define VAULT_PSYCHIC "Psychic Powers"
#define VAULT_SPEED "Speediness"
+5 -1
View File
@@ -47,7 +47,11 @@
if(IS_WHITELISTED in S.species_traits)
GLOB.whitelisted_species += S.name
init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes)
for(var/D in subtypesof(/datum/crafting_recipe))
var/datum/crafting_recipe/R = D
if(!initial(R.roundstart_enabled))
continue
GLOB.crafting_recipes += new R
//Pipe list building
init_subtypes(/datum/pipes, GLOB.construction_pipe_list)
+1 -1
View File
@@ -791,4 +791,4 @@ proc/dd_sortedObjectList(list/incoming)
while(start < end)
L.Swap(start++, end--)
return L
return L
+10 -9
View File
@@ -248,7 +248,7 @@ Turf and target are seperate in case you want to teleport some distance from a t
var/pressure = air_contents.return_pressure()
var/total_moles = air_contents.total_moles()
to_chat(user, "<span class='notice'>Results of analysis of [bicon(icon)] [target].</span>")
user.show_message("<span class='notice'>Results of analysis of [bicon(icon)] [target].</span>", 1)
if(total_moles>0)
var/o2_concentration = air_contents.oxygen/total_moles
var/n2_concentration = air_contents.nitrogen/total_moles
@@ -257,16 +257,17 @@ Turf and target are seperate in case you want to teleport some distance from a t
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
to_chat(user, "<span class='notice'>Pressure: [round(pressure,0.1)] kPa</span>")
to_chat(user, "<span class='notice'>Nitrogen: [round(n2_concentration*100)] %</span>")
to_chat(user, "<span class='notice'>Oxygen: [round(o2_concentration*100)] %</span>")
to_chat(user, "<span class='notice'>CO2: [round(co2_concentration*100)] %</span>")
to_chat(user, "<span class='notice'>Plasma: [round(plasma_concentration*100)] %</span>")
user.show_message("<span class='notice'>Pressure: [round(pressure,0.1)] kPa</span>", 1)
user.show_message("<span class='notice'>Nitrogen: [round(n2_concentration*100)] % ([round(air_contents.nitrogen,0.01)] moles)</span>", 1)
user.show_message("<span class='notice'>Oxygen: [round(o2_concentration*100)] % ([round(air_contents.oxygen,0.01)] moles)</span>", 1)
user.show_message("<span class='notice'>CO2: [round(co2_concentration*100)] % ([round(air_contents.carbon_dioxide,0.01)] moles)</span>", 1)
user.show_message("<span class='notice'>Plasma: [round(plasma_concentration*100)] % ([round(air_contents.toxins,0.01)] moles)</span>", 1)
if(unknown_concentration>0.01)
to_chat(user, "<span class='danger'>Unknown: [round(unknown_concentration*100)] %</span>")
to_chat(user, "<span class='notice'>Temperature: [round(air_contents.temperature-T0C)] &deg;C</span>")
user.show_message("<span class='danger'>Unknown: [round(unknown_concentration*100)] % ([round(unknown_concentration*total_moles,0.01)] moles)</span>", 1)
user.show_message("<span class='notice'>Total: [round(total_moles,0.01)] moles</span>", 1)
user.show_message("<span class='notice'>Temperature: [round(air_contents.temperature-T0C)] &deg;C</span>", 1)
else
to_chat(user, "<span class='notice'>[target] is empty!</span>")
user.show_message("<span class='notice'>[target] is empty!</span>", 1)
return
//Picks a string of symbols to display as the law number for hacked or ion laws
+1
View File
@@ -13,6 +13,7 @@ var/GLASSESBLOCK = 0
var/EPILEPSYBLOCK = 0
var/TWITCHBLOCK = 0
var/NERVOUSBLOCK = 0
var/WINGDINGSBLOCK = 0
var/MONKEYBLOCK = 50 // Monkey block will always be the DNA_SE_LENGTH
var/BLOCKADD = 0
+8
View File
@@ -0,0 +1,8 @@
//what could possibly go wrong
var/list/devil_machines = typecacheof(/obj/item/circuitboard, TRUE) - list(
/obj/item/circuitboard/shuttle,
/obj/item/circuitboard/swfdoor,
/obj/item/circuitboard/olddoor,
/obj/item/circuitboard/computer,
/obj/item/circuitboard/machine
)
+1
View File
@@ -34,6 +34,7 @@ GLOBAL_LIST_INIT(beacons, list())
GLOBAL_LIST_INIT(shuttle_caller_list, list()) //list of all communication consoles, comms consoles circuit and AIs, for automatic shuttle calls when there are none.
GLOBAL_LIST_INIT(tracked_implants, list()) //list of all current implants that are tracked to work out what sort of trek everyone is on. Sadly not on lavaworld not implemented...
GLOBAL_LIST_INIT(pinpointer_list, list()) //list of all pinpointers. Used to change stuff they are pointing to all at once.
GLOBAL_LIST_INIT(nuclear_uplink_list, list()) //list of all existing nuke ops uplinks
GLOBAL_LIST_INIT(abductor_equipment, list()) //list of all abductor equipment
GLOBAL_LIST_INIT(global_intercoms, list()) //list of all intercomms, across all z-levels
+2 -2
View File
@@ -52,7 +52,7 @@
message_admins("[key_name_admin(src)] might be running a modified client! (failed can_see on AI click of [A]([ADMIN_COORDJMP(pixel_turf)]))")
var/message = "[key_name(src)] might be running a modified client! (failed can_see on AI click of [A]([COORD(pixel_turf)]))"
log_admin(message)
send2irc_adminless_only("NOCHEAT", "[key_name(src)] might be running a modified client! (failed checkTurfVis on AI click of [A]([COORD(pixel_turf)]))")
send2discord_adminless_only(config.discord_channel_admin, "[key_name(src)] might be running a modified client! (failed checkTurfVis on AI click of [A]([COORD(pixel_turf)]))")
var/turf_visible
@@ -65,7 +65,7 @@
if(pixel_turf.obscured)
log_admin("[key_name_admin(src)] might be running a modified client! (failed checkTurfVis on AI click of [A]([COORD(pixel_turf)])")
message_admins("[key_name_admin(src)] might be running a modified client! (failed checkTurfVis on AI click of [A]([ADMIN_COORDJMP(pixel_turf)]))")
send2irc_adminless_only("NOCHEAT", "[key_name(src)] might be running a modified client! (failed checkTurfVis on AI click of [A]([COORD(pixel_turf)]))")
send2discord_adminless_only(config.discord_channel_admin, "[key_name(src)] might be running a modified client! (failed checkTurfVis on AI click of [A]([COORD(pixel_turf)]))")
return
var/list/modifiers = params2list(params)
+1
View File
@@ -22,6 +22,7 @@
//Middle left indicators
#define ui_lingchemdisplay "WEST:6,CENTER-1:15"
#define ui_lingstingdisplay "WEST:6,CENTER-3:11"
#define ui_devilsouldisplay "WEST:6,CENTER-1:15"
//Lower center, persistant menu
#define ui_sstore1 "CENTER-5:10,SOUTH:5"
+21 -1
View File
@@ -322,7 +322,7 @@ Recharging stations are available in robotics, the dormitory bathrooms, and the
/obj/screen/alert/nymph/Click()
if(!usr || !usr.client)
return
return
if(isnymph(usr))
var/mob/living/simple_animal/diona/D = usr
return D.resist()
@@ -412,6 +412,26 @@ so as to remain in compliance with the most up-to-date laws."
else
to_chat(usr, "<span class='notice'>[M] is not connected to a port at the moment.</span>")
/obj/screen/alert/mech_nocell
name = "Missing Power Cell"
desc = "Mech has no power cell."
icon_state = "nocell"
/obj/screen/alert/mech_emptycell
name = "Out of Power"
desc = "Mech is out of power."
icon_state = "emptycell"
/obj/screen/alert/mech_lowcell
name = "Low Charge"
desc = "Mech is running out of power."
icon_state = "lowcell"
/obj/screen/alert/mech_maintenance
name = "Maintenance Protocols"
desc = "Maintenance protocols are currently in effect, most actions disabled."
icon_state = "locked"
//GUARDIANS
/obj/screen/alert/cancharge
name = "Charge Ready"
+1 -1
View File
@@ -136,7 +136,7 @@
inv_slots[inv.slot_id] = inv
inv.update_icon()
/datum/hud/alien/persistant_inventory_update()
/datum/hud/alien/persistent_inventory_update()
if(!mymob)
return
var/mob/living/carbon/alien/humanoid/H = mymob
+89
View File
@@ -0,0 +1,89 @@
//Soul counter is stored with the humans, it does weird when you place it here apparently...
/datum/hud/devil/New(mob/owner, ui_style = 'icons/mob/screen_midnight.dmi')
..()
var/obj/screen/using
var/obj/screen/inventory/inv_box
using = new /obj/screen/drop()
using.icon = ui_style
using.screen_loc = ui_drop_throw
static_inventory += using
mymob.pullin = new /obj/screen/pull()
mymob.pullin.icon = ui_style
mymob.pullin.update_icon(mymob)
mymob.pullin.screen_loc = ui_pull_resist
static_inventory += mymob.pullin
inv_box = new /obj/screen/inventory/hand()
inv_box.name = "right hand"
inv_box.icon = ui_style
inv_box.icon_state = "hand_r"
inv_box.screen_loc = ui_rhand
inv_box.slot_id = slot_r_hand
static_inventory += inv_box
inv_box = new /obj/screen/inventory/hand()
inv_box.name = "left hand"
inv_box.icon = ui_style
inv_box.icon_state = "hand_l"
inv_box.screen_loc = ui_lhand
inv_box.slot_id = slot_l_hand
static_inventory += inv_box
using = new /obj/screen/swap_hand()
using.name = "hand"
using.icon = ui_style
using.icon_state = "swap_1"
using.screen_loc = ui_swaphand1
using.layer = 19
static_inventory += using
using = new /obj/screen/swap_hand()
using.name = "hand"
using.icon = ui_style
using.icon_state = "swap_2"
using.screen_loc = ui_swaphand2
using.layer = 19
static_inventory += using
mymob.zone_sel = new /obj/screen/zone_sel()
mymob.zone_sel.icon = ui_style
mymob.zone_sel.update_icon(mymob)
lingchemdisplay = new /obj/screen/ling/chems()
devilsouldisplay = new /obj/screen/devil/soul_counter
infodisplay += devilsouldisplay
for(var/obj/screen/inventory/inv in static_inventory)
if(inv.slot_id)
inv.hud = src
inv_slots[inv.slot_id] = inv
inv.update_icon()
/datum/hud/devil/persistent_inventory_update()
if(!mymob)
return
var/mob/living/carbon/true_devil/D = mymob
if(hud_version != HUD_STYLE_NOHUD)
if(D.r_hand)
D.r_hand.screen_loc = ui_rhand
D.client.screen += D.r_hand
if(D.l_hand)
D.l_hand.screen_loc = ui_lhand
D.client.screen += D.l_hand
else
if(D.r_hand)
D.r_hand.screen_loc = null
if(D.l_hand)
D.l_hand.screen_loc = null
/mob/living/carbon/true_devil/create_mob_hud()
if(client && !hud_used)
hud_used = new /datum/hud/devil(src, ui_style2icon(client.prefs.UI_style))
+5 -2
View File
@@ -27,6 +27,8 @@
var/obj/screen/move_intent
var/obj/screen/module_store_icon
var/obj/screen/devil/soul_counter/devilsouldisplay
var/list/static_inventory = list() //the screen objects which are static
var/list/toggleable_inventory = list() //the screen objects which can be hidden
var/list/hotkeybuttons = list() //the buttons that can be used via hotkeys
@@ -79,6 +81,7 @@
alien_plasma_display = null
vampire_blood_display = null
nightvisionicon = null
devilsouldisplay = null
mymob = null
return ..()
@@ -155,7 +158,7 @@
mymob.client.screen -= infodisplay
hud_version = display_hud_version
persistant_inventory_update()
persistent_inventory_update()
mymob.update_action_buttons(1)
reorganize_alerts()
reload_fullscreen()
@@ -171,7 +174,7 @@
/datum/hud/proc/hidden_inventory_update()
return
/datum/hud/proc/persistant_inventory_update()
/datum/hud/proc/persistent_inventory_update()
return
//Triggered when F12 is pressed (Unless someone changed something in the DMF)
+33 -1
View File
@@ -36,6 +36,35 @@
var/mob/living/carbon/U = usr
U.unset_sting()
/obj/screen/devil
invisibility = INVISIBILITY_ABSTRACT
/obj/screen/devil/soul_counter
icon = 'icons/mob/screen_gen.dmi'
name = "souls owned"
icon_state = "Devil-6"
screen_loc = ui_devilsouldisplay
/obj/screen/devil/soul_counter/proc/update_counter(souls = 0)
invisibility = 0
maptext = "<div align='center' valign='middle' style='position:relative; top:0px; left:6px'><font color='#FF0000'>[souls]</font></div>"
switch(souls)
if(0,null)
icon_state = "Devil-1"
if(1,2)
icon_state = "Devil-2"
if(3 to 5)
icon_state = "Devil-3"
if(6 to 8)
icon_state = "Devil-4"
if(9 to INFINITY)
icon_state = "Devil-5"
else
icon_state = "Devil-6"
/obj/screen/devil/soul_counter/proc/clear()
invisibility = INVISIBILITY_ABSTRACT
/obj/screen/ling/chems
name = "chemical storage"
icon_state = "power_display"
@@ -337,6 +366,9 @@
lingstingdisplay = new /obj/screen/ling/sting()
infodisplay += lingstingdisplay
devilsouldisplay = new /obj/screen/devil/soul_counter
infodisplay += devilsouldisplay
mymob.zone_sel = new /obj/screen/zone_sel()
mymob.zone_sel.icon = ui_style
mymob.zone_sel.update_icon(mymob)
@@ -393,7 +425,7 @@
if(H.wear_mask) H.wear_mask.screen_loc = null
if(H.head) H.head.screen_loc = null
/datum/hud/human/persistant_inventory_update()
/datum/hud/human/persistent_inventory_update()
if(!mymob)
return
var/mob/living/carbon/human/H = mymob
+6 -4
View File
@@ -21,7 +21,7 @@
return FALSE
/obj/attackby(obj/item/I, mob/living/user, params)
return ..() || (can_be_hit && I.attack_obj(src, user))
return ..() || (can_be_hit && isitem(I) && I.attack_obj(src, user))
/mob/living/attackby(obj/item/I, mob/living/user, params)
user.changeNext_move(CLICK_CD_MELEE)
@@ -63,14 +63,16 @@
if(!force)
playsound(loc, 'sound/weapons/tap.ogg', get_clamped_volume(), 1, -1)
else if(hitsound)
playsound(loc, hitsound, get_clamped_volume(), 1, -1)
else
SEND_SIGNAL(M, COMSIG_ITEM_ATTACK)
if(hitsound)
playsound(loc, hitsound, get_clamped_volume(), 1, -1)
user.lastattacked = M
M.lastattacker = user
user.do_attack_animation(M)
M.attacked_by(src, user, def_zone)
. = M.attacked_by(src, user, def_zone)
add_attack_logs(user, M, "Attacked with [name] (INTENT: [uppertext(user.a_intent)]) (DAMTYPE: [uppertext(damtype)])", (M.ckey && force > 0 && damtype != STAMINA) ? null : ATKLOG_ALMOSTALL)
+1
View File
@@ -176,6 +176,7 @@ var/const/RADIO_ATMOSIA = "radio_atmos"
var/const/RADIO_NAVBEACONS = "radio_navbeacon"
var/const/RADIO_AIRLOCK = "radio_airlock"
var/const/RADIO_SECBOT = "radio_secbot"
var/const/RADIO_HONKBOT = "radio_honkbot"
var/const/RADIO_MULEBOT = "radio_mulebot"
var/const/RADIO_CLEANBOT = "10"
var/const/RADIO_FLOORBOT = "11"
+19 -19
View File
@@ -139,12 +139,12 @@
var/comms_password = ""
var/use_irc_bot = 0
var/list/irc_bot_host = list()
var/main_irc = ""
var/admin_irc = ""
var/admin_notify_irc = ""
var/cidrandomizer_irc = ""
var/use_discord_bot = FALSE
var/discord_host = ""
var/discord_channel_main = ""
var/discord_channel_admin = ""
var/discord_channel_admin_notify = ""
var/discord_channel_cidrandomizer = ""
var/default_laws = 0 //Controls what laws the AI spawns with.
@@ -457,9 +457,6 @@
if("allow_holidays")
config.allow_holidays = 1
if("use_irc_bot")
use_irc_bot = 1
if("ticklag")
Ticklag = text2num(value)
@@ -503,20 +500,23 @@
if("comms_password")
config.comms_password = value
if("irc_bot_host")
config.irc_bot_host = splittext(value, ";")
if("use_discord_bot")
use_discord_bot = TRUE
if("main_irc")
config.main_irc = value
if("discord_host")
config.discord_host = value
if("admin_irc")
config.admin_irc = value
if("discord_channel_main")
config.discord_channel_main = value
if("admin_notify_irc")
config.admin_notify_irc = value
if("discord_channel_admin")
config.discord_channel_admin = value
if("cidrandomizer_irc")
config.cidrandomizer_irc = value
if("discord_channel_admin_notify")
config.discord_channel_admin_notify = value
if("discord_channel_cidrandomizer")
config.discord_channel_cidrandomizer = value
if("python_path")
if(value)
+19 -6
View File
@@ -315,6 +315,17 @@ UI STUFF
popup.set_content(dat)
popup.open()
//Sends a message to the target safely. If the target left the server it won't throw a runtime. Also accepts lists of text
/datum/controller/subsystem/tickets/proc/to_chat_safe(target, text)
if(!target)
return FALSE
if(istype(text, /list))
for(var/T in text)
to_chat(target, T)
else
to_chat(target, text)
return TRUE
/datum/controller/subsystem/tickets/Topic(href, href_list)
if(href_list["refresh"])
@@ -345,14 +356,14 @@ UI STUFF
var/indexNum = text2num(href_list["resolve"])
if(SStickets.resolveTicket(indexNum))
message_adminTicket("[usr.client] / ([usr]) resolved admin ticket number [indexNum]")
to_chat(returnClient(indexNum), "<span class='adminticket'>Your admin ticket has now been resolved.</span>")
to_chat_safe(returnClient(indexNum), "<span class='adminticket'>Your admin ticket has now been resolved.</span>")
showUI(usr)
if(href_list["detailresolve"])
var/indexNum = text2num(href_list["detailresolve"])
if(SStickets.resolveTicket(indexNum))
message_adminTicket("[usr.client] / ([usr]) resolved admin ticket number [indexNum]")
to_chat(returnClient(indexNum), "<span class='adminticket'>Your admin ticket has now been resolved.</span>")
to_chat_safe(returnClient(indexNum), "<span class='adminticket'>Your admin ticket has now been resolved.</span>")
showDetailUI(usr, indexNum)
if(href_list["detailclose"])
@@ -361,9 +372,11 @@ UI STUFF
return
if(SStickets.closeTicket(indexNum))
message_adminTicket("[usr.client] / ([usr]) closed admin ticket number [indexNum]")
to_chat(returnClient(indexNum), "<font color='red' size='4'><b>- AdminHelp Rejected! -</b></font>")
to_chat(returnClient(indexNum), "<span class='boldmessage'>Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting. If you asked a question, please ensure it was clear what you were asking.</span>")
to_chat(returnClient(indexNum), "<span class='adminticket'>Your ticket has now been closed.</span>")
to_chat_safe(returnClient(indexNum), list(
"<font color='red' size='4'><b>- AdminHelp Rejected! -</b></font>",
"<span class='boldmessage'>Please try to be calm, clear, and descriptive in admin helps, do not assume the admin has seen any related events, and clearly state the names of anybody you are reporting. If you asked a question, please ensure it was clear what you were asking.</span>",
"<span class='adminticket'>Your ticket has now been closed.</span>"
))
showDetailUI(usr, indexNum)
if(href_list["detailreopen"])
@@ -376,5 +389,5 @@ UI STUFF
var/indexNum = text2num(href_list["assignadmin"])
if(SStickets.assignAdminToTicket(usr.client, indexNum))
message_adminTicket("[usr.client] / ([usr]) has taken ticket number [indexNum]")
to_chat(returnClient(indexNum), "<span class='adminticket'>Your ticket is being handled by [usr.client].")
to_chat_safe(returnClient(indexNum), "<span class='adminticket'>Your ticket is being handled by [usr.client].")
showDetailUI(usr, indexNum)
+31
View File
@@ -17,6 +17,10 @@ var/global/const/base_law_type = /datum/ai_laws/nanotrasen
/datum/ai_law/zero/get_index()
return 0
/datum/ai_law/sixsixsix/get_index()
return 666
/datum/ai_laws
var/name = "Unknown Laws"
var/law_header = "Prime Directives"
@@ -27,9 +31,11 @@ var/global/const/base_law_type = /datum/ai_laws/nanotrasen
var/list/datum/ai_law/inherent_laws = list()
var/list/datum/ai_law/supplied_laws = list()
var/list/datum/ai_law/ion/ion_laws = list()
var/list/datum/ai_law/sixsixsix/devil_laws = list()
var/list/datum/ai_law/sorted_laws = list()
var/state_zeroth = 0
var/list/state_devil = list()
var/list/state_ion = list()
var/list/state_inherent = list()
var/list/state_supplied = list()
@@ -58,6 +64,9 @@ var/global/const/base_law_type = /datum/ai_laws/nanotrasen
for(var/ion_law in ion_laws)
sorted_laws += ion_law
for(var/evil_law in devil_laws)
sorted_laws += evil_law
if(zeroth_law)
sorted_laws += zeroth_law
@@ -117,6 +126,21 @@ var/global/const/base_law_type = /datum/ai_laws/nanotrasen
zeroth_law_borg = null
sorted_laws.Cut()
/datum/ai_laws/proc/set_sixsixsix_law(var/law)
if(!law)
return
for(var/datum/ai_law/AL in devil_laws)
if(AL.law == law)
return
var/new_law = new/datum/ai_law/sixsixsix(law)
devil_laws += new_law
if(state_devil.len < devil_laws.len)
state_devil += 1
sorted_laws.Cut()
/datum/ai_laws/proc/add_ion_law(var/law)
if(!law)
return
@@ -185,6 +209,9 @@ var/global/const/base_law_type = /datum/ai_laws/nanotrasen
/datum/ai_law/ion/delete_law(var/datum/ai_laws/laws)
laws.internal_delete_law(laws.ion_laws, laws.state_ion, src)
/datum/ai_law/sixsixsix/delete_law(var/datum/ai_laws/laws)
laws.internal_delete_law(laws.devil_laws, laws.state_devil, src)
/datum/ai_law/inherent/delete_law(var/datum/ai_laws/laws)
laws.internal_delete_law(laws.inherent_laws, laws.state_inherent, src)
@@ -210,6 +237,10 @@ var/global/const/base_law_type = /datum/ai_laws/nanotrasen
zeroth_law = null
zeroth_law_borg = null
/datum/ai_laws/proc/clear_sixsixsix_laws()
devil_laws.Cut()
sorted_laws.Cut()
/datum/ai_laws/proc/clear_ion_laws()
ion_laws.Cut()
sorted_laws.Cut()
+5
View File
@@ -0,0 +1,5 @@
/datum/component/jestosterone
var/mind_type //Is the affected mob a clown / mime?
/datum/component/jestosterone/Initialize(mind_type_arg)
mind_type = mind_type_arg
+11 -6
View File
@@ -14,7 +14,7 @@
var/last_use = 0
var/use_delay = 20
/datum/component/squeak/Initialize(custom_sounds, volume_override, chance_override, step_delay_override, use_delay_override)
/datum/component/squeak/Initialize(custom_sounds, volume_override, chance_override, step_delay_override, use_delay_override, squeak_on_move)
if(!isatom(parent))
return COMPONENT_INCOMPATIBLE
RegisterSignal(parent, list(COMSIG_ATOM_ENTERED, COMSIG_ATOM_BLOB_ACT, COMSIG_ATOM_HULK_ATTACK, COMSIG_PARENT_ATTACKBY), .proc/play_squeak)
@@ -22,6 +22,8 @@
RegisterSignal(parent, list(COMSIG_MOVABLE_BUMP, COMSIG_MOVABLE_IMPACT), .proc/play_squeak)
RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/play_squeak_crossed)
RegisterSignal(parent, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react)
if(squeak_on_move)
RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/play_squeak)
if(isitem(parent))
RegisterSignal(parent, list(COMSIG_ITEM_ATTACK, COMSIG_ITEM_ATTACK_OBJ, COMSIG_ITEM_HIT_REACT), .proc/play_squeak)
RegisterSignal(parent, COMSIG_ITEM_ATTACK_SELF, .proc/use_squeak)
@@ -47,12 +49,15 @@
else
playsound(parent, pickweight(override_squeak_sounds), volume, 1, -1)
/datum/component/squeak/proc/step_squeak()
if(steps > step_delay)
play_squeak()
steps = 0
/datum/component/squeak/proc/step_squeak(datum/source, mob/living/carbon/human/H)
if(H.m_intent == MOVE_INTENT_RUN)
if(steps > step_delay)
play_squeak()
steps = 0
else
steps++
else
steps++
play_squeak()
/datum/component/squeak/proc/on_equip(datum/source, mob/equipper, slot)
RegisterSignal(equipper, COMSIG_MOVABLE_DISPOSING, .proc/disposing_react, TRUE)
+1
View File
@@ -339,6 +339,7 @@ var/record_id_num = 1001
L.fields["enzymes"] = H.dna.SE // Used in respawning
L.fields["identity"] = H.dna.UI // "
L.fields["image"] = getFlatIcon(H) //This is god-awful
L.fields["reference"] = H
locked += L
return
+2 -1
View File
@@ -21,7 +21,8 @@ var/datum/atom_hud/huds = list( \
ANTAG_HUD_CHANGELING = new/datum/atom_hud/antag/hidden(),\
ANTAG_HUD_VAMPIRE = new/datum/atom_hud/antag/hidden(),\
ANTAG_HUD_ABDUCTOR = new/datum/atom_hud/antag/hidden(),\
DATA_HUD_ABDUCTOR = new/datum/atom_hud/abductor()\
DATA_HUD_ABDUCTOR = new/datum/atom_hud/abductor(),\
ANTAG_HUD_DEVIL = new/datum/atom_hud/antag/hidden()\
)
/datum/atom_hud
+121
View File
@@ -51,10 +51,16 @@
var/linglink
var/datum/vampire/vampire //vampire holder
var/datum/nations/nation //nation holder
var/datum/abductor/abductor //abductor holder
var/datum/devilinfo/devilinfo //devil holder
var/antag_hud_icon_state = null //this mind's ANTAG_HUD should have this icon_state
var/datum/atom_hud/antag/antag_hud = null //this mind's antag HUD
var/datum/mindslaves/som //stands for slave or master...hush..
var/datum/devilinfo/devilinfo //Information about the devil, if any.
var/damnation_type = 0
var/datum/mind/soulOwner //who owns the soul. Under normal circumstances, this will point to src
var/hasSoul = TRUE
var/rev_cooldown = 0
@@ -74,6 +80,7 @@
/datum/mind/New(new_key)
key = new_key
soulOwner = src
/datum/mind/Destroy()
ticker.minds -= src
@@ -291,6 +298,22 @@
. += _memory_edit_role_enabled(ROLE_ABDUCTOR)
/datum/mind/proc/memory_edit_devil(mob/living/H)
. = _memory_edit_header("devil", list("devilagents"))
if(src in ticker.mode.devils)
if(!devilinfo)
. += "<b>No devilinfo found! Yell at a coder!</b>"
else if(!devilinfo.ascendable)
. += "<b>DEVIL</b>|<a href='?src=[UID()];devil=ascendable_devil'>Ascendable Devil</a>|sintouched|<a href='?src=[UID()];devil=clear'>no</a>"
else
. += "<a href='?src=[UID()];devil=devil'>DEVIL</a>|<b>ASCENDABLE DEVIL</b>|sintouched|<a href='?src=[UID()];devil=clear'>no</a>"
else if(src in ticker.mode.sintouched)
. += "devil|Ascendable Devil|<b>SINTOUCHED</b>|<a href='?src=[UID()];devil=clear'>no</a>"
else
. += "<a href='?src=[UID()];devil=devil'>devil</a>|<a href='?src=[UID()];devil=ascendable_devil'>Ascendable Devil</a>|<a href='?src=[UID()];devil=sintouched'>sintouched</a>|<b>NO</b>"
. += _memory_edit_role_enabled(ROLE_DEVIL)
/datum/mind/proc/memory_edit_traitor()
. = _memory_edit_header("traitor", list("traitorchan", "traitorvamp"))
if(src in ticker.mode.traitors)
@@ -374,6 +397,10 @@
sections["shadowling"] = memory_edit_shadowling(H)
/** Abductors **/
sections["abductor"] = memory_edit_abductor(H)
/** DEVIL ***/
var/static/list/devils_typecache = typecacheof(list(/mob/living/carbon/human, /mob/living/carbon/true_devil, /mob/living/silicon/robot))
if(is_type_in_typecache(current, devils_typecache))
sections["devil"] = memory_edit_devil(H)
/** TRAITOR ***/
sections["traitor"] = memory_edit_traitor()
/** SILICON ***/
@@ -1003,6 +1030,77 @@
else
to_chat(usr, "<span class='warning'>No valid nuke found!</span>")
else if(href_list["devil"])
switch(href_list["devil"])
if("clear")
if(src in ticker.mode.devils)
if(istype(current,/mob/living/carbon/true_devil/))
to_chat(usr,"<span class='warning'>This cannot be used on true or arch-devils.</span>")
else
ticker.mode.devils -= src
ticker.mode.update_devil_icons_removed(src)
special_role = null
to_chat(current,"<span class='userdanger'>Your infernal link has been severed! You are no longer a devil!</span>")
RemoveSpell(/obj/effect/proc_holder/spell/targeted/infernal_jaunt)
RemoveSpell(/obj/effect/proc_holder/spell/fireball/hellish)
RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_contract)
RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork)
RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork/greater)
RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork/ascended)
RemoveSpell(/obj/effect/proc_holder/spell/targeted/conjure_item/violin)
RemoveSpell(/obj/effect/proc_holder/spell/targeted/summon_dancefloor)
RemoveSpell(/obj/effect/proc_holder/spell/targeted/sintouch)
RemoveSpell(/obj/effect/proc_holder/spell/targeted/sintouch/ascended)
message_admins("[key_name_admin(usr)] has de-devil'ed [current].")
if(issilicon(current))
var/mob/living/silicon/S = current
S.laws.clear_sixsixsix_laws()
devilinfo = null
log_admin("[key_name(usr)] has de-devil'ed [current].")
else if(src in ticker.mode.sintouched)
ticker.mode.sintouched -= src
message_admins("[key_name_admin(usr)] has de-sintouch'ed [current].")
log_admin("[key_name(usr)] has de-sintouch'ed [current].")
if("devil")
if(devilinfo)
devilinfo.ascendable = FALSE
message_admins("[key_name_admin(usr)] has made [current] unable to ascend as a devil.")
log_admin("[key_name_admin(usr)] has made [current] unable to ascend as a devil.")
return
if(!ishuman(current) && !isrobot(current))
to_chat(usr, "<span class='warning'>This only works on humans and cyborgs!</span>")
return
ticker.mode.devils += src
special_role = "devil"
ticker.mode.update_devil_icons_added(src)
ticker.mode.finalize_devil(src, FALSE)
ticker.mode.forge_devil_objectives(src, 2)
ticker.mode.greet_devil(src)
message_admins("[key_name_admin(usr)] has devil'ed [current].")
log_admin("[key_name(usr)] has devil'ed [current].")
if("ascendable_devil")
if(devilinfo)
devilinfo.ascendable = TRUE
message_admins("[key_name_admin(usr)] has made [current] able to ascend as a devil.")
log_admin("[key_name_admin(usr)] has made [current] able to ascend as a devil.")
return
if(!ishuman(current) && !isrobot(current))
to_chat(usr, "<span class='warning'>This only works on humans and cyborgs!</span>")
return
ticker.mode.devils += src
special_role = "devil"
ticker.mode.update_devil_icons_added(src)
ticker.mode.finalize_devil(src, TRUE)
ticker.mode.forge_devil_objectives(src, 2)
ticker.mode.greet_devil(src)
message_admins("[key_name_admin(usr)] has devil'ed [current]. The devil has been marked as ascendable.")
log_admin("[key_name(usr)] has devil'ed [current]. The devil has been marked as ascendable.")
if("sintouched")
var/mob/living/carbon/human/H = current
H.influenceSin()
message_admins("[key_name_admin(usr)] has sintouch'ed [current].")
log_admin("[key_name(usr)] has sintouch'ed [current].")
else if(href_list["traitor"])
switch(href_list["traitor"])
if("clear")
@@ -1455,6 +1553,17 @@
var/obj/effect/proc_holder/spell/S = X
S.action.Grant(new_character)
/datum/mind/proc/disrupt_spells(delay, list/exceptions = New())
for(var/X in spell_list)
var/obj/effect/proc_holder/spell/S = X
for(var/type in exceptions)
if(istype(S, type))
continue
S.charge_counter = delay
spawn(0)
S.start_recharge()
S.updateButtonIcon()
/datum/mind/proc/get_ghost(even_if_they_cant_reenter)
for(var/mob/dead/observer/G in GLOB.dead_mob_list)
if(G.mind == src)
@@ -1533,6 +1642,18 @@
to_chat(current, "<span class='warning'>You seem to have forgotten the events of the past 10 minutes or so, and your head aches a bit as if someone beat it savagely with a stick.</span>")
to_chat(current, "<span class='warning'>This means you don't remember who you were working for or what you were doing.</span>")
/datum/mind/proc/is_revivable() //Note, this ONLY checks the mind.
if(damnation_type)
return FALSE
return TRUE
// returns a mob to message to produce something visible for the target mind
/datum/mind/proc/messageable_mob()
if(!QDELETED(current) && current.client)
return current
else
return get_ghost(even_if_they_cant_reenter = TRUE)
//Initialisation procs
/mob/proc/mind_initialize()
if(mind)
+28 -3
View File
@@ -83,12 +83,12 @@
l_ear = /obj/item/radio/headset/syndicate/alt
glasses = /obj/item/clothing/glasses/night
shoes = /obj/item/clothing/shoes/magboots/syndie
r_pocket = /obj/item/radio/uplink/nuclear
l_pocket = /obj/item/pinpointer/advpinpointer
l_hand = /obj/item/tank/jetpack/oxygen/harness
backpack_contents = list(
/obj/item/storage/box/engineer = 1,
/obj/item/reagent_containers/food/pill/initropidril = 1,
/obj/item/storage/box/survival_syndi = 1,
/obj/item/gun/projectile/automatic/pistol = 1,
/obj/item/ammo_box/magazine/m10mm = 1,
/obj/item/crowbar/red = 1,
@@ -117,7 +117,7 @@
name = "Syndicate Strike Team"
/datum/outfit/admin/syndicate_strike_team/equip(mob/living/carbon/human/H, visualsOnly = FALSE)
return H.equip_syndicate_commando()
return H.equip_syndicate_commando(FALSE, TRUE)
/datum/outfit/admin/syndicate/spy
@@ -697,6 +697,31 @@
)
is_tsf_lieutenant = TRUE
/datum/outfit/admin/sol_trader
name = "Sol Trader"
uniform = /obj/item/clothing/under/rank/cargotech
back = /obj/item/storage/backpack/industrial
belt = /obj/item/melee/classic_baton
head = /obj/item/clothing/head/soft
shoes = /obj/item/clothing/shoes/black
l_ear = /obj/item/radio/headset
glasses = /obj/item/clothing/glasses/sunglasses
id = /obj/item/card/id/supply
pda = /obj/item/pda
backpack_contents = list(
/obj/item/storage/box/survival = 1,
/obj/item/hand_labeler = 1
)
/datum/outfit/admin/sol_trader/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
. = ..()
if(visualsOnly)
return
var/obj/item/card/id/I = H.wear_id
if(istype(I))
apply_to_card(I, H, list(access_trade_sol, access_maint_tunnels, access_external_airlocks), name)
/datum/outfit/admin/chrono
name = "Chrono Legionnaire"
+1
View File
@@ -122,6 +122,7 @@
if(soulsharer)
soulsharer.dust(FALSE)
/datum/soullink/oneway/devilfriend
/////////////////
// SHARED BODY //
+16 -11
View File
@@ -141,14 +141,14 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
var/obj/effect/proc_holder/spell/noclothes/clothes_spell = locate() in (user.mob_spell_list | (user.mind ? user.mind.spell_list : list()))
if((ishuman(user) && clothes_req) && !istype(clothes_spell))//clothes check
var/mob/living/carbon/human/H = user
if(!istype(H.wear_suit, /obj/item/clothing/suit/wizrobe) && !istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/wizard) && !istype(H.wear_suit, /obj/item/clothing/suit/space/eva/plasmaman/wizard))
to_chat(user, "<span class='notice'>I don't feel strong enough without my robe.</span>")
var/obj/item/clothing/robe = H.wear_suit
var/obj/item/clothing/hat = H.head
var/obj/item/clothing/shoes = H.shoes
if(!robe || !hat || !shoes)
to_chat(user, "<span class='notice'>Your outfit isn't complete, you should put on your robe and wizard hat, as well as sandals.</span>")
return 0
if(!istype(H.shoes, /obj/item/clothing/shoes/sandal) && !istype(H.shoes, /obj/item/clothing/shoes/magboots/wizard))
to_chat(user, "<span class='notice'>I don't feel strong enough without my sandals.</span>")
return 0
if(!istype(H.head, /obj/item/clothing/head/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/eva/plasmaman/wizard))
to_chat(user, "<span class='notice'>I don't feel strong enough without my hat.</span>")
if(!robe.magical || !hat.magical || !shoes.magical)
to_chat(user, "<span class='notice'>Your outfit isn't magical enough, you should put on your robe and wizard hat, as well as your sandals.</span>")
return 0
else if(!ishuman(user))
if(clothes_req || human_req)
@@ -294,6 +294,10 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
return
/obj/effect/proc_holder/spell/proc/updateButtonIcon()
if(action)
action.UpdateButtonIcon()
/obj/effect/proc_holder/spell/proc/adjust_var(mob/living/target = usr, type, amount) //handles the adjustment of the var when the spell is used. has some hardcoded types
switch(type)
if("bruteloss")
@@ -459,11 +463,12 @@ var/list/spells = typesof(/obj/effect/proc_holder/spell) //needed for the badmin
var/clothcheck = locate(/obj/effect/proc_holder/spell/noclothes) in user.mob_spell_list
var/clothcheck2 = user.mind && (locate(/obj/effect/proc_holder/spell/noclothes) in user.mind.spell_list)
if(clothes_req && !clothcheck && !clothcheck2) //clothes check
if(!istype(H.wear_suit, /obj/item/clothing/suit/wizrobe) && !istype(H.wear_suit, /obj/item/clothing/suit/space/hardsuit/wizard) && !istype(H.wear_suit, /obj/item/clothing/suit/space/eva/plasmaman/wizard))
var/obj/item/clothing/robe = H.wear_suit
var/obj/item/clothing/hat = H.head
var/obj/item/clothing/shoes = H.shoes
if(!robe || !hat || !shoes)
return 0
if(!istype(H.shoes, /obj/item/clothing/shoes/sandal) && !istype(H.shoes, /obj/item/clothing/shoes/magboots/wizard))
return 0
if(!istype(H.head, /obj/item/clothing/head/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/hardsuit/wizard) && !istype(H.head, /obj/item/clothing/head/helmet/space/eva/plasmaman/wizard))
if(!robe.magical || !hat.magical || !shoes.magical)
return 0
else
if(clothes_req || human_req)
+25
View File
@@ -0,0 +1,25 @@
/obj/effect/proc_holder/spell/targeted/conjure_item
name = "Summon weapon"
desc = "A generic spell that should not exist. This summons an instance of a specific type of item, or if one already exists, un-summons it."
invocation_type = "none"
include_user = 1
range = -1
clothes_req = FALSE
var/obj/item/item
var/item_type = /obj/item/banhammer
school = "conjuration"
charge_max = 150
cooldown_min = 10
/obj/effect/proc_holder/spell/targeted/conjure_item/cast(list/targets, mob/user = usr)
if(item)
QDEL_NULL(item)
else
for(var/mob/living/carbon/C in targets)
if(C.drop_item())
item = new item_type
C.put_in_hands(item)
/obj/effect/proc_holder/spell/targeted/conjure_item/Destroy()
QDEL_NULL(item)
return ..()
+251
View File
@@ -0,0 +1,251 @@
/obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork
name = "Summon Pitchfork"
desc = "A devil's weapon of choice. Use this to summon/unsummon your pitchfork."
item_type = /obj/item/twohanded/pitchfork/demonic
action_icon_state = "pitchfork"
action_background_icon_state = "bg_demon"
/obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork/greater
item_type = /obj/item/twohanded/pitchfork/demonic/greater
/obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork/ascended
item_type = /obj/item/twohanded/pitchfork/demonic/ascended
/obj/effect/proc_holder/spell/targeted/conjure_item/violin
item_type = /obj/item/instrument/violin/golden
desc = "A devil's instrument of choice. Use this to summon/unsummon your golden violin."
invocation_type = "whisper"
invocation = "I ain't have this much fun since Georgia."
action_icon_state = "golden_violin"
name = "Summon golden violin"
action_background_icon_state = "bg_demon"
/obj/effect/proc_holder/spell/targeted/summon_contract
name = "Summon infernal contract"
desc = "Skip making a contract by hand, just do it by magic."
invocation_type = "whisper"
invocation = "Just sign on the dotted line."
include_user = 0
range = 5
clothes_req = FALSE
school = "conjuration"
charge_max = 150
cooldown_min = 10
action_icon_state = "spell_default"
action_background_icon_state = "bg_demon"
/obj/effect/proc_holder/spell/targeted/summon_contract/cast(list/targets, mob/user = usr)
for(var/mob/living/carbon/C in targets)
if(C.mind && user.mind)
if(C.stat == DEAD)
if(user.drop_item())
var/obj/item/paper/contract/infernal/revive/contract = new(user.loc, C.mind, user.mind)
user.put_in_hands(contract)
else
var/obj/item/paper/contract/infernal/contract
var/contractTypeName = input(user, "What type of contract?") in list (CONTRACT_POWER, CONTRACT_WEALTH, CONTRACT_PRESTIGE, CONTRACT_MAGIC, CONTRACT_KNOWLEDGE, CONTRACT_FRIENDSHIP) //TODO: Refactor this to be less boilerplate-y
switch(contractTypeName)
if(CONTRACT_POWER)
contract = new /obj/item/paper/contract/infernal/power(C.loc, C.mind, user.mind)
if(CONTRACT_WEALTH)
contract = new /obj/item/paper/contract/infernal/wealth(C.loc, C.mind, user.mind)
if(CONTRACT_PRESTIGE)
contract = new /obj/item/paper/contract/infernal/prestige(C.loc, C.mind, user.mind)
if(CONTRACT_MAGIC)
contract = new /obj/item/paper/contract/infernal/magic(C.loc, C.mind, user.mind)
if(CONTRACT_KNOWLEDGE)
contract = new /obj/item/paper/contract/infernal/knowledge(C.loc, C.mind, user.mind)
if(CONTRACT_FRIENDSHIP)
contract = new /obj/item/paper/contract/infernal/friendship(C.loc, C.mind, user.mind)
C.put_in_hands(contract)
else
to_chat(user,"<span class='notice'>[C] seems to not be sentient. You are unable to summon a contract for them.</span>")
/obj/effect/proc_holder/spell/fireball/hellish
name = "Hellfire"
desc = "This spell launches hellfire at the target."
school = "evocation"
charge_max = 80
clothes_req = FALSE
invocation = "Your very soul will catch fire!"
invocation_type = "shout"
fireball_type = /obj/item/projectile/magic/fireball/infernal
action_background_icon_state = "bg_demon"
/obj/effect/proc_holder/spell/fireball/hellish/cast(list/targets, mob/living/user = usr)
msg_admin_attack("[key_name_admin(usr)] has fired a fireball.", ATKLOG_FEW)
.=..()
/obj/effect/proc_holder/spell/targeted/infernal_jaunt
name = "Infernal Jaunt"
desc = "Use hellfire to phase out of existence."
charge_max = 200
clothes_req = FALSE
selection_type = "range"
range = -1
cooldown_min = 0
overlay = null
include_user = TRUE
action_icon_state = "jaunt"
action_background_icon_state = "bg_demon"
/obj/effect/proc_holder/spell/targeted/infernal_jaunt/cast(list/targets, mob/living/user = usr)
if(istype(user))
if(istype(user.loc, /obj/effect/dummy/slaughter))
var/continuing = 0
if(istype(get_area(user), /area/shuttle)) // Can always phase in in a shuttle.
continuing = TRUE
else
for(var/mob/living/C in orange(2, get_turf(user.loc))) //Can also phase in when nearby a potential buyer.
if (C.mind && C.mind.soulOwner == C.mind)
continuing = TRUE
break
if(continuing)
to_chat(user,"<span class='warning'>You are now phasing in.</span>")
if(do_mob(user,user,150))
user.infernalphasein()
else
to_chat(user,"<span class='warning'>You can only re-appear near a potential signer or on a shuttle.</span>")
revert_cast()
return ..()
else
user.notransform = TRUE
user.fakefire()
to_chat(user,"<span class='warning'>You begin to phase back into sinful flames.</span>")
if(do_mob(user,user,150))
user.infernalphaseout()
else
to_chat(user,"<span class='warning'>You must remain still while exiting.</span>")
user.ExtinguishMob()
start_recharge()
return
revert_cast()
/mob/living/proc/infernalphaseout()
dust_animation()
visible_message("<span class='warning'>[src] disappears in a flashfire!</span>")
playsound(get_turf(src), 'sound/misc/enter_blood.ogg', 100, 1, -1)
var/obj/effect/dummy/slaughter/s_holder = new(loc)
ExtinguishMob()
if(buckled)
buckled.unbuckle_mob(src,force=1)
if(has_buckled_mobs())
unbuckle_mob()
if(pulledby)
pulledby.stop_pulling()
if(pulling)
stop_pulling()
forceMove(s_holder)
holder = s_holder
notransform = FALSE
fakefireextinguish()
/mob/living/proc/infernalphasein()
if(notransform)
to_chat(src,"<span class='warning'>You're too busy to jaunt in.</span>")
return 0
fakefire()
forceMove(get_turf(src))
reset_perspective()
visible_message("<span class='warning'><B>[src] appears in a firey blaze!</B></span>")
playsound(get_turf(src), 'sound/misc/exit_blood.ogg', 100, 1, -1)
spawn(15)
fakefireextinguish(TRUE)
/obj/effect/proc_holder/spell/targeted/sintouch
name = "Sin Touch"
desc = "Subtly encourage someone to sin."
charge_max = 1800
clothes_req = FALSE
selection_type = "range"
range = 2
cooldown_min = 0
overlay = null
include_user = FALSE
action_icon_state = "sintouch"
action_background_icon_state = "bg_demon"
random_target = TRUE
random_target_priority = TARGET_RANDOM
max_targets = 3
invocation = "TASTE SIN AND INDULGE!!"
invocation_type = "shout"
/obj/effect/proc_holder/spell/targeted/sintouch/ascended
name = "Greater sin touch"
charge_max = 100
range = 7
max_targets = 10
/obj/effect/proc_holder/spell/targeted/sintouch/cast(list/targets, mob/living/user = usr)
for(var/mob/living/carbon/human/H in targets)
if(!H.mind)
continue
for(var/datum/objective/sintouched/A in H.mind.objectives)
continue
H.influenceSin()
H.Weaken(2)
H.Stun(2)
/obj/effect/proc_holder/spell/targeted/summon_dancefloor
name = "Summon Dancefloor"
desc = "When what a Devil really needs is funk."
include_user = TRUE
range = -1
clothes_req = FALSE
school = "conjuration"
charge_max = 10
cooldown_min = 50 //5 seconds, so the smoke can't be spammed
action_icon_state = "funk"
action_background_icon_state = "bg_demon"
var/list/dancefloor_turfs
var/list/dancefloor_turfs_types
var/dancefloor_exists = FALSE
// var/datum/effect_system/smoke_spread/transparent/dancefloor_devil/smoke
/obj/effect/proc_holder/spell/targeted/summon_dancefloor/cast(list/targets, mob/user = usr)
LAZYINITLIST(dancefloor_turfs)
LAZYINITLIST(dancefloor_turfs_types)
/*
if(!smoke)
smoke = new()
smoke.set_up(0, get_turf(user))
smoke.start()
*/
if(dancefloor_exists)
dancefloor_exists = FALSE
for(var/i in 1 to dancefloor_turfs.len)
var/turf/T = dancefloor_turfs[i]
T.ChangeTurf(dancefloor_turfs_types[i])
else
var/list/funky_turfs = RANGE_TURFS(1, user)
for(var/turf/T in funky_turfs)
if(T.density)
to_chat(user, "<span class='warning'>You're too close to a wall.</span>")
return
dancefloor_exists = TRUE
var/i = 1
dancefloor_turfs.len = funky_turfs.len
dancefloor_turfs_types.len = funky_turfs.len
for(var/t in funky_turfs)
var/turf/T = t
dancefloor_turfs[i] = T
dancefloor_turfs_types[i] = T.type
T.ChangeTurf((i % 2 == 0) ? /turf/simulated/floor/light/colour_cycle/dancefloor_a : /turf/simulated/floor/light/colour_cycle/dancefloor_b)
i++
/*
/datum/effect_system/smoke_spread/transparent/dancefloor_devil
effect_type = /obj/effect/particle_effect/smoke/transparent/dancefloor_devil
/obj/effect/particle_effect/smoke/transparent/dancefloor_devil
lifetime = 2
*/
+73
View File
@@ -0,0 +1,73 @@
/obj/effect/proc_holder/spell/targeted/summon_wealth
name = "Summon wealth"
desc = "The reward for selling your soul."
invocation_type = "none"
include_user = 1
range = -1
clothes_req = 0
school = "conjuration"
charge_max = 100
cooldown_min = 10
action_icon_state = "moneybag"
/obj/effect/proc_holder/spell/targeted/summon_wealth/cast(list/targets, mob/user = usr)
for(var/mob/living/carbon/C in targets)
if(user.drop_item())
var/obj/item = pick(
new /obj/item/coin/gold(user.loc),
new /obj/item/coin/diamond(user.loc),
new /obj/item/coin/silver(user.loc),
new /obj/item/stack/sheet/mineral/gold(user.loc),
new /obj/item/stack/sheet/mineral/silver(user.loc),
new /obj/item/stack/sheet/mineral/diamond(user.loc),
new /obj/item/stack/spacecash/c1000(user.loc))
C.put_in_hands(item)
/obj/effect/proc_holder/spell/targeted/view_range
name = "Distant vision"
desc = "The reward for selling your soul."
invocation_type = "none"
include_user = 1
range = -1
clothes_req = 0
charge_max = 50
cooldown_min = 10
action_icon_state = "camera_jump"
var/ranges = list(7,8,9,10/*,11,12*/)
/obj/effect/proc_holder/spell/targeted/view_range/cast(list/targets, mob/user = usr)
for(var/mob/C in targets)
if(!C.client)
continue
C.client.view = input("Select view range:", "Range", 4) in ranges
/obj/effect/proc_holder/spell/targeted/summon_friend
name = "Summon Friend"
desc = "The reward for selling your soul."
invocation_type = "none"
include_user = 1
range = -1
clothes_req = 0
charge_max = 50
cooldown_min = 10
action_icon_state = "sacredflame"
var/mob/living/friend
var/obj/effect/mob_spawn/human/demonic_friend/friendShell
/obj/effect/proc_holder/spell/targeted/summon_friend/cast(list/targets, mob/user = usr)
if(!QDELETED(friend))
to_chat(friend, "<span class='userdanger'>Your master has deemed you a poor friend. Your durance in hell will now resume.</span>")
to_chat(user, "<span class='notice'>You banish your friend back to whence [friend.p_they()] came.</span>")
friend.dust()
qdel(friendShell)
return
if(!QDELETED(friendShell))
qdel(friendShell)
return
for(var/C in targets)
var/mob/living/L = C
friendShell = new /obj/effect/mob_spawn/human/demonic_friend(L.loc, L.mind, src)
/obj/effect/proc_holder/spell/targeted/conjure_item/spellpacket/robeless
clothes_req = FALSE
+2 -7
View File
@@ -12,7 +12,7 @@
var/proj_trail_icon = 'icons/obj/wizard.dmi'
var/proj_trail_icon_state = "trail"
var/proj_type = "/obj/effect/proc_holder/spell" //IMPORTANT use only subtypes of this
var/proj_type = /obj/effect/proc_holder/spell //IMPORTANT use only subtypes of this
var/proj_insubstantial = 0 //if it can pass through dense objects or not
var/proj_trigger_range = 1 //the range from target at which the projectile triggers cast(target)
@@ -35,12 +35,7 @@
for(var/turf/target in targets)
spawn(0)
var/obj/effect/proc_holder/spell/targeted/projectile
if(istext(proj_type))
var/projectile_type = text2path(proj_type)
projectile = new projectile_type(user)
if(istype(proj_type,/obj/effect/proc_holder/spell))
projectile = new /obj/effect/proc_holder/spell/targeted/trigger(user)
projectile:linked_spells += proj_type
projectile = new proj_type(user)
projectile.icon = proj_icon
projectile.icon_state = proj_icon_state
projectile.dir = get_dir(projectile, target)
+1
View File
@@ -79,6 +79,7 @@
action_icon_state = "mime"
action_background_icon_state = "bg_mime"
large = TRUE
/obj/effect/proc_holder/spell/targeted/forcewall/mime/Click()
if(usr && usr.mind)
+12 -12
View File
@@ -77,9 +77,9 @@
invocation = "RAAAAAAAAWR!"
shapeshift_type = /mob/living/simple_animal/hostile/megafauna/dragon/lesser
list/current_shapes = list(/mob/living/simple_animal/hostile/megafauna/dragon/lesser)
list/current_casters = list()
list/possible_shapes = list(/mob/living/simple_animal/hostile/megafauna/dragon/lesser)
current_shapes = list(/mob/living/simple_animal/hostile/megafauna/dragon/lesser)
current_casters = list()
possible_shapes = list(/mob/living/simple_animal/hostile/megafauna/dragon/lesser)
/obj/effect/proc_holder/spell/targeted/shapeshift/bats
name = "Bat Form"
@@ -89,9 +89,9 @@
action_icon_state = "vampire_bats"
shapeshift_type = /mob/living/simple_animal/hostile/scarybat/batswarm
list/current_shapes = list(/mob/living/simple_animal/hostile/scarybat/batswarm)
list/current_casters = list()
list/possible_shapes = list(/mob/living/simple_animal/hostile/scarybat/batswarm)
current_shapes = list(/mob/living/simple_animal/hostile/scarybat/batswarm)
current_casters = list()
possible_shapes = list(/mob/living/simple_animal/hostile/scarybat/batswarm)
/obj/effect/proc_holder/spell/targeted/shapeshift/hellhound
name = "Lesser Hellhound Form"
@@ -102,13 +102,13 @@
action_icon_state = "glare"
shapeshift_type = /mob/living/simple_animal/hostile/hellhound
list/current_shapes = list(/mob/living/simple_animal/hostile/hellhound)
list/current_casters = list()
list/possible_shapes = list(/mob/living/simple_animal/hostile/hellhound)
current_shapes = list(/mob/living/simple_animal/hostile/hellhound)
current_casters = list()
possible_shapes = list(/mob/living/simple_animal/hostile/hellhound)
/obj/effect/proc_holder/spell/targeted/shapeshift/hellhound/greater
name = "Greater Hellhound Form"
shapeshift_type = /mob/living/simple_animal/hostile/hellhound/greater
list/current_shapes = list(/mob/living/simple_animal/hostile/hellhound/greater)
list/current_casters = list()
list/possible_shapes = list(/mob/living/simple_animal/hostile/hellhound/greater)
current_shapes = list(/mob/living/simple_animal/hostile/hellhound/greater)
current_casters = list()
possible_shapes = list(/mob/living/simple_animal/hostile/hellhound/greater)
+22 -30
View File
@@ -185,49 +185,41 @@
sound1 = 'sound/magic/Teleport_diss.ogg'
sound2 = 'sound/magic/Teleport_app.ogg'
/obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall
name = "Forcewall"
desc = "This spell creates an unbreakable wall that lasts for 30 seconds and does not need wizard garb."
school = "transmutation"
charge_max = 100
clothes_req = 0
invocation = "TARCOL MINTI ZHERI"
invocation_type = "whisper"
range = 0
cooldown_min = 50 //12 deciseconds reduction per rank
summon_type = list("/obj/effect/forcefield")
summon_lifespan = 300
action_icon_state = "shield"
cast_sound = 'sound/magic/ForceWall.ogg'
/obj/effect/proc_holder/spell/targeted/forcewall
name = "Greater Forcewall"
desc = "Create a magical barrier that only you can pass through."
name = "Force Wall"
desc = "This spell creates a small unbreakable wall that only you can pass through, and does not need wizard garb. Lasts 30 seconds."
school = "transmutation"
charge_max = 100
clothes_req = FALSE
invocation = "TARCOL MINTI ZHERI"
invocation_type = "shout"
invocation_type = "whisper"
sound = 'sound/magic/ForceWall.ogg'
action_icon_state = "shield"
range = -1
include_user = TRUE
cooldown_min = 50 //12 deciseconds reduction per rank
var/wall_type = /obj/effect/forcefield/wizard
var/large = FALSE
/obj/effect/proc_holder/spell/targeted/forcewall/cast(list/targets,mob/user = usr)
new wall_type(get_turf(user),user)
if(user.dir == SOUTH || user.dir == NORTH)
new wall_type(get_step(user, EAST),user)
new wall_type(get_step(user, WEST),user)
else
new wall_type(get_step(user, NORTH),user)
new wall_type(get_step(user, SOUTH),user)
/obj/effect/proc_holder/spell/targeted/forcewall/cast(list/targets, mob/user = usr)
new wall_type(get_turf(user), user)
if(large) //Extra THICK
if(user.dir == SOUTH || user.dir == NORTH)
new wall_type(get_step(user, EAST), user)
new wall_type(get_step(user, WEST), user)
else
new wall_type(get_step(user, NORTH), user)
new wall_type(get_step(user, SOUTH), user)
/obj/effect/proc_holder/spell/targeted/forcewall/greater
name = "Greater Force Wall"
desc = "Create a larger magical barrier that only you can pass through, but requires wizard garb. Lasts 30 seconds."
clothes_req = TRUE
invocation = "TARCOL GRANDI ZHERI"
invocation_type = "shout"
large = TRUE
/obj/effect/proc_holder/spell/aoe_turf/conjure/timestop
name = "Stop Time"
@@ -451,4 +443,4 @@
L.adjust_fire_stacks(20)
if(isliving(user))
var/mob/living/U = user
U.IgniteMob()
U.IgniteMob()
+25 -8
View File
@@ -92,7 +92,9 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas)
/obj/item/clothing/mask/gas,
/obj/item/grenade/gas/oxygen,
/obj/item/grenade/gas/oxygen)
cost = 35
containertype = /obj/structure/closet/crate/internals
containername = "emergency crate"
@@ -1290,12 +1292,12 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/datum/supply_packs/misc/lasertag
name = "Laser Tag Crate"
contains = list(/obj/item/gun/energy/laser/redtag,
/obj/item/gun/energy/laser/redtag,
/obj/item/gun/energy/laser/redtag,
/obj/item/gun/energy/laser/bluetag,
/obj/item/gun/energy/laser/bluetag,
/obj/item/gun/energy/laser/bluetag,
contains = list(/obj/item/gun/energy/laser/tag/red,
/obj/item/gun/energy/laser/tag/red,
/obj/item/gun/energy/laser/tag/red,
/obj/item/gun/energy/laser/tag/blue,
/obj/item/gun/energy/laser/tag/blue,
/obj/item/gun/energy/laser/tag/blue,
/obj/item/clothing/suit/redtag,
/obj/item/clothing/suit/redtag,
/obj/item/clothing/suit/redtag,
@@ -1314,7 +1316,9 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/obj/item/storage/bible/booze,
/obj/item/storage/bible/booze,
/obj/item/clothing/suit/hooded/chaplain_hoodie,
/obj/item/clothing/suit/hooded/chaplain_hoodie)
/obj/item/clothing/suit/hooded/chaplain_hoodie,
/obj/item/clothing/under/burial,
/obj/item/clothing/under/burial)
cost = 40
containername = "religious supplies crate"
@@ -1341,6 +1345,19 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
cost = 15
containername = "bureaucracy crate"
/datum/supply_packs/misc/book_crate
name = "Research Crate"
contains = list(/obj/item/book/codex_gigas)
cost = 15
containername = "book crate"
/datum/supply_packs/misc/book_crate/New()
contains += pick(subtypesof(/obj/item/book/manual))
contains += pick(subtypesof(/obj/item/book/manual))
contains += pick(subtypesof(/obj/item/book/manual))
contains += pick(subtypesof(/obj/item/book/manual))
..()
/datum/supply_packs/misc/tape
name = "Sticky Tape Crate"
contains = list(/obj/item/stack/tape_roll,
+96 -88
View File
@@ -184,8 +184,8 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
//mime
/datum/uplink_item/jobspecific/caneshotgun
name = "Cane Shotgun + Assassination Darts"
desc = "A specialized, one shell shotgun with a built-in cloaking device to mimic a cane. The shotgun is capable of hiding it's contents and the pin alongside being supressed. Comes with 6 special darts and a preloaded shrapnel round."
name = "Cane Shotgun and Assassination Shells"
desc = "A specialised, one shell shotgun with a built-in cloaking device to mimic a cane. The shotgun is capable of hiding it's contents and the pin alongside being supressed. Comes boxed with 6 specialised shrapnel rounds laced with a silencing toxin and 1 preloaded in the shotgun's chamber."
reference = "MCS"
item = /obj/item/storage/box/syndie_kit/caneshotgun
cost = 10
@@ -202,7 +202,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
//Chef
/datum/uplink_item/jobspecific/specialsauce
name = "Chef Excellence's Special Sauce"
desc = "A custom made sauce made from the toxin glands of 1000 space carp, if somebody ingests enough they'll be dead in 3 minutes or less guaranteed."
desc = "A custom sauce made from the highly poisonous fly amanita mushrooms. Anyone who ingests it will take variable toxin damage depending on how long it has been in their system, with a higher dosage taking longer to metabolize."
reference = "CESS"
item = /obj/item/reagent_containers/food/condiment/syndisauce
cost = 2
@@ -531,14 +531,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/batterer
cost = 5
/datum/uplink_item/ammo/bioterror
name = "Box of Bioterror Syringes"
desc = "A box full of preloaded syringes, containing various chemicals that seize up the victim's motor and broca system , making it impossible for them to move or speak while in their system."
reference = "BTS"
item = /obj/item/storage/box/syndie_kit/bioterror
cost = 5
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/dangerous/gygax
name = "Gygax Exosuit"
desc = "A lightweight exosuit, painted in a dark scheme. Its speed and equipment selection make it excellent for hit-and-run style attacks. \
@@ -560,7 +552,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
/datum/uplink_item/dangerous/syndieborg
name = "Syndicate Cyborg"
desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel."
desc = "A cyborg designed and programmed for systematic extermination of non-Syndicate personnel. Comes in Assault, Medical, or Saboteur variants."
reference = "SC"
item = /obj/item/antag_spawner/borg_tele
refund_path = /obj/item/antag_spawner/borg_tele
@@ -588,15 +580,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
gamemodes = list(/datum/game_mode/nuclear)
surplus = 0
/datum/uplink_item/ammo/toydarts
name = "Box of Riot Darts"
desc = "A box of 40 Donksoft foam riot darts, for reloading any compatible foam dart gun. Don't forget to share!"
reference = "FOAM"
item = /obj/item/ammo_box/foambox/riot
cost = 2
gamemodes = list(/datum/game_mode/nuclear)
surplus = 0
/datum/uplink_item/dangerous/guardian
name = "Holoparasites"
desc = "Though capable of near sorcerous feats via use of hardlight holograms and nanomachines, they require an organic host as a home base and source of fuel. \
@@ -615,50 +598,35 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
surplus = 40
/datum/uplink_item/ammo/pistol
name = "Magazine - 10mm"
name = "Stechkin - 10mm Magazine"
desc = "An additional 8-round 10mm magazine for use in the syndicate pistol, loaded with rounds that are cheap but around half as effective as .357"
reference = "10MM"
item = /obj/item/ammo_box/magazine/m10mm
cost = 1
/datum/uplink_item/ammo/pistolap
name = "Magazine - 10mm Armour Piercing"
name = "Stechkin - 10mm Armour Piercing Magazine"
desc = "An additional 8-round 10mm magazine for use in the syndicate pistol, loaded with rounds that are less effective at injuring the target but penetrate protective gear."
reference = "10MMAP"
item = /obj/item/ammo_box/magazine/m10mm/ap
cost = 2
/datum/uplink_item/ammo/pistolfire
name = "Magazine - 10mm Incendiary"
name = "Stechkin - 10mm Incendiary Magazine"
desc = "An additional 8-round 10mm magazine for use in the syndicate pistol, loaded with incendiary rounds which ignite the target."
reference = "10MMFIRE"
item = /obj/item/ammo_box/magazine/m10mm/fire
cost = 2
/datum/uplink_item/ammo/pistolhp
name = "Magazine - 10mm Hollow Point"
name = "Stechkin - 10mm Hollow Point Magazine"
desc = "An additional 8-round 10mm magazine for use in the syndicate pistol, loaded with rounds which are more damaging but ineffective against armour."
reference = "10MMHP"
item = /obj/item/ammo_box/magazine/m10mm/hp
cost = 3
/datum/uplink_item/ammo/revolver
name = "Speed Loader - .357"
desc = "A speed loader that contains seven additional .357 Magnum rounds for the syndicate revolver. For when you really need a lot of things dead."
reference = "357"
item = /obj/item/ammo_box/a357
cost = 3
/datum/uplink_item/ammo/smg
name = "Magazine - .45"
desc = "An additional 20-round .45 magazine for use in the C-20r submachine gun. These bullets pack a lot of punch that can knock most targets down, but do limited overall damage."
reference = "45"
item = /obj/item/ammo_box/magazine/smgm45
cost = 2
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/ammobag
name = "Ammo Duffelbag - Shotgun Ammo Grab Bag"
name = "Bulldog - Shotgun Ammo Grab Bag"
desc = "A duffelbag filled with Bulldog ammo to kit out an entire team, at a discounted price."
reference = "SAGL"
item = /obj/item/storage/backpack/duffel/syndie/ammo/loaded
@@ -666,7 +634,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/bullslug
name = "Drum Magazine - 12g Slugs"
name = "Bulldog - 12g Slug Magazine"
desc = "An additional 8-round slug magazine for use in the Bulldog shotgun. Now 8 times less likely to shoot your pals."
reference = "12BSG"
item = /obj/item/ammo_box/magazine/m12g
@@ -674,7 +642,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/bullbuck
name = "Drum Magazine - 12g buckshot"
name = "Bulldog - 12g Buckshot Magazine"
desc = "An additional 8-round buckshot magazine for use in the Bulldog shotgun. Front towards enemy."
reference = "12BS"
item = /obj/item/ammo_box/magazine/m12g/buckshot
@@ -682,7 +650,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/bullstun
name = "Drum Magazine - 12g Stun Slug"
name = "Bulldog - 12g Stun Slug Magazine"
desc = "An alternative 8-round stun slug magazine for use in the Bulldog shotgun. Saying that they're completely non-lethal would be lying."
reference = "12SS"
item = /obj/item/ammo_box/magazine/m12g/stun
@@ -690,15 +658,23 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/bulldragon
name = "Drum Magazine - 12g Dragon's Breath"
name = "Bulldog - 12g Dragon's Breath Magazine"
desc = "An alternative 8-round dragon's breath magazine for use in the Bulldog shotgun. I'm a fire starter, twisted fire starter!"
reference = "12DB"
item = /obj/item/ammo_box/magazine/m12g/dragon
cost = 2
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/smg
name = "C-20r - .45 Magazine"
desc = "An additional 20-round .45 magazine for use in the C-20r submachine gun. These bullets pack a lot of punch that can knock most targets down, but do limited overall damage."
reference = "45"
item = /obj/item/ammo_box/magazine/smgm45
cost = 2
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/carbine
name = "Toploader Magazine - 5.56"
name = "Carbine - 5.56 Toploader Magazine"
desc = "An additional 30-round 5.56 magazine for use in the M-90gl carbine. These bullets don't have the punch to knock most targets down, but dish out higher overall damage."
reference = "556"
item = /obj/item/ammo_box/magazine/m556
@@ -706,7 +682,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/a40mm
name = "Ammo Box - 40mm grenades"
name = "Carbine - 40mm Grenade Ammo Box"
desc = "A box of 4 additional 40mm HE grenades for use the C-90gl's underbarrel grenade launcher. Your teammates will thank you to not shoot these down small hallways."
reference = "40MM"
item = /obj/item/ammo_box/a40mm
@@ -714,7 +690,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/machinegun
name = "Box Magazine - 5.56x45mm"
name = "L6 SAW - 5.56x45mm Box Magazine"
desc = "A 50-round magazine of 5.56x45mm ammunition for use in the L6 SAW machine gun. By the time you need to use this, you'll already be on a pile of corpses."
reference = "762"
item = /obj/item/ammo_box/magazine/mm556x45
@@ -727,33 +703,57 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/sniper/basic
name = ".50 Magazine"
name = "Sniper - .50 Magazine"
desc = "An additional standard 6-round magazine for use with .50 sniper rifles."
reference = "50M"
item = /obj/item/ammo_box/magazine/sniper_rounds
/datum/uplink_item/ammo/sniper/soporific
name = ".50 Soporific Magazine"
name = "Sniper - .50 Soporific Magazine"
desc = "A 3-round magazine of soporific ammo designed for use with .50 sniper rifles. Put your enemies to sleep today!"
reference = "50S"
item = /obj/item/ammo_box/magazine/sniper_rounds/soporific
cost = 3
/datum/uplink_item/ammo/sniper/haemorrhage
name = ".50 Haemorrhage Magazine"
name = "Sniper - .50 Haemorrhage Magazine"
desc = "A 5-round magazine of haemorrhage ammo designed for use with .50 sniper rifles; causes heavy bleeding \
in the target."
reference = "50B"
item = /obj/item/ammo_box/magazine/sniper_rounds/haemorrhage
/datum/uplink_item/ammo/sniper/penetrator
name = ".50 Penetrator Magazine"
name = "Sniper - .50 Penetrator Magazine"
desc = "A 5-round magazine of penetrator ammo designed for use with .50 sniper rifles. \
Can pierce walls and multiple enemies."
reference = "50P"
item = /obj/item/ammo_box/magazine/sniper_rounds/penetrator
cost = 5
/datum/uplink_item/ammo/bioterror
name = "Box of Bioterror Syringes"
desc = "A box full of preloaded syringes, containing various chemicals that seize up the victim's motor and broca system , making it impossible for them to move or speak while in their system."
reference = "BTS"
item = /obj/item/storage/box/syndie_kit/bioterror
cost = 5
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/ammo/toydarts
name = "Box of Riot Darts"
desc = "A box of 40 Donksoft foam riot darts, for reloading any compatible foam dart gun. Don't forget to share!"
reference = "FOAM"
item = /obj/item/ammo_box/foambox/riot
cost = 2
gamemodes = list(/datum/game_mode/nuclear)
surplus = 0
/datum/uplink_item/ammo/revolver
name = ".357 Revolver - Speedloader"
desc = "A speed loader that contains seven additional .357 Magnum rounds for the syndicate revolver. For when you really need a lot of things dead."
reference = "357"
item = /obj/item/ammo_box/a357
cost = 3
// STEALTHY WEAPONS
/datum/uplink_item/stealthy_weapons
@@ -857,13 +857,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/toy/carpplushie/dehy_carp
cost = 3
/datum/uplink_item/stealthy_weapons/chamsechud
name = "Chameleon Security HUD"
desc = "A stolen Nanotrasen Security HUD with Syndicate chameleon technology implemented into it. Similarly to a chameleon jumpsuit, the HUD can be morphed into various other eyewear, while retaining the HUD qualities when worn."
reference = "CHHUD"
item = /obj/item/clothing/glasses/hud/security/chameleon
cost = 2
// GRENADES AND EXPLOSIVES
/datum/uplink_item/explosives
@@ -914,13 +907,6 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 5
surplus = 8
/datum/uplink_item/explosives/chameleonflag
name = "Chameleon Flag"
desc = "A flag that can be disguised as any other known flag. There is a heat sensitive bomb loaded into the pole that will be detonated if the flag is lit on fire."
reference = "CHFLAG"
item = /obj/item/flag/chameleon
cost = 7
/datum/uplink_item/explosives/grenadier
name = "Grenadier's belt"
desc = "A belt containing 25 lethally dangerous and destructive grenades."
@@ -957,7 +943,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
/datum/uplink_item/explosives/emp
name = "EMP Grenades and Implanter Kit"
desc = "A box that contains two EMP grenades and an EMP implant. Useful to disrupt communication, \
desc = "A box that contains two EMP grenades and an EMP implant with 2 uses. Useful to disrupt communication, \
security's energy weapons, and silicon lifeforms when you're in a tight spot."
reference = "EMPK"
item = /obj/item/storage/box/syndie_kit/emp
@@ -984,6 +970,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
cost = 1
surplus = 35
/datum/uplink_item/stealthy_tools/chameleonflag
name = "Chameleon Flag"
desc = "A flag that can be disguised as any other known flag. There is a hidden spot in the pole to boobytrap the flag with a grenade or minibomb, which will detonate some time after the flag is set on fire."
reference = "CHFLAG"
item = /obj/item/flag/chameleon
cost = 1
surplus = 35
/datum/uplink_item/stealthy_tools/syndigaloshes
name = "No-Slip Syndicate Shoes"
desc = "These allow you to run on wet floors. They do not work on lubricated surfaces."
@@ -1000,6 +994,28 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
gamemodes = list(/datum/game_mode/nuclear)
excludefrom = list()
/datum/uplink_item/stealthy_tools/chamsechud
name = "Chameleon Security HUD"
desc = "A stolen Nanotrasen Security HUD with Syndicate chameleon technology implemented into it. Similarly to a chameleon jumpsuit, the HUD can be morphed into various other eyewear, while retaining the HUD qualities when worn."
reference = "CHHUD"
item = /obj/item/clothing/glasses/hud/security/chameleon
cost = 2
/datum/uplink_item/stealthy_tools/thermal
name = "Thermal Imaging Glasses"
desc = "These glasses are thermals disguised as engineers' optical meson scanners. They allow you to see organisms through walls by capturing the upper portion of the infra-red light spectrum, emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks."
reference = "THIG"
item = /obj/item/clothing/glasses/thermal/syndi
cost = 6
/datum/uplink_item/stealthy_tools/traitor_belt
name = "Traitor's Toolbelt"
desc = "A robust seven-slot belt made for carrying a broad variety of weapons, ammunition and explosives. It's modelled after the standard NT toolbelt so as to avoid suspicion while wearing it."
reference = "SBM"
item = /obj/item/storage/belt/military/traitor
cost = 2
excludefrom = list(/datum/game_mode/nuclear)
/datum/uplink_item/stealthy_tools/frame
name = "F.R.A.M.E. PDA Cartridge"
desc = "When inserted into a personal digital assistant, this cartridge gives you five PDA viruses which \
@@ -1127,15 +1143,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
desc = "Stolen prototype bone repair nanites. Contains one nanocalcium autoinjector and guide."
reference = "NCAI"
item = /obj/item/storage/box/syndie_kit/bonerepair
cost = 6
/datum/uplink_item/device_tools/traitor_belt
name = "Traitor's Toolbelt"
desc = "A robust seven-slot belt made for carrying a broad variety of weapons, ammunition and explosives. It's modelled after the standard NT toolbelt so as to avoid suspicion while wearing it."
reference = "SBM"
item = /obj/item/storage/belt/military/traitor
cost = 2
excludefrom = list(/datum/game_mode/nuclear)
cost = 4
/datum/uplink_item/device_tools/thermal_drill
name = "Thermal Safe Drill"
@@ -1206,17 +1214,9 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
excludefrom = list()
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/device_tools/thermal
name = "Thermal Imaging Glasses"
desc = "These glasses are thermals disguised as engineers' optical meson scanners. They allow you to see organisms through walls by capturing the upper portion of the infra-red light spectrum, emitted as heat and light by objects. Hotter objects, such as warm bodies, cybernetic organisms and artificial intelligence cores emit more of this light than cooler objects like walls and airlocks."
reference = "THIG"
item = /obj/item/clothing/glasses/thermal/syndi
cost = 6
/datum/uplink_item/device_tools/binary
name = "Binary Translator Key"
desc = "A key, that when inserted into a radio headset, allows you to listen to and talk with artificial intelligences and cybernetic organisms in binary."
desc = "A key, that when inserted into a radio headset, allows you to listen to and talk with artificial intelligences and cybernetic organisms in binary. To talk on the binary channel, type :+ before your radio message."
reference = "BITK"
item = /obj/item/encryptionkey/binary
cost = 5
@@ -1328,6 +1328,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
item = /obj/item/stack/telecrystal/twenty
cost = 20
/datum/uplink_item/device_tools/telecrystal/fifty
name = "50 Raw Telecrystals"
desc = "Fifty telecrystals in their rawest and purest form. You know you want that Mauler."
reference = "RTCB"
item = /obj/item/stack/telecrystal/fifty
cost = 50
gamemodes = list(/datum/game_mode/nuclear)
/datum/uplink_item/device_tools/jammer
name = "Radio Jammer"
desc = "This device will disrupt any nearby outgoing radio communication when activated."
@@ -1378,14 +1386,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
/datum/uplink_item/implants/freedom
name = "Freedom Implant"
desc = "An implant injected into the body and later activated using a bodily gesture to attempt to slip restraints."
desc = "An implant injected into the body and later activated manually to break out of any restraints. Can be activated up to 4 times."
reference = "FI"
item = /obj/item/implanter/freedom
cost = 5
/datum/uplink_item/implants/uplink
name = "Uplink Implant"
desc = "An implant injected into the body, and later activated using a bodily gesture to open an uplink with 10 telecrystals. The ability for an agent to open an uplink after their possessions have been stripped from them makes this implant excellent for escaping confinement."
desc = "An implant injected into the body, and later activated manually to open an uplink with 10 telecrystals. The ability for an agent to open an uplink after their possessions have been stripped from them makes this implant excellent for escaping confinement."
reference = "UI"
item = /obj/item/implanter/uplink
cost = 14
@@ -1408,7 +1416,7 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item))
/datum/uplink_item/implants/adrenal
name = "Adrenal Implant"
desc = "An implant injected into the body, and later activated using a bodily gesture to inject a chemical cocktail, which has a mild healing effect along with removing all stuns and increasing his speed."
desc = "An implant injected into the body, and later activated manually to inject a chemical cocktail, which has a mild healing effect along with removing and reducing the time of all stuns and increasing movement speed. Can be activated up to 3 times."
reference = "AI"
item = /obj/item/implanter/adrenalin
cost = 8
+69
View File
@@ -0,0 +1,69 @@
/datum/wires/suitstorage
holder_type = /obj/machinery/suit_storage_unit
wire_count = 8
var/const/SSU_WIRE_ID = 1
var/const/SSU_WIRE_SHOCK = 2
var/const/SSU_WIRE_SAFETY = 4
var/const/SSU_WIRE_UV = 8
/datum/wires/suitstorage/GetWireName(index)
switch(index)
if(SSU_WIRE_ID)
return "ID lock"
if(SSU_WIRE_SHOCK)
return "Shock wire"
if(SSU_WIRE_SAFETY)
return "Safety wire"
if(SSU_WIRE_UV)
return "UV wire"
/datum/wires/suitstorage/get_status()
. = ..()
var/obj/machinery/suit_storage_unit/A = holder
. += "The blue light is [A.secure ? "on" : "off"]."
. += "The red light is [A.safeties ? "off" : "blinking"]."
. += "The green light is [A.shocked ? "on" : "off"]."
. += "The UV display shows [A.uv_super ? "15 nm" : "185 nm"]."
datum/wires/suitstorage/CanUse()
var/obj/machinery/suit_storage_unit/A = holder
if(A.panel_open)
return 1
return 0
/datum/wires/suitstorage/UpdateCut(index, mended)
var/obj/machinery/suit_storage_unit/A = holder
switch(index)
if(SSU_WIRE_ID)
A.secure = mended
if(SSU_WIRE_SAFETY)
A.safeties = mended
if(SSU_WIRE_SHOCK)
A.shocked = !mended
A.shock(usr, 50)
if(SSU_WIRE_UV)
A.uv_super = !mended
..()
datum/wires/suitstorage/UpdatePulsed(index)
var/obj/machinery/suit_storage_unit/A = holder
if(IsIndexCut(index))
return
switch(index)
if(SSU_WIRE_ID)
A.secure = !A.secure
if(SSU_WIRE_SAFETY)
A.safeties = !A.safeties
if(SSU_WIRE_SHOCK)
A.shocked = !A.shocked
if(A.shocked)
A.shock(usr, 100)
spawn(50)
if(A && !IsIndexCut(index))
A.shocked = FALSE
if(SSU_WIRE_UV)
A.uv_super = !A.uv_super
..()
+1 -1
View File
@@ -20,7 +20,7 @@
name = "dynamic area source"
/area/dynamic/source/lobby_bar
name = "\improper Bar"
name = "\improper Bar Lounge"
match_tag = "arrivals"
match_width = 5
match_height = 4
+37 -25
View File
@@ -1175,6 +1175,14 @@ var/list/ghostteleportlocs = list()
name = "\improper Fitness Room"
icon_state = "fitness"
/area/crew_quarters/dorms
name = "\improper Dorms"
icon_state = "dorms"
/area/crew_quarters/arcade
name = "\improper Arcade"
icon_state = "arcade"
/area/crew_quarters/cafeteria
name = "\improper Cafeteria"
icon_state = "cafeteria"
@@ -1226,15 +1234,15 @@ var/list/ghostteleportlocs = list()
/area/magistrateoffice
name = "\improper Magistrate's Office"
icon_state = "law"
icon_state = "magistrate"
/area/clownoffice
name = "\improper Clown's Office"
icon_state = "dk_yellow"
icon_state = "clown_office"
/area/mimeoffice
name = "\improper Mime's Office"
icon_state = "dk_yellow"
icon_state = "mime_office"
/area/civilian/barber
name = "\improper Barber Shop"
@@ -1246,7 +1254,7 @@ var/list/ghostteleportlocs = list()
/area/civilian/pet_store
name = "\improper Pet Store"
icon_state = "Theatre"
icon_state = "pet_store"
/area/holodeck
name = "\improper Holodeck"
@@ -1399,29 +1407,29 @@ var/list/ghostteleportlocs = list()
dynamic_lighting = 0
valid_territory = FALSE
auxport
name = "\improper Fore Port Solar Array"
icon_state = "panelsA"
/area/solar/auxport
name = "\improper Fore Port Solar Array"
icon_state = "panelsA"
auxstarboard
name = "\improper Fore Starboard Solar Array"
icon_state = "panelsA"
/area/solar/auxstarboard
name = "\improper Fore Starboard Solar Array"
icon_state = "panelsA"
fore
name = "\improper Fore Solar Array"
icon_state = "yellow"
/area/solar/fore
name = "\improper Fore Solar Array"
icon_state = "yellow"
aft
name = "\improper Aft Solar Array"
icon_state = "aft"
/area/solar/aft
name = "\improper Aft Solar Array"
icon_state = "aft"
starboard
name = "\improper Aft Starboard Solar Array"
icon_state = "panelsS"
/area/solar/starboard
name = "\improper Aft Starboard Solar Array"
icon_state = "panelsS"
port
name = "\improper Aft Port Solar Array"
icon_state = "panelsP"
/area/solar/port
name = "\improper Aft Port Solar Array"
icon_state = "panelsP"
/area/maintenance/auxsolarport
name = "\improper Fore Port Solar Maintenance"
@@ -1717,7 +1725,7 @@ var/list/ghostteleportlocs = list()
/area/security/medbay
name = "\improper Security Medbay"
icon_state = "brig"
icon_state = "security_medbay"
/area/security/prisonershuttle
name = "\improper Security Prisoner Shuttle"
@@ -1748,7 +1756,7 @@ var/list/ghostteleportlocs = list()
name = "\improper Head of Security's Office"
icon_state = "sec_hos"
area/security/podbay
/area/security/podbay
name = "\improper Security Podbay"
icon_state = "securitypodbay"
@@ -1840,7 +1848,7 @@ area/security/podbay
name = "\improper Mech Bay"
icon_state = "yellow"
/area/janitor/
/area/janitor
name = "\improper Custodial Closet"
icon_state = "janitor"
@@ -1967,6 +1975,10 @@ area/security/podbay
name = "\improper Test Room"
icon_state = "storage"
/area/storage/office
name = "\improper Office Supplies"
icon_state = "office_supplies"
// ENGIE OUTPOST
/area/engiestation
+1 -3
View File
@@ -33,15 +33,13 @@
. = ..()
areaMaster = get_area(src)
/atom/movable/attempt_init()
/atom/movable/attempt_init(loc, ...)
var/turf/T = get_turf(src)
if(T && SSatoms.initialized != INITIALIZATION_INSSATOMS && space_manager.is_zlevel_dirty(T.z))
space_manager.postpone_init(T.z, src)
return
. = ..()
/atom/movable/Destroy()
if(loc)
loc.handle_atom_del(src)
+1
View File
@@ -100,6 +100,7 @@ var/global/list/bad_blocks[0]
var/real_name // Stores the real name of the person who originally got this dna datum. Used primarily for changelings,
var/datum/species/species = new /datum/species/human //The type of mutant race the player is if applicable (i.e. potato-man)
var/list/default_blocks = list() //list of all blocks toggled at roundstart
// Make a copy of this strand.
// USE THIS WHEN COPYING STUFF OR YOU'LL GET CORRUPTION!
+12
View File
@@ -190,3 +190,15 @@
/datum/dna/gene/disability/comic/New()
block = COMICBLOCK
/datum/dna/gene/disability/wingdings
name = "Alien Voice"
desc = "Garbles the subject's voice into an incomprehensible speech."
activation_message = "<span class='wingdings'>Your vocal cords feel alien.</span>"
deactivation_message = "Your vocal cords no longer feel alien."
instability = -GENE_INSTABILITY_MINOR
mutation = WINGDINGS
/datum/dna/gene/disability/wingdings/New()
block = WINGDINGSBLOCK
@@ -243,6 +243,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon"
var/changeling_speak = 0
var/datum/dna/chosen_dna
var/obj/effect/proc_holder/changeling/sting/chosen_sting
var/regenerating = FALSE
/datum/changeling/New(gender=FEMALE)
..()
@@ -20,7 +20,8 @@
user.med_hud_set_health()
user.handle_hud_icons_health()
user.med_hud_set_status()
user.mind.changeling.regenerating = TRUE
addtimer(CALLBACK(src, .proc/ready_to_regenerate, user), LING_FAKEDEATH_TIME)
feedback_add_details("changeling_powers","FD")
return 1
@@ -55,6 +55,7 @@
user.updatehealth("revive sting")
user.update_blind_effects()
user.update_blurry_effects()
user.mind.changeling.regenerating = FALSE
to_chat(user, "<span class='notice'>We have regenerated.</span>")
@@ -19,10 +19,6 @@
user.changeling_update_languages(changeling.absorbed_languages)
if(user.mind.speech_span == "wingdings") //greys' wingdings isn't stored in DNA
user.mind.speech_span = ""
to_chat(user, "<span class='warning'>Our vocal cords have permanently shifted. We will now speak regularly.</span>")
feedback_add_details("changeling_powers","TR")
return 1
+1 -1
View File
@@ -979,7 +979,7 @@ var/list/teleport_runes = list()
..()
cultist_desc = "manifests a spirit as a servant of [ticker.cultdat.entity_title3]. The invoker must not move from atop the rune, and will take damage for each summoned spirit."
notify_ghosts("Manifest rune created in [get_area(src)].", 'sound/effects/ghost2.ogg', source = src)
notify_ghosts("Manifest rune created in [get_area(src)].", ghost_sound='sound/effects/ghost2.ogg', source = src)
/obj/effect/rune/manifest/can_invoke(mob/living/user)
if(ghosts >= ghost_limit)
@@ -0,0 +1,53 @@
/obj/effect/mob_spawn/human/demonic_friend
name = "Essence of friendship"
desc = "Oh boy! Oh boy! A friend!"
mob_name = "Demonic friend"
icon = 'icons/obj/cardboard_cutout.dmi'
icon_state = "cutout_basic"
outfit = /datum/outfit/demonic_friend
death = FALSE
roundstart = FALSE
random = TRUE
id_job = "SuperFriend"
id_access = "assistant"
var/obj/effect/proc_holder/spell/targeted/summon_friend/spell
var/datum/mind/owner
assignedrole = "SuperFriend"
/obj/effect/mob_spawn/human/demonic_friend/Initialize(mapload, datum/mind/owner_mind, obj/effect/proc_holder/spell/targeted/summon_friend/summoning_spell)
. = ..()
owner = owner_mind
flavour_text = "<span class='big bold'>You have been given a reprieve from your eternity of torment, to be [owner.name]'s friend for [owner.p_their()] short mortal coil.</span><b> Be aware that if you do not live up to [owner.name]'s expectations, [owner.p_they()] can send you back to hell with a single thought. [owner.name]'s death will also return you to hell.</b>"
var/area/A = get_area(src)
if(!mapload && A)
notify_ghosts("\A friendship shell has been completed in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = TRUE)
objectives = "Be [owner.name]'s friend, and keep [owner.name] alive, so you don't get sent back to hell."
spell = summoning_spell
/obj/effect/mob_spawn/human/demonic_friend/special(mob/living/L)
if(!QDELETED(owner.current) && owner.current.stat != DEAD)
L.real_name = "[owner.name]'s best friend"
L.name = L.real_name
soullink(/datum/soullink/oneway/devilfriend, owner.current, L)
spell.friend = L
spell.charge_counter = spell.charge_max
L.mind.hasSoul = FALSE
var/mob/living/carbon/human/H = L
var/obj/item/worn = H.wear_id
var/obj/item/card/id/id = worn.GetID()
id.registered_name = L.real_name
id.update_label()
to_chat(owner.current, "<span class='notice'>Your friend has arrived!</span>")
else
to_chat(L, "<span class='userdanger'>Your owner is already dead! You will soon perish.</span>")
addtimer(CALLBACK(L, /mob.proc/dust), 150) //Give em a few seconds as a mercy.
/datum/outfit/demonic_friend
name = "Demonic Friend"
uniform = /obj/item/clothing/under/assistantformal
shoes = /obj/item/clothing/shoes/laceup
r_pocket = /obj/item/radio/off
back = /obj/item/storage/backpack
implants = list(/obj/item/implant/mindshield) //No revolutionaries, he's MY friend.
id = /obj/item/card/id
@@ -0,0 +1,38 @@
/datum/game_mode/devil/devil_agents
name = "Devil Agents"
config_tag = "devilagents"
required_players = 25
required_enemies = 3
recommended_enemies = 8
traitors_possible = 10 //hard limit on traitors if scaling is turned off
num_modifier = 4
objective_count = 2
var/list/target_list = list()
var/list/late_joining_list = list()
minimum_devils = 3
/datum/game_mode/devil/devil_agents/post_setup()
var/i = 0
for(var/datum/mind/devil in devils)
i++
if(i + 1 > devils.len)
i = 0
target_list[devil] = devils[i + 1]
..()
/datum/game_mode/devil/devil_agents/forge_devil_objectives(datum/mind/devil_mind, quantity)
..(devil_mind, quantity - give_outsell_objective(devil_mind))
/datum/game_mode/devil/devil_agents/proc/give_outsell_objective(datum/mind/devil)
//If you override this method, have it return the number of objectives added.
if(target_list.len && target_list[devil]) // Is a double agent
var/datum/mind/target_mind = target_list[devil]
var/datum/objective/devil/outsell/outsellobjective = new
outsellobjective.owner = devil
outsellobjective.target = target_mind
outsellobjective.update_explanation_text()
devil.objectives += outsellobjective
return 1
return 0
+48
View File
@@ -0,0 +1,48 @@
var/global/list/whiteness = list (
/obj/item/clothing/under/color/white = 2,
/obj/item/clothing/under/rank/bartender = 1,
/obj/item/clothing/under/rank/chef = 1,
/obj/item/clothing/under/rank/chief_engineer = 1,
/obj/item/clothing/under/rank/scientist = 1,
/obj/item/clothing/under/rank/chemist = 1,
/obj/item/clothing/under/rank/chief_medical_officer = 1,
/obj/item/clothing/under/rank/geneticist = 1,
/obj/item/clothing/under/rank/virologist = 1,
/obj/item/clothing/under/rank/nursesuit = 1,
/obj/item/clothing/under/rank/medical = 1,
/obj/item/clothing/under/rank/psych = 1,
/obj/item/clothing/under/rank/orderly = 1,
/obj/item/clothing/under/rank/security/brigphys = 1,
/obj/item/clothing/under/rank/internalaffairs = 1,
/obj/item/clothing/under/rank/ntrep = 1,
/obj/item/clothing/under/det = 1,
/obj/item/clothing/under/wedding/bride_white = 1,
/obj/item/clothing/under/mafia/white = 1,
/obj/item/clothing/under/noble_clothes = 1,
/obj/item/clothing/under/sl_suit = 1,
/obj/item/clothing/under/burial = 1
)
/mob/living/proc/check_devil_bane_multiplier(obj/item/weapon, mob/living/attacker)
switch(mind.devilinfo.bane)
if(BANE_WHITECLOTHES)
if(istype(attacker, /mob/living/carbon/human))
var/mob/living/carbon/human/H = attacker
if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under))
var/obj/item/clothing/under/U = H.w_uniform
if(whiteness[U.type])
src.visible_message("<span class='warning'>[src] seems to have been harmed by the purity of [attacker]'s clothes.</span>", "<span class='notice'>Unsullied white clothing is disrupting your form.</span>")
return whiteness[U.type] + 1
if(BANE_TOOLBOX)
if(istype(weapon,/obj/item/storage/toolbox))
src.visible_message("<span class='warning'>The [weapon] seems unusually robust this time.</span>", "<span class='notice'>The [weapon] is your unmaking!</span>")
return 2.5 // Will take four hits with a normal toolbox.
if(BANE_HARVEST)
if(istype(weapon,/obj/item/reagent_containers/food/snacks/grown/) || istype(weapon,/obj/item/grown))
src.visible_message("<span class='warning'>The spirits of the harvest aid in the exorcism.</span>", "<span class='notice'>The harvest spirits are harming you.</span>")
src.Weaken(2)
qdel(weapon)
return 2
return 1
@@ -0,0 +1,67 @@
/datum/game_mode/devil
name = "devil"
config_tag = "devil"
protected_jobs = list("Security Officer", "Warden", "Detective", "Nanotrasen Representative", "Security Pod Pilot", "Magistrate",
"Internal Affairs Agent", "Librarian", "Chaplain", "Head of Security", "Captain", "Brig Physician",
"Nanotrasen Navy Officer", "Special Operations Officer", "AI", "Cyborg")
required_players = 2
required_enemies = 1
recommended_enemies = 4
var/traitors_possible = 4 //hard limit on devils if scaling is turned off
var/num_modifier = 0 // Used for gamemodes, that are a child of traitor, that need more than the usual.
var/objective_count = 2
var/minimum_devils = 1
var/devil_scale_coefficient = 10
/datum/game_mode/devil/announce()
to_chat(world, {"<B>The current game mode is - Devil!</B><br>)
<span class='danger'>Devils</span>: Purchase souls and tempt the crew to sin!<br>
<span class='notice'>Crew</span>: Resist the lure of sin and remain pure!"})
/datum/game_mode/devil/pre_setup()
if(config.protect_roles_from_antagonist)
restricted_jobs += protected_jobs
var/list/possible_devils = get_players_for_role(ROLE_DEVIL)
var/num_devils = 0
if(!possible_devils.len)
return 0
if(config.traitor_scaling)
num_devils = max(1, round((num_players())/(devil_scale_coefficient))+1)
else
num_devils = max(1, min(num_players(), traitors_possible))
for(var/j = 0, j < num_devils, j++)
if (!possible_devils.len)
break
var/datum/mind/devil = pick(possible_devils)
devils += devil
devil.special_role = ROLE_DEVIL
devil.restricted_roles = restricted_jobs
log_game("[devil.key] (ckey) has been selected as a [config_tag]")
possible_devils.Remove(devil)
if(devils.len < required_enemies)
return 0
return 1
/datum/game_mode/devil/post_setup()
for(var/datum/mind/devil in devils)
spawn(rand(10, 100))
finalize_devil(devil, TRUE)
spawn(100)
forge_devil_objectives(devil, objective_count) //This has to be in a separate loop, as we need devil names to be generated before we give objectives in devil agent.
devil.devilinfo.announce_laws(devil.current)
var/obj_count = 1
to_chat(devil.current, "<span class='notice'> Your current objectives:</span>")
for(var/datum/objective/objective in devil.objectives)
to_chat(devil.current, "<B>Objective #[obj_count]</B>: [objective.explanation_text]")
obj_count++
modePlayer += devils
..()
return 1
+559
View File
@@ -0,0 +1,559 @@
#define BLOOD_THRESHOLD 3 //How many souls are needed per stage.
#define TRUE_THRESHOLD 7
#define ARCH_THRESHOLD 12
#define BASIC_DEVIL 0
#define BLOOD_LIZARD 1
#define TRUE_DEVIL 2
#define ARCH_DEVIL 3
#define LOSS_PER_DEATH 2
#define SOULVALUE (soulsOwned.len-reviveNumber)
#define DEVILRESURRECTTIME 600
var/global/list/allDevils = list()
var/global/list/lawlorify = list (
LORE = list(
OBLIGATION_FOOD = "This devil seems to always offer it's victims food before slaughtering them.",
OBLIGATION_FIDDLE = "This devil will never turn down a musical challenge.",
OBLIGATION_DANCEOFF = "This devil will never turn down a dance off.",
OBLIGATION_GREET = "This devil seems to only be able to converse with people it knows the name of.",
OBLIGATION_PRESENCEKNOWN = "This devil seems to be unable to attack from stealth.",
OBLIGATION_SAYNAME = "He will always chant his name upon killing someone.",
OBLIGATION_ANNOUNCEKILL = "This devil always loudly announces his kills for the world to hear.",
OBLIGATION_ANSWERTONAME = "This devil always responds to his truename.",
BANE_SILVER = "Silver seems to gravely injure this devil.",
BANE_SALT = "Throwing salt at this devil will hinder his ability to use infernal powers temporarily.",
BANE_LIGHT = "Bright flashes will disorient the devil, likely causing him to flee.",
BANE_IRON = "Cold iron will slowly injure him, until he can purge it from his system.",
BANE_WHITECLOTHES = "Wearing clean white clothing will help ward off this devil.",
BANE_HARVEST = "Presenting the labors of a harvest will disrupt the devil.",
BANE_TOOLBOX = "That which holds the means of creation also holds the means of the devil's undoing.",
BAN_HURTWOMAN = "This devil seems to prefer hunting men.",
BAN_CHAPEL = "This devil avoids holy ground.",
BAN_HURTPRIEST = "The anointed clergy appear to be immune to his powers.",
BAN_AVOIDWATER = "The devil seems to have some sort of aversion to water, though it does not appear to harm him.",
BAN_STRIKEUNCONCIOUS = "This devil only shows interest in those who are awake.",
BAN_HURTLIZARD = "This devil will not strike an Unathi first.",
BAN_HURTANIMAL = "This devil avoids hurting animals.",
BANISH_WATER = "To banish the devil, you must infuse it's body with holy water.",
BANISH_COFFIN = "This devil will return to life if it's remains are not placed within a coffin.",
BANISH_FORMALDYHIDE = "To banish the devil, you must inject it's lifeless body with embalming fluid.",
BANISH_RUNES = "This devil will resurrect after death, unless it's remains are within a rune.",
BANISH_CANDLES = "A large number of nearby lit candles will prevent it from resurrecting.",
BANISH_DESTRUCTION = "It's corpse must be utterly destroyed to prevent resurrection.",
BANISH_FUNERAL_GARB = "If clad in funeral garments, this devil will be unable to resurrect. Should the clothes not fit, lay them gently on top of the devil's corpse."
),
LAW = list(
OBLIGATION_FOOD = "When not acting in self defense, you must always offer your victim food before harming them.",
OBLIGATION_FIDDLE = "When not in immediate danger, if you are challenged to a musical duel, you must accept it. You are not obligated to duel the same person twice.",
OBLIGATION_DANCEOFF = "When not in immediate danger, if you are challenged to a dance off, you must accept it. You are not obligated to face off with the same person twice.",
OBLIGATION_GREET = "You must always greet other people by their last name before talking with them.",
OBLIGATION_PRESENCEKNOWN = "You must always make your presence known before attacking.",
OBLIGATION_SAYNAME = "You must always say your true name after you kill someone.",
OBLIGATION_ANNOUNCEKILL = "Upon killing someone, you must make your deed known to all within earshot, over comms if reasonably possible.",
OBLIGATION_ANSWERTONAME = "If you are not under attack, you must always respond to your true name.",
BAN_HURTWOMAN = "You must never harm a female outside of self defense.",
BAN_CHAPEL = "You must never attempt to enter the chapel.",
BAN_HURTPRIEST = "You must never attack a priest.",
BAN_AVOIDWATER = "You must never willingly touch a wet surface.",
BAN_STRIKEUNCONCIOUS = "You must never strike an unconscious person.",
BAN_HURTLIZARD = "You must never harm an Unathi outside of self defense.",
BAN_HURTANIMAL = "You must never harm a non-sentient creature or robot outside of self defense.",
BANE_SILVER = "Silver, in all of it's forms shall be your downfall.",
BANE_SALT = "Salt will disrupt your magical abilities.",
BANE_LIGHT = "Blinding lights will prevent you from using offensive powers for a time.",
BANE_IRON = "Cold wrought iron shall act as poison to you.",
BANE_WHITECLOTHES = "Those clad in pristine white garments will strike you true.",
BANE_HARVEST = "The fruits of the harvest shall be your downfall.",
BANE_TOOLBOX = "Toolboxes are bad news for you, for some reason.",
BANISH_WATER = "If your corpse is filled with holy water, you will be unable to resurrect.",
BANISH_COFFIN = "If your corpse is in a coffin, you will be unable to resurrect.",
BANISH_FORMALDYHIDE = "If your corpse is embalmed, you will be unable to resurrect.",
BANISH_RUNES = "If your corpse is placed within a rune, you will be unable to resurrect.",
BANISH_CANDLES = "If your corpse is near lit candles, you will be unable to resurrect.",
BANISH_DESTRUCTION = "If your corpse is destroyed, you will be unable to resurrect.",
BANISH_FUNERAL_GARB = "If your corpse is clad in funeral garments, you will be unable to resurrect."
)
)
/datum/devilinfo
var/datum/mind/owner = null
var/obligation
var/ban
var/bane
var/banish
var/truename
var/list/datum/mind/soulsOwned = new
var/datum/dna/humanform = null
var/reviveNumber = 0
var/form = BASIC_DEVIL
var/exists = 0
var/static/list/dont_remove_spells = list(
/obj/effect/proc_holder/spell/targeted/summon_contract,
/obj/effect/proc_holder/spell/targeted/conjure_item/violin,
/obj/effect/proc_holder/spell/targeted/summon_dancefloor)
var/ascendable = FALSE
/datum/devilinfo/New()
..()
dont_remove_spells = typecacheof(dont_remove_spells)
/proc/randomDevilInfo(name = randomDevilName())
var/datum/devilinfo/devil = new
devil.truename = name
devil.bane = randomdevilbane()
devil.obligation = randomdevilobligation()
devil.ban = randomdevilban()
devil.banish = randomdevilbanish()
return devil
/proc/devilInfo(name, saveDetails = 0)
if(allDevils[lowertext(name)])
return allDevils[lowertext(name)]
else
var/datum/devilinfo/devil = randomDevilInfo(name)
allDevils[lowertext(name)] = devil
devil.exists = saveDetails
return devil
/proc/randomDevilName()
var/preTitle = ""
var/title = ""
var/mainName = ""
var/suffix = ""
if(prob(65))
if(prob(35))
preTitle = pick("Dark ", "Hellish ", "Fiery ", "Sinful ", "Blood ")
title = pick("Lord ", "Fallen Prelate ", "Count ", "Viscount ", "Vizier ", "Elder ", "Adept ")
var/probability = 100
mainName = pick("Hal", "Ve", "Odr", "Neit", "Ci", "Quon", "Mya", "Folth", "Wren", "Gyer", "Geyr", "Hil", "Niet", "Twou", "Hu", "Don")
while(prob(probability))
mainName += pick("hal", "ve", "odr", "neit", "ca", "quon", "mya", "folth", "wren", "gyer", "geyr", "hil", "niet", "twoe", "phi", "coa")
probability -= 20
if(prob(40))
suffix = pick(" the Red", " the Soulless", " the Master", ", the Lord of all things", ", Jr.")
return preTitle + title + mainName + suffix
/proc/randomdevilobligation()
return pick(OBLIGATION_FOOD, OBLIGATION_FIDDLE, OBLIGATION_DANCEOFF, OBLIGATION_GREET, OBLIGATION_PRESENCEKNOWN, OBLIGATION_SAYNAME, OBLIGATION_ANNOUNCEKILL, OBLIGATION_ANSWERTONAME)
/proc/randomdevilban()
return pick(BAN_HURTWOMAN, BAN_CHAPEL, BAN_HURTPRIEST, BAN_AVOIDWATER, BAN_STRIKEUNCONCIOUS, BAN_HURTLIZARD, BAN_HURTANIMAL)
/proc/randomdevilbane()
return pick(BANE_SALT, BANE_LIGHT, BANE_IRON, BANE_WHITECLOTHES, BANE_SILVER, BANE_HARVEST, BANE_TOOLBOX)
/proc/randomdevilbanish()
return pick(BANISH_WATER, BANISH_COFFIN, BANISH_FORMALDYHIDE, BANISH_RUNES, BANISH_CANDLES, BANISH_DESTRUCTION, BANISH_FUNERAL_GARB)
/datum/devilinfo/proc/link_with_mob(mob/living/L)
if(istype(L, /mob/living/carbon/human))
var/mob/living/carbon/human/H = L
humanform = H.dna.Clone()
owner = L.mind
give_base_spells(1)
/datum/devilinfo/proc/add_soul(datum/mind/soul)
if(soulsOwned.Find(soul))
return
soulsOwned += soul
owner.current.nutrition = NUTRITION_LEVEL_FULL
to_chat(owner.current, "<span class='warning'>You feel satiated as you received a new soul.</span>")
update_hud()
switch(SOULVALUE)
if(0)
to_chat(owner.current, "<span class='warning'>Your hellish powers have been restored.</span>")
give_base_spells()
if(BLOOD_THRESHOLD)
to_chat(owner.current, "<span class='warning'>You feel as though your humanoid form is about to shed. You will soon turn into a blood lizard.</span>")
sleep(50)
increase_blood_lizard()
if(TRUE_THRESHOLD)
to_chat(owner.current, "<span class='warning'>You feel as though your current form is about to shed. You will soon turn into a true devil.</span>")
sleep(50)
increase_true_devil()
if(ARCH_THRESHOLD)
arch_devil_prelude()
increase_arch_devil()
/datum/devilinfo/proc/remove_soul(datum/mind/soul)
if(soulsOwned.Remove(soul))
to_chat(owner.current, "<span class='warning'>You feel as though a soul has slipped from your grasp.</span>")
check_regression()
update_hud()
/datum/devilinfo/proc/check_regression()
if(form == ARCH_DEVIL)
return //arch devil can't regress
//Yes, fallthrough behavior is intended, so I can't use a switch statement.
if(form == TRUE_DEVIL && SOULVALUE < TRUE_THRESHOLD)
regress_blood_lizard()
if(form == BLOOD_LIZARD && SOULVALUE < BLOOD_THRESHOLD)
regress_humanoid()
if(SOULVALUE < 0)
remove_spells()
to_chat(owner.current, "<span class='warning'>As punishment for your failures, all of your powers except contract creation have been revoked.</span>")
/datum/devilinfo/proc/regress_humanoid()
to_chat(owner.current, "<span class='warning'>Your powers weaken, have more contracts be signed to regain power.</span>")
if(istype(owner.current, /mob/living/carbon/human))
var/mob/living/carbon/human/H = owner.current
if(humanform)
H.set_species(humanform.species)
H.dna = humanform.Clone()
H.sync_organ_dna(assimilate = 0)
else
H.set_species(/datum/species/human)
// TODO: Add some appearance randomization here or something
humanform = H.dna.Clone()
H.regenerate_icons()
else
owner.current.color = ""
give_base_spells()
if(istype(owner.current.loc, /obj/effect/dummy/slaughter))
owner.current.forceMove(get_turf(owner.current))//Fixes dying while jaunted leaving you permajaunted.
form = BASIC_DEVIL
/datum/devilinfo/proc/regress_blood_lizard()
var/mob/living/carbon/true_devil/D = owner.current
to_chat(D, "<span class='warning'>Your powers weaken, have more contracts be signed to regain power.</span>")
D.oldform.loc = D.loc
owner.transfer_to(D.oldform)
D.oldform.status_flags &= ~GODMODE
give_lizard_spells()
qdel(D)
form = BLOOD_LIZARD
update_hud()
/datum/devilinfo/proc/increase_blood_lizard()
if(ishuman(owner.current))
var/mob/living/carbon/human/H = owner.current
var/list/language_temp = H.languages.Copy()
H.set_species(/datum/species/unathi)
H.languages = language_temp
H.underwear = "Nude"
H.undershirt = "Nude"
H.socks = "Nude"
H.change_skin_color(80, 16, 16) //A deep red
H.regenerate_icons()
else //Did the devil get hit by a staff of transmutation?
owner.current.color = "#501010"
give_lizard_spells()
form = BLOOD_LIZARD
/datum/devilinfo/proc/increase_true_devil()
var/mob/living/carbon/true_devil/A = new /mob/living/carbon/true_devil(owner.current.loc, owner.current)
A.faction |= "hell"
// Put the old body in stasis
owner.current.status_flags |= GODMODE
owner.current.loc = A
A.oldform = owner.current
owner.transfer_to(A)
A.set_name()
give_true_spells()
form = TRUE_DEVIL
update_hud()
/datum/devilinfo/proc/arch_devil_prelude()
if(!ascendable)
return
var/mob/living/carbon/true_devil/D = owner.current
to_chat(D, "<span class='warning'>You feel as though your form is about to ascend.</span>")
sleep(50)
if(!D)
return
D.visible_message("<span class='warning'>[D]'s skin begins to erupt with spikes.</span>", \
"<span class='warning'>Your flesh begins creating a shield around yourself.</span>")
sleep(100)
if(!D)
return
D.visible_message("<span class='warning'>The horns on [D]'s head slowly grow and elongate.</span>", \
"<span class='warning'>Your body continues to mutate. Your telepathic abilities grow.</span>")
sleep(90)
if(!D)
return
D.visible_message("<span class='warning'>[D]'s body begins to violently stretch and contort.</span>", \
"<span class='warning'>You begin to rend apart the final barriers to ultimate power.</span>")
sleep(40)
if(!D)
return
to_chat(D, "<span class='sinister'>Yes!</span>")
sleep(10)
if(!D)
return
to_chat(D, "<span class='big sinister'>YES!!</span>")
sleep(10)
if(!D)
return
to_chat(D, "<span class='reallybig sinister'>YE--</span>")
sleep(1)
if(!D)
return
to_chat(world, "<font size=5><span class='danger'>SLOTH, WRATH, GLUTTONY, ACEDIA, ENVY, GREED, PRIDE! FIRES OF HELL AWAKEN!!</span></font>")
world << 'sound/hallucinations/veryfar_noise.ogg'
sleep(50)
if(!ticker.mode.devil_ascended)
SSshuttle.emergency.request(null, 0.3)
ticker.mode.devil_ascended++
/datum/devilinfo/proc/increase_arch_devil()
if(!ascendable)
return
var/mob/living/carbon/true_devil/D = owner.current
if(!istype(D))
return
give_arch_spells()
D.convert_to_archdevil()
if(istype(D.loc, /obj/effect/dummy/slaughter))
D.forceMove(get_turf(D))
var/area/A = get_area(owner.current)
if(A)
notify_ghosts("An arch devil has ascended in [A.name]. Reach out to the devil to start climbing the infernal corporate ladder.", title = "Arch Devil Ascended", source = owner.current, action = NOTIFY_ATTACK)
form = ARCH_DEVIL
/datum/devilinfo/proc/remove_spells()
for(var/X in owner.spell_list)
var/obj/effect/proc_holder/spell/S = X
if(!is_type_in_typecache(S, dont_remove_spells))
owner.RemoveSpell(S)
/datum/devilinfo/proc/give_summon_contract()
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_contract(null))
/datum/devilinfo/proc/give_base_spells(give_summon_contract = 0)
remove_spells()
owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null))
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork(null))
if(give_summon_contract)
give_summon_contract()
if(obligation == OBLIGATION_FIDDLE)
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/violin(null))
if(obligation == OBLIGATION_DANCEOFF)
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_dancefloor(null))
/datum/devilinfo/proc/give_lizard_spells()
remove_spells()
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork(null))
owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null))
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null))
/datum/devilinfo/proc/give_true_spells()
remove_spells()
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork/greater(null))
owner.AddSpell(new /obj/effect/proc_holder/spell/fireball/hellish(null))
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/infernal_jaunt(null))
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch(null))
/datum/devilinfo/proc/give_arch_spells()
remove_spells()
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/conjure_item/pitchfork/ascended(null))
owner.AddSpell(new /obj/effect/proc_holder/spell/targeted/sintouch/ascended(null))
/datum/devilinfo/proc/beginResurrectionCheck(mob/living/body)
if(owner.current != body)
body = owner.current
if(SOULVALUE > 0)
to_chat(owner.current, "<span class='userdanger'>Your body has been damaged to the point that you may no longer use it. At the cost of some of your power, you will return to life soon.</span>")
addtimer(CALLBACK(src, "activateResurrection", body), DEVILRESURRECTTIME)
else
to_chat(owner.messageable_mob(), "<span class='userdanger'>Your hellish powers are too weak to resurrect yourself.</span>")
/datum/devilinfo/proc/activateResurrection(mob/living/body)
if(QDELETED(body) || body.stat == DEAD)
if(SOULVALUE > 0)
if(check_banishment(body))
to_chat(owner.messageable_mob(), "<span class='userdanger'>Unfortunately, the mortals have finished a ritual that prevents your resurrection.</span>")
return -1
else
to_chat(owner.messageable_mob(), "<span class='userdanger'>WE LIVE AGAIN!</span>")
return hellish_resurrection(body)
else
to_chat(owner.messageable_mob(), "<span class='userdanger'>Unfortunately, the power that stemmed from your contracts has been extinguished. You no longer have enough power to resurrect.</span>")
return -1
else
to_chat(owner.current, "<span class='danger'>You seem to have resurrected without your hellish powers.</span>")
/datum/devilinfo/proc/check_banishment(mob/living/body)
switch(banish)
if(BANISH_WATER)
if(!QDELETED(body) && iscarbon(body))
var/mob/living/carbon/H = body
return H.reagents.has_reagent("holy water")
return 0
if(BANISH_COFFIN)
return (!QDELETED(body) && istype(body.loc, /obj/structure/closet/coffin))
if(BANISH_FORMALDYHIDE)
if(!QDELETED(body) && iscarbon(body))
var/mob/living/carbon/H = body
return H.reagents.has_reagent("formaldehyde")
return 0
if(BANISH_RUNES)
if(!QDELETED(body))
for(var/obj/effect/decal/cleanable/crayon/R in range(0,body))
if (R.name == "rune")
return 1
return 0
if(BANISH_CANDLES)
if(!QDELETED(body))
var/count = 0
for(var/obj/item/candle/C in range(1,body))
count += C.lit
if(count>=4)
return 1
return 0
if(BANISH_DESTRUCTION)
if(!QDELETED(body))
return 0
return 1
if(BANISH_FUNERAL_GARB)
if(!QDELETED(body) && iscarbon(body))
var/mob/living/carbon/human/H = body
if(H.w_uniform && istype(H.w_uniform, /obj/item/clothing/under/burial))
return 1
return 0
else
for(var/obj/item/clothing/under/burial/B in range(0,body))
if(B.loc == get_turf(B)) //Make sure it's not in someone's inventory or something.
return 1
return 0
/datum/devilinfo/proc/hellish_resurrection(mob/living/body)
message_admins("[owner.name] (true name is: [truename]) is resurrecting using hellish energy.</a>")
if(SOULVALUE <= ARCH_THRESHOLD && ascendable) // once ascended, arch devils do not go down in power by any means.
reviveNumber += LOSS_PER_DEATH
update_hud()
if(!QDELETED(body))
body.revive()
if(!body.client)
var/mob/dead/observer/O = owner.get_ghost()
O.reenter_corpse()
if(istype(body.loc, /obj/effect/dummy/slaughter))
body.forceMove(get_turf(body))//Fixes dying while jaunted leaving you permajaunted.
if(istype(body, /mob/living/carbon/true_devil))
var/mob/living/carbon/true_devil/D = body
if(D.oldform)
D.oldform.revive() // Heal the old body too, so the devil doesn't resurrect, then immediately regress into a dead body.
if(body.stat == DEAD) // Not sure why this would happen
create_new_body()
else if(blobstart.len > 0)
// teleport the body so repeated beatdowns aren't an option)
body.forceMove(get_turf(pick(blobstart)))
// give them the devil lawyer outfit in case they got stripped
if(ishuman(body))
var/mob/living/carbon/human/H = body
H.equipOutfit(/datum/outfit/devil_lawyer)
else
create_new_body()
check_regression()
/datum/devilinfo/proc/create_new_body()
if(blobstart.len > 0)
var/turf/targetturf = get_turf(pick(blobstart))
var/mob/currentMob = owner.current
if(QDELETED(currentMob))
currentMob = owner.get_ghost()
if(!currentMob)
message_admins("[owner.name]'s devil resurrection failed due to client logoff. Aborting.")
return -1
if(currentMob.mind != owner)
message_admins("[owner.name]'s devil resurrection failed due to becoming a new mob. Aborting.")
return -1
var/mob/living/carbon/human/H = new /mob/living/carbon/human(targetturf)
owner.transfer_to(H)
if(isobserver(currentMob))
var/mob/dead/observer/O = currentMob
O.reenter_corpse()
if(humanform)
H.set_species(humanform.species)
H.dna = humanform.Clone()
H.dna.UpdateSE()
H.dna.UpdateUI()
H.sync_organ_dna(1) // It's literally a fresh body as you can get, so all organs properly belong to it
H.UpdateAppearance()
else
// gibbed cyborg or similar - create a randomized "humanform" appearance
H.scramble_appearance()
humanform = H.dna.Clone()
H.equipOutfit(/datum/outfit/devil_lawyer)
give_base_spells(TRUE)
if(SOULVALUE >= BLOOD_THRESHOLD)
increase_blood_lizard()
if(SOULVALUE >= TRUE_THRESHOLD) //Yes, BOTH this and the above if statement are to run if soulpower is high enough.
increase_true_devil()
if(SOULVALUE >= ARCH_THRESHOLD && ascendable)
increase_arch_devil()
else
throw EXCEPTION("Unable to find a blobstart landmark for hellish resurrection")
/datum/devilinfo/proc/update_hud()
if(istype(owner.current, /mob/living/carbon))
var/mob/living/C = owner.current
if(C.hud_used && C.hud_used.devilsouldisplay)
C.hud_used.devilsouldisplay.update_counter(SOULVALUE)
// SECTION: Messages and explanations
/datum/devilinfo/proc/announce_laws(mob/living/owner)
to_chat(owner, "<span class='boldwarning'>You remember your link to the infernal. You are [truename], an agent of hell, a devil. And you were sent to the plane of creation for a reason. A greater purpose. Convince the crew to sin, and embroiden Hell's grasp.</span>")
to_chat(owner, "<span class='boldwarning'>However, your infernal form is not without weaknesses.</span>")
to_chat(owner, "You may not use violence to coerce someone into selling their soul.")
to_chat(owner, "You may not directly and knowingly physically harm a devil, other than yourself.")
to_chat(owner,lawlorify[LAW][bane])
to_chat(owner,lawlorify[LAW][ban])
to_chat(owner,lawlorify[LAW][obligation])
to_chat(owner,lawlorify[LAW][banish])
to_chat(owner, "<br/><br/><span class='warning'>Remember, the crew can research your weaknesses if they find out your devil name.</span><br>")
#undef BLOOD_THRESHOLD
#undef TRUE_THRESHOLD
#undef ARCH_THRESHOLD
#undef BASIC_DEVIL
#undef BLOOD_LIZARD
#undef TRUE_DEVIL
#undef ARCH_DEVIL
#undef LOSS_PER_DEATH
#undef SOULVALUE
#undef DEVILRESURRECTTIME
/datum/outfit/devil_lawyer
name = "Devil Lawyer"
uniform = /obj/item/clothing/under/lawyer/black
shoes = /obj/item/clothing/shoes/laceup
back = /obj/item/storage/backpack
l_hand = /obj/item/storage/briefcase
l_pocket = /obj/item/pen
l_ear = /obj/item/radio/headset
id = /obj/item/card/id
/datum/outfit/devil_lawyer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
var/obj/item/card/id/W = H.wear_id
if(!istype(W) || W.assignment) // either doesn't have a card, or the card is already written to
return
var/name_to_use = H.real_name
if(H.mind && H.mind.devilinfo)
// Having hell create an ID for you causes its risks
name_to_use = H.mind.devilinfo.truename
W.name = "[name_to_use]'s ID Card (Lawyer)"
W.registered_name = name_to_use
W.assignment = "Lawyer"
W.rank = W.assignment
W.age = H.age
W.sex = capitalize(H.gender)
W.access = list(access_maint_tunnels, access_syndicate, access_external_airlocks)
W.photo = get_id_photo(H)
+91
View File
@@ -0,0 +1,91 @@
/datum/game_mode
var/list/datum/mind/sintouched = list()
var/list/datum/mind/devils = list()
var/devil_ascended = 0 // Number of arch devils on station
/datum/game_mode/proc/auto_declare_completion_sintouched()
var/text = ""
if(sintouched.len)
text += "<br><span class='big'><b>The sintouched were:</b></span>"
var/list/sintouchedUnique = uniqueList(sintouched)
for(var/S in sintouchedUnique)
var/datum/mind/sintouched_mind = S
text += printplayer(sintouched_mind)
text += printobjectives(sintouched_mind)
text += "<br>"
text += "<br>"
to_chat(world,text)
/datum/game_mode/proc/auto_declare_completion_devils()
/var/text = ""
if(devils.len)
text += "<br><span class='big'><b>The devils were:</b></span>"
for(var/D in devils)
var/datum/mind/devil = D
text += printplayer(devil)
text += printdevilinfo(devil)
text += printobjectives(devil)
text += "<br>"
text += "<br>"
to_chat(world,text)
/datum/game_mode/proc/finalize_devil(datum/mind/devil_mind, ascendable = FALSE)
var/trueName= randomDevilName()
devil_mind.devilinfo = devilInfo(trueName, 1)
devil_mind.devilinfo.ascendable = ascendable
devil_mind.store_memory("Your diabolical true name is [devil_mind.devilinfo.truename]<br>[lawlorify[LAW][devil_mind.devilinfo.ban]]<br>You may not use violence to coerce someone into selling their soul.<br>You may not directly and knowingly physically harm a devil, other than yourself.<br>[lawlorify[LAW][devil_mind.devilinfo.bane]]<br>[lawlorify[LAW][devil_mind.devilinfo.obligation]]<br>[lawlorify[LAW][devil_mind.devilinfo.banish]]<br>")
devil_mind.devilinfo.link_with_mob(devil_mind.current)
if(devil_mind.assigned_role == "Clown")
to_chat(devil_mind.current, "Your infernal nature allows you to wield weapons without harming yourself.")
devil_mind.current.mutations.Remove(CLUMSY)
spawn(10)
devil_mind.devilinfo.update_hud()
if(issilicon(devil_mind.current))
var/mob/living/silicon/S = devil_mind.current
S.laws.set_sixsixsix_law("You may not use violence to coerce someone into selling their soul.")
S.laws.set_sixsixsix_law("You may not directly and knowingly physically harm a devil, other than yourself.")
S.laws.set_sixsixsix_law("[lawlorify[LAW][devil_mind.devilinfo.ban]]")
S.laws.set_sixsixsix_law("[lawlorify[LAW][devil_mind.devilinfo.obligation]]")
S.laws.set_sixsixsix_law("Accomplish your objectives at all costs.")
// unsure about the second "quantity" arg and how it fits with the antag refactor
/datum/game_mode/proc/forge_devil_objectives(datum/mind/devil_mind, quantity)
var/list/validtypes = list(/datum/objective/devil/soulquantity, /datum/objective/devil/soulquality, /datum/objective/devil/sintouch, /datum/objective/devil/buy_target)
for(var/i = 1 to quantity)
var/type = pick(validtypes)
var/datum/objective/devil/objective = new type(null)
objective.owner = devil_mind
devil_mind.objectives += objective
if(!istype(objective, /datum/objective/devil/buy_target))
validtypes -= type //prevent duplicate objectives, EXCEPT for buy_target.
else
objective.find_target()
/datum/game_mode/proc/greet_devil(datum/mind/devil_mind)
if(!devil_mind.devilinfo)
return
devil_mind.devilinfo.announce_laws(devil_mind.current)
devil_mind.announce_objectives()
/datum/game_mode/proc/printdevilinfo(datum/mind/ply)
if(!ply.devilinfo)
return "Target is not a devil."
var/text = "</br>The devil's true name is: [ply.devilinfo.truename]</br>"
text += "The devil's bans were:</br>"
text += " [lawlorify[LORE][ply.devilinfo.ban]]</br>"
text += " [lawlorify[LORE][ply.devilinfo.bane]]</br>"
text += " [lawlorify[LORE][ply.devilinfo.obligation]]</br>"
text += " [lawlorify[LORE][ply.devilinfo.banish]]</br></br>"
return text
/datum/game_mode/proc/update_devil_icons_added(datum/mind/devil_mind)
var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_DEVIL]
hud.join_hud(devil_mind.current)
set_antag_hud(devil_mind.current, "huddevil")
/datum/game_mode/proc/update_devil_icons_removed(datum/mind/devil_mind)
var/datum/atom_hud/antag/hud = huds[ANTAG_HUD_DEVIL]
hud.leave_hud(devil_mind.current)
set_antag_hud(devil_mind.current, null)
+54
View File
@@ -0,0 +1,54 @@
//////////////////The Monster
/mob/living/simple_animal/imp
name = "imp"
real_name = "imp"
desc = "A large, menacing creature covered in armored black scales."
speak_emote = list("cackles")
emote_hear = list("cackles","screeches")
response_help = "thinks better of touching"
response_disarm = "flails at"
response_harm = "punches"
icon = 'icons/mob/mob.dmi'
icon_state = "imp"
icon_living = "imp"
speed = 1
a_intent = INTENT_HARM
stop_automated_movement = 1
status_flags = CANPUSH
attack_sound = 'sound/misc/demon_attack1.ogg'
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 250 //Weak to cold
maxbodytemp = INFINITY
faction = list("hell")
attacktext = "wildly tears into"
maxHealth = 200
health = 200
healable = 0
environment_smash = 1
melee_damage_lower = 10
melee_damage_upper = 15
see_in_dark = 8
see_invisible = SEE_INVISIBLE_MINIMUM
var/boost
var/playstyle_string = "<B><font size=3 color='red'>You are an imp,</font> a mischevious creature from hell. You are the lowest rank on the hellish totem pole \
Though you are not obligated to help, perhaps by aiding a higher ranking devil, you might just get a promotion. However, you are incapable \
of intentionally harming a fellow devil.</B>"
/mob/living/simple_animal/imp/New()
..()
boost = world.time + 60
/mob/living/simple_animal/imp/Life()
..()
if(boost<world.time)
speed = 1
else
speed = 0
/mob/living/simple_animal/imp/death()
..(1)
playsound(get_turf(src),'sound/misc/demon_dies.ogg', 200, 1)
visible_message("<span class='danger'>[src] screams in agony as it sublimates into a sulfurous smoke.</span>")
ghostize()
qdel(src)
+109
View File
@@ -0,0 +1,109 @@
/datum/objective/devil
/datum/objective/devil/soulquantity
explanation_text = "You shouldn't see this text. Error:DEVIL1"
target_amount = 4
/datum/objective/devil/soulquantity/New()
target_amount = pick(6, 7, 8)
update_explanation_text()
/datum/objective/devil/proc/update_explanation_text()
//Intentionally empty
/datum/objective/devil/soulquantity/update_explanation_text()
explanation_text = "Purchase, and retain control over at least [target_amount] souls."
/datum/objective/devil/soulquantity/check_completion()
var/count = 0
for(var/S in owner.devilinfo.soulsOwned)
var/datum/mind/L = S
if(L.soulOwner == owner)
count++
return count >= target_amount
/datum/objective/devil/soulquality
explanation_text = "You shouldn't see this text. Error:DEVIL2"
var/contractType
var/contractName
/datum/objective/devil/soulquality/New()
contractType = pick(CONTRACT_POWER, CONTRACT_WEALTH, CONTRACT_PRESTIGE, CONTRACT_MAGIC, CONTRACT_REVIVE, CONTRACT_KNOWLEDGE)
target_amount = pick(1, 2)
switch(contractType)
if(CONTRACT_POWER)
contractName = "for power"
if(CONTRACT_WEALTH)
contractName = "for wealth"
if(CONTRACT_PRESTIGE)
contractName = "for prestige"
if(CONTRACT_MAGIC)
contractName = "for magic"
if(CONTRACT_REVIVE)
contractName = "of revival"
if(CONTRACT_KNOWLEDGE)
contractName = "for knowledge"
update_explanation_text()
/datum/objective/devil/soulquality/update_explanation_text()
explanation_text = "Have mortals sign at least [target_amount] contracts [contractName]."
/datum/objective/devil/soulquality/check_completion()
var/count = 0
for(var/S in owner.devilinfo.soulsOwned)
var/datum/mind/L = S
if(L.soulOwner != L && L.damnation_type == contractType)
count++
return count >= target_amount
/datum/objective/devil/sintouch
explanation_text = "You shouldn't see this text. Error:DEVIL3"
/datum/objective/devil/sintouch/New()
target_amount = pick(4, 5)
explanation_text = "Ensure at least [target_amount] mortals are sintouched."
/datum/objective/devil/sintouch/check_completion()
return target_amount <= ticker.mode.sintouched.len
/datum/objective/devil/buy_target
explanation_text = "You shouldn't see this text. Error:DEVIL4"
/datum/objective/devil/buy_target/New()
find_target()
update_explanation_text()
/datum/objective/devil/buy_target/update_explanation_text()
if(target)
explanation_text = "Purchase and retain the soul of [target.name], the [target.assigned_role]."
else
explanation_text = "Free objective."
/datum/objective/devil/buy_target/check_completion()
return target.soulOwner == owner
/datum/objective/devil/outsell
explanation_text = "You shouldn't see this text. Error:DEVIL5"
/datum/objective/devil/outsell/update_explanation_text()
explanation_text = "Purchase and retain control over more souls than [target.devilinfo.truename], known to mortals as [target.name], the [target.assigned_role]."
/datum/objective/devil/outsell/check_completion()
var/selfcount = 0
for(var/S in owner.devilinfo.soulsOwned)
var/datum/mind/L = S
if(L.soulOwner == owner)
selfcount++
var/targetcount = 0
for(var/S in target.devilinfo.soulsOwned)
var/datum/mind/L = S
if(L.soulOwner == target)
targetcount++
return selfcount > targetcount
@@ -0,0 +1,234 @@
#define DEVIL_R_HAND_LAYER 1
#define DEVIL_L_HAND_LAYER 2
#define DEVIL_TOTAL_LAYERS 2
// This is used primarily for having hands.
/mob/living/carbon/true_devil
name = "True Devil"
desc = "A pile of infernal energy, taking a vaguely humanoid form."
icon = 'icons/mob/32x64.dmi'
icon_state = "true_devil"
gender = NEUTER
health = 350
maxHealth = 350
ventcrawler = FALSE
density = TRUE
pass_flags = 0
var/ascended = FALSE
sight = (SEE_TURFS | SEE_OBJS)
status_flags = CANPUSH
universal_understand = TRUE
universal_speak = TRUE //The devil speaks all languages meme
var/mob/living/oldform
var/list/devil_overlays[DEVIL_TOTAL_LAYERS]
/mob/living/carbon/true_devil/New(loc, mob/living/carbon/dna_source)
dna = dna_source.dna.Clone()
var/obj/item/organ/internal/brain/B = new(src)
var/obj/item/organ/internal/ears/E = new(src)
B.insert()
E.insert()
..()
/mob/living/carbon/true_devil/update_sight()
if(stat == DEAD)
sight |= SEE_TURFS
sight |= SEE_MOBS
sight |= SEE_OBJS
see_in_dark = 8
see_invisible = SEE_INVISIBLE_LEVEL_TWO
else
sight = (SEE_TURFS | SEE_OBJS)
see_in_dark = 2
see_invisible = SEE_INVISIBLE_LIVING
if(see_override)
see_invisible = see_override
// inventory system could use some love
/mob/living/carbon/true_devil/put_in_hands(obj/item/W)
if(!W)
return 0
if(put_in_active_hand(W))
return TRUE
else if(put_in_inactive_hand(W))
return TRUE
else
..()
/mob/living/carbon/true_devil/proc/convert_to_archdevil()
maxHealth = 5000 // not an IMPOSSIBLE amount, but still near impossible.
ascended = TRUE
health = maxHealth
icon_state = "arch_devil"
/mob/living/carbon/true_devil/proc/set_name()
name = mind.devilinfo.truename
real_name = name
/mob/living/carbon/true_devil/Login()
..()
if(mind.devilinfo)
mind.devilinfo.announce_laws(src)
mind.announce_objectives()
/mob/living/carbon/true_devil/death(gibbed)
. = ..(gibbed)
drop_l_hand()
drop_r_hand()
/mob/living/carbon/true_devil/examine(mob/user)
var/msg = "<span class='info'>*---------*\nThis is [bicon(src)] <b>[src]</b>!\n"
//Left hand items
if(l_hand && !(l_hand.flags & ABSTRACT))
if(l_hand.blood_DNA)
msg += "<span class='warning'>It is holding [bicon(l_hand)] [l_hand.gender == PLURAL? "some" : "a"] blood-stained [l_hand.name] in its left hand!</span>\n"
else
msg += "It is holding [bicon(l_hand)] \a [l_hand] in its left hand.\n"
//Right hand items
if(r_hand && !(r_hand.flags & ABSTRACT))
if(r_hand.blood_DNA)
msg += "<span class='warning'>It is holding [bicon(r_hand)] [r_hand.gender == PLURAL? "some" : "a"] blood-stained [r_hand.name] in its right hand!</span>\n"
else
msg += "It is holding [bicon(r_hand)] \a [r_hand] in its right hand.\n"
//Braindead
if(!client && stat != DEAD)
msg += "The devil seems to be in deep contemplation.\n"
//Damaged
if(stat == DEAD)
msg += "<span class='deadsay'>The hellfire seems to have been extinguished, for now at least.</span>\n"
else if(health < (maxHealth/10))
msg += "<span class='warning'>You can see hellfire inside of it's gaping wounds.</span>\n"
else if(health < (maxHealth/2))
msg += "<span class='warning'>You can see hellfire inside of it's wounds.</span>\n"
msg += "*---------*</span>"
to_chat(user, msg)
/mob/living/carbon/true_devil/IsAdvancedToolUser()
return TRUE
/mob/living/carbon/true_devil/assess_threat()
return 666
/mob/living/carbon/true_devil/flash_eyes(intensity = 1, override_blindness_check = 0, affect_silicon = 0)
if(mind && has_bane(BANE_LIGHT))
mind.disrupt_spells(-500)
return ..() //flashes don't stop devils UNLESS it's their bane.
/mob/living/carbon/true_devil/attacked_by(obj/item/I, mob/living/user, def_zone)
var/weakness = check_weakness(I, user)
apply_damage(I.force * weakness, I.damtype, def_zone)
var/message_verb = ""
if(I.attack_verb && I.attack_verb.len)
message_verb = "[pick(I.attack_verb)]"
else if(I.force)
message_verb = "attacked"
var/attack_message = "[src] has been [message_verb] with [I]."
if(user)
user.do_attack_animation(src)
if(user in viewers(src, null))
attack_message = "[user] has [message_verb] [src] with [I]!"
if(message_verb)
visible_message("<span class='danger'>[attack_message]</span>",
"<span class='userdanger'>[attack_message]</span>")
return TRUE
/mob/living/carbon/true_devil/UnarmedAttack(atom/A, proximity)
if(!ishuman(A))
// `attack_hand` on mobs assumes the attacker is a human
// I am the worst
A.attack_hand(src)
// If the devil wants to actually attack, they have the pitchfork.
/mob/living/carbon/true_devil/Process_Spacemove(movement_dir = 0)
return TRUE
/mob/living/carbon/true_devil/singularity_act()
if(ascended)
return 0
return ..()
/mob/living/carbon/true_devil/attack_ghost(mob/dead/observer/user as mob)
if(ascended || user.mind.soulOwner == src.mind)
var/mob/living/simple_animal/imp/S = new(get_turf(loc))
S.key = user.key
S.mind.assigned_role = "MODE"
S.mind.special_role = "Imp"
var/datum/objective/newobjective = new
newobjective.explanation_text = "Try to get a promotion to a higher infernal rank."
S.mind.objectives += newobjective
to_chat(S,S.playstyle_string)
to_chat(S,"<B>Objective #1</B>: [newobjective.explanation_text]")
return
else
return ..()
/mob/living/carbon/true_devil/resist_fire()
//They're immune to fire.
/mob/living/carbon/true_devil/attack_hand(mob/living/carbon/human/M)
if(..())
switch(M.a_intent)
if(INTENT_HARM)
var/damage = rand(1, 5)
playsound(loc, "punch", 25, 1, -1)
visible_message("<span class='danger'>[M] has punched [src]!</span>", \
"<span class='userdanger'>[M] has punched [src]!</span>")
adjustBruteLoss(damage)
add_attack_logs(M, src, "attacked")
updatehealth()
if(INTENT_DISARM)
if(!lying && !ascended) //No stealing the arch devil's pitchfork.
if(prob(5))
// Weaken knocks people over
// Paralyse knocks people out
// It's Paralyse for parity though
// Weaken(2)
Paralyse(2)
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
add_attack_logs(M, src, "pushed")
visible_message("<span class='danger'>[M] has pushed down [src]!</span>", \
"<span class='userdanger'>[M] has pushed down [src]!</span>")
else
if(prob(25))
drop_item()
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
visible_message("<span class='danger'>[M] has disarmed [src]!</span>", \
"<span class='userdanger'>[M] has disarmed [src]!</span>")
else
playsound(loc, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
visible_message("<span class='danger'>[M] has attempted to disarm [src]!</span>")
/mob/living/carbon/true_devil/handle_breathing()
// devils do not need to breathe
/mob/living/carbon/true_devil/is_literate()
return TRUE
/mob/living/carbon/true_devil/ex_act(severity, ex_target)
if(!ascended)
var/b_loss
switch (severity)
if (1)
b_loss = 500
if (2)
b_loss = 150
if(3)
b_loss = 30
if(has_bane(BANE_LIGHT))
b_loss *=2
adjustBruteLoss(b_loss)
return ..()
#undef DEVIL_TOTAL_LAYERS
@@ -0,0 +1,52 @@
/mob/living/carbon/true_devil/unEquip(obj/item/I, force)
if(..(I,force))
update_inv_r_hand()
update_inv_l_hand()
return 1
return 0
/mob/living/carbon/true_devil/update_inv_r_hand(var/update_icons=1)
..()
if(r_hand)
var/t_state = r_hand.item_state
if(!t_state)
t_state = r_hand.icon_state
var/image/I = image("icon" = r_hand.righthand_file, "icon_state" = "[t_state]")
I = center_image(I, r_hand.inhand_x_dimension, r_hand.inhand_y_dimension)
devil_overlays[DEVIL_R_HAND_LAYER] = I
else
devil_overlays[DEVIL_R_HAND_LAYER] = null
if(update_icons)
update_icons()
/mob/living/carbon/true_devil/update_inv_l_hand(var/update_icons=1)
..()
if(l_hand)
var/t_state = l_hand.item_state
if(!t_state)
t_state = l_hand.icon_state
var/image/I = image("icon" = l_hand.lefthand_file, "icon_state" = "[t_state]")
I = center_image(I, l_hand.inhand_x_dimension, l_hand.inhand_y_dimension)
devil_overlays[DEVIL_L_HAND_LAYER] = I
else
devil_overlays[DEVIL_L_HAND_LAYER] = null
if(update_icons)
update_icons()
/mob/living/carbon/true_devil/proc/remove_overlay(cache_index)
if(devil_overlays[cache_index])
overlays -= devil_overlays[cache_index]
devil_overlays[cache_index] = null
/mob/living/carbon/true_devil/proc/apply_overlay(cache_index)
var/image/I = devil_overlays[cache_index]
if(I)
if(I in overlays)
return
var/list/new_overlays = overlays.Copy()
new_overlays += I
overlays = new_overlays
+2 -79
View File
@@ -36,7 +36,6 @@
var/list/datum/mind/xenos = list()
var/list/datum/station_goal/station_goals = list() // A list of all station goals for this game mode
var/list/chumps = list()
/datum/game_mode/proc/announce() //to be calles when round starts
to_chat(world, "<B>Notice</B>: [src] did not define announce()")
@@ -69,7 +68,6 @@
///post_setup()
///Everyone should now be on the station and have their normal gear. This is the place to give the special roles extra things
/datum/game_mode/proc/post_setup()
setup_chumps()
spawn (ROUNDSTART_LOGOUT_REPORT_TIME)
display_roundstart_logout_report()
@@ -85,40 +83,6 @@
start_state.count()
return 1
//setup_chumps()
//Prepares fake potential collaborators to cut down on metagaming the round type as being a traitor subtype. Overriden in traitor game modes since they have real collaborators
/datum/game_mode/proc/setup_chumps()
var/max_chumps = 1
if(config.traitor_scaling)
max_chumps = max(1, round((num_players())/(5)))
else
max_chumps = max(1, min(num_players(), 5))
var/tries_left = 5 //limits the number of tries so we don't get stuck looping indefinitely. resets on successfully finding a new chump
while(chumps.len < max_chumps)
if(!tries_left) //ran out of unique chumps (or just bad luck with the pick() in get_nt_opposed()) so there may end up being fewer chumps in some rounds.
break
var/mob/living/carbon/human/chump = get_nt_opposed()
if(isnull(chump)) //no possible chumps so just end it here.
break
if(chump in chumps)
tries_left-- //this chump already was picked, try again!
else
chumps += chump
tries_left = 5 //reset our tries since we found a new chump
//make sure we have chumps before we try misinforming them. if we don't make a note of it.
if(!chumps.len)
log_debug("Game mode failed to find ANY chumps. This is likely due to the server being in extreme low-pop with no one set to opposed or skeptical.")
return 0
//we've got chumps! misinform them!
for(var/mob/living/carbon/human/chump in chumps)
if(prob(33))
spawn(rand(3000, 18000)) //5-30 minute delay to throw off would-be autotraitor metagamers
inform_collab(chump)
else
spawn(rand(10, 100)) //same delay as if the mode were traitor
inform_collab(chump)
return 1
///process()
///Called by the gameticker
/datum/game_mode/proc/process()
@@ -244,7 +208,7 @@
if(escaped_on_pod_5 > 0)
feedback_set("escaped_on_pod_5",escaped_on_pod_5)
send2mainirc("A round of [src.name] has ended - [surviving_total] survivors, [ghosts] ghosts.")
send2maindiscord("A round of [src.name] has ended - [surviving_total] survivors, [ghosts] ghosts.")
return 0
@@ -426,23 +390,6 @@ proc/display_roundstart_logout_report()
if(check_rights(R_ADMIN, 0, M))
to_chat(M, msg)
/proc/get_nt_opposed()
var/list/dudes = list()
for(var/mob/living/carbon/human/man in GLOB.player_list)
if(man.client)
//don't try picking someone like the captain or a security officer for potential collaborators, even if they ARE opposed to Nanotrasen for some reason
if(man.mind && man.mind.assigned_role)
if((man.mind.assigned_role in ticker.mode.protected_jobs) || (man.mind.assigned_role in ticker.mode.restricted_jobs))
continue
if(man.client.prefs.nanotrasen_relation == "Opposed")
dudes += man
else if(man.client.prefs.nanotrasen_relation == "Skeptical" && prob(50))
dudes += man
if(dudes.len == 0)
return null
return pick(dudes)
//Announces objectives/generic antag text.
/proc/show_generic_antag_text(var/datum/mind/player)
if(player.current)
@@ -547,28 +494,4 @@ proc/display_roundstart_logout_report()
/datum/game_mode/proc/declare_station_goal_completion()
for(var/V in station_goals)
var/datum/station_goal/G = V
G.print_result()
/datum/game_mode/proc/inform_collab(mob/living/carbon/human/M)
if(!M)
return
//Mad-libs for their message
var/adjective = pick("strange", "mysterious", "sinister", "un-assuming", "unexpected")
var/action_words = pick("aid the fight against Nanotrasen", "repay a debt", "partake in some mischief", "help overthrow the system", "stick it to the man")
var/organization = pick("Anti-Fascist Movement", "Syndicate", "Spessmen for the Protesting of Nanotrasen", "Greytider's Union", "Illuminati (in space)")
//Stuff to give them a single set of code-words
var/list/possible_words = splittext(syndicate_code_phrase, ", ")
var/list/possible_reply = splittext(syndicate_code_response, ", ")
var/index = rand(1, possible_words.len)
var/my_word = possible_words[index]
var/my_reply
if(possible_reply.len < index) //just in case we had a longer code word list than the response list
my_reply = pick(possible_reply)
else
my_reply = possible_reply[index]
to_chat(M, "You suddenly remember \an [adjective] note you received earlier informing you that a chance to [action_words] may present itself today. An agent of the [organization] may contact you for help.")
to_chat(M, "The note had the words \"[my_word]\" and \"[my_reply]\" written at the bottom, which you memorized just in case.")
to_chat(M, "<span class='warning'>Unless stated otherwise; you are NOT an antagonist, so self-antagging rules may still apply to you. Use your good judgement and ahelp if you are unsure of what you are allowed to do.</span>")
M.mind.store_memory("<b>Important Words</b>: \"[my_word]\", \"[my_reply]\"")
G.print_result()
+4 -1
View File
@@ -219,7 +219,7 @@ var/round_start_time = 0
var/list/admins_number = staff_countup(R_BAN)
if(admins_number[1] == 0 && admins_number[3] == 0)
send2irc(config.admin_notify_irc, "Round has started with no admins online.")
send2discord("message", config.discord_channel_admin_notify, "Round has started with no admins online.")
auto_toggle_ooc(0) // Turn it off
round_start_time = world.time
@@ -476,3 +476,6 @@ var/round_start_time = 0
event_manager.RoundEnd()
return 1
/datum/controller/gameticker/proc/HasRoundStarted()
return current_state >= GAME_STATE_PLAYING
@@ -123,8 +123,9 @@
S = H.dna.species
S.team = team_number
H.real_name = team_name + " Agent"
H.reagents.add_reagent("mutadone", 1) //No fat/blind/colourblind/epileptic/whatever ayys.
H.cleanSE() //No fat/blind/colourblind/epileptic/whatever ayys.
H.overeatduration = 0
H.flavor_text = null
H.equipOutfit(/datum/outfit/abductor/agent)
greet_agent(agent,team_number)
update_abductor_icons_added(agent)
@@ -139,8 +140,9 @@
S.scientist = TRUE
S.team = team_number
H.real_name = team_name + " Scientist"
H.reagents.add_reagent("mutadone", 1) //No fat/blind/colourblind/epileptic/whatever ayys.
H.cleanSE() //No fat/blind/colourblind/epileptic/whatever ayys.
H.overeatduration = 0
H.flavor_text = null
H.equipOutfit(/datum/outfit/abductor/scientist)
greet_scientist(scientist,team_number)
update_abductor_icons_added(scientist)
@@ -91,7 +91,12 @@
if(essence == 0)
to_chat(src, "<span class='revendanger'>You feel your essence fraying!</span>")
/mob/living/simple_animal/revenant/update_sight()
if(!client)
return
if(stat == DEAD)
grant_death_vision()
return
/mob/living/simple_animal/revenant/say(message)
if(!message)
@@ -0,0 +1,34 @@
/datum/objective/sintouched
completed = 1
/* NO ERP OBJECTIVE FOR YOU.
/datum/objective/sintouched/lust
dangerrating = 3 // it's not AS dangerous.
/datum/objective/sintouched/lust/New()
var/mob/dead/D = pick(dead_mob_list)
if(prob(50) && D)
explanation_text = "You know that [D] has perished.... and you think [D] is kinda cute. Make sure everyone knows how HOT [D]'s lifeless body is."
else
explanation_text = "Go get married, then immediately cheat on your new spouse." */
/datum/objective/sintouched/gluttony
explanation_text = "Food is delicious, so delicious you can't let it be wasted on other people."
/datum/objective/sintouched/greed
explanation_text = "You want MORE, more money, more wealth, more riches. Go get it, but don't hurt people for it."
/datum/objective/sintouched/sloth
explanation_text = "You just get tired randomly. Go take a nap at a time that would inconvenience other people."
/datum/objective/sintouched/wrath
explanation_text = "What have your coworkers ever done for you? Don't offer to help them in any matter, and refuse if asked."
/datum/objective/sintouched/envy
explanation_text = "Why should you be stuck with your rank? Show everyone you can do other jobs too, and don't let anyone stop you, least of all because you have no training."
/datum/objective/sintouched/pride
explanation_text = "You are the BEST thing on the station. Make sure everyone knows it."
/datum/objective/sintouched/acedia
explanation_text = "Angels, devils, good, evil... who cares? Just ignore any hellish threats and do your job."
@@ -95,13 +95,11 @@
name = "pile of viscera"
desc = "A repulsive pile of guts and gore."
/mob/living/simple_animal/slaughter/death(gibbed)
/mob/living/simple_animal/slaughter/Destroy()
// Only execute the below if we successfully died
. = ..()
if(!.)
return FALSE
for(var/mob/living/M in consumed_mobs)
release_consumed(M)
. = ..()
/mob/living/simple_animal/slaughter/proc/release_consumed(mob/living/M)
M.forceMove(get_turf(src))
+45 -10
View File
@@ -1,3 +1,5 @@
#define NUKESCALINGMODIFIER 1
/datum/game_mode
var/list/datum/mind/syndicates = list()
@@ -16,7 +18,7 @@ proc/issyndicate(mob/living/M as mob)
var/nukes_left = 1 // Call 3714-PRAY right now and order more nukes! Limited offer!
var/nuke_off_station = 0 //Used for tracking if the syndies actually haul the nuke to the station
var/syndies_didnt_escape = 0 //Used for tracking if the syndies got the shuttle off of the z-level
var/total_tc = 0 //Total amount of telecrystals shared between nuke ops
/datum/game_mode/nuclear/announce()
to_chat(world, "<B>The current game mode is - Nuclear Emergency!</B>")
@@ -97,7 +99,6 @@ proc/issyndicate(mob/living/M as mob)
qdel(A)
continue
var/obj/effect/landmark/uplinklocker = locate("landmark*Syndicate-Uplink") //i will be rewriting this shortly
var/obj/effect/landmark/nuke_spawn = locate("landmark*Nuclear-Bomb")
var/nuke_code = "[rand(10000, 99999)]"
@@ -131,23 +132,44 @@ proc/issyndicate(mob/living/M as mob)
spawnpos++
update_synd_icons_added(synd_mind)
//update_all_synd_icons()
if(uplinklocker)
new /obj/structure/closet/syndicate/nuclear(uplinklocker.loc)
scale_telecrystals()
share_telecrystals()
if(nuke_spawn && synd_spawn.len > 0)
var/obj/machinery/nuclearbomb/syndicate/the_bomb = new /obj/machinery/nuclearbomb/syndicate(nuke_spawn.loc)
the_bomb.r_code = nuke_code
return ..()
/datum/game_mode/nuclear/proc/scale_telecrystals()
var/danger
danger = GLOB.player_list.len
while(!IsMultiple(++danger, 10)) //Increments danger up to the nearest multiple of ten
total_tc += danger * NUKESCALINGMODIFIER
/datum/game_mode/nuclear/proc/share_telecrystals()
var/player_tc
var/remainder
player_tc = round(total_tc / GLOB.nuclear_uplink_list.len) //round to get an integer and not floating point
remainder = total_tc % GLOB.nuclear_uplink_list.len
for(var/obj/item/radio/uplink/nuclear/U in GLOB.nuclear_uplink_list)
U.hidden_uplink.uses += player_tc
while(remainder > 0)
for(var/obj/item/radio/uplink/nuclear/U in GLOB.nuclear_uplink_list)
if(remainder <= 0)
break
U.hidden_uplink.uses++
remainder--
/datum/game_mode/proc/create_syndicate(datum/mind/synd_mind) // So we don't have inferior species as ops - randomize a human
var/mob/living/carbon/human/M = synd_mind.current
M.set_species(/datum/species/human, TRUE)
M.dna.ready_dna(M) // Quadriplegic Nuke Ops won't be participating in the paralympics
M.dna.species.create_organs(M)
M.reagents.add_reagent("mutadone", 1) //No fat/blind/colourblind/epileptic/whatever ops.
M.cleanSE() //No fat/blind/colourblind/epileptic/whatever ops.
M.overeatduration = 0
var/obj/item/organ/external/head/head_organ = M.get_organ("head")
@@ -244,8 +266,8 @@ proc/issyndicate(mob/living/M as mob)
synd_mob.equip_to_slot_or_del(new /obj/item/storage/backpack(synd_mob), slot_back)
synd_mob.equip_to_slot_or_del(new /obj/item/gun/projectile/automatic/pistol(synd_mob), slot_belt)
synd_mob.equip_to_slot_or_del(new /obj/item/storage/box/survival_syndi(synd_mob.back), slot_in_backpack)
var/obj/item/radio/uplink/U = new /obj/item/radio/uplink(synd_mob)
synd_mob.equip_to_slot_or_del(new /obj/item/pinpointer/nukeop(synd_mob), slot_wear_pda)
var/obj/item/radio/uplink/nuclear/U = new /obj/item/radio/uplink/nuclear(synd_mob)
U.hidden_uplink.uplink_owner="[synd_mob.key]"
U.hidden_uplink.uses = 20
synd_mob.equip_to_slot_or_del(U, slot_in_backpack)
@@ -264,10 +286,21 @@ proc/issyndicate(mob/living/M as mob)
switch(race)
if("Vox" || "Vox Armalis")
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/syndicate(synd_mob), slot_wear_mask)
synd_mob.equip_to_slot_or_del(new /obj/item/tank/nitrogen(synd_mob), slot_l_hand)
synd_mob.equip_to_slot_or_del(new /obj/item/tank/emergency_oxygen/vox(synd_mob), slot_l_hand)
synd_mob.internal = synd_mob.l_hand
synd_mob.update_action_buttons_icon()
if("Plasmaman")
synd_mob.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/syndicate(synd_mob), slot_wear_mask)
synd_mob.equip_to_slot(new /obj/item/clothing/suit/space/eva/plasmaman/nuclear(synd_mob), slot_wear_suit)
synd_mob.equip_to_slot(new /obj/item/clothing/head/helmet/space/eva/plasmaman/nuclear(synd_mob), slot_head)
synd_mob.equip_or_collect(new /obj/item/tank/plasma/plasmaman(synd_mob), slot_s_store)
synd_mob.equip_or_collect(new /obj/item/plasmensuit_cartridge(synd_mob), slot_in_backpack)
synd_mob.equip_or_collect(new /obj/item/plasmensuit_cartridge(synd_mob), slot_in_backpack)
synd_mob.internal = synd_mob.get_item_by_slot(slot_s_store)
synd_mob.update_action_buttons_icon()
synd_mob.rejuvenate() //fix any damage taken by naked vox/plasmamen/etc while round setups
var/obj/item/implant/explosive/E = new/obj/item/implant/explosive(synd_mob)
E.implant(synd_mob)
synd_mob.faction |= "syndicate"
@@ -503,3 +536,5 @@ proc/issyndicate(mob/living/M as mob)
dat += "<hr>"
return dat
#undef NUKESCALINGMODIFIER
@@ -14,6 +14,7 @@
Such a brazen move will attract the attention of powerful benefactors within the Syndicate, who will supply your team with a massive amount of bonus telecrystals. \
Must be used within five minutes, or your benefactors will lose interest."
var/declaring_war = FALSE
var/total_tc = 0 //Total amount of telecrystals shared between nuke ops
/obj/item/nuclear_challenge/attack_self(mob/living/user)
if(!check_allowed(user))
@@ -50,17 +51,33 @@
event_announcement.Announce(war_declaration, "Declaration of War", 'sound/effects/siren.ogg')
to_chat(user, "You've attracted the attention of powerful forces within the syndicate. A bonus bundle of telecrystals has been granted to your team. Great things await you if you complete the mission.")
to_chat(user, "<b>Look below you on the floor for the extra uplink</b>")
to_chat(user, "<b>Your bonus telecrystals have been split between your team's uplinks.</b>")
for(var/obj/machinery/computer/shuttle/syndicate/S in GLOB.machines)
S.challenge = TRUE
var/obj/item/radio/uplink/U = new /obj/item/radio/uplink(get_turf(user))
U.hidden_uplink.uplink_owner= "[user.key]"
U.hidden_uplink.uses = CHALLENGE_TELECRYSTALS + round((((GLOB.player_list.len - CHALLENGE_MIN_PLAYERS)/CHALLENGE_SCALE_PLAYER) * CHALLENGE_SCALE_BONUS)) // No. of player - Min. Player to dec, divided by player per bonus, then multipled by TC per bonus. Rounded.
// No. of player - Min. Player to dec, divided by player per bonus, then multipled by TC per bonus. Rounded.
total_tc = CHALLENGE_TELECRYSTALS + round((((GLOB.player_list.len - CHALLENGE_MIN_PLAYERS)/CHALLENGE_SCALE_PLAYER) * CHALLENGE_SCALE_BONUS))
share_telecrystals()
config.shuttle_refuel_delay = CHALLENGE_SHUTTLE_DELAY
qdel(src)
/obj/item/nuclear_challenge/proc/share_telecrystals()
var/player_tc
var/remainder
player_tc = round(total_tc / GLOB.nuclear_uplink_list.len) //round to get an integer and not floating point
remainder = total_tc % GLOB.nuclear_uplink_list.len
for(var/obj/item/radio/uplink/nuclear/U in GLOB.nuclear_uplink_list)
U.hidden_uplink.uses += player_tc
while(remainder > 0)
for(var/obj/item/radio/uplink/nuclear/U in GLOB.nuclear_uplink_list)
if(remainder <= 0)
break
U.hidden_uplink.uses++
remainder--
/obj/item/nuclear_challenge/proc/check_allowed(mob/living/user)
if(declaring_war)
to_chat(user, "You are already in the process of declaring war! Make your mind up.")
+13 -42
View File
@@ -31,6 +31,10 @@ var/list/potential_theft_objectives = subtypesof(/datum/theft_objective) - /datu
return TARGET_INVALID_DEAD
if(!possible_target.key)
return TARGET_INVALID_NOCKEY
if(possible_target.current)
var/turf/current_location = get_turf(possible_target.current)
if(current_location && !is_level_reachable(current_location.z))
return TARGET_INVALID_UNREACHABLE
/datum/objective/proc/find_target()
var/list/possible_targets = list()
@@ -724,51 +728,18 @@ var/list/potential_theft_objectives = subtypesof(/datum/theft_objective) - /datu
if(vox_total_kills > vox_allowed_kills) return 0
return 1
// Traders
/datum/objective/trade // Yes, I know there's no check_completion. The objectives exist only to tell the traders what to get.
/datum/objective/trade/proc/choose_target(var/station)
// Traders
// These objectives have no check_completion, they exist only to tell Sol Traders what to aim for.
/datum/objective/trade/proc/choose_target()
return
/datum/objective/trade/stock // Stock or spare parts.
var/target_rating = 1
/datum/objective/trade/stock/choose_target(var/station)
var/itemname
switch(rand(1,8))
if(1)
target = /obj/item/stock_parts/cell
target_amount = 10
target_rating = 3
itemname = "ten high-capacity power cells"
if(2)
target = /obj/item/stock_parts/manipulator
target_amount = 20
itemname = "twenty micro manipulators"
if(3)
target = /obj/item/stock_parts/matter_bin
target_amount = 20
itemname = "twenty matter bins"
if(4)
target = /obj/item/stock_parts/micro_laser
target_amount = 15
itemname = "fifteen micro-lasers"
if(5)
target = /obj/item/stock_parts/capacitor
target_amount = 15
itemname = "fifteen capacitors"
if(6)
target = /obj/item/stock_parts/subspace/filter
target_amount = 4
itemname = "four hyperwave filters"
if(7)
target = /obj/item/solar_assembly
target_amount = 10
itemname = "ten solar panel assemblies"
if(8)
target = /obj/item/flash
target_amount = 6
itemname = "six flashes"
explanation_text = "We are running low on spare parts. Trade for [itemname]."
/datum/objective/trade/plasma/choose_target()
explanation_text = "Acquire at least 15 sheets of plasma through trade."
/datum/objective/trade/credits/choose_target()
explanation_text = "Acquire at least 10,000 credits through trade."
//wizard
+1
View File
@@ -48,6 +48,7 @@
EPILEPSYBLOCK = getAssignedBlock("EPILEPSY", numsToAssign)
TWITCHBLOCK = getAssignedBlock("TWITCH", numsToAssign)
NERVOUSBLOCK = getAssignedBlock("NERVOUS", numsToAssign)
WINGDINGSBLOCK = getAssignedBlock("WINGDINGS", numsToAssign)
// Bay muts
BREATHLESSBLOCK = getAssignedBlock("BREATHLESS", numsToAssign, DNA_HARD_BOUNDS, good=1)
@@ -64,8 +64,8 @@
/obj/effect/proc_holder/spell/aoe_turf/veil/proc/extinguishItem(var/obj/item/I) //WARNING NOT SUFFICIENT TO EXTINGUISH AN ITEM HELD BY A MOB
if(istype(I, /obj/item/flashlight))
var/obj/item/flashlight/F = I
if(istype(F, /obj/item/flashlight/glowstick))
var/obj/item/flashlight/glowstick/gstick = F
if(istype(F, /obj/item/flashlight/flare/glowstick))
var/obj/item/flashlight/flare/glowstick/gstick = F
gstick.fuel = 0
if(F.on)
if(is_type_in_list(I, blacklisted_lights))
-18
View File
@@ -70,10 +70,6 @@
modePlayer += traitors
..()
/datum/game_mode/traitor/setup_chumps()
//since we actually have potential collaborators, we don't prepare any chumps to avoid extra people knowing our codewords.
return
/datum/game_mode/proc/forge_traitor_objectives(datum/mind/traitor)
if(istype(traitor.current, /mob/living/silicon))
var/objective_count = 0
@@ -347,20 +343,6 @@
if(!safety)//If they are not a rev. Can be added on to.
give_codewords(traitor_mob)
// Tell them about people they might want to contact.
var/mob/living/carbon/human/M = get_nt_opposed()
if(M && M != traitor_mob)
to_chat(traitor_mob, "We have received credible reports that [M.real_name] might be willing to help our cause. If you need assistance, consider contacting [M.p_them()].")
traitor_mob.mind.store_memory("<b>Potential Collaborator</b>: [M.real_name]")
//let's also inform their contact that they might be called upon, but leave it vague.
inform_collab(M)
/datum/game_mode/traitor/inform_collab(mob/living/carbon/human/M)
if(M.mind in traitors) //if you are already a traitor, you already know the codewords and your role, so skip this message.
return
..(M)
/datum/game_mode/proc/remove_traitor(datum/mind/traitor_mind)
if(traitor_mind in traitors)
ticker.mode.traitors -= traitor_mind
+1
View File
@@ -175,6 +175,7 @@
/datum/game_mode/proc/greet_vampire(var/datum/mind/vampire, var/you_are=1)
var/dat
if(you_are)
SEND_SOUND(vampire.current, 'sound/ambience/antag/vampalert.ogg')
dat = "<span class='danger'>You are a Vampire!</span><br>"
dat += {"To bite someone, target the head and use harm intent with an empty hand. Drink blood to gain new powers.
You are weak to holy things and starlight. Don't go into space and avoid the Chaplain, the chapel and especially Holy Water."}
+1 -1
View File
@@ -68,7 +68,7 @@
to_chat(M, "<B>Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned reality bending mobility spells. You are able to cast teleport and ethereal jaunt.")
if("healing")
M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/charge(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall(null))
M.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/forcewall(null))
M.equip_to_slot_or_del(new /obj/item/gun/magic/staff/healing(M), slot_r_hand)
to_chat(M, "<B>Your service has not gone unrewarded, however. Studying under [H.real_name], you have learned livesaving survival spells. You are able to cast charge and forcewall.")
if("robeless")
+16 -2
View File
@@ -161,11 +161,18 @@
/datum/spellbook_entry/forcewall
name = "Force Wall"
spell_type = /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall
spell_type = /obj/effect/proc_holder/spell/targeted/forcewall
log_name = "FW"
category = "Defensive"
cost = 1
/datum/spellbook_entry/greaterforcewall
name = "Greater Force Wall"
spell_type = /obj/effect/proc_holder/spell/targeted/forcewall/greater
log_name = "GFW"
category = "Defensive"
cost = 1
/datum/spellbook_entry/blink
name = "Blink"
spell_type = /obj/effect/proc_holder/spell/targeted/turf_teleport/blink
@@ -290,6 +297,13 @@
item_path = /obj/item/gun/magic/staff/chaos
log_name = "SC"
/datum/spellbook_entry/item/staffslipping
name = "Staff of Slipping"
desc = "A staff that shoots magical bananas. These bananas will either slip or stun the target when hit. Surprisingly reliable!"
item_path = /obj/item/gun/magic/staff/slipping
log_name = "SL"
cost = 1
/datum/spellbook_entry/item/staffdoor
name = "Staff of Door Creation"
desc = "A particular staff that can mold solid metal into ornate wooden doors. Useful for getting around in the absence of other transportation. Does not work on glass."
@@ -791,7 +805,7 @@
stored_swap = null
/obj/item/spellbook/oneuse/forcewall
spell = /obj/effect/proc_holder/spell/aoe_turf/conjure/forcewall
spell = /obj/effect/proc_holder/spell/targeted/forcewall
spellname = "forcewall"
icon_state ="bookforcewall"
desc = "This book has a dedication to mimes everywhere inside the front cover."
+1 -1
View File
@@ -18,7 +18,7 @@
access_heads, access_construction, access_sec_doors,
access_ce, access_RC_announce, access_keycard_auth, access_tcomsat, access_minisat, access_mechanic, access_mineral_storeroom)
minimal_player_age = 21
exp_requirements = 600
exp_requirements = 1200
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/chief_engineer
+1 -1
View File
@@ -16,7 +16,7 @@
access_chemistry, access_virology, access_cmo, access_surgery, access_RC_announce,
access_keycard_auth, access_sec_doors, access_psychiatrist, access_maint_tunnels, access_paramedic, access_mineral_storeroom)
minimal_player_age = 21
exp_requirements = 600
exp_requirements = 1200
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/cmo
+1 -1
View File
@@ -18,7 +18,7 @@
access_research, access_robotics, access_xenobiology, access_ai_upload,
access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch, access_minisat, access_maint_tunnels, access_mineral_storeroom, access_network)
minimal_player_age = 21
exp_requirements = 600
exp_requirements = 1200
exp_type = EXP_TYPE_CREW
// All science-y guys get bonuses for maxing out their tech.
required_objectives = list(
+4 -4
View File
@@ -18,7 +18,7 @@
access_research, access_engine, access_mining, access_medical, access_construction, access_mailsorting,
access_heads, access_hos, access_RC_announce, access_keycard_auth, access_gateway, access_pilot, access_weapons)
minimal_player_age = 21
exp_requirements = 600
exp_requirements = 1200
exp_type = EXP_TYPE_CREW
disabilities_allowed = 0
outfit = /datum/outfit/job/hos
@@ -63,7 +63,7 @@
access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_morgue, access_weapons)
minimal_access = list(access_security, access_sec_doors, access_brig, access_armory, access_court, access_maint_tunnels, access_weapons)
minimal_player_age = 21
exp_requirements = 300
exp_requirements = 600
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/warden
@@ -109,7 +109,7 @@
minimal_access = list(access_sec_doors, access_forensics_lockers, access_morgue, access_maint_tunnels, access_court, access_weapons)
alt_titles = list("Forensic Technician")
minimal_player_age = 14
exp_requirements = 300
exp_requirements = 600
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/detective
@@ -166,7 +166,7 @@
access = list(access_security, access_sec_doors, access_brig, access_court, access_maint_tunnels, access_morgue, access_weapons)
minimal_access = list(access_security, access_sec_doors, access_brig, access_court, access_maint_tunnels, access_weapons)
minimal_player_age = 14
exp_requirements = 300
exp_requirements = 600
exp_type = EXP_TYPE_CREW
outfit = /datum/outfit/job/officer
+2 -2
View File
@@ -13,7 +13,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 0)
access = list() //See get_access()
minimal_access = list() //See get_access()
minimal_player_age = 30
exp_requirements = 1200
exp_requirements = 2400
exp_type = EXP_TYPE_CREW
disabilities_allowed = 0
outfit = /datum/outfit/job/captain
@@ -68,7 +68,7 @@ var/datum/announcement/minor/captain_announcement = new(do_newscast = 0)
req_admin_notify = 1
is_command = 1
minimal_player_age = 21
exp_requirements = 600
exp_requirements = 1200
exp_type = EXP_TYPE_CREW
access = list(access_security, access_sec_doors, access_brig, access_court, access_forensics_lockers,
access_medical, access_engine, access_change_ids, access_ai_upload, access_eva, access_heads,
+4 -4
View File
@@ -34,7 +34,8 @@
return
H.dna.SetSEState(SOBERBLOCK,1)
H.mutations += SOBER
genemutcheck(H, SOBERBLOCK, null, MUTCHK_FORCED)
H.dna.default_blocks.Add(SOBERBLOCK)
H.check_mutations = 1
@@ -249,9 +250,8 @@
implant.insert(H)
H.mutations.Add(CLUMSY)
H.dna.SetSEState(COMICBLOCK, 1, 1)
genemutcheck(H, COMICBLOCK, null, MUTCHK_FORCED)
if(!ismachine(H))
H.mutations.Add(COMIC)
/datum/job/mime
title = "Mime"
+2 -3
View File
@@ -29,10 +29,9 @@
l_ear = /obj/item/radio/headset/syndicate/alt/syndteam
pda = /obj/item/pinpointer/advpinpointer
id = /obj/item/card/id/syndicate/command
box = /obj/item/storage/box/engineer
box = /obj/item/storage/box/survival_syndi
backpack_contents = list(
/obj/item/flashlight = 1,
/obj/item/reagent_containers/food/pill/initropidril = 1,
/obj/item/reagent_containers/food/snacks/syndidonkpocket = 1,
/obj/item/ammo_box/magazine/m50 = 2,
/obj/item/clothing/shoes/magboots/syndie/advance = 1,
@@ -48,7 +47,7 @@
if(visualsOnly)
return
var/obj/item/implant/uplink/U = new /obj/item/implant/uplink(H)
var/obj/item/implant/uplink/admin/U = new /obj/item/implant/uplink/admin(H)
U.implant(H)
U.hidden_uplink.uses = 500
H.faction += "syndicate"
+2 -5
View File
@@ -7,7 +7,7 @@ var/global/list/role_playtime_requirements = list(
ROLE_SENTIENT = 5,
ROLE_ERT = 10, // High, because they're team-based, and we want ERT to be robust
ROLE_DEATHSQUAD = 10,
ROLE_TRADER = 5,
ROLE_TRADER = 20, // Very high, because they're an admin-spawned event with powerful items
ROLE_DRONE = 10, // High, because they're like mini engineering cyborgs that can ignore the AI, ventcrawl, and respawn themselves
// SOLO ANTAGS
@@ -176,10 +176,7 @@ var/global/list/role_playtime_requirements = list(
if(dep == EXP_TYPE_EXEMPT)
return_text += "<LI>Exempt (all jobs auto-unlocked)</LI>"
else if(exp_data[EXP_TYPE_LIVING] > 0)
var/my_pc = num2text(round(exp_data[dep]/exp_data[EXP_TYPE_LIVING]*100))
return_text += "<LI>[dep]: [get_exp_format(exp_data[dep])] ([my_pc]%)</LI>"
else
return_text += "<LI>[dep]: [get_exp_format(exp_data[dep])] </LI>"
return_text += "<LI>[dep]: [get_exp_format(exp_data[dep])]</LI>"
if(config.use_exp_restrictions_admin_bypass && check_rights(R_ADMIN, 0, mob))
return_text += "<LI>Admin</LI>"
return_text += "</UL>"
+10 -1
View File
@@ -193,5 +193,14 @@ var/global/list/exp_jobsmap = list(
EXP_TYPE_CREW = list(titles = command_positions | engineering_positions | medical_positions | science_positions | support_positions | supply_positions | security_positions | civilian_positions | list("AI","Cyborg") | whitelisted_positions), // crew positions
EXP_TYPE_SPECIAL = list(), // antags, ERT, etc
EXP_TYPE_GHOST = list(), // dead people, observers
EXP_TYPE_EXEMPT = list() // special grandfather setting
EXP_TYPE_EXEMPT = list(), // special grandfather setting
EXP_TYPE_COMMAND = list(titles = command_positions),
EXP_TYPE_ENGINEERING = list(titles = engineering_positions),
EXP_TYPE_MEDICAL = list(titles = medical_positions),
EXP_TYPE_SCIENCE = list(titles = science_positions),
EXP_TYPE_SUPPLY = list(titles = supply_positions),
EXP_TYPE_SECURITY = list(titles = security_positions),
EXP_TYPE_SILICON = list(titles = list("AI","Cyborg")),
EXP_TYPE_SERVICE = list(titles = service_positions),
EXP_TYPE_WHITELIST = list(titles = whitelisted_positions) // karma-locked jobs
)

Some files were not shown because too many files have changed in this diff Show More