diff --git a/code/controllers/voting.dm b/code/controllers/voting.dm index 9bb2197e6e8..d03aa546f92 100644 --- a/code/controllers/voting.dm +++ b/code/controllers/voting.dm @@ -119,8 +119,8 @@ datum/controller/vote if(winners.len > 1) if(mode != "gamemode" || ticker.hide_mode == 0) // Here we are making sure we don't announce potential game modes text = "Vote Tied Between:\n" - for(var/option in winners) - text += "\t[option]\n" + for(var/option in winners) + text += "\t[option]\n" . = pick(winners) for(var/key in current_votes) diff --git a/code/game/jobs/job/captain.dm b/code/game/jobs/job/captain.dm index 38cb9d10be7..47bcef76158 100644 --- a/code/game/jobs/job/captain.dm +++ b/code/game/jobs/job/captain.dm @@ -35,6 +35,9 @@ L.imp_in = H L.implanted = 1 world << "[H.real_name] is the captain!" + var/datum/organ/external/affected = H.organs_by_name["head"] + affected.implants += L + L.part = affected return 1 get_access() @@ -83,4 +86,4 @@ H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H), slot_r_hand) else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/ids(H.back), slot_in_backpack) - return 1 + return 1 \ No newline at end of file diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index 8d9e0875dc9..ffd32b93721 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -360,6 +360,7 @@ var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H L.implanted = 1 - return 1 - - + var/datum/organ/external/affected = H.organs_by_name["head"] + affected.implants += L + L.part = affected + return 1 \ No newline at end of file diff --git a/code/game/jobs/job/security.dm b/code/game/jobs/job/security.dm index dd04b9cbac7..2a163fc2c8f 100644 --- a/code/game/jobs/job/security.dm +++ b/code/game/jobs/job/security.dm @@ -42,6 +42,9 @@ var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(H) L.imp_in = H L.implanted = 1 + var/datum/organ/external/affected = H.organs_by_name["head"] + affected.implants += L + L.part = affected return 1 @@ -162,4 +165,4 @@ else H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack) H.equip_to_slot_or_del(new /obj/item/weapon/handcuffs(H), slot_in_backpack) - return 1 + return 1 \ No newline at end of file diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 424e94eee07..f4ea117c397 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1150,7 +1150,7 @@ About the new airlock wires panel: if(src.isElectrified()) if(src.shock(user, 75)) return - if(istype(C, /obj/item/device/detective_scanner)) + if(istype(C, /obj/item/device/detective_scanner) || istype(C, /obj/item/taperoll)) return src.add_fingerprint(user) diff --git a/code/game/objects/items/devices/modkit.dm b/code/game/objects/items/devices/modkit.dm new file mode 100644 index 00000000000..a7c221aa58f --- /dev/null +++ b/code/game/objects/items/devices/modkit.dm @@ -0,0 +1,47 @@ +#define MODKIT_HELMET 1 +#define MODKIT_SUIT 2 +#define MODKIT_FULL 3 + +/obj/item/device/modkit + name = "hardsuit modification kit" + desc = "A kit containing all the needed tools and parts to modify a hardsuit for another user." + icon_state = "modkit" + var/parts = MODKIT_FULL + var/from_helmet = /obj/item/clothing/head/helmet/space/rig + var/from_suit = /obj/item/clothing/suit/space/rig + var/to_helmet = /obj/item/clothing/head/cardborg + var/to_suit = /obj/item/clothing/suit/cardborg + +/obj/item/device/modkit/afterattack(obj/O, mob/user as mob) + var/flag + var/to_type + if(istype(O,from_helmet)) + flag = MODKIT_HELMET + to_type = to_helmet + else if(istype(O,from_suit)) + flag = MODKIT_SUIT + to_type = to_suit + else + return + if(!(parts & flag)) + user << "This kit has no parts for this modification left." + return + if(istype(O,to_type)) + user << "[O] is already modified." + return + if(!isturf(O.loc)) + user << "[O] must be safely placed on the ground for modification." + return + playsound(user.loc, 'sound/items/Screwdriver.ogg', 100, 1) + var/N = new to_type(O.loc) + user.visible_message("\red [user] opens \the [src] and modifies \the [O] into \the [N].","\red You open \the [src] and modify \the [O] into \the [N].") + del(O) + parts &= ~flag + if(!parts) + del(src) + +/obj/item/device/modkit/tajaran + name = "tajara hardsuit modification kit" + desc = "A kit containing all the needed tools and parts to modify a hardsuit for another user. This one looks like it's meant for Tajara." + to_helmet = /obj/item/clothing/head/helmet/space/rig/tajara + to_suit = /obj/item/clothing/suit/space/rig/tajara \ No newline at end of file diff --git a/code/game/objects/items/weapons/stunbaton.dm b/code/game/objects/items/weapons/stunbaton.dm index 5d6bd479c47..5637f47f983 100644 --- a/code/game/objects/items/weapons/stunbaton.dm +++ b/code/game/objects/items/weapons/stunbaton.dm @@ -98,6 +98,7 @@ add_fingerprint(user) /obj/item/weapon/melee/baton/throw_impact(atom/hit_atom) + . = ..() if (prob(50)) if(istype(hit_atom, /mob/living)) var/mob/living/carbon/human/H = hit_atom @@ -116,9 +117,6 @@ H.attack_log += "\[[time_stamp()]\] Stunned by thrown [src.name] last touched by ([src.fingerprintslast])" log_attack("Flying [src.name], last touched by ([src.fingerprintslast]) stunned [H.name] ([H.ckey])" ) - return - return ..() - /obj/item/weapon/melee/baton/emp_act(severity) switch(severity) if(1) diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm index b075d929167..b4e7318c138 100644 --- a/code/modules/clothing/spacesuits/rig.dm +++ b/code/modules/clothing/spacesuits/rig.dm @@ -1,33 +1,3 @@ -//Species modification item. - -/obj/item/weapon/modkit/tajaran - name = "hardsuit modification kit" - desc = "A kit containing all the needed tools and parts to modify a hardsuit for another species. This one looks like it's meant for Tajara." - icon = 'icons/obj/custom_items.dmi' - icon_state = "royce_kit" - -/obj/item/clothing/head/helmet/space/rig/attackby(obj/item/I as obj, mob/user as mob) - if(istype(I,/obj/item/weapon/modkit/tajaran)) - user.drop_item() - playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) - user << "\red You painstakingly modify [src] to make it more suitable for a Tajaran user." - new /obj/item/clothing/head/helmet/space/rig/tajara(user.loc) - del(I) - del(src) - return - ..() - -/obj/item/clothing/suit/space/rig/attackby(obj/item/I as obj, mob/user as mob) - if(istype(I,/obj/item/weapon/modkit/tajaran)) - user.drop_item() - playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) - user << "\red You painstakingly modify [src] to make it more suitable for a Tajaran user." - new /obj/item/clothing/suit/space/rig/tajara(user.loc) - del(I) - del(src) - return - ..() - //Regular rig suits /obj/item/clothing/head/helmet/space/rig name = "engineering hardsuit helmet" diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index b92bd7e7067..6ecc7b6dddf 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -202,7 +202,7 @@ if(getBrainLoss() >= 50) if(10 <= rn && rn <= 12) if(!lying) src << "\red Your legs won't respond properly, you fall down." - lying = 1 + resting = 1 proc/handle_stasis_bag() // Handle side effects from stasis bag diff --git a/code/modules/mob/living/silicon/say.dm b/code/modules/mob/living/silicon/say.dm index 4dac67e8852..7c63628ced4 100644 --- a/code/modules/mob/living/silicon/say.dm +++ b/code/modules/mob/living/silicon/say.dm @@ -4,7 +4,7 @@ if (ending == "?") return "queries, \"[text]\""; else if (ending == "!") - return "declares, \"[copytext(text, 1, length(text))]\""; + return "declares, \"[text]\""; return "states, \"[text]\""; diff --git a/code/modules/paperwork/stamps.dm b/code/modules/paperwork/stamps.dm index 644eaf646b2..f7046974d97 100644 --- a/code/modules/paperwork/stamps.dm +++ b/code/modules/paperwork/stamps.dm @@ -42,7 +42,7 @@ /obj/item/weapon/stamp/cmo name = "chief medical officer's rubber stamp" icon_state = "stamp-cmo" - color = "medical" + color = "cmo" /obj/item/weapon/stamp/denied name = "\improper DENIED rubber stamp" diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 7f3dea0f7a4..9c7bc060297 100755 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -157,7 +157,7 @@ /obj/item/device/destTagger name = "destination tagger" desc = "Used to set the destination of properly wrapped packages." - icon_state = "forensic0" + icon_state = "forensic0-old" var/currTag = 0 //The whole system for the sorttype var is determined based on the order of this list, //disposals must always be 1, since anything that's untagged will automatically go to disposals, or sorttype = 1 --Superxpdude diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 003bf5c9f10..271b96484f2 100644 Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ diff --git a/maps/tgstation2.dmm b/maps/tgstation2.dmm index b9974f6a5b3..ec829aa1987 100644 --- a/maps/tgstation2.dmm +++ b/maps/tgstation2.dmm @@ -6195,7 +6195,7 @@ "cpg" = (/obj/structure/cable,/obj/machinery/power/tracker,/turf/simulated/floor/plating/airless,/area/solar/starboard) "cph" = (/turf/space,/area/vox_station/southwest_solars) "cpi" = (/obj/machinery/the_singularitygen{anchored = 0},/turf/simulated/floor/plating,/area/engine/engineering) -"cpj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/table/reinforced,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/modkit/tajaran,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) +"cpj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/structure/table/reinforced,/obj/machinery/cell_charger,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/device/modkit/tajaran,/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/ai_monitored/storage/eva) "cpk" = (/obj/machinery/portable_atmospherics/canister/toxins,/turf/simulated/floor/plating,/area/engine/engineering) "cpl" = (/obj/machinery/power/emitter,/turf/simulated/floor/plating,/area/engine/engineering) "cpm" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) @@ -9184,7 +9184,7 @@ "duF" = (/obj/structure/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/machinery/light/small{dir = 4},/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/latex,/obj/machinery/camera{c_tag = "Research Outpost Hallway Starboard"; dir = 8; network = list("Research","SS13")},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "duG" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "duH" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) -"duI" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"duI" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "duJ" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/power/emitter{anchored = 1; state = 2},/obj/structure/cable,/turf/simulated/floor/plating{dir = 5; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01},/area/research_outpost/anomaly) "duK" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/research_outpost/anomaly) "duL" = (/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) @@ -10171,7 +10171,8 @@ "dNE" = (/obj/structure/window/basic{dir = 1},/obj/structure/table,/obj/item/broken_device,/turf/simulated/shuttle/floor4,/area/shuttle/vox/station) "dNF" = (/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "vox_east_vent"; exterior_door_tag = "vox_northeast_lock"; frequency = 1331; id_tag = "vox_east_control"; interior_door_tag = "vox_southeast_lock"; pixel_x = -24; req_access_txt = "150"; sensor_tag = "vox_east_sensor"},/turf/simulated/shuttle/plating,/area/shuttle/vox/station) "dNG" = (/obj/item/clothing/head/collectable/petehat{desc = "It smells faintly of reptile."; name = "fancy leader hat"},/turf/simulated/shuttle/floor{icon_state = "floor4"; oxygen = 0},/area/shuttle/vox/station) -"dNH" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/obj/item/weapon/modkit/tajaran,/turf/simulated/floor/plating,/area/engine/engineering) +"dNH" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating,/area/engine/engineering) +"dNI" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -11256,7 +11257,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedpkdoedoedoedoedoedoedpkdpkdoedoedoedoedpkdpkdpkdpkdoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoeaaaaaaaaaaaaaaaaaaaaaaaaaaadoSdpDdpndpEdpFdpGdpHdpIdpJdoTdpKdpKdpKdpKdpLdpvdpMdpNdpOdpddpddpddpddpPdpQdpRdpRdpRdpRdpRdBAdzTdAKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpVdpWdpVaaaaaaaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedoedpkdoedoedoedpkdpkdoedpkdpkdpkdoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdoedpkaaaaaaaaaaaaaaaaaaaaaaaadoSdoTdpXdpYdpYdpZdqadqbdqcdqddqedqfdqgdqhdqidqjdqkdqldqmdpddqndqodpddqpdqqdqrdqsdqtdqudqvdqwdqxdzkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqzdqAdqzaafaaaaaaaaadoedoedoedoedoedoedoedoedoedoedoedoedpkdpkdpkdpkdpkdpkdoedoedoedoedoedoedoedpkdpkdpkdpkdpkdoedoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaaaaadoSdoTdpXdqBdqBdpZdqadqCdqDdoTdqEdqedqFdqGdqHdqIdqJdqKdqLdqMdqNdqOdqPdqQdqRdpRdqSdqTdqUdqVdqWdqXdzkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqYdqZdradrbaafaaaaaadoedoedoedoedoedoedoedpkdoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaadogdrcdpDdrddpEdredrfdrgdrhdridoTdrjdqFdrkdrldrmdrndrndrndrodrndrndrndrndrpdrqdpRdrrdqTdrsdrtdrudqxdzkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadqYdqZdradrbaafaaaaaadoedoedoedoedoedoedoedpkdoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaaaaaaaaaaaaaaaaaaaaadogdrcdpDdrddpEdredrfdrgdrhdridoTdrjdqFdrkdrldrmdrndNIdrndrodrndrndrndrndrpdrqdpRdrrdqTdrsdrtdrudqxdzkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrvdrwdrwdrxdrydrzdqzaafaaaaaadoedoedoedoedpkdpkdpkdoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkaafdrAdrBdoCdoCdoCdrCdrDdoTdrEdrFdrGdpodrHdrIdrJdoTdrKdrLdrMdrNdrOdrPdrQdrRdrSdrTdrUdrVdrndrWdrXdpRdrYdrZdsadrtdpRdCRdDwaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsddsedsfdsgdshdsidsjaafaafdpkdpkdoedoedpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdskdskdskaafdsldrDaafaafaafaafaafdoTdoTdoTdoTdoTdoTdsmdsndoTdpKdpKdsodspdsqdrndsrdssdrSdstdsudsvdrndswdsxdsydszdsAdsBdsCdpRdsDdsEaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofaaadofdofdofdofdofaaadofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsFdrwdrwdsGdsHdrzdsIdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdpkdskdskdskaaaaaadoSdsJdsJdsJdsJdsJdsJdsJdpddsKdoOdsLdsMdsNdsOdsPdsQdsRdsSdsTdsUdrndsVdsWdsXdsYdsZdtadtbdtcdtddtedtedtedtfdtgdthdtidtjdtjdtkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadofdofdofdofdofaaadofdofdofdofdofaaadofdofdofdofdofaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa